NNNNNN3p NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNO`  @`! #@%`')+-/1 3@5`79;=?A OE`GIKMOQ S@U`Y]_a c@e`gikmoq su`wy{} @` @ ` @ ` @ ` ɠ O ٠  @` @`!A   !Aa!!#A%a')O`  @`! #@%`')+-/1 3@5`79;=?A OE`GIKMOQ S@U`Y]_a c@e`gikmoq su`wy{} @` @ ` @ ` @ ` ɠ O ٠  @` @`!A   !Aa!!#A%a')ST_PD A57DISKMECH #lHDSCAN 8lZMUSHROOM QlPRIV_EYE [lSUPRBOOT hlSYSPROOF xlPRIV_EYEACCl,. l#.. l#DISKMECHPRG %l$DISKMECHRSC /lCNREAD ME 4lWm `LoZ*O*m#@ - ЭЭм"ҍ¼.A// Bg?<JNA y@"h#DE?/ NN"/0<NBNu o AdpNu#DBNuNV0/"/ NBDd0< A"NB0<NBN^Nu o2/0/ HSoQBNu o0/JfBNuf SNuNVBnN`BBgNT.\N=@ y\ y \f\=y\=y\>?./9/9N>N>N`">?./9N3pJypf*./N¨X.?<NBT09p`3p`3p```|g|g`N^NuNV-|N n=PNNZ.z/<a/</<NR 3\N=F. NBWN nf >NBBgNT>N>N>NN:N|33~0.N^NuNV. ?. ?.NXN^NuNVa3^aJypgNslNuDa>NNN^NuNVJy\fB?<NT3\N^NuNVJy\gB?<NTBy\N^NuNV>N-@N^NuNV=n=n 0.n =@0. n=@.Q?<?.N.XN^NuNV.?.BgNX.Q/]/Y/U/.Nd>?.?.?.?<?<?< ?< BgN>?.?.?.?<?<?< ?< ?<N>?.?.?.?<Bg/.NBW/.NX=@>?./.N\>?.?.?.?<?<?< ?< ?<N>?.?.?.?<?<?< ?< ?<N0.N^NuNV.?.BgNX.Q/]/Y/U/.Nd>?.?.?.?<?<?< ?< BgN>?.?.?.?<?<?< ?< ?<N>?.?.?.?<Bg/.N> /.NX=@>?./.N\>?.?.?.?<?<?< ?< ?<N>?.?.?.?<?<?< ?< ?<N0.N^NuNV.?.BgNX0. Ю @-h n-P .N^NuNV.Y?.BgNX0. Ю @-h .N^NuNV.Y?.BgNX0. Ю @-h nBN^NuNV.?.BgNX0. Ю @-h n-P nBN^NuNV>?. ?.aX.]/Y/U?. N& ngBW?. ?.azXN^NuNV nf>0. 2.XAAHH@J@fSn 0. 2.VAAH2. nAAS@`" nf0. 2.|8A2. nAAN^NuNVB@0.H=@B@0.2.AAH=@B@0.2.AA2.AA=@ nb$ |2nP |2nPB. nb< ne4 |2nP |2nP |2nPB..Y/. N԰XN^NuNVBn`0n"n0H"n HAgRn.NҰnl0.N^NuNV.?.BgNX.Y?.BgNX0. Ю @1n .Q/]?. /.N 0. Ю @=h0. Ю @=h>?.?.?.?<Bg/.NN^NuNV.?.BgNX0. Ю @=h 0.N^NuNV.?<BgNXBW/.NX.BgBgNX.BgBgNX.Q/]/Y/U/.Nd ypf=|`Bnp/Hpn"n3@>?.p/Hp?0.W?.?<?<?< ?< BgN>XW?.TWp,Hp?0.W?.SW?<Bg/.N.?<BgNX.?<BgNX.Q/]/Y/U/.Nd0<`Hp"n3@>?.0<`Hp??.?<?<?< ?< BgN>TW?.TW0<_Hp??.SW?<Bg/.NN^NuNV=|.?<BgNX>?<ajT-@./.N԰X.?<BgNXBW/.NX n1|b nBhz.?<BgNX.Q/]/Y/U/.Nd>?.?.?.?<?<?< ?< BgN>?.?.?.?<Bg/.NBW/.NX=@>?./.N\0.`8Bn`F=|`<=|`2=|`(=|`=|`=|` =|`=|`=| `=| `=| `=| `=| `=|`=|`=|`=|`=|`=|`=|`~=|`t=|`j=|``=|`V=|`L=|`B=|`8=|`.=|`$=|`=|`=| `=|!`=|"`=|#`=|$`=|%`=|&`=|'`=|(`=|)`=|*`=|+`=|,`=|-`=|.`z=|/`p=|0`f=|1`\=|2`R=|3`H=|4`>=|5`4=|6`*=|7` =|8`=|9` =|:`=|;`=|<`=|=`=|>`=|?`=|@`=|A`=|B`=|C`=|D`=|E`=|F`=|G`=|H`v=|I`l=|J`b=|K`Z=|L`R=|M`J=|N`B=|O`:=|P`2=|Q`*=|R`"=|S```W@|Sb@0@, PN n hbfBy\`3\.?<BgNX>/.NX>?.?.?.?<?<?< ?< ?<N0.N^NuNV.]/Y/Q?9\N& Bn.?<BgNX>?.?<?</.NL =@ ng0.`>\?.?<aX=|`>\?.?<aX=|`>\?.?<aX=|`>\?.?<aX=|`>\?.?<aX=|`p>\?.?<ajX=|`R>\?.?<aNX=|`6>\?.?<a2X=|```U@|b@0@| PN0.N^NuNV.]/Y/Q?9\N& Bn.BgBgNX>?.?<?</.NL =@ ng>BgaT=@ ng@Jnf80.`>BgaT` >?<aT`>?<aT`>?<aT`>?<aT`>?<aT`>?<avT`>?<adT`>?<aRT`>?< a@T`~>?< a.T`l>?< aT`Z>?< a T`J>?< aT`:>?<aT`*>?<aT```U@|b@0@ PNN^NuNVBW?<aT>?<aT>?<aT>?<aT>?<aT>?<avT>?<ahT>?< aZT>?< aNT> ?< aBT> ?< a6T> ?< a*T> ?<aT> ?<aT>?<aTN^NuNV.BgBgNX>BgavT-@0n  hf<0n =h4>/</.N¨P0.Ю @Bh `&./.N¨X0.Ю @1| N^NuNVByByByByByByBn`40nBh0nBh0nBhRn noN^NuNV y~gF yf:B.a*Bn`> ?. 0.W?9\NvX.:0.@?0.WaT.:/<NTXBn`0n2.AHҼ~0H|=@.:?.a~T.:/<NTX0n2.AHҼ~0H|=@ nc& N2n2.AHҼ~4.H҂"AQ` N2n| Rn noT./<NTXRn noa N^NuNV0y~Jhf y~gJyfgBn`<09~r `H29fAHЁ2.HЁм @"|~4nQRn nmJyfoSyfBn`< |~2n29~t aH49fBH҂4.H҂Ҽ"ARn nm>?909f@?aXN^NuNV0y~B@0(S@=@ nf=| no=|0y~Jhf y~g09fngBn`<09~r `H29fAHЁ2.HЁм @"|~4nQRn nm09fnlRyfBn`< |~2n29~t aH49fBH҂4.H҂Ҽ"ARn nm>?909f@?aXN^NuNVBn`PBn`>0.r `Hм62.HЁ @2.t aHҼ4.H҂"AiRn nmRn nmN^NuNV30n hf Bya y~gJBn`<09~r `H29fAHЁ2.HЁм @"|~4nQRn nm ygBW?9BgaXByf3 3~>ah>?9BgaXBn`0 |~2n29~t aHҼ4.H҂"ARn nm>?9Bga XN^NuNV0y~ hf=|0y~ hf=|0y~ hf=|0y~ hc=|0y~=h0y~Jhf./N¨X`./N¨X0y~Jhf./N¨X`. /N¨X./?.?.0y~"|?040y~"|?0Z?9n/< /<\N¨ nf BWBg/<\?<?9/9n/</N¨PBWBg/?<?9=@ nfNax|faV nf=|Jngn>aN^NuNV.]/Y/Q?9\N& Bn.?<BgNX>?.?<?</.NL =@ ngP0.`<>\?.?<aX=|`.>\?.?<aX=|```|g|g`0.N^NuNVJnf.?<BgNXBW/.NX.?<BgNX.?<BgNX.Q/]/Y/U/.Nd0<VHp"n3@>?.0<VHp??.?<?<?< ?< BgN>TW?.TW0<UHp??.SW?<Bg/.N nf.?<BgNX.Q/]/Y/U/.Nd>?.0<VHp??.?<?<?< ?< ?<N.?<BgNX>/.NX>\?9V?9v?9t?9z?9a09\H?09vW09VH?09tWN>nNR>nNUNaJN^NuNV^=|a>?.?9\NvXRn.NT>?.?9\NvXRn.NT=y no=|Bn`Bn0n hf=|0n hf=|0n hf=|0n hc=|0nJhf.0/rN¨X`.?.?9\NvXRn./<NTXRn0.nmxa@N^NuNV=|aBn` N2n| Rn nmB.NLNLNL./N¨X.NK.NKNL./N¨X.NK.NKNLBn`XBn0n hf=|0n hf=|0n hf=|0nJhf./rN¨X`./rN¨X0nJhf./N¨X`./N¨X.r/0n?(?.0n"|?040n"|?0Z/< /N¨.NK.NKNLRnB@09ذnbNLNLNLNLNLNLaN^NuNVa=@Jnf3<> N=@ nf 3<` Nax|f3NR>NU>anRn0.y=oN yaN^NuNV.U/N¨XaLN:.?9aWW?9T?9\N\.?9aWW?9T?9\N\N` y?<NtT-@>?<NtT-@./.N¨X./.N¨X n1| nBh nBh nBh>?<N&T=@ n fB n hfBy\`3\.NN3[.NN3=Bn`=|0.N^NuNV.?<BgNX.?<BgNX.Q/]/Y/U/.NdJnf.?<BgNXBW/.NX>?.?.?.?<?<?< ?< BgN>?.?.?.?<?<?< ?< ?<N>?.?.?.?<Bg/.N`>?.?.?.?<?<?< ?< ?<N>?.?.?.?<?<?< ?< ?<N.?<BgNX>/.NX n0(("n2)AR@3T n0(*"n2)AR@3r n0(,yT3a n0(.yrU@3aN^NuNVB=yTpHpyr=@=ya=ya=yT=yr=ya=yaN:>/</</?<?9\NnN`N^NuNVBn` N2nB(Rn ncm>/</N¨PJyg|M`|.Jyg|C`|.Jyg|G`|.Jyg|D`|.Jyg|L`|.Jyg|N`|.=| Bn`>0n"|>4/< 2.HЁ/N¨P0.X@=@RnB@09ذnd0.Y@=@ N2nB( N2nB(.aN^NuNVBy<3R3 \3^By=By3zBy[3O=By?.atT=@Jnf>?.atT=@0.y=f( yaN^NuNVBn`BnJyRf|A`|BB..?.RW/</N¨ 3d09a=@JnfRn0.n oJnf`=|Rn0.yzm.0.N^NuNVxBnBy|3dJya |Bn`00n2.>4.BH҂Ҽ"A1iRn nma2>a0>a=@JnfRn0.n o`=|0.N^NuNV0.>м @00.>м @1y0.>м @1y0.>м @1y0.>м @1y0.>м @1y 0.>м @1y Bn`0.>2.AHЁм @2n1i0.>2.AHЁм @2n1i440.>2.AHЁм @2n1iZZ0.>2.AHЁм @2n1i0.>2.AHЁм @2n1i0.>2.AHЁм @2n1iRn nmN^NuNV.Y?<BgNX>?<NtT-@>?<NtT-@>?<NtT-@>z/</.N¨P>[/</.N¨P>=/</.N¨P nBh nBh nBh nBh* nBhZ nBhr nBh: nBhR n1| n1|* n1|Z=|Bn>?<N&T=@ nfBn.NN3z.NN3[.NN3= n hZfBy<`3< n hfBy<`3< n hfByR`3R yR[n yR=o=|>N y^f y?.aTTBn`0n=P0.>2.AHЁм @1y|>|Ni-@0.>2.AHЁм @ hfRy|`09|T@3|BnBnBn0.>м @Jhg >N0.>2.AHЁм @Jhf>\0.>2.AHЁм @?(0.>2.AHЁ @"|?0Z0.>2.AHЁ @"|?04?.?92.AHЁм @1|0.>м @1|BnJngNBWN=@ nf=| nfBn nf=| ngJnf"Rn0.> @"|B@00nb0.N^NuNVBn>a>\?.?9R/9NP=@>?.a TBn`0n=P0.>2.AHЁм @=h>Ni-@BnBn0.>2.AHЁм @Jhf0.>2.AHЁм @Jhf0.>м @Jhg >N>\0.>2.AHЁм @?(0.>2.AHЁ @"|?0Z0.>2.AHЁ @"|?04?.?9R/.Nh=@ nfBn nf.N> N3d ydf=|`=|JngT ngL ngDN>N3d ydf=| ydfBn ydf=| ngrJnf"Rn0.> @"|B@00nb 0.N^NuNVBnBn`H=n` 0n00.n =@Rn0.> @"|B@00nbRn0.n mN^NuNVByN?<?<NT>N0.>2.AHЁ @"|>ZN0.>2.AHЁм @>N0.>2.AHЁ @"|>4N0.>2.AHЁм @>N>N>N?<NTBW?< NT>?<NT>N0.>2.AHЁм @Jhf0.>2.AHЁм @ hfBW?<NT0.>2.AHЁм @ hfBW?<NT0.>2.AHЁм @ hfBW?<NT0.>2.AHЁм @Jhf >N`>N>N>N?<(NTRn0.> @"|B@00nbN^NuNVBnBn` |_2nBRn nm>\?.?9\?.?9n?9`?9`?9`?<NP3<.b/N¨XBWBg/?<?9n?9`?9`?9`?9z?9a09nH?09`W09`H?09`WN>n?9`?9`?9`?9Nf 3`333.?<BgNXBW/.NXBWa Nh33~By>a>n/<k/N¨PBWBg/?<?9?.?.NXBWBgNT>\N|>Ng=|0.S@=@0.|=@BW?9\NT yfN>\N>?.?.?.?.aP>\NBW?9\NT=n=n.Q//Q///BgBg/QBgBgBgBgBgBgBgBgBgBg?<?<?<?<N8=@ nfN=@0.`.?<?<NX.?<NBT3d ydf a =|`=|`an`xa `p.?<?<NX.?<NBT3d ydfa`0a `*NF`"N8```S@|b@0@ PNNT0.nm 0.no=n=nBn yf&>\N|>?.?.?.?.aP nf yf0.HR@=@0.HR@=@0.\@nn&0.|4nm0.2.ZAAHH@J@f0.|8nn.0.|Gnm =n=|0.|8nn=|0.ذnm0.|nm=n>?.?.?.?.NP=@ nf0.||g yf nHfSn nPfRn nf nKf"0.2.VAAHH@J@fUn`Sn nMf"0.2.XAAHH@J@fTn`Rn0.||/o0.||:m<0.||@o0.||Gm 0.||`o:0.||gl*0.||`o0.||=@Bn0.2.XAAHH@J@f=|0n"|~0H|=@.:?.N T0."|:4n |~2n/a _>?.?.?.?.a P=n0.2.XAAHH@J@fSn0.2.VAAHn|7=@>?.?.?.?<a >P0.2.XAAHH@J@fTn`Rn0.\@no0.|4=@Sn0.|5nl0.\@=@Rn nf nKfSn nMfRn0.|| m0.||~n0.|"|~4n>?.?.?.?.a rP0n"|~0H|=@.:?.N T0.2.|8A>0.W\W?.?9\NvX.:/<wNTXRn0.|8no0.|G=@Sn0.|Gnl0.|8=@Rn0.ܰnl 0.|=@0.|nl=n>?.?.?.?.NP=@0.||fT ygBW?9BgN X.BgBgNX.////.Nd>?.?</?.?<?<?< ?< ?<N.?<BgNX.////.Nd>?.?<`?.?<?<?< ?< ?<N.?<BgNX>/.NX>\?9V?9v?9t?9z?9a09\H?09vW09VH?09tWN>N=@Jng N2n(fH>?<NTRn N2nJ(ffN^NuNV>N=@Jng> ?<NT>N=@Jng> ?<NTN^NuNVBn y~gBn`<09~r `H29fAHЁ2.HЁм @"|~4nQRn nma =@ nf>N.?< ?<NX.?<NBT=@ nfBn ngLJngFN.?<?<NX.?<NBT=@ ng nfBnJnfXNN^NuNV.N 3nN: nf>n/</N¨PBWBg/?<?9nav>na=@NNN`N^NuNV y~gBn`B09~r `Hм2.HЁ @29~t aHҼ64.H҂"AiRn nmBn`< |~2n29~t aH49fBH҂4.H҂Ҽ"ARn nm>?909f@?NXN^NuNV y~g>?<N&T=@ nf>?<NtT-@./<:N԰Xa0=@B@0.|@Bn`&09~r `Hм2.HЁ @nRn nmBn`< |~2n29~t aH49fBH҂4.H҂Ҽ"ARn nmN:>?909f@?NXN`N^NuNV ygBW?9BgN X>aNhN:By33~Byf3~N N`>?9BgNXN^NuNVBn nfr0. 2.| AHH@J@f=|.Q0n"|~0H?WN T> ?. ?9\NvX0n6H>/<NTX nfd> ?. ?9\NvX0n"|~0H|=@ n d.NT` 0n"|~0H>/<NTXN^NuNV.:NҰ|fR:JB9K.J/<N X@=@;JB9K.J/<N Xn.:NҰ|f|:JB9K.J/<N X@=@;JB9K.J/<N X@n<JB9K.J/<N Xn0.N^NuNVBnBn` |_2nBRn nm>\?.Bg/9NrP=@>\?.Bg/9N.P3Bn`0n1|0.0@"|_0H|2n3@Z0.0@"|_0H|2n3@0.0@"|_0H|2n3@40.0@"|_0H|2n3@0n"|B@00Zng30n hg3RnRn0.nma3JngazN^NuNVBn=yBn`L0.R@=@`20n"|B@0042nBA2)4Af=|Rn0.nmRn0.nm0.N^NuNVBWa=@B@09S@=@Bn`0n hf=|0n hf=|0n hf=|>W aF=@0.nnl0n1|3=nRn0.nmhN^NuNVBn=n`^0n"|a0H||f@0n"|a0H||f&0n"|a0H||f =n=|:Rn n'm0.N^NuNVBn>aBn`0n=P0.r `Hмм-@Jyg >N0nJhfP>\0n?(0n"|?0Z0n"|?04?.Bg/.N=@ nf0n1|3BnRnB@09ذnb*0.N^NuNVBnBn`:=n` 0n00.n=@RnB@09ذnbRn0.nmN^NuNVBn>aJyg>\?9nBg/9N.PBn`TBnBn0n=P0.r `Hмм-@0nJhfv0nJhfdJyg >N>\0n?(0n"|?0Z0n"|?04?9nBg/.Nh=@ nf*N> N=@ nf=|`=|JngL ngD ngN=@ nf=| nfBn nf=| ngJnmRnB@09ذnb0.N^NuNVBnBnBy~3ByfBWaBWa>n/</N¨PBWBg/?<?9?<BgaXN`.]/Q/]//Y/UBgBg/]BgBgBgBgBgBgBgBgBgBg?<?<?<?<N8=@ nfa.=@>a nf=|Jng~>aN^NuNV.]/Y/Q?9\N& Bn.?<BgNX>?.?<?</.NL =@ ng0.`>\?.?<NXX=|`>\?.?<NXX=|`>\?.?<NXX=|`>\?.?<NXX=|`v>\?.?<NXX=|`V>\?.?<NXX=|`8>\?.?<NXX=|```U@|b@0@* PN0.N^NuNVBn` |a2nBRn n>m.N 3nN:>\?9nBg/9N.PNN`N^NuNVJnf.?<BgNXBW/.NX.?<BgNX.?<BgNX.Q/]/Y/U/.Nd0<VHp"n3@>?.0<VHp??.?<?<?< ?< BgN>TW?.TW0<UHp??.SW?<Bg/.N nf.?<BgNX.Q/]/Y/U/.Nd>?.0<VHp??.?<?<?< ?< ?<N.?<BgNX>/.NX>\?9V?9v?9t?9z?9a09\H?09vW09VH?09tWN>a(J@gah`0a`*a,`&a` aZ```W@|b@0@J PNN^NuNV yfgV3fBn`( |~2n29fAnHҼa"ARn nm>?<09f@?aPXN^NuNVJyfgTByfBn`( |~2n29fAnHҼa"ARn nm>?<09f@?aXN^NuNVJyfg\JyfoSyfBn`( |~2n29fAnHҼa"ARn nm>?<09f@?aXN^NuNV=|09fng^09fnlRyfBn`( |~2n29fAnHҼa"ARn nm>?<09f@?aXN^NuNVB.N:Bn`> ?. 0.W?9\NvX0.@n=@>/<NTXBn`0n2.AHҼ~0H|=@.:?.N T.:/<NTX0n2.AHҼ~0H|=@ nc& N2n2.AHҼ~4.H҂"AQ` N2n| Rn noR./<NTXRn noN`N^NuNV.]?<?<NX.?<NBT=@ nf=|`Bn0.N^NuNV4Bn` N2n| Rn nmB.a*BWN>n/</:N¨P.:aaaBn`X| B..ar0.@29fAA=@>/<2/N¨P.a8Bn` N2n| Rn noBn`0n2.A49fBBHҼa0H|=@.:?.N T.:/<:/N¨P.a0.@29fAAHмa2.HЁ @P8 . 8o .z8n N2nn8` N2n| Rn non/<?/:N¨P.:aa&a"Bn`:| B..a0.@=@>/<y/N¨P.arBn` N2n| Rn noBn`0n2.AHҼa0H|=@.:?.N T.:/</N¨P.a0.@Hмa2.HЁ @P8 . 8o .z8n N2nn8` N2n| Rn noPB..aaRn noN^NuNV.Y?<BgNX>?<NtT-@>?<NtT-@>?<NtT-@>z/</.N¨P>[/</.N¨P>=/</.N¨P nBh nBh nBhB nBhZ nBh nBh nBh nBh2 nBhb nBhz nBh nBh nBh nBh Jy?<N&T=@ nfRBn.NN3z.NN3[.NN3= n hfBy<`3< n hfBy<`3< n hBfByR`3R n hf 3 \`3 \ n hfBy^`3^ n hbfBy=`3= yR[n yR=o=|>N y \f y=f=|>N y^f y?.a(T=@Jnf>?.a T=@0.y=f( ya N^NuNV0.Hr -@ 9=Ю-@ .N^NuNV./N¨X.?<NBTN^NuNVBnBn`<=n`$0.R@2n20.n=@Rn0.y\mRn0.nmN^NuNV0.`>?<NtT-@> /</.N¨PBW?<?<N X`>?<NtT-@> /</.N¨PBW?<?<N X`Z>?<NtT-@> /</.N¨PBW?<?<N X```|g:|gr|g`N^NuNVBn`BnJyRf|A`|BB..?.RW/< /N¨ 3d09RW?<atT=n`$>?<a^T>a=@JnfRn0.n oJnf`=|Rn0.yzm0.N^NuNVzBnBy|3dJy[?<aTBW?<aT>?<aT=n`">?<aT>a(=@JnfRn0.n o`=|0.N^NuNV>?9aBn`BnBn>|a-@>\?<?.0n"|?0?.?9?9RNT>a40n[=PBnBn y^fFJy=f>\?.?9RaX=@ y=f>\?.?9RaX=@ nf*N> N=@ nf=|`=|JngD ngN=@ nf=| nfBn nf=| ng$JnfBn`BnBn>a-@>\?<?.0n"|?0?.?9R/.Nh=@ nf*N> N=@ nf=|`=|JngD ngN=@ nf=| nfBn nf=| ng,JnfRnRn0.y\m0.N^NuNVBy<>H?<:NT=|`BW?< NT>?<NT>N> N> N>N n l >N` >N>N>N?<NTBW?< NT>?<NT>N n l>?<NT`>?<NT>?<NT>N?<#NTRn n oBW?<yNT> ?. ?./9NP=@0.N^NuNVBy<>N?<?<NT>N> N> N>N>N>N>N?<NTBW?< NT>?<NT>N>?<NT>?<NT>N?<(NTRn0.y\o.BW?<yNT> ?. ?./9NP=@0.N^NuNV.?<HNT-@ .м-@.?<HNT#=/</.NRP3=By|N^NuNVJnfJyf.?<BgNXBW/.NX.?<BgNX.Q/]/Y/U/.Nd>?.?.?.?<?<?< ?< BgN>?.?.?.?<Bg/.N3 nf yf.?<BgNX.Q/]/Y/U/.Nd>?.?.?.?<?<?< ?< ?<N.?<BgNX>/.NXByN^NuNV>=/</N¨PN^NuNVBy\Bn` N2nB(Rn nm>N=@ ng.N =@.?.aT=@ ng>N=@ ngtBn`, N2n2.t aHҼ4.H҂"AiRn nm.>N =@.Z?.a&T=@ ng 0n=hZ0n=h>N=@ ngA-HJyg>\?.Bg/9N.PJyg >N>\?.?.0n"|?04?.Bg/.Nh=@ nf(N> N=@ nf=n`BnJng ngN>NBnJnf?< NtT-@. /.N԰X>aJyc> N=@0.`Bn`=|`=|`=|`=|`=|`=|`v=|`l=|`b=| `Z=| `R=| `J=| `B=| `:=|`2=|`*=|`"=|```W@|b@0@ PN`=|>N0.N^NuNVa>NR>NUNBW?<aT>?<aT>?<aT>?<aT>?<aT>?<aT>?< aT>?< aT>?< avT> ?< ahT> ?< aZT> ?<aNT> ?<aBT> ?<a6T>?<a*T>?<aT>?<aT>?<aTN^NuNV.?< BgNX>?< NT-@0n  hfx0n =h4>/<w/.N¨P0n Jhf&0n Jhf0.Ю @Bh `0.Ю @1| `&.|/.N¨X0.Ю @1| N^NuNVByByByByByByBn`40nBh0nBh0nBhRn noN^NuNV~BnBnBy~3Byf3<<.N 3nBWN=aa N.?/N¨XBWBg/?<?9a=@ nfBna=@0<n=@Jnla'Bn nf>a=@ nfBn>aj ng nf=|a=@ nfa ng ng>a Jng>a< nfP3za*.PN 3n> a4=@ nfa> a=@ nfaaN^NuNV3z.Y?< BgNX nBh" nBh:>?< NtT-@>z/<r/.N¨P>?< N&T3d ydf.NN3zN^NuNV.]/Y/Q?9\N& Bn.?< BgNX>?.?<?</.NL =@ ng0.`>\?.?< NXX=|`>\?.?< NXX=|`>\?.?< NXX=|`x>\?.?< NXX=|`X>\?.?< NXX=|`:>\?.?< NXX=|```| |b@0@ PN0.N^NuNVJnfa.?<BgNXBW/.NX.?< BgNX.Q/]/Y/U/.Nd>?.?<V?.?<?<?< ?< BgN>?.?.?.?<Bg/.N nf.?< BgNX.Q/]/Y/U/.Nd>?.?.?.?<?<?< ?< ?<N.?<BgNX>/.NX>\?9V?9v?9t?9z?9a09\H?09vW09VH?09tWN>SWaBW?<?< N XN^NuNVJycNSyB@09HH@B@H@м @BhaaBW?<?< N XBW?<?< N XN^NuNV.]?.?<NX.?<NBT=@0.N^NuNV> a=@ nf3<?.?<?</.NL =@ ng>?< N T=@ ngJnf|0.`^>\?.?< NXXBn`V>\?.?< NXX=|`6>\?.?< NXX=|`>\?.?< NXX=|`>\?.?< NXX=|`>\?.?< NXX=|`>\?.?< NXX=|`>\?.?< NXX=|`v>\?.?< NXX=|`V>\?.?< NXX=| `6>\?.?< NXX=| `>\?.?< NXX=| `>\?.?< NXX=| `>\?.?< NXX=| `>\?.?< NXX=|`>\?.?< NXX=|`v>\?.?< NXX=|`V>\?.?< NXX=|`8>\?.?< NXX=|```U@|b@0@ PN0.N^NuNVaV=@0<n=@B@09S@=@JnlBn>?< NT-@>/<x/.N¨P>?< NT-@> /<~/.N¨P>?< NT-@> /</.N¨P>?< NT-@>/</.N¨PN^NuNVBW?<aT>?<aT>?<aT>?< aT>?<aT>?<aT>?<aT>?<aT>?< avT> ?< ahT> ?< aZT> ?< aNT> ?<aBT> ?<a6T>?<a*T>?<aT>?<aT>?<aTN^NuNV.?< BgNX0.Ю @-h n-P0n  hf<0n =h4>/</.N¨P0.Ю @Bh `&./.N¨X0.Ю @1| N^NuNV.Y?< BgNX nBh nBh>?< NtT-@>?< N&T=@ nf.NN3?<NtT-@>?<NtT-@>?<NtT-@>?<NtT-@>?<NtT-@0n"|>Z/</.N¨P0n"|>4/</.N¨P0n>/</.N¨P0n>/</.N¨P0n"|]4>/</.N¨P nBh nBh nBhB nBh* nBhZ nBhr nBh nBh nBh0n^^ Pf n1|0n^^ Pf n1|0n^^ Pf n1|0nJhf n1|` n1|0nJhf n1|B` n1|*>?<N&T=@ nf<.NN?0n1_Z.NN?0n1_4.NN?0n1_.NN?0n1_.NN?0n]40 n hf0n^^0 n hf0n^^0 n hf0n^^0 nJhf0n1|`0nBh nJhBf0n1|`0nBhBW?9\NT=yt=yv09tyVS@=@09vy\S@=@N:.?9\NTN`aBWaN^NuNVByByByByByByByBn`0nBh0.R@2n3@40nBhZ0nBh0nBh0n1|0nBh0nBh0n]40(0n^^0Rn nmLN^NuNVBn0.y<=@Bn`0n hf0.|<=@0n^^ Pf0nJhf 0.|=@0n^^ Pf0nJhf 0.|=@0n^^ Pf0nJhf 0.|=@0n"|]400n=@Rn nm*0.N^NuNVByN?9?<aVT>a0n"|>Zar0n>a^0n"|>4aJ0n>a6>a.>N?<aTBW?< aT>?<aT>a0nJhfX0n^^ Pf BW?<aT0n^^ Pf BW?<axT0n^^ Pf BW?<aZT0nJhf >az` >ap>aj>N0n"|]4?0aTRnB@09ذnbN^NuNV=y<` |a2y< Ry<0.ny a=@`4>RW/</N¨P.?<NBT=@ ngd>\?9nBg/9NP=@N nf> a=@ nfBn`BnJnfRn0.yzmJN^NuNVBn=|=|0.\@=@=n=|Bn=|>Nf 3`333.?<BgNXBW/.NXByf33~3BWN=./N¨XBWBg/?<?9?.SWBgN`@XBWBgNT>\N|>Ng=|0.S@=@0.|=@BW?9\NT yfP>\N>?.?.?.?.NPP>\NBW?9\NT=n=n.Q//Q///BgBg/QBgBgBgBgBgBgBgBgBgBg?<?<?<?<N8=@ nfal=@>a nf=|0.nm 0.no=n=nBn yf(>\N|>?.?.?.?.NPP nf yf0.HR@=@0.HR@=@0.\@nn&0.|4nm0.2.ZAAHH@J@f0.|8nn.0.|Gnm =n=|0.|8nn=|0.԰nm0.|nm=n>?.?.?.?.NP=@ nf0.||g yf nHfSn nPfRn nf nKf"0.2.VAAHH@J@fUn`Sn nMf"0.2.XAAHH@J@fTn`Rn0.||/o0.||:m<0.||@o0.||Gm 0.||`o@0.||gl00.||`o0.||=@Bn0.2.XAAHH@J@f=|0n"|~0H|=@.:?.N T0."|:4n |~2n/NQ _>?.?.?.?.NPP=n0.2.XAAHH@J@fSn0.2.VAAHn|7=@>?.?.?.?<NPP0.2.XAAHH@J@fTn`Rn0.\@no0.|4=@Sn0.|5nl0.\@=@Rn nf nKfSn nMfRn0.|| m0.||~n0.|"|~4n>?.?.?.?.NPP0n"|~0H|=@.:?.N T0.2.|8A>0.W\W?.?9\NvX.:/<NTXRn0.|8no0.|G=@Sn0.|Gnl0.|8=@Rn0.ذnl 0.|=@0.|nl=n>?.?.?.?.NP=@0.||fBn`(09f@nHмa @"|~4nRn nm>N\N^NuNV.]/Y/Q?9\N& Bn.?<BgNX>?.?<?</.NL =@ ng0.`>\?.?<NXX=|`>\?.?<NXX=|`>\?.?<NXX=|`>\?.?<NXX=|`v>\?.?<NXX=|`V>\?.?<NXX=|`8>\?.?<NXX=|```U@|b@0@ PN0.N^NuNV0.`:NaxJ@ga`@NaxJ@ga`0a`*a,`&ah` a```W@|b@0@ PNN^NuNV yfgBn`(09f@nHмa @"|~4nRn nm3fBn`( |~2n29fAnHҼa"ARn nm>?<09f@?N`@XN^NuNVJyfgBn`(09f@nHмa @"|~4nRn nmByfBn`( |~2n29fAnHҼa"ARn nm>?<09f@?N`@XN^NuNVJyfgBn`(09f@nHмa @"|~4nRn nmJyfoSyfBn`( |~2n29fAnHҼa"ARn nm>?<09f@?N`@XN^NuNV=|09fngBn`(09f@nHмa @"|~4nRn nm09fnlRyfBn`( |~2n29fAnHҼa"ARn nm>?<09f@?N`@XN^NuNV4Bn` N2n| Rn nmB.NLBWN./:N¨X.:NKNLNLBn`b| B..NK0.@29fAA=@>/<I/N¨P.NKBn` N2n| Rn noBn`0n2.A49fBBHҼa0H|=@.:?.N T.:/<Q/N¨P.NK0.@29fAAHмa2.HЁ @P8 . 8o .z8n N2nn8` N2n| Rn no:B..NKNLRn noN^NuNV4Bn` N2n| Rn nmB.NLBWN.V/:N¨X.:NKNLNLBn`D| B..NK0.@=@>/</N¨P.NKBn` N2n| Rn noBn`0n2.AHҼa0H|=@.:?.N T.:/</N¨P.NK0.@Hмa2.HЁ @P8 . 8o .z8n N2nn8` N2n| Rn noNB..NKNLRn noN^NuNV=|N:NLNLNL>?. a~T y0>a*ad.N y0>ad y0>aR y0>a@a=@ yBPa.0.N^NuNVaBn>?. aT y0>a y0a0=@.fX y0a.N y0>a y0>a y0>aa(=@`=| yBPav0.N^NuNVaHBn>?. a:T y0>aa .N y0>a y0>a y0BnBn` y0|=@Jng yBP`>Rn y0>aa\=@ y0|=@Jno y02 y P(m nf=|Jnf4 y0>aja=@ y0>aPa=@ yBP0.S@=@a40.N^NuNVaBn>?. aT y0Jnfval=@>aF.Na y0>SWa y0>a y0>aa@=@>aJnfa=@ yBPa0.N^NuNVaRBn>?. aDT y0Jnfta=@>a.Na y0>SWa y0>a y0>aa=@>aa8=@ nf$a y0>aaj>a =@0.N^NuNVBna y0>a y0>aa$=@ y0a=@.g=|0.N^NuNVBna4 y0>a> y0>a,a=@0.N^NuNV y0aJnf2 y0>VaJn f >ar`>ahBy\ nf4 y0>baJn f >a8`>a.3\ nf, y0a=@0.|=@ ngBWa yBPN^NuNVJy\f y0a3V y\f y0ad3bN^NuNVa y0>aa=@>BgNTN^NuNVa y0Jnf>aPa nf>a@a y0a3Va3bBy\BW?aN^NuNV y0a=@N^NuNVaR y0>a yBPaRN^NuNVa(BW?.a T y0> a yBPaN^NuNVa y0 y0a<=@>aa._N y0>a y0>a y0BnBn` y0|=@Jng`:Rn y0>ata =@ y0|=@Jno=|d0.nm yBPa aF3ppN^NuNV>a*pN^NuNV#>NN^NuNV33 3 3333333333 3"#$3(3*>N n,0 n00 n40 n80 n<0 n@0B@09N^NuNV#3 >2NN^NuNV33 3 333333>3NN^NuNV3# >4NN^NuNV#>6N n 0 n0 n0 n0B@09N^NuNV33 3 33333>INN^NuNV33 3 33333>JNN^NuNV>MN n0 n 0 n0 n0B@09N^NuNV3# >NNN^NuNV#3 >NN^NuNV#3 3>!NN^NuNV#3 33333>*NN^NuNV#3 333>+NN^NuNV#3 >,N n0 n0B@09N^NuNV#>nNN^NuNV33 >pN n `B@09N^NuNV33 3 33>dNN^NuNV33 3 33>eNN^NuNV3>fNN^NuNV3>gNN^NuNV33 >hN n 0 n0 n0 n0B@09N^NuNV33 3 333>iNN^NuNVH*nBGBF`RHHмj @f +fR` -fRRF` H@| 0m 9oJFg0D@>0JL N^NuNVHNBW/<NX>/<NX>/<NX n2n B*n`&HHмj @g H| `HRJf> /.NXJL N^NuNV. /./<NPN^NuNV./. /.NPN^NuNVH BWNx#j#nByh.a*n`N`RJgHHмj @fJg2 "g 'fFH>/ RNX(@ f. / aVX H> M2GBRG.Ra`BG`RG M2GJg5pHHмj @gJ5pg M2GBRGH`BWNBW/ RNXJ@g.R/<2aX`l>N ->f@>/ TNX|f>B?<N6\|f.R/<?a|X`$BW/ RNX|g.R/<NaVX`>?/ NXJf>*/ NXJg-|C.8?<NT>/ ?<NB\<f.]/ aX`^.H?/.aZ\.N>RWNr(@./ N԰X.a>/ ?<NB\<f`.a`|g`JfBaSyh.nNz|f.w/<ha*XB/9j?9hN\>N&JL0N^NuNV|./N԰X. /NԆX.x/NԆX.?< NT>N&N^NuNVH*n yn XnRyhJL N^NuNVH*n. (nGVfJL8N^NuNVHN`>|fp`>N08*@= JnfU./.NXJ@f U0`R`./.NXJ@fU0`2>/.?NB\J@g3#f3Hhp`U0JL N^NuNVBW?. /.a:\N^NuNVBW?. /.a"\N^NuNV>?. /.a\N^NuNVN>>NN^NuNVHBG`0м|.NpRG|mJLN^NuNVH*n0-|g*.NX-g .NTB@H+@+@Bm m>NJL N^NuNVH>.>NV*@ f3 f3Hhp`NBF0|f>?<>N֤T<l|>N>NЪJFf0``3f3HhpJL N^NuNVN^NuNVH*n0-| |f, -<o >/-?N\>Gg mp`J-gJg-g;| `;| `>0- D@H/?N6\Bm +mB@JL N^NuNVHN`>|fp`>N08*@= Jn fUJnfU./.NXJ@fU;n 0``./.NXJ@fU0`d>/.?NB\J@g>NЪ3f3Hhp`0U>B-H?N6\BWB-H?N6\0JL N^NuNVBW?. /.a\N^NuNVBW?. /.a\N^NuNV>?. /.a\N^NuNVH>NV*@ f3 f3Hhp`$>?-/. ?<BN֤P+@U -JL N^NuNV>B?.a\N^NuNVHK;| .+@+@;|:./. / NP>.BgNȶT0JL N^NuNVH*nBnJ gh``BE-n `RRE nJg n %fJEo.?/. NF\-n n n %@R DfBn n H|-@R Df n R Rn| <0fG n R =|<*f-M n=PT n R `8`*JnlBnH2. A|=@ n R <0m<9o|<.f BF n R <*f-M n<T n R `*`H2 A<| n R <0m<9oBn<lg<LfRn n R A-HH` RnJng <T` < #r.r?<?< // N Jngp`pH`RnJng <T` < #r.rBg?< // N Jngp`pH`zRnJng <T` < #r.rBg?<// N Jngp`pH`&RnJng <T` < #r.rBg?<// N Jngp`pH`-M n-PX`-M n0|@B.T`H>?// N X|`~H>?// Nnj X|`XH>?// N X|`4.H?NȶTRn``|C|5b@0@\ PN.N:ElJFm:0.E=@JnfX .0f* n -f SE. nH?NȶTRRn`..H?NȶTRn0.SnJ@n.?/.NF\n`..H?NȶTRn0.SnJ@n`0.JL N^NuNVJnlp`0.=@ n -@>/. /.NPN^NuNVJnlp`0.=@ n -@>/. /.NPN^NuNV>/. /.a~P-@. N2.^AAo>/. /.aP-@ .N^NuNVH *n>. (n,g$Bl >/ ?N\Gg lp`*B@`&`.H?NȶT|fp` 0SGJ@fB@JL0N^NuNVH. *n Sm mH"m|R``.H?NTJL N^NuNVH. *n BF:-fp`$JfV-fN>N+@+@fm`2m>NJJ@gm@`;| H"mR`-gA+H +@ mR-gz>/-?N\<Bm `n-g>< g -мb" -:>/-?N\<+mBm `( -:>/-?N\<;| +mFg mp`H|JL N^NuNVH>NV*@ fB@`-fB@`pJL N^NuNVH>NV*@ fB@`0|JL N^NuNV>aJ@g <`BN^NuNVH>.^GORG>a*@ fB` >/ aXJL N^NuNVH (y<*T`ZB@0-BA2-@F@J@g>NB`:B@0-ne `*a*@ f>NB`(M*U`JL0N^NuNVH n*PB@0. X@me n `F(MB@0. HH@B@H@B@0-n 9@B@0,F@9@( n ;n B@0-F@;@#< PJL0N^NuNVH >.|?GG0@>Nx*@fB`* R*@(M9GB@0,F@9@.Pa 9Np`(y. ^GORG>a-@fB`J n(PPg2d`Sn Jn f`B0. B0. `%Sn Jn f>/.aXJL0N^NuNVN^NuNVN^NuNVH /?.?./ /. nN*@ мfB(n `%H|0|9o^G мfB JL0N^NuNVH-|*n<.H n. nfz` |SEJgJEf`h nf$z ` |SEJgJEfJEf-`*n<.JngJGlB@0D@> n P-"n R`B0H@B0>JGf JL N^NuNVH >.HμgR*yD(GD.Nz|f3 f3Hhp`>Bg/ N\ JL0N^NuNVH>NV*@ fp`XJnfB@`N-g3 f3Hhp`0-g>/. / NѸP``>/. / NPJL N^NuNVH|BG` @f @0`RG|m3f3HhpJLN^NuNVp2.`F@H@B@N^NuNVHBG`>aRG|mJLN^NuNVH 0.8*@= 0.@BUB-+| BB> Bg/ N\> ?< / N\JL0N^NuNVH>.|e3 f3HhB`0B@08*@= -f3 f3HhB` JL N^NuNVH *n(n >.B@=@=@``Rnnc L2n  fB@0.ncf>?.B@0.W B2.Ё//-/ Nh=@B0.ѭJnf3f3Hhp`^=n`8Rn>?</<D/-/ Nh=@B0.ѭnb4 -o+mB@0.JL0N^NuNVH*n>?./. /-/ Nh=@Jnf3f3Hhp` B0.ѭ -o+mB@0.JL N^NuNVH*n 0.8м= -@~.a&M`RJg :fJgc .Am .On*K`K0.`BW/ ?<o n1GBG`BW/ ?<NN֤\JgB@`0<>`d>ON֤JgB@`0<>`J.?<=N֤T>o n1GBG`,.?<AN֤T>``||b@0@F PN0JL8N^NuNV n am n zn n nHRJfN^NuNVH *n (n`RJff .JL0N^NuNVH *n (nf .JL0N^NuNVH *n(M`RJf HJL0N^NuNVN^NuNVH *n(n `$H>a0H>a&op`lp` JfJfB@JL0N^NuNVH>.|am |zn|0JLN^Nu _B0Z"yDCCbNC NNVH..,. Jf# <`Hc #B`:fzB`(xe 〼b`BJge`# JLN^NuJg .NuNV n=h.0n/0n/NִP/?.?<?N֤PN^NuNV n=h.0n/0n/NִP/?.?<@N֤PN^Nu#vNA/9vNuNVBBJlDRBJ lD RB0. -@0.2. An=@ .gDN^NuNVH-n Jnnp` nop`0.R@8BGB/.N:Pl n -R /.NܰX-@B/.N:Po.`/<D/.NܐP-@SG/<A/.N:Pm`/<D/.NXP-@RG/<D/.N:PlG|0H/NxX-@`/<D/.NXP-@RFDm/<B/.NXP//.NP-@/<D/.N:Pm -|ARGJGl4 n 0R n .R JDlD|` n 0R SFGnBF`j/.NX:0|0"n R Gf n .R 0H/NxX-@//.NP-@/<D/.NܐP-@RFDm n BR .JLN^NuNVH-n Jnnp` nop`0.R@8BGB/.N:Pl n -R /.NܰX-@B/.N:Po.`/<D/.NܐP-@SG/<A/.N:Pm`/<D/.NXP-@RG/<D/.N:Pl|0H/NxX-@`/<D/.NXP-@RFDm/<B/.NXP//.NP-@/<D/.N:Pm -|ARGBF`j/.NX:0|0"n R JFf n .R 0H/NxX-@//.NP-@/<D/.NܐP-@RFDm n ER JGl0D@> n -R 0H |0"n R 0H H@|0"n R n BR .JLN^NuNVH..,. N LN^NuNVH..,. NLN^NuNVH..,. N LN^NuNVHJl| .D-@`BFJfB`^~` .-@R .f` .-@S. g .-@޼@ JFg .JLN^NuNVH .м<JgJFlB`V .:|oJEg <` <`0..μ|`RFJFm`SFJFnJEg D. JLN^NuNVH..,. Nނ LN^NuNVH..N LN^NuNVH..,. N LN^Nu<NuJg NugR kjklf`>k^g>k^g2k8<d,&B<ރeNuRid~S<Nu.NuJNu:ڼ.gNugRghEDvi^E]HE:BB8HD&HC؃HF&؃BDHDHGHFHEބj ޼gNuSiex@ބއdRgNu~NujJ<Numc68343 floating point firmware (c) copyright 1981 by motorola inc. Stack Overflow$C runtimeCON:LST:a_[3][ DiskMech requires | medium resolution. ][ QUIT ]DISKMECH.RSC0123456789ABCDEF",6@JT^hr|&0:DNXblv  *4>HR\fpz "*2:2fH*<N`r%03dXXX%3s : %s : %sgoodbad yesnoTRACK %02d SECTOR ID[ TRK:%03d SEC:%03d SIZE:%04d SIDE:%d CRC:%s DF:%s ][3][ This sector has no data field. | thus, no data to edit. ][ OK ]TRACK %02d ID FIELDSPlease select a track:TRACK SECTOR SIZE SIDE CRC's DATA FIELD================================================= present missing goodbad %03d %03d %04d %02d %s %s%sTRACK SECTOR SIZE SIDE CRC's DATA FIELD================================================= present missing goodbad %03d %03d %04d %02d %s %s hit any key to continue 0079%02d: %02d [3][ Please insert destination %d | into disk drive %s. ][OK| ABORT ][3][ Please insert the source | disk into drive %s. ][OK| ABORT ][3][Insert the source|disk into drive %s:|and destination in %s:][OK|ABORT]%02d%02d%02d[3][ There is no disk drive B: | attached to the system. ][ OK ]AAAAAB(B.B60123456789ABCDEFZZZ[ [,[J[[h^@^N^\^b^f^lTRACK TRACK %02d%s%3s : %s Please select a track to edit:TRACK %02d%c %cTRACK %02dPlease select a track to examine:%4x : %s : %s FORMAT DATA LISTING FOR TRACK %2d %4x : %s FORMAT DATA LISTING FOR TRACK %2d %4x : %s wwwwwwwxx xxx$x,x4x<xDxLxT%03d%02d%02d[3][ Copy Complete ][OK]%02d%02d%02d[3][ Please insert destination %d | into disk drive %s. ][OK| ABORT ][3][ Please insert the source | disk into drive %s. ][OK| ABORT ][3][Insert the source|disk into drive %s:|and destination in %s:][OK|ABORT][3][ free space = %d blocks ][ OK ]Select a source track:Please select a source sector:Select a destination track:Please a destination sector:%03dXXX~~"~B~b~~,Ll ,Ll *H *Jj Please select a track to prototype FORMAT EDITOR Please select the track to format%04d%06d%06d%06d%06d%03dXXX%04d%03d%03d%03d%03d%04d[3][Please insert|destination %d|into drive A: ][ OK | ABORT ] PROTOTYPE BUFFER %s PROTOTYPE DATA LISTING %4x : %s PROTOTYPE DATA LISTING %4x : %s begining gap length = %3dSECTOR ID [TRACK SECTOR SIZE SIDE] SECTOR [GAP SIZE CRC'S DATA FIELD]==========================================================================presentmissinggoodbad %03d %03d %03d %03d %04d %04d %s %s[3][ You have exceeded the size | of the prototype buffer. ][ OK ] >: unmatched quoteCannot open Cannot append Cannot create : No matchStack Overflow $   ĞDhƌƌƌƌƌƌƌHƌƌƌƌƌƌŜƌƌƌƌƌƌƌƌƌƌĢDhƌƌƌƌƌƌƌLƌƌƌƌƌƌŠ44 FFFӠ!!!!"CP/M-68K(tm), Version 1.2, Copyright (c) 1983, Digital Research XXXX-0000-6543216$ R     &0*R *    B.0&,0&.0&,0&:28T$8&,N"6$("(.&X ,$","h  $ (,:"   .   .8                b&BP$   $  (     R      $       2  ,"*0&40    0( B ,6   "(F`",    x       H  *P, ($"  $ , ,8$( $      " &            B    4  h"@ ,,( 0, ( ,0,0 :F   0< $&  ,&(    (  $ (   D     "     J64T 2,    6 H" &NX" $$  X     ,:V@F   HH     x 0           "6  $..   :(dv B   . `  . N     "".&0( "," $   ,   6 $&N B   ""0.&$0  @  ,0$ & ,(    *  .    "     V(*   (", <L,    :F  &  4 h\( \"  ("" 6        4 8   \@ : \"    "   ".". 8& 0.& .LV ,FbX44& " $, (  8  L$ &8      &f  $                       $\   ,"  ,D( 0 <    >  h 0HN&  jj`^***`&$ D"V8*R$ZF \@(B4.J".86 Jp $""@2&"fHR"D(<@* T0^0 : \$*L & |||4$4NN001002003004005006007008009XXXXXXXXXXXXXXXXXXXXX020TRACK #:___999001SECTOR #:___999001SIDE #:___999002SIZE #:___999SECTOR IDGOODBAD CRC'SNOYESCANCELOK0100SECTOR GAP:____99991024512256Sector Size:DATA FIELD+PAGE-NEW TRACKEXITSAVE TRACKRESTORE SECTORPRINTFILL Desk Analyzer Archiver Editor About DiskMech AAE-------------------- Desk Accessory 1 Desk Accessory 2 Desk Accessory 3 Desk Accessory 4 Desk Accessory 5 Desk Accessory 6 Analyze ID Fields Analyze Format-------------------- Quit Analyze Disk -------------------- Copy Tracks---------------- Extended Copy Copy Sector Sector Editor Format Editor-----------------Version 1.0Copyright (c) 1987MDS DevelopmentDiskMech IS A REGISTERED TRADEMARK OFMDS DEVELOPMENTOKAnalyzer/Archiver/EditorDiskMechCreated By Doug Olson(Special Development By Pete Diemert)Please select the track to edit:000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283SIDE:ABFILL SECTOR00Pattern: __NNOKCANCELPlease enter thefill pattern inhexidecimal.EXITPRINT ALLPRINT PAGEGOTO TOPGOTO BOTTOM-PAGE+EXITPRINT001002005006008007003004009---------------------------HFORMAT EDITORTOTAL BYTES USED:TOTAL BYTES FREE:NUMBER OF SECTORS:BEGINING GAP LENGTH:000001000001000000000001DONEABORTADD SECTORCLEAR WORK AREAPRINT DATADELETE SECTORPROTOTYPE BUFFER STATUSBegining gapPlease enter the amount ofbytes you wish to appear before the first sector.0060Bytes:____9999OKCANCEL XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXWhere would you like tooutput the disk map?SCREENSCREEN & PRINTEROKCANCELPlease enter the numberof disks that you wantto put this format on.0001COPIES:____9999Track CopyFormat Destination:Destination Drive:Sectors per Track:Number of Sides:Type of Format:Source Drive:ABABSingleDouble109NOYESREGULARFAST00Starting Track:__9979Ending Track:__99001Number of Copies:___999STARTABORTTrack Copy in Progress:Reading from Track:Writing to Track:Destination number:00 00 00 DISK MAPANALYZE DISK01Starting Track:__XX79Ending Track:__99ABSide:CANCELOKEXTENDED COPYCANCELOKSource Drive:ABDestination Drive:ABSINGLEDOUBLENumber of sides:00Starting sector:__9979Ending Sector:__9901Number of copies:__99PRINTING IN PROGRESSABORTPAUSECONTINUEBUTTONBUTTONFeel free to make copies of this programThis product is not available at retailand give it to your friends.stores. You can receive the printedDiskMech manual and have your nameregistered with us by sending in thesmall registration fee.By registering with us you will be sentnotice of any updates and new releases.If you use this productplease take the time to register.OKThis Program is ShareWareMDS Development is bringing a quality product to the consumerat the lowest cost possible.Please support us by registering.When you register you will receive theprinted DiskMech manualthat explains in detail the disk structures of the ST computer.The manual will take you step by step through all the fuctionsand advanced features of DiskMech.To register your name and receive theDiskMech manualsend a $10.00 check or money order to:MDS Development14513 Seattle Hill RoadSnohomish, Wa 98290n ST copy protectionIf you would like an additional manual oschemes please include an additional $6.00 with registration.Thank YouFor fast delivery call(206) 337-3047 Pleaseadd $1.50 for C.O.D.(OUTSIDE OF U.S.A. ADD $3.00 FOR SHIPPING AND HANDLING CHARGES)close all open directoriesand reopen them to ensuretheir accuracy.Thank you for using DiskMech.It is suggested that youOK[1][There has been a read error on|the source disk.][RETRY|SKIP| ABORT ][2][Are you sure you|are done editing?][OK| CANCEL ][3][Please insert the source|Disk into drive A:][ OK | CANCEL ][2][Are you sure you want|to save this track to|the disk?][SAVE| CANCEL ][1][There has been a write error|on the destination disk.][ ABORT ][1][Please make sure your|printer is online and|is ready to print.][PRINT|CANCEL][3][There are no sectors|on that track.][ ABORT ][3][There has been an error during|the writing to the disk.][RETRY|SKIP| ABORT ][2][You are about to write over|the destination sector.][OK| CANCEL ][2][The disk is either write|protected or not in the|the disk drive. Please|correct.][RETRY| CANCEL ][2][Are you sure you want|to clear the work area?][OK| CANCEL ][3][Please insert the disk you|want to format a track on|into drive A:][OK| CANCEL ][2][Would you like to edit|the prototype buffer|before it is written?][ NO | YES ][2][Would you like to write|this format to multiple|disks?][ NO | YES ][2][Are you sure you|want to abort?][ OK | CANCEL ][3][There is an error in the |starting or ending track|number. Tracks cannot be|over 82.][ OK ][3][You cannot fast format|with 10 sectors per track|Please switch to regular|format.][ OK ][3][Please insert the destination|disk into drive A:][OK| CANCEL ]9n>YT+$()*./0456:;<@ABFGHLMNRSTXYZ^_`defjklpqrvwx|}~        2?@ ALM PUVEXYZjkl&"  &01!.45:FG HKW duvw    #$%)*+/01567;<=ABCGHIKLM[\+, { ([stu        - . / = > n q           # $ % ) * + 0 1 2 ; <  = J K  L O a d g w ~         % ( + ? B W X | ) (   %  : ;# < a b% c { | } ( (  "  , - . T U& V o p q  " '   !)":;<ef)g~#&'234IJK`ab))    !"KL)MefgII|  $ @# \( x- 159=A! E  < X t                % *.   M KANH8CAW@AY Ac Ah  As  A0!8PP)       P      "7L au !  ' 0"9   Tp        X&4$WV$258; >  A D G J MPS!VY\_ b ehknqtw!z}   !"#$%&'!()*+ , -./0123!4567 8 9:;<=>?!@ A B C D E F G H I J K! L M  N O P Q R S T" U% V( +! XP YZZ6 X18  lZ ]    L L   $ 1A D%I%&AL J0Lh    " & ,*H.d26>:BF (+ ]o& %A)! " # $ %  D+ ! `-Hb|   % !L 4H       $(,048<@%D  $9%@ Q T (   .$(( @ \x      ?  A   C   E G N  U  X  Z ]   a i    #% " <Xt !NL % !    8 T z |  p   '  !( &    &     $      $      !(!4!!P Y  _ % e A, n  u q*!l*!*!*!* !* !* "* "0 * "L *"h *" *  "*qEqB"%"&"#!#,&#H( #d( #) #( #) #"#%$ *$( &$D $` $| $+$($($+%# %$# %@# %\ %x%! q%%%%&' & ')+./h789:0=>@AADEEFHIxKM DiskMech Analyzer/Archiver/Editor DiskMech is a very powerful disk analyzing, archiving, and editing tool. DiskMech offers features that no other disk editor can, such as: Sector Editor: You can read and edit any sector regardless of the size, track number, or side number. Format Editor: You can create any type of sector layout, custom ID fields, specify gap lengths, control CRCs, and many other options. Analyze disks for abnormal formats. Analyze all information on a track, even the data between sectors. Analyze the ID fields. DiskMech also offers a full range of backup utilities such as: Regular disk copy, with full options. Extended disk copy, for abnormal and protected disks. Sector copy, for copying a single sector. DiskMech is share ware, so feel to give copies to your friends. MDS Development is bringing a quality product to the public at the lowest cost possible. For the small $10.00 registration fee you will receive the printed DiskMech manual and become eligible for updates and notice of any new releases. If you are serious about using DiskMech the manual is a must. The manual will take you step by step through all the functions and advanced features of DiskMech. It includes a special chapter that covers topics such as disk structures, sector fields, formatting, and sector theory. This information will be essential for using the more advanced features of DiskMech. If you use DiskMech please take time to register with us. Thank You, Doug Olson MDS Development To register send a $10.00 dollar check or money order to: MDS Development 14513 Seattle Hill Road Snohomish, Wa 98290 (For orders outside the U.S.A. please add $3.00 for shipping and handling) For fast delivery call us at (206) 337-3047. Please add $1.50 for C.O.D. charges. For an additional manual on ST copy protection schemes add an additional $6.00 with registration. . l8Z.. l8HDSCAN TXT9l[cHDSCAN13PRGBltHDSCAN DOCJlc HDSCAN Shareware Ver. 1.3 (The ST Hard Disk Utility) (c) 1987 by Todd Burkey Note: This documentation must be included in an ARC file with the HDSCAN program if you wish to distribute the program on BBS's or Club Disks. Any modification of the program or this document is expressly forbidden. HDSCAN 1.3 is Shareware. HDSCAN Professional is not! This documentation covers the features of both the shareware version as well as the Professional one to give you an idea of the different features. DISCLAIMER: I spend all my money on computers that outdate themselves within a year, so I really don't need a disclaimer...although with GEMDOS and the XBIOS occasionally doing undocumented things, I should say that "LET THE USER BEWARE". There. Safe. INTRO: Whew, even with the bugs and poor documentation on the ST, I think this program was easier to write on the ST than any computer I have had (MAC, AMIGA, IBM PC, and CP/M). Basically, HDSCAN started out with my developing a set of window region scrolling routines and then trying to figure out what to do with them. I had been waiting for a product to come out like XTREE or PCTOOLS (IBM PC programs), or even a PD program like SWEEP. Anything to make dealing with my hard disk easier. Since I had a lot of requests to make DISKTOP support hard disks (and I really didn't think that would be useful), I decided to go ahead and try to write my own utility. Special thanks to whoever wrote BLASTER, since seeing it scan the hard disk so quickly got me on the right track for this program (HDSCAN will typically read a 30 meg drive...all partitions...in around 3 seconds or so, gathering file names, sizes, dates, paths, etc.) I will keep this file short, since HDSCAN does have a help key. HDSCAN is first and foremost a utility that lets you tag files throughout your hard disk and then copy (or erase) them in one pass. Because I got carried away, HDSCAN also lets you hexdump any file on the hard disk, view any file (even binary files if you like), rename a file, show the free space on drives A and B, select for display files matching a specific string (i.e. to just see all file names that have NEO in them), select just files in one directory, select all the files on all partitions of the hard disk to scroll through, and more that will make sense when you try out the program. Recently added features allow you to view the contents of arc files, arc all Tagged files together into one file, edit a file at the press of a key using your own favorite .tos/.ttp editor (i.e. me.tos), and even run any TOS program you want by pressing a user-definable function key (F1 to F10). This latter feature really opens up a lot of possibilities. You can, for example, assign LESS.TTP to the F10 key and then every time you press F10, HDSCAN will pass the full path of the file you are currently scrolling over to the LESS.TTP program. Or, you could assign PCOMMAND to the F1 key and drop into a PC DOS like shell at the touch of a key. My favorite is assigning TINYLOOK.TTP to the F10 key. That progam loads in a tiny picture, switchs resolution, shows the picture, and then pops me back into HDSCAN where I can Tag the picture for future deletion or mass copying! Get enough auxillary programs set up under HDSCAN and you won't spend much time searching through the desktop again! And all that is Shareware. I am really trying hard to put as much into the PD version to give people a useful tool. Version 2.3 is not public domain (I have to make a living some way or other) and has some embellishments that I think most of you will appreciate. In 2.3, you can sort by date, name, and size all the selected files in ascending or descending order. For example, you can select all PAS files (all partitions), sort them by reverse date, then easily tag all the new files for copying to floppies. Or maybe sort the entire drive by name to help find duplicate files (this will make more sense when the 40 folder limit get fisxed). The sort in 2.3 is a recursive quicksort, so even a thousand items will be sorted in a few seconds. Even already sorted stuff won't slow down my version of the qsort (Quicksort'ing sorted data is usually horribly inefficient unless it is randomized first.) 2.3 also has a file compare capability, just in case you can't remember if a file is really a duplicate. Finally, 2.3 will better support people who want to use HDSCAN to reorganize their hard disks...with stuff like auto regeneration of the arrays after a mass copy from hard disk to hard disk, and hard disk 'DISKINFO' style info updated on the fly to keep things organized. USING HDSCAN: HDSCAN works best if you have a hard disk. After a bit of soul searching I added floppy support as well. If you don't have a hard disk, or do and want to read off of floppies as well as the hard disk, create a file called: HDSCANAB.DAT in the directory you run HDSCAN from (the file can be empty or have data in it, HDSCAN just looks to see if the file exists so that it knows whether to bother you with prompts or not). If you plan on looking at arc files while in HDSCAN, be sure ARC.TTP is in the directory as well. Also, if you want to do any file editing, copy me.tos into the directory as well (the name is hardcoded-you can rename your favorite editor to that name or simply reassign one of the function keys to call up your editor.) If you want to use external programs, modify the file called HDSCAN.KEY which is included in the HDSCAN release. The format is very simple, one function key per line in the format of: F1=C:\BIN\WC.PRG F2=D:\PICTURE\TINYLOOK.TTP etc.. If you don't own a hard disk, the best thing to do is to create a RAM disk on drive C and copy HDSCAN.PRG, HDSCANAB.DAT, HDSCAN.KEY, ARC.TTP, ME.TOS, and all of the 'External' programs you plan on running to it. This makes everything lightning quick and should make perusing your floppies a breeze. I even do the same thing if I plan on looking at pictures. To run HDSCAN, double click on HDSCAN.PRG and a screen will appear in front of you. I don't use GEM windows for speed reasons, so I will explain here what you are looking at. Most noticable on the screen will be a tall box near the right of the screen filled with file names. That is the 'selected file' window and you can scroll up and down through all selected files with the arrow keys and the [HOME] and SHIFT [HOME] keys to quickly get to a file. The file you are currently selecting will be highlighted. As you scroll through the files, you will notice that the directory the file is in, its' size, and its' date, are automatically updated in windows near the top left of the screen. Next to the file size window is a window that will make more sense later. It displays the total size of all tagged files. This proves useful when you are moving around the hard disk, deciding which files will fit on which floppies. Below the these two windows is a long window used for prompts. Look in this window if you aren't sure why something isn't happening...it might be asking you a question. Below the prompt window is a big free space which I am sure will eventually get filled up. Right now it is useful as a billboard. Below that is a status line that basically tells you 1) what you have selected (i.e. ALL will appear if all partitions are chosen, DIR will appear if you have selected a single directory to work in, and a string of 1-8 characters will appear if the selection was made using a wildcard string search), 2) the sort order (always RANDOM for 1.0 users, although, if your hard disk isn't too fractured, the files will be somewhat alphabetical), and 3) the number of selected files. TAGGING STuff: A few more things and you will be all set to go. First, tagging. To tag a file, simply scroll to the file you want and press the 'T' key. You will see a '*' appear in a little scrolling region next to the file name and the file window will scroll to the next file (so you can just keep pressing T to select a bunch of file.) sAs each file is tagged, you will see the total tagged size increase in the TOTAL TAGGED window. To untag, a file, just use the 'U' key. To untag all files, type ALT U. For my own sanity, I chose to show the directory names in the file window as well (they have a 'D' next to them, so you can't accidentally tag or delete them.) SEARCHING AND SELECTING STuff: Most of the time, you will probably just want to search out a few files for tagging and don't want to scroll over all 1000 or so files on the hard disk. To save some time, if you press the 'S' key, you will be prompted for a <9 character string to search for (you can enter stuff like NEO, PRG, READ, etc but no *, ? wildcards are supported...also it doesn't allow you to enter a '.' as part of the string.) Also, you might only want to select the files in one directory. To do so, pressing the TAB key will turn the PATH: window into a little scrolling region allowing you to use the arrow keys (up/down) to quickly choose the appropriate directory. When exitting the TAB key option, you are given the choice of pressing TAB (to select all the files in the currently selected directory) or A (to select all the files in all directories below and included the currently selected directory.) Every once in a while, you may want to regenerate the list of files (i.e. you have been doing some heavy deletes and don't care to see the 'X'ed out deleted files on the file list anymore). To do so, just press the ! key. Note that this command will let you switch floppies and also will let you see the results of all the copying TO the harddisk you have been doing. Note, this command automatically deselects everything. DANGEROUS STuff (Copy/Erase all Tagged files): Once you have everything selected, pressing the 'M' key will invoke the mass copy routine. This will prompt you for the destination path and allow you to copy all tagged files (with or without an interactive query on each file). Once copied, the '*' next to a file name will become a '#' to show that the copy was successful. If you later want to re-tag the '#' files, possibly for mass erase ('E' key), you can do so by pressing the ALT T keys. Note: to erase just one file, place the scroll bar over the file and press the D key. VISUAL STuff (Viewing and Dumping files): One nice feature of HDSCAN is that by pressing the 'V' key, you can view the file that you are currently selecting in the file window. The view option does a character by character analysis of the file, just displaying the ascii printable characters on the screen, so it can be used for looking for strings in a binary file. Note that because I chose to allow looking at binary files, I also turned off highliting (ESCp/ESCq) and tabbing that sometimes appears in files. If you want to get a HEX dump, press the 'H' key and you will get a page by page listing of your file in both HEX and ASCII. If you have ME.TOS in the same directory that you ran HDSCAN from, you can invoke the editor on the file you are currently pointing at in the scroll window by pressing the '*' key (shifted 8). ME.TOS will load in, read in the file, allow you to edit and save the file, and then return you to HDSCAN when you are done. ARC STuff: To get a verbose listing of the contents of an ARC file, move to the file you want to look at and then press the = key. While the verbose listing is being displayed, you can press the CTRL-S key to pause the listing and the CTRL-Q key to continue the listing. To add all Tagged files to an ARC file, just move the scroll bar over the arc file you want to add the Tagged stuff to and hit the + key. You will be asked for a path name (in case you want to add to an ARC file that doesn't exist) and you can either hit return (to select the file you were scrolling over, or type in the full pathname of the file you want to create or add to (i.e. C:\TEST\PICT1.ARC is a full pathname). The tagged files will then be arc'ed together. NEAT STuff: These features are, of course, found in the non-PD version of HDSCAN. HDSCAN Professional allows you to sort all selected files (don't confuse tagged with selected...selected files are simply everything you can currently scroll past in the file name window, whereas tagged files are those you have tagged with the T key for some future purpose.) By pressing the O key, you will tell HDSCAN that you wish to sort the selected files. HDSCAN will prompt you for the sort key (S-Size, N-Name, D-Date) and then for whether you want to see the sort in ascending or descending order (descending date is a useful way to tag what has changed since your last backup...specialy if you are currently selecting all partitions of your hard disk at once!) Ascending name is useful to find all those duplicate files. One note on sorting: I always fall back to RANDOM order when you do a new selection by either search (S) or directory select (TAB). This provides the fastest response assuming you aren't always wanting to see the stuff sorted. The other important feature added to the Professional version is the file compare option. This feature allows you select a file for comparing by pressing the ALT-C keys. When you do so, a C will appear next to the file name and you will be prompted to go find another file to compare it against. When you have the scroll bar over the other file, press ALT-C again and the two files will be compared. For sanities sake, I will just show the first 15 differences (byte locations and values) that the program finds. Note that you can do any number of file searches and directory matches in between selecting the first and second compare files. Other features will be added to the Professional version as people convince me that they need them. POWERFUL STuff: Because I got tired adding features to the program and it was getting big, I decided to add one more feature. This is probably the most powerful feature (and the most confusing) as well. I decided to make the F1-F10 keys into user definable keys. I have mentioned already how to create the HDSCAN.KEY file, so will only mention here that to use the program you have assigned to the key, just press the appropriate function key. If you forget what the key assignments are, just press the ? key and you will be given a listing of the keys (along with a summary of disk space). Be very careful not to run a GEM window type program from within HDSCAN, as you could end up totally garbaging up the HDSCAN display upon return from the program. Currently, I have run the following programs from within HDSCAN with no ill effects: ARC.TTP, ME.TOS, TINYLOOK.TTP, WC.PRG, OD.PRG, LESS.TTP, MORE.TTP, GALAXY.TTP, LINE3.PRG, DCOPY17.TOS, PCOMMAND.PRG, and a variety of other shells and even a few terminal programs. This is just using the GEMDOS Pexec call, so no fancy code is involved. NOTE: if you are writing an utility to use as a HDSCAN 'External' program, remember that the string that is passed in from HDSCAN contains the complete directory path with the file name you are pointing to, so be sure to allow sufficient character space (127 chars max). FINAL Stuff: Finally, to rename a file, just hit the 'R' key and type in the new name. The file name you are currently selecting in the file window will be renamed. I hope that I have covered all the basics about the commands in this short document. Check out any Read.me files for further information. Three words of caution before you continue. First, while copying, HDSCAN does not check to see if the destination file already exists...it will just overwrite the destination file. Second, I don't do any bounds checking on input, so if you feel you must have long directory names that require you to type in over the scroll window graphics, go ahead. You can't hurt anything that pressing the HELP key twice won't solve. I know that I should really go in and prevent that from happening, but this program was designed not to be restrictive and should allow you to use it in ways I haven't planned for yet (planning for the unplanned?) Also, be careful about using the 'E' key. If you tag some files in one directory, then do a search for some other files and tag some of them, be aware that the previously tagged files will also get erased (unless you un-tagged them of course). Just because you can't see the file anymore in your currently selected subset of the disk does not mean it isn't tagged (that will be obvious, actually, if you look at the total tagged window). Happy computing... HDSCAN 1.2/2.2 RELEASE NOTES - New Features: The 'B' Key option - I added a 'B' key option that goes through and groups all files into disk order, rather than the RANDOM order that you will see files in upon running HDSCAN. The RANDOM order is actually the same tree order the files appear in your FAT tables, so they are actually already clustered together within their respective subdirectories. It is just that as your hard disk gets more fractured due to erasing and moving files around, your FAT tables will get messier and messier (I am not being personal, FAT stands for File Allocation Tables). After you get used to viewing the disk via using the match, directory select, and/or sort (hint, hint) options, you will probably never even bother using the 'B' key. Currently known bugs/limitations: 1) if you run a gemdos program, or anything that uses with the mouse, via the user-definable function key options, HDSCAN may have wierd things happen to its' graphics. This is a feature/bug of GEM's pexec and GEM itself as far as I can tell, so until someone explains what is up, HDSCAN will retain this limitation. (Actually, this won't be a problem for most users.) 2) if you have a directory path (i.e. C:\PICTURES\DEGAS\ELITE\TINYED\...) that is more than 127 characters long, you won't be able to run any external programs on that file. This is a Pexec limit and you will probably run into problems with other things if you keep it that long anyway, so I have no workaround plans for that. 3) one other limitation is that if you have more than 2500 files on all your hard disk partitions, HDSCAN will tell you so and stop. I have a messy hard disk, and even on my PC with 40 megs of ST BBS stuff, I would only have around 1800 files, so I am sticking with this limit until people start to complain. (Actually, the ST starts doing wierd things when you get too many files in a set of folders anyway...try opening up 4 folders on the desktop, each with 100 files in it, and then adding files to the folders...strange TOS errors.) HDSCAN 1.22/2.22 RELEASE NOTES - New Features: Well, as luck would have it, some people out there are braving the 40 folder limit and using 120-150 folders on a hard disk. So this version has been set up with the following features: 1) You can have up to 199 folders. 2) You can have up to 2500 files. 3) You can now tell HDSCAN what drives to read and in what order (so even if you have more than 199 folders, you can still use HDSCAN....) 4) Some new hidden options to create directories and to turn write verify on/off. Two new commands: Write verify-To turn write verify on, press the 'w' key. To turn verify off, press the 'W' key (uppercase w). Create Dir - To create a directory, just press the ~ key. You will be prompted for a directory name. You can type in the complete path of the directory you want created (i.e. D:\DEGAS\PICTURES) or if you are already inside the directory you want to create the new dir in, just prefix the name of the new directory with a ~ character (i.e. if you see D:\DEGAS up in the PATH window, just type: ~PICTURES to achieve the same thing as typing D:\DEGAS\PICTURES). And one new option: Drive select-HDSCAN normally selects the drives by searching from drive 'C' up to the first drive that doesn't appear in the drvmap. (ala old IBM PC programming style). Some people out there decided to make their hard disks C, D, G, H, etc and were surprised to find out that HDSCAN only found drives C and D. To solve this, create a file called HDSCAN.DRV and put one line of letters in the file-each letter indicating the respective drive you want loaded. For example, the following line in file HDSCAN.DRV: HABCDG would load my ramdisk contents (drive H) first, then my two floppy drives would be scanned, followed by drives C, D, and G. Crude, but it is something you won't be changing often, so it's better not to have to be prompted for it by the program... ps...if you are using an non-standard hard disk driver (i.e. aythinng not apropved by Atari) and HDSCAN fails, please drop me a line explaining the configuration. All this program does is perform sector reads to obtain the standard drive cluster info, so more programs than this one may end up giving you grief if that is the case. I do know it will fail if you have an unreadable ram disk (i.e. it is deleted, but still in your drvmap). HDSCAN 1.3/2.3 RELEASE NOTES - New Features: 1) Pressing O (instead of o) for ordering the file names by size, date, or name will maintain that sort option through all the subsequent file reselects...until another O or o option is used. 2) Pressing M (instead of m) will mass copy files as before, but the file attributes and file date of the source file will be transferred to the destination file (better for backups). 3) Pressing S (instead of s) will allow you to Set a file match as before, but S will cause the match to occur only within the currently selected subset of files. This will allow you to easily narrow in on a set of file names. 4) The s/S (Set match) option also now allows you to type in * to select all Tagged files and even supports an 'extension' search option. If you type in .pas or .c after selecting the Set match option, hdscan will search for whatever extension you typed after the '.'. Note that the `.` must be the very first character. 5) Copying files now features a mechanism whereby you will be prompted to insert a new disk if your destination drive gets full. Only if you are copying to drives A or B, of course. 6) The R option (Rename file) has been extended to allow viewing and changing of the file attributes (Read only, Hide file, System file). I kept this simple by showing the old (default) values in brackets, so you just hit return through the option for now change. 7) Some other diddly stuff like showing how much space is left on the hard disks in the info section, revamping the Help and Info displays to a) fit all the options in, and b) allow those of you with 10 or so drive partitions to see the info on all of them, etc. I didn't come up with a reliable solution to the problem of reading from subdirectories on 'changed' floppies (i.e. if you stick a floppy in the drive after running HDSCAN, the file open process in hdscan will not see the files in subdirectories during copy, even though hdscan itself will show the files!) Hdscan will always show the files on a drive, because it does direct sector reads of the floppies/hard disks, but Gem has this serious problem with not handling changed media very well. To read from a subdirectory on a floppy, just be sure to open up that floppies window prior to running hdscan. Note: hdscan was not originally intended for copying from floppy to hard disk. It is better suited for handling the massive structure of a hard disk and moving files to floppy or other hard disk areas. Send Contributions/Orders to: Todd Burkey c/o Mindtools 3546 Pilgrim Ln Plymouth, MN 55441 If you like the program, use it, and want to help fund further development, please send $10. If you want to order the product version (2.3), it is only $20 (plus 6.00% tax in Minnesota). I will mail it anywhere in the USA/CAN at no extra charge ($3.00 shipping for overseas orders). 5/15/1987 - hdscan ver.1.3 (shareware) and 2.3 (professional) `t&*o m$m,B"HJgP"&J$YJf"Jg< Af Rf Gf Vf =f Jg#2B "&J$YJf"Jf&f2B "TEHB2 r ggSJ"g fB*`B" uz#uz.I+I/ #uT//SA?/ / Bg?<JNA Jf.?<?<NoD>No?|BWNoD>NoXON" ?Nn8?<LNANV/<u~/<N_POp?NNTO=@Jnf"/<uN`XOp?NATOp?Nn8TO/<u/< N_PO nf p3N`ByNNLNp?p?NMXO# Qg 9#& t&g T&f09TH"@0H @ P#g&09TH"@0H @ P ff09TH"@0H @( 9uXА#uXN@D09TH @0H @p*0?9HNATOpP# 9H@B@# u&g U&f09TH"@0H @ P#g(09TH"@0H @ P*f09TH"@0H @ P*f.09TH"@0H @( 9uX#uXN@D09TH @0H @p 0?9HNATOpP# 9H@B@# h&g H&f?9TN/TONP b&g B&f NN9 v&g V&f?9TN,TONP f&g F&fN3/<uN<>XO e&g E&f N"pN7 ~&fN% W&g w&fXBp ?NA\O# w&fp1D`BxD/9p ?NA\O w&f/<v`/<vN<>XO !&f N2N@D *&f N)NP +&f/<v0N<>XOBgNXOp?p?NW XOB98/<8NeJXO/<8N_XO38 y8lR/<09TH @0H @0d//<vj/<8N`Hp38 y8o/<8/<vo/<N`H NBy ^/<vtBgp?NWVPOBy8098yu\n\098H @ P*f098H @?N*TOJy ^g/<vN`XOp?NATO`Ry8`NP/<vN<>XO =&fPN/<vBgp ?NWVPO/<v/<N_PO09TH @?N*TONP d&g D&f8/<vN<>XOBgNXON7 r&g R&fN/<wN<>XON7 ?&fN/<wBgBgNWVPOBy8 y8n098H @BRy8`By8098yu\nl098H @0d @H@A=@0.H"@098H @( Б2.H A Ry8`By8098yl098H @0H"@098H @ /098H @0H @/098H @/098H @0@A?/<wjN`Ry8`P/<wN`XOp38 y 8n0098H/?98/<xN` Ry8`/</<xN`POp?NATONP s&g S&f N4dN9 m&g M&fH/<x&N<>XOBgNXOp?p?NW XO/<8NeJXO/<8N_XO38Jy8f/<xZ/<8N_PO`00y87 \g0y88p\0y89B/<x^N<>XOp?NXON7 &f NN9 7&f BN: 9H@H# 8&fpH# 2&fpP# :o" El 9:?N(\TO bf N.\NP f N3N7 fnBy8098yu\nN098H @ P*g098H @ P#f098H @p 0Ry8`BuXN7 GfN9 KfX09TyuhS@3TJyTlByT09Tyuhl 3THBy8098yjn09TyHy8H @0 1/09TyHy8H @0 1//<xx/<N`H09uly8?09uj@ ?NW XO09TyHy8H @0H @?/<xN`\O/<09uly8??9ujNWVPORy8`?9HNATO Mfh09TyuhR@3T09ubyjyTl N:`609Tyuhl 3THBy8098yjn09TyHy8H @0 1/09TyHy8H @0 1//<x/<N`H09uly8?09uj@ ?NW XO09TyHy8H @0H @?/<xN`\O/<09uly8??9ujNWVPORy8`?9HNATO PfP09Tyubl4?9HN@TORyT09HyuhnRyH` BgNBTO?9HNATO HfFJyTo0?9HN@TOSyTJyHoSyH` p?NBTO?9HNATOp ?NATOJgHp?NA`?9N\"TON[`N^NuNV?9N[TON^NuNVp?NATO?9N\"TON[`p?Nn8TON^NuNVH~yu^n8|yu\n*0H @0Gf0REH @0RF`RG`/<x/<>N_PONdLN^NuNV#'P3'3'lBuXByu\Byu^Byu`ByubByudByufNN^NuNV/<xN<>XOBnByp ?NMTO-@ .=@Bnp=@N&Jng/<x/<xNePO-@g/.NiXO/<xN<>XO/<xp?p'?NWVPO/<xp?p'?NWVPOp ?NATOJgp?NATO-@ Ag af&09RyH @BPp=@p=@ Bg bf(09RyH @p0p=@p=@0.@g*0.H @0.n0RyRn`/<x/<xNePO-@gxBy/.NeXO=@ @gP0.@A=@Jnm nn .4. f09RyH @0`/.NiXOBn0.԰ylByur0.H @3?9p?NMXO#: y:0(H/ y:0(H/NtPO2.H A y:=hJno/9N_ZXO y:0?N_BTO#Jf/<xN<>XON?9p??./9Bgp?NMJlNKJno/9N_ZXO y:0(HH?N_BTO#Jf/<y&N<>XON"y: y:0( i=@?9?. y:?(/9Bgp?NMJlNK"y: y:0H =@-y09@A?/<y@/< N`H Ryu^3u^u` yu^m/<yEN<>XON/< 09u^d/N_POBn0.Ұnl0.HЮ @C A2<!!QJ.gB@.@fB@. @g ..g09u\H @n009u\H @( 09u\H @0u`B@.@g09u\H @pD`09u\H @p 0Hn09u\ 1/N_PO09u\Ryu\ @2B09@A?/<yd/< N`H y u\o/<yiN<>XONJ.gB@.@g B@. @fRn` ..gRyutHn09ut*/N_POBy8ByT y TnZ yTf098Ry80@p. NT ( g 098Ry80@"NTRyT`0y8BSy80980@ .f0y8BRyur/</< /<y/< N`HRyu^3u^u` yu^m/<yN<>XON/< 09u^d/N_PO?.NETO?NF8TO`09urnRn`Syu\p?p?NW XO09u\R@?/<yN`\OByT09Tyu\n 09TH @0TRyT`3u\ubByT09Tyubn09TH @0T09TH @(/NEXO29TH A( 09TH @n?NETO29TH An0RyT`pN9/<yN<>XON^NuNV09TH"@0H @3u`/<zN<>XOp?p?NMXO-@ g . Ag . ag .H@H-@ PfRyu`09u`yu^op3u` HfSyu` yu`l 3u^u`09u`d//<z,/<N`H /</<z[/<N`H /<p?p?NWVPOp ?NATOJgp?NATO`Byub . Ag . afBn0.yu\n09u`d/0.H @0d/NKPOJ@m209ubH @0.029ubH A0RyubRn`~Bn0.yu\nR0.H @09u`Pf209ubH @0.029ubH A0RyubRn`SyubpD `pI apR bB9 c/<zc/<>N_PONd/<zjN<>XON^NuNVp?p?NW XO/<>/<zlN`POp?p?NW XO/<zqN`XOp?p?NW XO/< `/<zzN`POp?p'?NW XO09ubR@?/<zN`\ON^NuNVBnBn n nr nf0.Rn0@p.0. /0.Hї  @1  g.0.Rn0@0. /0.Hї "@1Rn`0nBN^NuNVBn09TH"@0H @ PXg09TH"@0H @ PDg09TH @?NTO09TH @0 1/09TH @0 1//<z/<N`H/<N<>XOp?p?NW XOHnNeJXO/<09TH @0H @0d//<zHnN`HBgBgHnpC?NA =@HnN_XOJ@oBnHnN_XOnm& N(H?N_TO N@Rn`Hn09TH @0H @0d//<zHn~N`HBnHn~Hn?.pV?NA -@Jg /<z`BnBnHnN_XOno N (.fJ=n nnx2.Rn09TH @0 /0Hї  @1p Rn`2.Rn09TH @0 /0Hї  @1"NRn`R=n n n<2.Rn09TH @0 /0Hї  @1p Rn`0.@=@0.@gpY`pN@.H?/<z/<N`H /<N<>XO0.@=@?.NXO0.@H=@?.NXO0.@H=@?.NXOBgNXOp?NXOp?p?NW XOHn/<{N`POp=@ nf0p?p.?NW XO/<{N`XOBgNXON^NuNV09TH"@0H @ PXg:09TH"@0H @ PDg09TH @?NTO/<09TH @0H @0d//<{HnN`HHnpA?NA\O-@Jg/<{NXON^NuNV/<{N<>XOp?p ?NW XOHnNeJXOHnN_XOJ@f /<| `BnHnN_XOnm& N(H?N_TO N@Rn` .~fHHn09TH @0H @0d//<| Hn~N`H`HnHn~N_POHn~p9?NA\OJg/<|NXON^NuNVp=@ n n:?./<|8HnN`H Hn0.H/N_PORn`/<|K/<|@NePO-@gV/.?<HnNd Jg.BnBnBnHnN_XOnml N(H?N_TO N@ N (=f=n N ( g N ( g N ( fSnRnRn` .FfR noH nl>.H@0=@Jnm( n n nf.Hn/<|MHnN`H Hn/<N_PO`Hn/<|PHnN`H Hn0.H/`/.NiXON^NuNV09TH"@0H @ PXg:09TH"@0H @ PDgNBgp ?NW XO0.H//<|SN`PO09TH @?NTO/<09TH @0H @0d//<|fHnN`HHnN_XO@/<|lHn0.H/BgpK?NA=@Jnl0.H//<|sN`PO/<|N`XOp?NATONPN^NuNV09TH"@0H @ PXg09TH"@0H @ PDgN/<|Bgp ?NWVPO09TH @?NTO/<09TH @0H @0d//<|HnN`HHnN_XO@/<|Hn/<|BgpK?NA=@Jnl/<|NXOp?NATO=@ nag nAfp?N3TO#в nbg nBfp?N3TO#N3N^NuNV/9/9в/<Y/<N`H/<p ?p?NWVPON^NuNV?.Hnp6?NAPOJlp`HnHn/.NtPO/NtPON^NuNVBn0.yu\nN0.H @ P#f20.H @p*00.H @( 9uXА#uXRn`N^NuNV=yubByub/<fN<>XOp?p$?NW XO/< `NeJXO/< `N_XOJ@f`/</< `N_POBn0.yu\n.0.H @0.02.H A0Rn`3u\ub`T/< `N_XO @fn9 `H @*f`Bn0.yu\n0.H @ P*f209ubH @0.029ubH A0RyubRn`p=@/< `N_XOnmH0n ` .g 0n ` *g0n ` ?f/<NXOBn/< `N_XOnm*0n `H?N_TO0n `Rn` s&f=yu\Bn0.nn S&f0.H @=P`=n9 `H @.gT/< `0. 1/NKPOJ@m209ubH @0.029ubH A0Ryub9 `H @.fT/< `0. 1/NLJPOJ@m209ubH @0.029ubH A0RyubRn`Syub/</<>N_PONdN^NuNVBn?9ub09uhR@?N[XO3j09TyH=@09TyHyuhR@nm$0.yjn0.H @0 1/0.H @0 1//</<N`H/<09uln??9ujNWVPO09uln?09uj@ ?NW XO0.H @0H @?/<N`\O`F/<09uln??9ujNWVPO/<09uln?09uj@ ?NWVPORnRn`N@D?9HNATON^NuNV?9ub09uhR@?N[XO3jByT09uhR@yTm209Tyjn09TH @0 1/09TH @0 1//</<N`H/<09ulyT??9ujNWVPO09ulyT?09uj@ ?NW XO09TH @0H @?/<N`\O`J/<09ulyT??9ujNWVPO/<09ulyT?09uj@ ?NWVPORyT`ByTByH?9HNATON^NuNVBn?9ub09uhR@?N[XO3j09ubyj3T09ubyjyuhyTm.09Tyubn09TH @0 1/09TH @0 1//</<N`H/<09uln??9ujNWVPO09uln?09uj@ ?NW XO09TH @0H @?/< N`\O`F/<09uln??9ujNWVPO/<09uln?09uj@ ?NWVPORnRyT`3ubT3jH?9HNATON^NuNV/<p?p?NWVPO/.p?p?NWVPON^NuNV/.N<>XOp?NATON^NuNVp?NATO=@ nf nng nNfB@`Jnf nyg nYfpN^NuNV$BnBnByL?.NTO0.H @0d//. N_POJ@f/<PNXOp?p?NW XOHn/<N`PO y f.p?p/?NW XO/<N`XOp?N?NA`BJnmJnmHn/<@?.p??NA -@oHn/.?.p@?NA g?.p>?NAXO?.p>?NAXOHn$pA?NA\O .A$g .B$f2/<N<>XOp?NATO gp3L`/<`0.H @( 9uX#uX0.H @p#0N@D?.p>?NAXO?.p>?NAXO M&f6p?Hn$p=?NAPO=@p??.HnpW?NA ?.p>?NAXON^NuNV uXo/9uX/<`& duXl/9uX/<` /9uX/<*/<N`H /<p?p?NWVPON^NuNVBn nn0np Rn`09TH @0 1/09TH @0 1//<5/<N`H/<09uln??9ujNWVPO09TH @0H @?/<?/<N`H /<09uln?09uj@ ?NWVPON^NuNVBn nn0np Rn`09TH @0 1/09TH @0 1//<B/<N`H/<09uln??9ujNWVPO09TH @0H @?/<P/<N`H /<09uln?09uj@ ?NWVPO 8&g 2&gNC N^NuNV nfp?pB?p?p4?p?`p?pB?p?p4?BgNY N^NuNV09TH"@0H @09lPg09TH"@0H @3l09ld//<S/<N`H /</</<N`H /<p?p?NWVPO09TH"@0H @( 9PgX09TH"@0H @(#P/9P/</<N`H /<p?p?NWVPO09TH"@0H @n09Pg09TH"@0H @n309TH"@0H @n3F09HH@@P?09@?09H@?/</<N`H/<p?p?NWVPON^NuNV y:Jhg 0.H@B@H@ @?NETO`j0.Hn=@ 9?.BgП-@A-H"n n"n ni?.NETO=@0.@f0.`0.H@N^NuNV-nA-HA-H n?NETO n1@ n?(NETO n0 .N^NuNV=nA-HA-H"n n"n nQ0.N^NuNV/ y:0(H =@A-H?.HnNKf\OBn0.nl0.HЮ @C A2<!!QJ.gB@.@fB@. @g ..g09u\H @n009u\H @( 09u\H @0u`B@.@g09u\H @pD`09u\H @p 0Hn09u\ 1/N_PO09u\Ryu\ @2B y u\o/<N<>XONJ.fSyut09u`d//<NN_PO/<NN_XOS@3TJyToSyT09T0@N \fRyT09T0@NB3u^TJyTo*SyT09Td//<NN_POJ@f3Tu`p`B@.@gB@. @g ..fRn`Ryut09ut @m(?9ut/<N`\O/<N`XONHn09ut*/N_PO09@A?/<'/< N`H p3T09TyutnBy8Bn n n nf098Ry80@p.09T/0.Hї  @*  g4098Ry80@09T/0.Hї "@*Rn`x0y8BSy80980@ .f0y8B/</< /<,/< N`HRyT`Ryu^3u^u` yu^m/<2N<>XON/< 09u^d/N_PO?.NETO?NF8TO` y:0(H&@uv?.NETO=@SeSyut09u`d//<NN_PO/<NN_XOS@3TJyToSyT09T0@N \fRyT09T0@NB3u^TJyTo*SyT09Td//<NN_POJ@f3Tu`&_N^NuNV"y: y:0. U@i =@?9?. y:?(/.Bgp?NMJlNKN^NuNV?9/<QN`\ONN^NuNVBn0nJgT=nBn0n Jg&0n H0nHAf RnRn`0n Jf0.`Rn`pN^NuNVp=@p=@0nJg20n Jg&0n H0nHAf RnRn`0n Jf0.`pN^NuNVppA `pL apL bB9 cp3 \/</<N_PO/</<N_POBylBynByVByX/</< N_POp=@p=@ n l0.H @p1@Rn`p=@NZHnHnHnHnN[v3B?<N[\ONByJHnp/<HnN\v 0.pR@3Z3p0.rR@3\3rBn/< N_XOnoBn n>n&0n H0n HAgRn`Bn n>n&0n H0nHAgRn`09Jnn3J0.n @>o0n 0.n2@ `0n 0.n2@ Rn`&09p@3^3tBy`Byvp3b3xBn/<N_XOnoBn n>n&0n H0nHAgRn`Bn n>n&0n H0nHAgRn`09Jnn3J0.n @>o0n0.n2@ `0n0.n2@ Rn`&Bn/<N_XOnoBn n>n&0n H0nHAgRn`Bn n>n&0n H0nHAgRn`09Jnn3J0.n @>o0n0.n2@ `0n0.n2@ Rn`&?9N\LTONPN^NuNVNPN3N7N^NuNV#'P3'3'lNp?p?NW XO/</</< /<N`p?p?NW XO09u\R@?/<N`\O/</<>N_PONd09J@ f=@/< p??.NWVPO/<0p??.NWVPO/<:p??.NWVPO/<Fp??.NWVPO/<Qp?pC?NWVPO/<[p?pC?NWVPO/<fp?pC?NWVPO/<rp?pC?NWVPO/<}p ?pC?NWVPO/<p ?pC?NWVPO/<p ?pC?NWVPO/<p ?pC?NWVPOp ?pO?p??.NWPO/<p?p'?NWVPO/<p?p%?NWVPO/<p?p$?NWVPO y Jg/<N<>XON/<p?p?NWVPO/<p?p?NWVPO/<p?p?NWVPO/<p?p4?NWVPO/<p?p?NWVPO/<p?p?NWVPO/< p ?p?NWVPO yudf/<Ep?p?NWVPO yudfp3ud/<lp ?p?NWVPO/<p?p?NWVPO/<p?p?NWVPO/<p?p?NWVPO/<p?p?NWVPO/<?p?p?NWVPO/<kp?p?NWVPO/<p?p?NWVPO yudfp3ud/<p?p?NWVPO/<p?p?NWVPO/<p?p?NWVPO/<Dp?p?NWVPO/<pp?p?NWVPO/<p?p?NWVPO/<p?p?NWVPOJyudf p3ud/<p ?p?NWVPO/<$p ?p?NWVPO/<Vp?p?NWVPO/<p?p?NWVPO/<p?p?NWVPO/<p?p?NWVPOp?p?NW XO/</</<N` /<0p?p?NWVPOp?p?NW XO/< /<`N`PO/<p?p?NWVPOp?p2?p?p?NX096N^NuNV3# DpN?NZTON^NuNV0.n l0.`0. N^NuNVp3кByмBy3N]N^NuNVpe3кByмBy3N]N^NuNVp{3кByмBy3N]N^NuNV#Z#b .Z#fpd3кByмp 3 n 3N] n 0#Z#b# ^f# ^^N^NuNV# ^p3к3 мBy3N]# ^^N^NuNV3 /.NtXO/.NtXO# ^pm3кp3мp33N]# ^^N^Nu#кV"<V <sNBNuNVH8..P b d.</NqXO*@ Mg`JHf&M #*#&`& yHf QP&m`(yHQ L&h)M Q@* Ѝ#H(@Q LB)KL8N^NuNVH0~ .\S@,dB`ƙ*y& gr .gH g @є .*L(Mc2  d @*`* Ѝ#& y& X`dJg @Ѝ*@`*m&f g#&Ry.09. @e Sy.`X/N]XO/.N^RXO*@Sy. L0N^NuNVp0./N^RXON^NuNVH .Y*@Jf4~0G0Jg 0RG0@0H?p?p?NM\O`NnL N^Nu"o ofJfHHNu"o o fNu o"Jf S@NuNV/>.0GWH@g0@`0.N^NuNVHn/<fN`PON^NuNVHn /.N`PON^NuNVHn?</.Ng Hn HnN`POHnBg nN\ON^NuNVH0-n n(PXH> @%gJGgf/.? n hN\O`p =@p=@p=@H> G-fp=@H>`Bn G0f p0=@H> G*f& nT=Plp=@0.D@=@H>`*Bn G0m G9n0. G@0=@H>` G.fJH> G*f nT=PH>`*Bn G0m G9n0. G@0=@H>` Glf&H> Gdg Gog Gug Gxf0@> `-@*@p=@0 |t2<`XHXW PN`J nT=PJnl0.D@=@p-p ??./ NdPO*@`p ? nT?`p`p` n-PXJl .D-@p-p ?/./ Nd `p ? n// Nd *@X`p`p` n "(-@-AP/ ?././.?NnR`RBn n-Pf-|tX .-@*@JgJnm noS`(Bn nT0` n//.N`PO`X ./0.Hї =@lBnJnfLJng0 n0f( n -f/. nRH? n hN\O0.SnJ@g /.?.` nd /. nRH? n hN\O`Jng0.SnJ@g/.?. n hN\O`L0N^NuNVH >. *NB%0<g"0H@H@B@H@ @u*>`?Bg _u*Jg nR` .L N^NuNVH0*n>.IB$p0//. NsPO-@g$p0//. NsPO @u*-n ` n u*Jg` L0N^NuNVH >. *nSGo"/. n hNXO< @g 0 @ fB Ff fB` .L N^NuNVH0*n(M/<L yZNXO> @g G g`B GffB` L0N^NuNV/ *n/ mNXO*_N^NuNV/ *|d2Jg U(H@fp?//. /.Ne*`X`B*_N^NuNVH *n>.|BnBnp=@ n R pr@H @rf|pw@ n g,H @bfBnR n gH @bfBnJGlJnf?/.Np2\O>JGl@JnfJng4?</.Nn\O>m Fg?NnTO?/.Np2\O>JGmJngp?B?Np PO fp?N_BTO*@ f ?NnTO`|p@Jng- p+@*+@Bm +|i>+|ibG `DH @wfRn`H @af&Rn`H @+g.HHAf|`BL N^NuNV/ *n .*+@+|h*B-0. D@;@ m l;| +|h`+|g *_N^NuNV/ *n Sm lBm p` UR0.*_N^NuNV/ *n UR0.*_N^NuNV/ *nRm oBm p` URB@*_N^NuNV/ *nJf0-H@f?<N_BTO+@f+|k+|l`n-H@f2-H?NoTOJ@gff+|j+|mL -`&+|j+|l8-H?NiTOHЭ*+@Bm *_N^NuNV/p?B?.Np PO. fB@`0H@.N^NuNV/ *n/ NhPXO/ mNXO*_N^NuNVH >.*n / NhPXO/ ? mN\OL N^NuNV/ *|Y MeJg/NiXO`*_N^NuNVH *n-H@fp`@/ Nj"XO>-H?NnTOJg-H@f /-N_ZXOB-0L N^NuNVH *nBm -H@ff >o?/--H?NrPOGf$JGm mAf -*+@`+UB@` 09uRH fByuR`-pL N^NuNVH *nRm o/ Nj"XOJ@f mLxf/<fNj"XO -?/--H?NpPOD@;@ @f^09uRH fByuR`-Bm `F0- Rm m+H URB@>-H@ g G gL Gg 0`Jm f-pL N^NuNV/ *n mLxf/<fNj"XOBm p?Hn-H?NpPO @g4J@gP .f -H@ f< . f -H@ fB@.`(09uRH fByuR`-`-p*_N^NuNVH >.*n G f$-H@ g/ p ?Nl8\O @fp`0Sm l"/ NmXOJ@f -S@;@ UR0L N^NuNVH >.*n G G f -H@ g/ p ?Nl\O @g^Bm -H@fN/ NmXOJ@f@p?Hn-H?NrPO @f0` 09uRH fByuR`-pL N^NuNVH >.*n G f$-H@ g/ p ?NmL\O @fp`?NAXO/Ns0XO`B@N^NuNV/Bg/.pl0H/Ns0XO`"?.NrJ@f(?.Nr9jHHj*@SnmSGldpQjB9k/<jp ?NA\O>l0H`p ?p?p?NM\Opj9kH>9jHHj*@0Gp H: Ef~` n R RF E fn jjk0`$/. 0.H/?.p??NA /Ns0XOL N^NuNVH..Jl <`0Jf 9`$R @./pH?NA\O,g Ї# LN^NuNV0.H/NqXON^NuNV/. 0.H/?.p@?NA /Ns0XON^NuNVH >.0V@ @bH0@u: PN`*pP`&pA`"pC`JGm*y2SGmJfp`JgHL N^NuNVH >.JGm*y2SGmJfp` Jg0. L N^NuNVH >.0V@ @bHH0@uF PN*y2HGg Jfp`&R` 2?NoDTO`~C`~A`~P`pL N^NuNVJl .D3uRp` .N^Nu"o`C"/jD$jDA`|J/j JgRJk`JjDNu"o`C"/$A`JNu"o`C$jD"/A`, g J/j Nu"o`C$"/A` NupJfpN∲cd⒒d҂dFN o"`"/ jD$/jDD$@A`" jDNu o"`"/ _$0"@0HAHBЁH@B@ЉNNV/ *nJg/<fH? yxN\OR`/<fp ? yxN\O*_N^Nu"/0<NBNu#Nu#Nu{NULL}DbXObUbXbcc(dbebfbgbobPrc:sbub@xbTD`0123456789ABCDEFrbrfrjs"ss4@Todd BurkeyBARBARASorry, Medium or High Res only [Hit any key] ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 Write Verify Turned onWrite Verify Turned offpAdd to ARC file. Are You Sure? [N]qARC PathName [%s]:%s%sa %spARC'ing Tagged FilesqSomething nasty happened [Hit any key] pVerbose ARC View (CTRL-S/CTRL-Q To Pause/Continue)qvpReally want to delete it? [N]q p Disk/Function key Info (Hit any key to exit) q |%c: %8ld total bytes, %8ld used, %8ld free | p Function Key Bindings (Override with HDSCAN.KEY) q F%d: %s F10: %s pMass Copy: Are You Sure? [N]qDEST Path [ A:\]: A:\Query on Each Copy? [Y] %.8s.%.3s%c%.8s.%.3s%cBETTERpScanning DrivesqHDSCANAB.DATrpInclude A:, B:, or Neither (A,B,N) [N]?q?p?qHDSCAN.DRVrCan't malloc FAT table space [hit a key]Out of memory [hit a key]%c:\Sorry, >199 dirs...[hit a key]%c:\Sorry, at 2500 file limit! [hit a key]%s%s\Sorry, >199 dirs...[hit a key]Match= ALL Order= RANDOM Found: %d pPress HELP key for more helpqpUse Arrows, then TAB or A to Selectqp%s %.46sqRANDOM %.6s %.8s%d pNew name? [%.8s.%.3s]q%s%s%s%sError Renaming file! [hit a key]pRead Only? [%c]qpHide File? [%c]qpSystem File? [%c]qCan't Change Attributes! [hit a key]Can't Change Attributes! [hit a key]pDelete Tagged Files? [y/N]q Query for each file? [Y/n]%s%s DEL->%.40s OK? Sorry, couldn't delete! [hit a key] %s%sSorry, couldn't delete! [hit a key] pDir path? q %s%sSorry, couldn't create! [hit a key] F%d.TOSHDSCAN.KEYr%s%spInvoking %seq %s%sPATH=Sorry. Error running %s. Is it missing? [hit a key] f[Hit any key to return to HDSCAN] pInvoking ME.TOSeq %s%sme.tosPATH=Sorry. Error running ME.TOS. Is it missing?f %s %s%sARC %s ARC.TTPPATH=Sorry. Error running ARC.TTP. Is it missing?--Hit any key to continue-- %s%sError: Cannot Open File! [hit a key]pHit any key to continue, ESC to Exitq -EOF- p Extended HELP for HDSCAN (Shareware Version) q |U/D Arrows: Scroll File list up/down |L/R Arrows: Page File list up/down | |HOME key: Go to Top of File List |Shift Home: Go to End of file list | |w/W keys: Turn Write verify on/off |F1-F10 key: Run external programs | |T key: Tag a file |U key: Untag a file | |ALT-U key: Untag all Tagged files |ALT-T key: Retag all Copied files | |m/M keys: Mass copy (new/old dates) |s/S keys: Set match on all/Subset | |H key: Dump a file in HEX/ASCII |V key: View a file/strings-like | |E key: Erase all Tagged files |D key: Delete current file | |R key: Change name & attributes |F key: Show Free space on A or B| |= key: Verbose Arc listing |+ key: Add Tagged files to .arc | |TAB key: Select files by directory |~ key: Create a directory | |? key: Disk/keymap info |! key: Rescan drives | p q HDSCAN+ (c) 1987 by Todd Burkey is a hard disk utility and, if used with care, should prove an invaluable tool. Todd Burkey and %s will not be held responsible for any damage, loss of time, etc that this product may incurr. As with any disk utility, use it at your own risk. Please read the doc file! --Hit any key to continue-- %s%sError: Cannot Open File! [hit a key]Error: Cannot Read File! [hit a key]pHit any key to continue, ESC to Exitq -EOF-pWhich Drive (A/B):q%7ld B: %7ldpMatch (<=8 chars) [Return for all]?q ALLSorry, only simple matchs in this version-OK? RANDOM%.8s.%.3s%c %.8s.%.3s%c %.8s.%.3s%c Error! Dest and Source Paths Same - OK? %s%s%s%s %.37s OK? Can't Open: %s [hit a key] Can't create: %s [hit a key] Full! New Disk Inserted? [ESC aborts]Error Writing File (Disk Full?) %.7ld %.7ld %.7ld %.8s.%.3s%cp%.8s.%.3sq%cp%.44s %.46sq%.6ld %.2d/%.2d/%.2d Sorry, at 2500 file limit! [hit a key]Directory depth exceeded %d deep Sorry, must abort! [hit a key to return to desktop] %c:\%s%s\Sorry, >199 dirs...[hit a key]Error in reading disk %d [hit a key to exit to desktop] jQac Ny46Muk94YmM67UIos90ZsZ89n33m034J tm44Hfb3pHDSCAN by Todd Burkey (c)1987 %s, %s, %sqMatch= ALL Order= RANDOM Found: %d RANDOMpHDSCAN HELPqT)ag FileU)ntag FileM)ass copyH)ex DumpV)iew FileF)ree SpaceS)et matchE)rase FilesD)eleteR)enameQ)uit-not qHDSCANShareware!Version 1.30pProgram CODE damaged...aborting!PATH:SIZE:DATE: FILE NAMESTotal TaggedSize (bytes)Free Space (bytes) - A: ? B: ?No more messages/soliciting...have funIf you happen to be one of fortunate fewto get hold of a color ink jet before theystopped production, we have a snazzy dumpprogram called CANDUMP for the CANON colorprinter...$30 includes shipping. It givesbetter color match/control than anything wehave seen yet. We also support Quadram andTandy Color Ink Jets (specify on order).HDSCAN is great for general purpose backups,rearranging files, discovering and deletingduplicates, viewing and dumping files, anddaily backups (using sort by reverse date.)Also, if you have any comments/suggestions,feel free to write me or dial up my BBS at:612-542-8980 (300/1200/2400, 24hrs a day)This Version of HDSCAN is Shareware! You may givecopies to anyone, as long as you don't modify theprogram or sell it. This is not a demo of a finalproduct. It is usable version (I always hate itwhen PD S/W has stuff like 'SAVE' disabled). Ifyou find this program useful, please send $10 to:Todd Burkey, %s, %s. If you want the production version, send $20 to%s, c/o the same address (free shipping). It has sort options, file compare, and more.Y%c%cY%c%c%s  Bad pointer in free. i>ib!i>ib!i>ib#LfYou must compile with the -f option to include printf() floating point6CCAP????????????????????????@@@@@@@@@PPPPP@@@@@@@@@@@@@@@@@@    @L"20                                                                                              & : ( * D       f      6                 f     4      2           $   .4  . 8 @ @ (&"  "    .           $   "            &            &   0  * 0  (   $D X~"    F. 4                                        n        :F"  "J                 >             6JV$f         4                  :     $   $  $        04   &L .   .    8  @J$  $Z(FPBLD |V(",p$  .6*" .J0.$nBF\ @$@ (  .8*046 , 6&,$,&2> 06   @ 0t &intin_fnam_endclust_vuprompt_>tmpd_Fpcnt_Hpbot_nufreeopt_3init_fkeys_&nextclst_Echk_Jretry_L_aliasfh_r_fopen_esort_always_purename_v_clrwk_[malloc_B_fprintf_0`mono_Nohb_2buffer_Poldsize_Pz_Tv_opnvwk_v\exit_8n_setfhtype_rhexdump_/dup2_olldivRsdes_Vfclose_illremsws_init_Lolddir_lfiledate_n_fputb_8lshow_tag_cnt_D@select_d4bad_exit_appl_init_Z_fputc_l_stdin_Lcontrol_int_in_filename_1environ_TulrdivXsint_out_6crystal_tprintcr_VW_stdout_fshow_free_3dboxcr_i07201030305800 1 2Page # F0110030 9[..............................................................]001  HDSCAN Shareware Ver. 1.3 (The ST Hard Disk Utility) (c) 1987 by Todd Burkey Note: This documentation must be included in an ARC file with the HDSCAN program if you wish to distribute the program on BBS's or Club Disks. Any modification of the program or this document is expressly forbidden. HDSCAN 1.3 is Shareware. HDSCAN Professional is not! This documentation covers the features of both the shareware version as well as the Professional one to give you an idea of the different features. DISCLAIMER: I spend all my money on computers that outdate themselves within a year, so I really don't need a disclaimer...although with GEMDOS and the XBIOS occasionally doing undocumented things, I should say that "LET THE USER BEWARE". There. Safe. INTRO: Whew, even with the bugs and poor documentation on the ST, I think this program was easier to write on the ST than any computer I have had (MAC, AMIGA, IBM PC, and CP/M). Basically, HDSCAN started out with my developing a set of window region scrolling routines and then trying to figure out what to do with them. I had been waiting for a product to come out like XTREE or PCTOOLS (IBM PC programs), or even a PD program like SWEEP. Anything to make dealing with my hard disk easier. Since I had a lot of requests to make DISKTOP support hard disks (and I really didn't think that would be useful), I decided to go ahead and try to write my own utility. Special thanks to whoever wrote BLASTER, since seeing it scan the hard disk so quickly got me on the right track for this program (HDSCAN will typically read a 30 meg drive...all partitions...in around 3 seconds or so, gathering file names, sizes, dates, paths, etc.) I will keep this file short, since HDSCAN does have a help key. HDSCAN is first and foremost a utility that lets you tag files throughout your hard disk and then copy (or erase) them in one pass. Because I got carried away, HDSCAN also lets you hexdump any file on the hard disk, view any file (even binary files if you like), rename a file, show the free space on drives A and B, select for display files matching a specific string (i.e. to just see all file names that have NEO in them), select just files in one directory, select all the files on all partitions of the hard disk to scroll through, and more that will make sense when you try out the program. Recently added features allow you to view the contents of arc files, arc all Tagged files together into one file, edit a file at the press of a key using your own favorite .tos/.ttp editor (i.e. me.tos), and even run any TOS program you want by pressing a user-definable function key (F1 to F10). This latter feature really opens up a lot of possibilities. You can, for example, assign LESS.TTP to the F10 key and then every time you press F10, HDSCAN will pass the full path of the file you are currently scrolling over to the LESS.TTP program. Or, you could assign PCOMMAND to the F1 key and drop into a PC DOS like shell at the touch of a key. My favorite is assigning TINYLOOK.TTP to the F10 key. That progam loads in a tiny picture, switchs resolution, shows the picture, and then pops me back into HDSCAN where I can Tag the picture for future deletion or mass copying! Get enough auxillary programs set up under HDSCAN and you won't spend much time searching through the desktop again!  And all that is Shareware. I am really trying hard to put as much into the PD version to give people a useful tool. Version 2.3 is not public domain (I have to make a living some way or other) and has some embellishments that I think most of you will appreciate. In 2.3, you can sort by date, name, and size all the selected files in ascending or descending order. For example, you can select all PAS files (all partitions), sort them by reverse date, then easily tag all the new files for copying to floppies. Or maybe sort the entire drive by name to help find duplicate files (this will make more sense when the 40 folder limit get fisxed). The sort in 2.3 is a recursive quicksort, so even a thousand items will be sorted in a few seconds. Even already sorted stuff won't slow down my version of the qsort (Quicksort'ing sorted data is usually horribly inefficient unless it is randomized first.) 2.3 also has a file compare capability, just in case you can't remember if a file is really a duplicate. Finally, 2.3 will better support people who want to use HDSCAN to reorganize their hard disks...with stuff like auto regeneration of the arrays after a mass copy from hard disk to hard disk, and hard disk 'DISKINFO' style info updated on the fly to keep things organized. USING HDSCAN: HDSCAN works best if you have a hard disk. After a bit of soul searching I added floppy support as well. If you don't have a hard disk, or do and want to read off of floppies as well as the hard disk, create a file called: HDSCANAB.DAT in the directory you run HDSCAN from (the file can be empty or have data in it, HDSCAN just looks to see if the file exists so that it knows whether to bother you with prompts or not). If you plan on looking at arc files while in HDSCAN, be sure ARC.TTP is in the directory as well. Also, if you want to do any file editing, copy me.tos into the directory as well (the name is hardcoded-you can rename your favorite editor to that name or simply reassign one of the function keys to call up your editor.) If you want to use external programs, modify the file called HDSCAN.KEY which is included in the HDSCAN release. The format is very simple, one function key per line in the format of: F1=C:\BIN\WC.PRG F2=D:\PICTURE\TINYLOOK.TTP etc.. If you don't own a hard disk, the best thing to do is to create a RAM disk on drive C and copy HDSCAN.PRG, HDSCANAB.DAT, HDSCAN.KEY, ARC.TTP, ME.TOS, and all of the 'External' programs you plan on running to it. This makes everything lightning quick and should make perusing your floppies a breeze. I even do the same thing if I plan on looking at pictures. To run HDSCAN, double click on HDSCAN.PRG and a screen will appear in front of you. I don't use GEM windows for speed reasons, so I will explain here what you are looking at. Most noticable on the screen will be a tall box near the right of the screen filled with file names. That is the 'selected file' window and you can scroll up and down through all selected files with the arrow keys and the [HOME] and SHIFT [HOME] keys to quickly get to a file. The file you are currently selecting will be highlighted. As you scroll through the files, you will notice that the directory the file is in, its' size, and its' date, are automatically updated in windows near the top left of the screen. Next to the file size window is a window that will make more sense later. It displays the total size of all tagged files. This proves useful when you are moving around the hard disk, deciding which files will fit on which floppies. Below the these two windows is a long window used for prompts. Look in this window if you aren't sure why something isn't happening...it might be asking you a question. Below the prompt window is a big free space which I am sure will eventually get filled up. Right now it is useful as a billboard. Below that is a status line that basically tells you 1) what you have selected (i.e. ALL will appear if all partitions are chosen, DIR will appear if you have selected a single directory to work in, and a string of 1-8 characters will appear if the selection was made using a wildcard string search), 2) the sort order (always RANDOM for 1.0 users, although, if your hard disk isn't too fractured, the files will be somewhat alphabetical), and 3) the number of selected files. TAGGING STuff: A few more things and you will be all set to go. First, tagging. To tag a file, simply scroll to the file you want and press the 'T' key. You will see a '*' appear in a little scrolling region next to the file name and the file window will scroll to the next file (so you can just keep pressing T to select a bunch of file.) sAs each file is tagged, you will see the total tagged size increase in the TOTAL TAGGED window. To untag, a file, just use the 'U' key. To untag all files, type ALT U. For my own sanity, I chose to show the directory names in the file window as well (they have a 'D' next to them, so you can't accidentally tag or delete them.) SEARCHING AND SELECTING STuff: Most of the time, you will probably just want to search out a few files for tagging and don't want to scroll over all 1000 or so files on the hard disk. To save some time, if you press the 'S' key, you will be prompted for a <9 character string to search for (you can enter stuff like NEO, PRG, READ, etc but no *, ? wildcards are supported...also it doesn't allow you to enter a '.' as part of the string.) Also, you might only want to select the files in one directory. To do so, pressing the TAB key will turn the PATH: window into a little scrolling region allowing you to use the arrow keys (up/down) to quickly choose the appropriate directory. When exitting the TAB key option, you are given the choice of pressing TAB (to select all the files in the currently selected directory) or A (to select all the files in all directories below and included the currently selected directory.) Every once in a while, you may want to regenerate the list of files (i.e. you have been doing some heavy deletes and don't care to see the 'X'ed out deleted files on the file list anymore). To do so, just press the ! key. Note that this command will let you switch floppies and also will let you see the results of all the copying TO the harddisk you have been doing. Note, this command automatically deselects everything. DANGEROUS STuff (Copy/Erase all Tagged files): Once you have everything selected, pressing the 'M' key will invoke the mass copy routine. This will prompt you for the destination path and allow you to copy all tagged files (with or without an interactive query on each file). Once copied, the '*' next to a file name will become a '#' to show that the copy was successful. If you later want to re-tag the '#' files, possibly for mass erase ('E' key), you can do so by pressing the ALT T keys. Note: to erase just one file, place the scroll bar over the file and press the D key.  VISUAL STuff (Viewing and Dumping files): One nice feature of HDSCAN is that by pressing the 'V' key, you can view the file that you are currently selecting in the file window. The view option does a character by character analysis of the file, just displaying the ascii printable characters on the screen, so it can be used for looking for strings in a binary file. Note that because I chose to allow looking at binary files, I also turned off highliting (ESCp/ESCq) and tabbing that sometimes appears in files. If you want to get a HEX dump, press the 'H' key and you will get a page by page listing of your file in both HEX and ASCII. If you have ME.TOS in the same directory that you ran HDSCAN from, you can invoke the editor on the file you are currently pointing at in the scroll window by pressing the '*' key (shifted 8). ME.TOS will load in, read in the file, allow you to edit and save the file, and then return you to HDSCAN when you are done. ARC STuff: To get a verbose listing of the contents of an ARC file, move to the file you want to look at and then press the = key. While the verbose listing is being displayed, you can press the CTRL-S key to pause the listing and the CTRL-Q key to continue the listing. To add all Tagged files to an ARC file, just move the scroll bar over the arc file you want to add the Tagged stuff to and hit the + key. You will be asked for a path name (in case you want to add to an ARC file that doesn't exist) and you can either hit return (to select the file you were scrolling over, or type in the full pathname of the file you want to create or add to (i.e. C:\TEST\PICT1.ARC is a full pathname). The tagged files will then be arc'ed together. NEAT STuff: These features are, of course, found in the non-PD version of HDSCAN. HDSCAN Professional allows you to sort all selected files (don't confuse tagged with selected...selected files are simply everything you can currently scroll past in the file name window, whereas tagged files are those you have tagged with the T key for some future purpose.) By pressing the O key, you will tell HDSCAN that you wish to sort the selected files. HDSCAN will prompt you for the sort key (S-Size, N-Name, D-Date) and then for whether you want to see the sort in ascending or descending order (descending date is a useful way to tag what has changed since your last backup...specialy if you are currently selecting all partitions of your hard disk at once!) Ascending name is useful to find all those duplicate files. One note on sorting: I always fall back to RANDOM order when you do a new selection by either search (S) or directory select (TAB). This provides the fastest response assuming you aren't always wanting to see the stuff sorted. The other important feature added to the Professional version is the file compare option. This feature allows you select a file for comparing by pressing the ALT-C keys. When you do so, a C will appear next to the file name and you will be prompted to go find another file to compare it against. When you have the scroll bar over the other file, press ALT-C again and the two files will be compared. For sanities sake, I will just show the first 15 differences (byte locations and values) that the program finds. Note that you can do any number of file searches and directory matches in between selecting the first and second compare files. Other features will be added to the Professional version as people convince me that they need them.  POWERFUL STuff: Because I got tired adding features to the program and it was getting big, I decided to add one more feature. This is probably the most powerful feature (and the most confusing) as well. I decided to make the F1-F10 keys into user definable keys. I have mentioned already how to create the HDSCAN.KEY file, so will only mention here that to use the program you have assigned to the key, just press the appropriate function key. If you forget what the key assignments are, just press the ? key and you will be given a listing of the keys (along with a summary of disk space). Be very careful not to run a GEM window type program from within HDSCAN, as you could end up totally garbaging up the HDSCAN display upon return from the program. Currently, I have run the following programs from within HDSCAN with no ill effects: ARC.TTP, ME.TOS, TINYLOOK.TTP, WC.PRG, OD.PRG, LESS.TTP, MORE.TTP, GALAXY.TTP, LINE3.PRG, DCOPY17.TOS, PCOMMAND.PRG, and a variety of other shells and even a few terminal programs. This is just using the GEMDOS Pexec call, so no fancy code is involved. NOTE: if you are writing an utility to use as a HDSCAN 'External' program, remember that the string that is passed in from HDSCAN contains the complete directory path with the file name you are pointing to, so be sure to allow sufficient character space (127 chars max). FINAL Stuff: Finally, to rename a file, just hit the 'R' key and type in the new name. The file name you are currently selecting in the file window will be renamed. I hope that I have covered all the basics about the commands in this short document. Check out any Read.me files for further information. Three words of caution before you continue. First, while copying, HDSCAN does not check to see if the destination file already exists...it will just overwrite the destination file. Second, I don't do any bounds checking on input, so if you feel you must have long directory names that require you to type in over the scroll window graphics, go ahead. You can't hurt anything that pressing the HELP key twice won't solve. I know that I should really go in and prevent that from happening, but this program was designed not to be restrictive and should allow you to use it in ways I haven't planned for yet (planning for the unplanned?) Also, be careful about using the 'E' key. If you tag some files in one directory, then do a search for some other files and tag some of them, be aware that the previously tagged files will also get erased (unless you un-tagged them of course). Just because you can't see the file anymore in your currently selected subset of the disk does not mean it isn't tagged (that will be obvious, actually, if you look at the total tagged window). Happy computing... HDSCAN 1.2/2.2 RELEASE NOTES - New Features: The 'B' Key option - I added a 'B' key option that goes through and groups all files into disk order, rather than the RANDOM order that you will see files in upon running HDSCAN. The RANDOM order is actually the same tree order the files appear in your FAT tables, so they are actually already clustered together within their respective subdirectories. It is just that as your hard disk gets more fractured due to erasing and moving files around, your FAT tables will get messier and messier (I am not being personal, FAT stands for File Allocation Tables). After you get used to viewing the disk via using the match, directory select, and/or sort (hint, hint) options, you will probably never even bother using the 'B' key. Currently known bugs/limitations: 1) if you run a gemdos program, or anything that uses with the mouse, via the user-definable function key options, HDSCAN may have wierd things happen to its' graphics. This is a feature/bug of GEM's pexec and GEM itself as far as I can tell, so until someone explains what is up, HDSCAN will retain this limitation. (Actually, this won't be a problem for most users.) 2) if you have a directory path (i.e. C:\PICTURES\DEGAS\ELITE\TINYED\...) that is more than 127 characters long, you won't be able to run any external programs on that file. This is a Pexec limit and you will probably run into problems with other things if you keep it that long anyway, so I have no workaround plans for that. 3) one other limitation is that if you have more than 2500 files on all your hard disk partitions, HDSCAN will tell you so and stop. I have a messy hard disk, and even on my PC with 40 megs of ST BBS stuff, I would only have around 1800 files, so I am sticking with this limit until people start to complain. (Actually, the ST starts doing wierd things when you get too many files in a set of folders anyway...try opening up 4 folders on the desktop, each with 100 files in it, and then adding files to the folders...strange TOS errors.) HDSCAN 1.22/2.22 RELEASE NOTES - New Features: Well, as luck would have it, some people out there are braving the 40 folder limit and using 120-150 folders on a hard disk. So this version has been set up with the following features: 1) You can have up to 199 folders. 2) You can have up to 2500 files. 3) You can now tell HDSCAN what drives to read and in what order (so even if you have more than 199 folders, you can still use HDSCAN....) 4) Some new hidden options to create directories and to turn write verify on/off. Two new commands: Write verify-To turn write verify on, press the 'w' key. To turn verify off, press the 'W' key (uppercase w). Create Dir - To create a directory, just press the ~ key. You will be prompted for a directory name. You can type in the complete path of the directory you want created (i.e. D:\DEGAS\PICTURES) or if you are already inside the directory you want to create the new dir in, just prefix the name of the new directory with a ~ character (i.e. if you see D:\DEGAS up in the PATH window, just type: ~PICTURES to achieve the same thing as typing D:\DEGAS\PICTURES). And one new option: Drive select-HDSCAN normally selects the drives by searching from drive 'C' up to the first drive that doesn't appear in the drvmap. (ala old IBM PC programming style). Some people out there decided to make their hard disks C, D, G, H, etc and were surprised to find out that HDSCAN only found drives C and D. To solve this, create a file called HDSCAN.DRV and put one line of letters in the file-each letter indicating the respective drive you want loaded. For example, the following line in file HDSCAN.DRV:  HABCDG would load my ramdisk contents (drive H) first, then my two floppy drives would be scanned, followed by drives C, D, and G. Crude, but it is something you won't be changing often, so it's better not to have to be prompted for it by the program... ps...if you are using an non-standard hard disk driver (i.e. aythinng not apropved by Atari) and HDSCAN fails, please drop me a line explaining the configuration. All this program does is perform sector reads to obtain the standard drive cluster info, so more programs than this one may end up giving you grief if that is the case. I do know it will fail if you have an unreadable ram disk (i.e. it is deleted, but still in your drvmap). HDSCAN 1.3/2.3 RELEASE NOTES - New Features: 1) Pressing O (instead of o) for ordering the file names by size, date, or name will maintain that sort option through all the subsequent file reselects...until another O or o option is used. 2) Pressing M (instead of m) will mass copy files as before, but the file attributes and file date of the source file will be transferred to the destination file (better for backups). 3) Pressing S (instead of s) will allow you to Set a file match as before, but S will cause the match to occur only within the currently selected subset of files. This will allow you to easily narrow in on a set of file names. 4) The s/S (Set match) option also now allows you to type in * to select all Tagged files and even supports an 'extension' search option. If you type in .pas or .c after selecting the Set match option, hdscan will search for whatever extension you typed after the '.'. Note that the `.` must be the very first character. 5) Copying files now features a mechanism whereby you will be prompted to insert a new disk if your destination drive gets full. Only if you are copying to drives A or B, of course. 6) The R option (Rename file) has been extended to allow viewing and changing of the file attributes (Read only, Hide file, System file). I kept this simple by showing the old (default) values in brackets, so you just hit return through the option for now change. 7) Some other diddly stuff like showing how much space is left on the hard disks in the info section, revamping the Help and Info displays to a) fit all the options in, and b) allow those of you with 10 or so drive partitions to see the info on all of them, etc. I didn't come up with a reliable solution to the problem of reading from subdirectories on 'changed' floppies (i.e. if you stick a floppy in the drive after running HDSCAN, the file open process in hdscan will not see the files in subdirectories during copy, even though hdscan itself will show the files!) Hdscan will always show the files on a drive, because it does direct sector reads of the floppies/hard disks, but Gem has this serious problem with not handling changed media very well. To read from a subdirectory on a floppy, just be sure to open up that floppies window prior to running hdscan. Note: hdscan was not originally intended for copying from floppy to hard disk. It is better suited for handling the massive structure of a hard disk and moving files to floppy or other hard disk areas.  Send Contributions/Orders to: Todd Burkey c/o Mindtools 3546 Pilgrim Ln Plymouth, MN 55441 If you like the program, use it, and want to help fund further development, please send $10. If you want to order the product version (2.3), it is only $20 (plus 6.00% tax in Minnesota). I will mail it anywhere in the USA/CAN at no extra charge ($3.00 shipping for overseas orders). 5/15/1987 - hdscan ver.1.3 (shareware) and 2.3 (professional) . lQ.. lQMUSHRO S Sl'MUSHRO TOSWl ********************************************************* *** MUSHROOM.TOS by Silas Warner, MicroProse Software *** ********************************************************* * This is the source for a program * that interprets the "post-mortem * buffer" that the Atari ST creates * when the system crashes. This * buffer is saved through RESETS * until you turn the computer off. * Press RESET and use this program * when the screen fills with * "mushrooms" and the computer dies. * *To assemble this program, type *AS68 -l MUSHROOM.S *LINK68 MUSHROOM *RELMOD MUSHROOM.68K MUSHROOM.TOS *then remove MUSHROOM.O and MUSHROOM.68K. *APSTART chunk to set stack and memory start bra start1 title dc.b 27,72,"+-------------------------------------+" dc.b 13,10,"! THE MUSHROOM ANALYZER !" dc.b 13,10,"! by Silas Warner,MicroProse Software !" dc.b 13,10,"+-------------------------------------+" dc.b 13,10,0 even start1 move.l sp,a5 move.l #ustk,sp move.l 4(a5),a5 move.l $c(a5),d0 add.l $14(a5),d0 add.l $1c(a5),d0 add.l #$100,d0 move.l d0,-(sp) *set up m-f call move.l a5,-(sp) move.w #0,-(sp) move.w #$4a,-(sp) trap #1 *do m-f call addq.l #4,sp move.l (sp)+,a5 *recover basepage addq.l #4,sp *NOW THE PROGRAM STARTS lea.l start(pc),a5 *set PBR lea.l ustk,sp *use our own stack *Okay, grab mushroom buffer! startup lea.l title,a0 *Found above jsr wstring jsr supmode *Slam into super mode move.l #$380,a0 *recover the mushroom save area lea.l savest,a1 *to our own area for examination msurup move.l (a0)+,(a1)+ *Move it fast and long cmpa.l #saveend,a1 bne msurup jsr usrmode *Now back to user mode move.l savest,d0 *Is there a mushroom in memory? cmp.l #$12345678,d0 *Magic number set by Atari beq wasmush *Is there a mushroom? lea.l nomush,a0 *"NO MUSHROOM IN MEMORY" jsr wstring progwat lea.l presret,a0 *"--Press RETURN--" jsr wstring jsr rdchar *wait for a RETURN key. cmp.b #$0d,d0 *Is it RETURN? bne progwat *Nope, try again. progend clr.w -(sp) *end program trap #1 *we gone! wasmush lea.l mushtit,a0 * "LAST MUSHROOM WAS #" jsr wstring move.b saveex,d1 *Exception # jsr hexbyte *Print it move.b #":",d1 jsr wrchar lea.l errtbl,a0 *Interpret error move.b saveex,d1 *Using lower byte of exception # errloop move.b (a0)+,d0 *lower limit move.b (a0)+,d2 *upper limit cmp.b d1,d0 *Below lower limit? bhi errskip *Yes, skip it cmp.b d1,d2 *Below or = upper limit? bcc errprnt *Yes, print it errskip tst.b (a0)+ *skip to zero byte bne errskip beq errloop *and try next entry errprnt jsr wstring *print message! lea.l mushreg,a0 *" Registers" jsr wstring clr.l d7 *d7 is register # dline lea.l mushdr,a0 *" d" jsr wstring move.b d7,d1 *print reg # or.b #"0",d1 jsr wrchar move.b #"=",d1 jsr wrchar move.l d7,d2 *Get reg asl.w #2,d2 *indexed by longword lea.l saved0,a0 *from saved D-regs move.l 0(a0,d2.w),d1 jsr hexlong *and print it lea.l mushar,a0 * a" jsr wstring move.b d7,d1 *print reg # or.b #"0",d1 jsr wrchar move.b #"=",d1 jsr wrchar move.l d7,d2 *Get reg asl.w #2,d2 *Indexed by longword lea.l savea0,a0 *from saved A-regs move.l 0(a0,d2.w),d1 jsr hexlong *and print it addq.l #1,d7 *go to next reg index cmp.b #8,d7 *All regs done? bne dline *No, loop back move.w saveex+2,d3 *get saved CCR lea.l flagm,a0 *Start to print flags jsr wstring lea traoff,a0 *Trace flag btst #15,d3 beq traprt lea traon,a0 traprt jsr wstring jsr dospace lea.l supoff,a0 *User/Super flag btst #13,d3 beq supprt lea supon,a0 supprt jsr wstring jsr dospace lea negoff,a0 *N flag btst #3,d3 beq negprt lea negon,a0 negprt jsr wstring lea zeroff,a0 *Z flag btst #2,d3 beq zerprt lea zeron,a0 zerprt jsr wstring jsr dospace lea extoff,a0 *X flag btst #4,d3 beq extprt lea exton,a0 extprt jsr wstring jsr dospace lea ovroff,a0 *V flag btst #1,d3 beq ovrprt lea ovron,a0 ovrprt jsr wstring jsr dospace lea.l caroff,a0 *C flag btst #0,d3 beq carprt lea.l caron,a0 carprt jsr wstring lea.l mushstk,a0 *"STACKS:User=" jsr wstring move.l saveusp,d1 *User stack ptr jsr hexlong *print it lea.l mushst2,a0 * Super=" jsr wstring move.l savea7,d1 *Super stack ptr jsr hexlong *Print it lea.l savestk,a4 *start to print stack move.l savea7,a3 *with loc it came from savestl jsr newline move.l a3,d1 *Saved stack addr jsr hexlong *Print it move.b #":",d1 jsr wrchar jsr dospace move.l (a4)+,d1 *Saved stack contents jsr hexlong *Print it addq.l #4,a3 *Inc stack address cmpa.l #saveend,a4 *We at end of saved stack? bne savestl *Nope, back for more jmp progwat *Go back and wait for RETURN *print a hex word to screen or printer hexlong move.l d1,-(sp) swap d1 jsr hexword move.l (sp)+,d1 hexword move.w d1,-(sp) *thanks to Jez San lsr.w #8,d1 lsr.w #4,d1 bsr.s hxpnibbl *1st nybble move.w (sp),d1 lsr.w #8,d1 bsr.s hxpnibbl *2nd nybble move.w (sp)+,d1 hexbyte move.w d1,-(sp) lsr.w #4,d1 bsr.s hxpnibbl *3rd nybble move.w (sp)+,d1 hxpnibbl and.w #15,d1 *finally print out ONE hex digit! cmp.b #9,d1 bls.s hxpnib2 add.b #7,d1 hxpnib2 add.b #"0",d1 bra wrchar *getchar - Get key without echo and without waiting! * Exit, d0.b is key, or zero if no key ready getchar movem.l a0-a6/d1-d7,-(sp) move.w #$0b,-(sp) trap #1 addq.l #2,sp tst.l d0 *is there a key? bmi.s rdchq movem.l (sp)+,a0-a6/d1-d7 clr.l d0 NO,return zero rts *rdchar - Wait fpr a key (no echo) * Exit, d0.b is key rdchar movem.l a0-a6/d1-d7,-(sp) rdchq move.w #$07,-(sp) trap #1 *call DOS which returns 2 bytes addq.l #2,sp *in lower & upper word of d0 movem.l (sp)+,a0-a6/d1-d7 tst.w d0 *is lower word zero? bne tsttop *no, return upper word lswap swap d0 *get upper if zero rdora or.b #$80,d0 *set high bit rdout and.l #$ff,d0 *of lower byte only! rdrts rts *and return tsttop swap d0 *lower word nonzero cmp.w #$44,d0 *if upper out of range bcs bswap *go to swap lower back cmp.w #$54,d0 *same if above range bls lswap *if in range lower word or #$80 bswap swap d0 *if out of range, lower word! bra rdout *wstring - Print a string to the screen (up to zero byte) * Entry, a0 =address of string wstring movem.l a1-a6/d0-d7,-(sp) move.l a0,-(sp) move.w #$09,-(sp) trap #1 addq.l #2,sp move.l (sp)+,a0 movem.l (sp)+,a1-a6/d0-d7 rts *dospace - Print one space * Exit, d1 = #32 (SPACE) dospace move.w #32,d1 *and fall thru to *wrchar - Print a character to the screen * Entry, d1 =character to print wrchar movem.l d0-d7/a0-a6,-(sp) move.w d1,-(sp) move.w #2,-(sp) trap #1 addq.l #4,sp movem.l (sp)+,d0-d7/a0-a6 rts *newline - Print a CR and LF * Exit, d1 = #10 (LF) newline move.w #13,d1 bsr wrchar move.w #10,d1 bra wrchar supstak dc.l 0 *Slip into super mode to get system vars supmode movem.l a0-a6/d0-d7,-(sp) *save regs tst.l supstak *Has supmode been called? bne superet *You ARE in sup mode, turkey! clr.l -(sp) move.w #32,-(sp) trap #1 *call the supertrap move.l d0,supstak *and save systack addq.l #6,sp *correct stack ptr superet movem.l (sp)+,a0-a6/d0-d7 *restore regs rts *Return from super mode to user mode usrmode movem.l a0-a6/d0-d7,-(sp) *save regs tst.l supstak *Has supmode been called? beq useret *You ARE in user mode, fool! move.l supstak,-(sp) move.w #32,-(sp) trap #1 *call the supertrap clr.l supstak *clear the systack save addq.l #6,sp *correct stack ptr useret movem.l (sp)+,a0-a6/d0-d7 *restore regs rts *DATA segment .data nomush dc.b 13,10,"NO MUSHROOMS IN MEMORY!" dc.b 13,10,0 mushtit dc.b "LAST MUSHROOM:#",0 mushat dc.b " AT ",0 mushreg dc.b 13,10," Registers ",0 mushdr dc.b 13,10," d",0 mushar dc.b " a",0 mushstk dc.b 13,10,"Stacks: User=",0 mushst2 dc.b " Super=",0 errtbl dc.b 0,0,"Reset ROM destroyed!",0 dc.b 1,1,"Processor Error!",0 dc.b 2,2,"Bus Error.",0 dc.b 3,3,"Address Error.",0 dc.b 4,4,"Illegal Instruction.",0 dc.b 5,5,"Divide by Zero.",0 dc.b 6,6,"CHK Out of Bounds.",0 dc.b 7,7,"Overflow Trap.",0 dc.b 8,8,"Super-Mode Violation.",0 dc.b 9,9,"Trace Not On.",0 dc.b 10,10,"Line-A Code Clobbered.",0 dc.b 11,11,"Line-F Code Clobbered.",0 dc.b 12,14,"Unknown Interrupt.",0 dc.b 15,15,"Bad Interrupt Vector.",0 dc.b 16,23,"Unknown Interrupt.",0 dc.b 24,24,"Spurious Interrupt.",0 dc.b 25,31,"Hardware Interrupt.",0 dc.b 32,47,"Unknown TRAP.",0 dc.b 48,63,"Unknown Interrupt.",0 dc.b 64,255,"Interrupt Instruction.",0 flagm dc.b 13,10,"Flags:" traoff dc.b " ",0 traon dc.b "Trc",0 supoff dc.b "Usr",0 supon dc.b "Sup",0 extoff dc.b "Xc",0 exton dc.b "Xs",0 negoff dc.b "+",0 negon dc.b "-",0 zeroff dc.b " ",0 zeron dc.b "0",0 ovroff dc.b "Vc",0 ovron dc.b "Vs",0 caroff dc.b "Cc",0 caron dc.b "Cs",0 presret dc.b 13,10,"--Press RETURN.--",0 even *BSS segment .bss even ds.l 256 *256 stacks ustk ds.l 1 savest ds.l 1 *must be $12345678 saved0 ds.l 1 *D regs begin here saved1 ds.l 1 saved2 ds.l 1 saved3 ds.l 1 saved4 ds.l 1 saved5 ds.l 1 saved6 ds.l 1 saved7 ds.l 1 savea0 ds.l 1 *A regs begin here savea1 ds.l 1 savea2 ds.l 1 savea3 ds.l 1 savea4 ds.l 1 savea5 ds.l 1 savea6 ds.l 1 savea7 ds.l 1 saveex ds.l 1 *exception #, long-255 saveusp ds.l 1 *usp savestk ds.l 8 *stack popped saveend ds.l 1 *end of save area even ********************* end `Rt`H+-------------------------------------+ ! THE MUSHROOM ANALYZER ! ! by Silas Warner,MicroProse Software ! +-------------------------------------+ *O.| Z*m - ЭЭм// ?<?<JNAX*_XK O ZAaa |C ^"س fa 9 ^4Vxg"Aa\AEaRa< fBgNAA$a:9 a<:aBAu9 bdJfgaA9aBATa<0a<=a$BA b"0 aNAYa<0a<=a$BA "0 a R<f69 AaAgAapaA" gA&aVahA0gA2aS@9@P l6fVl8`Tl80,@l89@R9@NHlL?<?,FN"PN^NuNVH&n>. <.=|Bn0<9@N9@L0+S@9@P0+S@9@R9GT9FV0lP9@X0lR9@ZHnHl/ HlL?<?,FN"LN^NuNV/ &n n 0 n 1k n 0kS@ n 1@ n 0(kS@ n 1@&_N^NuNVH>.<. :. 8.Hl:?<N \\?<NxT=G=F=E=DHnHnHnHn?< ?,DN `VHnHnN"PJ@g$HlLHnN8PHlL?<?,FN PN\HnHnHnHn?< ?,DN z0.g0.fHlLBg?,FN PBgN THl:?<N \LN^NuNVHBg?,FNX?<?,FNX?<?,FN(X?<?,FNX?<?,FN8X?<?,FNX9lBL9l@N0,Bl>S@9@P0,@l9|0f9|B Gf 9|@@9|!?,@?,B?<N 9@DBgBgHl?<?,DNt BgBgHl?<?,DN\ ?,?,@?,BBgBgBgBgN?,?,@?,B?,DN~ HlHl@HlB?<?,DNHl:?<N\>N^NuNVHl:?<N\HlHl@HlB?<?,DNx?,DN?,@?,BBgBgBgBgN(?,DN*T9|D?,FNbTHl:?<Nv\N^NuNV?`>Hl:Hl:Hl:Hl:Hl:Hl:BgBgHnBgBgBgBgBgBgBgBgBgBgBgBgBg?<N<>0.|g`?.?.?.?.NP``|g`BgBgBgBg?< ?,DN ``|g` N``|g`D?.?.?.?.?<?,DN HlHl@HlB?<?,DN(`J`|(g`* lDfN:`BgBgBgBg?< ?,DN8 ``|)g` lDg9|D0<f>N^NuNVNHl:Hl:Hl:Hl:N9@H9|DHl?,N\9@JNnN^NuNu)I)J"/0<NB"l$lNu NV9n 0.| A" AA-H=|` nR2.A H0Rn nm/,N.X0,N^NuNVA )HA)HA)HA)HA)HA)HA)H?< NXT9l0,N^NuNV9n9n 9n 9n9n9n9n9n9n9n9n9n9n 9n")n$9n(9n*?<NT n,0 n00 n40 n80 n<0 n@00,N^NuNV9n9n ?<NTN^NuNV9n)n ?<#NfTN^NuNV9n9n 9n 9n9n9n9n9n?<IN$TN^NuNV9n9n 9n 9n9n9n9n9n?<JNTN^NuNV?<MNT n0 n 0 n0 n00,N^NuNV9n)n ?<NNTN^NuNV9n9n 9n 9n9n?<dN^TN^NuNV9n9n 9n 9n9n?<eN.TN^NuNV9n?<fNTN^NuNV9n?<gNTN^NuNV9n9n ?<hNT n 0 n0 n0 n00,N^NuNV9n9n 9n 9n9n9n?<iNTN^NuNV9n?<kNnTN^NuNV?.N T nn0<`?.?<>N "X9@Hg0<`0<N^NuNV?.?<LN XN^NuNV/ A&H`0+ |g/ NBX A"Ҽm?.NT&_N^NuNV0.n l0.`0. N^NuNV0.n o0.`0. N^NuNV n0 nh? n 0 n h?NX=@ n0( nh? n 0( n h?NtX=@ n? n ?NzX=@ n?( n ?(N`X=@ n 0 n 1n0.n n 1@0.n n 1@0.n^Jg 0.n^J|N^NuNV/ &n/ NDXJ@g0<`00+ |g /+NXBk ?+ NTJ@g0<`0<&_N^NuNVH&n0+ |f0<`.0+ |gV0+ |f0<`v0+ |g?<B?+ N"P?/+?+ NRP @f0<`@k 0Hѫ`$ k o?<0+D@H/?+ NP'@&Bk0<LN^NuNV fBC`&SCdTC0|g0|gԼdRC`|CHBC0|@HB LN^NuNVNVH n " n $&JjFFJjFFLN^@pNuNVH n"n $0(H@6C|g.0)H@:E|gE|BB0<まef bRAQ$0P`HNVH n$0(H@6C|gd"n .0)H@:E|gD|E(HD*HE20HGHBBB8:BGBBЇӄЂӅJg$0P`B`NVH"n 0<9@nQ`NVH"n Bln n,0(H@8D|fB.0)H@:E|fB2$60Enfl8,:.6$0Jg0Eg|n0@gDԇ0,nQ fBB`HSCdTC0|g0|gԼdRC`|"|CHB|C0|@HB AHABA LN^NuNVH0.|=@n n f n0H-@HnNXA-H`> n(g nf. n-P n(f HnNX` HnN>XA-H/./. 0.AJ PNPLN^/W DpNuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @)Pf)hj-lf-ljBEG>O|g|JGn|m` REHl/ NRPO`SEHl/ NPO`&0+H@JGgDG0<0dR@0.BAQ,>QQֆG|0QB`Rn0.g$nB`0R 2.HmB`b .6.HЃR$@ nH|0fRZ"` R"H|9n nH|0f$n R&@fSE .6.HЃ @B n0L N^NuNVH$.f BB`J". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN| -@?<?.B?<BNb -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@Hg <` `BlH . N^NuNV/.?<IN\N^NuNVBn`&0.A0nf0.ABPRn nLmN^NuNV?>.=|0A"HPgXHf0(>N^Nu)I)J)_ NM"l$l/, Nu)I)J)_ NN"l$l/, Nu)I)J)_ NA"l$l/, NuNVH&n Bn0.|dg`>< `.`|ug`>< ``|og`><``|xg`>< l* ndf SR- .D-@`0. f Gf .`& Gf .` ./0H/NX 2.RnA0 Gf .`( Gf .` ./0H/N X-@ .fp`FSn0.A P m0.A0| |A`0.A0|0 SR0.fLN^NuNVH&n n f=| )nf)njHl Hlf?<N]|@0. R@?HnHnHnN.g SR-.H|0f.f SR`J nff>.n RG0lro0,r`0> Gl0<`0?HnHnHnNBF`0RFA SRSGSn0g nl` SR0Sn nl0. g SR.` SR0RnSn 0. g nm`" Go0RFAH`0<0 SRSG0. Sn J@f`` SR0. g SR.><`0RGA SR0. Sn J@f SRE?.Hl/N /NXHѓLN^NuNVBn`"0. n PHC|0=@ nR n PH|0m n PH|9o0.N^NuNVH0&n -n @$PX`R` nRg H|%fH|%f,RBn=|Bn| H|-f=|RH|0f|0R-JHnN$X=@$nH|.fR-JHnNX=@$nH|lf=|RgH-n Gdg Gog Gxg GufB0.g @ ` @0H/Hn?.?NV 0.g0<`0<H` Gcf R @ nRT` Gsf4 @-PX<.` nR nRSF0g nf`J Geg Gfg Ggf, @)Pf)hj/,j/,fHn?.?NP` 0 nR .nl0.g$<.".A` nRSF0f`b .2.SAHЁ-@-@,.` .2SAHЁ @ nSSF0f` nR .o .R-@f nB .L N^NuNVHn /.NhPN^NuNVH0&n$K`Rf `L N^NuNV .9@ .9@N^NuNV .9@ .9@N^Nu)I)JHl)_Hl" <sNB"l$lNuNV9n 9| Bl9|9nN0,N^NuNV9n 9|Bl9|9nN0,N^NuNV9n 9|Bl9|9nN^0,N^NuNV9n 9|Bl9|9nN20,N^NuNV9n 9|Bl9|9nN0,N^NuNV9n 9|Bl9|9nN0,N^NuNV)n)n .мZ)@9|dBl9| n 9PN n 0A)HA)HA)HA)HN^NuNV9|eBlBl9nNPN^NuNV)n 9n 9|9|9|9nN A)HN^NuNV)n 9|9n Bl9nNA)HN^NuNV9n 9n Bn nR2.RnA|0f9|9|Sn0.9@9nNN^NuNV)n 9|r9|Bl9nNdA)HN^NuNV9n nT9P n9P/.NX/.NX)n 9|y9|9|9nNA)HN^NuNV`4 nH| f?< ?<NX nRH??<NX0. Sn J@fN^NuNV` nRH??<NX0. Sn J@fN^NuNV` nRH??<NX0. Sn J@fN^NuNVH0&n $KA-H nf?./ N4\=n`L nf?./ N`\=n`. nf?./ Np\=n`-KBn?.NTJ@f`H| f |o@ H-@/./.?.?<@N 9@HHg0<`0,Hn/./<?.?<@N 9@H @g0<`tRnR -@`R ned` 6.ƼЃ$@ H-@/./.?.?<@N4 9@HHg0<`0,HnBlH0.L N^NuC22222222222C"C2?22222222?@2~@2@22222CA "22222222C2222222222222222C~A "22222222C^2222222222222222CJA^ "22222222C*222?222222?22_22222CA* "22222222C"2"2 2"2"2"22"2"2"22"2x9|)l)l)l|)lt)lx9|rCJA"A"A"A$"A*"A"A "NuTop of memory is %ldFree memory is %ld bytesGEM version number is %d.%dTOS %c%c base is %ld %s(ROM)(RAM)Drive(s): %sDrive seek rate is %d ms.Write verify %c is %sonoffhighmediumlowScreen resolution is %sVideo RAM starts at %ldKey click is %sonoffKey repeat is %sonoffKeyboard repeat rate is %dKeyboard delay %c is %dBell %c is %sonoffCapsLock is %sonoffDouble-click speed is %d Private Eye Mike Yocum, 1987 - Version 2.0 Private Eye@$??CON:AUX:PRT:%d  Private Eye - A Nosy Desk Accessory Version 2.0 Copyright Mike Yocum, 1987 (312) 469-4490 CIS 70375, 1255 GEnie Mike.Yocum Private Eye is a desk accessory that allows you to take a look inside the ST, in a manner of speaking. Some of the information it gives you is obvious, some of it not so obvious, and some may be a surprise. When I started to write "Private Eye," I had been looking over a copy of Atari's "Hitchhiker's Guide To The BIOS." I noted that there was ALOT you could learn about the ST by calling different BIOS, XBIOS, and GEMDOS routines, and by examining certain system variables (which reside from $400 - $4FF). After experimenting for awhile, I realized that others might be as "nosy" as me, and want to know more about their ST. WHAT IT DOES One of the hardest parts of writing "Private Eye" was not deciding what to include, but rather what to leave out! Here is a list of what I did end up including. There are four basic groups of information. System: Top of memory: where the ST thinks physical memory stops Free memory: how much free "working" memory is available GEM version number TOS base: where TOS starts in RAM or ROM Disk Drive: Drive(s): what drives are in use Drive seek rate Write verify: on or off Video: Screen resolution Video RAM: where it resides Keyboard and mouse: Key click: on or off Key repeat: on or off Key repeat rate: adjustable from 1 to 21 via the Control Panel Key delay - adjustable from 1 to 46 via the Control Panel Bell - on or off CapsLock - on or off Double click speed - of mouse buttons, from 0 to 4 After booting up with "Private Eye," installed as an .ACC file, and choosing it from the "Desk" menu, a window will pop up with all the information above given in it. Consider it a "snapshot" of system statistics, that were valid at the time you called it up. As your session with the ST continues and you run different programs, RAMdisks, etcetera, these parameters can change. This program is copyrighted, but free. Feel free to give it to whoever you like. If you find any bugs, or would like to see any changes made, please let me know. That's it! Enjoy your new desk accessory and "take a peek" at what's going on inside your ST. . lh.. lhSUPRBOOTDOCjlSUPRBOOTPRGnl@9SUPRCNFGTOSsl& Documentation for SUPER BOOT - Version 1.0 08/03/87 ============================================================================== SUPRBOOT.PRG, SUPRCNFG.TOS, and SUPRBOOT.DOC are Copyright (c) 1987 by Gordon W. Moore. Compiled portions of the code are Copyright (c) 1986 by CCD and OSS Inc. and used by permission. These programs are distributed on a SHAREWARE basis and may be distributed freely as long as all 3 files mentioned above are included and unaltered in any way. I have put a great deal of time and effort into Super Boot, so if you are pleased with it and feel it will be of great use to you, I ask that you send a modest contribution to the address listed below ($10 suggested) to become a registered user. ============================================================================== Description Super Boot is an "all-in-one" type boot program that does just about everything you could want. It allows you to: o Choose which accessories to load in o Choose from any number of DESKTOP.INF files, allowing you to change your resolution, color scheme, etc. on each boot o Choose which AUTO programs to run o Have Write Verify turned off if desired o Set the date if you so choose o Set the time if you so choose Furthermore, Super Boot works on any Atari ST, from any boot drive, and on both color and monochrome monitors. On color monitors, it will automatically be displayed in 4-color medium resolution. Super Boot can display a maximum of 135 files at once on the screen. Configuring Super Boot SUPRCNFG.TOS will allow you to configure Super Boot to suit your own preferences. When you run this program, make sure SUPRBOOT.PRG is in the same directory. Default settings are displayed in brackets, and just hitting enter on a blank line will choose the default setting. SUPRCNFG.TOS will allow you to choose the following: Set Write Verify On/Off -- This option tells Super Boot whether or not to turn off Write Verify. Turning Write Verify off will cut the time required for all disk writes. With Write Verify on, everything written to disk is immediately read back in to assure accuracy. Set Date -- If you want, you can have Super Boot set the date for you. If you choose to enable this option, the configuration program will also ask you to enter the last two digits of the current year. This way you only have to enter the current month and day. Once a year though you will have to use the configuration program to change the year when it rolls over on January 1st. Set Time -- You can also have Super Boot set the time for you. If you choose to enable this option, the configuration program will also ask if you want to just set the hours and minutes, or if you want to also set the seconds (For those of you accuracy fanatics). Screen Colors -- Setting the screen colors is only important for those with color monitors and the color settings are ignored in hi-res. For each color you will be asked to enter the appropriate numbers for the red, green, and blue components of the color. The easiest way to determine the numbers to use is to use the Control Panel accessory to create a color you like, and then note the numbers displayed for the red, green, and blue values. After the above options have been set, a new version of the program named SUPRBT2.PRG will be created with your preferences as default. Using Super Boot Once you have Super Boot set up the way you want it, you need to place it in a folder named AUTO on your boot disk. In order for it to be able to properly choose which programs are automatically run, SUPRBOOT.PRG must be the first program in the folder. The ONLY way to ensure this, is to copy everything already in the AUTO folder to another disk, delete everything from the AUTO folder, THEN copy SUPRBOOT.PRG to the AUTO folder, and then copy the rest of your autoboot programs. As an example of how useful it is to choose which autoboot programs to have active, take GDOS for example. Several programs won't work with it, several programs won't work without it. Super Boot would allow you to choose whether or not you wanted to load GDOS when you boot. All accessories must be in the root directory of the boot disk. All autoboot programs must be in the AUTO folder of the root directory. And all DESKTOP.INF files must be in the root directory, and have either .TOP or .TOX as the filename extension. To create a .TOP file, simply set up the desktop the way you want it, save it, and then rename the DESKTOP.INF file which is created to something else. For example, to have a different desktop for low and medium resolution, you could create files called LOW_RES.TOP and MED_RES.TOP. If there are no accessory, desktop, or auto programs present, Super Boot will skip the file selection mode, however it will set Write Verify and ask for Date and Time if so selected. File Selection Mode All active files are displayed in inverse characters, all inactive files are shown as regular text. To select or deselect a file, simply move the ">" cursor with the arrow keys to the file, and press the space bar. Superboot allows only one desktop file to be selected at a time, and any number of accessory or autoboot files to be selected. However, please note that the ST can currently have a MAXIMUM of 6 accessories active at once, and some files (like CONTROL.ACC and EMULATOR.ACC) count as 2 accessories each. When you have the files the way you want them, press the ESC key. If you don't want Super Boot to revise any of the files, just hit the UNDO key instead of ESC and the program will immediately terminate. While the message "Revising files....." is displayed, you should never interrupt the disk drive, either by removing the disk or by turning the drive or computer off. Super Boot works by changing filenames. Inactive accessories and autoboot programs will have an "X" as the last letter of the filename (CONTROL.ACX or GDOS.PRX for example). It does the desktop files by copying from a .TOP file to the DESKTOP.INF file. So therefore if you use one desktop file most of the time, once it has been copied to the DESKTOP.INF file you can deselect it the next time you boot so that it won't have to be copied every time. ============================================================================== Please send any comments, questions, bug reports, or contributions to the following address: Gordon W. Moore 1908 Augusta Dr. #9 Lexington, KY 40505 After May 1, 1988 please send all correspondence to my permanent residence: Gordon W. Moore 2300 Beech St. Ashland, KY 41101 You may also send comments to: Compuserve ID: 73647,2735 GEnie Address: G.W.MOORE ============================================================================== ENJOY SUPER BOOT ! ! ! `7:62 o"h#7p#7t#7xBbBy7|N>NV?.?. ?<NMN^ _ON/,HNVA-H?<?. NN^,_ _TN/,HNVA-H?<N0. ?NN^,_ _TN/,HNVA-H?<ENN^,_Nu/,HNVA*-H?<YN0. @?Nl0.@?N^N^,_ _XN/,HNVA-H?<pNbN^,_Nu/,HNVA-H?<qNDN^,_Nu/,HNVA$-H098rAl ?<bN?. NN^,_ _TN/,HNVA$-H098rAl ?<cN?. NN^,_ _TN/,HNVA-H?<eNN^,_Nu/,HNVA-H?<fNN^,_NuNV?<NNN^NuNV?./. /.?<NNN^ _O NNV?.?. ?<NNN^ _ONNV/.?<NAN^ _ONNV?./. ?<NNAN^ _ONNV?<ONAN^NuNV/./. ?.?<VNAN^ _O NNV?<NAN^Nu/,HNVAT-Hp=@p.=@0.nn""n 0.2.tA0Rn`"n p.R@rN^,_ _OVNNV?.?<+NAN^ _ON/,HNVA-Hp9f|r0A r9f}Ar0A=@NT?<?< N^Hy82Hz?<:N-lX?<?< NHy82Hz(?<:N-lX?<?< NHy82Hz?<N-lX0.@dHy82Hz?<N-lXHy82Hz?<N-lXHy7?<PHnN1fN0,Xp=@0.@ep=@Hn??<N098rAfNHy82Hz?< N-lX098rAfNBgN?<N0.n=@0.R@=@0.rAf0.S@nrHR@=@0.S@ T@=@0.S@nrHH@V@=@?.?.N?<Nz?<N:098rAfNHy82Hz?< N-lX098rAfNBgN2?<N0.n=@0.R@=@09e8rAop=@p=@p=@`F09e6rAop=@p=@p=@`"09e4rAop=@p=@p=@NR?.?.N?<N\Hy82?<>N,pX?<NB?<N@d?<N-@ .䰼afN6fN% .䰼PW .䰼HWÄC .䰼KWÄC .䰼MWÄCBd> .䰼PW0.29e2VAA]CBd 0.R@=@ .䰼MW0.@29e2XAA]CBd0.@=@ .䰼KW0.rA^CBd0.@=@ .䰼HW0.rA^CBd~0.S@=@0.nW0.nWÄCBd 0.S@=@0.nW0.rAWCBd 0.T@=@0.nW0.rA^CBd 0.S@=@?.?.N&N~Hy82?< N,pX0.nW0.nWÄC0.nWÄCBd 0.R@=@0.29e2VAAo"0.U@=@0.nf 0.S@=@0.nV0.nVC0.nVCBdv0.S@rHR@=@0.S@ R@=@0.S@rHH@V@=@?.?.NB?<NNHy82?<>N,pX?<N .䰼9 ffBn0.no 0.S@=@0.no 0.S@=@0.no 0.S@=@0.n=@"n 0.T0)@d"n 0.TBiN`x0.ye8^0.29e8ye6RAA]CBd09e8R@=@09e8ye6=@0.nn"n 0.T0)@d"n 0.TBi0.S@T@rHR@=@0.S@ R@=@0.S@T@rHH@V@=@0.T@??.NNp=@"n 0.T0.Hy82r1?N,pX0.R@=@"n 0.T0.r1p.@fRn` 0.S@rHR@=@0.S@ R@=@0.S@rHH@V@=@"n 0.Tp3@NR0.T@??.Np=@"n 0.T0.Hy82r1?N,pX0.R@=@"n 0.T0.r1p.@fN .䰼fN^,_ _XN[Auto boots][Auto Boots][ Desktops ][Accesories] Atari ST Startup Information Selector V1.0/,HNVA-HALBP1|ABP1|N4 Hy8?,,,,,,,,,,,,,,,,,,,,0.@dp98@p:@p\@p=@=n0.nn.0.V@2.T4.vAA0 ARn`0.X@rAp98@Rp:@Sp\@Tp=@=n0.nn$0.V@2.tA0AQRn`0.X@rAQBgHnHnRN@Rn`09e6rAof09e8R@=@09e8ye6=@0.nn>0.TA 20|p|@f&0.TAAO"O2r"QNBn0.TrA0=A0.T2.tA@0`0.TA 20|p|@f40.TACE4p$Q0.rXAp=@`0.TA 20|p|@f40.TACE4p$Q0.rPAp=@`*BP BbB4; N >0.@dp98@p:@p\@p=@=n0.nn.0.V@2.T4.vAA0 ARn`0.X@rAp98@Rp:@Sp\@Tp=@=n0.nn$0.V@2.tA0AQRn`0.X@rAQBgHnHnRNRn`09e4rAoz09e8ye6R@=@09e8ye6ye4=@0.nnFBn0.TrA0=A0.T2.tA@0`0.TA 20|p|@f40.TACE4p$Q0.rXAp=@`0.TA 20|p|@f40.TACE4p$Q0.rGAp=@`<BG Bb0B4; N >$$$$$$$$$$$$$$$$0.@dp98@p:@p\@pA@pU@pT@pO@p\@ p=@=n0.nn.0.P@2.T4.vAA0 ARn`0.@ rAp=@ nn"0.2.tA0AQRn`p=@=n0.nn$0.P@2.tA0AQRn`0.@ rAQBgHnHnRNHRn`N^,_ _O,LNA#7~A70B1|A8201|CEfdp$QHye>NN#f`p C8 9f`rAHЁ8Bye2N4 Hy8?S@r VR?/LgNuHgaS@r VT?/LgNu#g _0 @g "_J@jp`0g"|gp2 Ag $_JAjr`2g$|gr@g\HgGfe$4SBkQ4@SBpQ0"|f` 4SBkQ4ASBrQ$|fLgJ@f pC'$I/9gNuHg _024SBgQ@4BAAc/LgNuHy'`N6Range error during set-operationHg _0246@SCBgQAn68DCCc 0AgRB`/LgNuHg _0@CEHS@rIVW.J?/LgNuHg _0@CEHS@rIVV.J?/LgNuHg _0@CEHS@2FA_VW.J?/LgNuHg _0@CEHS@2FAYVW.J?/LgNuHg _0@274BAAc7V`tO>/LgNuHg _0@"_24BAAc1V`t>/LgNuHg _02S@AC2YQ/LgNuHg _02S@AC2YQ/LgNuHg _02S@AC2FAYQ/LgNuB9g`PgBy7n _0g$_jp"_// HgN,0LgJ@fP)J9gf" f |` f|` f |` f|`4<G BQB) @ef *:f^&Jrt `e QG+tWJBk4G+3 J9gf g g`> g8 fp@`*S@rG   e gRAQJ9gg`tJ)f8a J9gg| _0< Hy+N6|#|3|Nu )bJ) g )g )g ) f J9gfgHBNu|/ BgHi ?<ANA>3|NAXNu _4` _t6 Bo r aSB`2aNH?. _r ar a/L?.Nu _r aN _4` _t"x0HgJJjDxvC.zp cRЀ`|e W0R"f`6 _4` _t2xJAjDAxvC.p0 2H@0RJAfJg<-RBlCSBr aQSCaQN _4v` _46"_JBjtJCkgCe4`BSCr aQSBk aQN _v` _60@d C-t`C-tJCgkCe4`BSCr aQSBavQNFALSETRUE _6kfv2_t Cc"4YBv` _6kfv"_t Cc4QBvSBkr a(QSCC" A0 9c^a JgYC`NH ."oA/ N.L .NuBy7n(_ _/ C( g  f4t4(H / /?(?<@NA LJkn gffNu4(SBraQNu(gN fH ??<NAXLNu f H ??<` f H ??<` f NuHy/` Hy/0< LN6REWRITE required prior to WRITE or PUTDisk or directory fullBy7n _$_"Wp )f)H/ N2LL4NH/ N2LLp)`By7n _"WJy2f8J)f )f)H/ N2LL )g)J)fJgBy2 )g J)fBiNz`zBy7n _$_"WptvH/ Hyga029gXL- -fJf^p`4  fJg*`N0eH  bBԂi\(؄iV؄iRԄiNԁRCJ)f  g )f) 0e 9c~Jg&JgDJf 6Höf4N$NHy2-0<` Hy2 0<N6By7n _$_0"Wt )gJ&JRJ)f4H/ HygaP29gXL )gJ)f RBBe`ưBe`N&|gH/ ?< NA\Hy2 ?< NA\LS@kQ32N Bad digit in number encounteredOverflow during READ of numberBy7n(_ _/ C (g ( fxJ(f t4($IH / /?(?<?NA LJk,g*fJg  f"J` g  Wf NuJgJ(f P Nu!|Nu4(SBa@J(f8Jg. fJ(f"gr W1Agp f W1A1AQNu(gVJ(fD f&H`?<NAT f?< ?<NAXp LNu fH`?<NATLNuHy30<` Hy30< LN6Reset required prior to Read or GetAttempt to read past end-of-fileHh _0"_e /LhNuHy6N6/B9h/|hNuHh _0 @f0"|hhp` "_J@jpEhr4@ BbBS@kQ/LhNuHh _4SBkt82$_rAdd0 @f0"|hhp` "_J@jp6ADb6CG0IS@k$eQ/LhNuHh _4k2SAk0"_p6B@bE0)CS@kQ/LhNuHh _2$_r0 @f0"|hhp` "_J@jp@kS@kv&J$IRC4(K Vg RQBg`?/LhNuHh _4kF2SAk>0 @f0"|hhp` "_J@jp6B@bEhSBkQ/LhNuString overflow _ hNVf 0(gr"OD@Hd2S@k "Q` _"y7pe Hy6N6N#j#i .f -|6`-|6 nNнif yjNStack overruns heap _(N _0/Ho |637nJy7lfXNX/#j"|7:a "_a"|7AaJy7|g yj9BgNA/ ?< NA\Nu097nNu _37lNBy7nNu *** *** Copyright 1986, CCD and OSS, Inc. 8 d(,*4h (  ,"&"H&2h:h6$$8 8R2 >   " ". 2Flv rlv @.                   "    &b     $"  ,*< * * , , 0 , " HB@6 2J X D   ( 0"L2 N ( *@ B @ B 0  `#6 o"h######BbBy$N8/,HNVA-Hp=@0.@eHy$Hz?<1NXHy$?<PHnNNFXp.rAgClEpQp.?Hz@?<N0@e Bn`p=@0.@dnp.=@0.N^,_NuWRONGInvalid color value, enter number from 0 to 7 => A <#$A$0B1|A$01|A%BP1|A&BP1|CE%fp$QHy$NXHy$NXHy$NXHy$Hzz?<8NNXHy$NXHy$Hz?<7NNXHy$Hz?<#NNXHy$NXHy$Hzv?<8NNXHy$Hz>?<NNXHy$NXHy$Hz?<1NNXHy$NXHy$NXHy$Hz?<'Np9%?NHzb?<NXHy$?<PHy%NNFXp9%J@f.N!$p9%??Hy$NXHy$Hz >?<Np9%~?Np9%?NHz ?<NXHy$?<PHy%NNFXp9%J@fBN!$p9%~??NNXHy$Hz?<:NNXHy$NXHy$Hzh?<NXNl%rHy$Hz.?<NXNL%qHy$Hz?<NXN,%pHy$NXHy$Hz?<NXN%{Hy$Hz?<NXN%zHy$Hz?<NXN%yHy$NXHy$Hz$?<NXN%uHy$HzR?<NXNp%tHy$Hz?<NXNP%sHy$NXHy$Hz?<NXN"%xHy$Hz?<NXN%wHy$Hz?<NXN%vHy$NXHy$Hz?< NNXHy&Hz?< NHy%Hz`?< NCHE'44$$09&@e(C'2p)3'>p3'@ y '@n.09'@29'@RAtA'30A'3Ry'@`09'>'=Hy'4?< Hz?< N0@d~p 3'@ y'@n>09'@rA%e03'>C&09'>@Hy%NRy'@`p 3'@ y'@nHy&NfRy'@``C&09'>@Hy%NHy&Nf`Hy&NJHy%NJHy$NXHy$Hz?<1NNXHy$NXHy$HzZ?<NNXHy$?<PHy%NNFXHy&NJHy%NJHy$NJBgNAPress RETURN to exit......New version completed. It is named "SUPRBT2.PRG"BOOTPARMS: SUPRBT2.PRGSUPRBOOT.PRGWorking......colors with the Control Panel Accessory. Enter new colors:These numbers are the same numbers seen if you were to set theAlternate2 color: Red = Alternate1 color: Red = Foreground color: Red = Blue = Green = Background color: Red = Current Color Settings:Should program also ask to set seconds? [Superboot will ask to set hours and minutes.Should program ask to set time? [WRONG] 19Current Year [19Should program ask to set date? [@] Should Superboot set Write Verify on? [ CTRL-C will abort this program at any time. configuration program.NOTE: SUPRBOOT.PRG must be in the same directory as thisdefaults set the way you want them.This program creates a new version of SUPRBOOT.PRG withSUPER BOOT CONFIGURER V1.0 - (C) 1987 by Gordon W. MooreXXXXXXXXX:000300007777YY87YYH(BaS@r VW?/L(BNuH(BaS@r VV?/L(BNuH(BaS@r VU?/L(BNuH(BabS@r VS?/L(BNuH(Ba>S@r VR?/L(BNuH(BaS@r VT?/L(BNu#(^ _0 @g "_J@jp`0(A"|(Ap2 Ag $_JAjr`2(A$|(Ar@g\H(VG'Be$4SBkQ4@SBpQ0"|'B` 4SBkQ4ASBrQ$|'BL(VJ@f pC0$I/9(^NuH(b _024SBgQ@4BAAc/L(bNuHyzN#jRange error during set-operationH(b _0246@SCBgQAn68DCCc 0AgRB`/L(bNuH(b _0@CEHS@rIVW.J?/L(bNuH(b _0@CEHS@rIVV.J?/L(bNuH(b _0@CEHS@2FA_VW.J?/L(bNuH(b _0@CEHS@2FAYVW.J?/L(bNuH(b _0@274BAAc7V`tO>/L(bNuH(b _0@"_24BAAc1V`t>/L(bNuH(b _02S@AC2YQ/L(bNuH(b _02S@AC2YQ/L(bNuH(b _02S@AC2FAYQ/L(bNuB9(z`P(zBy# _0g$_jp"_// H(|NJL(|J@fP)J9(zf" f |` f|` f |` f|`4<G BQB) @ef *:f^&Jrt `e QGtWJBk4G3 J9(zf g g`> g8 fp@`*S@rG   e gRAQJ9(zg`tJ)f8a J9(zg| _0< HyN#T|#|3|Nu )bJ) g )g )g ) f J9(zfgHBNu|/ BgHi ?<ANA>3|NAXNu _4` _t6 Bo r aSB`2aNH? _r ar a/L?Nu _r aN _4` _t"x0HgJJjDxvCzp cRЀ`|e W0R"f`6 _4` _t2xJAjDAxvCp0 2H@0RJAfJg<-RBlCSBr aQSCaQN _4v` _46"_JBjtJCkgCe4`BSCr aQSBk aQN _v` _60@d Ct`CtJCgkCe4`BSCr aQSBavQNFALSETRUE _6kfv2_t Cc"4YBv` _6kfv"_t Cc4QBvSBkr a(QSCC" A0 9c^a JgYC`NH "oA/ NL NuBy#(_ _/ C( g  f4t4(H / /?(?<@NA LJkn gffNu4(SBraQNu(gN fH ??<NAXLNu f H ??<` f H ??<` f NuHy` Hy0< LN#TREWRITE required prior to WRITE or PUTDisk or directory fullBy# _$_"Wp )f)H/ NfL4NH/ NfLp)`By# _"WJy"f8J)f )f)H/ NfL )g)J)fJgBy" )g J)fBiNz`zBy# _$_"WptvH/ Hy(a029(XL- -fJf^p`4  fJg*`N0eH  bBԂi\(؄iV؄iRԄiNԁRCJ)f  g )f) 0e 9c~Jg&JgDJf 6Höf4N$NHyG0<` Hy'0<N#TBy# _$_0"Wt )gJ&JRJ)f4H/ Hy(aP29(XL )gJ)f RBBe`ưBe`N&|(H/ ?< NA\Hy$?< NA\LS@kQ3"N Bad digit in number encounteredOverflow during READ of numberBy#(_ _/ C (g ( fxJ(f t4($IH / /?(?<?NA LJk,g*fJg  f"J` g  Wf NuJgJ(f P Nu!|Nu4(SBa@J(f8Jg. fJ(f"gr W1Agp f W1A1AQNu(gVJ(fD f&H`?<NAT f?< ?<NAXp LNu fH`?<NATLNuHy 0<` Hy 0< LN#TReset required prior to Read or GetAttempt to read past end-of-fileH) _0"_e /L)NuHy#*N#j/B9)/|)NuH) _0 @f0"|))p` "_J@jpE)r4@ BbBS@kQ/L)NuH) _4SBkt82$_rAdd0 @f0"|))p` "_J@jp6ADb6CG0IS@k$eQ/L)NuH) _4k2SAk0"_p6B@bE0)CS@kQ/L)NuH) _2$_r0 @f0"|))p` "_J@jp@kS@kv&J$IRC4(K Vg RQBg`?/L)NuH) _4kF2SAk>0 @f0"|))p` "_J@jp6B@bE)SBkQ/L)NuString overflow _(N _0/Ho |#:3#Jy#fXNX/#*"|#a "_a"|#aJy$g y*9BgNA/ ?< NA\Nu09#Nu _3#NBy#Nu *** *** Copyright 1986, CCD and OSS, Inc. &:                                               $"  ,*< * * , , 0 , " HB@6 2J X D   ( 0"L2 N ( *@ B @ ,  . lx.. lxSYS DATzlSYS RSC}lSYSPROOFPRGl+SYSTEM PRGlKREAD ME lSTARTGEMINFlSTARTGEMPRGlUS@HLIUIB@CIOOITSSPDXDFHGPPBIDKHUKMATPYX@ODYZHHZWCKOXKJODUOVVAEKFLBLWSFHKDTDYYLR XSSJDJBNPETZMLCEMPXBJKE@TFCSUQSUOGFGJPZSL@WFPFULYCXKNRXZXAWREJXMS@NXVYBDBFUNPYXD ZVTSDQZWBZTMVWZYGTZSMKSPEYWHAVCHIY@DXTOYBH@YSMYOXST@AICH@FOHT@F@UDYS@QJ@ZIAFWKUS HOUBUFYDACUNQDANEURGIFRPIIQWQMQZAPWWUVUSIPQNUWJFJLDOOQGRCOURKJP@SMNIRCOBIROAMHDO @I@EXDL@SHVZVJWORKCFVIO@XIIHFLHCUEUOGLDWYSLIRQPOHZVEFYTUHPYUPAWOFCT@GIVCARNSYYBZ WKMSPQOLEJSOKMVSXS@SFVLISNHKSWRWPHZCGHAMTQHKQZGLDELRBGOOZHIDIRSMPTSQIDSCMGPKKJIV IBTTKDFOIOKYGKOCYKBHLNRBJEWIAJGXSNOTNFBQTKQCCVSFOHFA@CPVUHPOAJEYLBRFLOHUNALOUKQH JBBRAUSHOMPTAKLGQVRSTIPNLNOHFJYADSIUHOSDXPZYWIHIIHFKT@GAT@@VPFDCQUMYEVXOLMDNNUES MM@PKHCCZOAZFDYMNHYLUDCJG@WIDALAXZNHLDMBFGHZRAZ.JTSOTIUAXYAKEDPDKSZJDRHZXDRHOP@Y `*RX` Efv*oMt m HPHUBg?<JNA(m)m -:gS)@ -OK1PC#HNHx?<HNA@)@l/?<HNA)@h&@)@XЬl)@d)@`ARCpr Ѝ"QHN(ALNHz2?< NA\pdAxr0XQ)K\NN "ZJrBjNuHz?<&NN\CAp$L Qp N^BlJpNN^pMN^9@pdAr 0Q0tr N9lNupealp`NuaN,Hz?<&NNBWNANC2A@p222NrҌ0<NB0,rNurA9Ar`v C9Cr`rt9@9A9BNrrҌpsNB0,Nu9@N`rDҌpsNBNuC2 @ e @}bA@p222Nr,Ҍ0<NBNu Hnl 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 _NpNNuCDEJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@NH?<,>CEdGH@0r`?<`JBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNuprt|=|  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dajSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`HJjDDDS4</NZJFkSFk&aQNZ`Ha"FFaQL8N6.JgtBnNupr$<NuJBk4<rpAC v JBgJjv-| Bb BkH>aaNRFBdL8?N<JBga2SF Be BgQRB`ApdR e <rRF&0xafEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`2:HQ A dNAXJ@jNNuvN)@p `H@)@prtNAHplrtNB 2pNpNpapaprapalpalpalpaTpaTpaTBp'a?<NNT@B){L9|0<rtNpapap9@p`pvNv`v`vj`v `v`v`v`?Aa*` Al 2l 4)lVH)lRprtNAl 2l 4HVNu(* 9AJA)H@@[000][ˈN` Evz`* [g" ]g |g QSz` zQSpQ][ɈN` Dvx`* [g" ]g |g QSx` xQSpQ]Bp4N^HNur|<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`LNuApNJND$N$BS@kH2QNupC ұd"X0Pg"RA$D#Nu"X0Nu _0HpNJ _0HpNJp"_0HqNp"_0HqNE ұeHHQ0)Nn$_$ZR@H`2QNu$Y0gHR@@"D%$X0P2g# R@%NupE $ $X0dP.gRG,D%pr Y2dP.gRG,D!p4Ae4v`VfANuNWHNu2)A IJAfr4(Ae*RBBc0*SA?N$E$R`QˈN` ENup`(* 0(iN$E 4R`Q$D 4R`QˈN` DN` ENupC 0(gFd"P$I` *N$E$R(S@jv A(Wf( ae zb Q DNuH&NրN򲶀jNuPj0,lf$J,nk l*fp?Np N9|nNRA0,l2J,jk 0"fZRAR@ 0"g 0 f` 0 g 0,f9@lTll`BllA"H"g"A4`Q"AA 0! NuS@R@ 0 g 0,f9@lRll`R@ 0 fQj`<,*?Hj\F FfN^`H FfNV`RGFc8>`4A g6 g0 g` gTlfelhgFf2pRGRFa`a,` `?~ap ap a 0NuCpE`bf`FgRGJGgRSGSFFgCpE`Yf`Nua@Jf gH@ fa(@ fza0 b @ Ee0Nu?<?<NMXNur9A(HNLNu0,^2,`N:zEfpaRppaNAEg0PaľEfa4RE`p a2a*Efp a(N ldeS@f lbfSl`9Ab9FdNupapqr`p`p`pJ@gHzZ?<&NN\NuB?< NA\Av ACLElp"Jg X\QC"C!/:@?< NA\NuLH!NuHx`(Hx`"Hx`Hx`Hx`Hx` Hx`Hx !4VxH A6@ Ni LHL|1R/:?< NApdK`HaJLxNNu)H9@Jp4N^P'J&f H LNu P&NuQ'` J,'fJ,&gHA#ȇeC! B,&LNu-W)K20, 8k8@ gJl&f"Nu , 8g"P 8 @/, 8N  8fQ 8J,'gNupB <``L@ H)l26)z @W , Jf`CfSHj-D@Hd0H@H 0H@0`fSC\fS , @a"C\fApNNNHHP?< NA\NuH@aa/a a Nu@0 9c^Nu| PC>$Error # ][Abort]\f.B &lX)K\)ld` lp ,BQjNup(N Division by zeroOverflowNumber not integer|-2147483648 .. 2147483647Number not byte|0 .. 255Number not word|0 .. 65535Square root only|for positive numbersLogarithm only for|numbers greater than zeroUndefined error Out of memory Function or command|not yet implemented String too long|max. 32767 characters Not GfA-BASIC V1.0 program Program too long|memory full|NEW Not GfA-BASIC program|file too short|NEWArray dimensioned twiceArray not dimensionedArray index too largeDim index too largeWrong number of indicesProcedure not foundLabel not foundOn Open only|"I"nput "O"utput "R"andom|"A"ppend "U"pdate|allowedFile already openFile # wrongFile not openInput wrong|not numericEnd of file reachedToo many points for|Polyline/Polyfill/Polymark|max. 128Array must have|one dimensionNumber of points too|large for arrayMerge - Not an ASCII fileMerge - Line too long|aborted ==> Syntax error|program aborted!Undefined label"Out of data#Data not numeric$Syntax error in data|unpaired quotes%Disk full&Command not allowed|in direct mode'Program error|Gosub not possible(Clear not allowed in|For-Next-loops or|Procedures)Cont not possible*Parameter missing+Expression too complex,Undefined function-Too many parameters.Parameter wrong|must be a number/Parameter wrong|must be a string0Open "R"|Record lenght wrong2Not an "R"-File3Only one Field per|Open "R" allowed4Fields larger|than record lenght5Too many Fields (max. 19)6GET/PUT|Field string lenght changed7GET/PUT|Record number wrongMENU error?RESERVE error@Pointer (*x) errorZLOCAL error[FOR error\Resume (next) not possible|Fatal, For oder Locald GFA BASIC V 2.0| Copyright 1986|GFA Systemtechnik GmbHf2 bombs - bus error|Peek or Poke possibly wrongg3 bombs - adress error|Odd word adress! Possibly at|Dpoke, Dpeek, Lpoke or Lpeekh4 bombs - illegal instruction|executed in machine codei5 bombs - divide by zero|in 68000 Machine Codej6 bombs - CHK exeption|68000 interrupted by CHKk7 bombs - TRAPV exeption|68000 interrupted by TRAPVl8 bombs - privilege violation|68000 interrupt by|execution of a|priviliged instructionm9 bombs - trace exeptionGeneral errorDrive not readyUnknown commandCRC error|disk check sum wrongBad requestSeek error|track not foundUnknown media|boot sector wrongSector not foundOut of paperWrite faultRead faultGeneral error 12Write protectedMedia change detectedUnknown deviceBad sector (verify)Insert other disk|(request)Invalid function numberFile not foundPath not foundToo many open filesAccess deniedInvalid handleOut of memoryInvalid memory block adressInvalid drive specificationNo more filesGEMDOS range error|seek wrong?GEMDOS internal errorInvalid executable file formatMemory block growth failure"l`Yd&-KNN"l`YepN&#k"C-KN"Cփk փk2##`փk"`2`$Y8gHRDD*D%H8#$c2g# HRDD%H`Npp@pWBg?<NN\pp@pW?<?<NN\pp@pW?<?<NN\pNpNpNp NdpP"<N`NS Y S - P R O O F4N pNpNpNpNdpn"<N`NBy: David Silverman4N pNpNpNpNd <"<N`NV0.1N pdNlNBN:SYS-PROOF has been released |into PUBLIC DOMAIN. (c)1987HPNContinuer"_ NrAN(BNWritten in GFA BASICHPNOKr"_ NrATN(NpiN:HPN\sys.datr"_NpNNC`NpNNCfNpNNClNpN0Hm`pr"_N~C퀜NHmfpr1"_N~C퀢NHmlpr"_N~C퀨NHmA퀢"_NHPA퀨"_NC퀐NNNNPlease enter your access code: 4PnNCNHmN ....t"_NnfN'pNpNpNpNdpd"<N`N*** ACCESS GRANTED ***N NHN(ANHPA퀐N"_NnfN(0pNpNpNpNdpd"<N`N*** ACCESS GRANTED ***N pPNlA(N N(pNpNpNpNdpd"<N`N***** ACCESS DENIED *****4N pdNlN' NHNpiN:HPN\SYS.rscr"_NpNNC`NpNNCfNpNNClNpNNCrNpNNCxNpNNC~NpN0Hm`pr"_N~C퀜NHmfprJ"_N~C퀢NHmlpr "_N~C퀨NHmrpr#"_N~C퀮NHmxpr>"_N~C퀴NHm~pr0"_N~C퀺NHmA퀢"_NHPA퀨"_NHPA퀮"_NHPA퀴"_NHPA퀺"_NCNNNNPlease enter your password: PnNCNANHPAN"_NnfN*pNpNpNpNdpd"<N`N*** ACCESS GRANTED ***N pdNlNHN*pNpNpNpNdpd"<N`N***** ACCESS DENIED *****4N pdNlN)N NH'dN P TTT`JRL` Efv*oM m HPHUBg?<JNA(m)m -:gS)@ -OK1PC#HNHx?<HNA@)@l/?<HNA)@h&@)@XЬl)@d)@`ARCpr Ѝ"QHN(ALNFHz2?< NA\pdAxr0XQ)K\NNTJrBjNuHz?<&NN\CAp$L Qp N0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@N&?<,>CEdGH@0r`?<`JBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNuprt|=|n  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</N8JFkSFk&aQN8`Ha"FFaQL8N 6.nJgtBnnNupr$<NuJBk4<rpAC v JBgJjv-| Bb BkH>aaNRFBdL8?N <JBga2SF Be BgQRB`ApdR e <rRF&0xafEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`2:HQ A dNAXJ@jNNu&(*N*NNxvN|)@p `H@)@prtNAHplrtNB 2pNzpNnpapaprapalpalpalpaTpaTpaTBp'a?<NNT@B){L9|0<rtNpapap9@p`pvN|v`v`vj`v `v`v`v`?Aa*` Al 2l 4)lVH)lRprtNAl 2l 4HVNu?<NNT$g4<rЀ[Nu(* 9AJA)H@@[000][ˈN4 Evz`* [g" ]g |g QSz` zQSpQ][ɈN4 Dvx`* [g" ]g |g QSx` xQSpQ]Bp4NRGFc8>`4A g6 g0 g` gTlfelhgFf2pRGRFa`a,` `?~ap ap a 0NuCpE`bf`FgRGJGgRSGSFFgCpE`Yf`Nua@Jf gH@ fa(@ fza0 b @ Ee0Nu?<?<NMXNur9A(HN|LNu0,^2,`NzEfpaRppaNAEg0PaľEfa4RE`p a2a*Efp a(NƼldeS@f lbfSl`9Ab9FdNupapqr`p`<(`|HP?NB<pg2JFg W"X2@e2<A`QNCpR@ 1 fA 0! "_Np`pJ@gHzZ?<&NN\NuB?< NA\Av ACLElp"Jg X\QC"C!/:@?< NA\NuLH!NuHx`(Hx`"Hx`Hx`Hx`Hx` Hx`Hx !4VxH A6@ Ni LHL|1R/:?< NApdK`HaJLxNNu)H9@Jp4NJf`CfSHj-D@Hd0H@H 0H@0`fSC\fS , @a"C\fApNNN&HP?< NA\NuH@aa/a a Nu@0 9c^Nu| PC>$Error # ][Abort]\f.B &lX)K\)ld` lp ,BQjNup(N Division by zeroOverflowNumber not integer|-2147483648 .. 2147483647Number not byte|0 .. 255Number not word|0 .. 65535Square root only|for positive numbersLogarithm only for|numbers greater than zeroUndefined error Out of memory Function or command|not yet implemented String too long|max. 32767 characters Not GfA-BASIC V1.0 program Program too long|memory full|NEW Not GfA-BASIC program|file too short|NEWArray dimensioned twiceArray not dimensionedArray index too largeDim index too largeWrong number of indicesProcedure not foundLabel not foundOn Open only|"I"nput "O"utput "R"andom|"A"ppend "U"pdate|allowedFile already openFile # wrongFile not openInput wrong|not numericEnd of file reachedToo many points for|Polyline/Polyfill/Polymark|max. 128Array must have|one dimensionNumber of points too|large for arrayMerge - Not an ASCII fileMerge - Line too long|aborted ==> Syntax error|program aborted!Undefined label"Out of data#Data not numeric$Syntax error in data|unpaired quotes%Disk full&Command not allowed|in direct mode'Program error|Gosub not possible(Clear not allowed in|For-Next-loops or|Procedures)Cont not possible*Parameter missing+Expression too complex,Undefined function-Too many parameters.Parameter wrong|must be a number/Parameter wrong|must be a string0Open "R"|Record lenght wrong2Not an "R"-File3Only one Field per|Open "R" allowed4Fields larger|than record lenght5Too many Fields (max. 19)6GET/PUT|Field string lenght changed7GET/PUT|Record number wrongMENU error?RESERVE error@Pointer (*x) errorZLOCAL error[FOR error\Resume (next) not possible|Fatal, For oder Locald GFA BASIC V 2.0| Copyright 1986|GFA Systemtechnik GmbHf2 bombs - bus error|Peek or Poke possibly wrongg3 bombs - adress error|Odd word adress! Possibly at|Dpoke, Dpeek, Lpoke or Lpeekh4 bombs - illegal instruction|executed in machine codei5 bombs - divide by zero|in 68000 Machine Codej6 bombs - CHK exeption|68000 interrupted by CHKk7 bombs - TRAPV exeption|68000 interrupted by TRAPVl8 bombs - privilege violation|68000 interrupt by|execution of a|priviliged instructionm9 bombs - trace exeptionGeneral errorDrive not readyUnknown commandCRC error|disk check sum wrongBad requestSeek error|track not foundUnknown media|boot sector wrongSector not foundOut of paperWrite faultRead faultGeneral error 12Write protectedMedia change detectedUnknown deviceBad sector (verify)Insert other disk|(request)Invalid function numberFile not foundPath not foundToo many open filesAccess deniedInvalid handleOut of memoryInvalid memory block adressInvalid drive specificationNo more filesGEMDOS range error|seek wrong?GEMDOS internal errorInvalid executable file formatMemory block growth failuretHB9BL@@TAt )l g.A( f hgSASAgRB`9BJNBAAb8RGRC`3RSG5GC5C J1DcaRF F e`RG GcdNuXASF1F41R 1h4 x1EDgVA)H)H 9|J?<NNTU@g,ACg dRhdRh(gpL8N

