IM      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~| E|MG>|ry39|t| ||&||||P|R|I|K| &| |HI|K|R|P|rr }u  t}_3^DXXXGHH |2I|K|PRQ:rذTYZXr |.|$|I|K|p t);|s6|ˆO|36|%|M|ôM| 6O|ʆ$|6%| Non-System disk or disk error Replace and press any key when ready IO SYSMSDOS SYSU@` O`! #@%`')+-/1 3@5`79;=?A C@E`GIKMOQ S@U`WY[]_a c@e`gikmoq s@u`wy{} @` @ ` @ ` @ ` @ ` ǀ ɠ @ ` ׀ ٠  @` @`!a   !Aa!!#A%a')+-/1!3A5a79;=?A!CAEaGIKMOQ!SAUaWY[]_a!cAeagikmoq!sAuawy{}!Aa!Aa!Aa!Aa!Aaǁɡ!Aaׁ١!A!A " B b  !"!B!b!!!!!"!""#B"%b"'")"+"-"/#1"#35b#7#9#;#=#?$/$CB$Eb$G$I$K$M$O%Q"%SB%Ub%W%Y%[%]%_&a"&cB&eb&g&i&k&m&o'q"'sB'ub'w'y'{'}'("(B(b(((()")B)b)))))*"*B*b*****+"+B+b+++++,",B,b,ǂ,ɢ,,,-"-B-b-ׂ-٢---.".B.b...../"/B/b/////0#0C0c00 0 0 01#1C1c11111!#2#C2%c2'2)2+2-2/31#33C35c3739;=3?4A#4O4Ec4G4IK4M4O5Q#5SC5Uc5W5Y55]5_6a#6cC6ec6g6i6k6m6o7q#7suc7w7y7{7}78#8C888889#9C9c99999:#:C:c:::::;#;C;c;;;;;##>C>c>>>>>?#?C?c?????@$@D@d@@ @ @ @A$ADAdAAAAAB!$B#DB%dB'B)B+B-B/C1$C3DC5dC79C;C=?DA$DCDDEdDGDIDKDMDOEQ$ESDEUdEWEYE[E]E_F/FcedFgFiFkFmFoGq$GsDGudGwGy{G}GH$HDHdHHHHHI$IDIdIIIIJ$JDJdJJJJJK$KDKdKKKKKL$LDLdLDŽLɤLLLM$MDMdMׄM٤MMMN$NDNdNNNNNO$ODOdOOOOOP%PEPePP P P PQ%QEQeQQQQQR!%R#ER%eR'R)R+R-R/S1%S3ES57S9S;S=S?TA%TCETEeTGTITKTMTOUQ%USEUUeUWUYU[U]U_Va%VcEVeeVgViVkVmVoWqsEWueWwWyW{W}WX%XEXeXXXXXY%YEYeYYYYYZ%ZEZeZZZZZ[%[E[e[[[[[\%\E\e\Dž\ɥ\\\]%]E]e]ׅ]٥]]]^%^E^e^^^^_%_E_e_____`&`F`f`` ` ` `a&aFafaaaaab!&b#Fb%fb'b)b+b-b/c1&c3Fc5fc7c9c;c=c?dA&dCFdEfdGdIdKdMdOeQ&eSFeUfeWeYe[e]e_fa&fcFfeffgfifkfmfogq&gsFgufgwgyg{g}gh&hFhfhhhhhi&iFifiiiiij&jFjfjjjjjk&kOkfkkkkkl&lFlfldžlɦlllm&mFmfm׆m٦mmmn&nOnfnnnnno&oFofooooop'pGpgpp p pq'qGqgqqqqqr!'r#Gr%gr'r)r+r-r/s1's3Gs5gs7s9s;s=s?A'tCGtEgtGtItKtMtOuQ'uSGuUguWuYu[u]u_va'vcGvegvgvivkvmvowq'wsGwugwwyw{w}wx'xGxgxxxxxy/yGygyyyyyz'zGzgzzz{G{g{{{{|G|g|LJ|ɧ|||}'}G}g}ׇ}٧}}}~'~G~g~~~~~'Gg(Hh Ȁ (Hhȁ!(#H%h')+Ȃ-/1(3H5h79;ȃ=?A(CHEhGIKȄMOQ(SHUhWY[ȅ]_a(cHehgikȆmoq(sHuhwy{ȇ}(HhȈ舏(Hhȉ艟(HhȊ芯(Hhȋ苿(HhLjɨȌ(Hh׈ȍ(Hh爎騎Ȏ(Hhȏ)Ii ɐ  )Iiɑ !)#I%i')+ɒ-/ 1)3I5i7;ɓ=? A)CIEiGIKɔMO Q)SUiW[ɕ]a)cIeiikɖmo q)suiw{ɗ )Iiɘ阏 )oə陟 /Iiɚ )Ioɛ雿 )Iiljɩɜ )Ii׉ϝ )Ii牞驞ɞ )Ii@` O`! #@%`')+-/1 3@5`79;=?A C@E`GIKMOQ S@U`WY[]_a c@e`gikmoq s@u`wy{} @` @ ` @ ` @ ` @ ` ǀ ɠ @ ` ׀ ٠  @` @`!a   !Aa!!#A%a')+-/1!3A5a79;=?A!CAEaGIKMOQ!SAUaWY[]_a!cAeagikmoq!sAuawy{}!Aa!Aa!Aa!Aa!Aaǁɡ!Aaׁ١!A!A " B b  !"!B!b!!!!!"!""#B"%b"'")"+"-"/#1"#35b#7#9#;#=#?$/$CB$Eb$G$I$K$M$O%Q"%SB%Ub%W%Y%[%]%_&a"&cB&eb&g&i&k&m&o'q"'sB'ub'w'y'{'}'("(B(b(((()")B)b)))))*"*B*b*****+"+B+b+++++,",B,b,ǂ,ɢ,,,-"-B-b-ׂ-٢---.".B.b...../"/B/b/////0#0C0c00 0 0 01#1C1c11111!#2#C2%c2'2)2+2-2/31#33C35c3739;=3?4A#4O4Ec4G4IK4M4O5Q#5SC5Uc5W5Y55]5_6a#6cC6ec6g6i6k6m6o7q#7suc7w7y7{7}78#8C888889#9C9c99999:#:C:c:::::;#;C;c;;;;;##>C>c>>>>>?#?C?c?????@$@D@d@@ @ @ @A$ADAdAAAAAB!$B#DB%dB'B)B+B-B/C1$C3DC5dC79C;C=?DA$DCDDEdDGDIDKDMDOEQ$ESDEUdEWEYE[E]E_F/FcedFgFiFkFmFoGq$GsDGudGwGy{G}GH$HDHdHHHHHI$IDIdIIIIJ$JDJdJJJJJK$KDKdKKKKKL$LDLdLDŽLɤLLLM$MDMdMׄM٤MMMN$NDNdNNNNNO$ODOdOOOOOP%PEPePP P P PQ%QEQeQQQQQR!%R#ER%eR'R)R+R-R/S1%S3ES57S9S;S=S?TA%TCETEeTGTITKTMTOUQ%USEUUeUWUYU[U]U_Va%VcEVeeVgViVkVmVoWqsEWueWwWyW{W}WX%XEXeXXXXXY%YEYeYYYYYZ%ZEZeZZZZZ[%[E[e[[[[[\%\E\e\Dž\ɥ\\\]%]E]e]ׅ]٥]]]^%^E^e^^^^_%_E_e_____`&`F`f`` ` ` `a&aFafaaaaab!&b#Fb%fb'b)b+b-b/c1&c3Fc5fc7c9c;c=c?dA&dCFdEfdGdIdKdMdOeQ&eSFeUfeWeYe[e]e_fa&fcFfeffgfifkfmfogq&gsFgufgwgyg{g}gh&hFhfhhhhhi&iFifiiiiij&jFjfjjjjjk&kOkfkkkkkl&lFlfldžlɦlllm&mFmfm׆m٦mmmn&nOnfnnnnno&oFofooooop'pGpgpp p pq'qGqgqqqqqr!'r#Gr%gr'r)r+r-r/s1's3Gs5gs7s9s;s=s?A'tCGtEgtGtItKtMtOuQ'uSGuUguWuYu[u]u_va'vcGvegvgvivkvmvowq'wsGwugwwyw{w}wx'xGxgxxxxxy/yGygyyyyyz'zGzgzzz{G{g{{{{|G|g|LJ|ɧ|||}'}G}g}ׇ}٧}}}~'~G~g~~~~~'Gg(Hh Ȁ (Hhȁ!(#H%h')+Ȃ-/1(3H5h79;ȃ=?A(CHEhGIKȄMOQ(SHUhWY[ȅ]_a(cHehgikȆmoq(sHuhwy{ȇ}(HhȈ舏(Hhȉ艟(HhȊ芯(Hhȋ苿(HhLjɨȌ(Hh׈ȍ(Hh爎騎Ȏ(Hhȏ)Ii ɐ  )Iiɑ !)#I%i')+ɒ-/ 1)3I5i7;ɓ=? A)CIEiGIKɔMO Q)SUiW[ɕ]a)cIeiikɖmo q)suiw{ɗ )Iiɘ阏 )oə陟 /Iiɚ )Ioɛ雿 )Iiljɩɜ )Ii׉ϝ )Ii牞驞ɞ )IiNET 1XE 26*NETWKSTA1XE 2rREDIR 1XE 2 mNETWKSTA2XE 2REDIR 2XE 2@oSD6COPY BAK 2 GORILLA BAS 2rMONEY BAS 2NIBBLES BAS 2'^REMLINE BAS 2x0144ID01 BAT 2 mDRVBOOT BAT 2<x SD6COPY BAT 2 SETUP BAT 2 4ADOS CFG 2=ADOS COM 2nyASSIGN COM 24CHOICE COM 2 CV COM 2:FAKEMOUSCOM 23GET_FUNCCOM 2 GRAFTABLCOM 2+MIRROR COM 2zGMSHERC COM 2PRINTFIXCOM 2DOSSHELLCO_ 2s4201 CPI 24208 CPI 25202 CPI 2ISO CPI 2ZLCD CPI 2d*NETBEUI DOS 26wAM EXE 2BACKUP EXE 2A,COMP EXE 2 3EDLIN EXE 2[1EXE2BIN EXE 2t EXPAND EXE 2 ?JOIN EXE 2>ESETNAME EXE 2 DOSSHELLEX_ 25-DOSSWAP EX_ 29 4CGA GR_ 2QEGA GR_ 2T EGAMONO GR_ 2t  HERC GR_ 2y dMONO GR_ 2 (VGA GR_ 2 ~ VGAMONO GR_ 2 DOSSHELLHL_ 2CGA IN_ 2 EGA IN_ 2Y MONO IN_ 2 SUPPLIMDISK2ADOS OVL 2PgDVORAK SYS 2CI KBDBUF SYS 2atPRINTER SYS 2tIEGA SY_ 2_ dADOS TXT 2AREADME TXT 2zCOMMANDSTXT 2d/DVORAK TXT 2J!ISO TXT 28 NET TXT 208514 VI_ 2CGA VI_ 2EGA VI_ 2g HERC VI_ 2} MCGA VI_ 2 TVGA VI_ 2 FONT 54201 _Q4201 dm4201 \4201 aE 4201 RO  I6I6==I=) NN  *j** =w $d$$P >***j*"" >**j**"" >*jj""LR >***">"=]""""""] "bb"= <B< \\=%%@=C%P bb= T"F=2!#%m%4$$M=20 0 xqxqxx= !#%-% $$$d$  0) @A$J =b!!!!?>!!!!!a-!!!!!3&!!!!?>a!!!-!!a!!3&=b!!!!!!!!!-!!3&!!!?>!!!=bBT($DDDDDDD$(TB `@@@@@` =b <<"  A "<< <<"`  `"<< =b@= PP!a!!!>!!!a!=2PPRp"$J@ I6I6==I I6I6==I=) D jJ\  *j** $$d$= ~*"b **j***""~" @@^ NdDT NN >***j*"" $d$$ >**j**""LR LRRR R <B< B"~""LRRR= <B<="""b"=""b""=2D((((((A(A(@( =2!#%-%4 $d$$$  =2!!!!?>a!!!-!!a!!3&=b!!!!!a?>!!!!! @"!!!!@" =b!#% $$$ !#%m%4$$M=b!#%-% $$$d$  !!!!?>!!!!!a-!!!!!3&=2 B   A A @ =2 <<"  A "<< =b!!!!!?>a!!!!! "!!!! =2 <<"  A "<< =2 "!!a!!!" =2 "!!!a!!"  I6I6==I=) #"&*2"\ ~B :DD=2 !@D@H @P@`"@`  =2$$@A !@@$$= ]""""""]=2BT($DDDDDDD$(TB  I6I6==I=  jj=6 "&**2"\ ~B :DDD((D= ***" >**j**""""~" @@>"=2 !@D@H @P@`"@`  =2$$@A !@@$$=2 A(hhhhhhh(@ =2$(($=2$"B]a!!!-!!a!!3&!!!!!!!!!-!!3&!!!!?>!!!!!a-!!!!!3&      >!!!!!a?>!!!!!!a!!!>!!!a!!!!?>!!!=b!!!!!?>a!!!!!=2 "!!a!!!" = @"!!!!@"  "!!!a!!"  B   A A @ "!!!! =$$EEDDDDDDD$(!!!!!!        <<"  A "<< <<"`  `"<< <<"  A "<<  1!)C( 0 0! G 0 @=PPRp"$J@0 0 xqxqxx0) @A$J =2=2=b@ PP= T44T=2@    @FONT  54208 Q4208 ^+m4208 `A4208 RW4208 Sm4208 U4208 W4208 _4208  I6 III6 III6 III6 III6 III6 III6 III6 III6 The IBM Personal Computer Printer Code Page Driver Version 3.30 (C) Copyright IBM Corp 1987 Licensed Material - Program Property of IBM@@@### DOS 3.30 Driver DRV05H, 10/21/86  FONT 55202 Q5202 Rm5202 \5202 _5202 a 6 R6 \6 _6 a6MS DOS Version 5.00 (C)Copyright 1981-1991 Microsoft Corp Licensed Material - Property of Microsoft All rights reserved $0*OfcάACCESSv1.00:&uw#t*>5#t>u>E#u.2ùdta$:t%ddta$:t `#À>p#Zt>p#t3dt d"T3dtGd3dt4X#`3dt?d3dt 3duSVQ}uU;SuQ^[SS;Qt}uUS[PaPQ$aYQ>9t  aYQKuYXaXQSP([YQS&[YQS$[YQS,+0;.[YQS.n0;,|[YQS*Q9[YS|;ztynu~|[=uZRZu(EDPa#?a#e#>e#XEFPa#?a#e#>e#X=u'EFDP?a#>e#Xx=u,EGPa#?a#e#>e#XG=Ft=Hu>>Fu>Du(>Gu!>b#u>`t>0#u >0#t#..5.">5u##>L#to>7tC>du9SP% t"Xdo>r#uww@ %Xt3[>cu 3cP|;zu7X.&>:t=t=!t&(@= t=t5@.PSQRȋ؎l@.&(ZY[X~=t#PSQR&(Ë@.ZY[X=tF.PSQRȋ؎l.u.ȉ@&(ZY[X.=tu 8Nu8Ot NO#>L#t>cu c>dtztr>r#u1Pw$<u 3ۃXX<u 3ۃXK<u 3ۃX>X:>r#u2Pw$0<t'< u 3ۃX<u 3ۃX<0u 3ۃXXVWRQSP >L#u |;zu>r#uFw@u:so>r#uh>p#t>p#t>{#u>tEs# t4>iu@t~|zyi s#7>b#u>0#u,8.>7t>w#tS;Qu"r@&@t`>#uV<uO>x#t:>p#u >gt9>p#u>p#u" Y`# >gt`>^#uA>D#ty>J#tl>R#tY _>V#tR>[#tE^#>a#t>e#t G@&I:t !!> t!> ta$u >t>~  >y#u u6.&<tK&&>t &9& >t&.6>e#tU>t+> ua$u7 :u/ >x#u~>Duw>Ku 8JKP>Gu$F/<tGE?a#>e#>MuLMX[YZ_^ϰ  ø@&e$>y#u &eZ>y#u &eI>y#u 26>y#u 2#>y#u $&e>y#u6ø@&e >y#u &eZ>y#u &eI>y#u  6>y#u  #>y#u  &e>y#u6ÀOtSP52X0#u.#t.#O.~#H>"uMO:>#u3SS;Qt">#tP@&@XtO#[>_#uB=u1=(>=uPS@&t =[XE[X>;u@x#tg>Du_<u*Ju KJB>Lu;ML/PS@&tJJtLL[XPut;4t<<X>;u<uE#t>"t 3u$>B#u>t>t3>2u[...[..P.<t.N.&LPPS25>p#u`2tx>5#uO>3uH>B#u>t>u3.>E#u>#u3##a aa >p#u[XX<t.N.&L.X$.VWRQSPUSQ~|zy !0!<}P/tBDC6F/=uBCD/5!ȎغG/%!>w# u 55!5!Ȏغ[%!3$>$>BuFPaPQ$aYQ aYQKuYXaX@>$Ԁ>Bu=PȸF(.,&,+.d30=u0>q#t&35! >p#uq5t5!"$>w# uȎغ< %!Ȏغ%!>0#uȎغ %!>q#t4Ȏغ3%!>p#uȎغPq%!ȎغPt%!X[YZ_^IE57JNSIHGMLKQPOR))))))))T"k0 SVznu~;|u yz^[À>L#u>^tN33ۀ>_uQj>P#un$>P#u$n>P#u6nIn:nr _3oCjk:r3ۊCk u>_u1>N#~*N#=$u38mt38lt($ 38mtN#38ltN#ـ>r#usu3n ow^]>r#uVt un ىs&s?uÀtn&u?3n o @w>yd}us|7À>M#t>!u  `hf,bcd7S~|zyi[NL#>r#u o#p >r#uo# oÀ>M#t>!u  ai>otPQScdnYXL#gÀ>L#u>q#t9>_#u fR#PSQR33337wPuSsQqRu#&">p#ut>p#ut >p#uqZY[Xl^_jusn>bt >r#uiËb>u3À>`u#u >_#u>E#u >gu ubht>huh>ftAf>_#u>E#u >T#u>M#t>!u  >_#t^tf>_#u>E#u >T#u@>M#t}>!u   PQScdYX>_#th>E#u>u3g`Pb>r#up>pto#`>r#u+&p>p0t&o#H>z#uo#<>p#t>p#t>!u  >r#uo# >r#uo# XPSQRbtoo# t шo u"шo>r#uE>o#uu- '>o#uu u wJ>r#ub>o# uu@-`'>o#uu@Pu@pw>yd}PwVuPsJX7ZY[Xb>cu>:uc 33QPbt9lu^l>7#t$>8#t>t>C#t>t>r#u^Ȁ>r#u2%stn %utnn owa>r#uY%<t un أs&s?%utn&u?n o @w>yd}.u(s"7XY6# 6 6#>L#tN=Euz uz>q#tv>atos>_#u)>E#u"SP@& u gX[AX[g>q#t/$t&P@&$u7Xaً΃Ru dc0Su+cdP@&$ < uX7PHXEuu>4u 34&>ftEt t 3#>Lu(M=t |$MM>T#t< M[À>U#t<>!u  T#OÀ>U#t0>!u  T#À>T#uV#PS@O>T#u4&$p"u>!u  >!u   [XË؀>4u =u4[$T#t6u=t4=td=t=It}>5#t 0*C>!u  >6#t$8#7#a>!u  :]4W.>>!u  >6#t I3C7#8#]#>5#uM tH?>u u*3>t>C#uÀ>6#t>!u  5##7#8#À>6#t{>!u  5#P;#=#?#9#=tC#X>C#u,>uPS;+ã[XÀ>5#uRD#WVRQSP$u-&Àt" &6u5#ut59t>C#u=*t=6t=t=Ft >uC#u ;t t>B#uER>C#u5>u4>B#u X[YZ^_0*1234567=*66*88 88>F#t>!u  E#####À>I#t<>F#t>!u  E###+##À>E#uJ#PSQRWV@ù#>E#u # #>#t!:u">#u#ح"u>x#tr>w#tk& ~>#t& >>z#tw~& &>#ta& Y& >>#uJ& ?#t߆ ߀>#u!>z#t~>#t ##4##^_ZY[XS@[#66& udu #t9##u'>E#u>w#u##>#} ###t |t>E#uf`3Ɉ#>E#tP#t u?&&<:t#>E#t u u((t## ߄u2̀>H#ut2#>G#u4u ߀>!u   utހ>!u  u>!u   ut>!u  u &&sj#>E#t] t##>E#uG>K#t>5#u>u#=*t*=6t%>#t#>u##0*>W#uW#W#[#S>W#ty39h'm|o>5#tq>E#tK>L#t>T#t>a#ta#>e#te# t>X#t݀>!u  h'[PY#h'X$SKb)SKt)%)%)#$)237=OSTYchinstu+./01456@\_adfrv~ +./014569KLPU_dpqwx~.>@at.&(.( )PSQRVWUȎ؎]_^ZY[X.>@at .(.&(û@&r4@&&&&q+P[S@*&t[@&@&&PSQR!>d#u ! 5 ! 5!)u Œ;u.(.(ʎں)%!ZY[X0#0#PSQR>d#u 5 5!)uSÌ;uK1#Ӄ$Ӄ!>d#u ! % ! %.(.(!)ZY[XPSR1#Ӄ%!>d#u%%!Ӄ:Z[XPSQR1#у3#уууZY[XPR1# 1#ZXPR1#$1#ZXPR1#*ZXPR1#ZXPSR1#ӃӃӃӃZ[XÀ>5#u D#^#+S@&@t[@&`&a&a&`@Ê`&a&a&`&+S@&CC&;r&&;u[+S@&&;u[UV@&CC&;r&&;t F&&^]ÜPSR);)tT>r#u1+PPP+Pu#&">p#ttq>r#us#`tEs#Z[XUVS)CCC)r%);)tFFFFF)[^]S);)tC)r%))[V$a33۬P<+t<-u<t#<9w,0rX$a35X<-u^`JaHa*=[tIw,t',t*| ~),t,,@t`xLaLatNaFaGaFaGa5Gàp#a*```U`>a7`_a.#*l^r`@a)".~#Da``a%)))]+Baaa*`a&`%` t`@&`&`&a&a/`V`Ut`1"a4n^A6``+``p^``%)))x`*`p`$a`a````+`v` a`3#`U>`u>>p`u71#t1# a> a| Q"!*P [ at`>`t+]UP[]`*-u a*HtHH| HH>w#u q`a`q`à`*-tAaà`*-tHtn^0`U*q``n^0`U`U젔`*HtHt Ht&Ht+Ht0Ht5-t8K````{`0s`k` c`- t- t-t-0t -`t-u`93#t93#zDa``a1#`t oli1q]UV"a4n^A6>p`ut`2`>`t>p`vp`*6`FPaP[[ u"FP`P[[ uFa*aap`*`@F t0PaP[[ u"FP`P[[ uFa*aaN ^]àp`*-tB-t1>p` r>p`~w`"a2t`t`4p``"at`2`UU>p`u$a>p` uFF^*8$au>p`,tN>p`.tG>p` v:>p`~w3r>p`Ar >p`Zwp` p`^*$a^È$a ~u^~w=UP[ u FPn[ t$a;F$a*-+tHHt-t~vFP[FP[FP [>p`.uP[$a1 t"a]U~u1>`Wu)$a*㊇V<:t<,u $a*㊇V$aF 6` [FF]UWVFA~uE^7$a3+t uF^G$a |F^?uF^_]àp``"aÀ>`t>`t"a5à`*-= we.44 55%53595?5W5g5959595o5"a+6``0"a+6`"a+6`"a+6`"a5n^W>`u "a5`CÀ>`t  t/"a5'n^1 un^A6"a4t`1````À>`uÀ>`u9 t2 t `"a4n^A6"a4t`1```{à`*`"a6`á`` tn^`>`u"a4@n^`u `"a4à`*HHtpHtHuHuHu-uHuHuHuHuHuHuHu-u-uHu- u-]un^B8`W`n^8n^8n^9n^):n^<`.Vn^>`Vn^o?n^H=n^ >n^?`Un^JAn^?n^B`^Vyn^0`nVjn^0`rV[n^0`bVLÁ>`ar*á``n^`G`Á>``w*Ë`G`Gn^ t.`*U졲`+`@t.>`u>`t F``u``]*]á`9`u*Ë```u``>`uÀ>as:y t3`PaP[[ u"`P`P[[ u`a*aaÀ>`u8À>asK, tD`PaPT[[ u3`P`PC[[ u"`PaP2[[ u`a*aaU>`u/F^a`*`F`a*;Fވ&a]`*a*=}K tD`PaP[[ u3`P`P[[ u"`PaP[[ u`a*aa]U>`uBF+^aFa*aa*P`[FP[Fa*;Fˈ&aLa*a*=}: t3`PaP [[ u"`PaP[[ u`a*aa]U>`uf>au-F^Fa*Pa[a*;F*a`bF^aP)[^aP[Fa*;Fۈ&a0>as)* t"`PaPR[[ u`a*aa]UF `8ZYt F^ZYuꀿZYum*]UVFF#^*;F~Fv8@u*FF~t׊F^]UF^F`*P`[`*;FF!^a*P`[^a*Pa[Fa*;Fՠ`FN^`*Pa[~*a`]UF^F`*P`[`*;FF^Fa*P`[a*;FFN^a*Pa[~`*FN^`*Pa[~*a`]U+FF^`^`:FtFF`*;F݊F`]U+FF&^a^a:FtF F*Pa[Fa*;FЊFa]à`*-t HtHt#Ht.en^B=`ZV(n^C=`VVn^D=`BV n^E=`RV`U`*HtHt-t ``>`u`a `9`tmF^F`*P`[`*;Fx`|`~``z` az` `*FN^`*Pa[~```]U>`t>`u`a `9`tF^F`*P`[`*;Fx`|`~``z`u az`l `z`c az`Z `*FN^`*Pa[~```]U>`t>`u`a `9`tjF^F`*P`[`*;Fx`|`~``z``*FN^`*Pa[~``a``]À>`uH>`u``#a`;atx`|`~`z`:`a``À>`u+x`|`~`z`+aBaa`sà`*-t Ht- t]n^}@`n^N@>as>ara*aaka`À>arà`a*aaaaan^?À>arà`a*aa>at>aun^?UF^F`*P`[`*;F䠓a&av`|`Bav` }+Baa&av`~`av` }+aaz`x``*FN^`*Pa[~`]à`*-t Ht- t n^A`n^A>as>ara*aaka`À>arà`a*aaaaan^JAÀ>arà`a*aa>at>aun^JAUF^F`*P`[`*;F䠓a&av`+Ba|` }+ɉBaa&av`+a~` }+ɉaaz`x`u`*FN^`*Pa[~`]U.>#u)>au#.#)Da``a>a7xF>@at# t>r`tl^>`u >l^uo>`u~ u8Ftr>`t`>@au_>auXS>@auL>au `9`t<au61# t1#t1#1#B *`_]U@aF@aa`_1#BB$F1#B%~t~uf>a sK1#`~u 1#*`G`@@=ar`Da`a>ar~u 1#1#>)t) # u8Ftl^墀`>`t >`uF`9`t>l^u] u )9)t,Fa`_= tv>l^uoAF`a`_W>x`u뙀>x`u>z`t>atNuz`*Pa[u>aGt>aGu z`P/z`P=ڡ`9`u>at 4 t F t >l^t"~u*l^@a]UaF ua`FG=ar`Da`~uFty`>`rn`O1aaDa``a>a7"1#`t>Aau3#1`` `Fp`~w1#u~*]UFNu>a7 tr` l^r`+dF*Pa[.0# u.#>r`t >l^tr`]UdF.~#.#+dF`]Ud+dF`.~#.#+d?d]UF.~#.# d]U>a71#t1#B *)>)u>a7 tr` l^r`F.~#.#F*Pa[ >r`t >l^tr`]UF`]WV`+`=t7`=p`r>`p^t$`x`=p`r `p^^_Ã`^_á`9`t/`x`Gz`G|`G~`G=p`r`p^Ã`U?t FF^8uF8u*]U` t`t)PFP[[ t@`t`t)PFP[[ u`t`t)PFPz[[ u*]Ux`F*=@t;w>,,t, tt,t,t(&`!&`&`&` &`&`fFP6[ t/^*Y F=~uw3,>t:,t6, |'~?,|,~7,|,~/,t+,t', t,u~uz`%Fz`z`Fz` `@t~_t `tv`u`u;`t`uz`z`6n`tj`tcz`z`6z`z`*A`0u5`uz`z`|z`tz`z`ez`z`V]Ux`F*=ZtFwI,,t, tt,t,t",t%/`(`!`` ` `6`@fFP[ tmF*=~uvL,>u,u, }7~,,},,~!,}!,~,t,t, t,uz``@t~_t`tz`*L`u`tz`7`t`t$`u`uz`#z`z`z``0u&`uz`z`*z`z`7Zz`TS` u/z`z`z`Ez`z`z`z`z`Fz`z`^*Yz`r]Ux`Fz`]]Ux`F z`F]àr#*HHtHHt Ã>s#tU>|`}>|`~|`F)|`>~`}>~`~~`F)~`z`%=$ Fz`%=$FN@~}N~}NF@tNf?F@tNf?FPFPFPi>|`u>~`tE]U>|`}>|`~|`F)|`>~`}>~`~~`F)~`^z` F~}N~}N FPFPFP߃>|`u>~`t|]UF F8DZt F^DZuꊇDZ]U~hu!F F8`Zt F^`Zuꊇ`Z]U ul^Ft F$PFP[]U݊F*=@tOw t4,,tl, tpt0,tF,tO`tt`t^~Lt~huR3`G`a:`a-`a `a` `^*㋇rZo``t^*㋇pZT`@tFP[ t"^*㋇nZ0` tFP[ t `t`uα^*㋇lZFF*=}tdw&,t ,-tt,t<`u a@u6`@a@auF*=}tUwZ,tO,-ti,L`u a u6` a `u au6`aau6`a`t&aatF` ~~u)``t`t l^a~|u+``tauma``uYU`tIFF^`Zt F8`Zuꀿ`Zt &`â`F*=}tw ,t ,-t ,t`~tv[ۋ]UDۊF*=}uv u,u,tK, tNt!,tM,tr,t+, u,tv,"u&aat&`}&aa&`j&`c&aau&``*F tFPN[`:&aaՀ&a'&a &a&aat &aڋ]BEGINBLKTRNSCLEARENDbaudrateclickcombinecommdblclickgengotoholdkbdlockmoumoulockmourelmouresetmovepressreldescindmodelveribmatibmenhcibmpccompiduser1120019200240030048006009600leftrightaltbackspacebkspbreakcapslkcapslockcommacontrolctrldeldeletedividedownendenterescescapef1f10f11f12f2f3f4f5f6f7f8f9homeinsinsertkp*kp+kp-kp/kp0kp1kp2kp3kp4kp5kp6kp7kp8kp9kpdelkpdeletekpdividekpdnkpdownkpdpkpendkpenterkphomekpinskpinsertkpleftkpmidlkpminuskppagedownkppageupkppgdnkppgupkppluskprightkpslashkpstarkptimeskpuplaltlcontrollctrlleftleftaltleftcontrolleftctrlleftshiftlshiftmultiplynumlknumlockpagedownpageuppauseperiodpgdnpgupprintprintscreenprtscraltrcontrolrctrlretreturnrightrightaltrightcontrolrightctrlrightshiftrshiftscrollscrolllockshiftspacesysreqtabtildeup2R3R9RARGRKRLRUR [RcRhRqRuRzRR RRR R RRRRRR RRRRRRRRRRRRRRRRRRRSS S SSSSS:::2:0:!::":#:$::%:&:':4:3::::: :::1::/::.::::: =,,),,,,), , , , 5 67  ,((,5 ,6,7,,,2,0,!,,",#,$,,%,&,',4,3,,,,, ,,,1,,/,,.,, 20!"#$%&'43 1/.,,,,:hS<#S-S2S~8S?SHS5NS:VS:[Sh_SLfS_mSTrSQvS+|SnSnSpSySzS{SqSrSsStSuSvSwSxSPScSKSdSjSiS_ScS]SbSgS\SaSfS[S`SeShShT_TbTbThT]%Tl-T[4Tc:TcCT\JTaQTiYTgdTemTgtTe{TjTfT_TdTdT`T<T:T:TOT<T:T:T,T,TdTZTZUV UUU~U6!UV&UU+U|1U|=U|CU>HU@QU@WU+[U+bUYhU>qU@~U@U9U9U}U}U,U=U|UUUSU  !"#$%&'()+,./012345679:;<=>?@KLOPQSTUVYZ[\]_`abcdefghijklnpqrstuvwxyz{|}~) +: !"#$%&'(+*V,-./0123456898RSKGOHPIQMEGKO5HLPR7IMQSJN;<=>?@ABCDWXF !"#$%&'./01234c]bg\af[`e`)~))1!x2@y3#z4${5%|6^}7&~8 * 9 ( 0 ) - _  = +  qQwWeErRtTyYuUiI oOpP[{]}\+|+++aAsSd D  f!F!!!g"G"""h#H###j$J$ $$k%K% %%l&L& &&;':'''("((   \V|Vz,Z,,,x-X---c.C...v/V///b0B000n1N111m2M2 22,3<33.4>44/5?55 9 9 9 9RRSSKKsGGwOOuHHPPIIQQvMMtG7GwK4KsO1Ou//H8HL5LP2PR0R*7*77I9IM6MtQ3QvS.S-J-JJ+N+NN ;T^h<U_i=V`j>Wak?Xbl@YcmAZdnB[eoC\fpD]gqrError opening configuration file $Error reading configuration file $Error closing configuration file $Error releasing memory block $Error spawning child process $Aborting AccessDOS installation. $Exiting AccessDOS menu and AccessDOS is still loaded. $Removing AccessDOS and subroutines from memory. $AccessDOS is now loaded and resident on your computer. $Press any key to continue. $AccessDOS is searching for a mouse, please wait. $AccessDOS is determining your computer type, please wait. $AccessDOS has finished hardware checks. $\l$ADOS.OVLADOS.OVLADOS.OVLADOS.OVLADOS.OVLADOS.OVLADOS.OVLADOS.OVLADOS.OVLADOS.OVLADOS.OVLADOS.OVLADOS.OVLADOS.OVLADOS.OVLADOS.OVLstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspcstackspc&Pgs2E.ct.@e.Ket.c.>?etT.>ct)c ! .>ct]c !U.>ctc !.>cu.>ct c ! !.KetLH.Ket.>?etr .Ie(&".Ket.>?eu .Ie.>Ieu.>Ieu.>?etL! .Be+۳_ .>Beu.BeCgw8+&& Et&=> .Ce.?e.Ae.Ce.?e.Be uc.Aeά0# .Ce.Ae5!  %!ô0!<}h.,++VuGGHсr>.4e>d..4eOO.4e.4e>d66e+ɊAA>c.Ke.Me.c>c/ suqldu.Keau.KeӀAu.Keƀxu.Ke빀Xu.Ke묀iu.>?et:똀Iu.>?et:Ê]kt@]su .Me(du .Meeu .Me wu .Me.KeÍ>d.>4eCFGd=!.ds>.d!a !r|#,d?.d!;|#t>.d!a !F>.d!sa !6,d0#|#D#J#R#V#[#^#Vsb !.IeBLs&b !.Ie+M!<u .Ie<u .Ie .IeûnzCJ!Í>d.>4eOVL.c.c.cc.cdc.&c.cK!.c.&cɎَc#>`#t bb !>0#t (b#(b#.Ket.MetAaAaaBB1!Íhb !.Ce&>b#t&Aa&`.KetH.Met&Aa.Met &0#(.Met &0#.Met &0#&`.Ge&>0#u.Ee*.Ee.Ee*.Ee.>?et.>@ethb !.@e-.>@etb !.@e%.Ae. . !Mouse driver not found $Mouse not found $Mouse found and reset $A bus mouse was found $A serial mouse was found $An InPort mouse was found $A PS/2 mouse was found $A HP mouse was found $Mouse type found was not recognized $Mouse type found is not currently supported $Computer ID is an IBM PS/2 Model L40SX, 55SX, 65SX, 70, 80, 90 or 95 $Computer ID is an IBM PS/1 or PS/2 Model 25/30-80286, 50, 50Z, or 60 $Computer ID is an IBM AT or equivalent compatible $Computer ID is an IBM New AT/XT or equivalent 286/386/... compatible $Computer ID is an IBM PS/2 Model 25/30-8086 $Computer ID is an IBM Original AT with 84 key keyboard $Computer ID is an IBM Original AT with 101 key keyboard $Computer ID is an IBM PC Convertible and is not supported $Computer ID is an IBM PC Junior and is not supported $Computer ID is an IBM New PC/XT $Computer ID is an IBM PC or an Original IBM PC/XT $The serial mouse was found to be attached to COMM port 2 $The serial mouse was found to be attached to COMM port 1 $Computer type found to support Inject Keys routine $Extended BIOS data area not found, PS/2 style MouseKeys not supported, try Serial Mouse $Your computer supports int 15h calls $Your computer supports the Extended BIOS data area $A CGA monitor was detected $A EGA monitor was detected $A VGA monitor was detected $A Monochrome monitor was detected $A MCGA monitor was detected $Your serial mouse is runnning at 300 BAUD $Computer was not identifiable and will be treated as a PC/XT/AT with an 84 key keyboard. $Please restart AccessDOS menu, type ados, to change this selection if your $computer is NOT a PC/XT/AT with an 84 key keyboard. $AccessDOS detected DOS keyb.com to be running. $01/10/8406/10/8511/15/8504/21/86VWPSQRȎظ35! t&?u>ctIm !q#r#33 u>ctbm !q#>cttm !$3u>ctm !1n !Lt>ctm !r#q#m# n#o# us#>ctp !s#>ctq !s# s#Bċs#uu{#>ctr !u>ctm !1n !uJ>ctm !r#q#+ru#m#n#o#K>ct~q !/u>ctm !1n !>ct n !q#r#ZY[X_^VWPSQRȎشt#/=u>cts !w# &gtw#>ctq !&gtq !>\#u3&Gct_n !x#>ctIq !ctIq !p#x#z#>ctn !H33333۹& t:u ItFGt 3p#[p#Z@&u>ctn !z#>ct"o !ctio !ct}p !~3&ctp !@3&cto !>cto !ct p !ctFp !ctp !ctp !p#@&tz#dr !Ts !s !`#p#]#z#x#0\#`#]#<up#p#@&tz#<tuy#>ctr !uy#>ct4r !uy#>ctQr !uy#>ctQr !uy#>ctr !y#>ctnr !ot1uy#>ctQr !Hy#>ctQr !2<uy#>ctr !y#>ct4r !ZY[X_^MZ6`  ʢCn3]5 ) w E 9  l `   9 " ymC7^R w a9%RF PK" xMlC~$g% !! z o K ? - "  &&&&&p&N&C&4&&&%%%%%%y%R%G%8%%%$$$$$$*}*r*Q*)***)))))|)m)K)@)1)))(((~(s(d(C('((''''''&*-,,,,,++w+k+E+9+++**22 211/11155H3>333#32k9_9K9=998888w8;8/8!8 87f717&7776666o6c656)6;;;;};q;9;-;;::::v:>:2: :999l@<@0@@????v?h?\?AB5BAAAkA_A      q u    k37)-//2"6C6 CD % U +FFFFFF@@FF9F|^^?-t?/tF^PpW[-A=ww.o/FNwPoFhN`NX^GPV[=KtGFPH[P{H[PsH[PkH[PcH['P[H[\PSH[PKH[+P.D[FFFPPQ(R^7jW 6RPP(PPX $>t%~tPG[PG[-PG[+PC[~@F>2t +P"3[:P P6x>F>tFd>u~t~u<P P6|u>F~t.PPO[[F@u<P P6|E>vN[>t HtHt,~tv [v6Jc[[>Jt t޸FJָ]UWV^e i>Nu$L*HtHHtHtHt HHtNNNHt HtHt#Po1[Po1[Po1[NFF*F^F@@F^GF^PaT[^F^?u^PdT[^GF^P,T[^F^?uFFF^xtF FF ؃*u` P6[ԸF׹P^_]&$  ңhҸգգBңңָգfңԸԉԣZ҉\ңԉԣң~ո҉ңՉգԉԣωϣ.҉0ңщѣb҉dң҉ңՉգԉԣ҉ ң8҉:Ҹ,ң@ңJ46+ ң ңԣԣϣϣ0ң.ңѣѣdңbңңңգոգңhң֣~+ԣԣ ңҸ$ңңBңң,ң@+:ң8ң&ңգգfңԣJҸ҉ңՉգԉԣZ҉\ңԉԣ4҉6+ңң ң ңԣԣ0ң.ңѣѣdңbңңңգգ&ңգգңfңԸՉգԉԣωϣZ҉\ңԉ+ԣԣ ңҸBңң,ң@+:ң8Ҹ$ңգңhң֣~գJ+6ң4 6 >PtU+PңѣУУ9PtP P [[+FF>Pt+@^&7vTPPQиPn [[@^&?tSP&-t)-t,-t/-t2-(.t%-t-t-tP&&&&ЃFF~}]>Pt\6PҸePP=QиPn [[6666иPPQ =P~ P= Pn [[]UWVF>tУ2 2>tУ22>tУ.2*2>tѣ>2:2>utFF(^?1.tFFF؃(tGnLJ(Ƈ(>Nu-n؋(((Ћ3I(@)>u 2>u2F 2^F? F~J2r~uvFF(^?|.tFFF؃(tnLJ(Ƈ(>Nuen؋(((Ћ3I(@)6FF 2~J2s%^?t FF^LJ 22NҀ>2t@FFt4^?:4tFFF؃z4tnLJr4`>Ru;FF3^?3tFFF؃3tnLJ3^_]UPPPPP3+P"3[~tv66>2t >PtPo1[>RuP6Ԛ6[]6UP[6JP[6^BP[ uU~t4PPM[[Й++FPvF [[Pn [[PPM[[FFFЙ++FPv [[Pn [[PPyM[[ЋF@FF@FЙ++FPv [[Pn [[~ t F@FF FFPPM[[Й++FPvF [[Pn [[+PPL[[Й++FPvF [[Pn [[`PPL[[Й++FPvF [[Pn [[PPL[[Й++FPvF [[Pn [[PPKL[[FFFЙ++FPv [[Pn [[PPL[[ЋF@FFЙ++FPv [[Pn [[PPK[[ЋF@FFЙ++FPv [[Pn [[PPK[[ЋF@FFЙ++FPv [[Pn [[KPPTK[[Й++FPF@FP [[Pn [[F]U F~t F~FPPJ[[6֚2[66՚3[[P"3[PPQRR3~tF@+FPPPPP3~t vD[F~ub6L[&~u 6L[+*= t=u]UFFPP)J[[Й+-)PvF [[Pn [[PPI[[Й+-)PvF [[Pn [[,PPI[[Й+-)PvF [[Pn [[FFuQQI[[ЋFFЙ+-)Pv [[Pn [[PPMI[[FFFЙ+-)Pv [[Pn [[PPI[[Й+-)PF@FP [[Pn [[FPKK[F*FFP;K[F*;FtF~ta6^J[ uPvPPPHЙ+-)Pv [[Pn [FPJ[F*;FtFNFF]U 66([[[F>Pt +P"3[F`vyJ[FVvRP66Z uF>Pt:vvvP8F FtFVRPP8P8[F~h|>Pt 6P8[[>uP8[Pn4[]U FԌ^FFFPNQ6F~άu+FFFPNQ6FFԋFԉG P8[P4[]&&GNңD&Gp&G2&G4&G&G&G j&G &G &G<&G&G#&GB&G&GS&GV&G&G&GT&G&GY&Gn&G>&G&G D&G"}&G#&G$X&G%W&G&&G'&G(&G)F&G+&G,`&G-&G.&G/&G02&G1&G5U&G3U~u"^&G&Gj&G &G &G <&G&G#&GB&G&G~u-S^&GV&G&G&GT&G&GY&G~u2}n^&G>&G&GD&G }*&G"&G#~u3X^&G$W&G%&G&~u^&8G'u&8G(u F&9G)t ^&8Gt&8Gu?j&9G u6&9G u-&9G u$<&9Gu&8Gu#&8Gu B&8GtS^&8GtV&8Gu$&8Gu&8GuT&8Gu Y&8Gtn^&8Gt>&8Gu&9GuD&9G u &8G#t}X^&8G$u W&8G%t^&G'&G(F&G)&G+&&G4N&Gp&G2Ң`&G,&G-&G.&G/2&G0&G1U&G5]&&G=&G>&G?&G@R&GA"&GB&GC&GE&GG&GH&GIL&G,`&G-&GJ&G02à&G=&G>&G?R&G@"&GA&GB&GC&GE&GG&GHL&GI`&G,&G-&GJ2&G0UPPj;[[F@te+PPPv:=PrQv<Fv:[~=u6ԋԉFVFF^rԋ^F&F~=|<P P6|)+]U"iP6666 66,ҸCPP P PPP3A[[Й+-PP [[Pn [[PPA[[Й+-PP [[Pn [[PP@[[Й+-PP [[Pn [[+FPFPPx6B[* tGF- t/-t1x ~~ ~PP1[[6F1F*F#x ~~ ~PP^1[[~u~u+PrP&>ju><s >uwPPPB9F@tK=PrQv;Fvk8[~=u<PP6~(<PP6'PA[<PP6']øPPQQQ3+P"3[PP [[%PP1?[[=P~+P, Pn [[>t27P>t=BPHPP>=P~+P+ Pn [[6pԠ*P6NҸxPP> =P~+P+ Pn [[PP>[[=P~+Pf+ Pn [[>tP>tP>tPPP-> =P~+P + Pn [[6<666jԸ$ PP= =P~+P* Pn [[>Btm r P>#tx } P>t  P PP= =P~+Px* Pn [[ PPo=[[=P~+PO* Pn [[>Yt  P>St  P>t  P PP= =P~+P) Pn [[>t % P>Vt+ 0 P6 PP<=P~+P) Pn [[>Ttd i P>to t Pz PP<=P~+Pa) Pn [[ PPX<[[=P~+P8) Pn [[>>t  P>nt  P>}t  P PP; =P~+P( Pn [[6D6Ԁ>t  P PP; =P~+P( Pn [[M PP;[[=P~+Ps( Pn [[>WtZ _ P>Xte j P>tp u P{ PP:; =P~+P( Pn [[ PP;[[=P~+P' Pn [[6FҀ>t  P>t  P>t  P PP: =P~+P' Pn [[! PP:[[=P~+Pi' Pn [[>t, 1 P>t7 < P>`tB G PM PP0: =P~+P' Pn [[>t  P>2t  P>t  P PP9 =P~+P& Pn [[>t  P PP9=P~+P{& Pn [[aU+P"3[øPP [[*PPP PO**P"PRPB P7*66Ըv P%*L*PPP P **P`P P)2*PP P)#P)[PPPPP36$Қ2[6 6 Қ3[[P"3[@PP8[[Й+-(PP [[Pn [[UPPPPP366Қ3[[6&Қ2[FPv [[FPn [[F~|݋]UPPPQP36՚2[66՚3[[P"3[vNPP7ЋFHtHt Ht'Й+-(O+PP [[Pn [[~t/QPPg7[[иP+PP [[Pn [[]UkvP]P"]U6VF+LFFF ؃*tFF~tP[FFF9Ft] n؋*FFFF^xtF F^؃?tFFFF9Fv[FFF |F9F} vv[[68[F*F t+F*F~uF~ u8FF FFF^փ?tn^P FFf^7tn FFFԋF9F~B^Ԋ;Ft FFn^@ FމFظG FW F~txp~~p=Puw,;th, tz,u,u+FډFFҌ*^Ҋ;Fu F܉FFF F܋F9F|ۃ~ty~PP=&[[n^PFFF FFF^Ѓ?tn^@ ~uFFnFFNn^΃?u~NxFHF}FF9FurFkFF FFF^̃?tn^@ F+FHuFnFFFF^ʃ?un^@ >Lu^]U vPPQRQ366Ԛ3[[6՚2[P"3[PPPPP3PP [[+FFFFF*F9FtF@F6Қ2[66Ԛ3[[^PP73[[FPn [[66Ԛ3[[6՚2[^7ww`PP2 FPn [[F*~t<66Ԛ3[[6Қ2[gPP2[[FPn [[F566Ԛ3[[6՚2[iPPw2[[FPn [[66Ԛ3[[6՚2[^wkPP<2FPn [[66Ϛ3[[6Қ2[^woPP2FPn [[66Ԛ3[[6՚2[^7rPP1FPn [[F FF ؃*u+~t66Ԛ3[[6Қ2[u66Ԛ3[[6՚2[wPPP1[[Pn [[F]UWVF n؋*F*3I*ы3Iы*3IщV^Ћ3FFF^xtPPPPP366Қ3[[6Қ2[vP [[n^ww7yPPa0 иPn [[FFF@PP [[PP,0[[иPn [[FFFvvF [[66Қ3[[6Қ2[^?uPP/[[иPn [[^t1G F6\6ZҚ3[[6fҚ2[^www tHuHu606.Қ3[[6BҚ2[^wPP?/иPn [[6d6bҚ3[[6hҚ2[^wPP/иPn [[606.Қ3[[6BҚ2[^wPP.d66њ3[[6Қ2[^www/66Қ3[[6Қ2[n^ww7PPa. иPn [[66Қ3[[6Қ2[^?uPP.[[иPn [[FFF9F}66Қ3[[6Қ2[vv [[n^ww7PP- иPn [[PPv^_]U66՚3[[6֚2[PPPPQ3P"3[vPPA-Й+-(P P [[Pn [[PP-[[Й+-(P P [[Pn [[+PPQPP,[[Й+-(PP [[Pn [[ދ]øP6666 66,ҸNPPPP +PQ'QQXރ+PPPB)UF~u3P6666 66,ҸAPPP Pa ~uIyPP+[[Й+-PP [[Pn [[PP+[[Й+-PP [[Pn [[PP}+[[Й+-PP [[Pn [[~u +PP +PP(P06c-[* uF=ruw$, tJ,tY,(t_,to,tWtg,tO,t_,tGx ~~ ~PP[[F_FHtHtJ+JLB~u<JL.~u(x ~~ ~PP[[J܃~t*]øP[øP[øs0PmP+Phø0PxPr0PU>u>nt:P P6nnø0PP61P,0PPB2P>tt>u >t:P P6j(>t!N9Dt:P P6lDңNҡN9t9u9t9uU F>u+FFp.^?f-tFFF؃v.tn؋Fn.0PPf.P%>u>u><t*B׀>t>jt t&PP6f]ø0PP3P>t!>Ut0PP6h{*UҢø0PP23Pø0PPj4PløPP[[øPP{[[øPPm[[øPP_[[øPPQ[[ø/PPC[[ø?PP5[[øNPP'[[ø^PP[[ønPP [[øP"P[[øPP[[øPP[[U V^F+FFFЉF66՚3[[6֚2[PFP [[~t~ t&FЈЋƇF^vF~ tԡFPn [[8~ t8~t2~^t,FЈЋƇF^vF~ u¡F;F~PFFP [[FF9FZ>tPn [[F~ uCPFFP [[FF^vFF9FxU~~U~^u1~t F6 F6@Қ2[F^vF~tF~PP[[^]UVv6666 66,ҸNPPPP+FFPPPONPPPP366՚3[[6֚2[P"3[JPP^v060'[F*F t+F*F~t+F- t-tCv^xt3F3F,-It-t ~tNv^xuF~u#x ~~ ~PP[[<փ~uO~u^]UWV+FFFFF^xtFF^?uG3I^Gы3Iы^G؋3I;V~‰F^GFFvF^xt+FF@@FI^3I^Gы3Iы^G؋3IVFFF9FF9F}FFFF9F}FFF=~FFFFF=N~FN~;~ F@$FF+-؋^FH^ F+-)؋^FH^ F^_]U WV(v 2[vv3[[+ԹQN +NANAAًɋvƄԻFHPFHP [[Pn [[ ԋϋ󪰺ԈԋFFFHPv [[Pn [[FF9F}ڸԋNAAȋ^ƇԼFHPF@P [[Pn [[^?t?SPP!Й+ȋF++FPFHP [[Pn [[v vvv3v2[vv3[[P"3[^_]UVF+FFF=vvv v 3^?uPv [[^www PP Ћ^?tCPF-PPPP HҋF9Fu PPPP| Ћ^ t HtxHHt5F9Fu6@Қ2[6:686֚2[66՚3[[Pn [[^GFFvF^xtFF6~՚2[66먋^?t9^?t1^t6Ԛ2[66&6֚2[666~՚2[66Ԛ3[[^www%PPm иPn [[FFF9F~kF9Fu,1PP1[[6@Қ2[6:68Қ3[[F+F -Pv [[Pn [[F9Fu+PP^w FFFF9F}F^]U 6@Қ2[6:68Қ3[[~ u6CPP[[Й+ȋF++@PvF [[Pn [[~tPUPP?[[иPv [[Pn [[~ uZgPP [[Й+ȋF++@Pv [[Pn [[~ttyPP[[ЋF-PvF [[Pn [[~ t~PP[[Й+ȋF++@PvF [[Pn [[~ tPPD[[иPv [[Pn [[~ tPP[[Й+ȋF++@Pv [[Pn [[~ tPP[[ЋF-PvF [[Pn [[~ tPP[[Й+ȋF++@Pv [[Pn [[~ t +PP~t+PPP6]UVF^F^@ F+ɉNN F^?tFFFvF^xt6[F*F t+F*~uFF- tY-tp^7tn FFFF9F~U^;Ft FFv^@ v@ "FFF9FPv[[ FF~tJx0~~0=Pu w,;t(, u,t(,tlyи~PP( [[V FF9F}yv^@ ~tNFHFv^xuޱv@ F9F}1v^@ FF9FuFv^xux ~~b~PPv [[S~tNFHFF9F}9n^xu&FF9FuF9F}n^xuڋF^F^]UVF+FFFFFF^xtvS[[~u[ PPFPNQVR^Sv2Fv6666 66,vvvvF+F@Fvvvvvvvvvvvv36֚2[66՚3[[BPP[[Й+ȋF++@PF+FHHP [[Pn [[XPP[[Й++FVF+FHP [[Pn [[lPPb[[vvvv3Й++FVF+F@P [[Pn [[vvFPvFHtrPPPPP3^]UVP66646J66646JҋF+-)؋FPF+- ؋FHPIQRFF+ɉNN؊FF!~tF9F~F^vF~ uދF9Fu(~tN^vF~ u~uFFF@PvP1^ƇPvF [[Pn [[^v8uFF+FHuiPP[[ЋF+Й+@@Pv [[Pn [[x ~~ ~PP[[]ȸP"3[F@FF^F~uPPG[[ЋF+Й+@@Pv [[Pn [[^]U VFF FzF^F F^t:^GHtHt,^G^_8u^G^_9t+^FvF^xtFFF9F}{^]U VFF FgF^F F^GHtHt(^?t G^_^?t G^_FvF^xtFFF9F|^]SB[˴0!<s3P˿! 6+rׁĮsZ3PL!ƱH6ɻ66gP6g P6g6g6&6+۴J!6(Jι+3NK3H6I6G6EûP.Dظ6REPP6>@uXP6D͸P! 5!ʌ%RD!>Rt6T͌\͎(&6,V͌36Rsy6Z͌ڻ6R(&,>3&=t4 t 3u!1ʱ,Ar ,Ar ª1ʿD!r €t1@Ky8Ϳ<^Ϳ^U3UUVWUVWQ uϿ^Ϳ`v>@uF;`Ϳ`a<Ϳ@g tX Pu ~uFX uFL!_^]ËTRʸ%!>Rt STʴ%!;s OO ;s EtUP>XtXʸP{]øY+r ;\rQ3V3B22Ut P<^Ï^ʴ0!*ʺ<t)(&,M33uGG>Kʹыѿ(ʬ< t< t< to tkGN< t< t< t\ tX<"t$<\tB3A<\t<"tӋѨuN< t+ t'<"t<\tB3A<\t<"tۋѨu>EGB+ģGʋ6?CC6Kʬ u6(ʾ3< t< t< t| tx6?CCN< t< t< tb t^<"t'<\t3A<\t<"t\Ѱ\s"N< t. t*<"t<\t3A<\t<"t\ٰ\s"3&^U(&,333 t&>tFu@$F PIϋ3_I&6;uQVWʹ_^Yt&?CC u&]UVWVpͭ;t@t 3_^]UWv t 3I>@uBʹ@!_]SQ"QP ["Y t[ËQr3]sPX2]s]2â- u">*r <"s < r<v`ט"ÊUWV~VOFPv~PF~PWF^_]UVWvDth@udDt tWL $ $Dvʁ3ۊ\uLuuC~t tu$1@tQ~WSM >L \SV[[[Dt֋ T+BUJT QQtS Y|V;u3F31 tQPPS3_^]UVvP Yށvʁ t LG LGGDD^]UVWvˁ~tˁt ˁuHvʁD u8u3 tDDELSP [[ t3_^]UVWvvʁt#3ۊ\1@tVX~t 3ED_^]UWV+9~u +PeUvD$<u:u ށvt(+DF ~PtL*Q9FtL DD^_]øPUWVv+~F96rDtV\@tG䐃~uF^_]LLLLM'MPMMUqVW3FFvvF t~}F, F6N*u " y02F F FF0u,9/Fu0FR3ҍX3ҾƆ: F3ҍpGFN@F ~tF =guFvvVWvFt .̃F $̃F Ft~uW*̃guFuW&̃&=-uGNWOY+N@F 5FF'FtFF0QVVFFtNFFtF@t3F@t } N؃ڃ~}Ff uF~N2v5Ft&=0tO&0AF@t1Ft F-F Ft F+FFt F FF++F}3WQF uȲ P~NXFt FuȲ0Y_PkXFtȲ { vvËvЭvF t‹ uØW^Ox ?3_QRSPZY=uNW3& _tFNW3 _tFW  u u30<9vFNY+G_^]U^;/r >!rƇ1U^;/r *FtH~ t3ɋѸB!rKF uFVy(6VFѸB!FVy NVB!؋VNF B!r1mU2>*r~F FU2~FFu@u!̀uFV$ Ǵ=!s=u t %=u >!FD!€tN@F@tFtt 3ɴ@!>!VC!eFuuѸB!ٍV?! t~uًѸB!3ɴ@!3ɋѸB!gFNNFuFuV!F$ FV=!rړFuFt VC!rF@u=VC!2%tFt ;/r >! N1ʋË]2ܡ$#3ɨuU^;/r h3Na1uZ>@uB͋NV?!s >1ʀt71VW% < u1:t<u1G+_^1t< t1@tD! u V?!r԰ ,FV?!r t~tѸB!~ t V떋V딀~ uU^;/r >@uB1 t B3ɋ!r1ʀtnV3FFWVfN8 uJ=vFܺ=(s+ԋN< t ;t"j ;u F ^_^7PSQ+Q^@!Yr F;wY[Xß~us 1@t ^?u F+Ff^_N uV@!s u1@t ڀ?uY\;s+3"UV^9\s KK9\v\^]UVWNwsr s3_^]ASw_ 3#[uBSw_;t6K3 T;sr#tH;s#rЭtD[GG[Lt +H+ƌQWGtct+IAAw tLs 30?&"= t;ru"rHs3#R.Zs t+WGw JBw _YËGtJwN;r9Ws6BSQގƱuGt Ƌ(+ÎËشJ!Y[rGtJWWw;w uw=t$OO_UWV~vߋN t2^_]UF ]ÐU^7tG ]UF- ]ÐU^7tG]UVW F͋FF<%t <&tF FFDFDVFF~]MUu} U^]W~]MUuE r3u _^]UWVBFϾωFPvPx V+P^_]UWVv+FF|:u9FtPVv^GFF 9Ft^F =.u~G=t=/t=\uEF~t0~t$F+=~FPVv0^^v ~t^~tZ9vrU~ t$F+=~FPVv ^^ ~ tZ+F=~FPvv ^^ 2~ t#+=~FPVv ^^ ~ t^ ^_]ÐUWVv~t^?t F:F~ t =tGF=u}/t }\t\F~ t GF=u~ t=t =.t.FGF t^_]ÐUVA!{UfԀu u3 t uH]UF5!‹Ë]U,!^/OwW3]UWVN'~3ˋv D3&:EwtIIы^_]U~3I]JΘ3҆b t"u:t33۸0BËYtONɠ<@tEu u$=$(tYt >[@w袎 t'4ϣΡϣS>~u3ΣΠ3ϣϢ%Ϣ'ϢϢK@&ϠH#ϠH!@438,u @&"L?v3ϣϊ2@u.&cu tɡro|1:ˀ>,uY t3L&&&**********???????????G4>~t>'t.' JÀ>~t>}>'u PRZX'>~w3ێû|&w&7S&d&_ >t+ۊ΀ˀ>|ɹUVW _^]>~w [&&GáϋϱʋɠΊ`ιQ&1CCY83ϣÊ66ϊϊ>|UVW_^]Ê u:v 2J%J"VW6΋>;u;t~>~u u=wԣ\>tC>@t<2PR>~u&Yu3Ɋr$ 2UVW _^]2ZXs J Ή΋Ƌ_^Ê> u8&~u:v 2JPXà΀>~u$΀ Êαp >uɠ_΢V>~u =w'3ێ&fPUVW _^]X>~u=v =JθhYtPر㍷XNI+ێ&&fP؀UVW _^]XP$؀ ܷUVW _^]X$ Ę^ }+J;|HJËB66ƀ>t]_d) ":r:r zéuTd߀>uC>t;>tY t 3Ɏ&t!̊ % %?PkXG^6K3ێ&Uδ*׊vɊ̢ɉ|RQ&033ɺBYZɣw<tɉrPSQWY[ZΈ&T*3۴<uCE%<r<]1E-W=&P&ERYZtVZrZYT@~uBV%0<0u:u2YTw r t.Z2[V$0<0uZY[Yt3)tY΃>[ w[ t YtY [@ u .[κ>Yu3X$$:uX_Y[X3&uRu4&&&V΀00t4t$0t &PZ#R&PZ3RΣPΰY΢ZôG:ɸtÀ>Yu33&&0$,t&V&&Wu3UVW_^]ËIJÀ>~6}6|R62PڣNXbZPS>|ɴBBY t,38,u$&tR&c BJBZ[Xár'SQPRJJ>|P]YW uYt>t3&c ZXY[VW'u QɹY~~_^W6`SP2^΋R3ɋ`ɉpZ3ɋ`ΉrX3ɋ`ΉtΊ^Έx[3ɋ`ΉvΊ^Έy΋Ǣ^Ώ`_P؀XPXP؀XBJPRBB2JB2JB2JBJBJB$ZX(@?- = 8-o---P?- = 8-o---P^  = ?-v-M -'PfXY#u&Yt >[@w<v&Zt<t Zt"-3 Ztø Z t W3>t &L裌ɿ΋ɱ3_YXt*ɐYt>+u ^0UVW_^]UVW_^]>2tZt^>+u 2UVW_^]zrã|ɊUVW_^]:w u:w <rtUVWxR~v rt &E< t u+IP t)< tUVW2 N v"UVW_^]**6ψψ6$_^]6>%u?S˜6+#w$[H+Pv$Y[6>&t QY6%JUVW_^]6:6!vS[6UVW_^]6%÷68>~u6>66!ϊ6*C:v6.66#Ë#+σ>}"9~>&t  %!+σ>}9~ ϸlU@BPRFH^KZX]r@BS!+CtX#+Cd%=(@$(8---P38H.Y.p...n5Paw{###M . !h!!P8-o---PkfL.Y.p...5Paw{###M . !h!!;=????????Yt.Zt'\ dP6XYt ,YtZt dYt  ΰΰ?àɴ>~uY t3۴ =u;tDPRS[ZXr9 u5YtʰUVW_^]>TtUVW_^]Àwt uu3ЋЉ`΀.^P:vɱ Ģ_X (@ -~8-o---(3V$$$$$$$$%J%^%W r%%%&*&_&&'(+b,P@-~8-o---Pkf`$$$$$$$$%J%^%W r%%%&*&_&&'(+b, P^@~?--P_`$$$$$$O%%J%^%W r%%%%(&Z&&'( P^@~?--P_`$$$$$$O %%J%^%W r%%%%0&'( P^?"-~8-o---P_`$$$$$$$$%J%^%W r%%%&*&_&&'(+b, P^?@~8-o-:-P_`$$$$$$O %%J%^%W r%%%%0&'(;=????????ZteZt\>[@wY tHdT[6ȢZ t-V>[@wY td%[6,àUVW_^]>+u+#2UVW_^]ã|PUVW_^]X&ɣb=u;t1Ar,2ΈΊP2UVW_^]X2UVW_^]:w3 u-:w'rW2._gr r PS:vɻK.ע_[XRBu& "2u' t! tN& uOuN& "2u2ZRBu& "2u# tF& uOuF& "2u2ZPsNx;6zsu :.xvݽ2䱪uɺB&t2Ɋ;>zu&x΄uusOEɊ&;6zt2뱪uɊ&322VEt%MRuɊZ&;>zu&x>`Έ.^W>et^_ t 2dڱuɺB&2;6|u&y΄tuKtsFɊ&ڋӄt3ҋ2{R3҉6fV.hU23>|+t* t&MREFɊ& uOu;6|u&yZ6`Έ.^_WV>eti^_ t2Z6fΠhðB26Jú6>v &%GuQ"&%GuDPRPB26B6i6"$6X6ZX6i6i6Ut66>RZ$Fuv/PRZXr;s$FuȃwP"XJ P@OsP`$$$$$$5Paw{###M ' !h!! POsP`$$$$$$$$%J%^%W r%%%&*&_&&'(+b, (@@Os}@3$$$$$38AMw{]5Ln ! Z ***********????????????  $$$(((---222888??????/????/??????/??/???????/??/????'?/?7????7?/?'??'?/?7??7?/?'???'?/?7??7?/?'?--?1-?6-?:-??-??-:?-6?-1?--?1-?6-?:-??-:?-6?-1?--?--?1-?6-?:-??-:?-6?-1?                                         ZtERt>PΰZt RtdTûxZtRuàUVW_^]>Tt,33UVW_^]>tUVW_^]3ɰUVW_^]=u;trʰUVW_^]Àwۀw uuӱ£`^â_`Ί_`Έ_΋`&ËjBSts&% yG6ls yG6lËjSts&% y6ls y6lË6nStu&%s&%Ës&%& %&0%2 2.!.+Ë< ;w+ʇ6ɋ֋2 t֬ t&  &Ъ&0GW>`Π_΀>et#σ̇ˊϊ̄t G_á`3ҹ@ñСt£zvΉ|RW>`ΊdΊ6_33۴&et;>ztO&:t 2s CG>` tSQQY[_ZWU>`ΊdΊ6_3&:uKt G;>|vO3ۋ<>fΉ>`S3۴&et2;>|w&:t 2s CGO tSQY[Z>`΋6f]_Êϊϊߋπ3????P_Xã|ɡɣb3ЋЉ`΀.^^`Ί&'"s^`2/"0/^΋`&2/"&0/Îbò    2.|. & %G"&%G&2%"&0%GÊ$Fv &%Gu_"&%GuRÊ$Fu?vD6ɶ6& %&% &%&0%G t ȃwك;r uN"6W>`΋^ x$2 Ktqs>etx&2"&0GÊtF>et:S2π>uӊ&2"&0G[&2"&0G[#t넀>et &25"&05_S2π>uW_"[È_>`ΊɊ.^ΊdΊ6_δ&et 23π>uF㊧ϊυt&3Ê2"t 2"" ERVWU;>zt]r t.r+&;>zt'2„ts2" .s..G%Ɋ.tr:.xwr:.xv͋ t >`Έ.^[݋]_^ZWU 2„uMtsG&;>|u:.ys3>Έ.Ή>`Έ.^U3ŀutp;>|u :.ytdw3^sG>t&9>|v@2u2" G&9>|v!2SU"[u2"܆ Gt G.tr;>|u:.yrQ tmY>`Έ.^Z݋Պˉ>`Έ.^΋6Π]_ ҋxيs yI6jrKuSt &2%"&0%Ê&St&2 "&0 G2KuPɊX6lSt!&2 "&0 2̓+s>KuPɊXO[يsSt&2-"&0- y6j+s>KuPɊXO6lȃ+s>Ku6St/u&2="&0=+ss &2="&0=+sËڊsɊO+sË Љ`΀.^^r`á`;psá)`á`;rrá`P:vɢ_XV6`λpB2^&,"*sX^V6`λV6`΋޷BJ^B`&'J$B^`&'ÎbκBJús y6jr!&2G6l&2>n&%ús&= y 6j>n6l>núns&&%G=D=iλ%<t%ɻ%.R*ZB$Fv &%Gu"&%Gu6i6iR޺BJ2BJB6i$BZ$Fu6v7ӶPRBZX t,ȃw;r ukNP"BJX?WBJB>`΋^ x2 KtLs>etT&GQÊtĀ>etP-X&%Y#u>et &-_S2"[á`ιP3b`ι(3U`ιP3DWVS2ЍOt OЍЍOЍOЍ׈οNy[^_‹tΣzvΉ|PW2>wOOΈ__XR6`Ί.^κBJdB23ZR&ɀ>etBJÀ>etBJ&>et~_& u/ǀ>etBJ&>et G& t5G tOO͊À>etN t& ZRSB&%&%KsJİB[ZuW`mG_&2BJՋR_BZøBJÊu u Bs"BÄtGuu u Bs"B2&"2u t F& u OuF&"2tRU6`6^S>Ίôt t#uB>t+F6`^΀3&^t P:XuE.^su[ StFu[^Ώ`]Z2&"2u t t N& u OuN&"2tRU6`6^SÉ>δ tSuC>t,N6`^&^t P:XuM&^su[ StNFu[^Ώ`]ZõMs.^΄&^tP6`8Xu Ms&^s3õ3Es6`Έ.^΄&^t P8Xu sE.^s3þ`mu FN&&OI F&&Oþ`mu FN&&GI F&&Gss;6zsu :.xvͽ32&t2w;>zu&x΄uu sOE&;6zt2&2VEtM&;>zu&x{>`Έ.^W>etP/^_ t 2 &2;6|u&y΄tuJt sF&߄t3qR3҉6fV.h23>|+t tMEF& uOu;6|u&y6`Έ.^_WV>et ^_ t2ahZO܋6fΠh89:;<=>?PYu>Tt(~VWW6ɹZUVW_^]_^Yu>Tt%=u;tr2ΆUVW_^]:w?%??YuFՊŀ>u$8u <u t2 W3ɊA&&u;t 3QYr"ANNK&&SQY[r_^^r`á`3p΀`u `;psá`+s`á`3r΀`u `;rrá`+s`á`Ί`36& 咡t£zΡv£|P\ g/p/Z/L.Y.p...5Paw{###M . !h!!Y t&.dE Φ_Φ[ àɴMã|PUVW_^]X&ɣb3ЋЉ`΀.^@P S0P3[0L.Y.p...5Paw{###M . !h!!Y@t/dO ΰ_ΰð@bø#3؁>POLuX>RIVuPء=FtD=t?؁>Uu,><PAt$>OLu""=VGt=EGu3ء%=t?26>~u=L6>Yu)6Xt!RuutZZË BOu3Ǘ&P6€6Η6UFbUyu ɠɣ(3^t%<|t2 u'JJ{38buxɈbɊvv @uS&ɸrJxr:Уϣu~u tɣr"]Ju(φ>bUVt J u76:t(͈6ɀt J:u2РRPd1 Jɘ]ˡY3<t@tu4u. u&u uKu>[@vߨ@t@=UϋF]3JΠUJFV]J΋U΋F=wL<t. u28>~u>3ɊJ6 io38~uJK]JUd΋FHN I;~J3ۊѣϋѣ!ϋFHN I;~J3ۊУϋУ#+U/]UWJ~@~ @~!@~#@_]U͋F tyشy9]JɡΣϡΣϋ΋SrJχsCUSsϊ$CS[YQS[Yπ&]Rϋ;}ΉZR;}ΉZá;|;|;| ;|29~@9} 9~ 9}  t,JΨuΨt˟ΨuΨtӞtË+sË+PQ3ɡ΀>uΡ+@ȉ3ɡ΀>uΡ+@ȉYXSPQRVW _^ZYX[uщΉ3ΣΣΣΉΉΡ΋΋΋UZϋ]CÜPS3[XÁ>@uCU˜3ɋ^ tɝuPeX=$]zuzJUau6zɋFwΣrL)Xi]J! MS Run-Time Library - Copyright (c) 1990, Microsoft CorpCFG Starts AccessDOS, which is a package of DOS extensions for keyboard, mouse and sound access. ados [/A] [/C] [/M] [/L] [/X] /A -- Automatically install AccessDOS. /C -- force AccessDOS to run in Color mode. /M -- force AccessDOS to run in Monochrome mode. /L -- force AccessDOS to run in LCD mode. /X -- force AccessDOS to run in minimal mode. You cannot change MouseKeys status after AccessDOS is loaded. Please unload AccessDOS and use this switch when installing AccessDOS. B40:%02X=0x%04X numberOfSerialPorts found: %d serial1: 0x%04X serial2: 0x%04X serial3: 0x%04X serial4: 0x%04X AccessDOS 1.1A package of DOS extensionsfor keyboard, mouse and sound access. Trace R&D CenterWaisman Center and Industrial Engineering DepartmentUniversity of Wisconsin-MadisonCopyright - Board of Regents, University of Wisconsin SystemSupport for this work was provided in part byIBM Corporationand by theNational Institute on Disability and Rehabilitation Research (NIDRR)US Department of Education under Grant #H133E80021Press any key to continue.ͻ Press Escape now to abort loading AccessDOS. Press Enter now to go to the main menu. Press any other key (or wait 20 seconds) to install AccessDOS with the settings saved in the ADOS.CFG file. ͼ Press any other key (or wait %2d seconds) to install AccessDOS ACCESS0x%02X: %Fp %.15Fs Interrupt Number: 0x%02X TSR not installed. An error has occured installing TSR helper routine.! TSR not installed. An error has occured reading shared parameter block.Save AccessDOS SettingsAre you sure you want to save the current settings?Press Enter to proceedPress Escape to return to menuThis will save the current settings to the ADOS.CFG file.SerialKeys: TrueFalseTrueFalse skSerialKeysOn: %s skSerialKeysLoaded: %s skPortAddress: 0x%04X skInterrupt: %d skBaudRate: 0x%04X Keyboard Package: TrueFalseTrueFalseTrueFalse fDialog: %s fFilterKeysOn: %s fOnOffFeedback: %s fWaitTicks: %u fDelayTicks: %u fRepeatTicks: %u fBounceTicks: %u TrueFalseTrueFalseTrueFalse fMaxDefault: %s fClickOn: %s fBounceOn: %s StickyKeys: TrueFalseTrueFalseTrueFalse sDialog: %s sStickyKeysOn: %s sClickOn: %s TrueFalseTrueFalse sOnOffFeedback: %s sAudibleFeedback: %s TrueFalseTrueFalse sTriState: %s sTwoKeysOff: %s MouseKeys: TrueFalseTrueFalseTrueFalse mDialog: %s mMouseKeysOn: %s mOnOffFeedback: %s TrueFalse mMouseKeysOverride: %s mMaxSpeed: %u mTimeToMaxSpeed: %u ToggleKeys: TrueFalseTrueFalseTrueFalse tDialog: %s tToggleKeysOn: %s tOnOffFeedback: %s TimeOut: TrueFalseTrueFalseTrueFalse toDialog: %s toTimeOut: %s toOnOffFeedback: %s toValue: %u Handicap: TrueFalseTrueFalseTrueFalse compDialog: %s compDialogId: %s compDialogAction: %s TrueFalseTrueFalseTrueFalse fSpaceSaver: %s fComputerNotFound: %s fHearingOn: %s TrueFalse fAccessAlreadyLoaded: %s eqButton1: %d, eqButton2: %d, eqCurrentButton: %d eqComputerId: %d, eqMouseDriver: %d, eqMouseId: %d eqCommBase: 0x%04x, eqExtendedSegment: 0x%04x eqVector: %d, eqInjectKeys: %d, eqVideoType: %d compDialig: %d, compDialogId: %d eqComputerFlag: %d, fComputerNotFound: %d Press any key to continueAccessDOS 1.1%s%s%s%s %s%%s%s %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s(function not implemented yet)Press any key to continue.About AccessDOSPress any key to continue.Install/Run AccessDOSCancel/Quit AccessDOSAre you sure you want to Install/Run AccessDOS?Are you sure you want to Cancel/Quit AccessDOS?Press Enter to proceedPress Escape to return to menuThis will install AccessDOS or, if already running, change the settings.This will quit AccessDOS or, if already running, cancel any changes.StickyKeysMouseKeysToggleKeysSerialKeysKeyboard ResponseShowSoundsTimeOutMiscellaneous AdjustmentsSave Settings HelpInstall Access HelpCancel Access HelpMenu HelpGeneral InformationStickyKeys HelpMouseKeys HelpToggleKeys HelpSerialKeys HelpKeyboard Response HelpShowSounds HelpTimeOut HelpMiscellaneous HelpPress ESC to exit help PgDn or Enter = Next Screen PgUp = Previous Screen %s %s%s%s%*.*s%s %s%s%s%s ͻ  OK OK  ͻͼ Cancel Cancel  ͼ Press Enter now or Escape anytime to ignore these settings.Press Enter to accept these settings.Press Enter to acceptPress Esc to cancelPress F1 for more informationALERTPress any key to continuePress any key to continue About AccessDOS... View Information about this version of AccessDOS. Save Settings... Save the current AccessDOS settings. Install/Run... Install/Run AccessDOS with the current Settings. Cancel/Quit... Cancel/Quit AccessDOS ignoring any changes made to settings. StickyKeys... Make Adjustments to the StickyKeys feature. MouseKeys... Make Adjustments to the MouseKeys feature. ToggleKeys... Make Adjustments to the ToggleKeys feature. Keyboard Response... Make Adjustments to the Keyboard Response feature. SerialKeys... Make Adjustments to the SerialKeys feature. ShowSounds... Make Adjustments to the ShowSounds feature. TimeOut... Make Adjustments to the TimeOut feature. Miscellaneous... Make Miscellaneous adjustments. Menu Help... View help on using the menu. General Help... View some General Help Information. StickyKeys Help... View help for the StickyKeys feature. MouseKeys Help... View help for the MouseKeys feature. ToggleKeys Help... View help for the ToggleKeys feature. Keyboard Response Help... View help for Keyboard Response. SerialKeys Help... View help for the SerialKeys feature. ShowSounds Help... View help for the ShowSounds feature. TimeOut Help... View help for the TimeOut feature. Miscellaneous Features... View help for miscellaneous features. File Adjust Help Yes No Yes No Yes No Yes No Yes No Yes No StickyKeys On........................: Do you want StickyKeys On? Sound when turned on or off..........: Do you want to hear when StickyKeys turns on or off? Sound when pressing a StickyKey......: Do you want to hear when you press a StickyKey? Sound when pressing any key..........: Do you want to hear key clicks? Turn off when pressing 2 keys at once: Do you want StickyKeys to turn off when two keys are pressed simultaneously? Lock MOD key when pressed twice......: The MOD keys are the SHIFT, CONTROL, and ALTERNATE keys. Yes No On Off On Off Off 0.3 0.5 0.7 1.0 1.4 2.0 2.0 1.5 1.0 0.75 Off 1.5 1.0 0.75 0.5 0.25 Off 2.0 1.5 1.0 0.75 0.5 Enable Group.....: Do you want to Enable this group of Keyboard functions as currently set? Sound on Enable..: Do you want to hear when this group is enabled or disabled? RepeatKey Settings: Repeat Rate (seconds/character): How fast do you want the keys to repeat (or do you want repeat turned off)? Delay until repeat (seconds)...: How many seconds should the keyboard wait before starting to repeat keys? SlowKey Settings: Acceptance Delay (seconds).....: How many seconds do you want the keyboard to wait before accepting a key? Key Click Feedback.............: Do you want to hear a sound when a key is depressed and when it is accepted? BounceKeys Settings: Debounce time (seconds)........: A key must be released for this long before the same key will be re-typed. Yes No Yes No 10 20 30 40 60 80 120 180 360 1 2 3 4 MouseKeys On............: Do you want MouseKeys On? Sound when turned on/off: Do you want to hear when MouseKeys turns on or off? Max Speed (pix/sec).....: Select the maximum speed of the mouse. (Pixels per second) Time to Max Speed (secs): Select the number of seconds it takes to reach the maximum speed. Yes No On Off ToggleKeys On..............: Do you want ToggleKeys On? Sound when turned on or off: Do you want to hear when ToggleKeys turns on or off? Yes No 300 600 1200 2400 4800 9600 COM1 COM2 COM3 COM4 Install SerialKeys: Do you want to install SerialKeys? Serial Port.......: Select the Serial Port to use for SerialKeys. Baud Rate.........: Select the Baud Rate of your serial port. Yes No 5 10 15 30 On Off TimeOut On........................: Do you want TimeOut to automatically turn AccessDOS off after idle delay? Idle time before turnoff (minutes): How many minutes should AccessDOS wait before automatically turning off? Sound when turned off.............: Do you want to hear when TimeOut turns AccessDOS off? Yes No Yes No Visual Note On..........: Do you want a visual indicator when your computer makes sounds? Screen Flash On.........: Do you want the screen to flash when your computer makes sounds? Yes No 1 2 3 Space Saving Keyboard.............: Are you using IBM's Space Saving keyboard on your computer? Computer Type.....................: 1 = PC/PC-XT/PC-AT w/ 84 Key; 2 = PC-AT or Clone w/ 101 Key; 3 = '386 PCA++ ` ` S-0(MNO` ` PQSUI .;0hC.I0` `  S.s0JLNM1.0cTi.0K /0 !` ` "#&(E|.0<hij` ` kloqH/0O00` ` I00024` ` IJOQUW0W0hGe0e0` ` Ss0s0M00-RTVT00pK00E00H007]ceO00{I00` ` !(  (#) !#')*,-/246:<=?@BEGIMOPRSUXZ\`bcefhkmosuvxy{~*S*V9;bJ+dz+Y+T WY+*    "$&*,.2$46:$<>BDFJLNS UW[]_cegkmot vx| ~$  f,-,/kmo*qsu*-!f-#mo*,j ,# f h } * .<   !!! ! ! !!!!!!!!! !#!%!'!*!,!.!1!3!5!8!:!!!!"/"T"V"p"20Dr""""*"""""""""""""""""""""#0X## #=#1W?#t#v#x#*z#|#~#################`###0###### ###############r1#"$$$8$2N:$h$j$~$1p$$$$*$$$$$$$$$$$$$$$$0*$$$H?$$$~$$$$$$$$$$$%2%e%g%%2F%%%%3%4&6&8&*:&<&>&B&D&E&G&H&J&M&O&Q&U&W&X&Z&[&]&`&b&d&~&3&&&&3U&'!'%'''('*'+'-'0'2'4'6'8':'<'>'@'B'D'F'j' 4l'''':4' You can not have the SlowKeys function turned on with an Acceptance Delay value and use the BounceKeys function at the same time. Please note that the 'SlowKeys On' option will be set to 'Off.' If you want to set an Acceptance Delay for SlowKeys you must first select 'BounceKeys' from the Adjust menu and change the 'Bounce Time' option to 'Off.' You can not use the BounceKeys function when the SlowKeys function is turned on and Acceptance Delay has a value. Please note that the BounceKeys function will be set to 'Off.' If you want to use the BounceKeys function you must select 'SlowKeys' from the Adjust menu, set the 'SlowKeys On' option to 'On', and set 'Acceptance Delay' to 'Off.' Sorry, you can not use SlowKeys and BounceKeys at the same time. Sorry, you can not use the visual note and the screen flash at the same time. You initially installed AccessDOS without enabling the SerialKeys feature. It is not possible to enable SerialKeys when AccessDOS is initially loaded without it. Please note that SerialKeys has been turned off. If you want to use the SerialKeys function you must reboot the computer, re-run AccessDOS, and turn SerialKeys on before installing AccessDOS. It is not possible to change the comm port once SerialKeys has been loaded. Please note that the comm port has been changed back to it's original value. If you want to change the comm port you must reboot the computer, re-run AccessDOS, select the desired comm port, and turn SerialKeys on before installing AccessDOS. In order to use the MouseKeys function there must be a mouse attached to the computer. AccessDOS did not find a supported mouse attached to the computer. Please note that the MouseKeys function has been set to 'Off.' If you want to use MouseKeys function, you must restart the computer with a mouse attached. You can not have a SerialKeys and your serial mouse attached to the same comm port. Please note that the comm port for SerialKeys has been set to avoid conflicts with your serial mouse. If you want to use both SerialKeys and MouseKeys, you must attach the mouse and the aid to different comm ports and tell AccessDOS which comm port the aid is attached to in the SerialKeys menu. If you only have one comm port, you can not use both SerialKeys and a Serial mouse. There are no serial ports available for SerialKeys to use. There are no serial ports in your computer and SerialKeys can not be used without one. Please note that the SerialKeys function has been turned to 'Off.' There are no serial ports available for SerialKeys to use. AccessDOS has detected only one serial port in this computer and it is currently in use by a serial mouse. Please note that the SerialKeys function has been set to 'Off.' If you want to use the SerialKeys function, you will need to turn off the computer, disconnect the mouse, attach the communication aid to the serial port, and re-boot the computer. Of course, you will not be able to use the MouseKeys feature in this case. You have elected to use comm port 2 for the SerialKeys function, but there is only one serial port in the computer. Please note that the 'Serial Port' option has been set to 'COM1.' AccessDOS was unable to determine what type of computer you are using. Please select 'Miscellaneous' from the Adjust menu and choose the type of computer that most closely matches the one you are using. If you don't choose a computer type, AccessDOS will assume you are using an IBM PC/XT with a 84 key keyboard. This may limit the number of functions available for your use. AccessDOS settings were loaded successfully. An error has occured trying to load your saved settings. AccessDOS requires the file ADOS.CFG to be present in the same directory that contains ADOS.COM. Please note that AccessDOS will continue without your saved settings. AccessDOS settings were saved successfully. An error has occured trying to save AccessDOS settings. Page 1 of 1 ^SAVING AND AUTOMATICALLY STARTING UP WITH YOUR SETTINGS^ Whenever you initially run AccessDOS by just typing: ^ADOS^ AccessDOS will start up with the preset or default settings which were originally set at the Trace Center. You are then brought into this program where you can change the settings to meet your particular needs. Most users however would like to be able to save their settings so that they can use the same settings each time they start AccessDOS. This can be done by saving your settings and then asking AccessDOS to use the saved settings when it starts up. To do this you should: 1) Use the ADJUST menu to set AccessDOS to meet your needs. 2) Select SAVE SETTINGS... from the FILE menu. (saves them to disk) Thereafter if you ^initially^ start AccessDOS by typing: ^ADOS /A^ or by putting ^ADOS /A^ in your AUTOEXEC.BAT file, AccessDOS will start up with your saved settings. - END - Page 1 of 1 ^INSTALL/RUN^ Choosing INSTALL/RUN from the FILE menu will cause AccessDOS to leave this setup program and install itself in your computer. Once AccessDOS is installed, it will work with most of your other software programs. If you are using SerialKeys, AccessDOS will use 25KB of your computer's memory. If you are not using SerialKeys, it will use 10KB. You can use special key combinations on the keyboard to turn the various functions of AccessDOS on and off (see manual). You can also turn functions on or off, and change their settings, by rerunning AccessDOS. (just type: ADOS). If you want to get AccessDOS completely out of your computer's memory, just reboot (restart) your computer. - END - Page 1 of 1 ^CANCEL/QUIT^ Choosing CANCEL/QUIT from the FILE menu will cause AccessDOS to leave this setup program WITHOUT installing AccessDOS in your computer. Use CANCEL/QUIT if you: - Want to discard any settings you just made while in the setup program - Want to exit the Setup Program without installing AccessDOS. CANCEL/QUIT will NOT unload AccessDOS if you already have it installed. If you want to unload AccessDOS you should reboot (restart) your computer. (NOTE: If you put ADOS in your AUTOEXEC.BAT file then see the manual for details on how to restart your computer without installing AccessDOS.) - END - Page 1 of 4 All of the adjustments for AccessDOS as well as the help screens can be reached by using the menus at the top of the screen. You can move about in the menus by using the arrow keys on your keyboard. - Use the RIGHT and LEFT arrows to move between menus. - Use the UP and DOWN arrows to move up and down within a menu. - Use the ENTER key to select an item from the menu. SHORTCUT You can also jump directly to an item in a menu (instead of using the UP and DOWN keys) by typing the hot key for that menu item. The hot key for each menu item is the character that is a different color from the rest (on a black and white LCD display it would be Capitalized). For example: E would be the hot key for sErialkeys. M would be the hot key for Mousekeys. MORE... Page 2 of 4 ^ Help Screens For Individual Functions ^ Help screens are available for each of the Functions in AccessDOS. You can reach the help screens in two ways. 1) You can open the dialog box for the feature (under the ADJUST menu) and then hit the F1 key. or 2) You can open up the help screens for any feature directly by going to the appropriate item in the HELP menu. All of the information in the Help screens (and more) is included in the manual that accompanies this program. For those who find electronic documentation easier to use, there is also an electronic copy of the manual on the disk with this program. MORE... ^ IF YOU ARE HAVING TROUBLE USING THE MENUS ^ Page 3 of 4 PROBLEM 1: I use the up and down arrows but it doesn't seem to have any effect (except that the message at the bottom of the screen changes). SOLUTION: AccessDOS tries to figure out what kind of screen you are using and then use a compatible color for highlighting. Sometimes a computer will fool AccessDOS and it will try to highlight the characters in a way that is invisible on your computer. (Which means you ARE moving up and down the menus but you won't be able to see it.) To fix this problem you should tell AccessDOS what type of display you have by typing a special character after its name when you start AccessDOS. If you are using a computer with an LCD display type: ADOS /L If you are using a MONOCHROME display type: ADOS /M If you are using a COLOR display type: ADOS /C MORE...PROBLEM 2: I can move around on the menus just fine using the arrow keys but it just seems to skip over MouseKeys (Or SerialKeys) on the menus. (The hot key for this item won't work either.) SOLUTION: If AccessDOS skips over a menu item it means that that item is not available to you for some reason. (It will also be dimmer on most displays - or in parentheses on an LCD display.) If it skips over SerialKeys: It means that you don't have a serial port available. Maybe your computer doesn't have one installed or perhaps the only port available is used up by a serial mouse or built in modem. If it skips over MouseKeys: It means that AccessDOS can't find a mouse driver. Perhaps your mouse driver wasn't installed yet; you didn't have a mouse connected (and the mouse driver didn't load); or you are using an incompatible mouse (see manual or MouseKeys Help for more information). - END - ^TABLE OF CONTENTS for GENERAL HELP^ Page 1 - General Information 2 - Setting Up AccessDOS to Meet Your Needs 3 - Making AccessDOS load Automatically at StartUp 4 - Memory Considerations 5 - AccessDOS Command Line Switches Page 1 of 5 ^General Information^ AccessDOS is a set of DOS extensions which provide additional flexibility in the user-interface for DOS, and which are useful to individuals both with and without disabilities. The extensions in this package allow the user to control the key repeat, to adjust the way the keys on the keyboard respond when pressed, to make all modifier keys into locking keys (something like the caps lock key), to control the mouse cursor with precision from the keyboard, and to obtain a visual indication of beeps or other sounds made by the computer. AccessDOS consists of two files on your hard disk, labelled ADOS.COM and ADOS.OVL. A third file labeled ADOS.CFG is created by AccessDOS to hold user settings. A copy of the instruction manual is included on the disk as a text file labeled ADOS.TXT. This file can be read or printed using most any word processor, or by using the PRINT command in DOS. MORE... Page 2 of 5 ^Setting Up AccessDOS to Meet Your Needs^ 1) Adjust AccessDOS - Use the items you will find under the ADJUST menu to adjust AccessDOS to meet your individual needs. 2) Save Your Settings. - If you want to save these settings so that they can be used in the future then select SAVE SETTINGS from the FILE menu. 3) Exit this Setup Program - When you are done you can exit this program 2 ways. 1) select INSTALL/RUN from the FILE menu, or 2) select CANCEL/QUIT from the FILE menu. MORE... Page 3 of 5 ^Making AccessDOS load Automatically at StartUp^ In many cases it will be desirable to have AccessDOS automatically load itself each time you restart or reboot the computer. Individual users may need it in order to use their computers. In shared-use computers, AccessDOS can be running in the background and be inactive until a user with a disability comes along. Then a few taps on the proper keys will allow the disabled user to access the functions without having to reboot the computer. To make AccessDOS load automatically each time the computer is restarted you should insert the program name (ADOS) along with the command line switch /A in your AUTOEXEC.BAT file. (e.g. ADOS /A) MORE... Page 4 of 5 ^Memory Considerations^ AccessDOS is a TSR (terminate and stay resident) program. That means that a small piece of it remains in your computer's memory after you install it, so that it can work in conjunction with your other software programs. When loading AccessDOS it takes 150 KB of memory to hold both AccessDOS (ADOS.COM) and its overlay (ADOS.OVL). After AccessDOS is installed, it occupies: 10 KB if you DON'T use SerialKeys (most people don't) 25 KB if you DO use SerialKeys MORE... Page 5 of 5 ^AccessDOS Command Line Switches^ There are two major ways to run AccessDOS 1) you can type ADOS while you are at the DOS prompt 2) you can put ADOS into your AUTOEXEC.BAT file. In either case there are loading options that you can enable by including any of the following command line switches: /A = Automatic install with your settings or option to use the menu without your saved settings. /X = Automatic install with your settings and no option to use menu. /C = Use Color display. /M = Use Monochrome (with highlight) display. /L = Use LCD display. /? or /H = Show this list of command line switches. - END - Page 1 of 3 ^StickyKeys^ StickyKeys is a feature that allows people who must type with 1 finger, a mouthstick or a headstick to be able to use modifier keys (SHIFT, CTRL, and ALT keys). With StickyKeys turned on, a person can press a modifier key and then another key in sequence rather than at the same time, to get shifted (modified) characters. To turn StickyKeys on, tap either shift key five times (without disturbing the mouse). You will hear an 'up-siren' tone. To turn off StickyKeys, tap a shift key five times (you will hear a 'down-siren'). MORE... Page 2 of 3 ^Using StickyKeys^ StickyKeys operates in two modes: key latching mode and key locking mode. Tapping ONCE on a modifier key causes it to go into LATCHED mode. A short low beep - high beep will be heard. As soon as the next non-modifier key is pressed the modifier key(s) will be released. Tapping TWICE in succession on a modifier key will put it into LOCKED mode. You will hear a short low - high beep after the first tap and a single high beep after the second tap. Once a modifier key is LOCKED it will stay 'locked down' until that modifier key is hit a third time. Any and all of the modifier keys (SHIFT, CTRL, and ALT) can be latched or locked in combination. MORE... Page 3 of 3 ^StickyKey Options^ For shared or public computers there is an optional 'Two-Key Auto Shutoff' feature to keep non-disabled users from being confused if StickyKeys is accidentally left on. Whenever an able-bodied typist uses a keyboard, they will hold the shift key down and strike another key simultaneously. If the Two-Key shutoff feature is enabled, StickyKeys will detect that two keys are down simultaneously and automatically turn the StickyKeys feature off. Some people do not like to have keyboard sounds while others find them useful. The ability to turn the different feedback sounds on or off is therefore provided. Finally, it is possible to disable the LOCKED mode of StickyKeys described above if it is not desired. - END - ^TABLE OF CONTENTS - MOUSEKEYS HELP^ Page 1 - Introduction to MouseKeys 2 - MouseKeys Numeric Keypad Functions (Summary Chart) 3 - How to Operate the Mouse Buttons 4 - Moving the Cursor Around the Screen 5 - Using MouseKeys On Keyboards without Numeric Keypads 6 - Using MouseKeys Along with a Standard Mouse 7 - Using MouseKeys Without a Mouse Connected Page 1 of 7 ^ Introduction to MouseKeys^ Some Users do not have the physical control to operate a mouse yet need to access software which requires a mouse. MouseKeys provides a means to control the mouse cursor on the screen by using the numeric keypad on the keyboard. You turn MouseKeys on or off by simultaneously pressing the left ALT key, the left SHIFT key and the NUM LOCK key. When MouseKeys turns on, you will hear an up-siren. (If you are using only one finger, a mouthstick, or a headpointer, the easiest way to activate MouseKeys is to first activate StickyKeys by tapping the SHIFT key 5 times. You can then hit the three keys in sequence rather than simultaneously.) Once MouseKeys is turned on, the numeric keypad becomes a mouse control pad. Each key on the keypad performs a different mouse function. These functions are... Page 2 of 7 ^MouseKeys Numeric Keypad Functions^ 1 - Moves the mouse down and to the left 2 - Moves the mouse down 3 - Moves the mouse down and to the right 4 - Moves the mouse to the left 5 - Clicks the currently active mouse button 6 - Moves the mouse to the right 7 - Moves the mouse up and to the left 8 - Moves the mouse up 9 - Moves the mouse up and to the right 0 - Locks the currently active mouse button down . - Releases the currently active mouse button + - Double-clicks the currently active mouse button MORE... ^How to Operate the Mouse Buttons^ Page 3 of 7 The 5, +, 0, and . keys operate the buttons on the mouse. Use the '5' key when you want to click a button once. To double-click a button use the '+' key. When you want to hold a button down while you use the mouse (as for dragging), press the '0' key to lock the button down and the '.' key to release the button. ^Which button is the currently active button?^ On 101-key keyboards: / makes the left mouse button the currently active button - makes the right mouse button the currently active button * makes both mouse buttons the currently active button. On 84-key keyboards: * makes the left mouse button the currently active button - makes the right mouse button the currently active button. It is not possible to make both mouse buttons the currently active button on an 84-key keyboard. Page 4 of 7 ^Moving the Cursor Around the Screen^ The keys 1, 2, 3, 4, 6, 7, 8, and 9 are used to move the mouse cursor around the screen in the directions listed above (and suggested by their location on the numeric keypad). Pressing the key once will move the cursor one unit in that direction. (The definition of a 'unit' varies with different programs and screens.) Holding the key down will cause the mouse cursor to continue to move in the respective direction, slowly at first, and then increasing to the maximum speed. The mouse pointer will then continue at maximum speed (units per second) until the key is released. Both the maximum speed of the mouse cursor and the time it takes to get to maximum speed are adjustable in the MouseKeys ADJUST menu. MORE... Page 5 of 7 ^Using MouseKeys on Keyboards Without Numeric Keypads^ While MouseKeys is on, you can use the NUM LOCK key to toggle the MouseKeys control pad back to a numeric keypad. This feature is especially useful if you are using a laptop or notebook computer which doesn't have a separate numeric keypad. On these keyboards the 'numeric keypad' is usually overlaid on top of part of the standard keyboard. You can then use the NUM LOCK key to toggle between having those keys on the standard keyboard act as the MouseKeys control pad and having them act as the regular keyboard keys. MORE... Page 6 of 7 ^Using MouseKeys with the Standard Mouse^ MouseKeys will work in conjunction with the standard Microsoft or IBM PS/2 mouse. You can use the standard mouse to move quickly about the screen and then use MouseKeys to move more precisely (unit by unit) to your final destination. Some people cannot use the standard mouse while simultaneously holding down the mouse button. You can use MouseKeys to lock down the currently active mouse button ('0'), move the mouse cursor using MouseKeys or the real mouse, then release the mouse button ('.'). MORE... Page 7 of 7 ^Using MouseKeys without a Mouse Connected^ MouseKeys will not work unless there is a Microsoft or IBM PS/2 mouse driver installed. Most mouse drivers will not install unless a mouse is connected to the computer. As a result, you will need to have a mouse connected in order for MouseKeys to work. On an IBM PS/2 computer you can run the program FAKEMOUS.COM in conjunction with MOUSE.COM to run MouseKeys without connecting a mouse. For more information on using MouseKeys without a mouse connected, please refer to the AccessDOS manual. - END - Page 1 of 1 People with visual impairments may not be able to see the lights on the keyboard that indicate CAPS LOCK, NUM LOCK and SCROLL LOCK status. ^ToggleKeys^ provides a solution to this by emitting a tone whenever the keys are pressed. When you press one of these keys and it turns on you will hear a high beep. When you press a key and it turns off you will hear a low beep. ToggleKeys is turned on by pressing the NUM-LOCK key and holding it down for a period of about 5 seconds. When ToggleKeys turns on, you will hear an up-siren. You turn ToggleKeys off the same way. Just hold the NUM-LOCK key for 5 seconds and you will hear a down-siren. ToggleKeys will also function with some keyboards which do not have indicator lights. The audible low and high beeps can be very useful for all operators when using this style of keyboard. - END - Page 1 of 2 ^SerialKeys^ Some people cannot successfully use the standard keyboard even with all of the adaptations in AccessDOS. Often, however, they have special communication or control interfaces which they can operate with proficiency. If they are using a communication or other interface aid which has a serial port on it and has a programmable vocabulary, they can use the SerialKeys feature to connect their aid to this computer and use their communication aid instead of the computer's keyboard and mouse. To use SerialKeys they would run a serial cable from their aid to the serial port on this computer. They would then program their aid to send ASCII characters to the serial port which would be processed in a special way by SerialKeys so that they would look just like keystrokes from the standard keyboard or movements from the mouse. MORE... Page 2 of 2 ^Setting Up SerialKeys^ There are two parts to setting up SerialKeys... 1) Making sure that the communication aid and the serial port on the computer can talk to each other. 2) Programming your communication aid to send the right commands to SerialKeys. Please refer to the owners manual for the communication aid for more information on connecting it to the computer and refer to the AccessDOS manual for more information on what needs to be programmed into the communication aid. - END - TABLE OF CONTENTS - Keyboard Response Group Page 1 - Introduction to RepeatKeys, SlowKeys & BounceKeys 2 - Enabling the Keyboard Response Group 3 - Adjusting RepeatKeys 4 - Adjusting SlowKeys 5 - Adjusting BounceKeys 6 - Enabling the Keyboard Response Group from this Program 7 - Enabling the Keyboard Response Group from the Keyboard 8 - Emergency Enabling of RepeatKeys and SlowKeys... 9 - Emergency Enabling... (continued) 10 - Emergency Enabling... (continued)Some people would be able to use the standard keyboard if it functioned just a little differently than it usually does. The Keyboard Response Group is a group of functions that modify how the individual keys on the keyboard behave or respond when you press them. ^RepeatKeys^ - If the standard key-repeat feature of your keyboard is too fast, or you don't want it at all, ^RepeatKeys^ allows you to slow it down or turn it off. ^SlowKeys^ - If you bump keys accidentally as you move around on the keyboard and would like to slow the keyboard down so that it would only accept keys after they have been held down for awhile, ^SlowKeys^ will do this for you. ^BounceKeys^ - If you have a tremor and accidentally type keys twice as you press or release them, ^BounceKeys^ can be used to make the computer ignore the extra tap on the key. MORE... Page 2 of 10 ^Enabling the Keyboard Response Group^ The 3 functions in the Keyboard Response Group (RepeatKeys, SlowKeys and BounceKeys) are enabled and disabled together as a group. This is done to simplify turning the group on and off from the keyboard. Most people, however, are only interested in using one or two of the functions in the group. This is not a problem. You can individually adjust the functions within this group such that when enabled, unwanted functions will have no effect. MORE... ^Adjusting RepeatKeys^ Page 3 of 10 There are two adjustments for the RepeatKeys function. The first setting, REPEAT RATE, allows you to adjust the speed at which the keys will repeat when you hold a key down. The smaller numbers (like 0.25) will make it repeat faster. ^If you do not want the keys to repeat at all^, then just set the REPEAT RATE to OFF. The second setting, DELAY UNTIL REPEAT, allows you to set the length of time you must hold a key down before it will begin to repeat. If you have trouble releasing a key in time, then set this to a higher setting. NOTE: There are some programs which have their own keyboard repeat key adjustment. In order for RepeatKeys to work with these programs you must first turn off the repeat key adjustment in the program. (For example in Word Perfect, set keyboard speed to 'normal'; in Microsoft Word, set keyboard speed option to '0'.) MORE... ^Adjusting SlowKeys^ Page 4 of 10 SlowKeys allows you to slow down the keyboard so that keys must be held down for a while before they will be accepted by the computer. This is useful for individuals who could use the keyboard but accidentally bump extra keys when they try to type. By slowing down the keyboard, these extra key bumps are ignored and only the keys that are typed and held down are accepted. There are two adjustments for the SlowKeys function. The first setting (called ACCEPTANCE DELAY) allows you to adjust the amount of time that you must hold a key down before it will be accepted by the computer. ^If you do not want SlowKeys^, then just set the ACCEPTANCE DELAY to OFF. The second setting is called KEY CLICK FEEDBACK. If this is set to YES then you will hear a click when you press the key and another click when it is accepted. (If you want your typing to be completely silent you must turn off this click setting and the click setting under StickyKeys.) ... ^Adjusting BounceKeys^ Page 5 of 10 Individuals who have tremor or impaired control of their hands may find that they type two or more of the same letter when they try to press a key. They bounce on the key either when they are pressing it or when they release it causing the extra characters. BounceKeys causes the keyboard to ignore these quick bounces so that only one key is accepted. There is only one setting for BounceKeys, DEBOUNCE TIME. The larger the number the longer you will have to wait after you release a key before you can type the same key a second time (up to 2 seconds!). ^If you do not want the BounceKeys^ function, then just set the DEBOUNCE TIME to OFF. NOTE 1: If you want to type the same key twice you just need to pause a bit between the two key presses. BounceKeys does not prevent you from typing other keys quickly. (You just can't type the same key quickly.) NOTE 2: You cannot use SlowKeys and BounceKeys at the same time (see manual). MORE... Page 6 of 10 ^Enabling the Keyboard Response Group from this Program^ Once you have set up the desired values under each of the Keyboard Response functions (RepeatKeys, SlowKeys and BounceKeys) you need to enable the Keyboard Response group. FROM THE ADJUST MENU: Select 'KEYBOARD RESPONSE...' from the ADJUST menu. Then select YES for the GROUP ENABLE question at the top of the box. MORE... Page 7 of 10 ^Enabling the Keyboard Response Group from the Keyboard^ Sometimes you may want to enable or disable these keyboard functions from the keyboard without having to run this program. To do this just hold the right shift key down for 8 seconds. After about 4 seconds you will hear 3 short warning beeps. (These are provided just in case someone is accidentally resting their hand on the shift key and doesn't really want to enable these functions - it's sort of a 'get off the key' warning). Since you DO want these functions enabled, just ignore these warning beeps and keep holding the key down. After about 4 seconds more you will hear an up-siren. You can release the key now and the functions will be enabled using the values you set for RepeatKeys, SlowKeys and BounceKeys. NOTE: You can disable this group of keyboard functions using this same procedure. When you disable the group you will hear a down-siren. MORE... Page 8 of 10 ^Emergency Enabling of the Keyboard Response Group - Part 1^ Some individuals are completely unable to operate the computer unless they can turn the keyboard repeat function off and/or turn SlowKeys on. These individuals could find themselves in a Catch-22, unable to use the computer to turn the functions they need. There is a solution to this problem built into AccessDOS. An emergency enabling routine that allows you to turn functions on from the keyboard by simply holding the right shift key down for an extended period of time. MORE... Page 9 of 10 ^Emergency Enabling of the Keyboard Response Group - Part 2^ To enable the emergency settings for RepeatKeys and SlowKeys from the keyboard you just hold down the right shift key (as you normally do to enable the Keyboard Response Group) except that you keep holding it down even after you hear the up-siren. If you hold the right shift key down long enough, this is the sequence of events that will happen: after 4 seconds... 3 short beeps. [they are the warning beeps] 4 more seconds... an up-siren [Kybd Resp Group turns on - your settings] 4 more seconds... 2 up-sirens [Repeat Rate & Acc. Dly off, Debnce 1 Sec] 4 more seconds... 3 up-sirens [Repeat Rate off, Acc. Dly 2 sec (Max)] MORE... In other words... holding the right shift key down for 8 seconds will enable your normal settings for RepeatKeys, SlowKeys, and BounceKeys. If you continue to hold it down until you hear 2 up-sirens, you will go into emergency setting #1 where the keyboard's repeat function will be turned off, Acceptance Delay will be off and Debounce Time will be 1 second. If you continue to hold it down until you hear 3 up-sirens, you will go into emergency setting #2 where they keyboard's repeat function will be turned off and SlowKeys will be turned on to its Maximum (2 sec). Setting #2 is a very slow keyboard response but should be usable by most anyone who can use the keyboard. It would only be used long enough to run this program and change the settings to the values needed by the person. Once the settings have been made and saved they shouldn't need to use this feature again unless someone changes their settings. - END - When AccessDOS is used on a shared computer it is sometimes useful to have an automatic timeout feature that would turn the AccessDOS functions off if the computer were left idle for awhile. The TimeOut feature provides this capability. There are two settings for the TimeOut feature: 1) The IDLE TIME setting controls the length of time that the computer keyboard must be idle before AccessDOS will automatically turn itself off. (AccessDOS is still loaded so it can be easily re-enabled from the keyboard without having to run this setup program.) 2) You can control whether AccessDOS will make a sound (a down-siren) when it turns itself off. - END - ^Miscellaneous Adjustments^ ^ Space Saving Keyboard:^ If you are using a space saving keyboard such as the one that comes with the IBM PS/2 models 25 or you should set this option to YES so that AccessDOS will work properly with the keyboard. - END - For individuals with hearing impairments or for anyone working in a noisy environment, it is hard or impossible to hear beeps and other sounds made by the computer. ShowSounds provides a visual indication on the screen each time a sound (other than a click) is made by AccessDOS. ShowSounds has two options. Whenever your computer makes a sound you can either have ShowSounds FLASH your screen or you can have it provide a small VISUAL CUE () in the upper left hand corner of your screen. For sounds created by AccessDOS, the small visual cue also gives you some additional information about the sound.  Up-Siren  High Beep  Down-Siren  Low Beep  Sounds produced by other programs NOTE: Not all programs permit the musical note to appear (see manual). - END -45^777f9:;=>@XAB CC'DbDHKNRUY]^ce ikoq;uxzE~)ekIfNurμ^l | 94s 8/ H#<(@(3YE_C_FILE_INFO=O!   jjEEE50P 0PX000WP ``````ppxxxx(null) BFBFBFBFBFBF ((((( H (QDQDQD K?C<>R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating-point support not loaded R6001 - null pointer assignment User's Guide for AccessDOS A package of public domain MS-DOS extensions for keyboard, mouse and sound access Developed by: The Trace Research and Development Center Madison, WI Version 1.1 March, 1993 Software Mark E. Novak Joseph M. Schauer Jay D. Hinkens Gregg C. Vanderheiden Manual Peter A. Borden Revised by Microsoft Corporation Support for work on AccessDOS was provided in part by IBM Corporation and by the National Institute on Disability and Rehabilitation Research (NIDRR), U.S. Dept. of Education, under grant #H133E80021. Information in this document is subject to change without notice, and does not represent a commitment on the part of the Trace Center or the University of Wisconsin. The software may be used or copied and distributed to others without charge. If the program is copied, all parts of the program must be distributed along with it, including the manual. This program may not be modified in any way without the express written permission of the Trace Center, University of Wisconsin-Madison. Copyright (c) 1991, 1992, 1993 Board of Regents, University of Wisconsin System. All rights reserved. Printed in the United States of America IBM and PS/2 are registered trademarks of International Business Machines Corporation. MS-DOS and Microsoft are registered trademarks of Microsoft Corporation. WordPerfect is a registered trademark of WordPerfect Corporation. User's Guide for AccessDOS Part 1: Getting Started 1-1: What AccessDOS is all about Since computers are used by many different people, they have been designed overall for the "average" user. But everyone's abilities are different, and some people have enough trouble operating computers that they need some special accommodations. AccessDOS provides some of these accommodations. AccessDOS does not address all of the problems that someone with a disability might encounter in using a computer. Rather, it tackles some of the most common difficulties that people with physical disabilities encounter in using the computer's input devices--that is the keyboard and the mouse. It also can assist some people with hearing impairments. AccessDOS is similar to the curbcuts used on street corners. The computer itself, like the sidewalk, stays basically unchanged, and can still be used by anyone. But just as curbcuts allow people in wheelchairs to get up on to the sidewalk and use it, AccessDOS lets the computer user with a disability operate the keyboard and mouse in a slightly different way, so that he or she can gain access to the computer. Once that person has access to the computer, he or she can operate the same software that everyone else uses, and can use the computer to accomplished all the same things at home, at school or on the job. AccessDOS extends the MS-DOS operating system, which runs in the background while you are operating other software such as a word processor. That means that you can make use of AccessDOS's special adaptive functions at any time while you're using the computer. This User's Guide will explain all you need to know to operate the functions of AccessDOS. We've also tried to explain why you might want to use certain functions. However, we encourage you to look beyond our basic suggestions. Look at the instructions to find out what the program does, then think about what it could do for you. Many of the functions are adjustable, and you may want to play around with them until you get them just the way you want them. The next section ("A quick look at AccessDOS functions") gives brief descriptions of each of the AccessDOS's main functions. Reading this section will help you figure out which sections of the manual you might need to turn to. Next to the name of each function is the number of the section in Part 2 which tells you how to use it. Be sure also to read Sections 1-3 and 1-4 of this manual ("How to set up AccessDOS on to your disk" and "How to start up and install AccessDOS") before you try to operate AccessDOS. 1-2: A quick look at AccessDOS functions There are seven basic functions in AccessDOS. Here, in brief, is a description of each one. (After the name of each function is the number of the section in Part 2 which tells you how to use it.) WARNING: Be sure you have read and followed the instructions in Sections 1-3 ("How to copy AccessDOS on to your disk") and 1-4 ("How to start up and install AccessDOS") before you turn to Part 2 and try to use any of the seven AccessDOS functions. StickyKeys (See Section 2-2) Operating a computer often requires pressing two keys at once--for example, pressing the shift key and the 8 key to make an asterisk (*). Some people find it difficult or even impossible to do this because they type with a single finger, or with a stick attached to their head or hand. StickyKeys solves this problem by letting you first type one key, then the other. For instance, to get an asterisk, you could press the shift key, release it, and then press the 8 key. You can use StickyKeys with the shift, control and alternate keys on your keyboard. MouseKeys (See Section 2-3) The mouse can be a difficult device for some people to handle. For instance, people may have difficulty controlling fine movements of their hand, or they may have difficulty grasping the mouse and pressing the buttons, or they may be using a typing stick rather than their hands to operate the computer. MouseKeys allows people who can't handle the mouse, but who can press keys on the keyboard, to perform all the functions of the mouse. MouseKeys lets you use the keys on the numeric keypad (the group of number and math keys usually on the far right side of the keyboard) to control all of the mouse functions, including moving around the screen and clicking the mouse buttons. ToggleKeys (See Section 2-4) Many keyboards have small lights on them to indicate the status of keys that can be "on" or "off," such as caps lock. There are usually three lights, one for caps lock, one for num lock and one for scroll lock. Some people can't see these status lights, including people who are visually impaired and people who are performing keyboard functions from some device other than the standard keyboard (more information on the second situation is given under SerialKeys). ToggleKeys tells you when one of the three keys is turned on or off by giving a beep. Different beeps are used for on and off. ToggleKeys will work the same way with keyboards that don't have the little indicator lights. Keyboard Response Group: RepeatKeys, SlowKeys and BounceKeys (See Section 2-5) Keyboards have several features that are based on the assumption that the user can press a key accurately, and release it at a precise time. These features can pose obstacles to people who have physical impairments that prevent them from pressing keys accurately, or releasing them in time. The Keyboard Response Group has three adjustments which let you adjust the keyboard: RepeatKeys, SlowKeys and BounceKeys. RepeatKeys: Most keyboards have a feature called auto-repeat: when you hold down a key for longer than a certain period of time, the keyboard begins repeating that key over and over again. This feature of keyboards is meant as a convenience for most users, but can be an inconvenience to users with physical impairments. They may get repeated keys when they don't want them. RepeatKeys lets you adjust how fast the auto-repeat works or turn it off entirely. SlowKeys: Some people who have physical impairments may accidently bump keys while they are moving their hand or typing stick toward the key they want. Usually, the keys that are bumped accidentally will just be hit for a very short period of time. SlowKeys lets you tell the computer not to accept a key as "pressed" unless it's held down for a certain length of time. The user can then bump any number of keys on their way to the one they want without accidentally getting those characters. They can then hold the desired key long enough for the computer to accept it. BounceKeys: Some people with physical impairments will accidentally "bounce" on a key when they press it--that is, they'll press it once, then accidentally press it again right away. BounceKeys lets you tell the computer "don't accept two presses on the same key in a row, unless they are far enough apart in time." Using BounceKeys, if a person presses the T key, then bounces on it (hits it again right away), the computer will just accept one letter T, not two. The user can deliberately get two T's by waiting a little while before pressing the T key again. SerialKeys (See Section 2-6) Some people cannot use the keyboard and mouse at all due to a physical impairment, and must use some specially designed input device (a communication aid, an eyegaze-operated keyboard, etc.) to perform the functions of the keyboard and the mouse. In some cases these special input devices can be connected to a computer's serial port (the connector commonly used for attaching a modem or printer). Simply connecting the special input device to the computer's serial port, however, is not enough to allow you to control keyboard and mouse functions. The computer is designed to receive keyboard and mouse signals through its keyboard and mouse connections, not through its serial port. SerialKeys allows you to control the keyboard and mouse functions of the computer from a special input device hooked up to the computer's serial port. This is done by sending the proper series of commands and characters from the special input device to the computer's serial port. ShowSounds (See Section 2-7) The computer often signals errors or warnings to the user with beep sounds. However, users who have hearing impairments or who work in a noisy environment may be unable to hear these sounds. ShowSounds, gives you a visual indicator of when the computer has beeped at you. Whenever there is a sound, special symbols will appear in the upper left-hand corner of the screen, telling you the kind of sound that was made. For a more obvious alert, you can make the whole screen flash briefly off and on instead. The ShowSounds feature in AccessDOS would be more properly referred to as SoundSentry, because it tries to detect applications making sounds, rather than cooperating with those applications. However, the term ShowSounds will continue to be used here to follow the convention used in earlier version of AccessDOS. TimeOut (See Section 2-8) You may want to use AccessDOS on a computer which is also shared by people who don't need to use AccessDOS. The other users may not understand how to operate AccessDOS, or how to turn off its various functions. TimeOut lets you set AccessDOS to shut off after the keyboard and mouse have been unused for a certain period of time. If a person who needs AccessDOS turns AccessDOS on and then leaves the computer, someone coming up and using the computer later will not encounter AccessDOS, since it will have turned itself off. If you want to have AccessDOS on all the time, you can turn off the TimeOut function. 1-3: How to set up AccessDOS on to your disk To install AccessDOS from your Supplemental disk, carry out the following steps: Step 1: Make sure you're at the MS-DOS prompt, on the same disk drive and directory that contains your Supplemental disk files. You shouldn't be in any application program (word processor, spreadsheet, etc.) but just in MS-DOS. The MS-DOS prompt is normally letter of the disk drive you're logged on to (A, B, C, etc.), followed in some cases by a colon (:), and usually by a forward arrow (>), and then a flashing cursor. Here's an example of a MS-DOS prompt: C:>_ If the drive you are logged onto is not the drive containing the Supplemental files, you must log onto that drive by typing the drive letter followed by a colon. For example, if your prompt is C:>_ and you have inserted the diskette containing your Supplemental files into your "A:" floppy drive, you would type the letter "A" followed by a colon, then press the Enter key. You would then see your MS-DOS prompt showing the correct drive letter. Step 2: Type the Setup command. This consists of: 1) the word setup 2) a space 3) the letter of the disk drive you're copying files to (that is, the disk drive where you wish to place AccessDOS files) 4) a colon 5) a back slash ("\") 6) the name of the directory into which you want to copy the AccessDOS files. For example, if your Supplemental disk is in drive A, and you want to install the files on drive C in your DOS directory, type the following: setup c:\dos Step 3: When the Setup program starts, choose A if you want install the all Supplemental disk files. This includes many files in addition to AccessDOS. Choose S if you want to install only some of the files--for example, just the AccessDOS files. If you choose to install some of the files, Setup will prompt you to install groups of files, including AccessDOS. When AccessDOS prompts you to answer a question, you can answer by pressing a single key. In most cases your choices will to type Y to intall a group of files, N to skip a group of files, or X to abort the setup procedure. When you install AccessDOS, Setup will be copying six files: ADOS.COM A program file required to use AccessDOS ADOS.OVL Also required ADOS.CFG Also required (stores AccessDOS settings) ADOS.TXT A text file of the AccessDOS manual AREADME.TXT A file of additional instructions, including information on compatibility of particular hardware and software with AccessDOS. FAKEMOUS.COM An IBM PS/2 mouse utility When you have completed the setup procedure, you will have copies of these six files in the directory you specified on the setup command line. You can now read the on-line documentation, and then procede to start up AccessDOS. How to read the AReadMe.txt document: 1) load it in a word processor and read and/or print it 2) print it from MS-DOS by typing Print AREADME.TXT 3) read it on the screen by typing Type AREADME.TXT |more If you need more disk space If you are running out of space on your disk, you can remove ADOS.TXT and AREADME.TXT from your disk. However, you must copy ADOS.COM, ADOS.OVL and ADOS.CFG in order to use AccessDOS. Memory requirements AccessDOS does require a certain amount of RAM (random access memory) in order to operate. This should be no problem for most people with at least 256K in their computer. If you have less than 256K, or if you use several TSR (terminate-stay-resident, sometimes know as "RAM-resident") programs, you may find that you don't have enough memory for AccessDOS. So you know what you need, here are AccessDOS's memory requirements: While loading: 160K Once installed: 10K if you don't use SerialKeys 25K if you use SerialKeys System and hardware requirements AccessDOS requires that you use version 3.3 or higher of MS-DOS. In order for SerialKeys to work, you must have an available serial port. In order for MouseKeys to work, you must have an IBM PS/2 mouse or Microsoft serial or PS/2 style mouse. The mouse must be connected, with the proper mouse driver software loaded. (There is one exception; see Section 2-3 on MouseKeys for details.) 1-4: How to start up and install AccessDOS Once you've copied the AccessDOS files on to your own disk you must start it up and install it. You must install it before you can use its functions. Starting up AccessDOS Step 1: Make sure you're at the MS-DOS prompt. You shouldn't be in any application program (word processor, spreadsheet, etc.) but just in MS-DOS. You'll see the letter of the disk drive you're logged on to (A, B, C, etc.), followed in some cases by a colon (:) and usually by a forward arrow (>) and then a flashing cursor. Here's an example of a MS-DOS prompt: C:>_ You must be on the same disk drive and in the same directory that you copied your AccessDOS files into; see Section 1-3. (You can start AccessDOS from another directory by typing the full path name, if you know how to do that.) Step 2: Type "ados" (without quotation marks). Step 3: Type the appropriate command line switch after the word "ados". (See "Starting with command line switches," below). Step 4: Press the enter key. Once you've started AccessDOS, you'll see the AccessDOS menu bar. Starting with command line switches In many cases you will be able to run AccessDOS in its default mode, simply be typing ADOS and pressing the Enter key. There are times, however, when you may need to modify the way AccessDOS runs. This can be done by using command line switches. A command line switch consist of a space, a forward slash (/) and a letter. Here is a list of the available command line switches: Type If you want to. . . ADOS /? Show this list of command line switches ADOS /C Use a color display on your computer. ADOS /M Use a monochrome (black and white) display ADOS /L Use an LCD display on your computer. ADOS /A Install AccessDOS automatically with option to use menus ADOS /X Install AccessDOS automatically without option to use menus A command line switch must be typed after you type ADOS and before you press the Enter key. You may use more than one command line switch at a time. For example: ADOS /L /A Command line switches /C, /M, /L AccessDOS attempts to determine what type of video display system you have attached to your computer. In most cases AccessDOS determines this correctly, but occasionally it does not. Specifically, AccessDOS has problems with monochrome displays attached to color hardware. This is the case on many laptop computers, and when you have a monochrome monitor attached to an IBM PS/2 computer. In these situations, the computers make AccessDOS think it is running on a color system, even though the monitor is unable to display different colors. If you experience difficulty reading the display on your computer, you may want to try the appropriate command line switch for your computer display. Use: /C if you have a color monitor; /M if you have monochrome monitor; /L if you have a laptop with and LCD display. Command line switch /A If you want AccessDOS to automatically install, using whatever settings you have made and saved before, you must use the /A command line switch. You can just type it, following ADOS, but it is mainly intended to be put into your AUTOEXEC.BAT file, a file your computer uses to know how to start up. If you put ADOS /A in your AUTOEXEC.BAT file, it will give you a chance to install it each time you start up your computer. When you start up AccessDOS with the /A command line switch, you will see a message on the screen. You have four options: 1) Press the Escape (Esc) key within 20 seconds to abort the install process. If then you wanted to see the AccessDOS menus, you would have to type ADOS and press the Enter key. 2) Press the Enter key within 20 seconds, to stop AccessDOS from installing, and to go into the AccessDOS menus. If you do this, AccessDOS will ignore any settings you've made before and use its default settings for all the AccessDOS functions. AccessDOS has not "forgotten" your old settings, it just isn't using them. If you press Enter by accident, just quit the AccessDOS menus and type ADOS /A again. 3) Press any key except Escape or Enter within 20 seconds, to make AccessDOS install automatically. AccessDOS will use whatever settings you made last time you saved settings. You will not see the AccessDOS menus. 4) Wait for 20 seconds without pressing any key. This has the same effect as #3 above. WARNING: Please notice that the only way to get AccessDOS to use your previously saved settings is to use the /A or /X command line switch. If you just type ADOS, you will always get AccessDOS's default settings. Command line switch /X If you are using a computer with an 80386 microprocessor and you are using a high MS-DOS memory manager program, you may want to read about the /X command line switch. If not, just skip this explanation. MS-DOS is able to access any memory location whose address is less than 1 megabyte. High DOS memory managers use special instructions built into the 80386 CPU to map memory from 1 megabyte to available space below 1 megabyte. These memory managers can then load terminate-stay-resident (TSR) programs and device drivers in low memory so MS-DOS can use them. Most TSR programs are much smaller when they are resident than when they are loading. AccessDOS, for instance, uses about 160 KB to load, but only 10-25 KB while resident. In order for a TSR to be loaded by memory managers, there must be enough free memory to load and run the program. We have provided the /X command line switch to reduce the amount of memory required to load AccessDOS. The /X command line switch in no way affects functionality or resident size of AccessDOS; it simply installs AccessDOS with your previously saved settings (just like /A), but without the option of choosing to use the menus. This reduces the amount of memory required to load AccessDOS from 160 KB to about 31 KB. To load AccessDOS in high DOS memory, follow the instructions for your specific high DOS memory manager and include the /X command line switch after you type ADOS. Before you use any AccessDOS functions: Install it! If you want to use AccessDOS, you will have to install it each time you boot up (turn on) your computer. Installing it allows its various functions (StickyKeys, MouseKeys, etc.) to run "in the background" while you are using other programs such as word processors. If you don't install AccessDOS, its functions won't be available to you. If you are working with AccessDOS for the first time, you should probably install it before you do anything else. There are two ways to install AccessDOS: Option 1: Start up the AccessDOS program (see "Starting up AccessDOS," above) and then install AccessDOS using the Install/Run command. This will install AccessDOS with AccessDOS's default settings, rather than any settings you may have made and saved before. Here's how to do it: Step 1: Start the AccessDOS program, if you haven't already. Step 2: Pull down the file menu. Do this by pressing the left arrow key until you see a list of choices appear under the word "File." One choice should be highlighted. Step 3: Move the highlight, using the up or down arrow key, until it rests on the command install/run. Step 4: Press the enter key on the keyboard. You should then see the AccessDOS menus. Option 2: When you type "ados" to start the program, type a slash-A (/A) or slash-X (/X) after the "ados." See "Starting up AccessDOS," above, for details on this way of installing AccessDOS. This gives you a chance to install AccessDOS with whatever settings you last saved. See "Starting with command line switches," above, for a full explanation of /A and /X. Part 2 of this manual explains each of the functions of AccessDOS. All of the functions can be activated and adjusted by typing "ados" and using the commands on the screen. Some can also be activated from the keyboard while you are using another program, such as a word processor. Making AccessDOS load automatically at start-up You may want to have AccessDOS automatically load itself each time your restart or re-boot your computer. In shared computer situations, this shouldn't pose a problem, since AccessDOS can be running in the background and be inactive until a user who needs the features comes along and presses the proper keys. To make AccessDOS install or load automatically each time the computer is restarted, you should insert the command ADOS /A into your autoexec.bat file. If you are using a mouse, ADOS /A should be located after the command to load the mouse driver. If you don't know how to change your autoexec.bat file, check your MS-DOS manual or have a knowledgeable person assist you. Troubleshooting If you have difficulty using AccessDOS be sure to consult the AREADME.TXT file. This text file contains information about known compatibility issues and helpful hints for making the best use of AccessDOS. User's Guide for AccessDOS Part 2: Using AccessDOS Part 2 of this manual explains how each of the different functions of AccessDOS work. You can read through all of the instructions, or just turn to the section you want. You will also want to read the short section below on "The Basics" so you will understand how to make things happen in AccessDOS, and how to get help information on the screen. 2-1: The Basics If you are using AccessDOS for the first time, and especially if you've never used a program with "pull-down" menus before, you should read the two sections below: "How to make things happen in AccessDOS" and "How to get help in AccessDOS." How to make things happen in AccessDOS When you first start AccessDOS (as described in Section 1-3), you will see the AccessDOS menu bar. The three words at the upper left on the screen--file, adjust and help--are called the menu bar. Each of the words in the menu bar has a pull-down menu, like the one you see below the word Adjust. In AccessDOS, you make things happen by selecting choices from these pull-down menus. When you first enter AccessDOS, you should see that the Adjust menu is "pulled down," that is, you can see the list of choices. The File and Help menus can also be pulled down. Just press the right or left arrow (cursor) keys on the keyboard. For example, try pressing the right arrow key. Notice that the Adjust menu closes up, and the Help menu pulls down. There are two ways to select from menus: with the arrow (cursor) keys and with "hot" keys. To select with the arrow keys: first move the highlight bar to the choice you want, using the up and down arrow (cursor) keys, then press the Enter key. You can also select an item by pressing the hot key for that item. The hot key for each menu item is the character that is displayed in a different color from or brighter than the rest. If you told AccessDOS that you have an LCD screen on your computer, (by typing /L; see Section 1-4), the hot key will be the letter that is capitalized. As an example, try pulling down the Adjust menu and moving the highlight to StickyKeys. Then press the Enter key. You will see the StickyKeys adjustment dialog box. Notice that the dialog box gives you another set of choices. These are all the adjustments you can make to the StickyKeys function. Notice that there are two arrows pointing at the first line (which says "StickyKeys On"). These arrows are like the highlight on the Adjust menu: they show you what feature you are currently on. And like the highlight, they can be moved up and down with the up and down arrow (cursor) keys. When the arrows are pointing at the first line ("StickyKeys On") that means that you can now select "Yes" or "No" to turn StickyKeys on or off. When you move the arrows to the second line ("Sound when turned on or off"), you can choose "Yes" or "No" for that command. You select "Yes" or "No" by moving the highlight back and forth with the right and left arrow (cursor) keys. In order to leave the dialog box, press the Enter key or the Escape (Esc) key. If you press the Enter key, AccessDOS will "remember" any changes you made in the various settings in the dialog box. If you press the Escape key, AccessDOS will discard any new settings you made and go back to whatever the settings were before. (If you've never altered the settings, AccessDOS uses its own default settings.) WARNING: If you change settings in a dialog box, pressing the Enter key will only cause your new settings to be remembered until next time you turn off or re-boot your computer. If you want AccessDOS to remember your new settings even after your computer has been turned off and on again, you must also save your settings. See Section 2-10 to find out how to do this. Also keep in mind that your saved settings will not be used unless you start AccessDOS with the /A or /X switches. In summary, here are all the keys you need to use to make things happen in the AccessDOS program: Up and down arrow keys - Move up and down on a menu - Move up and down in a dialog box Right and left arrow keys - Pull down the next menu over - Move right and left in a dialog box Enter key - Select a command from the File, Adjust or Help menus - Close a dialog box and tell AccessDOS to "remember" any changes you just made in the settings. Escape key - Close a dialog box without changing anything - Close a "help" box Hot keys - Select a menu item automatically How to get help in AccessDOS There are three ways to get on-screen help (instructions) in AccessDOS: 1. Go to the help menu. When you first enter AccessDOS, you will see the file, adjust and help menus. If you pull down the help menu, you will see a list of the functions of AccessDOS. Just select the one you want, and help information for that function will appear on the screen. 2. Press the F1 key. You can press the F1 key at any time while you are in AccessDOS in order to see help information about the functions you are currently working with. If, for instance, you are in the process of adjusting StickyKeys and want some help, pressing the F1 key will give you information about adjusting StickyKeys. 3. Watch the hint line At the very bottom of the screen is a hint line. This line always tells you what action you are ready to take. Try it: pull down the adjust menu and then move the highlight up and down (using the up and down arrow keys). Watch the bottom of the screen. Notice that the hint line changes as you move from one command to another. The hint line appears for all choices on all menus. 2-2: StickyKeys What StickyKeys is for Operating a computer often requires pressing two keys at once--for example, pressing the shift key and the 8 key to make an asterisk (*). Some people find it difficult or even impossible to do this because they type with a single finger, or with a stick attached to their head or hand. StickyKeys solves this problem by letting you type first one key, then the other. For instance, to get an asterisk (*), you could press the shift key, release it, and then press the 8 key. You can use StickyKeys with the shift, control and alternate keys on your keyboard. (These keys are called the modifier keys since they modify the action of another key.) How to turn StickyKeys on and off If you have never used StickyKeys on your computer, or if someone else has turned it off, you will need to turn it on before you can use it. You don't need to be in the AccessDOS menus to turn StickyKeys on. You can turn it on from wherever you are: at the MS-DOS prompt, in a word processing program, in a graphics program, etc. (as long as you have AccessDOS installed; see Section 1-4). To turn StickyKeys on, press the shift key five times in a row. Be sure you don't press any other keys or move the mouse while you are pressing the shift key five times. You can press either the right or the left shift key. When you turn StickyKeys on, you will hear an up-siren from the computer. The up-siren is a long beep that goes up in pitch. You can turn StickyKeys off the same way you turn it on: just press the shift key five times in a row. When you turn StickyKeys off, you will hear a down-siren from the computer. The down-siren is a long beep that goes down in pitch. StickyKeys can also be set to turn off automatically if any two keys are pressed at the same time. This feature is useful for shared computers (such as school labs), so that people who don't use StickyKeys won't need to know it's there. See the instructions in "Adjusting StickyKeys," below. How StickyKeys works StickyKeys lets you do two different things to a modifier key such as shift: you can latch it or you can lock it. StickyKeys will make different sounds depending on whether you are latching a modifier key or locking it. Latching Latching a modifier key (Shift, Control or Alternate) means that it will affect only the next key you press. You latch a modifier key by pressing it just once. It will be latched while you press the next key, as if you were holding it down; then it will be released, as if you had let go of it. When you latch a modifier key, you will hear a short low beep followed by a short high beep. For example, if you wanted to capitalize the first letter of a word, you could latch the Shift key, type the first letter of the word, which would be capitalized, then type the rest of the word, which would be lower case. NOTE: The beeps can be turned on and off. See "Adjusting StickyKeys," below. ALSO NOTE: The Caps Lock key works the same way with or without StickyKeys: if Caps Lock is turned on, shifting a key will make it lower case rather than capitalized. Locking Locking a modifier key means that it will affect any key you press after it, until you unlock it. You lock a modifier key by pressing it twice in a row. You unlock it by pressing it one more time. When you press the modifier key the first time, you will hear a short low beep followed by a short high beep. When you press it the second time (and the key locks) you will hear a single short high beep. You then type what ever keys you want modified, then unlock the modifier key by pressing it one more time. When the key unlocks you will hear a single low beep. For example, if you wanted to type "ANN is," with the name ANN in all capital letters, you would press the shift key twice to lock it, type a-n-n, then press shift again to unlock it, and then type the word "is." NOTE: If locking doesn't seem to work, someone may have turned the locking ability off. See "Adjusting StickyKeys," below. ALSO NOTE: The beeps can be turned on and off. See "Adjusting StickyKeys," below. Latching more than one modifier key at once Sometimes you may need to hold down two or even all three modifier keys (shift, control and alternate), plus another key. If you do, you don't need to lock the first modifier key to have it "hold down" while you press another modifier key. For example, if you want to press Control-Alternate-Delete (the key sequence for re-booting your computer), you can just press the three keys in a row. The Control key will remain latched while you press the Alternate key and the Delete key. Once you've pressed the Delete key, (which is not a modifier key), all the modifier keys which were latched will be released, and the computer will re-boot. (WARNING: Don't actually press Control-Alternate-Delete unless you want to re-boot (restart) your computer.) Adjusting StickyKeys There are some other changes you can make to StickyKeys besides just turning it on and off. These changes are made from the AccessDOS menus, so you'll need to start up AccessDOS first. (If you haven't started up AccessDOS before, see Section 1-4 for instructions). Once you've gotten to the AccessDOS menus, select "StickyKeys..." from the adjust menu. You'll see a dialog box. Here are the choices in this dialog box, and what they mean. StickyKeys On This is the same as turning the StickyKeys function on or off by pressing the shift key five times. Sound when turned on or off This lets you decide if you want to hear the up and down sirens when StickyKeys is turned on and off. Sound when pressing a Modifier key This lets you decide if you want to hear sounds when modifier keys are latched, locked and released. Sound when pressing any key If you want to, you can hear a "click" sound from the computer for any key that you press while StickyKeys is turned on. You can say yes or no to this feature. Turn off when pressing two keys at once. StickyKeys can be set to turn off automatically whenever two keys are pressed at once on the keyboard. This feature is useful for shared computers (such as school labs), so that people who don't use StickyKeys won't need to know it's there. You can decide whether or not you want this kind of automatic turn-off. Lock MOD key when pressed twice Ordinarily, StickyKeys lets you lock a key by pressing it twice in a row. If you say no to this choice, however, the ability to lock modifier keys will be turned off. Once you've selected the adjustments you want. . . Just press the Enter key (if you want to use the settings you made) or the Escape key (if you decide you don't want to change settings after all). If you want AccessDOS to "remember" the settings you made after you have turned your computer off and back on again, you will also have to save your settings. You can do this any time by selecting Save from the File menu. For more information on saving your settings, see Section 2-10, "Saving your settings." 2-3: MouseKeys What MouseKeys is for The mouse can be a difficult device for some people to handle. For instance, people may have difficulty controlling fine movements of their hand. They may have difficulty grasping the mouse and pressing the buttons. Or they may be using a typing stick rather than their hands to operate the computer. MouseKeys allows people who can't handle the mouse, but who can press keys on the keyboard, to perform all the functions of the mouse. MouseKeys lets you use the keys on the numeric keypad (the group of number and math keys usually on the far right side of the keyboard) to control all of the mouse functions, including moving around the screen and clicking the mouse buttons. How to turn MouseKeys on If you have never used MouseKeys on your computer, or if someone else has turned it off, you will need to turn it on before you can use it. You don't need to be in the AccessDOS menus to turn MouseKeys on. You can turn it on from wherever you are: at the MS-DOS prompt, in a word processing program, in a graphics program, etc. (as long as you have AccessDOS installed; see Section 1-4). WARNING: You can only use MouseKeys if your computer is already set up to use a mouse. Also, MouseKeys will only provide mouse functions for a program that is designed to be used with a mouse. Check the AREADME.TXT file that comes on the AccessDOS disk to find out about compatibility with particular software. To turn on MouseKeys, press the left Alternate key, the left Shift key, and the Num Lock key, all at the same time. If you wish, you can do this using the StickyKeys function (see Section 2-2). The left Alternate and left Shift keys are the ones located on the left hand side of the keyboard. You may have only one Alternate key, but some keyboards have two. You will know when MouseKeys has been turned on, because you hear an up-siren from the computer. The up-siren is a long beep that goes up in pitch. How to turn MouseKeys off To turn MouseKeys off, just press the same key combination you used to turn MouseKeys on: the left Alternate key, the left Shift key, and the Num Lock key, all at the same time. Remember, you can do this using the StickyKeys function if you need to (see Section 2-2). When MouseKeys turns off, you will hear a down-siren--a long beep that goes down in pitch. Once MouseKeys is off, the numeric keypad returns to its regular functions. How MouseKeys works The instructions below refer to the standard keypad from the IBM enhanced (101-key) keyboard, plus the mouse function each key accomplishes. (If you have a different type of keypad, see "Differences in numeric keypads," below.) Below is a key to how to perform mouse functions with MouseKeys, based on the numeric keypad on the standard IBM enhanced keyboard. (If you have a different type of keypad, see "Differences in numeric keypads," at the end of this section.) WARNING: The instructions below refer just to keys on the numeric keypad. Other number or symbol keys on the keyboard won't work. Moving the mouse pointer on the screen: The number keys 1-4 and 6-9 on the keypad form a sort of "compass" for moving the pointer up, down, left right and diagonally. Press the key that is similar to the direction you want to move: for instance, the 9 key will move the mouse pointer up and to the right. If you hold the key down, the mouse pointer will move continuously. Notice that it moves slowly at first and then speeds up. The maximum speed that the pointer will go is adjustable through the AccessDOS program: see "Adjusting MouseKeys," at the end of this section. Selecting the right or left mouse button, or both Since there are two buttons on the PS/2 mouse or Microsoft mouse, you must first tell MouseKeys which button you want to use before clicking the button. The button you have selected (right or left) is called the active button. Pressing the slash (/) key: Makes the left mouse button the active button (only on 101-key keyboards). Pressing the asterisk (*) key: Makes both the Left Button and the Right Button the "active" button (on 101-key keyboards), or the left button the "active" button (on 84-key keyboards). Pressing the minus (-) key: Makes the right mouse button the active button. SHORTCUT: If you are just using the left mouse button and don't care about the right one, then you don't need to select a button. Just press the proper keys for clicking, double clicking, locking and releasing, as described below. MouseKeys will assume you want to make these actions with the left mouse button. Clicking the mouse buttons Once you've selected the right or left mouse button, you can click that mouse button by pressing the 5 key. If you don't select a mouse button first, MouseKeys will assume you want to click the left button. Double clicking First, select the right or left mouse button. If you don't select either, MouseKeys will assume you want to double click the left button. You can double click the mouse button just by pressing the 5 key twice in a row quickly. Another way to double click the mouse button is to by press the plus (+) key on the keypad just once. Locking and releasing (clicking and dragging) First, select the right or left mouse button. If you don't select either, MouseKeys will assume you want to lock the left button. Pressing the 0 key locks down the mouse button and pressing the period (.) key releases it. In other words, you can press and release the 0 key and the mouse button will still stay pressed until you release the mouse button by pressing the period (.) key. If you need to drag with the mouse (that is, move the mouse while holding the button down), just lock the mouse button with the 0 key, move the mouse with the appropriate number keys, and then release it with the period key. WARNING: When you lock down mouse buttons, make sure you eventually release them! Many software programs won't let you perform functions such as typing while the mouse button is being held down. Using the mouse and the keypad together You might try using the regular mouse together with the MouseKeys function if it is easier for you. For example, a person who uses a mouthstick for typing may want to move the regular mouse and click the regular mouse buttons, but may want to use the 0 and period (.) keys when a click-and-drag move is needed. One instance where using the regular mouse can be valuable is freehand drawing, which sometimes requires moving in more than just the eight directions offered by MouseKeys. WARNING: Not all software programs will allow you to use MouseKeys and the regular mouse at the same time. Also, if your mouse connects to the computer through the serial port, don't try to use MouseKeys and the regular mouse at the same time. Check the AREADME.TXT file that comes on the AccessDOS disk to find out about compatibility with particular software. Differences in numeric keypads The instructions above assume you are using the numeric keypad on the standard IBM extended keyboard layout. Some other keyboard layouts don't include all of the same keys. The number and period keys will be there, but you may not have the slash (/) key. If you have a keyboard that doesn't have a slash (/) key on the keypad, then the asterisk (*) key on the keypad will be the left mouse button and the minus (-) key on your keypad will be the right mouse button. There will be no key for both buttons. Using MouseKeys without a separate numeric keypad While MouseKeys is on, you can use the num lock key to switch the MouseKeys control pad back to a numeric or cursor control pad--whichever it was when you turned on MouseKeys. For example, if your number pad was functioning as a numeric pad when you turned on MouseKeys, then pressing the num lock key will switch the pad back and forth between being a MouseKeys control pad and being a numeric pad. This feature is especially useful if you are using a laptop or notebook computer which doesn't have a separate numeric keypad. On these keyboards the "numeric keypad" is usually overlaid on top of part of the standard keyboard. Using MouseKeys without a mouse connected MouseKeys will not work unless there is an IBM PS/2 or Microsoft mouse driver (software) installed. (Ordinarily, if your computer has been set up to use a mouse, the driver will be loaded automatically.) The mouse driver software will not install, however, unless there is a mouse connected to the computer. As a result, you will need to have a mouse connected in order for MouseKeys to work. There is one exception to this rule. With an IBM PS/2 computer, you can run a program called FAKEMOUS.COM. This program fools the mouse driver software into thinking there is a mouse connected, so you can install the mouse driver software and allow MouseKeys to work. You must have the mouse driver software, even if you are using FAKEMOUS.COM: you just don't need to have the mouse itself connected. Just insert FAKEMOUS.COM into your AUTOEXEC.BAT file, before the MOUSE.COM program and before your ADOS command if you have ADOS in your AUTOEXEC.BAT file. If you don't know how to add things to your AUTOEXEC.BAT file, check your MS-DOS manual or ask a knowledgeable person. FAKEMOUS.COM has two drawbacks. First, it will not work with programs which "talk to" the mouse directly without going through MS-DOS's mouse driver software. Second, software that uses the mouse may take slightly longer to start or exit when you are using FAKEMOUS.COM. Adjusting MouseKeys There are several other adjustments you can make to MouseKeys. These are made from the AccessDOS menus, so you'll need to start up AccessDOS first. (If you haven't started up AccessDOS before, see Section 1-4 for instructions). Once you're in the AccessDOS menus, select "MouseKeys..." from the adjust menu. You'll see a dialog box. MouseKeys On This command lets you turn MouseKeys on and off. This is the same as turning the MouseKeys function on or off by pressing left Shift, left Alt, Num Lock on the keyboard. Sound when turned on/off This allows to choose if you want to hear the up-siren and down-siren when you turn MouseKeys on or off. Choosing yes means you will hear the sounds. Max Speed (pix/sec) When you hold down a key to move the mouse with MouseKeys, the mouse pointer starts moving slow, then speeds up. You can decide how fast you want it to be going once it speeds up all the way. If you're good at getting your finger off a key quickly, you might want the pointer to move quickly. If not, you might want it to move more slowly. The words "pix/sec" mean pixels (screen dots) per second. HINT: if you have trouble making fine mouse controls in a text-based application (like a word processor), try using a slow setting here. Time to Max Speed (secs) This command lets you set how quickly you want the mouse to speed up when you hold down a key in MouseKeys; that is, how long it will take the mouse to speed up to its maximum speed. You can choose from one to four seconds as the Time to Max Speed. Once you've selected the adjustments you want. . . Just press the Enter key (if you want to use the settings you made) or the Escape key (if you decide you don't want to change settings after all). If you want AccessDOS to "remember" the settings you made after you have turned your computer off and back on again, you will also have to save your settings. You can do this any time by selecting save from the file menu. For more information on saving your settings, see Section 2-10, "Saving your settings." 2-4: ToggleKeys What ToggleKeys is for Many keyboards have small lights on them to indicate the status of keys that can be "on" or "off," such as caps lock. There are usually three lights, one for caps lock, one for num lock and one for scroll lock. Some people can't see these status lights, including people who are visually impaired and people who are performing keyboard functions from some device other than the standard keyboard (more information on the second situation is given under SerialKeys). ToggleKeys will also function with some keyboards which do not have indicator lights at all. The audible low and high beeps can be very useful for all operators when using this style of keyboard. How ToggleKeys works ToggleKeys tells you when one of the three keys is turned on or off by giving a beep. When you press one of these keys and it locks (the light goes on) you will hear a high beep. When you press a key and it unlocks (the light goes off) you will hear a low beep. Turning ToggleKeys on and off ToggleKeys is turned on by pressing the num lock key and holding it down for a period of about 5 seconds. When ToggleKeys turns on, you will hear an up-siren (a long beep that goes up in pitch). You turn ToggleKeys off the same way. Just hold the Num Lock key for 5 seconds and you will hear a down-siren (a long beep that goes down in pitch). You don't need to be in the AccessDOS menus to turn ToggleKeys on and off. You can turn it on and off from wherever you are: at the MS-DOS prompt, in a word processing program, in a graphics program, etc. (as long as you have AccessDOS installed; see Section 1-4). Adjusting ToggleKeys There are two adjustments you can make to ToggleKeys from within the AccessDOS program. You'll need to start up the program first. (If you haven't started up AccessDOS before, see Section 1-4 for instructions). Once you've started the AccessDOS program, select "ToggleKeys" from the adjust menu. You'll see a dialog box. ToggleKeys On Choose Yes to turn on ToggleKeys; No to turn it off. This is the same as turning it on or off by holding down the Num Lock key. Sound when turned on or off This choice lets you decide if you want to hear the beeps that signal when ToggleKeys is being turned on or off. Once you've selected the adjustments you want. . . Just press the Enter key (if you want to use the settings you made) or the Escape key (if you decide you don't want to change settings after all). If you want AccessDOS to "remember" the settings you made after you have left the AccessDOS program, you will also have to save your settings. You can do this any time by selecting save from the file menu. AccessDOS also gives you a chance to save when you select the quit command to leave AccessDOS. If you don't understand what it means to save your settings, see Section 2-10, "Saving your settings." 2-5: Keyboard Response Group: RepeatKeys, SlowKeys, and BounceKeys What the Keyboard Response Group is for Keyboards have several features that are based on the assumption that the user can press a key accurately, and release it at a precise time. These features can pose obstacles to people who have physical impairments that prevent them from pressing keys accurately, or releasing them in time. The Keyboard Response Group has three adjustments which let you control how the keyboard responds: RepeatKeys, SlowKeys and BounceKeys. RepeatKeys: Most keyboards have a feature called auto-repeat: when you hold down a key for longer than a certain period of time, the keyboard begins repeating that key over and over again. This feature of keyboards is meant as a convenience for most users, but can be an inconvenience to users with physical impairments. They may get repeated keys when they don't want them. RepeatKeys lets you adjust how fast the auto-repeat works or turn it off entirely. SlowKeys: Some people who have physical impairments may accidently bump keys while they are moving their hand or typing stick toward the key they want. Usually, the keys that are bumped accidentally will just be hit for a very short period of time. SlowKeys lets you tell the computer not to accept a key as "pressed" unless it's held down for a certain length of time. The user can then bump any number of keys on their way to the one they want without accidentally getting those characters. They can then hold the desired key long enough for the computer to accept it. BounceKeys: Some people with physical impairments will accidentally "bounce" on a key when they press it--that is, they'll press it once, then accidentally press it again right away. BounceKeys lets you tell the computer "don't accept two presses on the same key in a row, unless they are far enough apart in time." Using BounceKeys, if a person presses the T key, then bounces on it (hits it again right away), the computer will just accept one letter T, not two. The user can deliberately get two T's by waiting a little while before pressing the T key again. How the Keyboard Response Group works The three functions in the Keyboard Response Group (RepeatKeys, SlowKeys and BounceKeys) are enabled and disabled together as a group. This is done to simplify turning the group on and off from the keyboard, so you don't have to go into the AccessDOS program to do it. WARNING: Be sure to read "Adjusting the Keyboard Response Group," below, before following the instructions in "Enabling the Keyboard Response Group." If you enable the Keyboard Response Group before you have it adjusted right, it can be very confusing. However, you may not want to use all three of the functions in the Keyboard Response Group. In this case you will need to go into the AccessDOS program and indicate which of the three functions you want to have turned on or off, and how you want them adjusted. Adjusting the Keyboard Response Group In order to adjust the keyboard response group, or to turn any of the three functions (RepeatKeys, SlowKeys or BounceKeys) on or off, you will first need to get to the AccessDOS menus. (If you haven't started up AccessDOS before, see Section 1-4 for instructions). Once you're in the AccessDOS menus, select "Keyboard Response..." from the adjust menu. You will see a dialog box. Enable Group This lets you turn the whole Keyboard Response Group on or off. When you enable the group, you enable it with whatever settings are shown in the dialog box. If for instance, "Debounce time" is set to Off, that means BounceKeys is, in effect, turned off. In this case, saying Yes to "Enable Group" would not turn BounceKeys on. You would have to select a debounce time first and then say Yes to "Enable Group." If you just want SlowKeys turned off, select Off under "Acceptance Delay." If you want just BounceKeys turned off, select Off under "Debounce time." RepeatKeys itself can't be turned off except by disabling the whole Keyboard Response Group. The Off setting under "Repeat Rate" does not turn RepeatKeys off: it turns the keyboard's regular auto-repeat feature off. Enabling the Group from the keyboard at any time Once you have made the settings you want for the Keyboard Response Group, you can also enable and disable the group at any time without going into the AccessDOS program. Here's how: Hold the right hand shift key down for 8 seconds. After about 4 seconds you will hear 3 short warning beeps. (These are provided just in case someone is accidentally resting their hand on the right hand shift key and doesn't really want to invoke these functions--it's sort of a "get off the key" warning). Since you do want these functions enabled, just ignore these warning beeps and keep holding the key down. After about 4 seconds more (total of 8 seconds) you will hear an up-siren. You can release the key now and the functions will be enabled using the settings you chose for RepeatKeys, SlowKeys and BounceKeys. When you enable the group this way, it will come on with whatever settings have been made for the Keyboard Response Group. If, for example, "Debounce time" is set to Off, you won't get the BounceKeys feature when you enable the group. You can disable the Keyboard Response Group using this same procedure (8 seconds on the right Shift key). When you disable the group, you will hear a down-siren. Sound on Enable This setting lets you decide whether or not you want to hear sounds when you enable or disable the Keyboard Response Group. RepeatKeys Settings There are two adjustments for the RepeatKeys function. The first setting (Called "Repeat Rate") allows you to adjust the speed at which the keys will repeat when you hold a key down. The smaller numbers (like 0.25) will make keys repeat faster. If you do not want keys to repeat at all (no matter how long you hold them down), then just set the Repeat Rate to Off. The second setting (Called "Delay until repeat") allows you to set the length of time you must hold a key down before it will begin to repeat. If you have trouble getting off of a key in time, set this to a longer (higher) setting. Note that "Delay until repeat" has no effect if "Repeat Rate" is set to Off. WARNING: There are some software programs which have their own keyboard repeat key adjustment in them. In order for RepeatKeys to work with these programs you must first turn off the key repeat adjustment in the software program itself. (For example: in WordPerfect, set keyboard speed to "normal"; in Microsoft Word, set keyboard speed option to "0.") Certain software programs which set the key repeat themselves will keep RepeatKeys from working at all. Check the AREADME.TXT file that comes on the AccessDOS disk to find out about compatibility with particular software. SlowKey Settings There are two adjustments for the SlowKeys function. The first setting (called "Acceptance Delay") allows you to adjust the amount of time that you must hold a key down before it will be accepted by the computer. If you do not want SlowKeys, just set the Acceptance Delay to Off. The second setting is called "Key Click Feedback." If this is set to Yes then you will hear a click when you press a key and another click when it is accepted. The click serves to remind you that the response of the keyboard has been slowed down, and that the keyboard is not broken. BounceKey Settings There is only one setting for BounceKeys, called "Debounce time." The larger the number, the longer you will have to wait after you release a key before you can type that same key a second time (up to two seconds). If you do not want the BounceKeys function, just set the debounce time to Off. If you want to type the same key twice you just need to pause a bit between the two key presses. BounceKeys does not prevent you from typing other keys quickly. You just can't type the same key twice quickly. WARNING: You cannot use SlowKeys and BounceKeys at the same time. If you try to, AccessDOS will give you an alert message. This conflict should be insignificant, however, since slowing down the key response also eliminates bounce problems. Once you've selected the adjustments you want. . . Just press the Enter key (if you want to use the settings you made) or the Escape key (if you decide you don't want to change settings after all). If you want AccessDOS to "remember" the settings you made after you have left the AccessDOS program, you will also have to save your settings. You can do this any time by selecting Save Settings from the File menu. If you don't understand what it means to save your settings, see Section 2-10, "Saving your settings." WARNING: You cannot save SlowKeys or BounceKeys as part of your settings. In other words, you can turn SlowKeys and BounceKeys on, but next time you turn your computer off, it will "forget" that you had them turned on, and you will have to turn them on again next time you start up your computer. (See "Enabling the Group from the keyboard at any time," above.) This is to keep SlowKeys and BounceKeys from causing problems for people who don't need to use them. Emergency enabling of the Keyboard Response Group Some individuals are completely unable to operate the computer unless they can turn off the repeat function of the keyboard or turn on SlowKeys, or both. These individuals could find themselves in an impossible situation, where they are unable to use the computer well enough to turn on the AccessDOS functions that they need in order to use the computer. This is particularly a problem when using a shared computer, where someone else might change the Keyboard Response Group settings or turn the group off completely. To deal with this situation, AccessDOS gives you a way to "emergency enable" RepeatKeys, SlowKeys and BounceKeys. The settings may be very slow and hard to use, but you at least will be able to use the keyboard in order to go into the AccessDOS program and adjust the settings the way you want them. To "emergency enable" the Keyboard Response Group, simply hold the right hand Shift key down for several seconds. Here's what will happen: After 4 seconds 3 short beeps The normal warning 4 more seconds Up-siren Keyboard Response Group enables (current settings) 4 more seconds 2 up-sirens Keyboard repeat turns off completely (No SlowKeys, Debounce time 1 sec) 4 more seconds 3 up-sirens SlowKeys turns on at max. (2 sec) setting (RepeatKeys off, BounceKeys off) You can try it now if you like, but remember how to turn it back off! You can turn it back off by holding the right shift key down till you hear the down-siren (approx 8 seconds). 2-6: SerialKeys Some people cannot use the keyboard and mouse at all due to a physical impairment, and must use some specially designed input device to perform the functions of the keyboard and the mouse. In some cases these special input devices can be connected to a computer's serial port. (The serial port, also known as a "COM" port, is a connector commonly used for attaching a modem or a printer). Using SerialKeys requires you to program specific key definitions into your special input device. You will need the manual for your device in order to carry out this programming. You will also need to refer to Part 3 of the AccessDOS manual for specific instructions. 2-7: ShowSounds What ShowSounds is for The computer often signals errors or warnings to the user with beep sounds. However, users who have hearing impairments or who work in a noisy environment may be unable to hear these sounds. ShowSounds gives you a visual indicator of when the computer has beeped at you. Whenever there is a sound, special symbols will appear in the upper left-hand corner of the screen, telling you the kind of sound that was made. For a more obvious alert, you can make the whole screen flash briefly off and on instead. ShowSounds uses five special symbols to show when a sound has been made: - A musical note symbol followed by an up arrow indicates an up-siren produced by AccessDOS - A musical note symbol followed by a down arrow indicates a down-siren produced by AccessDOS - A musical note symbol followed by a solid dot indicates a high beep produced by AccessDOS - A musical note symbol followed by a hollow dot indicates a low beep produced by AccessDOS - A musical note symbol by itself indicates a sound that was produced by another program, rather than by AccessDOS. The first four symbols apply only to sounds made by AccessDOS. The last one indicates sounds from other programs (ones which are longer than 1/2 second). You can see examples of these symbols in the AccessDOS help screens. WARNING: Not all programs permit the musical note to appear. Check the AREADME.TXT file that comes on the AccessDOS disk to find out about compatibility with particular software. Turning ShowSounds on and off To adjust ShowSounds, start up AccessDOS (see Section 1-4 if you don't know how). Select "ShowSounds..." from the adjust menu. You can select either the visual note or the screen flash, but not both. Don't forget to save your settings if you need to (see Section 2-10). 2-8: TimeOut What Timeout is for You may want to use AccessDOS on a computer which is also shared by people who don't need to use AccessDOS. The other users may not understand how to operate AccessDOS, or how to turn off its various functions. TimeOut lets you set AccessDOS to shut off after the keyboard and mouse have been unused for a certain period of time. If a person who needs AccessDOS turns AccessDOS on and then leaves the computer, someone coming up and using the computer later will not encounter AccessDOS, since it will have turned itself off. If you don't want to have AccessDOS turn off by itself, you can turn off the TimeOut function. You shouldn't need the TimeOut function if you are the only person who uses your computer. Turning TimeOut on and off Start up AccessDOS (see Section 1-4 if you don't know how). Select "TimeOut..." from the Adjust menu. Adjusting TimeOut There are three settings in TimeOut. The first is simply whether you want it on or off. The second is how long you want TimeOut to wait before it turns AccessDOS off. The third is whether you want the computer to beep when it turns AccessDOS off. Select the settings you want, then press the Enter key. You may also want to save your settings (See Section 1-10). NOTE: The TimeOut function does not remove AccessDOS from your computer's memory (that is, it doesn't "un-install" AccessDOS). TimeOut just turns off any of the functions that were left active. If a disabled user returns to the computer after TimeOut has turned all the AccessDOS features off, he or she would have to use the AccessDOS menus or the right key combinations to turn back on the desired functions. 2-9: Miscellaneous adjustments Space Saver Keyboard If you are using a space saver keyboard, such as the one that comes with the PS/2 MODEL 25 or 30, you should set this option to Yes so that AccessDOS will work properly with the keyboard. This function does not affect the operation of SerialKeys, which will work just as if you had some other keyboard. 2-10: Saving your settings When you make settings in AccessDOS and then select OK, AccessDOS will "remember" those settings until you change them, or until the next time you turn the computer off. If you want AccessDOS to "remember" the settings you made after you have turned your computer off and back on again, you will also have to save your settings. You can do this any time by selecting "Save Settings..." from the File menu. When you first pull down the File menu, you will see that the choice "Save Settings..." is already selected for you, so just press the Enter key to save your settings. AccessDOS will ask you to confirm that you really want to do this. WARNING: You cannot save the settings for SlowKeys "on" or BounceKeys "on." In other words, you can turn SlowKeys and BounceKeys on, but next time you turn your computer off, it will "forget" that you had them turned on, and you will have to turn them on again next time you start up your computer. This is to keep SlowKeys and BounceKeys from causing problems for people who don't need to use them. You can save RepeatKeys settings. If you are the only one who uses your computer, you will probably want to adjust the settings the way you want them, save them, and leave them that way. If you share a computer with people who don't need AccessDOS, or who want different settings, you may want to just make your settings but not save them. Then your settings won't be there once the computer has been turned off and back on again. 2-11: Leaving AccessDOS Once you have made the settings you want, and saved them if you want, you can leave the AccessDOS program using one of two commands: Install/Run You should use the install/run command: 1) The first time you use AccessDOS since the computer was turned on. (You can also install AccessDOS automatically; see Section 1-4). Once you've selected Install/Run, the AccessDOS menus will disappear, and you'll see a message: AccessDOS is now loaded and resident on your computer. 2) Whenever you want the settings you've just made to take effect. NOTE: If you want AccessDOS to "remember" the settings after you have turned the computer off and back on again, you must also use the Save Settings command. AccessDOS will ask you to confirm that you actually want to install it. WARNING: If when you first turn on your computer you want AccessDOS to use the settings you made last time you had your computer on, you will have to start AccessDOS with /A or /X command line switch. (See Section 1-4 for details.) Cancel/Quit This is the command you should use if you've changed settings while you were in AccessDOS, but have decided that you don't want to use those new settings. If you select cancel/quit, AccessDOS will go back to whatever settings you had before you started the program this time. If you've already installed AccessDOS, this command won't "un-install" it. It just makes AccessDOS forget whatever setting changes you just made. (NOTE: The only way to un-install AccessDOS is to restart your computer.) User's Guide for AccessDOS Part 3: AccessDOS Reference--Setting up SerialKeys Some people cannot use the keyboard and mouse at all due to a physical impairment, and must use some specially designed input device to perform the functions of the keyboard and the mouse. In some cases these special input devices can be connected to a computer's serial port (the connector commonly used for attaching a modem or printer). Simply connecting the special input device to the computer's serial port, however, is not enough to allow you to control keyboard and mouse functions. The computer is designed to receive keyboard and mouse signals through its keyboard and mouse connections, not through its serial port. SerialKeys allows you to control keyboard and mouse functions through the serial port. This is done by sending the right series of letters and commands from the special input device to the computer's serial port. The regular keyboard and mouse can still be used while SerialKeys is being used. The most commonly used special input device for SerialKeys is a communication aid: an electronic device often used by people who can't communicate by speech alone because of a physical disability that affects their speech. Using SerialKeys requires you to program specific key definitions into your special input device. You will need the manual for your device in order to carry out this programming. The instructions below tell you how to set up SerialKeys with a device such as a communication aid (we just refer to the device as "the aid" in these instructions). These instructions tell you how to hook up your aid to the computer, how to set up SerialKeys on the computer, and what letters or commands to send so you can type any key on the keyboard and make any mouse movement you want from the aid. Follow the instructions step-by-step, and you should be successful in hooking up your aid and using SerialKeys. NOTE: These instructions do NOT tell you how to program your own aid. You will need to consult the manual for your aid, or contact the manufacturer if you have questions. The steps in these instructions are numbered from one to ten. If you are the user of the aid, someone may need to assist you the first time you set up SerialKeys. Step 1: Determine if your communication aid will work with SerialKeys You need to make sure your aid will work with SerialKeys. You should be able to answer "yes" to all of these six questions: 1) Can you program selections on your aid to have unique words and sentences stored under them? Most electronic communication aids these days will let you program any series of characters (letter, numbers, symbols) you want for a particular selection. 2) Can your aid store at least 84 programmable selections? You will need at least one selection space for each key on the computer's keyboard, plus more if you want to use the mouse. There are 84 keys on the standard IBM AT keyboard, and now many keyboards have 101 keys. You don't need to be able to store all of the keys and mouse actions on the same level (or overlay) on your aid. You may, for instance, want to use one level for the keyboard and one for the mouse. 3) Does your aid have a serial port? This is the connection sometimes used to hook up a printer. It is sometimes called an RS-232 serial port. 4) Can you program selections on the aid so that when they are selected, they will automatically be sent to the serial port? Many aids have this capability, since it can be useful for printing messages. If you have a printer connected to your serial port, typing h e l l o on your aid and sending it out the serial port will make "hello" print out on the printer. If you have your aid's serial port connected to the computer's serial port, and you have SerialKeys working, typing h e l l o on your aid and sending it out the aid's serial port will cause the word "hello" to appear on the computer--just as if it had been typed on the computer's keyboard. 5) Does your computer have a serial port? This is sometimes called a "COM" port in computer jargon. If you don't have one, you can probably add one to your computer. If you have a serial port but you are using it for something else, such as connecting a printer or a modem, you will have to: - disconnect the printer or modem, OR - equip your computer with another serial port, OR - use another, unused serial port (if your computer already has more than one). 6) Can your communication aid send information through its serial port at the rate of 300 baud? (The term 300 baud refers to the speed at which characters are transmitted.) Most aids can send information at 300 baud--it's a very common speed--but check and make sure. Your aid may be able to send information faster than 300 baud as well, and that's OK. SerialKeys can "talk to" an aid that's sending information at 300, 600, 1200, 2400, 4800, or 9600 baud. However, 300 baud is the recommended speed setting. If your aid requires a higher baud rate, you will need to be aware of some additional operating features. See the section on "Advanced features," at the end of Part 3 of this manual. Step 2: Connect your aid to your computer Just plug one end of the serial cable into the serial port on your aid and the other end into the serial port on your computer. If you don't already have a serial cable, you will need to obtain it from the manufacturer of your aid. (Note: Your aid may require an adapter to match the connector on your computer.) WARNING: Some cables have the correct connectors, but will not work with SerialKeys. This is because there are several types of cables that look identical, but connect run the wires between their connectors in different ways. If your cable does not work correctly with SerialKeys, you should contact the manufacturer of your aid to find out what type of cable will be required. Step 3: Configure your aid for serial transmission Your aid and SerialKeys must be talking to each other at the same speed (baud rate) for them to communicate at all. We recommend choosing a speed of 300 baud. If you intend on using another baud rate, please read the "Advanced features" section at the end of this manual. You must also make sure your aid is configured correctly. It must be communicating at 300 baud, with the following format: - 1 start bit - 8 data bits - 1 stop bit - no parity. You don't have to know what this means, you just have to make sure your aid is configured that way. Check the manual of your aid to find out how to do it. In addition, most aids have a special selection or a switch for causing the characters stored in your aid to be transmitted out the serial port. Make sure you "turn on" this function. Other aids may require you program special codes to set up the serial port. Again, please read your manual to find out how to do this. Step 4: Install AccessDOS, activate SerialKeys Before you can use SerialKeys, you need to make sure AccessDOS is installed on your computer. See Sections 1-3 and 1-4 of this manual to learn how to do this, if you haven't already. Go into the AccessDOS menus and select "SerialKeys..." from the adjust menu. Then: 1) For "Install SerialKeys," select yes. 2) For "Serial Port," select the number of the serial port on your computer which you intend to connect your aid to. If you don't know which is which, consult your manual or someone who would know. 3) For "Baud Rate," select the baud rate you have already configured your aid to. We recommend 300 baud. For most people this rate will be just fine for any use of SerialKeys. If later you decide you want a faster rate, you can change the setting: first in SerialKeys and then on your aid. Both must be set to the same baud rate. 4) Use the "Save Settings..." command in AccessDOS. 5) Next time you start up AccessDOS, use the /A or /X command line switch (see Section 1-4 for details). Steps 5-8: Learn to program keys and mouse actions on your aid Steps 5-8 in these instructions will tell you how to program each different type of key or mouse movement, and give you examples which you can try programming. This way, you can check and make sure that your aid and computer are set up properly, and that you understand how to program the aid, before you program the complete set of keys and mouse movements. There are four basic types of SerialKeys actions you can program into any selection (position) on your aid: 1) basic keys, 2) special keys, 3) modifier keys, 4) mouse movements. Before you start typing keys, send three null characters form your aid to the computer. This resets SerialKeys. (The null character is different from a zero; usually it can be made on your aid by typing control-@. See the "Advanced keyboard and mouse features section" for more details.) Step 5: Typing basic keys Each key on your computer keyboard is given a keyname, and it is this keyname that you must program into your aid if you want to be able to type that key. Many of the keynames consist of a single character. These we are calling "basic keys." ` 1 2 3 4 5 6 7 8 9 0 - = q w e r t y u i o p [ ] a s d f g h j k l ; ' z x c v b n m , . / \ To type one of these keys, you just send that single character out the serial port of the aid. For example, to type the word "hello", you simply select the "h" keyname, the "e" keyname, the "l" keyname, another "l" keyname, and finally an "o" keyname. Most aids have all of these single character keynames programmed into them so there is no additional programming for you to do for these keys. Try it! Once you've followed steps 1-3 above, try typing the word "hello" on your aid. Make sure the computer is in some program where you might ordinarily type a word and be able to see it, such as a word processor, or just MS-DOS. Make sure your aid is set up so the characters will go right out the serial port. Type the five letters of the word "hello." You should see each one appear on the computer screen shortly after you type it. See Steps 9 and 10 to learn how to set up the complete keyboard, and for a chart of all the keynames. Step 6: Typing special keys If you look at the computer keyboard, you will find that there are many keys that do not have single character keynames; for example, the arrow keys and the Num Lock and Enter keys. We call these keys special keys since you have to do something different if you want to type them using your communication aid. To type special keys, you must program a sequence of characters into a single selection on your communication aid. The sequence for special keys is different for each key, but always follows two rules: 1) The sequence must begin with the Escape character; 2) The sequence must end with a period. The Escape character usually can be generated on your aid by selecting the Control function along with the left bracket ([). On some aids, this will appear as ^[. Check the instruction manual of your aid if you're unsure of how to make the Escape character on it. Throughout this manual, we refer to the Escape character by putting "esc" between two angle brackets, like this: . Remember: when you see in a sequence of characters, it just means ONE character (the Escape character), not five characters, as it might appear. To program the name of a special key into your aid, program first the Escape character, then the correct name for the special key, then a period. These should all be programmed as one word on your aid, then sent out the serial port to the computer. For example, to type the Enter key, the character sequence would be: enter. The escape character comes first, followed by the keyname for the key that you want to press, followed by a period (.). SerialKeys has official names for each of the special keys; charts of these are provided under Step 10, below. Try it! Try typing the Enter key, by sending the correct sequence out the serial port of your aid to the computer. Make sure you are in a program on your computer which does something when the Enter key is pressed, so you can tell if you were successful. Make sure your aid is set up so that each key you type will be sent out the serial port. Now type the sequence shown: enter. Remember, means the Escape character on your aid. And don't forget the period at the end. Once you type the period, your computer should act just as if you had typed the Enter key. Since the sequences for special keys are somewhat long, you will want to program an entire sequence for a special key into a single selection on your aid. Then you can label this selection (Enter, for instance) and have it ready for when you need to type the key. In fact, you will probably want to program the sequences for all the special keys on your keyboard into selections on your aid. The time spent doing this will be made up many times once you begin using your aid to access the computer. See Steps 9 and 10 to learn how to set up the complete keyboard, and for a chart of all the keynames. Step 7: Typing Modifier Keys (Shift, Control, Alt) There are three special keys which have to be typed differently from the other special keys: Shift, Control (Ctrl), and Alternate (Alt). These three keys are called the modifier keys, since they don't do anything themselves but modify the action of another key. Shift, for instance, will make a small "a" into a capital "A." On an ordinary keyboard, the modifier key is held down while the other key is pressed. SerialKeys imitates this action by using a command called hold. Here's the sequence you have to type on your aid in order to type a modifier key: 1) The Escape character 2) Comma (,) 3) The word hold 4) Another comma (,) 5) The name for the modifier key (see the list under Step 10, below); 6) Period (.) 7) The key you want to modify. Try it! Try typing a capital A, by sending the correct sequence out the serial port of your aid to the computer. Make sure you are in a program on your computer which will show the letter when it's typed, so you can tell if you were successful. Make sure your aid is set up so that each key you type will be sent out the serial port. Now type the sequence shown: ,hold,shift.a Remember, means the Escape character on your aid. And don't forget the commas and the period. If you've typed the sequence successfully, a capital A should appear on your computer, just as if you had held down the Shift key on the regular keyboard and then pressed the A key. Most keyboards have two Shift keys, a right shift key and a left shift key. You can use different keynames (lshift and rshift) for the two keys to distinguish them if you wish. Some keyboards also have right and left Control keys and right and left Alternate keys. SerialKeys also distinguishes between these. See Steps 9 and 10 to learn how to set up the complete keyboard, and for a chart of all the keynames. Step 8: Moving and clicking the mouse If your computer is equipped to use a mouse (IBM PS/2 mouse or Microsoft mouse), you can operate all the mouse functions from your aid as well, using SerialKeys. If you're not interested in performing mouse functions, skip this part. NOTE: You must have the proper mouse driver installed, otherwise the mouse commands will have no effect. In most cases you will need to have a mouse attached to your computer before a mouse driver will install. Before you do any mouse functions through SerialKeys, you should send the "moureset" (mouse reset) command. This should be done whenever you start up an application program (such as a word processing program) that uses the mouse. Just send this command from your aid. moureset. The mouse pointer should move to the upper left hand corner of the screen. Moving the mouse You can do the equivalent of moving the mouse by sending a "move" command from your aid to the computer. Here are the parts of a move command, in the proper order: 1) the Escape character (see Step 4 if you don't know what this is) 2) a comma 3) the word "move" 4) another comma 5) a plus or minus sign followed by a number (for horizontal movement) 6) another comma 7) another plus or minus sign followed by a number (for vertical movement) 8 a period. The move command takes two numbers after it: first the motion in the horizontal direction and then the motion in the vertical direction. There must be either a plus (+) or a minus (-) sign before each number, unless the number is a zero. Positive numbers move the mouse pointer to the right or down. Negative numbers move the mouse pointer left or up. Examples: Send out Mouse Command Result ,move,+10,-20. moves 10 units to right and 20 units up ,move,-10,+20. moves 10 units to left and 20 units down ,move,0,-10. moves 0 units to right and 10 units up Clicking the Mouse In order to click the button on a mouse, you use the "click" command. The commands should be typed as you see below. Remember, means the Escape character. And don't forget the commas and the period at the end! Examples: Send out Mouse Command Result ,click,left. clicks the left button ,click,right. clicks the right button Double-clicking the mouse You can double-click the mouse using the same commands shown above, but with the command "dblclick" in place of the command "click": ,dblclick,left. OR ,dblclick,right. Clicking and dragging with the mouse SerialKeys lets you do the equivalent of holding the mouse button down while moving the mouse. This is done using the "moulock" (mouse lock) and "mourel" (mouse release) commands, together with the "move" command. If, for example, you want to select text in a word processing program that uses the mouse, you would: 1) Move the mouse to the beginning of the text you want to select, using the "move" command as described above. 2) To press the mouse button down and keep it down, give the "mouse lock" command: ,moulock,left. OR ,moulock,right. 3) Move the mouse to the end of the text you want to select, using the "move" command as described above. 4) To release either button (or both), give the "mouse release" command: ,mourel. Don't forget the commas and periods! See Steps 9 and 10 to learn how to set up the complete keyboard and mouse actions, and for a chart of all the keynames and suggested mouse movements. Step 9: Plan the layout for your aid Steps 5-8 above showed you what sequences of characters to send in order to type basic keys, special keys and modifier keys, and to do mouse actions. Now you will want to program a selection on your aid for each key or mouse action you want to use. But before you program all of the keys and mouse actions into your aid, you will probably want to decide how to lay out the selections on your aid. Look at the number of different keys and mouse actions you will want to have (see the charts under Step 10). Do you want mouse movements in addition to the ones suggested in Step 10? If your aid stores vocabulary in levels, decide if you want keyboard and mouse actions on separate "levels" in your aid. If you aid uses combinations of symbols to store vocabulary, what combinations will you want to use for keyboard and mouse functions? Step 10: Programming your aid for keyboard and mouse functions As mentioned above, this manual won't tell you how do the actual programming of your aid, since that procedure is different for every aid. However, we have provided tables of keyboard and mouse character sequences which you can refer to while you are programming your aid. There are some differences between the keyboards of different computers, but the charts on the following pages do include every key that can be typed in SerialKeys. Troubleshooting If you are using SerialKeys and your aid stops sending keys successfully, try: 1) Checking to make sure you included any necessary periods in your keynames. 2) Sending three null characters. (The null character is different from a zero; usually it can be made on your aid by typing control-@.) 3) Resetting both the aid and SerialKeys to 300 baud. (If there is a communication difficulty, SerialKeys may automatically reset itself to 300 baud, making it unable to communicate with your aid if your aid is sending at a different rate.) 4) Make sure that the correct characters are being sent by the aid and received by your computer. You can do this by starting an applications which will show you the characters being received on your computer's serial port. Such applications are called "terminal emulators" or "communication programs", because they are normally used to let your computer talk with another computer use a modem. Such a modem would normally attach to the serial port on your computer, and appear just like your aid. You may need to get assistance from someone who has such an application and is familiar with how to use it. Guide to programming keyboard keys You can program your aid to act as any one of the three keyboards shown on the following pages. We recommend programming your aid to use the IBM Enhanced Keyboard (101 keys). Even if your computer dows not have this keyboard, SerialKeys will function as the 101-key keyboard. This may be to your advantage, as some software packages will recognize the additional keys, enabling you to access additional features. NOTE: If you choose to program the 83- or 84-key keyboard, there are a few exceptions you should be aware of. 1) To type the Break function, you would ordinarily hold the Control key and press the Scroll Lock key. For SerialKeys, hold the Control key and press the Pause key. ,hold,ctrl.pause. 2) To type the Pause function you would ordinarily hold the Control key and press the Num Lock key. For SerialKeys, just press the Pause key. pause. You can find descriptions of most of the common commands and their usage in the earlier, tutorial section, steps 5 through 8. A complete listing of all commands is included at the end of this document. The following sections provide advice on the commonly used commands and the most efficient way to use your aid, followed by some advanced commands and technical notes. Suggested programming for mouse actions Mouse movements It's a good idea to at least program some square or selection on your communication aid to move the mouse in the four directions by 1, by 10, and by 100 units. This will allow you to make small, fine movements and large, fast movements. Send out Mouse Command Result ,move,+1,0. moves 1 right ,move,-1,0. moves 1 left ,move,0,+1. moves 1 down ,move,0,-1. moves 1 up ,move,+10,0. moves 10 right ,move,-10,0. moves 10 left ,move,0,+10. moves 10 down ,move,0,-10. moves 10 up ,move,+100,0. moves 100 right ,move,-100,0. moves 100 left ,move,0,+100. moves 100 down ,move,0,-100. moves 100 up Clicking the Mouse Send out Mouse Command Result ,click,left. clicks the left button ,click,right. clicks the right button (only if the computer's mouse supports a right button) ,click,left,right. clicks the left and right button at the same time. Double-clicking the mouse Send out Mouse Command Result ,dblclick,left. double-clicks left button ,dblclick,right. double-clicks right button (only if the computer's mouse supports a right button) ,dblclick,left,right. double-clicks the left and right button at the same time. Clicking and dragging with the mouse Send out Mouse Command Result ,moulock,left. locks down left mouse button ,moulock,right. locks down right mouse button ,moulock,left,right. locks down both mouse buttons ,mourel. releases both mouse buttons Advanced keyboard and mouse features Resetting SerialKeys If you are using SerialKeys in a multi-user environment, the first command you send to SerialKeys should be the reset command. This will insure that SerialKeys will be at 300 baud and ready to accept your keyboard and mouse actions. The reset command consists of sending 3 Null (ASCII 0) characters with your aid configured to 300 baud. A Null character can usually be generated on your aid by selecting the control @ . Lock and Release This command can be used to hold a key down and lift it back up again as separate actions. Its primary usefulness is in using SerialKeys in combination with MouseKeys. 1) Turn on MouseKeys (see Section 2-3). 2) Decide which direction you want to move the mouse. Find out what keypad key moves the mouse in that direction in MouseKeys. 3) Send a lock command with that keyname. For instance to move right: ,lock,kpright. 4) When the mouse pointer has moved as far as you want in that direction, send the release command: ,rel. You can program the lock part and the release part of this sequence each under a different selection on your aid, so you don't have to type them out in full each time you use them. Make sure to include the commas and periods. Combine If you want to program a modifier key and some other key under a single selection on your aid, use the combine command to put several keystrokes under one selection on your aid. This can be useful for common multiple-key command combinations required by software. There must be commas between the keys and a period at the end. No more than five keys can be combined. Example: ,combine,shift,ctrl,enter. Goto Moves the mouse to a specified location. You should send the "moureset" command first. Both the horizontal and vertical direction numbers require only a + sign. (See moving the mouse, Step 8 above.) Example: ,goto,+20,+25. Baudrate Command The baudrate command allows you to change the baud rate of SerialKeys from your aid. The possible baud rates are 300, 600, 1200, 2400, 4800, and 9600. This command is never absolutely necessary, since you can also set the baud rate of SerialKeys by going into the AccessDOS program. Example: ,baudrate,300. Using higher baud rates If you decide to run SerialKeys at a baud rate faster than 300 baud, you must be aware of the special automatic reset feature of SerialKeys. Whenever SerialKeys receives three consecutive characters with a transmission error, it will automatically reset to 300 baud. This is to enable users in a multi-user environment to put SerialKeys in a known state (300 baud). SerialKeys will signal any transmission problem with a short beep. If SerialKeys resets to 300 baud, it will make a long beep. Technical notes 1) SerialKeys uses hardware handshaking (DTR/RTS) and software (XON/OFF) handshaking to control the flow of characters from the aid. Characters may be lost if the aid ignores the handshaking signals. 2) SerialKeys uses hardware interrupt line IRQ4 if COM1 or COM3 is selected, and IRQ3 if COM2 or COM4 is selected. No other device can use or share the interrupt line that SerialKeys is using. That means that if for example, you have SerialKeys on COM1, you can not use a modem on COM3 if the modem software is interrupt driven. 3) See the AREADME.TXT file for additional information regarding SerialKeys. Complete list of SerialKeys commands The following tables list all the functions that can be performed using SerialKeys. They are divided into the following categories: 1) Basic Keys 2) Non-printing keystrokes 3) Modifier keys 4) Additional key combination commands 5) Mouse commands 6) Miscellaneous commands In these tables, the term "p/r" means that a key is being pressed and immediately released. The term "pressed down" means that the key is pressed and remains pressed until the next non- modifier key is pressed and released. The term "" represents the escape character, normally generated by pressing the Esc key on the keyboard. The term "" represents the NUL character, usually generated by pressing Control and @ on the keyboard. The terms "", "" and so forth are placeholders used to refer to any key that you choose to press. You will also note that there are often more than one command that represent the same key. For example, the "kpdivide" and "kp/" commands function identically. 1) All basic keys ` 1 2 3 4 5 6 7 8 9 0 - = q w e r t y u i o p [ ] a s d f g h j k l ; ' z x c v b n m , . / \ 2) Non-printing keystrokes Key name Send from aid Action(s) alt alt. alt key p/r backspace backspace. backspace key p/r bksp bksp. backspace key p/r capslk capslk. caps lock key toggled capslock capslock. caps lock key toggled comma comma. comma key p/r control control. control key p/r ctrl ctrl. control key p/r del del. numeric pad del key p/r, "." or "del" delete delete. delete key p/r divide divide. divide key p/r, "/" down down. down arrow key p/r end end. end key p/r enter enter. enter or return key p/r esc esc. escape key p/r escape escape. escape key p/r f1 f1. function 1 key p/r f2 f2. function 2 key p/r f3 f3. function 3 key p/r f4 f4. function 4 key p/r f5 f5. function 5 key p/r f6 f6. function 6 key p/r f7 f7. function 7 key p/r f8 f8. function 8 key p/r f9 f9. function 9 key p/r f10 f10. function 10 key p/r f11 f11. function 11 key p/r f12 f12. function 12 key p/r home home home key p/r ins ins. numeric pad ins key p/r, "0" or "ins" insert insert. insert key toggled kp* kp*. numeric pad star key p/r, "*" kp+ kp+. numeric pad plus key p/r, "+" kp- kp-. numeric pad minus key p/r, "-" kp/ kp/. numeric divide key p/r, "/" kp0 kp0. numeric pad 0 key p/r, "0" or "ins" kp1 kp1. numeric pad 1 key p/r, "1" or "end" kp2 kp2. numeric pad 2 key p/r, "2" or "down arrow" kp3 kp3. numeric pad 3 key p/r, "3" or "pgdn" kp4 kp4. numeric pad 4 key p/r, "4" or "left p/r, arrow" kp5 kp5. numeric pad 5 key p/r, "5" kp6 kp6. numeric pad 6 key p/r, "6" or "right arrow" kp7 kp7. numeric pad 7 key p/r, "7" or "home kp8 kp8. numeric pad 8 key p/r, "8" or "up arrow" kp9 kp9. numeric pad 9 key p/r, "9" or "pgup" kpdel kpdel. numeric pad . key p/r, "." or "del" kpdelete kpdelete. numeric pad . key p/r, "." or "delete" kpdivide kpdivide. numeric pad divide key p/r, "/" kpdown kpdown. numeric pad 2 key p/r, "2" or "down arrow" kpdp kpdp. numeric pad . key p/r, "." or "del" kpend kpend. numeric pad 1 key p/r, "1" or "end" kpenter kpenter. numeric pad enter key p/r, kphome kphome. numeric pad 7 key p/r, "7" or "home" kpins kpins. numeric pad 0 key p/r, "0" or "ins" kpinsert kpinsert. numeric pad 0 key p/r, "0" or "ins" kpleft kpleft. numeric pad 4 key p/r, "4" or "left arrow" kpmidl kpmidl. numeric pad 5 key p/r, "5" kpminus kpminus. numeric pad minus key p/r, "-" kppagedown kppagedown. numeric pad 3 key p/r, "3" or "pgdn" kppageup kppageup. numeric pad 9 key p/r, "9" or "pgup" kppgdn kppgdn. numeric pad 3 key p/r, "3" or "pgdn" kppgup kppgup. numeric pad 9 key p/r, "9" or "pgup" kpplus kpplus. numeric pad plus key p/r, "+" kpright kpright. numeric pad 6 key p/r, "6" or "right arrow" kpslash kpslash. numeric pad divide key p/r, "/" kpstar kpstar. numeric pad star key p/r, "*" kptimes kptimes. numeric pad star key p/r, "*" kpup kpup. numeric pad 8 key p/r, "8" or "up arrow" lalt lalt. left alternate key p/r lcontrol lcontrol. left control key p/r lctrl lctrl. left control key p/r left left. left arrow key p/r leftalt leftalt. left alternate key p/r leftcontrol leftcontrol. left control key p/r leftctrl leftctrl. left control key p/r leftshift leftshift. left shift key p/r lshift lshift. left shift key p/r multiply multiply. star key p/r, "*" numlk numlk. num lock key toggled numlock numlock. num lock key toggled pagedown pagedown. page down key p/r pageup pageup. page up key p/r pause pause. pause key p/r period period. period key p/r, "." pgdn pgdn. page down key p/r pgup pgup. page up key p/r ralt ralt. right alternate key p/r rcontrol rcontrol. right control key p/r rctrl rctrl. right control key p/r ret ret. return or enter key p/r return return. return or enter key p/r right right. right arrow key p/r rightalt rightalt. right alternate key p/r rightcontrol rightcontrol. right control key p/r rightctrl rightctrl. right control key p/r rightshift rightshift. right shift key p/r rshift rshift. right shift key p/r scroll scroll. scroll lock key toggled scrolllock scrolllock. scroll lock key toggled shift shift. shift key p/r space space. space key p/r tab tab. tab key p/r tilde tilde. tilde key p/r, "`" up up. up arrow key p/r 3) All modifier keys Action Send from aid Action(s) alt ,hold,alt. alternate key pressed down control ,hold,control. control key pressed down ctrl ,hold,ctrl. control key pressed down lalt ,hold,lalt. left alternate key pressed down lcontrol ,hold,lcontrol. left control key pressed down lctrl ,hold,lctrl. left control key pressed down leftalt ,hold,leftalt. left alternate key pressed down leftcontrol ,hold,leftcontrol. left control key pressed down leftctrl ,hold,leftctrl. left control key pressed down leftshift ,hold,leftshift. left shift key pressed down lshift ,hold,lshift. left shift key pressed down ralt ,hold,ralt. right alternate key pressed down rcontrol ,hold,rcontrol. right control key pressed down rctrl ,hold,rctrl. right control key pressed down rightalt ,hold,rightalt. right alternate key pressed down rightcontrol ,hold,rightcontrol. right control key pressed down rightctrl ,hold,rightctrl. right control key pressed down rightshift ,hold,rightshift. right shift key pressed down rshift ,hold,rshift. right shift key pressd down shift ,hold,shift. shift key pressed down 4) Additional key combination commands Action Send from aid Action(s) combine ,combine,,.... combines up to five keys, all pressed simultaneously. hold ,hold,. holds down until the next key is pressed and released. lock ,lock,. locks down until the rel command is used. rel ,rel. releases any keys held down by the lock command. 5) Mouse commands Action Send from aid Action(s) click ,click,left. clicks the left mouse button click ,click,left,right. clicks the left and right mouse buttons at the same time click ,click,right. clicks the right mouse button dlbclick ,dblclick,left. double-clicks the left mouse button dlbclick ,dblclick,right. double-clicks the right mouse button dlbclick ,dblclick,left,right. double-clicks the left and right mouse buttons at the same time goto ,goto,+,+. moves mouse pointer to absolute coordinates ,. mouanchor ,mouanchor. saves current mouse location OR returns to previously saved location. moulock ,moulock,left. locks the left mouse button moulock ,moulock,left,right. locks the left and right mouse buttons at the same time moulock ,moulock,right. locks the right mouse button mourel ,mourel. releases any mouse buttons currently locked by the moulock command moureset moureset. resets mouse and moves to upper left corner move ,move,,. moves the mouse cursor units right and units down 6) Miscellaneous commands Action Send from aid Action(s) baudrate ,baudrate,300. sets SerialKeys to 300 baud baudrate ,baudrate,600. sets SerialKeys to 600 baud. baudrate ,baudrate,1200. sets SerialKeys to 1200 baud. baudrate ,baudrate,2400. sets SerialKeys to 2400 baud. baudrate ,baudrate,4800. sets SerialKeys to 4800 baud. baudrate ,baudrate,9600. sets SerialKeys to 9600 baud. reset initiates SerialKeys session, or resets SerialKeys status and sets speed to 300 baud. MZ s+diUF tnFHt HtHusP [FpBP^w[[ u^۸EP^w[[ us u;F3NP^w[[ u*ً^wp[F t^_?t- ^_P.[F t^_P ^_P P[^w [F tWP^w[[ u&^_?t- ^_P6ZP^w[[ u:^_?t- ^_P+P[[F t'2PC[^wP3[P)[Fv[]UF0FPNQ!R~r(F3FPFP!Pq~u~s+]U^?t- ^=A|=Z~!^:tuPpP~[[%^:tuS[=s+vЋ]U$%FVNAF܉Vރ~t F V !F!VFFFFFJF FPNQ/Q~~u+]UNAFV#F#V t+]U {FJF FPNQ/Q~uFVFVRPd[PF[]U-WF/5! tJRMIC/CIu MRu&E FF_]UF u+ Ft]UF u+ Fu]ô0!<s3P˿e6+rׁNsZ3PL!ƱH666gP6g P6g6g6&6+۴J!62BP+3@K3H6S6Q6OMP.ظ6PP6>BuXP6FPe5! %!>Rt6T\2&6,V36Rsy6Zڻ6R2&,>3&=t4 t 3u!;,Ar ,Ar ª;D!r €t;@Ky^^^^U3UUVWUVWQ uBB^`v>BuH``a``g tX Pu ~uFX uFL!_^]ËTR%!>\t ]^%!;s OO ;s EtUP>btbP{]øY+r ;frQ3V3B22Ut P<^Ïh0!4<t)2&,W33uGG>Uыѿ2< t< t< to tkGN< t< t< t\ tX<"t$<\tB3A<\t<"tӋѨuN< t+ t'<"t<\tB3A<\t<"tۋѨu>OGB+ģQ6?CC6U u623< t< t< t| tx6?CCN< t< t< tb t^<"t'<\t3A<\t<"t\Ѱ\s"N< t. t*<"t<\t3A<\t<"t\ٰ\s"3&hU2&,333 t&>tFu@$F PSϋ3_I&6;uQVW_^Yt&?CC u&]UVWVh;t@t 3_^]UWv t 3I>BuD@!_]SQ*QP [*Y t[ËQr3]sPX2]s]2â7 u">4r <"s < r<vjט,ÊUWVVOFPvPFPWF^_]UVWvDth@udDt tWL $ $D 3ۊ\uLuuCt tu$;@tQ~WS>L \SV[[[Dt֋ T+BUJT QQtSMY|V;u3F3; tQPPS3_^]UVvPXYށ  t LG LGGDD^]UVWvtt uH D u8u3 tDDELSP[[ t3_^]UVWv t#3ۊ\;@tVX~t 3ED_^]UWV+9~u +PeUvD$<u:u ށ t(+DF ~PtL*Q9FtL DD^_]øPUWV+~F96rDtV\@tG䐃~uF^_] ! 5 i UqVW3FFvvF t~}F, F6N*u " y02F F FF0u,9/Fu0FR3ҍX3ҾƆ: F3ҍpGFN@F ~tF =guFvvVWvFt 6F ,F Ft~uW2guFuW.&=-uGNWOY+N@F 5FF'FtFF0QVVFFtNFFtF@t3F@t } N؃ڃ~}Ff uF~N2v5Ft&=0tO&0AF@t1Ft F-F Ft F+FFt F FF++F}3WQF uȲ P~NXFt FuȲ0Y_PkXFtȲ { vvËvЭvF t‹ uØW^Ox ?3_QRSPZY=uNW3& _tFNW3 _tFW  u u30<9vFNY+G_^]U^;9r *FtH~ t3ɋѸB!rKF uFVy(6VFѸB!FVy NVB!؋VNF B!r;U^;9r w>BuD; t B3ɋ!r;tnV3FFWVfN8 uJ=vFܺ=(s+ԋN< t ;t"j ;u F ^_^PSQ+Q^@!Yr F;wY[Xß~us ;@t ^?u F+Ff^_N uxV@!s u;@t ڀ?uYf;s+3"UV^9\s KK9\v\^]UVWNwsr s3_^]ASw_ 3#[uBSw_;t6K3 T;sr#tH;s#rЭtD[GG[Lt +H+ƌQWGtct+IAAw tLs 30?&*= t;ru"rHs3#R.Zs t+WGw JBw _YËGtJwN;r9Ws6BSQގƱuGt Ƌ2+ÎËشJ!Y[rGtJWWw;w uw=t$OO_U׋ތ؎v~3+t]U׌؎~3I]UVW F͋FF<%t <&tF FFDFDVFF~]MUu} U^]W~]MUuE r3u _^]U֋v^ t,'C:t,A<ɀ A,A<ɀ A:t]2eMS Run-Time Library - Copyright (c) 1990, Microsoft Corp/?dblspacedrvspaceONOFFSets and displays the DRVSPACE AUTOMOUNT state. AM drive: [ON|OFF] Turn AUTOMOUNT off: AM drive: OFF Turn AUTOMOUNT on : AM drive: ON AUTOMOUNT is enabled for drive %c: AUTOMOUNT is disabled for drive %c: Error: could not change state. Error: could not read state. Error: %c is not a valid drive letter. Required parameter missing Invalid parameter - %s Syntax error Incorrect DOS version _C_FILE_INFO=YeP   PPEEE50P 0PX000WP ``````ppxxxx(null)  ((((( H d^ <>R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating-point support not loaded R6001 - null pointer assignment Notes and Hints for Using AccessDOS 1.1 AccessDOS is a package of utilities which extend the normal MS-DOS user interface. Although AccessDOS does a good job of figuring out which type of hardware and operating system you are using, you may occasionally run into combinations of these, and/or an application which does not do things in a standard way, which might give you a problem. This AREADME file provides a discussion of what you might expect in some situations, as well as hints and secrets for getting around some of these exceptions if you run into them. This AREADME document does not provide any information on the basic operation of AccessDOS. For general operating information on AccessDOS, please consult the file ADOS.TXT. This file can be viewed or printed using any word processor program. A. AccessDOS AND MS-DOS COMPATIBLE VERSIONS OF MS-DOS AccessDOS was designed to be compatible with MS-DOS versions 3.3 and above. LOADING AccessDOS INTO HIGH MEMORY AccessDOS can be loaded into "upper" memory on your computer to leave more space in your conventional (640K) memory. (See the ADOS /X command in the AccessDOS user manual for important information about loading AccessDOS high.) AccessDOS can be loaded high using the LOADHIGH command in MS-DOS versions 5 and above. If you are using MS-DOS 6.22, you should use the MEMMAKER command to configure your system to make optimal use of the available memory. You can also use a memory manager such as Blue Max (TM) and QEMM (TM). B. AccessDOS AND MICROSOFT WINDOWS DIFFERENT ACCESS UTILITY NEEDED FOR WINDOWS APPLICATIONS Microsoft Windows 3.x (TM) is a separate operating environment from MS-DOS. None of the AccessDOS functions will affect Windows applications. However, Microsoft distributes another package for Windows which provides most of the same functions as AccessDOS. The package is called "Access Pack for Microsoft Windows." Access Pack affects Windows applications only; you will still need AccessDOS if you want to use the access features when using non-Windows applications. You can use both utilities at the same time if you use both Windows and non-Windows applications. Ordering Information Access Pack for Microsoft Windows is available on the Microsoft Windows Driver Library as ACCP.EXE or ACCP.ZIP. If you have a modem, you can download Windows Driver Library components from network services, including CompuServer, GEnieTM, Microsoft On-line, various user-group bulletin boards, including BBSs on the Association of PC User Groups or APCUG network, and the electronic download service maintained at Microsoft (phone 206-936-MSDL). The electronic download service is open 7 days a week from 2:30A.M. to 1:00A.M. Modem settings are: 1200,n,8,1 2400,n,8,1 9600,n,8,1 (V.32,V.32bis, V.42, V.42bis) Customers within the United States who do not have a modem can obtain disks by calling Microsoft Product Support Services at 206-637-7098. Customers who are deaf or hard-of-hearing can call the text telephone (TTor TDD) number at 206-635-4948. Customers outside of the United States should contact the Microsoft subsidiary in their country. USING AccessDOS WITH NON-WINDOWS APPLICATIONS AccessDOS can be used to to assist you when running non-Windows applications that you start from within Windows. These applications run in an MS-DOS compatibility box under Windows. You can start AccessDOS for use with Windows in either of two ways: 1) You can install AccessDOS before starting Windows. The AccessDOS features will then be available every time you enter an MS-DOS compatibility box. 2) You can start Windows, open up an MS-DOS compatibility box, and then load AccessDOS within that compatibility box. AccessDOS will only affect applications you run inside that particular compatibility box. If you start another compatibility box the AccessDOS features will not be available until you start AccessDOS in that compatibility box. AccessDOS CAN RUN WITH EITHER WINDOWS MODE Windows 3.x can run in two different modes: Standard mode and 386 enhanced mode. If your computer has a 386 or higher processor, you can choose to run either mode; if your computer has a 286 processor Windows will only run in Standard mode. In either case, AccessDOS 1.1 can be started before starting Windows, or it can be started within an MS-DOS compatibility box. However, there are some cases where it is recommended that you load AccessDOS before starting Windows, and then run Windows in Standard mode. These restrictions are discussed in the following sections. USING HOT-KEYS IN WINDOWS 386 ENHANCED MODE If you run Windows in 386 enhanced mode, there are a few situations where neither the AccessDOS nor the Access Pack features are available. This is most apparent in the following cases: 1) when you are running a non-Windows application and wish to use a Windows hot-key to switch to another application. For example, if you start a non-Windows application you could switch back to Windows by pressing the Alt and Tab keys at the same time; however, if you use the StickyKeys or SerialKeys features to press this key combination Windows will not recognize it. If you rely on StickyKeys or SerialKeys, you will not be able to switch away from a non-Windows application, and will have to quit that application to return to Windows. 2) when a serious error causes Windows to put up a full-screen message and prompt you to press a key. For example, if you press the Control, Alt and Delete keys to reboot your computer, Windows will display a message screen asking you to confirm whether you really want to restart your computer. In this mode the AccessDOS features are not active. USING MOUSEKEYS WITH WINDOWS 386 ENHANCED MODE You need to follow special steps if you want to do all of the following: a) Run Windows in 386 enhanced mode, AND b) Start AccessDOS before starting Windows so that it will be effective in each MS-DOS compatibility box, AND c) Use the AccessDOS MouseKeys feature with more than one non-Windows application at the same time. If you want to use Windows and AccessDOS in this way, you should configure Windows so that it will handle AccessDOS appropriately. You can do this by modifying a line in your the file called SYSTEM.INI, which is located in your Windows directory. You can do this with the following steps: Step 1: Change directories to your Windows directory. Step 2: Load the file called SYSTEM.INI using a standard text editor. Step 3: Find the section in this file that begins with the line [386enh] Step 4: Within this section, find the line that begins with "LocalTSRs=" without the quotes. If this line does not exist you must add it within this section. Step 5: Add the word ADOS to the end of this line. If there is already one or more words after the equal sign, leave a space between the last word and the word ADOS. Step 6: Save your changes to the SYSTEM.INI file and exit your text editor or word processor. SWITCHING BETWEEN WINDOWS AND MS-DOS APPLICATIONS If you use the StickyKeys or SerialKeys features and want to be able to use the Windows hot-keys (such as Alt plus Tab) to switch away from a non-Windows application, you must load AccessDOS first, and then start Windows in Standard mode. If you run Windows in 386 enhanced mode, or do not start AccessDOS before starting Windows, you will not be able to use StickyKeys or SerialKeys to switch away from a non-Windows application. STARTING WINDOWS IN STANDARD MODE If your computer has a 386 or higher processor, you can force Windows to run in Standard mode by typing /S on the Windows command line ("win /s"). RUNNING SERIALKEYS WITH WINDOWS AND NON-WINDOWS APPLICATIONS If you want to use the SerialKeys feature with both Windows and non-Windows applications, you will need to use special options with AccessDOS. See the section "Running SerialKeys with Windows" below for further information. C. AccessDOS AND PARTICULAR APPLICATIONS HINTS GROUPED BY AccessDOS FUNCTION Since most of these irregularities affect only one or another of the functions, the hints are grouped by AccessDOS functions. They are presented in the following order: 1. StickeyKeys 2. Keyboard Response Group (SlowKeys, BounceKeys, and RepeatKeys) 3. MouseKeys 4. ToggleKeys 5. ShowSounds 6. SerialKeys AccessDOS IS DESIGNED FOR STANDARD CONFIGURATIONS AccessDOS was designed to work on "standard" hardware configurations, such as an IBM PS/2 (R) Model 70 with a 101 key keyboard and a PS/2 mouse. "Standard" is defined as the purchased configuration of the computer. If you have altered the "standard" configuration of your computer, some or all of the AccessDOS functions may not work properly. An example of a "non-standard" computer configuration would be an original IBM Personal Computer or Personal Computer XT (TM) with a 101 key keyboard. This is considered "non-standard" because the original IBM Personal Computer or Personal Computer XT computer was sold with an 83 key keyboard and the extra keys of the 101 key keyboard may not be recognized. If you have a non-standard configuration and are having difficulties, try using the original keyboard, etc., and see if the problem corrects itself. 1. STICKYKEYS NOTES On older IBM computers, such as the Personal Computer, Personal Computer XT, and Personal Computer AT (R), some application programs retrieve all of their keyboard input information from a special buffer rather than in the more conventional manner. Applications which perform this way on these older computers can cause a problem with StickyKeys. If this happens, you may notice that StickyKeys will not perform the "latch" feature properly. Normally, the "latch" feature of StickyKeys will only hold a modifier key "down" until the next non-modifier key is typed. If the "latch" feature is not performing properly, it will probably act like the "lock" feature, which causes the modifier key you type to remain "locked" down until you press the modifier key again to release it. If you encounter this problem on one of these older computers, there are two things you can do: a. Continue to operate StickyKeys while remembering that with this particular application StickyKeys will "lock" the modifier key each time you press it, and the modifier key must be unlocked. This problem should only occur within the troublesome application program. b. Purchase the program called "keyb.com" which is included with Microsoft MS-DOS versions 4.0 or higher, prior to running AccessDOS. "keyb.com" patches the system in these older computers and causes the applications to behave. AccessDOS will then run properly with these programs. One program known to produce this problem is Microsoft Works 2.0 (TM). While testing with an original IBM XT running without "keyb.com" a "latch" of the "ctrl" key with an "arrow" key, which is used to move around inside the database or spreadsheet sections would cause the "ctrl" key to remain "locked". This was not a problem when running Microsoft Works when "keyb.com" is run ahead of AccessDOS. 2. KEYBOARD RESPONSE GROUP (SLOWKEYS, BOUNCEKEYS, AND REPEATKEYS) NOTES Some applications produce their own key repeats. If you have an application which does this, you must disable this feature within the application in order to allow the RepeatKeys feature in AccessDOS to work. Two applications which are known to do this are Microsoft Word (TM) and WordPerfect (TM). In each application, there is a setting which will disable the application from producing key repeats. In Microsoft Word, choose "0" (zero) for cursor speed from the "Options" menu to disable the key repeats. For WordPerfect, choose "normal" in the keyboard or cursor speed setup section to disable key repeats. If an application has the key repeating feature and you are not able to disable it, RepeatKeys will not function properly. Some applications produce their own key repeats for only select keys within the application. An example of this can be seen in Microsoft Works 2.0. The database or spreadsheet will produce key repeats for the cursor or arrow keys. RepeatKeys will not prevent these keys from repeating at the rate set within this part of the application. 3. MOUSEKEYS NOTES MouseKeys is the most difficult of all the AccessDOS functions to implement, due to the variety of ways that the mouse function is implemented and the number of ways that different application programs interact with the mouse and its driver. Below are some notes to help you get the most from your MouseKeys function. Also listed are a number of configurations or programs which MouseKeys does not work with at this time. MICE THAT MOUSEKEYS WILL WORK WITH The only mouse drivers that MouseKeys will currently work with are the IBM PS/2 or Microsoft mouse drivers. MouseKeys has been tested with an IBM PS/2 mouse, the Microsoft serial mouse and the Microsoft PS/2 mouse equivalent. There are some third-party mice which also use the Microsoft mouse driver and may work with MouseKeys. In this version of AccessDOS, MouseKeys will not work with the Microsoft mouse driver if you have a Microsoft bus mouse, a Microsoft InPort mouse, or a Microsoft BallPoint mouse. NOTE: The mouse driver software must be installed before AccessDOS for MouseKeys to function. USING MOUSEKEYS AND A REAL MOUSE TOGETHER MouseKeys and the real mouse can be used together; however, a user should not try to move the mouse cursor with a MouseKey direction key and with the real mouse at the same instant in time. On many applications, the user can lock down a MouseKey mouse button, and then move the mouse either with a MouseKey direction key or with the real mouse and perform what is called a "mouse click and drag" feature. After performing this feature, the user must release the MouseKey mouse button or click the real mouse button. Not all applications will allow MouseKeys to perform in this manner with the real mouse. WordPerfect 5.1 will not allow a combined MouseKeys and real mouse "click and drag" feature. Older versions of PC Paintbrush (TM) (version 1.0) will not allow the real mouse to release a locked MouseKey mouse button. Some experimentation may be necessary on the user's part. USING MOUSEKEYS WITHOUT A MOUSE CONNECTED On computers running MS-DOS, the software which handles communications between the mouse and the computer application using a mouse is usually referred to as the mouse driver software. The MS-DOS mouse driver software "mouse.sys" or "mouse.com" is typically loaded in either the user's "config.sys" or "autoexec.bat" files respectively (both files are executed when the computer is powered on or rebooted). Unfortunately, if a real mouse is not attached to the computer, neither mouse driver will install itself. This makes sense in that you would not want the mouse driver software to install itself and waste valuable computer memory unless you had a mouse attached to your computer and were planning to use it. However, this creates a problem for MouseKeys, since it must also use the same mouse driver software to communicate mouse information to the application. Because of this "non-load" characteristic of the mouse driver software, a MouseKey user will need to have a real mouse attached to their computer, whether or not they plan to use it There is one exception to this rule which applies to only IBM PS/2 computers. A utility program on the AccessDOS disk, called "fakemous.com" will allow MouseKeys to work without a real mouse attached to the computer. In order for this to work, the user must first load or install "fakemous.com". Next the user must load or install the mouse driver called "mouse.com". Last, the user would load or install AccessDOS. APPLICATION MUST SUPPORT A REAL MOUSE MouseKeys functions as an alternate mouse. If you have an application which does not support a mouse, then MouseKeys will not work with that application. Basically, the rule of thumb is "if you can't do it with a regular mouse, don't expect to be able to do it with MouseKeys." PERFORMING A "SHIFT-CLICK" WITH MOUSEKEYS Some applications which use a mouse allow the user to perform what is called a "shift-click". What this allows the user to do is to first highlight some text, then press and hold down a shift key while clicking the left mouse button to copy the highlighted text to the current position of the mouse cursor. The combination of "latching" a StickyKeys shift key and the MouseKeys mouse button click key will duplicate this feature on IBM PS/2 computers using a mouse attached to the PS/2 mouse port. On an IBM computer using a Microsoft serial mouse, the user will have to "lock" the shift key to duplicate this feature. Note, not all applications use or support this. USING NUMLOCK KEY TO SWITCH IN AND OUT OF MOUSEKEYS While you are running MouseKeys, the Num Lock key is disabled; that is, you cannot use it to switch back and forth between the cursor pad and number pad modes on your keyboard. Instead, pressing the Num Lock key will toggle MouseKeys on and off. This allows you to use the keypad both to access MouseKeys and to use whichever normal mode you were in when you launched MouseKeys. If you want to change between the normal keypad modes (cursor pad and number pad), you should turn MouseKeys off first by pressing "left-alt+left-shift+numlock." USING MOUSEKEYS WITH WORDPERFECT 5.1 To use MouseKeys with WordPerfect 5.1, the mouse driver must be passed a switch. For example, type "mouse /v70" from the same directory your mouse driver software is in, or have the correct path to the mouse driver software in the instruction (i.e., "c:\utils\mouse /v70"). This particular mouse switch changes the sensitivity of the mouse driver software in the vertical direction and works well if the MouseKey speed in AccessDOS is set to 80. Please refer to your mouse manual for more information about mouse command line switches. USING MOUSEKEYS WITH THE PC-DOS 4.00 OR 4.01 SHELL If you are using IBM PC-DOS version 4.00 or 4.01 and your DOSSHELL.BAT file contains a command line with the instruction "/MOS:PC...MOS", remove the instruction prior to running MouseKeys. MouseKeys expects to use either the file "mouse.sys" which is loaded in your "config.sys" file, or the file "mouse.com" which can be run at any time but is typically included in the "autoexec.bat" file. The MS-DOS shell mouse works fine with either of these mouse files. MOUSEKEYS DOES NOT WORK WITH. . . MouseKeys will not function properly in applications which produce their own key repeats (see RepeatKeys for a discussion on how to disable key repeats from within an application). MouseKeys will not function on the IBM Dual Asynchronous Card using older Microsoft serial mice (pre-generation 3). (MouseKeys may not function with older [pre-generation 3] Microsoft serial mice on any serial port.) MouseKeys and StickyKeys cannot be used to operate the Microsoft mouse "cpanel" program. The ability to press Button 1 and Button 2 down simultaneously via MouseKeys is not available on older keyboards, because they have fewer keys available on the numeric keypad (see manual). 4. TOGGLEKEYS NOTES If you want to turn ToggleKeys on or off, you should do it before you turn MouseKeys on. ToggleKeys cannot be turned on or off while MouseKeys is on. You can, of course, turn MouseKeys off, turn ToggleKeys on or off, and then turn MouseKeys back on any time you wish. 5. SHOWSOUNDS NOTES ShowSounds has two options for providing a visual display when a sound is emitted from the computer. One option is to provide a small visual cue consisting of one or two symbols in the upper left-hand corner of the screen whenever a sound is emitted. The other option is to flash or blink the screen whenever a sound is emitted. The visual cue and the screen flash cannot both be active at the same time. (It doesn't do any good to display the visual cue while the screen was blanked - you wouldn't see it.) When using the visual cue option, sounds produced by computer programs will display a single "musical note" or visual cue in the upper left-hand corner, provided the sounds are long enough in duration to be detected by AccessDOS. However, When the sounds are generated from within AccessDOS itself, a second character will appear next to the musical note to give you some information about the type of sound. An up-siren produced by AccessDOS, for example, will show a musical note with an up-arrow next to it. (See manual.) The "musical note" or visual cue is not compatible with all applications. Do not use the "musical note" or visual cue with PC Paintbrush or Lotus 1-2-3 (TM) while running either application with a color monitor. You should not use the "musical note" visual cue when in the MS-DOS 4 Shell. It is also not compatible with applications that produce more than one screen of information simultaneously, such as split screens in text editors. The "musical note" or visual cue may work in some parts of programs while not in others. For example, the visual cue does not work with the document viewer or equation editor in WordPerfect, but works well in the word processing portion of WordPerfect. The "musical note" or visual cue may also encounter trouble with some CGA monitors. In general, the screen flash or blink is compatible with more software applications and monitors. However, the screen flash or blink feature is dependent on the video hardware, and may not be compatible with all monitors. For example, some AST VGA cards are not compatible, nor is the PS/2 Model 25/30 with the 8086 processor. 6. SERIALKEYS NOTES SerialKeys is a very special function which allows you to use a communication aid or other special input device instead of the computer's standard keyboard or mouse. To use SerialKeys, you would connect your communication aid or interface to the computer's serial port. SerialKeys then transforms input to the serial port into keystrokes and mouse movements. To use SerialKeys, your computer must have a serial port available. The computer's standard keyboard should also be connected to the computer. Also, if you want the SerialKeys program to provide mouse functions, you must have a compatible mouse driver loaded in your computer. This usually means that you must also have a mouse connected to your computer (see MouseKeys discussion above). Some older (pre-generation 3) Microsoft mice will not work with SerialKeys. SerialKeys is designed to allow the user to provide input via a special aid connected to the computer's serial port. However, SerialKeys does not disable the standard input devices such as the keyboard and mouse. If another computer user chooses to enter input at the keyboard while someone is using SerialKeys for access to the same computer, key states such as the CAPS LOCK, SCROLL LOCK OR NUM LOCK may get out of synchronization between the keyboard and the computer. Likewise, if another user operates the mouse while someone is moving the mouse cursor via SerialKeys, the mouse cursor will get out of synchronization between SerialKeys and computer. Some applications do a lot of processing of the input they receive from the keyboard. If you are running SerialKeys with these types of application, you may lose keystrokes or characters in transmission, even at a slow baudrate. First, try slowing down your transmission speed or baudrate to see if that improves the problem. Second, limit the number of characters you send per a single selection on your aid. SerialKeys may not work on some applications on older IBM computers (PC, XT, and AT), especially if the application is designed to only retrieve keyboard information when a key is pressed. On these computers, SerialKeys places the keyboard character it is trying to emulate into the same buffer the keyboard would put a character except that the application will not read the buffer because you never actually pressed a key on the keyboard. One such software program is Microsoft Works. One solution is to run MS-DOS version 4.0 or above and run the program "keyb.com" prior to running AccessDOS and SerialKeys. Moving the mouse with SerialKeys assumes the mouse is operating within an application which allows the mouse to move equally in both the horizontal and vertical directions. If you experience problems moving the mouse cursor with SerialKeys, especially when you move large distances or move quickly between the same two locations, the mouse driver software may be the cause. Many mouse drivers contain a "threshold" speed, beyond which the mouse cursor movements in the horizontal and vertical direction no longer correspond to the resolution or "mouse scaling" used within the application. Please refer to the mouse driver software manual if you need to turn this feature off. Another solution is to limit the size of your SerialKeys mouse movements such that you never exceed this "threshold". RUNNING SERIALKEYS WITH WINDOWS The SerialKeys feature in AccessDOS only works within MS-DOS. However, if you would like to use SerialKeys with Microsoft Windows 3.x, there is an access utility for Windows 3.x which also contains a SerialKeys function. (See Windows discussion above.) If you want to run SerialKeys in both AccessDOS and Microsoft Windows 3.x, you need to do two things. First, you need to have both AccessDOS (to give you SerialKeys in MS-DOS) and the Access Utility for Windows 3.0 (to give you SerialKeys in Windows). Next, you need to set some special AccessDOS command line switches. These switches, which are best placed in a "batch" file (see below), are only needed if you want SerialKeys to function in both AccessDOS and Windows. The SerialKeys function in AccessDOS and in the Access Utility for Windows are the same, so once you program your communication device, you will be able to work in either operating environment. BATCH FILES FOR RUNNING IN WINDOWS Batch files can be created in MS-DOS, and are typically used to execute a series of commands by entering a single instruction. A batch file is easy to recognize, since it should always have a filename followed by the three character extension, "bat". The easiest way to create a batch file is to use a word processor which has the capability to read, write, and save a "text" or "ASCII" file. If you are attempting to run SerialKeys in both AccessDOS and in Windows while in standard mode, you should create a batch file with the following three commands: ados /skw win /s ados /ske An example of a working batch file that was placed in the "c:\ >" root directory follows. It assumes that AccessDOS was stored in the MS-DOS sub-directory and that Windows was stored in another directory. You may need to change the directory paths to match your own computer setup. c:\dos\ados /skw c:\windows\win /s c:\dos\ados /ske Remember, you will need to have Access Pack for Microsoft Windows (see discussion under Operating Systems) in order to run SerialKeys once inside Windows. Also note that your AccessDOS "saved settings" file, which is called "ADOS.CFG", should have SerialKeys saved "on" prior to running this batch file (see manual for discussion on how to save settings). NOTE: If you do not intend to run SerialKeys inside of Windows, you should not ever use these special command line switches. ADVANCED SERIALKEYS NOTES SerialKeys was designed to automatically lower the transmission or baud rate to 300 baud, any time 3 consecutive characters are received with data transmission errors. This is an important feature when SerialKeys is used in a multi-user environment. It can however, be a nuisance for a single user, especially if they are having problems with their communication aid. If you are using SerialKeys as a single user, you may want to disable this feature of SerialKeys. To disable this automatic baudrate lowering or "reset-on-error" feature of SerialKeys, use the special command line switch "/sks" along with "ados" when you load or install AccessDOS. For example, to start AccessDOS with the "reset-on-error" feature disabled and for a color monitor, you would use the following instruction: ados /c /sks NOTE: This special command line switch can not be saved in the "ADOS.CFG" file, so if it is useful to you, you will have to type it each time you start up your computer to run AccessDOS. You should not use this special command line switch if you are not the only person using SerialKeys on a particular computer. D. MISCELLANEOUS It is recommended that you store AccessDOS (ADOS.COM, ADOS.OVL, and ADOS.CFG) on your computer hard disk in your MS-DOS sub-directory or on your floppy disk which contains MS-DOS. While this is not absolutely necessary, it reduces confusion since most MS-DOS computer users have a directory for all their MS-DOS utilities and a MS-DOS "path" command to find their MS-DOS utilities. When AccessDOS is loading, it will make an attempt to determine your computer speed (actually CPU speed) and set counters for the various beeps AccessDOS produces based upon that speed. If you have a computer which has multiple speeds, you should load or install AccessDOS while the computer is at the speed you intend to operate AccessDOS. Changing speeds while AccessDOS is running may cause the beeps produced by AccessDOS to become unrecognizable. On some computers, the sounds made by AccessDOS (and other programs) may be less audible, due to the design or placement of the speaker. AccessDOS is not compatible with most terminal emulators, such as the IBM PC 3270 (TM). Blue Max is a trademark of Qualitas. IBM, Personal Computer AT, Personal System/2, and PS/2 are registered trademarks of the International Business Machines Corporation. Personal Computer XT and PC 3270 are trademarks of the International Business Machines Corporation. 1-2-3 is a registered trademark of Lotus Development Corporation. PC Paintbrush is a registered trademark of ZSoft Corporation. QEMM is a trademark of Quarterdeck Office Systems. Microsoft, MS-DOS and InPort are registered trademarks, and Windows and BallPoint are trademarks of the Microsoft Corporation. WordPerfect is a registered trademark of WordPerfect Corporation. ( ILLLLLLLLLLLLI4SSSSSSSSSI#IIQIIIISSSSIISSIIIIIIIIIQIIIQIIIIIIIIQIIINIIIIIIIIIIIIIIIIkIIILL.6PSlw*Ę.:P*XP*XP*X[X.."ڊ[X.&8.2.4.".>86t .>8t..64.62[XPS=Dt=Dt =Dt= Du= t9g.XX.2.4."..64.62?N[XPSiuC t:.XX.2.4N."Y..64.62[XPS uڀ:uaCހ:u.E.[X.2.4."PS..[X.64.62ϋڋl..:u&.!:u&[X.2.4."PS.!&..[X.64.62u![X.[X.^Ȋ.!."P."..:!u..XPUF.!6f]XPU.6 F]Xt<w<u..SQ옻.Y["t 9=t P/-X>%yu3=~ 3 t >$nu >!u>u'v!P/Z!X 33 >u#u %yP(؉)X>u(t# %yP(})$yX6->tF>\t>dt>iu!%y\ d i 6->uu"ø,m=1t@,Ar'SP1&:G!s&_SX[&GC@tX[ø WX+/w;&:t1SQ&+À@@Y[CôL!P- XPSb!&,ôI![XS>!Ky[ø%5!&(&5!*,/5!.0!5!.".$/ tô!Ȋд!%%!&%!/%!!%!y^b1! $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$MS DOS Version 6 (C)Copyright 1981-1994 Microsoft Corp Licensed Material - Property of Microsoft All rights reserved PSRW3Ɏ3./L >J ./T >R ./d >b ./H >F D >B ` >^ X >V ./l >j }  $  W>n .AQPrY_Z[X PVc!r6v x ^XøD3!D!øD3!D!ô0!=u=sPSQUWRz 6  t u&rZ__Zr]Y[XPSRz u,wsY!2t ;trZ[Xu&!s&U! t &!GIuWPSٰu+K[X_3 tO@׃u(!P&ZXs@B!&=uUQY!s ;t;u]ø'Àtƀu >} W>v t&=t&:r&:EwGG_Ï 3ۓ6 6 v70RA u t9u | ,u6 A"u | ,u6 A u | ,u6 A3336 3 t!%&8%u &8et:u&SsGGBIuV t3M> u+D0&:Eu<0u t4> uBBIIOOW+ _YseQʀ|t tIIGG^ u^ u3 t uDu|Zz rY_]^ > ur. 3ҡ  X C@uu CCVS33ɀun %tļR =r ='wļ^ ļB Ãuu 3 tTr u럜u)RUQWP/j t=u P j Xj 3ɀt&M .85u.Ms- tt&;.;u Itr u&}r2& G| 3ۀ|uLJ -CCƇ C]33҈| D :v*DtD C@u|u|t 8Ls*LъL t$Du Dt&GX C@uAuDu tD C@u#uDuDt t uUQW3ۍ> tr_Y]D0u&PAZs&EP & tGA+U 4,J-./0'1VIncorrect DOS version Original %1: set to %2: MRedirects requests for disk operations on one drive to a different drive. +ASSIGN [x[:]=y[:][...]] ASSIGN /STATUS 4 x Specifies the drive letter to reassign. = y Specifies the drive that x: will be assigned to. 2 /STATUS Displays current drive assignments. UType ASSIGN without parameters to reset all drive letters to original assignments. >UExtended Error %1>, Parse Error %1>P.....sS&&:s[#.6SWU. uCr<{t7u. uC&.AtN.<=u.CsŬ.CN.6..&6.&&eP.&EX<u &U&MZ<u&UP<t<t<u&U><u.@&E&]+&u&MP&Gt &GtX&GtU_.!P& uPSRW. [_Z[X t ..>!u.>u. XPV. t<:u .|u. ksFF^XVR.Xr t .FFZ^t>.8tPQRe»!ZYX.].ECC,&_[<0r<9w,0PSRW&& uL<u?G& @&@&GG&-2su.&e& . #_Z[XPURV.rr<*.t <=u&~uq.t<:u &~u\F\&:Fu tRFE&:FuEF.E&:Fu:FE.@t&G t&~t"&t<:u &~u <u&~:t.6^Z]Xì"tSu. t.At NNSQ< t-<t)< t%&}r3&]&9t 3& C&:t< Y[SQ. .&< t6< t2<,t1< u < u F:&}r3&M t C&:t< Y[..u. :.;t u'PQRWU3޸c! ]_ZYXt).6..6.<t:r:DwFF[^MZ,G { U3XLvv/vv 83vvv 5}P+]3xX` PPRl t` PPS$1$ / *5%0TU,-./U3WV^7` t>` t6f 6` F~u9f u(9f uQ>t6f 6` /*P.P-P,P..,* -*Š.*9f uJ>t6f 6` P*PP6* Š*-x~tvB ^_]U3Vp &(+. *P1W,-(9FuP+PPPP.9FuP+PPPP+PPPv& )]U3}U~3w~s Pc)~ w~s PM)~w~s P7)~v"~t~t ~ t~ u P)~u&~v P(Ft~v P(]U3T~v P(~ELSZahov} P0PRP7PRP>PRPEP}RPLPoRPSPaRPZPSRPaPERPhP7RPoP)R!PvPR&P}P R,PPQ0PPQ5PPQ;PPQ@PPQFPPQMPPQQPPQVPPQ\PPQaPPsQgPPeQnPPWQsPPIQyPP;QPP-QPPQPPQPPQP PPPPPU츎OVFƆrF~tS>.?>PP>PQ=u >?:u@P>PKP>P tFbPvP[F@u~uvuFvvudžtvv;tvt>tFvvuًvv;uFtƇ>>PP>P:P=u >?:u@P>P}O>P tF~u_~t"P9 >u *P( +P $=u;"P ,P P>PEO>P] tF"PP."~u{^]UNPvOFPPOF;F|F vvNF]UMF`FFFFFFPFPOP]U MWV~} P!FDFF9F}6vv?/u~~?/t׋F^^FFFH;F~~ F@F맋^_PI^_^GFF^?:u4^_?A} P ^_?Z~ P ^_@~} P ^_PLI^_^_?A} P ^_?Z~ P{ ^GFF^?:t P] ^_8u PF ,@F*P+##N*;t P ^_,@F*P""N*;t P6"^_^_]U츖KVF!e^GFwLjFFPFP8N^wpP{Ljp.\PpPFl uj+p=rl@FdžnnvVL uBF&(+*PcL,-P+PPP PN 3nn |^]UJF^wj PKF^耿j \uk \u PFj PK9FrӸj PK=u>j .uPj PYKj PK=u>k :uPj PJj PK؀i \uPj PJj PP<>j \ub>k \u[\Pm PUMF u PF@F\Pv0MF u Pv*PPj PK?Pj PE u*Pj PE tF>m \u>l \u Pq>t PFD,@FFPFPKP6FPj Pi > t> u Pv $@t+j &(+*P:J,- P$$<u>'.t~uPj PhIj P PI\P P DF t- =F^\Pj PCF uFl FvtPHI]3PH>v.!> u> u>v PU\ HVF; u`; u; uv>u #P /F:F"F^^FFF^&F u>t>0r>9vc; uf; u; uzF"$FVvFBFF^&F uvBFPMH u*PPFP-IFPP8u^]3F \ P*-@P3F!PP+PPq" > u+PPP6^PP PP<" > t PEP 3/FPPN PP@ +PUFFFPFP/PG~u)FFPFP/PG~u>u9FFPFP/P[GFV FFFPFP/P9G]UgEFF:F@PFPFPO uvFF:F@PFPFP uvd]3DC>t)2! >t q>u"PFP:UDFj>t+>t@>uF>uF~tՋ]UFDF>t >tF~t]UBDFtP*PPFP4FP6PFP> u>t i>uF~t]UCF66> u F>t >tMF~t]3UCUCCFFPCF u P F]3C PUDPn& Pn@@PCnUB&FvDPyF&^FvF@@PCF&]UBnF؋&?t?@@PF  u/&@@P PHC6nB&n>t]U츀4B*PPFPcDPFPFPFPB\F$<uF~.t@ P:C؀ \t FP P FP PPFPDFPFPv9> t]3A>t|>t>u3sA"P|>t >t>t rUT+A$$<u$$<u>t$$ < t>t>t 9u9s>t9s P PA uqP'PA tZP'PA tH%P'PA t6,P'PA t$6P'PrA tBP'P`A u>tN PFPAFPdA=uF'PFPJPFP=BFPP A u]U?>u[P\PRFD,@FFPFP9B>ta t?-P=u"P 란>t릸"P}>t >tPP+P  u u]U?*PPPFP7AFP t>u PlP*P_PFP@FP>t *Pj *P{PFP@FP` t PA>t *P *PPFP`@PFPFPFP?> t PvFP*PPFP@ PFP+PP > t P RP+P6PP6FRP+P6UFPP6qF~t PC6]U$,=>t >t+ > t*-@;u+P "Pt*PPFP ?>t>tPFPZ=>tPFP@=+PFPP>P+P?  t=u "P 7P P  ]U1<+P  FP\F ]3;\P P*8 tD P(==r5 Ph?  u \ P*-@P P>t{TU;*@P&pP*PPFP=FP]U3O;~ }v~d}vvPpPe=]U;>t>t u*@P>tpP*P pP*P PFP=PFP PP > u>tpP*P  pP*P/PFP<PFP PP4 > tG++]UT$:*@P>tpP*PE pP*PSPFP,<FPo%PFPPFP+PP > u>tpP*PhpP*PwPFP;FP%PFPPFP+PP+ > u+PPP6+PPP6+]UD8>t >t+F։F~u *P *PPFP:PvFPFP> uF~uFP*P FP*PPFP:>tPFPy9 uF~uEFP$> u 9> t+PFPFP> uvvQ]U(7PFPFPv F u v~t+]U7FF l'P*PPFP9 PFP+PPA > tF~uF Fu~t]U%7"PP>tFFF!FPFP1]U6FFFFV]U6FF+PN >ty+P6RRPv6 F uF vRF9FsF~t6 'P*PPFPw8FP]U츬6džT PT7؀ \t 'P P 'P PPFP 8F F FPFP7PP >tk*@PSFPpPPVP7VPVP6P6 TVP6;Tu> t P]U<5v Ffvv ]U5+P6R(RPv68 FFF9FuF+NPe+PvpFF+NP  y2v6RRPF+FP6 FFNPP  ]UZ4U Fv6RgRPv6w F]U+4FN Pt >t 6 >u&RP+P6 FPP6 >t69 >t 6# >t N>t6 >uPPb]U S3FRP+P6& FPP6h RP+P6 FVFPP6 ~u~tFVBvv+P6PP6+PPP6]U2FRP+P6tFPP6:<@RP+P6EPP6i]U392:<@RP+P6FPP6I>uPP6/+PPP6]U1>uFF>u >tF RP+P6~FPP6 RPP6WNPP6+PPP62]U>1*@P>t5pP*PPFPU3!PFPpP*P3pP*PPFP 3!PFPpP*P PFP2!PFP^>t]U츎0VƆr!PsPj1{FvƂ|F~~FPrPf^]UH80V>t 6:<FFFvBF~?~ PFP0FFFFPFP^]U$/V>t>t >uE>tVF"FvBF~ ~'PFPO0FV *FFV$FFFF>t+  FV FV"PFP^]U.vvv6 F+]3.U3.FFFF F $` PP)` ]U3d.F-=,v.J,P+PPPv P+PPP+PPPvi PP+PP!PPP+ĸ&(+. P#/,-P+PP낸&(+. ,-P+Pk&(+. ,-P+PMӠ*@P *@=dsq&(,p&(,+. ,M*@P*@=dsq&(,p&(,+. ,-1369 78P+PP+PPP **,,,***,5,*********J+J++z+*u++*J+**+*,*+,,,,******]U5,F,P+PPPvp F~6~K]U3+v.]UT+ P*P*PFP .FPY/]U+>t6>t6 >t6&>t6>t>t>t>u>t>tj*@PpP*P0PFP7-+PFPFPpP*P>PFP-+PFPmFPP>t 6>t>t 6RJ]3m*#e` PP,` UF*vFPFP+PPPPv+PP F]U*vv vF*PFP" FV]U)FPvv vv- F]U)~tvv vvFP  F F]U3)vZ ]Uj)vFP+PP F]U3F)vv+PP ]U()FPFP F]U3)v  u]U(FTvvFP ]U(F^vvv v$PFP+PP  tF^7MF ]Um(Fvv0PFPJ  tFv F ]U3.(vP ]U3(v+PP ]U'*-@PPFPP  urvv+Pv+RP66!,FV t0vv+PvFVRP+RP++FVFV$vvvv+Pv+RP++FFFV]U3K'*-@PPv PT  ]3''>uV ` PP/P(*PM&U&~v F؉FNFDFFFFPFPX)~t=FDF FFFPFP6)~t PF%=AN FF F*]U^&FH>tt @ @FFPFP(~tMP.&Pb%F FR]U3%v) t  ]U%(*PFPFPvv ]U3%v; ]U,%FF&PFPFPFP  uFޣ4F FFn ]U@@%FFP2)FPB)FFFh F*P6n FP6n FPiPFP5'4 t =t,=tAYv6F*P6FPxPFP&4v6F*P6FPيF*P6FP6vF F FPFPPFP&FPFP%P6F؍FP%;Fu> t P]U$TD F H  FlF FFFFFFFFD FPFPi&FtF F]U#FP&xrtdžj`xPyPk$FPjPjPK&8u (PUFP&xrtdžj`xFPjPjP%8u )P]ÐH&J6L[]|<>+=;sS&&:s[ 6SWU u>4r7t2u uh"AtN<=uC/sɬCN6&6&&eP&EX<u &U&MY<u&UO<t<t<u&U=<u@&E&]+&u&]P&Gt &GtX&Gt_P& uPSRW `_Z[X,t> ut> u<t-> u#t> u t >u >u XPV t<:u |u msFF^XVRЊ[r t FFZ^$:SW>~t>y8tPQRe»!ZYX]ECC,&_[<0r<9w,0PSRW&& uJ<u>G& @&@&GG&-0su&e&  _Z[XPURV|r:0t <=u&~unt<:u &~uZFZ&:Fu tPFE&:FuCFE&:Fu9FE@t&G t&~t"&t<:u &~u <u&~:t6^Z]XPQRVSV^qsurq tres t rYu uROtq uBȡs u9uuqs uȡu udsl[^[^ ZYXÍ6ONtu<:t0<.t, <-t& tWu ^_9^_&u-%XV t*t [sGFGFꢹG>^_Xt PXSQ :tCAY[PR t5r*|:t &t|u u%PQRWU3޸c! ]_ZYXt%66<t:r:DwFF[^UWV~E P]MUu_U]W~]MUuĉE XE ^_]PSRW3Ɏ3./66>./66>./66>./66>S66>66>?S66>./66>6 6$66 R66>0CQRrY_Z[X PVc!r 666^XøD3!D!øD3!D!ô0!=u=sPWU@rt]_XVS33ɀu 6ļ(t 6ļ=r='w 6ļ6ļÃuu 63 tTr u뚜u)RUQWP/t=u P66X63ɀt&M &85u&Ms+ tt&;&;u Itr u&}r2& G6PSQUWR666@ t# u/rZ_ tc_Zr]Y[PSR6u,wsY!2t ;trZ[Xu&!s&U! t &!GIuWPSٰu+K[X_3 tO@׃u(!P&ZXs@B!&=uUQY!s ;t;u]ø'Àtƀu >W6> t&=t&:r&:EwGG_63ۓ6666 v70RA u t<u| ,u66A$u| ,u66A u | ,u66A333663 t!%&8%u &8et:u&KsGGBIuV t5M6>u,D0&:Eu<0u t46>uBBIIOOW+_YsQʀ|t tIIGG^ u^ u3 tfUWQ36>u;Du|g(D t DtD u|uD u: X"rY_]^ 6>ur6366 yX6C@uu 6CC3ۀ|u6LJ -CC6Ƈ C]336D :v*DtD 6C@uu|t 8Ls*LъL t%Du Dt&GX6C@uCuDu tD 6C@u$uDuDt t 6uUQW3ۍ>[r_Y]D0u&PABs&EP & tGA+U]3363D u&&D utC$6 Du6 XDu(&D uĀtC6 Du6 *&&UD uƀtC6 Du6 D@t*PR82!s6,D ZXD ,LjD  t3Ҳ-RU]6 |336>u 66A3D66AD|6>u _n66A3D`66ADT6>uDF66AD:66A.Uô8!s 66-ËDDu=cvc66I6:u0PAA66]6 Dt6>uD< |<~aPApPA33D t Dl66AD uDt DT66ADH66ADDt6>u < |, <u "Uô8!s66:6.66I6:u0PAA66QRv$ ! ts Ȋ!rZY/   ! 9Qw7 1Qz !"$##(H)*$+I,-,-1./0-1e23 4O56 Incorrect DOS version  Insufficient memory  Invalid drive specification Invalid date Invalid time Invalid path No source drive specified No target drive specified ) Source and target drives are the same  Error executing FORMAT  Cannot find FORMAT.COM  Error opening logfile  Logging to file %1 % Last backup diskette not inserted J WARNING! Files in the target drive %1:\ root directory will be erased K WARNING! Files in the target drive %1:\BACKUP directory will be erased ) *** Backing up files to drive %1: *** Diskette Number: %1 + WARNING! No files were found to back up . Insert backup source diskette in drive %1: * Insert backup diskette %1 in drive %2: # *** Not able to backup file *** , Insert last backup diskette in drive %1: $ Target cannot be used for backup # *** Last file not backed up *** # Fixed backup device %1: is full . Disk full error writing to BACKUP Log File !Press any key to continue . . .  ( Cannot FORMAT nonremovable drive %1: q Because your source drive is either ASSIGNed, JOINed, or SUBSTed it is actually the same as the target drive q Because your target drive is either ASSIGNed, JOINed, or SUBSTed it is actually the same as the source drive (Your target diskette is unformatted and TNo FORMAT program was found. Do you have another diskette with FORMAT on it (Y/N)? / Insert the diskette with FORMAT in drive A: 9 Do you want to continue by inserting a new disk (Y/N)? 8Backs up one or more files from one disk to another. rBACKUP source destination-drive: [/S] [/M] [/A] [/F[:size]] [/D:date[/T:time]] [/L[:[drive:][path]logfile]] M source Specifies the file(s), drive, or directory to back up. F destination-drive: Specifies the drive to save backup copies onto. ; /S Backs up contents of subdirectories. i /M Backs up only files that have changed since the last backup. D /A Adds backup files to an existing backup disk. F /F:[size] Specifies the size of the disk to be formatted. h /D:date Backs up only files changed on or after the specified date. h /T:time Backs up only files changed at or after the specified time. /L[:[drive:][path]logfile] Creates a log file and entry to record the backup operation. >Hc Extended Error %1>S Parse Error %1>(SUWV~E P]MUu_UB?]W~]MUuĉE XE ^_]UWV~E P]MUu_U.T.T.Tx@]W~]MUuĉE XE .6T^_]@.T.T.T!.6TUWV~E P]MUu_UA]W~]MUuĉE XE ^_]UVF9vF6FF9F~+F+FFF~|vv8uc~t~tWD*P=tFFFFFFF^6^v8uNFF~܃~uFF FN|^]UVFjF*P4=u!FF^vF uڀ~uvv8FuՋ+^]U3^V^*6"*^]U ?V+FF>u+P Pz"PFPPa F tFyF^6 F^6"FF~|޸PFP"P+ F u"FF^*9vt  FFF~|I^]UjVFv怼u u+%vF8w 8r F~rǸ^]0!<s K6+rׁs3P2 L!6&6&ƱH66+۴J!6_: +3;N366~6|辨PKظ68XPMP0!a5!MO%VW!R ._&6,T 36P s6X ڻ6P _&,63&=t, @t 3uhtHhD!r €th@Ky\ \ \ \ U` ` }\ ^ tU^ ^ f^ ^ lu t ~uFht>!CFL!R P M%!>t %!;s OO ;s EtY+r ;r3kUWVFFVFPvV FVWR F^_]U^ tO]UVW?u)u3$@$D6N؎U_^]U׋ތ؎~3u~+FtI]U׋ދv؎3ы~ǨtI]U׋ތ؎v~3+t]U׌؎~3I]UWV6 tF~t@v<t*4;~9=uWvS u֋A+^_]UVW F͋FF<%t <&tF FFDFDVFF~]MUu} U^]W~]MUuE r3[u _^]UWVFFFEBFEEFPvWMx * W+P3^_]UVW~]MUu} !W~]MUuE r3u _^]UVW~]MUuu ~]_!W׎ߋ~E~]MUuE r3]u _^]U^_OW]UW~3AيFO8t3_]UFPvv]U9U;V!U:V!s=u쒓C<t tPS]øV3B22Ut P,^Ï8at)_&,33uGG>ыѿ_< t< t< to tkGN< t< t< t\ tX<"t$<\tB3A<\t<"tӋѨuN< t+ t'<"t<\tB3A<\t<"tۋѨu>|G׀+ģ~6?CC6 u6_3< t< t< u uy6?CCN< t< t< tb t^<"t'<\t3A<\t<"t\Ѱ\s"N< t. t*<"t<\t3A<\t<"t\ٰ\s"3&UU_3ɋI6, t&>tEuE@$W _ϋ.3I<;Ct~EE uN]]UVWVh ;t@t 3_^]UWv t3I@!_]r3]sPX]s]2âd u#>ar <"s < r<vטYÊUWVvDF-TFDtD@t L DuLd+D~D u_ށTuFtu3vy u-u D^GVx DuށTtP<+|D@^GHD ~Wtv F^h tP+PPS ̓\FPFPv F9~tF*^_]ÐUVvuF u$FD uށTt+5-TFFD^GDL^]UV~t[~t~uv^GP tdF-TFvy ^G^+G*^ tuGP  t v6 ^]UdWVvX FH F< R P |<%tXT +D @ N B L J > : F ^ |0uD uJ : <-uF FP uVZ Pf>Z } F Z أZ <.u#L FVT P<>T } T L =Ft2=Nt5=ht =luB >B u @ >L u V V L T >B u+B F9Z t'Z F>F t Z .Z Z }+Z H P:P~t">F tF-Z }+Z Z .H P/+P*>B tNG=t=%u+PV<t|>P uY< G tOMedeeeedeeeedddee~eedeexe>R t>P u< G uF뙐P ^_]ÐUWV~ tN >B t>B uH WFVH *>N tH FFH FVH >: t F FtF+\ 6X >N u*~}$~ u-FFV؃ډFVFFFvWvv >L t!W)T +ȉN0FI N@  tN uD J t ~u+P^_]ÐUWV~tH F^H >B uH WFVH H FF^H >B u F Fu ~u F^FVFV+96L tT ^F&?tF;~F^F&?u>Z +>F uWVvvo>F tW^_]UH F~gt~Gu*F>L uT ~t >T uT 6@ 6T v6X v ~t>: u 6X >: t>T u 6X H \ D J tv t+P]UV>R u/< OxF7* Svo@uR P ^]ÐUWV>R uIv ~B6< 6^ 7@uR N ~< Ox۠^ ?*܃>R uFP ^_]UWVv>R uP6< ^&P@uR FN t< Ox^&< ?*҃>R uFP ^_]U WV6X +FF>^ 0u9L t9> t9V u^ >Z VF++~>F u<-u>^ 0u PN>^ 0t ~>F t~tF_>\ tFj>F u&W~t ~u5>\ t ~u=vV>F t ^ Wa^_]Ã>D t+ PÐ0P>\ u>@ tXxPÐUWVvF<*uH ?H FH<-uFF+<0|5<909>L u <0u^ 0ȃ0F<0|<9~F^?^_]ÐUVNF<t : u+^]ÐAtswtBH;st4Dt L+HLƌڌ;t&&=t%tH;stDG t&t،;t&7뼋w3j;t $@@^t MtNN뙌،;t&G3QEt+IAA&;vurr #+ uu3YRQtWDw+JUXYZSP3RRPPZ[t UWVN&ً~3ˋvD3:EwtIIы^_]U3f6vvv:]Ër59s%Pرً_+ËشJ!Xr$H.ËUVF-TFPN^G tO^G^OF@G^G^DG^]UWVv+D$<uFDuށTt'+DF ~PtDP!;FtL DD^_]U^;fr h t B3ɋ!rhtnV3FFWVfNT uJ=vHܺ=(s+ԋN< t ;t#a ;u F ^_UE3PSQ+^@!r F tY[XÃs h@t ^?u F+Ff^_N uV@!s uh@t ڀ?uUVW~u8VFHuSr'H6>Ht;t DF V:^s0>s uڃ۱H!r钉T6>3_^]ËN 9Lt >u?r9ӎ;u9s&;u ١_+؎J!r ;uUVWU^;f}| h@t3]UWV(v vvv|@u2>Yu+^&Yu<uyF uo^_]UWV+Dt Vj@tG96s^_]Y;s+3UWV~vߋN t2^_]ËN FV~W t u y -ۃڋ3 t0<9v' uODD;rX_^]U츌SWVv~uv vVf+PtPFPFPv v3 @u\PV/PVF u u t9~v~.PW( tvtPVvFVP  u vz PVWsP,YvtPWvF>Yu+ P.PW9P4vtPWv~FWvwF^_]ÐUW~3AOFG8t3_]UWV+9vuF~t)FF^F7@^?tvfF t^guNu~tF~tvFvvYd 6FFPF u!v uY d6뷋~6^~?$F^ ?~t-FF+P^7WP@F^?uۃ~t>+P PWPFG+NhthGFNGG~tGGvWH+~ G^97tt9wt GFF,v+P^7WPvF^?t GF^?t,7IF=}vYd ^72 ^ ƈF^_]ÐU~t~t YVW؋^ ã F" $ 6" F. )!)> !U>a}!."v.& v.5.6$vu.6&v.(v ~t32P !XVK!PP0!<X[}!."v.& v..(v.6&vu.6$v5]_^rM!V^ YAg:e<USQRVWUrؾg~&=t=t#u&It  %~&5/!  !~ &&=uVNN!sr؋F~>.#s6>D&&E&ED&E&E&E D&E &ED&E&E&Et &e&E3D&E @<t&AC&A&E>~ &tO!r >X+Pr؀>t  !X]_^ZY[]USQRVWU^V N @!rv+]_^ZY[] USQRVWUV A!r+]_^ZY[]USQRVWUv=rذ2ں8!r5~ &ED &ED &ED&EN"r ~ "+]_^ZY[]USQRVWUr؋vugu$3]_^ZY[]USQRVWUF t+vvV+ɴ@!r.v>!r#VF =!rv۸<؋F +]_^ZY[]USQRVWU2ؾVG!r3ߎǿ򮺀+~& ;s&~ +]_^ZY[] USQRVWU!.v @2؍>WP+P >t!!2;tѝ>|ٿ>~ϴ.!.v\3]_^ZY[]USQRVWUVC!r v +]_^ZY[] USQRVWUV N C!r3]_^ZY[] USQRVWUV F ^B!r vT+]_^ZY[] USQRVWU^y>!r+]_^ZY[]USQRVWUVJ!+]_^ZY[]USQRVWUV6!=uWrP2PXF <tWOF=}oA~+&&E+&E&&+&E&E+&E&E+]_^ZY[] USQRVWUr؋vugu46/!  !~&&=uF ~ >O!s.#s6>D&&E&ED&E&E&E D&E &ED&E&E&Et &e&E3D&E @<t&AC&A&E>~&tY+Pr؀>t  !X]_^ZY[] 9:USQRVWUF=tu3C.$%!3/>u3#$5!..ʎں$%!3]_^ZY[]u .<u#XUSQRVWUJظ$5!. . ʎں $%!3]_^ZY[]. <u#9 ? USQRVWUF./ ( !!+]_^ZY[] USQRVWUF=ueF=|]=?=M=  >= -= =t=&,+v ]_^ZY[]USQRVWUv vN+=;" $AMS DOS Version 6 (C)Copyright 1981-1994 Microsoft Corp Licensed Material - Property of Microsoft All rights reserved @(#)cmrrchr.c 1.1 86/06/17 @(#)cmstrchr.c 1.1 86/06/17@(#)cmupper.c 1.1 86/06/17OXKL;C_FILE_INFOKC   ::;xtL(null)(null)+- # ]]]]]PATH\.com.exe;C_FILE_INFO5OO.q<>R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating point not loaded R6001 - null pointer assignment V RB OP4PˌÌH؎GH+s+ڋ+s+¬NF$6 -؎֋./@ʎں!L!Packed file is corrupt511000M00////j/C/..v3F3/3???@AhSS(Tx4yyzz|D|||\~~!%؀w+VUVWW4؍܍4201.CPI--------------------------------------------------------------------- Code-page information file for IBM Proprinters II and III Model 4201, and IBM Proprinters II and III XL Model 4202. 4208.CPI--------------------------------------------------------------------- Code-page information file for IBM Proprinter X24E Model 4207, and IBM Proprinter XL24E Model 4208. 5202.CPI--------------------------------------------------------------------- Code-page information file for IBM Quietwriter III printer. ADOS------------------------------------------------------------------------- Starts AccessDOS, a package of MS-DOS extensions for persons with motion and hearing disabilities. See ADOS.TXT for information about using AccessDOS. SYNTAX ------ ADOS [/A] [/C] [/L] [/M] [/X] SWITCHES -------- /A Installs AccessDOS. /C Runs AcessDOS in color mode. /L Runs AccessDOS in LCD mode. /M Runs AccessDOS in monochrome mode. /X Runs AccessDOS in minimal mode. ASSIGN----------------------------------------------------------------------- Redirects requests for disk operations on one drive to a different drive. Some older programs can read and write files only on drives A and B. With the ASSIGN command, you can redirect disk operations for those programs so that you can read and write files on drives other than A and B. SYNTAX ------ ASSIGN [x[:]=y[:][...]] To redirect all drive letters to their original drives, use the following syntax: ASSIGN To display a list of the current assignments, use the following syntax: ASSIGN /STATUS PARAMETERS ---------- x Specifies the drive from which you want to redirect read and write operations. This value must be a letter. The use of the colon (:) is optional. y Specifies the existing drive to which you want to redirect read and write operations. This value must be a letter. The use of the colon (:) is optional. SWITCH ------ /STATUS Lists current assignments. You can abbreviate this switch as /STA or /S. NOTES ----- Invalid uses of ASSIGN ---------------------- You must not assign the drive letter of your hard disk to another drive. You should not use ASSIGN for a drive that is in use by a program. You cannot use the drive letter of a hard disk drive that does not exist for either the x or the y parameter. Avoid the use of ASSIGN in the following cases: o With commands requiring drive information (BACKUP, JOIN, LABEL, RESTORE, SUBST) o With the DISKCOPY and FORMAT commands, which ignore drive reassignments o During typical use of MS-DOS, unless a program cannot read and write files on the specified drive Using ASSIGN with the APPEND command ------------------------------------ If you use both the ASSIGN and APPEND commands, you must use APPEND first, even if the commands affect different drives. Using ASSIGN for network drives ------------------------------- You can use the ASSIGN command for network drives. Canceling a previous assignment as the result of a new assignment ----------------------------------------------------------------- Assigning a drive letter to a drive cancels previous assignments to it. Suppose you assign drive A to drive letter C, as the following example shows: ASSIGN A=C Later you assign drive B to drive letter C, as the following example shows: ASSIGN B=C As a result, drive A is no longer assigned to drive letter C. Using the SUBST command instead of ASSIGN ----------------------------------------- You should use the SUBST command instead of ASSIGN. The following commands are equivalent: ASSIGN A=C SUBST A: C:\ EXAMPLES -------- Suppose you want to use drive C to read and write files, but your program requires you to put your program disk into drive A and your data disk into drive B. To reassign the drive letters A and B to drive C, type the following command: ASSIGN A=C B=C This command causes MS-DOS to look for your program and data files on drive C. To reset all drive letters to their original drives, type the ASSIGN command without parameters, as follows: ASSIGN BACKUP--------------------------------------------------------------------- Backs up one or more files from one disk onto another. You can back up files onto either a hard disk or floppy disk(s). Files can also be backed up from one floppy disk onto another, even if the disks have different numbers of sides or sectors. MS-DOS displays the name of each file it backs up. SYNTAX ------ BACKUP source destination-drive: [/S] [/M] [/A][/F[:size]] [/D:date [/T:time]][/L[:[drive:][path]logfile]] PARAMETERS ---------- source Specifies the location of files you want to back up. Source can consist of a drive letter and colon, a directory name, a filename, or a combination. destination-drive: Specifies the drive that contains the disk on which you want to store any backup files. The backup files are stored in the BACKUP.nnn and CONTROL.nnn files. That is, BACKUP assigns the names BACKUP.001 and CONTROL.001 to the files it creates on the first backup disk you use, BACKUP.002 and CONTROL.002 to the files it creates on the second backup disk, and so on. SWITCHES /S Backs up the contents of all subdirectories. /M Backs up only files that have changed since the last backup, and turns off the archive attribute of the original files. /A Adds backup files to an existing backup disk without deleting existing files. (The /A switch is ignored if the existing backup disk contains backup files that were created by using the BACKUP command from MS-DOS version 3.2 or earlier.) /F[:size] Formats the backup disk to the size you specify. (The FORMAT command must be present in the current path.) With this switch, you direct BACKUP to format floppy disks that do not match the default size of the drive. The BACKUP command formats an unformatted destination disk even if you do not specify the /F switch. When BACKUP finishes formatting, it begins backing up files onto the last disk it formatted. Size specifies the size in kilobytes of the disk to be formatted. If you do not specify size, the /F switch uses the default size of the drive. The following list shows the valid values for size and a brief description of each size: 160 or 160k or 160kb 160K, single-sided, double-density, 5.25-inch disk 180 or 180k or 180kb 180K, single-sided, double-density, 5.25-inch disk 320 or 320k or 320kb 320K, double-sided, double-density, 5.25-inch disk 360 or 360k or 360kb 360K, double-sided, double-density, 5.25-inch disk 720 or 720k or 720kb 720K, double-sided, double-density, 3.5-inch disk 1200 or 1200k or 1200kb or 1.2 or 1.2m or 1.2mb 1.2-MB, double-sided, quadruple-density, 5.25-inch disk 1440 or 1440k or 1440kb or 1.44 or 1.44m or 1.44mb 1.44-MB, double-sided, quadruple-density, 3.5-inch disk 2880 or 2880k or 2880kb or 2.88 or 2.88m or 2.88mb 2.88-MB, double-sided, 3.5-inch disk /D:date Backs up only files modified on or after the specified date. The date format depends on the setting you are using for the COUNTRY command. /T:time Backs up only files modified at or after the specified time. The time format depends on the setting you are using for the COUNTRY command. /L[:[drive:][path]logfile] Creates a log file and adds an entry to that file to record the backup operation. If you do not specify a location for the log file, BACKUP puts the file in the root directory of the source drive. If you do not specify logfile, BACKUP names the file BACKUP.LOG. You should not specify a removable drive (such as a floppy disk drive) for this parameter; but once the backup is complete, you can copy the log file to a floppy disk. NOTES ----- Backing up onto a disk with files --------------------------------- Unless you use the /A switch, BACKUP deletes old files (including read-only files) from a backup disk before adding new files to it. Backup log file --------------- If you use the /L switch and do not specify a name and location for the log file, the BACKUP command adds a file named BACKUP.LOG to the root directory of the source drive. If the BACKUP.LOG file already exists, BACKUP adds the current entry to the file. A backup log-file entry uses the following format: o The date and time of the backup appear on the first line. o Each filename appears on a separate line with the number of the backup disk that contains the file. The backup log file can assist you later, when you need to identify the files you want to restore. The RESTORE command always returns a file to the original directory or subdirectory recorded in the backup log, creating the subdirectory if necessary. Labeling backup disks --------------------- It is important to label and number backup disks consecutively. As each disk is filled, BACKUP prompts you for the next disk. When you restore files, you need to insert the backup disks into the disk drive in the same sequence. To check the sequence of backup disks (MS-DOS version 3.3 or later), use the DIR command to check the disk number. BACKUP and system files ----------------------- The BACKUP command cannot back up the system files IO.SYS, MSDOS.SYS, and COMMAND.COM. You can use the SYS command to copy these files onto a floppy disk. Using an old version of the RESTORE command ------------------------------------------- You cannot use an old version of the RESTORE command (MS-DOS version 3.2 or earlier) for files backed up with MS-DOS version 3.3 or later. If you attempt this, MS-DOS displays the following message: Source does not contain backup files This error occurs because the format of old backup files differs from the format of files backed up with MS-DOS versions 3.3 and later. Using BACKUP with networks or redirected drives or directories -------------------------------------------------------------- If you are sharing files on a network, you can back up only those files to which you have access. You should not use BACKUP with a drive that has been redirected with the ASSIGN, JOIN, or SUBST command. If you do, the RESTORE command may not be able to restore the files. Backup exit codes ----------------- The following list shows each exit code and a brief description of its meaning: 0 The backup was successful. 1 No files were found to back up. 2 Some files were not backed up because of file-sharing conflicts. 3 The user pressed CTRL+C to stop the process. 4 The process stopped because of an error. You can use the ERRORLEVEL parameter on the IF command line in a batch program to process exit codes returned by the BACKUP command. EXAMPLES -------- Suppose you want to back up all the files in the \PUBLIC\SMITH directory on drive C onto a blank, formatted disk in drive A. To do so, type the following: BACKUP C:\PUBLIC\SMITH\*.* A: Suppose you need to back up all files in the \PUBLIC\SMITH directory on drive C onto a 720K floppy disk in drive B. If the floppy disk is unformatted, BACKUP formats it before backing up any files. Because the /S switch is not specified in the following command, files in subdirectories are not backed up: BACKUP C:\PUBLIC\SMITH\*.* B: /F:720K To write a simple batch program named SMITH that supports the BACKUP command's exit codes and the /S switch, you can type the following commands by using MS-DOS Editor: echo off rem Smith's backup command backup c:\public\smith\*.* b: /s if errorlevel 4 goto error if errorlevel 3 goto abort if errorlevel 2 goto conflict if errorlevel 1 goto no_files if errorlevel 0 goto success :error echo Backup stopped the process due to an error goto exit :abort echo You just pressed CTRL+C to stop the backup goto exit :conflict echo One or more files were not backed up due to a sharing conflict goto exit :no_files echo Sorry, but there were no files to back up goto exit :success echo The backup was successful goto exit :exit CHOICE---------------------------------------------------------------------- A command used by the Setup program. The CHOICE.COM file is the same one included with MS-DOS 6.22. COMP------------------------------------------------------------------------ Compares the contents of two files or sets of files byte by byte. COMP can compare files on the same drive or on different drives, in the same directory or in different directories. As COMP compares the files, it displays their locations and filenames. SYNTAX ------ COMP [data1] [data2] [/D] [/A] [/L] [/N=number] [/C] PARAMETERS ---------- data1 Specifies the location and name of the first file or set of files you want to compare. You can use wildcards (* and ?) to specify multiple files. data2 Specifies the location and name of the second file or set of files you want to compare. You can use wildcards (* and ?) to specify multiple files. SWITCHES -------- /D Displays differences in decimal format. (The default format is hexadecimal.) /A Displays differences as characters. /L Displays the number of the line on which a difference occurs, instead of displaying the byte offset. /N=number Compares the first number of lines of both files, even if the files are different sizes. /C Performs a comparison that is not case-sensitive. NOTES ----- Comparing files with the same names ----------------------------------- The files you want to compare can have the same filename, provided they are in different directories or on different drives. If you do not specify a filename for data2, the default filename for data2 is the same as the filename in data1. You can use wildcards (* and ?) to specify filenames. Special cases for data1 and data2 --------------------------------- If you omit necessary components of either data1 or data2 or if you omit data2, COMP prompts you for the missing information. If data1 contains only a drive letter or a directory name with no filename, the default filename for data1 is *.*. Therefore, COMP compares all the files in the specified directory to the file specified in data2. If data2 contains only a drive letter or a directory name, the default filename for data2 is the same as that in data1. How the COMP command identifies mismatching information ------------------------------------------------------- During the comparison, COMP displays messages to identify the locations of unequal information in the two files. Each message indicates the offset memory address of the unequal bytes and the contents of the bytes themselves (in hexadecimal notation unless you specify the /A or /D switch). The message has the following format: Compare error at OFFSET xxxxxxxx file1 = xx file2 = xx After 10 unequal comparisons, COMP stops comparing the files and displays the following message: 10 Mismatches ending compare Comparing files of different sizes ---------------------------------- You cannot compare files of different sizes unless you specify the /N switch. If the file sizes are different, COMP displays the following message: Files are different sizes Compare more files (Y/N)? Press Y to compare another pair of files. Press N to stop the COMP command. If you press Y in response to the prompt, COMP includes any switches you specified on the command line in every comparison it makes, until you press N or retype the command. When comparing files of different sizes, use the /N switch to compare only the first portion of each file. Comparing files sequentially ---------------------------- If you use wildcards to specify multiple files, COMP finds the first file matching data1 and compares it with the corresponding file in data2, if it exists. COMP reports the results of the comparison, then does the same for each file matching data1. When finished, COMP displays the following message: Compare more files (Y/N)? To compare more files, press Y. COMP prompts you for the locations and names of the new files. To stop the comparisons, press N. When you press Y, COMP prompts you for switches to use. If you don't specify any switches, COMP uses the ones you specified before. If COMP cannot find the files ----------------------------- If COMP cannot find the file(s) you specify, it prompts you with a message to determine whether you want to compare more files. CV-------------------------------------------------------------------------- Starts CodeView versions 3.0 through 3.13. CAUTION: Using versions 3.0 to 3.13 of the CodeView CV.EXE file may cause data loss if your system has a 80386 memory manager (such as EMM386.EXE) and device drivers or programs that use extended memory. To determine which version you have, type CV.EXE at the command prompt. To start CodeView versions 3.0 to 3.13 safely, use the CV.COM file included with the Supplemental disk, and HIMEM.SYS version 2.77 or later. To use the CV.COM file included with the Supplemental disks, copy it to the directory that contains your CV.EXE file. This problem has been fixed in CodeView version 3.14. Call Microsoft C Support to get this version. DRVBOOT--------------------------------------------------------------------- Creates a bootable DriveSpace floppy disk. SYNTAX ------ DRVBOOT [drive:] PARAMETER --------- [drive:] Specifies the floppy disk drive for the DriveSpace floppy disk. NOTES ----- You can use the floppy disk to start any system with MS-DOS 6.22. Because the disk is compressed, you can include many more files on the disk than on most uncompressed disks. Before you can use DRVBOOT, you must install DriveSpace on your hard disk. DRVBOOT only works with high-density (1.44 or 1.2 MB) floppy disks. DVORAK.SYS------------------------------------------------------------------ Provides alternative keyboard layouts for people who have difficulty using the standard QWERTY layout. The commands for installing the layouts in your CONFIG.SYS file are as follows. (If DOS is not the directory that contains your MS-DOS files, substitute the correct directory name in the commands below.) Two-handed layout ----------------- keyb dv,,c:\dos\dvorak.sys Left-handed layout ------------------ keyb lh,,c:\dos\dvorak.sys Right-handed layout ------------------- keyb rh,,c:\dos\dvorak.sys EDLIN----------------------------------------------------------------------- Starts Edlin, a line-oriented text editor with which you can create and change ASCII files. Edlin numbers each line of the text file that is located in memory. You can use Edlin to insert, modify, copy, move, and delete lines of the file. If you want to use a full-screen editor, use the EDIT command. SYNTAX ------ EDLIN [drive:][path] filename [/B] PARAMETER --------- [drive:][path] filename Specifies the location and name of an ASCII file on a disk. If the file exists, Edlin opens it. If the file does not exist, Edlin creates a file in memory and uses the specified location and filename to create the file on a disk when you use the Edlin E command. SWITCH ------ /B Specifies that Edlin is to ignore the end-of-file character (CTRL+Z). NOTES ----- Maximum line length ------------------- Edlin accepts a maximum of 253 characters per line. Edlin commands -------------- The following is a list of Edlin commands with a brief description of each command: [line] Displays the line you specify. ? Displays a list of Edlin commands. A Loads a portion of a file into memory when insufficient memory prohibits loading the entire file. C Copies a block of consecutive lines to the line number you specify. D Deletes a block of consecutive lines. E Writes the edited file from memory to a disk (saves the file), and stops the Edlin session. I Inserts one or more lines. L Displays a block of consecutive lines. M Moves a block of consecutive lines. P Displays a file one page at a time. Q Stops the Edlin session without writing the edited file from memory to a disk. R Searches for a string of one or more characters, and replaces it. S Searches for a string of one or more characters. T Merges the contents of another file on a disk with the contents of the file that is in memory. W Writes the first portion of the file in memory to a disk. Meaning of the asterisk character in Edlin ------------------------------------------ The asterisk (*) is used for two purposes in Edlin. When an asterisk appears as the only character on the display line, it is the Edlin prompt after which you type Edlin commands. When an asterisk appears after a line number on the display line, it indicates that the line is the current line (where the cursor is located). Meaning of a page of text ------------------------- A page of text is one full screen of information. With a 25-line screen mode, Edlin displays 24 lines of text per page. The number of lines per page depends on the screen mode you are using. Starting and stopping insert mode --------------------------------- To insert lines into the file in memory, use the Edlin I (insert) command. Once you have finished inserting lines, press ENTER and then CTRL+C to stop insert mode. For more information about inserting lines, see the Edlin I command. Editing keys ------------ MS-DOS provides several editing keys that you can use to edit the file in memory. EDLIN:[line]---------------------------------------------------------------- Displays the line of text you specify. When you type a line number as a command, Edlin displays two lines. The first line contains the number you specified and its associated text. The second line contains the number again, followed by the cursor. The text on the first line of the display serves as a template for the second line. On the second line of the display, you can press ENTER to cancel the command without changing the text, type replacement text, or edit the line of text. SYNTAX ------ [line] PARAMETERS ---------- line Specifies the number of the line you want Edlin to display. To see the number and text of the current line, press ENTER. NOTE ---- Entering changes into memory ---------------------------- After you edit a line, press ENTER to enter the changes into memory. Caution If you press ENTER while the cursor is in the middle of a line, Edlin deletes the portion of the line that is between the cursor and the end of the line. For information about saving the edited file from memory to a disk, see the Edlin E and Edlin W commands. EXAMPLE ------- Suppose that the following file is in memory and ready to edit. When you use the Edlin L (list) command at the Edlin prompt, Edlin displays the contents of the file. 1: Dear Mr. Muster: 2: 3: Congratulations on your promotion 4: to the position of Senior Chemical 5: Engineer. I continue to be most 6: impressed with your work. To edit line 6, type 6. Edlin displays the following two lines: 6:*impressed with your work. 6:*_ The first line contains the specified line number and its associated text. The second line contains the same line number and the cursor. Now suppose you want to insert the word "fine" before the word "work" in the previous example. You can specify that Edlin is to redisplay a portion of the first line, beginning at the cursor position on the second line. First, press F2 and type W. Edlin displays up to, but not including, the first w in line 6, as follows: 6:*impressed _ Then, press F2 and type W again. Edlin displays up to, but not including the next "w" in line 6, as follows: 6:*impressed with your _ Now press the INSERT key and type FINE and then a space. Then press the F3 key. Edlin displays the edited line, as follows: 6:*impressed with your fine work._ Press ENTER to accept the change. At the Edlin prompt, use the Edlin L (list) command to see a display of the edited file now in memory. Edlin displays the following: 1: Dear Mr. Muster: 2: 3: Congratulations on your promotion 4: to the position of Senior Chemical 5: Engineer. I continue to be most 6:*impressed with your fine work. EDLIN: A(APPEND)------------------------------------------------------------ Loads a portion of a file into memory when insufficient memory prevents Edlin from loading the entire file. When you start Edlin, it reads as many lines as possible from your disk file into memory. If the size of your file exceeds available memory, you must edit your file in stages. That is, you edit the first part of the file, write that part of the file to your disk by using the W (write) command, and then load more unedited lines from your disk into memory. SYNTAX ------ [n]A PARAMETERS ---------- n Specifies the number of lines you want Edlin to read into memory from the disk. NOTES ----- Default setting --------------- If you do not specify a value for n, Edlin loads lines from the disk file until available memory is 75-percent full. If available memory is already 75-percent full, Edlin loads no lines. Freeing extra memory -------------------- If available memory is already full, you may be able to free memory by writing a portion of the file to a disk, by stopping other programs, or by restarting MS-DOS after quitting MS-DOS Editor. Restarting MS-DOS clears memory being used by memory-resident programs. End-of-file message ------------------- After the A command reads the last line of the file into memory, Edlin displays the following message: End of input file EXAMPLE ------- Suppose the last 100 lines of your disk file do not fit into memory. After you edit the first part of the file and write a portion of it back to a disk, you can type the following command to load the remaining 100 lines into memory: 100a EDLIN: C(COPY)------------------------------------------------------ Copies a block of consecutive lines to one or more locations within the file in memory. The C command copies the block of consecutive lines you specify to a line number you specify. This block can be copied as many times as necessary. SYNTAX ------ [line1],[line2],line3[,count]C PARAMETERS ---------- line1 Specifies the first line you want Edlin to copy. line2 Specifies the last line you want Edlin to copy. line3 Specifies the line before which Edlin is to insert the specified block of lines. count Specifies the number of times you want Edlin to copy the block of lines. NOTES ----- Default settings ---------------- If you omit line1 or line2, Edlin copies only the current line. You must include the commas on the command line even if you omit one or both of these parameters. If you omit the count parameter, Edlin copies the lines one time. Line renumbering ---------------- After Edlin copies lines, you can use the Edlin L (list) command at the Edlin prompt to see the correctly renumbered lines. Overlapping line numbers ------------------------ The line you specify for theline3 parameter cannot be part of the block of lines to be copied. If you overlap line numbers in this way, Edlin cannot complete the copy operation and displays the following message: Entry error For example, the following command results in an error message: 3,20,15c EXAMPLES -------- If you type the following command, Edlin copies lines 1 through 5 one time, beginning on line 6: 1,5,6c Lines 6 through 10 become identical to lines 1 through 5. To copy the current line to line 5, use the following command: ,,5c EDLIN: D(DELETE)------------------------------------------------------------ Deletes the block of consecutive lines you specify. SYNTAX ------ [line1][,line2]D PARAMETERS ---------- line1 Specifies the first line you want Edlin to delete. line2 Specifies the last line you want Edlin to delete. NOTES ----- Default parameter values ------------------------ If you omit both parameters or only the line2 parameter, Edlin deletes the current line. However, if you omit only the line1 parameter, Edlin deletes the block of text that includes the current line through the line whose number is specified for line2. In the latter case, you cannot specify a line number for line2 that precedes the current line number. In general, the number you specify for line2 cannot be smaller than the number you specify for line1. If you omit only the line1 parameter, you need to insert a comma as a placeholder preceding line2, as shown in the syntax line. Line renumbering ---------------- After Edlin deletes lines, you can use the Edlin L (list) command at the Edlin prompt to see the correctly renumbered lines that remain. EXAMPLES -------- If you want Edlin to delete line 7, type: 7d If you want Edlin to delete the block of text on lines 22 through 32, type the following command: 22,32d Finally, suppose that the number of the current line is 7. To specify that Edlin is to delete the block of text that includes the current line through line 11, type the following command: ,11d EDLIN: E(EDLIN)------------------------------------------------------------- Writes the current file from memory to a disk and stops the Edlin session. The E command renames the original input file on the disk with the .BAK extension, writes the edited file from memory to the original input file on the disk, and then stops the Edlin session. However, if the file in memory is one that you created during this session rather than one that Edlin loaded from a disk, Edlin does not create a backup (.BAK) file on the disk. SYNTAX ------ E NOTES ----- Default drive and directory --------------------------- Edlin writes the edited file from memory to the drive, directory, and filename on a disk that you specified when you started the current Edlin session. If you omitted a drive name at that time, Edlin writes to the current drive. If you omitted a directory name at that time, Edlin writes to the current directory. Checking for disk space ----------------------- Before using the E command, you should be sure your disk contains enough free space for the entire edited file that is in memory. If it does not, Edlin loses part or all of the file. Read-only .BAK file ------------------- Suppose you want Edlin to save an edited file from memory to a disk, but the .BAK version of the file is a read-only file. In this case, Edlin displays a message in the following format to inform you that Edlin cannot replace the .BAK file: Access denied - [drive:][path] filename.BAK Both the original and backup versions of your file on the disk remain unchanged. EDLIN: I(INSERT)------------------------------------------------------------ Inserts lines before the line number you specify in the edited file in memory. If you are creating a new file, you must type the I command before you can insert a new line. Edlin displays the next line number each time you press ENTER. Edlin remains in insert mode until you press CTRL+C. SYNTAX ------ [line]I PARAMETERS ---------- line Specifies the line number before which you want Edlin to insert lines. The default value of line is the number of the current line. NOTES ----- Line renumbering ---------------- When you quit insert mode, the line immediately following the inserted lines becomes the current line. You can use the Edlin L (list) command at the Edlin prompt to see the correctly renumbered lines. Inserting control characters ---------------------------- To insert a control character in text, type ^V followed by the ASCII symbol that represents the control character. For example, to insert an escape character (CTRL+[), type the following: ^V[ To insert a character that produces a tone (CTRL+G), type the following: ^VG Appending text -------------- If the value for line exceeds the number of lines in the file you are editing or if you specify a number sign (#) for line, Edlin appends the inserted line(s) to the end of the file. In either case, the last line you insert becomes the current line. If only a portion of the file is in memory, the line is appended at the end of the portion in memory. EXAMPLES -------- Suppose you have used the Edlin L (list) command at the Edlin prompt to display the following text on your screen: 1: Dear Mr. Muster: 2: 3: Congratulations on your promotion 4: to the position of Senior Chemical 5: Engineer. I continue to be most 6: impressed with your work. 7: 8: Sincerely, 9: 10: S.L. Martin, President Suppose you want to add another paragraph to the letter. To insert text before line 8, type 8I. Edlin displays the following: 8:*_ Now type the following line at the cursor on line 8: 8:*I think you will enjoy working with Press ENTER at the complete of each new line and continue by typing the following lines: 9:*Mr. Lang on the new project. Please 10:*let me know if there is anything I 11:*can do to assist you. Edlin displays the following: 12:*_ Insert a blank line by pressing ENTER and complete the insertion by pressing CTRL+C on the next line. You can type 1L to see the following correctly renumbered lines: 1: Dear Mr. Muster: 2: 3: Congratulations on your promotion 4: to the position of Senior Chemical 5: Engineer. I continue to be most 6: impressed with your work. 7: 8: I think you will enjoy working with 9: Mr. Lang on the new project. Please 10: let me know if there is anything I 11: can do to assist you. 12: 13:*Sincerely, 14: 15: S.L. Martin, President EDLIN: L(LIST)-------------------------------------------------------------- Displays the block of consecutive lines you specify. SYNTAX ------ [line1][,line2] l PARAMETERS ---------- line1 Specifies the first line you want Edlin to display. line2 Specifies the last line you want Edlin to display. NOTES ----- Default values -------------- You can omit the line1 parameter, the line2 parameter, or both. The following list describes the default value(s) for each of these cases: o If you omit only the line1 parameter, Edlin displays up to one page (full screen of text) at a time, beginning 11 lines before the current line and ending with the line whose number is specified in line2. When you omit only line1, you must insert a comma as a placeholder. o If you omit only the line2 parameter, Edlin displays up to one page, beginning with the line whose number is specified in line1. o If you use the Edlin L (List) command with no parameters, Edlin displays up to one page, beginning 11 lines before the current line. If you install the ANSI.SYS device driver, the number of lines Edlin displays per page depends on the type of monitor you have. This number might be greater than 24. Blocks of more than one page ---------------------------- When the block of lines you specify contains more than one page, Edlin displays the first page and then prompts you with the following message: Continue (Y/N)? EXAMPLE ------- To see lines 5 through 10, type the following: 5,10l EDLIN: M(MOVE)--------------------------------------------------------------- Moves the block of consecutive lines you specify to another location in the file in memory. SYNTAX ------ [line1],[line2],line3M [line1],+n,line3M PARAMETERS ---------- line1 Specifies the first line you want Edlin to move. line2 Specifies the last line you want Edlin to move. line3 Specifies the line before which you want Edlin to move the block of lines. +n Specifies that you want Edlin to move the block of lines that begins with the line whose number is specified in line1 and includes the next n lines. If you omit the line1 parameter, the block of lines to be moved begins with the current line. NOTES ----- Line renumbering ---------------- After Edlin moves lines, you can use the Edlin L (list) command at the Edlin prompt to see the correctly renumbered lines. Overlapping line numbers ------------------------ The line you specify for theline3 parameter cannot be part of the block of lines to be moved. If you overlap line numbers in this way, Edlin cannot complete the move operation and displays the following message: Entry error For example, the following command results in an error message: 5,10,8m EXAMPLES -------- Suppose that the following file is in memory and ready to edit. You can type 1L at the Edlin prompt to see the contents of the file. 1: Dear Mr. Muster: 2: 3: Congratulations on your promotion 4: to the position of Senior Chemical 5: Engineer. I continue to be most 6: impressed with your hard work. 7: 8: I think you will enjoy working with 9: Mr. Lang on the new project. Please 10: let me know if there is anything I 11: can do to assist you. 12: 13: Sincerely, 14: 15: S.L. Martin, President 16: Rockdale Corporation 17: "A World Leader in Technology" What if you prefer to have the motto at the beginning of the memo? You can move lines 16 and 17 before the existing line 1 by typing the following command: 16,17,1m Type the Edlin L (list) command at the Edlin prompt to see the following correctly renumbered lines: 1: Rockdale Corporation 2: "A World Leader in Technology" 3: Dear Mr. Muster: 4: 5: Congratulations on your promotion 6: to the position of Senior Chemical 7: Engineer. I continue to be most 8: impressed with your hard work. 9: 10: I think you will enjoy working with 11: Mr. Lang on the new project. Please 12: let me know if there is anything I 13: can do to assist you. 14: 15: Sincerely, 16: 17: S.L. Martin, President The following command specifies that Edlin is to move the block of lines including the current line through the next 25 lines to immediately before line 100: ,+25,100m EDLIN: P(PAGE)-------------------------------------------------------------- Displays all or part of a file, one page (full screen of text) at a time. The last line displayed per screen becomes the current line. SYNTAX ------ [line1][, line2]P PARAMETERS ---------- line1 Specifies the first line you want Edlin to display. line2 Specifies the last line you want Edlin to display. NOTES ----- Omitting only the line1 parameter --------------------------------- When you omit the line1 parameter, Edlin displays a page of text that begins with the current line through line2. Omitting only the line2 parameter --------------------------------- When you omit the line2 parameter, Edlin displays a page of text that begins with the line whose number you specify for line1. Omitting both parameters ------------------------ When you omit both parameters, Edlin displays a page of text that begins with the line after the current line. EXAMPLE ------- To see lines 100 through 200, one page at a time, type the following command: 100,200p EDLIN: Q(QUIT)--------------------------------------------------------------- Stops the current Edlin session without writing the edited file from memory to a disk. When you use the Q command, the Edlin session stops and the MS-DOS prompt appears. To specify that Edlin is to write the edited file from memory to a disk before ending the current session, you must use the E (end) command. SYNTAX ------ Q NOTES ----- A difference between the Q and E commands ----------------------------------------- Suppose that the file you are editing is one that Edlin loaded into memory from a disk at the beginning of this session rather than one that you created in memory during the session. If you use the Q command to quit the session, the contents of both the original input disk file and the .BAK version of the disk file (if one exists) remain unchanged. However, if you use the E command to quit the session and the file you are editing has changed during the session, the edits are saved and the original input disk file becomes the .BAK version. Quitting Edlin without writing the edited file from memory to a disk -------------------------------------------------------------------- Use the following procedure to quit the Edlin session without writing the edited file from memory to a disk: 1. At the Edlin prompt, type Q. Edlin displays the following message: Abort edit (Y/N)? _ 2. Press Y (for yes). EDLIN: R(REPLACE)----------------------------------------------------------- Searches a block of consecutive lines for a string of one or more characters you specify, and replaces each occurrence of that string with another string you specify. The last line in which the replacement occurs becomes the new current line. SYNTAX ------ [line1][,line2][?]R[string1][separator string2] PARAMETERS ---------- line1 Specifies the first line in which you want Edlin to replace the string specified in string1. line2 Specifies the last line in which you want Edlin to replace the string specified in string1. ? (question mark) Specifies that Edlin is to prompt you by displaying a confirmation message before replacing an occurrence of the string specified in string1. string1 Specifies the string that you want Edlin to replace. separator Separates the string1 and string2 values. The only valid value for this parameter is the end-of-file character (CTRL+Z). string2 Specifies the new string that is to replace each occurrence of the string specified for string1. NOTES ----- Command-line spacing -------------------- You must not insert a space between the R and any subsequent parameter on the command line. Default settings ---------------- If you omit the line1 parameter, Edlin begins the search on the line after the current line. If you omit the line2 parameter, Edlin stops the search at the end of the file or at the end of the portion of text in memory. If you omit the string1 parameter, Edlin uses the more recently used of the following two values: the value that you specified for string1 the last time you used the R command or the value that you specified for string the last time you used the S command during this session. If you omit string1 and you have not used the R or S command yet during the editing session, the command stops. If you omit the string2 parameter, Edlin uses the value you specified the last time you used the R command during this session. If you omit the string2 parameter and you have not used the R command yet during this session, Edlin deletes all occurrences of the string that is specified for string1. Using the separator parameter ----------------------------- You must separate the string1 and string2 values by using the CTRL+Z key combination. Even if you omit string1, you need to press CTRL+Z to mark the beginning of string2. When you press the CTRL+Z key combination, the characters displayed are not CTRL+Z. Instead, you see the following: ^Z Using the question mark (?) --------------------------- If you include the ? parameter in your command, Edlin displays the line containing the first occurrence of the string specified for string1 and prompts you by displaying the following confirmation message: O.K.? _ If you press Y (for yes) or press ENTER, Edlin replaces this occurrence of the value for string1 with the value for string2 and searches for the next occurrence. If you press N (for no), Edlin does not replace this occurrence of the value for string1 and searches for the next occurrence. If you do not use the question mark (?) --------------------------------------- If you do not use the ? parameter to confirm replacements as they are made, Edlin makes all the replacements at once and then displays each line that contains a replacement. If a line contains two or more replacements, Edlin displays the line once for each replacement. EXAMPLES -------- Suppose you want Edlin to carry out only each confirmed replacement of the word mine with the word ours within the first 20 lines of the edited file in memory. Type the first part of the command as follows, but do not press ENTER: 1,20?rmine To complete the command, press CTRL+Z (which appears on the screen as ^Z), type the word OURS, and press ENTER. The complete command appears on the screen as follows: 1,20?rmine^Zours Suppose that the following file is in memory and ready to edit. You can type 1L at the Edlin prompt to see the contents of the file. 1: Dear Mr. Muster: 2: 3: Congratulations on your promotion 4: to the position of Senior Chemical 5: Engineer. I continue to be most 6: impressed with your hard work. 7: 8: I think you will enjoy working with 9: Mr. Lang on the new project. Please 10: let me know if there is anything I 11: can do to assist you. 12: 13: Sincerely, 14: 15: S.L. Martin, President 16: Rockdale Corporation 17: "A World Leader in Technology" Now suppose that in lines 5 through 10 you want Edlin to replace all occurrences of the word "I" with the words "yours truly". Type the first part of the command as follows, but do not press ENTER: 5,10rI To complete the command, press CTRL+Z (which appears on the screen as ^Z), type the words "yours truly", and press ENTER. The complete command appears on the screen as follows: 5,10rI^Zyours truly Because the ? parameter is omitted, Edlin replaces the three occurrences of "I" without prompting you by displaying the confirmation message. When Edlin finishes carrying out the command, it displays the following lines, which are changed as a result of the three replacements: 5: Engineer. yours truly continue to be most 8: yours truly think you will enjoy working with 10: let me know if there is anything yours truly In the previous example, two unintended replacements occurred--in lines 5 and 8. You can avoid such changes by adding the ? parameter to the command. The completed command should appear on screen as follows: 5,10?rI^Zyours truly Now, Edlin prompts you by displaying the confirmation message for each occurrence of the string specified in string1 and carries out only confirmed replacements, as the following example shows: 5: Engineer. yours truly continue to be most O.K.? n 8: yours truly think you will enjoy working with O.K.? n 10: let me know if there is anything yours truly O.K.? y When the ? parameter is used, Edlin does not automatically display the lines that are changed as a result of the confirmed replacements. If you type the Edlin L (list) command at the Edlin prompt, Edlin displays the edited file that is in memory, as follows: 1: Dear Mr. Muster: 2: 3: Congratulations on your promotion 4: to the position of Senior Chemical 5: Engineer. I continue to be most 6: impressed with your hard work. 7: 8: I think you will enjoy working with 9: Mr. Lang on the new project. Please 10: let me know if there is anything yours truly 11: can do to assist you. 12: 13: Sincerely, 14: 15: S.L. Martin, President 16: Rockdale Corporation 17: "A World Leader in Technology" EDLIN: S(SEARCH)----------------------------------------------------------- Searches for the string of one or more characters that you specify. Edlin displays the first line that contains an occurrence of the string. The search then stops and that line becomes the current line. SYNTAX ------ [line1][,line2][?]S[string] PARAMETERS ---------- line1 Specifies the first line you want Edlin to search. line2 Specifies the last line you want Edlin to search. ? (question mark) Specifies that Edlin is to prompt you by displaying a confirmation message when it finds the first occurrence of the value you specify for string. string Specifies the string for which you want Edlin to search. You must not insert a space before this parameter on the command line, unless the space is part of the search text. NOTES ----- Default settings ---------------- If you omit the line1 parameter, Edlin starts the search on the line after the current line. If you omit the line2 parameter, Edlin stops the search at the end of the file. If you omit the string parameter, Edlin uses the more recently used of the following two values: the value that you specified for string the last time you used the S command, or the value that you specified for string1 the last time you used the R (replace) command during this session. If you omit the string parameter and this is your first use of an S or R command during this session, the S command stops immediately. Using the ? (question mark) --------------------------- If you include the ? parameter in your command, Edlin displays the line containing the first occurrence of the characters specified for string and prompts you with the following confirmation message: O.K.? _ If you press Y (for yes) or press ENTER, the line displayed before the message becomes the current line and the search stops. If you press N (for no), the search continues until another occurrence is found or until Edlin displays the following message indicating that all lines have been searched: Not found EXAMPLES -------- Suppose that the following file is in memory and ready to edit. You can type 1L at the Edlin prompt to see the contents of the file. 1: Dear Mr. Muster: 2: 3: Congratulations on your promotion 4: to the position of Senior Chemical 5: Engineer. I continue to be most 6: impressed with your hard work. 7: 8: I think you will enjoy working with 9: Mr. Lang on the new project. Please 10: let me know if there is anything I 11: can do to assist you. 12: 13: Sincerely, 14: 15: S.L. Martin, President To specify that Edlin is to search lines 2 through 12 for the first occurrence of the word to, type the following command: 2,12sto Edlin displays the following line: 4: to the position of Senior Chemical To specify that Edlin is to display the line containing the first occurrence of "to" and then prompt you with a confirmation message, type the following command: 1,?sto Edlin displays the following lines: 4: to the position of Senior Chemical O.K.? _ If you press any key other than Y or ENTER, the search continues. For this example, press N (for no), as follows: O.K.? n Edlin continues the search and displays the following lines: 5: Engineer. I continue to be most O.K.? _ Press Y to stop the search. EDLIN: T(TRANSFER)--------------------------------------------------------- Merges the contents of another file from a disk with the contents of the file that is in memory. SYNTAX ------ [line]T[drive:][path] filename PARAMETERS ---------- line Specifies the line number before which you want Edlin to insert the file it is transferring from a disk. The default value of this parameter is the number of the current line. [drive:][path] filename Specifies the location and name of the file you want Edlin to insert before the line whose number is specified in the line parameter. The default value for drive is the current drive; the default value for path is the current directory. NOTE ---- After Edlin merges a file from a disk, you can use the Edlin L (list) command at the Edlin prompt to see the correctly renumbered lines. EXAMPLE ------- To merge a file named TAXES.MEM to line 12 of the file you are editing, type the following command: 12t taxes.mem EDLIN: W(WRITE)-------------------------------------------------------------- Writes the first portion of the edited file from memory to a disk. When you start Edlin, it reads as many lines as possible from your disk file into memory. If the size of your file exceeds available memory, you must edit your file in stages. That is, you edit part of the file, write that part to your disk by using the W command, and then load the next part from disk by using the A command. SYNTAX ------ [n]W PARAMETERS ---------- n Specifies the number of lines that you want Edlin to write to the disk, beginning with the first line of the edited file in memory. NOTES ----- How the W command works ----------------------- When you open a file, Edlin reads lines from disk until memory is more than 75-percent full. It reserves the other 25 percent for changes you might make to the text. If your entire file fits in memory, Edlin displays the following message: End of input file If you see this message, you do not need to use the W and A commands. If Edlin does not display this message when you open a file, the size of the file exceeds available memory. Therefore, you must edit your file in stages by using the W and A commands to write and read parts of the file, respectively. The W command does not write to disk the changes you make unless it was actually necessary to use the W command. Therefore, if you use the W command even though the whole file fit into memory and then you use the Q command to quit Edlin, none of the changes you made to the file are saved. Line renumbering ---------------- After Edlin writes the first portion of the edited file from memory to a disk, you can use the Edlin L (list) command at the Edlin prompt to see the correctly renumbered lines that remain, beginning with line number 1. Default setting --------------- If you omit the n parameter, Edlin writes lines from the edited file in memory to a disk until memory is 25-percent full. EXAMPLE ------- Suppose the final 100 lines of your disk file do not fit into memory. After you edit the first part of the file, you can free enough space to load the remainder of your disk file into memory and continue editing by typing the following command: 125w EXE2BIN---------------------------------------------------------------------- Converts .EXE (executable) files to binary format. EXE2BIN is included with MS-DOS as a courtesy to software developers. It is not useful for general users. SYNTAX ------ EXE2BIN [drive1:][path1]input-file [[drive2:][path2]output-file] PARAMETERS ---------- [drive1:][path1]input-file Specifies the location and name of the input file. [drive2:][path2]output-file Specifies the location and name of the output file. NOTES ----- Restrictions on using EXE2BIN ----------------------------- The following restrictions apply when you use the EXE2BIN command: o The input file must be in valid .EXE format produced by the linker and must not be packed. o The resident, or actual, code and data portions of the file combined must be less than 64K. o There must be no STACK segment. Default values for parameters ----------------------------- EXE2BIN takes specific actions, depending upon the values you use for the input-file and output-file parameters. o The default filename extension for the filename you specify for input-file is .EXE. EXE2BIN converts the input .EXE file to an output file in .BIN format (a memory image of the program) and uses the location and filename you specify for [drive2:][path2]output-file to store that output file. o If you do not specify drive2 or path2, EXE2BIN writes the output file to the current drive and directory. o If you do not specify an output filename, EXE2BIN uses the input filename. o The default extension for the filename specified for the output-file parameter is .BIN. Types of conversion available with EXE2BIN ------------------------------------------ Two types of conversion are possible, depending upon whether the initial CS:IP (Code Segment:Instruction Pointer) is specified in the .EXE file. The following list presents the two types: o If the CS:IP is not specified in the .EXE file, EXE2BIN performs a pure binary conversion. If segment fixups are necessary (that is, if the program contains instructions requiring segment relocation), EXE2BIN prompts you for the fixup value. This value is the absolute segment at which the program is to be loaded. The resulting program is usable only when loaded at the absolute memory address specified by your program. The command interpreter cannot load the program. o If the CS:IP is specified as 0000:100H, the file runs as a .COM file with the instruction pointer set at 100H by the assembler statement ORG. Include the .COM extension in the output-file parameter. No segment fixups are allowed, because .COM files must be segment-relocatable; that is, they must assume the entry conditions explained in the Microsoft Macro Assembler manuals. The command interpreter can then load and run the program in the same way as it loads and runs the .COM programs supplied on your MS-DOS disk. FAKEMOUS--------------------------------------------------------------------- An IBM PS/2 mouse utility used with AccessDOS. See ADOS.TXT for information about using FAKEMOUS. GRAFTABL--------------------------------------------------------------------- Enables MS-DOS to display the extended characters of a specified code page in graphics mode. Most monitors can display extended characters (ASCII characters 128 through 255) without the GRAFTABL command. Use this command only if your monitor does not properly display these characters in graphics mode. SYNTAX ------ GRAFTABL [xxx] GRAFTABL /STATUS PARAMETERS ---------- xxx Specifies the code page for which you want MS-DOS to define the appearance of extended characters in graphics mode. The following list shows each valid code-page identification number and its country or language: 437 United States 850 Multilingual (Latin I) 852 Slavic (Latin II) 860 Portuguese 863 Canadian-French 865 Nordic SWITCH ------ /STATUS Identifies the code page selected for use by GRAFTABL. NOTES ----- GRAFTABL does not change the active code page --------------------------------------------- GRAFTABL affects only the appearance of extended characters of the code page you specify. To change the code page you are using, use the MODE or CHCP command. GRAFTABL exit codes ------------------- The following list shows each exit code and a brief description of its meaning: 0 Character set was loaded successfully; no previous code page was loaded. 1 Character set was already loaded and replaced by new table. 2 A file error occurred. 3 An incorrect parameter was specified; no action was taken. 4 An incorrect version of MS-DOS is in use; version 5.0 is required. You can use the ERRORLEVEL parameter on the IF command line in a batch program to process exit codes returned by GRAFTABL. For an example of a batch program that processes exit codes, see the BACKUP command. Effect on memory ---------------- The GRAFTABL command decreases the amount of available conventional memory by about 1K. EXAMPLE ------- To load the graphics character set for code page 437 (United States) into memory, type the following command: graftabl To load the graphics character set for code page 860 (Portuguese) into memory, type the following command: graftabl 860 ISO.CPI-------------------------------------------------------------------- Contains ISO-compliant versions of certain character sets (codepages). ISO-compliant fonts are special monospace (nonproportional) display fonts that, on some displays, are more readable than standard display fonts. (ISO fonts work only in 25-line mode; they do not support 43- or 50-line mode.) The ISO fonts included with MS-DOS 6.22 comply with Part 3 of the ISO 9241 Specification. The ISO.CPI file contains ISO-compliant versions of the following character sets (codepages): 437 United States 737 Greek II 850 Multilingual (Latin I) 852 Slavic/Eastern European (Latin II) 855 Cyrillic I 857 Turkish 860 Portuguese 861 Icelandic 863 Canadian-French 865 Nordic 866 Russian (Cyrillic II) 869 Greek I To install ISO fonts, you add or edit commands in your AUTOEXEC.BAT and CONFIG.SYS files. If your system is already set up to load a character set (code page) other than the standard United States character set, carry out Procedure 1. Otherwise, carry out Procedure 2. Procedure 1 -- If your system is already set up to load a character set other than the standard United States character set: 1. In your AUTOEXEC.BAT file, change the MODE CON CODEPAGE PREPARE command so that it specifies ISO.CPI instead of your usual codepage (.CPI) file. For example, suppose your current MODE command loads the Portugese character set (860) and looks like the following: MODE CON CODEPAGE PREPARE=((860) C:\DOS\EGA.CPI) To use the ISO-compliant version of the Portugese character set, you would change this command to specify ISO.CPI, as follows: MODE CON CODEPAGE PREPARE=((860) C:\DOS\ISO.CPI) Procedure 2 -- If you are using the standard US character set: 1. Add a DEVICE command for DISPLAY.SYS to your CONFIG.SYS file. For example, if you want to use the United States hardware character set (437), and if DISPLAY.SYS is in the C:\DOS directory, you would add the following command to your CONFIG.SYS file: DEVICE=C:\DOS\DISPLAY.SYS CON=(EGA,437,2) Note that DISPLAY.SYS uses about 12K of memory. 2. Add MODE commands to your AUTOEXEC.BAT file to load and select the proper character sets (code pages). For example, to use the ISO version of the United States character set (437), you would add the following commands to your AUTOEXEC.BAT files: MODE CON CODEPAGE PREPARE=((437) C:\DOS\ISO.CPI) MODE CON CODEPAGE SELECT=437 JOIN------------------------------------------------------------------------- Joins a disk drive to a directory on another disk drive. When you use the JOIN command, MS-DOS treats the directories and files on a disk drive as the contents of the other drive and path you specify. SYNTAX ------ JOIN [drive1: [drive2:]path] JOIN drive: /D PARAMETERS ---------- drive1: Specifies the floppy disk drive or logical drive that you want to join to a different drive and directory. drive2: Specifies the floppy disk drive or logical drive to which you want to join drive1. path Specifies the directory to which you want to join drive1. This directory must be empty before you join drive1 to it. It must also be a directory other than the root directory. drive: Specifies a floppy disk drive or logical drive that was previously specified in a JOIN command that you are now canceling. SWITCH ------ /D Cancels any previous JOIN commands for the drive you specify. Drive1 becomes invalid ---------------------- After you use the JOIN command, the drive1 you specify becomes invalid. If you then try to use it, MS-DOS displays the following message: Invalid drive specification Limitations on path ------------------- If the directory specified by path already exists before you use the JOIN command, you cannot use that directory for any other purpose while JOIN is in effect. If the directory is not empty, MS-DOS does not complete the join operation and displays the following message: Directory not empty If the directory does not exist, MS-DOS tries to create it. Limitations on using JOIN with other commands --------------------------------------------- The following commands do not work with drives formed by the JOIN command: ASSIGN BACKUP CHKDSK DISKCOMP DISKCOPY FDISK FORMAT LABEL MIRROR MIRROR RESTORE SYS Using JOIN with no parameters ----------------------------- You can use the JOIN command with no parameters to see a list of the currently joined drives. EXAMPLES -------- You can join any directory or subdirectory in a tree structure. For example, the following commands are valid: join d: c:sales join d: c:salesoctober To reverse either of the previous JOIN commands, type the drive1 value followed by the /D switch, as follows: join d: /d KBDBUF.SYS------------------------------------------------------------------- Specifies the number of keystrokes that can be held in your keyboard buffer. SYNTAX ------ DEVICE=KBDBUF.SYS nnnn PARAMETER --------- nnnn Specifies the number of keystrokes that can be held in the keyboard buffer. The acceptable range is 16 to 1024 NOTES ----- The KBDBUF.SYS driver should be loaded with the DEVICE command early in your CONFIG.SYS file. In addition, you cannot load the KBDBUF.SYS driver into the upper memory area. If you run MemMaker, choose Custom, and exclude the driver from the optimization process. EXAMPLE ------- If you want to specify a keyboard buffer that allows you to type ahead 25 keystrokes beyond what has been displayed on your screen, add the following command to your CONFIG.SYS file: DEVICE=KBDBUF.SYS 25 LCD.CPI---------------------------------------------------------------------- Code-page information file for IBM PC Convertible liquid crystal display. MIRROR----------------------------------------------------------------------- Starts the MIRROR program, which records information about one or more disks; the UNFORMAT and UNDELETE commands can use this information to restore a reformatted disk or to recover deleted files. SYNTAX ------ MIRROR [drive:[ ...]] [/1] [/Tdrive[-entries][ ...]] MIRROR [/u] MIRROR [/partn] To save information about the disk in the current drive, use the following syntax: MIRROR PARAMETER --------- drive: Specifies the drive containing the disk for which you want MIRROR to save information. This information is used by the UNFORMAT command to restore a disk. SWITCHES -------- /1 Retains only the latest information about the disk. If you do not specify this switch, MIRROR makes a backup copy of the existing disk-information file before recording the current information. /Tdrive[-entries] Loads a terminate-and-stay-resident deletion-tracking program that records information used by the UNDELETE command to recover deleted files. The required drive parameter specifies the drive containing the disk for which you want MIRROR to save information about deleted files. The optional entries parameter, which must be a value in the range 1 through 999, specifies the maximum number of entries in the deletion-tracking file (PCTRACKR.DEL). The default value for entries is dependent upon the type of disk being tracked. The following list shows each disk size, its default number of entries, and its corresponding file size: Disk size Entries File size 360K 25 5K 720K 50 9K 1.2 megabyte (MB) 75 14K 1.44 MB 75 14K 20 MB 101 18K 32 MB 202 36K 32 MB 303 55K CAUTION Do not use deletion tracking for any drive that has been redirected by using the JOIN or SUBST command. If you intend to use the ASSIGN command, you must do so before using MIRROR to install deletion tracking. /U Unloads the deletion-tracking program from memory, disabling deletion tracking. You cannot unload the tracking program if you loaded any other memory-resident programs after it. /PARTN Saves system information about how a hard disk is partitioned. The switch saves the information in a file on a floppy disk. The UNFORMAT command can use this file later to rebuild the partitions of a disk. Saving information about a disk ------------------------------- The MIRROR program saves a copy of the file allocation table and the root directory of the disk in the specified drive. The UNFORMAT command can use this information to rebuild a disk that has been unintentionally formatted, or it can use the information to recover files and subdirectories in the disk's root directory. Because UNFORMAT restores the disks system area to the condition it was in when you last used MIRROR, you should save this information frequently for every hard disk drive in your system. To ensure that the information is saved each time you turn on your computer, you may want to add a MIRROR command to your AUTOEXEC.BAT file. Removing the deletion-tracking program from memory -------------------------------------------------- You may need to remove the deletion-tracking program from memory. To do so, remove all memory-resident programs that you loaded after the deletion- tracking program, and then use the MIRROR command with the /U switch. Since this turns off deletion tracking, any files deleted after you remove the tracking program can be recovered only by using information in the directory. Saving information about hard-disk partitions --------------------------------------------- Every formatted hard disk drive has at least one partition. To identify a hard disk drive, MS-DOS uses information stored in a special disk partition table. If this table is corrupted, MS-DOS cannot locate the hard disk. You can save partition-table information for a hard disk by using the MIRROR command with the /PARTN switch. This switch creates a file named PARTNSAV.FIL, which the UNFORMAT command can use to rebuild the partition table. Because MS-DOS cannot gain access to your hard disk if the partition table is damaged, you should not put this file on the hard disk itself. Instead, you should put the file on a floppy disk (which you should keep in a safe place) or on another hard disk drive, such as a network server. EXAMPLES -------- To save a copy of the file allocation table and the root directory of drive C and to install deletion tracking for drives A and C, type the following command: mirror c: /ta /tc Suppose you want to save a copy of the file allocation table and the root directory of the disk in the current drive, and you want to install the deletion-tracking program for drive C. To do this and to set the maximum number of deletions to be tracked to 500, type the following command. (Note that since no drive parameter is specified, MIRROR saves the information about the disk in the current drive.) mirror /tc-500 To save a copy of the partition table for your hard disk drive, type the following command: mirror /partn The MIRROR program displays the following information: Disk Partition Table saver. The partition information from your hard drive(s) has been read. Next, the file PARTNSAV.FIL will be written to a floppy disk. Please insert a formatted diskette and enter the name of the diskette drive. What drive? A The default disk drive is drive A. If you want to use a different drive, type the drive letter (making sure it does not identify a partition on the hard disk drive), insert a formatted floppy disk in the drive (if necessary), and press ENTER. MSHERC---------------------------------------------------------------------- Installs support for Qbasic programs that use the Hercules graphics card. SYNTAX ------ MSHERC [/HALF] SWITCH ------ /HALF Use this switch when a color adapter is also installed. PRINTER.SYS------------------------------------------------------------------ Supports code-page switching for the parallel ports PRN, LPT1, LPT2, and LPT3. SYNTAX ------ DEVICE=[drive:][path]PRINTER.SYS LPTx=(type[,[hwcp][,n]]) PARAMETERS ---------- [drive:][path] Specifies the location of the PRINTER.SYS file. LPTx Specifies the number of the parallel port for which you want to support code-page switching. type Specifies the printer in use. The following list shows valid values for type and the printers represented by each value: 4201 IBM Proprinters II and III Model 4201 IBM Proprinters II and III XL Model 4202 4208 IBM Proprinter X24E Model 4207 IBM Proprinter XL24E Model 4208 5202 IBM Quietwriter III Model 5202 hwcp Specifies the code page your hardware supports. The following list shows the code pages that MS-DOS supports and the country or language for each: 437 United States 850 Multilingual (Latin I) 852 Slavic (Latin II) 860 Portuguese 863 Canadian-French 865 Nordic n Specifies the number of code pages your hardware can support in addition to the code page specified in the hwcp parameter. EXAMPLE ------- The following command loads the PRINTER.SYS device driver for use with the IBM Proprinter X24E Model 4207, loads code page 850, and prepares PRINTER.SYS to support two additional code pages: device=c:\dos\printer.sys lpt1:=(4208,850,2) PRINTFIX-------------------------------------------------------------------- Prevents MS-DOS from checking the status of your printer. Use this command only if you have had problems printing since you installed MS-DOS 6.22. SYNTAX ------ PRINTFIX SETUP------------------------------------------------------------------------ Installs the commands and files on the Supplemental disks to your hard drive. SYNTAX ------ SETUP [drive:][path] PARAMETERS ---------- [drive:][path] The drive and directory to which you want to install the Supplemental disk commands and files NOTES ----- You can run the Setup program from a floppy drive, your hard disk, or from a network drive--just make sure the Setup program is in the same drive and directory that contains your Supplemental disk files. If you install any of the Utilities from MS-DOS 5.0, such as the Backup program, you must restart your computer before using them. This is because the Setup program modifies your SETVER table, and you must restart your computer for the modifications to take effect. SPATCH.BAT------------------------------------------------------------------ If your computer uses a Windows 3.0 permanent swap file, run the SPATCH.BAT program to make the swap file compatible with MS-DOS 6.22. For more information, see the README.TXT file included with MS-DOS 6.22. NOTE: This file is included on the Supplemental disks because some versions of MS-DOS did not include the file. MZ .U$WVP%F0FFPFP$~rvvo t#+]P 6@P!?FDFFFPFPt$Ft   P P uP~ 6DP[FFPFP/P#F FvBF~|FPFPvF t=u{Pvv. F~s tV[ F~|6HPPPFP$ Ft, FFLuNv!v!;u;t0P 6Ppv7#v.#vFP6 6 v& uvFP6 6 v  tv"v"SF F F>Tu >LuFF;FvF9Fv~ r^F^FF8FtI>RtF*N*+P&"= t*^*P6^P6v6VPdF^? uF>Lt L9Fv]^? uF>Lt L9Fv@F9FuF9FrF9Fv'F9FuP FHP6FF9FuF9FrF9FvF9FuP FHP6FF~ s^F^FF8FtS>RtF*N*+P!= t4^*P6^P6F+FVRP6vP<FFFFF9Fs{F+FV~ vP 6P 9Fu9Fuv v ~u6P+ P^_]UK> tF *FFPFP/PZv+Pv F> tF FFPFP/P$~t PMv6 P'+]U3v v vvvI t Pv6P+]UuVF` ~tn'v4^ t^FvF^]U.^FPtPPvPMfPVP?dPvP3dPVP%F^FNtNPvPfPVPcPvPc떋^=tP86P}FF^F t<0|<9~<~/t~-u FHHFLPv6PPp  &L^Ȋ-0LFRT]U ( WV^?~P6-P_+FFLFQ^v?t?F~~"P:61PP ^v^vF^F9~@vFNu#>PuXPvP9XPVP++^_]U32 ^:u u+]U ?PvF t؊F!PvdF t؊F]UvPFvPF]UvFHFFNF~^?.u\PvF u/PvF^?.u~t9Fw+]U)V> t:F FPFPB~u"Pm6PPJ "PFP^F > u"P56TP "PF^FvFFF9F|^^]UyV+F> t < uF~u+ ~FPN PPɀ~ u!FP> t] PwG~u!Pe6XPB "P뭋^H;~FP9F F[^7^]UFFPFPF*]UF@FFFFFPFP]U"`v(vv0P'vP0P FPFv0PfvPXPFPFPP0P tP8v6]P FP.FPv.tPvv; t"P6v0PcPP0PFPP* P0PtFPa u{]Uv&FFHF^F<\t<:t u*Pv- t+]U.Pv  u7*PvF t#v=Mw^G.^G*^G]UGVvVFFvGFF.PvF uFF.PvF uFF*PvbF uF9FsSPFPF+FFF^vFFF9Fr^F+FFFFFPv)*PvF t/+FFF^vFFF9Fr^FFF@F9FsF+FFFFXF+FFFF9Fs^vF@F?PveF u.Pv{FNI;u+^]36 Ð0!<s3P˿k6+rׁĞ sZ3PL!ƱH6xz66gP6g P6g6g6&t6+۴J!6 +3 K3H666;P. ظ6vPP6> uXP6 Pvk5!%!> t6  &6, 36 sy6 ڻ6 &,>3&=t4 t 3u!,Ar ,Ar ªD!r €t@Ky U3UUVWUVWQ u   v> u a g tX Pu ~uFX uFL!_^]Ë  %!>t %!;s OO ;s EtUP>tP{]øY+r ;rQ3V3B22Ut P<^Ï0!<t)&,33uGG>ыѿ< t< t< to tkGN< t< t< t\ tX<"t$<\tB3A<\t<"tӋѨuN< t+ t'<"t<\tB3A<\t<"tۋѨu>GB+ģ6?CC6 u63< t< t< t| tx6?CCN< t< t< tb t^<"t'<\t3A<\t<"t\Ѱ\s"N< t. t*<"t<\t3A<\t<"t\ٰ\s"3&U&,333 t&>tFu@$F Pϋ3_I&6;uQVW_^Yt&?CC u&]UVWV ;t@t 3_^]UWv t 3I> u @!_]SQQP# [Y t[ËQr3]sPX2]s]2â u">r <"s < r<vטÊUWVvVFPvVFVWF^_]UWV VOFPv PF PWF^_]UVWvDth@udDt tWL $ $DǢ3ۊ\uLuuC t t"u$@tQ~WS>L \SV[[[Dt֋ T+BUJT QQtSMY|V;u3F3 tQPPS3_^]UVvPXYށâ t LG LGGDD^]UVWvD tFt H"uHǢD u8u3 tDDELSP[[ t3_^]UVWvǢt#3ۊ\@tVX~t 3ED_^]UWV+9~u +PeUvD$<u:u ށt(+DF ~PtL*Q9FtL DD^_]øPUWV+~F96BrDtV\@tG䐃~uF^_]^i}@UqVW3FFvvF t~}FJ, F6N*u " y02F F FF0u,9/Fu0FR3ҍX3ҾƆ: F3ҍpGFN@F ~tF =guFvvVWvFt F F Ft~uWguFuW&=-uGNWOY+N@F 5FF'FtFF0QVVFFtNFFtF@t3F@t } N؃ڃ~}Ff uF~N2v5Ft&=0tO&0AF@t1Ft F-F Ft F+FFt F FF++F}3WQF uȲ P~NXFt FuȲ0Y_PkXFtȲ { vvËvЭvF t‹ uØW^Ox ?3_QRSPZY=uNW3& _tFNW3 _tFW  u u30<9vFNY+G_^]U^;r *FtH~ t3ɋѸB!rKF uFVy(6VFѸB!FVy NVB!؋VNF B!rWU^;r A> u  t B3ɋ!rtnV3FFWVfN8 uJ=vFܺ=(s+ԋN< t ;t"j ;u F ^_^PSQ+Q^@!Yr F;wY[Xß~us @t ^?u F+Ff^_NN uBV@!s u@t ڀ?uY;s+3&UV^z9\s KK9\v\^]UVWNwzsr s3_^]ASw_ 3#[uBSw_;t6K3 T;sr#tH;s#rЭtD[GG[Lt +H+ƌQWGtct+IAAw tLs 30?&= t;ru"rHs3#R.Zs t+WGw JBw _YËGtJwN;r9Ws6BSQގƱuGt Ƌ+ÎËشJ!Y[rGtJWWw;w uw=t$OO_U׋ތ؎~3u~+FtI]U׋ދv؎3ы~ǨtI]U׌؎~3I]UVW F͋FF<%t <&tF FFDFDVFF~]MUu} U^]W~]MUuE r3Mu _^]UVv |96  [P+PPV2FV=u ;uFF/P+PPV FV;Fu;Vt+PvvVFV^]UVW~]MUu} !W~]MUuE r3u _^]UW~3AيFO8t3_]UW~3AOFG8t3_]U^ ,a<sAC u]UF3+]ÐUU3ȋ  t F3]U^>!UOV UNV/!! u V!r^ kMS Run-Time Library - Copyright (c) 1990, Microsoft CorpFiles compare OK No memory available Can't find/open file: Can't read file: Bad command line syntax Bad numeric argument : Compare error at OFFSET Compare error at LINE file1 = file2 = Name of first file to compare: Name of second file to compare: Option : Comparing and ...Files are different sizes Format for /n switch is /n=XXXXToo many command-line argumentsCompare more files (Y/N) ? Could not expand second filename so as to match firstCompares the contents of two files or sets of files. COMP [data1] [data2] [/D] [/A] [/L] [/N=number] [/C] data1 Specifies location and name(s) of first file(s) to compare. data2 Specifies location and name(s) of second files to compare. /D Displays differences in decimal format. This is the default setting. /A Displays differences in ASCII characters. /L Displays line numbers for differences. /N=number Compares only the first specified number of lines in each file. /C Disregards case of ASCII letters when comparing files. To compare sets of files, use wildcards in data1 and data2 parameters.10 Mismatches - ending compareIncorrect DOS versionUnexpected End of FileInvalid switch - File1 Only Has %d Lines File2 Only Has %d Lines %s %s %s%s%u %s%? %s%! %s%u %s%? %s%! %s%lX %s%? %s%! %s%lX %s%? %s%! $BTi'HR]cgJWl!e %%s %s%s%s%s%s %s %s %s %s%s %s%s %s %s %s %s %s %s %s %s %s%s *.*\*.**.*%s %s%s %s %s %s%s %s %s %s _C_FILE_INFO=k    xEEE50P 0PX000WP ``````ppxxxx(null)  ((((( H     j<>R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating-point support not loaded R6001 - null pointer assignment "\ERB OP4PˌÌH؎GH+s+ڋ+s+¬NF$6 -؎֋./@ʎں!L!Packed file is corrupt00 &-0!= s^J!5!%!>r14K!rM!P>t %!XL! !&,32u&Ix#u4 u&EEX&EEÀt..UPS;u9;u3F;r,؁>CVu">DEu>BUu>Gu N[X][X]( Error executing CV.EXE $Incorrect Version $@echo off rem Batch file to create a bootable, compressed floppy. set _AM=XXX if not "%_AM%" == "XXX" goto env_error set DCMD=12345678 if not "%DCMD%" == "12345678" goto env_error if "%1" == "/?" goto usage if not "%1" == "" goto start :usage echo. echo Batch file to create a bootable, compressed floppy. For use only with echo high density (1.44 and 1.2 megabyte) diskettes. Lower density diskettes echo when compressed do not have adequate uncompressed space for system files echo required for booting. echo. echo Usage: DRVBOOT drive: echo. goto end :start echo. echo This batch file will create a bootable compressed diskette on either echo a 1.44 megabyte 3.5 inch or 1.2 megabyte 5.25 inch floppy. Lower density echo diskettes when compressed do not have adequate uncompressed space for system echo files and should not be used. choice /c:yn "Do you wish to continue " if errorlevel 2 goto end for %%a in (A: a: B: b:) do if '%%a=='%1 goto diskette echo You have selected drive %1 choice /c:yn "Is this correct " if errorlevel 2 goto end :diskette am drvspace > NUL if errorlevel 2 goto version_error if errorlevel 1 SET DCMD=DRVSPACE am dblspace > NUL if errorlevel 1 SET DCMD=DBLSPACE if "%DCMD%" == "12345678" goto drvsp_error SET _AM=OFF am %1 > NUL if errorlevel 1 SET _AM=ON am %1 OFF > NUL if errorlevel 1 goto am_error choice /c:ny "Is diskette already compressed " if errorlevel 2 goto nocompress choice /c:yn "Do you wish to format the diskette first " if errorlevel 2 goto noformat echo. > c:\drvboot.tmp echo n >> c:\drvboot.tmp echo Formatting drive %1... if not exist c:\drvboot.tmp goto no_temp format %1 /v:drvboot /u < c:\drvboot.tmp > NUL del c:\drvboot.tmp > nul goto noformat :no_temp format %1 /u /q if errorlevel 1 goto format_error :noformat echo Compressing drive %1... %DCMD% /compress %1 :nocompress %DCMD% /mount %1 > NUL %DCMD% /size /reserve=.2 %1 copy c:\command.com %1 :mk_bootable %DCMD% /unmount %1 > NUL :system sys %1 rem Create ini file on diskette deltree /y %1\%DCMD%.ini > nul echo MaxRemovableDrives=2 > %1\%DCMD%.ini echo FirstDrive=E >> %1\%DCMD%.ini echo LastDrive=I >> %1\%DCMD%.ini echo MaxFileFragments=117 >> %1\%DCMD%.ini echo ActivateDrive=I,A0 >> %1\%DCMD%.ini attrib %1\%DCMD%.ini +s +h +r if "%_AM%"=="ON" am %1 on choice /c:yn "Mount new compressed drive now " if errorlevel 2 goto end %DCMD% /mount %1 goto end :format_error echo. echo An error occured while attemting to format the diskette in drive %1. echo Please retry with a new diskette. echo. goto end :env_error echo. echo ERROR: Not enough environment space to run DRVBOOT.BAT! echo. goto end :am_error echo. echo An error occured while disabling DriveSpace automount. echo. goto end :drvsp_error echo. echo You need to have DriveSpace installed on your system echo to be able to make a compressed bootable floppy diskette. echo. goto end :version_error echo. echo You need to have MS-DOS 6.20 or greater installed on your system echo to be able to make a compressed bootable floppy diskette. echo. :end SET _AM= SET DCMD= KEYB `RHLLHbDVxUSLbxgRHRLHRDV  R XXgRT\_abWRT\a_bWP @` `00 &0 @ 0 @ @@ @ 0 @@ @000p &0 @0 @ @@ @0 @@ @000pV @&0 @ 0 @ @@ @ 0 @@ @ 000p + &0 @0 @ @@ @0 @@ @000p0 @@#0 @$00 @ @%0@@@ @0 @%0@@@ @000#@/$&2 !  5  40'  ,!"##$% &.'%( ++, - .-/301123/4"5(VV$4@/            (' &!%"$##$"%!& ' (++,5-4.-/30 211203/4.5,VV+" / [ ]56.;=78(-,9-0/,5'+ " / [ ]56.;=78(-,9-0/,5'+@" / [ ]56.;=78(-,9-0/,5'+" ? { }%^>:+&*(_,(-)/<5"+@" ? { }%^>:+&*(_,(-)/<5"+ " ? { }%^>:+&*(_,(-)/<5"A8jlm f pqorsuyb z!a"e#h$t%d&c'k.x0i1n2w3v4gA8JLM F PQORSUYB Z!A"E#H$T%D&C'K.X0I1N2W3V4G)R)|P @` `00 &0 @ 0 @ @@ @ 0 @@ @000p &0 @0 @ @@ @0 @@ @000pV @&0 @ 0 @ @@ @ 0 @@ @ 000p + &0 @0 @ @@ @0 @@ @000p0 @@#0 @$00 @ @%0@@@ @0 @%0@@@ @000#@/5!2& $    '04  % .! "##$%&,' (++,(--."//0112334 5 VV$4@/      !!""##$$%%&&''((++,,--..//00112 2334455VV5,[]/ 4 3 2 1;.65=-'8(7+\,'3,40595 ,[]/ 4 3 2 1;.65=-'8(7+\,'3,40595@,[]/ 4 3 2 1;.65=-'8(7+\,'3,40595,{}? $ # @ !:>^%+_'*(&,"+|3<4)5(5@,{}? $ # @ !:>^%+_'*(&,"+|3<4)5(5 ,{}? $ # @ !:>^%+_'*(&,"+|3<4)5(?6pfml jqbyursok c!d"t#h$e%a&z.g/v0w1n2i?6PFML JQBYURSOK C!D"T#H$E%A&Z.G/V0W1N2I)R)|P @` `00 &0 @ 0 @ @@ @ 0 @@ @000p &0 @0 @ @@ @0 @@ @000pV @&0 @ 0 @ @@ @ 0 @@ @ 000p + &0 @0 @ @@ @0 @@ @000p0 @@#0 @$00 @ @%0@@@ @0 @%0@@@ @000y#p@$  (34!".&5  !"# $#%&1'( ++,'-.$/%0-102234/5,y$4p@$      !!" "##$$%%&&''((++,,--. ./ /00112 2334455 [ ]',./=(-,; { }"<>?+(_,:A8pyfgcrlao e!u"i#d$h%t&n's-q.j/k0x1b2m3w4v5zA8PYFGCRLAO E!U"I#D$H%T&N'S-Q.J/K0X1B2M3W4V5ZMS DOS Version 5.00 (C)Copyright 1981-1991 Microsoft Corp Licensed Material - Property of Microsoft All rights reserved DVORAK KEYBOARD LAYOUTS FOR MS-DOS ---------------------------------- Microsoft distributes Dvorak keyboard layouts that make the most frequently typed characters on a keyboard more accessible to people who have difficulty using the standard "QWERTY" layout. There are three Dvorak layouts: one for two-handed users, one for people who type only with their left hand, and one for people who type only with their right hand. The left or right hand keyboard layouts can also be used by people who type with a wand. The MS-DOS Supplemental Disk includes the DVORAK.SYS file, which provides three new keyboard layouts for Microsoft MS-DOS. This document explains how to install these layouts and restore your original layout. It also provides illustrations of the layouts. WHAT IS A KEYBOARD LAYOUT? -------------------------- A keyboard layout is a map or a definition of how keys are laid out on your keyboard. The keyboard layout you use is determined by software in your computer. The letters on your keys indicate the standard layout for your keyboard. There are many different keyboard layouts in use throughout the world. The one you ordinarily use depends on the country you are in or the language you use. DVORAK KEYBOARD LAYOUTS ----------------------- Dvorak keyboard layouts are based on designs created by August Dvorak, a professor at the University of Washington during the 1930s and 1940s. Dr. Dvorak studied the way people type standard English, and determined the most common letter combinations. He then designed new keyboard layouts to speed up typing and reduce fatigue. These layouts, now called Dvorak or simplified keyboards, were initially developed for two-handed typists. Following World War II, Dvorak layouts were developed for typists who use the right or left hand alone. INSTALLING A DVORAK KEYBOARD LAYOUT FOR MS-DOS ---------------------------------------------- The MS-DOS Supplemental Disk provides the DVORAK.SYS file. This file supports the Dvorak keyboard layouts for two-handed and single-handed typists who use MS-DOS 6.22. To install a United States (U.S.) Dvorak keyboard layout for MS-DOS: 1. Run the Setup program included with the Supplemental disk files. For example, if your Supplemental disk files are on a floppy disk for drive A, insert the disk in drive A, and change to that drive by typing the following at the command prompt: A: To run the Setup program, you need to specify the drive and directory to which you want to install the files. For example, if you want to install the files on drive C in a directory called SUPP, type the following at the command prompt: SETUP C:\SUPP Follow the instructions on your screen. 2. Copy the DVORAK.SYS file to the directory that contains your MS-DOS files. For example, if the file is in C:\SUPP and your MS-DOS files are contained in C:\DOS, type the following at the command prompt: COPY C:\SUPP\DVORAK.SYS C:\DOS\DVORAK.SYS 3. To begin using one of the new keyboard layouts, type the appropriate command (as shown in the table below) at the MS-DOS command prompt and press ENTER. Keyboard Layout Command --------------------------------------------------------- Two-handed Dvorak KEYB DV,,C:\DOS\DVORAK.SYS Right-handed Dvorak KEYB RH,,C:\DOS\DVORAK.SYS Left-handed Dvorak KEYB LH,,C:\DOS\DVORAK.SYS To load one of these keyboard layouts automatically when your computer starts, include the appropriate KEYB command in your AUTOEXEC.BAT file. The KEYB command should be placed after a PATH command that includes your MS-DOS directory. If your AUTOEXEC.BAT file includes the win or dosshell command, make sure the KEYB command comes before the WIN or DOSSHELL command. Once you have loaded one of the Dvorak layouts, you can easily switch between the Dvorak layout and the U.S. standard layout. * To switch back to the U.S. standard layout, press CTRL+ALT+F1. * To switch to the Dvorak layout, press CTRL+ALT+F2. * To disable the United States (U.S.) Dvorak keyboard layout for MS-DOS * To disable the United States (U.S.) Dvorak keyboard layout for MS-DOS, delete the line with the KEYB command from your AUTOEXEC.BAT file. LEARNING TO USE THE DVORAK KEYBOARD LAYOUTS ------------------------------------------- The illustrations on the next page can help you learn a new keyboard layout. You may want to take a class or purchase stickers to put on your keys so you see the new layout as you type. For information about classes and stickers, contact: KEYTIME 4516 NE 54th St. Seattle, WA 98105-2933 (206) 324-7219 (voice and fax) DVORAK KEYBOARD LAYOUTS FOR WINDOWS ----------------------------------- Microsoft also provides Dvorak keyboard layouts for Microsoft Windows, Microsoft Windows for Workgroups and Microsoft Windows NT. Windows includes the Dvorak keyboard layout for two-handed typists. The Dvorak layouts for single-handed typists are available on the GA0650.ZIP file. If you have a modem, you can download the GA0650.ZIP file from network services, including the following: * CompuServe * GEnie * Microsoft OnLine * Microsoft Download Service (MSDL), which you can reach in the United States by calling (206) 936-6735 or in Canada by calling (416) 507-3022. Use a baud rate of 1200, 2400, or 9600, no parity bit, 8 data bits, and 1 stop bit. The file containing the layouts on MSDL is named GA0650.EXE. * Various user-group bulletin boards (such as the bulletin-board services on the Association of PC User Groups network) Users within the United States who do not have a modem can order application note GA0650 by calling Microsoft Product Support Services at (206) 637-7098 or (206) 635-4948 (text telephone). NOTE: If you use MS-DOS-based applications with Windows, you must install the Dvorak layouts for MS-DOS to get Dvorak support for those applications. STANDARD QWERTY KEYBOARD LAYOUT -------------------------------------------- ~ ! @ # $ % ^ & * ( ) _ + ` 1 2 3 4 5 6 7 8 9 0 - = bks -------------------------------------------- { } | tb Q W E R T Y U I O P [ ] \ -------------------------------------------- cps : " lck A S D F G H J K L ; ' entr -------------------------------------------- < > ? shft Z X C V B N M , . / shft -------------------------------------------- TWO-HANDED DVORAK KEYBOARD LAYOUT -------------------------------------------- ~ ! @ # $ % ^ & * ( ) { } ` 1 2 3 4 5 6 7 8 9 0 [ ] bks -------------------------------------------- " < > ? + tb ' , . P Y F G C R L / = \ -------------------------------------------- cps _ lck A O E U I D H T N S - entr -------------------------------------------- : shft ; Q J K X B M W V Z shft -------------------------------------------- RIGHT SINGLE-HANDED DVORAK KEYBOARD LAYOUT -------------------------------------------- ~ ! @ # $ ? { } ` 1 2 3 4 J L M F P / [ ] bks -------------------------------------------- % ^ > : + | tb 5 6 Q . O R S U Y B ; = \ -------------------------------------------- cps & * _ lck 7 8 Z A E H T D C K - entr -------------------------------------------- ( ) < " shft 9 0 X , I N W V G ' shft -------------------------------------------- LEFT SINGLE-HANDED DVORAD KEYBOARD LAYOUT -------------------------------------------- ~ { } ? $ # @ ! ` [ ] / P F M L J 4 3 2 1 bks -------------------------------------------- : > ^ % + | tb ; Q B Y U R S O . 6 5 = \ -------------------------------------------- cps _ * & lck - K C D T H E A Z 8 7 entr -------------------------------------------- " < ) ( shft ' X G V W N I , 0 9 shft -------------------------------------------- MZ 9RZ ;ACDEILMPQRSTW# S7 (g )z  a  .5PO4HsL!X tz 7!/u./->7u ,L!=ui=uK=u=u=PQ44X.ur &40=tq=tr=uCQ4!rNtHL=uAr!ش>!AQ4!r&/&/8=u  {u o&>/u =Z>/tQ44Q4OY.tG>W5.󤻂>6u6 rU55+ρvI26/u62ȋс626>22L3N4 26222/u O4O4#%E!2 !22222.26223>>2.2k<,ursN 2t;2vZ u.<.t=<#tF<+td<-to<0r<9ws,0Ьހt tÀ>.tO2À>.tB W62+uB_À>.t y2À>.tj2+wJGG>2u2-@//>2u5 >2r52 ۸t2 u 22<u>22 u22#u2C>22;2v2;2v ;2w2+2222 t &2 t 22>2+;s 2>262+A>2>22;2w 2222>2262>5t0>2622+&>22;2v 2+2K220>22Ë2+AG>22.2=u%0>2t5 NY53< t< t < t<;tN62r5#%!2 u24ڋ2e22+2Q5?!Z;w 2 2N<uI62F2+AO>25>!Ã>2v#%!2 u2ڋ27L3 !N3<tBLArt;r. Cź6!Ȏ؎мN*Ë.2>2F2+O>2#%E!2212>2t>2uO4K/tȋ2U5@!4>!U5>!>W5.Q44V!>W5.4Q4V!L2!PSQRV D2!rDH2D2 Ȣ22P^ZY[XVlQ4!^Vl4!^VlY5!^PQWV57Q4>7u.<tA4^_YXQW.5+ϋ_Yú0L2!>2t/u2>2u;2rË2+u,245?!;tPй?!=Xu/@Q"u/3ҋ2 u;2v >2+ϻ8Et$>/u E YQ O2GGJY+χ>2 tRS4ڹB![Zr;u/øú 0Q4>4/uO4uN>2v2 u2>2+v6v3һ6C >/uW_Ϻ6+tU5@!r#;u6>22+AO>22ËU5>!;L! >2vK55P4Lu݋62+22сw{2RZ262+I5YV;/2N^62ʃA2U0u*>2O;/22I2AJ)2s2B[tvJøW>2v55P4u4262>22 u>2>222Qtt̸22K2>2Ã>2wS2 u222 u222RuSW2CF_2>22+r AO>2>2w322 u 2tC;2vË2 uP2-XB;2v2;tw}RSK>22[_+7>2vX2 u 2 wu>2G+w P2XÃ>2r22 u2C\262t;62t^262i L3!M3֋2N3'M3>22>2;uw t 6;t2+ϰ B;uúa066*;2t6 ÿ2+tP22XQRZY56s< s< t< t < t ^ @ī< ۀ} t } t )RU0Z C@>2uKÿ.5 <u523< t>P4tN62;/>P4u < uN6222 u>5u2Cy>2>222+2 ;2sÉ2.2>2 uыߋ2I.:ʋu2ω>2>2+ϰ 2BtJ2223ɬ<u<t< tA tW+M_À>5tMÊM;t.VWQ2+;2s2+;wAY_^ú0MN3B< M3tB< uOÀ>.t;5r2 WO=_uI2WQ tuAY+Ϟ_uWO6t= t E AE A_RZøȎ؎м/>W5.A4!s.=u)U5>!>W5.4A!>W5.m0K>W5.QWVL2!uQWPXOA_YI^LV^_YP%=@Xu%S< t< t< t[2t8>2u=0=t=tËU5>!4A!L2!2t10PX< t=t=u=RWPSQ5+ 2t2Y[X_ZP22:2w2*22Jt >2w>2u2222XRPI0PMX=t=t 22XZRQSдe#![YZ $AMS DOS Version 6 (C)Copyright 1981-1994 Microsoft Corp Licensed Material - Property of Microsoft All rights reserved PSRW3Ɏ3./$>"./,>*./<>:./ >m >8>6{ 0>../D>B] $bd } >F >J >N.AQPrY_Z[X PVc!r6VX^XøD3!D!øD3!D!ô0!=u=sPSQUWRZ6_ t# u/rZ_ t_Zr]Y[PSRZu,wsY!2t ;trZ[Xu&!s&U! t &!GIuWPSٰu+K[X_3 tO@׃u(!P&ZXs@B!&=uUQY!s ;t;u]ø'Àtƀu >]W>V t&=t&:r&:EwGG_Ï`3ۓ6d6d v70RA u t9u | ,u6mA"u | ,u6mA u | ,u6mA3336`3 t!%&8%u &8et:u&SsGGBIuV t3M>bu+D0&:Eu<0u t4>_uBBIIOOW+ _YsQʀ|t tIIGG^ u^ u3 tVUWQ3Ƀ>bu-Du|tD t DtD u|z rY_]^ >burb3ҡbd XfC@uu fCCVS33ɀuF%tļ*=r ='wļ6ļÃuu b3 tTr u럜u)RUQWP/Bt=u PbBXB3ɀt&M .85u.Ms- tt&;.;u Itr u&}r2& G\3ۀ|uLJf -CCƇf C]33҈\D :v*DtD fC@u|u|t 8Ls*LъL t$Du Dt&GXfC@uAuDu tD fC@u#uDuDt t`uUQW3ۍ>fZr_Y]D0u&PA@s&EP & tGA+U]33d3D u$&D u tC$d Dud TDu&&D uĀtCd Dud (&&UD uƀtCd Dud D@t)PR82f!sm,D ZXD ,LjD  t3Ҳ-RUQRv$ ! t=s Ȋ!rZY ,@S,l-.4/01U23,Incorrect DOS version %1 already installed %1 bytes available on disk Starts Edlin, a line-oriented text editor. EDLIN [drive:][path]filename [/B] /B Ignores end-of-file (CTRL+Z) characters. JEdit line line# Append [#lines]A wCopy [startline],[endline],toline[,times]C Delete- [startline][,endline]D DEnd (save file)( E Insert [line]I oList [startline][,endline]L Move [startline],[endline],tolineM SPage$ [startline][,endline]P Quit (throw away changes) Q Replace? [startline][,endline][?]R[oldtext][CTRL+Znewtext] Search9 [startline][,endline][?]Stext dTransfer( [toline]T[drive:][path]filename Write& [#lines]W >j 42K e u  *Invalid drive or file name File name must be specified File is READ-ONLY File Creation Error Too many files open Read error in: %1 $Cannot edit .BAK file--rename file No room in directory for file Disk full. Edits lost. Entry error New file Not found >2S 47CSb !O.K.? Line too long End of input file Abort edit (Y/N)? &Must specify destination line number *Not enough room to merge the entire file   Continue (Y/N)?Unable to print message %1%1:%2#Cannot merge - code page mismatch >*Extended Error %1> Parse Error %1>SQRWVR^\LT | tt"^_ZY[søs'([]|<>+=;".P . .& .6 .C .E .X .I .![].!|<.!>+.!=;QRWVA u.!^V.!3ۀ<"u u0== t= =t = =t== u=FVQFY^N.!IFI^ u_ZY sS&&:s[#.6R SWUZ .Q uC r< t78 u.Q u &.Q AtN.<=u.Q C sŬ.CN.6G ..V &6Z .I &&eP.X &EX<u &U&MZ<u&UP<t<t<u&U><u.R @&E&]+&u&MP&Gt &GtAX&Gt_. !P& uPSRW.E [_Z[XGt.E V.>E u0t.E .>E ut.E .>E ut.E F.>E un@t.E .>E uWt.E V.>E u=t.E .>E u&t.E +.>E u t .E .> !u.>E u.E XPV. t<:u .|u. sFF^XVR.r t .FFZ^!t> !.8tPQRe»!ZYX.].ECC,&_[P.Q .&Q .<+t <-u.Q FXPQRV33S. tBr92r,ڋrrr ՃrF[[.Q t ҃&w&<uF&<t`F.Q u&;Lr6w&;Tr.&;Lw(r:&;Tw 2&;L|&;T|&;L |&;T u.E =&$6 @&F&;Lu&;Ttu.E  .E ^ZYXÜ.Q uÝp<0r<9w,0PSRW&& uL<u?G& @&@&GG&-2su.E &e& .E _Z[XPURV.r<.Q t <=u&~uq.Q t<:u &~u\F\&:Fu tRFE&:FuEF.E&:Fu:FE.Q @t&G t&~t"&t<:u &~u <u&~:t.6T ^Z]XPQRVSV^.!.!.!r.! trn.! t ra.! uY. t".! uG.! u=.!u.!.! u .! udsl[^[^.E ZYXÍ6 . tu<:t0<.t, <-t&R . t_u$. !^._?^._&u2.E )XV. t-t lsGFGF.K .G.>G ^_Xt PXSQ! .:tCAY[PR. t8#r,.|:t&t.|u N u'PQRWU3޸c! ]_ZYXt).6L .N .6L .N <t:r:DwFF[^WV733ҿ65=uV&<u $^^_PWV57&67<t^_X&>.77u&>7u&7&>.7)7u&7.BAK.$$$-  Q4 5 6 6 4 ;  // //D d6677 7 747$ ,747/B,747/?/BBb|RB OP4PˌÌH؎GH+s+ڋ+s+¬NF$6 -؎֋./@ʎں!L!Packed file is corrupt6L/////MZ N5PSRW3Ɏ3./ >./>./"> ./>>>>./*>(? $DF >,>0.AQPrY_Z[X PVc!r68:^XøD3!D!øD3!D!ô0!=u=sPSQUWR<6A t u&rZ__Zr]Y[XPSR<u,wsY!2t ;trZ[Xu&!s&U! t &!GIuWPSٰu+K[X_3 tO@׃u(!P&ZXs@B!&=uUQY!s ;t;u]ø'Àtƀu >?W>8 t&=t&:r&:EwGG_ÏB3ۓ6F6F v70RA u t9u | ,u6OA"u | ,u6OA u | ,u6OA3336B3 t!%&8%u &8et:u&SsGGBIuV t3M>Du+D0&:Eu<0u t4>AuBBIIOOW+ _YseQʀ|t tIIGG^ u^ u3 tDuDu|Zz rY_]^ >Dur.D3ҡDF XHC@uu HCCVS33ɀu,%tļ=r ='wļļÃuu D3 tTr u럜u)RUQWP/(t=u PD(X(3ɀt&M .85u.Ms- tt&;.;u Itr u&}r2& G>3ۀ|uLJH -CCƇH C]33҈>D :v*DtD HC@u|u|t 8Ls*LъL t$Du Dt&GXHC@uAuDu tD HC@u#uDuDt tBuUQW3ۍ>Htr_Y]D0u&PAZs&EP & tGA+U0B,U-./Incorrect DOS version Insufficient memory Cannot find messages 6Converts .EXE (executable) files to binary format. DEXE2BIN [drive1:][path1]input-file [[drive2:][path2]output-file] 9 input-file Specifies the .EXE file to be converted. 9 output-file Specifies the binary file to be created. >"[ ,CPb Access denied File cannot be converted File not found File creation error $Fix-ups needed - base segment (hex):Invalid parameter Insufficient disk space File name must be specified > +6FQ\t~File not foundPath not foundToo many open filesAccess denied Invalid handleInvalid drive specification No more filesExtended Error %1>tParse Error %1>/ .3P~>~t2L! >~tys~.33&6=ud&>u &~PSVWu ؾ؋D؋ؾ؋D؋_^[X=t=t(P&&&XڣRR&~ú&>/t&([]|<>+=;".t . .& .6 .g .i .| .m .9 [].; |<.= >+.? =;QRWVA u.B ^V.B 3ۀ<"u u0== t= =t = =t== u=FVQFY^N.B IFI^ u_ZY sS&&:s[#.6v SWU~ .u uC r< t78 u.u u &.u AtN.<=u.u C sŬ.CN.6k ..z &6~ .m &&eP.| &EX<u &U&MZ<u&UP<t<t<u&U><u.v @&E&]+&u&MP&Gt &GtAX&Gt_.D P& uPSRW.i [_Z[XGt.i V.>i u0t.i .>i ut.i .>i ut.i F.>i un@t.i .>i uWt.i V.>i u=t.i .>i u&t.i +.>i u t .i .>D u.>i u.i XPV. t<:u .|u. sFF^XVR.r t .FFZ^4 t>/ .8tPQRe»!ZYX.].ECC,&_[P.u .&u .<+t <-u.u FXPQRV33S. tBr92r,ڋrrr ՃrF[[.u t ҃&w&<uF&<t`F.u u&;Lr6w&;Tr.&;Lw(r:&;Tw 2&;L|&;T|&;L |&;T u.i =&$6 @&F&;Lu&;Ttu.i  .i ^ZYXÜ.u uÝp<0r<9w,0PSRW&& uL<u?G& @&@&GG&-2su.i &e& .i _Z[XPURV.r<.u t <=u&~uq.u t<:u &~u\F\&:Fu tRFE&:FuEF.E&:Fu:FE.u @t&G t&~t"&t<:u &~u <u&~:t.6x ^Z]XPQRVSV^.' .) .+ r.' trn.) t ra.+ uY. t".' uG.) u=.+ u.' .) u .+ udsl[^[^.i ZYXÍ6 . tu<:t0<.t, <-t&v . t_u$.D ^._?^._&u2.i )XV. t-t lsGFGF.o .G.>k ^_Xt PXSQ9 .:tCAY[PR. t8#r,.|:t&t.|u r u'PQRWU3޸c! ]_ZYXt).6p .r .6p .r <t:r:DwFF[^ؾË<t-sr%<\u 6<:u 6<.uѬξ=tO26.<t/*r'<\u <u0<:u <u0<.u1ˬȀ>0t".>.6<tr<.t窱>2u;>0u45!N!r!Ju\>.O.01땀>t 1>1t !=!r"S?![r>MZu١=s_%RQPS3ɰB!rN[XYZ+Ёs0⡾ tЉ;w    $pHt] t)=uRQPS3ɰB!r[XYZ)>u3ۃ>tAF !|t,0r< r $_,< r<s ߀| u݋?W>3S![_s>tFRQPS3ɰB!r[XYZ?S![sn>Î&-uش<3!rO3@W>33S![_r2;u>S3!r#[ô>S3!r[A!r j&&&Y!ڣ^^À=tG u< t tN< u<u< t< t< t<,t<;t<+t< t<=P<tXVP&>Ptc!&&6&X&6&6<t:r:DwX^PSQRVWڎ‹]uMuU } _^ZY[X1 $AMS DOS Version 6 (C)Copyright 1981-1994 Microsoft Corp Licensed Material - Property of Microsoft All rights reserved u2.4.EXE.BIN QO&      ,;/?P hjRB OP4PˌÌH؎GH+s+ڋ+s+¬NF$6 -؎֋./@ʎں!L!Packed file is corrupt Z 9 UK>t?u:<u'<u!<u<u<u <u<u ...$PS/2 mouse port not supported on this computer $Pointing device or this program previously installed $SPtQ&gtG&gt>@&u:&5!Ȏغ%!X[b1!T ! !L! ' Q B a s i c G o r i l l a s ' ' Copyright (C) Microsoft Corporation 1990 ' ' Your mission is to hit your opponent with the exploding banana ' by varying the angle and power of your throw, taking into account ' wind speed, gravity, and the city skyline. ' ' Speed of this game is determined by the constant SPEEDCONST. If the ' program is too slow or too fast adjust the "CONST SPEEDCONST = 500" line ' below. The larger the number the faster the game will go. ' ' To run this game, press Shift+F5. ' ' To exit QBasic, press Alt, F, X. ' ' To get help on a BASIC keyword, move the cursor to the keyword and press ' F1 or click the right mouse button. ' 'Set default data type to integer for faster game play DEFINT A-Z 'Sub Declarations DECLARE SUB DoSun (Mouth) DECLARE SUB SetScreen () DECLARE SUB EndGame () DECLARE SUB Center (Row, Text$) DECLARE SUB Intro () DECLARE SUB SparklePause () DECLARE SUB GetInputs (Player1$, Player2$, NumGames) DECLARE SUB PlayGame (Player1$, Player2$, NumGames) DECLARE SUB DoExplosion (x#, y#) DECLARE SUB MakeCityScape (BCoor() AS ANY) DECLARE SUB PlaceGorillas (BCoor() AS ANY) DECLARE SUB UpdateScores (Record(), PlayerNum, Results) DECLARE SUB DrawGorilla (x, y, arms) DECLARE SUB GorillaIntro (Player1$, Player2$) DECLARE SUB Rest (t#) DECLARE SUB VictoryDance (Player) DECLARE SUB ClearGorillas () DECLARE SUB DrawBan (xc#, yc#, r, bc) DECLARE FUNCTION Scl (n!) DECLARE FUNCTION GetNum# (Row, Col) DECLARE FUNCTION DoShot (PlayerNum, x, y) DECLARE FUNCTION ExplodeGorilla (x#, y#) DECLARE FUNCTION Getn# (Row, Col) DECLARE FUNCTION PlotShot (StartX, StartY, Angle#, Velocity, PlayerNum) DECLARE FUNCTION CalcDelay! () 'Make all arrays Dynamic '$DYNAMIC 'User-Defined TYPEs TYPE XYPoint XCoor AS INTEGER YCoor AS INTEGER END TYPE 'Constants CONST SPEEDCONST = 500 CONST TRUE = -1 CONST FALSE = NOT TRUE CONST HITSELF = 1 CONST BACKATTR = 0 CONST OBJECTCOLOR = 1 CONST WINDOWCOLOR = 14 CONST SUNATTR = 3 CONST SUNHAPPY = FALSE CONST SUNSHOCK = TRUE CONST RIGHTUP = 1 CONST LEFTUP = 2 CONST ARMSDOWN = 3 'Global Variables DIM SHARED GorillaX(1 TO 2) 'Location of the two gorillas DIM SHARED GorillaY(1 TO 2) DIM SHARED LastBuilding DIM SHARED pi# DIM SHARED LBan&(x), RBan&(x), UBan&(x), DBan&(x) 'Graphical picture of banana DIM SHARED GorD&(120) 'Graphical picture of Gorilla arms down DIM SHARED GorL&(120) 'Gorilla left arm raised DIM SHARED GorR&(120) 'Gorilla right arm raised DIM SHARED gravity# DIM SHARED Wind 'Screen Mode Variables DIM SHARED ScrHeight DIM SHARED ScrWidth DIM SHARED Mode DIM SHARED MaxCol 'Screen Color Variables DIM SHARED ExplosionColor DIM SHARED SunColor DIM SHARED BackColor DIM SHARED SunHit DIM SHARED SunHt DIM SHARED GHeight DIM SHARED MachSpeed AS SINGLE DEF FnRan (x) = INT(RND(1) * x) + 1 DEF SEG = 0 ' Set NumLock to ON KeyFlags = PEEK(1047) IF (KeyFlags AND 32) = 0 THEN POKE 1047, KeyFlags OR 32 END IF DEF SEG GOSUB InitVars Intro GetInputs Name1$, Name2$, NumGames GorillaIntro Name1$, Name2$ PlayGame Name1$, Name2$, NumGames DEF SEG = 0 ' Restore NumLock state POKE 1047, KeyFlags DEF SEG END CGABanana: 'BananaLeft DATA 327686, -252645316, 60 'BananaDown DATA 196618, -1057030081, 49344 'BananaUp DATA 196618, -1056980800, 63 'BananaRight DATA 327686, 1010580720, 240 EGABanana: 'BananaLeft DATA 458758,202116096,471604224,943208448,943208448,943208448,471604224,202116096,0 'BananaDown DATA 262153, -2134835200, -2134802239, -2130771968, -2130738945,8323072, 8323199, 4063232, 4063294 'BananaUp DATA 262153, 4063232, 4063294, 8323072, 8323199, -2130771968, -2130738945, -2134835200,-2134802239 'BananaRight DATA 458758, -1061109760, -522133504, 1886416896, 1886416896, 1886416896,-522133504,-1061109760,0 InitVars: pi# = 4 * ATN(1#) 'This is a clever way to pick the best graphics mode available ON ERROR GOTO ScreenModeError Mode = 9 SCREEN Mode ON ERROR GOTO PaletteError IF Mode = 9 THEN PALETTE 4, 0 'Check for 64K EGA ON ERROR GOTO 0 MachSpeed = CalcDelay IF Mode = 9 THEN ScrWidth = 640 ScrHeight = 350 GHeight = 25 RESTORE EGABanana REDIM LBan&(8), RBan&(8), UBan&(8), DBan&(8) FOR i = 0 TO 8 READ LBan&(i) NEXT i FOR i = 0 TO 8 READ DBan&(i) NEXT i FOR i = 0 TO 8 READ UBan&(i) NEXT i FOR i = 0 TO 8 READ RBan&(i) NEXT i SunHt = 39 ELSE ScrWidth = 320 ScrHeight = 200 GHeight = 12 RESTORE CGABanana REDIM LBan&(2), RBan&(2), UBan&(2), DBan&(2) REDIM GorL&(20), GorD&(20), GorR&(20) FOR i = 0 TO 2 READ LBan&(i) NEXT i FOR i = 0 TO 2 READ DBan&(i) NEXT i FOR i = 0 TO 2 READ UBan&(i) NEXT i FOR i = 0 TO 2 READ RBan&(i) NEXT i MachSpeed = MachSpeed * 1.3 SunHt = 20 END IF RETURN ScreenModeError: IF Mode = 1 THEN CLS LOCATE 10, 5 PRINT "Sorry, you must have CGA, EGA color, or VGA graphics to play GORILLA.BAS" END ELSE Mode = 1 RESUME END IF PaletteError: Mode = 1 '64K EGA cards will run in CGA mode. RESUME NEXT REM $STATIC 'CalcDelay: ' Checks speed of the machine. FUNCTION CalcDelay! s! = TIMER DO i! = i! + 1 LOOP UNTIL TIMER - s! >= .5 CalcDelay! = i! END FUNCTION ' Center: ' Centers and prints a text string on a given row ' Parameters: ' Row - screen row number ' Text$ - text to be printed ' SUB Center (Row, Text$) Col = MaxCol \ 2 LOCATE Row, Col - (LEN(Text$) / 2 + .5) PRINT Text$; END SUB ' DoExplosion: ' Produces explosion when a shot is fired ' Parameters: ' X#, Y# - location of explosion ' SUB DoExplosion (x#, y#) PLAY "MBO0L32EFGEFDC" Radius = ScrHeight / 50 IF Mode = 9 THEN Inc# = .5 ELSE Inc# = .41 FOR c# = 0 TO Radius STEP Inc# CIRCLE (x#, y#), c#, ExplosionColor NEXT c# FOR c# = Radius TO 0 STEP (-1 * Inc#) CIRCLE (x#, y#), c#, BACKATTR FOR i = 1 TO 100 NEXT i Rest .005 NEXT c# END SUB ' DoShot: ' Controls banana shots by accepting player input and plotting ' shot angle ' Parameters: ' PlayerNum - Player ' x, y - Player's gorilla position ' FUNCTION DoShot (PlayerNum, x, y) 'Input shot IF PlayerNum = 1 THEN LocateCol = 1 ELSE IF Mode = 9 THEN LocateCol = 66 ELSE LocateCol = 26 END IF END IF LOCATE 2, LocateCol PRINT "Angle:"; Angle# = GetNum#(2, LocateCol + 7) LOCATE 3, LocateCol PRINT "Velocity:"; Velocity = GetNum#(3, LocateCol + 10) IF PlayerNum = 2 THEN Angle# = 180 - Angle# END IF 'Erase input FOR i = 1 TO 4 LOCATE i, 1 PRINT SPACE$(30 \ (80 \ MaxCol)); LOCATE i, (50 \ (80 \ MaxCol)) PRINT SPACE$(30 \ (80 \ MaxCol)); NEXT SunHit = FALSE PlayerHit = PlotShot(x, y, Angle#, Velocity, PlayerNum) IF PlayerHit = 0 THEN DoShot = FALSE ELSE DoShot = TRUE IF PlayerHit = PlayerNum THEN PlayerNum = 3 - PlayerNum VictoryDance PlayerNum END IF END FUNCTION ' DoSun: ' Draws the sun at the top of the screen. ' Parameters: ' Mouth - If TRUE draws "O" mouth else draws a smile mouth. ' SUB DoSun (Mouth) 'set position of sun x = ScrWidth \ 2: y = Scl(25) 'clear old sun LINE (x - Scl(22), y - Scl(18))-(x + Scl(22), y + Scl(18)), BACKATTR, BF 'draw new sun: 'body CIRCLE (x, y), Scl(12), SUNATTR PAINT (x, y), SUNATTR 'rays LINE (x - Scl(20), y)-(x + Scl(20), y), SUNATTR LINE (x, y - Scl(15))-(x, y + Scl(15)), SUNATTR LINE (x - Scl(15), y - Scl(10))-(x + Scl(15), y + Scl(10)), SUNATTR LINE (x - Scl(15), y + Scl(10))-(x + Scl(15), y - Scl(10)), SUNATTR LINE (x - Scl(8), y - Scl(13))-(x + Scl(8), y + Scl(13)), SUNATTR LINE (x - Scl(8), y + Scl(13))-(x + Scl(8), y - Scl(13)), SUNATTR LINE (x - Scl(18), y - Scl(5))-(x + Scl(18), y + Scl(5)), SUNATTR LINE (x - Scl(18), y + Scl(5))-(x + Scl(18), y - Scl(5)), SUNATTR 'mouth IF Mouth THEN 'draw "o" mouth CIRCLE (x, y + Scl(5)), Scl(2.9), 0 PAINT (x, y + Scl(5)), 0, 0 ELSE 'draw smile CIRCLE (x, y), Scl(8), 0, (210 * pi# / 180), (330 * pi# / 180) END IF 'eyes CIRCLE (x - 3, y - 2), 1, 0 CIRCLE (x + 3, y - 2), 1, 0 PSET (x - 3, y - 2), 0 PSET (x + 3, y - 2), 0 END SUB 'DrawBan: ' Draws the banana 'Parameters: ' xc# - Horizontal Coordinate ' yc# - Vertical Coordinate ' r - rotation position (0-3). ( \_/ ) /-\ ' bc - if TRUE then DrawBan draws the banana ELSE it erases the banana SUB DrawBan (xc#, yc#, r, bc) SELECT CASE r CASE 0 IF bc THEN PUT (xc#, yc#), LBan&, PSET ELSE PUT (xc#, yc#), LBan&, XOR CASE 1 IF bc THEN PUT (xc#, yc#), UBan&, PSET ELSE PUT (xc#, yc#), UBan&, XOR CASE 2 IF bc THEN PUT (xc#, yc#), DBan&, PSET ELSE PUT (xc#, yc#), DBan&, XOR CASE 3 IF bc THEN PUT (xc#, yc#), RBan&, PSET ELSE PUT (xc#, yc#), RBan&, XOR END SELECT END SUB 'DrawGorilla: ' Draws the Gorilla in either CGA or EGA mode ' and saves the graphics data in an array. 'Parameters: ' x - x coordinate of gorilla ' y - y coordinate of the gorilla ' arms - either Left up, Right up, or both down SUB DrawGorilla (x, y, arms) DIM i AS SINGLE ' Local index must be single precision 'draw head LINE (x - Scl(4), y)-(x + Scl(2.9), y + Scl(6)), OBJECTCOLOR, BF LINE (x - Scl(5), y + Scl(2))-(x + Scl(4), y + Scl(4)), OBJECTCOLOR, BF 'draw eyes/brow LINE (x - Scl(3), y + Scl(2))-(x + Scl(2), y + Scl(2)), 0 'draw nose if ega IF Mode = 9 THEN FOR i = -2 TO -1 PSET (x + i, y + 4), 0 PSET (x + i + 3, y + 4), 0 NEXT i END IF 'neck LINE (x - Scl(3), y + Scl(7))-(x + Scl(2), y + Scl(7)), OBJECTCOLOR 'body LINE (x - Scl(8), y + Scl(8))-(x + Scl(6.9), y + Scl(14)), OBJECTCOLOR, BF LINE (x - Scl(6), y + Scl(15))-(x + Scl(4.9), y + Scl(20)), OBJECTCOLOR, BF 'legs FOR i = 0 TO 4 CIRCLE (x + Scl(i), y + Scl(25)), Scl(10), OBJECTCOLOR, 3 * pi# / 4, 9 * pi# / 8 CIRCLE (x + Scl(-6) + Scl(i - .1), y + Scl(25)), Scl(10), OBJECTCOLOR, 15 * pi# / 8, pi# / 4 NEXT 'chest CIRCLE (x - Scl(4.9), y + Scl(10)), Scl(4.9), 0, 3 * pi# / 2, 0 CIRCLE (x + Scl(4.9), y + Scl(10)), Scl(4.9), 0, pi#, 3 * pi# / 2 FOR i = -5 TO -1 SELECT CASE arms CASE 1 'Right arm up CIRCLE (x + Scl(i - .1), y + Scl(14)), Scl(9), OBJECTCOLOR, 3 * pi# / 4, 5 * pi# / 4 CIRCLE (x + Scl(4.9) + Scl(i), y + Scl(4)), Scl(9), OBJECTCOLOR, 7 * pi# / 4, pi# / 4 GET (x - Scl(15), y - Scl(1))-(x + Scl(14), y + Scl(28)), GorR& CASE 2 'Left arm up CIRCLE (x + Scl(i - .1), y + Scl(4)), Scl(9), OBJECTCOLOR, 3 * pi# / 4, 5 * pi# / 4 CIRCLE (x + Scl(4.9) + Scl(i), y + Scl(14)), Scl(9), OBJECTCOLOR, 7 * pi# / 4, pi# / 4 GET (x - Scl(15), y - Scl(1))-(x + Scl(14), y + Scl(28)), GorL& CASE 3 'Both arms down CIRCLE (x + Scl(i - .1), y + Scl(14)), Scl(9), OBJECTCOLOR, 3 * pi# / 4, 5 * pi# / 4 CIRCLE (x + Scl(4.9) + Scl(i), y + Scl(14)), Scl(9), OBJECTCOLOR, 7 * pi# / 4, pi# / 4 GET (x - Scl(15), y - Scl(1))-(x + Scl(14), y + Scl(28)), GorD& END SELECT NEXT i END SUB 'ExplodeGorilla: ' Causes gorilla explosion when a direct hit occurs 'Parameters: ' X#, Y# - shot location FUNCTION ExplodeGorilla (x#, y#) YAdj = Scl(12) XAdj = Scl(5) SclX# = ScrWidth / 320 SclY# = ScrHeight / 200 IF x# < ScrWidth / 2 THEN PlayerHit = 1 ELSE PlayerHit = 2 PLAY "MBO0L16EFGEFDC" FOR i = 1 TO 8 * SclX# CIRCLE (GorillaX(PlayerHit) + 3.5 * SclX# + XAdj, GorillaY(PlayerHit) + 7 * SclY# + YAdj), i, ExplosionColor, , , -1.57 LINE (GorillaX(PlayerHit) + 7 * SclX#, GorillaY(PlayerHit) + 9 * SclY# - i)-(GorillaX(PlayerHit), GorillaY(PlayerHit) + 9 * SclY# - i), ExplosionColor NEXT i FOR i = 1 TO 16 * SclX# IF i < (8 * SclX#) THEN CIRCLE (GorillaX(PlayerHit) + 3.5 * SclX# + XAdj, GorillaY(PlayerHit) + 7 * SclY# + YAdj), (8 * SclX# + 1) - i, BACKATTR, , , -1.57 CIRCLE (GorillaX(PlayerHit) + 3.5 * SclX# + XAdj, GorillaY(PlayerHit) + YAdj), i, i MOD 2 + 1, , , -1.57 NEXT i FOR i = 24 * SclX# TO 1 STEP -1 CIRCLE (GorillaX(PlayerHit) + 3.5 * SclX# + XAdj, GorillaY(PlayerHit) + YAdj), i, BACKATTR, , , -1.57 FOR Count = 1 TO 200 NEXT NEXT i ExplodeGorilla = PlayerHit END FUNCTION 'GetInputs: ' Gets user inputs at beginning of game 'Parameters: ' Player1$, Player2$ - player names ' NumGames - number of games to play SUB GetInputs (Player1$, Player2$, NumGames) COLOR 7, 0 CLS LOCATE 8, 15 LINE INPUT "Name of Player 1 (Default = 'Player 1'): "; Player1$ IF Player1$ = "" THEN Player1$ = "Player 1" ELSE Player1$ = LEFT$(Player1$, 10) END IF LOCATE 10, 15 LINE INPUT "Name of Player 2 (Default = 'Player 2'): "; Player2$ IF Player2$ = "" THEN Player2$ = "Player 2" ELSE Player2$ = LEFT$(Player2$, 10) END IF DO LOCATE 12, 56: PRINT SPACE$(25); LOCATE 12, 13 INPUT "Play to how many total points (Default = 3)"; game$ NumGames = VAL(LEFT$(game$, 2)) LOOP UNTIL NumGames > 0 AND LEN(game$) < 3 OR LEN(game$) = 0 IF NumGames = 0 THEN NumGames = 3 DO LOCATE 14, 53: PRINT SPACE$(28); LOCATE 14, 17 INPUT "Gravity in Meters/Sec (Earth = 9.8)"; grav$ gravity# = VAL(grav$) LOOP UNTIL gravity# > 0 OR LEN(grav$) = 0 IF gravity# = 0 THEN gravity# = 9.8 END SUB 'GetNum: ' Gets valid numeric input from user 'Parameters: ' Row, Col - location to echo input FUNCTION GetNum# (Row, Col) Result$ = "" Done = FALSE WHILE INKEY$ <> "": WEND 'Clear keyboard buffer DO WHILE NOT Done LOCATE Row, Col PRINT Result$; CHR$(95); " "; Kbd$ = INKEY$ SELECT CASE Kbd$ CASE "0" TO "9" Result$ = Result$ + Kbd$ CASE "." IF INSTR(Result$, ".") = 0 THEN Result$ = Result$ + Kbd$ END IF CASE CHR$(13) IF VAL(Result$) > 360 THEN Result$ = "" ELSE Done = TRUE END IF CASE CHR$(8) IF LEN(Result$) > 0 THEN Result$ = LEFT$(Result$, LEN(Result$) - 1) END IF CASE ELSE IF LEN(Kbd$) > 0 THEN BEEP END IF END SELECT LOOP LOCATE Row, Col PRINT Result$; " "; GetNum# = VAL(Result$) END FUNCTION 'GorillaIntro: ' Displays gorillas on screen for the first time ' allows the graphical data to be put into an array 'Parameters: ' Player1$, Player2$ - The names of the players ' SUB GorillaIntro (Player1$, Player2$) LOCATE 16, 34: PRINT "--------------" LOCATE 18, 34: PRINT "V = View Intro" LOCATE 19, 34: PRINT "P = Play Game" LOCATE 21, 35: PRINT "Your Choice?" DO WHILE Char$ = "" Char$ = INKEY$ LOOP IF Mode = 1 THEN x = 125 y = 100 ELSE x = 278 y = 175 END IF SCREEN Mode SetScreen IF Mode = 1 THEN Center 5, "Please wait while gorillas are drawn." VIEW PRINT 9 TO 24 IF Mode = 9 THEN PALETTE OBJECTCOLOR, BackColor DrawGorilla x, y, ARMSDOWN CLS 2 DrawGorilla x, y, LEFTUP CLS 2 DrawGorilla x, y, RIGHTUP CLS 2 VIEW PRINT 1 TO 25 IF Mode = 9 THEN PALETTE OBJECTCOLOR, 46 IF UCASE$(Char$) = "V" THEN Center 2, "Q B A S I C G O R I L L A S" Center 5, " STARRING: " P$ = Player1$ + " AND " + Player2$ Center 7, P$ PUT (x - 13, y), GorD&, PSET PUT (x + 47, y), GorD&, PSET Rest 1 PUT (x - 13, y), GorL&, PSET PUT (x + 47, y), GorR&, PSET PLAY "t120o1l16b9n0baan0bn0bn0baaan0b9n0baan0b" Rest .3 PUT (x - 13, y), GorR&, PSET PUT (x + 47, y), GorL&, PSET PLAY "o2l16e-9n0e-d-d-n0e-n0e-n0e-d-d-d-n0e-9n0e-d-d-n0e-" Rest .3 PUT (x - 13, y), GorL&, PSET PUT (x + 47, y), GorR&, PSET PLAY "o2l16g-9n0g-een0g-n0g-n0g-eeen0g-9n0g-een0g-" Rest .3 PUT (x - 13, y), GorR&, PSET PUT (x + 47, y), GorL&, PSET PLAY "o2l16b9n0baan0g-n0g-n0g-eeen0o1b9n0baan0b" Rest .3 FOR i = 1 TO 4 PUT (x - 13, y), GorL&, PSET PUT (x + 47, y), GorR&, PSET PLAY "T160O0L32EFGEFDC" Rest .1 PUT (x - 13, y), GorR&, PSET PUT (x + 47, y), GorL&, PSET PLAY "T160O0L32EFGEFDC" Rest .1 NEXT END IF END SUB 'Intro: ' Displays game introduction SUB Intro SCREEN 0 WIDTH 80, 25 MaxCol = 80 COLOR 15, 0 CLS Center 4, "Q B a s i c G O R I L L A S" COLOR 7 Center 6, "Copyright (C) Microsoft Corporation 1990" Center 8, "Your mission is to hit your opponent with the exploding" Center 9, "banana by varying the angle and power of your throw, taking" Center 10, "into account wind speed, gravity, and the city skyline." Center 11, "The wind speed is shown by a directional arrow at the bottom" Center 12, "of the playing field, its length relative to its strength." Center 24, "Press any key to continue" PLAY "MBT160O1L8CDEDCDL4ECC" SparklePause IF Mode = 1 THEN MaxCol = 40 END SUB 'MakeCityScape: ' Creates random skyline for game 'Parameters: ' BCoor() - a user-defined type array which stores the coordinates of ' the upper left corner of each building. SUB MakeCityScape (BCoor() AS XYPoint) x = 2 'Set the sloping trend of the city scape. NewHt is new building height Slope = FnRan(6) SELECT CASE Slope CASE 1: NewHt = 15 'Upward slope CASE 2: NewHt = 130 'Downward slope CASE 3 TO 5: NewHt = 15 '"V" slope - most common CASE 6: NewHt = 130 'Inverted "V" slope END SELECT IF Mode = 9 THEN BottomLine = 335 'Bottom of building HtInc = 10 'Increase value for new height DefBWidth = 37 'Default building height RandomHeight = 120 'Random height difference WWidth = 3 'Window width WHeight = 6 'Window height WDifV = 15 'Counter for window spacing - vertical WDifh = 10 'Counter for window spacing - horizontal ELSE BottomLine = 190 HtInc = 6 NewHt = NewHt * 20 \ 35 'Adjust for CGA DefBWidth = 18 RandomHeight = 54 WWidth = 1 WHeight = 2 WDifV = 5 WDifh = 4 END IF CurBuilding = 1 DO SELECT CASE Slope CASE 1 NewHt = NewHt + HtInc CASE 2 NewHt = NewHt - HtInc CASE 3 TO 5 IF x > ScrWidth \ 2 THEN NewHt = NewHt - 2 * HtInc ELSE NewHt = NewHt + 2 * HtInc END IF CASE 4 IF x > ScrWidth \ 2 THEN NewHt = NewHt + 2 * HtInc ELSE NewHt = NewHt - 2 * HtInc END IF END SELECT 'Set width of building and check to see if it would go off the screen BWidth = FnRan(DefBWidth) + DefBWidth IF x + BWidth > ScrWidth THEN BWidth = ScrWidth - x - 2 'Set height of building and check to see if it goes below screen BHeight = FnRan(RandomHeight) + NewHt IF BHeight < HtInc THEN BHeight = HtInc 'Check to see if Building is too high IF BottomLine - BHeight <= MaxHeight + GHeight THEN BHeight = MaxHeight + GHeight - 5 'Set the coordinates of the building into the array BCoor(CurBuilding).XCoor = x BCoor(CurBuilding).YCoor = BottomLine - BHeight IF Mode = 9 THEN BuildingColor = FnRan(3) + 4 ELSE BuildingColor = 2 'Draw the building, outline first, then filled LINE (x - 1, BottomLine + 1)-(x + BWidth + 1, BottomLine - BHeight - 1), BACKGROUND, B LINE (x, BottomLine)-(x + BWidth, BottomLine - BHeight), BuildingColor, BF 'Draw the windows c = x + 3 DO FOR i = BHeight - 3 TO 7 STEP -WDifV IF Mode <> 9 THEN WinColr = (FnRan(2) - 2) * -3 ELSEIF FnRan(4) = 1 THEN WinColr = 8 ELSE WinColr = WINDOWCOLOR END IF LINE (c, BottomLine - i)-(c + WWidth, BottomLine - i + WHeight), WinColr, BF NEXT c = c + WDifh LOOP UNTIL c >= x + BWidth - 3 x = x + BWidth + 2 CurBuilding = CurBuilding + 1 LOOP UNTIL x > ScrWidth - HtInc LastBuilding = CurBuilding - 1 'Set Wind speed Wind = FnRan(10) - 5 IF FnRan(3) = 1 THEN IF Wind > 0 THEN Wind = Wind + FnRan(10) ELSE Wind = Wind - FnRan(10) END IF END IF 'Draw Wind speed arrow IF Wind <> 0 THEN WindLine = Wind * 3 * (ScrWidth \ 320) LINE (ScrWidth \ 2, ScrHeight - 5)-(ScrWidth \ 2 + WindLine, ScrHeight - 5), ExplosionColor IF Wind > 0 THEN ArrowDir = -2 ELSE ArrowDir = 2 LINE (ScrWidth / 2 + WindLine, ScrHeight - 5)-(ScrWidth / 2 + WindLine + ArrowDir, ScrHeight - 5 - 2), ExplosionColor LINE (ScrWidth / 2 + WindLine, ScrHeight - 5)-(ScrWidth / 2 + WindLine + ArrowDir, ScrHeight - 5 + 2), ExplosionColor END IF END SUB 'PlaceGorillas: ' PUTs the Gorillas on top of the buildings. Must have drawn ' Gorillas first. 'Parameters: ' BCoor() - user-defined TYPE array which stores upper left coordinates ' of each building. SUB PlaceGorillas (BCoor() AS XYPoint) IF Mode = 9 THEN XAdj = 14 YAdj = 30 ELSE XAdj = 7 YAdj = 16 END IF SclX# = ScrWidth / 320 SclY# = ScrHeight / 200 'Place gorillas on second or third building from edge FOR i = 1 TO 2 IF i = 1 THEN BNum = FnRan(2) + 1 ELSE BNum = LastBuilding - FnRan(2) BWidth = BCoor(BNum + 1).XCoor - BCoor(BNum).XCoor GorillaX(i) = BCoor(BNum).XCoor + BWidth / 2 - XAdj GorillaY(i) = BCoor(BNum).YCoor - YAdj PUT (GorillaX(i), GorillaY(i)), GorD&, PSET NEXT i END SUB 'PlayGame: ' Main game play routine 'Parameters: ' Player1$, Player2$ - player names ' NumGames - number of games to play SUB PlayGame (Player1$, Player2$, NumGames) DIM BCoor(0 TO 30) AS XYPoint DIM TotalWins(1 TO 2) J = 1 FOR i = 1 TO NumGames CLS RANDOMIZE (TIMER) CALL MakeCityScape(BCoor()) CALL PlaceGorillas(BCoor()) DoSun SUNHAPPY Hit = FALSE DO WHILE Hit = FALSE J = 1 - J LOCATE 1, 1 PRINT Player1$ LOCATE 1, (MaxCol - 1 - LEN(Player2$)) PRINT Player2$ Center 23, LTRIM$(STR$(TotalWins(1))) + ">Score<" + LTRIM$(STR$(TotalWins(2))) Tosser = J + 1: Tossee = 3 - J 'Plot the shot. Hit is true if Gorilla gets hit. Hit = DoShot(Tosser, GorillaX(Tosser), GorillaY(Tosser)) 'Reset the sun, if it got hit IF SunHit THEN DoSun SUNHAPPY IF Hit = TRUE THEN CALL UpdateScores(TotalWins(), Tosser, Hit) LOOP SLEEP 1 NEXT i SCREEN 0 WIDTH 80, 25 COLOR 7, 0 MaxCol = 80 CLS Center 8, "GAME OVER!" Center 10, "Score:" LOCATE 11, 30: PRINT Player1$; TAB(50); TotalWins(1) LOCATE 12, 30: PRINT Player2$; TAB(50); TotalWins(2) Center 24, "Press any key to continue" SparklePause COLOR 7, 0 CLS END SUB 'PlayGame: ' Plots banana shot across the screen 'Parameters: ' StartX, StartY - starting shot location ' Angle - shot angle ' Velocity - shot velocity ' PlayerNum - the banana thrower FUNCTION PlotShot (StartX, StartY, Angle#, Velocity, PlayerNum) Angle# = Angle# / 180 * pi# 'Convert degree angle to radians Radius = Mode MOD 7 InitXVel# = COS(Angle#) * Velocity InitYVel# = SIN(Angle#) * Velocity oldx# = StartX oldy# = StartY 'draw gorilla toss IF PlayerNum = 1 THEN PUT (StartX, StartY), GorL&, PSET ELSE PUT (StartX, StartY), GorR&, PSET END IF 'throw sound PLAY "MBo0L32A-L64CL16BL64A+" Rest .1 'redraw gorilla PUT (StartX, StartY), GorD&, PSET adjust = Scl(4) 'For scaling CGA xedge = Scl(9) * (2 - PlayerNum) 'Find leading edge of banana for check Impact = FALSE ShotInSun = FALSE OnScreen = TRUE PlayerHit = 0 NeedErase = FALSE StartXPos = StartX StartYPos = StartY - adjust - 3 IF PlayerNum = 2 THEN StartXPos = StartXPos + Scl(25) direction = Scl(4) ELSE direction = Scl(-4) END IF IF Velocity < 2 THEN 'Shot too slow - hit self x# = StartX y# = StartY pointval = OBJECTCOLOR END IF DO WHILE (NOT Impact) AND OnScreen Rest .02 'Erase old banana, if necessary IF NeedErase THEN NeedErase = FALSE CALL DrawBan(oldx#, oldy#, oldrot, FALSE) END IF x# = StartXPos + (InitXVel# * t#) + (.5 * (Wind / 5) * t# ^ 2) y# = StartYPos + ((-1 * (InitYVel# * t#)) + (.5 * gravity# * t# ^ 2)) * (ScrHeight / 350) IF (x# >= ScrWidth - Scl(10)) OR (x# <= 3) OR (y# >= ScrHeight - 3) THEN OnScreen = FALSE END IF IF OnScreen AND y# > 0 THEN 'check it LookY = 0 LookX = Scl(8 * (2 - PlayerNum)) DO pointval = POINT(x# + LookX, y# + LookY) IF pointval = 0 THEN Impact = FALSE IF ShotInSun = TRUE THEN IF ABS(ScrWidth \ 2 - x#) > Scl(20) OR y# > SunHt THEN ShotInSun = FALSE END IF ELSEIF pointval = SUNATTR AND y# < SunHt THEN IF NOT SunHit THEN DoSun SUNSHOCK SunHit = TRUE ShotInSun = TRUE ELSE Impact = TRUE END IF LookX = LookX + direction LookY = LookY + Scl(6) LOOP UNTIL Impact OR LookX <> Scl(4) IF NOT ShotInSun AND NOT Impact THEN 'plot it rot = (t# * 10) MOD 4 CALL DrawBan(x#, y#, rot, TRUE) NeedErase = TRUE END IF oldx# = x# oldy# = y# oldrot = rot END IF t# = t# + .1 LOOP IF pointval <> OBJECTCOLOR AND Impact THEN CALL DoExplosion(x# + adjust, y# + adjust) ELSEIF pointval = OBJECTCOLOR THEN PlayerHit = ExplodeGorilla(x#, y#) END IF PlotShot = PlayerHit END FUNCTION 'Rest: ' pauses the program SUB Rest (t#) s# = TIMER t2# = MachSpeed * t# / SPEEDCONST DO LOOP UNTIL TIMER - s# > t2# END SUB 'Scl: ' Pass the number in to scaling for cga. If the number is a decimal, then we ' want to scale down for cga or scale up for ega. This allows a full range ' of numbers to be generated for scaling. ' (i.e. for 3 to get scaled to 1, pass in 2.9) FUNCTION Scl (n!) IF n! <> INT(n!) THEN IF Mode = 1 THEN n! = n! - 1 END IF IF Mode = 1 THEN Scl = CINT(n! / 2 + .1) ELSE Scl = CINT(n!) END IF END FUNCTION 'SetScreen: ' Sets the appropriate color statements SUB SetScreen IF Mode = 9 THEN ExplosionColor = 2 BackColor = 1 PALETTE 0, 1 PALETTE 1, 46 PALETTE 2, 44 PALETTE 3, 54 PALETTE 5, 7 PALETTE 6, 4 PALETTE 7, 3 PALETTE 9, 63 'Display Color ELSE ExplosionColor = 2 BackColor = 0 COLOR BackColor, 2 END IF END SUB 'SparklePause: ' Creates flashing border for intro and game over screens SUB SparklePause COLOR 4, 0 A$ = "* * * * * * * * * * * * * * * * * " WHILE INKEY$ <> "": WEND 'Clear keyboard buffer WHILE INKEY$ = "" FOR A = 1 TO 5 LOCATE 1, 1 'print horizontal sparkles PRINT MID$(A$, A, 80); LOCATE 22, 1 PRINT MID$(A$, 6 - A, 80); FOR b = 2 TO 21 'Print Vertical sparkles c = (A + b) MOD 5 IF c = 1 THEN LOCATE b, 80 PRINT "*"; LOCATE 23 - b, 1 PRINT "*"; ELSE LOCATE b, 80 PRINT " "; LOCATE 23 - b, 1 PRINT " "; END IF NEXT b NEXT A WEND END SUB 'UpdateScores: ' Updates players' scores 'Parameters: ' Record - players' scores ' PlayerNum - player ' Results - results of player's shot SUB UpdateScores (Record(), PlayerNum, Results) IF Results = HITSELF THEN Record(ABS(PlayerNum - 3)) = Record(ABS(PlayerNum - 3)) + 1 ELSE Record(PlayerNum) = Record(PlayerNum) + 1 END IF END SUB 'VictoryDance: ' gorilla dances after he has eliminated his opponent 'Parameters: ' Player - which gorilla is dancing SUB VictoryDance (Player) FOR i# = 1 TO 4 PUT (GorillaX(Player), GorillaY(Player)), GorL&, PSET PLAY "MFO0L32EFGEFDC" Rest .2 PUT (GorillaX(Player), GorillaY(Player)), GorR&, PSET PLAY "MFO0L32EFGEFDC" Rest .2 NEXT END SUB ).:&uf?x |~x |~00x |~xx 8~lxxxxxxxx~~| ~8ll8|00`x 3f7o3ff3f3f""""UUUUww66666666666666666666666666666666666676666670??0766666666667076666666666666666666??6666666666vvxlllll`0`~pffff|`v0xx08ll88lll0|x~~ ~~`8``8x0000`00`0`0p0000vv8ll8 l<xllllp0`x<<<<USA>```> >v|~||f;f|f;|f;8l8|f;>``> >||~|~|~f8<|||fffff<||8ld`t\f<~8ll8|00`x ~|ff8l`|``|`0>08<<<ccc>v|ff<< 00000to{>c8ll8x00008 8ll80p00xpp0`<<<<RMulti-lingualxx xvxx~<>f;rx |vx |v0xx|8~~8ll8|00`x|| 3f7o3ff3f3f""""UUUUww66666666666666666666666666666666666676666670??0766666666667076666666666666666666??6666666666vvxlllll`0`~pffff|`v0xx08ll88lll0|x~~ ~~`8``8x0000`00`0`0p0000vv8ll8 l<xllllp0`x<<<<\Portuguesexxp~0`xx|x |~|8l0x |~{||p~c8ll8x0`0|xxxx000xx~`0~|||8ll8x~~8ld``0xxx<p 00xx0~ xppp~<<bdn&Lbdj*_2d:*_3ff3f3f""""UUUUww66666666666666666666666666666666666676666670??0766666666667076666666666666666666??6666666666vvxlllll`0`~pffff|`v0xx08ll88lll0|x~~ ~~`8``8x0000`00`0`0p0000vv8ll8 l<xllllp0`x<<<<_Can. Frenchf?f<>f?p<>f?<>f?<``<~|f?8<~8ll8|0`f< 3f7o3ff3||""""UUUUww66666666666666666666666666666666666676666670??0766666666667076666666666666666666??6666666666;ndn;0`;n ~ff<~~ ~~````<||||H00000H0000`lxp`~l8l$ |v|ffff|H0fff`x`f~~$x000xxx000xH0xx~(|||x|||$H0~8H0|@8||8 |f> xf<00x0000<H0|>c8ll8x~8ll8fvH0H0<<<<TLatin-2    437850860863865852, $8K`b,l-./Incorrect DOS version Active Code Page: %1 Previous Code Page: %1 None Non-standardIEnables MS-DOS to display an extended character set in graphics mode. $GRAFTABL [xxx] GRAFTABL /STATUS * xxx Specifies a code page number. K /STATUS Displays the current code page selected for use with GRAFTABL. >pExtended Error %1> Parse Error %1> $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$MS DOS Version 6 (C)Copyright 1981-1994 Microsoft Corp Licensed Material - Property of Microsoft All rights reserved PSRW3Ɏ3./>./>./>./>>>>./> L$  (>.AQPrY_Z[X PVc!r6^XøD3!D!øD3!D!ô0!=u=sPWUrt]_XVS33ɀu%tļ=r ='wļļÃuu 3 tTr u럜u)RUQWP/t=u PX3ɀt&M .85u.Ms- tt&;.;u Itr u&}r2& GPSQUWR6 t u&rZ__Zr]Y[XPSRu,wsY!2t ;trZ[Xu&!s&U! t &!GIuWPSٰu+K[X_3 tO@׃u(!P&ZXs@B!&=uUQY!s ;t;u]ø'Àtƀu >W> t&=t&:r&:EwGG_Ï3ۓ6 6  v70RA u t9u | ,u6A"u | ,u6A u | ,u6A33363 t!%&8%u &8et:u&SsGGBIuV t3M>u+D0&:Eu<0u t4>uBBIIOOW+ _YseQʀ|t tIIGG^ u^ u3 tuDu|2R rY_]^ >ur.3ҡ  X C@uu CC3ۀ|uLJ  -CCƇ  C]33҈D :v*DtD C@u|u|t 8Ls*LъL t$Du Dt&GX C@uAuDu tD C@u#uDuDt tuUQW3ۍ> r_Y]D0u&PAs&EP & tGA+U ##S#i# K##3#7#;#?#C#G#437850860863865852K#u#/STA/STATUSK#u#/?f=t#>M#r#uz>#u76#>M#uL#20 * 3\# a# #V9##>#6#3ҋ#=u>#u0#vÀ>#t#;t>Y*]$P$R$e$V$AsS&&:s[ 6_$SWUg$^$ u>r75t2fu^$ u"^$AtN<=u^$CsɬCN6T$c$&6g$s .e$Y]&~tEEÀ^$rB&^$Pa$+_$X6a$<u#|:uR$ &?t&uR$ PXW&>V$&&ePe$&EX<u &U&MY<u&UO<t<t<u&U=<u_$@&E&]+&u&]P&Gt &Gt}X&GtO_$P& uPSRWR$ `_Z[X t R$>$u >R$uR$ XPV t<:u |u MsFF^XVRЊ;r t FFZ^$8tPQRe»!ZYX]ECC,&_[<0r<9w,0PSRW&& uJ<u>G& @&@&GG&-0suR$&e& R$ ?_Z[XPURVer:9^$t <=u&~un^$t<:u &~uZFZ&:Fu tPFE&:FuCFE&:Fu9FE^$@t&G t&~t"&t<:u &~u <u&~:t6a$^Z]Xì tQu^$ t^$At NNSQ< t-<t)< t%&}r3&]&9t 3& C&:t< Y[SQX$ &^$< t6< t2<,t1< u < u F:&}r3&M t C&:t< Y[âX$^$u^$ :.g$;t [$u%PQRWU3޸c! ]_ZYXt%6Y$[$6Y$[$<t:r:DwFF[^8s *L*! v*.v* 0z*`x*v*05/! "M>*u=v*؍0%!%/!,I!C>!ux*1LÊ&/*r*u>r*&*~* ;w  *á6 6á66ÃtbuXt9>;*t&>>*>*u 6r*%!>c>*u**>*u >r**>0;t`6z**>>/tSQRV]uMUps>]uMU[^ZY[FONT  AEGA 5||||l|88||888888|T8<<">""".|DD|8xx88TT8DDDDDDDDD~rx@0HH0x8TT88TT8 @@ $BB$8||8HHHHDDDDDDD|||`d L 0HHH2Jz    T88T 00 @8DD80P|| @|<| $D||||D|||~|  @ @  @| ||8D|||~||>xƪ¢|||||`0 ||D(DD((DD( @8 8@ 88(D x|~‚||z~|| ~z|‚p|8p` 쒒‚||‚¼~z€~| zD(lD((Dz| @ ` ` `b(D||pDDz |~(D|~~DD|~~ |~~$|~~||p(D|~DD|~ |~HHp|(Dp|@ p|DD8D8DD8D 0l~n>H(D||DD|| ||(Dz zDDz|DD||DD|||8D@@@@@rD(|| |` |~~ p| || zd‚d¢8">""".|DD|8xx88TT8DDDDDDDDD~rx@0HH0x8TT88TT8 @@ $BB$8||8HHHHDDDDDDD|||`d L 0HHH2Jz    T88T 00 @8DD80P|| @|<| $D||||D|||~|  @ @  @| ||8D|||~||>xƪ¢|||||`0 ||D(DD((DD( @8 8@ 88(D x|~‚||z~|| ~z|‚p|8p` 쒒‚||‚¼~z€~| zD(lD((Dz| @ ` ` `b(D8D((DDD @8DD8||((DDDƪ¢|||@  @DDD(||D((DTTTT88DD(tv8DB|@ x||x| @|BBBBBB >DD||DDDDD(ddpp000(DDDDD` @|||||||0EGA R ||||l|88||888888|T8<<">""".|DD|8xx88TT8DDDDDDDDD~rx@0HH0x8TT88TT8 @@ $BB$8||8HHHHDDDDDDD|||`d L 0HHH2Jz    T88T 00 @8DD80P|| @|<| $D||||D|||~|  @ @  @| ||8D|||~||>xƪ¢|||||`0 ||D(DD((DD( @8 8@ 88(D x|~‚||z~|| ~z|‚p|8p` 쒒‚||‚¼~z€~| zD(lD((Dz| @ ` ` `b(D||pDDz |~(D|~~DD|~~ |~~$|~~||p(D|~DD|~ |~HHp|(Dp|@ p|DD8D8DD8D 0l~n>H(D||DD|| ||(Dz zDDz|DD||DD|||8D@@@@@r|‚|H00H |` |~~ p| || zd‚d¢8">""".|DD|8xx88TT8DDDDDDDDD~rx@0HH0x8TT88TT8 @@ $BB$8||8HHHHDDDDDDD|||`d L 0HHH2Jz    T88T 00 @8DD80P|| @|<| $D||||D|||~|  @ @  @| ||8D|||~||>xƪ¢|||||`0 ||D(DD((DD( @8 8@ 88(D x|~‚||z~|| ~z|‚p|8p` 쒒‚||‚¼~z€~| zD(lD((Dz| @ ` ` `b(D||pDDz |~(D|~~DD|~~0H0z ||||p` (0 ` DD|~"D||"D||(Dp| 0 @DD8D 0|| 0 0 0` (D||DD||b""$  0|`0 | ~|DD||DD|D8"" @@P`@@@@~H00HD(|| |~~ p| || z8D |~~ D8 @D( @ |~   @D8||~|p$HH$H$HDDDDDDDDUUUUUUUUwwwwwwww`8D8D8DD8|`0 |p$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ @ @D88DD(|~~$$$$$' ?? '$$$$$$$$$$$$$$$$$$$$$$$$$$' '$$$$$$$$$$$$$$$$$$$$$xx>hxxDBBBBBDxD8DD hxD8¢ 0||8D||D(|~80H0| 0||8D8D|| 0¢ ‚D(‚D8|`0 |D(~|` 0| €"D| z| 0D( p $H @8H0xx@0HH0xpppDD"DzD8D(€|||||||PEGA W@||||l|88||888888|T8<<">""".|DD|8xx88TT8DDDDDDDDD~rx@0HH0x8TT88TT8 @@ $BB$8||8HHHHDDDDDDD|||`d L 0HHH2Jz    T88T 00 @8DD80P|| @|<| $D||||D|||~|  @ @  @| ||8D|||~||>xƪ¢|||||`0 ||D(DD((DD( @8 8@ 88(D x|~‚||z~|| ~z|‚p|8p` 쒒‚||‚¼~z€~| zD(lD((Dz| @ ` ` `b(D@@\bBBBBB@@\bBBBBB |D@@@@@ 0BB|~DD>B@8@B>:FF8~||`0 |p|||DDp|DD||8p>xPP\RRPPP\RRRR@@\bBBBBB ,2"""""FHHpHDB 0ࠐD8DD(( @D8F:|򒒌򒒒,2""< ,2"""<x|~8DxĂD8<$$$$D<$$$$DDD|||||||D@@@@@$HH$H$HDDDDDDDDUUUUUUUUwwwwwwwwD((DD((D‚‚$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$D8‚D8‚FHHpHDBࠐ$$$$$' ?? '$$$$$$$$$$$$$$$$$$$$$$$$$$' '$$$$$$$$$$$$$$$$$$$$$xx>""""">""""""""BfZBBBBƪBBB~BBB||||~BBBBBB>BB>"B~~"B‚¼|||||DD(( @F:|TT8TTTT8T|BB|BB|@@\bBB|@@@@\bBBB|ͪ|ʊʊ|BB|‚||BB|Ăxtzx@0HH0x~~~~~~ aEGA YP||||l|88||888888|T8<<">""".|DD|8xx88TT8DDDDDDDDD~rx@0HH0x8TT88TT8 @@ $BB$8||8HHHHDDDDDDD|||`d L 0HHH2Jz    T88T 00 @8DD80P|| @|<| $D||||D|||~|  @ @  @| ||8D|||~||>xƪ¢|||||`0 ||D(DD((DD( @8 8@ 88(D x|~‚||z~|| ~z|‚p|8p` 쒒‚||‚¼~z€~| zD(lD((Dz| @ ` ` `b(D||pDDz |~(D|~~DD|~~ |~~$|~~||p(D|~DD|~ |~HHp|(Dp|p|DD8D8DD8D 0l~n>H(D||DD|| ||(Dz z||DD||DD|>CEIQa>8D@@@@@r>ACEIIQaA>|`0 |p~|p |~~ p| || zd‚d¢D8|~D8~z|`||| @8< D<$HH$H$HDDDDDDDDUUUUUUUUwwwwwwww`8D8D8D0 8D||$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$||D(||2L|~~d8D$$$$$' ?? '$$$$$$$$$$$$$$$$$$$$$$$$$$' '$$$$$$$$$$$$$$$$$$$$$xx8DDD8|8">""".|DD|8xx88TT8DDDDDDDDD~rx@0HH0x8TT88TT8 @@ $BB$8||8HHHHDDDDDDD|||`d L 0HHH2Jz    T88T 00 @8DD80P|| @|<| $D||||D|||~|  @ @  @| ||8D|||~||>xƪ¢|||||`0 ||D(DD((DD( @8 8@ 88(D x|~‚||z~|| ~z|‚p|8p` 쒒‚||‚¼~z€~| zD(lD((Dz| @ ` ` `b(D||pDDz |~(D|~~2L|~~ |~~`8D||p(D|~8D |~ 0||8D||@ p|d8D8D8D 00 8D0 (D||d|| || 0| z`||d||DD|||8D@@@@@r`| 0|| |~~ p| || zd‚d¢8">""".|DD|8xx88TT8DDDDDDDDD~rx@0HH0x8TT88TT8 @@ $BB$8||8HHHHDDDDDDD|||`d L 0HHH2Jz    T88T 00 @8DD80P|| @|<| $D||||D|||~|  @ @  @| ||8D|||~||>xƪ¢|||||`0 ||D(DD((DD( @8 8@ 88(D x|~‚||z~|| ~z|‚p|8p` 쒒‚||‚¼~z€~| zD(lD((Dz| @ ` ` `b(D||pDDz |~(D|~~DD|~~ |~~$|~~||p(D|~DD|~ |~xDBBBBBDx((||DD8D8DD8D 0l~n>H(D||DD||‚(Dz 0D( z|DD||DD|||8D@@@@@r|‚| |` |~~ p| || z`8D 0|| 0|| 0|`| @8< D<$HH$H$HDDDDDDDDUUUUUUUUwwwwwwww$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$'$$$$$$$$$$$$$' ?? '$$$$$$$$$$$$$$$$$$$$$$$$$$' '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$??$$$$$$$$$$$$$$$$$$$$$$$tv8DDDDDDB@  @~xĺ~ ||8DD88DD(|@ x|ll|||x||  | @ | `ddpp000(DDDDD` @|||||||EGA _u||||l|88||888888|T8<<">""".|DD|8xx88TT8DDDDDDDDD~rx@0HH0x8TT88TT8 @@ $BB$8||8HHHHDDDDDDD|||`d L 0HHH2Jz    T88T 00 @8DD80P|| @|<| $D||||D|||~|  @ @  @| ||8D|||~||>xƪ¢|||||`0 ||D(DD((DD( @8 8@ 88(D x|~‚||z~|| ~z|‚p|8p` 쒒‚||‚¼~z€~| zD(lD((Dz| @ ` ` `b(D||pDDz |~(D|~~8D8D |~~~r||p(D|~DD|~ |~HHp|(Dp|0 8Dx@0HH0x 00 8D(D||DDDD||(Dz zxx8D||DD|||8D@@@@@r`|8D| |`  || zDDp`8D|| @8< D<`"F$HH$H$HDDDDDDDDUUUUUUUUwwwwwwww$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$'$$$$$$$$$$$$$' ?? '$$$$$$$$$$$$$$$$$$$$$$$$$$' '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$??$$$$$$$$$$$$$$$$$$$$$$$tv8DDDDDDB@  @~xĺ~ ||8DD88DD(|@ x|ll|||x||  | @ | `ddpp000(DDDDD` @|||||||EGA a||||l|88||888888|T8<<">""".|DD|8xx88TT8DDDDDDDDD~rx@0HH0x8TT88TT8 @@ $BB$8||8HHHHDDDDDDD|||`d L 0HHH2Jz    T88T 00 @8DD80P|| @|<| $D||||D|||~|  @ @  @| ||8D|||~||>xƪ¢|||||`0 ||D(DD((DD( @8 8@ 88(D x|~‚||z~|| ~z|‚p|8p` 쒒‚||‚¼~z€~| zD(lD((Dz| @ ` ` `b(D||pDDz |~(D|~~DD|~~ |~~$|~~||p(D|~DD|~ |~HHp|(Dp|@ p|DD8D8DD8D 0l~n>H(D||DD|| ||(Dz zDDz|DD||DD|||8D@@@@@r|‚| |` |~~ p| || zd‚d¢8">""".|DD|8xx88TT8DDDDDDDDD~rx@0HH0x8TT88TT8 @@ $BB$8||8HHHHDDDDDDD|||`d L 0HHH2Jz    T88T 00 @8DD80P|| @|<| $D||||D|||~|  @ @  @| ||8D|||~||>xƪ¢|||||`0 ||D(DD((DD( @8 8@ 88(D x|~‚||z~|| ~z|‚p|8p` 쒒‚||‚¼~z€~| zD(lD((Dz| @ ` ` `b(D8D<$$$$DDDTTT8T‚|‚D8‚ࠐ>""""""""ƪ||||F:|||D((Dz ,2"""<ʊ@@@@\bBBB|Ăx򒒒~~"Bx|~xĂD8|BB|BB||D@@@@@<$$$$D||TT8T|BB|‚D8‚FHHpHDB>"""""BfZBBBBBBB~BBB||~BBBBBBDDDDDDDDUUUUUUUUwwwwwwww$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$'$$$$$$$$$$$$$' ?? '$$$$$$$$$$$$$$$$$$$$$$$$$$' '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$??$$$$$$$$$$$$$$$$$$$$$$$‚¼|||DD(( @||D((Dt,2""<ʊ@@\bBB||BB|򒒌||$DDDBB|~:FF8>B@8@B>DD||DDp|D8F:|D8DD(( @pp000(ͪxx|||||||EGA e||||l|88||888888|T8<<">""".|DD|8xx88TT8DDDDDDDDD~rx@0HH0x8TT88TT8 @@ $BB$8||8HHHHDDDDDDD|||`d L 0HHH2Jz    T88T 00 @8DD80P|| @|<| $D||||D|||~|  @ @  @| ||8D|||~||>xƪ¢|||||`0 ||D(DD((DD( @8 8@ 88(D x|~‚||z~|| ~z|‚p|8p` 쒒‚||‚¼~z€~| zD(lD((Dz| @ ` ` `b(D8D00  ~@@@|@@@@~BBBB~BBBBB||DD||t 9u9 @:Fb 9b r^6b DF޸ 9ub  FV^FFF^&F u+Ph P;Fb 9b r^6b Fށ>T u~uF~ PP!ni>t]^6b Fb 9b r㡠-=w.jP밸맸PSa\aaaaaaF^ b ~t~t~u~uDPP|~t~uPPb~t~u PPH~t~t~t PP(F^]UZ%FF tFPFAPOP(FFPv uЋ]U3p%FG u PPFP tDPPF\AFF:F\FFS& 9F\|FGFG@ P+Ph P 9:  P+Ph P8FPv\K+Ph P8]U츀$VFG tDPPFPPx;F\tv\T t v\ t5v\ u v\ t +PPDPP+Ph PE8FP uZPFP ؀?tPPe+Ph P8F-AP uF-APT t +PP'+Ph P7F-AF9F\uPPFP9@upFPPFP@tFuPPFP7BF]Pv7FP+PFP@tPP^FPFP!7FG`FPv\u+Ph P7 Pb+Ph P6:  P+Ph P6^]3"PZ PltPPP!U"F=tM=tv=u=u=u=u=,}=3~FFFFFFFFFFF-=v.FFFFFFFFF FF FFøP 똋FF^F FFHF^F FFFFFF FZ F\ Fb ~,|5~3.FZ F\ F^ F` Fa PZ PoPE  &&&=&t.\ ^ ` a PZ P*P ]U F,+Pv.F~3~+P]U3 vvP]U3w         N     N    R  N bP P3   R  N eP P3^ d Fb ]PSRW3Ɏ3./6r6>p./6z6>x./66>./6n6>li6j6>h66>6~6>|./66>6 6$66 D66>0CQRrY_Z[X PVc!r 666^XøD3!D!øD3!D!ô0!=u=sPWU rt]_XVS33ɀu 6ļ(t 6ļx=r='w 6ļ6ļhÃuu 63 tTr u뚜u)RUQWP/t=u P66X63ɀt&M &85u&Ms+ tt&;&;u Itr u&}r2& G6PSQUWR666 t# u/rZ_ tc_Zr]Y[PSR6u,wsY!2t ;trZ[Xu&!s&U! t &!GIuWPSٰu+K[X_3 tO@׃u(!P&ZXs@B!&=uUQY!s ;t;u]ø'Àtƀu >W6> t&=t&:r&:EwGG_63ۓ6666 v70RA u t<u| ,u66A$u| ,u66A u | ,u66A333663 t!%&8%u &8et:u&KsGGBIuV t5M6>u,D0&:Eu<0u t46>uBBIIOOW+_YsQʀ|t tIIGG^ u^ u3 tfUWQ36>u;Du|g(D t DtD u|uD u: X"rY_]^ 6>ur6366 yX6C@uu 6CC3ۀ|u6LJ -CC6Ƈ C]336D :v*DtD 6C@uu|t 8Ls*LъL t%Du Dt&GX6C@uCuDu tD 6C@u$uDuDt t 6uUQW3ۍ>[r_Y]D0u&PABs&EP & tGA+U]3363D u&&D utC$6 Du6 XDu(&D uĀtC6 Du6 *&&UD uƀtC6 Du6 D@t*PR82!s6,D ZXD ,LjD  t3Ҳ-RU]6 |336>u 66A3D66AD|6>u _n66A3D`66ADT6>uDF66AD:66A.Uô8!s 66-ËDDu=cvc66I6:u0PAA66]6 Dt6>uD< |<~aPApPA33D t Dl66AD uDt DT66ADH66ADDt6>u < |, <u "Uô8!s66:6.66I6:u0PAA66QRv$ ! ts Ȋ!rZY ,@ R,j-./0,1o23JIncorrect DOS version Directory not empty Cannot %1 a network drive 7Joins a disk drive to a directory on another drive. JOIN [drive1: [drive2:]path] JOIN drive1: /D f drive1: Specifies a disk drive that will appear as a directory on drive2. F drive2: Specifies a drive to which you want to join drive1. path Specifies the directory to which you want to join drive1. It must be empty and cannot be the root directory. P /D Cancels any previous JOIN commands for the specified drive. ?Type JOIN without parameters to list currently joined drives. >Extended Error %1>O Parse Error %1>sUWV~E P]MUu_U4 ]W~]MUuĉE XE ^_]UWV~E P]MUu_Uj ]W~]MUuĉE XE ^_]UWV~E P]MUu_U ]W~]MUuĉE XE ^_]obdwh.[]0|<2>+4=;sS&&:s[ 6qSWUyp u>r7 t2>up u"pAtN<=upCsɬCN6fu&6yh&&ePw&EX<u &U&MY<u&UO<t<t<u&U=<uq@&E&]+&u&]P&Gt &GtX&Gt_7P& uPSRWd `_Z[Xtd>d u<td*>d u#td>d u t d>7u >dud XPV t<:u |u sFF^XVRЊr t FFZ^$:SW>)t>$8tPQRe»!ZYX]ECC,&_[<0r<9w,0PSRW&& ud 6_Z[XPURVCr:rpt <=u&~unpt<:u &~uZFZ&:Fu tPFE&:FuCFE&:Fu9FEp@t&G t&~t"&t<:u &~u <u&~:t6s^Z]XPQRVSV^ r tre t rY  uRt uBȡ u9 u uȡ  udsl[^[^d ZYXÍ6tu<:t0<.t, <-t&q tWu 7^_9^_&u-d%XV t*t [sGFGFjG>f^_Xt PXSQ. :tCAY[PR t5r*|:t &t|u mu%PQRWU3޸c! ]_ZYXt%6km6km<t:r:DwFF[^UWV~E P]MUu_U]]W~]MUuĉE XE ^_]UV V^:u -@FFvFP@uFP=u+lFPvg tFF)F*PC tF^F?\u^?t^F uvyBF t=\u|^]U3 vNPvv]ȃ]U3 v8P P]U FFFFPFPxFNFFFFFPFPZ~t+]UK FFFFPFP(FOFPFP~t+]U vvF uv\FF]U^F\FGFFFFFPFP~t+]UWVuF^F t:u -AFF^FA^G:^?\u SF@@P\GF@PF@@P] t^?tv=~ <Pvvvv>PEP uvLvF<\uF\@PEP uFVW]BPEP uFFFFHFEPF@FP^؉^?uFF9Fu~O뜊F<tDv=u GPv+^_]UFFPFPF*]U Z cJ PPZ PFFFFF^P F^I&9tF&8w&8GrF+PFPF]ÐU}WVFDRFPVVV+DFVF^~&~F~C~^_]U*WVFDRFPVVPV+DFVF^~~&F~C~^_]UV~|?' 9F}6Xn  FVF^v&vF~X|+^]UV~|?' 9F}6Xn  FVF^vv&F~X|+^]U츂+VF܉FFPv: t?Fu8FɋVˉ~VF^Ķ~&vF~!|Fܘ;Fu+^]UhVFFPv u+! DF@DVVF%ȃ@^]UhzVFFPv t& DF@DVVEFuDt+^]U-VvFvFF9F~+FFF+F@;F~vv^8ub~t~tVD*P2=tEFFFFF^v^v8uNFFF~܃~uFF FFx^]U dV+FF>ju+P P PFP P:F tFyF^6 F^6 FF~|޸PFP PF u FF^*9vt  FFF~|jI^]UVFv怼 u u+%vF8 w 8 r F~rǸ^]ô0!<s 6+rׁns3PvL!6&r6&nƱH6l6+۴J!6np+3;3666Pظ6p'P{Pp0!5!%'!.&6,36sM6ڻ6&,63&=t, t 3utHD!r €t@Ky羒U쾔}tU쾔fl t ~uFt>!CFL!%!>t %!;s OO ;s EtUP{>tPi]ø[Y+r ;r3EV3B22Ut P,^Ï8t)&,33uGG>ыѿ< t< t< to tkGN< t< t< t\ tX<"t$<\tB3A<\t<"tӋѨuN< t+ t'<"t<\tB3A<\t<"tۋѨu>G׀+ģ6?CC6 u63< t< t< u uy6?CCN< t< t< tb t^<"t'<\t3A<\t<"t\Ѱ\s"N< t. t*<"t<\t3A<\t<"t\ٰ\s"3&UU3ɋI6, t&>tEuE@$W _ϋ.3I<;Ct~EE uN]]UVWV;t@t 3_^]UWv t3I@!_]rr59ls%Pرً+ËشJ!Xr$Hl.rrËr3]sPX]s]2â u#>r <"s < r<vטÊUWV0+Dt V0@tG96Hs^_]UWV8FFVFPvVaFVWRF^_]UWVvDF-0FDtD@t L DuLd+D~D u_ށ0uF8t@u3v u-.8uj D^GVDuށ0tP<+|D@^GHD ~Wtv F^ tP+PPS \FPFPvP F9~tF*^_]ÐUVF-0FP\ ^G tO^G^OF@G^G^DG^]UVv.8uF @u$Fj D uށ0t+5-0FFD^GDL^]UV~t[~8t~@uv^GP tdF-0FvK^G^+G*^tj uGP{ t v^]UWVv+D$<uFDuށ0t'+DF ~PtDPc ;FtL DD^_]Ud!WVvF|Fp|<%tX+xtv~rnz |0uxu~n <-uzFP uVPf>} zأ<.u#FVP<>} =Ft2=Nt5=ht =luv>vuu >vu+vF9t'F>zt . }+|P:P~t">ztF- }+.|P/+P*>vtNG=t=%u+PV<t|>uYpG tOM281"2"2"2,281,2,2,2,2 1L1R1,2,22,241,2,2 2>t>upG uF뙐^_]ÐUWV~ t>vt>vu|WFV|*>t|FF|FV|>nt F FtF+6>u*~}$~ u-FFV؃ډFVFFFvWvv >t!W +ȉN0FI Nt tux ~t ~u+P^_]ÐUWV~t|F^|>vu|WFV||FF^|>vu F FuJ ~u QF^FVFV+96t^F&?tF;~F^F&?u>+>zuWVvvo>ztW^_]U|F~gt~Gu*F>u~t >u6t6v6vt ~t>nu 6v>nt>u 6z|x ~tv| t+P]UV>u/pOxF7* Sv@u^]ÐUWV>uIv ~B6p6]@uN ~pOx۠?*܃>uF^_]UWVv>uP6p^&P@uFN tpOx^&p?*҃>uF^_]U WV6+FF>0u9t9rt9u >VaF++~>zu<-u>0u PN>0t ~>zt~tF_>tFj>zu&W~t ~u5>t ~u=vV>zt  Wa^_]Ã>xt+ PÐ0P>u>ttXxPÐUWVvF<*u|?|FH<-uFF+<0|5<909>u <0u0ȃ0F<0|<9~F^?^_]ÐUVXNF<t : u+^]ÐU^;r *FtH~ t3ɋѸB!rKF uFVy(6VFѸB!FVy NVB!؋VNF B!rU^;r  t B3ɋ!rtnV3FFWVfNT uJ=vHܺ=(s+ԋN< t ;t#a ;u F ^_UE3PSQ+^@!r F tY[XÃs @t ^?u F+Ff^_N uV@!s u@t ڀ?uY;s+3U^ tO]UVW^?u)su3$@$^`D6dN؎ _^]AtswtBH;st4Dt L+HLƌڌ;t&l&r=t%tH;stDG t&rt،;t&h7뼋w3j;t $@@^t MtNN뙌،;t&lG3QEt+IAA&;nvurr #+ uu3YRQtWDw+JUXYZSP3RRPPZ[t UVW~u8rVFHuSr'H6Ht;t DF V:^s0s uڃ۱H!r钉T63_^]ËN 9Lt u?r9ӎ;u9ls&;u ١+؎J!r ;ulU׋ތ؎~3u~+FtI]U׋ދv؎3ы~ǨtI]U׋ތ؎v~3+t]U׌؎~3I]UWVN&ً~3ˋvD3:EwtIIы^_]UVWU^;}| @t3]UVW~]MUu} !W~]MUuE r3u _^]UVW~]MUuu ~]_!W׎ߋ~E~]MUuE r3au _^]N FV~W t u y -ۃڋ3 t0<9v' uODD;rX_^]U9U;V!U:V!s=u쒓C<t %s /\\*.*/D/?  $AMS DOS Version 6 (C)Copyright 1981-1994 Microsoft Corp Licensed Material - Property of Microsoft All rights reserved u([]|<>+=;"%s \\...\\00@(#)cmsubstr.c 1.1 86/06/17L(RLr;C_FILE_INFO C p   Bxt(null)(null)+- # (((((+<>R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating point not loaded R6001 - null pointer assignment &nnRB OP4PˌÌH؎GH+s+ڋ+s+¬NF$6 -؎֋./@ʎں!L!Packed file is corrupt q ;%%C&'xD|KBD$BUF$..W.>&E_=uu.1.`.b^ϝ..1PSQRWVU.> &E]^_ZY[X&u?W.>v.>sȃ@q|s..s.ss.|....J.t ! !.d.f.lp.n.p|.r...t/5!.1.3/%5!_.&E&M.!@.&&&.&3úN (33 !_&E&M&E .&À< tG< tF< t:< t2<-u.&.>s!Ds.2..F.3ҋڹrPû XF,0< vWRQ03ҋ' t 3һ t 3һd t 3һ t 0$YZ_0123456789ABCDEF5 KBDBUF v1.2 - Keyboard buffer extender Installed a XXXXh$ keystroke typeahead buffer $Part of the new keyboard typeahead buffer is beyond the range of the ROM BIOS data segment. Either reduce the size of the buffer, or make certain that this driver is loaded early in CONFIG.SYS, and it that it is not loaded into high memory. Requested buffer size is too small. $Requested buffer size is too large. $FONT ALCD 5>>>6>6<<fff<'|@p||p@<~~<666666?jj: >>>66 ?~((>h> ~?Rl5v6;nf;0  0 066~0~ 0`@,fff48< 80 0 ~~0  0A]U_@> >#c|66>33~3a``1|63336|14<4114<40x3a`g3fff~fff<<ff<gflxlfgx00013AcwkccCcs{ogc6ccc6~33>00x6cck6|ff|lfg>fp<f|~Z<cccccc>wb64cckk>6"ff<;3;n>f`f<6nff;><=f8>c>p06;33s8<  ll8p036<6w8<vkkkv;33s0x:ff>n;30x>p<|> ffff;s26kk6"s66gw3 l8~L2~ppp9N6&c3a``1lffff;<f`68<60l8<<8<08<66?c6?c 1<1v?lw?=,>lmo<Xp0df<~``~`fl~;fL`fl{7kO6ll6l66lDDDDUUUU44444444444444444444444444444447744444770??07444444447707444444444444444???444444444=nfn;k>6cc66cc6Uw0,ff<6MY6>gks>@0>0>>>6>6<<fff<'|@p||p@<~~<666666?jj: >>>66 ?~((>h> ~?Rl5v6;nf;0  0 066~0~ 0`@,fff48< 80 0 ~~0  0A]U_@> >#c|66>33~3a``1|63336|14<4114<40x3a`g3fff~fff<<ff<gflxlfgx00013AcwkccCcs{ogc6ccc6~33>00x6cck6|ff|lfg>fp<f|~Z<cccccc>wb64cckk>6"ff<;3;n>f`f<6nff;><=f8>c>p06;33s8<  ll8p036<6w8<vkkkv;33s0x:ff>n;30x>p<|> ffff;s26kk6"s66gw3 l8~L2~ppp9N6&c3a``1lffff; <f`68<60l8<<8<08<66?c6?c 1<1v?lw?=,>lmo<Xp 0df<>{UY]w>~`fl~;fL`fl{7kO6ll6l66lDDDDUUUU 6?c66?c6?c>k]Q]k>4444444444444444cc6 6cc6:n33>0xx>33>0x [cccc>wcccc>mcccc> w3 l8 f4< 0~~~p[6_;oC?jj: >>>6>6<<fff<'|@p||p@<~~<666666?jj: >>>66 ?~((>h> ~?Rl5v6;nf;0  0 066~0~ 0`@,fff48< 80 0 ~~0  0A]U_@> >#c|66>33~3a``1|63336|14<4114<40x3a`g3fff~fff<<ff<gflxlfgx00013AcwkccCcs{ogc6ccc6~33>00x6cck6|ff|lfg>fp<f|~Z<cccccc>wb64cckk>6"ff<;3;n>f`f<6nff;><=f8>c>p06;33s8<  ll8p036<6w8<vkkkv;33s0x:ff>n;30x>p<|> ffff;s26kk6"s66gw3 l8~L2~ppp9N6&c3a``1lffff; <f`68<61<10 <<6>cc608<;n6?c66?c 1<16?c 1<1<0ffff;0<<;n6cc66Acccc>xllzfof 6cc6 0df< 6cc6~`fl~;fL`fl{7kO6ll6l66lDDDDUUUU44444444444444444444444444444447744444770??07444444447707444444444444444???444444444=nfn;k>6cc66cc6Uw0,ff<6MY66ok> 0>0>>>6>6<<fff<'|@p||p@<~~<666666?jj: >>>66 ?~((>h> ~?Rl5v6;nf;0  0 066~0~ 0`@,fff48< 80 0 ~~0  0A]U_@> >#c|66>33~3a``1|63336|14<4114<40x3a`g3fff~fff<<ff<gflxlfgx00013AcwkccCcs{ogc6ccc6~33>00x6cck6|ff|lfg>fp<f|~Z<cccccc>wb64cckk>6"ff<;3;n>f`f<6nff;><=f8>c>p06;33s8<  ll8p036<6w8<vkkkv;33s0x:ff>n;30x>p<|> ffff;s26kk6"s66gw3 l8~L2~ppp9N6&c3a``1lffff; <f`68<60l8<<8<6?ccc66Acccc>6Accc>>Xp 0 k>6cc66cc6Uw0,ff<6MY66ok> 0>0>>>6>6<<fff<'|@p||p@<~~<666666?jj: >>>66 ?~((>h> ~?Rl5v6;nf;0  0 066~0~ 0`@,fff48< 80 0 ~~0  0A]U_@> >#c|66>33~3a``1|63336|14<4114<40x3a`g3fff~fff<<ff<gflxlfgx00013AcwkccCcs{ogc6ccc6~33>00x6cck6|ff|lfg>fp<f|~Z<cccccc>wb64cckk>6"ff<;3;n>f`f<6nff;><=f8>c>p06;33s8<  ll8p036<6w8<vkkkv;33s0x:ff>n;30x>p<|> ffff;s26kk6"s66gw3 l8~L2~ppp9N6&c3a``1lffff; <f`68<60l8<<8<08<66?c6?c 1<1v?lw?=,>lmo<Xp 0df<~``~`fl~;fL`fl{7kO6ll6f~$$~fDDDDUUUU44444444444444444444444444444447744444770??07444444447707444444444444444???444444444=nfn;k>6cc66cc6Uw0,ff<6MY6>gks>@0>0..../. .).+...-@us .-+s.-@u.-s.-.-s.-.-..u p s.-.- s.-s.u.-ys .-k^s.-@u.-T=s.-.-?os.-.-* s.-u.-.- { s.-.>t.>. ..-t .-u.).+.  . .......6.>...-u).-@u.-pUf]ϰ.-[.6.-. C.UP.%f FX]P.@t/t S.$&[ . XP . .@t/tS.$&?t&[XP.>#r؃>u >u/<XV..6|:u$m .&:t}u &E\.>^V..6..6.´G. .>.&:t}u &E\.>^WQ.>PX.;..:\. Y_S,@д2. u]G HOA./uEW u7.=w+.e=@ w.K=w.2=w.G.9rT.G.G..G ..G =v..>#s G.G.[VPSR.,A6.=t0.># r$ D@. ut .-Z[X^Í;C. r..;<. rI...@.. r";u. @. r;uMu.>. tA;. .;=. r.ش?. r;tNPSQRPR.;@. ؃ZXt ºZY[XÍ>V..6I.. V.-tN. s.-t .t .t O. rrrr.u..........>V.>W:uWIYu+ϋ.>.-t> ÀtQVWώNj> _^YR . Z.. R..<t..).6.-tD uQrxrFZR..9<t).6.-tD u r4rZVWQ.> u>K .u .-@Y_^W|~_VWQ.uA.> w8>V6>.>W:u=\t=/uG ..u .-@Y_^WQ.u.> .uY_PRW.EW.EN.F> .:5t.;u .:Uu}_ZX$$$TMPIMGTHMIMX.6.-tV.>&.G&^D .D.D.D.D.D..&-. .&-r=tr .-..&.6..>#r.=t4re .>ǺS..1.3.5[r<.G .8u-G.9u#G.9uG.9uG.9uG.>.=ri=sdK=rY=tTwJQrMF;u2=r@=t;w18r4F;u&E=r!=twF;u&Er 륫.>V.6;s!&<u&9Dr&9Dv!&9t۫.6.6;v^^..A.-t:. /..6>V2V. <uÜPSQR,. .*.   .ZY[XSQRVWU.0t.9.71.1..%r ]_^ZY[Ý....-t..ʋ.B. so...;r.W@. rD;u@.@u .&X뙹.B. r@. r;u.tVQP6.FXY^ù(>.u>..+;w.@.6.+tW.>.>_+tSQWV..zǺ..z.9t.*.;r#P.+...|.z.~..~....>tf.u:..>z.>z.zt%.z=tw'}..z.&.z.>zt^w.z.|..)=uQ.u .>zt2w= .>zt&w1..z.z..~.^_Y[.PQR.6.;t?rI.;uA.;s.>"...1.3.5ZYXSQW..z.u*.zt%=r _Y[Ë.&a.&0.>#s.>#r'.>(tG HOAG t.0.0&5!&(Wr ;,u_^ZY[X>$t8%%!D&%!$ Deletion-tracking software being installed. $ Installation complete. $ Cannot install. Already resident, or unknown status. $ Delete tracking software must be installed before other PC Tools programs. $ Invalid parameter(s) specified. $ The following drives are supported:$Default files saved.$nnn files saved.$ Drive A - $WARNING! Unrecognized DOS INT 25h/26h handler. Some other TSR programs may behave erratically while deletion-tracking software is resident! Try installing MIRROR program before your other resident programs. $&H+P..>r .>\u .>\t8r ! s#.ts !s  !33ɸUUu;t"33ɸUUu;t3ɸͫu  !.>#r$؃>u >u/#s s !.$.(.t/#%!!5!.". !%!5!..%!.>#r&/5!../%!4!.$.& !.>#rb!&,I!...1!3!r0!.#.>(.>#r .>rX!.X!.X!r X!s...C.&,I&H!reI!=rX6..&...K.Kr).!..&Xr9t.X.!X.!PQW.&,&,++&9Eu_YX.HJ! J!sJ!SQRVW..>#r.X!r ..R!t &W39z&O@;u)&? u ;t6t"6tC&#r.>r X.!X_^ZY[.LB?Lu,r.u.@r.>u. r%=ARu%=TNur.`u.xIrq\I.<-t!w)I 0O=t_ZY[X$5!..{$%!.$%!ðPQVW+#sE.# !T.#.$@uhss".$@u.$@u&.# !.$@u .# !o.>$t.$I!.$.>$t.$I!.$.#.&$ø5!.$.$#5!. $. $%%!%#%!.>$t.$%!. $#%!.$.$PSQRWVUO'ºv 0Oźξ]^_ZY[Xx:\MIRROR.BAKx:\MIRROR.$$$x:\MIRROR.FILMIRORSAVFIL')x:\MIRORSAV.FILMIRORSAVFILMIRROR FILaMSESLIFVASRORIMESAEPM/ u =1u.$.#.62&.4&.u&I2&u !AF._&.C&.Q&.&..&$.#.$@u ! !._&slSswt.$u r.$uw s .>#u8#.#_&C!!sU.$u=!sC..&..&B!r.6&.&;r..&>!!rt !.6$.&. &."&.6&. rG.$uB.&.&&P ЎX%.$.$.&. &.&F. scp.$ur.#_&C!=! r..&.6&..&L r !.&. &."&.&.&.$u.$.5'. s.&Q.#>' Yt .&t. &."&G.&.#&C!"s&=!"s.0&.&- . &. '."&.'*!.%'.'',!.)'.0&) '@!";t7>!"s+&C'!"rr.#.$u.#.$u.#R !Z !.#_&C!A!&uϴ>!!sf.#_&=! r2U.&2.&3r@.#.&.&.&t@@.#_&C!r'.$=!rظB33!r Z;vO+>!&C!r'.$ =!rظB33!r (;v+>!t._&@6!r;r]S.#t@[.$@u.$u6'.$ u6&PSQU.&.&& .$.$.#Q Yt &&G]Y[XSQRWVU=rh.:&.&&.<&.&u2Ot ''%=r(=s#ƺ=rs]^_ZY[.<&؃.8&ô !.&.&.&.&.&.&.&.6$<rr. &.y&."&.{&.&.;&wrK. &.}&."&.&\.&L.>&.&r/G. &G."&GGE ..&.&r/G. &G."&GGE.>&v.&..&B!ڍ sk=tt_..&@.#@_&!.$L@.&@@! s>!!s.#_&C!!.&QR.#&C!r&A!ZYR.#R !Z !ZVPSQR.6&G .;&uLG .:&uBG.;&u8G.:&u.GG.;&u!G.&G.&G.&.6$DZZ!Y[X^..&.$ueR.&.&&Z..&@!rM;uI.$uAR.&.;&v.&.)&.&&Z..&@!r;u.>&t .&.# ! !PSQRVW.80.>#r+3* t#.80AC D!ru;680*1!r#t!rt.80,A&t_^ZY[Xx:\.>$t.$I!.$.>$t.$I!.$.u&2._&@!#s1O .&+O.&G.&G.&.&G.&,O .&+O.&G.&G.&.&G.&G.:&.6&.&.&&.&.5'.&.7'.&.&H!r.$.$H!s.$H!s.$.$.>$@r.$.>$.&QX@.6&t@=w.&.6$D.>&.&D.>&.@&._&D.&.&.&&.;$w?.6&.8&.>#r.&.&&.&t.u&ÍO!Í ô !.&. &."&.&.&.$u.$.5'u. s .#.&.#>&<t#Q Yt .&t. &."&,G.&;t.+&;w.$@u"ZQ !.&.&.&.&.&.&.&.&.&.&.&t Ã.6&.&.9&t\.&=t.&H;w.&.&.&.$u*.$.7'.&.&. &."&A. s .#.6&.7'.&u.&u%=t(.&[r.&.&.9&s.&(!7 !.&. &."&.&.&.$u.$.5'. s .#.&Ȁ?t&?t! .&t. &."&뫍".$.#6& !.$u.$.5's s .#.7'.6&.&u.&t .&.&.&. &."&Q.&H.9&ssYr.&. &."& s .#.&&.&t.9&u.&@.$ue.&`.$.5'esG.#>'u0.&@t".$.>5'.&.5's#S-.&.&. &."&[SQRWV.$.&Ǻ.&.&.9&t.&*.;&r#P.+&.&.&.&.&.&.7'.&.&.&.7'.>&tj.&u<.&.&.&.&t%.&=tw+.&.&.&.>&tmw.&.&.&.)&=u`.&u .>&tBwM .>&t6wA..&.&.&.&.&. &."&^_ZY[.&PQR.6&.;&t7rI.;&uA.;&s.>&.&.&. &."&SZYX.#.#>+'.$u@=&!r5ع)?.$.5'!r;r>+'.65'.65'>!.#.#.$tCC&!r}AC&!sCC&!r>Q&V!C_&!>C&V!=C&!r&ظB!B&@!W!W!>!C!C&!>_&Q&V!øCC&!=C&!r2ظB! '@!W!W!>!C!C&!SQRVWU.6 &.6"&.&&.(&.,&.,&R.;*&v.*&.$&.),&._&,A. &.u&t .# &%r,.(&.*&. &."&."&. &]_^ZY[ÝPQSرÎ[YXSQRVWU.&&.(&.$& ;r%._&,A. &.u&t .# &&r ]_^ZY[Ý.&$:MIRROR 6.M saved partitionsBIBM HARDFILE TYPx:\PARTNSAV.FILt*uuiAr2:< DύA;#%! uC+C؎>">&> >>6uō6/u6!u>$t,68%{u6D&ou6"%w6&&m6 !c6Y6/O&, tH@&;uI!ôI!rC.&&EE3&;5u&;]3|tr u PAXANwG:C::SC:[r uՊC:8_C:C:$:G:r֠G:l:*!x:6w:v:,!.u:t:3۸3! u0!ģz:i:=ri:r ut&G0:34:0:j::::8:C:C:%4:|:H:<:D:E:H:C:6D:E:0:s A&Whs AH4:><:t&E9H:t/i:t(C:0:r6:QYui:t%>>: t&M&uC:0:ss>@: t&&ED:&EE:8:>8:s0ArC:@C:$:G:s 4:::6J:3B>n:6:0& B:¸6!!rAÐ6:>!BQRW&UuS3҉>:@:&a t8&<t :s뢀wwފ_ZYV6::&A&a%&A;Dw&yt&a?:dw &A$?:Dv^È$?G$?G%ʼnGW>4:&M&&]j:0:4:_ÍH_Ӌ‹.;s%;t %BpB::B] CV !::: ! ! !>:t+:,ArŢB:!PB:!!ZP!X:B:uP !XÊ< uF3ۊrNшF>At>DAt < w C븊%/PARTN/UNo partitions to save. $ Disk Partition Table saver. $Error reading hard disk. $Non-standard, missing, or bad partition table. $Too many extended partitions. $ Successful. $Error accessing target file. $Not enough memory. $The partition information from your hard drive(s) has been read. Next, the file PARTNSAV.FIL will be written to a floppy disk. Please insert a formatted diskette and type the name of the diskette drive. $What drive? A$ Bad option! $Cannot unload resident deletion-tracking software. Vectors or memory have been altered. $Cannot unload. Deletion-tracking software is not resident or is a different version. $Deletion-tracking software removed from memory. $ Records information about one or more disks. MIRROR [drive:[ ...]] [/1] [/Tdrive[-entries][ ...]] MIRROR [/U] MIRROR [/PARTN] drive: Specifies the drive for which you want to save information. /1 Saves only the latest disk information (does not back up previous information). /Tdrive Loads the deletion-tracking program for the specified drive. -entries Specifies maximum number of entries in the deletion-tracking file. /U Unloads the deletion-tracking program. /PARTN Saves hard disk partition information to a floppy diskette. MIRROR, UNDELETE, and UNFORMAT Copyright (C) 1987-1991 Central Point Software, Inc. $Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack Mirror Stack ' ' Q B a s i c M O N E Y M A N A G E R ' ' Copyright (C) Microsoft Corporation 1990 ' ' The Money Manager is a personal finance manager that allows you ' to enter account transactions while tracking your account balances ' and net worth. ' ' To run this program, press Shift+F5. ' ' To exit QBasic, press Alt, F, X. ' ' To get help on a BASIC keyword, move the cursor to the keyword and press ' F1 or click the right mouse button. ' 'Set default data type to integer for faster operation DEFINT A-Z 'Sub and function declarations DECLARE SUB TransactionSummary (item%) DECLARE SUB LCenter (text$) DECLARE SUB ScrollUp () DECLARE SUB ScrollDown () DECLARE SUB Initialize () DECLARE SUB Intro () DECLARE SUB SparklePause () DECLARE SUB Center (row%, text$) DECLARE SUB FancyCls (dots%, Background%) DECLARE SUB LoadState () DECLARE SUB SaveState () DECLARE SUB MenuSystem () DECLARE SUB MakeBackup () DECLARE SUB RestoreBackup () DECLARE SUB Box (Row1%, Col1%, Row2%, Col2%) DECLARE SUB NetWorthReport () DECLARE SUB EditAccounts () DECLARE SUB PrintHelpLine (help$) DECLARE SUB EditTrans (item%) DECLARE FUNCTION Cvdt$ (X#) DECLARE FUNCTION Cvst$ (X!) DECLARE FUNCTION Cvit$ (X%) DECLARE FUNCTION Menu% (CurrChoiceX%, MaxChoice%, choice$(), ItemRow%(), ItemCol%(), help$(), BarMode%) DECLARE FUNCTION GetString$ (row%, col%, start$, end$, Vis%, Max%) DECLARE FUNCTION Trim$ (X$) 'Constants CONST TRUE = -1 CONST FALSE = NOT TRUE 'User-defined types TYPE AccountType Title AS STRING * 20 AType AS STRING * 1 Desc AS STRING * 50 END TYPE TYPE Recordtype Date AS STRING * 8 Ref AS STRING * 10 Desc AS STRING * 50 Fig1 AS DOUBLE Fig2 AS DOUBLE END TYPE 'Global variables DIM SHARED account(1 TO 19) AS AccountType 'Stores the 19 account titles DIM SHARED ColorPref 'Color Preference DIM SHARED colors(0 TO 20, 1 TO 4) 'Different Colors DIM SHARED ScrollUpAsm(1 TO 7) 'Assembly Language Routines DIM SHARED ScrollDownAsm(1 TO 7) DIM SHARED PrintErr AS INTEGER 'Printer error flag DEF SEG = 0 ' Turn off CapLock, NumLock and ScrollLock KeyFlags = PEEK(1047) POKE 1047, &H0 DEF SEG 'Open money manager data file. If it does not exist in current directory, ' goto error handler to create and initialize it. ON ERROR GOTO ErrorTrap OPEN "money.dat" FOR INPUT AS #1 CLOSE ON ERROR GOTO 0 'Reset error handler Initialize 'Initialize program Intro 'Display introduction screen MenuSystem 'This is the main program COLOR 7, 0 'Clear screen and end CLS DEF SEG = 0 ' Restore CapLock, NumLock and ScrollLock states POKE 1047, KeyFlags DEF SEG END ' Error handler for program ' If data file not found, create and initialize a new one. ErrorTrap: SELECT CASE ERR ' If data file not found, create and initialize a new one. CASE 53 CLOSE ColorPref = 1 FOR a = 1 TO 19 account(a).Title = "" account(a).AType = "" account(a).Desc = "" NEXT a SaveState RESUME CASE 24, 25 PrintErr = TRUE Box 8, 13, 14, 69 Center 11, "Printer not responding ... Press Space to continue" WHILE INKEY$ <> "": WEND WHILE INKEY$ <> " ": WEND RESUME NEXT CASE ELSE END SELECT RESUME NEXT 'The following data defines the color schemes available via the main menu. ' ' scrn dots bar back title shdow choice curs cursbk shdow DATA 0, 7, 15, 7, 0, 7, 0, 15, 0, 0 DATA 1, 9, 12, 3, 0, 1, 15, 0, 7, 0 DATA 3, 15, 13, 1, 14, 3, 15, 0, 7, 0 DATA 7, 12, 15, 4, 14, 0, 15, 15, 1, 0 'The following data is actually a machine language program to 'scroll the screen up or down very fast using a BIOS call. DATA &HB8,&H01,&H06,&HB9,&H01,&H04,&HBA,&H4E,&H16,&HB7,&H00,&HCD,&H10,&HCB DATA &HB8,&H01,&H07,&HB9,&H01,&H04,&HBA,&H4E,&H16,&HB7,&H00,&HCD,&H10,&HCB 'Box: ' Draw a box on the screen between the given coordinates. SUB Box (Row1, Col1, Row2, Col2) STATIC BoxWidth = Col2 - Col1 + 1 LOCATE Row1, Col1 PRINT ""; STRING$(BoxWidth - 2, ""); ""; FOR a = Row1 + 1 TO Row2 - 1 LOCATE a, Col1 PRINT ""; SPACE$(BoxWidth - 2); ""; NEXT a LOCATE Row2, Col1 PRINT ""; STRING$(BoxWidth - 2, ""); ""; END SUB 'Center: ' Center text on the given row. SUB Center (row, text$) LOCATE row, 41 - LEN(text$) / 2 PRINT text$; END SUB 'Cvdt$: ' Convert a double precision number to a string WITHOUT a leading space. FUNCTION Cvdt$ (X#) Cvdt$ = RIGHT$(STR$(X#), LEN(STR$(X#)) - 1) END FUNCTION 'Cvit$: ' Convert an integer to a string WITHOUT a leading space. FUNCTION Cvit$ (X) Cvit$ = RIGHT$(STR$(X), LEN(STR$(X)) - 1) END FUNCTION 'Cvst$: ' Convert a single precision number to a string WITHOUT a leading space FUNCTION Cvst$ (X!) Cvst$ = RIGHT$(STR$(X!), LEN(STR$(X!)) - 1) END FUNCTION 'EditAccounts: ' This is the full-screen editor which allows you to change your account ' titles and descriptions SUB EditAccounts 'Information about each column REDIM help$(4), col(4), Vis(4), Max(4), edit$(19, 3) 'Draw the screen COLOR colors(7, ColorPref), colors(4, ColorPref) Box 2, 1, 24, 80 COLOR colors(5, ColorPref), colors(4, ColorPref) LOCATE 1, 1: PRINT SPACE$(80) LOCATE 1, 4: PRINT "Account Editor"; COLOR colors(7, ColorPref), colors(4, ColorPref) LOCATE 3, 2: PRINT "No Account Title Description A/L" LOCATE 4, 2: PRINT "" u$ = "##\ \\ \ ! " FOR a = 5 TO 23 LOCATE a, 2 X = a - 4 PRINT USING u$; X; account(X).Title; account(X).Desc; account(X).AType; NEXT a 'Initialize variables help$(1) = " Account name | " help$(2) = " Account description | " help$(3) = " Account type (A = Asset, L = Liability) | " col(1) = 5: col(2) = 26: col(3) = 78 Vis(1) = 20: Vis(2) = 50: Vis(3) = 1 Max(1) = 20: Max(2) = 50: Max(3) = 1 FOR a = 1 TO 19 edit$(a, 1) = account(a).Title edit$(a, 2) = account(a).Desc edit$(a, 3) = account(a).AType NEXT a finished = FALSE CurrRow = 1 CurrCol = 1 PrintHelpLine help$(CurrCol) 'Loop until F2 or is pressed DO GOSUB EditAccountsShowCursor 'Show Cursor DO 'Wait for key Kbd$ = INKEY$ LOOP UNTIL Kbd$ <> "" IF Kbd$ >= " " AND Kbd$ < "~" THEN 'If legal, edit item GOSUB EditAccountsEditItem END IF GOSUB EditAccountsHideCursor 'Hide Cursor so it can move 'If it needs to SELECT CASE Kbd$ CASE CHR$(0) + "H" 'Up Arrow CurrRow = (CurrRow + 17) MOD 19 + 1 CASE CHR$(0) + "P" 'Down Arrow CurrRow = (CurrRow) MOD 19 + 1 CASE CHR$(0) + "K", CHR$(0) + CHR$(15) 'Left or Shift+Tab CurrCol = (CurrCol + 1) MOD 3 + 1 PrintHelpLine help$(CurrCol) CASE CHR$(0) + "M", CHR$(9) 'Right or Tab CurrCol = (CurrCol) MOD 3 + 1 PrintHelpLine help$(CurrCol) CASE CHR$(0) + "<" 'F2 finished = TRUE Save = TRUE CASE CHR$(27) 'Esc finished = TRUE Save = FALSE CASE CHR$(13) 'Return CASE ELSE BEEP END SELECT LOOP UNTIL finished IF Save THEN GOSUB EditAccountsSaveData END IF EXIT SUB EditAccountsShowCursor: COLOR colors(8, ColorPref), colors(9, ColorPref) LOCATE CurrRow + 4, col(CurrCol) PRINT LEFT$(edit$(CurrRow, CurrCol), Vis(CurrCol)); RETURN EditAccountsEditItem: COLOR colors(8, ColorPref), colors(9, ColorPref) ok = FALSE start$ = Kbd$ DO Kbd$ = GetString$(CurrRow + 4, col(CurrCol), start$, end$, Vis(CurrCol), Max(CurrCol)) edit$(CurrRow, CurrCol) = LEFT$(end$ + SPACE$(Max(CurrCol)), Max(CurrCol)) start$ = "" IF CurrCol = 3 THEN X$ = UCASE$(end$) IF X$ = "A" OR X$ = "L" OR X$ = "" OR X$ = " " THEN ok = TRUE IF X$ = "" THEN X$ = " " edit$(CurrRow, CurrCol) = X$ ELSE BEEP END IF ELSE ok = TRUE END IF LOOP UNTIL ok RETURN EditAccountsHideCursor: COLOR colors(7, ColorPref), colors(4, ColorPref) LOCATE CurrRow + 4, col(CurrCol) PRINT LEFT$(edit$(CurrRow, CurrCol), Vis(CurrCol)); RETURN EditAccountsSaveData: FOR a = 1 TO 19 account(a).Title = edit$(a, 1) account(a).Desc = edit$(a, 2) account(a).AType = edit$(a, 3) NEXT a SaveState RETURN END SUB 'EditTrans: ' This is the full-screen editor which allows you to enter and change ' transactions SUB EditTrans (item) 'Stores info about each column REDIM help$(6), col(6), Vis(6), Max(6), CurrString$(3), CurrFig#(5) 'Array to keep the current balance at all the transactions REDIM Balance#(1000) 'Open random access file file$ = "money." + Cvit$(item) OPEN file$ FOR RANDOM AS #1 LEN = 84 FIELD #1, 8 AS IoDate$, 10 AS IoRef$, 50 AS IoDesc$, 8 AS IoFig1$, 8 AS IoFig2$ FIELD #1, 11 AS valid$, 5 AS IoMaxRecord$, 8 AS IoBalance$ 'Initialize variables CurrString$(1) = "" CurrString$(2) = "" CurrString$(3) = "" CurrFig#(4) = 0 CurrFig#(5) = 0 GET #1, 1 IF valid$ <> "THISISVALID" THEN LSET IoDate$ = "" LSET IoRef$ = "" LSET IoDesc$ = "" LSET IoFig1$ = MKD$(0) LSET IoFig2$ = MKD$(0) PUT #1, 2 LSET valid$ = "THISISVALID" LSET IoMaxRecord$ = "1" LSET IoBalance$ = MKD$(0) PUT #1, 1 END IF MaxRecord = VAL(IoMaxRecord$) Balance#(0) = 0 a = 1 WHILE a <= MaxRecord GET #1, a + 1 Balance#(a) = Balance#(a - 1) + CVD(IoFig1$) - CVD(IoFig2$) a = a + 1 WEND GOSUB EditTransWriteBalance help$(1) = "Date of transaction (mm/dd/yy) " help$(2) = "Transaction reference number " help$(3) = "Transaction description " help$(4) = "Increase asset or debt value " help$(5) = "Decrease asset or debt value " col(1) = 2 col(2) = 11 col(3) = 18 col(4) = 44 col(5) = 55 Vis(1) = 8 Vis(2) = 6 Vis(3) = 25 Vis(4) = 10 Vis(5) = 10 Max(1) = 8 Max(2) = 6 Max(3) = 25 Max(4) = 10 Max(5) = 10 'Draw Screen COLOR colors(7, ColorPref), colors(4, ColorPref) Box 2, 1, 24, 80 COLOR colors(5, ColorPref), colors(4, ColorPref) LOCATE 1, 1: PRINT SPACE$(80); LOCATE 1, 4: PRINT "Transaction Editor: " + Trim$(account(item).Title); COLOR colors(7, ColorPref), colors(4, ColorPref) LOCATE 3, 2: PRINT " Date Ref# Description Increase Decrease Balance " LOCATE 4, 2: PRINT "" u$ = "\ \\ \\ \" u1$ = " " u1x$ = "߳߳߳߳߳" u2$ = "###,###.##" u3$ = "###,###,###.##" u4$ = " " CurrTopline = 1 GOSUB EditTransPrintWholeScreen CurrRow = 1 CurrCol = 1 PrintHelpLine help$(CurrCol) + "| " GOSUB EditTransGetLine finished = FALSE 'Loop until is pressed DO GOSUB EditTransShowCursor 'Show Cursor, Wait for key DO: Kbd$ = INKEY$: LOOP UNTIL Kbd$ <> "" GOSUB EditTransHideCursor IF Kbd$ >= " " AND Kbd$ < "~" OR Kbd$ = CHR$(8) THEN 'If legal key, edit item GOSUB EditTransEditItem END IF SELECT CASE Kbd$ 'Handle Special keys CASE CHR$(0) + "H" 'up arrow GOSUB EditTransMoveUp CASE CHR$(0) + "P" 'Down arrow GOSUB EditTransMoveDown CASE CHR$(0) + "K", CHR$(0) + CHR$(15) 'Left Arrow,BackTab CurrCol = (CurrCol + 3) MOD 5 + 1 PrintHelpLine help$(CurrCol) + "| " CASE CHR$(0) + "M", CHR$(9) 'Right Arrow,Tab CurrCol = (CurrCol) MOD 5 + 1 PrintHelpLine help$(CurrCol) + "| " CASE CHR$(0) + "G" 'Home CurrCol = 1 CASE CHR$(0) + "O" 'End CurrCol = 5 CASE CHR$(0) + "I" 'Page Up CurrRow = 1 CurrTopline = CurrTopline - 19 IF CurrTopline < 1 THEN CurrTopline = 1 END IF GOSUB EditTransPrintWholeScreen GOSUB EditTransGetLine CASE CHR$(0) + "Q" 'Page Down CurrRow = 1 CurrTopline = CurrTopline + 19 IF CurrTopline > MaxRecord THEN CurrTopline = MaxRecord END IF GOSUB EditTransPrintWholeScreen GOSUB EditTransGetLine CASE CHR$(0) + "<" 'F2 finished = TRUE CASE CHR$(0) + "C" 'F9 GOSUB EditTransAddRecord CASE CHR$(0) + "D" 'F10 GOSUB EditTransDeleteRecord CASE CHR$(13) 'Enter CASE ELSE BEEP END SELECT LOOP UNTIL finished CLOSE EXIT SUB EditTransShowCursor: COLOR colors(8, ColorPref), colors(9, ColorPref) LOCATE CurrRow + 4, col(CurrCol) SELECT CASE CurrCol CASE 1, 2, 3 PRINT LEFT$(CurrString$(CurrCol), Vis(CurrCol)); CASE 4 IF CurrFig#(4) <> 0 THEN PRINT USING u2$; CurrFig#(4); ELSE PRINT SPACE$(Vis(CurrCol)); END IF CASE 5 IF CurrFig#(5) <> 0 THEN PRINT USING u2$; CurrFig#(5); ELSE PRINT SPACE$(Vis(CurrCol)); END IF END SELECT RETURN EditTransHideCursor: COLOR colors(7, ColorPref), colors(4, ColorPref) LOCATE CurrRow + 4, col(CurrCol) SELECT CASE CurrCol CASE 1, 2, 3 PRINT LEFT$(CurrString$(CurrCol), Vis(CurrCol)); CASE 4 IF CurrFig#(4) <> 0 THEN PRINT USING u2$; CurrFig#(4); ELSE PRINT SPACE$(Vis(CurrCol)); END IF CASE 5 IF CurrFig#(5) <> 0 THEN PRINT USING u2$; CurrFig#(5); ELSE PRINT SPACE$(Vis(CurrCol)); END IF END SELECT RETURN EditTransEditItem: CurrRecord = CurrTopline + CurrRow - 1 COLOR colors(8, ColorPref), colors(9, ColorPref) SELECT CASE CurrCol CASE 1, 2, 3 Kbd$ = GetString$(CurrRow + 4, col(CurrCol), Kbd$, new$, Vis(CurrCol), Max(CurrCol)) CurrString$(CurrCol) = new$ GOSUB EditTransPutLine GOSUB EditTransGetLine CASE 4 start$ = Kbd$ DO Kbd$ = GetString$(CurrRow + 4, col(4), start$, new$, Vis(4), Max(4)) new4# = VAL(new$) start$ = "" LOOP WHILE new4# >= 999999.99# OR new4# < 0 a = CurrRecord WHILE a <= MaxRecord Balance#(a) = Balance#(a) + new4# - CurrFig#(4) + CurrFig#(5) a = a + 1 WEND CurrFig#(4) = new4# CurrFig#(5) = 0 GOSUB EditTransPutLine GOSUB EditTransGetLine GOSUB EditTransPrintBalances GOSUB EditTransWriteBalance CASE 5 start$ = Kbd$ DO Kbd$ = GetString$(CurrRow + 4, col(5), start$, new$, Vis(5), Max(5)) new5# = VAL(new$) start$ = "" LOOP WHILE new5# >= 999999.99# OR new5# < 0 a = CurrRecord WHILE a <= MaxRecord Balance#(a) = Balance#(a) - new5# + CurrFig#(5) - CurrFig#(4) a = a + 1 WEND CurrFig#(4) = 0 CurrFig#(5) = new5# GOSUB EditTransPutLine GOSUB EditTransGetLine GOSUB EditTransPrintBalances GOSUB EditTransWriteBalance CASE ELSE END SELECT GOSUB EditTransPrintLine RETURN EditTransMoveUp: IF CurrRow = 1 THEN IF CurrTopline = 1 THEN BEEP ELSE ScrollDown CurrTopline = CurrTopline - 1 GOSUB EditTransGetLine GOSUB EditTransPrintLine END IF ELSE CurrRow = CurrRow - 1 GOSUB EditTransGetLine END IF RETURN EditTransMoveDown: IF (CurrRow + CurrTopline - 1) >= MaxRecord THEN BEEP ELSE IF CurrRow = 19 THEN ScrollUp CurrTopline = CurrTopline + 1 GOSUB EditTransGetLine GOSUB EditTransPrintLine ELSE CurrRow = CurrRow + 1 GOSUB EditTransGetLine END IF END IF RETURN EditTransPrintLine: COLOR colors(7, ColorPref), colors(4, ColorPref) CurrRecord = CurrTopline + CurrRow - 1 LOCATE CurrRow + 4, 2 IF CurrRecord = MaxRecord + 1 THEN PRINT u1x$; ELSEIF CurrRecord > MaxRecord THEN PRINT u1$; ELSE PRINT USING u$; CurrString$(1); CurrString$(2); CurrString$(3); IF CurrFig#(4) = 0 AND CurrFig#(5) = 0 THEN PRINT USING u4$ + "" + u4$ + "" + u3$; Balance#(CurrRecord) ELSEIF CurrFig#(5) = 0 THEN PRINT USING u2$ + "" + u4$ + "" + u3$; CurrFig#(4); Balance#(CurrRecord) ELSE PRINT USING u4$ + "" + u2$ + "" + u3$; CurrFig#(5); Balance#(CurrRecord) END IF END IF RETURN EditTransPrintBalances: COLOR colors(7, ColorPref), colors(4, ColorPref) FOR a = 1 TO 19 CurrRecord = CurrTopline + a - 1 IF CurrRecord <= MaxRecord THEN LOCATE 4 + a, 66 PRINT USING u3$; Balance#(CurrTopline + a - 1); END IF NEXT a RETURN EditTransDeleteRecord: IF MaxRecord = 1 THEN BEEP ELSE CurrRecord = CurrTopline + CurrRow - 1 MaxRecord = MaxRecord - 1 a = CurrRecord WHILE a <= MaxRecord GET #1, a + 2 PUT #1, a + 1 Balance#(a) = Balance#(a + 1) - CurrFig#(4) + CurrFig#(5) a = a + 1 WEND LSET valid$ = "THISISVALID" LSET IoMaxRecord$ = Cvit$(MaxRecord) PUT #1, 1 GOSUB EditTransPrintWholeScreen CurrRecord = CurrTopline + CurrRow - 1 IF CurrRecord > MaxRecord THEN GOSUB EditTransMoveUp END IF GOSUB EditTransGetLine GOSUB EditTransWriteBalance END IF RETURN EditTransAddRecord: CurrRecord = CurrTopline + CurrRow - 1 a = MaxRecord WHILE a > CurrRecord GET #1, a + 1 PUT #1, a + 2 Balance#(a + 1) = Balance#(a) a = a - 1 WEND Balance#(CurrRecord + 1) = Balance#(CurrRecord) MaxRecord = MaxRecord + 1 LSET IoDate$ = "" LSET IoRef$ = "" LSET IoDesc$ = "" LSET IoFig1$ = MKD$(0) LSET IoFig2$ = MKD$(0) PUT #1, CurrRecord + 2 LSET valid$ = "THISISVALID" LSET IoMaxRecord$ = Cvit$(MaxRecord) PUT #1, 1 GOSUB EditTransPrintWholeScreen GOSUB EditTransGetLine RETURN EditTransPrintWholeScreen: temp = CurrRow FOR CurrRow = 1 TO 19 CurrRecord = CurrTopline + CurrRow - 1 IF CurrRecord <= MaxRecord THEN GOSUB EditTransGetLine END IF GOSUB EditTransPrintLine NEXT CurrRow CurrRow = temp RETURN EditTransWriteBalance: GET #1, 1 LSET IoBalance$ = MKD$(Balance#(MaxRecord)) PUT #1, 1 RETURN EditTransPutLine: CurrRecord = CurrTopline + CurrRow - 1 LSET IoDate$ = CurrString$(1) LSET IoRef$ = CurrString$(2) LSET IoDesc$ = CurrString$(3) LSET IoFig1$ = MKD$(CurrFig#(4)) LSET IoFig2$ = MKD$(CurrFig#(5)) PUT #1, CurrRecord + 1 RETURN EditTransGetLine: CurrRecord = CurrTopline + CurrRow - 1 GET #1, CurrRecord + 1 CurrString$(1) = IoDate$ CurrString$(2) = IoRef$ CurrString$(3) = IoDesc$ CurrFig#(4) = CVD(IoFig1$) CurrFig#(5) = CVD(IoFig2$) RETURN END SUB 'FancyCls: ' Clears screen in the right color, and draws nice dots. SUB FancyCls (dots, Background) VIEW PRINT 2 TO 24 COLOR dots, Background CLS 2 FOR a = 95 TO 1820 STEP 45 row = a / 80 + 1 col = a MOD 80 + 1 LOCATE row, col PRINT CHR$(250); NEXT a VIEW PRINT END SUB 'GetString$: ' Given a row and col, and an initial string, edit a string ' VIS is the length of the visible field of entry ' MAX is the maximum number of characters allowed in the string FUNCTION GetString$ (row, col, start$, end$, Vis, Max) curr$ = Trim$(LEFT$(start$, Max)) IF curr$ = CHR$(8) THEN curr$ = "" LOCATE , , 1 finished = FALSE DO GOSUB GetStringShowText GOSUB GetStringGetKey IF LEN(Kbd$) > 1 THEN finished = TRUE GetString$ = Kbd$ ELSE SELECT CASE Kbd$ CASE CHR$(13), CHR$(27), CHR$(9) finished = TRUE GetString$ = Kbd$ CASE CHR$(8) IF curr$ <> "" THEN curr$ = LEFT$(curr$, LEN(curr$) - 1) END IF CASE " " TO "}" IF LEN(curr$) < Max THEN curr$ = curr$ + Kbd$ ELSE BEEP END IF CASE ELSE BEEP END SELECT END IF LOOP UNTIL finished end$ = curr$ LOCATE , , 0 EXIT FUNCTION GetStringShowText: LOCATE row, col IF LEN(curr$) > Vis THEN PRINT RIGHT$(curr$, Vis); ELSE PRINT curr$; SPACE$(Vis - LEN(curr$)); LOCATE row, col + LEN(curr$) END IF RETURN GetStringGetKey: Kbd$ = "" WHILE Kbd$ = "" Kbd$ = INKEY$ WEND RETURN END FUNCTION 'Initialize: ' Read colors in and set up assembly routines SUB Initialize WIDTH , 25 VIEW PRINT FOR ColorSet = 1 TO 4 FOR X = 1 TO 10 READ colors(X, ColorSet) NEXT X NEXT ColorSet LoadState P = VARPTR(ScrollUpAsm(1)) DEF SEG = VARSEG(ScrollUpAsm(1)) FOR I = 0 TO 13 READ J POKE (P + I), J NEXT I P = VARPTR(ScrollDownAsm(1)) DEF SEG = VARSEG(ScrollDownAsm(1)) FOR I = 0 TO 13 READ J POKE (P + I), J NEXT I DEF SEG END SUB 'Intro: ' Display introduction screen. SUB Intro SCREEN 0 WIDTH 80, 25 COLOR 7, 0 CLS Center 4, "Q B a s i c" COLOR 15 Center 5, " " Center 6, " " Center 7, " " Center 8, " " COLOR 7 Center 11, "A Personal Finance Manager written in" Center 12, "MS-DOS QBasic" Center 24, "Press any key to continue" SparklePause END SUB 'LCenter: ' Center TEXT$ on the line printer SUB LCenter (text$) LPRINT TAB(41 - LEN(text$) / 2); text$ END SUB 'LoadState: ' Load color preferences and account info from MONEY.DAT SUB LoadState OPEN "money.dat" FOR INPUT AS #1 INPUT #1, ColorPref FOR a = 1 TO 19 LINE INPUT #1, account(a).Title LINE INPUT #1, account(a).AType LINE INPUT #1, account(a).Desc NEXT a CLOSE END SUB 'Menu: ' Handles Menu Selection for a single menu (either sub menu, or menu bar) ' currChoiceX : Number of current choice ' maxChoice : Number of choices in the list ' choice$() : Array with the text of the choices ' itemRow() : Array with the row of the choices ' itemCol() : Array with the col of the choices ' help$() : Array with the help text for each choice ' barMode : Boolean: TRUE = menu bar style, FALSE = drop down style ' ' Returns the number of the choice that was made by changing currChoiceX ' and returns the scan code of the key that was pressed to exit ' FUNCTION Menu (CurrChoiceX, MaxChoice, choice$(), ItemRow(), ItemCol(), help$(), BarMode) currChoice = CurrChoiceX 'if in bar mode, color in menu bar, else color box/shadow 'bar mode means you are currently in the menu bar, not a sub menu IF BarMode THEN COLOR colors(7, ColorPref), colors(4, ColorPref) LOCATE 1, 1 PRINT SPACE$(80); ELSE FancyCls colors(2, ColorPref), colors(1, ColorPref) COLOR colors(7, ColorPref), colors(4, ColorPref) Box ItemRow(1) - 1, ItemCol(1) - 1, ItemRow(MaxChoice) + 1, ItemCol(1) + LEN(choice$(1)) + 1 COLOR colors(10, ColorPref), colors(6, ColorPref) FOR a = 1 TO MaxChoice + 1 LOCATE ItemRow(1) + a - 1, ItemCol(1) + LEN(choice$(1)) + 2 PRINT CHR$(178); CHR$(178); NEXT a LOCATE ItemRow(MaxChoice) + 2, ItemCol(MaxChoice) + 2 PRINT STRING$(LEN(choice$(MaxChoice)) + 2, 178); END IF 'print the choices COLOR colors(7, ColorPref), colors(4, ColorPref) FOR a = 1 TO MaxChoice LOCATE ItemRow(a), ItemCol(a) PRINT choice$(a); NEXT a finished = FALSE WHILE NOT finished GOSUB MenuShowCursor GOSUB MenuGetKey GOSUB MenuHideCursor SELECT CASE Kbd$ CASE CHR$(0) + "H": GOSUB MenuUp CASE CHR$(0) + "P": GOSUB MenuDown CASE CHR$(0) + "K": GOSUB MenuLeft CASE CHR$(0) + "M": GOSUB MenuRight CASE CHR$(13): GOSUB MenuEnter CASE CHR$(27): GOSUB MenuEscape CASE ELSE: BEEP END SELECT WEND Menu = currChoice EXIT FUNCTION MenuEnter: finished = TRUE RETURN MenuEscape: currChoice = 0 finished = TRUE RETURN MenuUp: IF BarMode THEN BEEP ELSE currChoice = (currChoice + MaxChoice - 2) MOD MaxChoice + 1 END IF RETURN MenuLeft: IF BarMode THEN currChoice = (currChoice + MaxChoice - 2) MOD MaxChoice + 1 ELSE currChoice = -2 finished = TRUE END IF RETURN MenuRight: IF BarMode THEN currChoice = (currChoice) MOD MaxChoice + 1 ELSE currChoice = -3 finished = TRUE END IF RETURN MenuDown: IF BarMode THEN finished = TRUE ELSE currChoice = (currChoice) MOD MaxChoice + 1 END IF RETURN MenuShowCursor: COLOR colors(8, ColorPref), colors(9, ColorPref) LOCATE ItemRow(currChoice), ItemCol(currChoice) PRINT choice$(currChoice); PrintHelpLine help$(currChoice) RETURN MenuGetKey: Kbd$ = "" WHILE Kbd$ = "" Kbd$ = INKEY$ WEND RETURN MenuHideCursor: COLOR colors(7, ColorPref), colors(4, ColorPref) LOCATE ItemRow(currChoice), ItemCol(currChoice) PRINT choice$(currChoice); RETURN END FUNCTION 'MenuSystem: ' Main routine that controls the program. Uses the MENU function ' to implement menu system and calls the appropriate function to handle ' the user's selection SUB MenuSystem DIM choice$(20), menuRow(20), menuCol(20), help$(20) LOCATE , , 0 choice = 1 finished = FALSE WHILE NOT finished GOSUB MenuSystemMain subchoice = -1 WHILE subchoice < 0 SELECT CASE choice CASE 1: GOSUB MenuSystemFile CASE 2: GOSUB MenuSystemEdit CASE 3: GOSUB MenuSystemAccount CASE 4: GOSUB MenuSystemReport CASE 5: GOSUB MenuSystemColors END SELECT FancyCls colors(2, ColorPref), colors(1, ColorPref) SELECT CASE subchoice CASE -2: choice = (choice + 3) MOD 5 + 1 CASE -3: choice = (choice) MOD 5 + 1 END SELECT WEND WEND EXIT SUB MenuSystemMain: FancyCls colors(2, ColorPref), colors(1, ColorPref) COLOR colors(7, ColorPref), colors(4, ColorPref) Box 9, 19, 14, 61 Center 11, "Use arrow keys to navigate menu system" Center 12, "Press Enter to select a menu item" choice$(1) = " File " choice$(2) = " Accounts " choice$(3) = " Transactions " choice$(4) = " Reports " choice$(5) = " Colors " menuRow(1) = 1: menuCol(1) = 2 menuRow(2) = 1: menuCol(2) = 8 menuRow(3) = 1: menuCol(3) = 18 menuRow(4) = 1: menuCol(4) = 32 menuRow(5) = 1: menuCol(5) = 41 help$(1) = "Exit the Money Manager" help$(2) = "Add/edit/delete accounts" help$(3) = "Add/edit/delete account transactions" help$(4) = "View and print reports" help$(5) = "Set screen colors" DO NewChoice = Menu((choice), 5, choice$(), menuRow(), menuCol(), help$(), TRUE) LOOP WHILE NewChoice = 0 choice = NewChoice RETURN MenuSystemFile: choice$(1) = " Exit " menuRow(1) = 3: menuCol(1) = 2 help$(1) = "Exit the Money Manager" subchoice = Menu(1, 1, choice$(), menuRow(), menuCol(), help$(), FALSE) SELECT CASE subchoice CASE 1: finished = TRUE CASE ELSE END SELECT RETURN MenuSystemEdit: choice$(1) = " Edit Account Titles " menuRow(1) = 3: menuCol(1) = 8 help$(1) = "Add/edit/delete accounts" subchoice = Menu(1, 1, choice$(), menuRow(), menuCol(), help$(), FALSE) SELECT CASE subchoice CASE 1: EditAccounts CASE ELSE END SELECT RETURN MenuSystemAccount: FOR a = 1 TO 19 IF Trim$(account(a).Title) = "" THEN choice$(a) = RIGHT$(STR$(a), 2) + ". ------------------- " ELSE choice$(a) = RIGHT$(STR$(a), 2) + ". " + account(a).Title END IF menuRow(a) = a + 2 menuCol(a) = 19 help$(a) = RTRIM$(account(a).Desc) NEXT a subchoice = Menu(1, 19, choice$(), menuRow(), menuCol(), help$(), FALSE) IF subchoice > 0 THEN EditTrans (subchoice) END IF RETURN MenuSystemReport: choice$(1) = " Net Worth Report " menuRow(1) = 3: menuCol(1) = 32 help$(1) = "View and print net worth report" FOR a = 1 TO 19 IF Trim$(account(a).Title) = "" THEN choice$(a + 1) = RIGHT$(STR$(a), 2) + ". ------------------- " ELSE choice$(a + 1) = RIGHT$(STR$(a), 2) + ". " + account(a).Title END IF menuRow(a + 1) = a + 3 menuCol(a + 1) = 32 help$(a + 1) = "Print " + RTRIM$(account(a).Title) + " transaction summary" NEXT a subchoice = Menu(1, 20, choice$(), menuRow(), menuCol(), help$(), FALSE) SELECT CASE subchoice CASE 1 NetWorthReport CASE 2 TO 20 TransactionSummary (subchoice - 1) CASE ELSE END SELECT RETURN MenuSystemColors: choice$(1) = " Monochrome Scheme " choice$(2) = " Cyan/Blue Scheme " choice$(3) = " Blue/Cyan Scheme " choice$(4) = " Red/Grey Scheme " menuRow(1) = 3: menuCol(1) = 41 menuRow(2) = 4: menuCol(2) = 41 menuRow(3) = 5: menuCol(3) = 41 menuRow(4) = 6: menuCol(4) = 41 help$(1) = "Color scheme for monochrome and LCD displays" help$(2) = "Color scheme featuring cyan" help$(3) = "Color scheme featuring blue" help$(4) = "Color scheme featuring red" subchoice = Menu(1, 4, choice$(), menuRow(), menuCol(), help$(), FALSE) SELECT CASE subchoice CASE 1 TO 4 ColorPref = subchoice SaveState CASE ELSE END SELECT RETURN END SUB 'NetWorthReport: ' Prints net worth report to screen and printer SUB NetWorthReport DIM assetIndex(19), liabilityIndex(19) maxAsset = 0 maxLiability = 0 FOR a = 1 TO 19 IF account(a).AType = "A" THEN maxAsset = maxAsset + 1 assetIndex(maxAsset) = a ELSEIF account(a).AType = "L" THEN maxLiability = maxLiability + 1 liabilityIndex(maxLiability) = a END IF NEXT a 'Loop until is pressed finished = FALSE DO u1$ = "\ \$$###,###,###.##" u2$ = "\ \+$$#,###,###,###.##" COLOR colors(5, ColorPref), colors(4, ColorPref) LOCATE 1, 1: PRINT SPACE$(80); LOCATE 1, 4: PRINT "Net Worth Report: " + DATE$; PrintHelpLine " " COLOR colors(7, ColorPref), colors(4, ColorPref) Box 2, 1, 24, 40 Box 2, 41, 24, 80 LOCATE 2, 16: PRINT " ASSETS " assetTotal# = 0 a = 1 count1 = 1 WHILE a <= maxAsset file$ = "money." + Cvit$(assetIndex(a)) OPEN file$ FOR RANDOM AS #1 LEN = 84 FIELD #1, 11 AS valid$, 5 AS IoMaxRecord$, 8 AS IoBalance$ GET #1, 1 IF valid$ = "THISISVALID" THEN LOCATE 2 + count1, 3: PRINT USING u1$; account(assetIndex(a)).Title; CVD(IoBalance$) assetTotal# = assetTotal# + CVD(IoBalance$) count1 = count1 + 1 END IF CLOSE a = a + 1 WEND LOCATE 2, 55: PRINT " LIABILITIES " liabilityTotal# = 0 a = 1 count2 = 1 WHILE a <= maxLiability file$ = "money." + Cvit$(liabilityIndex(a)) OPEN file$ FOR RANDOM AS #1 LEN = 84 FIELD #1, 11 AS valid$, 5 AS IoMaxRecord$, 8 AS IoBalance$ GET #1, 1 IF valid$ = "THISISVALID" THEN LOCATE 2 + count2, 43: PRINT USING u1$; account(liabilityIndex(a)).Title; CVD(IoBalance$) liabilityTotal# = liabilityTotal# + CVD(IoBalance$) count2 = count2 + 1 END IF CLOSE a = a + 1 WEND IF count2 > count1 THEN count1 = count2 LOCATE 2 + count1, 25: PRINT "--------------" LOCATE 2 + count1, 65: PRINT "--------------" LOCATE 3 + count1, 3: PRINT USING u2$; "Total assets"; assetTotal#; LOCATE 3 + count1, 43: PRINT USING u2$; "Total liabilities"; liabilityTotal# COLOR colors(5, ColorPref), colors(4, ColorPref) LOCATE 1, 43: PRINT USING u2$; " NET WORTH:"; assetTotal# - liabilityTotal# DO: Kbd$ = INKEY$: LOOP UNTIL Kbd$ <> "" SELECT CASE Kbd$ 'Handle Special keys CASE CHR$(0) + "<" 'F2 finished = TRUE CASE CHR$(0) + "=" 'F3 GOSUB NetWorthReportPrint CASE ELSE BEEP END SELECT LOOP UNTIL finished EXIT SUB NetWorthReportPrint: PrintHelpLine "" Box 8, 20, 14, 62 Center 10, "Prepare printer on LPT1 for report" Center 12, "Hit to print, or to abort" DO: Kbd$ = INKEY$: LOOP WHILE Kbd$ <> CHR$(13) AND Kbd$ <> CHR$(27) IF Kbd$ = CHR$(13) THEN Box 8, 20, 14, 62 Center 11, "Printing report..." u0$ = " \ \ " u1$ = " \ \ $$###,###,###.##" u2$ = " --------------" u3$ = " =============" u4$ = " \ \+$$#,###,###,###.##" PrintErr = FALSE ON ERROR GOTO ErrorTrap ' test if printer is connected LPRINT IF PrintErr = FALSE THEN LPRINT : LPRINT : LPRINT : LPRINT : LPRINT LCenter "Q B a s i c" LCenter "M O N E Y M A N A G E R" LPRINT : LPRINT LCenter "NET WORTH REPORT: " + DATE$ LCenter "-------------------------------------------" LPRINT USING u0$; "ASSETS:" assetTotal# = 0 a = 1 WHILE a <= maxAsset file$ = "money." + Cvit$(assetIndex(a)) OPEN file$ FOR RANDOM AS #1 LEN = 84 FIELD #1, 11 AS valid$, 5 AS IoMaxRecord$, 8 AS IoBalance$ GET #1, 1 IF valid$ = "THISISVALID" THEN LPRINT USING u1$; account(assetIndex(a)).Title; CVD(IoBalance$) assetTotal# = assetTotal# + CVD(IoBalance$) END IF CLOSE #1 a = a + 1 WEND LPRINT u2$ LPRINT USING u4$; "Total assets"; assetTotal# LPRINT LPRINT LPRINT USING u0$; "LIABILITIES:" liabilityTotal# = 0 a = 1 WHILE a <= maxLiability file$ = "money." + Cvit$(liabilityIndex(a)) OPEN file$ FOR RANDOM AS #1 LEN = 84 FIELD #1, 11 AS valid$, 5 AS IoMaxRecord$, 8 AS IoBalance$ GET #1, 1 IF valid$ = "THISISVALID" THEN LPRINT USING u1$; account(liabilityIndex(a)).Title; CVD(IoBalance$) liabilityTotal# = liabilityTotal# + CVD(IoBalance$) END IF CLOSE #1 a = a + 1 WEND LPRINT u2$ LPRINT USING u4$; "Total liabilities"; liabilityTotal# LPRINT LPRINT LPRINT u3$ LPRINT USING u4$; "NET WORTH"; assetTotal# - liabilityTotal# LCenter "-------------------------------------------" LPRINT : LPRINT : LPRINT END IF ON ERROR GOTO 0 END IF RETURN END SUB 'PrintHelpLine: ' Prints help text on the bottom row in the proper color SUB PrintHelpLine (help$) COLOR colors(5, ColorPref), colors(4, ColorPref) LOCATE 25, 1 PRINT SPACE$(80); Center 25, help$ END SUB 'SaveState: ' Save color preference and account information to "MONEY.DAT" data file. SUB SaveState OPEN "money.dat" FOR OUTPUT AS #2 PRINT #2, ColorPref FOR a = 1 TO 19 PRINT #2, account(a).Title PRINT #2, account(a).AType PRINT #2, account(a).Desc NEXT a CLOSE #2 END SUB 'ScrollDown: ' Call the assembly program to scroll the screen down SUB ScrollDown DEF SEG = VARSEG(ScrollDownAsm(1)) CALL Absolute(VARPTR(ScrollDownAsm(1))) DEF SEG END SUB 'ScrollUp: ' Calls the assembly program to scroll the screen up SUB ScrollUp DEF SEG = VARSEG(ScrollUpAsm(1)) CALL Absolute(VARPTR(ScrollUpAsm(1))) DEF SEG END SUB 'SparklePause: ' Creates flashing border for intro screen SUB SparklePause COLOR 4, 0 a$ = "* * * * * * * * * * * * * * * * * " WHILE INKEY$ <> "": WEND 'Clear keyboard buffer WHILE INKEY$ = "" FOR a = 1 TO 5 LOCATE 1, 1 'print horizontal sparkles PRINT MID$(a$, a, 80); LOCATE 22, 1 PRINT MID$(a$, 6 - a, 80); FOR b = 2 TO 21 'Print Vertical sparkles c = (a + b) MOD 5 IF c = 1 THEN LOCATE b, 80 PRINT "*"; LOCATE 23 - b, 1 PRINT "*"; ELSE LOCATE b, 80 PRINT " "; LOCATE 23 - b, 1 PRINT " "; END IF NEXT b NEXT a WEND END SUB 'TransactionSummary: ' Print transaction summary to line printer SUB TransactionSummary (item) FancyCls colors(2, ColorPref), colors(1, ColorPref) PrintHelpLine "" Box 8, 20, 14, 62 Center 10, "Prepare printer on LPT1 for report" Center 12, "Hit to print, or to abort" DO: Kbd$ = INKEY$: LOOP WHILE Kbd$ <> CHR$(13) AND Kbd$ <> CHR$(27) IF Kbd$ = CHR$(13) THEN Box 8, 20, 14, 62 Center 11, "Printing report..." PrintErr = FALSE ON ERROR GOTO ErrorTrap ' test if printer is connected LPRINT IF PrintErr = FALSE THEN PRINT LPRINT : LPRINT : LPRINT : LPRINT : LPRINT LCenter "Q B a s i c" LCenter "M O N E Y M A N A G E R" LPRINT : LPRINT LCenter "Transaction summary: " + Trim$(account(item).Title) LCenter DATE$ LPRINT u5$ = "--------|------|------------------------|----------|----------|--------------" LPRINT u5$ LPRINT " Date | Ref# | Description | Increase | Decrease | Balance " LPRINT u5$ u0$ = "\ \|\ \|\ \|" u2$ = "###,###.##" u3$ = "###,###,###.##" u4$ = " " file$ = "money." + Cvit$(item) OPEN file$ FOR RANDOM AS #1 LEN = 84 FIELD #1, 8 AS IoDate$, 10 AS IoRef$, 50 AS IoDesc$, 8 AS IoFig1$, 8 AS IoFig2$ FIELD #1, 11 AS valid$, 5 AS IoMaxRecord$, 8 AS IoBalance$ GET #1, 1 IF valid$ = "THISISVALID" THEN Balance# = 0 MaxRecord = VAL(IoMaxRecord$) CurrRecord = 1 WHILE CurrRecord <= MaxRecord GET #1, CurrRecord + 1 Fig1# = CVD(IoFig1$) Fig2# = CVD(IoFig2$) LPRINT USING u0$; IoDate$; IoRef$; IoDesc$; IF Fig2# = 0 AND Fig1# = 0 THEN LPRINT USING u4$ + "|" + u4$ + "|" + u3$; Balance# ELSEIF Fig2# = 0 THEN Balance# = Balance# + Fig1# LPRINT USING u2$ + "|" + u4$ + "|" + u3$; Fig1#; Balance# ELSE Balance# = Balance# - Fig2# LPRINT USING u4$ + "|" + u2$ + "|" + u3$; Fig2#; Balance# END IF CurrRecord = CurrRecord + 1 WEND LPRINT u5$ LPRINT : LPRINT END IF ON ERROR GOTO 0 END IF CLOSE END IF END SUB 'Trin$: ' Remove null and spaces from the end of a string. FUNCTION Trim$ (X$) IF X$ = "" THEN Trim$ = "" ELSE lastChar = 0 FOR a = 1 TO LEN(X$) y$ = MID$(X$, a, 1) IF y$ <> CHR$(0) AND y$ <> " " THEN lastChar = a END IF NEXT a Trim$ = LEFT$(X$, lastChar) END IF END FUNCTION UWVRQSPvt0 t2>u8w~pX[YZ^_]πsX<t<^<~>~~~~6>>><<<<<~~<<<Ác06cc6c><~~<<~~<  00```$ff$>>>><<<ccc"6666666 >ca`>Cc> ac 3c66;nff;000` 00000   f<cgo{scc> < ?>c 0c>cc>6f```~c>0``~ccc>c >ccc>ccc>>ccc?<0 0`0 ~~`0  0`>cc >ccooon`>6ccccc~333>333~3a```a3|6333336|314<413314<400x3a``oc3cccccccc<<ff<s366<663sx0000013cs{ogccc6ccccc6~333>000x>ccccko>~333>633{>cc0cc>ۙ<cccccccc>f<fff<ff;p00<6333n>c``c>6fff;>c`c>620|000x;fff>f<p006;333s  ff<p0036<63s n33333>cccc>n333>00x;fff>n3300x>c8c>~fffff;f<~fc66ccccc?<f 3ppp;n6ccc3a``ac>>fffffff; >c`c>6<>ff;ff<>ff;0 <>ff;6<>ff;c`c>ff>c`c>0 >c`c>66 03n;~w6fffffg6>cccc>cc>cccc>0 >cccc>~~600x000s~f<ff|bfoff~p 0<>ff; 08< 0>cccc> 0fffff;;nn33;333;ncs{ogcc~8ll8|33```cfl0n `cfl0g<<<6l6l66lDDDDDDDUUUUUUUwwwwwww666666666666666666666666666666666666666666666666666666666666666666666676666666666670??0766666666666666666666667076666666666666666666666666666666666666??6666666666666666666;nlln;>c~cc~`` cc``````666666c0 0c>llll83333>00`;n ~fff<~~~~`0``|``0>ccccccc0  0 0`0 p;n;n8ll80 l<lllllp0`<<<<<<&&JF&bF&&00tP3&I&JP&b&P>u&R&N&LwXu33>t Vú$pù&&b&NPX2&P3%&P3&PV&`N&`2 uQ&P2&P2Zۀ3ɱ&%&Eˈ$F 2"Ё yR3ɱW_t @=v3Zb3&b&P€P}/&>bEI?t92޹:t2ҹ:}&>b32O x yV拔QZڃ^< t< t< t$FFF~t,^7P~^@PqPg6+P^75P| }&6B5:P0PtvFFFF9F}e~u 6v^_]ÐUVW؋F F6F)!)!U.(.&&KV~ tAPSR3!^!s_^]UVW?^NV!s_^]UVW@^NV!s_^]UVW3v<tF@_^]UFL!躒+0‹ء0J!ػÀЋ0,&26H0m6P`=؎PPs £'£þ& F2J &FG3W32WQY_t+<tFF<t_W3_O_UVWF^_^]UlWVFFFF6C FȸPZ   +FFʋFFFF~ubFFFʉFFʉFv664 u4FFƋ^/~t +PP>4^FFF^N~uvvF~u9~WWV؎3+t^_ t66v u-^6>WV0؎3+t^_ t~ʋv3+t tF~uvv6F66Pb u0^6>WV0؎3+t^_ u>v3+t tF~u4F̉FF̉Fv66V uU5V PFXWV>v3+t^_ uGFFF^?t*뎐^WV؎3+t^_ tv^6>WV0؎3+t^_ u v FvzuS>v3+t uv F>3+t u~ȋvWV؎3+t^_ uev~W= WV؎3+t^_ tBv>3+t t~trW  te u tv t^F؎v3+t uFvNvZ+Pk^F؎v3+t t+^F؋v3+t uFvNv+P~t+P+PP~u+F~u(bbF؀?tv F>3+t t>v3+t u?~WZ WV؎3+t^_ uщvF6v uFF>3+t u"+Wl  u ~vV~G66v u vS X~3+6P FP ؋؎v3+P c66vv uFPvv >v3+t tv F>3+t t+PPFƃ=t>t>63+t ux6F<t< uv+P@PF@u@PP\~ȸP PWt uv6 PP+PvI+P^_]ÐUVJ uV7~t v4PP]UFPNFFP*]U WVP+PvF=u ^_]Ð~u+^_]F~t~uqF^ヿ tb^㋿ FG uPWV~3+هO^_P+PPF냋^ヿ uWF F؋WV؎3+^_P+^^_]ÐU F8FFFP`]UVFFF<uv>t Vv3 FHF؀?\t ^F\^^]UVFFv< t< uFvހ?-uFFvN<9ы-0F<0}߉vNF^]ÐUlWVFvF=u vPd+9vt$^?tFGFP|FPWV~3+^_+PFPeuFPP^_]Ë^_]+PPP$*ȃ@Vt.Incorrect number of operands.Command does not exist.Command parameters incorrect.Command operands incorrect.File not found:FIle not found:Script not found: Network not started.Command completed successfully.Network already started.JPATH=RCOMSPEC=UWVvv>t vF@F^?t ^8uҋ+ƉF~>>t vF@F؀?t ^8uӋF+;FtA=tUWVF؎3+t^_ uF8F^_]v5V  uF9ܐV6FWV؎v3+t^_ u :^_]Ë^_]UVv~+^]Ð㋇>^]ÐUWVFF66Pz uW؎3+vxع3+هO^_]ÐFvF= } f^_]Ë^㋇>^_]ÐUWVF>v3+t u+ɾ><uNA}vvF~A~6<3+^<>3I<<^_]ÐhÐUWV>ht7hV؎3+t^ tj~W, u +^_]ÐDWV؎3+t^_ t$WVع3+t^_ uJu<>jtWV؎3+^_j^_]Át?8WV؎3+t^_ tF(P5F<uV؎3+t^ uUVlF<uF^]UVlF<ultNFF^]ÐvhF }+^]Ð~ uvJF |>pt p빐>tFP  tp뚊F*PcFU>rt t9rr4P6vcF=t u]árFrtrr*]U~s~zw~ar F*- ]ÐF*]ÐF*P66e]ÐUWV+v)>tP4 t *PF<t t+~F^_]U~r~v ~r ~w]+]UWVv~;t>P tDDFF9~tvP t␋^_]UVv<t>tPj t F<u^]ÍD^]UWVvWV؎3+t^_ uQ ㋇FWع3I_Ɉ^_]áFء9tWV؎3+t^_ u<\t&V؀?:tG=u G=u>t WE=t=.u=.tvG u^_]ÐF<u ^_]ÐUWVv~~t N8u<u +N^_]FGN~u+^_]ÐȊ+^_]UWVW~3I_W~3I_Nv"vvVx uƉ~v^_]ÐFO<t;~}ԉ~v+^_]UWVJ < u tFI<u t\F<t>^7FB tπ<t< tFF < u tFI<u u>^_]UWV++FLJ 0>0t- F0;uƅ0^1FFG0u݋LJ ^_]ÐUWVG u +PP~u +PP ^F؎v3+t u~uF^F؎v3+t u5~u/^GF؋v3+t t^F؎v3+t u ~uFl^F؎v3+t u2~u,^GF؋v3+t t+PP_FP_FP6^_]UWV u +PPq~u +PP^^F؎v3+t u~uF^F؎v3+t u5~u/^GF؋v3+t t^F؎v3+t u ~uFl^F؎v3+t u2~u,^GF؋v3+t t+PP_FP_FP6^_]ÐNET.TXT ======= This file explains how to update network software files for the following networks: 1. Microsoft LAN Manager Version 2.0 Enhanced and 100-Percent Compatible Networks 2. Microsoft LAN Manager Version 2.0 Basic and 100-Percent Compatible Networks 3. Microsoft LAN Manager Version 1.x Enhanced and 100-Percent Compatible Networks 4. Microsoft LAN Manager Version 1.x Basic and 100-Percent Compatible Networks 5. Microsoft MS-Net and 100-Percent Compatible Networks 6. 3Com 3+Share Version 1.6 Find the section below that corresponds to your network software. NOTE If you have a LAN Manager or 100-percent compatible network, and you are unsure of which version you are using, type NET CONFIG WORKSTATION at the command prompt. If you see information about your configuration, you have an Enhanced version. This information indicates whether you have Enhanced version 2.0 or Enhanced version 1.x. If you receive an error message when you type the command, you have a Basic version. To find out whether you have Basic version 2.0 or Basic version 1.x, check the creation dates of the files in your LAN Manager directory (typically C:\LANMAN.DOS\BASIC). If the files are dated before July 1990, you have version 1.x. Files dated after July 1990 are typically version 2.0. 1. Microsoft LAN Manager Version 2.0 Enhanced and 100-Percent Compatible Networks ======================================================================== To update LAN Manager version 2.0 Enhanced, replace your current NETWKSTA.EXE and NETBEUI.DOS files with the new versions included with the MS-DOS 6.22 Supplemental disks. It's a good idea to preserve your current files by renaming them with a different extension, such as .OLD or .BAK. To update LAN Manager version 2.0 Enhanced: 1. Run the Setup program from the drive and directory that contains your Supplemental disk files and specify the drive and directory to which you want to install your files. For example, if your Supplemental disk is in drive A, and you want to install the files on drive C in your SUPP directory, type A: at the command prompt, and then type the following: SETUP C:\SUPP 2. When the Setup program starts, choose A if you want install the Supplemental disk files. Choose S if you want to install some of the files--for example, just the network files. If you choose to install some of the files, Setup will prompt you to install groups of files, including the MS-DOS 6.22 Network drivers. 3. After Setup finishes installing the Network files, rename these original network files to back them up: NETWKSTA.EXE (usually in C:\LANMAN.DOS\NETPROG) NETBEUI.DOS (usually in C:\LANMAN.DOS\DRIVERS\PROTOCOL\NETBEUI) 4. Copy new version of NETBEUI.DOS to the same drive and directory as the old version of the file. 5. Copy the new NETWKSTA.2XE file to the same drive and directory as the old NETWKSTA.EXE file. Rename the new file to NETWKSTA.EXE. 6. Restart your computer. Or, if you have not installed MS-DOS 6.22, run Setup now. 2. Microsoft LAN Manager Version 2.0 Basic and 100-Percent Compatible Networks ===================================================================== To update LAN Manager version 2.0 Basic, replace your current REDIR.EXE, NET.EXE, and NETBEUI.DOS files with the new versions included with the MS-DOS 6.22 Supplemental disks. It's a good idea to preserve your current files by renaming them with a different extension, such as .OLD or .BAK. To update LAN Manager version 2.0 Basic: 1. Run the Setup program from the drive and directory that contains your Supplemental disk files and specify the drive and directory to which you want to install your files. For example, if your Supplemental disk is in drive A, and you want to install the files on drive C in your SUPP directory, type A: at the command prompt, and then type the following: SETUP C:\SUPP 2. When the Setup program starts, choose A if you want install the Supplemental disk files. Choose S if you want to install some of the files--for example, just the network files. If you choose to install some of the files, Setup will prompt you to install groups of files, including the MS-DOS 6.22 Network drivers. 3. After Setup finishes installing the Network files, rename these original network files to back them up: REDIR.EXE (usually in C:\LANMAN.DOS\REDIR) NET.EXE (usually in C:\LANMAN.DOS\BASIC) NETBEUI.DOS (usually in C:\LANMAN.DOS\DRIVERS\PROTOCOL\NETBEUI) 4. Copy new version of NETBEUI.DOS to the same drive and directory as the old version of the file. 5. Copy the new REDIR.2XE file to the same drive and directory as the old REDIR.EXE file. Rename the new file to REDIR.EXE. 6. Copy the new NET.1XE file to the same drive and directory as the old NET.EXE file. Rename the new file to NET.EXE. 7. Restart your computer. Or, if you have not installed MS-DOS 6.22, run Setup now. 3. Microsoft LAN Manager Version 1.x Enhanced and 100-Percent Compatible Networks ======================================================================== To update LAN Manager version 1.x Enhanced, replace your current NETWKSTA.EXE file with the new version included with the MS-DOS 6.22 Supplemental disks. It's a good idea ot preserve your current file by renaming it with a different extension, such as .OLD or .BAK. To update LAN Manager version 1.x Enhanced: 1. Run the Setup program from the drive and directory that contains your Supplemental disk files and specify the drive and directory to which you want to install your files. For example, if your Supplemental disk is in drive A, and you want to install the files on drive C in your SUPP directory, type A: at the command prompt, and then type the following: SETUP C:\SUPP 2. When the Setup program starts, choose A if you want install the Supplemental disk files. Choose S if you want to install some of the files--for example, just the network files. If you choose to install some of the files, Setup will prompt you to install groups of files, including the MS-DOS 6.22 Network drivers. 3. After Setup finishes installing the Network files, rename this original network file to back it up: NETWKSTA.EXE (usually in C:\LANMAN.DOS\NETPROG) 4. Copy the new NETWKSTA.1XE file to the same drive and directory as the old NETWKSTA.EXE file. Rename the new file to NETWKSTA.EXE. 5. Restart your computer. Or, if you have not installed MS-DOS 6.22, run Setup now. 4. Microsoft LAN Manager Version 1.x Basic and 100-Percent Compatible Networks ===================================================================== To update LAN Manager version 1.x Basic, replace your current REDIR.EXE file with the new version included with the MS-DOS 6.22 Supplemental disks. It's a good idea to preserve your current file by renaming it with a different extension, such as .OLD or .BAK. To update LAN Manager version 1.x Basic: 1. Run the Setup program from the drive and directory that contains your Supplemental disk files and specify the drive and directory to which you want to install your files. For example, if your Supplemental disk is in drive A, and you want to install the files on drive C in your SUPP directory, type A: at the command prompt, and then type the following: SETUP C:\SUPP 2. When the Setup program starts, choose A if you want install the Supplemental disk files. Choose S if you want to install some of the files--for example, just the network files. If you choose to install some of the files, Setup will prompt you to install groups of files, including the MS-DOS 6.22 Network drivers. 3. After Setup finishes installing the Network files, rename this original network file to back it up: REDIR.EXE (usually in C:\LANMAN.DOS\BASIC) 4. Copy the new REDIR.1XE file to the same drive and directory as the old REDIR.EXE file. Rename the new file to REDIR.EXE. 5. Restart your computer. Or, if you have not installed MS-DOS 6.22, run Setup now. 5. Microsoft MS-Net and 100-Percent Compatible Networks ======================================================= To update MS-Net or 100-percent compatible networks, replace your current REDIR.EXE and SETNAME.EXE files with the new versions included with the MS-DOS 6.22 Supplemental disks. It's a good idea to preserve your current file by renaming it with a different extension, such as .OLD or .BAK. To update MS-NET or a 100-percent compatible network: 1. Run the Setup program from the drive and directory that contains your Supplemental disk files and specify the drive and directory to which you want to install your files. For example, if your Supplemental disk is in drive A, and you want to install the files on drive C in your SUPP directory, type A: at the command prompt, and then type the following: SETUP C:\SUPP 2. When the Setup program starts, choose A if you want install the Supplemental disk files. Choose S if you want to install some of the files--for example, just the network files. If you choose to install some of the files, Setup will prompt you to install groups of files, including the MS-DOS 6.22 Network drivers. 3. After Setup finishes installing the Network files, rename these original network files to back them up: REDIR.EXE (usually in the directory that contains your network files) SETNAME.EXE (usually in the directory that contains your network files) 4. Copy new version of SETNAME.EXE to the same drive and directory as the old version of the file. 5. Copy the new REDIR.2XE file to the same drive and directory as the old REDIR.EXE file. Rename the new file to REDIR.EXE. 6. Review your MSNET.INI file to make sure the REDIR command appears before the SETNAME command when both appear in the same command set. For example, suppose one of your command sets in MSNET.INI appears as follows start rdr $1 chknet loadniu -r -d -m:d -i:5 exniuw.xfm stdlc xnsbios -m:d -i:5 session setname $1 redir /1:26 /s:9 prtsc You would reverse the order of the SETNAME and REDIR commands so the command set appears as follows: start rdr $1 chknet loadniu -r -d -m:d -i:5 exniuw.xfm stdlc xnsbios -m:d -i:5 session redir /1:26 /s:9 setname $1 prtsc 7. Restart your computer. Or, if you have not installed MS-DOS 6.22, run Setup now. 6. 3Com 3+Share Version 1.6 =========================== To update 3Com 3+Share version 1.6, replace your current MSREDIR.EXE file with the new version included with the MS-DOS 6.22 Supplemental disks. It's a good idea to preserve your current file by renaming it with a different extension, such as .OLD or .BAK. If you have 3+Share version earlier than 1.6, contact your network vendor for an update. To update 3Com 3+Share version 1.6: 1. Run the Setup program from the drive and directory that contains your Supplemental disk files and specify the drive and directory to which you want to install your files. For example, if your Supplemental disk is in drive A, and you want to install the files on drive C in your SUPP directory, type A: at the command prompt, and then type the following: SETUP C:\SUPP 2. When the Setup program starts, choose A if you want install the Supplemental disk files. Choose S if you want to install some of the files--for example, just the network files. If you choose to install some of the files, Setup will prompt you to install groups of files, including the MS-DOS 6.22 Network drivers. 3. After Setup finishes installing the Network files, rename these original network files to back them up: MSREDIR.EXE (usually in C:\3SHARE) 4. Copy the new REDIR.2XE file to the same drive and directory as the old MSREDIR.EXE file. Rename the new file to MSREDIR.EXE. 5. Restart your computer. Or, if you have not installed MS-DOS 6.22, run Setup now. MZ< 1_W_*6d!Ho|NETBEUI$.u. ..&..&.6 Ð.>u. ..&.6 ...PSQRVWU.>&E<tZ<0!<u&E< s&E&E ,&MA:&E.z36~.> &E]_^ZY[X oCScs+D,,,,,,--........x/x/۸Ë&G$<@uw&Gt&G%Ã֍w&%Yu .+ø<tu@tXu+@_^]ZUVW^@tWv \G4uDu!+_^] d;G4w'V[Z^DtF t!Vt &D^Dt&L@Du"W>"_UVW^^ v~FDVF|t&G =s;;Fw3D\DZ\X DT\RDTDPVT"^$_^]UVW^tRv拴~$~ DR|P&]F|t&G =s!;FwD\VT^_^]UVW^t2F=t =t =tv拴~$&+_^] UVW^t v拴~$+_^] PSQRVWU$t/\<&G$<t"&3ێËs%A=Au\8&G@t\<&Gu3ێË~so3ls]|u3ێ> Qs/-|u&\8&G6&_4& &  3ۿ"s3s ]_^ZY[XÇSQRu 6RSWPt\0=t=t$ZY[u$ZY[ÇېDuHW> tGWV^VLt ^_M M V6( ^_ø@tdÁ_YWÇSQR\Du*S6VDPw_[=t@=uZY[Rs(ϸ(DtVW4&G.Z&G8\&G0&G4&G6H&G:|^++}tEȃ.;|`v&O2_YXÇQ.;\`wtYÐSVWQу<<\^. uM9\`rat=rJVw^@Ot̀tu u.3<<ظظY+ʋ_^[ÇPSQRVWUw_Tp3VW5ju&G1&G4>ju#XZY^_..:&?2th4" WVQRP.z&?v&G0*+hr;s~&G&G1&?w.:" uvntS[&_2&G1ËuÇې7r6 tT@|DD D&u2 u7W& _GlO G tVWw _@L6ð"Ë6nt@|DD D&u2u Wj_ËƋ׋w^;w`s$|*M}u.ߋL&MgL'Ð+ɋ&Uw%,&] ruus ðððQDDD,VW|}w_^ދYQ uu &} M&LM&LM&LYD"| LDD\,GGG 3GGGG \Wr_Çې&]u Ð&]*r'|uu>u @E]E &2E t <uVt"3^D Vtf$^&GD\On;OntwnS\&;G[w4;uVwn^Í=5DE|+s;t _+'tGGG G"GGGDGFGIGhGjGmGlGZZGL^GJgng~ǣGHGGGGGG_ÇېWPg~gnG3GG G"GH,DžV6b^X_ÐPQRWVЃ|tE&] 22ۍP;ttE;Wuwhu X^_ZYXËYQ;uJ&] 22ۍP;t/E;WuwjP&$;Xu u먋YQ;u[^_ZYXÇSVWQP|XY]tMPwh&D'X]tMPwh&D X]"tPw&DV6 ^@X]&^tPw&DV6^@X_^[ÇVWR؋Ћ_bt wt#ڋ_^t wt .;]`wZ_^Z_^ÇW tu_|b8]t|^8]t .;|`w߉\b_Çې|uS\D[DVWSTr|tr[_^Ç*h2n tuð# PS؃umP&U%&UT&U TW ЉTW TW T X&U T 33&Et%&MQVWt}_^Yt[X&P&U%T&U T&U TW ЉTW T W T X33&EtJ&MvD&]pPsѱ."QVWt}$I_^Yt[X3ɀdÇېV3}QYt_t ËLJXOÐP3D0DD DkD!D"D#DbD(D,BD\DD^FD`NXD*d8DHDJTD&RD'VD$PD%Q3ɁL@L,L2L4D6<YHD. tLXÐWV6*tu^_PDDDD DDD3DDW?Vt d^_XVQwtPE6 t+#‰Gd wt}t2wvXY^^_À|tPD$\DDXÐVPEDEX^ÇېWPDEDX_ÇېSPDGDX[ÇېPVDD^XPWEE_XPSGG[XW <,,,,,,>@$=,,,,{3P" uWRVv"^Z_XuU3GuOO " u "sW3 -r3ÁOPSXIÇېrPr_&Dr gGu SXð" u"Ðr.PVr+_&D*O"8O$vOrgS@Xyÿfrr&DrOSTÇې/>r4 u0&Du)Ӎ|&}u&]!swr 2.&ÇېÇېЋrRZrJWrFWGOOSPvP+PG\PSG8P:XPFP+PG.PSGLP:XÃttVWw\DVt!D\_VWTދً}Qف&s+ɋY^ u|}t _]_UPRVvF DFD " FV DT;&rw ;$s$&u D6 $^ZX] ffPVgt$gD$DgD$ D gfD$ f fDf;$wf$t $^fX D6ÇۋlNnt $EÃWϝ]_^ZY[XϜ.0PSQRVWUύ0S63Ƀ>4u~:@t( "s$&+9.upt OHt;OJt]ú" ;&rwR;$sL>u t4+QSuG!uu E[YE됻>3 t+t9Uwr)9Ev$9]w r9Ms]M}щ&$n u u6V3 uDt% u V6 W} M_^_@pStVGGWw$w_V3Z֋}t}QYuO_DDL[ÇېS6tjDDWQ|$|\Vn2.~2؃t2.2tw&&^EE+||Y_[ÇېP6V46D^;Xt=DPE% DEDD 3DDDD| \"D,XGuV6S_[^OÐ,sË֋LD,t+ɈLLLL ,DDَ| w4t^tW}rT_ Çۺ,sÓuPVltdtDD^XDWVDD,t,DD +DDGHD u2DƋ׹| w4|w$^_S\Wr_[ú,r|Çې,sÉDDD,Vt,DGtD3DDDGHD Ƌ׹|w$^S\Wr-_[ÐPsXÏDLD,Vt,DD D3t@D&E DD W&EDD _^S\tW|P/E X_Wr_[SPX[sÃSP\u&Gt+.|2$GGG.~2D DG X[\LD,Vt,DDDD2D &E DƋ׹t} t }^Wr_QRseD$Vu|uE|t $p^ D%ZUd+у+#‰D&GH*D*GDD(S_Wz_S[ZYÁO"ZYÇې6sdD$D%ZUd+у+#‰D&BE\PvP+PE\PWE8P:XGH2D*GDD(S_W_S#[ÁO"VWG u]G"tg"<PGD,Xs\\DDRQ+#Vt*&E<w+P[^=uk\\O?LD,,GGW&E G3G Vu Q Y^\u$Wr_[X;v̀덀@눋|DD-E Ë5Ç&]2w㋟ t u߃gnP&M?Gf;wXWS߃,+ڋT`tbr&[_&UG uuwhOd&Lfظ@u&}tOdO`)Of&E2GFJPNP+PLPSGnP:XÇېur uGÇېurGtÐ&]2wB㋟ t8u2&}uGu$gnE}Pwh&&DNÇېu rftJ9uDt>Gt7G @u0gVWSwh&D[_^tt O @SÐu "r&E u*2tċ_\7tg2֋Ur^W}_rGVWu4_Wu $whV| w4^|w$_^&E GD&EGIGH2tS\t[GLS[RJ@&LsP>P+PPSGnP:XZx!D&P?P+PLPSGnP:XÃuÃuÁO @SÇG@tPVWSG t &}t9=|t&E%&E;u&E;u&E ;u[_^X[_^XO @JP?P+PLPSGnP:XuGtwhg&D Ð&]2w8㋟ t.t(Gt3s&}tO Ott+R&Uwh&|&t&tи!&V!;|DZ}tXPVVW t_^!_^& G&ZZÃX|t&E%&E &E &EP&E tĈGI&E GDXgnSRWsG'r8_Z[wGEDOV4^DDV_Z[ NË_Z[OV4^w|u GG|tLÐ؃u Ë؃u4G u-&Et G@u%gr#rAft;&Eu&E &&}tÁO}&Eu3ÁO@}wd&Eu3 dXr0wOXi Br3 &}t!&EtM Ë؃ubG u\G@u؁g rVArw&Mu&E GDt>ft O"<2 t uËGDtrÃO"<ÁO}&Et &Eu6ÁO@}wd> &Et &Eu^Xr*3oXiHs[OËw;4tgdu ;4tQYËƋ44;tFVW4)_@&D'u&tM|GH&EʊE}ujst |&EË؃uO&Eu &M37sO  Çې؃ugS wÐ؃u4&MGtGt G urO gS~ wÇېPRu ZXsÊOw"u_wfu OuJ_W+,DW> _@&L4&T&D&LV ^&D&LËÃ]ÐU؉~Fwn;t+ʃ,QDFFW>_&_9Oދ@vv[&T&DFV&LV^&D&LFNuntdDW>9_S&]O[@vvP&LF+sF#&L&t&tvvF&DvЃ]UW~u"S]WPGv}GxEGxX_[_]ÇVuL4x>QtAvEtDJ\HLHItE% DDVt@|^dD=w ^D4 uVtvW}_^^ÃuVwvW}j_^G4W}J_[À|$tfW}Ev;Ev_uYOM eJPuV4uED^;XtS]O4xE u\ E GgE *E"$8E$vVt$GG G G^\ D,E $E e"؊}k**:wEkE@uAE!E#VPEE DE X^eEJDt\"GJd`9GJt[Ãd|S[뭃 GuSP_GX[OÐ߼NM^MH=wÃeÇPXÐEt`e!Eu&rEu6\ OOsUbreoE!E#EJusÇېEtGe!Eu8r \ BsUb`reE!E#EJEt Eteðe!EuUbre~ME!E#EJE^EHE uË߃eE ÇEt#E1SUbr eE^EHEt'sUbr e}tEW^Et$}tUblrEE^EHeÇېE t8Et- e!EtUb)r eO]ÃeÇېE@uVutEjt ]fEj@t2\Ub]h\]j\rEe]^^ÇVWuu0Ks!sMsss ssluEu蝺_^Á%^E4 W}r1_^ÇۋVur\tM4x u2RPDTDDXZDtDTDD賹=w=tDt t!Vt &D^Dt&L@Du;W>J_fÇtWV^usP|vW=|vDvE_;}XtYVEt)r^uWPDv}DxEDxX_NM^MH=veÇۋlN拴nQgYS߃tG[Ð><uPSQV6;s: tuG"tG"u O"كO" g"GDrE<u^Y[XVWPW=GE_;XtOmeE @tFE WPEX_}&E &E&E &E&E&E&E4+r؁gw;4uG @t G@u_^Ë4O|_^ÇېVWgPW=GE_;XtiOlePg"uGd&De X&D&D2EWGHe&D_&t.&D,& D.t$WPEX_@_^_^E&D1V6^@ÐUS^GuV6S_[^O []Çې+ɉ\"LD$DGN;GLrGL)GNWRTWTTDD,DGRWTNtNtD$AG uÁLGtVwt&T WN&T WR&TWT^gWL9Tt+TGN;r)GNDWRTWTTDD,DGRWT~GuV6S_J[^OGJwÐGtGuGuOJxs+D&D(d*>ft G"@u G t $G"t <g"wDD(D%G t g D&W}I_OgO"@wYÇQPSV3EE"te"<Et5eVW5U_^ÇېPQRWVg"G"+ҍOw;tj:t  T4;t:t T4;u*uOtOG>6Ή|5GE9O uG G(uNu^_ZYX*tMH묃 & tS؁g OZjGZgGX[3Dt|"E@u EXǃM@EZDu;t4ԋ|"EuMV6W}Y_^ÇېVwt W>"_wt W>_^ÐVWPQ؎Vtt^E+EEEE GHE YX_^XÇېPSW_XrLW?_\ÐEEEHEJe8eLEEtVWu_unt W>_DžV6W} #_^ÇېUW~uV6W}_^_]W> +̍}tt] uW_%_Çې<;tOw]?>E@]&G2&G1&t&w,& w.t*&_,<;u&>ˍ}tLEu$tVWu Cˍ}t efÇuˍ_tgG"uWVG"t |rg"G"t rg"G"t G\r΁g"G"tG\rg"G"t G^rg"G"tGFrg"ÇEu%V6^t $@taÁeE@tV6^Çې>uHM*U, t*E GE G'WuQD\Lщ E]Y_utR+P*P+PPΦ踩1zÐU6tF\| W>_@S&G0rt=tP&EG&E G&E G&E"G&E$G&E&G&E,G<&E.G>W&}0&EG0&EG2&EG&E G&E G &EG"&EG$&EG&&EG(&EG*&EG,&EG._&}(&EDG6&EGG:8x&E.;n]t$H.;p]tx&E.;r]tDOW3&E@t @&E@t P673@& SQprp~r.zj t .:.<Y[X up.0r.01prS>&G&G P.z&Hh&G0X&2\[X_^UVW^F=u =u_^]ˇÐ  #!3**H @NETBEUI_~7?NETBEUI$DRIVERNAMEMicrosoft DOS NetBEUI 2.0 $Microsoft NetBEUI: Chaining Multiple LAN Drivers. $4NetBEUI load failure. $Older NETWKSTA program no longer supported. $.Bind not accepted from upper layer. $&Protocol Manager rejected function code. $+Protocol Manager could not be opened. $(Protocol Manager would not accept a request. $/Protocol Manager would not supply config image. $2Protocol Manager would not accept module registration. $9Protocol Manager would not supply direct linkage. $4No MAC drivers bound to driver, unloading. $-Too many MAC drivers bound to the driver, unloading. $7Parameter settings exceed available memory. $.PROTOCOL.INI keyword not recognized. $'Too many bindings requested in PROTOCOL.INI file. $4NetBEUI module not found in PROTOCOL.INI. $,PROTOCOL.INI parameter format is incorrect: $-PROTOCOL.INI parameter has invalid type: $*PROTOCOL.INI parameter is out of range: $)PROTOCOL.INI parameter defined more than once: $0Address error correcting for 386 processor. $. $DOS NetBEUI: Won $\DEV\PROTMAN$PIGGYBACKACKS$STANDALONE$ BINDINGS$ DRIVERNAME$ NCBS$ SESSIONS$ NAMECACHE$ NAMES$PACKETS$2LOOPPACKETS$ DATAGRAMPACKETS$SELECTORS$ dSTACKSIZE$ TI$0uT1$2T2$2ADAPTRATE$ WINDOWERRORS$ NETBIOSTIMEOUT$'NETBIOSRETRIES$2DLCRETRIES$ MAXIN$MAXOUT$PIPELINE$ MAXTRANSMITS$ 'MINTRANSMITS$ 'LANABASE$ CHAINX5C$ :UHLS >> SEJUPQ;YtXPRV !ZX]ÐR=@!ZrPPPPXÇېS>![ÐSQRD!ZY[sPPPPpX>tPP8PPFXÃ>t>Çې;>tPPsP:PXÇVW>uPPPPX 3.t10`k tL>uPPAPPX+:V=rPPPPXQ`@~[C;<w@:_^ÐV^ÇېVW&4:+&&&0&:&=u8&3PX%=tPX%t=u+&<&f&@&&&3&&& &"&$&l&&>&&&&&&&&&&&&&&&&&&&&&&&& & & 3&&P&&EX&& &"&$&&&(&n&3<U4EzE|E~DžEdE^EDEN}FQ&:MLYEfEfEhEjEjElEnEnEpErErEtEvEvEx3߁^b`Q&]E..`.Vw^DDDDDDDD D"D"D$D&D&D(3DDDDD D DDGDG DG D^YI t>&EE8ELWP} EX_Ǻ&EEnaE~[EWPEX_&E-WPEX_&1&:EE$EEEEEEWPEX_t&&:EE WPEX_0&WPEX_`&>k&:&&>&.*P&B73@&D3@&FS&N&X t ‹t;}&H&P~&R~&^ &`6&J&Lp&T&V&Z&\&b &h &j=tPP PPX&d&;bv &b&d_^Çۃ>' tPSQRVWU+>! &5 t2=tXf%DȃǾ"V獽w[YIt &_PPPPXPPPPXÐVWߍE<thVL^tDt2L|u1&tP_&?u&G;Ds;DvDS.tJEPPjPCP5X+PPPPXVPPt4VX^PPPPXPP)PPXVPPt4VX^PPPPXPPTP+PXVPPt4VX^PPPPiX`PPPVPOXVPPt4V<X^PPPP%XPPPlP X_^ÐVW]t & u_^&u_&?u& u&3%uЃIuVWs(&& Et&=PPPPzX}r&& Et&=_^Ç۹+VWPPPP(XBr#rprWrr rT"M>tPP$P PX_^MZzv 034444;14!%)-159 : Q _ ,r FY4Y4Z4y`4`4 . f 2 f 6 f : f p f t f n_ _ _ _ _ _ _ _ _ _ _ @_ H_ _  b o |       H    " m  & P 3 q |tld\hhSh/hhBhhhhh^hFh hhhhyh,h hhhhhhhhhh]hAh#hhhhhhPXZ'kPXF+WPXt>t>Et #(].6^PS [X(u.6vPS[X(PX u4܌Ў!PSX2 t (؏A;t76?6=?=;APX>u :3K&G@&G>CuCDttUtP..NPXFJHNL6L6H6J6L6N.6R616/6FPXFJHN6H6J6N.6R616/6F3@3@3o3͊31`3(C) Copyright Microsoft Corp. 1984, 1985, 1987, 1988e OSP2J[[s Jt `U^.D:Gw+:r.^*2؋GU6|^PF^]vF _ uɸ]Àu t u [HHøWju t usGGHrFIt tW1.D3 +.D3 7s=c uVÀt t"W.D>u17An.D>uNLrۀ<t6W.DuYVW@jt t=.D@Vi[t%EVi[u .D@ _^SVn^sC[_&u3&u&&t#V.DE^B=BtmtIutD%8=t 6=J딃DuLmL 0mÃ|:u ,aP/XsDC@tDCtUlmVWQ66>WX^Y_LMDChILOh.Dt  tr6_66>,m[[løV5h^<\\tu|:uX.D>t/P/[r>&ECtP} [sV.D6Lud^AP/X.D>u5sv.D>u2IL.D@J.D&>&} tW!Pg_tZ&=u.Du3Vgt t&.DEgu@^^k&Et.D>r&ekP*.D*XóxK.D2?>@&M}5&=t*&=t$&Et0&;E1u>Q&=uY;:K.D> tJkB6.DRlZr*6>&uR&]T&uI&]K&MMLuDL3D/u6DDuDtODD P3DX6D6rù YErE EEEEW#ƾI_E!IJ߹l rE!=r=uO@=r.O@E+tO@E+tO@E#tO@ =rO@@E tO@G@tE%GFË>E%8=u2 =t W_u%%W_stھ(6\rƋ>YI3EEpE W#6Cc>t6LO(c !c_+ϋ-#E!st}u }uc Ë6E!DE#Ë>YQI3 EEsE !uj 33G@ t-E3W=u 3 tG@tHb_3WQV^YG@uWH_G@ u <u uX+@@؉&6Y+ƉD#&>YH3nDEu 3G@ tG<u &3 tQV&6Dtt@^bVQY^W&>Eu}@_YNj+D&6a.D a+E>Y+s'}stÃBt}!uuO@PXO@W}su}#'3%W_t!(W_t.W_tO@_6T ‰DESQRVWPE!Wu@a_Wu88 `^Ds76\G@t@Vt@.D`^t*3 D~r>e]g@X_^ZY[Ã>߃} t5Gt$8:u tt !.`t/?uɸT"!V8`^u ˜ ƉE Q>} t!Ett$8:uIt =uٸYÌ u.D&3 4 _vVUV.D^- &>&_&62s=u >uE  3V.DVWRx8 W_Z_^VQ_Wu-_Wt$SW.D~2`_[tK_D_uWY^GOgAtOrGHUAtOr PstPV6DuOD=7^XË3BuG@ut  VQY^tX;u tGG@ 2C&}I&>&.D c&} t&M u&e>&EtS&][&e?ËYDGqG &UK@3҉WW!#>}E@t,]]MS@u &3@t [&G[>u?.D&&_&Bt&OBu&G@u&?tTN.D&&&_&Bt&OBu&G@u&?V6DuBt OBu?^óAC3rRAC3ryfGVG !X?O!#.D6DV37^L>^raumAP3r*GG !?G$ t uP]YtV=Gaó 3AW.DsC&}I&>&&U.D.DYG>G G!#-3*7_rW#‹W)W'O%_!`_u[ @BP2r rXPG G G!%G'G)3G#G%G+G-G/13>G1O13#3J <[rus|= tS,QP /[[ r.D6ó@2rE rFGG !=O!у#73 r+O#W%;G!'_)PSQRWj<_ZY[X_øVGW6+>W%>PZX_%_uA&6+66%&#WZ_+G#O#%#3 ;rIu `Xs?%A0rrGG 6m2G!#.DPWP[0rX>&U8u+&}&E@@t:$<t2<t.<t'@t"0tS> K3>[>&U;_XVk@sS&u&]T&U7T&U9DW|&U8u-PV6 t.DEMYu ^LX_^&Et&E>uG-G G! >uG!G%G'6m2G)G+G-G/G1G3G5G7G9G;G=W.DAW6}XXW+#_W+?_>t3j 3+˺A>uj 6s0w#L63DD/u 9O-uD DDLD D G%D60DS>_2[_&uD%&E&E%? @V&uD^t %&Eȭ7&M &UW}_3sx_W&}G3=t=u G5&E~&evGG &EW(_&Ms_LWV6=s&u&]&}^&]&u_&E7&E9&E&EW W.D6F t 󪫪^K k#/r_X&E&E <6^Xj9:Y&U8u_XPVgY6>u&}u&EWS /ʒ44[_&M&U*r.D>&M&69ZXXXt=tv ZZt8.DU0,8r.:W/.^W&T&L.D.D26mG#+P%6ȃE*3(X3.rW! um_EERW /ʒL3_MU[]dWOP6>uEM+Ku_6>,&MV <.t<.uN  u  t u <.t^3󫥥WË߃d(GG 5O!óp7>,&%.D t\GtVSW /ʒl2_[ +OWr GW -_(WwdJtVW_^t+W,_+ u>,.D&Et6 P&$X&}.D%&;EPt@><8W=,^W&T&L.D.D+P%ȃ'2Q66,Y(X.D3,rW>_t=t ZZu>,& -V.D>EWL,_MR&U8u~2Z;Eu&utV4D^D u#V4L^.DmDE@uXP=uFV&t&t&t&D@@^tB&Du:u3VQ6M&;LY^w csI&D t%V$@^#&D tV^s V)^+M5F&E@@u /&E&U /P,>W6s&&E t@r $*r.D&EuXP=t&EuW&}&}&E_YGG +23G'&EG!&E@u &M &U/O#W%)#wW&}&}&M_r6WP&E&}&}t&=,r$X_[u&6Tu&[_sո&E@u &M &U.S_#&EGOWG[L ;j 0tcSWVQ> Wt tt .D^YRQ.DYZ^_r.XLO@GBPVt D L@tD^&GX[V^^W&}&}&M_W| 2rZ&u؏G]EM3ɉM,M.>t[VW [0[t ?r&&W&G,`&O.0t>_VWQS&g@&OB3&O,&O.&&>t&&&&_&_&g&w LOLdL uL tDOD=u[?}t EDOED[Y_^u&t&dPX"$SQ2r&E tB=rW?_s&s&Eu.DYGG .3G#&EG!%%Zsu&U&M0Qó!1Br&Eu6>6QR(WQR%ZY_.DYGG ~.&EG!G#W%O'G)+'ZYsu벋G!W#P&Et3Bsó0P.D&XWP&}&E&}>X_P6,Xt"VP6D D DDX^'1s&E t;j w6O%rZ&E&]+D\rJ uF+DsD t38V&uD2 ^t &E&U&+U&E tV&ud2^&E&] 66,s'9$sD@u,;s3&E&U&+E&U uV&uL2 ^;s=DTD&+E&Ur'+r tWB$_s3ɸ&E&U+DTr% uY+DsR;vQWVd6>,+؃ u-+s';DvDQWVd6>,^_Y$u,&M&UPV&u6,&ED&ED^X.Dt&]&]&Nr 3%N "_YQrV t>tQj Ytj &]\&EDd^[sXLD;tL ;sOW&}&ED &ED _&ED60DDtwVW6>,d_^MuDW&E&U+DTs u+DrD tt& 3&;suD@uMD t3uQWVd6>,k"&E&E6&땣QWV6>,d^_Y+ȉ&E&U6,7rW6_s35 tS/ruL;| sk/rQV | 3؃d^[r5 tDdDDL;sY tW&}&M&u&]&ED &ED _&ED60DDVW6>,t_^LDL+LWV&}&e6>,t^_Ë\+\;sP3 t6$6'6&6#6$6'6&6#XQ  j YQ3&Ej +ʀ>uYQW&}&}&;M_vÉS_#GO&M&UOWG G [LI?j V^WrxW#DM_hLW&}&ED &ED _&ED60DDD;tD &ED&ED؎|dVw#NO^_W&}&}&M_Yr 9LsL.D6.D t t>t&P60&EW&}&E&E_X6&E&EV6tD@^ t*t%>tWVQ6t.D[,Y^_PQtet`t[ uu+u#D+t- u;rW>[_vYXt{YX umteutU66V6W>&M_;wȉQX^t);u >t=YWG %GG!W>>'rk&EG&M_0G)+w3O#QG%G'G+ ttG+O+G-O.WR.DO) tt _3>}]EE-S%tx3s&&G0>uH0>00&w&o0&GSYG#[&GX-0P$t>t<t3W>0;E_v tԃ&G P&G&G$t2[.D.Ds3s=uQO! tQWw0^XYYPW[.D.Drjz3s=uTG!>t-ZRP t#_GwG#tH2.DXr>uV0600^Z_Yu-=!u,>t%&EuP&E$<Xuu 6suÿ[]EE0 tE u ESO#t1[r&u=t5>M@E Vd&L6^}M@EBE,`M. >}]EE%S"tG1[.D.Dr'2r&u tG.G!Z_Y;r >tÜV@>&}@^.D.DYi&="GG!W>>Z$s_3W&}&E@t_&EG_ uGG tG O#G%QG'G)G+G-G/uG/G1G3uG5G7;G9WRQ>YwY&E-;G9G5&}]]E;>tV[WQ.D,Y_^E PE EXSP3!t/X)s+G5WR>&}]]E;S tV/[s>}]EE%S t./[r&t!&G=t=t=YutZ_Y.D.D/rS>}&]&]&]&t t3..P t.[r&>}]EE%S* t.[r.D.Dn/rG!Z_YtGG O'G)QG#G%G+G-G/G1WR.D#>}]EE3St-r0&&&G&&G&&GSm[t-&G&[.D.Dr P.Xr tZ_XZ_Y=!tÀ>t&Eu P&E$<XuR2&M0 u;W&}&}&E_\d;+كwG/G "PXG!G"&EG%DG'DG)G+G-G/uG/G1G3G7>O7LO5O9G#;uQsDE@t VQGY^Vs3ɸ ] 1s .DP6,X !s&e&EtQ&E t uw;j wc&E&]66, .D;rU))rP6,X&M&U&E&]ZR u u &;Erw&;]v&E&]Z?W&}&;M0_w-uE3) tYQ)+s]2WS4*[_ruYQD3 tf3( tYQ+*rQW*_Yr߇W&]&udV66,_^LDD&EDW&}PX&E(&U*&E,&U.&ED &ED 60DD&9]0s Qp)Y_sT| +;s#3( uYQD;| wZQLWVd66,^_L@\W&}뀀d&E&U+DTr$ t++Ds u DT6؃ u+s;Ds)DQLDTWVd^_Y_Y3ɸ QW.DYGG %&EG!G#G%G'G)+'_s t&E&]G#_!YsuQW.D> Rr^YW\&]D&EdV66,_^L,D@&EDW&}&ED &ED _60DD!QW&E&U+DTr u+Dwދj +;sD@tuP[+D뷋;DvDWVd66, WVd66,WV^_t^_tL@W&E uW>,u+N_&utD t S+utoDu Lr_366,&MR&E+-V+ t<;sWQ&}Y_&M+t < r&MRɋ u_;ãQWVd66,^_Y+ȉ&E&U6,L@E;Àvû t SڋOGw[,s;nr.D66>6߈&Eu&uD D DDD D 66&E t u;j wW&}&}>&;Ev_&}&E@_tȀ> u &Eue9u96u9uu9uoVss9Tur9Lum9DuhD@t݀WEr3_^9À&]&]&U&MWVr3tD@t(Wr_W_s^69^6YG G#w%W'O)QRVPG&EG!3G+-#]s uQX^ZY> u%VP6D D DDX^VP6D D =rDX^8^^ZYW&}&}>r &EG_&E uh&Eu`&EuX&E%=@t=0tEV&u| u| t1S&]&E+\sHx+Dr;D wr ;\ v3 [^&Eu'V&uD^%=u&Eu&E%=3V&uD^%=u&Eu&E%=&E t3&Eu&E%=@t=0SV&u&];\u &];\u |ud^[ós.D>Q4YrvDUulL 6`3t5Dt.VWQ4Du>u !>i2Y_^u<&E IT6| uDt4uT7 LP T1 :r&e&M&M(>&5&E&ET;v&ER&e &M&E&EP&E&}&EV662k#rDDt=g<.D>Nr)>&e 616ø)6S[RQVWPnXrE<tLr Z<t T/T%u'T^^^YZ@w&MP5à W5_LPQY/LS3ۋ6G66<.D>u .D6DCtCXX+r3'Dtr B;r.D <r.DË62T61Ë{0;rVWJ0_^10W.D3& tGR1u;u80Iـ?t ?:tG V0&^_PSV.D tޘ:u/^[Xûu&N4V.D tGG4,<wVQP.D6TXY<tL ^σd.D& v !VWQ .DY_^м .D66.D6> v  .D6!& 66> 6RQ.D16T6YZV^V^^>uDt tDrLdDtQWRS60DVLPD<>yrU.DÎۋYGG O!G#%W<u t< t3_+ϋ-%%3z^r5Ld&G!D tDVLPQVV^YL[Z_YuG>tdDtdL@dQWRSDuVD <>s^:U.DÎۋYGG G!53G#%#3^st=ttDVL[Z_YsÃdQL+΃Vu Y r^mWRSDuVD <>rڋU.DÎۋYGG G!#^VVP(#"Y^sttDV[Z_YU v^~FFP},Xu Pt,Xt% tPf,Xt<:u<.uv|:uv~]~0~t~ES0WPSU][X_F&ErDt4t!~+O\.D +30v&Et&ut$ 0.D,tt %,/Ê2/TÀwøWË6Dt D uTÜS@ۻ<rt[Ã?u?uV.D6<^uPSVWU3]_^[Xw!V.D6<^twt t˜>t >u.VQRP DuAL3sG=t%=3rt"=6t==r=?v ZZY^.둰(>tv 09DuXPW|+V;|Rrz_rXPW|G|_XZY^i.?SQP73XY[ÁwtQP»7XY =Jr.D3&3.D&&6&6r)&>t6Vk ^r/lr$&E &&>&&U.DYP .D&>&} uW! )_&9rvVW![)O)&GO)C):uO u_X&uN&6&E%8=t&>ujH.DM&>uFW_H u\t_^&=tf&>u6 - &>&(t tU&!u<&u4O&u8W@N(u&_G&E4(_tG&e(t t3N&6%&!u=&u2&t-O\V@ u^&u&- 2VW u_^&6| t4u.D3 :rT!u t&E%8=u&u s*&EuP X&et؉>@=Tt=c uV!u t &6&65d+P.X.D> }tEuE@t EreE=uA+WL tD D DD\DdQL[_r ;usu묀}tEEuE@t66.D&E(u@6 |t/Du)Du#&E;DuW&}&E9D u&E9D _t4u.D> }t.=u> &P66ZX&EEVP6 ;t9 <X^ t6 5> USW>Et s7}E@t s7T ]EtuEUSV|1t^Pd^X[t_wt]EtV[^u EE u MSP$t^X[_u>t>u)[t]PS[7G_5[Xu3>t,t&WR3ҋ>S]L[Vv4^_Zr ^G[WQV6Y VWQ>Y^_^Y_PEGXWVQ Y[_W#_+-SP.D6=t X[S6Gu_?>u.D[WQP&}&>&3&6#t AT1XY_'.D>t$66><6GXDCu+uPSQR.Dt 2ҹ#/ZY[X'Ëd'.D>tC>66<6GX2P/XrDCt PAP/XX.DPSQRt 2ҹ//ZY[X'&.D>t33Ҋt6L.B;r'PSQt 2ҹ#/Y[X&&.D>t2ɋJ6KDt dJ yPSQt 2ҹ//Y[XP&.Dt u>>/\ &.D3V6:GrSP.D6>t66<XX[DCtZsUPWV*!^_|O2X_A:LMtI|TDtl>P/XL\Ttl %^m^3V9>u .Dt"sVP4! [^_L 4~^B.D;rV.D6| t.DtsV!Z ^_3L<4t| u^$6RVSPQR Z/鸵R P/^I P/XIʸQ[PRS <[Sû<[Ã[^X[^RÁs3ҋu6RPSVU3ҋsRPыù< Ա$ XZQȾ P/Xs/Q P/XBX$  ՊY]^[XR;P.D>eXVQPW!_6t&F;wtV4t4;wtXXDuXY^Du^<&DD&EXY^3| tQV!q^YEV&&E6t&&&&EX^V6PXtP;w&- ^YVW66@Lt66*LVt^4u_^Ã<tqDtjDQV .D < t3.D r3!uTDt,^VtP Xt"huD|^L{!u(^Y;Brً^L\VtDu^VWPD DXt&uuD_^dwPQW.>Dnj;u&> & =t;t4 _YX6>&}IW!64(&G( t :t_À\t uN_&>&&6&EuW&}&E@_tOs.D 66PSQRWV.D;^_ZY[X6QDuD@t Vd^TY>3&} tA&E t &)E w.&E t&WP /ʒX_&+M&Ur&)E wX&E&E&Et A&e&=uË&Bt&GD t&)GBw &GB&GDXSQRVWU&E &P66>&E%8=u ?豻X&]_^ZY[&EuW&}&}_W6>&}I_&E@u&}Ot&&EO&E&6 & Asu& &MÜPSGMB3GGG GG G GGGGGXÜPQW3G*G+G1G2_YXÜW.D> }t EtE=u_6+<XP.D6  <t4PD D( D*X D0XÜW&}&&E2&Et&Et &}&E_&E tPSRVrD^Z[X&E&EQW3&>*&>@_Y&MCW}&Et'W&}&}_u@&Eu P&E$?uP/XLT\| s#ÃY_\+\;sˋtQ/YL\D[[[[sVQRr&uDt޳t3rD0"DDa\ aD"DDe VrP[[[[rðRQPr&uDt[Su V`s@^rX2D0=umD"DD s=uL"P/XLrXZY\+\;s_RPVt_u;ur E^dȜ벰 1PDD DD Dq\ r q/Ljrd[[[[[[rWVQRr&uDtݰ .rD0&D"DD DDD& s=uL"P/XLrð .D-&E(D&E*D&E D&ED&ED &ED &ED&E"D&D&E.D3DDDD D$D,D&D.D0TD2| s=uL"P/XLdsð K.D-&M(&]*&&].D3DDDD"DD D$D,D&D.D0SD2 r]r9&}&Et- u%u &E0Эs&E(&U*&Mrr1R&u_Dt" uuD0D(T*D髒rt6 t r t!PXrWP,X_rIt<t?.D-&\&ED23D(D*DDDD"DD D$D,D&D.PSW3S/[rN&=tE&E t=SRVr0QW&}؋&;U.rw&;E,r_Y^Z[C_[Xø /r&=u øS&2/[r&E tWSQR&}&EtH&M&]WSQR&}&Et*&M &]"PX>;wr;s3ZY[_&E t' uWVPSQR&}u]&.W&}&e_&E t uWVPSQR&}u ]$.D&Etg&Eu_&Eu& E& -!&&;v;w+> uPX&&TZY[X^_.D> }t=uÀ}t4 tu u@ePEXrutdWL D D DD3ۋdQ [_r&;t+ى]QWd_Y3@su똋6 |t54uWPSQR> }tEu 0r t=uZY[X_.D6 |t ;Du;|t4u t= t=!u&>uP6&X=Yr=t &P$/X3VsV{.D_t}W&> t& u_똃!urw-;s2$V[P"/X^ v &g$86Kk_ u<u6$ 2&GV.Ds;tDdV6L^> uDVQP2Ȋ& :tXY^A^ XY^YPSR3ZPS&Gu&Od[X> t#> t> %t> t>tu $ ^W> t|& t<u 6$ 2_^6JVsu^6L= ^R3@ZD6NV.DDsuø 6LV.D#Dksu=}&M&6FV.DkDCsu76TV.DD$suD6RV.DkDsu2V.DD.`.6/`.DPVv &$* 6>@YZ_W&M5}&EtW&}&9uu &9Uu&M2_;_&=uPW&}&E2t_XPSQRVWw 3_^ZYrJuH uO@? tGBV6| t9\uDu uLD B4u^[X&7&&S[.D& .D& &6 & SQRWUD.t=wD$u=w|,uD&%.D& D& D & D& D & D& D& D& D& D$& D& D& D & D& D& D"& &$ &" 4&> uF]L ttu& V.D@@ B ^3& c N +& & .D&Geu 6 Vu& |4u& &> tt ƹtu2^D.=& &;j wR& & r& r=w&j 0;w& &> u&> u) W5]_ZY[.D6 t.DL 6蕦s>u$EtruD@tեrE (3蹠s=CtB]븋E%8=t23 >E Ej 0;vЉ  3 t" + 3+y3 # t@@    u u  j )@> t@ ; w .DosX> szK t> t> ]j  > u[ t  tJ<> uy> tu[> u> uW t t > u 8 u0> t> u!> t> tڋ]j W 6 & +DD$&" D &$ D".D>[1t5_6 h Ӏ|t1Dt+D\1uډWkڀ1t3GBGDG,G.4š tNP> t;X t.DN W +ʰ 2^薥sTgSރ&j & .D3 L[ *uQVWS  _^Y &2G_OGBGD tËT !E% 6 D.t& t 33WFF請W.Dc  +X^D E&}     3P X ǫ +Ӌ+σ+s3&|&)\ V6 u& & ^& ) uQ> tD+σ+s3&%t&|&)\ V6 )^  &L) u +JJ+;v QY+Ëȃw ;h vh 6tD0 D02 URQV^SWV臣^_s[Y?0 G2 G0GBGDEG_]EEEO.[Y G  Z]Ë? tEË t؃?EÈ  ) _u'ȭP[W> " _u-ȭP[ > $ $ ; u" ; u _^ZY v X[_π> t> t> uS [ø:VWP&G}:u uX_^Pth uXPW2_XVW8t &:u tG&=_^VW &:u t G u<_^sf~&} wO>PܝM]ODX].D- W^.D苛Wru]G@tg@33ÀtùuZ.D     tz t 6 6 S6  h.D    ˰ÜP*X.DP.D.*XøøÀt(6s366>3P/XDÃ>uXutøÃUPȇFFX]]߰)cóO߰*UPRڃKs tw tw?&=\\M u.D&&=\\N u.D&7&FFGGu|\ <\tO fFGu|\uC[Sww w.D- W&2^_s)>&E>[Sw w7.D- W&2^_諙rVuD@^u[X2P.DYUۋYG G!.D#[GG7&6<w&60XS&Y&G׋+&U+˺H3.D[P&6YOD!&&ET# t;v XKP }t%3>i>t>>SXÃWP\3IGGX_U8N^F^F^v~VV&7 Ƹ:u.D x{wO.D| ^3ۉ^^^^^^^^މ^؈^ۈ^ڈ^݈^܈^FF.D>FF~hv) Nށ~hwVvNށ~hw^w uVHsL3&LVFvvF證F^VFvvF^F~hwܸWVFvvF⭉F^VFvvF^WNށ~hwVv+v^F۹AAWNށ~hwVv+v^ uFu*FF#^" uV~LP^ X uIFtD>FtFer,r'r trP^ƓXO]XXXXX9XXX3XWWXXXX<@s<#vX!S.D.oz[ s@$.D&3 3}s@=uvt ar=uvTt u&3 .D4 $.D  t:uU~]t twturM3eUSvk.D s.D=u`s sNT *T+ t~w2-~tJ)T JtL 6sd=ul,AP/XsDC@tDCt686u ~ttI+t ~r6>sr.D&>&M.D P/X2j"sDtr3U~FN^ tKtB03ۉ^^^.D3/lP/XNLVT u F t%6G26><>t> A:o&ECt W&uI[_X3һ PjXDu >tt4.D߶!B;u3ɻ AP视XrRQSVN~rtNF^)V3F[YZURR"˸/DvDF t Ht 4.D bss  u跅r u F:Hu$&,AP/XsDC%5ttIUDt4~&M &}V $P/XD3;tv9\ sw tPSQVt!^Y t@;[s[PW_D!&E &] tY3&E&EDP%8=Xu >u>ut t&]%8&E`&]&Eu \ t RZ t PZ‹X[;VЋ uX:t8Eu>t pBrE@Wr6^r1t*r&u  t_^ZY[Xrz u~ 3|JuDtFsF{Vt W_^ tWD&ED&Ett&E&ESRVWQt &u&]u߃~Y t~+uF_^Z[S2.D+[FOJt^/FDFD~t |W]S.D2;[PSQR+PR3Y[+ZY[XPSQR+PR3Y[+ZY[XÃ>z t++uGtPPX>Ct0C t.DYrCD t .DArDXPQR /3')ZYXQ /ʋYÃ>z tPSQRW:~ 3z &}Jt,RPQRP&MK&]M&EQYXZ+r&EJYXZO_ZY[XPSQRVWU.D>ǔ.DRQ.DP&GuX tBr&G@s"&GPSXsPX>CuCDuY]_^ZY[XS&O&_br46ru-(> t!>u[&GAE[WVQE Y^_u&O7&_9&?&?Su:&MBu2&%u+& u$&=uWVQE& \uuY^_uPQRWV.D]~ 3Jw!%rW.D_&EK&UM&EJ^_YZXQR.Dz &}JuWV} t ^_t OtZYVV.D-3QW_YD&u&uD DL&u&5D(D*D&uD Dc\D&D.a_:rc t^S.D3ێul&w&7vx&h&O[ÜS.D3ێûl6v6x&G&[.DvuS[RuaS[sWQށYwIWLr=W_60&&&&Ľ&&M]&]&]/‰_CS.[r&Dž/&Ľ| DS[rK3ҍGG;wtRZB;w+w3ɋыw;wt_KP/XTL\|S[.D|vS[.D|W_rv u!.D>|wPu*wyrN`QzXwPGG;w+ww3ɋf Xt8^.D>|twP/XLT.DS[UW~| |zt?r;Ww.DHQ;sQR& &UZYyYrQYRFw t2QRVRwY;^ZYr FGWw+;ww;wwZWQ.D~&U& Y_&}{~tGG;w+ww.D<\\uZ]PW.D~W _& &U_XQRGG++#+ twZYQRGG++#+ tZYQW.D&z& &tu&şÆ_YPRVW.D u& _^ZX3Q.D&>z& &tBdžYPSR.D&; w&>z60&;tZ[Xr &ŝwËG+GwGËG+GsGVsN^.D u.DVW#_^.DH;s.DPSQRU.D2P tm1AuBtKJSQ3X[YS[s1.D>uu"8+rs.D>utX.D]ZY[XPSQ 60z9uLJÆY[XSwE&W?&O7&_9.D&]&]&&E[.D>uRPSQRVW| 3ۋx &At*SQ&O&_Y[&G@&GAPXEC_^ZY[XPC NETWORK PROGRAM 1.0MICROSOFT NETWORKS 1.03MICROSOFT NETWORKS 3.0?????A:LPT1:COMIPC%(.2IPC$PIPEZB0>\F8U(TvTTV3WWUV(XlX b@n?*<>,=[]|;"+LPT1PRNLPT2LPT3LPT?SSSSSTTT \PIPE\LPT1 f0X  D e s     ' L x  ^^^g_k_k_^k_k_^^g_^k_k_k_^^^^^k_k_k_; 6: ; # 6+ 7# ; 3 4 ;E ;3;5 ;; ;4 74 ;< ;!63"8 3#; ; 39 I J V z^A ^@^C^B^1= E_2> _4? ^QF^YG^^^^c z^2 ^: ^G^! _ _D _X __  2 34 56789: ;<=>?@AB CDEFG HX8V!   _\M___Ba`_NET809: Network request not supportedNET801: Remote computer not listeningNET802: Duplicate name on networkNET803: Network path not foundNET804: Network busyNET805: Network device no longer existsNET806: Net BIOS command limit exceededNET807: Network adapter hardware errorNET808: Incorrect response from networkNET810: Unexpected network errorNET811: Incompatible remote adapterNET812: Print queue fullNET813: Queue not fullNET814: Not enough space for print fileNET815: Network name was deletedAccess deniedNET817: Network device type incorrectNET818: Network name not foundNET819: Network name limit exceededNET820: Net BIOS session limit exceededNET821: Sharing temporarily pausedNET823: Network request not acceptedNET822: Print or disk redirection is pausedNET476: Network software not installedNET477: Unexpected adapter closeNET825: Network data faultMAILSLOT e e e S e @- d<d e  e LANGROUP\\*/ pJJ^^ x/4occbb)PtJ:DV?@@oooooHpMpRpppl%moSL?LeryK~~8Ѐу恰pp\PIPE\LANMANBWDCFzbwdghiONrLsTPeKqtptmtutttttuuuuusst4tJttu00000000vy|WORKSTATION MESSENGER NETPOPUP LOGON X...\\.\\*\MAILSLOT\LANMANMRyv1C:\LANMAN.DOSNET2413: Incorrect DOS version $This file is part of Lanman Enhanced. Use net.exe to start netwksta. $NET2124: Insufficient memory NET3051: LANMAN.INI or the command line has an illegal value for "%s" #NET3053: The unknown parameter "%s" was provided on\nthe command line or in LANMAN.INI. oNET2182: The workstation has already been started NET3076: The network software is not installed Buffer size specified is too small to support all remote API calls 6NET3081: The LANGROUP specified could not be used }NET2131: The parameter specified for MaxNCB's (/S:) in LANMAN.INI\nwas too small, using %d. NET3052: The required parameter "COMPUTERNAME" was not provided\non the command line or in LANMAN.INI NET3056: A system error has occurred.\nDOS Error 52 has occurred.\nThere is a duplicate computername on the network NET3056: A system error has occurred.\nDOS Error 68 has occurred.\The network name limit has been exceeded. Could not access command line file %s. gNET3056: A system error has occurred. The workstation program NETWKSTA.EXE could not be loaded into the\nHigh Memory Area  /CHARCOUNT,/CC, /CHARWAIT/CW /CHARTIME/CT /COMPUTERNAME2/N2/HIMEM /KEEPAPISa/APIa /LANGROUP&/LG&/LANROOT>/I> /LOGONSERVER/LS /MAILSLOTS/MS/NBS'/NBC /NUMCHARBUFD/PND /NUMMAILSLOTS/MB /NUMRESOURCESk/Lk /NUMSERVERS/S /NUMWORKBUF/B/NUMVIEWBUFFERS/MR/NUMVIEWEDSERVERS/VIEW/OPTIMIZATIONS/O /PR1BUFFSIZE@/P1@ /PR2BUFFSIZEa/P2a /PR3BUFFSIZEf/P3f /SINGLERCVBUF/SB /SIZCHARBUF/PS /SIZWORKBUF'/Z'YESNOOPTIONAL^_>YDSMB3>Pu)ȃ@t &;vмWRRZ>P&>t &&&  -T3- e -v E -&>& Žڋ״?!r;uXPV&6P޾&V^Z_r,PRЋ3ҡR)Z>!>QW3T_&MTYCC>3>Q3R&<&DY&&D>3QXY>>v G2@X> j 3ҹ+ h j Q23Y&D&<&> z | Q23Y&D&<&> z | Q23Y&D&<&>  3> >0> t 3ɑx v c &&| C3ۋPQ3Y&GGB&G&GX&G.&G,&G&G0&چšz t'~ 3Oʑv &s3c s3X[YZ_^3۹>!Cv P&? t&+t x1!L!3PSWVPȲ;Xw3ȲER.D5!%ں!5!.D%ں!.D5!PXذ%)!@&QRVV&0 &OZu ^!^ZYC/tlSR!S&_&G&t&G[&_&G[ /<uG*4tt 3&, tK32Ix7tW2_Ǝ޾Y$.DSYM؎.DI!&2  <@uK.D$W2Z =!r#ع?!r>!r $A!s/${<%u&4.DF5IQY G&Dߎ_s> u 葱\?>t'>z te > tأ >"HsrV urrt͋R ur;sȣR X urv G2AX trth d urǡj urt׋z d ur| urtա 4 uࣘ rWr>u3z x PXg>z ux > tDmC7>x um> u A_׉>z uymx trWr>~ z O ur܉>| x B urRPΣXZ4PRV T s  3Ҹd 3ҸU"$ZXQVW.D[S &6艑 _^YtR z x +>&Gc SWV [3<}t-^_[sI>c tP[&1c &GS  X <t< t<t<tee ںP$ =!rqSe ڸ DJV![>!rSe ںY$ =!rBZظB3ɋ!r*u&=s!RPB!XrO>PZ>!>)_t &;s!.DT3ut*+ =w;w >wd3+ =w;s>w=w-бPX u RR Z&e}мp#%!p$%!VWRQSPذ/5!NP%T!.>Dߎǃ> u  ^>t>j s {R uOĪ >".;Dt5WP.+D؋XR_WV.D33D^_>u 8>z uz8.D>u`.D&u&T& +Q33YQ%ùY&&.D3QYvջÌP&+D؋Xa&D>"#&tF.D3ك>z t ~ .+D+3D Ë>"B > F J >z t)>~ )>| >Pt)>PP=Xu=rT.DP !XL!3P.DR L!rr twr trrh l rr uj ÿrPr(vëÿݿqr t w^.Dd 3Ҭt BsBYAI2&>d t*Qd PPPhY u&&&>0urru| urrV T rw rR rr rX rrr z f W.DasYr &\&_W.D6s.s&r&&&_r=rz r W.Dsr& _rÀtx WS _W _ uW t 蘨螨AI_ÿV2 tF:u(CVRQP&Is:uCJu&I<=t<:t XYZ^XYZ^+FI+EދQV3P&at <:t<=tX@X^Y3-s$rrrrr s<0r<9w &NA< t<,t< t< .D3Ҭt 訧BwAI tQڋʰ 2YW33:&IP<-t<+u,&It${r,0Qҋˋ؃YX<-u؃_I&QVW&%Gt I:t_^YXXXURQSPWVmn>v3<%t@ t<\u Nu&R0P &&N&NX2,0&N &I&Jr&>Mu <t;6&N t &>IuV(^V<t^&>It &N t^3Ҭ tB+vV>B&>Jt >R3S&6P&N P[^IP3XP XtS[ &>Iu!< r &>Ku&LSQY ~ &RQYêtùS&Gm@![mÁmtm3&I&J&L&N&R &M 0123456789ABCDEFabcdefUWE F~ 3IN tr{~tPvv ;FuܸPvv =t~tF Pvv F=w:Pvv FV tFF V;FvoFF VRPRv  t~tMFF-;FtWFF FPvv F t=u F FFN1vv F u%FF 0FF~tbvv  t,~vF VRPF t0N*F@#vv F uvv `F~ug^F&+_] UWVE FFPvv=tF+ƱFFF FFPvv=udFV@RPjF t6W~3I_v+N;u ^F u~uo^&mFFFF}5^w7vv  uϋFFVFVW~3I_9Nt+^̀ ^&+^_]ÐUWE F~3IN:PvNN^I;u;uN~tPJPSv  u F @P^Pvv  uPZPvv  u FP@wPRPvv  uZF@@S~uM^&Got<PNPv  u`PVPvv  uF@F_]UE ^&ot#PbPF@RPb u]+]ÐUE ظdPvvVFV tFV 9Fs]Ð+]ÐUE vvn uPvv=u]Ð+]ÐUE FvvF=u/FPvvF t (]Ð~u+]ÐvvOF t F]ÐUE vv'F tvv* F]Ð+]ÐUWVE F:Pvv t+FVFVPF@RPFV@FV^&PP tF^&?u k~v^&?uv+u +~vF.PvvꚴFV uFV9FrPjPvvb uPhPvvb u~H노.PFV@RPFV tFV9FsXF+F=~JF+F=vvvvi ^&?u~ve닐FVFVPF@RPFV@FV^&FFPP u^&?tF ^_]ÐUWVv~ N>AZ $& t tFG:r:w:r:w:u3:t rIIы^_]UWVN'~3ˋv D3&:EwtIIы^_]U VWv Ў3~ tȰCvC%tȰ"Cu_^]U VWv Ў3~ tȰCvC%tȰ"Ct_^]U VWv Ў3~ tȰCv3Ҭ%tȰ"CtD_^]UW~3AيF O&8t3Njnj_]\/ "[]|<>+=;,mailslotsempipesharememcommprintE E  E  E  E  E  AUXCOMCONLPTNULPRN:*?... ((((( H MZ Wy')        (,0yy " & * ` d j n   yyy$n$2Gyypyyyyy5yyyyyy$y?yyy,y{yy- yM y y y* y: y y y y y& y8 yd yj yt yx y y y y y y y y y y y- y yyy3yZy@yyy3yyyytyyyyyyy26:>BFJNRVZ^bfjnrvz~”ƔʔΔҔ֔ڔޔClLD2"{5 aL"T;hNxZs:ov  b       i = 0   :n aF(ueE% F) E5$K     H s+$g$##D##"!$!E% %rfVJ:.vjZN>2"zn^RB6& ~rbVF:*VF:*vfZJ>."zj^NB2& ~nbRF6*           r f V J : .             v j Z N > 2 "   zn^RB6& ~rb~rbVF:*         v f Z J > . "            z j ^ N B 2 &            ~ n b R F 6 *  nbRF6*rfVJ:.vjZN>2"zn^RB6& ~u0@i|R \      .6S&&_&(t&&t &O&&O([0.61S<.6=S&&_&(t&O([a.6bSP.*.&X.&*˞.6SQP73XY[˼.6wtQP»7XY =JrP.tK.>vt<>tO>t+  u!>!u > uV_!. XP.؜ u'.>t> uV_!.Xˏ.6PS.[X;˱.6PSo.[X.6PSN[X.6P9X.6P(X .6 PXHx t Hu Z."$! u3܌!PS"$"X2! t "pUPVW*.> .؎u>ur?Hr:.>@;w+4Og u@>OBg u_^XPV.> .u>u#8r+O6>g u>=Bv+@>*^XPR.شE2g uZXZ.6[PSQrT rEGGSٍG[GGW}EG0_G,O. uM. Y[XS.3ێl&w&7&&O[ÜS.3ێûl66&G&[.-.6.S/[>.6?P/XP/X.<t<u!.>2t Kr>r9. ,<t < u$ .>2tr. ˶.6PSQROg u!=@w@ظ<rBZY[X.6SQRـôD2g uZY[.6؎4BO3.64G ?.6@HR2gZ uY.6ZPSQRVW.rrr _^ZY[Xˋ.6.*/tIrtQfYt.&.6UF.> tW=>_]PSV^[Xs.> uSQ>HDQ3M Mَ0YY[ YY[Ft>}u} u.>tsɋ]˗.6SW _[ˬ.6VSE uE@u Eu<t4<[^.63KUSSfC^C. tQR.ً+  y3ɋщVNuWGu  u_w uP5 tPT;Vr wT;VwW(_Xt_|Xu8t _;tP뿩t%T;Vr wIT;VwATVTV~_T Vt JtVW_^t +^Wsރ+(_u"t4tv t <ZY]8.693u t W5c_U.6VWVRQSP.6<tXP:rF:vF33@X[YZ^_˘.6S__$vO[˶.6P$<t _1u^YX1>_1u3ɋs^YXu<u&tG(G&G O3ɉO,9Mu]W}9M,u],_Ë},C .6D W]t_,]G,_Ë_SQRW.Sr>HD=u;]t [ȰS5[[>BMnȰr_ZY[PSV.auWQŘdRQS__ t3SX;Gu)gG >_1u>_uaYZY^[X[Vؿ__;D .6E &G.&G,& &&},u&],u .6v &&O,& &G.ÿPGPPSQRVW&Ru݋̌VRQV.&^!>PuRY_^ZY[Xo u&t&vS&_[r&wS\uux;Ft;|[u$;>FtWG@u GuN~Ç G0tr5QS3ɉOO  [Y.SG[,|$u02E0uDL)E0urVuDDE^D%DDLN.&&&&*T[>F.&&&&*0[SVQPDII&G&g0H&w&:D!u&t$&:du&_ 3XY^\GtGt0;G t(G P2]X`3 /aW.&D t!<u D&=u5=uDQm&L!& G uVt0^S_g[ww__D`.>&\u7̌ZSQ]&=t3&>]u&\Yai .6j PRW$37ZX~ .6 PRW$!ZX˔ .6 PQRV3ɋ^ZYXUVRPPSQRVLDL;s:9Dv5F~u /s"v ttS[^3VvF^ZY[X]UPSW=r2WG, O.DG0DG>Zd_DstL;_[X]W.r~r}E}__ˀ.6w[ ˓.6P.;Ft#L HX˻.6P&G!&_$&g=&GB&G&g0X.6P&G0&6&8DuX&t uX.6  u w@G@ PWQ3 Y_XA.6BVSJ&|@t&t@&\@&G@[^ m.6nW&>&G&g0&8E!uW&}$&:e_u &}uL&;>v_˰.6UF*t< t t.˓.6PSˡ.6PSstgOuOG"G(G&VW6Du| t9\uDuLVW9_^c4u΋6F|t DtDQ6HDD0t 9\u|&|&tt\ Y_^[Xi.6jV6tF|9]u:dL| t D| tEP D Xt |}E 4^.6PSt[X&.6VWPet&:u$G&:uG4 &G(:u uX_^'.6(EtEuE_YX.6>vt@PSQRW 3&}KtQ&ML&]N;rw ;w&EKYR_ZY[XÜstP&sX&K.6LWS>su.s&=t&=&[_hQ.>Et8Eu W}:e_tYÿkkPSQRVWU.muj>ju ̌jRQ.P<t&G&g0reTX tOrS&_([s<t&G&g0ErjuY>kt[m]_^ZY[XS&O&G&g0rq&_rhr<t<t<uW[VRI>vtBEt<>~us0t.[SQ&O&_&O&Y[[S&_&[w WVQE tY^_u &O7&_9&&?Su:&MBu2&%u+& u$&=uWVQEd\uuY^_uUWPQRWV.C 3Kwu"`+rms.>tX.~]ZY[X.>~u>PSQRVWt#SQ&O_Y[st &7[؉_^ZY[Xˬ.6SQRVWPG9GrD9Gr?G9Gw79Gw2w3;wtRBZу;Wwr;w+wr;GtX3PX_^ZY[=Ku*=t!=t!=tttmthu ...&6666.666˜.".*u=.&666.6666.QP.;t=r&t H&.;t=r!.&t&u H&XYZ.P.&&x&&X=t=t3WQ.&>H&D&=u&E0u L3Y_˜P*X. P.*XÃUPȇFFX]YYYBQ{D8X(C) Copyright Microsoft Corp. 1984-1990 aSP2f [[s{U^.7:Gw+:r.^*2؋GU6^PF^]vF_ uɎ^^]Àu t u YZøW}u t uX*YlZrYZ.7#Àt#3Ҁt t W*"Ds=c uVút t,W.7>uEH.7yK.7>uݳK` _rۀ<u..Ti ru&Et=u øÃ|:u ,aP/XsDC@tDCtUȑVWQ66>WX^Y_LMDC*ILO r6_66>,s[[møV貃^<\\tz|:u`.7>t/P/[r>&ECt&ECuPh[sV.76Lud^AP/X.7>uDrY.7>u2^2^ rt .7!.7> &} u`耐P*.7*Xóx^.72Qy^.76 t.|4&Et&Et60&;E1u>Uŀ>d0u>t} t{_&EueW}&Euw_]pu  ?W>TGG ]3G!&EG.7#3cr .@_&=u_빃>vt60Eh_&M.7>@&M}7&=t,&=t&&Et0&;E1u>Qa&=uY;T6.7& uR ZrA>vEt *6>&uI&]K&uR&]T&MMLuDLSQWV.7 E*]] ] ]=uuEWVU2Ī u^_S/_=u3󪜿 ^_Y[PSQRVWW E ] GAE]u]/=u _^ZY[X5uP.ؔX6DDuO&tOD d6D6$ s-.xt II.Lt tް W_-u$Ctta6Dt \Gt\N-? sT<6\\GGGu)GtDugdW6 su suGu @s96.GDDt Gt Gu gstDD-(3ҹ+;vD@%DD (DuND OV$6~_.7WCW#t ~ uU2Ī3FE 5u7SV7Je^s[3G*G+EG0.ht'<uF tos[} t밃O&G.l[$G!3GSPVeP^X_ErE EEEEW#VdI^_E!drE!=ru=uO=rO=r'O E+tO@E+tOE#tOE tOGtE%GE#tOM;VWO?u=A?I_^N ]Ë>E%p=0u2 = t:$W_u%@W_stھC6\`rƇKO3WEpE W#6n|>ut6LuO|󤪾$J|_+ϋ-#E!r6E!DE#$ÇN3WWEsE !uZd3>tGt &3Gu 3E6WGt DtODuGu_WG u\#t:GtGu,|<uS\&t3e[rSE<t&WQ*GY_$SGu u_*3[r!Vw*^r_GIO 3W6G tw*OI6Gt Dt$Du u#t {{_3We]gG G[XS[ >#_^ZY[Gt.ؔ3ɋ>߃} u Et` uϋGt$p:u. tt#$.tuu &Et ;4?u t W_TP3VW}$~w_^ Q>Eu} t&Eutt$p:uIt =u͸YÌ u.7&#$ZwvVV.7u^M&>&v&6r\tR2ZrQttR2 UZ Ru U>ruMZ>u eE  3K.7VWRxT$qvZ_^PR3V@W_t0CW_t!IW_tNW_t^DtOOT ‰DZXSQHSWGtG G!3G"G#G%' Wr.@Y[VQ.L5u;.L5t0SW.7v_[t2ɬ t .xt.Lu5Y^V߸0V^r%uuEu .@c ; rgst=7Ç.@Ë3u VQY^tL;u t؍?3茂&}I& &>&.7i臂SQRVWU&E &M& P66> ?&E%p=tX& ]_^ZY[&} t&M u&}u)&Eu!&MPR.&E&UZX&ePSQRVW_^ZY[X.&EtS][ekNJQ]Gu{FGqG UN3҉WW!#Ure.@3>EuE6];tDu| t9\uDu@4u uggGtU!u>M]u.7>C&t&Ou &Gu.ؔUS̀SW.7 66X6><&ECt &ECu&}I&Eu b ~sR.>7ǎߋ6tVQb ~rV4Y^sb "L.7> tBW}&E_u1Eu*b ~ruu}6>6n_O뵋=뺀>tb .7><3ҊG&ECtW&ECuOW&}I&E_u?b ~rQRW.7&}IR>&MZP/XAP/X_ZYBX.>7ǎ>&Eu)&Et&M&} tb ~r>&=u_[K]óYMD>rbr r]l@MqDk>rIY rDGVG !pLO!#.76DV3qRr.@^L"K^r ~KuL>r4 r/GG !LG$ t u.LtV.@J~ó LW.7N&}I&>&&U.7.7jCGKG G!#-3Q_rW#‹W)W'O%w!.@[~u[ LLCPE=r3 rXPG G G!%G'G)3G#G%G+G-G/10KG1O13#3 r.@I[rus= tS=fP /[[ r.76ówKGW6+>W%>P.tX_%_uR&6+66%&#Wn_+G#O#%#3 r.@Hr@uWrOXH.7.@=JnAf;rT rGG 6m2G!#gIO#%#3 r.@-HstOs[^_[.@^= u ydP /Zs_LGu>&EIPWP:rX>&Upu&}&E_tf>]0uu >e1u >_1uW>&}&E_t"t>f0t$<t<u>f2uXVhKs'&u&]TD&U7T&U9DW|&Up0u)PV6 t.7aumu ^AX_^&Et&Eu WPV&utD!G^X.>7bJG-G G'tO'@26mG)g"G!%G%%G 3+ G1G9W7W6XlX+ȉO?t8+ˉO#G!. 3LZW>&;Ev&E-\_D D +˸s%!.t_JW^_G!& .r݀u_%? @&Et&G7u &&NW&}M`}}E"_u4@t-W&}O3wMG5E_&M &e_&&u tL G%Dw'&EȭB&M &UW}_PtJw#L @t Vw3DD /u 9O-uDDDL V&u60DD XX.@GG &Upu_XPVFr&u&]T&U9T&U7^G tGG 2G!PWS /ʒ*?[O#W%.7'LCO'%)3_ZYRrAG!V&u^.@X&E%? @&E&E&E /&U &EWQFAY_uX= uQ(^P /ZYr[_uópC iC.7:4s2zr.@DrG:&T&L.7.7726mG#+P%iBȃE*3X3 V ^s=!ru u t?Yr>W! uE .ER.9MU[] Sw[} WO6>uEM+Ku_6>,&MV <.t<.uN  u  t u <.t^3󫥥?@s.@uGG +AO!óAW>,&%.7&Et6 P&$X&}.7%&;Et_@t&} w&EtCr&E &e>_.r>W_8^&T&L.7؎O+%ȃ'2Q66,Y.73 ru >,& (?r.7>EWPF_MR&Upu .@>Z[YuD?&uVtD^Vtt^u؋DuVtt tJtX^P*^VtL^.7EtPXP=u/V&t&t&t&D^t1&Du)Eu"85&D t+V&tT^1&D tV^s VW&|=u4_^qU?ZsP/=XuQ&M& MYt rW&}&Eu@_&E@@u /&E&U /P6>5t.7&Eu XP=t&EtW&}&}&E&U_*6GG Z>3G'&EG!&E@u &M &U:O#W%)#W&E t8&}EtMVQ6BD^1u __WPCY_u.@W&}&EtVv tX_[u&9Ap]Üt .7.u&[_sW&}&E &}&E_ Q&E@u &M &U8S_#&EGOWG[YEW&}&}U=&>&_u&t&d.9tvSQQY[r t.9;rw;vظXV6tD&D(^VV.76tD(PX+D(-X^rø8VW&}3'1_^sZn&ut tIu'6rmi=rhQR3.7&]G@tWQR>0ZY_rA2GG &;&EG!G#W%O'G)+'ZYsu 룋G!W#.@mù&Eu|Vr;>s>P.76, &X2c0t6;w0zt+W&}WQ3[/Y^_rV1rD }QW [41t[&E&]+D\rK uG+D s4Dt3;V&uD^t &E&U&+U&E tV&ud^&E&] 66,_s,W&}^N_0uDu,;s3&E&U&+E&U uV&uL^;sBDTD &+E&Ur,+r% t!W&}M._s3ɸ&E&U+DTr% uS+D sL;vQWVt 6>,+؃ u'+s!;D vD QWVt 6>,#*^_Y&E u$&M&UV&u&u&uD$D&^6,<.7k+kY3ɸQWDt2D u+t&V&u&t&t&D^t_Yr3Q&}Q5-Ys_;ZvE@t_YW/^D /w .t uQW.7/w_YQrD t[s&PL d(W&}&u 60&E_;tL;s&]\&EDVWQ6>,t (Y_^E t6..H&E&U+DTs u+D r Dt3;sDu7Dt3 tQWVt 6>,#t4W&}>a1t'>a0u&M >tQ&M &} tQY_WtiW&}&}&E&}&E_tM.763G.G G!G"G#G/G1G3G5&EG%&u&uG'G)O+O-760&u&u&u>- r5-.7N,t '^_Y+ȉ&E&U6,W,&}tJs_3I t_cKrg u;ls-KrQV l3D t ^[s .HW&}I_D DDL;s,̋$VW&}&M&u6>,tQO&Y_^L\+\;sŋL+LWV&}&e6>,t&^_W.H_P3 t6$6'6&6#6$6'6&6#XUQ. N&}&E &E YQ>t 3&M +ʋES_# GG3GG}&u&uG GO G GGOG[NRW!:wso&t"7rJ_We.HL_Y3`_W&}W#M L \ )t M _̉L u 60ED;tLM}&ED&ED_Yr 9L sL 3ҋ]RUttt t >\ ;r\ +ډwG#;W7\ ;w;W7VW#NG!G"&EG%FG'FG)G+G-O5O9G/>]1tG/G1G3G/G VR6&T2Z^]ZÀ!t#/uWGgP.@ X_rIS P& uL[ [.7 t6V6tD^QQ#Yuc t^t utOV6^v?@t8W>&}&}(_u%3r YR@Zsu6WQRYR^)ZVW&u&}&M >!0+w360>66X_^WQRrQ t&E t.7W .7jr)ZY_;r >tkZY_t =!u8&Eu P&E$<Xu$jLsu.76Z_W&}&E&M _ugWR> 40Z_у ;sV6tD^tP&O)&O1; t&G/&O'&O)&O%&O'&O#;vZ R  UV V]&O5A&O9&O!&O%&G3<&O7=tS١&[XHHZYIIQRP&G/&G!&G"&G#&G &G+&G-XP-4v;ZXw+-5ssÎVw0O!Q Y^.@i>`1tY-0 VS9'[.75^spr&O!.@6&_.&O6&w&G&.ht mE .lU&GF&G!F&G#F&G%F&G'F&G)Fv0&W#- 5s .7]Ì^^vG!=0t ȋ؃0z0`F.7v.7FV0vRPF@&N0 v0>^arY.7-Vvx4.7Mr_!0.7~v^r0r0vS^.@[`WS^.@[]Ü=t ù(t0 t <G/t t">tVQ.|Y^3& WQ3Y_r&tG!/u G%>uHH.@Ë>uP t&ML>`0tE&;Ms?&MW&}&}$&}_t(>`2t>`1uS_PG" G(X[tZdUWG uG ,GvG!>&EGtFw)O#QFG%FG'G+ ttG+O+G-O..7].@G#O#G%O&.7.7W>,s_ $[,60G>&EG t &}&M@_ t wW.7>&}&e_UW>&}&E%F_F&EG!GG FtG O#G%QG'G)G+G-G/F&E u>]1tG/FG1G3FuG5G7;G9WRQV6L>^Yw .@;&E-;G9G5;W66^~t L1s\&GFX&)&)&&&&G5;1s&OY.@~t^.dg.tԁtYuFtZF^"&>60G&EG_.7Y.7.7S~t ^.d>].6G6G&6G.htr@s[p.l[~t+.@^.dWs4_r g3448@r9.7.7 Ar*G!.@Z_Y~tN]ZZ_Y]GG O'G)&E tW&}E_uO)&EG!QG#G%G+G-G/G1WRS.736o/.7.7r t[Z_Y[Z_YSL0 tt &uDu;[W&}&}&EG/_&E t&Eu|&Euu&EumV&utD@uZ&E%=tN=@t=0tB&ut:Dt3tS&]&E+\sHx+Dr;D wr ;\v; [^&Eu'V&uD^%=u&Eu&E%=3V&uD^%=u&Eu&E%=&E t;+&EuW&}E@_u&E%=@u=t=0SV&u&];\$u &];\&u |ud^[uWQ&}pY_s3ɸ5 (Bs).76,~W&}&}p)_sJr+r&e&Et sQ&E tu&u;L w^D@u9;w+t.QW3&}W^ser D _Y&Eu&E&]66,&Eu r]W&}:_tt&M&U&E&]P6,XZR u u&;Erw&;]v&E&]ZS*XW&}&;M2w _W&}uK3*:_ tYQuL2WSV&u_;[_ruYQ/3 tW39 tYQ_tQWJ;_Yr݇W&]&u&} V66,_^L LW&}&E*&U,..9&E.&U0&u &9]2s Qs:Y_sT l+;s+W&}3?9_ uYQ D ;lwZQL WV} 66,+^_L\ W&}}d&E&U+DTr t6+D s uuT ؃ u+s;D s)D QL DTWVt ^_Y_Y3ɸ#QW.7GG 5$&EG!G#G%G'G)+'"_s t&E&] G#w!.@[YQW&}Q3Yr;Zv#E@t_Y+W^sE ".DtQW.7.D^YW&M&eDt&M\&]D&E&M Vt60DVttD^| E 6tE AE tE } 66,o_^&ED u&E&U+DTs u+D wV&u\ ^+;sDtP[+D ;D vD WV} 66, "WV} 66,QWV)t^_tYQY^_tdL.W`&E uW6>,u+N_?&uVt tt;^u$^DtDu r D_&EW_ãQWV} 66,0^_Y+ȉ&E&U6,LËLDtr uLû tP6,X%rD tV666 6'r  t s u&s؎D|*Dt|>W|} EtB_W} u:M7;L w/Du I&r#؎dVtD%^=t@W_W_s@t D?&6>$ESÃd|u_|D W_&sWGG _û tL$rD t8666 6%sxWV}ގƹ6^_u%]V | tKWV}6^_u7g%dt t)Dt>j1u L ^^ _W^ 6>#ORUWVSPSF@uttDtNC.7Fu<tTG$G 3 !O!t@4t^uN O'+σ313~ A-~EG%VF@t&~WVuttLDV}^_0*FGG G'#G+~EG!-3G}EGE!GFt) bPSFGEG[XO /t Vu+^%PWN$YYrRuEF@t9vE 6O!S^;O[u!M ^wwEE| L~| .@v[]ÜtuS^__.[=6u%FtvG ~}} >_?~uvttDu;!W> t$u uDtPSQRV ^ZY[X=_ËO3ubVw|$uWF}u.4r3QY_Z[X^D@t73| tEu1.HD |VQ^s=6t 3|z"DdÍ]] G G DGEG%EG'E G#G)G+G+G-G.0ȋ|WE!GEGDG!Ƌ6FwDDb}E&E(.7"Y˥D.6DPFujOXðuXSQRVWPtr.\CO P .7.|u%uSV3ɋ.`[.X[XZr LDuVttD@^uX >F}uN_^ZY[XÜ.7>uPSQRVW.77_&O & SGW%d_rXbS]Gߋ|/t Vu^%PW|!YYs=6u>?_^ZY[Xr 3| _^ZY[Xi.@6tD9Du9\t4Ƌ6t,9Tu9DuDtDuD@u 4ׁLsL6r?r:&Eu..76>66 60V&uD^ø!6>&Eu P&E$<Xu5stD@u6>&E%p=tó>s.7>QYrgUubLH 6>#t3.7ur5W>%&EF&%& &ED&EB6~ >LL0r)L Lt:|F.7>&Mr $6' KøS[RQVWPnXrE<tLr Z<t TD/T%u'TD^^^YZ@w&MB}Kà W}K_LBtQY/LS3ۋ6G66<.7>u .76DCtDCuCXX+r38tr B;r.7$ >r.7Ë62L6%' 1 DFW.xtI@.P t <.t2.7}:uE^V GGJ^u_PSV.7 tޘ:u<^[Xûu+Jm.7 tV%^IVR֋tJ ur2Z^<wVQP.76LXY<t ^뼃$.7,<&8:*4!VWQ .7>Y_^м .76*46<,.7,<462>0.6* .7>6!:&86*462>0.66<,PR.7 1 6 tL6%'ZX^ >uDt tDrdQWRS60DVVt tuLBDD^|>BrU.7Îa GG O!G#%W<u t< t3_+ϋ-%%3y^rUL&G!D.@Vt t5LB0P.DXr$^V| tME 6M QVt} ^Y^[Z_Yu^^>tVt t^uDt؁dLdQWRSD@uVD|>,s^>W_U.7A GG G!n3G#%#W_^r.@[Z_YsÁdtLSQRVW| t } t3' _^ZY[U v^~FF.Lu .Lt/ t".xtF.Lt<:u<.uމvـ|:uv~]_F~t~E0FSPSWU@^]_[XF&Ert̋tFt$~{8O\.7$l8FvDF&Et&u$ rE.7,tt %,EÊ2/TÀwøW 6tu uLVW6 t!9|u4u}Jt VuJ^EJ_^.7r/2;w'JV=t $t uzr8TDTJtFD\PVtZPd;DXvD^D LXN.6NQS.ܔsYQW&MPQ3ɬ.xtAAA u &E< u&E&6YXt_P&O0u&0.h &OX_u^tZR;u WP^!XWVw=^_Pt&GEXP$EMXYQMEt UT2P3X&ud& t&t&u.l[YSQVW>.ܔEt/P3QWEG1_W}EG0.h_YXE.l_^Y[PSQ Y[XðCBBa a'aPSQ.73ێË&;Du&G;Du Y[XˤP.6PSQ.73ێËVt&D&G^ Y[ÜS@ۻ<rt[Ã?u?u(.7wV6<^twt t˜>t >u.BVWQRP_ ֋tJ urADu>ussR=t&=3rt#=6t==r=?v ZZY_^A녰(>tS[u09Duu u&W .Dc_D D 6u L#D ;E rSQV2^Y[s\XSt w G O[ZY_^]A=.9>2u1tIrtQfYt u.|t .T.TRP.9;6s! ƃ;6s XZ-;6w;.73&t.7#&6.Lt,,D&;vV.7^&>&E ${&63&6>tV^sGr?&E"&Mss +&E&Mr&>&&U.7 X @.7UsP=PIu }PEu}tW3b.7 IPEC$VW3Ǻƺs_^.7 PIEPE&E%p=0u^PIDPEN&6Z^Zr&6]V2 t.xt.Luuu N&6^WV.7>*.T1.T>.T1.T^_3WV9t0V.7>.t^u>*O1.T6*6^_3 t.xt.Lu6>&}IWW!_}$.tt__&E &6<>.7>g2u6 t| uEt  s3x>g1tc6\S_Gu Gt[A[G%p=t5WGG ( 3G#HG!%3Fsu.@r4g=UVPW66W>&E_t3u uDtVL Du DutEtVWu_^eD uDuks=Is6B(/D u EtVWu_^e.H} _]à P& /$X su_WHUWPQ\\ uwEutt}rpFu' rdu0%FuFu>^1u IPZYst).!utG!.@;u]UWP}D\Vt ^.Hr+]UQ}Vt ^r;Fu .H]W&}W&}ZPd;EX~E_&E _&ut ÜW> tW=>_E ;_;5X.66XS3USSPVW.7 t} t .=u_^W,_+-SP.76=t X[S6GtEWQP&} t&>%&'3&6.pt AL.7 1 XY_ _?>u.7[9.7>t$66><6GXDCuuPS3 7[X9DCuP9.7>tY>66<6GX'2P/Xr,DCt!DCuVtID^u PAP/XX.7PS 3[X.99.7>t23Ҋt6 3B;rPR3 `ZX88.7>t:2ɋJ6t $J y)PR 3ZX8PSR.7&!W& G/Z[X.7t u>>/\8.73V6:GrSP.76>t66<XX[DCtyDCurVtID^uds_PWV.*^_|O2X_A:LMtI|DtTDtl!>P/XL\Ttl ~7^N^3V>u .t$sVPtF$)[^_LHtFs^B.7;rV.76| t!DtsV$S)^_3L14t | uDu^66RVSPQR Z/鸵R P/^I P/XIʸQ[PRS <[Sû<[Ã[^X[^RÁs3ҋu6RPSVU3ҋsRPыù< Ա$ XZQȾ P/Xs/Q P/XBX$  ՊY]^[XRVW66@Lt66*LVt^4u_^Ã<taDtZDQV .7$< t3.7$r#t5ut^r u ^^Q5u^Y;VtP Xtyt%ً^r0L\Vt[YD\LQS|}FE |\^LVtP Xt$*ut_^3DDV.7>'^dwPW.>7nj;u&> t;t=;_X.7&&0&;2w5&>4&=t(S&2.7&&>*&;]r&+]&=u[Í};[SP.7>艱XVQPW$)&_6t&;wtV4t;wtXXDuXYIDu^<&DD&EXY^EV&&E6t&&&&EX^V6.ptP;&} t&E tC&)E w=ͮ&Eu#&Et*&Eu".&;U|&;Ev&M虮&e&Et&Eu&E &*E u&e&E&=tyË&t&G t&)Gw &G误&G&Gt .ؔ&gL&EuW&}_&EuW&}_W6>&}I_W&}_V&u$&}&t$&|u&|tSV33N.^[&} t#&E &6& .7st&^ÜPSGMB3GGG GG G GGGGGXÜPQW3G*G+G1G2_YX6+<X.76t<46PQW؎|23DDD*FD,HD2><6_YXøÜVW>95t=u9WD0t3|*_45><| tEt.Hs_^D@t|t}t }"vM"dV&uP.;7Xuu&E&E^P&u&E uS.9\"D [DudXÜP&u.7Dt)SQRW&u&>F}u}&_ZY[D6X.QRW3> t4Eu);uu$@}tW}&EuP&E%?t =>ÜVt9=t=Ã|u!t$60;Et^UURQ|t60;Et襢r tPEGE!GX_USSu_.d^g^.sGGOtvvG G hucPVvt$D tRD;DwJDDGG, PG.XG dZG S__w\[w _^XS u^O[^XG, PG.XVvt$D^P.htV.Ԕ.Ȕ^XSPX[]3VRS_3.`[Zu$ t^EtÀ?uDEtEt S.ؔ[e %v|u|tVSQS3ɾ.`[Y[^;M1ttËB.\s_ VS_3.`[.\s3S3ۇO GuG.X[ t Ow.l[^URPSQPFHDuF XGPTGuË^W؉WNJN V;Ft2 tWGS.\r.X[[3ɇO .XXY[]+VSB.\r .X[PQRh,0HR Zt.9hjZYX3HhjRP.;jwr ;hrXZV.ܔrQW QY_Y^rD&uDt5=3r&D0!D D\W_r &uD%r_rJ&uDt; QiZr)D0DD\ W:_r &u%%r%[[[rrތ&uDtWRSQVr^.T.T u3rD0#D D\D"DDs =u$\">P/XLT\| _&u.T.T_$sX[YSP\+\;sˋ__tQ`/YL\D뺋ȋ؃Q$[[[[sVQRr&uDt޳3rD0"DD\ D"DD ?$rR R .7>t 6>RuU#SQVWV\ms~FV&ut^DtDuV_^D0&;Zzw&}&>&譴r7&EtW&}&E_uV~L.7r30 &u&u&u&}&}r rW^rS.d&O~ u&O&O &G &> u.&G &Ott&G&Gtt&G&Gt t &G&Gt4&G&GVvtLw^-[B~ tL0Vt^0Lr_^Y["]Zvtd.m"[[[[sqðRQPr&uDt[SYu Vms@^rX2D0=usD"DD s=uL"P/XL!rXZY\+\;s_RPVt_u;ur.H^dD Ȝ묰 1JDD DD D\ r /L~!rx![[[[[[rWVQRr&uDtݰ grD0&D"DD DDD s=uL"P/XL!rð #.7&E(D&E*D&E D&ED&ED &ED &ED&E"D&D&E.73DDDD D$D,D&D.D0TD2 s=uL"P/XLx sð .7&M(&]*&&].73DDDD"DD D$D,D&D.D0SD2[  rÃ|u^W[rX&}&EtHK tt t W2r#t&E*&E,&Mt&E2P/XLrr3|u.R&u_DtKrD*D,D2rt6 t r t#PXtWPX_rIt<t?.7x\&ED23D(D*DDDD"DD D$D,D&D.PSW.7&>tB&Et5SRV&u t%QW.&;U0rw&;E.r 4_Y^Z[&=_[Xrr&E uWWSQR&Et?&M&] WSQR&Et%&]$&M".9>;wr;s3ZY[_&Et uWVPSQRu]("&e&Et uWVPSQRu"]&.7&Ete&Et]&Eu& E&pr-n!&&;lv;nw+lp>ru.9&&TZY[X^_ t u@PXrtu VWu W_[r;t+؉] PW} _Y _^Ë6 t4DD .76 t4D@&E t&uDttu(6&ǃYrtS&;[u _&P$/X3_ts& t뾃 t!trwP-;s2$XV[P"/X^ v $6K_ t<u6$ 2Ë_V.dV6L^>t ugG DVQP 2Ȋ&:tXY^A^ XY^@PSR.ZPV6Du L.^X>b0t t T ^ uW u|9& t<u 6$ 2_^6 Vsu^Ë6% t69tuL@4u= 6>&}&M@^R.Z/ D6 V.7 D[suø 6 V.7g D;su=}&M&6 V.7 Dsu76 V.7 DsuD6 V.7 Dsu2V.7 D{.6{.7 u1PV&$ t.̔VPP/XPdD.9&&&DD.7&DX^.7V6 t&Du|t|tW|V_L4^66.Vݠ=wD$u=w|,uD&%.7&6D&>D &@D&DD &FD&HD&LD&ND&RD$&RD&TD&VD &XD&ZD&\D"&^&b&`&><4u &>:uOF.7l.7lˏr)u'W}E_t&E &&>C2O?Al.Lt-.Lt.xt IѬI.P.LuσىNV.7\\$^&^3&'N#+Fd.7&G.Lu .Tw.TvVu&6|4u&6&>:tt ƹtuu2^D.=F&;ZwQF&Dr&Lr=w&Zd;w&6&>6u1&>:u* W5_ZY[.7v t].7l 3Ǻ0;tRZs=Ct]E%p=0t2>Eu W}E_tތs6 3BJ8>EFE!FEZd;vЉVD3L t!N+N3+y3N#IA@FRX^ u6u6Z,IA~t@Fes{V.d^6t~t_N.`^O@׸zr&s6t 6ug^u$.\s6tS_[t.X^Gu t3G .X7Drq6t6t"^3O G S.X[3^u$.\su'|u|uDuFsSBG^SN+8~tI[?t=_ u B.\r(tw.l[u G.@vP&N+DD$&`D &bD".7>:t>X tUWSWS.78E t=t 8}%t}2u6t3} u!}&t}3tE;EQRVWE!;XsXE#;^s^u32W>NN)R_u'ȭP[W>T`_u-ȭP[>ZbΡb;^r`;Xr63~E_^ZYr^.X[_]S].d[.7n-<*u INWN+ʰ 2^YsTPSԋZdF.73F5[&2G_OG,P&G.X.htËdߋV܋VUVUE2><u3E%E } vD.t&6t 33WFF請W.7><u<V+X^vދV E3><u3E&E VUVU} ><tDBLJ3PBXJ><tǫV+Ӌ+σ+s3&|&)\DV6>|&>&B^& )DuX>LtK+σ+s3&%t &2t&|&)\L V6F)^FJ&L)Lu6+JJ+;vQ]Y+.6P.xt.P.L uX.T.T2.63P2PUW_XM.6N.T.Tc.6d.T.TVW.Lt &:u tG&=_^VW &.P:u t G u<_^P2X.T.TV4 tp+r";rQbYH;r & A3^TVQ3It.xt t WQY_u\ Y^VWQR3.TItJtJuVWQY_^u].TZY_^BUGBITS::Kr$V .7W_%'^3 URQSVPPSQRVWwzNfwlN.7&>t&F&%F&'vNN& WU t2Ī2Ī^ 3|r&#3_^ZY[]I KrV .7W_^3! QVWWw.73_^YÃKrV .7W_^3 QVWzWwc.7W_&>vtM&=u @;Wa^s2&>&&Et \VX^_ u_^Y@ UVWv4ɆrKxFrDrGuxE]GZd;EvEvLT;w;vzKQR.DZYvt}WQY[R&6TZ=r~&M&} >PvM]OX] .7MW^.7Wru]Gtg3 .3UQSSVWRfV&7 Ƹ:u=ׁfn.7&  {wO.7n ^3ۉ^^^^^^^^މ^؉^ֈ^ۈ^ڈ^݈^܈^FF.7>{FF~hvRBNށ~hwVv/Nށ~hw^w umsc3&VFvvF證F^VFvvF^F~hwܸWVFvvF⭉F^VFvvF^WNށ~hwVv+v^FFֹAAWNށ~hwVv+v^vt . >j1u< t< ut > t֯Sv8lFFձ]ÜP*X.7 P.7*XøøÀt(6s366>3P/XDÃ>u5utø.xÃUPȇFFX]4*;wF l D_X;3mpN0?x A  $l j .7o2|DLDD D DS3UVSSSPP<|v|  rvFvDDF|L.7ucs^PSQRVW\< t2kE[]G._^ZY[Xr u 3|KuVRDTvDu T uZ^Z^~tDP;FuFsF}Vt W_^ tWD&ED&Ett&E&ESRVWQt &u&]u߃~KY t~+uF_^Z[S2.7+[FRJt7/FDFD~t][S.72;[PSQR.+PR 3.Y[+ZY[XPSQR.PR83.Y[+ZY[X.7>vtA.>tEnnu.;Ì u$&=t.76DttPSQRVW.>7>&W}.T t.xt< t2_]SO7_9& =u#&  .>7ǎV.t^u]Ow=uw 6 >ρ kE ]7.7[.>t_^ZY[XURDtS.[s~QYwpW;rdW-_&Dž.7> u .&60&&&F&&Ľ&&M]&]&]/‰_n]Kr&Dž/&&Ľ| DT=ra.7~.rO3ҍGG;wtR.ZB;w+w3ɋыw;wt._KP/XTL\|.7~.7w.7w~WE_s.r. u#.7>wwPu0.wyrV.Q.XwPGG;w+ww3ɋ. Xt.^.7>wtwP/XLT.7~W)|$ |u.<\\uPRVW.7.Ludv_^ZX3Q.7&>u&"&tBNJYPSR.7&;"w&>u60&;tZ[Xr$&t.&;u &ŝwPSQ"u9uLJÊY[XVV.73QW_YD&u&uD DL&u&5D(D*D&uD D\D&D.r t^UWS[ KsGr&Eu;&EW&}&}&}&E_u2&uDt Dulr.&}&}&UZG'G G!G#SG%`3Q'YQ?\Yr;O+sbO+w-~3.@]óİ)óİ*PRڃKs tw tw?&=\\M u.7&&=\\N u.7&7&FFGGu|\ <\tO FGu|\uI[Sww w.7M& W&2^_psH>&E>[Sw w7.7MW&2^_ps VuD^u[X2P.7uUG G!.7#[PGG7&6w&6v^XS&G׋+&U+˸.7stP}&G&t&tWsuy[P.7F[POD!&&ET# t;v XKP}Vt%^3.@>[r XÃ>t>>5rWP\3IGGX_óWUFFFڌ^^OQ?&=*uFNF~t8Yvw-.7>_1t ,2sau&}*uYFu sF ~.7sRY~&EFu&Er+FuϺ#FPFXxS.7.ܔ"G6GGO.htr.lrDFt>8FtFsr&r!r trPFXN]XXXXX9XXX3XWWXXXX<@s<#vX!S.7.Ϡ[ u}ܨru"kG2j>uZV6t Dt ^".7ۨ.7.7V6 t &^H&3"^_ZY[PSQRVW t7r-&GuDUVIZ_rTX|ZV.TX^_^ZY[XW.763PR/ZuXt A;ds\_Q.7d6Dt \YU~.T.7& u Rst u2r=vW=r&ERS&&[Z tp uFrǭح=|ăr=|w&E &]RPЋ.&&XZ u u r=v=r&E" u܃ur٭=w=r&E@ uur߭=w=r&EB u߃4 u6u܃7uVJ^r&}L0 ک.6۩P& &9X t&^0&>_1t&e0X .6 W! t <0r &:wG_UW[Kts.7& &# 37s =uvt Gܸr=uvTt u&#.7$.7 ܋ tv:uU^V]t ut۶cr3uUSv+.7 {sN.7=uf bsu=T *T+ t~sT *T u~ue >Mes=t,APP/XZsDC@uDCtDCu686u ~ttI袹+t~ss[Dt~r 6>dr.7&>&Mu&e& P/X]rst@r3%PSQRWV> t_WV9uuREuK}&Ett;&U??uu &t!:uPR6>6GuZX^_>^_=^_ZY[XUWQf^ tKt`3ۉ^^^.7 3/{P/XNLVT u F tM6G26><>t> A:o&ECt&ECuW&uIDub_X3һ PKXu >tttFDu .7螛!B;u3ɻ AP`XrRQSVN~rtNF^)V3F[YZURP/DvDF t Ht4.7 fss4 u_r uAHu+&,AP/XsDC%5tDCutIttF~&M &}V #P/XD3ɑ;tv9\ s tPSQVt$v׋^Y t@;[s[PW _D$&E &] t[3&E&EDP%p=Xu >u>ut t&]%p&Ei&]&Eu \ t RZZ t PNZ‹X[;V֋Ћ u^:t<.Lu .Lt 4BrGBWr8W`r3t,r(u.P?*<>,=[]|;"+LPT1PRNLPT2LPT3LPT?/ (Mfeeeef fff \PIPE\LPT1    . M b     " F _ v   6^yyyLzPzPzyPzPzyyLzyPzPzPzyyyyyPzPzPz; g 6g : o ; w 6 7w ; 4 E 3 5 ; 4 g 7g 4 < !6 "8 #; g ; 9 g V HyA gy@yCyBy1= z2> y4? yQFyYGyyyyc Hy Hy Hy Hy Hy: y2 yGy! yD yX yy  2 3456789: ;<=>?@AB CDEFG HXV!   z zzvz|zzNET809: Network request not supportedNET801: Remote computer not listeningNET802: Duplicate name on networkNET803: Network path not foundNET804: Network busyNET805: Network device no longer existsNET806: Net BIOS command limit exceededNET807: Network adapter hardware errorNET808: Incorrect response from networkNET810: Unexpected network errorNET811: Incompatible remote adapterNET812: Print queue fullNET813: Queue not fullNET814: Not enough space for print fileNET815: Network name was deletedAccess deniedNET817: Network device type incorrectNET818: Network name not foundNET819: Network name limit exceededNET820: Net BIOS session limit exceededNET821: Sharing temporarily pausedNET823: Network request not acceptedNET822: Print or disk redirection is pausedNET476: Network software not installedNET477: Unexpected adapter closeNET825: Network data faultMAILSLOT\PIPE\LANMANBWDCFzbwdghiONrLsTPeK苨j ~~~NhV    XX@- dZ ]   WORKSTATION3111120101221210000000000000000000000000000000000000000LANGROUP/dd}}!%&9B?(FF  ;;MTE?GPU%,LMM“Ǔ̓LJe!to򒌓fԈooy\\\\*\MAILSLOT\LANMAN00000000  \MAILSLOT\MESSNGRX111221121229210000000000000000000000000000000000000000...\\.C:\LANMAN.DOSEMMXXXX0NET2413: Incorrect DOS version. $This file is part of DOS Lan Manager Enhanced. To start the network, use the NET START WORKSTATION command. $NET2124: Insufficient memory HNET3051: LANMAN.INI or the command line has an illegal value for "%s". iNET3053: The unknown parameter "%s" was provided on\nthe command line or in LANMAN.INI. NET2182: The workstation has already been started. NET3076: The network software is not installed. KThe value specified for "SIZWORKBUF" on the command line or LANMAN.INI\nis too small to support all remote API calls. NET3081: The LANGROUP specified could not be used NET3051: The value specified for "MAXCMDS" in LANMAN.INI or the command line\nis insufficient. Continuing with "MAXCMDS" set to %d. /Could not access command line file %s. NET????: An obsolete command line switch was specified on the command line\nor LANMAN.INI file: "%s", continuing. The workstation program NETWKSTA.EXE could not be loaded into the\nHigh Memory Area. _NET3051: LANMAN.INI or the command line has an illegal value for "SIZBIGBUF".\nValue was smaller than that specified for "SIZWORKBUF". NET3055: A problem exists with the system configuration:\n%s CNET3056: A system error has occurred. Network services cannot be started or stopped in a DOS\nsession or in a Windows enhanced DOS Virtual Machine (VM). LIM support was requested, but no LIM memory is available or an incorrect version of LIM was found.The parameter "KEEPAPIS=YES" was specified on the command line or in LANMAN.INI, but the parameter "KEEPMAILSLOTS=NO" was also specified. Continuing without LAN Manager API support.  ;,R ? 0  /CHARCOUNT/CC /CHARWAIT/CW /CHARTIMEm/CTm /COMPUTERNAMEK/NK/HIMEM*/LIM /KEEPAPIS/API /KEEPCONNa/KCa /KEEPSEARCHq/KSq/DOMAIN/LG/LANROOT/I/MAXCMDS/MC /MAILSLOTS/MS /NUMCHARBUF/PN /NUMMAILSLOTS/MB /NUMRESOURCES2/L2 /NUMSERVERS/S /NUMSERVICES/NS /NUMWORKBUF/B /NUMBIGBUF/NBB /SIZBIGBUF/SBB /NUMDGRAMBUF/MR/NUMVIEWEDSERVERS/VIEW /OTHDOMAINS /SIZCHARBUFI/PSI /SIZWORKBUF/Z/UMB_/WRKHEURISTICS/WK/WRKNETS/WN/RIPL/OPTIMIZATIONS/O /PR1BUFFSIZE/P1 /PR2BUFFSIZE/P2 /PR3BUFFSIZE/P3 /SINGLERCVBUF/SB /LANGROUP/NUMVIEWBUFFERS /LOGONSERVER/LSYESNOOPTIONAL.5!|&&ET%! @&C/BCg u2\r ZY[ø $DEBUGDDc:\lanman.dos\netprog\netwksta.sym.0!=s =cwR!&>t &;uUԸظ8!_].Qދd\tSR!S&_&G&t&G[&_&G[F/% =u /<t !r !A!s4! <%u!&4.FR"ךPIQY.VHP&ߎǀ> u a0 >vt >J!taأ!>!ݩ>t;ZwARyseLr urrX urL ur 2 ur 2ᣦTX;s ȣTRɸD ur urD urG2X urXrrXZrdr ur urrrjlr urrrr urr4r urr>J!trd\ urdWr>vu'>J!t Ry3J!";~ '2C 2=zvz_׋" t=rWr> R u裰!rۉ>r u!rrPRFD3Ҹpr3ҸtvZX ں* =!rtS ڸ DJ![>!rV ں* =!rEظB3ɋ!r-u)=s$PB!Xr@>>!>!)!_&;sg.D3Au@JHLPW.>ߎ.=sX!!!!Zr !Br !!,r !!u?sG!F! |.s>F!u&F! ĢF!=u' PyF!_X ..(,0>!t>F!u>I!.&*....&*.G!t<G!I!t !-=w. u3RRyZ.&Y*Y.YG!I!&мں<#%!:$%!VWRQSPa.>ߎǃ>vu>J!u򒿚󫿤!>!.;tHWP.+؋Xk_WV.33)٣7&y٣^_!&7PW!t_XP!u"F!.&<u &e06&!&u&!&t -&!X&6&!&!A&!&!-t&!&!a&!&!gP&!XH&!&!;&!&!A-"&!/&!&!&I!t&SQ& Q33=s ;u6.&I!u)&H&&NE& TW& KS&TAY.>Qù.&& &*&YY[QVW-33-PHYPP!&6.PH&&NE& TW& KS&TAX_^YPSWۍ>> ػ؉..9y߉߉.(,0_[XÎP.)33X.ÎP&+7؋XS&7؎=s ;u+H&&NE& TW& KS&TA@!>!SQVuD ^Y[2.6:ptptz~>vt)> )>>t)>PSQRV.3ɎD2&G/tt(t ^ZY[XÉDRЉTZ&4&~&4&B&Wy&&&&&&&&&U>H!t3R!Z&t@&tBX&tBDDD&tDZ&tF&tH&tJj&tLl&tNH&D&F&tPB&tTN&tVP&tX&tZ"&t\&tdT&D`&Dav&Dtv.J!&DuJ!&DtG!G!&DtF!F!&Dt_YXÉ][RyÿR&X2 tH:u*CVRQP&I;:uCJu&I<=t<:t XYZ^XYZ^+FI+EދQV3P&t <:t<=tX@X^YUTX;u!F~tP&mR&]3-s$rrrrr s<0r<9w &NA< t<,t< t< .3ҬXt B;s#It;B;w AI tW33:&IP<-t<+u,&It$wr,0Qҋˋ؃YX<-u؃_I&QVW&%Gt+$IXt:uI&%G:u ښ;:t_^YXXX^_>u/ ȃ@&;vмWR>&>&&&  QY-ث -.-&>& Žڋ״?!r;uXPV&6޾&^Z_r,Ћ3ҡ)!>!>3QW&_&MDLY>3>Q3,&<&DY&&D>L3>T;XrX6 uЉ> 2Q3&| Y* ؓ &D$3G *G\Gd_G0RZ t&D &&T>_1u >e1u&D$DG0HGGG <tL Itg&D T>3Q"Y&|@&D@V<u>t &Nr&_ u܋t &Nr&_ u&0Nr&_ u& 3ɑ^>Bσ F HD3ɑ6FD>G2@Xǃ%+>Z3ҹ+XZlWQ3Y_&<&lj>E >jLlWQ3Y_&<&>jlQW3_Y&<& '>WQ3Y_&<&>3QY&<&>dt*>d\3ɑW2Ҹ/_>"t>u"3ɑF3>sQWQ3Y_&<& t 3Rʑ󪚣P⚡  N⚡X[YZ_^3۹>!CP&? t&ʸ-+.*t"-uI!J!1!L!ȎR&V&6 t &^P..L!PSWVS;[w33 A ۾ ANET3056: A system error has occurred. `NET3052: The required parameter "COMPUTERNAME" was not provided\non the command line or in LANMAN.INI. NET3056: A system error has occurred.\nDOS Error 52 has occurred.\nThere is a duplicate name on the network. NET3056: A system error has occurred.\nDOS Error 68 has occurred.\The network name limit has been exceeded. fVerStamp: LM 2.1 Built Thu Mar 07 14:59:55 1991 -- On ROADRNR'98BADCFE,APPID,LANMAN_ENHANCED,2.00,MICROSOFT,03/07/91,MICROSOFT:4.00URQSPWV n>v3<%t- t<\u u& 0P && & X2,0& & & r&> u <t;6& t &> uV(^V<t^&> t & t^3Ҭ tB+vV>B&> t >R3S&6 & P[^IP3XP XtS[ &> u!< r &> u& QY ~ & QYê tùS @![ Á t 3& & & & & & 0123456789ABCDEFabcdef^_Assertion failed: %s, file %s, line %d AUXCOM1DEVLPT1PRN\DEV\\/X:\\Assertion failed: %s, file %s, line %d  Assertion failed: %s, file %s, line %d . Assertion failed: %s, file %s, line %d . Assertion failed: %s, file %s, line %d . Assertion failed: %s, file %s, line %d ..AUXCOMMCONDEVMAILSLOTNULPIPEPRINTPRNQUEUESSEMSHAREMEMLPTCOM*? "<>|\/: "<>|8@<BFJ TX@^d hpt ((((( H 0  UVQFvvl F Ftvvl ~t^&v&@^ &&WFVFV$ tWvvF tK=tFvvvvvvvvvvv v ^ &w&7vvIF=^uNvvvvvvvvvv v ^ &w&7vv6^]UQظPF P7QRPPP+PP ]U8VQF+F Ft ^&?u+F썆FVFFVFVFVF^F V &&WFt&& Gu'+PPvvSLF tF~u#+PPvvFPF uЃ~uK^&ƆƆ^&uFPvvx FVFPR +F@N+N;~{1+vVvvvv   v^&l F+FA;rvv a^&@u!&?@u &u@Pl F+FA;sR@Pvv Fvvm t7+FVFV<PRv  u6(Pvv  u ,F^vvl F+FA;svvvv F:PPJ N^I;tK;tDN^&7^&u&?@up&uiF+F=}@Pvvvv   F^&FVRPl F+FA;sFVRP>^&t-vvl F+FA;svv~tFuFPvvx FVFPR +F@N+N;~P+vVvvvv   v^&l F+FA;sFu ~@um~ugF+F=}Pvvvv   F^&FVRPl F+FA;sFVRP*vvl F+FA;s[vvvv F\PPJ N^I;u;uF+F=}PQPSv   F^&JPl F+FA;sJPvv FNPl F+FA;sNPvv FFvvl F+FA;sJvvvv FP2 P2 Ğ&\/P  u؍Ğ&\/P  u؀t%PvvvvPT F t{FV^&@t2P t!Pl =~67FV~t6767FVvvl @;Fvvvvv +PPvvvvvF t'+^]UQ^&F<\t &w&w @^&& & WvvGF t^&gS]UQF5 ^&GtD&&O ^&G@t&&vvF u+^&gS4]^&Gt5 ]˸{]UQF5 ^&Gt@&w&w ^&& & WvvhF u/^&g+]ː&GtS&Gt 5 ]ː{]UQF5 ^&G t_S F t F]ː^&g&G u{]&&OvvF uvv]ˁ~5 u^&&0FUQF5 ^&G tgSwF t F]ː^&g&Gu{]&G@t&&vv3F uvv]ː~5 uFUQF5 ^&G t/SF t F]ː^&gS]ˁ~5 u^&&0FUQF5 ^&G t/SF t F]ː^&gS@]ˁ~5 u^&&OFȐUQF5 ^&&O@^&G t.SF tF]^&gSL]ˁ~5 u^&&OFɐUQF5 ^&G t5&& vvF t F]ː^&g+]ː~5 uFUQF5 ^&G t)SUF t F]ː^&g+]ː~5 uFUQF5 F^&Gu F&OSF~t^&g~5 uFF]UQFvvl ~ tF^&FFF ÌHFV^&FF^&^&^F&^F&FV$ tWevvF t1=tFIPFP7QRPP+PP F=^uvvvvvvv v vv]UVQF~ uPvv+Fvvl F+PPvvv PPsF tF -= wP.FFZFFF FF6FFF␸Wv6Z6BJBBJRnvfFtFFF@;F vKCFV9Fu9Vtvvvvv   ^v&~t V2 +^]UQvvl vv l FV$ tWcvvF t1=tFFPFP7QRPP+PP F=^uvvvvvv v vv]UWVQ؋F -= v.dFtvv vv vv vv FuθPvv+vPvv +~ ;uVvv vv  5;v+%WF F^_]UQFvv l F FtW\vvF t1=tF@PFP7QRPP+PP F=^uvvvv v vv]UQFFFFvv l FF FtWF -= w.FFjFFF FFFFF7FFFF0Fpp||||F9FrF9Fv{uvvvv  ;Fr~tPvv x ;FtÃ~ u5*Pvv FV tF+F NI;t 두F9Ft+]U VQFF Ft ^&?u+F t+FV FVvvl DF uvv vl F~t^&v&@F Ftvvl ~u"~ tv ^ +&@&P&&W^&v$v"F t=u7v$v"v vvvvvvvvvvv v vv^] U4QFF V"F։V؋FVFމVFFFVFF Ft ^&?u+FFV%+҉FV9Vu/vvvv֚x F tFuWFF֋FV% u~u~uF ~u ~uF;u~u~uFa~uR~"uL"PF֋V@RP FV u{F֋V@;Fu;VugF֋V@FډV܋FV9F֋V؉FډV܃~t RPl vvvv֚ F֋V؉F҉V^&F&F* uK=t8Fuv&v$vvvvދF+FPF*P+PPzFF 9FrF: FtGFF VF̉V^+&G&v&v$vvvvދF+FP+PPRSPP@v&v$vvڋFF VRP+PP>F u(F+F@N+N;~Fvvvvޚ ~u>+Pvvޚ FV~t!F*PvvFPvvEF^ҊF&~uF~tF*Pvvښ  t+FFҋV+F@N+N;~FK롋FދVFV~t ^F&"vvvv F+FF~t ^F&"^F&Lv&v$vvڊF*P+PP_F tF+F@N+N;FK^&?"uF҃~uZvvvҚx FFҋVԉF։V؃~v Fu^&?t ~u|&?u~tFufFҋV@F։V؋FV@FމVF^&F t~u~sK;^&'~u~uFV9Fs^ܐ^&G^F&+]"UQ؋F F t^ && Gt &&?u+'^ &&WFVRPl @^ &FV] UQ؊F*Pvv  tLF^ &+=K]ː&+FPvvFV@RP8  ^&"^ &&G"^ &^ &F&+]UWVQFFFV$ tWt^+&G&^&F u#^ FV&&W^&&G+8~\t~/u ^&~:u^&&G^&& Gt^ FV@&&W벐Pvv  u{96s~u FFFVRP  uVvvF u:v~u FF{~.uu^&.t~u FF{^&&G^*Ct u^&O~uu++^& & W~uFtz4Pvv F;r+F tv~t8~w2+Fw&~u06PFFV@RP M;s~u FF{Pvv ;s^&O@u~*u&O w^&O~t^&Gt&&GF6~Pvv  u,^>&F*Ct<0t@9Fu^&O6Pvv  u,^>&F*Ct<0t@9Fu^&OFF FF+F؋+F#FPvv  F }~ ~~~F+F=~뤋߱㋇^& & W~^ FV ^_]ːUWVQ؋F FVHFV~^v&=.t&= u O;s^~FFF+F^_]UQ^&?u+]^&*PP  t߸]UW~ߋN F sIs&Ì_]UWV~v ׋N=;u;v;s NO s 3rIs&^_]UW~3AيF O&8t3Njnj_]UWV3FFv~ N3I2F&FBBӎF 2&GBB;u t;v3^_]UWV~v ߋN t2Ì^_]UW~3AOF G&8t3nj_]U VWv Ў3~ tȰCvC%tȰ"Cu_^]U VWv Ў3~ tȰCvC%tȰ"Ct_^]UVW0!<ws BKy)FFP^SBS^StBBKyPFF^SBSKx:BtBBÈB2Kx :BuB_^]UVWFFv~ 2F&FBBӎF 2&GBB;u u3_^]UFF~3IQ^SvVF]U~3I]U׋v~ 3+t]U׋v ؎3~ǨtI‹]UVWev&\&׎Ǎ~!rv;Nw ~& ~ 3_^]UVWF t/v v CFD иt,v&2 xKu&Kù<.uF N1vN+ru< uI<*u?t<+t<=t<;t<,t< t< ù&} uOAr< u| t.&} uO30!<r8tHw r/< r=<r'Qغ8^!rQ>8Qغ98Qغ8 !L!==UVW~F+=;,? *"/\[]:|<>+=;,? 8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q@8Q8Q@8Q8Q8Q8Q8Q8Q@8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q@8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q@8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q 8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q8Q:Q;Q<Q=Q>Q?Q@Q' ' Q B a s i c N i b b l e s ' ' Copyright (C) Microsoft Corporation 1990 ' ' Nibbles is a game for one or two players. Navigate your snakes ' around the game board trying to eat up numbers while avoiding ' running into walls or other snakes. The more numbers you eat up, ' the more points you gain and the longer your snake becomes. ' ' To run this game, press Shift+F5. ' ' To exit QBasic, press Alt, F, X. ' ' To get help on a BASIC keyword, move the cursor to the keyword and press ' F1 or click the right mouse button. ' 'Set default data type to integer for faster game play DEFINT A-Z 'User-defined TYPEs TYPE snakeBody row AS INTEGER col AS INTEGER END TYPE 'This type defines the player's snake TYPE snaketype head AS INTEGER length AS INTEGER row AS INTEGER col AS INTEGER direction AS INTEGER lives AS INTEGER score AS INTEGER scolor AS INTEGER alive AS INTEGER END TYPE 'This type is used to represent the playing screen in memory 'It is used to simulate graphics in text mode, and has some interesting, 'and slightly advanced methods to increasing the speed of operation. 'Instead of the normal 80x25 text graphics using chr$(219) "", we will be 'using chr$(220)"" and chr$(223) "" and chr$(219) "" to mimic an 80x50 'pixel screen. 'Check out sub-programs SET and POINTISTHERE to see how this is implemented 'feel free to copy these (as well as arenaType and the DIM ARENA stmt and the 'initialization code in the DrawScreen subprogram) and use them in your own 'programs TYPE arenaType realRow AS INTEGER 'Maps the 80x50 point into the real 80x25 acolor AS INTEGER 'Stores the current color of the point sister AS INTEGER 'Each char has 2 points in it. .SISTER is END TYPE '-1 if sister point is above, +1 if below 'Sub Declarations DECLARE SUB SpacePause (text$) DECLARE SUB PrintScore (NumPlayers%, score1%, score2%, lives1%, lives2%) DECLARE SUB Intro () DECLARE SUB GetInputs (NumPlayers, speed, diff$, monitor$) DECLARE SUB DrawScreen () DECLARE SUB PlayNibbles (NumPlayers, speed, diff$) DECLARE SUB Set (row, col, acolor) DECLARE SUB Center (row, text$) DECLARE SUB DoIntro () DECLARE SUB Initialize () DECLARE SUB SparklePause () DECLARE SUB Level (WhatToDO, sammy() AS snaketype) DECLARE SUB InitColors () DECLARE SUB EraseSnake (snake() AS ANY, snakeBod() AS ANY, snakeNum%) DECLARE FUNCTION StillWantsToPlay () DECLARE FUNCTION PointIsThere (row, col, backColor) 'Constants CONST TRUE = -1 CONST FALSE = NOT TRUE CONST MAXSNAKELENGTH = 1000 CONST STARTOVER = 1 ' Parameters to 'Level' SUB CONST SAMELEVEL = 2 CONST NEXTLEVEL = 3 'Global Variables DIM SHARED arena(1 TO 50, 1 TO 80) AS arenaType DIM SHARED curLevel, colorTable(10) RANDOMIZE TIMER GOSUB ClearKeyLocks Intro GetInputs NumPlayers, speed, diff$, monitor$ GOSUB SetColors DrawScreen DO PlayNibbles NumPlayers, speed, diff$ LOOP WHILE StillWantsToPlay GOSUB RestoreKeyLocks COLOR 15, 0 CLS END ClearKeyLocks: DEF SEG = 0 ' Turn off CapLock, NumLock and ScrollLock KeyFlags = PEEK(1047) POKE 1047, &H0 DEF SEG RETURN RestoreKeyLocks: DEF SEG = 0 ' Restore CapLock, NumLock and ScrollLock states POKE 1047, KeyFlags DEF SEG RETURN SetColors: IF monitor$ = "M" THEN RESTORE mono ELSE RESTORE normal END IF FOR a = 1 TO 6 READ colorTable(a) NEXT a RETURN 'snake1 snake2 Walls Background Dialogs-Fore Back mono: DATA 15, 7, 7, 0, 15, 0 normal: DATA 14, 13, 12, 1, 15, 4 END 'Center: ' Centers text on given row SUB Center (row, text$) LOCATE row, 41 - LEN(text$) / 2 PRINT text$; END SUB 'DrawScreen: ' Draws playing field SUB DrawScreen 'initialize screen VIEW PRINT COLOR colorTable(1), colorTable(4) CLS 'Print title & message Center 1, "Nibbles!" Center 11, "Initializing Playing Field..." 'Initialize arena array FOR row = 1 TO 50 FOR col = 1 TO 80 arena(row, col).realRow = INT((row + 1) / 2) arena(row, col).sister = (row MOD 2) * 2 - 1 NEXT col NEXT row END SUB 'EraseSnake: ' Erases snake to facilitate moving through playing field SUB EraseSnake (snake() AS snaketype, snakeBod() AS snakeBody, snakeNum) FOR c = 0 TO 9 FOR b = snake(snakeNum).length - c TO 0 STEP -10 tail = (snake(snakeNum).head + MAXSNAKELENGTH - b) MOD MAXSNAKELENGTH Set snakeBod(tail, snakeNum).row, snakeBod(tail, snakeNum).col, colorTable(4) NEXT b NEXT c END SUB 'GetInputs: ' Gets player inputs SUB GetInputs (NumPlayers, speed, diff$, monitor$) COLOR 7, 0 CLS DO LOCATE 5, 47: PRINT SPACE$(34); LOCATE 5, 20 INPUT "How many players (1 or 2)"; num$ LOOP UNTIL VAL(num$) = 1 OR VAL(num$) = 2 NumPlayers = VAL(num$) LOCATE 8, 21: PRINT "Skill level (1 to 100)" LOCATE 9, 22: PRINT "1 = Novice" LOCATE 10, 22: PRINT "90 = Expert" LOCATE 11, 22: PRINT "100 = Twiddle Fingers" LOCATE 12, 15: PRINT "(Computer speed may affect your skill level)" DO LOCATE 8, 44: PRINT SPACE$(35); LOCATE 8, 43 INPUT gamespeed$ LOOP UNTIL VAL(gamespeed$) >= 1 AND VAL(gamespeed$) <= 100 speed = VAL(gamespeed$) speed = (100 - speed) * 2 + 1 DO LOCATE 15, 56: PRINT SPACE$(25); LOCATE 15, 15 INPUT "Increase game speed during play (Y or N)"; diff$ diff$ = UCASE$(diff$) LOOP UNTIL diff$ = "Y" OR diff$ = "N" DO LOCATE 17, 46: PRINT SPACE$(34); LOCATE 17, 17 INPUT "Monochrome or color monitor (M or C)"; monitor$ monitor$ = UCASE$(monitor$) LOOP UNTIL monitor$ = "M" OR monitor$ = "C" startTime# = TIMER ' Calculate speed of system FOR i# = 1 TO 1000: NEXT i# ' and do some compensation stopTime# = TIMER speed = speed * .5 / (stopTime# - startTime#) END SUB 'InitColors: 'Initializes playing field colors SUB InitColors FOR row = 1 TO 50 FOR col = 1 TO 80 arena(row, col).acolor = colorTable(4) NEXT col NEXT row CLS 'Set (turn on) pixels for screen border FOR col = 1 TO 80 Set 3, col, colorTable(3) Set 50, col, colorTable(3) NEXT col FOR row = 4 TO 49 Set row, 1, colorTable(3) Set row, 80, colorTable(3) NEXT row END SUB 'Intro: ' Displays game introduction SUB Intro SCREEN 0 WIDTH 80, 25 COLOR 15, 0 CLS Center 4, "Q B a s i c N i b b l e s" COLOR 7 Center 6, "Copyright (C) Microsoft Corporation 1990" Center 8, "Nibbles is a game for one or two players. Navigate your snakes" Center 9, "around the game board trying to eat up numbers while avoiding" Center 10, "running into walls or other snakes. The more numbers you eat up," Center 11, "the more points you gain and the longer your snake becomes." Center 13, " Game Controls " Center 15, " General Player 1 Player 2 " Center 16, " (Up) (Up) " Center 17, "P - Pause " + CHR$(24) + " W " Center 18, " (Left) " + CHR$(27) + " " + CHR$(26) + " (Right) (Left) A D (Right) " Center 19, " " + CHR$(25) + " S " Center 20, " (Down) (Down) " Center 24, "Press any key to continue" PLAY "MBT160O1L8CDEDCDL4ECC" SparklePause END SUB 'Level: 'Sets game level SUB Level (WhatToDO, sammy() AS snaketype) STATIC SELECT CASE (WhatToDO) CASE STARTOVER curLevel = 1 CASE NEXTLEVEL curLevel = curLevel + 1 END SELECT sammy(1).head = 1 'Initialize Snakes sammy(1).length = 2 sammy(1).alive = TRUE sammy(2).head = 1 sammy(2).length = 2 sammy(2).alive = TRUE InitColors SELECT CASE curLevel CASE 1 sammy(1).row = 25: sammy(2).row = 25 sammy(1).col = 50: sammy(2).col = 30 sammy(1).direction = 4: sammy(2).direction = 3 CASE 2 FOR i = 20 TO 60 Set 25, i, colorTable(3) NEXT i sammy(1).row = 7: sammy(2).row = 43 sammy(1).col = 60: sammy(2).col = 20 sammy(1).direction = 3: sammy(2).direction = 4 CASE 3 FOR i = 10 TO 40 Set i, 20, colorTable(3) Set i, 60, colorTable(3) NEXT i sammy(1).row = 25: sammy(2).row = 25 sammy(1).col = 50: sammy(2).col = 30 sammy(1).direction = 1: sammy(2).direction = 2 CASE 4 FOR i = 4 TO 30 Set i, 20, colorTable(3) Set 53 - i, 60, colorTable(3) NEXT i FOR i = 2 TO 40 Set 38, i, colorTable(3) Set 15, 81 - i, colorTable(3) NEXT i sammy(1).row = 7: sammy(2).row = 43 sammy(1).col = 60: sammy(2).col = 20 sammy(1).direction = 3: sammy(2).direction = 4 CASE 5 FOR i = 13 TO 39 Set i, 21, colorTable(3) Set i, 59, colorTable(3) NEXT i FOR i = 23 TO 57 Set 11, i, colorTable(3) Set 41, i, colorTable(3) NEXT i sammy(1).row = 25: sammy(2).row = 25 sammy(1).col = 50: sammy(2).col = 30 sammy(1).direction = 1: sammy(2).direction = 2 CASE 6 FOR i = 4 TO 49 IF i > 30 OR i < 23 THEN Set i, 10, colorTable(3) Set i, 20, colorTable(3) Set i, 30, colorTable(3) Set i, 40, colorTable(3) Set i, 50, colorTable(3) Set i, 60, colorTable(3) Set i, 70, colorTable(3) END IF NEXT i sammy(1).row = 7: sammy(2).row = 43 sammy(1).col = 65: sammy(2).col = 15 sammy(1).direction = 2: sammy(2).direction = 1 CASE 7 FOR i = 4 TO 49 STEP 2 Set i, 40, colorTable(3) NEXT i sammy(1).row = 7: sammy(2).row = 43 sammy(1).col = 65: sammy(2).col = 15 sammy(1).direction = 2: sammy(2).direction = 1 CASE 8 FOR i = 4 TO 40 Set i, 10, colorTable(3) Set 53 - i, 20, colorTable(3) Set i, 30, colorTable(3) Set 53 - i, 40, colorTable(3) Set i, 50, colorTable(3) Set 53 - i, 60, colorTable(3) Set i, 70, colorTable(3) NEXT i sammy(1).row = 7: sammy(2).row = 43 sammy(1).col = 65: sammy(2).col = 15 sammy(1).direction = 2: sammy(2).direction = 1 CASE 9 FOR i = 6 TO 47 Set i, i, colorTable(3) Set i, i + 28, colorTable(3) NEXT i sammy(1).row = 40: sammy(2).row = 15 sammy(1).col = 75: sammy(2).col = 5 sammy(1).direction = 1: sammy(2).direction = 2 CASE ELSE FOR i = 4 TO 49 STEP 2 Set i, 10, colorTable(3) Set i + 1, 20, colorTable(3) Set i, 30, colorTable(3) Set i + 1, 40, colorTable(3) Set i, 50, colorTable(3) Set i + 1, 60, colorTable(3) Set i, 70, colorTable(3) NEXT i sammy(1).row = 7: sammy(2).row = 43 sammy(1).col = 65: sammy(2).col = 15 sammy(1).direction = 2: sammy(2).direction = 1 END SELECT END SUB 'PlayNibbles: ' Main routine that controls game play SUB PlayNibbles (NumPlayers, speed, diff$) 'Initialize Snakes DIM sammyBody(MAXSNAKELENGTH - 1, 1 TO 2) AS snakeBody DIM sammy(1 TO 2) AS snaketype sammy(1).lives = 5 sammy(1).score = 0 sammy(1).scolor = colorTable(1) sammy(2).lives = 5 sammy(2).score = 0 sammy(2).scolor = colorTable(2) Level STARTOVER, sammy() startRow1 = sammy(1).row: startCol1 = sammy(1).col startRow2 = sammy(2).row: startCol2 = sammy(2).col curSpeed = speed 'play Nibbles until finished SpacePause " Level" + STR$(curLevel) + ", Push Space" gameOver = FALSE DO IF NumPlayers = 1 THEN sammy(2).row = 0 END IF number = 1 'Current number that snakes are trying to run into nonum = TRUE 'nonum = TRUE if a number is not on the screen playerDied = FALSE PrintScore NumPlayers, sammy(1).score, sammy(2).score, sammy(1).lives, sammy(2).lives PLAY "T160O1>L20CDEDCDL10ECC" DO 'Print number if no number exists IF nonum = TRUE THEN DO numberRow = INT(RND(1) * 47 + 3) NumberCol = INT(RND(1) * 78 + 2) sisterRow = numberRow + arena(numberRow, NumberCol).sister LOOP UNTIL NOT PointIsThere(numberRow, NumberCol, colorTable(4)) AND NOT PointIsThere(sisterRow, NumberCol, colorTable(4)) numberRow = arena(numberRow, NumberCol).realRow nonum = FALSE COLOR colorTable(1), colorTable(4) LOCATE numberRow, NumberCol PRINT RIGHT$(STR$(number), 1); count = 0 END IF 'Delay game FOR a# = 1 TO curSpeed: NEXT a# 'Get keyboard input & Change direction accordingly kbd$ = INKEY$ SELECT CASE kbd$ CASE "w", "W": IF sammy(2).direction <> 2 THEN sammy(2).direction = 1 CASE "s", "S": IF sammy(2).direction <> 1 THEN sammy(2).direction = 2 CASE "a", "A": IF sammy(2).direction <> 4 THEN sammy(2).direction = 3 CASE "d", "D": IF sammy(2).direction <> 3 THEN sammy(2).direction = 4 CASE CHR$(0) + "H": IF sammy(1).direction <> 2 THEN sammy(1).direction = 1 CASE CHR$(0) + "P": IF sammy(1).direction <> 1 THEN sammy(1).direction = 2 CASE CHR$(0) + "K": IF sammy(1).direction <> 4 THEN sammy(1).direction = 3 CASE CHR$(0) + "M": IF sammy(1).direction <> 3 THEN sammy(1).direction = 4 CASE "p", "P": SpacePause " Game Paused ... Push Space " CASE ELSE END SELECT FOR a = 1 TO NumPlayers 'Move Snake SELECT CASE sammy(a).direction CASE 1: sammy(a).row = sammy(a).row - 1 CASE 2: sammy(a).row = sammy(a).row + 1 CASE 3: sammy(a).col = sammy(a).col - 1 CASE 4: sammy(a).col = sammy(a).col + 1 END SELECT 'If snake hits number, respond accordingly IF numberRow = INT((sammy(a).row + 1) / 2) AND NumberCol = sammy(a).col THEN PLAY "MBO0L16>CCCE" IF sammy(a).length < (MAXSNAKELENGTH - 30) THEN sammy(a).length = sammy(a).length + number * 4 END IF sammy(a).score = sammy(a).score + number PrintScore NumPlayers, sammy(1).score, sammy(2).score, sammy(1).lives, sammy(2).lives number = number + 1 IF number = 10 THEN EraseSnake sammy(), sammyBody(), 1 EraseSnake sammy(), sammyBody(), 2 LOCATE numberRow, NumberCol: PRINT " " Level NEXTLEVEL, sammy() PrintScore NumPlayers, sammy(1).score, sammy(2).score, sammy(1).lives, sammy(2).lives SpacePause " Level" + STR$(curLevel) + ", Push Space" IF NumPlayers = 1 THEN sammy(2).row = 0 number = 1 IF diff$ = "P" THEN speed = speed - 10: curSpeed = speed END IF nonum = TRUE IF curSpeed < 1 THEN curSpeed = 1 END IF NEXT a FOR a = 1 TO NumPlayers 'If player runs into any point, or the head of the other snake, it dies. IF PointIsThere(sammy(a).row, sammy(a).col, colorTable(4)) OR (sammy(1).row = sammy(2).row AND sammy(1).col = sammy(2).col) THEN PLAY "MBO0L32EFGEFDC" COLOR , colorTable(4) LOCATE numberRow, NumberCol PRINT " " playerDied = TRUE sammy(a).alive = FALSE sammy(a).lives = sammy(a).lives - 1 'Otherwise, move the snake, and erase the tail ELSE sammy(a).head = (sammy(a).head + 1) MOD MAXSNAKELENGTH sammyBody(sammy(a).head, a).row = sammy(a).row sammyBody(sammy(a).head, a).col = sammy(a).col tail = (sammy(a).head + MAXSNAKELENGTH - sammy(a).length) MOD MAXSNAKELENGTH Set sammyBody(tail, a).row, sammyBody(tail, a).col, colorTable(4) sammyBody(tail, a).row = 0 Set sammy(a).row, sammy(a).col, sammy(a).scolor END IF NEXT a LOOP UNTIL playerDied curSpeed = speed ' reset speed to initial value FOR a = 1 TO NumPlayers EraseSnake sammy(), sammyBody(), a 'If dead, then erase snake in really cool way IF sammy(a).alive = FALSE THEN 'Update score sammy(a).score = sammy(a).score - 10 PrintScore NumPlayers, sammy(1).score, sammy(2).score, sammy(1).lives, sammy(2).lives IF a = 1 THEN SpacePause " Sammy Dies! Push Space! --->" ELSE SpacePause " <---- Jake Dies! Push Space " END IF END IF NEXT a Level SAMELEVEL, sammy() PrintScore NumPlayers, sammy(1).score, sammy(2).score, sammy(1).lives, sammy(2).lives 'Play next round, until either of snake's lives have run out. LOOP UNTIL sammy(1).lives = 0 OR sammy(2).lives = 0 END SUB 'PointIsThere: ' Checks the global arena array to see if the boolean flag is set FUNCTION PointIsThere (row, col, acolor) IF row <> 0 THEN IF arena(row, col).acolor <> acolor THEN PointIsThere = TRUE ELSE PointIsThere = FALSE END IF END IF END FUNCTION 'PrintScore: ' Prints players scores and number of lives remaining SUB PrintScore (NumPlayers, score1, score2, lives1, lives2) COLOR 15, colorTable(4) IF NumPlayers = 2 THEN LOCATE 1, 1 PRINT USING "#,###,#00 Lives: # <--JAKE"; score2; lives2 END IF LOCATE 1, 49 PRINT USING "SAMMY--> Lives: # #,###,#00"; lives1; score1 END SUB 'Set: ' Sets row and column on playing field to given color to facilitate moving ' of snakes around the field. SUB Set (row, col, acolor) IF row <> 0 THEN arena(row, col).acolor = acolor 'assign color to arena realRow = arena(row, col).realRow 'Get real row of pixel topFlag = arena(row, col).sister + 1 / 2 'Deduce whether pixel 'is on top, or bottom sisterRow = row + arena(row, col).sister 'Get arena row of sister sisterColor = arena(sisterRow, col).acolor 'Determine sister's color LOCATE realRow, col IF acolor = sisterColor THEN 'If both points are same COLOR acolor, acolor 'Print chr$(219) "" PRINT CHR$(219); ELSE IF topFlag THEN 'Since you cannot have IF acolor > 7 THEN 'bright backgrounds COLOR acolor, sisterColor 'determine best combo PRINT CHR$(223); 'to use. ELSE COLOR sisterColor, acolor PRINT CHR$(220); END IF ELSE IF acolor > 7 THEN COLOR acolor, sisterColor PRINT CHR$(220); ELSE COLOR sisterColor, acolor PRINT CHR$(223); END IF END IF END IF END IF END SUB 'SpacePause: ' Pauses game play and waits for space bar to be pressed before continuing SUB SpacePause (text$) COLOR colorTable(5), colorTable(6) Center 11, "" Center 12, " " + LEFT$(text$ + SPACE$(29), 29) + " " Center 13, "" WHILE INKEY$ <> "": WEND WHILE INKEY$ <> " ": WEND COLOR 15, colorTable(4) FOR i = 21 TO 26 ' Restore the screen background FOR j = 24 TO 56 Set i, j, arena(i, j).acolor NEXT j NEXT i END SUB 'SparklePause: ' Creates flashing border for intro screen SUB SparklePause COLOR 4, 0 a$ = "* * * * * * * * * * * * * * * * * " WHILE INKEY$ <> "": WEND 'Clear keyboard buffer WHILE INKEY$ = "" FOR a = 1 TO 5 LOCATE 1, 1 'print horizontal sparkles PRINT MID$(a$, a, 80); LOCATE 22, 1 PRINT MID$(a$, 6 - a, 80); FOR b = 2 TO 21 'Print Vertical sparkles c = (a + b) MOD 5 IF c = 1 THEN LOCATE b, 80 PRINT "*"; LOCATE 23 - b, 1 PRINT "*"; ELSE LOCATE b, 80 PRINT " "; LOCATE 23 - b, 1 PRINT " "; END IF NEXT b NEXT a WEND END SUB 'StillWantsToPlay: ' Determines if users want to play game again. FUNCTION StillWantsToPlay COLOR colorTable(5), colorTable(6) Center 10, "" Center 11, " G A M E O V E R " Center 12, " " Center 13, " Play Again? (Y/N) " Center 14, "" WHILE INKEY$ <> "": WEND DO kbd$ = UCASE$(INKEY$) LOOP UNTIL kbd$ = "Y" OR kbd$ = "N" COLOR 15, colorTable(4) Center 10, " " Center 11, " " Center 12, " " Center 13, " " Center 14, " " IF kbd$ = "Y" THEN StillWantsToPlay = TRUE ELSE StillWantsToPlay = FALSE COLOR 7, 0 CLS END IF END FUNCTION @<PRN $@LPT1 6@ LPT2 @2 LPT3 PRINTER_DESCU4201 8>xI6I65202  6 64208 q I II6 III6nnnnnnnn N'c ! 3=G] oy  SSJ.G.G[SS.G.G[SS.G.G[SS@.G.G[ LMJjk+  PSQRWV>t*u1(.66r*(..6ҋ̎֋.6RQ WJ.:.?u;...O".(p.2.<..G>.GJ.?u..u3.:PSQRWV>t*u1(.66r*(..6ҋ̎֋.6RQ W.:.?u'...OOP+ύ6Jt.w.?u..u3.:\PSQRWV>t*u1(.66r*(..6ҋ̎֋.6RQ W.:.?u;.$..O<.(.2.<..G>.G.?u..u3.:PSQRWV>t*u1(.66r*(..6ҋ̎֋.6RQ W@.:.?u;.6..OV.(.2.<..G>.G@.?u..u3.:.w.uY.uR.w<X#uDX=ut7WV} t ^_#u&E.G.G&E.G .G &=.&E<tu +N^&E#uM+N3..(.&E&E>t*t>t*u t* YZҋ^_ZY[XSS^._.\[._ ..G=u=u=t.G%@t&EDVt&EFF&E^u.G8.:.O0.G%t.O .T #u#u3P.E%uGGGGX.G4PI.D=s.O@.&E=u.D #u*JGGGGX.G4PIQ.D#u.uNY^.u.D#uYH.;G@v+.D=t.O>#t .E%u.M.L.;L v.L QVW.D$P.t"..}.>_^Y.)L .)L.L".O>Y.uD.D=tYRW.+G:P.<.ZW.8#t.4JuW3.L#u& @H;r__Z.L .)L .L"+.;L v.L QV.D$P.t"W_^Y_. .L .)L .L"_Z.L.;L v.L .)L .)L.L"YY.&E .O@.| unX#ubWQ.+G:.G<.L .P.D.;G6vXY_.&E .O@W.=V.D$P.t"^_X.Y_.MW..D &E.D"&E.D$&E&EVSS^._.\[^._ &E%t &E_%u.M.O@.&E .&E.G=u{=t=ty sk&u%u_L#u .Hȸ#tJIuD# u=.Hf.u-.!G.2.W* ;w.+ . G.(.W .+G";ȸ wWR.GGJuZ_SWRVQV.G%t.w$.D%@tFFFFGG^W[D=tQRYW_Yu Y^Z_[ V.FFCC3IuY^Z_[.w$.G%u.w..w:WRVQSW[.!D.d.d.=t;Q.Yu%QRYW_Yu [Y^Z_ ..L SX[.OSP[FFFFCC3Iu[Y^Z_SV@.!G..G.G 3#t:.D%t.D%@t.d.=tB..L.G*GGFFFFI#u^[SVWQtB.tt>.U }VW_^*JuY_G  .t ^[^[.G.G>QWV.<.O*.G%t.O #t.D%t.FFFFGGI^_Y ^[.G.W#.G3.O.O*#u...E%u GGGGIu}.0w .Ha.+.W.G8#t.G4Iu_.<. .w..D.L.D.DSS_.].] [.D%t P%Xt .&E...O*#t.E% u-GGGGIu.$.O #u.E% t GGGGIu3V.wPt.FF. ^...D^..G=u =u.G%u <.g3=u=uC=t .G%@t3> .E=t=t.E#t.$.w(.E%@tGGGGFF.O .+O".G%t #u...w2.O* #u  .!E..=u .!E%.M.E%u .!E.0t.eGGGGFFI#u.O>#t0VWR..uW.}3.B_.UZ_^.G>3UP.G%t .:.O ...O*.W0#t(#t$.E%t.E%@u ..EGGGGIuX.G>.G.&E.G=t=ts&u t|Tup...O*#tQW^.;t/GGGGIuY.$.O #u3QW^.;uGGGGIuY.u&.WNu 6J.TNJu6.TN.0tx.E%uo.O ZRQVW+.G8#t.G4J.+..<. t_^Y8.w..D.L.D.DSS_.].] [.D_^Y%tYuZRWV..}3u.u&.WNu 6J.TN;Ju6.TN*ZRWV+.u .G8#t.G4JuX+..}3#t.JtY.w..D3. .t .L.DG.|X.DWSS_.].] [_.D%u Iu^_^_YYV.G% t .!DFFFFIu.M .G% t .M.g^V.$;t.O #t .!EGGGGIu^V..;t.O*#t .!EGGGGIu^3 .&EV.w. .D WSS_.].] .D[_^.G=u.GN&u=tDK=uW&u...O*#t.E% u)GGGGIu.$.O #t.E% u GGGGIu.D3 .&E.G=t=t&uV.$.O".W t #t.DGGGGFFI.O .+O".W*FF#t.DGGGGFFI...O*#t.DGGGGFFI^.W .W*BB3w .&EPVW..s;u ތ;u_^X******FONT !!/"U"g"""""I#v#####$k$$$$$0%u%%%%&f&&& 'R' V!|!!!* *PSQRWV&w&O&W.#u .  &%uS 3........ .....*.*&G&G&G&G&G&G&G&G&G&G&G &G"&G$&G&&G(*J#u[S .&G=u&G#u&G*J#u[ QX+.s.Q#u- .=*uR=s=u#=u=!s =!u="u=#u =)s=)u&G ..$y....=uu &G %QY.s...+srY.+rR@s;w@RQYZsPR+sr#u#uZXH+.ZX+..&G .>..S.&G=tZ&G.;u6VQY^u!&G. &G.&G&.&G(.=u. =u&G&J#t.[(... .3..>%QY.s..>.S&G=uY&(%QY&G&s.;>w4t .;w(t...>..#u&G J#t&[..=uu.+sry.+rr@s;w`RQYZsPR+sr#u5#u1ZXH+.#t ..#.. ZX+.#u.. &G S.&G [.>..WS..&G. &G."&G&G &G"&G$&G&u .> u(,&ue.>*u .>u?C.> u48&G .$&G.%&G.&&G.'&G.(&G&G .*&G.,&G."#u ..".&G&s&G([.S...>%QY.s..>&G=t=t&G#t&G &G#u&(%QY&G&s.;>r?ul.;r6uc&w"&_$&G;s-&G&G .9s.&G&s8&G(0&G '+&G&O .&O&s&G(#t.&J#t5.+.>u.[.>rt &G ."+~FI.>.:t&G .^G.>tP..#.%8FI#u..&"FI..'FI..'FI#u..(FI..)FI..)FI#u..FI..#.FI..#.#u~F.I#upF.I._FI#u..IFI..9FI. .'FI#u. .FI. .FI. .FI#u. .FI. ..FI. ...>v&G .!+.+;s.>.hQ.>.Y+. EFI#u.. /FI..#. FI..#. FI#u.. FI.. FI.. FI#u..FI...H.#u.. .#u. #u .. kFI...H.#u.. A.#u. #u .. #FI#u.. FI..FI..FI#u. .FI. .FI.!.FI#u.".FI.."#t.> t.> t.!r.h.^.FI.#."#t.> t.> t.!-.#.3.$.%.&.'.(.FI.$."H."t ..!.FI.%."H."t..FI.&."H."t..FI.'."H."t.q.FIP."H."Xuw#u.(.F.FI.(."H.".!(.FI.)."H.".!.FIP."H."Xu#u.*..FI.*."H.".>*u .!..FI.+."H.".>*u.!.FIP."H."XuQ#u.,. Z.FI.,."H.".!<.FI.-."H.".!.!RW.&;rJt-GG&+;s .+#.+.._Z&G +_Z.>!uY^_ZY[X(=@t..'PUSQRWV.'. (u6J.6'u u@r u?.6't.G.D.GN.DN^_ZY[Fr% F]X.uu.G.oNtD35;t8..(>'..G<t.>'t S.'[.>'t S.'[.GN.u.'.G.u.'rUSrP3;t4..(>'..GR:Z<t(.G.>'u.WN.G.>'u.WNR.O*..ut.9-uIu".O .$ut.9-uIuZú.O*..u#t.E t.=u.EރI؃u0.O .$u#t.E t.=u.EރI.b  Ss[Q[.?up*3ɱY@.r*c .>+s'&.+.>+uLS 32Ҷ[.r*Y+=r -.&E&M&E&E!v HXW#uO&}QV.4#t#W&}& }Vt^_u^Y^FFYIԡH#uH^Y_GGJ_.+#u3WQ&}.;+rW&}& }.wt _t_YS.+. +[QwB.D=u.&E.D&E.D&E.D&E.D&E .D .uY_YA_GGpY_.t.G.r*Y+=r -.&E&M3.Ot&E.?u.uSwOP+._[.?t.r*(.r*Y+=r -&E.t*.+.#+.3+#u3.;+sOrFWQPSR&}&ut O&.+.6+6+2Ҷ/Z[XY_AGGRS.++ۋӋD.+D=v H[M;Ds H[>.+.+D=v H[".+.+[QW&}& #uS.+L.)+[D;wvHHVS.+Q;LsL+Y.+.+.+[SRދщ#t5GG&RS.;u[ZZ[^CCCCJu[Z..D  @.DFFFFIZ[^_W&}&=wY#t:&E#t2.| uSP.+#X[t7=w2SP.+#X[t =wS.+[#t. +_YZQWR.+Q_ArY.+.GW.E .G_.+.G$.+.G..+.G".+.G&.+.G .+.G,3Q.u HIu.G@Y.+.G4PJu.G6Z.+.O0Q.u#t .O".O .O #t.r*Iu.r*.O8.r*Y.ui."tvQVWR.W"R.G0.w.t3. A.8W3QV^Y_.4JuZ.w$.8W.&FFFF_.4JuZ_^Y.O*.;+s .+.G*.G.?u.+.G.GZ_YÍwBQVWt&}& AA_^t H!cVWt&}&@@_^t H"?VWt&}&@@_^t H#VWt &} & AA_^t'H$.G.?uS._.G[.G. +YQ.+AYs.tS.+. +[.>k2uAQP3&.'&.' u (.'.'&(&XY.k2 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$MS DOS Version 6 (C)Copyright 1981-1994 Microsoft Corp Licensed Material - Property of Microsoft All rights reserved PSRW3Ɏ3./.2.>2./.2.>2./.2.>2./.2.>2.2.>2.2.>2'.2.>2./.2.>2.2 .:3$.2.2 .>20CQRrY_Z[X PVc!r .62.2^XøD3!D!øD3!D!ô0!=u=sPSQUWR.2.62 t u&rZ__Zr]Y[XPSR.2u,wsY!2t ;trZ[Xu&!s&U! t &!GIuWPSٰu+K[X_3 tO@׃u(!P&ZXs@B!&=uUQY!s ;t;u]ø'Àtƀu >2W.>2 t&=t&:r&:EwGG_.23ۓ.62.62 v70RA u t<u| ,u.63A$u| ,u.63A u | ,u.63A333.623 t!%&8%u &8et:u&KsGGBIuV t5M.>2u,D0&:Eu<0u t4.>2uBBIIOOW+_YsgQʀ|t tIIGG^ u^ u3 t>UWQ3.>2uDu|q"rY_]^ .>2ur*.23.2.2 X.2C@u u .2CCVS33ɀu .2(t .ļ2=r='w .ļ2.ļ2Ãuu .23 tTr u뚜u)RUQWP/2t=u P.2.2X.23ɀt&M .85u.Ms- tt&;.;u Itr u&}r2& G.23ۀ|u.LJ2 -CC.Ƈ2 C]33.2D :v*DtD .2C@uu|t 8Ls*LъL t%Du Dt&GX.2C@uCuDu tD .2C@u$uDuDt t .2uUQW3ۍ>2Qr_Y]D0u&PA8s&EP & tGA+UExtended Error %1>: Parse Error %1>):  IIncorrect DOS version ,%1 code page driver cannot be initialized 1Invalid syntax on PRINTER.SYS code page driver >J:[]|<>+=;".:.w;.&y;.6{;.:.:.:.:.;[].;|<.;>+.;=;QRWVA u.;^V.;3ۀ<"u u0== t= =t = =t== u=FVQFY^N.;IFI^ u_ZYH sS&&:s[#.6:SWU:.: uC r<< t7m u.: u &.:AtN.<=u.:C sŬ.CN.6:..:&6:.:&&eP.:&EX<u &U&MZ<u&UP<t<t<u&U><u.:@&E&]+&u&MP&Gt &GtX&Gt_.;P& uPSRW.: [_Z[X0t.:0.>: ut.:.>: ult.:,.>: uT@t.:.>: u=t.:.>: u&t.:6.>: u t .:.>;u.>:u.: XPV. t<:u .|u. sFF^XVR.r t .FFZ^;t>;.8tPQRe»!ZYX.].ECC,&_[P.:.&:.<+t <-u.:FXPQRV33S. tBr92r,ڋrrr ՃrF[[.:t ҃&w&<utF&<t`F.:u&;Lr6w&;Tr.&;Lw(r:&;Tw 2&;L|&;T|&;L |&;T u.:&$ .: ^ZYXÜ.:uÝp<0r<9w,0PSRW&& uL<u?G& @&@&GG&-2su.:&e& .: q_Z[XPURV.r<.:t <=u&~uZ.:t<:u &~uEFE&:Fu t;FE&:Fu.F.E&:Fu#FE&t<:u &~u <u&~:t.6:^Z]XÍ6~;.};tu<:t0<.t, <-t&:. t_u$.;^._?^._&u2.:)XV. t-t sGFGF.:.G.>:^_Xt PXSQ; .:tCAY[ì"tSu.: t.:At NNSQ< t-<t)< t%&}r3&]&9t 3& C&:t< Y[SQ.: .&:< t6< t2<,t1< u < u F:&}r3&M t C&:t< Y[.:.:u.: :.:;t :u'PQRWU3޸c! ]_ZYXt).6:.:.6:.:<t:r:DwFF[^FFFG~GG~GPRN=LPT1=LPT2=LPT3=PRN:=LPT1:=LPT2:=LPT3:=F33=tT.>GuL=t.G8.>Gu*.CC.>~.GS.b.G*[.GS[.>Gu .^[_ZSWVQ3ɍ>9G.6GS[=tw.>Guo.G=t.GS.>Gu ._E.>Gu%.>Gu._._.G=t!..G.>Gu ._.G[Y^_[WVQW3ɍ>lG.6GS[=tB.>Gu:=t5=t.G..? _.G.EGGWS>lG[.G_Y^_WVQ.6G.GG<t tIu.GY^_WV.6G..GG<t <:t<=t^_uϝ.ϴ >!5!..%!1! The PRINTFIX command prevents MS-DOS from checking the status of your printer. Use this command only if you have had problems printing since you installed MS-DOS 6. $MZ7 xzPY`%!<%=%>V\L^%jg~_PX%6PX").6*PS [XA.6BPS[XPX܌ЎPS XttUtP..PX#'%+)6)6%6'6)6+.66!66#Y=PX#'%+6%6'6+.66!66#x=%L=%[%PC NETWORK PROGRAM 1.0MICROSOFT NETWORKS 1.03MICROSOFT NETWORKS 3.0 ?????A:LPT1:COMIPC/58>B (C) Copyright Microsoft Corp. 1984, 1985, 1987B KT`P00hISP2什[[st P/XD U^:Gw+:r.^*2؋GU6^PF^]vF _ uɸ]Àu t u A>BøW/u t uSAAmBr Bt tW.>j>u1h>uHGr<t=6VYV^sYtIDuLYL .YÃ|:u ,aP/XsDC@tDCtUkYVWQ66>WX^Y_LMDC6KILO%Kmr6_66>,Y[[YøVJ^<\\tP|:u<.>h>u1/P/[r>&ECtP\[sÊAP/X.>j>u0r.>h>u2iG.E.>&} tW!0J_t&=u.cXS.&Et>r&e8XP*.g3*XóF.2;>@&M}5&=t*&=t$&Et0&;E1u>Q6&=uY;FWq>>.>.I..6| t,6>V!PIu^Du%8=t D K^4u.6| t4uTV5\^JrW6>&MM_&M6>&uR&ET&uI&EK.6DDu ODD 3D.6.D&6s>\ t &CI &CW_\u\8tO6Dt \G@t<-\2sT6\\GDGBG@uBu su'G@uZs GFDG@umPstqDD-(3ҹ+;f[vf[D&E (Du.D ODV!6G_G@ uMO@.APX6DuD OD3G*G+G0fBtJr3G@% G@3>iErE EEEEW#ƾkI_E!IE߹l2rE!=r=uO@=r.O@E+tO@E+tO@E#tO@ =rO@@E tO@G@tE%GFË>iOE3CAEpE W#6F>t6LOkF\dF_+ϋ-#E!vr6E!DE#Ë>iD3@EsE !ud[33G@ t&E3W=uG@tHF_3WQV^YG@uWH_G@ u <u uX+@@؉&6i+ƉD#&>iEu}d_YNj+D=t &6L&6E\ E+E&>i+sW}su}#'35W_t!8W_t>W_tO@_&6T ‰DEPSQRVWE!WudD_Wu8H\eD^Ds/6\G@t7Vd[D^t$Dbr>e]g@_^ZY[X >߃} t1Gt %8:u tt !Ct)?u͸Tt!C˜ ƉE Q>} t!E:ut$8:uIt =uٸYÌ uCVrEV^]&>&NC&623r>uE ^VW8H\C_^VQtC uiC tCDYCuY^GO=tbFrGH=tPFr FstPV6DuOD^X=7Ë3BuG@ut  VQY^tX;u t G@ 27?&}I.>.PP&} t&M u&e>&EtS&][&e<Ëi@GqG &U<3҉WW!#>}E@th]MMSl;*u>0S.&G [ÜS.&O .&_&Bt&OBu&G@u&=r0r*GG !:G$ t uP@Yt V9;N <W ?&}I.>.q>&UiG:G G!#-3-3_rW#‹W)W'O%_!M_u[ P/r rXPG G G!%G'G)3G#G%G+G-G/1:G1O13#3y 8[russ= tSFP /[[ r.ó;-/rEF rFGG !9O!у#73 r+O#W%7G!'_)PSQRWU8_ZY[XLøA8u뢳;=.rrGG 6m2G!6#533.>GW6+>W%>P/X_%_uC&6+66%.#W/_+G#O#%#3D7rMu dXs:<.r.rGG 6m2G!#8O#%#3O7rts^_[^= uEP /Zr7_<u&E e:.2PWP-Xr>&U8t&}&E@@t:$<t2<t.<t'@t"0tS2>h[h/>3[>&U7_XV2u:G-G G! G%G'6m2G)G+G-G/G1G3G5G7G9G;G=WAW6h3.[_&uD%&E&E%? @&Eȭq4&M &UW}_GG &EW&_&Ms_LWV9s&u&]&}^&]&u_.&E7.&E9&E&EW W.6F t 󪫪^K k#/r_X&E&E  9u33^X68PW&E)r>&U8u_XPV8r&u&]TT^G tGG 2G!PWS /ʒ1[O#W%'4O'%)3}_ZYRrCV&uD^G!&EX&E%? @&E&E&E /&U &EWQ582Y_uX= uQM@P /ZYr[F6>u&}u&EWS /ʒ0[_&M&U(r>&M64bXXFt=tk ZZt@5-4r6W*^W&T&L26mG#+P%2ȃE*3(X3[+rW! ux_EERW /ʒ0_MU[]hW6>u .SH [ S66[+ɉEM+Ku_6>,&MV <.t<.uN  u  t۹ u <.t^3󫥥OEË߃h(GG 1O!ó3>,&%.h[t\GtVSW /ʒ/_[ +OWr GW)_(WwhJtVW_^t+W)_+u>,&Et.$.>i5&}I.>.4W )^W&T&L+P%ȃ'2Q66,Y(X3`)rW>"_t=t ZZu>,& C.>EW$)_MR&U8u5/ZP6.=t66>6X.X6<.+.rôr...0];u&utV4D^D u!V4L^,DE@tVXP=uHV&t&t&t&D@@^t0&Du(.u VQ.6M&;LY^w #s V&^'=p1q<&E@@u /&E&U /PF)>2s&&rZ&EuXP=t&EuW&}&}&E_iGG .3G'&EG!&E@u &M &U,O#W%)#W&}&}&M_r6WP&E&}&}t&=zr$X_[u&2Au&[_sո&E@u &M &U+S_#&EGOWG[L ;d[0<t]SWVQ>\Wt tt ^YRQkYZ^_r.XLO@GBPVt D L@tD^&GX[V^W&}&}&M_W| r/r[&u؏G]EM3ɉM,M..>AtVW [-[t5r&&W&G,&O.-t5_VWQS&g@&OB3&O,&O.&.>t...!&_&_&g&O&O&w LLdL uL t DD.}t.ED.ED[Y_^ϰDE@tPV#^XErE$s:?&utD u$a.b9R&>/r#s&EuiGG +3G#&EG!%#osu&U&M9?ó!.9r&Eu6>6QR%WQR"ZY_iGG |+&EG!G#W%O'G)+'ZYsu뵋G!W#>3&Eu-8s nPh.&XWP&}&E&}..>X_P,.X..t'VP.6.D .D . D.DX^%p.s..;d[w.q"rY&E&]+D\rI uE+DsvD t3NV&uD^t &E&U&+U&E tV&ud^&E&]66, .rE!sq.u.&M&UPV&u.6,&ED&ED^X...t!.&].&].&=r3=5=D@u/.;r3&E&U&+E&U uV&uL^.;ro&E&U+DTr% uՋ+Ds;vQWVh6>,+؃ uҋ+s;DvDQWVh6>,^_Yq!눋DTD&+E&Ur +r tW _r .+X3ɸ. r 'V.6D D ^Y3ɸQW.>h[8 _YQrV .t.>tQ.d[.Yt.d[.&]\&EDh.^[rLD.;tL ;sPW&}&ED &ED _&ED60DD.tVW6>,h_^uDQWD@t-.u%t V.6&t&D@@^t _Yr&E&U+DTr u+DrD t.t .&37;s.t3.&E.&E.6... .&QWVh6>,.QWV6>,h^_Y+.&E&U6,.uD@uD t3Q s .d[YQ3&E.d[+.>uYQW&}&}&;M_v.S_#GO&M&UOWG G [LI?.d[V^WrwW#DM_gLW&}&ED &ED _&ED60DDD.;tD &ED&ED|hVw#NO^_W&}&}&M_Yr 9LsLe#_#a#c#6U#.W# t t>t&P60&EW&}&E&E_X6U#]#e#_#Q#Y#a#[#c#&Ei#&Ek#V6tD@^g# t(t#.>AtWVQ6t,Y^_PQg#tet`t[ ug#u+g#u#Di#k#+Y#[#g#t- u;e#re#W>_vYXt{Q#YX umg#teg#ug#tU6U#6e#V6U#W>&M_]#;wȉe#Q\X^e#U#tQ#)]#;u >]#tiWG #GG!W>>%rh&EG&M_0]#G)+w3]#]#O#QY#G%[#G'G+ ttG+O+G-O.WRP' tt _3>}]EE-Sz#t,s&&G0&>uL0&>U#00&w&o0&W#&GS&iG#[&GX-0P%#t}&>t<tq+lW&>&<0;E_v tу&G&j[P&G&O"tm+[s,rQO! tQW#Ww0^XYgYP>[rW+rRG!>t+ZRP t!_Gw&W#Go"t*Xr>uV06U#00^Z_Yu0`>t+&EuP&E$<Xu.u.s u3=!tÿ]EE0 tE u W#ES!tg*[rr&u=<t5>M@E Vh&L6!^}M@EBE,M. >}]EE%Sp!t)[r*s&u <tG.G!Z_YQ#Y#[#;r >]#tQ#ÜV@>&}@^i$ GG!W>>"s_3W&}P#&E@tP#_&EG_ uGG P#tG e#O#G%QY#G'[#G)G+G-G/<uG/G1G3P#uG5G7;G9WRe#Q>|YwC&E-;G9G5&}]]E;.>AtVWQ,Y_^E PU#E W#EXSPtV(X)e#U#sW#+G5WR>&}]]E;St([s>}]EE%Sbt'[r&t"&G=Yt=t=u.P#tZ_Y`(rS>}&U#]&W#]&e#]&<t ;t3'.tx'[r&>}]EE%StR'[r'rG!Z_Y<tS#Y#[#GG O'G)QY#G#[#G%G+G-G/G1WR!>}]EE3S;t&r0&&e#&G&U#&G&W#&GS[t&&G&S#[r P/'Xr tZ_XS#Y#[#Z_Y=!tÀ>t&Eu P&E$<Xu2*&M0 u;W&}&}&E_\h;+كwG/G !PXG!G"&EG%DG'DG)G+G-G/<uG/G1G3G7>O7LO5O9G#;it{lsoDE@t VQY^s3ɸ.P,.X )s s&e&EuQ.;d[v&E&]6, .rRsR&M&U&E&]P.6,X..ZR u u&;Erw&;]v&E&]Z6/Àd&E&U+DTr! uZ+DsS u DBT6؃ u2+s.;Ds)DQLDTWVh^_Y9_Y3ɸxQWiGG %&EG!G#G%G'G)+'_su G#_!&E&]YssQW.>h[tr^YW\&]D&EhV66,_^L,D@&EDW&}&ED &ED _60DD#QW&E&U+DTr u+Dw.d[+;sD@t.uP[+D뵋;DvDWVh66, WVh66,WV^_t^_tL@LV sI^%uW&E uW>,u+N_s&utD uDt366,&MR&E+-V+ t<;sWQ&}Y_&M+t D r&MRɋ u_,.QWVh66,^_Y+.&E&U6,L@R,Àvû t SڋOGw[%s!,.6... 6>6&Eu&uD . D . D.D.D D .6..6...  t;d[vW&}&}>&;Ev_&}&E@_u> u &Eul.9 u.96 u.9u|.9uuVs... 9Tuu9Lup9DukD@t.WEr3_.^*.&].&].&U&MIVr6otD@t+W_ W_s^.6.. *^.6... iG G#w%W'O)QRVPG&EG!3G+-#arV> u*VP.6.D .D . D.DX^VP63D D NrDX^)^^ZYuX^ZY$W&}&}>vr&EG3_&Eu`&EuX&E%=@t=0tEV&u| u| t1S&]&E+\sHx+Dr;D wr ;\ v3 [^&Eu&E%=@t=0SV&u&];\u &];\u |ud^[r.>.Q4Yr}DUusL .<.6]36t9Dt2VWQ4Du.>u !.>CY_^u <&E MT.6| uDt4uTP(.\LP.\T1.\:Br&e&M&M(>q3&5&E&ET;v&ER&e &M&E&EP&E&}&EV6a3.e3}U'2rBDt;<>Pr*>q3&e 6a3.e30w'øo'S7[RQVWPnXrE<tLr Z<t T/T%u'T^^^YZ@w&MP'à W '_LPQY/LS3ۋ6G66<.>h>u.6d>DCtCXX+r3{Dtr B.;g3u%.r[t'%<wVQP.6]3TXY<tL ^Ӄd.6.&6.6.6.6.6/!VWQ 6Y_^м .66.6.6.&6.6.6.6.66.>6.6.6.6/ 66!6&666666>6666.&6RQ..AO1.AO.6]3T.6q3.s3YZV^V^^.>\3uDt tDrLdDtQWRS60DVLPD<.>.NrUˎÎۋiGG O!G#%W< t3_+ϋ-%%3^r5Ld&G!D tDVLPQVV^YL[Z_YuT^}.>\3tdDtdL@ydQWRSDuVD <.>.rrUˎÎۋiGG G!.3G#%#3^st=ttDVL[Z_YsÃdQL+΃Vu Yq^lWRSDuVD <.>.r؋UˎÎۋiGG G! #^VVP(#8Y^sttDV[Z_YU v^~FFPXu P Xt% tPXt<:u<.uv|:uv~] ~t~Ea WPSU][X_F&ErDt4t!~+O\\> v&Et&ut$ ,tt%& .\32/TÀw.\3øW.<.6]3Dt D uTLPT1PRNLPT2LPT3LPT?5!m3o3%ں!5!.i3.k3%ں!@&ÜS@ۻ<rt[Ã?u?uV.6a3<^u.m3PSVWU3]_^[XwV.6a3<^twt t˜.i3.>g3t .>g3uVQRP_.r[DuBLsJ=t&=3rt#=6t==r=?v ZZY^Y댰(.>\3t/09DuXPW|+V;|Rr!t_rXPW|G|_XZY^73.3 .6.6%/.>t*V% ^r#r&E >&Ui' .>&} uW!_.9rkVW!&G:uD u_XN.6&E%8=t.>h>u~H.>j>uFW__ u\t_^&=tq.>h>u6\].>.7t tP/Zt t3N.65VW\ u_^.6| t4u+r! s&EuPM X&e=TtθO>h[}tEuE@t EreE=u.WL .tD D DD\DhQ [_r ;usu뫀}tEEuE@t66&EuB6h[|t/Du)Du#&E;DuW&}&E9D u&E9D _t4u>h[}t.=u>h[&P66`X&EEVP6h[;t9h[<X^ t6h[5>h[USW>Et s7}E@t s7 ]EtuEUSV I|1t^P^X[t_wt]EtV^u EE u MSPIt^X[_u>=It> Iu)[t]PS7G I_5 [Xu,t&WR3ҋ>S][Vv4^_Zr ^G[WQV6i]VWQ>Y^_^Y_PEGXWVQ Y[_W/_+-SP.6=t# X[S6Gu_?>u.[WQP&}.>q3.s33.6]3/t AT.AO1.AOXY_.>h>t&.h>.6d>6><6GXDCu uË.>h>t@.>d>66<6GX2P/XrDCt PAP/XX.h>O9.>j>t9.j>3.i>t.6a3LB.;j>t.j>2.FÀt u.>h>.>j>/\w.k>V.6| t d4u^3V6:GsSP66<.>h>u.6d>XX[DCtfVtIL^sVPWV/^_|O2X_A:LMtI|TDtlP/XL\T.>k>tl ^g^3V.>j>u..i>Dt$sVP4!/[^_kL 4{^B.;6ĝXVQPW!/_6t&F;wtV4t4;wtXXDuXY`Du^<&DD&EXY^3| tQV!%/^YEV&&E6t&..&EX^V6P/XtP;&}IW!6&G t :t_À\t uN_.>..6&EuW&}&E@_t zs .r[66.PSQWV<^_Y[X.6]3.&} tA&E t &)E w.&E t&WP /ʒX_&+M&Ur&)E wZ&E&E&Et C&e&=u..&Bt&GD t&)GBw &GB%&GDXSQRVWU&E &AOP66>&E%8=u AO?薿X&AO]_^ZY[&EuW&}&}_W6>&}I_&E@u&}t&E&E6r[r[ 5r[&MÜPSGMB3GGG GG G GGGGGXÜW>h[}t EtE =u_6+<X.P6l[p[<tPXW&}&&E_&E&EQW3&>*&>@_Y&MCW}&Et'W&}&}_u@&Eu P&E$? )T4? TQFT2 T: TGT! )TD )TX )T)T  2 34 56789: ;<=>?@AB CDEFG HIJX8V!  TIR]TTTUUTuP6.X .P$/X3VPVP_t|W.>r[t& u_먃!urw-;s2$V[P"/X^ v &g$86K_ u<u 2&GVlPP;tDd>r[uttPDVQPP2Ȋ&r[:tXY^AX^ XY^MPSR3hZPS&Gu&O[X>r[t>r[t>r[%t >r[u  ^W>r[t|& t<u 2_^6QVsu^6q3L= ^þLPD.6QVPDsuø .6QVPDwsu=k&M.6QVODRsu7.6QVPD5suD.6QVPDsu2VPDPV6$PO.AO1OW>O+ϰ __ZYX6 &KP/^^PO..O.O"O.OX6QVPDK!WRQ6>* 6>@YZ_W&M5}&EtW&}&9uu &9Uu&M_;_&=uPW&}&Et_XPSQRVWw 3X_^ZYrJuH uO@? tGBV6| t9\uDu uLD B4u^[X&7&&NET809: Network request not supportedNET801: Remote computer not listeningNET802: Duplicate name on networkNET803: Network path not foundNET804: Network busyNET805: Network device no longer existsNET806: Net BIOS command limit exceededNET807: Network adapter hardware errorNET808: Incorrect response from networkNET810: Unexpected network errorNET811: Incompatible remote adapterNET812: Print queue fullNET813: Queue not fullNET814: Not enough space for print fileNET815: Network name was deletedAccess deniedNET817: Network device type incorrectNET818: Network name not foundNET819: Network name limit exceededNET820: Net BIOS session limit exceededNET821: Sharing temporarily pausedNET823: Network request not acceptedNET822: Print or disk redirection is pausedNET476: Network software not installedNET477: Unexpected adapter closeNET825: Network data faultBUGBITS::Kr!VW_^3UWRQSV^wNvNvNu&;u&;u N3&6/3ɋD%8=tL | t V!^ u4u-~ub F]q^3۸_!r<u_!r'ߋF.F.vNN3^[YZ_]tuڀu[[[[[6[6[S6[[[[[[[/I\Q\ {,0z[577LLjj1B4@./;.3P/XDÃ>u讷utøÃUPȇFFX]MB3<>]3_3a3c33>.0>Q3r&<&DY&&D>3QXY>>d>f>/G2@XtG>h[d[3ҹ+f[b[d[Q43Y&D&<&>l[n[3>j[><0> ^X[YZ_^ ^#%! ^$%!w3۹>!CR!f\&? tD+x[>\u ^и1!L!C/iDS0!=(r=vJP(=Xu=r9dP !XL!3PP !XL!3PR=L!`dU"Ըxظ8!_].t[.v[R!&>uSR!S&_&G&t&G[&_&G[.p[/<eu`%2__&;sSd`%]<:u .v3<%t0 t^_X[YZ].".$X.6$.6"ˬ<%t<-t?<+tGu. 0P .&.X2,0. ..r.>u <t;6. t .>uV(^V<t^.>t . t^3Ҭ tB+vV>B.>t >R3S.6 . P[^IP3XP XtS[ .>u!< r .>u. QY ~ . QYê:tùS.&@![&Á&t&3..... .MZ8 ?\Yal X XXX=l=lEEBEZE`EpEE@_ljpppppVpmpp ppzp98BADCFE,APPID,LANMAN_BASIC,2.00,MICROSOFT,02/28/91,MICROSOFT:5.00 0123456789ABCDEFabcdefURQSPWV,n>v3<%t0 t^_X[YZ].(.*X.6*.6(ˬ<%t<-t?<+tG u.0P .& . X2,0. .. r.> u <t;6. t .>uV(^V<t^.>t . t^3Ҭ tB+vV>B.> t >R3S.6. P[^IP3XP XtS[ .>u!< r .> u. QY ~ .QYê@tùS.,@![,Á,t,3.. . . . . PXX% 6PXX"-.6.PS [XEE.6FPS[XEPXX܌Ў PSXttUtP..PXX-1/53636/616365.6666-Y=PXX-1/56/6165.6666-X.>l>l{\lREDIR (PC NETWORK PROGRAM 1.0MICROSOFT NETWORKS 1.03MICROSOFT NETWORKS 3.0 ?????A:LPT1:COMIPC/58>B (C) Copyright Microsoft Corp. 1984, 1985, 1987B KT`P00JSP2什[[st P/XD U^:Gw+:r.^*2؋GU6^PF^]vF _ uɸ]Àu t u BCøW/u t u BFB1Cr NCt tW.> ?u1i=Z.>?uIGr<t=6VZV^sZtIDuLZL .ZÃ|:u ,aP/XsDC@tDCtU_ZVWQ66>WX^Y_LMDCKLILO:Lr6_66>, Z[[ZøVK^<\\tX|:uD.>?u9/P/[r>&ECt&ECuP[sÊAP/X.> ?u1r.>?u2{H.F.>&} tW=K_t&=u.OYK.&Et>r&e$YP*.4*XóH.2^<>@&M}5&=t*&=t$&Et0&;E1u>Q&=uY;G>t|.I&} tr&Eu_W}&E@uc_&]8u UP?W>iGG D3G!&EG#3C=r_&=u_-X_&M>>.>.(J..6| t,6>VIu^Du%8=t D K^4u.6| t4uTV5]^JrW6>&MM_&M6>&uR&ET&uI&EK'.6DDu ODD 3D.6.D&6s<]It t &CI &CW_]u]8twO6Dt \G@t;-]2sT6\\GDGBG@uBu su"G@uks GFDG@ulstkDD-(3ҹ+;Z\vZ\DDu.D ODV6'H_G@ uMO@eAPX6DuD OD3G*G+G0BtqKr3G@% G@3>iErE EEEEW#ƾkI<u3OOO_E!I um!3F߹l-rE!=r=uO@=r.O@E+tO@E+tO@E#tO@ =rO@@E tO@G@tE%GFË>iE3cAEpE W#6F>t6LOF]F_+ϋ-#E!qr6E!DE#Ë>iVE3@EsE !uX\33G@ tE3W=u|F_G@tOV3WG@twHOVVQY^WOVH_G@ u <u uX+@@؉&6i+ƉD#&>iD3E@Eu 3G@ t6QES&G[t &6LptbVQY^W&>Mp}b_YNj+D&6E]{E+E&>i+sW}su}#'35W_t!8W_t>W_tO@_&6T ‰DEPSQRVWEWubE_Wu8H]D^Ds/6\G@t7VbD^t$DRr>e]g@_^ZY[X >߃} t1Gt %8:u tt 2Dt)?u͸Tt4D˜ ƉE Q>} t!E:ut$8:uIt =uٸYÌ uDVrEV^ ^&>&C&623r>uE NVW8H]C_^VQC uC tCDCuY^GO=tFrGH=tFr ]GstPV6DuOD^X=7Ë3BuG@ut  VQY^tX;u t G@ 2?&}I.>.P&} t&M u&e>&EtS&][&e9<Ëi AGqG &U<3҉WW!#>}E@th]MMS;*u>0S.&G [ÜS.&O .&_&Bt&OBu&G@u&,@0r?=?0rtSGVG !^;O!#6D V33^L :^rNu=0r*GG !;G$ t uP AYtV9N o=W?&}I.>.>&UiG:G G!#-3=3_rW#‹W)W'O%_!N_u[ =>P/r rXPG G G!%G'G)3G#G%G+G-G/1?:G1O13#3t 8[russ= tSFP /[[ r.óm<=/rEA rFGG !9O!у#73 r+O#W%7G!'_)PSQRWz8_ZY[X)Møf8u뢳 <=.rrGG 6m2G!6#E33.>GW6+>W%>P/X_%_uC&6+66%.#W/_+G#O#%#3?7rMu dXsX;E=%.r)rGG 6m2G!#8O#%#3t7rts^_[^= uPEP /Zr>7_0=u&E :.PWP-Xr>&U8t&}&E@@t:$<t2<t.<t'@t"0tS>\\x/>[>&U7_XVu:G-G G! G%G'6m2G)G+G-G/G1G3G5G7G9G;G=WAW6.[_&uD%&E&E%? @&Eȭ4&M &UW}_GG &E W&_&M r_LWV:s&u&]&}^&]&u_.&E7.&E9&E&EW W.6F t 󪫪^K k#/r_X&E&E 936^X=7*9PW&E*r>&U8u_XPV69r&u&]TT^G tGG 2G!PWS /ʒ1[O#W%'<4O'%)3{_ZYRrAV&uD^G!&EX&E%? @&E&E&E /&U &E WQ82Y_uX= uQ@P /ZYr[GG6>u&}u&EWS /ʒ1[_&M&U(r>&M64bXXFt=tk ZZt52-B5r<7W+^W&T&L26mG#+P%2ȃE*3(X3p+rW! ux_EERW /ʒ,0_MU[]hW6>u .SH [ S6)7[+ɉEM+Ku_6>,&MV <.t<.uN  u  t۹ u <.t^3󫥥EË߃h(GG 1O!óx4>,&%.\\t\GtVSW /ʒ;/_[ +OWr GW)_(WwhJtVW_^t+W)_+u>,&Et.$.>5&}I.>.H5W )^W&T&L+P%ȃ'2Q66,Y(X3u)rW>"_t=t ZZu>,& FD.>E W9)_M R&U8u_/ZP6.=t66>6X.X6<.+rôr..;u&utV4D ^D u.!V4L ^,DE@tVXP=uHV&t&t&t&D@@^t0&Du(.u VQ.6M&;LY^w #s V&^'=1<&E@@u /&E&U /P[)>&3s&&rZ&EuXP=t&EuW&}&}&E _iGG .3G'&EG!&E@u &M &U;,O#W%)#(W&}&}&M _r6WP&E&}&}t&=r$X_[u&D3Bu&[_sո&E@u &M &U+S_#&EGOWG[L ;X\0Z=t]SWVQ>]Wt tt ^YRQpYZ^_r.XLO@GBPVt D L@tD^&GX[V^W&}&}&M _W| /r[&u؏G]EM3ɉM,M..>AtVW [-[tp6r&&W&G,&O.-tT6_VWQS&g@&OB3&O,&O.&.>t...&_&_&g&O&O&w LLdL uL t DD.}t.ED.ED_^ϰDE@tPV#^XErE$s:@&utD u9.9g&>20r#s&EuiGG ,3G#&EG!%#su&U&M?ó!{.U9r&Eu6>6QR%WQR"ZY_iGG +&EG!G#W%O'G)+'ZYsu뵋G!W#?3&Eu-8s nPz.&XWP&}&E&}..>X_P,.X..t'VP.6.D .D .D.DX^%.s..;X\w."rY&E&]+D\rI uE+DsvD t3NV&uD^t &E&U&+U&E tV&ud^&E&]66, .rE"sq.u.&M&UPV&u.6,&ED&ED^X...t!.&].&].&>r3==D@u/.;r3&E&U&+E&U uV&uL^.;ro&E&U+DTr% uՋ+Ds;vQWVh6>,+؃ uҋ+s;DvDQWVh6>,^_Y!눋DTD&+E&Ur +r tW _r .+X3ɸ. r 'V.6D D ^Y3ɸQW.>\\M _YQrV .t.>tQ.X\@Yt.X\.&]\&EDh.^[rLD.;tL ;sPW&}&ED &ED _&ED60DD.tVW6>,h_^uDQWD@t-.u%t V.6&t&D@@^t _Yr&E&U+DTr u+DrD t.t .&)37;s.t3.&E.&E.6....&QWVh6>,.QWV6>,h^_Y+.&E&U6,.uD@uD t3Q  .X\YQ3&E.X\+.>uYQW&}&}&;M_v.S_#GO&M&UOWG G [LI?.X\V^WsW#DM_ u _XQWLgLW&}&ED &ED _&ED60DDD.;tD &ED&ED|hVw#NO^_W&}&}&M _Yr 9LsL$$$$6$. $ t t>t&P60&EW&}&E&E_X6$$$$$ $$$$&E$&E$V6tD@^$ t(t#.>AtWVQ6t,Y^_PQ$tet`t[ u$u+$u#D$$+ $$$t- u;$r$W>_vYXt{$YX um$te$u$tU6$6$V6$W>&M_$;wȉ$Q\X^$$t$)$;u >$tiWG #GG!W>>4&rh&EG&M_0$G)+w3$$O#Q $G%$G'G+ ttG+O+G-O.WR' tt _3>}]EE-S#tf,s&&G0&>uL0&>$00&w&o0& $&GS&iG#[&GX-0P=#t}&>t<tq,lW&>&\=0;E_v tу&G&^\P&G&O"t+[sg,rQO! tQ $Ww0^XYgYP>[rW3,rRG!>t+ZRP t!_Gw& $G"t[+Xr>uV06$00^Z_Yu0`>t+&EuP&E$<Xu.u.s u3=!tÿ]EE0 tE u $ES!t*[rr&u=Z=t5>M@E Vh&L6^}M@EBE,M. >}]EE%S!t\*[r*s&u Z=tG.G!Z_Y$ $$;r >$t$ÜV@>&}@^i% GG!W>>#s_3W&}$&E@t$_&EG_ uGG $tG $O#G%Q $G'$G)G+G-G/Z=uG/G1G3$uG5G7;G9WR$Q>|YwC&E-;G9G5&}]]E;.>AtVWQ,Y_^E P$E $EXSPt(X)$$s $+G5WR>&}]]E;Stv([s>}]EE%SztN([r&t"&G=Yt=t=u.$tZ_Y(rS>}&$]& $]&$]&Z=t St3'.t'[r&>}]EE%St'[rO(rG!Z_YZ=t$ $$GG O'G)Q $G#$G%G+G-G/G1WRc">}]EE3SSt''r0&&$&G&$&G& $&GS+[t&&G&$[r P'Xr tZ_X$ $$Z_Y=!tÀ>t&Eu P&E$<Xur*&M0 u;W&}&}&E _\h;+كwG/G v!PXG!G"&EG%DG'DG)G+G-G/Z=uG/G1G3G7>O7LO5O9G#;it{osoDE@t VQY^s3ɸ.P,.X )s ] s&e&EuQ.;X\v&E&]6, .rRsR&M&U&E&]P.6,X..ZR u u&;Erw&;]v&E&]Zw/Àd&E&U+DTr! uZ+DsS u DBT6؃ u2+s.;Ds)DQLDTWVh^_Y9_Y3ɸxQWiGG =&EG!G#G%G'G)+'_su G#_!&E&]YssQW.>\\wr^YW\&]D&EhV66,_^L,D@&EDW&}&ED &ED _60DD#QW&E&U+DTr u+Dw.X\+;sD@t.uP[+D뵋;DvDWVh66, WVh66,WV^_t^_tL@L_ sI%uW&E uW>,u+N_s&utD uDt366,&MR&E+-V+ t<;sWQ&}Y_&M+t G r&MRɋ u_,.QWVh66,^_Y+.&E&U6,L@,Àvû t SڋOGw[b<&sb,.6...6>6&Eu&uD .D .D.D.D D .6..6... t;X\vW&}&}>&;Ev_&}&E@_u> u &Eul.9u.96u.9u|.9uuVs...9Tuu9Lup9DukD@t.WEr3_.^1+.&].&].&U&M7Vr6otD@t+W_ W_s^.6..*^.6...iG G#w%W'O)QRVPG&EG!3G+-#arV> u*VP.6.D .D .D.DX^VP63D D QrDX^0*^^ZYuX^ZY$W&}&}>r&EG3_&Eu`&EuX&E%=@t=0tEV&u| u| t1S&]&E+\sHx+Dr;D wr ;\ v3 [^&Eu&E%=@t=0SV&u&];\u &];\u |ud^[!3r.>.Q;Yr}DUusL .=.64t9Dt2VWQ4Du.>u .>Y_^u <&E MT.6| uDt4uT(.]LP.]T1.]:$r&e&M&M(>%4&5&E&ET;v&ER&e &M&E&EP&E&}&EV64.4l(2rBDt;<>Br*>%4&e 64.42'ø'S[RQVWPnXrE<tLr Z<t T/T%u'T^^^YZ@w&MPW'à WL'_LPQY/LS3ۋ6G66<.>?u.6?DCtDCuCXX+r3|Dtr B.;=r] PE[ t <.t2}:uE^= GGG 'u642T&6%4&'4&UP1&UP&&4&4PSV^= tޘ:u@^[Xûz=4u &.f\t(&<wVQP.64TXY<tL ^Ӄd.7.&7.7.7.7.7/!VWQ 7Y_^м .67.7.7.&7.7.7.7.67.>7.7.7.7/ 76!7&767767>7777.&7RQ..UP1.UP.64T.6%4.'4YZV^V^^.>4uDt tDrLdDtQWRS60DVLPD<.>.rUˎÎۋiGG O!G#%W< t3_+ϋ-%%3^r5Ld&G!D tDVLPQVV^YL[Z_YuT^w.>4tdDtdL@sdQWRSDuVD <.>.rUˎÎۋiGG G!=3G#%#3^sttDVL[Z_YsÃdQL+΃Vu Yq^lWRSDuVD <.>.Jr؋UˎÎۋiGG G! #^VVP(#8Y^sttDV[Z_YU v^~FFPsXu PjXt% tP\Xt<:u<.uv|:uv~] ~t~E WPSU][X_F&ErDt4t~O\]~| v&Et&ut$W#\ ,tt%C&H .42/TÀw.4øW.=.64Dt D uTLPT1PRNLPT2LPT3LPT?5!!4#4%Eں!5!.4.4%Eں!@&ÜS@ۻ<rt[Ã?u?uV.64<^u.!4PSVWU3]_^[XwV.64<^tw t t˜.4.>4t .>4uVQRPe.f\DuBLsJ=t&=3rt#=6t==r=?v ZZY^댰(.>4t/09DuXPW|+V;|Rr'z_rXPW|G|_XZY^E73.35 .6.6%/.>t*V ^r#r&E >&Ui< .>&} uW_.9rkVW1%&G%:uD u_XN.6&E%8=t.>?u~H:.> ?uFW__ u\t_^&=tq.>?u6] ^.>.t tP/Zt t3N.65VW] u_^.6| t4uQ+}r!M s&EuP X&e=Ttθ>\\}tEuE@t EreE=ulWL .tD D DD\DhQ [_r ;usu뫀}tEEuE@t66&EuB6\\|t/Du)Du#&E;DuW&}&E9D u&E9D _t4u>\\}t.=u>\\&P66`X&EEVP6\\;t9\\<X^ t6\\5>\\USW>Et s7}E@t s7w ]EtuEUSVI|1t^P^X[t_wt]EtV^u EE u MSP^t^X[_u>Jt>Iu)[tu]PS7GI_5![Xu,t&WR3ҋ>S][Vv4^_Zr ^Gx[WQV6i^VWQ>Y^_^Y_PEGXWVQ Y[_W/_+-SP.6=t X[S6Gu_?>u.[WQP&}.>%4.'43.64/t AT.UP1.UPXY_.>?t&.?.6?6><6GXDCu uDCu.>?tG.>?66<6GX2P/XrDCtDCu PAP/XX.?i.> ?t9. ?3.?t.64LB.;=r7!.> ?t. ?2.=J.64Dt dpJ y.?MÀt u.>?.> ?/\.!?V.6| t d4u^3V6:GsSP66<.>?u.6?XX[DCtmDCufVtIL^sVPWV/^_|O2X_A:LMtI|TDtlP/XL\T.>!?tl ^`^3Vy.> ?u..?Dt$sVP4/[^_[L 4{^B.;=rV.6| tpDtsV/^_3LA4t| u.6Du'D%8=tsV/^_3L4t| u^ 6RVSPQR Z/鸵R P/^I P/XIʸQ[PRS <[Sû<[Ã[^X[^RÁs3ҋu6RPSVU3ҋsRPыù< Ա$ XZQȾ P/Xs/Q P/XBX$  ՊY]^[XRP>ĝXVQPW/_6t&F;wtV4t4;wtXXDuXY`Du^<&DD&EXY^3| tQV%/^YEV&&E6t&..&EX^V6P/XtP;`\.d\=t;t _YX>&}IW6&G t :t_À\t uN_.>..6&EuW&}&E@_tn sj .f\66.PSQWV<^_Y[X.64.=QDuD@t Vd^TY.>&} tA&E t &)E w.&E t&WP /ʒXX_&+M&Ur&)E wZ&E&E &Et C&e&=u..&Bt&GD t&)GBw &GB&GDXSQRVWU&E &UPP66>&E%8=u UP?"X&UP]_^ZY[&EuW&}&}_W6>&}I_&E@u&}t&E&E 6f\f\ f\&M ÜPSGMB3GGG GG G GGGGGXÜW>\\}t EtE=u_6+<X.P6`\d\<tPXW&}&&E_&E&EQW3&>*&>@_Y&MCW}&Et'W&}&} _u@&Eu P&E$? U4? TQFT2 T: TGT! UD UX UU  2 34 56789: ;<=>?@AB CDEFG HIJX8V!  U]SPUUUVVUuP6.X .P$/X3VQVQ_t|W.>f\t& u_먃!urw-;s2$V[P"/X^ v &g$86K_ u<u 2&GVQQ;tDd>f\utQDVQPR2Ȋ&f\:tXY^AX^ XY^MPSR3hZPS&Gu&O[X>f\t>f\t>f\%t >f\u  ^W>f\t|& t<u 2_^6RVsu^6%4L= ^þ`QD.6RVQDsuø .6RVQDwsu=k&M.6RVQDRsu7.6RVQD5suD.6RVQDsu2VQDPV6$ R* 6>@YZ_W&M5}&EtW&}&9uu &9Uu&M_;_&=uPW&}&Et_XPSQRVWw 3 _^ZYrJuH uO@? tGBV6| t9\uDu uLD B4u^[X&7&m&NET809: Network request not supportedNET801: Remote computer not listeningNET802: Duplicate name on networkNET803: Network path not foundNET804: Network busyNET805: Network device no longer existsNET806: Net BIOS command limit exceededNET807: Network adapter hardware errorNET808: Incorrect response from networkNET810: Unexpected network errorNET811: Incompatible remote adapterNET812: Print queue fullNET813: Queue not fullNET814: Not enough space for print fileNET815: Network name was deletedAccess deniedNET817: Network device type incorrectNET818: Network name not foundNET819: Network name limit exceededNET820: Net BIOS session limit exceededNET821: Sharing temporarily pausedNET823: Network request not acceptedNET822: Print or disk redirection is pausedNET476: Network software not installedNET477: Unexpected adapter closeNET825: Network data faultBUGBITS::Kr!V6W_^3UWRQSVwNvNvNu&;u&;u N3&6/3ɋD%8=tL | t V^ u4u-~ub F^e_3۸_!r<u_!r'ߋF.F.vNN3^[YZ_]tuڀu y\s\u\w\w\6u\6s\S6w\\y\y\w\w\y\/=]E]77KKapF.-0n\JJ@@qq  JmJ5@7:<<3P/XDÃ>u]ut謳øÃUPȇFFX]MB3=>44=QW3T_&MTYCC=>443>>Q3r&<&DY&&D>3QXY>>??/G2@XtG>\\X\3ҹ+Z\V\X\Q43Y&D&<&>`\b\3>^\>\=0>^X[YZ_^_#%!^$%!3۹>!CR!Z]&? tHE+l\>]u ^и1!L!C/iDS0!=r=cv9P=Xu=r(eP !XL!3PRCL!eU"Ըظ8!_].h\.j\R!&>uSR!S&_&G&t&G[&_&G[.d\F/f=ual/<t `_&;s5ealf<:ut.Z=K . For example, ' the following statement is handled correctly: ' ' IF ERL = 100 THEN END ' ' Line 100 is not removed from the source code. However, more ' complex expressions that contain the +, -, AND, OR, XOR, EQV, ' MOD, or IMP operators may not be handled correctly. For example, ' in the following statement REMLINE does not recognize line 105 ' as a referenced line number and removes it from the source code: ' ' IF ERL + 5 = 105 THEN END ' ' If you do not like the way REMLINE formats its output, you can modify ' the output lines in SUB GenOutFile. An example is shown in comments. DEFINT A-Z ' Function and Subprocedure declarations DECLARE FUNCTION GetToken$ (Search$, Delim$) DECLARE FUNCTION StrSpn% (InString$, Separator$) DECLARE FUNCTION StrBrk% (InString$, Separator$) DECLARE FUNCTION IsDigit% (Char$) DECLARE SUB GetFileNames () DECLARE SUB BuildTable () DECLARE SUB GenOutFile () DECLARE SUB InitKeyTable () ' Global and constant data CONST TRUE = -1 CONST false = 0 CONST MaxLines = 400 DIM SHARED LineTable!(MaxLines) DIM SHARED LineCount DIM SHARED Seps$, InputFile$, OutputFile$, TmpFile$ ' Keyword search data CONST KeyWordCount = 9 DIM SHARED KeyWordTable$(KeyWordCount) KeyData: DATA THEN, ELSE, GOSUB, GOTO, RESUME, RETURN, RESTORE, RUN, ERL, "" ' Start of module-level program code Seps$ = " ,:=<>()" + CHR$(9) InitKeyTable GetFileNames ON ERROR GOTO FileErr1 OPEN InputFile$ FOR INPUT AS 1 ON ERROR GOTO 0 COLOR 7: PRINT "Working"; : COLOR 23: PRINT " . . .": COLOR 7: PRINT BuildTable CLOSE #1 OPEN InputFile$ FOR INPUT AS 1 ON ERROR GOTO FileErr2 OPEN OutputFile$ FOR OUTPUT AS 2 ON ERROR GOTO 0 GenOutFile CLOSE #1, #2 IF OutputFile$ <> "CON" THEN CLS END FileErr1: CLS PRINT " Invalid file name": PRINT INPUT " New input file name (ENTER to terminate): ", InputFile$ IF InputFile$ = "" THEN END FileErr2: INPUT " Output file name (ENTER to print to screen) :", OutputFile$ PRINT IF (OutputFile$ = "") THEN OutputFile$ = "CON" IF TmpFile$ = "" THEN RESUME ELSE TmpFile$ = "" RESUME NEXT END IF ' ' BuildTable: ' Examines the entire text file looking for line numbers that are ' the object of GOTO, GOSUB, etc. As each is found, it is entered ' into a table of line numbers. The table is used during a second ' pass (see GenOutFile), when all line numbers not in the list ' are removed. ' Input: ' Uses globals KeyWordTable$, KeyWordCount, and Seps$ ' Output: ' Modifies LineTable! and LineCount ' SUB BuildTable STATIC DO WHILE NOT EOF(1) ' Get line and first token LINE INPUT #1, InLin$ Token$ = GetToken$(InLin$, Seps$) DO WHILE (Token$ <> "") FOR KeyIndex = 1 TO KeyWordCount ' See if token is keyword IF (KeyWordTable$(KeyIndex) = UCASE$(Token$)) THEN ' Get possible line number after keyword Token$ = GetToken$("", Seps$) ' Check each token to see if it is a line number ' (the LOOP is necessary for the multiple numbers ' of ON GOSUB or ON GOTO). A non-numeric token will ' terminate search. DO WHILE (IsDigit(LEFT$(Token$, 1))) LineCount = LineCount + 1 LineTable!(LineCount) = VAL(Token$) Token$ = GetToken$("", Seps$) IF Token$ <> "" THEN KeyIndex = 0 LOOP END IF NEXT KeyIndex ' Get next token Token$ = GetToken$("", Seps$) LOOP LOOP END SUB ' ' GenOutFile: ' Generates an output file with unreferenced line numbers removed. ' Input: ' Uses globals LineTable!, LineCount, and Seps$ ' Output: ' Processed file ' SUB GenOutFile STATIC ' Speed up by eliminating comma and colon (can't separate first token) Sep$ = " " + CHR$(9) DO WHILE NOT EOF(1) LINE INPUT #1, InLin$ IF (InLin$ <> "") THEN ' Get first token and process if it is a line number Token$ = GetToken$(InLin$, Sep$) IF IsDigit(LEFT$(Token$, 1)) THEN LineNumber! = VAL(Token$) FoundNumber = false ' See if line number is in table of referenced line numbers FOR index = 1 TO LineCount IF (LineNumber! = LineTable!(index)) THEN FoundNumber = TRUE END IF NEXT index ' Modify line strings IF (NOT FoundNumber) THEN Token$ = SPACE$(LEN(Token$)) MID$(InLin$, StrSpn(InLin$, Sep$), LEN(Token$)) = Token$ END IF ' You can replace the previous lines with your own ' code to reformat output. For example, try these lines: 'TmpPos1 = StrSpn(InLin$, Sep$) + LEN(Token$) 'TmpPos2 = TmpPos1 + StrSpn(MID$(InLin$, TmpPos1), Sep$) ' 'IF FoundNumber THEN ' InLin$ = LEFT$(InLin$, TmpPos1 - 1) + CHR$(9) + MID$(InLin$, TmpPos2) 'ELSE ' InLin$ = CHR$(9) + MID$(InLin$, TmpPos2) 'END IF END IF END IF ' Print line to file or console (PRINT is faster than console device) IF OutputFile$ = "CON" THEN PRINT InLin$ ELSE PRINT #2, InLin$ END IF LOOP END SUB ' ' GetFileNames: ' Gets a file name by prompting the user. ' Input: ' User input ' Output: ' Defines InputFiles$ and OutputFiles$ ' SUB GetFileNames STATIC CLS PRINT " Microsoft RemLine: Line Number Removal Utility" PRINT " (.BAS assumed if no extension given)" PRINT INPUT " Input file name (ENTER to terminate): ", InputFile$ IF InputFile$ = "" THEN END INPUT " Output file name (ENTER to print to screen): ", OutputFile$ PRINT IF (OutputFile$ = "") THEN OutputFile$ = "CON" IF INSTR(InputFile$, ".") = 0 THEN InputFile$ = InputFile$ + ".BAS" END IF IF INSTR(OutputFile$, ".") = 0 THEN SELECT CASE OutputFile$ CASE "CON", "SCRN", "PRN", "COM1", "COM2", "LPT1", "LPT2", "LPT3" EXIT SUB CASE ELSE OutputFile$ = OutputFile$ + ".BAS" END SELECT END IF DO WHILE InputFile$ = OutputFile$ TmpFile$ = LEFT$(InputFile$, INSTR(InputFile$, ".")) + "BAK" ON ERROR GOTO FileErr1 NAME InputFile$ AS TmpFile$ ON ERROR GOTO 0 IF TmpFile$ <> "" THEN InputFile$ = TmpFile$ LOOP END SUB ' ' GetToken$: ' Extracts tokens from a string. A token is a word that is surrounded ' by separators, such as spaces or commas. Tokens are extracted and ' analyzed when parsing sentences or commands. To use the GetToken$ ' function, pass the string to be parsed on the first call, then pass ' a null string on subsequent calls until the function returns a null ' to indicate that the entire string has been parsed. ' Input: ' Search$ = string to search ' Delim$ = String of separators ' Output: ' GetToken$ = next token ' FUNCTION GetToken$ (Search$, Delim$) STATIC ' Note that SaveStr$ and BegPos must be static from call to call ' (other variables are only static for efficiency). ' If first call, make a copy of the string IF (Search$ <> "") THEN BegPos = 1 SaveStr$ = Search$ END IF ' Find the start of the next token NewPos = StrSpn(MID$(SaveStr$, BegPos, LEN(SaveStr$)), Delim$) IF NewPos THEN ' Set position to start of token BegPos = NewPos + BegPos - 1 ELSE ' If no new token, quit and return null GetToken$ = "" EXIT FUNCTION END IF ' Find end of token NewPos = StrBrk(MID$(SaveStr$, BegPos, LEN(SaveStr$)), Delim$) IF NewPos THEN ' Set position to end of token NewPos = BegPos + NewPos - 1 ELSE ' If no end of token, return set to end a value NewPos = LEN(SaveStr$) + 1 END IF ' Cut token out of search string GetToken$ = MID$(SaveStr$, BegPos, NewPos - BegPos) ' Set new starting position BegPos = NewPos END FUNCTION ' ' InitKeyTable: ' Initializes a keyword table. Keywords must be recognized so that ' line numbers can be distinguished from numeric constants. ' Input: ' Uses KeyData ' Output: ' Modifies global array KeyWordTable$ ' SUB InitKeyTable STATIC RESTORE KeyData FOR Count = 1 TO KeyWordCount READ KeyWord$ KeyWordTable$(Count) = KeyWord$ NEXT END SUB ' ' IsDigit: ' Returns true if character passed is a decimal digit. Since any ' Basic token starting with a digit is a number, the function only ' needs to check the first digit. Doesn't check for negative numbers, ' but that's not needed here. ' Input: ' Char$ - initial character of string to check ' Output: ' IsDigit - true if within 0 - 9 ' FUNCTION IsDigit (Char$) STATIC IF (Char$ = "") THEN IsDigit = false ELSE CharAsc = ASC(Char$) IsDigit = (CharAsc >= ASC("0")) AND (CharAsc <= ASC("9")) END IF END FUNCTION ' ' StrBrk: ' Searches InString$ to find the first character from among those in ' Separator$. Returns the index of that character. This function can ' be used to find the end of a token. ' Input: ' InString$ = string to search ' Separator$ = characters to search for ' Output: ' StrBrk = index to first match in InString$ or 0 if none match ' FUNCTION StrBrk (InString$, Separator$) STATIC Ln = LEN(InString$) BegPos = 1 ' Look for end of token (first character that is a delimiter). DO WHILE INSTR(Separator$, MID$(InString$, BegPos, 1)) = 0 IF BegPos > Ln THEN StrBrk = 0 EXIT FUNCTION ELSE BegPos = BegPos + 1 END IF LOOP StrBrk = BegPos END FUNCTION ' ' StrSpn: ' Searches InString$ to find the first character that is not one of ' those in Separator$. Returns the index of that character. This ' function can be used to find the start of a token. ' Input: ' InString$ = string to search ' Separator$ = characters to search for ' Output: ' StrSpn = index to first nonmatch in InString$ or 0 if all match ' FUNCTION StrSpn% (InString$, Separator$) STATIC Ln = LEN(InString$) BegPos = 1 ' Look for start of a token (character that isn't a delimiter). DO WHILE INSTR(Separator$, MID$(InString$, BegPos, 1)) IF BegPos > Ln THEN StrSpn = 0 EXIT FUNCTION ELSE BegPos = BegPos + 1 END IF LOOP StrSpn = BegPos END FUNCTION MZ  bm2U WV~~ PHF t u PxP"~u<F+ɋ^7AG u~vN~ P4~}+FF^ NFFPvP+P^_]ÐUWVFFPعD؎;u+t PvF^GSF^̀FP~t5VN ً8t Aً8 uNًvVTPRPP^_]ÐUWVP66FGPUPNu~XP6~+P^_]UWV0FFFPPRPP>t >u Pj+Pa^_]à*^_]ÐU F8FFFPR]U~s~zw~ar F*- ]ÐF*]ÐF*P66Y]ÐUWV+v(>htP2 t PF<t t+~F^_]UF~|~~~| ~]+]0P>s6PfU+PPPFFu P&]ÐU^FP&]U^P]UVWnF^NVv~ U!]F^NVv~ X_^]ÌUFV]UVWF^_^]UVWF^*_^]UWV/^_]ø0_!sø1_U!s3UWVFF~ FPGF<%t u~^_]É~FF=ctU=suI^7~0<tF< uN@PWPk< u P*F<t*͐~Fp^PUFFPFPP~ u P]U@FFFPn]ÐUBWV~ uF ~ uF FF~ 3щNЋ~ 3IBVF~~ vF NzsFFF F9F}&+FFvF NzsFFF FFFFFFFFFFPFPFPFP/P1F^_] 0!<s 6+rׁs3P L!6&6&ƱH66+۴J!6M~+3;&36n6l6jPظ6P%P0!O5!;=%!.M&6,36s6ڻ6M&,63&=t, .t 3uVtHVD!r €tV@Ky群U~~}tU쾤flM t ~uFVt>!CFL!;%!>xt yz%!;s OO ;s EtUVW F͋FF<%t <&tF FFDFDVFF~]MUuu ~ ]_U^]W~ E~]MUuE r3u _^]U^_OW]UPe>~t~PS]øV3B22Ut P,^Ï8Ot)M&,r33uGG>pыѿM< t< t< to tkGN< t< t< t\ tX<"t$<\tB3A<\t<"tӋѨuN< t+ t'<"t<\tB3A<\t<"tۋѨu>jG׀+ģl6?CC6p u6M3< t< t< u uy6?CCN< t< t< tb t^<"t'<\t3A<\t<"t\Ѱ\s"N< t. t*<"t<\t3A<\t<"t\ٰ\s"3&UUM3ɋI6, t&>tEuE@$W _ϋ.n3I<;Ct~EE uN]]UVWV;t@t 3_^]UWv t3I@!_]r3]sPX]s]2âR u#>Or <"s < r<vטGÊr59s%PرًM+ËشJ!Xr$H.ËMS Run-Time Library - Copyright (c) 1988, Microsoft Corp %c System error. Incorrect DOS version. Network not installed. Command operands incorrect. Command operands incorrect. Name Type COMPUTER NAME Computer name already in use. Redirector is not loaded. Insufficient memory. Incorrect Redirector version. ^mj1Gf@(#) Setname.exe 1.01 Jan 1986 ;C_FILE_INFOtC  <>R6000 - stack overflow R6003 - integer divide by 0 R6009 - not enough space for environment run-time error R6002 - floating point not loaded R6001 - null pointer assignment KWAJ'9%"" Fp,]WReYV!ÃJb!fe9E S!IdX^6hk~Hy~n~wN7kYcwNÎËjz{n{߫e90z0U"pZ8~G9T7Ewyߔ(zw[ppf>ZR`uef>)73هsIeNF'sF!UkT?, <1$ Di'c:V*a0#ֈ|9X|2+3 ;kk$^;VGM7L@ʞZCQf֖FmAg1[婍[ŋ7l+n)Vu=O 5j#-$U,BrȝЪ ?j, Fh³3a⒏07QK%*itܴ޵5^M.FH÷lǶ>{  x$Wta*&m^0{P=UU۟.dXuBܾ'·Mu b9Znc,&p{<<xA'ͨR1k=Z+?sf ֙rYЏZUkc8ЭU ЫM|#߇o}Ȟ頣`?|XodHgB} 4,eʾ]?wu瓋#s:+Xޭe_#EM{O%.8Iܚ)<%ؘyݘP0w{D׻Hp:bݝ.j۳vS{qT֩+C%jZp.<Z+"lQR-}Te-I]莑$f{:[)&˅XFl#wrAr4 %f#/S$PE#W2 Zͻ 96Cu#O+R_R:t4Vs0w>I7c}chd6N ܞm,a[Rf3Hc1 _ z@&H#6߯+Ͱ4jWw[[0`ⶵOiA&,$bMb?\|$ڎA{"LX+CrvL#f.a1x[+]s2_7š؆nXڨb{%Ix( å(LdB 9aN<|#Ygz$xrk I=KUGs0mvr\,i VW}ܚGYK)PIY쏒bB81#3aዠ_Ѱ,n<).O4K`G=Q=(d_,;10Nq{ 0Ȣ] p]8'/JO揄~ 6Dcﯽ#[O!!= n:pf-\mŰ-o6h120#G2ĉ#E7gbQ> /pZ4a)8|.kMMҟRKb&,)yƫhd( WtH-# [cj.XL@ L&:'I 4"XbyX TNsy(+18 -4ͻl(YOt_& Rno9RzF2h,wRm2M5on<qm lUE|Dv/,7d} EU6QӾgV([DfC{켢+ OCҜB>_`<"}G5 /ǧH_5ɩjg22eY+A6ҲROɻ yQ\1I~Y¹x!&5 &ه[7~ʇr1x}b窋/4^֗4"L4B |ݐN & 9ES^{JOgS쩉O."1% ?*Z2!*> A;g [e\_^q$@r8V{ءkJH,;'Q%p]JCl%q AJm{yQLb\beؔiG< zDv󹛞 })m0UܷȊ&_ErF_y26rӥMɮ^bl: RQ_J3m|!o!2[;w̛On$Go8c@m}# ݀cW^M#}7w&E!{v:C51TNL$Fۊxq~z#oK n_M:^¤ #|;oyl|" X5bqN"fUF6i.j _$R0Q\ڤH6J\ 7@= M`l%>(;Q׳(^N1c's)2}!4"1R/ ٻ8]]gB=i].'ꙺee{0ARWx={x$age(( q v@oxCXdJҽ1ͫE0#5~b着7&-iSÃޕmsR>+!q7@76sRէJr`Ӗ#u 6j` pgWp#LkAE@KWAJ':2! EPPP` J5 u6"7p܉A]k&ڷo`C肸ݨpۮ$ۣn:îߑÙKݬ9YyzØ[zíÊ:Ky]Hp~ ߓݺÒݶ~z70ߔ-ߝkTTL8$’uL哸,!e(xwC X9@r5#jgnNw|Q -,,mڮ&Y;ea5˳j![.AEQS[S; GKRX.as/k+V-ubji_ac\3P؆jY|Lau}B`D#URj D1fH5W/nu ]X%$oo!+f`I"ojUYI_ilќ_lbm+~5ew9xB4XA0jq`4E#5;y? 'm3Y&Z6mR5 W)a7Fb%; Ef8D.)/uw,:&'1?vsÜzJ0^ u1 b~2F̗'["\tκ ']%D;!*b栢W ʟ ζx/. 9PH+jd_aD)CK }ցf 9ڲk!z~3\{:Ѥ& [fm3eqhCHgh2CŠiէ~x{RnrCpFKE-[Tq S/%P0^EsHA4 xq`qBaZElo#τ7[˚lf8$4M'.z|`Pxg좘ybMjU,V")/klm[SVv++sҳ8U^1PmIFNOn؏.0R5ցElEFA8y/Q2Im*%=*fA`fW7Uiftʆ^ pMEJa;(s.:\4y g0q/#ÁXwtek2ffRϕjy 6q:׮U+(D We[D&h69#Nw>ASFVk3~R L"h*R*AM%P[l>PQM: w4$Gߎ&rXFVݎ ;* `9"kd fWp;ss&eϊ S]ј 3,0soazrLDcӹu\E\9Z\9pK46C'D srܪ'#xR54sT. ʺl/Wu⮲R CzսnҒw|3R!KCoL6@3_||lUϦ[e8<+bзʸ`nCTMBӫPiaNNf.5??<*ʫSP\+fQyHʉ5:)ȁ+w#S}”D^%%5ߐ,5f2\ӘԊ~CW .Xr貚~Ef_5Iv d{|X3B`.BB /)]~˓. zMZ/ܙabj,0< @PR! gsg-Όu SZ— 38W!S4"`Ƣ2:FjZm;R 0ZM H-d8 MX'$F"%40Ej57Idɀ:իy#[݋)H;jIKg$ ʓ(SA3Qt 30,?U,ES8稝BKVΧ^r_ju[b[NKLnӘk_`S{TitT&eu#u5&>\ fvUwwQCۿ*0NṄAUou-mݒq2>VbhnPzimF%LI*41XhyR-SPUiGJsE_?^wޝSS+^ܭn#W%'_ ߩnZV=@nV:D0)7#iǞAsN=,W )?!Hkb:j(X7g"N|f-iB 8 v U\kKd^>[N9(,i M`ӀWf)9!)(h^Wt5o(<*IDb I>!c:CB׎5T[%'3%P0b8 5+A{ߧ@ĻJ&epHVث-$V% a|;qņkV`5ܛثeށ ,tg,k7[I_3> $ㄸGmrOΧAukثN8,h<``|rGR=8Bco]ۖz΋d cX}r F("w #'nxKhժO b7d? r& H\')Va4idDc IODkHf-fzoRCFYnT} TS5>-I'U!| >e])ֱ>E^s3)''H_Kw&ȡ~+7uNwΑDQYLx5_"GXZ~Nu;@W߃<+vR2YIߑ~#hHż+7l kjX\?A~K_`ŻFR7vAkNyPF:cX1.`v+BwxO@ȇ9&-ڛ;O!7M~ B.yv[ߛϛǛnGx:q‰TI ɟP! 0A_/Xifjfv^ׇl~~knM+َ1) }#Pz4Mv4MHWD)s~uGs@vJG*j: L 9.e Ϝ7W'%uo=7>jm~zXOٮhm,sA~#~?OH<OfCoXN4#d!Ӝ[B|چ/BzOB2qJj*jiT6ƷTf'ycw #}|րP_53zzQ3F%,b{P"ܶwwy( 8w-ӆl/pNɼ"ıl2GI":Ao}\C[:\[,'ߋGC<ʼne9K0:vjZYi p?fS"5WM.IߕEl`-甥#[r.~ GH>oe'Fe#U3:!Uh$zm ]XXҞc~ج䤽<7=2%Pia*9|*>#NSS|K jo ܀ELؙvNs~:V9116h$ثQ]~l|4et&wmpkA#g3Yk9⪚) ʙ@E'~{C5>n{$xަ6++z׷E .zLHF;b3еLv{kכo2v!p]w#g7#bWUBoddG[=QPB{B_'B>t<LK/_>ILuO.%踗=@|YkDžrDKC N ۞UƴG۞]%0l CbZ. ,L| F{GhW~oZx %^ (5V]J(q>iWsArֈjäŶ_pKB`C1H*8V."/PƦ6o*U%1|Q{ Ol_ ZFAoY9>;xqeJň3 ^AR _Ͻ ~G #L4D? k4 JЊB0NƄ.& *'A2qF4i@xM{ާ9>ioȆk+ Yq""LIeoE)P+"<摏4 &vr*`s(dV:R %M Rgg穩 MLL5443s0ٳgH E Ng".#C>$^~xȅ1$Bo"?{HP߿Rb,ڕ}â 1[7gJtͫ "+[_`?0Х1KA(!f#q+KA_DJvt"01g#'i箓3h;`o}apNk+h7_1{ <uW|s~9utN(pKWAJ' 2! U` 7SeTWe56pgAδn0|0q7`n6+H.a] t[q t8pa3 0q ʘrAu<pa/\uӇJч6a=p][q1E/K#oSq._2ChgDd$H^وu 1HU~]Zc(U`*k AuETk1P(1Vx A)OuC c,+@˒үHxUJqG0AmXX!" [50pnH yjiCZ c>TtVe";/(3Uh Y0MIPB27Q8U-`͕'(z09u [ڂi|v!Ҩ?dȆb; {f(A2I@ LczIV86`|(&&W+v'plZ;UJW?B*CT\$@?7Jg:GSE-QʬM>ER%0#R[q!@8!W ^g^x" L:py%s \=:lt%y3G*|^A#}gNKy4!pMmv{w;j[y)-h>mL  43Ԟ tN$_hH.'z #TyWlhle 3!$?96br$ܔ[..ؐ[&d |O]mxmNg@hkp"=Ez '!92ihlmZrhwG$,1_͙#LUdwLn}3]v)3 RR3>)!Uُ?/ SUTI1B5#.rҪڢ yMsmjU P]WcjA&_~#(x *f!ʣ{#x_*I?K ܯպJiMWʓVQk2Z"Iљ-krZ" h˝w?o=kXͿeoh`Csh˗VW66~ƀ w ޴I`0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `?xm孛[M.usڷ/gnkQvׅ++9rލ;]# [[Q qrəm{[VD:6r$hHM @WePf*ŕ-,Ұَ Fpb@T]ԯ -(_!ݥpC/!:(۱b SiB#q #PaRNl 'ӝﱉP[I\[@&@*;GظocH3yaܨ;B}frù5TR۱:|؎''b=S/n I*6`3mM)ܔ'xˮT~8㢻 ƎOP:TAo{@T?Jc`B2(Y΢ɚzng1&SS2w6s Ձ3;F΃g[1gkY" 9Ss;K] ~X>k1L/Co77>sFubDfj:;pLQ@(STy@@Pxһ_q___h*;iwЯlܥJɒWLHfzH֟* `j+IHevnCyIJEU/Z>wigـC,F yN9i:e17`oM *V.&)Z&$Nۊ}h&ىK p#Λ0}R&freh̜LIDϛ2} 4@҇҃Nzw!1O;ܭTo$qְPڌL3}@mM}$%(.*CFV]cs}d #9OY٢pYgi0@]#lY\WzGcvlf{L>nȣEZ?6)ƚI[#Km =~8}'Q'Pq WV|S#?rk~ J:Z=Q)Ә\'CncZ|_:M||r|ο^SP/J-E/ l.F@l{ }’]ϐz`r$*)ͫ=AsmK#91E{onx" SB9+Aٲs'b4}1磫ZxK3/K~X 6P P;Q i_qH$_.'G =R<@>Pmok=袇Z@EqəwZ[tr!\4THI}I0C@',̤[=LP5 z JЗ?v"Daqj,jNr[h$Y#HZȖZМv)d_>Cn~5gB5c DEQ+l}ЫjOpC%(d3,B ׃>ڷr\mD-@|6cXHd!3/8tPhw3^X>="7ݜ&s7TnN.U$#%|Z\qvQA%E 6Bn? b ۴LDߘ|Ra-W_|JEOm]uvS/µND [#K \֣!9Uխ3XN\ݐ]=*n8ż@]" š? *S&@KUaLL~"dXf3˫-֘58L K.g^v`&C_cB Ł;ƺ]}0Py9eh(Px~I$c/1pb}Z1g}4iR1 C))\ͯ_Q7qqa>TKMrQv^~0%7N~ 9Ã{ U+!; @Rgl=[mͷu}ob^;|]1 ib[Ѕƴk]q V6ƕÖn9 #t  3܅ej(. Ka.: "x2ѝ}Iў}^v0hEd*ƾZAE-ض*14X)t/05Q ;:D̐8{ńٞh²_i?yj2{^7@JP T#us`q(Hb}X ݮ׹ M#N^Zh$E/M- ĬB /=_ұyF,Mj"?_0G^1`^%6<;dy^!HB3Xk(Ik*U,+0{{9TC5I׸9x0x,jmPK`.`}݇Àk 4"dj)## PtL"̇(aeRM@5gՕkr4t:Pt}n Z$tEm5JU9~-+{%>H0 $"FBBtۧ Z|>)ZpԜ= gW3ɨ ϩ,"i:@#"a2I0d rLFI=rtZpJtᝡ\gʳJFWcffd [& G|3Ē1Q$ Q60p̨6Vc- :u2YZmrZҷx}%•2a™)3o@wucrZˍ\(>F8?/TEpK7$TܐCץ́deX dqqUNFiKq.Vrh'` 7cϲ{2+UnzLq ޗ)_cv19K ƇA/]}_qhzih*:͜W:ЯuQL=1|GVGƌT c^ע\1- ~ˠeُțhVE]L.t@Lq )in*ՂKeQRJ`SB72N4/-|E?GS-Yx?ĕZmq$z|zXd<.7lx@C`ͅlm.k5=^ >p'KV ?sO=&qw)sb'oUlV+n pbW'Ҧg㊯O󋈠|+Y\ s:9XbؖN"عd4`98m &U3/~ʃ0D`ZS$zHHU={w0GzPS 55/ȣ)'=i*!q€b4|qk)_5ڝ_F%dnv14>yVf j#`Gmӗtgqg6G||%Z+3c sffx } JUB!+ I]JXS]PWG:N =+\1tK)&J҇ڠ9~_;C'0RWg`Oٹ`w :ҿe XE prQRBc'uvM0ߡ <hf\[Q7~%tt\T]uoWdE{À35{j'?;yf.M<(pӚآ"7>(Gp4AW}R=]60bag )Ӥh'4KgQ[] )p;ϳ ؅$ױ eNμ# 5 O{J(7#n_T΃02dux0.9?ڐCEGOw_ †|hI~lG:_x|+<=<2"cX客tRUn,szhtd;P&cN=)ɱ>gEkDC&ҜA"6bD2Ԙ6,*EOrҟg_ʆ@P)4sx=P]?13cH[vsR~$+M/V͍9`;0ܡ-A Á&B*Y Bt xaqME u~k[%l>aHݞ[%}Y|x7 yfo8˿&sE!W-w{ Ѭ:sc1гZ̲@WNg1݌L0iVkB4u@:SCH[Z YP`M4F< U5(94wIH1|A,nf/kǹ]/\Gx ~X{O>Mdv8@&?d;!lќb>@TW=ANK >>%gewJ 4x[Mq[ %lFJiu9mH`ʘRǕ%xGZQ#]\]`H BHtFA0fLMHv1*:<"1B-Cs ^trGc_Ab{j  _"NԩV[nj ,%h0tTDPXm ka@:v̑㑦nezUHT <[$Z I>S .4M%Q-$Q$rNy0MRApAz]zq Cx8G<ٓ\A Ԉ505HAaAoԐ!jE$g&5uyl& ׎/Dr'S v]3Cl50-ju óm[uTT_G kс3CF6-4^ӛ2e5HHw)r}oDs9c3e'ViEQ鼤LhS(c,{G)\KŚ@M_@un$=5GGg<zBPz aP g4pzBy'j_{-V2Z??u:DK I 08Zp SBT|xAK0HIUNi^,s R\ r ;+RȀ2ZX5"I\U*ITV xx?[oc鳵3/O/u ɛDPbk7\&FcA'W?}0yxߙN9c? U,ex[|\)}IOK(;o %5OjrVKbxYKZՐ}ZA:؏RH} N"2ޮe%I'AKGp&_:n9꽂-ztA ^_Qfs)F=g3.ξ23)CoG G*@\o"PSͥ@ :&SM_xiŝ%v<2. 9{×Y`l 2ro SG0\f&?58_q<[56}z`Κl*3ibӤkZ=hFMƛ!?b5YkKlRp|CxXN7{́Cdp'tprb=ַ@xc"^޵vj[F5ۖUF%uÀEV^X.RCo9>$n7ob..B&^Qd@4ce)ZJ)M j%C<-D$ۘT_<}q:d!k&`obo}FK֮N: 5ok8@ɂXGgI85dfwgvZ{0}VoBcDB`2D\E ۶tG}\3B/'* rUh.W]$]mvJiNv\Da;(2>!v ibz0=[lJVIxhzHeykOf`IG;9 ۦ  d_}~ޮUd^z.:W.WY"c5o,O<1=c-r(2=a, X?UR˱'O !o?ᬍq8 8<㛏9|ZףVȱ8ϻ8 acD^7gorq2-r[)dBBUe1~҂տAyu!lԵ0R24f[ Ƶ'jFK@N˾lt,i)= z3HqnGi; y-Mx$r$w["l˜eno ߜ& 8#5(A1P?e$YWNݥ?j?q5 " 41:v[\Ò4껃kB;JgAE\@VJ3V|RVuɫ!F\.nZ U#+IUtk%P 'SMRcRqU1\z}  snfwWLV`]!9GC|= 1&x,dNb]8ӇoΌ:JOIT UBTDj8ϳ,&Y?ԊJN}PV@"" H~$t_<(u6{FH6'^a%! WhVLAZ5qn /{OE|__`3&[[XmI"@BiyuLjƻ Mɀ8 [ ]s 1.x\pMdKY$>=ֱW8 3=Xdjǀ.d)V*ƽgj%x\8(mH$k>Rq,h\x6 U6=L fB˕Td i=, 6}}[dʤ]lik& 4 ,mf x1vn!'b1.5oeеV+LKoemOWhC=]ݖgݳm;VvɅ,]ZՉ,r~ Meͻ/a#ʡ瀉$=r)kHd_ɡ6N~}ŞCFOj w_Rz;=+wS[S.^̌Fx̄RE廑G*m}Jkܯ1d1c: _.c#|#H0ͅMK--݁dSD|0r)@ҙ *ˆ|Ž.ڝe`[]eӘ%uV9ePw3{rێӆi##=tjB11G#€{G["'XȽ` :)Z,8#G2֛u](Փ2`wLϦLd˘eֶc)nH' lhI?1YVucT h19FLLyDM6:C*3Ϟ'BVso18!)`(z(fW(CŐ+CNd҉Áwo3mX =%=UůxX.AD<kւG b F}arDܱ{`Ilxn>tᗳ Ix0m3Q{ni}χma_ ~f N$eaXvf@7Bi ri(F<,=iQ]Mf6*v8&C |: ݵGl0FR;?Vɣ#Və TNoT[tP͂6 :ƮeBNr+\g1 &mbsހӢ:^5kDdk#:"^ YŒ)beɁ&晛k|TC!2=Vt%W Eh3$`E2@*䰊<6n+YD`T8lB ֖}kHDޜ<Ι`AmZ +93"svNv[O1B }d܀Γ}&MPeg4f}"EyN&tP#q`Tg2d_I][f;NU>U9WCYľū(VQ80#xoJ 'tU!4RiF)JUIs~~a:\\4Й֎3u3u3ms/K!ȰlXe xcX1e;zԖ?^z2% Rt&L-0тFqRMh53IME陞_̽ _6;b:}a㏊ 㳶3kb_Kpyttne D'@ ɼTv`@Vgv ꣙r}€X-n$5?ܖuЀmyՍ†,njrFpG <чރcOg$|LD4pB*H- h:}Agia+9#+S6 #yTȍV}F('N4.nG*8tb+{:8utѼl.L_9^ ` OAz.aMpk*Z&yj܉6Fc^lT>ѷ;a\0j\45cJ ,`( b`!}Vzh| YŢK {㙉 n;mXw/5ޖ15Ű|_/|k#D[R4jk)ç9<~m:W*dXb.ܥ~!*0DSr&9U(`x!FzPƊ]QEц^<Ҟc襍N#_:.lM~@VKK~x'rk>k3Mp?ͩ7WVt(\¹{:~؂U3wm$!d 2a e(KVkVt x\ޱu1E xl#Qe||3GvM d:#Y,,YYx. -A,h3A fB%zl ќٷɀC5bg)GY孓82'_ jC 1 V5a;8j?8 E^J0|R -ߙDIͰZ\q/Rw6j] oKx`2Ҥg_8цА<A@Z£ft:m!G$;+̋ +.ڬ`eeIg5~}YZKl g4w}LOgbbBl}+g6ł;?l+:ldCd9e0[@SA>n"H=+ L"Ig9_F\EY91Zm=mAXuzྃd_-澃dT(n=lRDh׭lKxT+)nS摛#.њ):jg@[NmF"'}/(>%=*qf&C-LIi0m9>;͆cReVXaHn=/4"1Get~X;Hx^F6 |,|XۍVP* !Hpu&zaKe*|w1GQ~ thG}+X˖ic= z3SEDB7SM_=qӆoҟ FW3(^3! J!IˬhGbd!'& 'u3ER|՞#YHEZG tI3#q xKnG;S7s)bOàiku}$Uu*@L)Zό 4Έdd }tlp'} ϋ^M(-T)&F[w69urk>^Aʨ@U w)5n' lCi >⥵Cks(rƓ'3VK-6ԬFHD^N+qs\ap,*!2VJ!uL$\֬GꚇU2P>;q&%慀WKa__V*(gEUyu:_){o#q~hFLŀ)XvVZQ|~uXs&@"`AfMM,kC=E*ȣoVZčf6 9,oNM;572VrF ̚~tDĄOv:g}(Jg7C\oL6CkɵOm]g@X~HWwZ *!ǭħH}?ʊf:Cm4 9lbӎ`[3bdrX-Y+] АYK>M)O7cJAꔂ+JS~({*{򘹮L̕d㓞+gTr{W!RƩ@}, ?Xǹ" aK2~C2-lKk1 H(RG;%^6r:A&90(r]}=S++e!Ō0%5?/F!Xqyz8g g+4'z EfDDeʝ8mHMN$,oWeL(~V56\BGk\sψ8N>^dSB?5K405-*68/h53֓>*5&pT`zRs|FZLiD+fjt QOnm}un܂M:AcBGR@ҳHw#Ti@tEMr}̽7L2Dtӓ;쿨 :zL?D^4XDVݝeyܽ >~ʝ?}6 ;R?J o|AcL2bӏLCjen(]ݧƸHw髻}؃T`nhp`|+Cu%/eu` "'CC%Ƕ? `1l6,/;.$X2h;0-i9k]8mU>S8uRroo57OAMJ*ޮ9 i<h(σOg.nT?9׿:]DHZ>zg!N,-;Fo0I-L4:CrRe$MxH;<VlNpFOC#,HWkWױLWYNob]=R{e{ 0XY{2! ^KkICqI;#ĺhFdP"dn L}{ڡ;ZL++WV5dmz0{fzƠ1Ip]dl(znbOkǎKscrCn !msĤOady̜ǜc23e34>6ɞ1X;)lΧE뢣]GQG[GpEԁww,l/V(>;߰9kzE2/A}#9dx+xY0>ڰB w$E@ΰAj@U{fH¯Cp)Y]Ă=IX%ǟ εmzP_9s*lu!}yK[r34+QMƠy#R %% n4jw6$A&$yQrWZ3Lql/$=\(ߤ6k#vI'&Ia~2?9><_t655LXw+}Cgp+Nӧ: J3s+W6Aax;CCנ{8Nʄt">SKkhDu0e»AĜգ&DxAWuo9ܣVeApˠAĜu#vkK'̋'"N6b9Ĝ"O߮rQșhM ZP= `(=>f qBRunޚ}rOH쵯 6vy!2`%M¸nɅwk瓑(+۠l/&+uwpB6<{{*eA QulC@@}t<#nym 3\bze[L!Gڟ4e˓c+7t9=Bl%5Aug7-Yz2%6LP%BL!7c7ZZ]dMyW/c%LV RVmUK!W5dGeYyFKȨ*0EOlEkr9sGѯtA??NH#)o8 e--qrL{SަESAQz0F_ѭҚe-ʆ> ~ jU@yNXR:#T?[Co.͵/Lͨe+ E5pbL+HL4xl** ʶM~\p6Mms*C}K"<tIیA6+lbДg9z{O3&uS5/n$q{̡bw%EVL:扂rvM8F ZrWvk:ٷ6վᄄHHLgCd5 }χ `թ?њ4<aS6ҭF/q43ӎ94g-DZ,~YsN*W&Pr&2OJ&@oU \m/2 Jtu 9'.TBg #,,Ppީ"ۼ3N[B/1=Rrˌ9yHcVqC{2G41z5<}#XJǧFuc=&bv/E-൥ CP{Gjjћh`q(Z5 up8*SԤ`n#M9W2KZ.=0YJfpI1Ce >xmL`9/L NnBd#xV3R+1[lh ~ӝ՛%AYY] z@: g@!m'-jqYʿ2w|AciY7el3OyL*/ | rI?esu8׋rȕ`α**(LKUo `|QtdBfu;zBWTyM,"X&w!9 g%ݕB_ZiȬJ֜]do%'EV6J. %V\(x7CnZ 8`L?~;/ ዒ3YΪ#$dhK`\Y̍5â5͆ko=C^ikoW!Pwɑ]p8!"T>Z}dQ֫z(%E .b!E!jʏz)Oh$_mX<&2G{/3K//& vtyV5~Vv(3G q#TFA%|W/6\\.v8+rh:o :zB|V/[KڌOǹΒC6#EpmpUp51Rۛ#}Vsf}3{.ܫ 0h}͠} $! GqG`ڤTzE:q `00Q$tS9PɊLϨ>d.0~ "3،D@*F+/xt4 8hW0)4҉׹ Փ f0lcwJ-yh!/uaϙ|PVI w# hll+l83A#0qPjFQ諗$\i|߻g&㼣. {O>h;Rр2烷6p:#rZ~Pd$Ⱥ)+ęfK^ TVѓTϛjm'-(VL MuC?DX69=iT9z8e-Ԟ&?7כͲƎޡИ܇öPfl M2eB5"|l!mSZzv\u"%wb"d`Zeo[ks}(̇)Lw4J4XMNFe*,Ԕ;a? ^Kz,~2\ypEN7FRj t@܁LKygKp fP0"_8pz{Y >mPzJLO YY˵"}znAr#|?Oc$~V <}\p*cuFfw 03KgѲevuF>NKŧ;<#ɁPw3>>#"sohO-˗r&©r)͝ˍSgei?8>Y㬓2:.t/O]l< KګN1XOX{):nhg_mZ_峵mEkڧ{`Ahieȩ3+G#cLc_ S"KW~*Bqi3h[Ikp^&wm0kbpۓw1)>еez$/#7<lx /H5ݲDO7ZZSy JҠ@ BQLO_*PfWJ9d\ YӇ{ps۹BMp8?o?s7/5}nGqo[vVr^շj۵mڶvD;"pu !ukR3%e! u.&)o8 5>ld;t'Eh>3Sd_G_m|bu\WsU3>e[|; ^Z@e|`{'ջjݵlcmy[ۻ[cݥmD.@*@NT Ī8Q%%'.t2֠M,t >T!y6gTd5{?˖so= z3EFTߓr9tGAMpJ#'{ޯC|Cg.h}~d/Cc5X0HwSK!WN)/АB v@!)FdFnCΐn͏,C./2TGInBEO)3jYd"|-s̭ U!B%RIuiH"R@:մTtӵGar`$ ME\G8WV¸ JYl\B$>>HP:RcI.7b.pRQC\BN%=Y$?KQ1'X1VEQg!R3wggftʩ)& lzrEv$M+_\m,jLJJФvfQgZ7QP 0l0FRn{;\U{D)q8\Ű4j j_K?d>>2)wdZ7iOJ%}w p]e9G+,l6,0BFtVj*#UT'R3Y 1åt )~`tE@r]imoӺQ $[Ng;ɱ< |3()D=>+}9,P@@*xΪ5qZipC1"x l7&GRU}04"L cbeuPؓ?# `R52 J$¬p\a޵&wPxz6#w}^ﻻ{`fƀx$a ub-?@/IRԣ EO4fMZ`PVjLp:J=hH{ Y2IIe 6/n]{QHle1x|C!2!dgkF%?ïs[] qPç8JLDB" H4x{],Yii>sz[ BjV߫obS:;7ޭmD?[pykRt% ܮ&"m嶄o6|*Phv*SWo&?{aJ~@$gǶ2@+.ox7_xRF n)dWE 4OB7OfJuBdU=<#pAMntHKt J%@XÞnhpˠ/ܶXLv54ej8WF_o q rq7T2$587ETnէ3i M(1SdXH?B7lwD5QYijjP378 gxSc= pZ#B+erƬ$WPW׺tu2צjCASE~\ y視3pfY濪P<Y:U4q |"TFPZ ѤxyR-~ oyjgq9fkv(uqlkT|`n}YS9I$_@A}Z\uz`'JNXұG[%iݟ]+ 4.$Ǻx7L@H 0dž .١,fg, zo }E ؈h9Jà %;jV' ~Q1k8 aCߢYytpE^l6֞y-º_]z><-j$;/bBBjx&p;"/G25so|@O!dnz1gYw\hy0x[`70 a;="Agԣ>6>ЉC_[r79^A tKp!K[r!Ysbz{j]T6ujE3(急X <@`BHIJ #B}p|"e Aai,7:Je֑?ht,,nߧTd:k(mGq*X :ڤ`^3@!>`)rUk퀚gqLh_fF͗&fVs|܊3][lG+Ĥ7m柮FܯAkW.6umls> ۞N[ƸpWw`9z+af7V$n/Sg7}z*,jzG-υRDs`5seT -۪a.ʨiN BAئkIB5> 2[CB  fRK*aFU"YpK8A ?@%^:cf7#Vn*lXch~9 D!Gm XGql&JVh6e1-}d^> K0EfF H:Oz2xjR} ]o͛;]ES5*2e!БW0MƢ90$i:qS9Wkl0Mp'%%\+ɜ&X۹s@En^X̻At43LjEJBz{<_ aݕ_MV*/lT%#'4]Y&!QP^H9vŽSCN2!iDMl(ޗZb/zF%G)!z(#mN.}  qe-0sEhJ7@1J{ЈYmE)%L 32 eܘԺ0N G g,-fUt C@tJ [+gBSI^f/Pˠ%wLF$!b+[<X/D' <^/Uq'H]$P)mw@bۥ~n8x`A0zt]гTk}N> >xއdcZD4:C? :& -BblLn9y[&D/2G9Z2.zJ'e-ˆ=M)o(*t}۠=AJ{~a Ij j9:~ ]ɼr2_N6ӊ_ԶW2iąb')Fu:%{@bCۛ䧼7oό]8!Ϯ>뛞Wx5< ݟL hW=}gv䂺]0axQ4r-Tlq<yv2\} '-[S/r=./789ղU39w_aP__!^^!]]"9D\$yQ"P4ZácU7'HTq=F{2%)&OY&Q%9fSnba0aVR7mUZj" ռwIzƛtQـݩX{ r:~ ف2D NfgZQ[pDٻjzfڵ\C4IYQ0^S|j_TlN1}jZ *>ԶR81uL d}mgTiu31%@лi1a߂j=!d_>£+#"Ո8:PCOgagSdØ(3?FFgbV 6L!F'1fn[s4Ѷ zdsmV! yNNm:ۻutzw:smFZi 7.}k E :msOr,uhz΁#RN+I/ 8I3]|UaV/V$B,ٱד6ҁbֿFE\ҩ'i@I|gP>39QeFFi$p9I2& FU̜;pO[JHF(FM0/C`8D̄j7\xg9|X"2&m$зeJ\<$wm O-fQI+Wm3:N}:1 XӓpK$pdC0 #ԗ~̣ge هn,&v}@w|4 5r̬C pCڮD(v!@ț~EL/B܊scO &NA{4ڤ'4ዢ4,x^r^v o BĔHdlZ{L@@vorfǜ2/-8!nE" ("0>m գ͑r{Qhd@/nES9t8tȱ[Le;<e h Pg駞*ƵKx1.YL8 n-x+KӹOzMl~>gM ~CiІgr4,풌LRTE[ky$4t <@JS oG/9zfg]j5JЋbP [b9|+Y"pHr֫(vBp9chQyxCg,=3Rf[R5-w8`D.&&\82TTŐ5_<9w 3kV/hEm<}2<&m7s{vِkRR`yr̗Ƚ*A 7|sXo> eJv_Y@oP (~k1Y 5m]Pz' ej+ws #-Ɋn4VA Y~.#,/I3R^,k%Nߌya3|0Z/k$ra^Rr2R7 ]P1?ZHdI 6Fovӟ:_h9i}SDÜr4*v!b_Qcig<ҰHm$u:VV|ȑ0J&9kNY7 阮> 6|ڤRRϛ{Es[NqpFĉ!9rXtaL:b}7)VyMXm϶iKez P[q_>ut.OF)6 FG{M/yɨ9NTt &b=Mxg \z'Uw~PO-nE}ЍƢ,Ff'D[j"UQB i p 3%cr!uFh#t c (u㋬PpWn8 x/y9Hm a( -~렊kź|yqg4t6y 0#B+v0]Q?˒JI4SΎ xB4LBr$[qEAq05CɁ"`}b"6s8$iqBǭugɗ>0>1b5bgCx! d|RLfE|e N *<phô ( cFn}Q:cfg\?1^L6ũX@}ft&q#}[n$XC}Ե]f3OJ@0 IqMme0(L>.ښǬkEy0@)nUL2`Byl3 cg0x0pY\Q }1џ@HIgpH"g)c6 f풝!p.5)~,cЭcReVƖA_Io4"q'e}~X;H6ѯ k{[A`w46@& y,/疯6U-q.Zzd_vY!k^.wl]@;%8zmr띙׭o$t*2ZQBtgK;*0&!>3Yri,k[A{{6l_ap~١քѽZUbBcsvsۛe@Ƃݣ1w׮{!-ɿ>/Qc cf՟CQࠝvu9l2ؙ =T"E,l@Fj;nݤUd4F9;r)=YDÂ~0 "܄^c7*cU\UO'|1!F< ?EMΗJ{@C֍?fkBѫ:[}-؃YnxT?isdN gx(ܼU pjc%_Gn2lrXI Bby6 Ψ{9"Gw~`J?AG `} _ !JcZS(! K]4gޱ&;LRG׭F@0x "_dXe1xlIONYB,|Hy|#[xkѭyiLufY~Ǐj[ dЎYʛD.T?[ d Eߓ G BS&HtC8xfoM.Rvդ3[ M4BIJ=R3ÛVBBφkA.1-9i&Wmͷu}ot߹Nns至,;ky=m^*zklM`ydt:I$.@Նb:|qY4aDThIhC0D`2/όe=f[f)P"y+b[laZV׊5W+|C%\iˌ4CcMa>n K.b={!^}{au{a7/l:k##gx##W5K>sy!#ʐXN΍tbXxT0HϜ/}ljbʉe^>p59( .q@ P)DqAI0:CO37& _0[lkT KOysSm ff;3VɁ,$g ~ ͶM;|=TeTD+!Dz3fZ v\ |jfO-e-f(RT/ZMfpY!wL P/9=0u"3ĵ΄^xVzag >0 a0K9O B2znOĮHf&﫰sp5t/"qȾ ")j""^)# 7g> ]˯ڈS> 7,|17Ez겄 "6TИ0Ov;L}%\4Ωsx9,Sy/|vQD>1>5ore)ů{Ј˩_z QsqOA{E@`r&~'Y/A" TYA訣v)E>Ӹq:`@ޝ k-~nHZ`t :, R]t }lgpbLnlb\5oT.2O0\j;ExÄ&l=R2DцiǵO* ʶM~T0̆W"V82|[-%owjwb:hk9c`LC>ǞN 4~9 a&q'v-9`;*p"ժr1 `%E<`/A:k-d' ~2̹DI=)zU֩g@D- ɏGY1:\^]0=A~ps* T #u#+d[TP=PEl@N^$EfʖkZZg7"|zgk}a))>8Jm4HZfn=n龖[{j@iYM_P婜6Ğ%B -%#9`PrCg:

&zU3;N2huXZAdGlLF:B3+ Zren;"bWSD|MN 6oO&~܋g4ry& w7>k:?N"a֐b!_PMIPj;^LT!ڎZH?B3:-tyi$b"h}I#S6N wz^6yR P2'PA AĢ'U=Z1@Z DOa3Lj%*fHvBT|]6%K`kp{_֒pKs/^klLJ*_+Ki53HY8T_(rY FZp~^ES ,44s(Ƀܥn&s^4m%S9`1i*?c[#R`Llk+bE$çO <3#N5Mр 6Khcx i[%pǵn?TLt ~ax#A<@bML3qxXchZ=lX}i3g1lYX۹s@/=Uܫ] 9iY,s7Z%`;J:8U+$Q"2$zH$JL'b\iV516tFB'v+l@ X߹I;pG c%W.$k 뵱$rӸe0?0nD!ze?S]4;X(hCY>+k^o8Rܕ\*v}^\҆kә7{μ-tB%ܛv2Ωү>e 9d˜'6`hEA :tS6:A(6P]'Tc&!r+YVb(^S2w.D4!XE. @ś@ MU#xד ]D6W>FWm*K#Vi/(lf Nͪg.͛AA _AZVmk"QMh sXsXtc_]lk&4Y_㵀:XfolC F&sM@<|@8|~(dCW nj>=M6ŋd@1C} m1?<-("b't1cHbϡCfކ6ϝ meĬ ]rگ)!Ɵ~ fETc^\ \1՝WM0{x9ٍVam{eb0fF8!M+eF9>:5aq:!ՏkEGcmǎ?fy+ Hte`wtM26x';*oʯ Hbٖ8Eޜ Zᷫmw{*5W!dN׾GGPwp~qY99"'$X'%x@3\E#uS8b_S?{wjc`vjg>HHzif]iA{6ï>K\W%ͥ]M!唷KqzqD ǠuXdhXQ9u0 ykhq#'yLsu")GorŅ0Vdzw %An[60}SlZLRz%1*WAkm?^pա;?H蓰F}Uݢc@PjLHͧS,9{`iS9LiWRz'd胙GyaG PZeA TA@Fʦsy1LBCIIG3V;6=|b,lc*=mO'PB} krlD^96y"g.hJgg&sݢIY<ͯ8tCJ )HK^Yf[H ew<'sQ0/`?{l]As~|j!S4ñ|2&72HݰYƮ3ÁUN@Wo[ajg? k/+>21)) $?=UznVAr@Lu[&2 Ts~!q۬b@1ͽj BR],I"BUZuzal}[%7l 69Xی#Mr5J]}r]ӟW^8q)mRTğ%1)Huc&ӴcHi&FTDgKGs3s7_$ꕲ W:\Q}5ZFo<:FGX= hN ud0 |&irB3dŇS ɉpG; ~TWJA)y8rj7A刢"n\dE l dE $]LiUG1(rL/NG4py6P<`H7T+׍?2]]Rbq#A |?~A3>?Oo'gynSn$ ڄK/~<Ɍ{Nϊe0kGY;$> fN&F"r|t3k:(uCgp6 y26qro_9טD>T}";1>HҤvzl0A735k[ 4m|whBh$y<\  4y\Zɂ0v7z 0v`J/}Uw W#>BC&d\5RŴvZZdp>v9fs3F'O-iUsS3 }bUN3I]_}1ӁQ9ygPG}{%EGr߮+n]aɐ$=rI~8=ρ4*g8OSGGY=AeyF& ڭf` 1w4:?h!\toBMp}{ُJz>@TK<Ø`\CAfiMNuNbsĶ( Tz}RW6M<:lo.> "bR+$K,ud*ClX@#2ʁ*˖Fz>.$??Y72mEE]1 KY B,k1,Hٱl!oW6"8jR8p9Ǝ2iefb!UzZ8 ?C\W5 jF8Z6CpEL;2|\zRR6?NW@.C]E-xuݏcR!XJn=FǠ~X 8u _ Mk)d")HK"uL AV b>X&dBe+ HS9{L0"Nc>𶭂)EFZDTE L $BJT 롋5~pt0Zmv$6Arb 4{kf@䝃;1. xf}+äj5I j"S|c-1o&~|.0L?tq`uzUWv (F+شn/iY0ciR b\;BG8$pB7.Bv#!!2*1|`QѿP`lR-*g2|,EHɺUhEx a1 ZDUF^?z 4ݓi LѢyzXj7}fXʀQk#8 wi,F"ÇFZ)ثB@BQ6W.6x lNa1ː׮cư=]?nc$ʓ13_;?2Ho}L$\=2:bFٻFpd:7u#v>ܤdimB2j: +1i5)1FErus$ԋjݗ0UNTfʏ|ȿ iO?3!V& $hE7GBbi՝F]C +xD$6/$5F9!ӝHLC}7Ik]=2D!,p'@De.xPRCc-zLL)"g8UMq/0d"%--%1Av4c"Qj 8616vȺ Ⱦ&f'rmM1bD¬ Z @$ c`!pƧ\ks7ʻ@Oi5)^ ZVfS__tӟ:_i[!1fN;-_BZrBqٷ6վ#iV>\2a0.@ Y^Ўƻa f :0#7ݓdl1v]r8Nb-lc3NHYi8Itt:ihGx E e e9Q}Ct#UU8Z+oK"ص#Q\:DͳZq9k/mZ!pƣ:-փ$t[jC-A@yl28>*p a y*t7fZ-J4a_;d|k}3鷙:k^.w&@M5КG;0t?&\$#6@Bȇp&ZzjHygvIſЕ˞Hd,(D.JTleSV8x {%IH׆ y ۰oА?61*@peH|Ua'L@w#F&`O#Pss2P&s*{()m܂nyIO`)(Wތso5TAUc1r~E*9bR84z Ӄ1nUmrK1C{Jza@4>B^l ^C8tQJ`E|IT7R 51Tᔢy6)_Em.1~bg01^AC\t/`FZVmiwǴF G ~U1Sգ׆:3Y,{EՠEBΗy/Hr; : }4p(9!sL8?5O-.D-4THѲn2K[ #VYzq['8U18' r/yQöF,mv?MsFRIpm"&4R|Ȑ_< [>06QXړ㗘xcKV9b)G*̽-6>tU``y?Y2g_(jsÈxSh-bNoAOA`$}W5ߩ[od,[L; (ڽMbu)2Fַ؊1q}Y+7KdfeQwN-z2鏺v.f`FH/-`fI25bB#>7+qΧq*1IJtt=įlzyN!vCKw҈LyMܶ唳)S)V{Z:XTco,K P co->O cu\vP%3t!(KpO=IE K 2 #h{ucɠN:#V.N HOȒ.~rfBpU T*UNI}*H+&8l91&P)4'gX˜e9nOfHJ\Ee-p H|tjLّ@&h^es7 `JDŁd2pfA%`2mn9H+5'Bn҈ѹJicXw&-Lѣpv/:Ʊ:WkHD eDqY#~Jm.*՗?:UwH:Can)NYF ܐ:T`0]I )=a|GP{j`1DM Ibcߨ V7|;;MA) =XC[{{f.fE"nr([`p_"=S~wlIqj{ p1]x4k ]Yc(s-.Hhmɘ`V0+h_M$1Q1\ 8@px\ndͰVʟ2fc3J0+L<2o/,' 9Mi bP&T ;߰ JUP`&TD%uɒFN Ў+ S`!ŋcl]/, HdUcc.Y}zH,4HGB8a l- Vc108^2HԺkE pf}Li.ofrEcQLޏXm4:Lsr8T|+1Hp`ÈDQߛ}o#&IٶӉq_ĝkҟ l0MATuMgt{!kH27R-I>V}FURi#)#p>K[ m k̏28!t^VBҹb[jF\3V~LOK󱦲Ca|\ݓGqL$`⠹W&φ3C<hBFnԍF8qW1 8I=-*,8DNA -sB4#g-A4?rIK_1iIN;.o ^ RIARh1Dsr Zzsz~^N/, 3BqyJL_}X UR U,9Yv671T~@!$AHUkru6{Nx*wSt: 4"CF@ hnni*bA+VĘX蛽icjYç^tS!ϝ]0³Q[{:9(Rs}&(R|LPL?-5Gbi290 v { -&ă Xn+V\[WfolqdTcAr>~3Ч4t(lg<|HNy.~ Ǡ&l͇+%T|,-]lm6.`]s3yhrddW8)?Qb/E1*.1gq6Z vOHړluFs2Y޲~_yZg9z-U'G*+g2s{ ? &R*?޴r9iɿd)Gd?~&鄣w{ue)3lzS>4Anvdu^l#r)Da,Jw`쥹Pї+akd}cZ=nMF"F8qw`\iPKWqf{j0cI,w7rMcMiEe)mk>Qh)zrn"ޗ ޵>}6$F>Fr% n7@~X.r B%A_7\g{Ce-ɪE~X=Y,37F^V9{fj̈́> zfGp+f%,B8呹am2˃N_ ;0ු~COv F_2#rx>L>Jal8ůk%e,KmHĨ,걮#gp2pFX#1 g9ɜD \"Kgдنl+r3"xl7 I'2jT/ayDSAq&xk@l+lz-πBUj|f\h>glH/G+@2-C@Gx1{B:P0|I30 $71OK^ 6q,vsf{cLӠHC qCke(HCtSwЭAB僫3xjK6dVN4X>RxSd0eD: =̓xG̀컰zi}G:Ʊ3` p3@V Jc $Ls3 4s"1 9 ͘KE 4Є;fcqz$Y^Rc+$zmޖk^%t5YRECn%k )贾-k+,o_*Q"}zla}\El>% s)!;k{W+?HrCd!IJ#Cd^l_/*tg;2䄎)7w$`jh p+,H]' Z08vߒzf+sjd LHD"o콋 2h ny$yexxݗfޕ!kS6_º%Z#`2qW@{˧-oO.yʣ*AKrf _&׾2(FTw} bkQ=a] 5ôv8ނ\WsN:>nٷ6VeߧgmhPrBC}`ݟ W8\+ibPFigCiI?>걯h2*wpI>Hbk~*g2y෭ZlّV@;r,IQ":֝=&6-{c+g:낙RGsGg~#,ZqKQU8 K6 6M-tk~e9Eb,k![m!ƾYH{<=9>ŝSj#>2uy!Zp]Bs' fdT⦢{?J~8줿NͮRJk]&%rT wkɰ։5vЀжI޶>WY z\Nq@b9\ ڌb SDŦs_+gJH=3a 0JN%i0ɜԞ?RdǷꈿ˙Gפx-P9VVhz9Wmo@M2+\hA c*Y.{zhfg^}{n"wn1c+!j\r;VwA!S\n'cwx;1z*vǼH[?fˁK &SCB-hG%oy6v;(ی-m#V6~D/<^ڡ@J#FACN0Ա}J9bܤW!Օ~*px1PTT*8TX1^ZChS~_¯ta p*[>kOl-]` ZX;6e4FzT4]c;pۘS<ӊ}LiIsm7*S.:pӜҝ* Є7-̯fB'(2ALKˬHslV-v@gk׿&( ՞"՚␊%jv3#kSB[7ǒR!>´BD ٸT Ԫ0?[c&s7 ̒!5/ ׳ Z/AlFo)3-˛9Mfܦ#_=yR0Ux qUkLG \q0ϱ9uO'8Q 2`2MiMђC.N{9[:==0ȘoC3">rΣ2wE IuZ V$uzH0G_{ pFÙ"m?[0 %_/S8Nh*~sCguYœ='ҖLXXԺä-w0S$S)te4ȅU8IgpR>JDMQaXk $H-YASׄT%G\38TH̄w2yKK|(Ί;Zu͜;|"$j kM\$ws"gˍ\-´m@{Sյ`seLP̅w|rc:-zȫ>,+$&cB;SL*\D |M)gzՂ#V-*<9\t W3\ruӍ*}̫q. "R3!=W. g/ZRVUd'6l>Pxj>|"C棼+!8kw/mctؕL8X9Jtq[wb:KUÔ:Vx-i3V%i <8!nC`3 K13O e7 ݦNRzdgաo3P9{hcGL_O1^雺G:W?*~&*I 1SH_ $c̓S(/?ĥwη'y`B0i|b-v|;еb`~~w//zY.!La W6EQ:U=^na$D7gJޑexS|NMb"g5(|,vw );'\ |ҝi=7Or8(kZ] Z:Hm=ѦI_Ǻ&:(DۑXߜ@iE8ڂGmB0~oOE3coox@+G8ܳw,VrZ3ݳE_Xxح:9MEu _H=u'*WHa3WsHVdva|J9o D> qHm$GU9)_b疶Iz˹vYjNkEiBZO'E]%`sQEo8X% s RҌ:NZçl{zp P慬gPg#(wm}Xұas1*m\<ݜ}'jUI`eflkbT -S,YpkZ'?{m33H*oƗ@j{Y0BGD-;ȒzvOoϘ|pBUתFCEr,>phyvX>qOqSHl}4wM^5ailx5#aska4 6ޣe_P""F󬵋z'9zr=DIi;L[B.II*@|ƼHvZ#t@dxjWM_MSKUvj_WM^5zj RiRaxq㟦c9~tMH"`Q9v7eo1y2u2q2MYBWUDzvXZH)jY,vS20"/3נ^5,Q}|@uv=K3ݭWcYKyakǰv@a-̲ 5~΃pǠLJ]1'7Њɴ!vW#d5~F6,K*OUj^偐 m,p1}Рp .Ղ1 N1CtG.`RCݵH:C"GHbCܰ#X45OhѹpWPqܹ`?Cv"f aeaǢೢhCjX{_ܫW` >!SUX!Kr̠>Rguzs9|!಩ѡijENXmF"A2$& j6JXV6X Lm?kN^fQ'-0ЕjzC+W/T^jb3o[7Bl;h>$uCGñ=RB@b#r=}kx 6f6 :'/S9XR 2nP_)A}(e TRINOJ#rG7#H"*5- g=7z!9fh@8p?vG׀d0 F8\G>&k%`$A%,? ֎IF82IHBBK;(D);& ʁ{1'zl ~sM顢GqA$Ѡ&:4 놆!M#C+JĔu"qWwD" 5.%!K W^|miT;t] mɤ!JM4*H飰EX}"X9,9,/N+7&(K9[-Ƴu0^/P@x,@z KDT^0*.qsLbJf,aQnI+laK7 0]>¶8mr)uo pX4݊jVd"!2!5 2O:v̄1$6|6GzAxaMd_΂AVh\"A؀ cxq3pyn-Ai+QMu!ToYp߈VdB,:bֿ K$t|]Y͓b*a IQ0c ͥhCC"yó" ykIʉop1* ^tЅ7]lKMgAknSULVnAQ30@%;WONR̃Iv`dK>@cIk3|V/ʥ &V@:J9>u`ͣĴĎ9&&"v=&~4a-dRk@g9gWg3|BNᾗq-KOVm>?6(DR^ \2zgxCg}/bkő{cEE3}iFHd5(@CLK&{ `m#מvo:孲KpF&c۰fչmS23Q,= z3SKi\GAL"b]UᲖ$ CԳ+3[~E$yS/(w4':_5\xA-kh(l߰$A*^0D?*ьd(oubh-f8Sil1k]0hq ֟b nLnpD'gZ080Ioqx%p8!;]ʉ!:O5xOKpE꽘 ق8 !Ώ0LsWK0!oD3ًPاYNg!Txo\xϲazdeb-h%$uVcvS雨ڰ힟,Pbako8Hxd(d簮l+% ]ҒڊnXj\Kuu`Q5{/zrh%kT|V^;@ ZHGᣨ_U6-<6v{ou@pp]l/# 3Td^9 ;D88ӷ ϵ<(/nR@eBB185PLrYH4:H@\5uJ-yhKq:nTNJ_*_IU2sVo!64FGi,tPAR'V@8 myNäݬU3r= ^ 1̓]Յ+raoY<>şȳ4H~ /T݅o(?N/i~cisa[_ ;{YW#;ȹpHCqZXG[lКPaKZo@J/pd3)7y|ژݐ# +Ȯw)*䵷Ya99T]IE.6zV:SŸxY X#/DMȿug hEv&CY#ڰar(K70?C;vDsۮ5n:5 F#3t@[aJhSKl¬ cGËh X}D,!3”#2<L1DsW: A:Bhú2?id*6 &PBe)%3 3^1{0J)'C$ʙl|JQ|SAX@q';2>݀a^XIw`K4o %fY_"`dH"E4L<:ku}]v6st dļ΁F{x#P:{b65|~̯~KU5s,OiehH~۰Utng}KІ/L<'Ĵ`ƻ_iְS8\JæXqCsUTl}n'〺ɸ-\*fkrɂl]`Bm.Ri'$cB^2ΦO8`pwIUd7`Ӑ wihN-tМҝ* ;#|Ok(23T1 [";4Bcڨ/GTS p\,EΥP6׭3B+B/b-=+AK`t bfM1߉r,tg8h.Fq{!IJ ѝ;T'3Z*zS|3m[cMϹupps8I0,b؊3%j&0$L:~ $,ƉYå阢όR`c[V'rˆ$nÓ9=1~#cd7l\ll˕@=e8I~ !~[ |nBE$9+" WjgUX'($q7w$:n'87s[O~nu˭c.]C`M_O<|}=ݟ"g}c2v8@.k lf_s1KcC~72 4Qwm[l\ӴΉm탻PꞹRM 9X4S-xZ)M_Y!!a8k5< :C8N ?d9dG[%S@K"EG QtxH7c q5!.t5Fzw܎wA09A\l=2 %#0VeyOGwHbSuhCCA.l{S&+CV|ƄwKv"zrIȴ#H[Γ r IPW,y\4bӗ ϡ~DB)*1&EY[:CciDd@ }2[&YpAEpc5P)ŗ2cPF -G<ǯ_~n8_1A4 p81i04#0!NP)\s#B>ԋ3A[}VZ1яX5G,jV}Hfi ׏X'(yAh i󭒘;iC !kLY7BPIQ,! V@ @D*6# zu$N_e.pIk_/wk|;pbTz.$E]ͳ5(#7gu/ڗjN }&ƭuK/CpTLkjF 0yJ.!F`BtdW_WT|zW ~|kg.ɾ%MYԌ,}.y@VYmWx:CǃcEύ 5#5Ə0U#"g;!\-YDeUB o(L&iR&sh\Nәd|gg9}6\`X}p=  ++fN1ۢDta`A&EltNr ;Z~I!#!8ӗ9{pQʢPƽV!o8z96Dk<^nP15ەrL/ff4_ow`ߘ|#:jNg; *z>-Mugǩ56T[>UMuf]KnJIrB UϔVw4}OFZJ3;Z+}\Ʀ)cl;g^ΐ:B3ɭ%R?Bw`WC<-8 C,ݣ:Axlu58T7؏qhӟcS tx~l6t\z=˓SgYrlV\>>DS4s3V%i֐hVƭB 7UHHY*Zϼț8w=db`lDf[ >|,/^\ٮq4@GҶ-o:.UMzo8L G:Bڥ3nE .4 ZTw`̇|/>vӅnx^[Mb=m̏Dy46} ZvƏfC_:9WaQG66}g:4JOQL͔鮕"g< :K<k,z;]U",D Mwl7>S߮8{H,!u摫DTKV܃! 6e1_$_G8W# +M%̓KtyI\XuPg\ 6āF@dkk]9\w/70 Uj!xJI]yGr)W^e:%gE2/1d;)8 [}0ET'ycnaMh|+ 5C$#}BȻRY]Xb7Gcؚ?jQK#elI~=m8>)0I+JFd#2tH'iďZ dYRA /s)pQ%b^3.ёy?; foh{?^f]ٞtQ$d$%);X$yR״3 Bχ'w1ea*B_I\ XDvAhd*RD^YFU>Y`V4EOWH4CJLf9: Q<)f.KJi[rEg (D )sz^CؚSDžO |-[c5O"<#l=#hs# ۅGq FU N=gP_*m=y7(QvatJK]fU> 0Qю~]2s<>1Wd 툚|I@Gѻ%+ACFIWD<9׈m{OpMa'i}}3bcFD|I`ISOx٪vŋ9>ă *Z_HLJ&DmC8Y2{QV3"`tBź`q@Lu$EGր1T.HigW8ߝF{,x?=qH>yK{~DG{v6C< $|,m Xԟע68f5v}C79'{ `GG_ơ8+w6 7bZG9)-Qg͊6u`Q.)7 Ip<%:7lqugyħcpdy& @*]X,yg%G^/[U؜%E-D!ngkUo/Z Mc4FM %aL[d'5B`&2GhFk<鸜ϢZWBhxsFlFSM5p8:kЎN$ 8u qbή~hM/ǻ+^;F&IgVõ˯qH0p3sdRf֫" _OמǞȽ O*`2eyE"[{ȸ4o57-ƿLv}"ND!W2zM4叒y16HVH|, qgkM4AنL;}A[Q 0>73,1ZEr Ꙉ*|V䵾z_k|2Y9cGGO![bA)_+{-g]|}cWw=MO?k##ˀ`/-md9-mtI~s~?>XUSÕ\ ~gW.[/L%1*KC+Zݣ'W9L1PhDOlŌz 2;<&ڮKƆ} ߽EkKBWW_ ^GRq}$xx;)3Mq<[][/a:Dsa-ww3>tOmbcH?\Ǎb@" '/7ua$C⠧\ٹ,6WxښZC{_&kt:6D^q"gMYl&Xf݅mDŽ> SI*dWԭ` PmĪt/q 0@բ* `ILa֛fTu6}d# kuM8dg{nڃpQԅ콇*Uq 54 > "FBBPUn8f0EPB TV}r2xP+Pф" Ԛ'HI廙6\:U&e. PσpG/zrfmW_V4Hs|L F nkEO3Ez.{GX2IR9yd,ɥм ףv,9[mTu']HTW_̀cUu7JXTi[# Pqfxb^`wiu$x-NZafV͜*]m>!o,$w`VJP{{;H2V[]xu0e%8hɺ&D^z]S qK.. `a%'3nde7s:s?i98Vu#57z}ïz g:d/CZ <4LꗶSaOM95J/DWP8[LU/߰؄-*6@x&qfg9:[gH]X CWv Q9Cq!>%9KӹB4rh\>XЇԪFa k'z݀{?N`Ywaɤj@3à/5˯-1zZ˞׮94ߢ_o7+O_3@psJI9ޟ#˱31ûùa1n o 'Dyz?L .`5Q IzZK/#y+M|1!F>{p VZ󚚹[A*Jx8[b272+5p21p2kA=2 ڇ4B)nL0 q-rg~*PUbtUPӠ[_U7 QoOW@K"z@St4I<&ik*!weT:l|+ZtqC8!,DM)W""ɩG`e̼?BaUCh  7GZOdz'1,΅+ri{荟ZL՟v8oD_aPz E6,d 1Ƭ$amx0ƸY KPB<ɂ|/Mܿ CUS::tpp ?K[9~EZՒ L,5"ZaM IVw1tG2nf՚hbRS\썸)j<] h_(eB H(_X_PtDRD—)Wx͉AűC?hزJfdԊ c*G [PYi qkP4ȤU'd]a3*n[pA1Z\atQFld& L.E%?|}FA sVtfEIêͪ*=+YQիׁD,2E]2 5¸aXn u3wyͳl1=a3Sr-Ƚ9}" kMn1rγ1{@: YZA۩T.kHwTi! `%Ό:QU!ԫTfA7E/(ЋsdIJrc5ɏh7g=XLm\[JD~$WIdz~f;vЗ)ݐ{WvaM~"cS2~'VG7*K yAS9 [Ad$ZqMԦ(r׾jcIMWWP ̄$[d"ceIX@aX6V^dKΚyEM3M Q v_~ #3'mVC?ȾN\3›B}<$fG3WoS m 0Zxͦtez]SJ b&OG?-xη-iFu/"i/8}\an&'aӳY{ u`%ͭۧ׷uq> {x˞>\hw6)upU\"yhO8|<ʳ~XP̹ƂgUfCtDI9NO,(Bc~ A8 IKRвϨmz10z1od@ % H@R}q٬_6+Ѱygcެ13\ aDX%4z9aG!D*+- @j"35N8$Bc*"'I)s,}-<>ct8GiT}FJh*g:ZfG5<%Qr]~^g1,6JT^mЋ^ MY >4Q B[ů4Ϧg:"yԺPn,"iՓ [8Tmdbƻxr`$ Hl%7-CA5ʹԅ` lcB77 i'3+cKj~_%f,Vch70$Z2l~>)0^Ր6©{j\5FzׂY9d7.x%fyؾl}c* ^:C][$@[@)sB<9þSb #{|(n,5J֟BGoC+ Rk/̘"k!S]?|­ 𐛐r}bQl1 ]To/ *Fa.vЋL!270 Ӭ>ςGD `ow=,͇(z8qF=cV{#o>ËP| v<@Be^Vϧ! !)Z0.iz<ԕ0ݔ7="j?$fW0M[LGU ~‰O cfݻBEKFo"xXQF\۹t5AdnK#p:pSA}o$lǭ[Fi81,W  9~0$nocI) $ng {c,*yC&xU,k6..f5~ sNEAA/(rmd1Ϭ0 ̵@ Ƙ}񅯸y7ͼq: p(k"!]%r uMnjtW=PTθLwd@JN*68Y إ|*Vr* ' ͷ%ísxX=h|p&a ~<"ƒ@GZvxbMYVx 24m- Oe[&vrd@ L*Tڨm s5׃kPDokda5> L$7 e!^(=ڰzbU UIS%PY5J[*=n`MSHڗ{KfF"k [rO "5FF;d^uMD=|PkUF)[!߲J}Y@o(g$~\1.$pL45MfUH( ҫ!{9"`r0Ayh s`2 ljUK2rm::[.~8!݂Чh] `jff3UI=0as /ǾӬh2%:2($ /g2vg 3h׀-)t"Ւj>p?wv&sks81)]BAea0:`<d)su M W58|$1.b p0M\T-\)370QAȘTX4 zbhtkc8 bMD@CĀMaig3ocY Zz hIރiil}C`w{U8 ?kzn qhay\z3;0~Cm p?gzp`絽8G7E;ڣ%0uAߡ:'Ogo-82#jJ m ! jƬG_DoΈΪ>NI~ P}>Cy >t9tbHm+^k_nnVAŦFk^3pF}5'k"XFu lV|hT<滨 nɁA͉yMOh1˜CV`Qo8׬Gj[Vd!ڢ`g[#/1'ρDDM|&syb΂#0;ׇ{[oS9{5=?z1%z7#̆hG8%>f:~ )zͳr2ⶆuIc4ަb5oSTFv{>J[?Û2F%nJ2ހ,;.s1!̺;,J>,l{kRru]ޔ$U3m~)J}q*Uw#wXmNSf@/K1R2;WًXd'M17d7SuM}ۺy "|!(bɼ&1?vb4.8F`fGrNc^-G, Z7>!Yr'x` Rclu@ikɀ^@.65┖[[z~ 6GZ[gX=m9{C#ZI+X‰XNᔷ`$E{MRp&'3b$NAQ:b~X MJXoH5kL2^,o%7 %Jbʌ*QlaIv1;5iy@ ҡuB@.0c&T{7i(s1*߅'"N#;U-ps6~wzrA4?|Ym9c\=j.~ɜkܼc[ Id=̟_%hb]aZmW>dCBC\݋, [hzklp9h /b=~ć>ۑ0n[0bAtQl-XbX9D~㸔*ʛN-|K:@v  tV.]șTO݋XR66\6dÂ0l o:u2?gLKܰ@S ؘZf2gHr~\OS6A s/=3iOG 8H`tndI̘"/=\צL Vx, <;~OxvY =:gMoE˞XƼdtY j+&L Xle9!ѫfxRP ſkMߵ6Wqp+ítYvza:4]@M+ }!@A\%E owµ {{{jtR Μ"֟gRi-?-:b5\pxATʏ k!¯'8,Piyj}&G3 z @f!`Q: %ub  u\$ʃCW,,k**:A,uW† {70T{yP_j$hH|~fĂgᐣTj ^"AipK#wGG+r'G%E h h⁣FR-q`>ڈEX,N5FB+*Y9qiĪfػNy EYsϨˉQgh_'=*층v ⑈USϨ`Tl$S8?xNϲbTQAg1A'+ ;ǃGV>6#Fb5"Ss"u\ %>0{(@!k-&iљF"diX{;quL#n$ ~ :Չ+T D#RHBd%!ng^ƃaVCa JìUИ&֫DUю0e7ctBۂ7[J6RYqsnZ oN^Xʻ%5s`ЍMX:(/_2xq9QH*~&B@ aBayPBao 1"셇'KRFൻ}"F9vw+FҖiH!Jd ̒ 4_TRܛ#F!>K;#FYpNqRCrȽgaXQ߿S5,{Av!EؿL{Vns%Z{ ZrD>'  x>{Tr;tez)vAJD~ @ܵ !?( >/*wOo?4YBW>vPxl]TB-<|0E1Y5(r< +dD%YF!ߚ7sg! erc,+CmFř>='HmR1NDﶩ0QޏL vkd$]òA#j/mЩ4Y*$(U9g #0X%.y < > иwIRșp .1̻hBg?ve6!||<]6[lh9Ec.`{LNa`\Z: N o" \E']ÿl,7K18xŇמo$eI:<:ugf/zfakGB3 ZAMGIrwZ~g[0wfKBtGX[D# I8Q?i‚|x~ !Ʀ2:o3} 1OV<xڇm h\">Q9&RN+9klCHn1ý9IE㣈ݠx$11HAxmcnoqF]@Xp&ov8; 57{Ug |$p{#"=b7)9zH`_|UjL=u)qכּ OH Ҵ VH2?Q>i&B`h8̰+2 b1!Quy^bbּ;%wkYwԷƤB_>L2T+[R!)KTQF`m !j_dєvI[S5QUx2t[cvCz ]J`yp==o.vv^X8kM.bgSr]C^87/8H!φxHG I_j{~aҢDup;ݙ<Ñlʿ'0.0E| re :~-" 7XCߚKA=b ;Fs+!ݦsxCD]g7x?Dn'5Kf$Bg5+U5 h+s/\$w07ދ.I. eU:C(@ѯG{C(.aC$82 UMlkCϪi`LoZj;y7CݞJ $<П{sE9vӦ\G8]zi 8LzUL/ċĦ^311= 'm1651bcu.3&[܌x/J}=6̐3 aƁ}[g]{nv$n0B\)ux }e-J(U'dbaWoZms*f q+8d"-0.&D <"> צ`g~3qc$:0;˩.yJ{źovteզNo\RRhO[޶e[F?{ud9xЛzY;Ҧ c: _}+ƱC#H-y-{ TxnaD'ŪATt(z!P?+z Z:Lgh Qw~InaMoX 7by!5> @gi*`9nc5Ĝ, {ʁHw*S͝Z<_1`Or/2oQ%$ta2]25ͽf,O[ya*Ll<#W$ hp{rs?rR2n /;ȑ,׾#8JA-'4A>8+*4c% rVrfa¸ޡ!v[O)k_ q6fd%)+4̋;F\gAu x,h\ Pj֎w \=#܏8G5s=sAȜ1o8t[d61 LЏRˍSK5q_fn"d@&B%8X;] dŭ ԙ\љo-Mb^Rد*+K%%୫pH|KVe4n廴N^1"Kmܟ6*zQFӫaKi@}2g|aq ByhF)їǁXp12bp?`T*s\ks"`Y! Lf[_hf̙f/*eW_ٿ\ ?,"_%dPj9e8s)8bYtTƧ 3ԅ5X+Ʊ~r<%K_9ޝP}[yBZMZ}/kFggu-?_,caZ@BL/SbEOهLE,:xoQd9k^PV~V!5U} }e7@UrȰa`B.}^u^@$)cw8[)tcÒ +g7@XR*:u|m |iL>U!M}y l| m~Rj$~Zx_ʱ+K 4o+c]1llM+0@ R/ܱF]f@/;߭44TQt2SQjPvZjW| ?vD_@G5R~nϣ$חnrp@zGG(m^կl;P^]ex˜yh!$ymC Jql |swx.q,= z2kHx.zV1<*ogZL.$N_b %06tJl0z*E'SG6ћZK&L?mo̕u:+(~Qg:Le,¼۰AFǬ k9n7(I0sɳ@2ӌd|ɪ*mo9ң_7]r aIʍN]Y>ljq")RhCv𾠲Ir`I(BbBboC:ǔʝoo*V^]ȏN|q%׀\e6 OHM:8Q1*\ 6{(ٛIgޡUV8AY)?Q%.]P.jEL,܂K,˭hEׯ.yV4 i%S ]qK_W Ũ'8g? W)|u<(3':g~=#[n\809ڢQٞC)FuJs=X3NsagCIp@"iaIXN<䘸 hs] Iwh"|ȇL?\ !MXCtr9*/^VO_sZS@^㚉[0y$8-q(sp,eS^fB6 ˜"sg0}ڇT!7tjl&} csT1?ƇV!eF{w޿VQrnjӒ/z3'&,HsN2-cI̅!  da;6hR"Wd7%o4q3|dz4n=YoZHJBTB~)=C7Pe(?._&̆yZzWu@IM*[*?k&tS˨̭Hȑ$5 ǯ -%,Pثpx4*=gK\+c+\=+*B ePZT5Х]ت ZNh .!%,>SrVNyqhW[ 6/DLit?@T LKdfH>i{xzp41ڷi9p)e0Oܝ 6--{,E9KFNSiTM+ ^U >D9k*ܻ Hԟ-Szт;5唶V`+E+%ir>ḦK!3ޥi̍ ȓ--_>Y3gͨa{C`MG rȑM#!^Ң3a7?,#3VhwN_Hm.ipi/:m2;l)f;7A"Cv43 =6Zlٸ5IR=B#3jFl"#,}8;F; Ǧ@Q0ݓY"/)]Y͝xREݻmm*mgnY BHOV80|5M?FJ ڄoM`%o#\Yv.e٦~N7YXViq *dϝEIf>& !jrLB0}mZL适5ȣ3 ~A׍kv_= FǞ nq-[Vb3QC +nE(~D&·w7H9}u]ߴ&I!1Sa]~sˎZϊ\ju6|{>=>'7(v|2e?9Ӥ4Hi(r8y30>Y#鉢#!ׯ %6dz?Fۙs7>$E5gQl{<D5AKv-deQLĊq'% ̢0e6?kèZEraYMP|S:4 gi!ŲU3x FgDμ/ 74{1lBT E'Z;LI#(.c-JmYnK*}Kea^3I%; 7n:sE , eTU$:ziޚQLd1Mn)7#,Ab杬Eo4~Ӟ.h++nbk>sM5JU+%bL>NjsiZgg(g9NUI!ȓ)+bD6Z.|B4T5\N# .=8ay4)k_t#3(gY2ZF{CL~Fe19IDKȦp/B8Ǭ )?%BN'bl4,;uQ*Z˿@9 )AMSv鰔:4&"dO3!Z<)Y/?QxBh |6֜ȀM{i,mzyz&/ e-3 jRRaͫ1n͖Jo)%>AOfRքy#b{ӟzIOJTa]8* j i+ t#uqԳM[o's16tOա .<†G꾃 2^:BHl+|6ZS5 n40٨]e&tx~~zDTs: )h-%NG#J滤M}X?aVw4Fkh1W4dhў8CbB'!>^;aha(2M("^PC?4!?C^ټK#.TxLncݴ.;Pg03ۺվgp̫%MQgZ.dYD5Lqy%2* ȨM|0y&0)Jʯ"N!ce{$ChwF"YLȧnCKV!m1r/;j⋦Nc.X&A2<Lm!C=IՒrjFmO#:fJ;[z wOˮ8ꯂ0B{B]BoC&v g÷З3ey UYi3 S8IjuNfgKS~ "Æ]viQZ Dar[ꎙ]FuQKe<!䬣C fNNN  4 "%f gXV@1'¶t܋|i.߿dtJ vY ĎʪzBEjhRu<\3Jtim\+ntg}?"#VbWd1.ֽoW5=ȓ2!8S3_L xr t+Hz{OĬ36ڧ-3욈@UO"k57lϓALɍTKG-&sf{LHfuKg0$%KEsl+O3!l(JفPQXH^ApQY XqќȰbұ$DbF13+%m=`@ 0mx|`?r R<)g>"(ht" *b(#xiSDV!aNXw7\)Rx,3򞡞ЉOK8"ǥjgbUqGlqγI7LS ? oBE5Lr ӷ׏7Dj]D[NO9I>ބimh?6J<L̓1x4s]Zn]a'ccT?=!;g}9Ny{`)d٬=Mm XH?j3PŠ\plQ)jЙҤ9VЙ.Oƾ @H,:*sU\ϩNBsv;frkeB+ȿ53 'fL7!:@47/.ΐQjCC ; yQs6,A; fvbLxlJs0dSz:b6ox(E%c,$sSR3a*"(*Cs 5z OSuC3OY36o]ʆt"1DVN>-MC=8Z5-x߻9"@x (*NFa!9=};#h'"0>%tp_czD6bhm#{݄gx""'ktvDQ*8::  kKM>l:Bc{ c©45Y3&Hq3]YiV?1XA9w oE#:<6Lnkdhsч;]XV2n2B-DjdEreuL99y=V ] H$B1`j`3Z&\I?I{mb=h0!jx)ѱ@JtuHKEK }3n# + 9Xr:T}r`ga&yU< ^9O4 /C [LCDl 0avTv/2H7pUdX1&?9j'(ݒ>n(1}% ٥"nT0")>HM,M&ب E^k>.آQ-\FTTYKƉK\*: =¤it{vPO VS"i-SǶjD4D2/0z c!+DBX~f JZΓ=RfkǓxȫRF_wԡfZ3h0O۫:2*T b-yf9X E#7g6yauU|˱s+/loC qSauMSC<`ζciSwoz*c;Pji=.&0#cx1$Ḇq 2;CfW!!Lp|3^E /nTg|7:=hLON4]ąE5{I$E%5=?˔Yl!q̅!e}o吘1^~ 363/C6uuGE"B%Vd!$uBfzfƙ-=9yUStKtG *B)e>v UHfwOwQ[=SM U^=ґOl#LїӡB_Ө7VwqHFyޫu昀|]mQr,b$U-;+' >dzdZM[72?ZGU!єbf~`{e@=g6KQWݸ-u}ڵްAmx8EKUһx6 FX|/(K<`g/c^gn%Ղ"P)!CCc_q8|*xr D,_g1O'kLs̈$$d6/s2dHRBgإr,1f0W$R77MhHm7\P"Zã@A0b1\P.}G*(ᵗ<4ɂF(fwط@lz(lBᗺ'osxA<[I!^~S9qp`H-}2DZK0}xtV?R>j:hL;6s1e q!?&~~䣆bI) HC1 8&U (iH\ L,P<30&!o?!"VL P ARJn 'v 44"J@,+L!pPk8¼Be|3A0~dfsL D`0vd$x `X ωH9b|VaFaHU3YSRkBg -'SE9M~g0R  AճzWUgHg0G_EAi44#Ih˟WNq#o4x\iW QeN^@2F7ȪGWL;[+?07V@mN)$RW&R+lTXRgRMZŝJ%ll%d>F.ae^YlGW Hz$ UU{sT<ZCmB(O0F@4fC,2W3_<ޫC`iPxR×Mr&jРEAZ{k[0-Q+f5lBB#@k<# θ(@C0 9f]Zaq] Nȁɮ`.Ӣ˙V^,:4Yc r 8ruPJK<BR. T%"vbUH;x<`h}n5ItKX$ u|&5R,SieNl\`^s~>X-DX2G=Xsb!dg䟲P(b+}^7hTxfg5N,32'`&n}&iPqz 5~@1GѳPmB pSVP1zllTVPOXA؟(śh8PՉ€/  QXjvk!lbKX?^I<>{0AAPՀ-.ǖKE;"d?ypw= ðݑ1]};DlDhVwP\`.A A u:A4~<:hHJz%B3K=ԓiO7RZmΨ֪{y5@e,q>j"s{j@X)Αn=i0ƕJXdB H5) L^6~Iz,;4W~QHmOO9g3 P1A!" [aWx!DQP>TA  (?^3j0HL8̊hvDKk}&y}=;O9/|}҄&+~!\hFՃ,;/Jzk/3pq'6Mӧ sP% b_;i҉$g^ ? Ӯv :WB,6j6'xe8c{\5@`{R՜L? X)FuBrpix `37S8i)M"hUӦƱN`P:u{c8퍫`8J~3vGj3pi4WSϛ{DP.3f4evJ\eZL|`ڮ(Eo< B,>1^p os0U  }ӕ -θC MȃT~3xgo,/4Mz$ `ƅ8je_ bj[RR< Z~Ϻ3YɚS͚l uևkbh9VLVa}~f?iX-tAL'9@MA|>wv~ !h 5A%* Sb Ƶ"ߎ!=H$rD(V `Ѓ(r5V>%T _ /GȚ%/=:Xrt=W5 >%(}M0Hv$P QǵLxO39 t+o+9w8bٞy (*b@U^haˬf!bu]-»|h/TD&2ܪpb0d fb%kq2 z5o<|ߚO^'&,H `U. r]z:m啳o̰>1!Qg3%(ԣvZ-r9H2߇1W(pIuƃw0,0bN(MA6ByP| wPsma tq&#sISh'~D2¼s czj IynL2Ix^=!Уىxz_68bjw02$:tCMa#}k9j$hLj#8Z_Y݇r|g^]8Y졤Fq#7wb㡷69g*DxYF5j3{-ysFCTcP$Xfgк;j0d YOU(v)'m*U5D>$c@LҮxXRVrDK`8!ef$v50\ N'F4*ȀjL @LdL%쳘68&O DX|]6/1 @gʀ@RKNmd؅ ?NǍp vFQLTo:n 5bX כֿZtsq/؞j ^Xio1sb ngBit]8Hܾx)EMVƤ)135V@Y0-!3 ˮQ>cZrazZP1_ 9=nGY8D鷁\cLU D b]b`' E!w'gDvyЉv oO3qLYb.YPp'[;"6nȾ~|*d /c.L)nm!$: ::.[y:p?V%ˬ̇|.+BMX(HX{KD 0 M2 (~<K5G/:A[1/YXMų}xVN3d3% v"gy;(Ze,N4R}[=J,3v!Fu;5  x"Pub7rTɈ#53dc*NGD:b5=Sʒ劵;#Ƌ*~F1sV>qI°LF_ ~wt,͛wt\Q $?ǎ1\Eԣ+`|Ѡztq=8ftrGqbg&.\Ѿ{Jw:6lQ9n 轨A#ߓltx$^1dL~ϋH&Dv3"!WEFb2HiNQri0e| =7>[bQ{lo)1_-b܈qYNxfǛמ7 nW?Ď쟈ഀ&d_׭Q&srV DyR_c*yS*3@<7tGYM2nN3?dtL"A'ie- .Cn`y2Oua=^}hs6Д+faK)?y gCj zQ][ZIF% oPIr$x \[־g0DԬn5dS9@m]y4dه%/S'4vxd}&&[ gszb{mݰBkv\"`?-0F#j:l۫Fye pݦq׊N#Tl-^))]MBnqOi+PA0a+<#ojf xHꦧ)YU4j.yITFS!`EƐ1h&]G^l_YN41  rZz~`VvLڼG#% _!fO>t^ ^=`V >b2(Dz'&LUDp)TVMF-:zbufC_Yjb->fv+qęn7NϜ b=(ECX *ƈN~{ ^"4S2Yi:P(;<!xq%1JII"9+᜺;%[pi4i&fL3iQEC:Ü}gc|׻88*56>WʁK5P4ɓLuT~s`|h7ՙ}[Ȉ%pQ/5xQ@Q-a ]e`H.{N| k\4gjReR +gܕ}JSʦ9zN9BWŭ7:Ym:r'7, $(bL wgፇ;xBO^уeE_zhS@_WD_XbNzlSOMפ3!l \5r紙Ns*g/ Zö .XDD+pc>B+7hL_9h.| M-.wƷz~ޟM[sMhĶ)HP6=IqWںaZħq=5BIewtUyT۴;]^V}6("opxqv(+Oh{ gl ۝ 1Mr݌I'҇Fy^1'cu?Mj@3 ՜OLБV˚=wO8v}R'o5?1Ӳ*v54eS,b-v1{a Vʔ$CkJ Ci}wWL@'P;<*+BaecgV`~2Fgb9Fy}Az\;J9@;͊pm*4mp|3V+'*D}KNܫ>04籉@6w]U#BV5O zֳldvG+1''N ~riud hG ƣ:x%bdaml7϶_td,h}p&qB{z$\60BqҘ vf?v9Y턎н%5BJ#gO8L\is0c1&ZG=Q%B-5Z8?21+K#PڶjiDщ]PdIdJP'ˤ[b8&,: $ }1ŇH DT$457A@/ӟ "j̑>Ġ3D I3K.ҡLK&+i b>kYD5SmrېnfCY !w$DjU'vܚAXa,gVe-©0G[<ܪΦrʾrm5Z*L@ "3iRLp zfu P$4#򁛧VI }B=}ր'{d&-k헼1bpە-{kp41.d=>Báx KXHή^#BFE^nVjc/+R(-^As؍_H QPU튐r֚fxu |$:&h$`oL(YֵZ[Uݮ]_pr ؀aZHmUБogpJ_߁?\ElO:(trmu JͪDhGwQj20}LK z*^"Kl kBZulsrA/I~u˯'ɼz2-siY*m 1;LNyRC h'7R0~b\&od|b[ 3(&Ę fWȺ-mr6 pMQ"l@>ãuz'/?|["𵷹1uͷ(3`&K*z싁3&Ấb@)@mpOg5쵑4H%ՒikP-]HݻZ뚵]}RDHn vp1RO h|$3/sU\YRL_mj.n{wgO_pp ڮdI0}XT}e:ZfD6ϵt_'yߧ _s^ 3c/R VZsՈDcm27* a-x, %L$G>hVj)AsO[>2iɼw?7Y4f8ljLJ'jZc4`kҷ]c*??[g2w̩~\YS}^Iu`c<1x?.\MN^ !TQ 14{޶uq++8⚳mmg3BjϘNw|G_G,gس%bIi*REKK^{ nX& X͇́Laʻ ޻Պ}15?l=޻)o,8~Xtvs:†cg:n:+_;CV~}?XX`aqg-[%0q՝UAync&ཌྷM@H6~ ILzzL0|idӞ,YA+ej@D 9U١p:6"m9>qZE=}..~A=%ǁt*ĩQԧT4YKZ×lre\8k_>}@ lkV ('F(piK7QXQ[5 t.n-j7yW޹ |~6s1)ϑQMX٨G_SYKJÂkܿkypC.O\~#3 /W9z!޲.:/{A+ȘLRLU8ﯵ6,m͈` 3=-2qKjrMQej (Hأ \\gI7`Gi@C@M#cJ>Y~Q+ dK+ccD\P!29'#\mu [h,:BŴmGRJ5hw`4U /(BBK;zdS̯Syϻ@r-jҲK1VyugMՏbJ ꇑBC(= e>VWj5L\ aKrܣ:L_|Ρl(*4ڨZn آmB]/ԩllmۍ8]}NkSɏm] 9BHο&Xl#tZۻUY1^cav@8qGZyFC7]_$Ӕv97̲@TL#+SF_,](f9хE/c%z/ ?Bݤ@zXDxbn0xXc__:{猆&"e DwRHo} |51~^Yrr5[jwF Pid(bz^rJƖ"eo!Z3n?C{_߾iDAB\@tw+疱`8B CU͌4 iE#BI6+Dc7n^e6Tp * GZh"0{X)3f|[ ?,@$oV ~jiyǴC鎉M&s6q5La$c.aJUԭv YG~ 4ts(?7" !؆V8=0m=EF\H}M`\?KMf +6Gw9x?A+[X -N(@i) u8ti~jK^ss)$w*xPs.z*ٗbqD fnb+c?FolgRl FLevzyi%OnHM[A5IRwTjeOJ^h $NOQ3AE$i+l6N99|fB)YdTŶ94 7X-g ؖ> g>"t۩/Cbɱ DZNNb,q91=2d}=ճoEVO-&ϣ0̜CU.0d>}ˀpa ' ζ̼%xrڦ;ՉD!*$dS_xyYE|L,D]QIU,"pi3#83۴2EݲSp +cjl"}z) u|O:DzTv;ݑR IH%2ldarfR-d65FD10Izxal%0_ַɯu^E謶5c&rIʌm6.:{P&2ʪ^Z+)o~L?f Dt0|;R\ .=1{.PJ71~Sґ&/T\*;z>t3U[YPt \)0Ղ]݆\JLuM+7Æ?vO;>~O { !'KL<((MdwvYl,̬|G/[*}=FW)!W"W+Xƿl46ba}r:ٙY׾Kk#lԟpܙ.{1Tjj5˳>̃kPU'ʥ(b rPߩ>Fjg_?_>/6s(Qʱ.YFzeCʤ:΃Ϫl$#HA$1'}F к:-%Ћ_T~V_aSCѷ/2+1~-#ԏ)Hc"g =H'iji <;1 mw0a%ޭ 05dGh 85BIXQ>G[`AgIyʑ\OX]y'4@?C}L"S$ꡝ`=&z|+14Z>>DU5HYm/m.a 8cWsi>ykOjoF3Q9Lῖ:y3y.*ք=)7LWsuJ:Θs;u#1g;ァt;P9 eSZM\" пɺn=N0|$kԷ{Y1QV56m50<=Y.jēiL-B:ЉFԬtI[:qzw*U.^"cXH ΡvpAb0!Sn&+mZdO }:v4k_(O^,a麱t՞z5B@ ]p2ZKow`P[_W=Px|7Oa۹+KZ> j&l,NOf0<1 *-C :Ɗ\;]mLCosl_>#B7]^;Z6m0C78sj72'g'`>Ɉ0q?w&;)_5Vmm;ƥ Kg b`2ރ%n+ˍR^0EE7vɲ`BGaV`0AJ!:쥸#]'qд1&E`G*?6?m{ڔGjΛr#B6|=8AÚ3cx|ZmX>\H3?ZyY JLlzk}-܆Ȓ1fDD6lԣuB6m*IǞp `78dkfҮpCӣlv$B>]z 60rweJ͉v2pfo]Qmu9p(W(uSZ P[m=+Eh$#^zu1!cgȌxR) \8 pAfK4 Mcm ;\Ds&Ɂa1S<[+ԕ's[R%kH?|S3[R!m,lyԷ^EIf@1eAuװq\7-X4AK3XVvQz/ QJR#bOĈfL Abpdhd%P!ei CԨcnlI`\fpQuMl( /ms ki&tm^^64w%E|גȸ-o~IoLp>5pZx>>&,Sڔ lN(i6o[Y,k{\o;. ^15&4^^#;![qZ 5jT~kБ , lpj֫ꨋM&'B%BMe*) Xֻ߿22LZ݃[q takoj$^j"RmBP?{"efa&i*z(kX9|c'UdU'uq*Ry\],|ɅɮҲ ɇ<~X6ұ4tֽl*6]{YK"QϽ#9:{Is luET$2`h}6u=TĶt_m+Ŭ0Pj.A $I#cNsTݿeD}SzHxHؘqL~x5h>neתfov D2D$QCJ3@6RtPm7go h\?"D6njF.:r!_sE-k ۓ0. (1CqxZRG!kѩToR֞Sy9nN&_4S2`!㰌>1#6ul>̡ȑd7# "#щL\ lB86|D/ۯ܇tHq\ƹk4vң9c|.ݿ^]g/𧤵'dh+VmOL#On͝snΐT^Ȩ랜aZ}>qbLo`֪38Ģa+GGiDL*T3o$xɷ8|xUIX?OI;V1D&@zN>yu8jMf!+,[V|φ#Soi\U ~<-Z5xS,N`aa&_GwƩ+leiY08DPhb;kn8oiγuY S]~2#ApX_*cNpMC2x憩*4zD; 6g/D8fV_]jLˤ'ps Wp[p0&T~x[Vh:4Xe[vgW^k%jVj=4p*jh M͎8@(ιTڂPyh ? 5W4(f2S BN6`Rd5G%&$tjRp4E "lYFK^j `Y QϝUOhwħLy"Cf?gWQFˊDhFRՆGnBKsJL3?0$}pl-b+-Vˈg|ZY# (E㧭X{/[gdhEjƼF^f%O nY\^6:jV]v0„#R{nDt3ّ]*f-[XCx=83тタs[F 2aOVn"iAung_yn+n/IOK(;o(%F761Zfn枯E$nJq?n1aFMgg&elrZ bݼs"o(4)"QZb2S>s!)[pe,~,tnxi;~X79I"\?ZfДi.HpW&4jN!Unt.)Jfw55{~Zf>Ӛql |uOc4&(mYXͽz hٷ6վaϮaX~@Ix9Ipa JXBN|twtO77h:F!*bg?!~K#b3||ŷ/P[ {6&JgdBE?lϫ"y džA[nKkjN&f:n}ĒiɂmX wLI,?Z::l)f8 'JsJm -^0=H(Ї4OY2}%Z3lb]qY9[n@U`]9O!h|oƉd KD-L%\#'oBA V+l-t]# _Őh:B'tA50PO 4|V6|t8&* -zq5pq:V+َQ;cڅ_rLPX Wbhd  CwiCJ)Z7z30*S0g<7AՈ:a$)(`%gkH 6  Č2t ^k: V3[&I fJ)OQ P&]TGg_pӯaݥ 5gwܬ&̴T4o2ߣ Ɓ=ax1bJKcuq\eHҼ!-l[)CЋ!&MTRm{^[7SyŎSːt6F !tr#kaʴ۾9}!:>s6.9S28"f]y/}́]ṫ$P'uFm JHjs wN䦁!VR fguCU MCTݺr3N :`1XdX2(U^$S^ܱZ\̐Ơ!\CѽH@}R]a`,6I\/n)6Uѐ'>|{]T#˺, AH>!۠79+#BdюL@Kag&fq}].G2|wv_Sc-S99v=9{;σZڊQԶ+?;4QPj(E m|NkjH_S05kbiճ N߅:S `PB#FÃ5hvs4SHMG{GR5)ˀ'B|M"^, !R+ȐϪmB7P"Iؽ[D#twq̓34 -}c]\,i,Z׋auJ,ji;N JgD9Wee ; ?"{^E^PY]nB|E08Z]u0j _=ȋȋH=B4 ?lH"8m$Fе[ޙ̅d7LSǑ-ڲaAJ'] x;ל{pV- e&y[T#iKd3l$9~pP#吙{.*ueA̰=zTv }7lF* m.)+-qkk׋D!l2St\ykCL~ VL70VHNQsx1@ *J!1(6&毦] pT͛\&&JMR0oxy \^]8S`z̮8շ؄S2|sP6Ic)j0_'wq Gl]vNrǧ;IeWżuoڦs|m9q z~ZogZE ۑlM[4rɃkj3)Ng&tl}z[%-- ֗QۭJ MpeZ>uj"P3HȊ(-lll\5 %{D6:}6{f LQN#x!:&_`jsSйy}ʃA\;OP{c%*hLPtGh0\^v@j_B*klaU Wie4 ig9uD^ܾfhuO'/įʟ2Ψ帩l5 i2t2qߴ7ݒzL_j\71cN3U|NpP\ìDM}ËXHg#7\BQ31/gX?] R p2pC$= !_, h+HJMhWZQ7m`qU_hQaPz@fE$_1'EF.0Ʀ!4btEzݸ!b 9" ɼ']ykQ%*{EQۍsga0vlgN E"KӅ#wH&#7 \ כg8EV*N 1/6Cϣ YF.¡G*| -tR6h%I?d;TNY â 'Ԏ<J S-Ik @Njh˦˴i[[~W9Oµ SSN,};C>ǔJ+Q9^BNW )r[=_i":Ɂǻ@^\9^`KdW<o >p&λOus*}0% xF}C hHE~!5@nH{Ba?UVh %/DD\82_OҺSUqe:$DҎ:r -TvtVSY,)6@fF~fG~p^3BtS]JGFC(M>tS] OQ?韷<2gp) 7k!>%Fޚsh逷b[=i8ǧ%̢d'֪ٳ÷\cI>Cj( &]4Aa}!)=J;m  xyKzQC֐ HJA=o5$o6ߖ@ ͽ؅#QHNBtjǸ5d( ,p}tk C̓ƣ_LfJ5?v12R#b 퓪0i;N`lĮ TW(N}hf ~v޾>'M}`-Dv15ֈmd{SsL;157pC7i_@[( Ng5[S4.BEڊ*%L~v!ܡҌ ^m/aSя`HrFBƐ#94tN PЀt{6  hAhgb?ZmW=xI݁0<.6oG˒z"l~݂+Bcx=d+1 wz$'.cc) h"g)s>t e.`{"ƋJ.Rэ7Pn?? Q+ay[ ` A <{KםNR "J969|iyKcIRadl)luc; G1-0ڢp D-")Ȩ$ekߓI\?̥ mn4Π{m#`X2hdŔ.#RrqV*G#rdK]ޯ贞<G5F-m p ׷ c]g( 5CP8OV6ek ebwgcv|}\7fvtV6\];o"HXsԭ#A~9!'j5bPkP4av 5YX3#*1'ʶ{V+`WcQڞ&&V '-'w)@&80"1B4@i#mTDMŞ8 $!aCk>:!=`Vb:㈱A47?'0)XHI0Z D:~d kpzZ̧_^gi'Ln(V655/0<ὫoY=xlM#;jxQZ =Wpuܖx$s= d^`BDyϜJ QVJDq> & B` *6֏Ȁ뛎zɧj L)a~̺G<Ƅ ؀OzMZI:P3pd0*Ar,*F4iMYxi3.Q~NJ!Y2] c!:gAg2 7uD Xrjoq}@&%pT#UcIBH 9@G` bG,|@*6ҢXcDL3a|{3FZ2GYT?5KؠyKY=Y>cah4pTG/"&c/}"7O\yRIr`6Η@t~.hU=;As9,֢8|VU/[s|(bnx=eܛOONz=X-$cd|e %Nrm.х@o3~!|2 ėt2Ue\[Iwy5>.9guX1&7Y^ZaACg?E=]9 ,̻NđW1n!VY9{ewSyZL T*i?i񲏌v7GcAɍ=*>Y)$y*\a8ұkT{\KmW>Dnrۧ\ob7|.ed,tRPoO[ 6P¿hZ8vUP@&|8w ڃTB.\S ~| /xЬ|7K=dZ;ćEvzϸW0*3>aCʡC8:-QxW#c>xC 1M0䧅?h9Fr9ߏ1OOw${̢ٜm3҉1 x܁)vl#bߔV>gBX#,C$a3D@cK}|*w WE3b(3oٜ]lzٕ1-"4`#G(9(F P'!rӹg#_ҕ2E烇-\3/&RH?].&8y%pAT!I8xI2䟜sQsH.z: S<[w0ـsNv8\w/yH8ߜ.u:b֛]6jȂkW#z9>!JLgg4@WN%Ô&o Kj3E>-0<K8\+~sBxW:t}(<.>|m[%[3xE Il G۱a\PYSqs;:,9OKZbX$RlE[ayWl')`Av!d%@oL1j+_}OfT=:;Q{jp)عK7/Sj1L HR;BH.f (O! <\H_ QLŘxG9XoF~sP) M#G;cE]{DS +֞%\p|6ׁtRDg6` a DjT,iQ(E]6/ED[ju"ÖVsG{#΢ll1'gv2C6Ŗ@p@XN{1.O 4SA8K#C+#C&=Lsr &^kf`cCq0(,jny8+qޝl1xGճv~67,e|d+h!%oI .?YyQyXOJD('܀'o펡Pg[Q+"J\98W;4rs8=Ʀ(aTB8J%l".G 3 AHRQ; ^zVHV$ QC+yc:j Q >b@3Ε 9G˜ݨ&\VHƲӸveaeUAi_fG+E^7&ڠvQT$1HNnu>"8 nљCBGŀU}8@WE-Z؜PT(F8ъ:f Onu~liv)B'`ⲁ:ҚcRqu%& {;yIN)#˂ͤݱE~ƭYQShU| !P *ylufq * 1u@Cm} [D?FsV&fH6udOi_Z<Ν5?MtdUau`i>O}f!رS\>]8)8ބhz&ѵ>*K01vL˦,W"yOaa$-]6Q?V>Ĥ>?8 '2_cȓ}|ǀM=`Icْr̕45gx]U;xF؜ьpr6T% f8>OԢ:V81$qN b`89:࿔~ggp z2Hi]%16eܬ&"V"5<*%#$=/BS3=9{1!dMxct *s> "uq;E)!MV* PL'A0 M@AF{RpCTD$ c:PWJ '4JϽHuLI єA`[RcuŸ{ȱђǪc%!7vYtIz > ?xGjB'b'݇O6|,X HG}!!}#:!wBJ1{f:(YE|N9SJ`GlyНAHO7^d<'1 ` ANLӽ.fO '2b/YN#͂.iȩaYkOM-#07DG"Lf} F{'` "r@v<%w[}DN@- o>ņV:xAz[=LpJ\XFt4JlI]}a׊Wr3B|;VYYMϏ*)Xр&GՋey -gƱV˵^Y EyKzp N_>)Yn5pbK" JZ׷ n8ΈmiR90'bMōs|N }kj5EB*g^7Ap:\zGY-lBA"+{stsA#g<p|5hxUϵ^̋*3#0 <IpbXnMfΌa>9Y#g4+(i2;.>wBX`ˁNPF\ˬl ]pb]pEϣ|%O[ץkLK{K{(D%IvSXz7bOyj&$V5J=%!ˏJ-zm N[9vemcnd$hX}HAF#zQ `Fq)Yԑ>W^4zZ&O(e,f:ֻR}]Q _pb~6~g33H{UM eB<Jpb_~0\) 99Θ垠:E?H+mZdyTkf~By** @L<Ђ&Xadž+^fL 9FGkh16'/5𘰘4CB}EJ{LF[i>͘9 S,Jdbg=dU§X $YSr*G OġN_մ{-hӳOY Jr4jC Ps̐aBӒ͐iuv} ;%R c^yMiws^aI:ڳU 0H7#odA#A2Yv\EiŒ`)uW fqD<&P#M4cUd[Κ~$<>x ei.SSh+)8Aנ417J# 9V4BccPH.tC"UN@J/Abf 4: l";F\TB8梙1'ioֶR/5]-z+fN<b*DZE5>Vm7ijj$cf̃,s‘$:}N'&t܏dO&MVH Y(xF>Gߌ1E|b6n 0cϤ^ug5 l[Z+8rlZڃkD9x8m%pU'ÚcCzbwb lkʪjOW7L] 5AUw\q&>spGicǙ̞<̛H֑eZNܗ"6iqyԎ֗ z:dþ$E0Fz_W_Z(Q-Z&L; %Pk˞%QXJʖ^eE~W`\EZՍ> 3 rNNrbȽ8x qxGh3BʍXƚ KfGdM*J;%mR3bEc]GpտV _BGphYTCQ8C&,p`͎Uw3QO2d\VSrkЋBRSS|o;լc45kdQrDR aEd.^ƚ¹8W" b!_JdSq*y4DW\| 5peEcu,CG#ݑ#ԏ#*2lCSe t͐; z:-Z{5[ը. D\E@[NZy@/cPy_o)--GjJQcc SN!ҍRȋ@cdSɐɐ%[3Gҷ礱,J\% >&[gRju (E R֧3Qv$!ʲBD ^λ)ܛJ]en̬MDJ5kƭ l;9#錴V9|z&@I z38.b#βx8ĬRqN)< LM%gq4:tp$_c[:4!^#m{9v@&RahxHSASBZ+u\x,E1 =0:Ij\pCXy ^Er9PE?ĐX XC[!_Tvyp[A=xGlZd#K#f鮳gcvw )"*)a$pZfT-O5[tA=$@亵D- *y?׾pA{% GL2"s{HzЯݓ]L7Hwhf6t-&/ˬziq?C{v!wA[`zG[D?&SZV>G?kbmܷ5:J`z @BV1'K zi^Ѻ0 EM"ջr4JJPm!Θ!mCeL|gJ(V2sOI"tѨɡ$5ֿMY0<tni0IN%Z hGG~T!)u]H"43V#JeJoZƙ&sGS&:"N_k&U(03&vȻOCBu4S. \c,7ET4@Ue5]_& *%dL{0-3rJWA9a^ =.{'+Ƨ'11t`9< l@*[Ċ2S[Ve?57bH [E?\"jL+d=Vbz c0pm7ވ9N?q*<{/ "%\a8 %\ 47Q!l4!_LQ$1G.dm bvad7J| ?7h<%5=O+*Ψ2L"5:.!s a":k鱺^ڍN@Q2)X뒨!rYJoq~E[P)F%"d6y&)B'0ocƖ;?Hy8i,[l+%XeĦA | O%Qҿƭ@B!xIvvk@;q_Y`\g0F795Mw:d^GH;]"Dcm3Mn_*e~ԥEgIx@l c@ɂEh̞5Ħrz-h+Uto?YAv唷@}gDcdߝwԻ/9jF\M,fGcEE4x!}s>rc1dvOjU@zz{8pEЇkk7%``RGd)ˁ3[¼rvsЦg塙{e-ܡ8RښJ&~SBK9P-O9qcBt8luCc1RIw31T6GK7y3Fyg D-pE}-0Y1[~`?՘]sJ}s%H<Sdde kH|ϣVHd83qeEx%5 RD^R 분,/jg"Vక |v)!5f@K )C2QX ?$_%~}ޗy.V 1pR1o.]0$Ed1~+K`j4^8( {.>)>aDB IKTRJ[v>zo 7v ؽ`\Ԡes0vl/S$WcFd$T`1T@U`K8bC2NG[㗻QkpH|Zeh2qwLFŔ{Q{eЮ>Ra|{IHf\d(W5\T,*E$_[8]N|h1/d*ݝ͘d wM:'{Mܦ i6 Yk7\bև'F=pLU :a`kihڄ[eᡞph&G9nﳚiV )D=:\@8z H{,MCCuʗ$t;&/d (t_=a6bI(Բ."%u*7Z1M 2J8%z |fv7=0@Υd1+e7QM:BJP[fbNazp8doS*$'%~}D[7vR7Q9c=]})'MA2= \v](¼Ե 4y=Ȫ0Xvv^uMf풱Q6:u4HI^K.~uԱŠ\W$"^ꆱBev '*yj&$1bchuYȁntA7B )5Mxt7~$^W_"9cdrq)%#^D~ۈJ\th`35RGxvCrOM!z )nU5vLx2t,D &?X=l=8ч[g`^CgSG-0CF}RN_{drrک4#^Q,-Ԯ ٪s6 JV rNP#R Bpɂg<9Ytұ9<s/8s['LVӫNK>dpsW_L6hl!42c6NrYpSD_Jm*~ljNF(ZV̢tK̰XǙFy.NBA}3(̡2V̿3ReDkw3/A z ZFϣ2:\Le0sM&Pkwk2)s) &G'p2t2pd$kkegĺBaK7bJuKY g-i5g81(\nf::&`5^KB,v7< cN`la ȥOв9: ɏ塩?5gmk65(9BDYgz25eH×NpryoqBWcjP12r(_*n}ۋj " 8 &2.<8)#8پ3Q}b1=W "oiD|$)c4dE7/u9} a s_^? >OX>67skc( O-~-+J 4欻z&:m}KwɄ-2/56=՜Js ,k7CSuu:)I2fZ>g 6iFu 40ud{jEI1 H:Ö9>sa( V_'dԇ580KD Dltb/]#harϫm(Cet_I-,g8a͵|g[k_ $`Jɴ&U<ӧ.gR JGN"ut(o(XW/\W[ ) IB6-fv:p4:hi2 m1DAlg%g (W:@WB5'䄁d!)nxi* =&/ 1G4}2T&SZڣ:=Db$^{dbLKbҴ.#e8uszcg4 Y}x(U`U g DJ~ỳJjyMNݴ"' ̞wUM}+ԄsF ׮AVQ+H;cA WW-㡂]AHޟ'&[%>qy5ݰ>) ~.jc/ϩI8 iOIG{}D[(lt2S倇% !ǀtBJ ӹG%d6fW`' ,g^_3cEUF315ytcr%=_FuwVh~7βbĸR6g2fqs>s.ˇ?f˦}ŏ)fBq#4fFt/>gL#(νk Jfc A@@h{*Ng79@Mƶd}cZ(}.q9{_z>$™<RqϿ\.ۮNFuhuP;"Dƞ]\˭MAϓd+<P RbDZKE.0)6E =0I)Fs]Y R5Ůq-hͭg*?g̭%Jӗ!tў;bo j9䰆`Gh8ZK8aDs&+5D%rU?vVí1w-8&h7pV(?:<n%]^?KǗ Rre/W[Ƀ:#Ym qEe>|)P=ܸPcV^ՊYhj!p?aH3{D * ɘ_BbCL),@&sUWgSPm-J̛T0;M0U gE3Jpx30Lj۶87LjiȲD K @BRU`X3~`l0$\m~ f1ѻӉ!̇ uxWct3:cR#Vgx.Ϋ9#.FVL(xfv%pct A*ֲƍ~BH9f5fLhaB.> -ϥ_Q p4lhr78fHH\dS:Hg_A͓t:$2g+3h2?/ξuzuN{`PL8tƘ}1^Cn闔NߕHl:bIs <ۧB2K^A6͠DePvUpڰeef8MG.]m3db85P-?BZaLeUv"$>0}j;$N3ۣ D¬k8ұ$3 k5,#{oA·\!FuN|g} I[Fڳ:Zf7dtis17iB:`SvW3^ph"|}Z`: eX*$rMlb"k \dQa(ql{$xZfs$J:7I 3F @9j b!y]9g0H 5G4F8O {rcmbcU'x8c~_Z䔃 #gimtgSZʢLZ\|PQE-Zcuc.e)4J)x;'nnqkN̨Z~턌R:L"vHnZsz3>mjO XLAW!ϋW>$:SfQ̢xgvIV:3cTC.0Ak 1@taL`-)vMm*c1#Lrr>XgGhݾ8 *ĈLPX|<`u}x%{"[Ko %}XחmgXM 9&ru}0來ϷQQ>TMv,BILmp2ˏn@]QꭝJ՗( !]2J' 8ЕU2U  սT,U)|\\=Sh빂64ъ3U_Vnbm%"Tֹ̤&8TR*/ u`Y)_b MS 73wttAC.psZVbA-#2SL\;>`-rkca6O`FH=J̯q4/&FO,kR{24E,)x*F E8^(\,F.WI 9"c\9H891o [{..h]mcg Y1M Xː23#8`#8[GRR]Kb,>g(yOn=-aKC<kԙ>FUͽ<ڻfG{y6`y!k-bY݌R`Vw,{>gnŠA}DȾ+XRJ_S%*Tεlȳ.g#}>-W-F{+Hw`oi"NL+PX BE }gPmS07_c;2Fd͞Nm쀎Mg9[7Z۰ySz.<'%_NX2!g}Cx Taj)|bՏ̃ueP$1π s2\E981҄=)-%K{L,&"N:{#y4CߚDm2)!#r+;*=ܐ"W$8i$NPiQ aMG]-+pC<s+zSz!W%PU*gX?;\O9-k,O1lzvTG` f=Aqo]~5€sL1Bd^B_6半!}W-]z /0W%JyWlz1HW$h1s..hLe I9l< 6TgY㕃wfTK7z˃%!FS2\LF&#6s B2e/*2fc"a.1D`Q2J[ѳs6-gi:+iyVM<ߩ[ ȧq=Z4P ytN+rw. tiY|ig֖T]=YsHP'4<Ǜ9ۢWR RP4U r׬'QatB5b+9CLt24 hCEA%XG~b]j=%6۲UݢIC! /g<خ(3R֡Zi@òSb˔ pxxڱD'oXQIϙ I Wրl D*;Bs-+fH)쩴ճ1d1lceAAw>zMeR`L{8w8(C}Jڒt3 U3sh4!:KI @b,'` *"r` ;~zZ| ̨PB|cUHl=i`!}>NJCع ðt:#u G3zC d~Tqiꙕ7 ^PIŗMd2V0j!;/(-Ӆ]7 9 %L&HXܺ~>krSFaSF9ɂB"Y^c]L~1cܷ}?HEA?HY^n~ UnPqө hu n~f 6h;:MnXJ|wOFk~ J:Z=Q c HO3%>QE2 T.vT SQ%hPb A` S>DCՂ}P|@q~͐tT}E=!XSؑ)r-J\Z i HA8|9gJ ?*ҩ'0Gl@ӀM@! Ug9+sBU~Xqp#Air G^(~.U4Q2U'hAF ^TFaz-F؁6Ϟ?1(cqz?aa|IGLI Xq`P@K#b+!5Їx1ГB9;ƚ8{i Z?wN苄R6@mx'OT@Jkgd% )2`OA > agw`0 Im"*fbCup"D&}8RD8A+P Yf XC@0m1hAR~u4::*PM!);90l>YI'ku4(h5ZkIACIGgdM (t hA;1sG є 3"{g'VLڋ=p*ggU~2 ]E> GЀ4U@l2XiW @!O Zd<-#Z;H|4>";3'asl7GսLM\t xapd`؃,OxjtI< X3eRЛ (i'b 'Y[ب tH0RoQ8Y΄NQ3L[%GUo@S &ʐB` cvA/)0!M A?"ii: 9 9CMP)4;"l1d--1{%ZW!?M Jj)!R0h0Wd1D|PG-ː1D ,{PgU4k@"vb:9aE?%\OꉡOC֒ /::8l6T Γ?HI[L5ֳ;[V(Ds~OWI?OC3,@{0k%5T]&qH=H~;M.I㤈: p?a4T+y'  $0F-Okh(~z~wؒ=CKK?cRrUGIĔ#֪|y)؅Rf6F_Oct}:nX[dzd$L$uؠ0ӤǠ@&%8,@J)e*L@4?ψ!Fܟ 4l )P@ ASHHbi ?!Af[;N+5) 136X wBCPC3znb5!q 4kH,n - "(xY98%\5: 6!( [=# H!/f;? 0??N-V(CUq\D.sRT.741㵱]%[BV)M]2rIAx_j/uAɫ_ꔱ<;=V 8uYB .sm˧0`Ac\Aw179N2 4h*Q45 @fXK@ Tq} mYIr 7SÙwK;.F9m~o2NR3>N%\brV${Fg1wW߁%7:0䠢믢`r^SDPvKJKK7ÁMOx qEfb%=+44d @W?>lמ#kkƁ-8F*D?TxQ#8I20|'8'}G;p997{IH  OÁO 7??1c8\| KjIHbQoՃBImz(Ɵۈ L8x)փ lK X$en 40?mրء'6|TLMj ݵXXAώֶ\͑44T YJS?%[e z7I}#D冱 _$_PY&&!/Bۮ8(Ȉc!uXăg+{{ۍh?ni@{!w?hih1!g6U%$}[J OY;?:ہv3lIF=ׯ112)2GrQ2217 @!a`ڬPay@;bc11c"qVCg^w%࿃Q m D Hܝ=b9b>!{@Yh *a܊w= dDArbR5H8Mgyv .#5µ@q8'[+ 8ޯB,BH |%;bsxL`6R8N?ĎPg:_?̠wxa1v<PzjMi49&<|PGEEQQ'ּ?IM\}Wi?ՊwSZ  Ngdy> ZT 'AFQOJY644Bub+_!'zOmrhSvih4hmJ})($yƒe-Dg]|.'E"}Qd\lh~ nf!F'LGf`$jXJŒ!a 2vXUIGEhIBM#m-S F*(-MM٭ӯf:OQYFVllm @'PS|k8l +VOB t'?E/qDkg3Z) RbGT7Ug(Oѝm$t3CO>)ñ>D+S2E4 l|V?@iz(,s97N{Ui5̥ ! 5%RB@(I܆UNe:^c$Fm76$ u|,O+cEMd)Y?KKMGI!$c:-ɀ=ϰzg`z: <vOw#/5?U G"!Gr#ꈞMrmY9>ؖIcafY\?GeD_?G=/1lj9<íK,͑(!%WKPY/__jF6=f…4txr=-hYŒ81+h_md&if+CcfNQÜfPc2xݒCQR=bzmi:+$$ÉO ā:r2y%Y45T${"Rc~Tk[^v'iZ{G3;g?- $ťhIa2suƒbE~f٧PfV܄|4P 1:X.kE%[g32$0PA]c[a: 0XaB|7@LL͈גT &u0QPPvg 5O~ XD`*A|4 ځc_s:U" a8U@Zc6sh,ağ!$F_Msu>$P&FIvjAdi5VFl=֖N 2b@QJY)c30[m8 g(A;laו:Jz3ZCC'=\td1IQ.45qP]3V?Miujy{J<_%&linb.J/GfEE%"xi1xLssrm;<>:95pVLAGKl(#3 9Ag_FC9BR#?wH?P^I_/i$OdS51LskpSk;K_F uɢe%O͓c%vb~JL9 K3Y{3Q,22 Vyd+Ɍ w,bR*ϡG/㣏>)33(~h>0 y`43 ,UO VWA;Yu*>c1${l{O76oxu/3Y3~ 5u|MMnܑ nk:0#d_ d'%RR7'%tNfsų [1A90|B|R|RϬJqZ cy=yQPq;zz6"($)?:TDIUR)hai9); {}`hMqbP%E;RE*T[r:,Yqi|&GCGlS7J#`htdNͷIXEc5Ƞ[h͛Ϊo ԈLj9{?N 5/ ٢d)pm xAr z3'?.-{29i f?C#pco;oC9dApRA w#]!"İbhA@Ʌ2MhS<ɜΆe'?&f2e>f3`8cv-<3*{"?X{msY?fqE " 2fRO}q50r&WFS!+|Qj&G&MK[IOcu3YYӨ讆1 Sk[̦РgU6<׎;̧i࿥$xLǀcOff&? u;9Dht4h)bKVrR98`%(xJ=m9Nh'ɟO`b\!h^@JPOߨ&'(_-`ikd=*A·Jw4Y$vyQU6/ox*S%5 )Z?uO<1+6E[bg\aaBeiPZ[ºcEBpbVʳNg&2̢)[\n;<)KIK+M|~ZT/Ɖ.nٙIn¯dDIj@2 VA:W衺d4Ԙ{G_%5OM5}`vU}z6"^23.JWVz'| mp^1I<ם_NO]#>?HQL6) `!V|ϟsS\>zRTͥmRMdK E\4K:a$ 5B7xnv!Pr0A( Cce>EQĉH2@0\ ԰=$&L\9 qG0Z)|ǧk~ J:Z=Q/%&Ə/S䤘T`=MT~zZ </@ 3ZA!0B [  !0x% (fpbԂuj>5%u^-Tjzq!.![۞4O.Qowm-$'4yl`j;:{Xħf .JRGh􂍨(Ȫ|C-*P:ha2Tk0?FWG= @q[pbSCAӠ uO|qҤIbƏқ so@T"|vP@8_6@HoL߁bPEM FCv^RtHSj: NACz0_^"2 d  _CuAUκB^@;S|A 10R` d/\B%$ ( u`$GQ5 A6[(=Y[4-Ṉ$GJbb&>;" Ѓ1cc&>;: xg#n&LX#@$|tvc b莠U x#XF[ђ2t 36s@H#(C I,#*[j 2Kp T' 2\ic_#Dr} ! V7 i" @ ڼ P CS=XQ!D^,/T?>c K{"ka3@(lIdL\Ծ&@.A n&T6jM\/tpE/d_:mh x& J4]~^ HQ,% _ \K>SXk 6@1C>AH))d&*dz|TQwT џjOY٦ 54s@2 N 7yl @ :JePd, 4ࠤH8 $p~`409l 1@@P &A: @)BAX | !"LFHq0/D?*ep ā  @MB pk$ ,@sCA<eS*```W$Ph/ e`A@ B H8($@߅ 048@ P4@d 87A xX- r\@2@@ =P|nAX*Fgq Hpbw9 M?WA:ZtV%zrj OvPFjM[Q(n!6 jQ`VqU9Md7k>S 4 !p۠@:)6I6 !f@\zM.&r|}@7qKc`[]k=$Fb`bYtJ+V(jԕjQq<)PX0`7zq dOA=bh T C&(` ={@U" xD_-;ֶu>shtxAAaf$C7PǖƣloQޘ&pЭ!Pd@ BAB0f8E։Ac5Ocgz=. $m&hݶn4^}=svq53v;{{g7w,HLYnNY}sx~{~ s^Lߖo3sq|ۼI|n)A^v1 @vH/~G I 1[qрf3w{d8lcH[Pt 3ldf@LllzB-â[-\f6ln\5 `^`xGi'i5R׍Jgfuɲ3꒺< *6:̶V;~s>K <&`@`PaAHH ,u)̾KAp'V~!E+D!8TB{,ЁCmt, )5ܟ"RLƓ=? Js3tk(~F<~@2BMFxp{̍>w @ <&G23tXpE^++7W-,_w,I*,wSѾt5MOlpGhy kf>f3w%.hhZ ϓCD[IGD%}"p NaB{HaBoZƌX=)[4[Z&% Qf?++ag_/i/KzgqĊ0Cٞ˹?κgE39Isa=93aJk5K45WV_1_֯z=[?_wv#{oqj7g]g3~~_?M>i;.vuޢw;;M;֜g7S3 ̴qѠt{=MOIOCO?O9[[[[[Zk,ފCE=h{CвГhhi/o{WfyG ?F{=%COY4>O| 3}7ͦmzmW]iiz_ңĕogȟOs^>{}}vuFQ9j%}@j2Uܵj WI.]{?󧟠PMPePBc>\<2'5ڻm[-^Wՠjz{VsUxhz? :]q6s/\\O]"{5uֵu.gZ6ˬqGQQ/l?=a,;ױ]y_3KRj3OOd.hrwDϓ6L2ǒ֧~_---/ sK++zUa_ N (r+%<_?gl;>V7{]g-&!"_VbΧ[S9R=N GPuP?ey? Si};j}QUDU(気`մm>ͦih{I ?i 2Wޫ5e_kWwUбͱbWUqUԪ}_ڻvUlL aY ʎ%[moۻwYԬ|Ք-f̍f2tnmC7%-QxV||zo9TDMGw~W}udf+jiÒ w{'__uUƑۯ  [sv{+r6>^w+u-{7!PNxw#xm7o5+xyݙf5vٿ I֟7f3g5ekV6&ƾ]R:~ &~B g)gW GdY x:Ϫ_?OO,O>ߧw}o~Mf>Wswo'ħkxKp\u{>}G3>gݔ_u#w{n>Ǐǧ~*')rx\3r9i-nce?m9Wzϙ:V}+.=-WKIҘJtt:<#z;΋NףM:9>iSh4=EfՅO ws:N#;eu$:7QSǝmwN(e\c!|ng5Mr0Α)oK_;(&;z>qz~~Pw׾޵{Žk{^}/OO;_k+{Y[_߾w^'qz^G/=po7{_rwE}Y}~~3coc͓q?C{wwJs۷z~ߛw7Ͽokg~t~G?{r>Gvөԝ;opmͦ5qc_`{8L!?WczDo5nV7rp9NN'Y4Y=EfG!~ȹeTe]eDʾcy1Q/SYMSmv>D>ܿ/~._eBC!Hq$>i *d B9VVO1&Gx$I7m4쳶ѲعkQls]\٨|3_%z}dܽ2>̡LWLbf6Y.mfo25>s9Y_TGsZLUƫī+@No۞K粹9SL;}zv;gq޷~wgsw~~:AhtZ ;A C,,m{dKz9~?g9vCРЛ;ηq:w;7NN8~SYϒsޜe#'"g-g4fznal:E}:/{K5tNuǗzt}3OéUC!B;kuuMoY=ޯ-Oyuдn4QX.a"}.||g9;?E_Vۋmv55`]Žui;nyF~a?˨f~^&g۾n{NwYn{׹d_݅VkOѯ׎j[ZuMW5Fv_ozK+7?ro>mSkjYsl WWhx3*wNGs=}Vi/k(}xW"nyD?!!;8>:<~G_&*RO{rs6c۶vmlch&~g[qo3O̿{Xyt|y>^3^<[sﯝ;:Gs9ٞv+7;n_L3}:^Ed;ttKMM΃t;ny_u~ޭGVOV3HQPNǙW,qqq߬ߜob6/`~þSq3o9;yos]{3g)'Gsw8ͧsS#{Nί{~wvݏvw!w_=E?h\n*n5W :!Zԇ[>ݮwTsgBn;+Yoer/=ǿx+9*w]u^ !?}_<~]=gǔ_׉NjXEx|S'g?s9kKΡ?C}VsuZz~5QGwڍkFGUQYn(Q9~{DR=Kv84ԂR:M/~-7-e~-53 6n#MMM LWׯٕ)'^sItT;T57FzEF_ʫj*ջfV<ڪ zm3]m{W^nmVmFY2RvWNӟ]ѮɎ;o+8ׇJgf__ЯJ曖 ]]C]<0q'yo^~gg8G'K>>WYP8v/cxoÍp w56by_=B_G-hE~.6ݎs赚-&cސ?7G{zFL_tOn_ km,lrl;mQmh]jV7Vs9Վu5gYVp>Ƶe}c:ͥc zk)+(5՚Mb%bɺrddc ̥dudebUdUd=d-dbjU Xn۽muoۿ[om7t;lomm[olmnvf{jͶlmOvmIkڭlm-NmoMEv>]k_V^V]Vy<gvz.' `$ {;// _]1c'$BX8vaIC ZYD7?I%栳P'@j`?Z?_iPЧa;XO 1pp}x., #  *l/b0nS1k2CbSDb7RXsMbݾT}~ͯ[W}uocp'8g+v>O};e<g/t{CcX>;ƶ7M ̧`>ߣPd(|di2*2?x`Dnm{E4!P k B ̳2'< ?紿9GCi^E c1V-|Rnq~XP~\[ XQ4x3<ӃZ]x1>iTг@2`;BT?їtM ɒK="Zc6NxFG rA ϻf7L|\`0RՋc1`{mgC߂/ebbF M-1h /p}.b͙b̶  哏 zhiH&q$!aJ )D'ib}+FPnC (8Ȋu4sjA M+Tr__׿_ .k* ً-f:Caa*u>LRO1o`2A@fNo'z#znJvQttAڃ#"Pɢ1Scl!#QH;p, (9+0iPD;tkB$4L6?#mzԾ%>٦O (8!N 4:#@Q]6g`BHB. >x~]B$"Hyפ;G:%C3M(1 A:F@,"& M@rȾ'; ɣDŒG"*7 ZQ6K oix@2ᴅl76e0d9QbY{S35{Q6Q)Q*ܛ!𒎜ݘ`F»`c% PR@rT2M6J!Q:`FONN% DDb|"?Һ0_aLWސfkސ]! fʥԲdGmx5hMg{CxwqTZBF_ݝ_PdDKYܧNvjp qXi_Ư⥣O?hx0@=I}è!B$:8tpãG:8tpãZ ԾGusw5`K;LZᡳg]TdP\OKըcFߡ3;o=bnDsU hd0Nn WDt~F鶘M'i8yIcE:WLcݻӕ V@f*дҫN¤˄&M8v}\,~+zJJ}`Yl"M̜Gq[fȻ~ƕxA+p!f!2ݴ]C EQ!v▣Se@TgHTWL䠟ßY4N(Jeb3(;|?%&l1pF ~AagZ{{;i5y kt"ҙ%4chG&=1B]+}ğ1ru v >&[^f!qm)ڽ ]4up!* 2e!Yo !@SѦ>7Fv.ؾ[}H< ``x5}|@F [Z'ϟZ o] 6;O/ʯL98\L=A?]Tx8n(MbKߠC NNDlH/PRxKD[%\BT{d=UB4l?F+)5@${r 쁀7_m\R4Ռ'|]sD?9巡X:XLnфҚ 20M}C@|x`jʖAuzxoK@/~na~gWfEQkD}(?J'@2}'61I=_jɯ9~e=$[/h IvoA`3J2 )JUagr4ּBoQp`Ы^5zgߵ^`e3`۵9bA $hߓE𕈭sym:O\Kz:6vGNIDr.Ȍ޴M(nr5cI&`6vHSQzO_l  V 6ƒe7jjGp̪Bx!Th&MA{Af_ k85WJ^GgOk` MnK nH;h Au_aZO, ,# "v6:2Ώd^ `﻾u%cuc,9P= = Θ>p N\%4 bWZ}96'O;7ǔC@ཤVT`mdnK=#o dzj*BIN"नǯ}/?n 3}/xxGx*a4Uncj?3TJlN:ubzH誘1TLs^lDnf7-|dwAqAё^zZk*aa93NEPvXı'w:Cϼ5KQ˼\Ǥوu8;~N11rwSF9έ>el}kQEѡ@uB5٦;8ݿh7 {g=^mB7X\9/ii6Ds>1AKXX}>X,3d,0XP=&ssS{ Pt= \}`W/$fZx5vMҫ *0½ +Я~+it¿ +¾¶O5 ++:W>+| #_3;t+NUZ=Քei;gWfQҦVM@&zصKR¬. Vs+HX 9AWC1u+KyQ0@4 }hM$IL) ;l@~ MtBOL*i<#*QwIutpM\=8#8v'$C,,A=~E^cuJJ.9%-}{2c?xR XПkU2\if> |'ܵ"pRo>E&s1a4W>RYJmNU7  .s/ `_n&JrO|z] >v9frр StΕ* 05H.{ṹ#mbZܞk8q:Gr _atO?73SSSSSSSSSSV6[4V~Vս*RK.զqO?#όg}]u-1z\X45(Eu :ar八U>\8q{4;Z<8xp\u~`^&L:L8gϡC>4% >1~l_mKE0҇e3`ڜ7(BMipI*Ekt*d\! gv=ޯUI1&c(W}xjB;ҿ ,e5M %i57Li"L`]AWJ#G(;8vpEQfO(JJv\3CO!h)i[R|yrVSpsTJS:ԾLj9 㒫0,S;SmKX % h3 b`A%Q6^`Z7MB+z?/h)tz !z4J| <=%PlfZ YeCv8w?~m'Nh&8mUbm_gjlWY#|D%KQ3?4> 7gn6$'/7|6iZPQ aIJ#& _eGC3yL29zmaųg-ld[H2lOb<3,P=MU?v8ްJ!a5`X GA"1:tڿx}-U;R% k=sMZ"Zą¬3 1=h13f0a1c 7,BW ,_d]ͭǷն~+(\sj.'t]MpFaQ\ẖͳQӚ{TύiWh")N<>u ϑ SHC\ !Wc0sƞ "Ɔ:ۅH/qOUS_Ӿx`:r+?ad]Q$ qH !6>˜JrPz]nEY`Xlf;yhfp3}K(<-I Uݥ_D U38]\u(Nd*#(QF2e1bDe/2+s?5 P!$bKWR7u_|q9?Ӈu20|dcǑ>i+zWZVo(vJ2Uq+G̜B#GƜ4O$q?:B"ġvRqBzY>6V爷7#~:nE5)3Bjy6o+w^IuW94@~!6]v3)S80³ !Uv\.$UYiE%Y:yryF6tRMHH ."{}\Yxmx\HR41m?f*le=n㉺?oSq' >>7|E`6E\i?h EX R}hϫTtY&h])Jsū;GKXxH<|w+1 +%RxX8nla5Y^"$IKgB_^ͳN^tHΟB>)OHYǀzbWl ]g{t}Ce)黯x%=:$ؒ^IassB K.2xCB_[*9܈fN}ߗX\vh44@2A@lɂR5P`|ؘ]^5 \aY3huK?ME|75K6OOs.F,Z`0g'O Ae\as_H(laԞ&DEh-dlhl4_DreŶohqXjvLzǏXcfF *7L:6{BSj$wmyze yqc H`0@ɉSĩ zvC>(|Pс>(} C S h;Xl>%gTxbTǬtcZ E")T.:TxWA(24 &BHXzODB M4n zT;w{=9CAk2(:h@TP ->:C[g!k>e\: {ڐ[(j>l#>[a`1U=(@\獑6,vQf-WhW9&ɾ }wu'k$o"0|d*1|b:9+BJRj91+=/* lˎs|7|m75q-{C.hp[bu8R1 F*3f8q1ceD;2e˱hG?#~5`z=)Ve_+DGAbdnG%.umX >P2A^H%7[uj@M:%rQJ<$mҀe}#l#"c~y~v;t1!jUk$_H e,t(ݷ:4]KlH 1o6e܅Y](a+Aq )B77Mr]4b c#Fd|m|Z@*rCd $6Hl!a;!2Bd [孠Zޜ-*mRg?Ip$2d!C A  M{]π^v$C/G {HaT[9)C&] / / / sG} M -u ^3A''!vP|= &?>PveES(/PZ6-ffT3R摩#W:~t'ښPcg*E (esJ!G/ȝOrJxF)y/m, wK?m sXH!1d=pƣ2ٴhmD@2K1$ȽH/<:i_x$odž{tF˵PKκκt F<6(lPؼ6,LVdr4 b%-\Xf? FxbJ44hhѡCFFffffRjY1BYلU jaI`@g44NclԵdĤb   ?GPiAhOWHiJxIĘ  3P|0#"#zk(Qtրa K p@?s÷7P#G N 1,5%}$_,O_U[q5) RqWkf8[P6~)t|yZXPy4RA#LHDiMkiN?i @l"[os~mu]t%@b]q4-t]!c„FR4lJ?ɔ.L1rd> !..cCIJf?#v'>@~袟^Ȅ< 6o16a4;+D~ʽ`xQS-Sms˟h \ׇH& 71b4Sk|XIH>eMIM|'@b|X[_^:G_s`Fɰ4&lAѝz/\?kiIeU_"۾ FWޞ/p]>o#,馋v0$cބ Ez~{+r2߫6=fygyIh8YZmKm.gv/ 4K)BM^jrWϐwFܷ1"9IM' Rs BC1dO/ m7D0Z-jFtFM0 o@o'2f6mpѵa6>#30ab7z0t1hG*c ԓ|ho'yg)s疮zk:]QA3+ ەG":j e 0 ݵc&9K+/ ]*:_Kwo5~45QQ6mfij%jkUGB3[.hYi{{duI[ځ/Gه% >B6}@SxPu\_Þf}:4~rn\4ipKz@i*aI6\<@q^{3>X=rꚚIBQ,e+%Eu34ʗ]H"{koW6Y5w`1I+ʰG-NW,VTlgߨ-zO_at'-xڮ򰪪@gVb\d+V猄 ۴r_{ΛdGR ݮM 5a8 XI a! i,,aqY!G`!;X^T *띅 ڽ<$8J8/(гK^blɄ,k~/Y~sE!Hap3_e/5`0je5wSF b !ih|ZUid5X0`0ah{D~Op*RS%2-YdA>S{44S+ w΃pHC%`M"itEj"i~1Drr]}x?dz8/uЪq.S}/zC QmePq&G`qq#Xġ]F*klӛj"Є|wSRSK4]@K!VylrJHf;!,3gpBcR_^7p6f?YO ]{(VT0(`5+ O0g8'*3] PHd[![;b _9*7XIRIkiH9,ƭY9]Z$58o)4vсj4U U<{"VS}dcPU+V@dvĢ}<&vh2XLr"ѳ(gjO {oXI^[Y$HPBQKȘzOHцA,x&܋@\4?{ĸ07)2] q]{:GX{> B eLC}9]B\qKZ$h UtnvzNjEڟ=Mvy.Q%X 5FwtIKsmhsiBBzhygJG,gqW& g55W$\Hm4ι5Y>C44? M1d" aZr[ o @px0Ax"PDP@3:@j*BP !@D!@rJ!@> '@<ˆ A 6D!!(+߼ێ{ba_gX{ufu0UUGx HRN=Y6oMAz}5nhQ≷Xw?D~]jh7_ H<)6NG^,׽H_lP@ ũkw[F\"XLsL )o\κArG$7|r[eW{_I?Zм8z[ŭ9nN h #/}5] OԹ2P@/ <5|G8(= VW\5M$E?n2|v/#F{>&z%w|[XZ† ]Ym|ka45=+, Thal!Ys ܗ7KĹz}҉ u:ZTIϢa0DD (x!o5} "߽X(:b\4wGtwJ~5.̘ɷ'q rz.}m_VbZr%@|}3߾̑S\eH^N(h/E}!fshn+P>xdD˽YM4f֎0RbØM޼5*>U &Yʔ <79Mz+|' G*Tɾ¾'~/TXMUڹK8oLFOU8id- c>s%IrX~@+l"]{/g߭X|<](͂"3o%3zNߘe>Y' ==G` b&8p& )łzM,dtwvr&M\|y`aǀO^!6 -J5\r /a&> 3-TH֠R7^B_b|XQ.:yxxr'GQ܎fDWhήb"".ISYԥZg.T_aѫ )n*;OԽZcؾS,rkcXMLsEz[C|.)B4s^1M+C m4'ZKK.. vs`)A͕|۴ر$+&BÛ)muIQsV?cu>=(X/d>TL,9vK&]8Zw|"n{>jfON~ۺy} Cn࡬(d,VzP|*um+vDG~;~?-Ab:#.bu49~wqq!HM{jcE|9= ˕V/_я %a"ewRi8=>fnU|J:Hzm'p$+-Z Qͫaƭ dw' i;FJՂ)x)G$~-RZJX6j }+ ?wnڵQe2E ^6`rK:^߲37H5b qVNnt~@b0ނJDp MD/v44lXWbGtIQQmŲ- 9}_F? е~|-S,aIUagݚ55: Vl9F R_sQzmH֓y*1z \ҳa^ѩATu=P!T#+Nrp=hbƇ(ͺ][*}Wi1kcjW:|nǞsmܝpGmb0;fu'T ؆i%~97Xϣڐ) T>>m V~t ' |(V8TpnBMOzF:~D9MQ-,~XueCaAFlI(8GԂ> ܄&X"bā W#q">E.Qޟ7PKBicVpR 3a;Q'hzrbOm0ײ΃T_3'(Qh8^eӝco'@s bd7=@]ZS:1;qksk?A<(<ێ=;+&ET&n5EFwkkWbwO/ڮWaU:(Hiz`A?ƙVXŲqd0' n7Y/_/s:>-uGR,T|qtG?'3mPX1<} ,K}蟏Ԇ{VNa, qCb,^sT8u6ht8V `rZogp{J` ƜElX&ZOgp\~yO>Nmmzq͊b#/ \bW1{Hj,,l ݅nׂOwuQh>Bq$< bJJM:35 'f@Gxˑ&zk}/8'#hdre]:'{دrau{{a%}==::Q JS`*}*P܁PPa)XSY+WOjXv;6y"M: GDmG I"Fתgw\ `zˑa~0kIp_^&':Z,] $$HHY $$HH!#!Bm@@Oww8JVx,gN˓["k, \X*;G|o4vixTx _cv.ԇ-Bt:sj})) s NՇPv`?'"K))ˎ\,s$h5mw&2#M󑸽*2e~XNݯLҋڜ={ A6됴O+ b8bT(TV(`ai@EER=~~{Oy7W ڛPuS尉V²\cz}.2]=Dz=:~wOߑg%a◖70jEFЯ?}+/Y|0DAV"Nq&T"[[u/\qW]N+8RA3F8tkce]k3:asEEȝqȿ5d65GQMnVeJ~WH-1kOti^0Y&r'"3oS}4UYrzmb_Ùn UP""q I9ĨN*."\D"_GLDL +C`K"%DJ ;R'u뷘q'D LJ]>*xo{RyWyl-wIHK+ɋp f^މ؆\) _pI ~_VljԻNxmyR}IRJ @3K`X3ѴZ efQiElj0BT Vog<ɯKlX"5tcn |$Ŋ'vP-j]XbK@6Rծ5q@#ڭO.KrH'ZnG$-ZѝFГM0#bb13M\:u g~[Z(Os/s:~u#7WSUcko8~5N֥֓O*7Ǟ\d x'A1Z )3{P<J1Ō,w /ծg۵ B5 @Gw<_,?d6Vj_`4ܾ-5zs,WԲk$P M[8єqfޑ|Pf ISZyb[);_z>"O:T+< XzX%}sa jy  n 4dh1f(>;'dc*rԳ1cء _"r ̬YXITZ=AUԌYQWrf[[9TWV:cj2%غKTe5:E f+ hłtfYgrj95\45D=a0@6 ELK\Th=|DvFf&|ԓv(I>l}=AQ] L35 (W&n|2ǥ<'(V6.+U*o![X 4"{UձAMvjʰArBE3I^ Ʊc)_0d1p6ںo~aɏ,=Re^>Xv=⮗js3wM\Rxo ؊:Mz"" Օ%EjSYRl9]ҚR׌}ZyKTq,ZPRZm@@: r={S/5Ɯ5|ZPx 0J \]=£eȓR OןkAir$C $GEsOm4[t=5m|ڽvBD=fvm;)aF]uİ%;b t7Fɕk#k=ҴgM邳^T~8>0r& .#A!KB_^ЈՋs*3}3YncuU6_CV~Xaz+`SOM /KnA`\L 9\삳'j 57)NTצۧr<_ciGՂG=+ό-Ee਋.Ϫ3({AՒ#6ykd4*b*FaoZ/4vM]u٪,ο٩6~! DEr`6[KLUahCE~!Beu&Z6/zs+'IwV;o_^jmMkzOBq6\?{Kզccw촸[@n\T-+˒nr)FrEU\. ٟ..|hdǕʚS\x4 A/M(3C"t+oq<mFA@1tfE-\˔6Z1NC p%Υj~qR=jy&+q9ؕܦ")ɢVQ#bC(}dlzsVXNŏrOeEre\M'o,:vA@@6J\kM3>q^OE+5m CGKy@DԸ!]-[4LY5|xJp\QϾQiBfP9ޡPtxt+7DLv7o`M(I9`ɔIj\yC!}jChGxMўwg۽0.T· sRdr_=d$p ; w+qjOD5\kS>:ىjx5㭶d&ꚤ`bo*?\WCkb?NY[=}O5z|35kHՂ4򹤗[XvJ٢gl7}~B#B1#c>H 1,YjdɩSIU&MQa`̆x!nbrR/$կ{ W $m:Xr ,Gu8{G\}nۛ|0A#4<)f#U 2JdhR9"<(CN%@p8'wzl 4뤖]"˖#v B6qXq&-;[MbIh[ٻzֵ[N;SA4S;;iSF$I1'IAǪfqhĵ„_1# jo%FoE6pX;4O k./#)Ş<-={j>9}f<ҚVÔz)}H^"%&gH/֟ZbM1SM]8U H*5FgI .HcQc2V󼼞9uv?w0̕Y)+E0i 7xxv2_bHH! $$H~.˿3͸5&eE!م<>0ik=҅S:(R:^-uU:lMiaq\ {A[w[74m$Np*ir EG"t,!ӫîCRܲRax>}C`6ɯɺcMXtĺ$͔;%2JSD ԭo sSUjDК9]rx6MsGI>hwd5-E&,Zṳ+{kOAޣz '!׿Xv7p,9;~,QEƿ7oŋez&m!4ajcoZؓvpiniOwvƵw5ctȦj `>M4]jݜJI0a<} =1{Kj:xw8fb W Xߗ񈿅_4:a4S#qpM0EE~k4旨lP#F>Wsw{!3bűbD BAbэ0V>!V oI/ ]Ʃ j >@OaAQq(fԻ5HPC|IM."G,N܆b֋A;ݲV'o3Zg<7Zek7X뙞E!}+_ .$W+}ƔZm3!5#⇘ݘI=vwƈ-xzY\,6gf 84aO{wi'8/ 櫔WmyD\';=wblr6ۨ/ah~ ?m{Qׅ*fQ'_ @ >uZyQj`54A X}W=~ug"IB~gV%WXql幇Z^6"[ϹaH3hEiB_v"Qa"ʷ 'Jl w2TA@8i(pWv/I#:|]0;bvDl6"; }SA{oD"ED F<7ǯh=#iXsejQ<|Q4al-C=s IoKk ao6Z'h/ +z t݅>%$gpRpBwr$,L\la;^ ;L|UhWLk0K6HuQY;룖o^1Px NPJ_o3rDb3 D{G(vU֓tn~D2͸gCKV(ZV/Bv?>3F~9󭫓zfl7-J8涌A/D,Rg~:{@ngL~<={iGX+\Q׮Wk2NIqb*qWHQ({ #aD}aɕ r:btċ.$^LZݚnya k pк.i]/G L|1!"MJ,mZ#zw6Uѩ+Qp_׮-/D#Zʣˈ vڤ4UzXt)(Z^VYh_Vy౼P8BK ,Jkʽ''!( ܏#Ʒ4t GE9;旣 |Wm0RTj\_7It#ˑ <tН8 eF9BΧtG8MK7o۹P:5Xʂ dAQ|>5 i,D 4GA)`5mJh>jm^Q~ AkB<>fh,kmS{P^X9b QAZ{<5241"ԍq+jc^dTo̍+A[DQ֓yE_i'i0(n\lM;ukk<)tb7<Dekq bE]'}$5ahUw7kq;60׹Ql0r<'Ln|ց8=^ƢyQB t))"{J[sZ ~ k\хZkZk#Myݹݻ oW)7&KG/pmZ*5sԭNt<S"YQuU6 Hߤ'Lc1D'QCㅪgc?Q% %jeHm<*7fd3CNh5j=LԯY;,8g [lƦ1.-{~3}mSb5ejuiMXM= $O?+5AxpAp9n"@X߳lUMeAWNa7r iZpE Οjؒ^foB }W`w!lڤ)vz/G_C8 Ie}VLcČM,3Vxzc0x-r"mkSZ͈䐿؛2]#WoUq.+N]*Q0gX>4y]\+pgSu.P* }M…-O34FM--6s&aS6a&fgmV Y4;)BySڻmwtW  /o(>+d=ˊ(<4W;ۈ(F6(KZgL=҃:Q47!x2W:@&]C[6: fX)>NM eĉ,ma(냮DxAYէ~~DD?C'qg 8o,ᑞ@SO1]s֚TiUnX6+Рa%Fg/w/Dy\cЪ;v'RމbxWSΕA~ t&ƪ ./ֶ/`"')1ˡv1|?KU>(D(SkV:U'~|?+ۺDX$} ¾|ۺy} vմtT;_K1rbփؖ20'\1,nmkџV;_sG[9eymͯlܬ6f75FXb@r}k\:iHj_j$ҩhbtӓ~cU@nĔ8?!}ߐA^[YDP}aV4* 7Ɣ"̆{0+> &^7爔8bO-ډH O•ɻCBڹk=)QjTh*?al"]fʇd1WԼ-z@84x-1;l*V^LB!dUʅUR\i*Sop֙`rHg0-sWNկ8H8H%~A"4Y=?Dp3E2@s_=s^J)fqIȿLn p6 m՛hi|D^Pf*R|)Gġ_'&]SٲUVZ?nv |5[}ӝ=zeUJX-߱A !DN=^ΔQ(cA-b[b~FW_l[AWэkˎE,l_r#{`ࣨӟ%wJ=To.tzJ=Ճ@R6q- ݺ~^76q }S*_h"#|L-=aU)p%EߟaS'+\,=F$ |UtwWb|7(EW9U}, y]vոu/2,:R8 щ_~\;Sl:|  ~Ł]#5M[F>gVf@ƂOk?9VW%isAWz,;$pi T((A~z]uJ#XK}pOu|!AMnLzZ|TjP`: Zxy}`o<2m=.h~~l-(Sgu+'8Z(79o iDZ|0P#nH@499| /`{4n?~g0~a}gwoiD9oL uq YeڪV? "@ER? UZc*=t?a=|?AiDخ^>osit /FG4R)b z/Ó鑽qrqH9;n@Kg 8 =tt=~+>+ϊόό0tD^៶MY(zQX_$_P\3Nc٣G@?e[3|wu?F,5;6!ûwߤ+kER]ި是z'Xu{:m A(_9r;΋85"@ٯHSF=9o,  } kB!HP/}J4|?6E fDĉuit~mi՜5e&hj4/i7I/?H! @n u`̺iWxx=J2bqYlp4~f̞YDGn| U*MgQ5l̺JK臂N&TL/YG}c |jنYkn\SxCz aC=O5~;w1lӯ~,π @yv*4$gnK&L&2B ȋH4BKu* X)z)b+-sCjV. kPK"-9|쵛*𼍞ic1*z[GN?~k43)kǞHO&Rh(wWPM=̧tc+5&fZh ]G;@Xԗ]S1&i;7yylǷYFsUR4~H&>﹜O'DNXȜQ8}q3~<\D"aAo+݉t23j{pmq E5)t/4١:/i< #!҇VG  FgMmr(Q>'q\P@ֱ=m` 00ӵmfF޽.ˏmWgʭ9dCzj"$3rjSlyʳcQ}̇Jʂ]Cbcvnj糑Æːܾu"X7&Q~,7ώ+ Ch6\:mM+"X^;ELX^+>fF:l G }i^Rck ;ȎLM\zBhVs!$Ӟi|8YY4:UdTո} z/%5I&mu x߈%_t Yq4 n4}ZW=p&- :nMjƁ4#*Uªi?T. 0FH`4T.|: YT9?^0iG1x;Vʏx7q*ssJҳAws auniњ_2ǦfmNfZ)+܊3/DEfҦ3⎎I;^)~@#}m{e.)Ro{ -t d!w4du6w) P/֮jV+%1ک`qiqôvAyOj+d׉߲Mո,row&)y?wݝMNcߩOʒ^.q0598x^|zm݅?gg␈4P-(ؒK̬W#u;]z(Ֆ[}ea I9H6iO7MS@~}i *}"ih@k$v9<ݩݧn ]bb::$_$wH"..qS~oa^]}^tl Y-PCp@|ХedI៫iUXi4MzIj62<4EeR9߾;ޓ=Qw J_KںxZi 4撇q۪yL3NK~~l?+A`F=g9x .D9d@>ygoO"kUyNr.tvXH;uvj;a;MBW8%N:&d3b N'yڜڎ~X!s!&By1]w1cO7Bǹ#B圊%luH l@Վc'MjOb'W|W|,`|/wn (L"yv%~ aPեqlhXonhqsZ!4-a7`iҳyM.L{*c fosytVz+1ŏEWQJ]4f">,Żzx߂)I jj~M{$8!Ծ."dqDe:e/w||N^ӁN.E8-6ju 5[?J!1{q:+^24!~u Ԯj[ DBa'RDUUb.U2^'V_s: j;sdXv_ zijNԴ4f^P>~ӶI/߾?Fp1()|FR\(*>TC((^mkH$Տѝhsin dk1j5@oN]7 2td>7Zc3ýhh˻a.}چ``M U% Ț PEѪ:cA> ΊmBnE$R n/HQP%NA01lz0p:퓥c '_WFWC^8+ rL+uޏF/Rz MHq VB&VU5ai6uƲctH^ؕؒN4VWSP"ϋh1 "'Kxs> u8{\2[[.SP,i2siO\yŠEh,F.ӱi$ඌE"u"5)]} ֭ntݓ¢A/BF*qucR 5Ov2Ѭ#X[XEҍe﫽b*"僖X9`僖Xlq-Ň}ߞI#8YyY9tғo/Ù5ek̋'OՓC!ϡh w{hIrC[b%鴯ho{mq/:|()V|ۘ*ޓ9`]I;UǵU'/{lPyٴU52>hmm64W]slc\6((tr[!Mr>_uGI3P>;wX_1)1qܧ 'u/QM).'>RV=Z Q΄΄΄΄?WtX2w GFF^  6x>(ڟ6~os!_Yb_usk H)?Mh52b%P9W1́)?7u# z9$N!^usVo5V݄՛$Ιkgm }v|G5B. }v~ )7߷s θς EM*u:-@KO'Z^,y7jOw) |EX~M<掩' ۘ4Ƿ_<#FF1M°'hdB !Cgr=#=#FO j)&ZeJ2?Uɥ*[Q\ATomu3u jcv=iHx :÷3w ~Nve1,׎>0QS^Stc<̍Q &{G.<:2u$d@u. c$@$F]BMH_-6ESe$JzC΀pM6Td ,އ'#6Nt&4)Um- ,uSLh08}- "e* M73Bfs3ff͙3*fTy1'?<TΧDoO-Vq7"nz͜ EC0[ODސyĞ=IEdW %ԴaAbn0,yfTk.w<`wd ye:F"=@Q8K[/?K é9#WOh`nA)ٯB FCe3#eϒII:TT]~Pf^'ߛIp@\ZЃBJB2Eb{gɾTZN 0ZKbzcIi_9rimx_bzg΅= iб*H6u^Ɏ,\*Ix0Xkt%W&c'0ᥗ[tá?^/Eڿ!B 'R٩63a]}.T OYrPk8oAT6Ϧ5| /&O_Մ`mC=2u#'Df.c(<p<aj6~bX,9:6bǐ,;pbzx@LmbB 1#Sf~sŗ,9l'ÖlcN.?w# \v:8Ƒ-d! VeNka_h⌴]|CMIC5R;%R~1݊ͥ$vDur|x-٥?JXfSOUP氳Gd42,* "ۧdՏ?=$WWL1ƹ!ef<6_q<]TI~+W؝CcXSb R%v0NlHJ\(T3d3R@?tEߌw) `.b)YV]QsD16[{^;fd 1A}9}O- }]Z~z[FCtF$6:YotE7MD|?nS-Lvזρ`UD-!WY/jnzF?BP7*U1m =Ќ5udY7ٔRNsw{4yw[h&K&Y}YS[YeΞKR-Coøc3k$vʱ^!3ö_.`jyoL_5 \L`G5Y̷_%y8]DPҟo=` };V f׋: n1}ޣ/)fM4XZÍſ*rT_85Jl/0+$C]~Rlڃg0/Np< D;Zͳuk}>)wh͚ZanlW=DZ,T-$E\(N>) OWIYJ|0b뀭 bO 6 /H_ӴRxQosI;"H+ o= NNPɈml@ۛ]KU o.D1-ʼn>OJeM8X`gP{Y8nkdrp z`SiKpfs e+dV }O{.tjF.9xth|..gcXr/E8C}=,/T&oƯQ" ~uQytqtXu*{{3v07Pi>no77bo-tܴafn_/+4™qv ACK6zqM\>ł ܑ-[ sʻ1',Ђ/+G\0_v]D.nF`Ǧ\>$'xCroO US0]*5fܧMVM O+[U_L!눢$'e^EP,`B-lYn *T 39Pzv:[9dŻgp凿v$T' ᕵoũc!`@/]xq˥ZVTб,{~sߜe?C3 Z-"dƺ Rώb1F\tw$v6]@X&W1N tGН4_6zľgPcR 5O8yyO؂=>cԧa5hhhٽT:IA+c\11 MeuY4Yև/'k8oԆ.uz{~q41'p>auz{4@e='Cg"UK kjt*7T0t ~1i9 5AeWa(=ݩ6:3L'4̦mV + >M'` {@s4I+?{./;zPxlLqaW惃}< Dͥ4 -,U.<<0QD5 w1Ǘ /akGۍ;D{|+$m_|d+|  1~^Y}Gz*2 ܤ;;3džgU#4ͶfZd4(@HD+ LfZxEYOUʭ;+Xb~(M+Nr*Z`H]sVgWpgo+7.&=I`f$^\Rk5塏9]waJ록1E辜Z iE^V?icL> ~8<;{ELcѦ^/Z8?"lM§q7C@wx(qc}Ź1 OMK7o۹7(i^$knH2TjGC~1*ϝIxٹ(SVLuaXzZ؎1O_W 9rAv<.9pf.]Q]5գ`6O@~a@uABnwi,2FԘC4 a;c*%!A< $<LNlKփs$k}c݊kS+ #j0.VBγF}g0:x?y~^lH>z`v 5 іMښ zߪE hh&O `O,‡-4S DzÂ. ؚTOe_RQU.7  :=Y3:fvftw'ʚØ'^MTXJN,@hw))6i}>搨m0"X/K״  }gZc^ԋX-n:E{a k^H8?!r-\2|/;ۻ<9<򯉽|t͂l5Hyu4׮/5>~f_v(#4٦/!~NjǼd+&]x TXݥVӥ~ ei9sqcesZQhq;jtFpy#8EE|<4=U8#~W+cIT1?߶XwbŅ89w*A/&e$:h+eo];V}7p2^)>o Ez3jG&-,&7`ϹUT&U )gT)PQTj )S4gI $0CᾅHq/f^/`m-YѽٺK:kiŤ$pG n5C(|rr!~9 JD_rP)+ :`<#A-TˀͶX71@؅O5 4i{-@AS ~zˢWh_U3h5"CBEͷJ䃫C m7BT}xΖG: 2͸&O:1qF.< ٕk줬#q+Mrg1E>xbU5yP5U;I‘ 4JpjÜޠTfnQi^1 *ƒ>7>0"ӕKcml4??+l;^)w%pVnpcg o51/ Qg6QWQnj}賡BByoeQŇ W#ݐ-%(]N Ѧ9 '1=r&TBp)]R^R1]6]s=#+18g*^c1/!.)vw$Wrczۮ$xՍy뭘=IZ\oUWvU hnjqT-BEͶ9J'T B6jbc\~ūoTҴsRAι_]'U1iػj߮9Q~54+C^h` V0dqz+wYdxo5.%(z:<MB챉ཪE4kow1a99 Tץg o.9 E"RÂPqPUH݊{ן]*,Y3LXR:{s#ɴ.>n!psz;EL{Çd-KU9ЬCaPVyvl#Ar+r.((Ka3˦qB|JVeUۑWwcü iDܚ*ޑ^G sNb z;Df*k1m}4{F|}«+?XQsSW;ZQQ#\w=v"\ZU.^`*ߒW@4`%V'ҴaQ@#1RڍofoݯBkwp `ŏu-E8842Cb-9ݷN7F nAb9:P]KxNa ^+98 e/$aₘW8q5cr6g9ad94NwET*M]Fb!uEz=-~Ki%oJfӂ{l4AAMh[t{ᓴӠ{h;P63ś_c&T>}^sgի7t=>M x81@yu`׃^ ~xB/DpZpP jg@ƌpr0hRN6գAQ?C='_Pȹ܎r_ۍAtre`>~M^O P 0/ya[c߹Tҁ$!独˅ W1Ϯ)K@>b2 *AtDU1^fqSZtxS.Bl}EE/k<0݀@3:#>j$8΀ ;x= OpP-9l_o&@鉘&^޲\I0hM"ѻ8ea)0stGBs_:s؝-x7iǘ5+cV!!(dxŁv/ j4DдV^Ca3L'T9o=QP !C%40/iuvIgӔ{FyOzȶ"7I^}6?(c}[G2h; C\~9]JZΥ+I~T~]IRчKS2xqMqKK7ЯTu[#iF_O@>nIVx\v~mK/E }_'ڗ.#,<$Y8bq 5P)=\LI7eIPBL !|`}. | e=.ȿП(u|+ dǃg Rcww|CP7P?&ʼn RnT3dW[{@ׁO\Qq EPF [|`_䜉g v޾sC N-B(-k7(oX0t%sW | ie N~|(5_{6NW=QP-?SP& mi:H2l ݾv9!v"ɛ( )m; Yx_=3,E!3q{` .6 k##A }MҧGX;>9taRwƞ$1h \% B,la6O @Rz@q5"@-59ej~x~|;=_v;CaYͶdٵK3Ɨ;Lj\֔#cUD}4kޗρ{ hk!E 1l8i*] 1g掀3u(Xv~OgW}_ 8jCS}?BW?2T PHGDt҆$Itg߳,d6: Sċ8wNG{~ߴ]'i?hhS?5`P2`v{.'pS%]COJrT}׊सAߞ|f0ƠJLley8TH\HXgI ̓/ 5Cw > Q"+yN{]ݓf?׶Wd57{J"ޫܰ /5xaGS{T"GI.fHp|fvi[kE6ƏAG2 A+; 2yv~a/@I$¤h g"w/Q4~'gpHo샳Dz8?$|; @a Ҵ(jkh{ ƞm[T+h_qyBZEYs4jWaNN%$'.ģbM48Օ62?9$ƍSٽ>i߭/_2 ejұcJ ˵5GA@M08j;SN@gOz8򹉮MzoA xG[M w2T fj~9i]T;W\n<Кy}؉z@n]h`49u1s߀X|>q]8;7 62wHۚP«2t~;h!a!gR iOtIdά5 i1pbne#hnV^Ӽ=]a5]r^KZu9䬌+'66G?lqJQJpp|SJ=3 7K9 $\1psZX+ jB J1ltєN'Gī"E<#'mhAXa{? LYA\Q\$Qe])m$'뛡\t8hꣅӅm1ӮूOyԪ@"~yYW>O9͕̽6c-{(emq*_Xʺ1DG">̫ϯVV$7N}wVWVE>[w5/"U;ܲʴTMے}Ы;u][㲮rʳw_Y)=D(?/N}f޸s[u[2̼Cҝ3Ke}ʄ ^ʮeVzO] #?[HQdo8B*( @5}n W _t~r & 1re:Fe!P3^IN49|{9y':I!ɼ/D n¯QDf;\;̥z]78rZgB.Ò)@, &i DLDqMx9l䨲 )?D^kLC;(. !'SÑkOE@Mc (rϮ6Qgusd ėUTF*-g vgqJ`ey8MG塛v4TWXϡFXR'q4`rÙL\Qݑ;BZI1 %D̃BI訬[͋ZŦ+D>6(-2Gn6)v kLXF>O&EȭU'g$hK$85&~+(~Ċ5? )(^HPeaBxb,ͼ/ h ҁ&F[fxߚAn^C ?1߰_/zF'vcL]r0ㄑu?e3U&h@e/MXA`=\5 7ߍ7)Foc-FrHdmtb1qU Ni N*R\rPgKג^LA=4(i5%!ӃS$JPpZ*jIFU;^Q;r$`ėCo]08*xJVpT!j%m'j_ N}XLrH׮#PJH |wnUy -keD-0Y#Cw!PVO'i͉/? ,!9l/Kx4O MBY%$Oty8 ?صrVc])BSaƂxD;, 1j,D]LjE]u7tM{4ץ6$UҷN1oāC^bv3/èc˞vEQlQ ~b@%(ɸΜ4CjF4pL#Ad:^?M"AM*Be)8S}^Gbyet._R}N6,LYxG =UӤj?uGe$}o`ʿJzfmP ơރL3WHf))O@RmJI 5 Y{^{^ qNn$}G4>2k`Pb!&RDObr 맵`L-xK, 㙪$~<>]ygҠQcu^"mѴR2 ۹~49!6?ƧмUSw*[wxD)Huj{ *V39Az]^S=<";qYB>Ofzg{z:QdžEWTx͋FmbӐR!,OgmD4-M1mxjs|͵Q2jq4z0y.nrcQ#Vފ︦6C.tǚƪ1ϒj W P5 %EE% 5 VZ;X+Rϖ좛"p FJ tI)p7%7"C`=hMv.!HFq$tofA~glyB:#YЀd5V9IHgF" $>0 RcClvIϵޠ=pn$N6걿 ? .MKbAou`4qb+vj9 !vs[)5kt|Y3X4sD^oL9rxLH֫^2f,lc4. Rܠ-3Y^y>>Uqyνu)D%ޚ)Z3𹠯9'C>$]wG/1\_'zLq0sn.ÙK R&M>(N70W`Sb,,,\0#޹P 3ÃJ/(a Ç>[7J/nodBF^Sʺpk\aWv ~\ÔwFo_xK9YCI8hݧ#Tpܴ\]+&inV;y!"|YώFKu#"OM$xdK̆΢UEC?eC*l2Ы\Fӷ*4!Gu ȝꟙ{'P$u).mX#"갈JBٯU {Zw?!YbIbE7>RxBl}Ϙ+sP;ucay`U[n yV3IN#o#uK,:nņ]CW{PQi?4_tQur!rBEs& %Z%Z%Z%Z%Z%Z%Z%$f$BumKc8XwљدwBu8~4-CQ>~|`!Td@ > Cӑ`w~KfbZ6" TTHK-|uك7bт PQ_lxExDa˼#nVN KNg G Ev$…-S}oV-C,_F}f_NI=NL禶(Fl^{D?Ce9A:ȻǯZ>ACЂ38X~mn@1q+9/c APTZiJF )–Iith@"31"V aW6p? ("1#1#raCg!dD !0|y ORg4%TƲmY M5]|;6z?:PV*'\F@:}|E[S"0eD7P-50ٽag2e'S2_;B. qr`d9Sqz$k\5+3ErŦ0\w Cw:ɊᩅJ!EJP 9iք#{upN7T#`@2+d~T ed^s"P Y`q~GL);jrgCa3ZN]d_:UtW C-k60 ABڬODQ?:nvmIRHX T(CFB8tY>=}IegݰRlC.zt E Fw?."M Ah;Cn<ԛx R%vJgw JFQgH3%$QPbne#7D&կy S%=55 樀|)A\?8B0sC;BȮ6ƝjQt^@W Axɯ0qjrȶ2}qg-Pvl A9=4mK;B_eG~x<b5+&J>L;-]R-;4'SS{飹LGD\ԛژ\\m(׳:#̽kLІo! +[4ha; !{XW;Uq`22ɨF+?_tDt5FܸӜj<5UNٱal!#=6 L)FE VNoAįFڢrf#mmQF+k< s2RRX=G*-L$ Be\yi TNG=l1HTx*13)p e :oGj4Q2Oj31ZPOjF q ePw&j5C)J8Jme;WqN[|LusQ Djs\g *l"ΔiYe9Z]<"<։CEp莓f47шTcpB m|~bq(1mRž[yhE|:Nޞ^'9EvLʪ:34I„/5Y65e͉i 9-O$z?NJz$َ;uP,(`Ws :Tm9#Z%pRDlD}")|X.c_z`%#XLm}2h]+LAmCUjWSxޮC ~06o/o45$|+#D]SCH+tIi, ,1'>PWp}IʢU)D[6Q*E_/1|ތ-uԩ%) 6bgeM8p+-m&Uef9sy>o?s@$YO<,ځKjZD'2W~xz6ZmLkC 2UpC^QhS'Me,I|V'xRC~нER[#"C7jlND!ݨFSH@88 A&"2xUg$0u>c']HcxY,!~\HԳڦ=5RG_k"wQޓYS=GZF=Q: /G55mޥr+x$pL{6X2L=L%YXUQ.=RA;l:( q/~q( ضc= ?cÂ}?:*Y^ BScx]TWp"cߏEx/}MZ˩ 4HoV=B;\7waQ DhV:Z8a=/aɍo f/O@-!b8Pu+6o1%2ӭ+4\O+Ftsi0I/~c/ᘋ]ҫx֡)D Xg^0Ba+^Wc)ۏ⨻/kiƟ[?4mu57γeYИSj돔bћ*ӛgKG] fǸsYҢ8ٍUM[>>4Lt"#Y is !hSg=EQk\OмL4aZ(x VAxP-k}HaB1oR1 ( CSne>oBHOZ@ֱNѶ7[F&qM-O$ Fl󀉣(U% <|3BБFf,,m!E‹R5RR<|B#A/OZI"IT^I{yvp< >&%--lݨ;\ܺYa\- ?āc_kJ6P;$dcF r^¼u ob `P F>>3z6"^'rş*mF0~K{,o2F]n(>łW܊Db UT$Ǯ-䜫?BNAs<k6k囎3v,$D2F%r G3^-HvJoΥRRim^YId`kbݓzG; m&eKnaIM44<@!X&[*ܲWo&299njyoѬYU,jzu~*@ՅYՌG2ືL5[\ӫflSH3eV$9UGnwU;*Tb3&>"[5g9\aǹ;sXʗsYݳnsf7ɾ8U]oҬN|n8x~5MW_275T0-td[y?~im13iLEڂC}%Ӊ.v;RO4XmIm"MCUѫ,]ii$4-#rntֱA5bl4SѠߚBLJaMEBF"l\M!5M⠿5glG4$;Hwx[ XLѻK=Ff);n4M|#OKޖG}#l }KW:FZo:09Pnҏ ddP+QZ*>Dž?DKRSJލ: 6YYMV_<9b. Iv9ϡBibKܪ HF`U1=Edb:R.}W-IqD U}p$f;ee!u6l Ir K{W_$$'p,^{!\DYl ~Bc2oٴeI{vӴdw0 %0/jCxx }>D2A-3eL.V[2!%,%{ e+RWp2XI&GcP#e`-1zQNLCX(΂ {oՁ~^t@RgfW|By4S:D,H.8P~.X 5tX"t˄$/\c 22HD>C>@L{G$V cp'󠗗Jc'N]>'~v2è:f4`v,l!/sn@kσp$$@<#줚scLȮwx Q Sq ӒblkPw9e vkx1Osi%@KͰ-DCXbMH%PآՑF-j׎r@e@/d;ʘ릸AVQԐwAOL'Mh낌8$ʌ~;XpWPBմė ` 3D=,҉Vu+FO`AFqahYysƶ͉0hW79crJz9_??X PZC7z0~ؠJyp9[פ x-#&#'_^6)rD'KK˳Vpj6@c7?){^< !~3n'%Hosq^ h@ux@  u67uŝG`_Y ` /G 7)5l0N?5T85i兢k VaoHOMxLJ5C,*A`+605fOLˏfON䖤2SꐨLV|kҬT6V_ ϡG]AYI=PvPЮp@vP.QJ%ZX!Cʼn{$l5ϰ̐=D>}k8bI7G;.F, OO}U ,.}u|s=Gk.'">7T3?q6')Ӥ)qB_CvLx89~%YC} 3Z `'=@M. {n+Ji[˜m,(O_]_<(mv cٷ.O.?BBZCSZe}xe*~< <*5ՔۺoRզU8;>OvKWAJ' ! H6jlqARֵ5U0kc a7 ijoG|urڼum=rA+XsM|k|a|͇vaix=vq$|qaȕȲwIAwo7k[po *NRp% I 5ࠓU'>9r p F`fp SC QlWnm0Bl4&y;PTbC MiaN۠ۮ5z,/nbaYPSԙã}w4֫jxz]B wERf~VFf3xmF^ҹqCE>f u41}3} U?g?/-u6<0JQQD?¡׳_+Oؿ{m1BIP> {/]<0+ 0MI3 hݱm0$wog? ϱn aC) M$f,SM{e[  sOVjuB0`<nyP0uF x0#F$UՌn{{$no}U oɚN|o\%,!;ӮHқ|P \қ 7P`!g![<CD[B2ql-s ^g\&90LD¾9|MxH.s#R ? 3Ai&fr\ڍخycc5C=nl`8`'cMt`9>T %{ZA./!`p/JBbf]a12 C/\hwψctF oYTI1Ca^xŁ|3RG4bcLI!K(.9sO-&n F~;$H" =u+UCwAR:r4e|NTJpqIt-s#ˈpԑy JsaG6*˭q5o8|O a ,?]MGD7~fo闪-cOni3][\tu4̩Y+~풿T#KP);5wZ/gEM *%=l"mwZ-7~6Og,wZkЊˠ'=7E.bF {T5!vTԑA"!e楋xAEr 5Qi$e ]jbtš)UvA07 ?X?8xE}a&E uh>\p9;/>06nÀ [xVof%Ȟ2[l}r*D0{(zVkq+EZ:7"EC|c6It[pth.?%߄% 7)Ir"Tk\Z瀞6MG $4Hgh9=&C6\NY:کx5~&PP W@ԫD]b,w1qE9̷R%-]lpkFJ‘p8S[i;4&-H0;7y"\V P^;ɱs'tp u䍔A=7+0zɖQ|$~dNM ˘HWj;KީR7b΄ڨo4oTPClEP #C.Lh L!IʄL鲯"yC:ЙkKWA}.͔8:C銲Vd,n= ^M{Ku{63Rz5pP\0ߋIn<,KmQ^[’sIOsizfh< F)Zč %AT`^wv2!44Wv^Z T6YF,/9I aO&4ɸӟ)=%\2 E*hł怪&̊Hapy@"тy‡@ zFr&g9\a|F(f?4SE4nIXV'v}'Iĭ 2M<8{x۲ y6 [BI+cCZWkۥ^%!S$"OY8 2q$=]Jx5ӉFZPpM!?QZA$^I@9R+# U*>#yπ zCY\K 1 b""-6 "86' qyg9:\}TFJtP\\ẃ1!G{(/ީ`GN0/ dootdr3 bI JY'48B\.2Q[.QP9, -?tzC)Jj :a3e3f^uЭ:)THt:wW}Gy=ym w}1Hמ~]=?A57aar~mQ8]Qef3 VTו"^UMlUWk2&GE`ȩĝC\QWq1chs+8/Km]]x]?PR;dQGC k+F [ FfؠΗBc5Uc5dCXL®7ly=#/x!0ҏ#Tr @ްtJЌÒ<uQ#"XIzE^;F~cl,g6q12o uAʞ1}]_B 3[x{1N~j fodSism+4~88,7v+obgjfG֢D7ѵMb<2D;W 4XzwKΊk(b*oɲygf?皥XEڵ!W=1Axh7.^Cy{aľ) ՞_XU RxP-q,I G#jo ڝ\KG$M$M$M$M$~BԠ H9uOՓz{=hw q\jѭE񵏎 cKj[RږԶY >sZAd& O6Ku,ddxȆD2# OOOOO1AMMMMV% 5OtNBNhR}=kߺaUx@6lb"I6O *>oW֡kd{9.9I`uRPlhl㽟't#V n̓\@A. OIbI'#֊RZxnV"[T5C^Qж-m 5q"{)@! fq|u)[]~T8(rT,I:?b/'r;W􁝃:qz|>?2YBx |@>=:3.Nҧ󆣼QK 7s6S_.C5jk䍘K\(:]iv Ч a2t&O.:0;ٟ٫in`o#]]]݉** |/a}5EvSyJcV5cI%]J]⻇^nvĽ/AjVRvk:QUaVcR*ܪs9191SgaC=YԤv6˜o gHwr#ETm˧ULco3M*e6e-f],~ [T>Zצ58~^ץeMUeM]"QJVҳNZrӔt7Jt7JikKY]7IKzCXV9j3ʃc[ ljd#gtfضŠ7oT^_N/.}MFMlf7i*V4SI vC喳<ͤ\֨ԋAdCМ5XXXK|Xa.ɎgkEj,R R,R,RyӦȰɠ aғkwPń\*,WLJYEuಎc.>!b!b!b#]# )<^3 Uar,'C^y\9$Mgx  #GiY2p?IMgMRMʫbEˢW@JGD1<z681H&sd2mO t ]u;Z\ AѯA :Z62/F(K62 dHBM IIBvUnu{z е15r}tl&.H<ѿoWk3ۆہp"sd.3*#BfSODFl}y&lEn6dw(oC-"Hs bE!<ߐrL G=[cgO~g?S2֫I"0h.%QI!eHc#=93ZlgR {-z=j#.w{<儙DZ{L/,%<'Tw9\B*R> "cd#o]] G53(jâU4-EJ^IރT&VvoBJ0w ]CR)NS MeAMζcyц2UQř5%|3fyJP#+a]tGELh'o~w }N3 oUG#@ ‡_D虳d3ZK2Հ:!.] ~mDPE4CS!pZ :$dHZkC}( mVXv`)Ҡ=T%*UM@] `c*Q! t"5!)C,#pQ±IĬprfcV\OE.Yb#5{9U/;xc--z#ኢRBK5R}#cW 4&ס opC=|*J xBf D!LKS1M||٩64(c '"n3jJR5w|5d&;I"?CzT3'2,C D~b /$ŝ0''p<(: wcU6g^z@oa? &iαYKⰅ/ӡeV tIs73i{e()8;)PR*}eRн-Ԡփ4҇#[ W !s#h܉\9 }&AS av(b"B#~p56ILJjr D;P?\(q-oeȪPajڷ'X]^d웖a3%LL/TZ T%ֹ-oyP9LtQ.0*wnf_m'Tuf*,h[r[71S S%ؓ*72յc tcG+:m'jޮo;JĸnMkBn Qriv4L}jibLrKZvl 'lmc\XnjܳttuMxS\Ys&ꉟ&ѳv{ 隸5톊>CN[c'1v. pa; o=ëc5h z*jeƪP ]a1f֙WQc@B=g'RDͻ~%p̟4-Ґ:\ -ˎ݌|IJK7o,+.薎 nѶ/tiZX'^޵FvpGVwϠîwBȨU-/J藾ﻈtnɁ︲jγepJ]cR2V[“\𙣸}.`i"I ݬ=,b 93̇M뱅ʸ6O/z6jJjn9P઼E+ʄ -쓙ľX-Oh~GG`Vgs Ghc#n U7NџL Eӹ1Pg& ` {6|l(_fMSM;he_LSvwǃ tldW`tf4 dy/@Piu*XjOiw,؝BF8F5%)Z\`+ٔqoѝc)Pܭ涂i7)D`?"Il%vLGrQ1F%Gŭ$l2.ek i>M":cs <6Nref ͒4)y FHqඁRRk]}0v2=s# W| ) &۪/pBzl"H; it9pU(u!S~T5PCdл!|K#ݨ!%S#~][ ǂP0KC:=Qإ M`5\߳zX6G# }"57pd174߳aQձ1[Ibt>ttq4*M]˱ݏ"s0*EM a~VZE#ϤeFA ECGYx>Z`$-::W?'zNc;}V#*@fEf}) )MiN/HF_녊V[*YKezن!JBT3қa %X:pkX2ՄX@ !W%BŶ+Vat0ѓIQ򡘒e<_ "BSX8 II"qF`zD^)2PIu"f3 K9-yP]RsHJZ:َ1`Ю!ƕzV-LQKQɋ9)G%LrRMkGQ+9G$)^:)f2froN;pyEsNLȌbW#0mc"ʕ W{+Gf&^TLdI517sI8t"˗ 5jWl1деUDT-DT,LV R$~.mZH:$tIETIET-'KD)i?̬]bb0s4E+)|~(WcH/RVRd6g 3g 6K9 ͕ 4/:\b\Qc]xFؘ_gFby"ӛ`=VKbk%@6 7Lj8==I⦴7r[& yçrz`ze4nU 0Fȩ:_Ƹ.0U4Hڈ2Q'G*`NU2kG/4EF#Y*#X|.tPzO$Κ"ՂVe+m,\yۛ3cZt ㏍Ko(=BYr^[gl Jh3i喏@7aMROXuuBnjC~-5gEWzo+,V7/zgs"¸ nrn-dI\XK7-E ҝ®?/rnZvB4?+~liekz[!de͘6؉k$74jFtZZJ.R?4y{ݾEG6" $Yn@y--ޓRV7Ta] 0D MZ*=4Jh{AݶOeבj$A-vƻWvaCL$$.77FXg#Z٘Դkn+JYى؜`,`/ ;<ZK"lQZV.9S;2kul'쎑DgyS:[YHꦔuFtC{vƍAr4 %,FIaܱa ,f*eZξxGFgjʥuij |)t O$ލ۝] NKÛOm^nud 'c2E!w }.d2ș+,ķZUMAӛBxg'nIʵ85N#WŸ(["篧*"MUV3$] 笉RSθ:[RFZi@J+;,V_ZSحi/tJ8Q.T2 mO3<e}U :앟m "  CR{f#GNحY7qU=|f(h+z`kꂞbUF2 lX6(kYެq /`E6y/HG 4",">K/F˕P]V/~d|NGN!/lb<:2,RB80m2Cpz5Azp;xr;1 }ڵʃޚD3qqb*ϸͰ@.iqn_en9 .8eA$b!A ZZ{A.{lvo^U|5I دR=9#a㒮J2{k ۼ+Ѻ[w^nn-'qY) hrɗP~P%>-.W;ھ]ѳ2N܇A3dx@Ȯ DX[}5TD[wV)Y yV d|0Z"}G| Tmэр_z S0ԡn]^OEmѴV{Ip|ǃfж_Kt) ;"oM-+e8j+u]҉5tZ&?puc~ԉjz$4^4>]@yV Lq݂<`T>)h |8[һgupF<n$_V|Ȭl5l~3WT  _qVC:Q)GDc &A]P\+=PM;0)y9mc }aS3L~zl ?i)G2i}_=1ތ<2̐a4FVN=@D.@{4U/o=ȁ's *$ OÐMQe2s:_FPRm} Zq}PBoIN1뗵=;0Zȕȕn3'{^` ~st.-@ _0~tyagh';0áW:,WU{=k)>2Ā}%Z* օA 4rԣAf//5"omc  +eq檣yFU9qu :Hy[6& K{7 ӟ5Ld hS[{$ۑܼUgAVޏY"Q!g(O6L&/!+!a"5=o[Bmc ( f*c)ÌÏ-xÏXȍa3_dhĵfhF,A 3>iSU./<$-SٳyjTC 4p.=ad2+!+~Zgx\>px :4 &~7w0~^~'3"ӛ؀}Ew?JƉ xNgSq pHsr$UR!@튇 18nշ%mR_A<"놽7r_mkuMY-|Us[3uZ2ftNtiZ.t# []XlLD L&:7J4#Xw _2Vy$g\'=hf@PIec/5b|t 8>7 ikH_5kfS٩KɗOn{U4`\q0;с[iڬ3 e^7)/0ظWcޕ0)KT^Ѓ\bu8$A[7)s!1|ٲU_Fc5_G;DvþTMِN& 9=)\:kFA'D2>O ֱPn5*F Aw`v*rss; m{hacd$òo~DP] E/o[O#Z ZRXzc?&A.ĄL(o FhLIFw7$R邳z뛿")P]i}f#h,45f>̓AjkB\ȷه~QC-N<NA)MĶӼ6,ʡ#|H,Ev]NV<ȑ>-f8G,po$-*!wD=e+Yմ@[!o"yQHeҁ 4wxw970#ˣ %N9.> 2>N TJ(Gvɫ a_GHd ϟbH:UE/m5z%?)aDȅʈWBrqJ1n!--ȄVB>h,ޮQ#dGf[$*b#|\,nTDFۊqdz$n4ޓ|o{v[Xĉw,pӜ9q'i/ xHvi90Z3s e):AF'wAVȌ4eMKq׶\PԡME]inf4DSdE,iȐfu? {.yu`frwKA]TD>(:R }Ύ 洞Ip5W|C͖URV˺"Mў/ҽ:1vӫI7bpW^x[IZ]ZVm#U`eb3[^4sf㠧!*ZcVNYkb0gnf&tܫ~jet4kE/0xiyխ պ$ ,{nA𡏭saC0SVMnz)F8ݷ./I!}`(t$ut"t?|?ӫ(KFS-ukm=[)' =η{COYZIEɟp^zp0jCzz!V K*OCy-߿o0oX_ ؤ{ˇ,.9nrg#mawE 6&)vԱwޞ?믛م]KWAJ' "! Ip0U+IiL6erps6[[# ݵqq,Ƽ$rP#=pG.@(.13(@@Tm{ͥȵށ^Os)9#I7g=+ Md LJ6T.{FEÕ~dr 5uEfOq2rGuľDX-Fhh;.*~lZMl8MfO3C[4?YM^{G3xjWCCJ HdfvY *.8{;o')Cۦ~1kw R\[6-g&i<0# PKdc@ @j\S|` QPXmk?_C_׌ZfZSzgUUi7T]1AwƒIçw:~ nL:n}`XbUQ:uXDCWPMH'=7D<#71t`Q +C{¥{8Or9PHKj=+;gH.-(k|ߜ6{_|L/͏իNOB!֩CPd > P9FVr?v'1sl{拦30'cmxaȅBbo{ڃ?֝d&iՠNCF|Z|tҜCP_V7S^66=摢0LmxfQewZq=Ǩ*YXxEmnEeUqK*ѐ*U.=xf0w>F"0AVb5bsB>mؖ!O13CၱYSu]DϨ˄ '>r`_ JH6&"`:8$6>IJ"5N9^n1jYr-<#aZ =uk&zWfu4d>*ZXX4G.-l(Y(;u283:r\@`MM/wzpK:aϘC6&3n MiS~=lrveBX2Sp˿> דIτcM{m"N$t%o/eT|~ܪwrT ]]I}dܵܲG!3G|CA0if;QкNB0\Ѷ_6X֪1^/# ]BaJ_X8!yHQOb,j\CRܮ;O㑮Oԭ#` DrNMEPU ĊɼׂCn`6̂//HIr9j'cIK'S%R!Z\CV2'BWS/7Ց?q># yͭF ]L\Z=ȣPe\0S")h-iE:|H=z=iL%_n3QJt̒o]"H1KWP򀞄Xi)2l~YTO  `xvzKanwyYM9RfMk.k ~NI9&1@~٠@%[Jvtgn-d"s`('GMtۚoPKt ?g{hKZmeɉ,6B[K=]VA?-N!4&;&ȉ Y=H'_ ΂q}tU !y %hull涕DY҉\Ҷ{5 G+5PL=$s)t\ 9@(aOr (c5kuĆ[/P܊{K?yA#YS&{^RdeյmfECdVM9o8u5x&[>W Vϐ[, ?|3`Bm8@VC#Ũ=]g"7uGd؆a+ pؚ/7(wl*WloA*?|?JlvgS.DzW 07b  Pz=!(s:C ҋi-_ OIh@T9'ǥäFYx\:wzz_NM1mYewY0i73YBś51"θ藖V/*hdžs̪O.1֓תƠ TE!C`T``,V9IsE/NONq͢NJ8&ASH7[ĹT (ScgুzYgZP}OLjSu|65 ?BAp`"sxIO_VvWnIna'J< X»t{" y;ZfðxCqd| jP(8#^}88Qlη<,[̶k6=y iaTck\I ӧ|m\m'^$X1Ll]On שׂ = 8=]b#>)xSh̤i1zzҭn_w\8bcE$@ )?/Y0H =LAYI$ڵm_]`1Ƭs 6 u1aՎC]ౌ)ںPdq.7-#k 6Aˏgӑ4ܹxKWAJ'b*"" i^ 82f,5)J" дeZ։UbTYUm$Xhiy~w뎋~9+~wx,8#~o 78N~wÛh9w {; S:_887ynJÛ~.y{ߔ^7K~QLU(W\7lj#}=6?_ n(2f Rȃ 9TO jA (KKS[T ZQ ˂JAVzkvxP*Wy,- kj0ѝ!*> k@_uqGqY_u+xX=aF GA(6) .njj@ب4oI/􏒫 prpkKVj`p$'HVtMkVjb!\ L4JgTE89 %,4Vc  UfDS ̐ٺz A :̰uYচ85k8/wwSԼv+3pByJ,Kq~Lr?/nnT-)YUB rr'}6zrV ϯ\el4:d=O@b4 Kpb}iߏf3?:@~I/VluHYLױ5n93t QNuᄥ!V R\Jp3vOx(N9z,O?Og ''WZ 3c TzB\- k4!=|5Ͼ[_- ׺8/?|Rgz+= &UHv?-M?.Vq 9efYF pSz7plJ|KoG~&1yw\J.M a`otc7N pYmM q4UBqjT' 51 k7,l2X` 1YuG5 O_z){ؕo뾓Bwݔ h`OTjb s HOB͖|䅌IʯuLJ6*}[(VE6rs 6mdžAo7T9`vq Ed+44gX4yW!DIdpܗZMٸ%pNuyG@n2ZiF nJX!`8d<"n4تd"ˏݠ,@,%6 JkM_sڈo"lUcVTt-Z-MꓛHEJ bA[eĦx<˻ٸnTsugܓ={qhzR{qnAsCPv_#Q ]u$  8Z3F/BR hYTSbجf)pRhEFc4R-Vyq?%w[ gא(%?]2;s LY~e^^f1 NBebUա ׯHbINffgwȹv.EۜiߐknD_ņq"H.NZq!Q*;wi;uUSؗroUiQ fmCKl>F*"Q-{GH`Xvf4ge6I5Tyh_ Ui+ñ.qt_)A?͛;_Uu\YXFj'w"c_ds~ (4~,rKLOCZf.61LW/oP ntx(B)$B-ir8&.oQՊXn\NnoiB%7&4];wtۭj@x%4mYfVZ'u\`sGMS NЫEԅ=O*:ewNo/I .n!(!vT]8~dceDP+3UI eub|` cW-e{G$;͙e뮭|%W4i<2aˊc㉸]:&%lao\.jb14deyI"nhFU/֙BTϐUV!܆ a8 Ra8$Q{uQRt󜝨{RDb_"Hiy%! حr͚rS޿)E9976[$=칍UNv$lѦ#J A^ʰ'0J?"I]$r3vv}F;KH{ Na9^zu~Z|&܇u;6oY N S@Dͦ_8SI"ݦ>hׯ wdZFk.oX 7oZ|85mЍAuhӍ*TE5hޫ\`y֑~wZ̮y!o#$M"zVM8P8e㺹!#j(c}6!h+d#]/7zx7`$.އ6oC; J16Δ.( mBI g`_jqb`9%o?pJ` VR39: x!sO_{ Pt)>GGKK/@3 h529تfwYyݼbYL4cfuh7ߩ]]?VAbt<: \m;HJc& %`F jmy{gY,쫖IݏeΆ=|w7wYjia肆9\s]z `Xr5n{(y /jcڒOFq>5nZ92!N:NC#ض󏢧xA_e>_(*dnT8a^ˤ&ݕ-#X9Sh&-e 2O9>'+q"&1D#$x7F7$%S 2)4@]Q+[\`m_ T"*y[5tuX t} *o|qH5SBBJJHu81W]\R؏ɃY#?:s5DzaE&JOLr'1M,0ҵf\[||"Lq<8e&S.&c1qF3`2s"{aci{&t-Ez߸k~_\/if#-_P3WΨ]! N ~T' '3!8* 2,1\+Pxۆ%iD*:p8zGcУs[v2G 8$ vfe8C.S,-Y0 uf[$!6SI X5WCr+?M/TʞŖR42؊56 tTU!LPɠi-^F5+~S#= q3PuSS( {$HnQ퇎"Hy9R_M9U1j?_Llw*@ F&]l++{au`mE;l7 D } }s~t _gOGEJ ʹ_Ig^o}߯K[=,^$EGl^j&P&r9mn><9cP GE&z&5doh0,tqi# -/B@KWAJ'""" h+FbReefsJ%Wq8 U|8$nE,7ÈGL9Mh눋~w~[n8nw97È-#0ZO9Ëg n0ߜ:6S΅^980z{wyU;7{yDyߕNn[qpC-3i~SfZ5 i׶Q5kr/  ZsMG*|C hK(ZIՉr ,_n86БR쒗h& Ď廡RFU^fj% =M,qXNAS9 N[KK,a9wY "?;VА]eN -f;-en2T5%AX6$]gEJcۨ\s8iXA(0L`) Nw3r4)p'b 3&1/ps{iˇ=]GĄBSv˒Uk:S@Tҏ$s4;l M2fM! ,ʍwu\DGۍm,T9|Bu$ϸ RKҥ';˸:,sB<rVAw}|bYPN ~yʽ?Ͻ8 Ss,rE;idl#ȜOf鲷*E.23~0\4[#2N5: MG"E#_JRBhcG\jyUrӜmFu1"~PpXsYS0<,9,:d֪JbA+E"VLq,d1j<&aHZ_~:#L@v#/RJ$ m*%+R .=*L2@Fď,i)U$P$ФD)Ț-7d&ae*Y!ܻǥ1xaOHb? Dmdrn&<&D]%^'Y*[p<"zg0ɮ% 0ʽ[pbۃV"jNzn0r(FTZd~I-)_zČY(Z)7tix&؛Ʊ7E}xm>x8knfL5)c)ts~$ Čb9B --܃{ ӘJC}nx,wR!KW'pOh/+p֠nrܔҔ6WduxWMٝ 8IRTUS1ENz≒ N&k#l= Uت(G2Qzfڏ|rfQm%/dѪְpmy}g :^e}B]q*7"dbb+XX :h}/W}蔏@Rc0&hHV H~]ٽh,]w'VX2-qs9؜{/ OaG>fN)&L>*^]e|Wd=߷'1Fb3Eg9(g&,bȪ_I$+w;g&\d;2yz:sN#𤥠^L{1{FYʫB{Yl4P%2 ܑeZSniWYMn2q H\M߂Li2d-4Y:]"|8@}5_(+d_ |Y΄dEu6B0p 5ی/AMJoIqޓ F?Qs"(MBca}d8m1)=~꓁!,OI_,BI_fK76 0Xҙ J5^+;y0ڔTd:{WS7?HLr^B1Q,WRqL2~+2:>NDCgq11sbD dĠ/0@LNزSF[wt,X:B"ǒF#Ԭ{ 2M iE֧6)`GQMA0~.˱ccyl1g{Zf1Fh)<6ضqbc'^UԻA9{_fMx\/sMnLO6xpXǽ;Bׅ~?M|r~lGQ&Ky!pؗL>:΂p39{Iηg|o T6~u8\6͊y'ZwqEn\coV) q9$W(P2j51*5oBǁgŕe9N@΁ߏ ~7%P ;Vϩ_Wa@fb9wwH[k* z ۵P:Ն$]#ץ]N|rb܉zS:W^Oa_ɡ q = Q~C韕td( P&2'X͹;4R+5 ìn2s oTu5g<t<u=6.h8tz(xl(8h ;`G'rJ? \g b2..G0,_0v  ?h]/ @(v% l- y9bn@ 8Ly@ 8V?KWAJ'~'!*X,Za(] ΔѷcwYߝIQ^wíSmlu0a[q`|ە9jnېÜ9kii&qi㢊ho TOngZx1 q^Oz<$ spZ찵iBN!^oՠp'"s'g, X`~^ٰ?: mɭi?kpaLġbu&]KyVVV-Ah[Yc$bK3f,8 M:k>3?&ظ ֛w|4hL>I iF'DE6=?Ւ2ǽL3/};3P*`8fbj\1Ϸ/_I0|^S5-TKy'3˻o:7URG*UoĴӁ M:8f9ؤ3 ;r|Y+ʼʼ) 6@2 Nu# kH`4WvEt^@9?@ŭ~I+>^0lI+Wf!} qTj6Z;k:x/wd` [iIL<2b zJdU-*@pfXׁjk_$(xCD":xX L\W6OQl֒"_h݄Ŭk]j|I_ xi >]zC%VM{*Hth Ofޅ 1a[A}>y<>y2n5?ѩ.NWI(/,Z+,HO9r .ůO hh_LF#][fupJ۰#|?=.Ӕs dFÖv_5xJ46lyMTb fnj Ͽ+,!)ȸ>KCߧ=5u:s}gs;[/G:,o؂ad.yny]bŇŰzp6^SPsi S{zqq| aru+CWnID6èk P.ia|Bˮ C II(ƼFpAd:ˮQ嗒C?Ji5|{Ak?(]P5C@g @G#4q@P4>n)rP?Φ,h[B!j QE|"V+EQ *X|.]BJJis*M#C#d-M Or%\r^Vh4*>)+p*zXܩ(wJ=R"܋r!Тsm²9k"F kF˨pC_. `j/%Ynm"YdIQykj-Ij&i2p@\6P5:i;Id 0r ScsUk~5~Λb;)X^dI<g|pv$5ny?KWAJ'E"" IwN70+Fw6*Vdx8!pЫm%]ԉNaa[ ۃ UwZNATwy(nn[yzvpp:Ypp^xz[{ %xü;LׅcÒl7un-Y-:g^-޷޷VNw(4 \OYR `FK/H4FX3e\u9 ']pAǵP&:!ɜ=96je߰FӷbaR(!O/Cã}0ފi.GԮkgR,dLIQ /ზP?{*| *M?Qf(^S*3Փjy,aP"D<`[.<79Il)X"i-JKk;Il;cd'8VtR%"ȽMe`Em ^Tq*"z:ϐXyr 32#?k8ZeCYjصH 7ePettl10%6iyE/(BoPHk/O>w ds<n}0u x0#H VDG; nBɘNvgP*K6o tF&B+!!:;(%A!E͑l9/e[tB5By:j>mR: p3P u*~tz ^^Y`UP K~ Iט~a|M*D!zc^c{Kaax| &yZquSE*uWNGy'0NBUE U9;-' HO\65֯sqN}T4i\ c#IFSf٩Ty4Xu\{27f s}!zF <6핞T^{C9?Ƚ.uC fztxq?N$E,=+U})Eͩ1yĜT}ہ[i)d*NjwEn·?{TO&*s;PL=[:Rt_C/u7f撟yiiʵ۽'|(}Db!K#:fb(η[e{s `8hQc=B?ao+۬΂eazuiwPʰl)H: Ϧ_ЪV+eI~2gنgsD*'OϞs'f颗cR * 7<`Xhk*I ٸb[sC˩wp \S 2I^ 7hk>NBvnJF!Z:̟ ~&|aQLǍިFR0g T_£ŝ*/OUUJ6hOĥc=YѺ&a[ZU_/bq\:>ם-GNќ}ٗ9{@LٗzG o@zu1Z[֙r_Y'ym>QzɒhC<܁tWXo`oڗ][C6{hncLVr-Kx>Vº -G~CIMj238n4Ϝq璟gken!*v\͑k{yյj<-60 R3â۪PDMǏ r"Px״߱sjVDHy!!$Y6JZGP<ЛntͬGՒ3xPؒel2yYٶnОoHܱoyX 17[sv غSfqvMKL*rN \:* 7#zٿ$NCY?̠[I`D%MBIBs2 ~ֱA^_^vQci`1N&~;#. xu{> I8=g4*{[Eb(vIn1jt諹7tgDCχOFYD$l= V|##Y87e23%?1eH(Ȑ/cb)" ص'!LO-XXü@} eA]չ|p;`9[kƻ૱hN2O ˭XdnǏ41IyV`H<į34qцYFJ*.}R5 #M%J`2Px#>&`s՗Y U낗BY?׉4 %迟ܑWn 9,D@aps찋VO&[J)F}j9OS0-cx-o5Y&Űɗ/ O̥'vʀZ;YUTq2*^A:RZb2&ۣn^Xhg"v$K\$hY|a}w˗pU%ۿWw}hN'uwi:ΰZ>ޓ4[.4uEs0O`91bʝ2|vܭyLG]6zkp)lNTlĚ'\E4858@!GibH&d@qHJ^ LCJ}4( (4P'^A((}\ٯq[lY}GofEo0m6w~ƍIGKWAJ'$"" Fp,]WReYV$xL89ԩi$e^H~pYwUMiN^v~wN7kY{wO8\8:7×dyN0U"p[~G97Hw]zw[pu859(LBNg3zqsL}7靓NNGѧ AWFQ0HPH9HŔGmmB>XL:CbAL6= 'uhl<1h/ɢ.d%5_Zm5SXÍ`Lu"jl @=e tp`ap:%zMQ^9.S,z@w4amID?sң[_|ADz4N$@uڨ܅rd% IO6d(ueëh?2#!`CFd*Y~SBrK g޸I"~wlˇg SS`>4MbfmnIle e`e U}v“ulo!azI(*D+z%I0*7EPX)|^y!B57MXN 7J7cw4p6Dyu ;:3z4њ[4&36D`TLVB>ƆBlr{2v(c?N?pLyL|z1vQs[o1g&?eB: 6NX<)AB΁E &WI}{7qU "ǫSD/ 8,F%mQ|b=!L)) MFrh;[#21z%㧠efA{>M*LhRBVD%r [B=.X[CL-Ƴ&&,߰B;9grvjvhZNYbvBZH[M;Y;v ӂDEwNLȌb W#0}cBղVk5ZFf&^TLdI517sI8tĿ"Ve/x$6uR%4g]ij"ZX Z-jCƏy5i A%Q%R~-R#2oR\}A)ŧ<7Ns YdK",d%,i&Lfp: pLbMq&'퀻ߟ>O=5vb+]$/ZL}\dFJc,iִ^kuݠ7g2uK])_LM'ra~\CܠyyS|&^&~9u?c957VŌ'F`eQ{1)2CIFm[T-6l]oN(:gPp\CGr i\"֦ͥ/ p5өu8ԍ㍴OTY?*'ꎡQ]>}6֘YC\M:C^i,Pz}"m, h{ ZJ Qm`G%]8DZ)I}%ʺ^ҒmPik-x.!\PÓu H]axrGzqj ܁noV06񕜶hTNS<^E(}5U^; `mIޭ\ c ȪNeUKp*J8I'rRUgM%Qs+d=ʼ+8 SW%=Tr(4ʆ3.\Q6F?J!羶^ѕҸ.Ö1XۖC&_*jcUy璪^e.BP,Ok_<*ڎdYjɻxG in aC7/y>iKݯ x+]8'݄}`ŃYb&U+$NK;[򨲗$bdۓ!cJH!a!.S=pHfj=2I%-q-bʴ"rE~=]}\U;G{8gEǻ8j|bL܎ :oK΃19R ,~ 򸐩oN9s8iCNStqwsogC~Z OK/.1zG^CV5jKFj$\ѩZ\(rt.P;ʺKAӠjO)F}1-j.ߗlVO_[@6n>R<!F܋RgM&59EHpr8_K2gӧWv){JBAr]b|S4-:"TY#}}?%xEgUL뜫e=-Q9^4aBEU1Hk2HN% .~yRxZ6JKpfwŃ%[# 1L`Cvvp֋l<"\͹}I"3똙1\s%!8YЙT/,LJAиЮhwdCKdZaK ܾa)@س;ޘZa+7aFh|ϚV8xAR9 ]>Fǹ9<0P{=80T)XpH")ܜ ( iKͤ h)nkg9Oٲl ֻ(_}gl_WnTY*IUGQ[RTQ;>&OPdWL86~6l3>>E90#r-x W2q3{஁/gRS4JX:-Ae nYw8{jTr0Gyfs[UmP Qk`ϭXet!a:Vs8"|ωrp^WO+G#-n9I9ր#lxrֲtV y@.lw7 ?DqذlZb)lV܄9?eM]_WS %1abإ]S=jTn ΘE>Rgrx8q`g+j:4OÇ?{&۫} /u)R^`8z'X^t!!$:9+qX{9}Nm",37xxRIã2_Fؓ}6Mgc0N08/>OL8%'q+0w/a/%6"`dfƴ"*G>p#ꑳR݁q)ȵ,|r#|t+6diEKRF 4J߫3}֡#&_Ww+]«P0 Aょ/.L_]ՃODZ|dZG ts$ּ.ʳx/Grr1*Th/˜&')7<8s ~Q߾14ʖ+1Fx1FKʟzfDŽ UHEB0phغ,0:&5BzS P}}zƬk

fX|. ω-;ʆ%CPO/X}cJ/Tp WEtIZvz7*äm\7aKks(345v?4^Y4"+ #+gk7qYa9nwy}ۈGˬB` 02Vc{SPzo>MO&S9)/&(gD/ojSN5S̏ S׶Jiܜ+o'vS ޏA^ܑ$HeyQ<x\;+Ew6%,ૃ߸hpxzSYE:{E斻f* i?bČ n-d(S@:2d5<7 g6g"]_JZ $!9G uiYC~98"PwRvArY>}D^Iqfܼ JIbT1 %իj})_0VzdU .Q:cYc.[2>zөǜ\ٰtMI~!(EL>[JdF 7BwS?;xq+NNdP )zX,BMunL9F3EF4"}CÕ|URgx2#ˬ7􁳲G,Qxw[h O<!U5YMW#:&vz'{GƶP, m i!ٶ_[Ө0@0ŇA QD}p`Cl $Ux(h(4zQUb:/H>z-_ŃņOޔ o!g`ވ-łN*S@cXľ 6V+L1u<.uH;bfLĘA5Ps]F%a]_bˎO)“OirL\{+C#paX?;Jēj } ~V^(Tjn07XI`!-e,DZ܆M,vn ÞrYJF`L"6ě-^Dp*"z;OX uz #?բ-`}Cr ;#-k&f8jm.e Mk@ ,[$CUW'ƟS~wd,`ŭa-x`G P2GdvN9VSpLBs:P->/ף~uS  !%y37㮻CxX($(dx};':E+pmcY(~ꃮ__](3 yl?F=dozr:!VQ }? cUSaԨmw55Gׇ0-2z]0S0=O$6zT.YlR'NsN@-?a7'?^ac ?$a&6>-~|!cM?Gߖfh.AAJ¼r +lw"x4%TN@):V&\d\OFA? "-kԵif @杀?ʌ]x?@u( G< j-YyKlhh^\{k`3WL9C A:}G;p'jup}C{c|NXEt"u@ں6u<9O( 27 2 U8X}BrbډΡr_ukZ֠'b }7阹e6*PV"b Ջlt4gމ.{C͋ ,{7z Ɣ5皭:c^R^rakƼ3'z|ً* eb#4w4j̍6I*fۿw0-**< p|D5 #MEJ`3o4ҲbTƠʺ-dt ,YRIԔH6yхۼDW6JH>[ujKx͌BvvKG3&BCI12 (qAҐ Q ҁ=<f'vСtWrKzHAɟS{p˪ni;l/1< u8t<t Ft >u)[!!G=t,!]!?!>t-,!6 !u,!86t6u࠮!>tE=tt !ݴ! ! !ǴL!PWR3t!GZ_XSW/2+3&_[set SD6= set DSHL= set DISK= set COPYCMD=%OCPCMD% set OCPCMD= if not "%1"=="" del %1\sd6setup.bat>NUL MZ  RPKLITE Copr. 1990-92 PKWARE Inc. All Rights Reserved3#  O|7 ;r ! Not enough memory$- -P3WDːS-ڌ͋€NN++؎Ŏ3+56;]^_rJts33JtJtӅtJtӀr Ju.a tu3ۃt*Jtr#JtJtJuӀs.qV+^JuӀrJuӀrJuӁ뼬Ȁu Q)nRfe44 l^; ; l;(uV4mPp tF@56-6b3=t3iM?%M5L7Bh y$`8ѸmKfĒ bK WVFPPqDDu_p⚦q~($F"(j?p*P, Vv  ~At~ԤFMΑXX50Ec1" u-,XU "I2 0/ + 7F ~@uoP H  6r6r irerK@!<R-   V }*={ P5PJBu=09[uH ~TYjtY)u#>4& MQ+.JKp6. ns΂sOtE?@ImInddRdMdA 2&7JA3 "F hFqViŒi1j!V u0=R&+1N- 65zj0Zm# ,#9#tls'5u)蓎u2;&TV>u w` v sz442 <t 8Ɔ`P."6 2i3Hvɝt// /:/#*W3ꩻut)yfa\+#WWzR/ /#jdž܁ƂU |e?4yRg>D@Bu8ې+`6: >`wz=82~ҸiKL.. ] @8:I8t46^\qIr6ZXdjf&hsV)FHD)F阥$ ՂQ t|DB Wt Z}PV,'1oq~aC<u2 M~6Mҁ' ^ ;#NƊ4= G/x<yu%!"4ts4*Mf+(*Bہ$ A + )]p`@t"$"!z)G.0x 0Au 6M~31I(f,^O#NT** ! kFZtuNƋ@O GX:~h(_ NiFcФ'~({鸀w33C ?9^F0B%ˉ \='pu&ъG\H 6bsKRi03;b t(_|26t6bJI7`7 Nu$E(G_VS;eV ? 4|rRq241($+2EF9/Bul0@vB#(S3 G2 G R ,vY+Ҋ^ t]*0 + W E1|TCW#GwTETnB)U55`}E @*ȃ $ANhjs  .>t([@..\Q^q cICB_<,!  ~|}_*AM_94cs>!';XH$nvuN ([ [\\YITj hAP7kPN ^k@4+8f(:rk t]:KY+%` A$I %4ȢE5+Q~!1!p ^1k= =(~b$aFn?<= `U06!2˟VW~h@ :\&G/r3_> j7V鄪RJڋ:`u) ,acRP(Z}Vu~WoV;]/7Lp:^S&UUTvKV8K['8"E  W.cu@iSQRl33ҋٌЎظ_YpUZYru,AF&@BA=)1# &=W V& @;tGT[S2( a=2)t4DC @u!52<~v 3p 9W%6%;62FP(ZGB@&-+8B Frup017(2Vv@t tE FfO@**DQ|XTKN^`  EUv#iOȯb >Ti60"QGB'FtM+F#Zm$A$t8~ g(  (aFF!1WS - ~BbretI`h7Df'vm*a*aat's}^'uRusO t=A0t^>[ ة!.v.kEp0F+R & & %\2`H#Wy"E"J4+vVKi'g;ux}# $NQՊfQIZߐf4ne44D4EvԊ*A gWV:A+fdӥ  ;⒦!B;V\"V(t t.%.s.[OV̀I } @PF Fv }+5R)L!V*V^;뻐6 TW-Gɡ~j!!dC!!\\p";C *;HQ9/CG1PB,@"V$>M@B : <' B#$  +OJآB$DJ +FJH%HHt=:F@qvp~ x t3:]"V0$ =1 1 *L't?85POAtG>ku]>t9;2[9V |" 5v+( H6 ~~d!U}c&UVxx  7) BcB~(>:t 6jA ([@U>FD9Kk kQ 7)uja ]ED$GWp |ժFt@W h XgJFVL CVCRN܆inKiO opʤ DŽ1|O%c&:` !4(>tS>.YLR `* *H6Q00ua+6h#6)d>PR) [LN;|;w1J1fVvl7&J7/9;|9EsLx3TGJ+Z+;Z P;Xw ,F|Fv>++$$j\j.Vd%fDNj60%nt=PoСb`t3V>6  oL!IV7!  q(Cu +>W*~^ 4hj lhmH,D N;uQO tH0F&H0I1,Ot NTG:FXPP0fQN yNV `PRe !V1P@  u xWsqU1ƣx0z$Dtv `h j *bl"npr&atT6  )PѣkR2V1f9qv/ 1jD_F2|\`2vTUKRT ! @@')Ja2>9H/}VEr6"$8)xDdp(86rIp0EoETC+0)B}hZ2@> k>SSqAY >t8 ̕ 7vHH#vfSXSSuSSD–VC,Gt ;w( ڎ9 VFV _,jQ6*y2+tS,G)ldA;|;(|v|6\^'XZ$9 b;%Xj{/ t8.U+BB (І3(NnN V RQv6ގ !v  sIJY Du'[w@?=lM+#b͌W PBY6,"4l <WNu>Ԙ?,N0%hur12bV39Ya"n1Fuں##h@st=h( Ulv_+0hVS# #F8C WcWJ1@V 3ڳ҄$@@% \T Q^Q~Pzu;0:~?9p *BB=&4H" 'KhF? \#s4 ME. 3 M>C UhB~  Ľ D)R'P~sSrlT6* |* &A@\sqߎL3~D,>E^I)C>&J* %-'9镊ddt4@dwMߋ8H#u(rZ.dxwI}^N6{;wH-Es1!6*6#Ћ6#;t <뮸oD{)hb=7 96"}>u-Oe 7dǷWKY)Ge#،oD)HtdH^z%+m G~vN  #L@@؎ڋ'*Nj>+2FIbF(&D%Bx&DHȉVcE:l'Ju Ižy\\\SNuNwc4Z=t yȧ V; uÀ^ >~@7zG_f$ EE TO Ou!d+9^$F 0-^ba@8s=A t^C5pݙo? ~L~)ױ*);ur|LOFH~>%q]&Bx1*pDPPi|HlClFt뚋vMԫYOaN$щ2+"8=PM^'hTz+-a*2ٶ@ &m  `^^@??S SIMnj'DFpE'L: T? {P1Q X6D/D͘D$A[Ae)Dž@ ̕D-WD!D#("=FFLxNu?-,#[2FQ~2+242 :V,鲎g2t BJ`\>=)tĥA[@tV V+V*Ufe ҟ@VvvO%^ZiYxW%+FLiG9(h~}uow( >= uXY\V^_e70B ZZEf9r yK+h ZZ]VW*# ˆ^_^Gd(W:D}JFˤxcffDLR"   T @ TKn[R___ t[ھ0Җ Nʶ b Њ)DDD2D uRߥlJ  i Ұ :I-m iK % ZJa>E<*TZ*t6 * !O3 YRLiW  "D(uFh~t؋"X9v~H'&8u&][Tۗ~Gp;8&GIQ-PF;H|f>~r+Ŧ.i^?s A;`?|ڐ'ҧ '4t-WP X_ 92$$, tۮP̍ 'J6%e̦LjS{QIRYsR0!<s( ܋6Xrׁ~usB( 3 L26& "H@6C+۴J(6s @ u+C$L;& T$ ( c6 8 y)z5 a c %8Y .Jy&,( 36 s () 6"gc 0..63&, T P@t u)Nb| tHADr €t@Ky(ܾ&  Fob+}(6t(f7 lM ~cu# _t>qCX a+%> @a(  ;s OO & E/tڬ FX)V eWF U[!Vh hH- QĜDHDt@toY |L $F' u"ށNGd HuiD APDm3wtDP 2D сj|R a@Z~LqAu +M U$<uFE _rL,~PۿѹizS(@;z r *FtcH9t3TѸBbKJL :u@A7Vy(,6Lx$y$ N*V!mKLl Fpq e"z{\3,+UhN =?7s,>7BVWu% < u:t<uPG+_^  -tM@>• &Vlr԰ ,F"m=pE($~K ӄu tx&OW ?k)Te$@$  NƤD6FNࡎ_X t&[A!W =s> eP#t !5qOR(9RvCP^PPOQPDtA‡ ; v SڣA*7( HHG Sܣ  L(3ێG,'Aف׋~@fu| D+wI]@c=E5:B7Ǩ3rZ*h3Aj^b'I@ u_xt!ƀo`0P95x)F KD1R\T/99 sZѓF9N8{b=1T'VK%kkkÒi"Yxb+ډN^ ۨN 11/W⊄D| $ ~|+~%&r(UPGF)ce86@u:8>x m Sr6 Fuڭ"2?L@NU87D-@kP&VPÀC .2֭>lRHVH(6]MMUu $]_! W׎E~-*--- : r3Tqu ȥkx_OWAVZ6X&+ t,'C:t,A<ɀ AތDӊ?,aQ(s#Ch2u Lcz I}# 1DVV-LP.ywgO4_F2@#!!!R &/pA!?aD,k6L9[d<%xN0%nOS NZ Nu81/VWT3=`g*љݴ=Ylz?z@@UN V$ $L\PWVS3=*}G]#Nj_  "%J%3x8 a u f BHr ;#wr(vNDOu_c[Ev,*%^fLu dgeRS4DO{e TjY!i Y+@r ; r3V3B22kUt %,^Ï B8u t)R@, !3uuGG> ѿ;Q< t<A<< toL)kGN%\X<"t$<\tJB3A *Ӌ Ku91+J1'111( G+ģ @6?CC6"M{6Jت#a\!yo)3ץ4b^{'u(\Bs)[" .J4*!4644e4͏ b& f$U`I&> $9E""EP>W _R. 3I<;Ct~EE!3]K+!0 ;g@t kX@WD~@!_)r+3*sP6X  2â"(x #Ӏu r <"s r<v טSm ÊiuZF XZl'^GtOG ̱3@!<";((VG X_7To d$psVi5 M:jU D)GWJt[~t)}vQ5G9c dP X+{!`>Y&*۬^ut[[ C dJ>o."o8o]K6|<%X:oRϣ*o&4J)(20$$ ,:D&o |0uuUTQ@ -u BrHF\V@o)fV> } P' أ*8.u#%F*:*2 &3)< 4j=p 9@ot'YJ" ,.t>@. d?0 q0 P: W"@+-8=URlAAA /Q4*(~ж otNƨG%ujbHP~T||.uYF"oG tOLwM0JLI6JY'@ 4I`If&H JB^tII@uF뙐{W"B `btbuWWu:*g(^#HST, t L0PrLB،'6>oGu*Z}$uRE-F-?LbaQR[hF蛰=vP. e2t! W:oPJ+ȉN3R0YRI &o  6&o >m ,lu > 0E@$B1B~OB7.a@u/Ox<7 S@u*+X!.WEBIX ~B*K6Doi88IHg۠ ?ggBw7^3PZƸu= I^9yata(hh20h hHp G(u9Mt$ $6qNt :h)D D_ L8 jaJ&W<'xǰA*= Y|>a\!W +1\0, RBR&&#XJx k3ǥ<,*u?FHT+ 0 |5909u =s(%ȃ0fF0hD9~D?LV Nft : uu^(* [ bt NktyEn43*of#T )cJ:=vHVܺ=(s. + @,;tPa TDJA UE4PSQ+> *_r %Y[XUlUN $ˀ?Rb% :­+Ďf} Gq@kɉ'C BBAtswbBH;@s4*D (L{H@ ƌڌ;Ѭb8~& ~ =bu%3HaXXEOXGtP&;t،;SB7뼠J;t $@@^MזNN,%4G&pK5GQE +IAA&;@D vTPrr #+Z ܩ :YRQ[W 9+JUXYZSP3RFRPpZF[t VWMu8 cHuSr'H6R H ;D E V:^s06sZ DQڃ$H-钊T4Br̫L9LnPt Au?U:r9ӎhN9s&L! ١s +r R\(00"@?7?HC5~WYv 9 &(wrid?eS-(cEdLSOof9wh,Ke;gdK)ipdUetQsta}  TyphPlocJiSLnFeo UeyE%tn. (ExxUA:\EGA.SY_) _C< q/t] 58]g*D+mCmDOS>qSqE+?o3DITrdicb`do distI=m0 ber!ng %sUcJNWe 2d\(XPAND KP[:][ 6th]")[.]]O K F Spe!ha ,@. Y/4us+EIw?d)rd@ }X%/nlFW.1=]cIaPter%DconS,l,`G,݌bR~ TdrAly~`|if has&d!sN(ǔf  9oA ;C_FILE_INFO(S~  C`q* mNjx<  lk(JH߶~    !vv   (null)+- #N8RC \PV<^R60 F -ck o@verflowL3integ-dividle by 3 !s9!•ughUAX.ronmt%.rʗe+kE2EV&xaMpowqTm9'19l#޿ssigc^ > kXn->>'s,R/ /f-;-,066j6s78sX |7!<u!<;| NUL if "%3"=="D" setver %1 /D /QUIET > NUL goto done :special echo Copying %1 to %2 %4\expand %1 %2 > NUL goto done :chngdsk if "%SD6%"=="%2" goto done if exist %DISK%ID0%2.BAT goto newdisk echo. echo Insert Supplemental Disk %2, and then press ENTER. pause goto chngdsk :newdisk set SD6=%2 :done @echo off if "%2"=="COPY" goto docopy echo. echo Installs the MS-DOS 6.22 Supplemental Utilities, including: echo * AccessDOS - assists persons with disabilities in using MS-DOS 6.22 echo * Keyboard utilities, including ISO fonts and Dvorak keyboard layouts echo * A program for creating a bootable compressed floppy disk echo * Utilities from MS-DOS 5.0 that were not included with MS-DOS 6.22 echo * Updated network files for MS-DOS 6.22 echo * MS-DOS Shell echo. set OCPCMD=%COPYCMD% set COPYCMD=/y if not "%COPYCMD%"=="/y" goto enverr if "%1"=="" goto usage echo Which components do you want to install? echo. echo A: All the components (requires about 1.4 MB of free disk space) echo S: Selected components only echo X: Exit echo. choice /c:asx "All, Selected, Exit " if errorlevel 3 goto done set SD6=S if not "%SD6%"=="S" goto enverr if errorlevel 2 goto checkdir set SD6=A :checkdir set DISK=XXX if not "%DISK%"=="XXX" goto enverr if exist 360ID01.bat set DISK=360 if exist 720ID01.bat set DISK=720 if exist 120ID01.bat set DISK=120 if exist 144ID01.bat set DISK=144 if not exist %DISK%ID01.BAT goto direrr echo. expand %DISK%id01.bat %1\amjklfgh.000 > NUL if exist %1\amjklfgh.000 goto package1 echo The %1 directory does not exist. echo Do you want to create it? choice /c:yx "Yes, Exit " if errorlevel 2 goto done echo Creating the %1 directory. md %1 expand %DISK%id01.bat %1\amjklfgh.000 > NUL if not exist %1\amjklfgh.000 goto patherr :package1 if "%SD6%"=="A" goto auto1 echo. echo. echo AccessDOS echo ========= echo AccessDOS is a package of MS-DOS extensions for users with movement echo or hearing disabilities. These extensions provide better access to echo computers that run MS-DOS 6.22. AccessDOS requires about 265K of echo free disk space. echo. echo Do you want to copy the AccessDOS utilities? choice /c:ynx "Yes, No, Exit " echo. if errorlevel 3 goto done if errorlevel 2 goto package2 :auto1 echo TAG > %1\amjklfgh.001 :package2 if "%SD6%"=="A" goto auto2 echo. echo Keyboard Utilities echo ================== echo This package includes three Dvorak keyboard layouts, which can be used echo with any standard keyboard. These layouts are specifically designed to echo help individuals who type with a single hand or who have difficulty echo with the standard QWERTY layout. echo. echo The package also includes KBDBUF.SYS, which allows you to increase your echo keyboard type-ahead buffer, and ISO.CPI a monospace (nonproportional) echo display font. echo. echo This package requires about 65K of free disk space. echo. echo Do you want to copy the keyboard utilities? choice /c:ynx "Yes, No, Exit " echo. if errorlevel 3 goto done if errorlevel 2 goto package3 :auto2 echo TAG > %1\amjklfgh.002 :package3 if "%SD6%"=="A" goto auto3 echo. echo Creating a Bootable Compressed Floppy Disk echo ========================================== echo The DRVBOOT.BAT program creates a bootable compressed floppy disk. echo This program requires about 10K of free disk space. echo. echo Do you want to copy this program? choice /c:ynx "Yes, No, Exit " echo. if errorlevel 3 goto done if errorlevel 2 goto package4 :auto3 echo TAG > %1\amjklfgh.003 :package4 if "%SD6%"=="A" goto auto4 echo. echo Additional MS-DOS Utilites echo ========================== echo This package contains utilities from MS-DOS 5.0 that were not included echo with MS-DOS 6.22. This package requires about 350K of free disk space. echo. echo Do you want to copy these utilities? choice /c:ynx "Yes, No, Exit " echo. if errorlevel 3 goto done if errorlevel 2 goto package5 echo. :auto4 echo TAG > %1\amjklfgh.004 :package5 if "%SD6%"=="A" goto auto5 echo. echo MS-DOS 6.22 Network Files echo ========================= echo If you upgraded to MS-DOS 6.22 from a version of MS-DOS less than 5.0, echo you might need to update your network files. This package contains the echo networks files that will work with MS-DOS 6.22. The package requires about echo 275K of free disk space. echo. echo Do you want to copy the network files? choice /c:ynx "Yes, No, Exit " echo. if errorlevel 3 goto done if errorlevel 2 goto package6 echo. :auto5 echo TAG > %1\amjklfgh.005 :package6 if "%SD6%"=="A" goto auto6 echo. echo MS-DOS Shell echo ============ echo This package requires about 450K of free disk space. echo. echo Do you want to copy the MS-DOS Shell? choice /c:ynx "Yes, No, Exit " echo. if errorlevel 3 goto done if errorlevel 2 goto copyit echo. :auto6 echo TAG > %1\amjklfgh.006 set DSHL=XXXXXX if not "%DSHL%"=="XXXXXX" goto enverr :dshloop cls Echo Enter your display type by pressing the appropriate function key. Echo. Echo MS-DOS can use the following display types: Echo. Echo F1 - Monochrome Echo F2 - CGA Echo F3 - EGA Echo F4 - EGA Monochrome Echo F5 - VGA Echo F6 - VGA Monochrome Echo F7 - Hercules Echo F8 - MCGA Echo F9 - 8514 Echo F10 - Quit Echo. :get_key get_func.com if errorlevel 69 goto get_key if errorlevel 68 goto dshdone if errorlevel 67 if not errorlevel 68 goto 8514 if errorlevel 66 if not errorlevel 67 goto mcga if errorlevel 65 if not errorlevel 66 goto herc if errorlevel 64 if not errorlevel 65 goto vgamono if errorlevel 63 if not errorlevel 64 goto vga if errorlevel 62 if not errorlevel 63 goto egamono if errorlevel 61 if not errorlevel 62 goto ega if errorlevel 60 if not errorlevel 61 goto cga if errorlevel 59 if not errorlevel 60 goto mono goto dshloop :mono Echo You selected "Monochrome". Is this correct? choice /c:yn "Yes, No " if errorlevel 2 goto dshloop set DSHL=cpmono goto dshdone :cga Echo You selected "CGA". Is this correct? choice /c:yn "Yes, No " if errorlevel 2 goto dshloop set DSHL=cpcga goto dshdone :ega Echo You selected "EGA". Is this correct? choice /c:yn "Yes, No " if errorlevel 2 goto dshloop set DSHL=cpega goto dshdone :egamono Echo You selected "EGA Monochrome". Is this correct? choice /c:yn "Yes, No " if errorlevel 2 goto dshloop set DSHL=cpegam goto dshdone :vga Echo You selected "VGA". Is this correct? choice /c:yn "Yes, No " if errorlevel 2 goto dshloop set DSHL=cpvga goto dshdone :vgamono Echo You selected "VGA Monochrome". Is this correct? choice /c:yn "Yes, No " if errorlevel 2 goto dshloop set DSHL=cpvgam goto dshdone :herc Echo You selected "Hercules". Is this correct? choice /c:yn "Yes, No " if errorlevel 2 goto dshloop set DSHL=cpherc goto dshdone :mcga Echo You selected "MCGA". Is this correct? choice /c:yn "Yes, No " if errorlevel 2 goto dshloop set DSHL=cpmcga goto dshdone :8514 Echo You selected "8514". Is this correct? choice /c:yn "Yes, No " if errorlevel 2 goto dshloop set DSHL=cp8514 goto dshdone :dshdone if "%DSHL%"=="XXXXXX" goto dshlrerr :copyit if not exist %1\amjklfgh.00? goto done echo. echo Please Wait... copy sd6copy.bat %1 > NUL if exist %1\choice.com ren %1\choice.com choice.999 > NUL copy choice.com %1 > NUL if exist %1\expand.exe ren %1\expand.exe expand.999 > NUL copy expand.exe %1 > NUL copy setup.bat %1\sd6setup.bat > NUL %1\sd6setup %1 COPY :docopy set SD6=1 echo. echo Copying Supplemental Utilities... echo --------------------------------------- if not exist %1\amjklfgh.001 goto copy2 call %1\sd6copy ADOS.OVL %1 call %1\sd6copy ADOS.COM %1 call %1\sd6copy ADOS.CFG %1 call %1\sd6copy ADOS.TXT %1 call %1\sd6copy AREADME.TXT %1 call %1\sd6copy FAKEMOUS.COM %1 :copy2 if not exist %1\amjklfgh.002 goto copy3 call %1\sd6copy DVORAK.SYS %1 call %1\sd6copy DVORAK.TXT %1 call %1\sd6copy KBDBUF.SYS %1 call %1\sd6copy ISO.CPI %1 call %1\sd6copy ISO.TXT %1 :copy3 if not exist %1\amjklfgh.003 goto copy4 call %1\sd6copy DRVBOOT.BAT %1 call %1\sd6copy AM.EXE %1 :copy4 if not exist %1\amjklfgh.004 goto copy5 call %1\sd6copy ASSIGN.COM %1 D call %1\sd6copy BACKUP.EXE %1 D call %1\sd6copy COMP.EXE %1 call %1\sd6copy CV.COM %1 call %1\sd6copy EDLIN.EXE %1 D call %1\sd6copy JOIN.EXE %1 D call %1\sd6copy 4201.CPI %1 call %1\sd6copy 4208.CPI %1 call %1\sd6copy 5202.CPI %1 call %1\sd6copy LCD.CPI %1 call %1\sd6copy GORILLA.BAS %1 call %1\sd6copy MONEY.BAS %1 call %1\sd6copy NIBBLES.BAS %1 call %1\sd6copy REMLINE.BAS %1 call %1\sd6copy EXE2BIN.EXE %1 D call %1\sd6copy GRAFTABL.COM %1 D call %1\sd6copy MIRROR.COM %1 call %1\sd6copy MSHERC.COM %1 call %1\sd6copy PRINTER.SYS %1 call %1\sd6copy PRINTFIX.COM %1 call %1\sd6copy COMMANDS.TXT %1 :copy5 if not exist %1\amjklfgh.005 goto copy6 if "%DISK%"=="360" call %1\sd6copy CHANGEDISK 2 call %1\sd6copy NET.1XE %1 call %1\sd6copy SETNAME.EXE %1 call %1\sd6copy NETBEUI.DOS %1 call %1\sd6copy NETWKSTA.1XE %1 call %1\sd6copy NETWKSTA.2XE %1 call %1\sd6copy REDIR.1XE %1 call %1\sd6copy REDIR.2XE %1 call %1\sd6copy NET.TXT %1 :copy6 if not exist %1\amjklfgh.006 goto donecopy if "%DISK%"=="360" call %1\sd6copy CHANGEDISK 3 if "%DISK%"=="720" call %1\sd6copy CHANGEDISK 2 if "%DISK%"=="120" call %1\sd6copy CHANGEDISK 2 call %1\sd6copy dosshell.com %1 call %1\sd6copy dosshell.exe %1 call %1\sd6copy dosshell.hlp %1 call %1\sd6copy dosswap.exe %1 goto %DSHL% :cpmono call %1\sd6copy mono.grb %1\dosshell.grb NC %1 call %1\sd6copy mono.ini %1\dosshell.ini NC %1 call %1\sd6copy mono.vid %1\dosshell.vid NC %1 goto cpddone :cpcga call %1\sd6copy cga.grb %1\dosshell.grb NC %1 call %1\sd6copy cga.ini %1\dosshell.ini NC %1 call %1\sd6copy cga.vid %1\dosshell.vid NC %1 goto cpddone :cpega call %1\sd6copy ega.grb %1\dosshell.grb NC %1 call %1\sd6copy ega.ini %1\dosshell.ini NC %1 call %1\sd6copy ega.vid %1\dosshell.vid NC %1 goto egainst :cpegam call %1\sd6copy egamono.grb %1\dosshell.grb NC %1 call %1\sd6copy ega.ini %1\dosshell.ini NC %1 call %1\sd6copy ega.vid %1\dosshell.vid NC %1 goto egainst :cpvga call %1\sd6copy vga.grb %1\dosshell.grb NC %1 call %1\sd6copy ega.ini %1\dosshell.ini NC %1 call %1\sd6copy vga.vid %1\dosshell.vid NC %1 goto cpddone :cpvgam call %1\sd6copy vgamono.grb %1\dosshell.grb NC %1 call %1\sd6copy ega.ini %1\dosshell.ini NC %1 call %1\sd6copy vga.vid %1\dosshell.vid NC %1 goto cpddone :cpherc call %1\sd6copy herc.grb %1\dosshell.grb NC %1 call %1\sd6copy mono.ini %1\dosshell.ini NC %1 call %1\sd6copy herc.vid %1\dosshell.vid NC %1 goto cpddone :cpmcga call %1\sd6copy vga.grb %1\dosshell.grb NC %1 call %1\sd6copy cga.ini %1\dosshell.ini NC %1 call %1\sd6copy cga.vid %1\dosshell.vid NC %1 goto cpddone :cp8514 call %1\sd6copy vga.grb %1\dosshell.grb NC %1 call %1\sd6copy ega.ini %1\dosshell.ini NC %1 call %1\sd6copy 8514.vid %1\dosshell.vid NC %1 goto cpddone :egainst FIND /C /I "EGA.SYS" c:\config.sys > NUL if errorlevel 1 goto cpegasys goto cpddone :cpegasys call %1\sd6copy ega.sys %1 Echo DEVICE=%1\EGA.SYS > %1\egasysad.dln copy c:\config.sys+%1\egasysad.dln c:\config.sys > NUL echo --------------------------------------- Echo. Echo The DEVICE=%1\EGA.SYS command has been added to your CONFIG.SYS file. Echo This command is required if you plan to use the MS-DOS Shell Task Echo Swapper with an EGA monitor. Echo. Echo If you have an EGA monitor and also use a mouse, you can save memory Echo by ensuring that the DEVICE command for EGA.SYS is loaded before the Echo mouse driver. Echo. goto cpddone :cpddone :donecopy del %1\amjklfgh.00? > NUL del %1\sd6copy.bat > NUL del %1\expand.exe > NUL del %1\choice.com > NUL if exist %1\egasysad.dln del %1\egasysad.dln > NUL if exist %1\expand.999 ren %1\expand.999 expand.exe > NUL if exist %1\choice.999 ren %1\choice.999 choice.com > NUL echo --------------------------------------- echo. echo The MS-DOS 6.22 Supplemental Utilities have been successfully installed. echo. echo NOTE If you installed the additional utilities from MS-DOS 5.0, echo you must restart your computer before you can run them. %DISK%id0%SD6% %1 :usage echo SETUP [drive:][path] echo. echo [drive:][path] - Directory to install the utilities into. echo (ie. "C:\MSDOS", "C:"). goto done :patherr echo. echo Setup was unable to create the directory %1! echo. echo Note: The supplied directory name must not have a trailing \. If you are echo installing to the root directory, just specify the drive letter and echo colon (ie. "C:"). goto done :enverr echo. echo ERROR: Not enough environment space to run SETUP.BAT! goto done :direrr echo. echo ERROR: You must run SETUP.BAT from the drive and directory that contains echo your supplemental disk files. goto done :dshlrerr echo. echo An Error occoured while choosing video display for the MS-DOS Shell. goto done :done if exist %1\amjklfgh.00? del %1\amjklfgh.00? > NUL set SD6= set DSHL= set DISK= set COPYCMD=%OCPCMD% set OCPCMD= @echo off if not "%1"=="" goto checkit echo To install the Supplemental Utilities, type SETUP at the command prompt. goto done :checkit if "%1"=="CHANGEDISK" goto chngdsk if not exist %2\%1 goto doit echo There is already a file named %1 in %2. %2\choice /c:yn "Do you want to overwrite it? Yes, No " if errorlevel 2 goto done :doit if "%3"=="NC" goto special echo Copying %1 to %2\%1 %2\expand %1 %2\%1 > NUL if "%3"=="D" setver %1 /D /QUIET > NUL goto done :special echo Copying %1 to %2 %4\expand %1 %2 > NUL goto done :chngdsk if "%SD6%"=="%2" goto done if exist %DISK%ID0%2.BAT goto newdisk echo. echo Insert Supplemental Disk %2, and then press ENTER. pause goto chngdsk :newdisk set SD6=%2 :done