`8BM `p NuTHIS DISK HAS BEEN IMMUNIZED AGAINST MOST VIRUSES BY THE 'ULTIMATE VIRUS KILLER' VERSION 5.9 BY RICHARD KARSMAKERS, *THE* ATARI VIRUS KILLER!!!puke'(*** {O`  @`! #@%`')+-//3@5`79;=?A C@E`GKMOQOU`WY[]_a c@e`gikmoq s@u`wy{} @` @ ` @ ` @ o ǀ ɠ @ ` ׀ ٠  @o @!Aa   !Aa!#A%a')+-/1!3A5a79;=?A!CAEaGIKOQ!SAUaWY[]_a!cAeagikmoq!sAuawO`  @`! #@%`')+-//3@5`79;=?A C@E`GKMOQOU`WY[]_a c@e`gikmoq s@u`wy{} @` @ ` @ ` @ o ǀ ɠ @ ` ׀ ٠  @o @!Aa   !Aa!#A%a')+-/1!3A5a79;=?A!CAEaGIKOQ!SAUaWY[]_a!cAeagikmoq!sAuawOK_CREW1993NBITBEAT NFSER096B NGEMV_REG  OMDISK694  OSNDINIT OSPCTHUMB OTCB_T030 )OMREAD_ME TXT!Py. N.. BITBEAT PRG +=dREAD_ME TXT!P~`9*R` Efv*oM m HPHUBg?<JNA(m)m -:gS)@ -OK1PC#HNHx?<HNA@)@l/?<HNA)@h&@)@XЬl)@d)@`ARCpr Ѝ"QHNFALN2Hz2?< NA\pdAxr0XQ)K\NN2JrBjNuHz?<&NN\CAp$L Qp N@BlJpNN@pMN@9@pdAr 0Q0tr N9lNupealp`NuaNJHz?<&NNBWNANC2A@p222NrҌ0<NB0,rNurA9Ar`v C9Cr`rt9@9A9BNrrҌpsNB0,Nu9@N`rDҌpsNBNuC2 @ e @}bA@p222Nr,Ҍ0<NBNu Hn 2$4BBNuAd RdQRB BbABJk 0NuJBjBBXNu 0Nu 2$NuE`B<gJEgEjCDEDF Fe( F dF8BCHC` F0bFHC8v` HD8HDkDуdQRBNuDdBDA@kgAр[SBk0NuJlJBk&Nu0g H@rB JkЀ[` BbNuJBj prtNuHPAJgPpr$< _Nup _NtNu&8*JEgJBgJjBEB:HC҅H@:|ۆ҄ۆ<HC>H@ЃdHA@B@H@хk HAҁHAрSB BbNuN^pNNuCDEJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@N*?<,>CEdGH@0r`?<`JBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNuprt|=|r  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dajSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`HJjDDDS4</NaaNRFBdL8?N<JBga2SF Be BgQRB`ApdR e <rRF&0xafEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`2:HQ A dA6HP 0 0 &0&?< NN\Hx?< NN\JfNu vN)@p `H@)@prtNAHplrtNB 2pN~pNrpapaprapalpalpalpaTpaTpaTBp'a?<NNT@B){L9|0<rtNpapap9@p`pvNv`v`vj`v `v`v`v`?Aa*` Al 2l 4)lVH)lRprtNAl 2l 4HVNuAl 2l 4L VA0000000000prtN9Cp rtNAv` Av `Avl 2l 4)lVHNHaBp0,l 2Nua40,HNua*p0,l 4Nuaprt0,l 22,l 44,NuN9||BlBlrҌpsNBNu@((?<NN.?<NNX@LvA HA HNuNup9@HA)A,N FN @e024E$ Bb5B5A6CC5CK5CAB008:Dk`Ek\00<,>,SFSGFnHGnDDDk9DBlDEk9EBlFcllGcll0,lb 0,lcNupmrtA)HA)HNpNHHPN4 _:8><DbFEbGCHP@dʾAdBD2ƞE29|C???FF22N23BRG0@\@N"2)IN@9@JpNN@r|<N @xepw2A$JBjDFHB t`0QBl9F)lVTAtp 9| N2(g"P@g2RADAH""l`r2oZAe 1@#)I`Nuk1@Nup NN^"l`dpNAtrdJhk\QpaNH ld$l`"Hg: k&@0+R`g k#&@0+S@H3 Q&f)I`LNu?<?<NAXJgJgNAH@B pNA NuApNN$NF$BS@kH2QNupC ұd"X0Pg"RA$D#Nu"X0Nu _0HpN _0HpNE ұeHHQ0)N$_$ZR@H`2QNu$Y0gHR@@"D%$X0P2g# R@%NupE $ $X0dP.gRG,D%pr Y2dP.gRG,D!p4Ae4v`VfANuNWHNuNVHNu(* 0(iNF$E 4R`Q$D 4R`QˈN DN ENua NuN IHPg"B  g &gN(JBjt BNut`Rptr ae OgT Xgj HgSRB ae Fb$0k  c_  c b退`tSJBkNRB0 b b瀀`RB0 fрd`HRp` HRpJQfpN8Nq Y QfdЀЀ 0NuN(N"ZNq Y Qfd ЀЀNuN"N(~$_& Y Qfdփփ!8NN&N ~,Nq8DRzXEEg"7PNqR$HBJBgpNJgJigp`eetЂ`"ЀeЁdp`ЀeЀe"Ѕe$W.H@@NJf`CfSHj-D@Hd0H@H 0H@0`fSC\fS , @a"C]fApNNN*HP?< NA\NuH@aa/a a Nu@0 9c^Nu| PC>$Fehler # ][Abbruch]\f.B &lX)K\)ld` lp ,BQjNup(NXYp-KNu"l`Yd&-KNN^"l`YepN&#k"C-KN"Cփk փk2##`փk"`2`$Y8gHRDD*D%H8#$c2g# HRDD%H`p"l`Qd&&| NuN^"l`QepZNpN <C큠NpC큚NA2NhB A7 NhHxHxFA7pNh)|% A7 NhHxHxFA7pNh?< ?<F?<_?<pC큚NX" N )|!( A7 NhHxHxFA7pNh?< ?<F?<_?<pC큚NX" N )|m A7 NhHxHxFA7pNh?< ?<F?<_?<pC큚NX" N )| A7 NhHxHxFA7pNh?< ?<F?<_?<pC큚NX" N )| A7 NhHxHxFA7pNh?< ?<F?<_?<pC큚NX" N )|9 A7 NhHxHxFA7pNh?< ?<F?<_?<pC큚NX" N )| A7 NhHxHxFA7pNh?< ?<F?<_?<pC큚NX" N ?< ?<FpC큚NX"N(BR+|V+|^+|b+|fpNpNpNp N <"<|Np NHP -VN&<x*<NN"_N N <"<|Np NHP -fNN"_N N <"<|Np NHP -^NN"_N N <"<|Np NHP -bNN"_N NpNN~N&<x*<N`pJBgp/N~N&<x*<NfpJBgp/NN&<x*<N`pJBgp/NN&<x*<NfpJBgp/NN&<x*<NpJBgp$VHfN -V 2]HfNHxHxHxHxA1jNh -VR+@VNf+@N -NN&<x*<NHNfNL8N~g <"<|Np NHP -VN&<x*<NN"_N HPp N"_N NN~N&<x*<N`pJBgp/N~N&<x*<NfpJBgp/NN&<x*<N`pJBgp/NN&<x*<NfpJBgp/NN&<x*<NpJBgp$VHfN -f ^HfNHxHxHxHxA1jNh -fNH <r$<L8NN+@f <"<|Np NHP -fNN"_N HPp N"_N NN~N&<x*<N`pJBgp/N~N&<x*<NfpJBgp/NN&<x*<N`pJBgp/NN&<x*<NfpJBgp/NN&<x*<NpJBgp$VHfN! -^NH -VNH <r$<L8NL8N~pJBgp/ -^N&<x*<N`pJBgp$VHfN!HxHxHxHxA1jNh -^NH <r$<L8NN+@^Nf+@N -NN&<x*<NHNfNL8N~g <"<|Np NHP -^NN"_N HPp N"_N NN~N&<x*<N`pJBgp/N~N&<x*<NfpJBgp/NN&<x*<N`pJBgp/NN&<x*<NfpJBgp/NN&<x*<NpJBgp$VHfN#f -bJ^HfN#fHxHxHxHxA1jNh -bNH <r$<L8NN+@bNf+@N -NN&<x*<NHNfNL8N~g <"<|Np NHP -bNN"_N HPp N"_N NN~N&<x*<N`pJBgp/N~N&<x*<NfpJBgp/NN&<x*<N`pJBgp/NN&<x*<NfpJBgp/NN&<x*<NpJBgp$VHfN%j -VN&<x*<N`pJBgp/ -VNH <r$<L8NH -^NL8NfpJBgp$VHfN%jHxHxHxHxA1jNh -VNH <r$<L8NN+@VNf+@N -NN&<x*<NHNfNL8N~g <"<|Np NHP -VN&<x*<NN"_N HPp N"_N NN~N&<x*<N`pJBgp/N~N&<x*<NfpJBgp/NN&<x*<N`pJBgp/NN&<x*<NfpJBgp/NN&<x*<NpJBgp$VHfN& -f ]HfN&HxHxHxHxA1jNh -fR+@f <"<|Np NHP -fNN"_N HPp N"_N NN~N&<x*<N`pJBgp/N~N&<x*<NfpJBgp/NN&<x*<N`pJBgp/NN&<x*<NfpJBgp/NN&<x*<NpJBgp$VHfN(z -^NH -VNH <r$<L8NL8N`pJBgp/ -^N&<x*<N~pJBgp$VHfN(zHxHxHxHxA1jNh -^R+@^Nf+@N -NN&<x*<NHNfNL8N~g <"<|Np NHP -^NN"_N HPp N"_N NN~N&<x*<N`pJBgp/N~N&<x*<NfpJBgp/NN&<x*<N`pJBgp/NN&<x*<NfpJBgp/NN&<x*<NpJBgp$VHfN) -b ]HfN)HxHxHxHxA1jNh -bR+@bNf+@N -NN&<x*<NHNfNL8N~g <"<|Np NHP -bNN"_N HPp N"_N NN~N&<x*<N`pJBgp/N~N&<x*<NfpJBgp/NN&<x*<N`pJBgp/NN&<x*<NfpJBgp/NN&<x*<NpJBgp$VHfN*HxHxHx*HxGA1jNh+|jN~N&<x*<N`pJBgp/N~N&<x*<NfpJBgp/NN&<x*<N`pJBgp/NN&<x*<NfpJBgp/NN&<x*<NpJBgp$VHfN,THx Hx\Hx*HxGA1jNhN\ <NP+@~pF~"<Np"<RNA-ZNhp"<RN?< ?<FpC큚NX"N(Nz -~"<NNCNFHmA "_NgNJWHgN~N&<x*<N`pJBgp/N~N&<x*<NfpJBgp/NN&<x*<N`pJBgp/NN&<x*<NfpJBgp/NN&<x*<NpJBgp$VHfN-6HxlHxHx*HxGA1jNh -jSWHgN\pNNzN*N*A CNFB2pA2NNCNF?< ?<F -2C큚NX"N( -2WWHfN-?<?-d -f _NNf+@N -2N&<x*<NpJBgp/NfNH -NNH -^NL8NL8NpJBgp$VHfN.@?<Bgp _N -NNH -VNL8NHNfNL8N~gT?<Bgp _NNNzNNpJBgp/HmA "_NpJBgp$VHg NZN.N`NqHmA "_NfN0Nf+@N -NNH -RNL8NHNfNL8N~g+|2prA2NNCNF?< ?<F -2C큚NX"N( -2WWHfN/|?<?-d -f _NNf+@N -2N&<x*<NpJBgp/NfNH -NNH -^NL8NL8NpJBgp$VHfN/?<Bgp _N -NNH -VNL8NHNfNL8N~gT?<Bgp _NNNzNNpJBgp/HmA "_NpJBgp$VHg NZN0N(`NqNf+@N -NNH -RNL8NHNfNL8N~gHmA "_NpJBgp/NNzNNpJBgp$VHghN AzN AvN ArN AnNN\?-p?-t?-x?-|A," N ?-p?-tHm,p _"N*NzN AzN ArN AvN AnNpN~N\ -r"-nN -z"-vNNzNf+@N -NN&<x*<NHNfNL8N~gN\ -r"-nN -z"-vNNzpN~NpNpNpNprN <"<NbpNpNpNp2"<N <^"<NbpNpNpNp5"<N <["<NbpNpNpNp NpN~pZ"<NN: BITBEAT4NpNpNpNp Npn"<NN. V 1.0NpNpNpNpNpz"<NN. ALL RIGHTSN <"<NN: RESERVED 4HP <N"_N NpN~pNpNpN <"<N <L"<Nb)|O A7 NhHx HxA7pNh?<?<?<?<A" N ?<?<*A"N(?<?<*A"N(?<l?<*A"N(?<l?<A"N(?<l?<A"N(?<l?<A"N(?<l?<A"N(?<?<?<?<A" N BJpAJN?< -JNvN&<x*<NN?A"N(N`NqNqpN~pNpNpNp N <"<NN: Speed4N <"<NN: Sound4N <"<NN. LenN <"<NN. VolumeNpN~pNpNpNp N <"<NN: Speed4N <"<NN: Sound4N <"<NN. LenN <"<NN. VolumeN <?"<NN.QUITN <?"<*NN:START4N <?"<NN:NOP4NpN~pNpNpNp NpNpNpNBpA큂N -NvNN+@ -"<qN -"<NbN`NqNqN?<NNT+@>B2p?A2N/-2N>C큠NzN`NqNq+|@2pA2N/-2N>C큠NzN`NqNqN A:N A6N?<NNT+@>B2p?A2N ->NH -6NNL8NH -:N&<x*<NL8NH -2N&<x*<NL8NN/ -2C큠N6" A N`vNq+|@2pA2N ->N&<x*<NH -6NNL8NH -:N&<x*<NL8NH -2NH <r$<L8N&<x*<NL8NN/ -2C큠N6" A N`JNqNN*-32 -243 -449 -2033-3825 -8033 -16258 -16322-32706 -32644 -24323 -62979-57345 -49154 -49156 -53256-63495 -65025 -65032 -805314056-1509985800 -1811990024 1241422334 620645886-1837161185 1232901472 -1531032211 -1837292197-918777290 -459650208 -765909167 -919825616-459650201 -230086825 -383478985 -460174489-230070440 -115027145 -191706260 -230119589-114977993 -55358617 -94689449 -113863881-56734873 -228645033 -114388169 -459388064-1840306469 1227330230 613633645 -1840568640-920150465 -1 -1 -409973139-345131603 -345132180 -623154198 -635762454-1246306441 -1246307466 1802352365 460175854268435455 603979775 83886079 -952107009-266338305 -836763649 1479540735 1040711679538443775 -2147221505 262143 -2147352577393215 393215 370016255 1997406207-33161217 -56754177 814874623 153354237995391 24379391 24903551 988806719-943194977 397933903 -1216611673 1727919439-687934801 -1233164961 310348479 1723847999-155211137 -555789057 -1629541633 1601066495-546526977 -541764737 -542070849 1607815135-1614630929 -538615817 -3489797 -36356099-106266626 -443187202 -1716879364 8990064511839972303 -644817089 -1247355649 227501055-242282497 -1 -1 -18744663051840895743 -575042049 -76206081 991208447-689079026 -688951900 -1377903702 18181590220 357913940 178956970 1163220310536870926 1476394990 671088622 1476394990671088622 1476394990 670392302 1476382702670470126 1476218862 668381678 1476219374666542574 1474118638 669943790 1475809262670769134 1476214766 670990318 1476394990671088622 1476394990 671088622 1342177294805306358 1610612730 1073741820 00 357913941 178956970 1163220309536870912 1476395007 671088639 1476395007671088639 1476395007 671088639 1476395007671088639 1476395007 671088639 1476395007671088639 1476395007 671088639 1476395007671088639 1476395007 671088639 1476395007671088639 1476395007 671088639 1342177280805306367 1610612735 1073741823 00 357913940 178956970 1163220310536870926 1476394990 671088622 1476394990671088622 1476296686 670908398 1476075502670535662 1475299310 668902382 1472025070667320814 1469006318 670994414 1476349934670568430 1475350510 671088622 1476394990671088622 1476394990 671088622 1342177294805306358 1610612730 1073741820 00 1431655764 -1431655766 143165576614 -18 -18 -18-18 -18 -18 -18-18 -18 -18 -18-18 -18 -18 -18-18 -18 -18 -18-18 -18 -18 14-2 -2 -2 0-32 -36 -68 -132-260 -516 -516 -516-516 -1028 -1152 -1112-1132 -2136 -2156 -2136-2156 -4184 -4204 -4184-4204 -8280 -8300 -8280-8300 -16472 -16492 -16472-16492 -32856 -32876 -32856-32876 -65624 -65644 -65624-65644 -131160 -131184 -131160-131184 -262232 -262252 -262232-262252 -524376 -524396 -524376-524416 -262148 -262148 -262148-262148 -131076 -131076 -131080-131104 -65568 -65600 -65597-65597 -32800 -16416 -16384-536870913 -268435457 -134217729 -67108865-33554433 -16777217 -16777217 -16777217-16777217 -8388609 -947912705 -411041793-679477249 -406847489 -675282945 -406847489-675282945 -404750337 -673185793 -404750337-673185793 -403701761 -672137217 -403701761-672137217 -403177473 -671612929 -403177473-671612929 -402915329 -671350785 -402915329-671350785 -402784257 -671219713 -402784257-671219713 -402718721 1476329471 17447649271476329471 -402685953 -671121409 -402685953-671121409 -402669569 -671105025 -402669569-939540481 -32769 -32769 -32769-32769 -65537 -65537 2147418111536805375 536739839 268304383 268304383268304383 536608767 536346623 2014314495-32 -33 -65 -129-257 -513 -513 -513-513 -1025 -1152 -1110-1131 -2134 -2155 -2134-2155 -4182 -4203 -4182-4203 -8278 -8299 -8278-8299 -16470 -16491 -16470-16491 -32854 -32876 -32854-32876 -65622 -65644 -65624-65644 -131160 -131184 -131160-131184 -262231 -262255 -262231-262255 -524381 -524413 -524381-524413 -262169 -262201 -262201-262201 -131185 -131569 -133113-133113 -69629 -69437 -69437-67577 -34809 -16865 -15876520093695 -293601281 -192937985 -117440513-50331649 -50331649 -117440513 -100663297-100663297 -100663297 33554431 -15435038731409286143 -1547698177 1673527295 -14805893131203765247 -1478492161 1205862399 -18811453451340080127 -1880096769 267386879 -1611661313535822335 -1611137025 536346623 1073217535938999807 939261951 670826495 20130037751744568319 2013134847 1744699391 -671219713-402784257 2013200383 1744764927 14763294711744764927 -671121409 -402685953 -671121409-1476427777 -671105025 -1476411393 1476378623134201343 -32769 -32769 -32769-32769 -65537 -65537 -65537-65537 -131073 -131073 -131073-131073 -262145 -524289 1048575-32 -33 -65 -129-257 -513 -513 -513-513 -1025 -1152 -1110-1131 -2134 -2155 -2134-2155 -4182 -4203 -4182-4203 -8278 -8299 -8278-8299 -16470 -16491 -16470-16491 -32854 -32875 -32854-32875 -65622 -65643 -65622-65644 -131160 -131184 -131160-131184 -262232 -262255 -262237-262269 -524378 -524409 -524402-524404 -262369 -270305 -278465-294881 -163809 -162273 -162273-163809 -81889 -81793 -69505-65537 -32769 -16385 -16384536870911 -268435457 -134217729 -67207169-33652737 -17006593 -16973825 -17235969-17170433 -9306113 125042687 -14866186251466433535 -1484259329 1469054975 -14837350411470103551 -1491075073 1463812095 -15057551371451229183 -1535115265 1426063359 -15938355211375731711 -1577582593 1140326399 -15440281611207435263 -2013528065 1341915135 -1879310337536608767 536739839 1073610751 9393930232013134847 1744764927 1476329471 17447649271476329471 -402685953 -671121409 -14764277771476362239 -1476411393 1476378623 -1476411393134201343 -32769 -32769 -32769-32769 -65537 -65537 -65537-65537 -131073 -131073 -131073-131073 -262145 -524289 1048575-32 -33 -65 -129-257 -513 -513 -513-513 -1025 -1152 -1110-1131 -2134 -2155 -2134-2155 -4182 -4203 -4182-4203 -8278 -8299 -8278-8299 -16470 -16491 -16470-16491 -32854 -32875 -32854-32875 -65622 -65643 -65622-65644 -131160 -131184 -131160-131184 -262232 -262255 -262237-262269 -524378 -524409 -524402-524404 -262369 -270305 -278465-294881 -163809 -162273 -162273-163809 -81889 -81793 -69505-65537 -32769 -16385 -16384536870911 -268435457 -134217729 -67207169-33652737 -17006593 -16973825 -17235969-17170433 -9306113 125042687 -14866186251466433535 -1484259329 1469054975 -14837350411470103551 -1491075073 1463812095 -15057551371451229183 -1535115265 1426063359 -15938355211375731711 -1577582593 1140326399 -15440281611207435263 -2013528065 1341915135 -1879310337536608767 536739839 1073610751 9393930232013134847 1744764927 1476329471 17447649271476329471 -402685953 -671121409 -14764277771476362239 -1476411393 1476378623 -1476411393134201343 -32769 -32769 -32769-32769 -65537 -65537 -65537-65537 -131073 -131073 -131073-131073 -262145 -524289 1048575-288 -769 -769 -769-769 -897 -897 -897-897 -1217 -1232 -1222-1219 -2278 -2147 -2150-2147 -4210 -4211 -4210-4209 -8314 -8313 -8282-8313 -16477 -16493 -16477-16493 -32863 -32879 -32863-32879 -65623 -65648 -65624-65648 -131160 -131184 -131160-131184 -262232 -262252 -262230-262252 -524374 -524395 -524374-524416 -262145 -262145 -262145-262145 -131073 -131073 -131074-131074 -65538 -65538 -65537-65537 -32769 -16385 -16384536870911 -268435457 -134217729 -67108865-33554433 -16777217 -16777217 -16777217-16777217 -8388609 125829119 -14847836171468006399 -1480589313 1472200703 -14805893131472200703 -1478492161 1474297855 -14784921611474297855 -1477443585 1475346431 -14774435851475346431 -1476919297 1475870719 -14769192971475870719 -1476657153 1476132863 -1476657153-671350785 -1476526081 -671219713 -402784257-671219713 -402718721 2013200383 17447649272013200383 1744797695 2013233151 9394913271073709055 1073725439 536854527 536854527536854527 -1610645505 -1879080961 -1879080961-2113961985 8323071 8323071 4128767205455359 205389823 4063231 82575358257535 -1040449537 -524289 1048575-32 -12321 -14401 -14465-6145 -7169 -3073 -3073-3585 -1537 -1600 -1814-1835 -2838 -2955 -2454-2443 -4550 -4299 -4294-4323 -8294 -8291 -8306-8307 -16498 -16505 -16474-16505 -32861 -32877 -32861-32879 -65623 -65647 -65624-65644 -131160 -131184 -131160-131184 -262232 -262252 -262230-262251 -524374 -524395 -524374-524416 -262145 -262145 -262145-262145 -131073 -131074 -131074-131074 -65538 -65538 -65537-65537 -32769 -16385 -16384536870911 -268435457 -134217729 -67108865-33554433 -16777217 -16777217 -16777217-16777217 -8388609 125829119 -14847836171468006399 -1480589313 1472200703 -14805893131472200703 -1478492161 1474297855 -14784921611474297855 -1477443585 1475346431 -14774435851475346431 -1476919297 1475870719 -14769192971475870719 -1476657153 1476132863 -1476657153-671350785 -1476526081 -671219713 -402784257-671219713 -402718721 2013200383 20132003832013200383 2013233151 939491327 9394913271073709055 536854527 536854527 -1610629121268419071 -1879080961 -939556865 -100666572916744447 8323071 4128767 4128767406781951 406716415 4063231 825753516646143 -1040449537 -524289 1048575-32 -33 -65 -786561-786689 -393729 -393729 -197121-197121 -99329 -99456 -50262-49259 -24662 -24683 -12374-12395 -6230 -6251 -7254-7275 -9814 -9771 -8982-9003 -16790 -16779 -16582-16587 -32870 -32867 -32882-32883 -65626 -65657 -65630-65645 -131168 -131184 -131168-131184 -262232 -262252 -262230-262251 -524374 -524395 -524374-524416 -262145 -262145 -262145-262145 -131073 -131073 -131073-131073 -65537 -65537 -65537-65537 -32769 -16385 -16384536870911 -268435457 -134217729 -67108865-33554433 -16777217 -16777217 -16777217-16777217 -8388609 125829119 -14847836171468006399 -1480589313 1472200703 -14805893131472200703 -1478492161 1474297855 -14784921611474297855 -1477443585 1475346431 -14774435851475346431 -1476919297 1475870719 -14769192971475870719 -1476657153 1476132863 -14766571531476132863 -1476526081 1476263935 -1476526081-671219713 -402718721 1476329471 1744764927-671154177 1744797695 2013233151 939491327939491327 -1610629121 536854527 -1879064577268419071 -402685953 -486572033 -532709377-534806529 -1072758785 -1072758785 -2096168961-2096168961 -1072824321 -1071775745 -532807681-125960193 -262145 -524289 1048575 444444^4rllr~rLL:,z J. N.. CHECKSCCTOS < JFSERIAL CPX U(1n+FSERIAL DVI 5Y(<1FSERIAL TXT SY(I#GETCOOKIC RMSTE_GALTXT SREAD ME tZ7XSDD_TSTC ChRFAST_SERPRG cp3:FASTXSERPRG b:XSDD TXT ,KREAD_ME TXT!P}`3V ``7Z>>>> PURE-C <<<< for ATARI-ST Version 1.0 (C)88-90 Borland International &H f&op`B@#7L37P k #7V Ј<.@#7RJy7Pg<"@(I$k,"Jf"JfB// ?<?<JNAO A<~kRrRAfA6<HCBB`6 !jBJ)gHiRC` "fSI "WSAkHiRCBSQJ)gHiRCHy`$ON(0 J"LN? 93g @N 93g @NN0?<LNAH0*&HBCN1($x DN1 fB@`PJRC gf&fp`B@L 8Nu@|A NqNqNqNqNqpgzf ANqNqNqpgXp`TNq`NqNqNq0NqNqNq|Nq|pgpCA\JNq NqNqNqaCA@aFNu<f$NqNqNq`NqNqNqkNq`NuD`  P  ( A`A@H |EJ 2< I D  J@f (`2S@f `S@fVD Pg`C!vt pghNqNqgRgSfLFNu`N/"N/FJ@fA3N/FN/4J@gN/Nu/ O$HCA 0AC4NbA / / ? / A3N%*OAC""2AC4(NBgxAC""2AC42N(ghAC""2AC4nBXr [0`|A`0A2"La @`\ [2"La @`JJEj `p0?4 LaTO@`*JEj `0H?4 La@TO@` JEj `p0?4 LaTO@`JEj `p0?4 LaTO@`A 2"La@`A 2"La@`A 2"La&@`|@HN0\OLxNup` Warning: use TCFLTLIB to get float support for printf. H0O$H&I>68jx`p@c8?|0|g" J0R@CDHoBaXO0?| JoBg|-?| `&g|+?| `g | ?| ?| ?D62XAXAt0gJf$B RoDJDf f2SA`.C"SDQ` X JDf fSA`C"SDmQto An ?B?B`ff ?C?B`?C?BC8?|@gE`e0/DS@jD@-`+/ r AJa"J"_AFpJWF@rg SAkt0QS@k AFQ`"H0O$H&I?|@>>68jx0|g JpCDHoBa XO?| JoBg|-?| `&g|+?| `g | ?| :/DlDE|0 ?| |JDffSFDged?DD?|6`8JEfp?@?@6`& JpCDHoBaXO 5d?EE?|6`SE?EE|1"p?@6@`E|b J0CDHoBa6XO0@E:/DDEE?D6DC"SDmQ?EE`?|0D|b JCDHoBaXO0D0:/D<RFDJDffSF?D6t0JfB ?| RoDC"SDk6Q`.C ?E SEj0?| RF`QC"SDkQto Fn ?B?B`ff ?C?B`?B?C`|? ?| x?D ?D?D6|`H0O$H&I?|@>>68k |kx`x0|gR JCNaZANJfJfJPg|ANCXaFAXVH?a_ JCDHoB|k4@k0DR@2|kAa~XOD 0VJDjLBD`F0a\XO 0VSD`BDBoBBoD` 6x0/gf@ Ka0/ g@AN0/g@ Ka0/ g@A NJof Jo6fgp@A .N0/g@ KaT0/6g@A"N0/@g@A8N0/gg@ Ka.0ObL Nu0<HS@rJrfMHGGCA 0jD@aAC a `aAC a P?b C>a dSG`A6"$RGJDoGn| Fo| o00CC?SFpԂӁ@Q` pԂӁ@*(6ԂӁ@ԂӁ@ԅӄC<0QBJjR! :fg0`1RPOpAL@Nu o?jD@ @c0<?>@2AA@AC,0 ]HOgCbC Oda |JGf>J_k Nu?@@@@ @@P@$@@ @4ɿ@iŭ+p@xIϦAGɀCQ~ގFMHvuu Z;]=]u%`R log?֛w9?H?bf?޴@DLd>@8<HDBD/DBAaIa aZKxA !%!%1%xaKMaMQC aCazOL`NuA"o4CG?/p<6>܇׀HAHBHDHE>܇׀?<BCHCHF.HG܇׀.HG܇׀.HG܇׀.HG܇׀.HGև.HGևр?<6HCHFp>܇׀>܇׀>և(".Jkއ96gJg j c a0JfJg96g96fJkt`Jk`h/"HA.HGpށ@H@HG0BGHBHE2tށـׂ݂p"Jk އل݆׃SANu b c0a b f$JfgJk؄݆׃SAR׀fRA` Jk؄݆׃SA Ae "$Hzap` ҁQ !1LNudivCA / / ? AaA0 ]HNu4CG?bfb RGd6|/|$F,HF.h.BGHG҇~`"BAHA,HFpHAHB024 6<?~Gj SWԅӄGd, Q,HF.h.BGHG҇~HA`"BAHB02BB6|FjSG҄FdHG>HG96f,⎜bHFRFkHz``, c96g~96fJkb`lJkf`X//&HC0BCHCH@B@4rЂׁ"$dSGԅӄNu96f╚kfg` JfJg`,HFRdR`,HF  @c"$HzaD` ЀP !1L Numod42<@H@J@fAH@ @bQA @bYA @?bUAJ@kSAH@AԂQ0 B]HNuA(p"@ "By6A1B3636O"Nu/ Hz?<&NN\O$_Nu@TXJ? ?ry@ڢ!h5?ڢ!h5?ڢ!h5?@@NaN-INF+INF(C)Xmath by d'ART/YOM,C HzaXOXO,_NuH@B@H@C6ralJ@kNu.Vp`H Ov Jj|-?|D`g|+?|`g| ?|`~?|`vH Ov ?|`dH Ovf?|`L|0f|x?|`2|X?|`$H Ovf?|` |0?|$H>C8jxA aA pJWF@?@gA 2SAktaSb (Q2/@4/(jt@jtBgf 0Ao@@Alx?B?D`hH0$H&IB(v`H0$H&IvJWFCJBj4Cb6xJAkCc8Cf K0a0 JN` 0 JN0 Kap0DL Nu6x0/g f@ JaP0/g@AN0/g@ Ja,0/g@A N0/g g@ Ja0OLNuH0E6`H0E4&H6g8Kg SC JpNQ J0|gNL Nu00000000 H:$H&I(S&gfJg^+g`)ft,k x$ڹd SfRe`.&// Ka~$"J@k,f4(SSfRf& L\Nu3 3p`"`&x,A'J'JE8'J & KaJ@kfRf"`H&H(k6+"+g0DtaJk+fZ"S"L Ip gSj`*| // " 0a`"_"JkNgPAp SjH@" 0a<߶<Xfg.G*3d"3d&HCHCJCfԃԁd` & gSJ"L Nu3"3p` 3!3p& g"`//"4UB|"bZC"t&HCJCf&HC;0NRBH@B@H@f`$?&8BCHC06H@0HC;0&RBJf8QB" _&Nu3!3`0123456789abcdefghijklmnopqrstuvwxyz/ &y7D g/ &S?<INA\O`&y7H g/ &S?<INA\O`&_Nu@@@@@@@@@@@@@@@@@@@@@@@@@@@::::::8888888888888888888866666644444444444444444444@  !"#  !"#097f/ ?<NATO$_J@f#7NuBy7Nu/ ?< NATO$_Nu/ /?< NA\O$_Nu/ /?< NA\O$_Nu/ ?/ ?/ ?/ H?<NNO$_Nu/ ??<,NNX$_Nu -- Press any key to continue --K %s f= %8.4Lf MHz, Fehler zu %8.4Lf MHz = %+7.2Lf ppm, kein Takt aktiv@$@$?@$ p SCC-Check fr Mega-STE und TT V1.10 Sep 28 1992 qK 1992 by Franz SirlK Dieser Rechner ist kein Mega-STE oder TT!!K Installierter SCC: Standard-SCC 8530 (No detectable enhancements)K VLSI-ESCC 85C30K Zilog-SCC 85C30K AMD-ESCC Z85C30K Zilog-ESCC Z85230K Bitte warten! Der Test dauert ca. 1 Minute.K Sorry! Frequenz-Test-Routinen fr TT noch nicht implementiert.K RTXCBTRXCB RTXCATRXCA PCLK @ I^5?@IQ @C\@@@@@@@@@@6666AMDZILOG4endinit_scc.cont.endinit_tabtst_frq rtxcpclkfill_fifcont1loop_1cloop_2cloop_1no_inc1end_PgmSize7V_fpu1op$4_DigCnvT2_ChrCla11_retNaN%_MemCluL7H_MemBlkL7D_BasPag7Lwrite-_ret012$ultoa0NSuper3dsquarewaitforktst_frqbtst_frqaRsconf3ttest_sccstrtoul/|p_freqprintf)|OutBlank+OutZero+mainpow10lseek-logkbhit3Flog2log216itoa.log1log10getch3fcvt\fabsfwrite,ecvt`exitrftoaverrno3get_cookdxcnv'vCconws3Tcnv_stri7r_wxcnv(\_xlcnv((_xwcnv((_sxcnv'_dxcnv'v_xldivL_xwdivJ_xsdiv_xddiv_xxdiv_lxcnv(^__exit__textBconmap3_fabs__bss7L_xxoverf%_txoverf%_xcpq)4_xlcmp|_xwcmpz_xscmp_xdcmpD_xxcmp_app7P_xyentry%6_xxrem!_xlremd_xwremb_xsrem_xdrem._xlmul4_xwmul2_xsmul_xdmul_xxmull__xxrem!__xlremt__xsrem__xdrem>_xxinexa&__xxsub8__xlsub,__xssub__xdsub_xxentry%>_xcpi) _xxflow%_xcph)*_txmover%__log__xxmul|__xlmulD__xsmul__xdmul_log_xxdivze%_xxunder&,__xxinv_xxinval%_txinval%"_xce)__xxmod!_xxmod!_xxaddH_xwadd_xsaddj_xdadd_xladd_AtExitV3_xxincD_xxdec_xlsub_xwsub_xssub_xdsub_xxsub"__data3__xxincZ__xxdiv__xldiv\__xsdiv__xddiv(__xxcmp__square__xxdec4__xxadd^__xladd__xsaddz__xdadd_fpuxsop#_fpuxdop#F_fpuxxop"_INFP)e_NAN)\_fpuvect6n_INFM)`_FreeAll0_PrintFv_fpumode6_OutStr+_fpuinit(_StkSize_xmather&_fpuctrl6_square_StdOutF6_StdPrnF7._OutIntD)_OutFixF,_OutFix _StkLim7R_OutFlt ^_FlshBuf,_norm012%_normA0$_OutCarD*_OutCarH*_OutCarO*Z_OutChr+_xcln2)_xclg2) __log2_log2_xc2)H_log21>__log1_log1_xc1)>_StdErrF7_log10_pow10_xc10)R_StdAuxF7_StdInF6__log21>__log10_FilSysV3_RedirTa7Z_XltErr.r  ~. . 0T *<0<*&8 4B @ (& .* Jf0 4 & t x& ~. LQDB1 I;\:"D<fD :vL&  "2^ z444    6 6 6 6 6     0@@`  @@ @@    ( 0$,4;BFDF7&~&T& ~i^ (  P p &(pF:\C\PROJECTS\FAST_SER\GETCOOKI.CF:\C\PROJECTS\FAST_SER\TEST_SCC.SF:\C\PROJECTS\FAST_SER\TEST_FRQ.SF:\C\PROJECTS\FAST_SER\CHECKSCC.Ccookiejaroldstackcookiecntvaluecookieget_cookiereffreqsold_sspq3q2q1old_chanbauds2baudm2cntcookievaluecpsscc_typemainwaitforkeyp_freqva_listclock_ttime_tsize_tfpos_t dFSERFSERIAL @"  @AD@AP! @ HC  pFAST Serial` 2NH0$o#(N y(0(g NN p`0G y(0(fBC`?HS jN\ORC|5mA L NuH< oE"0"j3@"R3@2("j3A"R3A0("j3@"R3@2("j3A"R3AK(NN;@W@f%j<8G mn RhZ+|`20HA@A+HHm/.tU2A0pN 6R@gXrC:4JCBA $ Vo p?r,?NXO(pC?r,?NXON Vo ?p,?NXON `pN ` R0N42*A|pN 6R@g2ACAAN"R2pN ` R4(? Vf Ufr`rA@p4N 6R@g R1CpN `p R4(rALpN 6R@g R1CpN ^`Ht RhrA\p N f6R@g R1@p N 4`t RhrAhp N <6R@g R1@p N `4-rAtpN 6R@g;CpN ` Vop?r,?NXO(?p,?NXON6 l"T3h l"T3h Vo ?r,?NVXO|gf|gZ`nBg j hDNTOJ@g,0Njp,/HU j hHNPOJ@fp? j hDNTOpN <`& W)g Wf0N&OLtNuH>O89BCE" R"j3h R"j3h y(opD`B@H r0N "j#HI$09)|f y(o|g y(f|g y(f | fA`A"j#H,"j#|&ht j!|&h j!|&h j!|&h jh`p???4rpN\O*@0- J@f j!|(P,`T|m|n2IA"j#p,`4| f j!|(T,` | f j!|(g,` j!|(v,?-"C j htN TO?-$C j hN TO?- C j hN TO?-&C j hN |TO jhB@NR&HM?+C j hDN PTO?.C j h\N :TOMHn"Np jNjXO j=h=hGHk"KB@NHXO j7h7h?+?+?+4rB@ jN\OHoBg/* y( h4NO 8J@m&|2H ЀЁ jp t jp f0R@g| gS@g| g,` jh?+?+?+4rB@ RNr\OB@`hB@;@&;@ ;@$;@"BgC j htN $TOBgC j hN TOBgC j hNTOBgC j hNTO`p????42N\O(|0|?p?42Nx\Op???42Nf\Ofp??r?42NH\OvHWHoC ANPO2/0/ NN2J@gpof jh?.?.?.4BAp jNN\OJCgp??Bg42N\O`>p???42N\O`( o)fp` ofpO(L|Nu?Bp,?Nv\OJfp?r,?NdXO @6(|fp` |op`06NuH8E(G# 0*fDBC`00@C@AxC"22ICAC4J s N RC|m5|`p???4rpN\O @p"jig(h`(PBjBBD` mJgBC` 2ACAl$2gRC|m 2ACAgl:`RE0@E@"2f`&0@E@AC"22I"s sN SEEo0@C@%5/2C({2I sNdXORjRDPL|mLL8NuBAA(4BAB$0 fB@Nu4BABp f0NuRA`NuH 6ES@fNr???40N\O(p|r???4* BD0* H@2*IA0*2*N\O`|f #""BE`lpE?r,?NDXOp???42NN\O(p|r???4JEB42 BD0HE@22 IA22IA2202N\OREEn?p,?NXO09)|g y)x0*h|hL8NuH06ES@fr???4pN\O5@r???40N\O(p|2A|5A4B|5B 0@|5@ B@N&HBE+ BF+!JFg0`02IGA5AN`p?r,?NXO4BG`pG?r,?NXOp???42pN\O2IGA5t???02N\O(p|2A|4JGB5 0@|5 2A|5 B@N&HBE+ BF+!JFg0`02IGA5|f|f U@f50HG@ANBA< <b;k`|<*f<`&<0< b ACp a$Wb<gt<.f6<*f4`$<0< b ACp a$Wb4g<߲<Lf g`<hggr@dp|?@0;N`````N`N``````````````````````````NNN````````````````` [0`|A`0A2"LaN@`\ [2"LaL@`JJEj `p0?4 La"TO@`*JEj `0H?4 LaTO@` JEj `p0?4 LaTO@`JEj `p0?4 LaTO@`@HN0\OLxNup24C8jxA aA pJWF@?@gA 2SAktaSb (Q2/@4/(jt@jtBgf 0Ao@@Alx?B?D`hH0$H&IB(v`H0$H&IvJWFCJBj4Cb6xJAkCc8Cf K0a0 JN` 0 JN0 Kap0DL Nu6x0/g f@ JaP0/g@AN0/g@ Ja,0/g@A N0/g g@ Ja0OLNuH0E6`H0E4&H6g8Kg SC JpNQ J0|gNL Nu00000000 g<g8g4g0g,g(g$g ggggg ggf @Nu"HJgJgJgJgJg JgJgJf SNuH0$H|g|$bGTrtgJ3kSJgtJ@f"p <0f:pgb<߶<Xf(pf"`N|f<0fg><߶<Xfg.G3d"3d&HCHCJCfԃԁd` & gSJ"L Nu3"(p` 3!(p& g"`//"4UB|"bZC"t&HCJCf&HC;0NRBH@B@H@f`$?&8BCHC06H@0HC;0&RBJf8QB" _&Nu3!(`0123456789abcdefghijklmnopqrstuvwxyz@@@@@@@@@@@@@@@@@@@@@@@@@@@::::::8888888888888888888866666644444444444444444444@  !"#  !"#p `f#,A*<000000p*`B/ #,3* %J %V %b  %j  %r  A%w  $ $%}%% % % % %%%%%   hf%%%%&&& &,&1&6&;&@&L&X&d&l&t&|&&&&&&&&&&&&&'' '' '*'4'>'H'R'\'f'p'z'''''K% `X, xn P 19200 9600 4800 3600 2400 2000 1800 1200 600 300 200 150 134 120 110 80 ''''''FAST_SER by Franz Sirl CPX by Roman HodekPort:Handshake:Kompatib.:bps-Rate:Bits/Zch:Paritt :Stopbits:InfoSichernOKAbbruchFSERIAL-InfosPort :Chiptyp :In-Puffer :Out-Puffer:Frame :Parity:ExitBreak1xxxxx 2xxxxx 3xxx4xxxRx ovfls :Lost Chars:5xxx6xxxFehlerzhler:Fehler lschen Modem 1 Modem 2 Serial 1 Serial 2 keines Xon/Xoff Rts/Cts 8 7 6 5 keine ungerade gerade 1 1,5 2 aus an 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 SCC 8530SCC VL85C30SCC Z85C30ESCC Am85C30ESCC Z85C230ESCC Z85C230AFAST_SER %x.%02x installiert CPX V%s1.0FAST_SER nicht installiert CPX V%sSCCMFPISDN-Copr. MC68302Ethernet-Copr.?%u %6ld  8L2  " $ 84:,6^$pxZ ~6 8fP0000000000 (; TeX output 1993.01.08:1109:-iӍ|he9DtGGcmr17FSERIAL.CPX7tV1.0ReleaseNotes'덍@+XQ cmr12RomanHoSdek"덒8.Janruar1993d7"Vff cmbx10Inhaltsv=erzeichnis'"V 3 cmbx101lZwteckk22lBedientungv<23lDie2(.Input-Pu er:MDiefGrzoedesPu ersfMޞzurank!ommendeDaten.Output-Pu er:WQqditoffMޞzurdenAusgabMepu erF\ehleranzeigen:ZFASTffs#SERv!erwaltetverschiedeneZzahlerfMޞzurFeehler,JdiebMeideraUbertragung`auftretengkzonnen.!IstFASTffs#SERgznic!htginstalliert,sobleibMendiefolgendenAngabenleer.`SCC-bMedingt sindmanc!hederAngabenleidernic!ht immer100%-igv!erlzalich (speziell`FeramefErrorsundLostChars).`F\raming2Errors:yZuXso!vielZeichenwurdenkeinebzw.nichtdierichtigeAnzahlStopbits3wempfangen.`Ptarity2Errors:mAnzahlfderZeic!hen,fMޞzurdieeineinkorrekteParitzatfestgestelltwurde.`Rx2Ovter ows:nZNAnzahlfderZeic!hen,diewegenvollemEmpfangspu ersverlorengingen.`Lost2Chars:`AnzahlqNderZeic!hen,dieverlorengingen,weilderSCCqnichtschnellgenug 3wabgefragtfwurde.`Die Feehlerzzahlerlaufennormalerw!eiseimmerweiter,*+wennneueFeehlerpassieren.Mitdem`ButtonSr" ]Fehlerl@Voschen;\kdDannSmanalleZzahlerwiederaufNullsetzen,~fallsdiesnzotig`seinfsollte.#Zuszatzlic!h0zudenInfoskdDannmanausdiesemDialogauchnoMcheinenBreak(d.h. {eineDauerlageNullenohneStopbits)senden.DerBreakdauertsolange,wiemansic!hmitgedrMޞzuckterMaustastefaufdemButtonbMe ndet.ffffH L͍ {-=2aDabAeiTwirdauc9heinTOS-F:ehlerindiesemZusammenhangumschi t.:-iӍ|-4P=ortabilit⏟Sat!BeiderVielfaltderseriellenSc!hnittstellenundderTOS-Feehleristesnichteinfach,wirklich pMortabelfzuprogrammieren.DahergibteseinpaarEinsc!hrzankungen: ꍍl`FSERIAL.CPXkdDannn!urmiteinerTOS-Veersion1.04verwendetwerden,9damanvorher`diefeingestelltebps-Ratenic!htfauslesenkdDann.l`FSERIAL.CPXv!erlzatsichzoftersdarauf,ҧdaesentweder1,ҧ3(MegaSTE)oMder4(TT)`serielleˡP!ortsgibt,unddiesgenaubMeidengenanntenMaschinen.MFeallseseinmalSchwie-`rigk!eitenmhiermitgebMensollte,y1bitteBugreportanmic!h.Ebenfallswirdangenommen,y1da`bMei 3P!ortsdieser"Modem1;\>,Qr"Modem2;\UJundr"Serial2\UJheien.ֿBei4P!ortswirdr"Serial`1;\iHv!or r" Serial 2\eingesc!hobMen.ʟr" HSerial 1\hat dabMeidiebesondereEigensc!haft,daes`k!einefHandshakeleitungenbMesitzt.l`FSERIAL.CPXAerlaubtDaktuellbiszumaximal29v!erschiedeneDbps-RatenaneinerSc!hnitt-`stelle.DaesFASTffs#SERprinzipiellerlaubt,eigeneGesc!hwindigkeitenzude nieren,kzonn!te`diesJ@dazufMޞzuhren,\damanc!heSpMeedsnichtmehreinstellbarsind.&DieGrenzewzarejedoMch`durc!hfeinfachesNeucompilierenhoMchzusetzen.l`Man:kdDannmitRsconf()nic!ht:denHandshak!emoMduserfahren. XDieseristaberineiner`(undokuen!tierten)mIOREC-VeariablengespMeichert.EsgibtauchschonmehrereanderePro-`gramme,sdieJ sic!hdaraufverlassen,sdadieseAngabMedortsteht. Leiderfunktauchhier`wiederyeinTOS-Feehlerdazwisc!hen:InmanchenVeersionenwarsichAtarinichteinig,9ob`der^ MoMdusn!unimHigh-oderimLo!wbyte^ desWeordszuspeic!hernist.Daherwirdfol-`gendermaenbabgefragt:W WeennimLo!wbytebeinWertungleic!hNullsteht,$sowirddieser`bMen!utzt.ʎNurJwenndorteineNullist,swirdderWeertdesHighbytesbMenutzt.ʎAuchhier`gilt:WeennfmeinVorgehenSc!hwierigkeitenfverursacht:BugrepMortanmich.l`Auc!hڈbMeimBreak-SendenistAtarimalwiedereinTippfehlerunterlaufen:wBeidenOriginal`SCC-Rsconf'sgwirddasBreakbitimfalsc!henParametererwartet.Umdieszuumschi en,`habMeuAic!hfolgendeMethodegewzahlt:{ZuerstwirddasBitanderric!htigenuAStellegesetzt`undDdannimTSR-RMޞzuc!kgabMewertDnachgesehen,;obdortdasBitnunwirklich1ist.wWeenn`jafistallesok,sonstwirddasBitimArgumen!tdavorgesetzt.+5Bugrepuorts!FSERIAL.CPX{wurdeineinemmehrmonatigenBetatestgeprMޞzuftundsc!heintinzwischeneiniger-maenfehlerfreizusein.WFeallsSiedoMc!heinenBug ndenodereinenVeerbesserungsv!orschlaghabMe,fsosc!hreibenSiebittean:tm`RomanfHoMdek`BaiersdorferfStr.7`8521fMzohrendorf`RomanfHoMdek@N(Mausnetz)`cdb0@faui60.informatik.uni-erlangen.de`rnhoMdek@cip.informatik.uni-erlangen.de:-iӍ|-amBestenpMerE-Mail.FzureineDiagnoseisteinegenaueBesc!hreibungdesFeehlersundseiner Symptome~so!wieeinegenaueAngabMederben!utztenSystemkon guration(Hard-undSoftware)zauerstfwic!htig!,]6History񋍍V0.1# b> 3 cmmi10 :)ZErstefv!erzo entlichteVeersionV0.2 :)ZWeatermark-AnzeigeJimInfoMdialogersetzt(daw!enigsinnvoll)durchdieFeehlerzzahler;`ButtonffMޞzurbaudffs#tableffsflagfeingebaut;FeehlerbMeimWindo!w-VerschiebMenfbeseitigtV0.3 =2V1.0:U'Kleiner_VeertippMerbeiStopbits/P!aritzat-Einstellungbeseitigt;bansonstensc!heint`dasfCPXinzwisc!henweitgehendfehlerfreizusein.,;>|J 3 cmmi10"K`y 3 cmr10 cmsy9o cmr9 |{Ycmr8Aacmr60m ************************************************************ * * * FSERIAL.CPX V1.0 Release Notes * * * ************************************************************ Roman Hodek 8. Januar 1993 Inhaltsverzeichnis ================== 1) Zweck 2) Bedienung 3) Die FSERIAL-Infos 4) Portabilitt 5) Bugreports 6) History 1) Zweck ======== FSERIAL.CPX ist Bestandteil von FAST_SER von Franz Sirl, das CPX wurde von Roman Hodek geschrieben. Es dient zur Konfiguration der seriellen Schnittstel- len unter Bercksichtigung von FAST_SER. FSERIAL.CPX tut im Prinzip dasselbe wie das bekannte MODEM.CPX von Atari, nur da es eben merkt, wenn FAST_SER installiert ist und entsprechend handelt. Darberhinaus kann FSERIAL.CPX ein paar Informationen ber die Schnittstellen anzeigen und Breaks senden. 2) Bedienung ============ Im Hauptdialog verhlt sich FSERIAL.CPX genauso, wie man es von einem CPX er- wartet und wie man es von MODEM.CPX gewohnt ist. Es haben nur folgende kleine Anpassungen stattgefunden: - Die Anordnung von Datenbits/Paritt/Stopbits wurde umgestellt, so da es der gewohnten Reihenfolge von z.B. 8N1 entspricht. - Gibt es keine erweiterten Schnittstellen, so ist das Port-Popup abgeschal- tet und fest auf Modem 1. - Ist die aktuelle Schnittstelle Serial 1, so ist kein Rts/Cts-Handshake mg- lich, da Serial 1 keine solchen Handshake-Leitungen besitzt. - Es gibt eine Infozeile, die die Version des CPX anzeigt und ob FAST_SER installiert ist und wenn ja, welche Version. - Es gibt einen Button, um den Kompatibilittsmodus von FAST_SER ein- bzw. auszuschalten. Ist dieser Modus an, so knnen zwei der erweiterten Speeds unter den Rsconf()-Indices 0 und 1 angesprochen werden,[1] die "alten" Raten verschieben sich dementsprechend um 2 und bei Indices 18 findet man alle mglichen neuen Speeds. Um also z.B. bei Seriell 2 38400 bps ein- zustellen, whlt man in einem "nichtwissenden" Programm 9600 bps (= Index 1) aus. Ist die Kompatibilitt ausgeschaltet, so sind die neuen Geschwin- digkeiten nur am Ende zu finden, d.h. sie knnen von Programmen, die nichts von FAST_SER wissen, nicht angesprochen werden. FSERIAL.CPX kommt mit bei- den Konventionen zurecht, allerdings kann es beim Umschalten zwischen bei- den Modi zu einem Verstellen der Baudrate kommen. Man sollte also immer zuerst den Kompatib.modus ndern, "OK" drcken und danach nocheinmal die bps-Rate kontrollieren. Beim Booten werden alle Parameter inklusive der aktuellen seriellen Schnittstelle auf die in FSERIAL.CPX gespeicherten Werte gesetzt. Bei jedem Aufruf werden die Parameter erneut abgefragt, da sie ja von einem anderen Programm verstellt worden sein knnten. Man kann also FSERIAL.CPX auch zum Abfragen der aktuellen Einstellungen benutzen. Wird der Dialog mit "OK" verlassen, so werden die Parameter fr _alle_ Ports gesetzt (nicht nur fr den gerade unter "Port" eingestellten). Ebenso werden bei "Sichern" die Werte fr alle Ports abgespeichert. Leider ist aber der Handshakemode nicht per Rsconf() abfragbar. Daher wird hierfr direkt auf eine undokumentierte Variable der IOREC-Struktur zugegrif- fen.[2] Bei einem TOS 1.02 kann leider die eingestellte bps-Rate nicht ab- gefragt werden. Dieser Fall wird auch nicht abgefragt, da man dann wahrschein- lich weder FAST_SER noch FSERIAL.CPX bentigt. --------------- [1] Seriell 2 und Modem 2 (Mega STE): 0<->57600, 1<->38400, Modem 2 (TT): 0<->38400, 1<->76800 [2] Dabei wird auch ein TOS-Fehler in diesem Zusammenhang umschifft. 3) Die FSERIAL-Infos ==================== Mit dem Button "Info" kommt man zu den FSERIAL-Infos. Dort werden folgende Daten angezeigt: Port: Der Port, zu dem die Daten gehren. Chiptyp: Der Hardwarechip, der diese Schnittstelle steuert. Wenn FAST_SER installiert ist, bekommt man bei SCC-Ports eine genaue Angabe des Chips, ansonsten nur "SCC". Input-Puffer: Die Gre des Puffers fr ankommende Daten. Output-Puffer: dito fr den Ausgabepuffer Fehleranzeigen: FAST_SER verwaltet verschiedene Zhler fr Fehler, die bei der bertragung auftreten knnen. Ist FAST_SER nicht installiert, so bleiben die folgenden Angaben leer. SCC-bedingt sind manche der Angaben leider nicht immer 100%-ig verllich (speziell Frame Errors und Lost Chars). Framing Errors: Zu soviel Zeichen wurden keine bzw. nicht die richtige Anzahl Stopbits empfangen. Parity Errors: Anzahl der Zeichen, fr die eine inkorrekte Paritt fest- gestellt wurde. Rx Overflows: Anzahl der Zeichen, die wegen vollem Empfangspuffers verlo- rengingen. Lost Chars: Anzahl der Zeichen, die verlorengingen, weil der SCC nicht schnell genug abgefragt wurde. Die Fehlerzhler laufen normalerweise immer weiter, wenn neue Fehler pas- sieren. Mit dem Button "Fehler lschen" kann man alle Zhler wieder auf Null setzen, falls dies ntig sein sollte. Zustzlich zu den Infos kann man aus diesem Dialog auch noch einen Break (d.h. eine Dauerlage Nullen ohne Stopbits) senden. Der Break dauert solange, wie man sich mit gedrckter Maustaste auf dem Button befindet. 4) Portabilitt =============== Bei der Vielfalt der seriellen Schnittstellen und der TOS-Fehler ist es nicht einfach, wirklich portabel zu programmieren. Daher gibt es ein paar Einschrn- kungen: - FSERIAL.CPX kann nur mit einer TOS-Version 1.04 verwendet werden, da man vorher die eingestellte bps-Rate nicht auslesen kann. - FSERIAL.CPX verlt sich fters darauf, da es entweder 1, 3 (Mega STE) oder 4 (TT) serielle Ports gibt, und dies genau bei den genannten Maschi- nen. Falls es einmal Schwierigkeiten hiermit geben sollte, bitte Bugreport an mich. Ebenfalls wird angenommen, da bei 3 Ports diese "Modem 1", "Modem 2" und "Serial 2" heien. Bei 4 Ports wird "Serial 1" vor "Serial 2" ein- geschoben. "Serial 1" hat dabei die besondere Eigenschaft, da es keine Handshakeleitungen besitzt. - FSERIAL.CPX erlaubt aktuell bis zu maximal 29 verschiedene bps-Raten an einer Schnittstelle. Da es FAST_SER prinzipiell erlaubt, eigene Geschwin- digkeiten zu definieren, knnte dies dazu fhren, da manche Speeds nicht mehr einstellbar sind. Die Grenze wre jedoch durch einfaches Neucompilie- ren hochzusetzen. - Man kann mit Rsconf() nicht den Handshakemodus erfahren. Dieser ist aber in einer (undokuentierten) IOREC-Variablen gespeichert. Es gibt auch schon mehrere andere Programme, die sich darauf verlassen, da diese Angabe dort steht. Leider funkt auch hier wieder ein TOS-Fehler dazwischen: In manchen Versionen war sich Atari nicht einig, ob der Modus nun im High- oder im Lowbyte des Words zu speichern ist. Daher wird folgendermaen abgefragt: Wenn im Lowbyte ein Wert ungleich Null steht, so wird dieser benutzt. Nur wenn dort eine Null ist, wird der Wert des Highbytes benutzt. Auch hier gilt: Wenn mein Vorgehen Schwierigkeiten verursacht: Bugreport an mich. - Auch beim Break-Senden ist Atari mal wieder ein Tippfehler unterlaufen: Bei den Original SCC-Rsconf's wird das Breakbit im falschen Parameter erwartet. Um dies zu umschiffen, habe ich folgende Methode gewhlt: Zuerst wird das Bit an der richtigen Stelle gesetzt und dann im TSR-Rckgabewert nachgese- hen, ob dort das Bit nun wirklich 1 ist. Wenn ja ist alles ok, sonst wird das Bit im Argument davor gesetzt. 5) Bugreports ============= FSERIAL.CPX wurde in einem mehrmonatigen Betatest geprft und scheint in- zwischen einigermaen fehlerfrei zu sein. Falls Sie doch einen Bug finden oder einen Verbesserungsvorschlag habe, so schreiben Sie bitte an: Roman Hodek Baiersdorfer Str. 7 8521 Mhrendorf Roman Hodek @ N (Mausnetz) cdb0@faui60.informatik.uni-erlangen.de rnhodek@cip.informatik.uni-erlangen.de am Besten per E-Mail. Fr eine Diagnose ist eine genaue Beschreibung des Fehlers und seiner Symptome sowie eine genaue Angabe der benutzten Systemkon- figuration (Hard- und Software) uerst wichtig! 6) History ========== V0.1: Erste verffentlichte Version V0.2: Watermark-Anzeige im Infodialog ersetzt (da wenig sinnvoll) durch die Fehlerzhler; Button fr baud_table_flag eingebaut; Fehler beim Window- Verschieben beseitigt V0.3 = V1.0: Kleiner Vertipper bei Stopbits/Paritt-Einstellung beseitigt; ansonsten scheint das CPX inzwischen weitgehend fehlerfrei zu sein. #include #include WORD get_cookie( LONG cookie, LONG *value) { WORD cookiecnt=0; LONG oldstack=0; LONG *cookiejar; if ( !Super ((void *)1L) ) oldstack = Super (0L); cookiejar = *( (LONG **) 0x5a0L ); if ( oldstack ) Super( (void *) oldstack ); if ( cookiejar==0L ) { return FALSE; } while ( *cookiejar!=NULL && *cookiejar!=cookie ) { cookiejar += 2; cookiecnt++; } *value = *(cookiejar+1); return (*cookiejar==cookie); } Und hier endlich das langerwartete neue SCC-GAL! Dieses GAL behebt bei mir den Hardwarefehler von Seriell2 und senkt die mittl. Fehlerrate beim Senden auf ca. 1 Byte/600K. Mehr konnte ich bisher nicht erreichen, da dieser Restfehler wahrscheinlich nichts mit dem GAL, sondern mit dem BlitterDMA/ACSI-DMA zu tun hat. Das konnte ich allerdings aus Zeitmangel noch nicht nher erforschen. Ich konnte das GAL leider noch an keinem MSTE der neuen Revision testen (Blittersockel leer, ist in GSTMCU integriert). ber entsprechende Erfahrungsberichte (Hallo Jrgen! nox@jelal...) wrde ich mich freuen. Unten folgen sowohl die GAL-Gleichungen als auch das zugehrige JEDEC-File. Das brennt ihr in ein GAL 16V8-15 (am besten A- oder B-Typ, schneller schadet nicht, DIL-Gehuse) und ersetzt damit ein PAL16R4 (Checksum $5613) an der Position UA03 (leider unter dem Netzteil, Vorsicht mit dem Lfter beim Aus/Einbau!). Bei den Glcklichen unter euch ist der Chip gesockelt, die anderen mssen die Beine abzwicken und einzeln auslten. Da mich das GAL ziemlich viel Zeit gekostet hat, ich andererseits aber keine Lust habe mich mit einer Zeitschrift rumzurgern, habe ich mich entschlossen das Ganze als Shareware-Hardware (????) mit __freiwilligem__ Unkostenbeitrag zu deklarieren. Zahlbar als Geld,CD's,... Also wer Lust hat kann mir ja was zukommen lassen! Und zwar an: Franz Sirl Bischof-Adalbert-Str. 29 8000 Mnchen 40 (bzw. ab 1. Juli93: 80809 Mnchen) Bank: Commerzbank Mnchen Kto. 2670131 BLZ 700 400 41 Bin ja gespannt ob ich berhaupt _irgendwas_ bekomme ;-) Ciao, Franzo! -------------- Trace32 from Lauterbach! Simply the best hardware-debugging-tool for the 68K-family -------------- -----------------GAL-Gleichungen------------------------------------------- TITLE GAL for MSTE-SCC PATTERN NSCC REVISION 0.4 AUTHOR Franz Sirl COMPANY Franzo Development DATE 11-02-93 CHIP UA03 PALCE16v8 SIGNATURE NSCC_0.4 ;---------------------------------- PIN Declarations --------------- PIN 1 CLK PIN 2 SCCN PIN 3 ION PIN 4 RXWN PIN 5 ASN PIN 6 RESN PIN 7 IACK5N PIN 8 I8 PIN 9 WAITAN PIN 10 GND PIN 11 OE PIN 12 ASNDEL PIN 13 DTACKN PIN 14 S0 PIN 15 S1 PIN 16 S2 PIN 17 IACK5DELN PIN 18 WRN PIN 19 RDN PIN 20 VCC ;----------------------------------- Boolean Equation Segment ------ EQUATIONS MINIMIZE_OFF RDN.TRST = VCC /RDN = RXWN * S1 * /ASN * /SCCN * /ION + RXWN * S2 * /ASN * /SCCN * /ION + RXWN * S1 * /ASN * /IACK5N + RXWN * S2 * /ASN * /IACK5N + /RESN WRN.TRST = VCC /WRN = /RXWN * S2 * /ASN * /SCCN * /ION + /RESN /IACK5DELN:= /IACK5N /S2:= /S1 * /S0 + /S2 * /S1 + /RESN /S1:= /S0 + S2 * /S1 + S2 * WAITAN + /RESN /S0:= S2 * /S1 + ASN * /S1 * /S0 + SCCN * IACK5DELN * /S1 * /S0 + ION * IACK5DELN * /S1 * /S0 + /RESN DTACKN.TRST = /ASNDEL /DTACKN = /ASN MINIMIZE_ON ASNDEL.TRST = VCC ASNDEL = /(/ASN * /(/(S0 * /S1 * S2) * ASNDEL)) -----------------Ende der Gleichungen------------------------------------- -----------------JEDEC-File------------------------------------------------ PALASM4 PAL ASSEMBLER - MARKET RELEASE 1.5a (8-20-92) (C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1992 TITLE :GAL for MSTE-SCC AUTHOR :Franz Sirl PATTERN :NSCC COMPANY:Franzo Development REVISION:0.4 DATE :11-02-93 ? PAL16V8 UA03* QP20* QF2194* G0*F0* L0000 11111111111111111111111111111111* L0032 11111111111111111011111111111111* L0064 11111111011110011111101111111111* L0096 11111111011110111101101111111111* L0128 10111011011110011111111111111111* L0160 10111011011110111101111111111111* L0192 00000000000000000000000000000000* L0224 00000000000000000000000000000000* L0256 11111111111111111111111111111111* L0288 11111111111111111011111111111111* L0320 10111011101110011111111111111111* L0352 00000000000000000000000000000000* L0384 00000000000000000000000000000000* L0416 00000000000000000000000000000000* L0448 00000000000000000000000000000000* L0480 00000000000000000000000000000000* L0512 11111111111111111111101111111111* L0544 00000000000000000000000000000000* L0576 00000000000000000000000000000000* L0608 00000000000000000000000000000000* L0640 00000000000000000000000000000000* L0672 00000000000000000000000000000000* L0704 00000000000000000000000000000000* L0736 00000000000000000000000000000000* L0768 11111111111111111011111111111111* L0800 11111111111111101110111111111111* L0832 11111111111111111110111011111111* L0864 00000000000000000000000000000000* L0896 00000000000000000000000000000000* L0928 00000000000000000000000000000000* L0960 00000000000000000000000000000000* L0992 00000000000000000000000000000000* L1024 11111111111111111011111111111111* L1056 11111111111111011111111111110111* L1088 11111111111111011110111111111111* L1120 11111111111111111111111011111111* L1152 00000000000000000000000000000000* L1184 00000000000000000000000000000000* L1216 00000000000000000000000000000000* L1248 00000000000000000000000000000000* L1280 11111111111111111011111111111111* L1312 11110111110111111110111011111111* L1344 01111111110111111110111011111111* L1376 11111111111101111110111011111111* L1408 11111111111111011110111111111111* L1440 00000000000000000000000000000000* L1472 00000000000000000000000000000000* L1504 00000000000000000000000000000000* L1536 11111111111111111111111111111110* L1568 11111111111110111111111111111111* L1600 00000000000000000000000000000000* L1632 00000000000000000000000000000000* L1664 00000000000000000000000000000000* L1696 00000000000000000000000000000000* L1728 00000000000000000000000000000000* L1760 00000000000000000000000000000000* L1792 11111111111111111111111111111111* L1824 11111111111101111111111111111111* L1856 11111111111111111111111011111101* L1888 11111111111111111101111111111101* L1920 11111111111111101111111111111101* L1952 00000000000000000000000000000000* L1984 00000000000000000000000000000000* L2016 00000000000000000000000000000000* L2048 00000001011100101100101011000010* L2080 11000010111110100000110001110100* L2112 00101100110000111111111111111111* L2144 11111111111111111111111111111111* L2176 111111111111111101* C75FE* ?0E16 --------------------------------------------------------------------------- Fast_Ser ======== Fast_Ser ist ein erweiterter Treiber fr serielle Schnittstellen auf dem STE/TT/Falcon030. Fr Modem/Serial 1 (MFP) ist eine erweiterte Rsconf-Auskunftsfunktion implementiert. Fr Modem/Serial 2 (SCC) sind zustzlich alle Bco...- und Interrupt-Routinen neu (und hoffentlich fehlerfrei) implementiert, und die Baudratentabelle ist mit eigenen Werten programmierbar. Fast_Ser stellt eine Standardschnittstelle zur jeweiligen Hardware mit Hilfe der Rsconf-Funtion her. - Cookie 'FSER', zeigt auf Struktur FSER_INFO: typedef struct { UWORD version; unsigned unused:15; unsigned baud_table_flag:1; /* bit 0 in einem word */ BASPAG *mem_blk; } FSER_INFO; - Rsconf( -3, -2, xx, xx, xx, xx ) liefert 'FSER' als long - Rsconf( -3, -3, xx, xx, xx, xx ) liefert einen Pointer auf die Struktur CHAN_INFO, die wie folgt definiert ist: typedef struct { BAUD_INFO *baud_table; BAUD_INFO *alt_baud_table; UBYTE **chip_address; UWORD chip_type; unsigned flags:14; unsigned extrd_flag:1; /* bit 1 in einem word */ unsigned irq_flag:1; /* bit 0 in einem word */ WORD task; WORD resv[3]; ULONG dcd_on; ULONG dcd_off; UWORD rxbuffer_overflows; UWORD framing_errs; UWORD parity_errs; UWORD charlost_errs; } CHAN_INFO; typedef struct { LONG baudrate; UWORD SCC_BRG_value; UWORD SCC_MISC_value; /* bit 15..14 Clock mode (Reg. 4) bit 9..8 BRG mode (Reg. 14) bit 6..3 Rx/Tx Clock Source (Reg. 11) */ } BAUD_INFO; baud_table: Zeiger auf die Tabelle mit den Baudrateninfos, in der eine Null bei 'baudrate' das Ende markiert, -1 steht fr eine nicht verfgbare Baudrate (nur bei den ersten 16 Standardeintrgen!!), -2 fr einen freien Eintrag alt_baud_table: wie baud_table, nur sind hier an den Indices 0 und 1 hhere Baudraten eingefgt. Dadurch knnen auch Programme, die Fast_Ser nicht direkt unter- sttzen, die hheren Baudraten nutzen chip_address: Hardwareadresse des Chips bzw. der internen Peripherie bei 68302, etc z.b $FFFF8C81 fr Serial 2 auf MSTE/TT chip_type: Welcher Chiptyp hngt an diesem Kanal dran? $00: MFP $10: Standard-SCC 8530 $11: VLSI-SCC VL85C30 $12: Zilog-SCC Z85C30 $13: AMD-ESCC Am85C30 $14: Zilog-ESCC Z85230 $15: AMD-ESCC Am85C230A $20: ISDN-Coprozessor MC68302 $30: Ethernet-Coprozessor MC68EN360 flags: verschiedene bislang unbenutzte Flags extrd_flag: Beim SCC ist in WR7' das ExtendedRead-Flag gesetzt. irq_flag: gesetzt: Die Interruptroutinen nutzen die SCC-FIFOS. task: hier trgt eine Task, die die Schnittstellenhardware fr sich haben will, ihre Nummer ein. -1 steht fr nicht reserviert. dcd_on: letzter hz_200-Zeitpunkt, an dem DCD aktiv wurde dcd_off: letzter hz_200-Zeitpunkt, an dem DCD inaktiv wurde rxbuffer_overflows: Anzahl der Charakter, die bei einem vollem Empfangsbuffer verlorengingen framing_errs: Anzahl der empfangenen Charakter mit Framing-Fehler (SCC-bedingt ein unsicherer Wert) parity_errs: Anzahl der empfangenen Charakter mit Parity-Fehler charlost_errs: Anzahl der Charakter, die verlorengingen, weil der SCC nicht schnell genug abgefragt wurde (tatschliche Anzahl kann grer sein!) Bei den Standard-Clockraten fr den SCC untersttzt Fast_Ser momentan folgende Baudratenliste (auf die alt_baud_table zeigt): Listen fr den MSTE/Falcon030 Kompatibilitt im FSERIAL.CPX =AN: Index: Modem 2: Serial 2: Original: 0: 57600 57600 19200 1: 38400 38400 9600 2: 19200 19200 4800 3: 9600 9600 3600 4: 4800 4800 2400 5: 3600 3600 2000 6: 2400 2400 1800 7: 2000 2000 1200 8: 1800 1800 600 9: 1200 1200 300 10: 600 600 200 11: 300 300 150 12: 200 200 134 13: 150 150 110 14: 134 134 75 15: 110 110 50 16: 75 75 17: 50 50 18: 38400 38400 19: 57600 57600 20: 76800 115200 21: 153600 Kompatibilitt im FSERIAL.CPX =AUS: Index: Modem 2: Serial 2: Original: 0: 19200 19200 19200 1: 9600 9600 9600 2: 4800 4800 4800 3: 3600 3600 3600 4: 2400 2400 2400 5: 2000 2000 2000 6: 1800 1800 1800 7: 1200 1200 1200 8: 600 600 600 9: 300 300 300 10: 200 200 200 11: 150 150 150 12: 134 134 134 13: 110 110 110 14: 75 75 75 15: 50 50 50 16: 38400 38400 17: 57600 57600 18: 76800 115200 19: 153600 Liste fr den TT: Kompatibilitt im FSERIAL.CPX =AN: Index: Modem 2: Serial 2: Original: 0: 38400 57600 19200 1: 76800 38400 9600 2: 19200 19200 4800 3: 9600 9600 3600 4: 4800 4800 2400 5: 3600 3600 2000 6: 2400 2400 1800 7: 2000 2000 1200 8: 1800 1800 600 9: 1200 1200 300 10: 600 600 200 11: 300 300 150 12: 200 200 134 13: 150 150 110 14: 134 134 75 15: 110 110 50 16: 75 75 17: 50 50 18: 38400 38400 19: 76800 57600 20: 153600 115200 Kompatibilitt im FSERIAL.CPX =AUS: Index: Modem 2: Serial 2: Original: 0: 19200 19200 19200 1: 9600 9600 9600 2: 4800 4800 4800 3: 3600 3600 3600 4: 2400 2400 2400 5: 2000 2000 2000 6: 1800 1800 1800 7: 1200 1200 1200 8: 600 600 600 9: 300 300 300 10: 200 200 200 11: 150 150 150 12: 134 134 134 13: 110 110 110 14: 75 75 75 15: 50 50 50 16: 38400 38400 17: 76800 57600 18: 153600 115200 Bei einem Terminalprogramm (z.B. RUFUS) bedeutet das, da man um eine Baudrate von 57600 auf Serial 2 zu erreichen, 19200 Baud auswhlen mu (im Kompatibilitts-Modus). Allerdings liegen die hohen Baudraten bei Serial 2 ein bichen (vernachlssigbar) neben dem Standard. Hardwarebug! Serial 2 beim MSTE hat einen Hardwarebug, der Zeichen verschluckt. Bei hheren Geschwindigkeiten kann der Bug auch bei Modem2 auftreten. Das hngt von der MSTE-Platinenrevision ab. Dagegen hilft: ein anderes GAL (Listing sollte seit 0.96 im Archiv dabei sein) oder/und ein ESCC 85230. Achtung!! ber die Baudraten mit einem Index grer 15 sind keine Annahmen zulssig!!. (Abfragen mit Rsconf!) Achtung!! zum zweiten! RZ.PRG und SZ.PRG (Version 1.9b) von Michael Ziegler arbeiten mit dem auf Modem 1 eingestellten Baudratenindex. Custom-Version: Falls jemand spezielle oder noch hhere Baudraten braucht, soll er sich bei mir melden. Es ist einiges mglich! Ich habe meinen MegaSTE umgerstet und betreibe einen Zilog ESCC 85230 mit 14.7456 MHz. Der Umbau kostet ca. 40 DM. (Der Umbau ist zum Betrieb von Fast_Ser _nicht_ ntig!!) Dazu braucht man: 1 ESCC Zilog Z8523016VSC ca. 35 DM 1 Quarzoszillator 14.7456 MHz ca. 5 DM 1 Fast_Ser-Version fr eine PCLK von 14.7456 MHz und ein paar Ltkenntnisse Die Bauteile sind bei mir erhltlich. Bauanleitung: 1. alten 85C30 aus dem Sockel hebeln (sehr vorsichtig!!!!!, die Sockel sind sehr sprde und brechen leicht!) 2. am Sockel den Pin 23 (vom markierten Pin 1 gegen den Uhrzeigersinn zhlen) abzwicken 3. am neuen ESCC den Pin 23 (PCLK) _vorsichtig_ nach oben biegen 4. ESCC in den Sockel drcken 5. den Quarzoszillator mit Pin 2 (7) und Pin 4 (14) auf ein 14-poliges TTL-IC (74..) (Pin 1 beachten!!) in der Nhe des ESCC lten. Achtung: die Bauhhe ist unter Umstnden durch das Netzteil begrenzt! 6. Pin 3 des Quarzoszillators jetzt mit Pin 23 des ESCC verbinden 7. das war's! Mit diesem Umbau sind auf beiden Kanlen bis zu 230400 baud alle blichen Baudraten mglich. Falls man auch auf die Pins 13 und 32 (/RTxCA und /RTxCB) die 14.7456 MHz legt, sind theoretisch Baudraten bis 921600 mglich. So das war's vorlufig! Falls jemand Fehlermeldungen, Wnsche, etc hat, bitte melden bei: Post: Franz Sirl Bischof-Adalbert-Str. 29 80809 Mnchen Maus: Franz Sirl@M bzw. Franz Sirl@m.maus.de Voice: 089/356 85 13 mfg Franz Sirl, 08-08-93 Testing/Planning: INF-Datei zum beliebigen konfigurieren der Baudraten restliche XSDD-Funktionen echter MinT-Devicetreiber MinT/MTOS Kompatibilitt (XSDD-Protokoll) applestyle-Handshake auf Modem2/Serial2, um den LAN-Port mit den Standard-Pegelumsetzern betreiben zu knnen Release Notes: 0.96beta, 08-08-93: Falcon wird untersttzt, FPATCH2 _vollstndig_ integriert Es sind jetzt 2 Versionen im Archiv: Fast_Ser.prg ohne XSDD FastXSer.prg mit XSDD XSDD-Dokumentation XSDD.TXT (mit freundlicher Genehmigung von Stephan Baucke) im Archiv dabei XSDD-Protokoll _teilweise_ fr Modem2/Serial2 integriert, wird auch von GSZRZ seit 3.5 und Connect seit 2.20 untersttzt XSDD-Cookie wird als "xSDD" eingetragen, um den vorlufigen Status der Implementation zu kennzeichnen XSDD_TST.C als Beispiel-Code zu XSDD im Archiv Empfangsbuffergre auf 2048 Byte gesetzt Bug bei XON/XOFF behoben (Transmit wurde nach dem XON der Gegenstelle erst wieder gestartet, wenn wieder ein Zeichen in den Puffer geschrieben wurde) 0.95xxxx, 22-07-93: Verschiedene nichtffentliche Testversionen 0.94beta, 20-01-93: FSERIAL.CPX von Roman Hodek ist mit dabei Bei vollem Cookiejar wird jetzt ein Grerer (40) installiert Noch ein Fehler bei NoProtocol auf TT behoben (Anrufbeantworterbug) 0.93beta, 24-11-92: Interruptroutinen korrigiert (NoProtocol auf TT) und optimiert CTS-Handling optimiert Xbios/Iorec()-Patch wird bei TOS2.05 installiert 0.92beta, 04-11-92: Interruptfehler beim TT behoben Bconin fr XON/XOFF korrigiert Am85C230A wird erkannt 0.91beta, 16-10-92: Fehler bei NoProto/XONXOFF behoben (seit 0.88) 0.90beta, 12-10-92: Fehler bei Empfangspufferberlauf behoben (seit 0.88) 0.89beta, 11-10-92: Fehler bei Einstellung ber Kontrollfeld behoben (seit 0.88) 0.88beta, 05-10-92: FSER_INFO enthlt Pointer auf die Basepage von Fast_Ser Modem 2 auf MSTE untersttzt 57600 Transmit-Performance verbessert CHAN_INFO mit WR5 und RR0 erweitert, um Terminalprogramme besser zu untersttzen 0.85beta, 29-09-92: CHECKSCC V1.10 sollte jetzt funktionieren SCC-Typabfrage wieder drin FSER_INFO enthlt Versionsnummer 0.83beta, 27-09-92: Routine die den SCC-Typ testet disabled, da noch fehlerhaft. Z85C30 blockiert danach. Deswegen luft auch CHECKSCC nicht. Neuer Eintrag alt_baud_table in CHAN_INFO. Cookie 'FSER' wird installiert. Enthlt Pointer auf interne Strukturen (momentan nur ein WORD, LSB ist Flag ob baud_table [=0] oder alt_baud_table [=1] benutzt wird). Default ist jetzt 1, d.h. alt_baud_table mit verschobenen Standardeintrgen. baud_table zeigt auf die Standardtabelle, in der Index 0--15 die originalen Baudraten anwhlen, und die Indices >=16 davon abweichende Baudraten bezeichnen. XON/XOFF als Beta-Version implementiert. 0.80beta, 26-09-92: TT-lauffhig. Alle Bco...-Routinen fr Modem/Serial 2 neu geschrieben, Interruptroutinen fr SCC implementiert, XON/XOFF-mode noch !!!nicht!!! implementiert. Beim Rckgabewert von Rsconf werden die Break-Bits von RSR/TSR richtig gesetzt. Die interne Tabelle zur Baudratenprogrammierung ist zugreifbar, fr eigene Werte sind jetzt 10 Eintrge frei. Beim Zilog ESCC 85230 wird das ExtendedRead-Bit (WR7' bit 6) gesetzt und das TxFIFO-Level-Bit (WR7' bit 5) zurckgesetzt. 0.60beta, 08-09-92: In der Struktur wird die Variable chip_type gesetzt. Das Programm CHECKSCC V1.00 ist im Paket mit dabei. Es testet den Chip-Typ und die Frequenzen, die am SCC anliegen. 0.50beta, 30-08-92: erste ffentliche Beta!!-Version #include #include #include #include #include #include #include #define AUX (1) /* AUX (channel 1) undefined (EUNDEV) in FastXSer/XSDD, will be changed later */ #define MODEM1 (6) /* MODEM1 (channel 6) undefined (EUNDEV) in FastXSer/XSDD, will be changed later */ #define MODEM2 (7) #define SERIAL2 (8) #define SERIAL2 (9) /* the assignment of the channels is subject to changes at the moment they meet the assignment of MSTE and Falcon030, and TT (SERIAL1 left out on TT, channel8 !equals! channel9 ) */ extern UWORD get_cookie( ULONG, ULONG * ); typedef LONG cdecl (*cookie_fun)(UWORD opcode,...); static cookie_fun XSDD = NULL; char init[] = "at&t1\r"; char bye[] = "+++ at&t0\r"; char buffers[8192]; char buffer[8192]; /* Rckgabewert: 0 */ WORD XSDriverInfo( BYTE *info, LONG *product, WORD *version ) { LONG old_ssp=0; if ( !Super( (void *) 1L) ) old_ssp = Super( 0L ); XSDD( -2, info, product, version ); if ( old_ssp ) Super( (void *) old_ssp ); return 0; } /* Rckgabewert: Version */ WORD XSVersion( void ) { WORD ret; LONG old_ssp=0; if ( !Super( (void *) 1L) ) old_ssp = Super( 0L ); ret = (WORD) XSDD( -1 ); if ( old_ssp ) Super( (void *) old_ssp ); return ret; } /* Rckgabewert: >=0 - Anzahl der verfgbaren Zeichen EUNDEV - Ungltiges Device */ LONG XSInStat(WORD device) { LONG ret; LONG old_ssp=0; if ( !Super( (void *) 1L) ) old_ssp = Super( 0L ); ret = XSDD( 0, device ); if ( old_ssp ) Super( (void *) old_ssp ); return ret; } /* Rckgabewert: >=0 - Anzahl der Zeichen, die gelesen wurden wurden EUNDEV - Ungltiges Device Weitere (negative) TOS-Fehlernummern bei I/O-fehlern */ LONG XSRead(WORD device, LONG count, BYTE *buffer) { LONG ret; LONG old_ssp=0; if ( !Super( (void *) 1L) ) old_ssp = Super( 0L ); ret = XSDD( 1, device, count, buffer ); if ( old_ssp ) Super( (void *) old_ssp ); return ret; } /* Rckgabewert: >=0 - Anzahl der Zeichen, die ausgegeben werden knnen EUNDEV - Ungltiges Device */ LONG XSOutStat(WORD device) { LONG ret; LONG old_ssp=0; if ( !Super( (void *) 1L) ) old_ssp = Super( 0L ); ret = XSDD( 2, device ); if ( old_ssp ) Super( (void *) old_ssp ); return ret; } /* Rckgabewert: >=0 - Anzahl der Zeichen, die geschrieben wurden EUNDEV - Ungltiges Device Weitere (negative) TOS-Fehlernummern bei I/O-Fehlern */ LONG XSWrite(WORD device, LONG count, BYTE *buffer) { LONG ret; LONG old_ssp=0; if ( !Super( (void *) 1L) ) old_ssp = Super( 0L ); ret = XSDD( 3, device, count, buffer ); if ( old_ssp ) Super( (void *) old_ssp ); return ret; } /* Rckgabe: 0 bei Erfolg EUNDEV - Ungltiges Device */ WORD XSDevName(WORD device, BYTE *name) { WORD ret; LONG old_ssp=0; if ( !Super( (void *) 1L) ) old_ssp = Super( 0L ); ret = (WORD) XSDD( 4, device, name ); if ( old_ssp ) Super( (void *) old_ssp ); return ret; } #define TIOCM_LE 0x01 /* line enable */ #define TIOCM_DTR 0x02 /* data terminal ready */ #define TIOCM_RTS 0x04 /* ready to send */ #define TIOCM_CTS 0x08 /* clear to send */ #define TIOCM_CAR 0x10 /* carrier detect */ #define TIOCM_RNG 0x20 /* ring */ #define TIOCM_DSR 0x40 /* data set ready */ /* Rckgabewert: >=0 (LONG!) - Verfgbare Kontrolleitungen EUNDEV - Ungltiges Device */ LONG XSCtlMap(WORD device) { LONG ret; LONG old_ssp=0; if ( !Super( (void *) 1L) ) old_ssp = Super( 0L ); ret = (WORD) XSDD( 5, device ); if ( old_ssp ) Super( (void *) old_ssp ); return ret; } /* Rckgabewert: >=0 (LONG!) - Status der Kontrolleitungen EUNDEV - Ungltiges Device */ LONG XSGetCtl(WORD device) { LONG ret; LONG old_ssp=0; if ( !Super( (void *) 1L) ) old_ssp = Super( 0L ); ret = (WORD) XSDD( 5, device ); if ( old_ssp ) Super( (void *) old_ssp ); return ret; } /* Rckgabewert: 0 bei Erfolg EUNDEV - Ungltiges Device */ WORD XSSetCtl(WORD device, UWORD ctl) { WORD ret; LONG old_ssp=0; if ( !Super( (void *) 1L) ) old_ssp = Super( 0L ); ret = (WORD) XSDD( 6, device, ctl ); if ( old_ssp ) Super( (void *) old_ssp ); return ret; } /* Rckgabewert: 0 bei Erfolg EUNDEV - Ungltiges Device */ WORD XSOnCtl(WORD device, UWORD on_mask) { WORD ret; LONG old_ssp=0; if ( !Super( (void *) 1L) ) old_ssp = Super( 0L ); ret = (WORD) XSDD( 7, device, on_mask ); if ( old_ssp ) Super( (void *) old_ssp ); return ret; } /* Rckgabewert: 0 bei Erfolg EUNDEV - Ungltiges Device */ WORD XSOffCtl(WORD device, UWORD off_mask) { WORD ret; LONG old_ssp=0; if ( !Super( (void *) 1L) ) old_ssp = Super( 0L ); ret = (WORD) XSDD( 8, device, off_mask ); if ( old_ssp ) Super( (void *) old_ssp ); return ret; } /* Rckgabe: 0 bei Erfolg EUNDEV - Ungltiges Device */ WORD XSBreak(WORD device, WORD on) { WORD ret; LONG old_ssp=0; if ( !Super( (void *) 1L) ) old_ssp = Super( 0L ); ret = (WORD) XSDD( 8, device, on ); if ( old_ssp ) Super( (void *) old_ssp ); return ret; } /* fehlen noch: (laut XSDD-spec) LONG XSIBaud(WORD device, LONG baudrate) LONG XSOBaud(WORD device, LONG baudrate) WORD XSReserve(WORD device) WORD XSRelease(WORD device) LONG XSCapMap(WORD device) LONG XSSetFlags(WORD device, UWORD flags) LONG XSGetFlags(WORD device) WORD XSFlush(WORD device, WORD mode) und die hab ich mir selbst ausgedacht: LONG XSIBuffer(WORD device, LONG *buffer, LONG *size) LONG XSOBuffer(WORD device, LONG *buffer, LONG *size) die setzen den BufferPointer und BufferSize im IOREC, jeweils fr Eingabe und Ausgabe, und liefern die alten Werte zurck. Weitere Vorschlge??? brigens: Im Moment werden (entgegen der XSDD-Spec) nur die Register A2-A7/D3-D7 nicht verndert, das entspricht der PureC-Konvention. */ int main() { int cnt; char *cp; ULONG cookievalue[1]; char xsddinfo[128], devinfo[32]; char *p; LONG product; WORD version1, version2; int i; p=buffers; for( i=0; i<0x200; i++) { strcpy(p,"abcdefghijklmnop"); p+=0x10; } cnt = get_cookie( 'xSDD', cookievalue ); if ( cnt ) { XSDD = (cookie_fun) *cookievalue; } else { printf( "\n XSDD nicht installiert.\n" ); exit( 1 ); } XSDriverInfo( xsddinfo, &product, &version1 ); version2 = XSVersion(); XSDevName( 7, devinfo ); printf( "\n xsddinfo: %s", xsddinfo ); printf( "\n product: %.4s", &product ); printf( "\n Version1: %#06x", version1 ); printf( "\n Version2: %#06x", version2 ); printf( "\n devname: %s", devinfo ); cp = init; do { Bconout( 7, *cp++ ); delay(200); } while( *cp ); delay(5000); while( !kbhit() ) { while( XSOutStat( 7 )<0x7ffL ); while( XSOutStat( 7 )>=0x7ffL ) { XSWrite( 7, 0x10L, buffers ); } while( XSInStat( 7 )<0x10L ); while( XSInStat( 7 )>=0x10L ) { buffer[0x10] = 0; XSRead( 7, 0x10L, buffer ); printf( "\n%s", buffer ); } } getch(); cp = bye; do { delay( 500 ); Bconout( 7, *cp++ ); } while( *cp ); while( Bconstat( 7 ) ) Bconin(7); return 0; }`6z&N+XBRAFSERNhg AJxgTH PfJhg yN y ( NsXBRAFSERI*z`XBRAFSERI*z ogN `(h($l"hNqNq<pgjRl"jRl&jRl$0r2(RAhfrhg1A*(#f`*Rl 8LNs(h($l"hNqNq<pgjRl"jRl&jRl$0Nq*<g<f<WghJ(%gb"ha"h`Tr2(RAhfrhgJ1A(#hdhh c"PJ(%fg|!`|NqfJ`*Rl 8LNs(h($l"hNqNq<pgjRl"jRl&jRl$0r2(RAhfrhg**(#1Afhdhh c"`*Rl P(@Nq8LNs$h($j"hr2(hg*RAhfr1(#@1Aff`(P%8LNs$h($j"h(!gQ!`(J(f8r2(hg,RAhfr11A(#@Nqff`(P%8LNs$h($j"hr2(Nqg(hg"RAhfr1(#@Nqf`(P%1A8LNs(h($l"hNq?($g f*($g"8g)A`)A ( fL($g@Wg6J(%g0g*r2(hgRAhfr1(#1A@Q%0@$Nq8LNs0/j|D@S@|@dA H pgNpNu p0:$Nu"o2"o "A"ofpNuFSERFast_Ser V0.96 1992-93 by Franz Sirl|@d.2/|@d A I pgH pgNpNupNu$000Rt4*Ltx,zA`A"ofpNuModem2Serial2p^NuA`A"h("i@|NqA$Fp(g(ggggNuA`A"h("i2/@|(<}ggNqNq@FpNuA`A"h("i2/@|(ggNqNq@FpNuA`A"h("i2/@|(ggNqNq@FpNuA`A"h("i2/V<@|(<NqNq@FpNuA`Ap0(hdhNuA`ArH(p$/gkr2(0(@gdhd$$o"h2(IC `ٹUdSBk "hQS1IJ(g>>> PURE-C <<<< for ATARI-ST Version 1.0 (C)88-90 Borland International &H f&op`B@#9839< k #9B Ј<.@#9>Jy9OBCxE6 Ja:B@a`JgANa(paK M Aa`:Aa|`0Aar`&Aah`Aa^`AaT`A(aJJg Da|c&pa`p???BB+BA+ B@+"a&\O|c,pFa2p??? oBB(BA( B@("a\O0a#98BAA+ 98мaO L|NuA(p"@ "By9,A1B39,39.O"Nu/ Hz?<&NN\O$_Nu/ &y90 g/ &S?<INA\O`&y94 g/ &S?<INA\O`&_NuH瀠>NMPO @$_NuHRHP?< NA\O$_Nu?/?<1NA??<LNAHRHP?< NA\O$_NuHR?/ // H?<NNO$_NuHR??<,NNXO$_NuHR???<NN\O$_NuHR??<NNXO$_NuHR//H?<NNO $_Nu>^~ p FAST_SER V0.96beta Aug 8 1993 qK 1992-93 by Franz SirlK Fast_Ser kann auf dieser TOS-VersionK nicht installiert werden.K Fast_Ser bereits installiert.K Cookiejar auf 40 Eintrge erweitertK Kein Cookiejar vorhanden!K Fast_Ser nicht installiert.K Fast_Ser frK Modem 1 (STMFP)K Modem 2 (SCC)K Serial 1 (TTMFP)K Serial 2 (SCC)K installiert.K SCC-Typ ist: Standard-SCC 8530K VLSI-ESCC VL85C30K Zilog-SCC Z85C30K AMD-ESCC Am85C30K Zilog-ESCC Z85230K AMD-ESCC Am85C230AK Unbekannter SCC-TypK 4 *L@jhB$ZJFF$$$Dr  JdLT$   "   2& `7&N+XBRAFSERNhg AJxgTH PfJhg yN y ( NsXBRAFSERI*z`XBRAFSERI*z ogN `(h($l"hNqNq<pgjRl"jRl&jRl$0r2(RAhfrhg1A*(#f`*Rl 8LNs(h($l"hNqNq<pgjRl"jRl&jRl$0Nq*<g<f<WghJ(%gb"ha"h`Tr2(RAhfrhgJ1A(#hdhh c"PJ(%fg|!`|NqfJ`*Rl 8LNs(h($l"hNqNq<pgjRl"jRl&jRl$0r2(RAhfrhg**(#1Afhdhh c"`*Rl P(@Nq8LNs$h($j"hr2(hg*RAhfr1(#@1Aff`(P%8LNs$h($j"h(!gQ!`(J(f8r2(hg,RAhfr11A(#@Nqff`(P%8LNs$h($j"hr2(Nqg(hg"RAhfr1(#@Nqf`(P%1A8LNs(h($l"hNq?($g f*($g"8g)A`)A ( fL($g@Wg6J(%g0g*r2(hgRAhfr1(#1A@Q%0@$Nq8LNs0/j|D@S@|@dA H pgNpNu p0:$Nu"o2"o "A"ofpNuFSERFast_Ser V0.96 1992-93 by Franz Sirl|@d.2/|@d A I pgH pgNpNupNu$000Rt4*Ltx,zA`A"ofpNuModem2Serial2p^NuA`A"h("i@|NqA$Fp(g(ggggNuA`A"h("i2/@|(<}ggNqNq@FpNuA`A"h("i2/@|(ggNqNq@FpNuA`A"h("i2/@|(ggNqNq@FpNuA`A"h("i2/V<@|(<NqNq@FpNuA`Ap0(hdhNuA`ArH(p$/gkr2(0(@gdhd$$o"h2(IC `ٹUdSBk "hQS1IJ(g>>> PURE-C <<<< for ATARI-ST Version 1.0 (C)88-90 Borland International &H f&op`B@#939 k #9 Ј<.@#9Jy9g<"@(I$k,"Jf"JfB// ?<?<JNAO A<~kRrRAfA6<HCBB`6 !jBJ)gHiRC` "fSI "WSAkHiRCBSQJ)gHiRCHy,,$ON60 J"LN/? 97g @N 97g @NN6 ?<LNA@|ANq NqNqNqNqNqNqNqNqNqpgf ANqNqNqpgxp`tNq`NqNqNq0NqNqNq|Nq|pg"pNqNqNq<<fpCAfNq NqNqNqNqNqNqaCABaFNu<e$NqNqNq`NqNqNqkNq`NuD`  P   H0*&HBCx |a~Jfat($xJg Dad fB@`PJRC gf&fp`B@L 8NuH0*&HBCx |a&Jfa($xJg Da fp`2PJRC gf fRC2Hmp`$6*$B0H$B@L 8NuH8$H(v&H |aJfa&(x fJg Cap`&& fB&!Jg CazB@LNuH>OBCxE7 Ja|B@aJgANajpa\K M Aa`:A a|`0A ar`&A5ah`AJa^`A`aT`AwaJJg Da|c&pa`p???BB+BA+ B@+"a&\O|c,pFa2p??? oBB(BA( B@("a\O0a#9BAA+ 9мaO L|NuA(p"@ "By9A1B3939O"Nu/ Hz?<&NN\O$_Nu/ &y9 g/ &S?<INA\O`&y9 g/ &S?<INA\O`&_NuH瀠>NMPO @$_NuHRHP?< NA\O$_Nu?/?<1NA??<LNAHRHP?< NA\O$_NuHR?/ // H?<NNO$_NuHR??<,NNXO$_NuHR???<NN\O$_NuHR??<NNXO$_NuHR//H?<NNO $_Nu>^~ p FAST_SER V0.96beta Aug 8 1993 qK 1992-93 by Franz SirlK Fast_Ser kann auf dieser TOS-VersionK nicht installiert werden.K Fast_Ser bereits installiert.K Cookiejar auf 40 Eintrge erweitertK Kein Cookiejar vorhanden!K Fast_Ser nicht installiert.K Cookiejar auf 40 Eintrge erweitertK XSDD preliminary Version installedK Fast_Ser frK Modem 1 (STMFP)K Modem 2 (SCC)K Serial 1 (TTMFP)K Serial 2 (SCC)K installiert.K SCC-Typ ist: Standard-SCC 8530K VLSI-ESCC VL85C30K Zilog-SCC Z85C30K AMD-ESCC Am85C30K Zilog-ESCC Z85230K AMD-ESCC Am85C230AK Unbekannter SCC-TypK 4 *L@jhB$ZJFF$$$Dr  J<RLT$   "   2& Extended Serial Device Driver (XSDD) Entwurf eines Protokolls mit erweiterten Funktionen zur seriellen I/O Author: Stephan Baucke Erste Niederschrift: 7-Sept-1992 Letzte nderung: 11-Sept-1992 Einleitung ---------- Bekanntlich sind die Mglichkeiten des TOS zur Bedienung der seriellen Schnitt- stellen recht beschrnkt: - die Bedienung diverser Kontrolleitungen (wie DCD, DTR, RI usw.) ist nur durch Direktzugriff auf die Hardware mglich - Es sind nur die von Rsconf angebotenen Baudraten einstellbar, auch wenn die Hardware mehr erlaubt - Der Zugriff auf eine Schnittstelle von mehreren Programmen kann nicht koordiniert werden - Da mit BIOS jedes Zeichen einzeln bertragen werden mu, ist die I/O-Performance nicht sehr hoch Im Rahmen der Entwicklung eines seriellen Treibers fr MiNT, der diese Schwchen beheben sollte, kam die Idee auf, die erweiterte Funktionalitt auch unter reinem TOS zugnglich zu machen. Dies ist ein erster Vorschlag, wie das aussehen knnte. Im wesentlichen werden dabei die Low-Level-Routinen des MiNT-Treibers ber einen Cookie von auen zugnglich gemacht. Denkbar wre jedoch auch, die beiden Ebenen vllig zu trennen und den MiNT-Treiber auf einen separaten TOS-Treiber aufzu- setzen. Das XSDD-Protokoll ------------------ Das XSDD-Protokoll untersttzt die ber Bconmap verwalteten Devices 6 bis ein- schlielich (soweit das zugrundeliegende TOS sie zur Verfgung stellt), sowie das Device 1 (AUX). Operationen auf AUX beziehen sich immer auf das zum Zeitpunkt des Aufrufs von XSDD gerade aktuelle Bconmap-Device. In Zu- kunft wird AUX mglicherweise aus technischen Grnden nur noch dann untersttzt, wenn das zugrundeliegende TOS kein Bconmap hat. Der Treiber installiert einen Cookie "XSDD". Der Cookie zeigt auf den Einsprung- punkt des XSDD-Treibers. Unmittelbar vor der Routine (also an Offset -4 vor der Adresse aus dem Cookie) steht zur Absicherung nochmals die Long-Konstante "XSDD". Aufruf: Welche Funktion ausgefhrt werden soll, wird durch einen Opcode (WORD) angegeben. Dieser Opcode ist bei jedem Aufruf das erste Argument. Wenn ein un- gltiger Opcode angegeben wird, wird EINVFN zurckgeliefert. Die bergabe aller Parameter erfolgt nach GEMDOS-Konvention, d.h. auf dem Stack. Der Rckgabewert wird in D0 geliefert. Auer D0 werden keine Register verndert. Der Aufruf von XSDD darf AUSSCHLIESSLICH im Supervisor-Modus erfolgen. Z.Zt. sind die im folgenden aufgelisteten Funktionen vorgesehen (Opcodes mssen noch vergeben werden). Fr die Parametertypen gilt folgende Vereinbarung: BYTE: 8-Bit-Zeichen WORD: 16-Bit signed Integer UWORD: 16-Bit unsigned Integer LONG: 32-Bit signed Integer ----------------------------------------------------------------------------------- WORD XSVersion(void) Liefert die Versionsnummer des vom XSDD-Treibers implementierten Protokolls zurck, Major-Version im Hi-Byte, Minor-Version im Low-Byte (Beispiel: 0x0102 entspricht Version 1.2). Diese Nummer soll nicht etwa die Version des Treiber- programms wiederspiegeln, sondern nur die des implementierten Protokolls. Rckgabe: Protokollversion. ----------------------------------------------------------------------------------- WORD XSDriverInfo(BYTE *info, LONG *product, WORD *version) Dieser Aufruf liefert einen Info-String, eine Produktkennung, sowie die Version des jeweiligen Treiberprogramms zurck. `info' mu dabei auf einen mindestens 80 Bytes groen Puffer zeigen, in den der Info-String nullterminiert eingetragen wird (der String kann z.B. den Author und den Namen des Treibers enthalten). In den LONG, auf den `product' zeigt, wird die Produktkennung eingetragen, sowie in das WORD, auf das `version' zeigt, die Treiberversion. Rckgabe 0 ----------------------------------------------------------------------------------- WORD XSDevName(WORD device, BYTE *name) Ermittelt den Namen des zum BIOS-Device gehrigen Ports (z.B. "Modem1"). `name' mu auf ein mindestens 9 Bytes groes Array zeigen. Dort wird der Name nulltermi- niert eingetragen. Rckgabe: 0 bei Erfolg EUNDEV - Ungltiges Device ----------------------------------------------------------------------------------- WORD XSReserve(WORD device) Device reservieren. Es handelt sich hier um ein "advisory" Locking, d.h. es ist darauf angewiesen, da jedes Programm den Lock abfragt und freiwillig auf weitere Zugriffe verzichtet, wenn das Device bereits belegt ist. Jedes Programm hat vor irgendeinem Zugriff auf das Device diesen Aufruf durchzufhren. Wenn das Device noch frei war, ist es nach dem Aufruf reserviert. Wenn es bereits reserviert war, wird ein Fehlercode zurckgeliefert. In diesem Fall sollte keinerlei Zugriff mehr auf das Device erfolgen. Rckgabewert: 0 - das Device ist jetzt reserviert EACCDN - das Gert war bereits reserviert EUNDEV - Ungltiges Device ----------------------------------------------------------------------------------- WORD XSRelease(WORD device) Device wieder freigeben. Dieser Aufruf darf NUR gemacht werden, wenn vorher ein erfolgreicher XSReserve durchgefhrt werden konnte (mit Rckgabe 0). Falls auf dem Device noch eine XSCtlSig-Routine angemeldet war, wird sie automatisch freigegeben. Rckgabewert: 0 bei Erfolg, EACCDN - wenn das Device nicht reserviert war. EUNDEV - Ungltiges Device ----------------------------------------------------------------------------------- LONG XSCapMap(WORD device) Fragt diverse Eigenschaften von Treiber und Device ab. Wenn kein Fehler vorliegt, wird ein Bitvektor zurckgeliefert. Folgende Bits sind z.Zt. definiert: #define XS_BREAK 0x01 /* Device kann Break senden */ #define XS_RTSCTS 0x02 /* Device beherrscht RTS/CTS-Handshaking */ #define XS_TANDEM 0x04 /* Device beherrscht XON/XOFF-Handshaking */ #define XS_IOBAUD 0x08 /* Device beherrscht verschiedene I- und O-Baudraten */ #define XS_BIOSRW 0x8000 /* Treiber benutzt BIOS zum Lesen/Schreiben */ Alle anderen Bits sind reserviert und sollten bis auf weiteres ignoriert werden. Rckgabewert: >=0 (LONG!) - Verfgbare Fhigkeiten EUNDEV - Ungltiges Device ----------------------------------------------------------------------------------- LONG XSIBaud(WORD device, LONG baudrate) Eingabe-Baudrate (genauer: bps) des angegebenen Devices setzen/abfragen. Die Baud- rate wird unkodiert im "Klartext" angegeben (38400L entspricht z.B. 38400 bps). Wenn -1L angegeben wird, wird die Baudrate nicht verndert (nur Abfrage). Falls eine Baudrate angfordert wird, die auf dem Device nicht zur Verfgung steht, wird die nchst niedrigere verfgbare eingestellt und zurckgeliefert. Die meisten Devices untersttzen keine getrennten Baudraten fr Ein- und Aus- gabe. In diesem Fall wird mit einem XSIBaud gleichzeitig auch die Ausgabe- Baudrate verndert (dies kann mit XSCapMap abgefragt werden). Rckgabewert: >0 - eingestellte Baudrate EUNDEV - Ungltiges Device Anmerkung: Durch die Rckgabe der nchst niedrigen verfgbaren Baudrate kann der Aufrufer alle fr dieses Device verfgbaren Baudraten durch "Abklappern" von oben nach unten ermitteln. ----------------------------------------------------------------------------------- LONG XSOBaud(WORD device, LONG baudrate) Ausgabe-Baudrate (genauer: bps) des angegebenen Devices setzen/abfragen. Die Funktionsweise ist ansonsten analog zu XSIBaud. Die meisten Devices untersttzen keine getrennten Baudraten fr Ein- und Aus- gabe. In diesem Fall wird mit einem XSOBaud gleichzeitig auch die Eingabe- Baudrate verndert (dies kann mit XSCapMap abgefragt werden). Rckgabewert: >0 - eingestellte Baudrate EUNDEV - Ungltiges Device ----------------------------------------------------------------------------------- WORD XSBreak(WORD device, WORD on) Ein BREAK auf dem Device setzen/lschen. Wenn `on' ungleich 0 ist, wird BREAK gesetzt, ansonsten gelscht. Wenn das Device BREAK nicht beherrscht, wird der Aufruf ignoriert. Rckgabe: 0 bei Erfolg EUNDEV - Ungltiges Device ----------------------------------------------------------------------------------- LONG XSSetFlags(WORD device, UWORD flags) bertragungsparameter einstellen. Versuche, Einstellungen zu machen, die auf dem Device nicht mglich sind (d.h. solche, die XSCapMap als nicht verfgbar meldet), werden ignoriert. `flags' enthlt die Einstellung in folgender Kodierung (ent- spricht der des TIOCGFLAGS-Fcntl von MiNT): Maske: TF_STOPBITS 0x0003 Werte: 0x0000 Ungltig 0x0001 1 Stop-Bit 0x0002 1.5 Stop-Bits 0x0003 2 Stop-Bits Maske: TF_CHARBITS 0x000C Werte: 0x0000 8 Bits pro Zeichen 0x0004 7 Bits 0x0008 6 Bits 0x000C 5 Bits Maske: TF_PARITY 0xc000 Werte: 0x0000 Keine Paritt 0x4000 Gerade Paritt 0x8000 Ungerade Paritt 0xc000 Ungltig Weitere Bits: T_TANDEM 0x1000 XON/XOFF Handshake T_RTSCTS 0x2000 RTS/CTS Handshake Alle brigen Bits sind reserviert und sollten 0 sein. Rckgabewert: >=0 (LONG!) - die vor dem Aufruf eingestellten Flags ERANGE - es wurden ungltige Parameter festgestellt EUNDEV - Ungltiges Device ----------------------------------------------------------------------------------- LONG XSGetFlags(WORD device) bertragungsparameter abfragen. Rckgabewert: >=0 (LONG!) - Eingestellte Parameter (Kodierung siehe XSSetFlags). EUNDEV - Ungltiges Device ----------------------------------------------------------------------------------- LONG XSCtlMap(WORD device) Auf dem Device verfgbare Kontrolleitungen abfragen. Wenn kein Fehler vorliegt, wird ein Bitvektor zurckgeliefert, in dem fr die verfgbaren Kontrolleitungen das entsprechende Bit 1 ist, fr die nicht verfgbaren 0. Folgende Bits sind definiert: #define TIOCM_LE 0x01 /* line enable */ #define TIOCM_DTR 0x02 /* data terminal ready */ #define TIOCM_RTS 0x04 /* ready to send */ #define TIOCM_CTS 0x08 /* clear to send */ #define TIOCM_CAR 0x10 /* carrier detect */ #define TIOCM_RNG 0x20 /* ring */ #define TIOCM_DSR 0x40 /* data set ready */ Alle anderen Bits sind reserviert und sollten bis auf weiteres ignoriert werden. Rckgabewert: >=0 (LONG!) - Verfgbare Kontrolleitungen EUNDEV - Ungltiges Device Anmerkung: Die Werte werden mglicherweise noch gendert, um sie an die (hof- fentlich bald festgelegten) Definitionen der entsprechenden MiNT-Fcntls anzu- passen. ----------------------------------------------------------------------------------- LONG XSGetCtl(WORD device) Status der Kontrolleitungen abfragen (DCD, RI etc.). Falls kein Fehler auf- tritt, wird ein Bit-Vektor geliefert (Kodierung wie bei XSCtlMap beschrieben). Die Bits sind 1, wenn die entsprechende Leitung aktiviert ist, sonst 0. Rckgabewert: >=0 (LONG!) - Status der Kontrolleitungen EUNDEV - Ungltiges Device ----------------------------------------------------------------------------------- WORD XSSetCtl(WORD device, UWORD ctl) Kontrolleitungen setzen. Kodierung wieder wie in XSCtlMap. Manche Leitungen (z.B. CTS) sind Read-only und knnen daher nicht beeinflut werden (das sollte aus dem Kontext hervorgehen). Versuche, solche und Leitungen, die nicht von dem Device untersttzt werden (d.h. von XSCtlMap als nicht verfgbar gemeldet wurden), zu beeinflussen, werden ignoriert. Rckgabewert: 0 bei Erfolg EUNDEV - Ungltiges Device ----------------------------------------------------------------------------------- WORD XSOnCtl(WORD device, UWORD on_mask) Die Kontrolleitungen, deren Bit in `on_mask' gesetzt ist, aktivieren, ohne die anderen zu beeiflussen. Ansonsten gelten dieselben Bedingungen, wie bei XSSetCtl. Rckgabewert: 0 bei Erfolg EUNDEV - Ungltiges Device ----------------------------------------------------------------------------------- WORD XSOffCtl(WORD device, UWORD off_mask) Die Kontrolleitungen, deren Bit in `off_mask' gesetzt ist, ausschalten, ohne die anderen zu beeiflussen. Ansonsten gelten dieselben Bedingungen, wie beiXSSetCtl. Rckgabewert: 0 bei Erfolg EUNDEV - Ungltiges Device ----------------------------------------------------------------------------------- LONG XSInStat(WORD device) Ermittelt Anzahl der Zeichen, die z.Zt. auf dem Device zum Lesen verfgbar sind. Der zurckgelieferte Wert mu nicht exakt sein. Es ist nur garantiert, da mit dem nchsten Lesezugriff mindestens soviele Bytes gelesen werden knnen, es knnen aber auch mehr sein. Rckgabewert: >=0 - Anzahl der verfgbaren Zeichen EUNDEV - Ungltiges Device ----------------------------------------------------------------------------------- LONG XSOutStat(WORD device) Ermittelt Anzahl der Zeichen, die z.Zt. auf das Device geschrieben werden knnen. Der zurckgelieferte Wert mu nicht exakt sein. Es ist nur garantiert, da mit dem nchsten Schreibzugriff mindestens soviele Bytes ausgegeben werden knnen, es knnen aber auch mehr sein. Rckgabewert: >=0 - Anzahl der Zeichen, die ausgegeben werden knnen EUNDEV - Ungltiges Device ----------------------------------------------------------------------------------- LONG XSRead(WORD device, LONG count, BYTE *buffer) Maximal `count' Zeichen in den durch `buffer' angegebenen Speicherbereich lesen. Wenn z. Zt. nicht soviele Zeichen verfgbar sind, kehrt XSWrite sofort zurck (non-blocking). Rckgabewert: >=0 - Anzahl der Zeichen, die gelesen wurden wurden EUNDEV - Ungltiges Device Weitere (negative) TOS-Fehlernummern bei I/O-fehlern ----------------------------------------------------------------------------------- LONG XSWrite(WORD device, LONG count, BYTE *buffer) `count' Zeichen aus dem durch `buffer' angegebenen Speicherbereich auf das Device schreiben. Wenn z. Zt. nicht so viele Zeichen geschrieben werden knnen, kehrt XSWrite sofort zurck (non-blocking). Rckgabewert: >=0 - Anzahl der Zeichen, die geschrieben wurden EUNDEV - Ungltiges Device Weitere (negative) TOS-Fehlernummern bei I/O-Fehlern ----------------------------------------------------------------------------------- WORD XSFlush(WORD device, WORD mode) Verwerfe Zeichen, die noch im Puffer des Treibers stehen. `mode' gibt genauer an, was verworfen wird: 0: Verwerfe Zeichen, die empfangen, aber noch nicht ausgelesen wurden 1: Verwerfe Zeichen, die geschrieben, aber noch nicht gesendet wurden 2: Verwerfe alle noch gepufferten Zeichen Wenn die Operation auf dem Device nicht mglich ist, wird der Aufruf ignoriert. Rckgabewert: 0 bei Erfolg ERANGE - wenn `mode' nicht 0, 1 oder 2 ist EUNDEV - Ungltiges Device ----------------------------------------------------------------------------------- WORD XSInSig(WORD device, void (*func)(WORD device)) Weist den Treiber an, die durch `func' angegebene Funktion anzuspringen, sobald ein neues Zeichen von dem Device eingetroffen ist. Der Routine wird dabei die Device-Nummer auf dem Stack bergeben. Die angegebene Routine wird sehr wahr- scheinlich aus einem Interrupt heraus aufgerufen. Dementsprechend darf sie keine Register verndern und sollte mglichst kurz sein. Die Routine wird nur genau einmal aufgerufen, danach wird der XSInSig automatisch wieder deaktiviert. Wenn vor dem Aufruf bereits ein XSInSig aktiv war, wird der neue nicht installiert und EACCDN zurckgeliefert. Wenn als `func' ein Null-Zeiger bergeben wird, wird ein vorher gesetzter XSInSig annuliert. XSInSig mu nicht auf jedem Device verfgbar sein; in diesem Fall wird EINVFN zurckgeliefert. Rckgabe: 0 - bei Erfolg EINVFN - Device untersttzt XSInSig nicht EACCDN - Es ist bereits ein XSInSig aktiv EUNDEV - Ungltiges Device Anmerkung: Diese Funktion ist in der Hauptsache zur Implementation von MiNT- Treibern gedacht und sollte von Anwendungsprogrammen nicht verwendet werden. ----------------------------------------------------------------------------------- WORD XSOutSig(WORD device, void (*func)(WORD device)) Weist den Treiber an, die durch `func' angegebene Funktion anzuspringen, sobald ein neues Zeichen auf das Device ausgegeben werden kann. Die Funktionsweise ist ansonsten analog zu XSInSig. Wenn als `func' ein Null-Zeiger bergeben wird, wird ein vorher gesetzter XSOutSig annuliert. XSOutSig mu nicht auf jedem Device verfgbar sein; in diesem Fall wird EINVFN zurckgeliefert. Rckgabe: 0 - bei Erfolg EINVFN - Device untersttzt XSOutSig nicht EACCDN - Es ist bereits ein XSOutSig aktiv EUNDEV - Ungltiges Device Anmerkung: Diese Funktion ist in der Hauptsache zur Implementation von MiNT- Treibern gedacht und sollte von Anwendungsprogrammen nicht verwendet werden. ----------------------------------------------------------------------------------- LONG XSCtlSig(WORD device, UWORD ctl_mask, void (*func)(WORD device, UWORD ctl)) Weist den Treiber an, die durch `func' angegebene Funktion anzuspringen, sobald sich der Zustand einer der in `ctl_mask' spezifizierten Kontrolleitungen ndert (Kodierung wie bei XSCtlMap angegeben). Der Routine wird dabei die Device-Nummer und ein Bitvektor, in dem das Bit der auslsenden Kontrolleitung gesetzt ist, auf dem Stack bergeben. Die angegebene Routine wird sehr wahrscheinlich aus einem Interrupt heraus aufgerufen. Dementsprechend darf sie keine Register ver- ndern und sollte mglichst kurz sein. Die Routine wird nur genau einmal aufge- rufen, danach wird der XSCtlSig automatisch wieder deaktiviert. Wenn vor dem Aufruf bereits ein XSCtlSig aktiv war, wird der neue nicht installiert und EACCDN zurckgeliefert. Wenn als `func' ein Null-Zeiger bergeben wird, wird ein vorher gesetzter XSCtlSig annuliert. XSCtlSig mu nicht auf jedem Device verfgbar sein; in diesem Fall wird EINVFN zurckgeliefert. Ebenso mu er nicht fr alle verfgbaren Kontrolleitungen ver- fgbar sein. Wenn in `ctl_mask' Kontrolleitungen angegeben werden, die durch XSCtlSig nicht untersttzt werden, wird das ignoriert. Auf welche Leitungen tatschlich reagiert wird, kann man aus dem Rckgabewert ersehen. Sobald ein Device mit XSRelease freigegeben wird, werden noch darauf installierte XCtlSig automatisch abgemeldet. Rckgabe: >0 (LONG!) - Maske mit den tatschlich bercksichtigten Kontrolleitungen. EINVFN - Device untersttzt XSCtlSig nicht EACCDN - Es ist bereits ein XSCtlSig aktiv EUNDEV - Ungltiges Device Anmerkung: Diese Funktion kann z.B. verwendet werden, um effizient die RI- oder DCD-Leitungen zu berwachen (man installiert eine Routine, die im eigenen Pro- gramm ein Flag setzt und fragt dieses periodisch ab). ACHTUNG: Ein Programm, da diese Funktion benutzt, darf keinesfalls vergessen, den XSCtlSig vor dem Beenden wieder zu annulieren. END-OF-TEXT.  O.. GEMV_REGTOS GEMV_REGTXT READ_ME TXT!Pz`JAaBa|aaa Aa.?<NAT<߰<Ag԰<Ng <QfBgNAAtaa`H/?< NA\LNuaAaA./?< NA\AaA(Nup A?aAar ACJgSfJgBSfNupA+a.<#<f|#A<0k< b 鎌Sf.#aNuAxrvp$ā"Sf":Fƒ GvDF#NuAa$~":fAoB <f<<@SfaAaNuAmaA aAaNuAoap.:AB <<0Sfa #fAkaNuEf p q p q p q p q p q p q p q p GemView Registration V1.0 q p q p q p q p q p q p q p 1993 by Crack'O'Maniac q p NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE q Please pay your shareware-fee. GemView is worth DM 40.- !H Name (max. 32 chars): Register # (6 chars): Your code is: (unregistered version) (pQq)uit (pAq)gain (pNq)ew register # ef0 GemView Registration V1.0 vom 14.08.1993! GemView Registration dient einzig und allein dazu, den Code zur GemView-Installation zu berechnen. Ich habe es nur mit GemView V2.3x ausprobiert, aber es msste mit allen Versionen funktionieren. Nach dem Programmstart wird man nach dem Namen gefragt, worauf man den Namen, auf den man sich registrieren lassen will, eingibt. Der Name kann max. 32 Zeichen lang sein! Danach wird man nach der gewnschten Registrierungsnummer gefragt, worauf man eine beliebige, genau 6-stellige Zahl eingibt. Daraufhin wird einem der berechnete Code fr die Installation ausgegen. 1993 by Crack'O'Maniac P.S. Der Besitz und auch das Anwenden dieses Programmes sind illegal! Am besten lt man sich beim Autor fr DM 40.- registrieren, was fr ein Programm dieser dieser Leistung wenig ist !!! . O.. CLEAR_M PRG J*NMDISK ACC lswMDISK694DOC a`,.|,Hy?<&NN\BNAJ 9 #Nu`Y0&`DAT69724XBRAcsMDB0/ y"C&`NXBRAcsMD0/JfT0/ yDC^`&XBRAcsMD0/Jf&0/ ylC29Af JygNaNa pNuapNuNu $" 2<`*2/  o$gn"y0/ /fHfVS""""""""Q9f.ag(?9?