L8N(AJ0?C bL000zH?A/.)HpNBl/,ff.f.ffNu l /.g&, ^`D&, N`>&, R`8&, V`2&, Z`,2,/4WAARA0,/6A hfRAS@f9A/,&, Jo ? CNN0`@k Ap0(/.NuA Nup)@JphNAFG0000X0000X0000X0000C ~AJ0g0  pi, N<"F QNu"l`Yd&-KNN"l`YepN&#k"C-KN"Cփk փk2##`փk"`2`$Y8gHRDD*D%H8#$c2g# HRDD%H`pCNBN^DeskCNHxNj About SYS-PROOF CNHxNj-------------------CNHxp1NCNHxp2NCNHxp3NCNHxp4NCNHxp5NCNHxp6NCNHx A CNHx Nj Utilities4CNHx Nj 4CNHx N^ Change access code CNHx p NCNHxNj Change password CNHxNj---------------------4CNHxNj Quit-CNHxA CNHxNjOther4CNHxN^ SYStem functions CNHxA CNHxN^HelpCNHxN^ Change access code CNHxN^ Change password CNHxN^ SYStem functions CNHxA CNHxA CNNRpp@pWBg?<NN\pp@pW?<?<NN\pp@pW?<?<NN\pNpNpNp NpP"<NNjS Y S - P R O O F4NpNpNpNpNpn"<NNjBy: David Silverman4NpNpNpNpN <"<NN^V0.1N <N@NRBN^:SYS-PROOF has been released |into PUBLIC DOMAIN. (c)1987HPN^Continuer"_ NFANBN^tThis program provides security|needed to ensure that only you|or designated persons by you,|can access your system.|HPN^Continuer"_ NFA NBNj5Hard drive owners should find|this a usefull utility. HPN^Thanksr"_ NFANAJnNNNpNANANT&<x*<NfN2A4NNANT&<x*<NfN3A>tNNANT&<x*<NfN3JA5NNANT&<x*<NfN3HxN^Are you sure you want to QUIT?HPN^ YES | NO r"_ NFA*NA*NT&<x*<NfN3N&N3AJnNNANT&<x*<NfN4ADNNANT&<x*<NfN4FAG(NNANT&<x*<NfN4rAIRNNA0NTJBg6N&NRBN^F S Y S - P R O O F|Version 0.1|Written by David Silverman|(c)1987HPN^ O.K. r"_ NFANAJnNNNtNRpiNHPN^\sys.rscr"_NrpN*N,CZNpN*N,C`NpN*N,CfNpN*N,ClNpN*N,CrNpN*N,CxNpNHmZpr"_NRC퀖NHm`prJ"_NRC퀜NHmfpr "_NRC퀢NHmlpr#"_NRC퀨NHmrpr>"_NRC퀮NHmxpr0"_NRC퀴NHmA퀜"_NHPA퀢"_NHPA퀨"_NHPA퀮"_NHPA퀴"_NCNNRNBNvNBNvNBN5Please enter your OLD password:(MUST be 6 characters)4PnN,CNANHPAN"_NBfN7NNBNvNBN5Please enter your NEW password:(MUST be 6 characters)4PnN,CNA9NNN9 NBNvNBNvNBNvNBNv***** INCORRECT PASSWORD *****NvpKN@NRNBNvNBNvNBNv Attempt #2NvNBNv ==========NvNBN5Please enter your OLD password:(MUST be 6 characters)4PnN,CNANHPAN"_NBfN8NBNvNBN5Please enter your NEW password:(MUST be 6 characters)4PnN,CNA9NNN9 NBNvNBNvNBNvNBNv***** INCORRECT PASSWORD *****NvpKN@NRAJnNNNtHmpr"_NRC퀺NHmpr"_NRCNHmpr"_NRCNHmpr"_NRCNHmpr"_NRCNHmpr"_NRCNA CZNA C`NA CfNA ClNA CrNA CxNBm:A6NT&<x*<NA6NhHmZ <r$<N&<x*<NNTN"_NCZNA6NT&<x*<NgBm:A6NT&<x*<NA6NhHm` <r$<N&<x*<NNTN"_NC`NA6NT&<x*<NgBm:A6NT&<x*<NA6NhHmf <r$<N&<x*<NNTN"_NCfNA6NT&<x*<NgBm:A6NT&<x*<NA6NhHml <r$<N&<x*<NNTN"_NClNA6NT&<x*<NgBm:A6NT&<x*<NA6NhHmr <r$<N&<x*<NNTN"_NCrNA6NT&<x*<NgBm:A6NT&<x*<NA6NhHmx <r$<N&<x*<NNTN"_NCxNA6NT&<x*<NgHmZHxA퀺Nr "_N\Hm`HxJANr "_N\HmfHx ANr "_N\HmlHx#ANr "_N\HmrHx>ANr "_N\HmxHx0ANr "_N\pONHPN^\sys.rscr"_NrpN*AZNDNvpN*A`NDNvpN*AfNDNvpN*AlNDNvpN*ArNDNvpN*AxNDNvpN*p NNDNvpNNBNvBN^| PASSWORD CHANGED|HPN^ O.K. r"_ NFAHNNRAJnNNNtNRpiNHPN^\sys.datr"_NrpN*N,CZNpN*N,C`NpN*N,CfNpNHmZpr"_NRC퀖NHm`pr1"_NRC퀜NHmfpr"_NRC퀢NHmA퀜"_NHPA퀢"_NC퀄NNRNBNvNBNvNBN7Please enter the OLD access code:(MUST be 3 characters)PnN,C퀊NA퀄NHPA퀊N"_NBfN@&NBNvNBNv8Please enter your NEW access code:(MUST be 3 characters)PnN,C퀐NAANNNANBNvNBNvNBNvNBN!***** INCORRECT ACCESS CODE *****:NvpKN@NRNBNvNBNvNBNv Attempt #2NvNBNv ==========NvNBN7Please enter the OLD access code:(MUST be 3 characters))PnN,C퀊NA퀄NHPA퀊N"_NBfNANBNvNBNv8Please enter your NEW access code:(MUST be 3 characters)PnN,C퀐NAANNNANBNvNBNvNBNvNBN!***** INCORRECT ACCESS CODE *****:NvpKN@NRAJnNNNtHmpr"_NRC퀺NHmpr"_NRCNHmpr"_NRCNA CZNA C`NA CfNBm:A6NT&<x*<NA6NhHmZ <r$<N&<x*<NNTN"_NCZNA6NT&<x*<NgBm:A6NT&<x*<NA6NhHm` <r$<N&<x*<NNTN"_NC`NA6NT&<x*<NgBm:A6NT&<x*<NA6NhHmf <r$<N&<x*<NNTN"_NCfNA6NT&<x*<NgHmZHxA퀺Nr "_N\Hm`Hx1ANr "_N\HmfHxANr "_N\pONHPN^\sys.datr"_NrpN*AZNDNvpN*A`NDNvpN*AfNDNvpN*p NNDNvpNNBNvBNj| ACCESS CODE CHANGED|4HPN^ O.K. r"_ NFABNNRAJnNNNtNRN .pNpNpNpNp"<NNjH E L P4NpNpNpNp NpKrNN^Change Access CodeNpNpNpNpNpZr NNjOThis option will allow the user to change his/her current access code which is NpdrNNjOrequested when SYSPROOF.PRG is run. The user will be prompted to enter his/her4NpnrNN^Nold access code, then to enter the new one. The access code CANNOT be changedNpxrNNj#without knowing your original code.eNNBprNNvPress RETURN to resume... NLArNNRAJnNNNtNRN .pNpNpNpNp"<NNjH E L P4NpNpNpNp NpKrNNjChange Password4NpNpNpNpNpZr NN^LThis option will allow the user to change his/her current password which is NpdrNNjOrequested when SYSPROOF.PRG is run. The user will be prompted to enter his/her4NpnrNN^Hold password, then to enter the new one. The password CANNOT be changedNpxrNN^"without knowing your original one.NNBprNNvPress RETURN to resume... NLArNNRAJnNNNtNRN .pNpNpNpNp"<NNjH E L P4NpNpNpNp NpKrNN^SYStem functionsNpNpNpNpNpZr NNj-More help is available within this section...NNNBprNNvPress RETURN to resume... NLArNNRAJnNNNtAN(N prN pr N pr N prN prN NNtN&28&&&n &&&^ ^ TnR` ` X<. S Y S - P R O O F SYS-PROOF is a public domain Security system, mainly used for hard drive owners, but if you only own a single disk drive, you could put the program on every disk! This program will be of most value to those of you who boot up your hard drive DIRECTLY when the power is turned on. For those of you who use a boot disk, it would not be as valuable, as it is possible to use a different boot program, etc. If you do boot of a floppy, DON'T GIVE UP! This program still may be valuable to YOU! Within the SYSPROOF.ARC file, you should find five files; SYSPROOF.PRG, SYSTEM.PRG, SYS.DAT, SYS.RSC and READ.ME. SYSPROOF.PRG Place this in your \AUTO file on your hard drive (or your floppy) and when you boot up, you will be asked for an ACCESS CODE and then a PASSWORD to access your hard drive.(or floppy). SYSTEM.PRG This program is essentially a shell program which enables you to change your current access code and/or password. You MUST know your current one to change it though! The original access code is: "SYS" (ignoring the quotes) The original password is : "PROOF." (ignoring the quotes) SYS.DAT & SYS.RSC These are files needed for both SYSTEM.PRG and SYSPROOF.PRG to run. Problems: I have tested this program numerous times, and have NOT found any bugs. For those of you who boot up off the hard drive, it is important that you do not forget your access code or password. Possibilities: I have decided to make "personalized" copies of the program, making each one different from one another, and later, implementing a few enhanced techniques to add punch to the program at bootup. If you would like this personalized version, which can include any information you like, send me a message on this bbs. (NCAUG --> 612-231-3411) If you come accross any bugs or have any suggestions, please send me a message. I would also appreciate any comments on this program. Thank you. Enjoy the program, and security tight hard drive! David Silverman August 26,1987 A:\sysproof.prg `rAl BgHz~?<=NAPJ@jHz{?< NA\?<NAT`K:Hz/<@??<?NA JkrAB(??<>NAXB?< NA\Ot#,*|:<JgXQHy;?< NA\`(E**EV$/?< NA\OABg/?<1NABgNAp,g4A& PB y,C"C #, h h$h C"Nu o Pf#, zCfHy?<NA\?<'Hz?<NNAPJ@fjKB@|ߐ<A??<NAXRI:<?JgQ:<? $\gQRBHyJ?<;NA\ o PgTgf zS@9@P l6fVl8`Tl80,@l89@R9@NHlL?<?,FN"PN^NuNVH&n>. <.=|Bn0<9@N9@L0+S@9@P0+S@9@R9GT9FV0lP9@X0lR9@ZHnHl/ HlL?<?,FN"LN^NuNV/ &n n 0 n 1k n 0kS@ n 1@ n 0(kS@ n 1@&_N^NuNVH>.<. :. 8.Hl:?<N \\?<NxT=G=F=E=DHnHnHnHn?< ?,DN `VHnHnN"PJ@g$HlLHnN8PHlL?<?,FN PN\HnHnHnHn?< ?,DN z0.g0.fHlLBg?,FN PBgN THl:?<N \LN^NuNVHBg?,FNX?<?,FNX?<?,FN(X?<?,FNX?<?,FN8X?<?,FNX9lBL9l@N0,Bl>S@9@P0,@l9|0f9|B Gf 9|@@9|!?,@?,B?<N 9@DBgBgHl?<?,DNt BgBgHl?<?,DN\ ?,?,@?,BBgBgBgBgN?,?,@?,B?,DN~ HlHl@HlB?<?,DNHl:?<N\>N^NuNVHl:?<N\HlHl@HlB?<?,DNx?,DN?,@?,BBgBgBgBgN(?,DN*T9|D?,FNbTHl:?<Nv\N^NuNV?`>Hl:Hl:Hl:Hl:Hl:Hl:BgBgHnBgBgBgBgBgBgBgBgBgBgBgBgBg?<N<>0.|g`?.?.?.?.NP``|g`BgBgBgBg?< ?,DN ``|g` N``|g`D?.?.?.?.?<?,DN HlHl@HlB?<?,DN(`J`|(g`* lDfN:`BgBgBgBg?< ?,DN8 ``|)g` lDg9|D0<f>N^NuNVNHl:Hl:Hl:Hl:N9@H9|DHl?,N\9@JNnN^NuNu)I)J"/0<NB"l$lNu NV9n 0.| A" AA-H=|` nR2.A H0Rn nm/,N.X0,N^NuNVA )HA)HA)HA)HA)HA)HA)H?< NXT9l0,N^NuNV9n9n 9n 9n9n9n9n9n9n9n9n9n9n 9n")n$9n(9n*?<NT n,0 n00 n40 n80 n<0 n@00,N^NuNV9n9n ?<NTN^NuNV9n)n ?<#NfTN^NuNV9n9n 9n 9n9n9n9n9n?<IN$TN^NuNV9n9n 9n 9n9n9n9n9n?<JNTN^NuNV?<MNT n0 n 0 n0 n00,N^NuNV9n)n ?<NNTN^NuNV9n9n 9n 9n9n?<dN^TN^NuNV9n9n 9n 9n9n?<eN.TN^NuNV9n?<fNTN^NuNV9n?<gNTN^NuNV9n9n ?<hNT n 0 n0 n0 n00,N^NuNV9n9n 9n 9n9n9n?<iNTN^NuNV9n?<kNnTN^NuNV?.N T nn0<`?.?<>N "X9@Hg0<`0<N^NuNV?.?<LN XN^NuNV/ A&H`0+ |g/ NBX A"Ҽm?.NT&_N^NuNV0.n l0.`0. N^NuNV0.n o0.`0. N^NuNV n0 nh? n 0 n h?NX=@ n0( nh? n 0( n h?NtX=@ n? n ?NzX=@ n?( n ?(N`X=@ n 0 n 1n0.n n 1@0.n n 1@0.n^Jg 0.n^J|N^NuNV/ &n/ NDXJ@g0<`00+ |g /+NXBk ?+ NTJ@g0<`0<&_N^NuNVH&n0+ |f0<`.0+ |gV0+ |f0<`v0+ |g?<B?+ N"P?/+?+ NRP @f0<`@k 0Hѫ`$ k o?<0+D@H/?+ NP'@&Bk0<LN^NuNV fBC`&SCdTC0|g0|gԼdRC`|CHBC0|@HB LN^NuNVNVH n " n $&JjFFJjFFLN^@pNuNVH n"n $0(H@6C|g.0)H@:E|gE|BB0<まef bRAQ$0P`HNVH n$0(H@6C|gd"n .0)H@:E|gD|E(HD*HE20HGHBBB8:BGBBЇӄЂӅJg$0P`B`NVH"n 0<9@nQ`NVH"n Bln n,0(H@8D|fB.0)H@:E|fB2$60Enfl8,:.6$0Jg0Eg|n0@gDԇ0,nQ fBB`HSCdTC0|g0|gԼdRC`|"|CHB|C0|@HB AHABA LN^NuNVH0.|=@n n f n0H-@HnNXA-H`> n(g nf. n-P n(f HnNX` HnN>XA-H/./. 0.AJ PNPLN^/W DpNuN^NuNVH nB fB`м8 LN^NuNVH n$fBCB`nD6< f႖|NzN^NuNVH0&n$n Bn-J @)Pf)hj-lf-ljBEG>O|g|JGn|m` REHl/ NRPO`SEHl/ NPO`&0+H@JGgDG0<0dR@0.BAQ,>QQֆG|0QB`Rn0.g$nB`0R 2.HmB`b .6.HЃR$@ nH|0fRZ"` R"H|9n nH|0f$n R&@fSE .6.HЃ @B n0L N^NuNVH$.f BB`J". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNV nl <`?.?./. ?<BN -@ m .`?<?.B?<BN| -@?<?.B?<BNb -@ nf .Ю -@ `$ nf .Ю -@ `0.g <`b . oHn . /?.?<@N Bg?./. ?<BN ]|9@Hg <` `BlH . N^NuNV/.?<IN\N^NuNVBn`&0.A0nf0.ABPRn nLmN^NuNV?>.=|0A"HPgXHf0(>N^Nu)I)J)_ NM"l$l/, Nu)I)J)_ NN"l$l/, Nu)I)J)_ NA"l$l/, NuNVH&n Bn0.|dg`>< `.`|ug`>< ``|og`><``|xg`>< l* ndf SR- .D-@`0. f Gf .`& Gf .` ./0H/NX 2.RnA0 Gf .`( Gf .` ./0H/N X-@ .fp`FSn0.A P m0.A0| |A`0.A0|0 SR0.fLN^NuNVH&n n f=| )nf)njHl Hlf?<N]|@0. R@?HnHnHnN.g SR-.H|0f.f SR`J nff>.n RG0lro0,r`0> Gl0<`0?HnHnHnNBF`0RFA SRSGSn0g nl` SR0Sn nl0. g SR.` SR0RnSn 0. g nm`" Go0RFAH`0<0 SRSG0. Sn J@f`` SR0. g SR.><`0RGA SR0. Sn J@f SRE?.Hl/N /NXHѓLN^NuNVBn`"0. n PHC|0=@ nR n PH|0m n PH|9o0.N^NuNVH0&n -n @$PX`R` nRg H|%fH|%f,RBn=|Bn| H|-f=|RH|0f|0R-JHnN$X=@$nH|.fR-JHnNX=@$nH|lf=|RgH-n Gdg Gog Gxg GufB0.g @ ` @0H/Hn?.?NV 0.g0<`0<H` Gcf R @ nRT` Gsf4 @-PX<.` nR nRSF0g nf`J Geg Gfg Ggf, @)Pf)hj/,j/,fHn?.?NP` 0 nR .nl0.g$<.".A` nRSF0f`b .2.SAHЁ-@-@,.` .2SAHЁ @ nSSF0f` nR .o .R-@f nB .L N^NuNVHn /.NhPN^NuNVH0&n$K`Rf `L N^NuNV .9@ .9@N^NuNV .9@ .9@N^Nu)I)JHl)_Hl" <sNB"l$lNuNV9n 9| Bl9|9nN0,N^NuNV9n 9|Bl9|9nN0,N^NuNV9n 9|Bl9|9nN^0,N^NuNV9n 9|Bl9|9nN20,N^NuNV9n 9|Bl9|9nN0,N^NuNV9n 9|Bl9|9nN0,N^NuNV)n)n .мZ)@9|dBl9| n 9PN n 0A)HA)HA)HA)HN^NuNV9|eBlBl9nNPN^NuNV)n 9n 9|9|9|9nN A)HN^NuNV)n 9|9n Bl9nNA)HN^NuNV9n 9n Bn nR2.RnA|0f9|9|Sn0.9@9nNN^NuNV)n 9|r9|Bl9nNdA)HN^NuNV9n nT9P n9P/.NX/.NX)n 9|y9|9|9nNA)HN^NuNV`4 nH| f?< ?<NX nRH??<NX0. Sn J@fN^NuNV` nRH??<NX0. Sn J@fN^NuNV` nRH??<NX0. Sn J@fN^NuNVH0&n $KA-H nf?./ N4\=n`L nf?./ N`\=n`. nf?./ Np\=n`-KBn?.NTJ@f`H| f |o@ H-@/./.?.?<@N 9@HHg0<`0,Hn/./<?.?<@N 9@H @g0<`tRnR -@`R ned` 6.ƼЃ$@ H-@/./.?.?<@N4 9@HHg0<`0,HnBlH0.L N^NuC22222222222C"C2?22222222?@2~@2@22222CA "22222222C2222222222222222C~A "22222222C^2222222222222222CJA^ "22222222C*222?222222?22_22222CA* "22222222C"2"2 2"2"2"22"2"2"22"2x9|)l)l)l|)lt)lx9|rCJA"A"A"A$"A*"A"A "NuTop of memory is %ldFree memory is %ld bytesGEM version number is %d.%dTOS %c%c base is %ld %s(ROM)(RAM)Drive(s): %sDrive seek rate is %d ms.Write verify %c is %sonoffhighmediumlowScreen resolution is %sVideo RAM starts at %ldKey click is %sonoffKey repeat is %sonoffKeyboard repeat rate is %dKeyboard delay %c is %dBell %c is %sonoffCapsLock is %sonoffDouble-click speed is %d Private Eye Mike Yocum, 1987 - Version 2.0 Private Eye@$??CON:AUX:PRT:%d