<ArC&NR8@AvCHNR8@A~CpNR8G.ByByNu"ysijg wipe disk)M-Disk isYou may use and copy M-Disk freely aslong as the program and its documen-tation remain together and unchanged.M-Disk may not be sold.k ram disk sizeReset resident (ST RAM only)Auto-installTemplMon user trace routineAutomatic M-Disk checkAutomatic virus checkSet mouse upon entryVerify on 'format'Verify on 'save+format' Save setup DiskX:infoFree space : kTotal space : kDisk label:dsklabel.ext____________XXXXXXXXXXXX[2][| Warning: M-Disk will fail | to be reset resident |][ Ok ]remove[3][| Internal error |][ Bad ]MDISK.ACC[3][ Cannot open | mdisk.acc ][ Bad ][3][ Read error or| wrong version of | mdisk.acc ][ Bad ][3][ Write error on | mdisk.acc ][ Bad ]installA:\/ *H rg"HA**_NuNVH1A//ACNKJPOBn`0.A*H0-"A@4.A;@0-"A@6.A;@0-"A@A;B0-"A@A;C.- 0-@mx @ lr@0;N Pfff 8A a`Fp@g@ Ab+H `.p@g( "A@+H `p@g A.+H Rn nbmL N^NuNV/~`. Ab/Ha oC Ia oPHaRGp@m.N^NuaaapNuNVH HC pN^NuJZf N)@ZNuJZg lZNp)@ZNuNV/ *HJZgN`aN/@a /*_N^NuapNINuapNINuNV-Hap nNI?@a0/N^NuNV-Hap nNI?@a0/N^NuH*H.,` Hr H@@0` H. SFJ@fL NuNVH IY\0|"P iK-H Ul"0-@Y@f #<YX`#`,YX`#&YX#u}pL0N^Nu/ IY\ yYX#}p(_Nu/ IY\JTf yYX#} }p(_Nu/ IY\JTf yYX }p(_NuNVH!$.A=AarJl^g?./pD?NAPO*@` /pH?NA\O*@AaF L$N^NuNVH /.pI?NA\OLN^Nu0<H @ NuAa Nua"eNu9g$J,qf ,hg Aa<`AaNuH IY\J,qf"J,pgJ,rf ,h"$9gp`0<.H @"lh |qpLNu/J,qg"J,pgJ,rf ,h"$9gp`0<.H @"lh B,qp$Nu0<.H @ NuH IY\0<.H @. fp`*G MCfJfgp`- r mrop` - rm op` -gp` "-gp`p)Mh#AC""""""""A:C ""2Aa\Jg)Hh# `p@p@q@rpAy@ - L0NuNVH#$0929$@SBH…09B.*yA,`BSFJFfp yCNIN @?@H2<H@ y@0/H y@ Ghf0<`0< y@09 y@|  y|Bgp?/</9p?NNO Ghf0<`0<29Hҁ y"H y@09HЀ"Hp@@ y@ y@9g29Hҁ"H@ y@C&E3f yh' yh ( yh ) yB(*L$N^NuH9 .0<3r33t3By3 Gov3(GDHĉ309&RC3@ ^@3PCJCjRCC C3aJhgnA"lhf09 lh@ H lh!@ C Ia lh!@!H!yCE""""""""C:A ""2LNu09 l#Pf(09hf09hf09hfp`pNuNVH1.09HЀ y J@jR@@G-H*Hgp"AAt-&CA.`pr-AA@. L N^Nu/.`SGJGk T@a|J@g R@.NuH.Jyf a`4 .T@HЀ29Hҁ y*H`SGUMJGkJUg R@L NuHJlfgp`f~`4 a ,p@gJFgGm09T@@m Fl A9=@JGfAa6N 0.R@?Hl#(r6?NAPO,JGfAa ,#(#,fBlt LN^NuNV/a.Jg `J ,#(",#0NC",#4NCAa0,tH",#, ,#0NC",#4NCAaAhap.N^NuNVH -@J,pgA"l!#Hp Ia  nx?9p?NMXOA䰈f lhpCVg9|f`>p l!a p l!a p l!a p l!a J}g p l!a Blf|9g J,qfaLN^NuH IY\pra0. ,#8Ьv, oZ ra*@pra, g@Jo< ,#8l4"<Ҁo(rЁѬv/ a"XO ,#8Ьv"pAa*@ ,#8ra)@h)@lB g/ aXOpL0NuH. ,pmD n: "<NA`Ѐ*praR"n.Jl^gJ`g9g Aa`Aa`)E#8Aa hcAa~Jg&/,la8XO)Hh)Hl#Aa` ,h" "<N@Ѐ)@h"f&/,laXO)Hh)Hl#R` lh# aj|ppAy@09a`)Hh)Hl#AaLNuH.pm n , ra)@h)@lBrcpAajJg$/,la$XO)Hh)Hl#Aa`t lh# a|ppAy@9|d09a`4prat"o a`)Hh)Hl#Aa.LNu/.pJ@fJl^gJ`g9f a` a.NuNV-Hah09a.AUC#<fA#<"nN?A#0/ l#ho Aza`$09 l#2(@l&"y$I Ja l#ho Aa`J}g|? l#?( p?/9}Bgp?NMOJfXp y} @l r y}"yP y y"Hp y@@ y@@09 l#hm0(."y?p??/ ?r?NMO,JFgp@g ad`p` y?"l#?) ?/p?p?NMOJg a,` l#0(yo a*.JGf a` y"l#0)ym092) i???/t?t?NMO.JGg a`r0/ y0/@?"l#?) ?/r?r?NMO.JGg a~`6 ar>/p@g ra.W@fp@f Aha`AapLN^NuNVr2p-HN7 n N^NuNVr2p-HN7| n N^NuNVr2p-HN7\ n rpN^NuNVr2p-HN76 n rpN^NuNVr2p-HN7 n N^NuNVr2p-HN6 n N^NuH1*Ha~Jzgj g0 lz0(2-@f 2(4-Af4(;B0(;@~`6 lz0(W@2(WA4(\B6(\C???????r@N2vO)Mz gbJGg20-W@2-WA4-\B6-\C???????r@N28O0-W@2-WA4-\B6-\C????pr MN2POL NuNV/-Hap nN2>.G HrN5 n0 f a .N^NuH# .,J}fp`$JFg$p?r????B/9}t?NNO`a$3NK @R@@,3KN)a)@"JyKgp`9Kfp`plN3KByK3KN)a)@"JyKgp`v9Kfp`h3K#}K3K3 KN)Na)@"JyKf yKlp`|yKg `9Kfp`pLNuNVH4.=AJ}fp` aJ@gA ap`~*y}G`]e G4fB y}"HP*I&ME` JSgp`VTKe y}&H` JSgp`:TKe`0 y}"HP*IG`JUg0 @g rNAgp`TMepL,N^NuNV=@=A9gp`0.aN^NuH;4.J}fp`la 3NK @R@@.3KN'a)@"p@yKf0JyKgp`"9Kfp`plN3KByK3KN'a)@"~@yKg `JyKgp`9Kfp`3K#}K3K3 KN'*a^)@"JyKf yKlp`n~yKg `^9Kfp`N*y}A"Mf/ p?NNTO$_,/ p?NNTO$_f./ p?NNTO$_f/ p?NNTO$_fAap`  y}@" y}A $HBH y}B A6<xQ y}&C3f y}@' y}A( y}B)B(*.&ME`[e0R@r l~aa` l!0(W@2(WA4(\B6(\C????p:rN'DPOL N^NuNVH0-@JgDRlP0,Pr laݞa l!0(W@2(WA4(\B6(\C????p,"`* at<,"` "a*JEga ` SFJ@n SGJ@naLNuH'4J}fp`a۶~aِ3NKpl!R@@3KNR|@yKg.gAuaS@gp`j0,"S@aaBplN3K0,"S@3Kpl!R@@3KN*y}|0,"@ g<x`NSGJGn0,##H2,"H@9@#4,""SB@H"HARA9A"pL,Nuaa3Kp3K3KNpNuH/4.,p l"fG" `  @$[f`^zG" `H  @0,"2,"$@ol"2,"Ap l"f HЀRE2,"A"F10,#l"$[f0,#l"z "aD(a:)@"JDg aRElLmAaֈS@fzJDglLm L,NuNVH.-AJ}fp`p l"f,|` HЀA"F20A"1A"n1RFl"o`@|:,"L8,"R`.&HփA"n18RE0,"@ozA"18RDl"oxRFl"o|aRJldg8*l`z`* H/@A" p"MNA" /!REl"oplN3K3KJngp`prl!RAAA3KN~@yKg,JyKg|9Kf|JFg `x3K#}K3@KNtJyKf 09Kl#l|~@yKg,9Kf|JFg `"JlRg~`j HЀA"n*H0HA"#KgF3K3K3 KNJyKf yKl|pTyKg,9Kf|RGJFfl"oJFg `9gJlRf9gJlRgr~`d3K y}#(#K HЀA"3K3 KNVJyKf yKl|pyKg,9Kf|RGJFfl"o L N^NuH lZfN*@0<H @, g MN~`2 @(r2pN B l!*Hp"€g ` RGp@cpL NuNVH?4-@09a=@rAl AZa(`a9n!0.l"@^@r9AP9AR=@a4aJ@g ap`0,"2,"4,"(pl"@"@Hҁ y*HBB6,"=B`" a:,"` l"JlRg"&M~` HA"!RGl"o`><.Dm6p9@R&M.`$ HA"$H GS@@m$`BRGl"oJCfxJEft9|Rpa@A)H" y&H~<,"TF` HA"!RGFmp2,"A@@.TGA,TF` HA"!RGFm "aj.JGgA?aўa2 `L SEJ@n SCJ@na0,!a0,!raJ@gAa>JlPgA#aRU@g*pL,N^NuNVH>,"<,"09a*p@l AZa`aHAaU@fp`rax l"@^@?@a*0,"""2/@mAaJEg 9G"9F"a2p`*0,!ab(JDf 0,!aL(JEg 9G"9F"a LN^NuH<p9@N9@"9|"0,"r(Af$r9ANt9B"6,"x Df8,"Bf9|"2,"tBf6,"RCJCjRCC9C"6,"x Do"9BN*JEjREEEAH9A"rPAnDfJlf 9BAaLS@g0 l# Pf "a` "ap@laТ)@"LNua|`aadJ@g Aa` AaS@gNuNVH! Jldg l!` l!9g l!` l!9g l!` l!9g l!C` l!C9g l!s` l!s9g l!` l!9g l!` l!9g l!` l!9g l!3` l!3 l!a l!af. l!(W@HH29A@3(sW@HH@A@3(V@HHA@3(V@HA@3(Cg fA:a̐` gAVax l!(gJ,pg(J,qf"aN`J,pgJ,qgAa6 l!(W@HH29A@3(3W@H@A@3 l!(V@HA@3(V@H@A@3Jhg lh:C 0p@gp`AC""2A)H$0<NJ@fp`p?Hnp=?NAPO.rAlp?Hl#p=?NAPO.p@l AȤax`HnHx0?p??NAO r0fACfJfg?p>?NAXOAȄa2`XA C""2Bg?BpB?NAO HnHx0?p@?NAO r0g?p>?NAXOApa` ?p>?NAXOLN^NuNVH.*HJ}g"l! i&P i< @A aJf l! hl ,#(",#0/H N>",#4N6"<N o a l! h0,tH",#, ,#0/H N",#4N"<NF o a f NP*@ g:p K"MN| l!a l!a l!a K"MfJfg  KNL(N^NuH0"l! i0,"r Paa@ l!0(W@2(WA4(\B6(\C????prN$POL NuH0"l! i$0,"r PaɌa l!0(W@2(WA4(\B6(\C????p!rNPOL NuNVH? ~aȮ l!a,aȠ l!(gp`p9@!(gp`p9@!(cgp`p9@" Y@m @4l@0;NhfN>H$.ddddddddddddddddJ,pg09a2J@gAaA N<(Jg(pm n09aJ@gA aS@f a(09aR`0,!aaȂ)@"` l!(g(faVaa`0,!azaD)@"`aTa.)@"`xa l!ah`haaxa6`X0,!ra޺*JEgp@fAC#<f` p@fAC#<f` AC#<faǶ)@"A#aaj`~`0,"r AlRl"a6`0,"r AoSl"a `p(l"fpP9@"`0,"rSAlRl"a`\0,"rPAoSl"`9|("a`@p?p ?NMXOr'g" @@gAWa8S@f @(aR` @(aNaĢJFo. l!0(W@2(WA4(\B6(\C???? rNPO LN^Nu/ IY\0<H @2H (_NuNVH1AC""*l!a0J,pg09a~ l!>(WGJ@fD0-jR@@2-G@=A0-jR@@4(&WCm@=C0-n0-n`|0-jR@@"m@=A0-jR@@4(&WCm@=C0-`n0-bn`80-jR@@ l!2(WAm@=A0-jR@@2(WAm@=AprdAN L N^NuH.0<H @*P g` f -`PMJfpL Nu/ IY\ l&ka@`Jl&fa"`a2<:Bl$ByKa6Q>LNu329f>: l @|9FNua3`a>9@/rJ8mJ8J8Q"FNu@/raQ"FNu.9a9gb3KBl$9y`39ya)@9@Nup9 9 9 Nu)G   .:p0:rހ)GNu>:f gffg(fd g gN gra` <`anf Bl$><a3>:a3>aa`a4`aFf Bl$><a3>:av`a 3`aaL`*.:a 9|$Nua6<333><`0`z3>:`a`f6<333NuBl$.:<&z<a4:$@|32<a~9fQanrRAg49f63SAgSAg9f66SAgQa2<&><al9f&QaxF`><aFaT09`JA. g  g*  f39y,Nu3na 9G,Nu>:`G3T`H!$.p/?NATO*@ @A@AJCf0<?HlpN?NAPO.`-gA `pO?NATO.JGgA L$Nu*.*MINIXNVH -HJg0CfBgHlp?NAXOHlpA?NA\OLN^NuNVH -HJg Cf` ACfp?Hlp?NAXOLN^NuNV-H=@arAnA-@g0 ld @a@Jg nJf"nJg leafN^NuH'IY\,pg yfp yCNJ@g yTHpCNrJ@fp y(r(A@.09H r(t(BAH…,z(JGk> Gn8JFk4p@@n.JEk*p@n$3 S@R@33GF3LNuNVH IY\*I-H XBRAf+P L0N^NuNVHIY\*I&H-H XBRAf4 S XBRAg K"Ma` &S`&k k XBRAg+k'ML8N^NuNVHIY\*I&H-H XBRAgp`: Sf m&p`*&S` kf m'Hp`&k + XBRAgpL8N^NuH*H.,)M$9G$P9F$RpNL NuNVH*H&I)M$0<N6$r n0$t n 0$v n0$x0,$pL(N^NupaNVH.,:.8. 9G$P9F$R9E$T9D$V9n $X9n$Z9n$\9n$^9n$`0<NLN^NuH*H.9G$P)M$0<NL NuNVH*H&I0< N:$r6$t n0$v n 0$x0,$pL(N^NuH.*H9G$P)M$0<NL NuNVH*H.,:.8. )M$9G$P9F$R9E$T9D$V9n $X9n$Z0<NHL N^NuNV/.)H$9G$P0<N&.N^NuNV/.9G$P)H$pdN.N^NuA 0A"P"0<NBA$p0Nu     !"#$%&'()*+,-./0123 456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}paJjDJjDaDNuaDDNuJjDaDNu/HA4fH@HAHB4g0H@40HB2$Nu/v AdQC AdYC A dUCJAkSC4HBBBHC604HAdSCЁr2HCH@A&$NuH0$&HBHgHCHgCHBBBЂL NuNVp NN^Nu/2H@`QQ Nu/d2H@`!QQ Nu JfSHfNu2H@Q QpNu?g VV`H04Nu2H@/QQ`WWg` QQQ NuNuH0`HxCr1fJ@m @$n @f Bt` -fP` +fJ@fp 0f8p Xg xf(p`" f 0f xfRH` xfRHJgt 0mT 9n0` Am>7l4&gHCHCJCfԃek`PPԁek`PP`JgD"/ g"ASH"" L NupaNJAg$HA f JAggpJAgRr"9ANupa[3][ M-Disk Stack Overflow ][ HALT ] M-Disk 6.94&,8:FLV^djjljjtjjvjjzjj|jjtjjjjzjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj&Lr 6L`x !"#$%&'()*+,0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_abcKefghij- =( #     1 AB      1AB        $# 1 2@  @ !@ " #@  %- &. 8'7%(/) * + , - ./01234567!&#=9<%:`;<d8! !(k l#m%n%o%p q  r    s    t  u vwxyz{ '| }~  ' >YMDISK6.RSC>> WARNING: M-Disk 6.0, 6.1 and 6.2 do not work properly on some TT's. <<< Version 6.2: - User trace default = off (because it may cause problems) - mouse setting is optional now (because of NVDI bug) Version 6.1: - Try to improve TT compatibility - some internal clean up Version 6.0: - New GEM dialog: Setting of format parameters is now inside the main dialog. Faster GEM dialog handling. - Adapted to speed boards, 68030, etc. - Adapted to TT (and it's brain damaged ``fast RAM''). - Formatting is much faster under MiNT now ! - Verify may be turned off (Harakiris will like this). - The `Format selection' button (see below !!) - The `Clear M-Disk' button. - When the selected format for `save+format' is too small, M-Disk can do automatic format extension - Support for disk labels. Since Version 4.x M-Disk does not use any undocumened variables. It should work with any TOS Version. Tested with Disk TOS 1.0 (1986), TOS 2.05 (Mega STE TOS), KAOS 1.4.1, and MiNT 0.8. M-Disk 6.x should work with all known Atari ST harware configurations including 16-MHz-boards, 68030 Boards, STE, TT, etc. Notes about Cache: Old M-Disk Versions included a simple cache. In Version 5.8 this went into the separate program M-Cache. M-Cache did never work, since it accidently forgot to install itself. I do no longer include M-Cache because: a) The cache did not check for media changes and thus had problems with media changes like in the Atari Megafile 44. b) The cache layout was for a fixed sector size of 512 Bytes, but did not check this. So it did not work with the big Partitions of AHDI 3.0. c) Nowadays nearly everybody has TOS 1.4. Use CACHE100.PRG in the AUTO folder and this will be better and give you less problems than most cache programs floating around. d) I could adapt M-Cache to AHDI 3.0 and Megafile 44, but I don't have the time at the moment and since one may well use CACHE100, there is no more reason for having a separate cache program. e) If you don't have TOS 1.4 (or above) you should hurry to get it. Mixed hints: - do *always* have POOLFIX3.PRG in the AUTO folder when using TOS 1.4 or 1.6. - do *always* have FOLDR100.PRG in the AUTO folder when using TOS 1.4 or 1.6. - do *never* use the buggy TURBODOS. - do *not* use CACHExxx.PRG with old TOS Versions (below 1.4). - do *not* use the cache of the old M-Disk versions on Partitions that are bigger than 15 MB. Included files: =============== NAME Length Comment - MDISK.ACC 30626 the program - MDISK6xx.DOC 24992 this document; Version = 6.xx - CLEAR_M.PRG 78 utility program for very old TOS versions Installing the RamDisk: ======================= Move MDISK.ACC to the root directory of your boot disk, then reboot. Now there's a Desk Accessory entry "M-Disk" that lets you select a size for your ramdisk. Enter a size, then click "Install". Now M-Disk is active. Install a disk Icon for M-Disk, so you can click on it. M-Disk is always on drive M. M-Disk can now be used like any normal RAM disk. Copying from/to the M-Disk: =========================== Since Floppy Disks are soooooo slow there is an option to load/save a whole Floppy Disk at once. This will make a plain copy of all files an directories, destroying the whole prior contents. The serial number of the Disk however is not changed. >>>> The load/save option actually is the clou of the program. >>>> Use it often, it will save you lots of time. >>>> >>>> load/save only works for Ram Disk size <= 1700 k ! Use as Disk Copier: =================== First load the source disk into M-Disk, then save onto the target disk. Most common floppy formats are supported. The formats of the source and target disks need not be the same, so you can quick and easy copy a single sided disk to a double sided or IBM PS/2 or 800 KB Disk. You may even copy a double sided to a single sided disk if the target disk has enough space. If the target disk is unformatted or you want to reformat it into fast format use the "+ format" button. The format options are used then to select a format for the disk to write. If you want to make more than one copy you may want to use the 'copy' button. This allows you to make up to three copies and thus is equivalent to pressing first 'load' and then 'save' one to three times for each original to copy. The 'copy' button is a true equivalent of 'load'+'save': After the 'copy' operation the new RamDisk contents are still intact and may be used for further operations. Use as Backup Program: ====================== Backup: You probably won't Backup the whole Hard disk at once. So select the part you want to save, then install an M-Disk that is big enough to hold your data. If you make it small enough to fit on your floppy disk you can copy files from the Harddisk to M-Disk until M-Disk is full. Now save the data with the "save" option onto a floppy. Restore: Load your Backup Disk into M-Disk (with "load disk"). Then copy the files from M-Disk to your Hard Disk. This is *much* faster than copying directly from floppy to harddisk. Incremental Backup: Load your (old) backup floppy into M-Disk. Delete some files, copy new versions from the harddisk to M-Disk. When your finished save the result again onto your floppy. Use as fast Ramdisk load/save program ===================================== Don't you think loading files from floppy to your (reset resident, auto-compressing, super-hyper) Ram-Disk needs a little speed up ?!? Here it is: After having installed your Ram-Disk you install M-Disk, then load from floppy to M-Disk (with M-Disk's "load"). Now you copy everything as usual file-by-file to your Ram-Disk. You may kill M-Disk thereafter. Saving your work when you are finished is just the other way round: Copy file-by-file to M-Disk, then use M-Disk's "save". Formatting floppy disks ======================= You may format a disk at any time. Among the various formats that can be formatted there are two MSDOS compatible formats: - 80 tracks, 2 sides, 9 sectors: The standard 3.5" PS/2 format. - 40 tracks, 2 sides, 9 sectors: The standard 5.25" MSDOS/PCDOS format. These two formats are at least "300% compatible", i. e. the logical disk structure is 100% compatible, the boot sector and media byte is 100% compatible and the physical disk structure (GAPs between sectors etc.) is 100% compatible. Of course you cannot boot your PS/2 computer from an Atari formatted disk. While remaining compatible the disks formatted with M-Disk still run fast on the ST. Since M-Disk Version 4.0, they also run fast on the PC. The `+format' button ==================== When the `+format' button is active (dark) M-disk formats all the disks on-the-fly while writing out a disk from a `save' or `copy' command. This saves an additional format run if you want to write unformatted disks. It's also wise to reformat floppys from time to time if they - were not formatted on the same drive on which they are to be used. - have not been formatted for a long time. As the years go by, floppy disks may loose their formatting information. The verify flags ================ M-Disk verifies every operation. For this reason no quick- or superquick- formatting routines are possible. Routines that format a 80 Track double sided disk in under 1 minute must time out the controller before each track is competely written. This leaves some garbage at the end of each track. If you are unlucky you would get another valid sector header in this area. So you might get e.g. "sector 1" two times on one track. Now these two will be read/written by TOS randomly, causing big problems. So M-Disk does not use these quick-and-dirty routines but always formats till the end of track assuring no anomaly can occur (additional verify is done also). Since M-Disk 6.0 the verify on 'format' and 'format+save' can be turned off. There may be some people out there who want to speed up writing at the risk of damaged disks. For the 'save' button without '+format' the normal TOS routines are used. Verify is then controlled by the TOS verify flag which is turned ON by default. There is one thing that M-Disk cannot verify: When you are formats with more than 80 tracks your head (floppy disk head, not yours) may run against the wall. You hear a click. On normal formatting programs this will result in a misplaced last track (slightly off correct position). But M-Disk starts formatting at the last track. So if you hear this click with M-Disk *all* tracks will be formatted on incorrect place. *** For this reason you should formats over 80 tracks only *** if you are absolutely sure that your floppy can hold this *** without running its head against the wall. The normal TOS formatted disk speed is rather slow. M-Disk formats standard fast-runing disks like DCFORMAT, FCOPY, CopyStar etc. If you format/write 40-track disks on a 80-tracks double-stepping disk drive it's wise to write the data several times if you later want to read it on 40-track disks (e.g. press `save' with `+ format' several times). The `Format selection' button ============================= When the `Format selection' button is turned off (white) M-Disk automatically sets the Format parameters to those found on the disk on every `load' operation. This is especially useful with the `copy' button when used together with `+format': - When `Format selection' is active (dark) all copies are formatted in the pre-selected way. - When `Format selection' is inactive (white) all copies are formatted in the format that was found on the corrosponding original. The automatic format extension ============================== When the selected format for `save+format' (or `copy+format') is too small but it's possible to make up a format that fits, M-Disk will ask you if you want to extend the current format. As a consequence when copying floppy disks with `copy' you may select a small format for the standard, make `Format selection' active, and copy all of the disks onto standard-formatted disks until you get to a disk that is too big for it. When using the automatic format extension only those big disks will be formatted in the bigger format. Exercise (easy): What happens with the automatic format extension when you `copy+format' with `Format selection' inactive? Wiping disks ============ The `wipe' function only clears the FATs and the root directory of the specified device. This is much faster than erasing every single file or reformatting the disk. `wipe' can also be applied to non-floppy media (e.g. M:). M-Disk will not wipe media with 12-Bit FATs or more than 5 FAT sectors without an additional reconfirmation dialog. Wipe is activated by clicking on one of the `Label' drives while the `CONTROL' or `SHIFT' key is pressed. So this function is somewhat hidden. Disk labels =========== Support for disk labels was added although GEMDOS does not support them very well. You can, however, see the disk label in the `Show info' dialog applied to a disk. Disk labels produced by PC-DOS will show up in the directory because GEMDOS does not allow the archive bit with disk labels but PC-DOS seems to set it. In old TOS versions disk labels can only be removed again via a trick (which M-Disk uses: Create a plain file with the label's name, then delete this file). Since TOS 1.4 disk labels can never be removed so M-Disk must use another trick here (create a label with the strange name "\xE5"). Since disks without labels do well there is normally no need to use disk labels. The `Clear M-Disk' button ========================= The small button that looks like a `window closer' provides a function to quickly clear the M-Disk. This is similar to do `wipe' on disk `M:'. What floppy Disk format should I use ? ====================================== The 2 sides 80 track 9 sector format is the normal (and fastest) format. Use this whenever you do not need extremly much space on disk. 10 sector format is safe. You may well use this whenever you want some more space on the disk. 10 sector disks run a little slower than 9 sector disks. 11 sector format may only be used if your floppy disk drive is not too fast and do not use some cheap and bad disks. 11 sector disks run a little slower than 10 sector disks. It is normally better to use 11 sector formats than to format over 80 tracks. Formats over 80 tracks may not run on some disks and (much more evil) on some drives. So if it all works on your disk drive carry the disk to a friend and (s)he maybe will not be able to read the additional tracks. If the floppy disk head hits its limit while formatting you yourself may eventually not be able to read the disks on your own system. So use this option seldom or never. 40 track disks can be used for special applications e.g. formatting IBM PC-DOS compatible 5.25 inch floppies. You will not need this for your normal work with the ST. Customizing M-Disk ================== You may want to set up your own startup-defaults for M-Disk. To do this, make the drive containing M-Disk the actual drive (e.g. Top window), enter the value for `Ram Disk size' you want as the default value, then click `setup'. Set the preferences you like. The `user trace' option sets up a user trace vector for the TEMPLMON monitor. This user trace checks the validity of the RAM disk and may thus be useful in finding the critical point in a bad program that corrupts the M-Disk buffer. At last, click `save setup'. The setup is then saved to MDISK.ACC on the root of the current active drive (i.e. current window in desktop). TT notes ======== There are two kinds of RAM in the Atari TT: The normal ST RAM (slow RAM) and the additional TT RAM (fast RAM). M-Disk 6.3 and later uses the TT RAM whenever this is possible. In cases when there is not enough TT RAM the ST RAM is used. You should know the behavior with reset resident disks. Currently reset resident disks can only be installed in ST RAM. So whenever a disk has been installed in TT RAM it is impossible to make it reset resident without removing it and installing it again (thus loosing the contents). If you have TT RAM in your computer and want a reset resident RAM-Disk you have to turn on the `reset resident' button inside the setup dialog *before* installing the RAM disk. On the other hand if you select the `reset resident' button you will force installation in ST RAM. But if you deselect the `reset resident' button M-Disk will do installation in TT RAM only if there is enough TT RAM space. Strike the Virus out ! ====================== When you use normal Disk-Copy Programs you may get a boot sector virus onto the copy disk. This is due to the fact that normal disk copy programs copy the boot sector as it is onto the copy disk. So any virus on the original gets copied to the copy. M-Disk however does not copy the boot sector. So boot a sector virus does not get copied when copying disks with M-Disk. For this reason M-Disk copies are more safe. M-Disk version 5.5 (and up) has an additional virus detection logic that detects executable boot sectors on every disk operation. You get messages of 2 levels: 1. "Bootsector executable. This may be a virus or bootable program." This message is no reason to panic. There is an executable boot sector on the disk. This can be a virus, but it can also be startup code for a game, time-setting, hard-disk related or other programs. Before destroying it, you should test it with a more sophisticated virus destruction program or the procedure described below. Conclusion: In this first case, you do not know, if you have a virus. 2. "*** Attention: VIRUS *** Your system is infected !". Now you should be in panic !!! You booted with a virus-infected disk and probably all disks, that have been in your floppy drive since the last re-boot are infected now ! Let's hope you did not loose data ! You should destroy the virus now (with the "virus check" button), write-protect that disk and do a coldboot with this now virus-free disk inserted in the floppy drive. Pressing the reset button is not sufficient in this case. You must turn your computer off, wait for 10 seconds, and turn it on again with a non-infected disk in the drive. If you have TOS 1.4 and think CTRL-ALT-SHIFT-DEL is sufficient please note that a virus may catch this vector ! Conclusion: In this second case, you do absolutely sure have a virus !!! (3. You see no message. Then you probably don't have a boot sector virus, but you may have a link virus or something else.) Test: Do I have a boot sector virus ? ===================================== If you are not sure if a particular boot sector on some disk is a virus, you can test it with the following procedure: 1. Copy MDISK.ACC to the suspicious disk. Turn off the hard disk (we do not want trouble on it). Put the suspicious disk in floppy drive A: and press the reset button. 2. Take an unformatted disk, format it with M-Disk, then wipe it, load something into the M-Disk, then copy the M-Disk onto the newly formatted disk with M-Disk save. Load and save again, etc. When you see the message: "*** Attention: VIRUS *** Your system is infected !". somewhere in this process, you know, that you definitely have a virus. When you don't see that message, you may or may not have a virus. Little virology =============== There are many virus types in the world. M-Disk only recognises the most harmless (but also most common) type: "boot sector virus". This virus type sits in the boot sector and gets loaded whenever you boot with an infected disk in the boot drive. A boot sector virus can easily be found and destroyed. If you copy all your data only with M-Disk (Version 5.5 and up), you will probably never have trouble with any "boot sector" type virus. More trouble comes with the "link virus" type, which is not recognised by M-Disk. A link virus links itself to any program, therefore it can never be found in the boot sector. It comes to your system along with some new program and as time goes by infects all of your programs. Whenever you start one of your programs now, you activate the virus. All virus programs reproduce themselves. But that's not all. There are some, that give funny messages on the screen, some that produce bombs from time to time, some destroy data on your floppy or hard disk, some destroy your monitor or floppy disk drive etc. So take care to eliminate every virus as soon as possible. There are also some special boot sector virus types that destroy everything they find in the boot sector (sometimes called anti-virus) and dummy boot sector programs (sometimes called virus protection programs). I don't like the concept of the anti-virus because it is just another virus and you never know what's going on in your floppy drive. I prefer a clean boot sector i. e. one that is filled up with zeroes after the first 30 Bytes of disk information. Care for executable boot sectors ================================ Some disks (especially some games) have executable boot sectors. These sectors cannot be copied with M-Disk. Use other Programs to copy those disks. M-Disk will warn you whenever it detects an executable boot sector because this could also be a virus. Copy protected disks ==================== M-Disk cannot copy copy-protected software. Recognise disk changes ! ======================== When making backups of your data disk with normal disk copy programs the boot sector is copied as it is. This results in two 100% identical disks. The problem now is that the serial number of these two disks is the same. TOS uses this serial number to detect disk changes. So if you now swap between these two disks TOS does not notice any disk change and you may get strange results i. e. lots of garbage on your disk. This may go up to complete data loss. With M-Disk copy this won't happen since every disk gets a new serial number and so TOS will recognise every disk change correctly. CLEAR_M.PRG =========== Old TOS Versions (pre 1987) don't clear the _drvbits system variable on reset time. For proper work with M-Disk, those Systems should have CLEAR_M.PRG in the AUTO folder of the boot disk. TOS Versions of 1987 and later do not need this. WARNING: ======== TurboDos had Problems with older M-Disk Versions. Versions >= 3.1 were not tested with TurboDos but it may eventually work together. (TurboDos is very buggy so you shouldn't use it anyway.) There's no need to use M-Disk with TurboDos. Use FATSPEED and you will get TurboDos speed without TurboDos. Since M-Disk Version 5.5 FATSPEED is no longer included in this distribution. You can get it from various sources, but you should better get the TOS 1.4 ROMs of April 6, 1989 (Rainbow TOS) into your computer. Be sure to always use POOLFIX3.PRG with TOS 1.4 and TOS 1.6 (STE TOS). This program fixes (or at least tries to fix) the 40-folder bug, that was fixed and simultaneously re-introduced in TOS 1.4. Disclaimer: =========== WARNING: I'm using this program every day but I do not make any warranty with respect to this documentation and the program it describes. I disclaim any implicit/explicit suggestions of usefulness for any particular purpose. I will not be responsible for any damages or data lossage caused by using this program. If you want to use it use it at your own risk. This Program may be used and distributed freely as long as the program is left unchanged and this documentation goes unchanged with it. It may not be sold. M-Disk was compiled with the new Lattice C 5.06.01 with a few Assembler subroutines. For the rare case, that anybody wants to send me a little donation, here's the place where you can put it: Account No. '219704-507' at the 'Postgiroamt Koeln', 'BLZ 370 100 50' (Germany). Christoph Strunk Weberstr. 114 W-4060 Viersen 12 (Federal Republic of Germany) P.S.: The answer to above exercise is: You will never see it. - End of Document - . O.. SINI_20NPRG KQREADME TXT /TREAD_ME TXT!P|`|``>>>> PURE-C <<<< for ATARI-ST Version 1.0 (C)88-90 Borland International &H f&op`B@#3 k # Ј<.@#Jyg<"@(I$k,"Jf"JfB// ?<?<JNAO A<~kRrRAfA6<HCBB`6 !jBJ)gHiRC` "fSI "WSAkHiRCBSQJ)gHiRCHy`$ON|0 J"LNd? 9~g @N 9g @NN?<LNAH0($HBN"&&x CN" gf g$p`PK fB@L NuH86(HE0S@g S@g S@g `&J`G` G;`GP f KN `/ / A`NPOAgN `NN2J@fNApN 0NrLNuH:OEN$GAqN ArN AN AN M, N <_SNDNIpg8`pN N <_MCHN eRT eRTN,HAN0<ANJ@g0<ANJ@gpN NNp.AN,,H f ApNSN ng NfBUN To6p@N\`, yg YfBUN To0<Nl` ApN< NN6J@m|(o ApN R1C" RN~ RN~ RN~B@O0L\Nu/ $H yf2Ap2*"HA0|o00jBP01@1@`22*"pN2*(pN2**pN2*$pN2*&pNv$_Nu// $H& yfr??<NXOp?Bg?<N\Op???<N\Op?r??<N\Op?r??<N\O09H?Bg?<Nj\O09H?r??<NR\Op?r??<N@\Op??<N2XOBgBg?<N$\OBg?<NXOp?BgBgr?Bg?<NO A8// Bg?<NO p??<NXO` pC8 JN$_&Nu// $H ylN& JNN * j,N yl CNl$_&NuAL!|,Nu3$ y$fHA|HR@3"Jy"fNu3/X/ X3 3NuA(p"@ "ByA1B33O"Nu/ Hz?<&NN\O$_Nu/YOM,C Hza(XOXO,_NuH@B@H@C$raJ@kNu.Vp`H8]O$H&I(o&BCx%p JR@g2fJ@g@HNBEg>BA< <b;k`|<*f<`&<0< b ACp a$Wb<gt<.f6<*f4`$<0< b ACp a$Wb4g<߲<Lf g`<hggr@dp|?@0;N`````N`N``````````````````````````NNN````````````````` [0`|A`0A2"LaN@`\ [2"LaL@`JJEj `p0?4 La"TO@`*JEj `0H?4 LaTO@` JEj `p0?4 LaTO@`JEj `p0?4 LaTO@`@HN0\OLxNup24C8jxA aA pJWF@?@gA 2SAktaSb (Q2/@4/(jt@jtBgf 0Ao@@Alx?B?D`hH0$H&IB(v`H0$H&IvJWFCJBj4Cb6xJAkCc8Cf K0a0 JN` 0 JN0 Kap0DL Nu6x0/g f@ JaP0/g@AN0/g@ Ja,0/g@A N0/g g@ Ja0OLNuH0E6`H0E4&H6g8Kg SC JpNQ J0|gNL Nu00000000 C$aA$p `\/ / B@JgB)g@)fJ&Q(i ge"// Ia"_ _J@f&Q`B@"(_&_Nu3 |p`#H#H&HJfS#K " I(Ia:"LJ@f`H:$H&I(S&gfJg^+g`)ft,k x$ڹd SfRe`.&// Ka$"J@k,f4(SSfRf& L\Nu3 |p`"`&x,A'J'JE8'J & KaxJ@kfRf"`(g4(f>"P | dNu?/a8 _2J@f 0Nu3 |pNuC!I!IR!I `H&H(k6+"+g0DtaJk+fZ"S"L Ip gSj`*| // " 0a`"_"JkNgPAp SjH@" 0a<߶<Xfg.G*3d"3d&HCHCJCfԃԁd` & gSJ"L Nu3"|p` 3!|p& g"`//"4UB|"bZC"t&HCJCf&HC;0NRBH@B@H@f`$?&8BCHC06H@0HC;0&RBJf8QB" _&Nu3!|`0123456789abcdefghijklmnopqrstuvwxyz/ &y| g/ &S?<INA\O`&y g/ &S?<INA\O`&_Nu@@@@@@@@@@@@@@@@@@@@@@@@@@@::::::8888888888888888888866666644444444444444444444@  !"#  !"#/ ?<NATO$_Nu/ /?<NA\O$_Nu/ ?/?<NNAPO$_Nu/ ?</NATO @$_Nu/ /?< NA\O$_Nu/ ?< NATO$_Nu##NN$y yN/ ??<NNXO$_Nu/ ??<NNXO$_NuNur fr STE, TT und FalconDatei sini_*.prg nicht gefundenFehler im DateinamenInterner Fehler%s %s STE/TT/FALCON SoundInit V1.0PD 1993 by Richard Kurzsini_*.prg\auto\sini_*.prgtestdq( $r  00   :  0"$r\$@0 ` | ~.~j **************************************************************** * * * SoundInit Version 1.0 * * * * PD 1993 by Richard Kurz * * Vogelherdbogen 62 * * 88069 Tettnang * * * * Via E-Mai: * * Fido, 2:246/8520.5 * * Nest, 90:400/403.5 * * AtariNet, 51:601/115.5 * * CompuServe, 100025,2263 * * Maus, UN * * * **************************************************************** Dieses Programm ist PD! Die Weitergabe ist absolut erlaubt bzw. erwnscht. Was tut's SoundInit initialisiert das Soundsystem auf STE/TT und FALCON aus dem Autoordner heraus, also vor XCONTROL. Damit kann z.B. auf dem TT und FALCON der interne Lautsprecher rechtzeitig ab- geschaltet werden. Die Parameter sind ber den Dateinamen einstellbar. Auf dem FALCON wird gleichzeitig fr STE- Kompatibilitt gesorgt. Bei STE und TT wird auch noch das Microwire-Interface freigeblasen, damit nach den Einschalten auch die ersten Samples ordentlich klingen. Der Dateiname mu so aussehen: SINI_xxy.PRG xx steht fr die Lautstrke. Es sind Werte zwischen 0 und 40 erlaubt. y steht fr den internen Lautsprecher, dieser Parameter hat nur auf TT und FALCON eine Wirkung, mu allerdings auch auf den anderen Rechnern angegeben werden. Erlaubte Werte sind 'Y' und 'N'. Beispiele: SINI_30N.PRG -> stellt die Lautstrke auf 30 und schaltet den internen Lautsprecher aus. SINI_40Y.PRG -> gibt volle Lautstrke und schaltet den internen Lautsprecher an. . O.. READTHIS1ST PR61SAMPLE25SPC 0SPCTHUMBPRG H"READ_ME TXT!P{-- What should have been in the LZH file ------------------------------------- ReadThis.1st This file. SpcThumb.PRG The Thumbnail Image Generator. Sample25.SPC An example 25-picture image. -- What this is -------------------------------------------------------------- This is a program that creates thumbnail pictures--that is, a picture composed of small versions of full-screen images. This is a great way to create a catalog of all your pictures for quick reference. As many as 25 pictures can be squished onto a single screen; both ST and STe color is supported. -- Shareware notice ---------------------------------------------------------- Spc Thumb is Shareware. If you use it regularly, you are required to make a small contribution of $10 (or the nearest equivalent in the local currency). Just mail a check or money order to: (US / Canada) (Europe) Damien M. Jones Damien M. Jones PSC 8 Box 657 Postfach 657 APO AE 09109 6541 Flugplatz Hahn U.S.A. GERMANY It would also help a GREAT DEAL if you would send the program's serial number as well. Just click on the "Info" button and you'll see it. In return for registering, you'll receive a registered version of the program, which can create 25-picture images like the one included. (Unregistered versions can only produce 4, 9, or 16-picture images.) -- Using Spc Thumb ----------------------------------------------------------- First of all, you have to get the program loaded. Just double-click on SPCTHUMB.PRG from medium resolution. If you use anything other than medium resolution, you'll get a terse message telling you to use MEDIUM REZ. You'll also need about 350K of RAM, so 520 owners might as well kill accessories and AUTO programs. I know 350K is a lot, but it's the price you pay for raw speed. Okay, now the program is loaded, you'll see a small dialog with all kinds of options packed in. You'll see an "Info" button (the usual programmer's ego trip), a "Save as" button, "Edit Names", four buttons labeled "# Pictures", two buttons called "Color Image" and "Include Names", and two largish buttons marked "Create" and "Quit". What this program is going to do is read a whole bunch of pictures from your disk (Tiny, DEGAS, NEOchrome, or Spectrum pics are all fine) and shrink them down. Once they're shrunk down it'll toss a bunch of them together on a single screen. That's where these options come in. To start with, *YOU* decide how many pictures can fit on a single screen. That's what the "# Pictures" buttons are for. You can choose 4 (a 2x2 setup), 9 (3x3), or 16 (4x4). The default is 16. If you register the program, you'll also be able to make 25-picture images (5x5). You also get to decide if you want a color image or a grey image. Color images are saved in Spectrum format (.SPC); grey images are saved in Tiny format (.TNY). Grey pics take less space and are drawn faster, but they don't look *nearly* as nice as color ones. Then again, color pics may have a bit of streaking in them (since with 25 pics on the screen the number of colors went WAY up, and Spectrum mode has a hard time dealing with it) and they're drawn much slower (one minute, instead of three seconds). Since there are advantages to each option, I thought it would be best if you had the choice. If you want a grey picture, click on "Color Image"; it will change to "Grey Image". You can change it back by clicking on it again. Then there's the "Include Names" button. I can't imagine why you would want to make a catalog picture without including any filenames, but just in case... here it is. Click on the button to turn it on or off. Now we come to the "Save as" button. This is where you specify the name to save the catalog image under. Click on this button, and a fileselector will appear. Just select the name (and folder) you want to save the catalog picture as. If you've got a "Color Image" selected, the extension of .SPC will be added for you (replacing any extension you may have entered). If you've chosen a "Grey Image", the extension will be .TNY. Although there isn't room to display the entire pathname on the button, Spc Thumb does remember which folder you've specified. The only thing left to decide now is which pictures to use in the image. So let's make this simple... just click on "Edit Names". You'll see another dialog appear. Click on "Insert". Put a disk full of pictures into the computer and use the fileselector to find it. You don't even have to enter any messy wildcards; just the folder is fine. Spc Thumb will scan the directory, pick out the files it knows how to handle, sort them alphabetically, and display the names in the dialog box. Only as many pictures as can fit in the image are displayed in the box. If you've selected a 16-picture image, then you can have up to 16 filenames in the box; with a 4-picture image, only four names show up in the box. Makes sense, huh? Right, now click on "Done" (since we're done selecting files). You'll be back at the main dialog. Everything is set, so click on "Create". Spc Thumb will then start loading, squishing, and merging pictures together. You'll see a little box in the center of the screen telling you how many pictures it's completed (and how many there are altogether), along with what it's doing to the current picture. When the last one is done, the catalog image will be displayed. Press any key to save it. That's about all there is to it. If you want to stop the process, hold down the mouse button until the program recognizes you've done so (a few seconds at most). An alert will ask you to confirm the abort. Now let's talk about some of the *nice* things that Spc Thumb can do. Let's say you've got a disk with more than 16 pictures on it. That list contained only 16 pictures, and if you select the folder again, it's going to take the first 16 again. You don't want that; you want the NEXT 16. This is fairly simple, really. Click on "Edit Names" to bring up the file box. Select "Clear" to empty out the old names (that's what the "Clear" button is for) and then click on "Insert". Use the fileselector to find the seventeenth picture (it's the first one NOT used in the catalog image), then select "Okay". An alert will appear, asking if you want to add all the files that come after it. That's what you wanted, so go ahead and click on "Yes". Spc Thumb will scan the entire directory and sort it, as before, but this time it will use the filenames starting with the one you selected. This way it's easy to catalog even the largest folders. You can put pictures from two different floppies onto the same catalog image. You can either use floppy drive B (which is *really* nice if you have two floppy drives) and let GEM handle the disk swapping, or you can let Spc Thumb handle the disk swapping. Just add all the picture names from drive A. When Spc Thumb can't find a file, it will display a message asking you to either switch disks or stop creating the catalog image. All you have to do then is switch disks and select "Continue". There are a few buttons in the "Edit Names" dialog that weren't explained above. You'll notice in the lower left hand corner two arrow buttons, up and down. You've probably also noticed a tiny arrow in the file box. Clicking on the up and down arrows moves this cursor arrow up and down in the file box. The "Insert" button inserts filenames before the name pointed to. The "Remove" button removes the filename pointed to from the list. You can move the cursor to any filename just by clicking on that filename. But this wouldn't be very useful if you couldn't add one filename to the list. Well, you can... click on "Insert". The fileselector will appear. This time, pick a specific file, and when the alert appears asking if you want to add all the files that come after it, select "No". The file you selected will be inserted into the list, and the fileselector will reappear, allowing you to select more individual files. Select "Cancel" from the fileselector when you're done. So now you know that you have quite a bit of control over which images are catalogued, but let's draw up another scenario... you're really partial to those 16-picture images, but your last disk didn't have 16 pictures on it. So now you wonder: should you go ahead and make a 16-picture image, with half of it blank, or make a 9-picture image, and leave less of it blank? You can go ahead and make a 16-picture image, because you can ADD pictures to an already-generated image. That's right. To take advantage of this feature, click on "Save as". Now select the already-generated image. You'll get an alert asking if you want to "Replace", "Append", or "Cancel". "Replace" will erase the old picture and save the new image in its place. But "Append" will look at the catalog image, see where the last plotted picture was, and will add the new pictures in the available slots. Simple, huh? ("Cancel" aborts the filename selection, of course.) Once you've selected "Append", Spc Thumb will warn you before you change the number of pictures, the image type, or whether or not filenames are included. You can't change these options if you want to append to an image. (NOTE: do NOT edit partially-filled images in a paint program, or you may destroy the information Spc Thumb looks for to recognize a partially-filled catalog image. You won't be able to see the information, but trust me; it's there.) That's just about all the features in Spc Thumb. I hope you find it a useful program; I know I do. I've already used it to catalog all of my pictures (about 15 disks' worth) and it was really no trouble. (This was also how I found most of the bugs.) -- A few notes about the catalog images -------------------------------------- Spc Thumb uses averaged scaling to create its catalog pictures--the same technique used in DMJ GIF. But Spc Thumb's scaling routines are written in pure assembly, as is most of the other image conversion code, including the Spectrum plotter, so it's blistering quick. Images don't really take that long to generate--when you consider just how many calculations are being done. The 25-picture image included was generated in about three and a half minutes on my 8MHz ST (from my hard drive, of course). That's pretty good, considering over 1.6 million pixels had to be examined, averaged, and plotted to create the image. A complication is the use of the STe palette in some images. Spc Thumb will use the STe palette if it's found in the original image; if the original picture has only the ST palette, the ST palette is what will be used in that chunk of the final image. This applies only to color images; grey images always use the STe palette, since all 16 greys fit into a low resolution screen. I realize that averaged images may look better if the STe palette is always used, regardless of original palette; write and tell me what you think! -- More dmj software --------------------------------------------------------- Here's a few things to look for if you don't already have them: o BoinkSave - a screen saver; displays a bouncing, spinning ball on the screen to prevent burn-in. Completely automatic. o MoireSave - a monochrome screen saver. o DMJ GIF - as mentioned above. Converts GIF pictures to Spectrum, DEGAS, or Tiny, using the ST or STe palette, plus lots of other options. If you collect pictures, you NEED this program. o Sound Lab - complete sample editing software, in color OR mono. o MHz - Switch between 8MHz and 16MHz on a Mega STe with a hot key! o Spc-3375 - The *BEST* STe Spectrum-picture displayer! Enjoy STe color on an ordinary ST... it makes all the difference. And don't forget ReNameIt!, which renames files, folders, and volume labels, in upper case, lower case, and extended characters, on any floppy or hard drive, in any res, as program, accessory, or .TTP. All of these programs should be available wherever you got Spc Thumb. If you can't find them, just send a blank disk (along with a letter telling me what it's for!) to the address above. -dmj SPq;?O0Ax@`crÐ~8l>Z=?8>~#-tB)v {G?#K%1п} F)bpA`#^HNؿk%~#H,B:_N#7x `ٿg3 s _yC#?:  ABσ??"d_!x".(O: |%x|Jh >+Cdp!;#8j>WK?`zBwb7 "W?>'@AdY~φ|O `t{6< i?5Aa |5CɣG`gO Px~o ÇC0( dpxy%xir_> ` ٗ#+B9@e==7~|7 @?B ޽A!b??tD7i  h:W08s?h~u?C~k lv|9 $<‹axC$KFr01k|6LdC H3O cyXتDP)h!FTjֲ dD "])X ?!UdkiΨgsY H  C*r@ K%!?y:?!b?9@~<hW8G@>=jO?ooٿOOB<ɀ>?`84܂P3 I/p8OC&|.0!1 @0 ? `vcN0!|}}; @xA>3< !/_A~90;`?{o'Cd "P+`w < >3(K@&=8} /"nu0 ?O"SBG}X \np_  y 0O|_p9 @oā=w#|tP L@× T H~!l>7 ?d8Y` qo/`$p`}$++s0@DoD7,P~$(0 Z  "O?w$.2=0 e8 ;`1 = P5;1@ٿ @"C*qgu7 Dž݌lj"Dѕ%!Q V'bPՉRʈ!@D%T!T%2p1 l!@s%g%bP+Lk |?V x? 7Gw0@<@Hx? Pw tO}`  0/?zY@A qhW-(/| @'y p=)hD@! BG1 E  o9`P` ?3;yO @ /;~?< #<t?`7K2\t@_4\`?Aӆ @!< 23/;'X4.?$G783,,p? =8 91?tb0}z"h/w?k\?i`|WA@7p\P8`0:}+̟ +6@go9|_ h@ǔЕs:t?B\ߓpz B`>yGt_ J3 &@awfc.n]62rKh&UV EeFEi+(8$fc b]6@CgY9p 'TVI, ܝd0EI+(؀QJ+Y ^}0y ?4|>a @sIx`0cP?g~?<bg}>  }s|86`_&oClx?D?2| ?< R`o!W#o _gK?r`#HaW =AF`î I<`< @q YL0\? 7L  ca`}#h{?*$|$`n< |pj_\U͎`"?@>@ ?'рx O.9y>Hs +`?` ?P?@VOlc},8*  Y@<À ŀ~c5sT 翀c`??@e9б`1/tã|/O\?!d! H 9poW/{'p3 p: NP sc _Àz9h8@YS/M'ۏ{?p`ȸJMp tJj@g_ L&jA4ЀB4*H%ZA, |"N$JjI$00M/X ?$~?b ~gf@_!_=-!,D0ð #A?h0@_0c`@C1Hc6:]Afd0Nw 7ޯ'8;;1 ?lNa@ }&&.|B  )A@`oKyHVu5?a ?"oaϹ_ @U@o _Dد<v_@@wn~ O = #wP 87 '$G |^@0"-^A3Ƞ6_?v Wf٣h ?_$  yGx h/D{GC`8w:=9q>0Y,pS| q!gF@? c 9ZR"`&=kp ?VDS 0&PHn?&c=|?y"@ 9zP% @8ˊppz!0 xv_ }_ʞSy`*x@>>bc4RR*f@@? Z(4p>88Xgy`v@$ g| $@Bn`@q0#<.?n`3*0LN]@ a3/loHpkw  !r?:Andue !ؔƥ ~%RP V~ Dn%b |Ն ʓ"RY { _TXP~|@3|~;gfAcD0\xx`Q_!p?#~x?b11, #@ ?։`{@ D Ӏ/ Xlb/l] x=@b??"|@8 -'HlxZ~{#;\F]A@?`,&ߠ#KL u}ٟsC}>@b|Dpq1~  0#@}M툟3X);^#HPIuAt=?x`C!FG 7hOO!A%ؼA#|}ʴ98H?1V <3p6\@b`>P/wCz 31 O$?z} <*4@Md<#?I^p/ q%v%[a?t%8.'݉z( ( y* fur7  Z _  ufEbQ g VEg2 ? YI$ ,euEbY  JDZ~  %  h }>ǀ\A4`pcy XO`O(?~@@@?  _@GV: #y  P^qw8H݂/ >Bo 0" _v0Od3q @"Q@a )¦^=Dl,p?x3 c+EBs4paOŁ O"]pa`?r1!IyPx0?aP1 $@pǿ}h `Z 1I8F'1 >y@-0po?P;%0I;DCD  7ph` P U<00 y0!dp/s8?A$H%|y<8Z`B>&NaDq@`{x?@p Ϡ   0}?Go (!P9=  q??y8~+c~z mkWF̬ ~AL"B'cO0 !.8f+`/?-!:CG?| p \8ˠPqX-G 8c~`0/IC|߸ߢ "}@ 8OC(.6@BOz? %x0 D̀4 }# ?}x'J} ?8/L}?'} O(8/8l5@gA <a7 xB@ 0Eo@? 2A<ߟAh@\I,\} s) txc_Or@ b? #/?@ 308?oH o?21q#?!_@v#rC32 ET%F,0]ft'Cp2( $|50ES%vPO..@` w"$ 98w`  6 !0fPAA 28n!PxWrO"|# yȿO T3d?ÖM@@C_Po:|ypplwCZw2!?B_(繀Gx@c?@x Hg` Lp ?+ %Pfp%"zI+s?(sp#O?'?@ |B\D@u_2׀  ,p;Gk < ?CB79{G p##L+@}X@ȀS3O`&04_p0@@`Y@ϒ2{\zAw >0@@8{y M|`DŽ9 'p~q g?l:@0>,  0d @C$pc 4` >'P<>*\Pc"JA@a: IV*IZ+.TՆI֡}IT"!pRk ^@€`  Q$0vr<Ӏ? `Q<Є/|Px:!? QxD #P#@?f ?>o ?ssX{`2rV9f0)= >ώ 2~?8o ρ(hHp$33^2$1s@!_Q`:'@ =8<~=>?@Èxpnh|Yϳ/=>? ||+,?g@ڸX}f(%^_#H`? =$H08?} Q" ? ֘_އ@0p #!$AsuH0{ǐ<#hna#:w_uo?Aq?j& `xv6@#C Ww0@OǔG O#^z`*/a5 H 1&8> |sFǃ 淾3ʊ@p'/X4TϘDZ:`?`~_?c|>޵>1n"?QQe @[U ~a[ |{q`? @ cO_@|.x1&|O@ @?W f3 p+o )0x"l"Co&| O t#|~ kq?z\ "e2Hl`bTfH0}S29 Ehʏ|VhI}T" GXl'UXHT b5Jgd[$eJ00|*  8_p`Q'# o,@JXB?܎? =" ? G #3h l/p&2p ?`#U!z0Nя # -'@Qr0e}t#{`@\V2 #'|pϘ>"; w3| a0?#bKL_bmxkO|   @  {n`/R /#(pPItk,7 #_~x%VdA@ ? ##|or ~CH1? # |  85y 7l`= 26hx kV2ˀ 7Bɣ `~$w߰?x< p$| w R迉~8@$?HB; $y`8U g0; ys 9>``t)1wғ?{`04!DG-<=cp! 9dCpv. 'GEB+0pL\||쿿;:c+}@X ?d@ly}04~? ?fCx8;`X='!>eBƗσw* ԏ9n! @ poYv>[AK !uL `fur7 s?&  wufEbP gֲ d! VEg2 ?|FbP@| ,euEbY Tesr? wB @>G8 3$/~;?7~@pO ;y!`@ o> ?| KF8F`@c /ǰ? |/F " @q>>V|"|3~@" 8Y_`/@< ď0"a/x>#b crx#  [[ @ t%pO?p <{!',<@/phX?f=|0"?0@߆/H $7?E@ 20#@?_ۛ>x#7@{? q$Iぱ(\P&%@v #@1`@?7(?p0gB||?P@Ԅ9 ?2"(3?AA p?S=070F`? c@Xn{  P κ Q` _YC0? H ~}@ |'`׉"96Ѐ ` ~?ĸd ^AnOy 0X ;؀-?@?X AG? 8Y+M ԐH#=>p{r `  oi@ѐ8GpP`#0m>??OFr<ocpJ?BҪG~q xр|LH_ (>p 8? nx} r~l O@ Co65KK`8 i/f7 '̹@v?p&J8y??'L5@~S~|QOǀ} ?q~wC@ ?@ |E8! bp`~&& sa'2>!!p?p :@b$A*~^?e H8K%  \NHPqn6u`p%?~'0U!$OMOH8%0x0 +ՠA +3wF,+pCQn<0' w`9\LTIOpo9x~}o|lmZ]'2?"N*}>`Y?`@R]?)P@A$?A~=X?ȇFdG\n0h_} 7,3<L(8?o_Xf0@AQ%Po~/x@.R1x<0~0h ð~or ~? eΜͅ('G?. #e2Hlot؂TfH3S29<!XEhʌ<VhKT">GXl|UXKt}T2"{b5J`$eJ0p* px(x,C_;:`l_q#JXSZwx 9D ,8 1<#X`l/p7`;,# ^p=G #&S@1 -'HlA1c pC@1\Vx#0[b{p |ߠI?!x3}-s8?G CL_]?{~  {hA W  sR <>'[Z@PIw[@n0_ l%V!}A  @o0M!?<qw&{=\bA~V2ל8by`h $wBP?`H<|$} ?`T~i$u?HrCa%* Qat`8ׇs{o?Wo>8yCqbB#`Fhp`|`tw18 Jғ1π`G 4U28=p<8 =c)p! f/GE;c ?0LT~ D?:~ :Xd8<b(c@| ?A/y} @d!k8w;X= x `?3}}p8HAr& @ p{j>[ <#_`A'2T8 >Pfur7 dvXB  ufEbP< wֲ d! VEg2 ?>DP,@ ,euEbY \R2@?XPH_wق@ `av@x @@#ÿ2 6@1p~`"h9O@@?|S@~@ {^> IV }  7JHP\swQĀp Qo?0 Ὤ9_P{Ps4x0c.@vۡc@0$?!á;@^xÀr`Yt>0?!z9OOG30?VЯ;opz3@B8/bq *?}@ PZ0~{`@1؈0<`l8o?@B@D0t` 4A@@ ? h> kC!G/ )9\!D | n~?{\ Ap@8pV 0! ? 2Ho? <*Gx4ն  x+@~ƈ<  _M G  7? PX#~XF hd :Fp@^g 0f|  7?'>?.p>4p?Td|N k@~ଂ4 C@9 Fl p?~!/f2`5@ڃEk4b?bi6$Cx? hk6€7E$4xǜ? #8A~!Otߑ0@ fˆ VQx@7'G $'@ zsʃA'0 @Y|a'7a Ɂ~0  |@ ||1?M/?h w@?˭8M Pv#rC>3<n2ET%Ft,0Cft'C +(?*0KES%vP˴Ú.tp8v0  E@@(N P\`@F#?S(p3>fs}g?x "~H??`?|`} ~`xً@`GF3>DK @y4@@`J; <~H1@', "!/شoxABDwo'H'F_/ǁ?>|7.۳d?+  ~ 9tπhph<A!. x`瑰8@ }Ԁ8& .~`a@w 02$;K>!|28oENd2=8 T ?@!t[}p";;`Ǿ|G'7nw o XC?? @ c@pch??w' |lH#?/#!>8??` x,~ ||+`q0DA{ p@p ok0ddUy@2`~8ra/aP~9~'~f $ٵ0  |Āx9>nx =l, >CX!x7_ ?SLt/! oΈ??tLp> f<?@<~ZNCPσQ"2L?`j|??4` '8 #e2Hl`==@0TfH1}S29 Ehʀ?pQVhH}}T" GXl|UXK}T!b5JhX$eJ0|* @rHp3  wC"23TC32D"DDUeUe D 3w : 3 Uf  w32e"CD3"2Ue3DUU?w" 3 D : 3DU 3w"3 e2C"TD!eDDUUw 3 f : K U DD wC3" 2De3T!TDeUU?w 3 Df  3Uf322 " "eCwD332TDUU?w 3f D "D f 2 3"D"Tw2C"2eUDU?wf  D3 332w "2D"3 2eUC3fDU?w U 3D U f3f "2 D"33422"3eDDUwf3U D 3 " "3232D4TCDUU3wf 3 D3" D3 2 "3"D"3323D3?wf  ":KU DDU2 3"3"22!#"#3D3wf 3U ": 23""322""4##3D?wf 3"U  3  32"3"D"22!C##4"3wf  3U   23"D3""#T2#"3wf DD D 2 "33""2U#DTD"3wf 3 D:K3 w  33""CD#2TD3 f "w D D 3 " 32C D"D"CT"233 f e"KD 3Uf 3 3 3"D!2CC2""33 f  3 " K :f wD 3""3"CD2"3? f 3 3 K:"U C 3"""DDT!"2? f Dw 3 K K3 ew 3"""3D2!C3"? f "D \ 3 \ 32 TD"" "3T#D3! fK"\ 3DUfD3 " "!"DD3 \f3" \ U D23 """3Da2" 3\\Kf UD   3""2D23D\ "efKw 3  "  3"2"2UC"33 1"Kw\f D~23 ""3 C2"1"fUD\ : w 3 D 2 3"3"!D1C2D"3"fA\ K)w 3 3 2"33"D"D#"A3T\fKUf  3"2" 33"D2#"""D3A$v K\   3D3D23 ""C2#e2"D3D3v$\Kf  U D~ 23 "3""CCD2C$3D" U D\  32C 3"2""D3Cv3"D$K \ 3" | 3""2C"33"DKv3 De :\ 3 f |3w"3"!C" :"wvDK  e\ U ~3 "w"3!3! :"wveK U | 3|~w 3""!"w :KDTf 3U~"!3~w3 "" :"w 3f v2 KUx "|> "v#"3 : 3e3f U !23B1!U0~~ 3D " V "" ] V ]!fTDB!Te10@  g"D o n ""3"2 !3C2 SdeCdB@1T 0 ! g3D o" "3""2!DCfU2@e2C0dB!ST0 "e 3D g"""3222!"!3!2CBd0SeTBe0  13UnD""3""!!222!3eSeC2 BTB00 e13"""3"2!! 11222ed2C! 00T 1"3w "?3""23DDT!!2!1C22 C!00T 1"3Dw32wU""fwvT3CeCB21T020  CD"3 w32D3Uf"Uwe10!T 20 C2"3\Dvw3wf23vDUDC2B1 TC2C00! D3"f3wwfUUew2321  2!C00 2 !3"4EDDUwfw32fK)!UUD"DgeB2T00 C !"f3UKe~D3fwwUD"f2DU"1 C02!CT0 "3fD~feU3vwD"DKfUCU3e!BT!C00" 3fDfDU3vD"Kw~UTC!TU0 2!2!TCe0" 3fUgFD}D3Uwv"uTU2Te!D022CT!B Ue "3fDfTD}3Ce~TvD"!d212SB e "3VfFfU}uD3TDeUDv3CCT22T!2C"3C VFF )u}D"T3CeC3CTDS2!TC!3"2fFVdDCe3uCSD2CTTd3eeT2!3fd4U6"3DCTSDC3d22dBeBC!2eCT"!3fVVgF3?S"3Cd2B2)2CT!SeTC!"Ff34#)432BC"3!"23DC2C!"33W#ED#ED3?2BC!23!D22!!23"E34VWDD"233!3!"!12!C"3D2$D333"2 !2!2"3VU2UDDE2"32!3"!"22"!4D33FDE2"33" 2!2!"D"D3DU34E23"3"!!!3!"ED "DU *3E2?"3 *;2322!!"U2DDf*3E D4E 32L"3L"T2C!"EDEU33 D K 4D;23 L"3"!3C"CTT!2e3"D4KU2D"3UDE3"D;2"T3!!!T"3CEDU4"D LL D3DE3K ;"!"22|DCD34E"D ED 4U33""* 2|32E~w"DU4UDCEw3w" ;3"2x24~~wED"D3CEw?3U2  ;w3"!pTEwU"DD3 4"Uw3E4 *w23`eU~~wDDE3)2 "w3Ew 23pe2EpUDDDDU>3E223|wDw"UgU3UD2D"2~wDUwf3"UC#wgUDfg3VS3!!SC|wwf"TvU3eVVwggUSgfDD!3T2|wTwfV2e"e3wggw!Sg2edBfTD1TwwVffT"wggwC!d1g2S3!e2!!"wwg"fVwwggS!1gdB2T2TBD3!wfw#gfwgg1BTCTe!CdffT3U!D"wwf4!##gfggwCT1e2BSe!2DDf3Uww"#E#VgCggwCT2Ce2Sfv1!DUf3Dw"wV#E$4wggC2STC!!feTDeSU3Dww"f""#$VdggSCTC2wB2fdeD!UD3w"wf4"P5$dggCSTeBSCdD2e2!3UfDww"U"$45PVw$dggSCSTCe2!Dd2D3"Uwf#wD$D@PV45dggSCSTB22eDC!DU"f3w$wf5#4#TPSgdCBSS2De2T2UDf3"w5$E"$@V#F`PdgSCedDBC21!2DfU"3w"5EV#$EF0`PgCdS!DeBCS13w#UD"3w5$F`EE@2pPgSdBTDT!e2C!2vD$"w35f25#pFP`gdeTS!DC2C1d2BDU3"$w3v55V`Ppgdd22DS1BeC!CTUDv3"w3$5f#pP`gde21dDSC2C!BTDw3f"w35Ev4q$P`gp2dSdCDe1T!BeDUf3"w5f$#3Eq0gp`P2d1dDSC!C2e"3Dwfw$EU"35gPp`10SC2B!d2T!dTf"D3w$w5#"$40@PpC`12!gSBT!ddCefU"#3Dww5$4##q@0pP?C`!S212BCSdD3#"wfw$#V4a0qPp`1@C!S2!2CBTB"4f3wEw$V#3%aq`Pp12@!SCCSBBUw5w$wf#f`q @Pp!SrSCB!2213"UeE5wwf$#@Pqp`! aSST1B2!Df3!UVwwf$#E@PTp`q1CS12!2BA"U3V2wwf$a`q@PpT1S!!BCB2A"TfD4wwEU@pq`TPC1!S1d2B!e"fDUww4e a@qpPC`SST!d121C~TT23w~wCe@ `pCaB1q2SSC2~T2wwe34@`BpwwC! qS! ~e3"TwwC30Spw`Cw! aBD4T3wwCCe#0p`w?@wSTCB!1214D2fww3D"3T#"S1w2Pw1CB!@T1|2"3ww"3Uf4A#1!SB021 Td|3~C3C3C4!34"DU"E#43D#|<TTDUD" <+ 43UTVg?"D43#"U4#|5TD"TDE]]!3UTDg"V3#D"#U4~$ TD3V# 5Vfg"Dg#3"D#C~5  TDf3Dg3wg#D"3"D3D22"U~ "T T D2UgffwD"#33D42"~E D"T2D g3V!f#3"!w3"D4T2~ ] T"3f2!!w#D"?3"##43~ "  T233"U!DwfD"?#3"34!~ " D33e" 2wT"f!#"24D~ " 3D3f3T#UCw"3!!DwDU3E2 "3 D"f3#e"U2w3D !!C"DU~  " 3Df3C3!ew"3DCD333~  D"3# "3 L!UD3!3CU32D  3D"3 #DU E352!"3?C3C"23C  D"33 2"# ""33!C23"~ D "3  "#33"D"!"21"~  3" 3"  ]D23"!"1"3D  3" "2 43U3C!23D   3 "D"3  U32"2CT!e# 3" D 2""3 2E 2C"!DT2 "D M3 2 "CL 3C2"U!" " 3D  2 ]2 ]""CC"?2TfU"!!  " 3" ]" C22""U# "  3 " ]2" MC!2"#"!fU " 3 M ] ] !""!32#"#" "3"" M ]!2""!"334~ 3" 2 C ]D M"?"!"34#D!D  ""323 2D!!"? 323"!H  3 ""2! 3C22"3#3D44"  "3"2! X 2"43"gDV"2UL " 23  U!"22"E3VfU"f44#H  " 22 A <12"23VU"4Eg4V~1 " 22 +<L +2!2 "DEVU#"43g@"~v2212wD3"? E!#VfCf 44VD@"~~w2C 2 wE31wDTfe"DVFp"wC 2 e!1wD"w4T#ED4`~>w2"2!"2w43DDw!T"@2~~w" f!2w34w"S"@"|r"B !3!"02U"14 " ) 9   U  " *23 ;T CDUU4ED"D3" 3 1)  " 3 9 vwCT3w?fUw#DVUCDD ; !) 9! ! " 3 3fwf ; 3eT"3wUfDV3EDwU ; ) "  3 ! ! 3  "3w ;EUEwDU3#4C3fw23"  ! ) " ! !   3 *3 4DEe wfwU#V"2U"3D!C  !! w   3f "U"V 3wE4w#DDUef"C3!   w V 33 3fV3D"wf#w4UDeU!T3!1   3Ew " 3U* VE"#4wUfewD#"U33!0     "E  3 v"3D;E#w4"fweUUU3B" @" ) )!  v "3D4;   E 3#wf2"U!wUD332   )! u 3"4 ;## DE#wU3"D"VfUB!2w     u"3   4D4EwU3fB2w"2D3  C  "; ]EV3#4fwDUCw#2fU!3  2)  T )d"   E#3wfUVwDS3UC") : J2 2: d" ;! *"L#E w3w"DUfSU2D !  )2) "d * T43E" w"UwSf4DUCCB2 " )   J d" T C "wwSU#fV4UDDC3" ) 2 !  dT" C " Sfw"Uwg#4U3"B2!f J 2 T d  Ce3" "SwUfw#4EDUB3!)  JCTd Sf#*"E" wDfSUDwC3UB"23![J J) T fd" !TSCCE w"SD3fwD22!U3""  [)SdT  C3C "w"SfUCB2D32!w"T  SdCS*E # #wS3fU24"C3BD"2   SdC3 43  4EDwfSU23""2C!3 2 2 )  )CdS3 4D"* S2wEf!3B3DCTU : )   3 dSC*"]   "wB3!SC22D3"! C :  : 3 JS C S3 f S2wE2B2C!"C"  " JC SC  " 3" wfUD22"!CU3BSC2 "  : C:  3 CS  D " wfwU"EDTU3D) " :"  SC  3#D 4ww3D"EVfU) )  CJCS C  *"4 3wfwEgDVUWg J TCC  S  D *#3w4EwUgWDUWgf ")"  JTS  C S2 "3D##wEw4Ug3gfWWD3 "  )[S CS 2* *E#gww43"fDUU3D|  T  C * #~w D"EU3~ "wS * 323ww3UD"4#~"wCC C;*3ww3"UU4~  33wCLC2 3;w~w UE D; 3 w3 42CC ;ww ;fUE"~ L L D2 # 3#3 *CDU"D`&4AAONOja|a|E0 +@>E +@BEj +@FE +@E +@Ej +@*E +@.Er +@2E +@6E +@E +@E +@"E +@E +@RE +@VE +@ZE8 +@EB +@E +@^/-?<NB<|zxv0<tr0|ao^/-N2?<NNT+@APaj,Bmv0-vajCPa[/0-v@aj"_a[CPac$Rmv0-v_@oPgPh;|\Ep A&abQ|;|BmBm -^aZC\abHm\N72 <~Aa}x mAH $m,$$m, $m0$$m, +@ <}Э+@ < ~Aa}Vx mAH +@pa`$aW> <~Aa},$mtBR$mt0aF&<x:<af(&<:<aG/??$mt0HjrЁr&<:<aG8:&aD4/??$mt0Hr&<:<aG8:&aD &<:<aHaD$mt8H mH$mtRR$mt0@oHp~A킊a|TBm^ <~A킐a|@?<NATrAЁahp:aZ/pak"_aYp\aZC8aa$AagA2agA8CVaa/-b?-PHx!N2B/-b?-LHx!N2B0-@H mban/Ep agn"HA&aY$"aX;|8/-bN1pa^|0-8gBm8BBBfBBBm?-?-?-?-?-?-?-?-?-?- - m.,*(&$<"<a\+A+B+C+D+E+F+@ -VHH/ -VHHgx -g* -(-vt"-ba\ +@fpff paaBf -g - -fg N1 -f` *N10-H`<|zxv0<tr0|aiEpadl/A,CaV/ mC&,*aqpa[z maxpgZ ma?Ng`EpBad"ra|b;@d0-dW@f mad2`<0-dS@f N`*0-dU@f N0-nH ma{ @/E p ac"aU*><|zxv0<tr0|ah/-N1/-N&$m0 +@$m$BBmd m$ Ѐ m0g$m$RTRmd mdo><|zxv0<tr0|ahn$m$  Nf$$m$ r;@\/-b?-HHx N2B/-b?-JHx N2B/-b?-LHx N2B/-b?-NHx N2B0-\H`h/-b?-HHx!N2B;|`d/-b?-JHx!N2B;| `J/-b?-LHx!N2B;|`0/-b?-NHx!N2B;|`Jg @g @g @g$m$ r;@0-m$m$ VHVgP|$m,"R$m0 R <aGB`.Ep8aaraz,;@d0-dU@f maa`N maugp\abX"mae macLCaZ0-HR mac"maZp.ab""maf0$m`4$m`0fpA,ac"maS"maZ`*$m`0H mab/pA,acT"_aR"maZ mC&aZtACVaZh0-@H mbax/Ep a`"HA&aR"aRN><|zxv0<tr0|af/-bN1/-b?-@Hy N2B`tN`l-|gN -fgZ/-b?-HHy!N2B/-b?-JHy N2B/-b?-LHy N2B/-b?-NHy N2BBm\;|`n-|gN -fg\/-b?-HHy N2B/-b?-JHy!N2B/-b?-LHy N2B/-b?-NHy N2B;|\;| `n-|gN -fgv/-b?-HHy N2B/-b?-JHy N2B/-b?-LHy!N2B/-b?-NHy N2B;|\;|`N1ENp\a_>raw~`r-|gN -fg^pJ-hgpFVh-hgD0-:H mbav/Ep a^"aPT0-*HU/Epa^"C&avD`B0-:H mbav/Ep a^"aP0-*HU/Epa^"C&av0-@H mbavh/Ep a^h"HA&aP"aO0-<-$m`:$m\8v4-@H"-baS0-<-$m`:$m\8v4-:H"-baS/-b?-:Hy!N2BN1/-b?-:Hy N2B`L-|gN -fg:pJ-ggpFVg/-b?-PpJ-ggpr D??<N2BN1`/-b?-paTaKN`N1Ep3a]8raux/-b?-Hffp/-b?->Hy!N2BabvN1 m /?<NN\ab\paSNu><|zxv0<tr0|aa/-N10-m^n 0-S@;@^N@?<NN1BBBfBBBm?-?-?-?-?-?-?-?-?-?- - m.,*(&$<"<aQ|+A+B+C+D+E+F+@ -VHH/ -VHHgx -g* -(-vt"-aP+@fpff paVBf -g - -fg -f`h/-?-THy!N2BN1Ep!a[rasR;@d0-dS@f6BmvaZ8-vH"maqRmv mvoBm^N@?<N/-?-THy N2B`/-?-RHy!N2BEpA,aSA2ang$AangA8C2aS` AC2aSQk><|zxv0<tr0|a_~EpaZ4/A,C2aK/aZ"H m,*agH man6f p\aZ"ma^, ma[C2aSB ma[tp\aMgEpaY"maK"maSp*aZV"ma^d/p?aZF"ma^Tgn/-NBmv`$8-vH"map8-^HC킊a_ZRm^Rmv0-jmv^HH/0-m^^HHf0-m^f 0-S@;@^`*-kfE%pEaYraqZ;@d`;|d0-dS@fEpaXC2aJ/NBmvp4mjЊaQ`8-vH"map "H maKBfRmv0-vkoY0-jmvgX`$8-vH"mao8-^HC킊a^jRm^Rmv0-jmv^HH/0-m^^HHf0-m^fFSm^`@Ejp?aX8rapx`, m8-^HC킊a^ p4mЊ2-^HoRm^Pk-kf><|zxv0<tr0|a]/-N1N@?<N/-?-RHy N2B``/-?-*Hy!N2BN18-^H"manakg0-^HA킊a]N@?<N/-?-*Hy N2B`an,/0-ZH maofD/ mpaoVD&<:<a2b&<x:<aTra3$mt4p4mЊ$mt2Ho@rl@$mt4`x$mt4R؊"man ajf$mtSR$mt0nBgN mt;P^?<N`J/-?-VHy!N2B0-^oBgNSm^?<Npah/-?-VHy N2B`/-?-XHy!N2Bp4mЊ2-^H^HH/8-^H"mamTaj:gBgNRm^?<Npahr/-?-XHy N2B`0mTgmRgm*g mZghmVgmXg^0-Hffj/-?-Hy!N2BN1><|zxv0<tr0|aZ/-bN1/-?-Hx N2BNu0-ZH mam\/ mpamPП\@;@`0-ZH mam>/ mpam2ПS@;@b0-<-$m`:$m\8v4-ZH"-aJxpaKpaKpaKpaKaKBmdp4mЊaL`"\mb8-dH"mak4-b2-`aMPRmd0-dkoYNuaWHApaR0-ZH mal/ mpal~"A;@`0-ZH mall/ mpal`ПZ@;@bpaJpaJpaJpaJaJ$mp0g"0-^0mbЈ/paT$2-`aL` 0-^0mbЈ/p aTn$2-`aL`VHaVAaR?</NAT+@Bmjp\aT>"maW maU2CDaLp ma.;@h` mp(rJffpЭaD"maLp maU,a[p|aFC>aLEp@aS("HA>aWJg mCDaD8-jH"majRmj?<ONAT;@h0-hWHH/ mȃj]HHf`0-jS@o0-jHA킐~ta\`U<|zxv0<tr0|aW,/-N10-\H`0<aR|0<aF0<aF0<aF0<aF0<daFx0<aFp0<daFhCJaJ+mʁ;|;|d`l0<aR0<aF:0<kaF20<aF*0<aF"0<aFCJaJ0<aQCJaB0<CaE0<kaE0<CaE0<aE0<CaECJaJ^0<aQCJaB0<aE0<kaE0<aE0<aE0<aECJaJ+m";|j;|B m4 $mtBR$mt0H $m4 R0$m4T$mtRR$mt0@o`d0<aQ0<aE20<PaE*0<aE"0<aE0<aE0<aE 0<aECJaI0<aPCJaA0<2aD0<PaD0<2aD0<aD0<2aD0<aD0<2aDCJaI60<aP~CJaA0<daD0<PaD0<daD0<aDz0<daDr0<aDj0<daDbCJaH0<aP.CJaA<0<aDB0<PaD:0<aD20<aD*0<aD"0<aD0<aDCJaH+m;|P;|2`JgJ @g @g0-o0-HRAJaQCJaHL` pAa?Bmt`Rmt8-tH"mafabfBmj`0-nH maf @/EpaN/0-ja,aEaR4"_a@J < of aB/0-ta,paR"_a@,"a?0-<-$m`:$m\8v4-nH"-aC8-jH"mae|"maG8-jH"maef/N&Rmj-vfJAJ  @0;@dAJ  @0(;@v;md;mvpAJaOCJaG(0-va+&<:<a,/??0-da+aF8:&a)Ta*>+@N1-vf0-pH maej @/Elp aMh"a>0-<-$m`:$m\8v4-pH"-aB/- -$m,В/$m0/ mNO N1-vfP-gg0-pH mad @/Eyp aL"a>P0-<-$m`:$m\8v4-pH"-aB`?traEpaCaCpaBpaBpaBpaBaB/-/-NEh$mt40-H$mt0RJjRmdp2-4mvҊD;@v0-va)&<:<a*/??0-da)aD8:&a'^a(H+@$m, ѭ;|p$mt4RЊaC`0-HЀЭ @p0Rm0-koYBm|p0|0Bmp$mt4RЊaCh`<0-|2-a9g0-HЀЭ @ <0`0-HЀЭ @p0Rm0-koYRm|0-|Y@o`paAaApaApaApaApaAaAp aKD"ma<\traCXpaAjaAjpaALpaAJpaAHpaAFaAN/-/-NEh$mt40-H$mt0RJjRmdp2-4mvҊD;@v0-va(&<:<a)8/??0-da(aC$8:&a%a&+@$m, ѭ;|p$mt4RЊaB `0-HЀЭ @p0Rm0-koYBm|p0|0Bmp$mt4RЊaA`<0-|2-a8g0-HЀЭ @ <0`0-HЀЭ @p0Rm0-koYRm|0-|[@o?T$m, a&&/??0-a&&<:<a'8:&a$<|zxv0<tr0|aJ/-bN1pa @/EpaE<"a60-<-$m`:$m\8v4-pH"-a: m$ <JЭa<`$m$ Rp $m$X$m$ o]N1-vf <0-pH ma\ @/Ep aD"a60-<-$m`:$m\8v4-pH"-a:&`6EpaDx"H ma6.Ep+a7ra\UfPv-vf mabFf-vfQxp maF"ma=~ maM`N mra0$- <}raI$- <JraIpa/($mpBR`@ mra0Tpa=$m0$raIxpa./-/-$m0/ mNO $mpBR`| mra0pa=b$m0$raI6pa./-/-$m0/ mNO $mpBR`v mra/paV$-p raH$- <}raHpa.j$mp4`v mra/paV$-p raH$- <}raHpa..$mp4`: mra/XpaVb$-p raH|$- <}raHlpa-$mp4`R mra/paV&$-p raH@pa"a/|0-<-$m`:$m\8v4-pH"-a3$mp0H`0$m0//-/- m>NO `$m0//-/- mBNO `/- m6NX m0Hg*0<a>20<a2N0<a2F0<a2>"ma6`(0<a>0<a2$0<a20<a2"ma6 m /"mp _a"rE>p ma6f m "@p ma"P+mBmdBmv m /0-dHЀП @0;@ m /0-vHЀП @0;@0-a&<x:<a:/??0-a&<x:<a98:&a>aDava5a;@0-HjrЁr/0-HjrЁrП&<:<aahva5ham0-Hr/0-HrП&<:<aa0am0- m0TRmv0-vW@oRmd0-dW@o$m0//-/- mFNO `Jgvgvgvgl`>a>^A퀀a9A$a:Aa:RA\a:$A4a:jAJaOg <|`Э$m4$$m$$ N0-\H$m$ђpJ-ggp$m$0-NHJjV2-H4mҊD$m$ђ$m$ a>B"ma4B$m\4p$m\2H ma<-:-$m`8$m\6t$md2$m Ra>`;la;Aa7A\a7 ma8$m\BR?<$m\??<NN\@a9R"ma*`"ma1$m\RR$m\0@o`; +|~@a9lVEpa8d/a9D&<:<a&<x:< a5a;"_a)Ep!a+raPda L?<NNT;@E +@n`Fa:A a6Aa6z$m $m "a/$m Пa:`:B0-S@fp+@r`"p+@r;|Ep;a7raOa mnp0(Эn$m$$Bv$m$//-v -v$m$ RaO/HxaRa" _aO$$m$//-v -v$m$ RaOX//-ra$a" _aN$m$//-v -v$m$ RaO./Hxaa" _aN$m$//-v -v$m$ RaO//-raaf" _aN -v$m$ RaN`" -v$m$ RaNЭn"-v$m$ RaN8`;|B;|T;|Z;|R;|*;|;|V;|X;|l;|p;|n;|r0-HЭz @ +@b0-BHЭz @ +@0-lHЭz @ +@Nua7Aa2A\a2ATa38AXa30$mT$$m\BR m0(Sa,B`|"mX mT" m $m\0RЈ @p$mT"$mT$ m $m\0RЈ/$mT  _$mX $mT"$mT$$mT XH$mT$$m\RR$m\0koxY`6a6HA,a1A@a1ADa1Aa2A(a2TAxa1A퀄a1A퀈a1A a2 AHa2,A\a1A`a1A퀌a1A퀐a1A퀬a1A퀰a1A퀴a1A0a1"m( m,"$mx4$mBR$m0H$m(В/$mx0H$mDВ @0 _0$mxPR$mTR$mx0@}m$mxR$m0@|`m$m, }$m0$$m0"R$m( R <}a"mD m0"$mxBR$mBR$mBR$m\4$mx0H$mDВ @p$m$mx0H$mDВ @p($m$mx0H$mDВ @p($m$mxRRp$mr$mWHH/p$mr$mgB$mx0@]HHg$$m0oj$m0H$m(В/p$m4RЊ _$mx0H$mDВ$m0RS/$m0H$m(ВR/p$m4RЊ"_ _av$m0R@$mR$mxTR$m4` $mxRR$mRR$mx0H$mDВ @pr$mWHH/$mx0@mB$m0@]HHf$m0H$m(В/p$m4RЊD _$m0H$m(В @p$m@$mTR$mBR`$mRR$m0@WHH/$mx0@WHHgj$m0H$m(В/p$m4RЊ _$mx0H$mDВ$m0R/$m0H$m(ВR"@$m0H _a6$m0R@$mR$mBR$mx0@m$mxBR$mD$m\RR$m\0Y@o|$mBR$mxBR$m, $mH$$m\BRBm$m4$mxTR$m`4$mx0H$m@В @0;@$mxTR0-g60-H$m`2;@$m0H$mHВ$m0RЈ @0-0$mTR$m`RR$m`0@o$mxTR$m0H$mHВ @0-0$m0$mR$m\RR$m\0@ToB$m0d$mRR mra60H@Nur{0Nu{0NutNu 246j(:<DCaf AfBfNu` a 00Nur$o, b4< J@k @[H@NuH@RBNu4<Ѐ[NuDg8k2 b4< J@k @[H@DBNuH@RBDBNu4<Ѐ[DBNu4H@Ѓdh`^HCH@:">H@`H2g&HCH@:<HC>H@Ѓd(`HCH@:H@r` gDBgkDE`HDBDEaBDBNugDBa8DBNutNua 11!Nux`xaR`aL` 24&8:HoHoEBJAgJDfr:g,|HC҅H@:ۆ<HC>H@Ѓd`vHCH@:H@`fgDBgkDE` DBDEaDBNugDBaDBNutNuHoHoEBz:g|HC҅H@:ۆ҄ۆ<HC>H@ЃdHA@B@H@хk HAҁHAрSB BbNuJBj^tNuk(g.JBjDBAр[SBDBjNutNuAр[SBkNuJlNu0gH@rJBkB JkЀ[`DBЀ[`J.;gP:pr4<Nup`6xa`Ba411!Nux`4 24&8:`& 24&8:`a&8:` &8:@ABJEoHnfNup`tNugDEDBHngDBEBkQ*HEJDg?<>0rHGGdHGGdSWDуdi?<>0rHGGdHGGdSWDуdi2?<>0rHGGdHGGdSWDуd&2 H@kփAр[SBkփejRAd RdQRBJjDBNutNuCEdSW`?<,>CEdGeH@0r`fJCgz?<0rÐdSWЃdi?<0rÐdSWЃdid?<0ÐdSWЃd&2 H@kփAр[SBkփejRAd RdQRBJjDBNutNu?<0riP?0i?`?<`.apEgP`LJg&B.C`a8aD*9fap-I,=|p4aHz*9g ENp9` _a &nO:NMIFK0$<Nu[1][Error +111][Return]E. g g>Jf`Ar Hjr-D@Hd0H@H 0H@0CNuAF"H [1][fSEfNu`HQ?< NA\Nu"_K0MIFO:HQ <-H*,`N,NJd d3 d# d# # d# # # # d ALH dAL H LH d AL`H L|0H>L|H>d~# # # # A`@ALH L|H>L|H>L|PH>L| H>L|H>L|H>L|H>L|`H>L|0H>L|H>QL|Nu$H$&"BA -KaXA"f B &nNuH>dd2d"d""d""""d LHC dLHLH C@d LHL|H| L|H|PCd~""""C`:LHL|H| L|H|PL|H|L|H|L|H|L|H|L|H|@L|H|pL|H|L|H|CQL|Nua`Np?a a?<LNA``NuNu`aza`aa~aHA-Hhp alpMah=@F?<NNTT@A0r p0Q`pdr ta0.F=@=@ACp,2QAp 2Qa 4a`\`Xpea>pCR2Ad0A2r22aZ"<U0<NBLNurt=@:=A@=B NuHz(` NUvHz ?<&NN\Nu9JgNuWJNu|^|  R^,T:&0D4(*<B$,>2::(   F..26"8@"PQ1!P1P!0PP`0  q#aaa a O: n*NNuNuNupc?a0QNurdAd6Ag,B(dB(dH Ao<atoBAp`NuNu?<OA`d?<IA`Z0<H IaLt Ig Og Ug Ag Rg,afNup`ap`0afHRab>Er$Wgr STD:gr COM:g r LPT:f4FA$_0=@Dk"~CA0< BhaB2"pNu$_AF Ge><QBAFpNuafgzp=` aZgzpa>aRFBd&8*L?a<aSF Be BgQRB`RAdR e <rRF&0xaCձfEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`HQ2.d Aeg>r C 5e&!R 0c 9c0`<R"_`VC0 Ef"_Nuaa/ CFr  g 00VJAgB @ nN @mHJ@j0.4DBUBk0QSAg Q.`S@k 0`0BAF "_Nu.WAkQA 0g`(:HE:a`4JVHHarЁЀ`z@`z8H@0`z(a^*d2d2d"d""d""""d"`""""""""""""""""QjNup"X2g6C/ !UAk$!Q"_Nu @$@JfS a`QNu$Aa`QBNu?aHQA(B?<NNAP DJNu?<ONATNu?</NATNu/?<NA\NuHPHQ0(ika $I _aIUd4Id4Id$Id `$$$$Q _Jf,aXId4Id4Id$Id `$$$$Q @NuSa*IdIdId`Q @Nup ``/ a$I> _aG` VNuag`af`ae `ac` acpNuadpNu/ a$I> _a4Ae4v` VfANuHP0(R@kBa $I _arIUd4Id4Id$Id `$$$$Q @JfNuNup `a4SAfNuag`af`ae `ac` acpNuadpNuaSAkfJANuH HPhkJa $I _a IUd4Id4Id$Id `$$$$Q @JgSL`QNup `a Af` VNuag`af`ae `ac` acpNuadpNua Z4@m4v` Vf@Nu/HP0(X@kHa @ $I _a (IUd4Id4Id$Id `$$$$Q @Jf$Nu $Nup `Pa YAfNuag`af`ae `ac` acpNuadpNua SAkEF$p VfWANu?HP0(T@kHa $I _a ~IUd4Id4Id$Id `$$$$Q @Jf4Nu0XNup `a :UAfQNuag`af`ae `ac` acpNuadpNua SAkXf SAkXfJANupM` pO`p`po`z.`z+@-AH<|`~*@-AH|`HAHBHCHDHEHFHG-HfAD-HH@-@H|p`rAD-@f-H `lr6 @`Bp'rta n2rt6(SC0(S@apaB\papava0paNAXOJkpNu0< aH`0< CF2p`Pp a2`p CFp`A *FM3x?Fc>֞VSGk Vf>FNuTNuHpr,.܆އ܄ޅ܆އ(sh*sx<3h>3x?Fc>֞VSGk66Vf >FLNuTLNu,.܆އ܄ޅ܆އ*sh'xh'x:sh7xh7xNu,.*rh%xh%x܄ޅ܄ޅ*sh'xh'x:sh7xh7xNuC&pHQ/Hy@NA NuC pa:NuHQ/Hy?NA Nu&g4 FgavgJAga2< R@AdSf0Nu0adp Ce`&g4 Fga*JBjaBgPAe CbRa R@Sf0Nu FgRag JBjaAeaJAg RP0 pNu` Fg6agJAga @eaRP Nup NHѨB?<?/?<BNAO JkLLNu&8a\JBjatJAg Df*ڃkd0Nu DfրBH??/?<BNAO LJk!@NuHBHh Hx??<?NAO LJo ѨLNuk:fp`^k: g ѨNuBHPHQ/??<?NAO _JoѨfNuBHPHQS/??<@NAXLfѨNuJkp%`ՠB9L`$H EaAL AerQBL@͉H Ia "H _/ aa _/ ?aAF-H AerQB2"_A&-H A e ` \gQBa9LgaZe -|Lp[`pZaۈajAF"H0.g "Hg \f`A&fS !.gR EF _a`QNuHz?<&NN\ @Nu x NuA@Bh`LA@aV n@!|}Nup#fpNup`p`#Nu?/NT` pNuNHMAp f9kd n2!|z"v ||9"XLv:g 4zg*Ag61 cg Jg ;e, ]b& Te` Db; g fg  bJg fg fg,HC#0j ` Hx Dg;0L|YBj@1BA gbШ dA gd BBdL@Nu wHHKMPPR g,g&y`pBy|XB@etAg1B# `\HCHSGlvg*1B f  f&< # XB@etAf&_`A|CUHgZ"HyNN#z`.>"NN @A C#P B?< NA\#|/a?< NA\AP0N ~$NuA#} } x hg3&z8AC`g#P Nu?<"NNT @ 9z(g!@ HzT?<&NN\3NuP#|UHNuHz ?<&NN\NupACE}drJg" XX\QNuACr g"XQ!ACf NuHx`(Hx`"Hx`Hx`Hx`Hx` Hx`Hx !4VxH A3} Ni LHMO:|1R/9|?< NAO:pdz`b/Ma,_NNu(a*؀.dfajNu.dfNudg"J9kfa4fp`ld`/9dg/9dg/9NupA~-H=@|p4aVS@Nu[2][Programmstop?][Stop|Cont]9HHNu9`D@v`v??NMXJNuJ@k??<NM"UAf J@fH@Nuaj 0fpNu\@`a`]@><CF Ipa<0HNua`]@><CF Ipa Nu?|`?a0R@f|0aHJFkHPa~ _Nupo`HSHP&I>g\SG??<NMXJk Q _t&_Nu&_`Ϊa>JANuag `af`apNuapNuC`C``C` C`C-KJhfJfRRRRRRRHP? @CFH~8:E#P&<2 `b$bYEf`"RAf rЁЀ`&Ѐe "ЀeЁdp`JAkfgRer?DDЁaAaа8$HX :CFE` YEjT"_$P"2trDDd0d d d` QjNu`ZaDa DNu na^ K"ng42 $`gk2&Hg Af deђ$`ebѐXf&nNu AgebѐA``-Kx$ n&$n""Hg8" &Ak cѐ S`g"" k#&Acё2+SAI3 Q&f-I"&nNu-Kx$&ր n&$n""HgR" k&Ac b S` S`g4" k#&AcbrkX`ޑ2+SAI3 Q&f-I"&nNuaT n2L6(n\n^HHHNua4 n20(n\HNua" n20(n^HNua n20(HNu`aLNu؄*؄؅CH`:؅X`$_  IadYHR"H @`ʘ؄*؄؅AHNu؅X`$_ Ia.YHR"H`4<H`@aL Z0De2SCkÐCo@c2`QNua!@ NuAANua1 Nut`t`t`t`t`t `t`t`t`t`a ( Nua Nu@@Nura00HNur`r`r`r`r `r`r`r`r`zQ`z ` zn`z4=A|a-IHQB0a _JNuz"-A=B|a-I` OH*h (h&hxv'****Q6<xGa:RD|@mI`QLxNu0 K4BJ4B fR0<\rgUQ4B0H@g[B`RBDnBDo A`A Ap04Nu OH*h (h&h6<xa:RD|@mGQLxNu0 K4BJ4B fR0<\rgUQAp04Nu OH*h (h&h6<xa:TD|mGQLxNu0 K4BJ4B fRpTrgU|fXRBQAp04Nu`H,o( VSPf o,p'BQA "o,2<><E}GCꃠHk GQ`DFRFGQefbTe R fDA "o0><TB@<< 2I2Id2Q`2Q2QAΑVHHLxNuH o("o,A CE|`G <"<(H,gRBBg$BAm C郢lQ`TBAm C郢lzQ`IBBg2BCmC郠Am Cbl:Q`TBCmC郠Am Cbl Q`"o00<T2<4<& 00l0000& C:< CEBY<< fBY`>& 00o00& C:<CE :EM6:E8EEGG2QBYQLxNu O/ "h$h&h B|n Jg"<g ` |D@`HS@2a Q`HS@2aQ}m&_Nu7}m|mm |}BNu OH$h"h8<BC4<B@Jma$Q`DaQ|}mLNu0g(^CQ 4<CQ8<C|}mBNuRCNu O$h"hBBB@Jma Q`DaQ|}mNu RB|}mBNu o0<r'CP?!QCPr'00QQNu`HMRPJo(g^Jf<2Q?<%NNTA`CBA AF8 gAx#Nu?<%NNT#`~`A@CN><0QNuJy>f6@|AJgI@K M"&zG ><BJg<bNNqNqNqNqNqNqNqNqNqNqNqNq0<NqQNqACE """"""""$$$$$$$$QACE """"""""$$$$$$$$ACEI뵠NqNq """"""""$$$$$$$$MPQ-nFNuJy>f@|AJgI@K M&zG ><BJgNNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqNqACE """"""""$$$$$$$$QNqACE """"""""$$$$$$$$ACEI뵠NqNqNq """"""""$$$$$$$$` OH"h hpc2<vxz4a@4a:4(|a24(~a*tklmKLCD2QAC@QLxNu<NF<NFFBBNu OH$h "h hpArivxz4ap4aj4ad4(za\4(|aT4(~aL4(aD4(a<4(a4CDE62082@:2PKLCD2QACQLxNu<NF<NFFBBNu OH"h hp1rOvxz4a4a4a4a4(xa4(zaz4(|ar4(~aj4(ab4(aZ4(aR4(aJ4(xaB4(za:4(|a24(~a*tklmKLCD2QnACQ`LxNu<NF<NFFBBNu OH&h (h*h6<x04aRD|@mGQLxNu0 K4BJ4B fR0<\g`UQNu OH"h$h&h (hpr $$$$QC><zKM r'p,,,,$QM E`|)5`p2<((((QI65P*85PJCD060@RtTCCnt65P*85PJCD060@tlJ@g244TCCnIJBg:65P*85PJCD?060@fBv0KMaCE2TCCnTO7PQTv?I]O060gz |@oz@24HIABBW?|'Bo8/E<5@*FCo E D 83@<>LNFG@AB4@4`4pDFGFGol ?D>To om:KMa>CTC|mN\O>p/24AIBJB6QEIQPLxNu0 J4BJ4B fR0<\g`UQNu.-,+*)('& % $ # " !)-=AQUeiy} -1@@@@@@@@@@@@@@@@ĩydQ@1$  $1@Qdy0/ o2/ 4BJ4B fR0<\g`UQNubTiny UUUUX0  #&*.046:>AEIMQUY]acehlosx| #%+/37;>BEIMSW[_ceinr IbRgW7"Llj)3UU{@@% T)>bhVauRRȎ#mJXU"BMWUU\QDP)!qRSꊌK5R""QYUUQ%UII>(Q v"&R萬lj)2XR{ UT#ܒ@ 0@T>Small  UUXD %,/37=BFKNU[_diou{ "'-3;AHMQX\bhlrx} 633ؠ3mq8ymٞx=f`00f ;f͌fcm` mmݳmlf60ggsc>}|x<=ǟ<|<}Ͽ<}Ͽ?> 0@c 00a 0a 0   0aapp?0>q0b$M P    %  % * @ K  W  Y  [  ^  a  m  { !   '           <XhUntitled.SPCSave as: [0][ | Try the "Info" button. | ][ &*^%&^#&^%$!! ][0][ |I said, try the "Info" button! | ][ ()*%$%^&*%^!!!! ][0][ | This is your LAST warning! | ][ (Expletive deleted) ][0][ - Spc Thumb - |Thumbnail Image Generator |v1.0 9/22/92 | 1992 Damien M. Jones, | All Rights Reserved ][ It's Shareware... ][0][ Just $10 registers this | mind-numbing program, & | gets you a 25-picture | capable program! ][ Help!! | Okay... ][0][ Spc Thumb takes normal | ST pix and shrinks 'em | down. It puts up to | 25 pix onto a single | screen! ][ I like it... ][0][ Lotsa little pix on | one screen makes for | a great catalog! | Grey or color pix, | with or w/o names. ][ Awesome idea! ][0][ There's more dmj software: | DMJ GIF ~ Boink & Faze | Sound Lab ~ MoireSave | MHz ~ ReNameIt! ~ Spc-3375 ][ All of THAT? ][0][ Can't find 'em? Write: | Damien M. Jones | PSC 8 Box 657 | APO AE 09109 | U.S.A. ][ Thanks a bunch! ]*.SPC*.TNYSave image as...[2][| | That file already exists! ][ Replace | Append | Cancel ]Catalog Image[1][| Not an incomplete | | Spc Thumb pic! ][ Replace ][3][ | 25-picture images are | only available in | registered versions! ][ I'll pay today! ]Color ImageGrey Image[1][ | No pictures | | selected! ][ Oh, right! ][1][| | Erase list? ][ Yes | No ]*.*Select image...[1][| Insert all files | in directory | after this one? ][ Yes | No ][1][ | Item does not | appear in | directory! ][ I knew that! ]SPU|SPC|SPS|NEO|ART|TNY|TN1|TN2|TN3|PI1|PI2|PI3|PC1|PC2|PC3|DOO|[3][ Doing this will cause | an entirely new catalog | image to be created | (no appended image!) ][ Go ahead | Cancel ]Image 0 of Scaling ImageNaming ImageClearing STe ColorPlotting ImageSaving ImageClearing PaletteLoading Image[1][ | Can't find the file: | ! | Insert correct disk. ][ Okay | Cancel ]Converting PaletteCreating 12-bit Image [2][ | Stop creating | | catalog pic? ][ Yes | No ][3][ Egads! An error! | Number , to be | exact! ][ Oh, my! ][1][ | Need another | | K to run! ][ Duh, I knew dat! ][1][| Yo bub, MEDIUM REZ. | | Okay? ][ Well, exCUSE ME! ]    *l6&T  ZJ22 h(<4(&r:  | B  D ^hBp(h ( 6T&NNJA6g|9`pN{NuAB a&MM +ЫЫA .GIJgrѓB(g<fG``GPN$^,,,,ܓ,,Cp$L(QGX /KN(K&YdB`BN/K ,HNRK&`:UgdCDE`$|a^g`|aVg E`&`| aDECI&4fLf&e|`@|a$J*g2P`f``BEg EQJENu&`|a84@HJ*fXF`.a2I|aʺ<m|ag |aEA`*`2P:`aDgt@IP$$Q` f&ed&fg^|avg &CrtfTATAQP`Q|aJgCpQP`QBC&&H&&M``NZ,Nu ``````Y %ATOMIK v3.5 by ALTAIR VMAX/MCS'T`HJnH\NUWTNwhA r)RʥKI@҈eڥ4)ޗ֥0hs)}y2P B8X,P&Խdh%K49 "A, r!lZp{8:; <=Dz>H ?!P"A@(>ϳD'4AHp!!Lh7TN`# ¸^$0tvK HCF HBH‰֔lu p=tr46z{22QɰcD H"`&Ϻ9z-H:XQ^EE8;HPfnJ"'Ap". /P2%()6H H8 >YdŽE<pEV&hМmB˘ TX;&>(Aނ bA@AެDTHиQ4itW @ "A$n .$DmV$hep]Z ( A`D|0yC"F{ެoѴIĒ?2=`BEZ4AC:+HYbG?';gЀ~4 AB^D 5h-;.#eC3$-9F 袘!Po5D!QZތ/FqBbvP'l! bEeiB NEDErB% 0E &E EIvoSvw n9!Ug6&Tl{J<iA$fBkNWـ::S ˀZ, bLNw kmUZ3E`XB~Rd%~V)Zfۮ0vX^16btA\&0ZV:Tς Ypá&% T3~h6^4.APX.HP3@ .PPBk "Q-Ȅ,20PHK#(i4T01a@UpJe\p2Y*$""7F2_];-.ݪ .AîpX9wIj 5T K KN ^5xzXkŒF\@\: ЃQ"ṕ:Zsu5 \s@@k(jQTnk?FA d6*FFՈ{F Q49PGiLs4@*0́itfihv 4P2xu4hѾ}G`&@Ph[A3A `H^J?4NAߜf{n$$ ra;n((]l\x02[QȰ[y6n>ч?2<?PdP=.,I A7U^A &^!bZ$fD8jn3 J"8ӂzy$@tI1?Pdx/.,I A7TUrA (r!v$zD8~#fI?̀*i`W@/((q@$ %F4 K8C|IW*VR"DY Uaa$PI4%!J*8ZPp0g}LY0TG,l+`"I}`@D3û1`3rz)Kv@t 2wZ !IJp@Q<>B`ECCL1tZCP$C9Hr A2d(PbH0 b(@CC*"CD: u 2AdP"CvcHb bH "bj:$C9Hr A2d(PĐ@ !pJTrAפ0:#n@`} ?x4H4( 4 h0 ̠ 2ɓN~$z`a| 9K$D?"Y&ƒF̳$A";K#(e, ,$$A"H9K#*e, m4y'P&gA`H,~|ȔNuGFJN@0nxG' ! C!s ",Y M>X# "  <C(g$5,E"$x_fԁ&D28QU. d!R&}(Q*&-0/}5&908Y0oB&U0j L`_ECcq >L``-,c]Gxh<}f(_ `VD YLA ` _ 'dbB8ՠAq7F#4.d:{s`2T@F]AQ$$C "EAD(G DA)""ANuNq$ $h.:ȒNaqhIG34&CLnF NEij/~|K:L|yFGO<D}E3Ł8>T퓊؋@`*:NsC[ E)@+P AA]n l1AA@uS#(TAjD5&(04h&DGLP( HEPT U,6A 2hdBC:%h@hB蓊,Y$%JC:ҐZ`풂EBs(LP+ *R&B(i` ER+A#&D(PT((*"A-T@Pe{$(X"A ) YIZ4IPGBM"z$(&4@HA 6!O" :R$BAC(%'(H4l9A4 $ :R#Au)cAHIаU]m  L@IC`EFФiHt$A  6IP$U2 6hHA i*i#(XC1M1UR$ R$ 5hHA"!T#h"hHҐ& P"=JE`$E!+А&")Dа"79t!;H˥" "T URPr 22H` šPT mEA(+ )4d*!=2mrKKhh&A-`쓛Ez )0   EZH"   *rVP()@ Q$im6DLKQ$")@I|Q DR(P J@P *DR(U J@)@(_AR( ,KF)@(Q jDRQ 5JF,PT[ eJL)@)2Q ʔDR(SB(/KR( ,KREQ`)@X :) Z DQj)@Z DR-PY@Qg#AEQfE"KR( ,"KR( ,"KR( *@Qd )(kE& u @б@PdD( @QD2$,PY@`Q?.H E@1 ϕ :#a -vuj 4 =Jxg'qYXrAj1?|kx\38^|ЉOU^– z 3Sݙ/} ^uS-CjAV j[-CkAX PZZ ^kA\ ks-CkA^ P-x` P-xa .h\P-xc F{AN JPW-(A قgsA& .%xh ڂ`fh0迥_8t\QʵuVah8֩Tc8tLQʴuFah1vL1v̳la<1a<1vlNf;TiNe; ;fَ ;fَIc04d;&d;؎=Ѹ;(4b;&b;f؎0F(GNr4ah1vL1v׎ah1_;&옯ӵcv&(.Q; ;fkDŽcvlsz$&Pf!h`^MP/+/e7^WSPt PSYܡd;Ԡ,`:PwY% ءdY,`& ءvnAߡjLCYnBP:3Y%(-YYF{AN JPCY%(YY:&|A. JPKY`%f!(h1YA@IR9:MM66KK4E8FLL>4!&0R~Y1͊Ҝ 漜<(E4EEftE0)J3` f4+̀iAf4AA hLC34C1C(J`QhQh pp>@ P1D *aЁ䣄@ J1 J9\u:Bu$ "ԙnP_p\G4D7l`hEhv6C2+.Vq2B@)f=9gApa DNQpT.Ha/AO_p & =_fL% UCaa0N>FTb&H !91rmq7g?t;҉"'6dY]wнXX^fS<l)A:\Ph`7Y1 ew90a;\c^@(Z]h:urB :#Ub݆ 2KkF,NTʉuvG~Y]sB,*cI2FM6Bg$PGNThEt1ONAT Jjof] a9P%"|vu\Lb͐ZgU]|UwBy`S;mV 85&C׎2x4վILHPVzIR5P4;%m hBr]Uҁ`X&̨ $Kz8*uNppÇPMn luƂ޵DclP׌L߄??8aS> Dpa n`e p<r ڿwBmS ֈMbdBq|o ZtzOРB"=ٻ 9L:,9O!PRPK[ziT fKT@R| ((RHD'7**2EL_Jjz(hx&~$o7a HH*!l9!0& M u080@3lg臂(!`˦U##:Z-#^NVf B@qQ լ5ݙ 刱DA$#'$S (#h}DQ6CD:`V샦>Y/6DI([ m ['mT7Ka 2IBʾ\> ‘F`+7 7 =/ބniӖnp ͂01B@7# 49O&BbE a3 aGs )R Ѡ)\]BRA>H _=PIO"EʘYK4*HC!pp%FrrFFBQ(œ!4$KBBCL *(IʹgHF\[Ng2 \Q&MD}um d`\Q+ng2>@.NQ0zQ*ѻtu:*1)` >8{?FI!> IAIPTփ~yk>ⅲ[pmcB%4A<8s pVH08$}T2Iz @uD< $O$%&')*+013456789:vrQNs #; de!~Գ!0a~cm]}*~f˷~!u{$%u'*+ù1  5678w:+;8_@F*xS'r h_֭ZRrР|V0%OX_4A}FrrQoJJ >VWp 0 ˙TA8_?i7_?G'aX>?-YߪРb%NF;pS@#FXPޠ$-J\萸p*:St$OD !b)T! @B.U ^njl ,A$p-.y(@F7 &2N CsrsN8NM7<5Hhd Ҳ#Z+19\.`, a0 }n $R`.d&W@2 (H"@ qw t@v#zHYwD*"#?Pz]!͛k,G^wndPTRI/l>@9ѭ:dP( 5 v1JdѲd3rNA<%$׈*hv%4l PD B; ;u4גjNYҰt ,gu+.aLU !)Ԡ(+&޾-f d֍dtB{(v1 tǙ.=fCk$'eY~XHLIIqnD @q*P2(B٩$% گ 4W~)7?SoL@(4-ipiG: K3hB Dpi G4#\‘.ME}p$KS|8<Z<%f|KKf?9<,!<%񇗖p$!cs ,D{uApconng-c#>cK)6?RAcLZGxϟ>wCHФO#\đk~[$![ğD>PI(|?8`EZ|ƃwby&|Ƒkby ?99cccwH|'9yc>~>x|J@t W0xJA'rqkD-/f.fR.0`f$S`F|Rc#Epcߵ4`D5F{] HU0U0}j! 9Y[띬%UpcLXs (f 4dlYLkXd嬂pU|0VĪ`&`UU0ܔ (F`5`)N*x1]$̮ 0W^)H_T lpx. .] Xb Du I Ⓒ4%qK-[v[Қ-t[PqpIHj[ * %K:H%cXA?+,-E k../-,e]#-,$YX+6\&-, '¢Z빰 EwahaEM|V E Mׅ E ]X-,aB$NPjAol ,@T,Z|P mC^n߄b!r]\-*؂ *F0UbWb9dD\?  ~\Np65wN/C2,$~WD40\5Dt^<8 A⳸:;1V=04>DLzd幭|`x"`%`(`DE㼂G$H Wl0|L#HMO 8QR ,SDOX:}vdg\)'I!0JDH5#(&L rfQP0$ >4uyҁ!_&8pn!MntDGC3B 4At@9L0ɲJHz " q=9/WKN4 ; 8 ~ < 9}C8;=;!"#$&(i*;+<-f0134578:W?OA΢DFGIKLZPNSUVXZ[]_pbdchikmo,wu09ARctu47\W\g ϫ0M:P a}5f{z}+M0R<]p >{R?8QLN }B)f8A00-u~j`M"n$rjNNqDDDh.2ҏnJub bW ^8 c; Au .jtR hpdS^Cetm T #62I4SA50䓃OAo=k. ͢XUz@Ψ23>iRaTbaP f3c kx!@إ EWB R0Ф(A{+]4@~p\30EtY }J7p>Ad2|1PhdۜfN S2X[#nPM]k niUf`l).ѼUg* Z(<0\q}9>P19[0A Ԓ|%2E&҂$D!v2D8LIt( 8t4JA-+RS4]\2©Qɝ' Y>&\H GPyT#ZNDG-,.,[;@?h[04UY"H ӡ?B]0(| J!1 >ތCJp"(J0H m(EswoMH(0?2AI@PmF E 2T (AW$jSjz0)XXB0n"e0|Ǭ P? i @p?3@w3V[9[yQ/P p纳~Ċ~8?GPE %Qq@|Dΰ>x7(ti887( :ޠ   2( dPO A xG2j4h AF2&I459hh9ay-<,E0＀uE@hQmr"Znd"Zԭ&h-E&4-b^HE(BE|}-va("Z@(_Dh[ !m^E"Zd#ŀ0_$D7MZ%DkbD"&Z+kb"'Z (hQ@y-)E-Z*DxZ x+/pZDƋH-Z1D"]P2@lh3݂T-4E-@$C;'Yn`lZ"U.RDHFK4^ RI1)L5) Ns S) O{ S")4(J5ZAL \jNP^1ЂHXPhwDć@|j߀ vpn/Y3"((~ *BG[, F\V!ȸ{𛆷[đ?Ϗ9mVAE5h 9 &()*R$㔔O2>XY}TgWJB%HЁ"lDP(n*Lտ]VARV 8?{d0~_GaXaJ`A*AiP$E!2^ B&9$$pqU-u=0=4hAvg}ƃHD{}j@U3(.INh3,CT-P>JDɳmUAA|ɴBzO Lɒ VP`H+ Do b]j`zݥZ*֭d-HLPPC,)"%NRT ڜ&x+ku> &=-*hvmR:3P'`9,a6 !D%zR=]aA )+?ΔiNB0=nЛ,|(H&7uZm[:Cq&dg|,u(j_]ԗz=r8A}^W>"(XDE5t#eǡ Q]*X!z<qx#Oz$q1 [ p(p};v6k69clDlC>=,`A $ϵ:-=13>p33ۈ;c8=?;4#%   o66=:Z VHNB}nxJppS<#쬞<rg``P@ DPO4nPDRqUDT":>DDt["X"0(<6AWAYˣ~cU/ 3$=,Fҁ 5 dd/1938Q?9 "Il0!zG?vɸ>NAXJ]pI1`ډ4p'(} !$$P@12D +=ph67|.ɮSC-l|׋\bq"t36FT?Yr">A jP~ۃ$#X(ש,CLjɭM/Eq̓68|45(678.123=*lo*Tw[r62#"n3:$!:k<$p;t>AWZ"J)Dڵ[DP&yɵgւ!&!"$ȃ^k#l5<"A'-(Шm"K:J&P`;DLa7Io*AHA$xqyҼ|8pLM 'T<0#d8a !d(dB JDLJMH @ B`@  v )F05J^lQAp-pɊȪKPvٵyJ#㲮҉ո_r>Q$<6Ik4$jbZ (&zbNZ;oZvx,;װ$p@&;0ÁC>~:ZwN`\9$p?0@pwjr N0KxəR)t:Q\N1ˣ:t$X':`26$(pRDŽƂ‚ҹЂRLj"rC؈SU(ЎQdEq5Q(ر0BON1q?ZE92""jam0#̘ 8 G}+9\j 2VQpPv .jP0<.N폒ɸ@a@T`hY_\t28&W-K.Kԃԁ  7@pq( (R^1ZSST: NXS"Srj@N {N (Ap^ܚCw_{$Pf3"Rj.[\jt̡`\#|ȁ #Wlmn NoAqpU- 4aXPd 9FHB(ĵ$ʲ9@9 (/OOV:SjwPP)N# - !@u,ӓ(ŅهS0<9܌zp"؈KRlS*P#1Y&˹dIp)ԔNEI% !I.E(ԛv9}ޤf@Lȅ(H<ȵ )r#7Ɵq}"¹@pr<|2.Y,^uaU#rJ"U@+^9x+g 4R@ӓ*X)rt/ Q>01B"_쎾@渠Ј/A@"t@Tсg4h]F_\QCJ1z0 1.rY(<0\@؀.x`1>>ډ+nUL̼S A@NC}Iarlica tiondoeG?no0$supp?this!grafixode 9 leauselqowormed#rezLy nkeytqoexitR 9̾Ps`KWV(b P\Tm\)#tK#(+p{UXEUay_S#i` 5 daWJ x\`nD~dLDd СbKU%^˄6^Z.6BC}o5dg ,[:rAp"LӘ8K @tAZHWJ=ln>'J1J@j P?0ؑ#C!(~+"؆aۜ_0r,0*H( &"A$,iB@*)e)r!"X"D%fѲ-7 5Q,!+>IY 0<IC0JeqQ nj"‰ Ɉqæ$..{1Rʾ$QzLvcwLbR"~5kEzQd?8@~#SUe R̠ ?$Q<빣sb %4R`/"Z?\`U"W7zN96X(T1 !jhz(#B&-Z$g`BE&|jJ7g*%2`,5即| 0b4ᗛ,‰8*η`a%a@Jas+P8ȫLTul{CБTSdod/(,P>JJq&'jP5𲊷m H<^&P&s#&`Ȧ8 f"*Ss /T!}  Qj@i:(R " *XS \( D*5׆e?_L0^zgB%"Bl\g fg 1Xyn3`3Ob9_tsFoV).9h(p+b<]d6R,Ѕ-BaVX)6T+Bc0.sMa.?PB"C$%*)T*+F &) *TB#%P/*T1 ;UB=G IU(PxU _UBak8mp .AZM bH"p ڜ.G"ɦ!.֎Gɗ]a tpDe{# K]2,股w5P30&2@.X`iW< I:_uiT/XИ #R]PA eDXF(.8Y\F*.T $otAmPjC `tPg*]1Iۯ6luA I+](Qg.`b]p@|3vo' ɾEcU0}LPFM,YI ~S ?Kt$d+\}G &IH27CYCI3t4OPvKIo165:]1@6F$74"8 9f8 10/6<Տ/.IW;jG46 ?5F6وxR7وJ8FMYz$9A#֎|_UP(F'[)^MIKY-VR>\7;c[M}GNpEnE0C8R{|V;|U]>]Sh3`|E{W.JU8|8Cn'\I!ǃ-^ؐ@@aᜂU%HOPHTDSALFNB 0J˳t,H-τ@l$g5l 9 'z'9z'ǟq33b93l;fę999g;9qZ;c8=*Ы;A @Fz! I7 aHw^@p}! |^ko6+<`<*r:4W1)`A'BX> L|R6)܉EC gb+PԠ@ CBa"X@ YhN6A! A., F'5/4CPXx^evqq/|s{p,@|PdXpz@tirJm:oukK7А| .šuNfvn7+>fݺH$ޫ%>L AkÆ̞6nCp6l~~4X62K~|f @?NKf`uv1viޗ;bax87H5ffR)3?)`߽Jz(w~w$$6x h48TT80>:p~p><.fcu&cAf36A8oǐ8  j6%lND?M"_33ijÅ0a9L[BT3$6IX9$p~Qs5\1)"9?}9B:3 K4;hQӢ??D.?O@śdO-ۢA"{ ſ@?@;-6I‚ 1γ3LϏODG?>@K׷? ?9y19qϖ$\D9=|>?9R@& @5@ IX9:tX1L1΀E1αNN@sܢ`M@LB@x ?3@SxhP̫6ɎƟB VCg$=mg&gmysPg' ?9qs:>kz Joϐw0g'wCpglor. o̐3msJC'=l̓Ȱ]ih<Y*g~ԧ@HaO Ocd4aA { $X?/o{D;  Ġ  {˟ K (7>o(?l G>c#Sh?97B u! nnr!) }5ud hg E!Px7 Ȑ a˞Q)֝R?Z)=!ބ;^ XP6 ͗X×vZb@ץ'g88vA;KvK^)sv"Kݼwz>#(x> H`2)nneԾ"/\n v ;骅sȌ~+w߾K+~oq<cW~z!ڧml~+N`*xvQpF`łłŐ%^""&܅#>#{ȚF):ExM-/R^%!t%8{! %%)"n,k *Z \'o@h+@/׫4t8 >+qE+ $$g+ GEq+($? $a<$ '5 `EM`VaG, m\3)|JKWBLƯ\Мvk՜.U\>3U[P)+C?ۭR~[V@?,+%܀ۍ8)r[<xuK6]-]'~J8+0klVr3D`?cA`??`w pʏ#pvw&!$L?'])Uv} ,$ "`UD3Y@dxo=H~Sxn~OjxxtO|x~pt 6! ~CCQBK~@I~,P-"Xx Ȥ %/<0 <EܹTl|8:wDņ8l:ll?l <׌0< L0*`( | TrCBSETUP{ x{&`7v&$ov 9hyvlmK+&thc#5'9Nn ;{ mBD}Ml¾l`'{Q7Iۄ9lq!EȍGfΜg_Xh3xFW҆ps$=g''Y< ؄T*O'0Z 7'pِ;d6ŝP"dT8Clg!Xql@}t'w w[0&R^J@an%sg#ZLrlu!BN6!f"ݫ^6"3y6+q#w5I f$[+lSlÓE(q~vO'h(|ƃ6Fj£P3vW2|+2h/4 "ظ'0SG(yKb~8tͣ= 6&+84]pSCa?͆)y±N2wf529gskRCSaL+p`(2W#`ɡ ||tԭ6>wK(%u(  %c:̎1:%1= y=ᑎ<`n .V4 tKĽKm8@L|Xlh s^Q0= 6Y#F4m -@pcpAr:%ƒ9 mọy}{҄= u=Xl\Q|A3Vꂌ'6Y$9lƥZ1p { 6fY@>hF)Obe~s.(7Yo1q`.P2J|a3Dr.}.HɆy`3,u_QH Qd!@P3,P$pšጶb@.ѸS;B#xT9R$X0A0`2Ц0T|b,q˒4}@Op= SB,[ -r~StKHL VtAEr> LЁ.?G sKsE?@WF$^@s -&Ig#_&d@< f+? >?Lq;[8.h<^MFd# -B6 9 6#4CD@2E+ژfSO{T^of b"&_ՠ: 85t{ mFy yOIԽrק)xٔq p )NP`3CgG!Nx-ee،fl`@#+EE$oz>]бCP!@Vuutr.c @#2, ].;OVڄ1jSÏ

c7ajV_7loD3yYVM g vt6pS~lxlj xsnǛվWgPo3=0s>6 q lf[%_ /Kffd "y934( 1ΐUhf@-@ r6  thMmz]f3 D|6 MĿin[}N[ѭs6OBwlP:gϓ0n30ȦdGppe@AG 8 ")ь soŐпJOc+;"IQ1ل;{l^x$r&uso3NO9΁^nC`b8f3Qpl8nN@8|&m@9nb}yu[D۵Q6 |bg؜.8)\ubI@qMڸְ|[X.LtADNl@w5Ǭܨ! @@ڄ<0fٱhJfNІ6 x 6OslD6(-xFfdG79`NNg) 5ڤzX"7 6"NA +Q`whhcbs|} fVdG6snIE2B+!;F9ژq3mFn1q>mڤq3mF &O }mڴqmF+<=`a;ЦJ4y^XɰC/lۅyXHv M7xC~Lm8S-aW#`r}VLQp0l:I>Qrsl N`.cc}^~eQs36"Os@ԈzV|dQlsle9`Of{pp?@S[Jɰs!r ~@ 5͔7jP a'LdmFwۄ0l>@P0~OD88_P04`s`ts᜜F>S1BC5\_PNF$ AЏ420؂PAkN0({)0B= Eڄ)8ْ͌ Y8(q6p1RB!)S1G ! @6#&~|o`,o/ڔ޶7hi̱0d(tRB h4@lc<m6QcmBy&!Hu<:%rXa_>W9ᅣG<} uUv_GW u}݀-W}}8 u~Wp{+ =Z|k|@vါw8U wpvWУGЋt U_w<|V0~ׄG; <]pW__^]??DzFU\޸ =_WQ=WQW]#pm3UW}WVpk4/ "̼DUx%op@~@8꾿 n@WxBЀwaVxĀs6[ۼUUULU`Vlj@FljI|$aDd?@&|h<< (9kЀP~B ? AN CL.>"  2FZP>@~ x +I$( J/( J$( J$( JP[a/Răw7#.mз{YEVby$cl u2VNP '{a8Y B' 9aU;IDJoX8\&vqφ p0'2L "dxÔɆF(aiD~ BEN(؞s."Hi| Kzmc }Ix &B:r>MI9 B1r,c|,ur/#F{%SQ,8,ԣ0,aNJ9&bg`3>i~J\t( Dl&tm>nw#fn~D?PUX(T.1I1` $bo4Yő"ʥ/ d.}I0񁎅ȲUJ I&Db1G;4#yʺcT2)}ľL b|.&h6IAFQ8pV ftʉ $ǂ'ݒbX0r,jB tA"BX()̗   fC̕gKgbnZraZRcL ܭ  baTT baQ.4*hp0r \&6yd fR1n0GI?1Ĵ82c8E<1qt##'vE29! !6D6CaZdM?6T$NRݔƘJ n(ʆQI%/a!?lIazXe..+tAtYi J>]]Vr燅uM@dݎ8br*#X8bv*#8&qzTGL>b*#~8b*Sa0UhpGD,¿aN2,^.+NzU+m֒rnru"6d8$㰦ԙd 06T4RVR! *)^" o_tvhYXa:,rD!#GVbaڤc|a[% ; >: 01;Ɯ<ȷsX=>>h.I+?F J '-|ĩ[P|4ޤ"3~dB #CLY&Y(-,("VI=N;q_P6ˆ X")] `яQ, A _a4"4"1"LB)*SrpCI W No Iac9,e‘YZsTkSIǚd!rXDB}@vfHL-d].,r^2v]TD_` 0.1D XSad4^0:3D !@T41jLaF*5&BDL 6b¨/vXRA7 dZ眺W+mp.5\}G %Â8I@<2HD|%$\\,,dd[A!0da,jz *x7KtHp R(FBXYM1KɴN}UFD !3žʆ(' ݐvD3 b>/, 4ǬCȳ wx@{wF$YErNd!5dO FanYX >-,yFF  d/nH(Ԥ@DR "^)>ڀ5HҾC 6i_|![1&RlTx?6DDެ߆FH*h-]FL ."-\T 1 H "3@$ڛh4:nF&BiYXb mbD1G̏mU4i^"FI.a1dEگ38+GG<N"\( [ {AFiYюieaz#"Ӳ0Ӳ0 w,ZJΆRݲ0ʢLĈra2!cn[6ݼ״хs\%hu7R$H!ڙwa̤SŊz8#ʩ0UFRe nHP$ Աxuh 0X5hD &#QaaY> c<,U\SGHTgCfD|aaT,}GFb:1>QRE*G539,DB|B^Pq=LkH.zE+Y 6sYk8cll8_z&Dug?0G*/^>:s;s #1Q 2*vc{ȝ*EZWҠL!ײ@ ¯eabN2*xm6,kYD τy:[r¨B2aGi,[i (|,sIwkOPh¤r1Xԅ1PXT2ZL3Q\T4^L5Q6D^7LyA8T0A.9e!C/^3$ = " G*xd]>Iy!{hPHhDPn4~R(pdv^h7Ϝ)'ro q T.2gX/~b?Ӣ|FYDpaFBߨ 솂ߍſtҴq(ZRowPqXd υw\af+ i#J j"~ ,> !k53"BFF\IPIAC -.@H+H '$H&kV$FG!@l4/.~)q:G4<ɰ Z()x(%0QaDy1g44^ϩ/Cه!F+fM8nx䋭;?K_,*3D>b?|$ rGdDʲ)p #\&4U,օ12/ݐ6cZ%XVsoaa۪PR485E\#!O(@*!ҠBvBCbC#xRa8t5쎓BГH!gPC#bl#d"hH,yU,F eC# 5TQD>GPH,IBDHĜ'pDn?T\%JLEF԰H4}m1$ِ c!+;G Fѯwa^L> !F kb PBTXW6Kx%&=?g*&Ol^hje{6.:b ˸7,@D;r>o:9IF >ʾ)#5! "Xzßx/>.*DB 8W>GBE]pDTnFs#@߰/QfF b_Â-Hapda!d`.%6ZPR chHF(Ț.,\k*ќFGgYRi#RiX#4RAs5T)6 "7RAP8*(9҈|;gy8Lkr#BV!Y-zIĐŕtbɊp^4~ތy{X1 'EDהdUQoPILB ^^!h?dHa~FT,i8Âhd:Y*RqdlĸaFm fQJ\|Bcnx!"9#Tłl,V (P2*o.34DvqU0!q?kLY,t[VpPj[Qm*ƕe@ b* eUbFe}vyx1nOI 92[Go05*K'UJ* hK'UJ* QZ3TJT@:T!4D5i]-C&%?me~s2>V2FV2NV2VVȊ^TdiO@b7v4kC:ڌ0O 壏QY"Rb "6T@R4X?E&.֘ %D/KM #m<ڽ]4hX$-!&$tcJ%6Ţɠ1IoQ(G,`AI\d$65lvXGzĦ!E" 1ߚ0YRц9lޣm s됈n@VO1D3d[2H3@bX2Z&Y+Zxd@3MB b+d*MiE D+V|Yqm b `" hV(UXYYYYdv!z v\Y2z̭Ҭm|Ɠ|(kEZb;?q|Lvڙv Y<hܒH =q!m9JeGƂ *2paz@,4|#"֕VlMэGDjhX۽(\le:L:kzϠXy䥪ȵDʠ~qTƨQ KbjiQ=K0X*/6bPyLdR%l%M쐒ѱ(Q/h>CFd^MO zZ臗D%bˀ+ˆ,CE{XDO`YO#rennxG4b~G6ydPi#xEu#ihxz# FF2D J(bi_!=Ȓ++(STIH=Yuh5)6"Xƨ!",u]=ش,c_h>5$GZeuʄw2v)yF#2Ĉ*m` "4LѯU*^Iee#Zu0XZk(P ^ ?e՗U]Cgw1Љe? `yf~A>.c $?i h29gE YC9I;,"cJ+{VR9r #>2ZLˆ@VVVBъa<;䇏0"K*aiqu(@VVVkQȴ0XYy ͗ Pw UF++>Cz$x,?h;9xVR2>J"RH jeeCxm tҞ@*QĞ(+Yy58N /_q#( g \7$Xҩu̓H nT` nl@ nu`n npԒ5O7\p`j@vCή,dn(X4@qL} Xd,>[7uP wn, W!܁ĄДl_L4Lu*Lu0trȟ۬a$A^1o1 J2l ɕ3վ3RҰ4õvx􎲟l+%]Z4tG 4;xwE+q+v9\ԒcWgFoXU7,;V!KO g}UZvC 7@^o; :KNIxu|Y:ɃWl rĴ?'=m{X/R.1/n8d*4`ȍ@! ׆^x{Ǎ~>icȘV֝e*N0GG({ $Њ؍:Պرw"$PVΡy␍Zaj<MPeai+tfmPmJt1k8?nq t]SbSvDy}xInr>; y3uCl*\#wLKG{nƎH0}Pu]V~}6N|+bq*JLEv<^/GΏljY1>21lY0&HP1PairA@%u|xtb %sZMɯ d3%b7DV5ؙ?"ݭMjDmÍuU`mmjZlpxt([7pd'Hx 2\7=0 nFd n; dBm9X&CY׍apQGT^P,Vfޭm$[bAkcc<:V bܺэaXpXU})"T.x2 Δ3F74VbjkRuc6V2FuN3a0ucxtun쀊l(x \)Kt:̖|xPyFf_Bo%+}8dm8\.!_C6:rH-PE(s^sJ28Yp[vRoq܄78ٮ:J.yZ䥩tx& _HC5\7:ҊEV|hp0IƦ!.a@(umٷY(1)pzê7lްV} #s~1]Px nFbc9|]$[nz!5RvtX v#l}pG\v6f7G*2y2hzթHt"+grmBGKpέ(ﯸY(rĥ7L{ōѦ؝Uܕ;ڃ)Z|PK1З:#9|Tx]+> 1nZPl7B"{etwɈ#peknt1QF2m߲l366J 8|[d7TmqAzLrbz,5&x]Jʖ;XӍQgpK4t-غyD%`(V7o5VjSfu/AW -ZnRX/n,(J-n-=nL3|\cA$zޓfnxHalaκ aqC.>d1a"7ojd]'Ub:&ouw^Z[@-J aȦʛ='|琠_ں5 b\U 7U("X"C 7g8QmA#p#Q$nprv#up0qϦnwOsj?tnnv6KB+wft5gneWh? }xύtɜ9bzAXnCiPn$-w#`A"[t$NLN#^lzY$((. 7 @phu*gp#^GHF$vaѴkd֖9EBIt rD.֓*#+]HTY骺Q^1&] 1]1] 2]1(] 2]1] 3]1*] 3]1]i7D,t 14Cr_̢c9Gޣ֎C{HPVfbQHߩ#}ijkx׊d 7RA"rvr g6M:ZGҭp ϏXd#|#FtC!n*Pk#5a,6mT67B|8E7J Gt,9+oKBԭ]jk f XyOa/HX]h2^ ^Qz7Pʜ-kr2oWY媟ōu[_+bxeF׍T+Ia&ōcEͪ&1krEņo65k}íFe3HyM+nw~Z?#vZaeF8M˜o25#"+J]aЊV1h) cL D Sdh̚u:$skxa)w^GlHqEȉscM4\#V79 bHT/xz@F4QL  IY!ࢵq_gID]K{od}Egۀ@uoè4G*ްpd8j?d*Buc{g7±03=cp <1 d2hc_q73F`4FWF<$7$u 2=UiZbYϯ iŋvoF< ֱS1LT7Ω(቉4D_ziz2TѲ HhG!7eNndJ9q|jla =y#NխF*l]>V? cX8x$t#\"+FȮPĞ9? XĆDih|H5iN ݈ *q@7bȈqds?goC:RǾwqsCo_o. 7xlwfA_ +p8Wa2!qi_b/< 51le!t1Rs܍Vq# zn"$^DpK5(NutD"GbTFdA[=`~u* t,f忧&vDR1϶"t+hqDublacœ 1 Q6+9Cq8.rzayQxE-7ZDg9;vx*eln w8 rCa`ה/^SF`m kiѐ:~b' dM|l 9bqEf k1(">ү1rng&wBhf|V#6c!{Z86ŃH׉kMKBSceFma$&bm 4 )Z[YJHjI2|_F_frZkⳍpl'gYy)Pp27 VӅc6@evQYovE0r ry sDS޻=Uc "^A:WDsm7"غ J(N8YQ~H+FgFe奍 6ny !]#t! lt4d.v< $rYW֍"odu8t 7DzlK rZex!i2>iV`*E b 9nBV z6@̍3FZϯhn4h#+"_|vue D9 T"o$4¯sf}VxC$nNeyl ="zay$x2!f"!BzlHKaesDhs p rd *_C(smtqa'!g>keuFr2!cu+A"8ncHv%samc#p_pe\bu fxu_rzeHq\ t_Pt_tCei+&rH,Ȅsa}x7\K:BrB]4\bQ`HdAI,".aF @C^XLJTLpm[:B8Gk$Zhb١dt2^͐}eH @.(_PЂEXN|K,|q[ Ń L6 d!Գ .BӅz .6"I C -[2Qh-lP5CI"!@b@B9fFSh6`İL 9ZG1F0G|wpo48p׫( KC.Qܓ" I..<4 sex2C1 (RZ ua1\FrVB ,\X" 0Z~⫅ j c7),d *#ŸXfS$2/ݤ"Pf"xed -"*t7p|p )&F"#RͱH+ DS } !BQYF-N", /ahpVqҘp.xðw= KOlݡ/d,Gd(I$0\-PgtG0K᧍WPQ(B 4 ZHdH" c%*"eaDj$!GHz"a D8`co|h" ! 6 F(x, ]/6H8q%#EUBPaec ,>01".L  "~X~"L  C( C *********************************************** Program ten zostal sprowadzony do Polski przez Krata Soft z Krakowa w sierpniu 1993. Jesli chcesz miec najnowsze oprogramowanie na Atari ST,STE,TT,FALCON 030 to przyjdz do nas.Stoimy na gieldzie Elbud ul.Wadowicka 12 w Krakowie w kazda sobote i niedziele. Czesc! Krata Soft ############################################### | * * | | | \ | | \ | \ /\ / * * \_____/ | \ \______ | \ \______ \/ \/ * * * * If you want to order the latest GAME- PROFESSIONAL- or * * MIDI software, or the latest SUPER NINTENDO games, or a * * Copier for the SNES then just do the following thing... * * * * Send a 3" disk to the following address, and write * * down your name and address, you will get the latest * * lists and i *********************************************** Program ten zostal sprowadzony do Polski przez Krata Soft z Krakowa w sierpniu 1993. Jesli chcesz miec najnowsze oprogramowanie na Atari ST,STE,TT,FALCON 030 to przyjdz do nas.Stoimy na gieldzie Elbud ul.Wadowicka 12 w Krakowie w kazda sobote i niedziele. Czesc! Krata Soft ############################################### The Netherlands * * * ************************************************************** *********************************************** Program ten zostal sprowadzony do Polski przez Krata Soft z Krakowa w sierpniu 1993. Jesli chcesz miec najnowsze oprogramowanie na Atari ST,STE,TT,FALCON 030 to przyjdz do nas.Stoimy na gieldzie Elbud ul.Wadowicka 12 w Krakowie w kazda sobote i niedziele. Czesc! Krata Soft ############################################### | * * | | | \ | | \ | \ /\ / * * \_____/ | \ \______ | \ \______ \/ \/ * * * * If you want to order the latest GAME- PROFESSIONAL- or * * MIDI software, or the latest SUPER NINTENDO games, or a * * Copier for the SNES then just do the following thing... * * * * Send a 3" disk to the following address, and write * * down your name and address, you will get the latest * * lists and i *********************************************** Program ten zostal sprowadzony do Polski przez Krata Soft z Krakowa w sierpniu 1993. Jesli chcesz miec najnowsze oprogramowanie na Atari ST,STE,TT,FALCON 030 to przyjdz do nas.Stoimy na gieldzie Elbud ul.Wadowicka 12 w Krakowie w kazda sobote i niedziele. Czesc! Krata Soft ############################################### The Netherlands * * * ************************************************************** *********************************************** Program ten zostal sprowadzony do Polski przez Krata Soft z Krakowa w sierpniu 1993. Jesli chcesz miec najnowsze oprogramowanie na Atari ST,STE,TT,FALCON 030 to przyjdz do nas.Stoimy na gieldzie Elbud ul.Wadowicka 12 w Krakowie w kazda sobote i niedziele. Czesc! Krata Soft ############################################### | * * | | | \ | | \ | \ /\ / * * \_____/ | \ \______ | \ \______ \/ \/ * * * * If you want to order the latest GAME- PROFESSIONAL- or * * MIDI software, or the latest SUPER NINTENDO games, or a * * Copier for the SNES then just do the following thing... * * * * Send a 3" disk to the following address, and write * * down your name and address, you will get the latest * * lists and i *********************************************** Program ten zostal sprowadzony do Polski przez Krata Soft z Krakowa w sierpniu 1993. Jesli chcesz miec najnowsze oprogramowanie na Atari ST,STE,TT,FALCON 030 to przyjdz do nas.Stoimy na gieldzie Elbud ul.Wadowicka 12 w Krakowie w kazda sobote i niedziele. Czesc! Krata Soft ############################################### The Netherlands * * * ************************************************************** *********************************************** Program ten zostal sprowadzony do Polski przez Krata Soft z Krakowa w sierpniu 1993. Jesli chcesz miec najnowsze oprogramowanie na Atari ST,STE,TT,FALCON 030 to przyjdz do nas.Stoimy na gieldzie Elbud ul.Wadowicka 12 w Krakowie w kazda sobote i niedziele. Czesc! Krata Soft ###############################################