dp  ȹ`  @`! #@%`')d-/1 3@79;=?A C@E`GIKMOQ S@U`WY[]_a c@e`gikmoq s@u`w} @`O @ ` @ ` @ ` @ ` ǀ ɠ @ ` ׀ ٠  @` @`!Aa  a!!#A%a')+-/1!3A5a79;=?A!CAEaGIKQ!SAUaWY[]_aceagik`  @`! #@%`')d-/1 3@79;=?A C@E`GIKMOQ S@U`WY[]_a c@e`gikmoq s@u`w} @`O @ ` @ ` @ ` @ ` ǀ ɠ @ ` ׀ ٠  @` @`!Aa  a!!#A%a')+-/1!3A5a79;=?A!CAEaGIKQ!SAUaWY[]_aceagikA296 ABC_VIREN }ABOUT_DA /+DISKUTIL }FEDIT }FORMAT T&T}MEGAFORM2_1}MSTRANS 2_0//xLEES DITu bK000_JBZDOC 6LvD_SZENEDOC oyEODESK DAT~{. }.. ABC HOE L?`kABC TOS Va?De file ABC.TOS bevat een archief. Zet dit (TOS) programma op een lege disk. Start ABC.TOS op en een folder met de automatisch uitgepakte files verschijnt op de disk. Dit is een zelf-ontpakkend archief. Gemaakt door: a -r -h archiefnaam.LZH drive:\*.* op te geven aan LZH 2.01 en dan SFX-LZH te gebruiken on het archief zelf-ontpakkend te maken. ` ,` G# k # Ј<.@// ?<?<JNAO N??<LNAH YOBWNBDE ` R @RD|m:<|`lN>|lN RPRE|RRW`JN8@SD|0|?@BC`(0C| RBG00NN RPRE|RRWRComҼeXOLNuH>OE  <;NR%H <ND# <ZN4# <N$# <N%H <N%H <N# <N$ <N%HdNN N^NR@ RN Rf \ RB( RA/H(y I *LA NM`$v- pr- tցp-րr-ցt-pr- pԁr- ԁp- Ԁ%BBB-A (H##G0"K NNZB@-B6"N oN>B@-BABB+JB5A RN&N/K B@-A/H`RK \gfg,Bp o NfJ@g o N o NA/H &H`B@ o N`r-pN@0/SoJ@f`rpN*0SWJ@fB@ o N 5@[@lN -1f8B@3BA5ANpNZ0*N|0*jgN` y"0*N0*NTN*L -lf -hgNO$L|Nu?/ 6E R@g`& j2H0*N<0Nr*pN\BRB*`J0 jRR Rf8*F@Jf*fr*pN& j"<0*N0<NxBR$_6Nu/ $H` BApNf$_NuH 6$z jfa zC06)"zRr0220tCr cBTBr bUB5 05 8101@ Dl1@:1 3 1P El1P306600fL8NuHa@6 y BD00L"y BE10UEAp0( na,1@H@kC@?DL8NuH v$z*6*299` IdTC620Sg& Cm3C0a0HLNuB@A"PgR2B@"PgRI@4<`H0B@ z"z$z`14B5G7@T@ @tmB@2<t`40p1533X@TA Ao1|BiL NuA0( na2I1AQHNuB@"hgRthhPNuH0BC8$y&y` r@mrs@I705@0TCTD|mBD6<t`PzD<3@sP70zC`UEsPeTE>Ep0"KAPNN7Pp0"JAPN:5PXDTC|mBD y`:2@1P|l1PTD|mL NuJ@`1!U@fNuH"y A<rHQRQ"y Ap rBDH6SCQRQ@QLNu yp2tId ASBf0RfNu/ y "y29 J@`vIC410AS@f3 &NuAaRA aHa6`Aa8NuAa,A a"a`A aNuA aaNufNuJ@gS@`Nu/?// Memory Write CRC Error Extracted Press any key?/?<NNAPONu?<NATONu?<NATONu??<>NAXONu/?<9NA\ONu/?<HNA\O @Nu/?<;NA\ONu//??<@NAO Nu?/?<GNAPONu?/?<? Extracting : *a-lh1-Ʉa \ABC.V25\ABC_250.PRGJia'0]wr06an"Ҝxi"Z,ePXd- ,Gù|d+1$Σ8 u=E_pca]c¼r Xdz1 "Nq%MMyhEX{lCy@%ǒ!D8uA99;锽@_[aI~IL 7?' SƗ鳙9xAyfAI8i&vtY5ձU%Ǎ 먯+TejfOSoA! 0)Tee\}Rf7oLJȴsT+ /Th%Q'ٮ._dHթj3Tpmm]M]AmH3;rc#/AnFng(bZ[Q~Q읣Tu#bܻxhoxd(Q@nm~9_3''8M{n?Ŏ<4ӽ̦7{)Znt({sC]*9y/RnpL=ɞ4~VDfPoq{X6,c "xK=Gf "ob[/{B4|/钐L?bE\r/1h;=̓v4(]})޾%: wSHQi>P'X454 F|c:"92&%rigg(M!--nO6-jʁdsE_N ٖ_;_d ƀ-!; cv&s>%=?.,ފ;ipw^MaC [Yi0n“v2q`y>&T_Gq^JN>n>+&LcIW6'PiyfA @px;Ӑz!@s=; |#eR7J,9o⭝']TEU7W-ѿ6pSOC0MȠ$VX<^3=lX9%1] M##0٭/ץJ0; = Ep~ nՂ}}z M`N4= }3$N:9;e'vq0}ڴߠ!s5s)΍kmӑ, @u;;ӳbfew8cArʦf6Yyk"SVy Y {dOpY3$A  `VYZV9gW @,+9X4+6Ʈ~n5ŸV ;F`o|PNQnm W8;NJϸ\ՖSOoAxwܮq3YPj௠˘Ĺ"'y޶|uג!JJHX|F,2\AAh6˝JBJqaޏ'1t5ݚRw|Q[u`  ?g0Gr[{RӤhuv +ZhWZ'DC ؿS~ ƅʢZڡ~}/.`?Kd:=熼 /Y&I0{Ú;>KWv"1P~K0+6#u+yC[y Kn))54!&W8WG8&(Pl/_j6#eW[Y",' @A|x[j}WTgζ;>;NԂӪiﯙ-w%5g%Ȭ&#sE`'U珓'.凂[QUijԯqG$kG=7&qOk?lA=Le s cTIS":\roUF!>c#}dz4܁vLTՑ݊+p&n1fV6c!3;B C`u'OHfEW[2{v_6ϊ={ q XSbcX0*.#/5Y͈HOOE5ˊڀuq\2c}vi}ʓis+/iuX$StHܑC 9ԅj`ϫWoI)ҵd­[) V|sK8RL~gVTIeb 3 DiQI1ЛО2ehk3N$JYKyVyԭ@H(=v/[: w<%LPQXOXef{jv>^1O䨨65a=9gKܢxhcf#_@F=HbӴZi'PpYڙ<z, z)*!:ywˇBԘ隷W*3`K]Ju k}hf^PFo,SJ;m/Hc(.?+5 wFZw̅bveXFӸ~sDvLsS>rŚǠQ?z X_ oaɠ8%~m{+vW4&p(7.&p!9TW%ЀWP.#n["bB&jYmjY>ehttȾPm|;v't!VVz\U4!vI9swɫ`ݡ?/fƱ 2re&c ?^й'ZX ζwRqֈcpʾ8ffxCfj KlbKS9N|O1T![$[gDĚwJ^]  t.B/2iݺ/ãX-"=N[UTWK1^VV{ +0^[?ԣzEs`Ww 2\7 Ȭy M/-K: S>]C/mNwP~ꝸ׽>OJogT<~ʄUClsb~>a-J_5C%7Fj/x6w*D~0mL;Q5=n k7К9ٰ@6(DE$p!뙒}~n-&ęj;e4ERg/d,,М^cƺ^%,279 Շ&\^W*Y{?[ލ8wWڿ9}U&@#NM;s?pE z8`,t`ޖ2D&kǷJ'ր9Y4VQ/e%(TlW|[ߟ^JL޾:Y|_go'9_(#h&)t:7< i a i.Vւf*lS¬3 +1S7|MxڮjMꐌ_|j+% *Bĉ6Sǟ}WGAg(5^lnԇޫ̇׺|Sh&b3Zzɲ4¿o$e/Po~v쟠@Ӗ >t t mi .- v C̵̈!ꐒ)?3۔=́4& %aWFfmk種/ҽ^E}EFԨZ=t/Ǽug >0OqCթZ#E#o{69;I8×Jo m-;r2M aS 4V3U~9(mRW^ƚj7^`Nݲd8Q9'iNyq'`Kkʡ=7 =MgԴFp % 2}3uQ 7^`o{x~cjA~ٹ5UC'l"smd/:\_܋leႉ IUN_Tn93߮4k4f-y\(k +;, Q›b4D0{ϵ oJV1VKj_p^BZlQ4k}ޑ;u5w]4גPoO̦ͧ~|!hk*WZ]Εxl2'ǑQFk#f}6=t{s}rfɚ=xK[=S[MF N0yVid;C]ݕte_d2@p=S-s-h JnN"7KQ҉$doέu`w"{2k}OҐ9eB83ͮ\>VCѯծm.E1<{75"_Ih^>́ݓYyW&Fuv%b<^MINgp8!g-6J[Zǰ rԍ5\O~ :Gi:nFğwݒlGj,~`|-:J 5Ϟ~vHH6÷Z #[XyIIm\ʛ`wTuޟa)0>YS&2i,ø#5K:&'k'=dʸGϑ?ת=1fH/vWdNE~^d>˔bV} sgnlEf6p]t%;k5_smb {Tgt=k-iBy{n IJ#T.sƸ?gLm3VC3Wg']H2?]ӗUPQ=v GĈ \k"}|MX VHJ( 9륶V_AUcng&진 VV9!74`{ňUX~A6_#f<հ?o9&{οҧ)T+sO=[6|M󘂎NXph|~SX`X:o@>7,L#M! +mG4?$^&9 _x"tixC=c[|al? yJ ;4eDp9ZBiGH\ !~iӮt~?sc}:kLpi5ތZvCr>ٴmKTםYdfjT>KI(B^Zђl]oMѭk)5~ޛO>SΏX83F^y7r>;$tn^2%܏fdK^ M*L@_poQ$5¦ghNx&02fT [m fýّ݋!S>dc0ۚ׊ǻ[})L۱ѕ"Wm[y`iG $6;)ܞx֋16AwqhԞp~WWQ6FAQT۳ьķps3wo:~ƣ_GE7w{8 nY}xx= cm~&P+v=P({"t(f!'z?.غ!!]\e#@9[lK}4H7I& s((0>xKYzA>P,L''Lf}0pҶb`x:Ksgy\ k#إkH7W DeG)U8QՑ,〦Z!Fy7K7~&׵rz+“4'XRN횁\1#f,!K}ORvV U9~?u)~+R}. KtWɮ-0Bnh`70)9_#63qһTA{;rps̪n1%9kVD^ ~C*J ޻4)` WtcHɌc~}*L/ $GV U^S ?r\TocrOߗ^Xuð(g= `nRv`ihp|nk}|ĵŢ#- ۜ-R%B.:}eB7YhbPN_J7/~Hy{C/{y<̱ 0r,V 4ˆNqg*pYMocb1,FiȁGXvuk ҁ1^-p>Y_n] q{[]_V}2s4᳣;8z?j2^ Nn7s0C`0x*J>Pqa+^sF1Ku>~u B[o3vJnlmՂh2:$K Ѯ T7_kWyB"ma!|H>]NSԀqoAMiB ӏ~a}'}髙>Ȁd7/'gE aɯs^`䱕߯+@5ޞO흣Eb/`|X cVB[vDy'__hC;0Bf5o.ܮR3o+_}jY@8qMI͇Kc_<[!o+PZ8m1K'uE@h/Ӽa=x9"xjZ;5l )A\6$y G=da?uQxeA.o#>;ٞl4ZްgXژzkuf[qoDvPa}c~tByzsT>}CkJPGPW/FFkp{g:y@}"t;]ъ;#xan_uweaNi\^/ Rx7@q@NIҍFo߼'a>zծuw/찤ϔ. 9p&ny=@sr]vn_:jtj_`XGR+~IY]պkt x䷈a ޕ BðπvPɕr-Zzu<.u[MY|7iWAz tZ`l@\#f.Mkz><wY`>- ]Mcȯ蝹c&-eBԴ2hGz¿}%~x34̽IcBI0?@`\Yҏt I[sKӬ9xGyGO yA2۸Ǖ7eB4x@S8 Dlnscr}O@DgalGy_iUX=cZЕ|#8ƽ|?cߜ\ى ~.؅i]Y*N`%T']7q͍h6 oNد<%!)wDfEw4~tx@)4:]9D Q5/)hz7 4nWqnO{644%[(x +3n|&wSl#'?IĂ_p̺M) z;E%Kjw d;qkb$R-QnTX^pƚ2Ѓvq {k6PWgl<wl6<8V9)9| (n$Dpk6.p@Öow38op-)e߶_qe_XNX`>|<,/OeCXեݞ5WSeM߿^ny5]dp4YckV+֖8۽/nKayS4l3ZD/ױ_o w{cP2'?൥?&x 3V, 1恍x*S܃u g[_mcYwƤ,,n kt)m1]TTf E2COBa5'hWN3S"E+n:5ּZ's^bfa$e7u\oxRԩy(vrrr[~̲xi[k@獈4',m= Х+#1'wY=k?@LyutTxKlsGO&tGMvkjoGOϡI:uˎtssXuv9 f iۤF7LP%*n`ӳvq(I^IDmц+s XfA>[TP,n3ޠ?ZQD4>bZΓ(xM1+1k %;J1gARlS$ H bV 3}񗃹m :V? >BD/|*eyC!罹;eRL3Nd>#`hzU?#S b7> ;9]Zj,`=pE^}"H^_x6d ev݌1=xGV*o'=]$Mkm}H議)gLDZ[ӳRkMnH :Up:ȷ%bfǝ2@~.H/{Z<+.qÊ]ZӗC [V` z@T,A^1["o tnpک#p;xG|zW^8] (?oK129/glR+nA2?ofnZןnQi f> ½/X$:*Mvn\n~h,yov%CT  !ܫj`شCca;QT1CYij32^].rBM[9܇cM!{ݴ!j_O8NҞ[fݽ+`*~M5NSjVRyVrCW+7j^R냡xtx6k}_R'uJ]f7`dJĔtr:y4)ܕW0%l\<7~譹mZODwky>URldЍ.9}op%$e)m\bAKc>?m@ֺ`"Ȼ1scvy~_EufҨ@ID+Of-qڝʋ^e~\5^[ث 1Qr{jڑ{'-9v'pA%b_ch{9u J'ڱ@נOH{` A0["!y)v6׊ H6i(Q)vK?^8}kqC1~‹Zs?j척ܞe<.ZzexTL\8:jSWyݒPgR9Ϲg/s{:p{klbiu*Yl|vts?-@%R^)49[=J5gϠcA8ssgLNLtyp ߋf%g4UzM[;\Z.+`9f1'EJtl~w~k|ȹGstM1;rn4-=U^]}wz SN׶ɧBE3A;=izYW+%q'S8my/>cɮ3P$@zD2u8ϙE9d좚:&Iamǽh͂gzދD ;O9^;:=?R+bg=Sў&lM,~f/]sx = (.ob'CKGHϷ{F/Jb?QMqTNoN1(*&R` äꡅBΞQS/}n.t넿y^ jT'}N{ڻ>RWK~ izSzFIGkګLO+ j޽C'YOVZb:j+tƱh"HCxnFo/>I$.}zF>Hv2H ֠}"ׇ]2)js%RhnT)zB''-כdg #=r^Цt@żyoa"Ϣ}35#ڎ{Iiav/@x";2{<{aWpJư d߬kd4%FV~EmCF=3CXMv;xng毲|ς% Zf'Le_PqA2V[ ԙ=wt|@~߰kH/ĥKm·+Y@u@f}!2ͭ|P_brؗ-뉲mz5'܁? cN&0'@s[ ]Hћr7WUg^S;㮙CYǟ`Fz x[UӑIHe-FyĮ356rEs̎Db.î@w/=2nRD -KVa$rk<-`^.y#|Ozd &/Qw<{xKO)N\y,]<-0%3_ Nc'ykj :|+~ 3c9!A0eq@* /Nvwsen?ҝoM5(;gU_xA Unr4od~6T0=|%ȏ?4=oلK9I$iIr(Wѓ#NR LwC ā$`SB~/\}`zȾ]d}9) iV=?zyMn+'3w&"q]1$c;FB;X3,tq/_GZ'th\4fc> i[k[rlA9zcdž&J];U#_6F6 l24] 7_ ܿhZ Q ^Mր&Ӏ@#˪n,-Gs*i}};eb~>Wy=.hXܽa`؍})KlkmfbOv; k$AF:ەPN6VnL6/^5ʮz{Kő x'`,nSsr#|hM7ufHQ^o珜Ϯ^ѥgk,k2㐛J칛\[fsRN7P{(!nc6皠= e↎?&Gs#|(bpa"YN͢|"p7<)D^+NWbRL+8%q~Bhb8PWA¡?D(mWa;`K(+'Lo4@׫ o*|E;}DYX 6<'oR<>&yWr}q)M.Y]XD5<{x]g#Ww3S_A~ܚU\;J9ٟ"<[dP_U~#D7E Uͨ)w1H<܈<µYOZ üN E/eO[_<~6ϡr0`vt>ߕ:x|<٪ Y6rdSH讀>̟+Y?ŇN:?>+UW/saF)~@ kёN{c؄ ;OEm`) 4cPz16Q?ϿB4aK]̢=V{aVgeN{~8f2?+ÿV +R51඙dO/U ,ۻf( nN\焁&|p]w~IȔ[֍u5n!^'->ӽk}4Oh `Ky׸/Co ٔqy ~&p,=f.A-W z~)!wȯbzaƲtɳ~wpRFS$JHSǃ2.`|baU(Yg 4 zj6QFG7i@A*6$?V(*ݘnl-ֻM/*|3A+x˥ܬ%̜MySMu{pˡv]<7aEV's7ws=ƾfi&YfER|֦%o^Co@)LliOv7gwϻ8׭GޞER̐gg TZ㷍a:2B(alv!{`RNB!Fc*ǯ-vSy{dcC?Jn%릘Ynͽ3VVL]IB9wʍ(= Ȧ7U+PPMVKQaeiΩGv]*n\NIοxxUˏؗ;)8dmԝgNQR+7v妬կSFw;4M!xPGf 8_wxL:6("妊uy7F&qqoywHV?Iس/!9n|erL?f;ƒx݀JEy.F//.?= C"`oFN kn(CP=^\micv\Hr)FRƳ'$tY]^dwm/T`ھGy8-]vn=) o̦ÊǢ<h m<LFlV. QIJЯ}*m活&2嬌Ȣg@?s3df| X΋szxk5v!X'Ny_t+=%>Deu$&[f+zFI19r_[N|DX|d&ƺ  qc|kc'E K1mbY\랝 5 Z+Y|[`5R>M=> _P=*AdXrw.w(]Qbi0o2JI<3dYwƄһ;~ Žc 9+"'}VywX=vvϊwP35DvU}R?'DSÙ_ޣKv?whAw8,um xKwָ0|o)}-zI/>6,l"6 |ܽbǹZy2 [#byG/1L21q *͇I =v,|^ϟpugnV^' Gwͻ YSs4rUj'e\?7+ZIYA=="niWxʢp U>7,T50TowTFQCdB6X7`eJ؛R+sm-2ËPso{\P[vz5Z\Ya2<8K.2{}Z{ ]}PUB'B7+n텨;=K>Oi=x/P@6ZWX1>0/PQ u G}wO.w;~{M>&{Z|17f Tbs<^f(9"+yoY͔5 xB̛'vŤGTҜzf֖zh*CVbG^]%j<_z;[ -miosI!v^.ߟl3(Ƽl{` Kla:qg |﩯~3}<*S G5cg!'4bؚLw(GQӞ1{RC)W{uGxZ-~TLae^m.?Hgv@yy( qoY_kA]i^LLPŤvfOEϘbeT#C7E =7o eHtv \;yϓP5dquua>q$tt_W ˛jNЬf ְ{~bi(!ۘ_-ZYÜS~o䄨/K>-O ?rE>ǫK,bF A iwբ~$*uYEÂ&,8yL<,hm^DG]].& <?rߛ6AtRz4A\l%v>+^iIQG Q0<0fT+GMZYc)iaG}s?^nެ'F&KbI{S{CȻo1Cr׌k >ݧw۔XFD/`m&c'W_vl,9É? .W u*So(u7]vrfyn;n ?)H+q*x]fߢ{Cڗ'L9-k8M,utJ9gj*U/_;%{ەOL?]}V vC%.>^;`i=|G%6߿#0؝-aȴ~}wLvȴg^KkߚGm[$7 c1A|&ތogzɑ$ #ߤ6L2xiA5Ps~_#x]j l5Gkg!*L`s3컫 َuv+'+S6R+&]Mu+)2hUH ɞ˿0D&ZKح!fNzIDϤ=?$ڧD6 V",wP# Z( t'z B+~}c?V.>Ift\$/ՂW}AwIB*\*҂]VzN맩5;6lEGRigIV*Nm|i׎WHR_)cҐpnpE7ON>b]bU\4UboKð[jqڋf_]WU_(/h[\D Ѱ=L-aR͓9åR\:PP ^,߅QF8UeI65 wbUpNIx\tzmӂ4!$cN>.6U:甭]o-\T]BȮA{Q&_W r8̒?beod}#倎%l3~c %3t ce2( @{kY ÔlZ]} )or 7%2ߢZc׋3PUw{^V3/z:*icXs)2w1Ar iM$$o|E7=$^uXNԋ~)jvshS0T 7hy /n^D7IBo4J)uXm5oe͢@"ܸc`ߪ·c? dWx˙.}ԔC CKeYP 0^(֦\!F]'.MoIj5aVLb=Yur멩rSWQ0s)g5.Zw9x?lN˵YBsCvKgɟa"eO!M Wp]0@7@l˓+@x|͸VÐ@,z(Goo,Z5L{KzYt͛ޤ%7LG/5U7](7ogNy 8Tk6DK6'HS_}?8[F}+OGfvttz0aMNt@=UUl+e0J.J2Ų<> ˛> cQ]Qs`gy{FtU%;xǜ"A8iܺL"xeɍP3yZ1g36 0[rfs{&5;--::fהW婿tq8+fBFe<^J gprf[e~۾#0U*`>| B2P&֭4#"D/|F !:1{bA:Vv'\/ R&@V>C)ݛlѾO$Ԅ!?!f{dn+1G/y5 ŝVG1&G"nyQH.yV,ՖtF&͝M.lv 3A%dJ/^*֍/+֓f!T/~]3wT ?+E1gGƟs)k2lmw_Bj<+DF=U ~$o'c{PVݴ>IYjV3f[ LZ"`PFuNa؆;JjT,S5o'kD3? vJtS$qD#2-{N*劳,ȃ#Z]gHFoU -C&hwmWYmNz~qR (c RgIRV@)2G&b_X,Ñ&^;N: x+:ȭABdB cʓ8G+֖ ~(PjL&XMr:pZ?DE α|E,n(dR9㧰"2P"]Ւ[6  J+ĦZoT!ReJ-{>BN U2֯ߌ~6x-w MfQd+68 `ULkڢ*hNޞ6Q>ta-L;|,ӔG98`97JrcMnCd 2z̴)WQ͆|R<D>U$|>q0lg,Aɠv۪$*SF0 +]״}&>qbRQ~ZLowzd 09kG>'|&Dy"jOFȲi5A{d-\d\z>~Vh gYcU_?!s53욦HF - ضE5edz\(ˌVDSWe^zFF"XtǛi?!YƬ(BM2;Z6`sXfjWJ" Қ sDO.4 Ʉd 6C f*u2 *7KknLb12d+N)qV{ L,i_.uJL*G M_OH 0/Sct},Qoj |?}50d4Q SĪyk V"MiY֖p0uzՖ7iǝGj? ]娿 {O)A, J+e%z.= L &e(Y{<'}>h;2"r1fYkɀ8B6|p22ѲHVAz )[K҈ԣ `W"abE 4_L3̔U$*_5LuzʀP]+}ɯKs_h$I/F5I^ݚzlJ39We g#>(m NI,Mn^ܙ)SHȱ;ٹn?kM9P7|esؔGEIa}I"2jTzSBʙ`ԷvVI/,6Z)"EU,됈e15"xB1S~|*q6XbLl؜k-Zn&,8~w : ,%lB3Wt:nn=v6KD}5'aV|\1S+3BTձ{ǝry3GlKެs"^:1S[VzQ <%9_^LrUՉ-vZ[Y1nKy7RnGd%w3%,q _ǿ,h& AIÇaVYϠys< < 䢽M(zF|`/wTST~%)V&޼e-KtF͠wkLR(o^]rE]ЦolqxixdJIl6>9{Y-Evl!9urxwGBZOJi}~=QiEk_Vcu';\ \%_iZV2H=.3' 9d64]tBy;MÂ8v4[X ]%NJ޶`3҉L+pzBDnÓ:9,1;D[Pb#Lp~LF6MT9]8=wt}}- h֜ ҵ#xn-VtH $ڲ###7k bdY?WN&u4YZT7˝uRRcs.uzy۩,;&HvcLY \nM؆ 6,j[8"b`ttZNvW8(碬#AX_uf莯̍|Øc6?QigQd۵ .sb@|y7;#s~[TF7&0uR7 W͸*ͰLa|?by%ޙoC,7zn5WVzk;qdݢ*=S~=hAP9 S̖͞;mt婻SonՃmr6nE=B :ˆm7`Ǚ9vL[$sd3>MlP2$g.jl(ѳI\xfRޤO".+-Ň߂#cxvrϑDVQyl]e|KuN N3"=l?nO>,ʖ?csMsFŽή} .Y[]H~OX'_VKmacƺ2.jbM~=(e_4`b[L=EpcU!Nv5Z5lH WNֶ||sI^21ktD{MʇmglܬJ}|tY/yY|[+W؁!<٬H5>Aڢb7Vu$SYI(Ba,-twGQ+wlWo@H^ӥg[yT{S \BK1Wذ&F:V !͉;ʒno],H1ŋFhuR[SD%P$dM/ e5(~d7&Ʃ'V̠<Ӆ>7Eg fVO% V#E5\iHl>5=q /k7٪Lff\o]Zei !ޯt1hQ]O3 TƔ+Tz5K>/`gh} ZHʟR*^,?裀=,5gth拃Jv+*q,Tjyִ%X[lT75BW 5N F"K$L#aH:3A{Q;m`O$S~{ lA1@/}layB61Eq?YFfq==1 7?g󕇸5L/|W ׍{?ޝg$S=^W`1{R}yfBIz-> _r{'\ =CG񂏕h_iCbҴo3l \*E?U"8NM^>O8 Tv:7ur͵XJ!7NW^kW9cYLc^@g!x%onNb㠓Tyt~D$~&Z3fh@ e$U= l^_@N~duhI+T?e~*9NjmK\LľVO:/Óz ,+&5U0pxRJfT;*t|l~>nU$VD#ޅ` G颻#t숊WMcRI+ZPJWw\ϺOnjAS*9RgaT{3"}H?3TE% Zdn)XO~s`]Sc X oLc/ƴQ-uΙ`y!5s*,$/Qll(f:e`\Ƶ+vb^C4jE\?ȕý.r]ᒔh+Mi^q Re"<{zT%IYt<*σ 8C%0z?\7 *1N381 >[v+}O^\$LsV}QHffL)U+}(>Vr`v_x&u/?Ml q../NO ǴI }\i$3v*-@r V,(sfuqCsa㟮T+r{_7UJnw7R0ɲ7&[ʋէ2Պ=KhI}\ YQfQ#+ľ-%yْ=hx*mM|0i5LK+~V,  mZ !13{+M"E'%\LE6TQo%ɧʭ zA=tqjpj-zO]uqg1%NSغd"-"I? ;TuAz؝}BH3#TX/, ozjp>ulM(I߫=(Z7TI>vFn96̞O k{Gw/A=?xFc"cq+aq:{9H҅(2MDwn%AѣIp\K\j2M29iTq&7Ń_jZ|)m2`?xZ>_T2z{>Oo21jG89cN؅Axq7&{/j͘Pr A=G}y a Xԟ^n٥-;M7\aE*0q/^91m Wn6xLw7a.B^e: .׈9Jdxy$0!UP{@k/áX GQϚ#Y_b#m˧|aCGf9[7tU,zl΅~Lsۡz=n9qoò*ku  ȥ[okWy)ZӴã kED 1n쬊oNCiwi&,kT[%kO`  <O-S~!gq'ʼnRk(Cƞŀa{o&h%Z;]R.7G {MCB{W3׳lDXqC/-u<hm /mxݾml{LP_1E"/Gm5n-gq^g =YL]Ur8S)O4Zq=ބvw[Xq$޼ ;.v:+14{͓? ,9޹odyKi}#-Pv9YA}6.mWOdA%u8HsӠk(K{<ȭׁϹG@3Xۜ5?(5Б;V-]ܐcGϯW֢z @̃^msEG1se:jV/~;__c143[;ʭ샯`+}W9'x)^ ~8OD^U)F`YX&=sz?saծDD2wen14҈<~[o._縌~-u1?RIhQ/i_']#R*Pz4e%ƅ}^B˥?q!QLJ~9wS< B@}4E%(U䏚BϴL.+踺;FB͔x1 qԅ -~Y %v//۔ R{cEʼnldgH^M%Q}>MBSM[^u,f։$_9hOF* Pn_-\8/cgK_>f[kۛ.SX^1;]fg1y^tWD>Ynb#7+U}fp|>/9eQnX=WU`vtG?&E7%X~EI].ݿ= -}wg:!< $Hb`ՠ~)`v+s^&52X'v\~>nZ)= `Gɻ_}GF\z^Z ":bۗ:v%ˈacnOWL#U49Q|@Xh5/xbA~l\ 8Edo^:V|/Q!{QSCu~`=\wqZWYWb7͏~/t95VK^Vk͌Y}j J8Z_cɿz@6ZG/b-ҰqWќK-LO%[D>`O<9e~Y4xSAgw$}@z{ }ot9dy}`l"kY!`y>&}R`9y#^_% K?cn'9G Z\5J> q߿y_Ko-z\,Zmzbl4M"V.y|kğE'9KG#ފ[Rs %inZa5@f6*ώ@?ઊx]VӟBhw.`ai~zڊ˞Q]~elw✙/'}\׾z'nt9"2XK5~.x MA@c:;^[y",{I9? :fL <LZ.q׼ccO:؀ja5-V;U0[X*JNNymY!K" 4[,bFޥ<, >ƿ44ОaȬ{O:̪~JB\|bpwiKM1#~-/v׷iWPGAqer_"p;,vQ/2r|b2PzER$2ݍ1Z GG/U ̪Xvmc+qXVܫ2_Egm 3Un-xU ;D\uIۧ3׶v tbl%۽pB`g8KZ% cRWg{.ɀ,\?E,3,9#1Z.t)C#u,YibXŜTMQK8!F"V O s/vCF:mf7|OQQGq¤1]䎽P7n˞ ~:׍.1h%y)ҭ 7$bA~Ȗ=+hڶS)#Aǔ7Bb9\뭟='VgE4O83ڌgu~3}1+]N cvF׻mȩ5VKMRƒquIdNYUM!b`qg8mr7K gR(mTZ+Zli_z(Gp9dg#@?j]E]Vhhyy&dԇvLMԕtoԘx@ivCF+zvZ8惍U SZM=4k7B Qٞg7 @t'~Am;ynSA-zQ&^(}'Q8&VӦ5)!6Rۧ6VW~$k'n6]GLU3}x>h&T0"[]@Kr;Ҋsz0^zDP Ur-Z-G~Jikp/O@2)oPE=Oe_e!e*MAo36kr'߅ "]erH>.V3:bu~Ј FR?fR%9z̓K!& &EwnNU/ 1"iKpp*:-lh1--ala \ABC.V25\ABC_250.TXT5@ Z0~w/jY[ƫs+jꮅ hִpww S:Dj{QB' mTg1Uv)L) "hM'(TU4oXeM!85hLj(tH- ^+ ,! hPq9CGs?n0>C#\4~yC=QKrYP4̕!ȿ۱4%v5mp@ćN0<*]8nk /w9۴9= {`ߗsOnRz^6M1tf;f/.N^歯,[Ɋƚ[ފh7_# m 51֌bodT9q]4lqbTV}i-@מ\\TE"GXVoI`iG7_X=T u]N]Iaj#MƷ3I-]|=SۡnHKغ%+^~Q"ٜV䅕\Rb.&3ap`,^v*гe!plkDخ5H1Jc,US"\_kkߩs ANT3~@agc=1AmW&h:ʀK!zNsV#ndw[zA*:d ǕI9=`(5z%[Ws@ܶ bE !["Y! qc1=0zI.[dp Yy39z_{%0p?km@Gs"9ozD~ oSǶpvjX-c*k `͙/qY|}{b#CϦ?no}$݂ xlݽ%fXz¼D^KyԺڡoyZN5dYp"{b C,&a^IӤ-):߆Ӫ =Yo~* HT,'^uu\/9)^JDjANZǒ;dрkkSٯ 9JP]Qm!,b# V4[,XSeqF:YP@S!wx׺ɴ}qQum$r%|+bq.Ɉ?0E4.]0zrLPi<E0Vp1DCha]mfQQ"V(6YS9q6(c!/40(kog]CЦ]. x +zJ34[l&i`b洺Wu3n%L.ߎTq,H}A_hY}jk(lXY_Mxb~Յa^kW+?THHACet.:p!z@;MGfҧbΚ5I|U9“fÅN_JV_W)46=ķ S8Ql%Z!Cѷ(n^^~$#5vNV[Ï(TM]t@~[t5AMO[Nek'\ _|ġRg#a[+Fn^85@٭?]^Dwܮ埶/OKF;tXIV>X彏-# [1+!ne!ܺ9t>nװza N wQ IUOd @kKvgW#zw?1=ck x~LLo#&̠ 7N➐wSx>?vÜB{&D~QY2s\3*/ _g7i{ǰF.]_}]usyzBvm6IT}L ]ck 'fΕV~j5gF=-[g ;3ݟ;7fijD%a@-PA ˫xZMt﷈?b0Qg}XB՛@'__nl!fnXc HEw*x0I۝~ }N\j*#cSO){ܑwQSu9( FrZwrKIQV/v3N; dtkGǚ aGU|N ,DZ^^MMw@^bgs0Aݑ?dz 0Ca[z3kD-o G!zaը ƙp:&|uՎ. /+.. ABOUT_DA ,>"DIR_ANA DFN 5DIR_ANA GFA 6TDIR_ANA PRG LDIR_ANA RSC pDies ist die Anleitung zum Public-Domain Programm Directory-Analyser. Dieses Programm ist von mir geschrieben, und niemand sonst hat irgendwelche Rechte an diese Programm. Es darf frei kopiert, gendert oder ausgeschlachtet werden. Es mten auch ein paar Routinen drin sein, die in anderen Fllen interessant sind, und die Sie dann auch fr Ihre eigenen Programme verwenden drfen. Finden mssen Sie diese Routinen aber schon selber, denn der Source- Text ist zwar recht bersichtlich und strukturiert (finde ich), aber nicht weiter dokumentiert. Auerdem brauchen Sie natrlich zum Verndern und Aus- schlachten das GFA-Basic 3.0-System. Falls Sie das Programm nur benutzen und weiterkopieren wollen, bitte ich Sie, fairerweise zwei Dinge zu beachten: - Lassen Sie bitte meinen Namen im Programm stehen. - Kopieren Sie bitte diese Anleitung mit. Kopieren Sie auch den Source-Code mit, denn vielleicht hat der Empfnger mehr Interesse daran als Sie. Das Programm ist wie gesagt in GFA-Basic 3.0 geschrieben, und der Quelltext ist auch mit dabei. Da das Programm aber auch kompiliert ist, brauchen Sie fr die Benutzung nur das Programm an sich und das Resource-File "DIR_ANA.RSC". (Es mu genau so heien.) Das Programm hat die Versionsnummer 2.1. Wenn Sie die alten Versionen nicht kennen, dann macht das auch nichts. Ich schreibe ja deshalb immer neue Versio- nen, weil die alten nicht mehr gut genug sind. Sie haben also nichts versumt. An dieser Stelle mein Dank an GFA-Systemtechnik fr Ihr wirklich tolles Basic und an die Data-Becker Autoren Uwe Litzkendorf und Udo Onnen, ohne deren Bcher ich es nicht geschafft htte, dieses Programm zu schreiben. Jetzt ein paar Einschrnkungen: Dieses Programm luft nur in der hohen und in der mittleren Auflsung. In der niedrigen Auflsung kann man vielleicht spielen, aber bei dieser lcherlichen C-64 Auflsung passen einfach zu wenig Informationen auf den Bildschirm. (Ist doch wahr!) Wenn Sie eine Harddisk haben, hilft Ihnen dieses Programm leider nicht dabei. Ich habe nmlich keine Harddisk und deshalb auch keine Ahnung von dem Ding. Bei Ram-Disks haben Sie auch nichts von diesem Programm, weil ich mich da auch nicht so genau auskenne. Accessories stren das Programm zwar nicht, aber da es keine Menzeile gibt (hatte ich mal in einer lteren Version, aber das war zu umstndlich), knnen Sie die Accessories natrlich nicht nutzen. Ansonsten mte das Programm eigentlich berall laufen. Immerhin hat das Pro- gramm ja auch nichts gekostet. Was macht man nun mit dem Programm ? Gute Frage. Ich habe es geschrieben, weil ich ab und zu etwas in der Directory herumpfuschen wollte. Ich wollte z.B. den Namen eines Ordners oder das Disk- Label ndern. Oder ich wollte das Datum einer Datei neu setzen, weil das Original-Datum beim Kopieren verloren gegangen ist. Oder ich wollte das File- attribut einer Datei ndern, weil ich z.B. immer meine DESKTOP.INF Datei ver- stecke (strt ja auch nur). Das kann man zwar auch alles mit einem Diskmonitor haben, aber wenn Sie schon mal versucht haben, da ein neues Datum einzugeben, dann wissen Sie Bescheid, wie kompliziert das ist. Deshalb das Programm. Und wie macht man das ? Zunchst eine kleine Vorbemerkung. Normalerweise sind Default-Auswahlboxen, also Boxen, die man auch mit RETURN/ENTER anwhlen kann, mit einem dickeren Rahmen gekennzeichnet. Ich finde Boxen mit einem Schatten aber schner, des- halb sind meine Default-Boxen auch mit einem Schatten versehen. So. Zuerst startet man also das Programm (ach was). Es erscheint dann natrlich eine kleine Meldung, die mich erwhnt. Wenn Sie die Box unten anwhlen, kommen Sie zum Hauptdialog. Hier haben Sie folgende Mglichkeiten: Wenn Sie das Logo oben in der Box anklicken, kommen Sie zu der Startmeldung mit meinem Namen zurck. (Langweilig! Hatten Sie ja schon.) Darunter knnen Sie whlen, ob sie mit dem Laufwerk A oder B arbeiten wollen. Da das Programm ja nur Diskettenlaufwerke untersttzt, sind andere Einstel- lungen natrlich nicht mglich. Auerdem knnen Sie whlen, ob Sie das Haupt-Directory (heit hier Root-Dir.) oder lieber einen Ordner (heit hier Sub-Dir.) untersuchen wollen. Mit den beiden groen Auswahl-Boxen knnen Sie das Programm entweder verlassen (nach einer Sicherheitsabfrage) oder jetzt endlich mit der Analyse beginnen. Wenn die Haupt-Directory untersucht werden soll, wird es sofort geladen. Wenn Sie einen Ordner unter die Lupe nehmen wollen, so mssen Sie erst einmal die richtige Ordner-Ebene whlen. Die Auswahl-Box hierfr ist eigentlich fast genau so zu bedienen, wie die gute alte Fileselectbox. Wenn Sie allerdings um eine Directory-Ebene zurckwollen, gibt es hierfr eine spezielle Box. Wenn Sie das Schlie-Feld des Fensters anklicken, wird der Vorgang abgebrochen und Sie sind wieder im Haupt-Dialog. Wenn Sie OK anklicken, wird die Directory geladen. Sie knnen auch hier die Haupt-Directory anwhlen, kein Problem. Sie bekommen jetzt eine Liste der Directory-Eintrge. Wenn es zuviele sind, knnen Sie mit dem Rollbalken des Fensters rauf und runter scrollen, ich nehme an, Sie haben sowas schon mal gesehen. Wenn Sie das Schliefeld anklicken, kommen Sie zurck zum Haupt-Dialog. Wenn Sie mitlerweile etwas gendert haben, werden Sie jetzt gefragt, ob Sie die ge- nderte Directory zurckschreiben wollen. Ansonsten bleibt natrlich alles beim alten. Wenn Sie etwas verndern wollen, dann klicken Sie einfach den entsprechenden Eintrag an. Es erscheint ein neuer Dialog, in dem die Informationen zu diesem Eintrag einzeln dargestellt sind. Den Wert des File-Attributs ndern Sie einfach, indem Sie die entsprechenden Boxen in der Mitte anklicken. Damit werden die einzelnen Flags gesetzt bzw. ge- lscht. Einige unsinnige Kombinationen werden allerdings nicht zugelassen. Wenn Sie einen der anderen Teile ndern wollen, klicken Sie einfach den ent- sprechenden Eintrag an und editieren ihn dann. Das sollte weiter keine Proble- me bereiten. Vorsichtig sollten Sie mit dem Start-Cluster-Feld sein, da hier natrlich nur der Directory-Eintrag gendert wird. Das File wird natrlich nicht verschoben. Im unteren Teil gibt es dann noch ein OK- und ein ABBRUCH-Feld. Wenn Sie Abruch whlen, werden Ihre nderungen nicht bernommen. Wenn Sie OK whlen, werden die nderungen bernommen und knnen dann abgespeichert werden, wenn Sie zum Haupt- Dialog zurckgehen. Mit beiden Feldern kommen Sie wieder zur Analyse der gesamten Directory zurck. Unter dem Fenster mit den Directory-Eintrgen knnen Sie auch noch "drucken" und "neu" whlen. In der hohen Auflsung sehen Sie da zwei kleine Icons, in der mittleren Auflsung leider nur zwei kleine Boxen. Wenn Sie das Drucker-Icon anklicken, knnen Sie die gerade angezeigte Directory auf Ihrem Drucker ausgeben. (Haben Sie sich auch schon gedacht, ich wei.) Fr eventuell vorhandene Umlaute haben Sie zwei Druckeransteuerungen parat, nmlich eine fr EPSON- und eine fr IBM-Drucker. Wenn Sie einen vllig anderen Drucker haben, oder wenn Sie z.B. PT_EPSON von GFA-Systemtechik installiert haben, dann sollten Sie KEINE Anpassung whlen, auch das geht. Wenn Sie das Neu-Icon anwhlen, knnen Sie einen neuen Eintrag in die Directory einfgen. Ich habe das vor allem gemacht, um nachtrglich ein Disk-Label ein- tragen zu knnen. Aber vielleicht fllt Ihnen ja auch noch eine andere Anwen- dung dazu ein. Zum Erstellen des Eintrags erscheint brigens der gleiche Dialog wie zur Vernderung bereits bestehender Eintrge. Da sollte also kein Problem auftauchen. Wenn Sie an dem voreingestellten NEUEINT .EXT nichts verndern, wird dieser brigens nicht in die Directory bernommen, auch wenn Sie OK anklicken. ACHTUNG: Sie sollten auf keinen Fall die Diskette wecheln, whrend Sie analy- sieren. Darauf nimmt das Programm nmlich keine Rcksicht. Es schreibt bei Vernderungen die Directory dann auch auf die neue Disk. Noch etwas: Wenn jemand einen Fehler entdeckt und mir mitteilen mchte, eine ganz tolle Idee fr das Programm hat oder mir eine Drohbrief schreiben mchte, weil ich so schbige Programme schreibe, hier noch meine Adresse: Werner Hamsink, Boomkamp 87, 4432 Gronau So, und jetzt analysiert mal schn! P.S. Nachdem ich mir jetzt endlich eine Festplatte leisten konnte und ich jetzt auerdem das Buch "Scheibenkleister II" habe, arbeite ich an einen Update, so da man auch die Directorys von Festplatten untersuchen kann. Mit der neuen Version ist wahrscheinlich irgendwann im Sommer '90 zu rechnen. Idee fr das Programm hat oder mir eine Drohbrief schreiben mchte, hier noch meine Adresse: Werner Hamsink, Boomkamp 87, 4432 Gronau So, und jetzt analysiert mal schn! &MAINDIALDRVADRVBROOTDSUBD START ENDE LOGOLCOPYRGHTLOGO2WAYNEENDFRAGWEITERECHTENDELOGO 3SAVEFRAGDOSAVENOSAVEPRNFRAGPRNCANNONEIBMEPSONEDITITEMITDATEITTIMEITNAME READONLY HIDDEN SYSTEMF LABEL ORDNERARCHIVSTCLUSTRDATLAENGCHANGEOKCHANGCANHEADLINETHF_LISTEC_DIRF_LISTLONG_ONESHORT DIR_PUFFERCLUSSEC_PUFFPUFFERALLENGTHSTARTIND EINTR_INDDATTIMZEITBOOTBPBSECPROTSECTORSSECPROFDUMMYD_LENFAT2JINDEXSTARTFAULT STARTTIMEENDTIMEADRCLUSTERSEKTORDRVHAUPTDIRSCHLUSSWEITERRE_SAVEDEU_DRUGESETZTDO_ITFOUND ERSTEWAHLCANCELOKKOPFZEILBOXENRADIOFAT DIR_STARTSTARTSECZEILEN STARTZEILCOUNTERSCROLLEND_PTRPR_MODES_ZEILGES_ZEILSCROLLERMAUSXMAUSYF_LINEEND_PTPOINTERST_CLUSS_LINEXYSIDESIBACKSEGFA-BASIC3\::JKTTTU@UXUXUXU\U\V|W4W4WWWWWZbZb DIRECTORY CHANGE_DIRITZEILE DRUCK_ICONNEU_ICONL_DIRNEW_ITDIRECTO_USTO_DLOESCHK_ZEILITMD_STRINGALTNEUHILFITEMI_NAMEATTRDATTIMLONGST_CLUSCHANGEDIR_ITEM BACK_ITEMPACK_DATDATUMP_DATEDIR_TIMZEITP_ZEITBOOTGES_FATFATSEC_LIST FOLDERLISTPFADPATHF_LISTEC_DIRF_LISTLONG_ONESHORT DIR_PUFFERCLUSSEC_PUFFPUFFERHEXDTABAUMADRLENGTHST_CLUSSTARTIND EINTR_INDBAUMDATTIMZEITBOOTBPBSECPROTSECTORSSECPROFD_LENFAT2JCLUSINDEXSTARTFAULTADRCLUSTERSEKTORHAUPTDIRRE_SAVEDEU_DRUDO_ITCANCELOKFATENDELOGOSTART DIR_STARTXPOSYPOSBREITHOCHBACKMAINDIALDRVADRVBROOTDSUBDENDFRAGWEITERECHTENDECOPYRGHTWAYNESTARTSECZEILEN STARTZEILCOUNTERSCROLLEND_PTRPR_MODES_ZEILGES_ZEILSCROLLERMAUSXMAUSYF_LINEEND_PTZEILZAHLSAVEFRAGNOSAVEDOSAVEPRNFRAGPRNCANNONEIBMEPSONPOINTERS_LINEEDITITEMHEADLINECHANGCANCHANGEOKITDATEITTIMEITNAMESTCLUSTRDATLAENGSIDESIBACKSECSECTORVOTEINDINDEXWAHL START_SECFAT_INDREADONLYHIDDENSYSTEMFLABELORDNERARCHIVALOGO2LOGO3 OLD_DRIVEDRIVECHOICE L_COUNTERVOTEDUMMYW_HANDLEYDIVLINESCHOSENMAUSTMODUSABBRUCHPR_MODEISTELLE LINE_NUMBCOUNTMODECLICKEDATTRIBATTNEUFLAGHILF D_INF_SECSLOWHIGHBYTE1BYTE2ORDNERF_LINEL_LINEPRINTEDLEVELLFOLDEREBENENERSTELETZTEORDSFOLDERSHANDANZ DISKDRIVEJDTA CHECK_RESGRAUBILDINIT_RSC LIES_DATA COPYRIGHTENDFRAG DISKDATEN FAT_ARRAYFIND_DIR_STARTANALYSEW_EVENTGET_DIRANA_BILDAUSWAHL DRUCKMODUL CORRECT_WIN EINTRAGWAHLPUT_DIR VERAENDERUNGD_DRUCK UNPACK_DATE UNPACK_TIME SET_ATTRI PACK_DATE PACK_TIMESEC_READ WIND_EVENT FOLDERLISTER FOL_SEL_BILD FOL_PRINTSET_SLID FOL_SELECT SEC_WRITE PREP_WINDATTRIBITCHAR_TABRADIOMAINDIAL CHOOSE_PRNNEW_ONE SPEICHER_FRAG CHANGE_ATTRI GET_ATTRIDEEKSEKTORCLUSTEREINTRAG PACK_NAMEl%3 FF \FHFFFFDW ! FFFDF<FF DF 0F FF FF @FFF # F 8 ݀JF # F$F4F F (FFlF% F!!!!!!F ~! ! F!9 FF!9FF!9FF! 9! F ! 9F! 9( F!! 9( FС!!!! F,Х!!!!!!! F"З!!!!!! F@Н! F,Ц!!!!!!! F2О!!!!!!!! F<#!  FD! FFDF,FF!!!!!!F~!! F!9 FF!9FFС!!!! F,Х!!!!!!! F"З!!!!!! F@Н! F,Ц!!!!!!! F2О!!!!!!!! F pJFFF}FFF$FFF!!!!!F~!! F!9 FFС!!!! F,Х!!!!!!! F"З!!!!!! FН! F,Ц!!!!!!! F2О!!!!!!!! FF   F!!!!!!F!!!!!F F<F # F\^?!! ! ! c ?!! ! ! c FF? F@! ! F@F JFp!9F 8Fp!9F$F (FF #! F&@! ! ! FDFF4?!! F : .JF4 F : B F4 (gelscht)F$FLY!! ""FF$F F 2F #!! F 0F!^F FF@u!! F @w! FF @F JF!! FF$F\F  B ! JFFL!+Kein Platz fr weitere|Eintrge vorhanden !!!Schade!F 8TF N! JF<FFF # F$F$F GF#!ߠ F<FF FF4F ߀F 4F4F 4F  JF JF# F$F$FFF ! FF! ߀JF!h!!F!h!!F 8xF 4Ft!FT!F!!!FF|!!!FF!!!FF|!!!FFLY! "drucken"FFLY8! "neu"FF (F$F @FTLY! "?Eintrag Zeit Datum Lnge Attribut Start-Cl.FLFF ŒJFDb F8д!!! ! !!! FJд! !!! !#! !!! F$FF !2 ! F!! FFD FFF$F0!! FF FF Č ߀JFL h߀ ݑ0!! JFD ! ! F$@Ćߘ ݧF  ߀JF$ ߌ ݾJFD F$@π FD F$F 8ĀF$ H JFD F$@z FD F$F$F$F$F  FFF FF0\ FFD FŔFD F0\ F4F@FRF@FpF@FŎF@F4FFD F6@# \ F @F4FF(#2! FlF% 2F" NEUEINT EXT! F# F* Ʀ NEUEINT EXT! JF ! ! EF F DF 8ƶFDF$F,F ! F0 ,!)! JF 4Fp!9F (F$FF(FlF% !!!!!!F~!"! F!#9 FF!$9FFС!!!! F,Х!!!!!!! F"З!!!!!! F@Н! F,Ц!!!!!!! F2О!!!!!!!! F D$F,F(F$lF% $!!!!!!F~!%! F!&9 FF!'9FF!(9FF!)9FFС!!!! F,Х!!!!!!! F"З!!!!!! F@Н! F,Ц!!!!!!! F2О!!!!!!!! F 0F! &F!D߀F )FDF :(FDF V'FDF4F,F! ! F ! !! !*! ! F< F JJF 4 B! RB F 4 B! RB F4 (gelscht)FFL4 B Eintrag Zeit Datum Lnge Attribut Start-Cl.FF 8˴F 4 (geloescht)FL4 B Eintrag Zeit Datum Laenge Attribut Start-Cl.FF$F@*Fr$>#^ ݀FDH!Der Drucker ist|nicht bereit !!!weiter|Abbruch! Fl F z ߀JF \F zJF ! F 8̌F! FF$FFFn*F4 ?!*! F P: .JF4 F : B F 4 F$F 8JF*! F benutzt to_us$ und to_d$ 8JF!FF$F$F* F ̘F \F $FF! Fb!!!!FtpGFt4B! Fo4B! FoFDD! FFHFF24;!!   =!B ! F F! ͼF  ߀JFDD!B F   JF64B tB B B tB F,4;!! =!B ! F $F$FFFF (# F!!!!!!!F4;! FφD!B F !D!B ! E F DF"4;! .=! F"4tC?! ! ! F?!!  F?!!  F$8C?! ! ! F$C?!! ! F$C?!! ! FC?!! F4! F8C?!! F$C?!! ! F4! F>H       F!,F+!!!2 F!!!!F,8#+ ߀FF*?!!! ! .F F ьFFF ьF$8!! ! F?!! F# F !! EF 4FFF!2 F(!!!!!!!!!!!F,!P!F~!,! F ߀JFHp!- XC4Sie knnen jetzt diesen Eintrag neu erstellen. F. 8fFHp!- XC4Sie knnen jetzt diesen Directory-Eintrag verndern.F.$F!.9 Fi!/9Fi #!C?! ! F?!!  F:p!0 XC;! ?!! =! F?!!  F:p!1 XC;! ?!! =! Fp!2 XC;! F8C?!! F$C?!! ! Fp!3 XC! F$8C?! ! ! F$C?!! ! F$C?!! ! FC?!! Fp!4 XC! FС!!!! F,Х!!!!!!! F"З!!!!!! FF@Н! FDF<  FF<F! F ֐JF#!## ! FF"З!!!!!! F$F /.F ج/JF"!! Eap!2 XXF! ! EB# F4ap!0 XXF>;!  ?!!  19=!  F!! EF4ap!1 XXF<;!  ?!!  =!  F!! EF85ap!3 XX F2!! EB! B! F85ap!4 XX F<!! EB! B! ! FdF!! EB! ! B! ! F.$F,Ц!!!!!!! F2О!!!!!!!! FF! FF!pGF! 9(,! F @F9F (# F(lF% !FDF,pGF  ! JFD-! FF$F ٪FDF,F(#! FlF% !FDFJ FF l,! JF f, ! JF , ! F$F$FF ,F JFD-! FFpGF , ! JFD.! FF$F FDF 8FD.! FF$F,F!2 FF!8C=! ! FC;! F&4=0 ! .F44=0!  ! .F"4! ! F F!2 F !F85;! F D5?!! F ! FD5=! ! F! F4B F4B! F F!2 FF!8C=! ! FC;! F$4 =0! ! :F44 =0!  ! :F04 =0!  ! FF !2! FF!85= ! ! F"5? !! ! F5; ! ! F&4!B B! F!FF"! ! ! !5F \F ! F4" F#!!" F 8 л" F8 # ! F 8 # ! F 8 # ! F @5# ! F 8 U! FF l JF>!Fehler im|BIOS-Parameter-Block!!! Aha !F8Fh8Fh 8ߢF8s ! XFX8s ! XFX$F    JF6!Bootsektor defekt ?!?!!! Aha !F8 Fo8 !5 Fr$F$D! ! ! FFF6!!#!!!$!!F \F# FH ! F!#! ! !# Fl%0 6l6G ! HFhl%3 4$?#!6! FDC:$ F$Dtл$ ! XF$Dtл$ ! X ߀FDC<$ FP9!! F&P! 9!! FF 6FF \FFF 27 F 8!%!!&!'!!!!F! !!!9!!:!!"F@8! FF HJF @78FF 8FF 4%b8 FF4'B߂ :\FFF \F #8 F&! FD!B% ! F \F%#!!' FFDF Du߀! F  ! ! F&!! F \߀JF#!! FF$FF$F# !!!9 FF h9F 09FGFFD!9 ! F0@:D!?&!! ! ! F"8C?!:! ! F *C?!:! ! ! F@8# F4%%b8 F"4''?!:! \F F<F @78FF: F4%;%!B% ! F\@8K=%! FD"B' ! F*?'!"! \F"F? F4';'!" F4F 4F" F rJF@7F$F4F 4F$FF#!$!( F #߀Fp!9F 8Fp!9F$F (F @FDLY! ".Whlen Sie die gewnschte Sub-Directory Ebene.FF$LY! "Aktueller Pfad:FLY! "(FFT!F"*0!! !!! FeT!FLY*! "O.K.FF V$߀JF*0!! !!! FeLY)! "zurckFF$FF)!%!& F !;F 0&JF&@;%! ! ! FLY! "FF p%G&FFLY!8! "?)!;! "."?)!;! ! "FF; F! FF 8F2LY! "Diese Directory-Ebene enthltF,LY! "keine weiteren Ordner.FF$FF'!$!2< Fe!! FF0!! FF FF  ߀JF@*!*! JFX f?*!*! .?*!*! ! .?*!*! ! B JF(F?4++?*!*! F$F$F* F FF (#, F-!!F*pGF4?,!! F B  JF 4--F$F FF4--.FFp G F4?,!! F jB  JF 4--F$F .FFH-F,F =!2. F!/!>F =! JF! F#=!! F 8|F!4/ FF#=!!/ F /F@>#= ! F"|>  > F@=#> FF F#$F .FFF=!. FF/!>!FF \F =! JF #=!!. F 8F!8FF4/?.!! F #=!!/ FF@>#= ! F">  > F@=#> FF F#$F \FF!*!+!20 F 1!FD** ߠF41*! F&8U!!л1 !*!!+ F v JFF! ERROR #  |(s. GFA-Literatur)!!RETURN!F 40FF 8FF 401FF$FF !*!+!1 FF!D** ߠF JF Tл1 !pۘ X!F|$F&8U!!л1 !*!!+ F t JFF! ERROR #  |(s. GFA-Literatur)!!RETURN!F$FFFt!!F XF!!!FFF6!,!-!2F(H !! ! Fd6GF6! F6! F $6Fd6GF 6 F d6FG!F ߀JFd6GFF2F4B5&H2 FF 6Fd6GFF2F4B5&H2 FF 6F$FX9?FX9@FX9AFX9BFX9CFX9DFF!F!,!EF2*L!Wahl der Sub-Directory EbeneF4L!&Diese Eintrge stehen in der DirectoryFRP! ;Wenn Sie einen Eintrag anklicken, knnen Sie ihn verndern.FpGF;p,GF;EF$ ,,ݠJF (EFF$Fp!,9EF n,FF ZFFFF FRSC_TREE  FRObj in #0  FOObj in #0  FOObj in #0  FOObj in #0  FOObj in #0  FOObj in #0  FOObj in #0 FORSC_TREE FFRObj in #1 FOObj in #1 FORSC_TREE FRObj in #2 FOObj in #2 GFOObj in #2 "FORSC_TREE $FRObj in #3 #FOObj in #3 %FORSC_TREE &FRObj in #4 'FOObj in #4 (FOObj in #4 )FOObj in #4 ,FORSC_TREE 0FRObj in #5 1FOObj in #5 2FOObj in #5 ? FOObj in #5 @ FOObj in #5 A FOObj in #5 B FOObj in #5 C FOObj in #5 DFOObj in #5 3FOObj in #5 4FOObj in #5 /FOObj in #5 .FOObj in #5 -FOObj in #5  | dir_ana.rsc JF6!Fehler beim|RSC-laden !!!soso!F,F$FFF V JFel!JSorry, dieses Programm luft|nur in der hohen und der|mittleren Auflsung!!!Schade!FF 8FD!V FP$FF Data fr Zeichenumwandlung r:132,123,148,124,129,125,142,91,153,92,154,93,158,126 n4data fr Radio-Flags der File-Attribut-Zustnde 0,0,56,55,44,28 2data fr Window-Informationen aus prep_window $0,108,56,424,288,0,8,20,624,326 "drucker-icon data (192 bytes) D0,2F,0,1E,0,1,AA,FF,FF,FF,FA,AA,55,80,0,0,D,55,AA,BE,1F,7,8A,AA D55,80,0,0,D,55,AA,BF,9C,7,CA,AA,55,80,0,0,D,55,AA,BE,1F,86,A,AA B55,80,0,0,D,55,AB,BF,1E,7,CE,AA,56,80,0,0,B,55,AC,80,0,0,9,AA D58,FF,FF,FF,F8,D5,B0,0,0,0,0,6A,7F,FF,FF,FF,FF,F5,C1,1,1,1,1,1A @82,2,2,72,72,F,84,4,4,4,4,D,FF,FF,FF,FF,FF,F9,80,0,0,0,0,D 1>8C,0,0,0,0,F,9E,0,0,0,0,A,8C,0,0,0,0,D,FF,FF,FF,FF,FF,FA DH7D,55,55,55,55,F5,80,0,0,0,0,A,3C,F2,27,92,FB,25,A2,8A,28,14,82,AA lH22,F2,28,18,F2,A5,A2,A2,28,14,82,6A,3C,99,E7,92,FA,65,80,0,0,0,0,A lneu-icon data (278 bytes) H0,3E,0,21,0,1,55,55,55,55,D5,55,55,55,AA,AA,AA,AA,EA,AA,AA,AB,55,55 L55,55,D5,55,55,55,AA,AA,AA,AA,EA,AA,AA,AA,55,55,55,55,55,55,75,55,AA,AA LAE,AB,6B,AA,EA,AA,55,55,5F,56,57,55,D5,55,AA,AA,AA,AE,6F,AB,AA,AA,55,55 L5B,54,55,5F,55,55,AA,BA,A9,AC,6D,B6,AA,AB,55,5D,58,D8,59,65,55,7D,AA,BE LB0,F8,71,CA,BF,EA,55,57,50,50,60,1F,E7,55,AA,AB,B0,20,20,C0,1E,AA,55,5C LD0,43,C8,63,F5,55,AA,AC,73,66,4B,20,6A,AA,55,56,23,B4,4D,E0,3D,55,AA,FE F2,D7,C7,60,A,AA,7F,80,3,7A,3,1F,87,54,F8,0,1,3B,C0,1A,FF,EA,5F,FF J81,88,0,1D,55,55,AA,AB,0,80,0,CA,AA,AA,55,57,1C,20,40,ED,55,55,AA,AA FL7C,70,60,BE,AA,AB,55,54,D4,D8,71,DF,55,54,AA,AD,AC,AC,79,AA,AA,AA,55,5F L54,D6,5D,55,55,54,AA,BE,AC,AB,6F,AA,AA,AA,55,55,55,D5,D7,55,55,54,AA,AA LAD,AA,EA,AA,AA,AB,55,55,55,55,55,55,55,55,AA,AA,AF,AA,AA,AA,AA,AA,55,55 .57,55,55,55,55,55,AA,AA,AA,AA,AA,AA,AA,AB $diverse Funktionsdeklarationen A*# EtX!t! X F(# E! ! ! F(# E! ! ! FF$FF Data fr Zeichenumwandlung :132,123,148,124,129,125,142,91,153,92,154,93,158,126 l"Data fr Boxen beim Verndern D100,274,230,318,300,274,430,318,48,168,160,200,209,168,321,200 iD370,168,482,200,48,216,160,248,209,216,321,248,370,216,482,248 i.315,14,410,34,315,46,385,66,315,78,402,98 data fr Menzeile 68Analyzer, ber den D.A.,------------------------- 2&acc1,acc2,acc3,acc4,acc5,acc6,"" -$Drive, Drive A , Drive B ,"" "8Directory, Root-Dir., Sub-Dir., analysieren ,"" 2Programm, Ende ,"","" u4data fr Radio-Flags der File-Attribut-Zustnde 0,0,56,55,44,28 2data fr Window-Informationen aus prep_window 617,55,20,530,370,0,108,56,424,288,0,8,20,624,326 ""drucker-icon data (192 bytes) 60,47,0,30,0,1,170,255,255,255,250,170,85,128,0,0 "813,85,170,` dAONGaj paYVaO@N>N:bN=d?<NATR@N:NQPnN$mp$m`:N`N`N%N'PHm|N(0-|R@g?-|N,`mvgmxg°mzg`aKzaoA$akZA(akRA,akJA0akBA4ak:AakA4ak*0-~raU$m$p 2-zH$m RNp2-vH$m Rap2-xH$m Rap-SD2-H$m Rap-2-H$m RapJ-ngpnD2-H$m RapJ-ngpFnD2-H$m Ra~$m aU$m$4$m(4$m,4$m04$m00$m,>$m(<$m$:xvtraU$m00$m,<$m(:$m$8vt$m"aU&$m"paU8$m44$m00$m,>$m(<$m$:xvtraUx$m00$m,>$m(<$m$:xvtr0|aq0-H$m Ra~SWHHVn0-H$m Ra~@$m40H`mamA$aidA(ai\A,aiTA0aiLA4aiDAaiA4ai40-raT$m$p 2-H$m Ra~p2-H$m Ra~$m aT$m$4$m(4$m,4$m04$m00$m,>$m(<$m$:xvtraTX$m00$m,<$m(:$m$8vt$m"aS$m"paS$m44$m00$m,>$m(<$m$:xvtraT$m00$m,>$m(<$m$:xvtr0|ap*0-$m4Rfaf$aS8p-af.aH(`l2alxA$ahA(agA,agA0agA4agAah*0-raR$m$p 2-H$m Ra|$m aSB$m$4$m(4$m,4$m04$m00$m,>$m(<$m$:xvtraS$m00$m,<$m(:$m$8vt$m"aRj$m"paR|$m00$m,>$m(<$m$:xvtraR$m00$m,>$m(<$m$:xvtr0|an`kakZA8afjAagAafA$m(<$m$:xvtraH$m00$m,<$m(:$m$8vt$m"aG$m"paH$m44$m00$m,>$m(<$m$:xvtraHP$m00$m,>$m(<$m$:xvtr0|adx0-$m4RWHH``a`A$a\dA(a\\A,a\TA0a\LA4a\DAa\A4a\40-raG$m$p 2-H$m Raqp2-H$m Raqp2-H$m Rapp2-H$m Rap$m aGd$m$4$m(4$m,4$m04$m00$m,>$m(<$m$:xvtraG4$m00$m,<$m(:$m$8vt$m"aF$m"paF$m44$m00$m,>$m(<$m$:xvtraF$m00$m,>$m(<$m$:xvtr0|ac$m40H` p`_$`0p`_`(p`_` p`_ `mgڰmgܰmgްmga_8AaZAlaZ@Aa[(AaZA aZAaZA$aZAtaZAaZA(aZp$mW]HH$mV$mgjp$mrЁa\pRaBPpaBJ"maLp$mrЁa\dpRaB,paB&"m aLEp m$aLEpB m(aL` Ep m$aL~EpB m(aLn$mt4`*E"H m4a>"H ma>/ m,0(Hr$m m,a["_a>"m,aJ6`$mRp$mc0p$mSfpaY"m,a]$m$mgzpaYpta?Hpa?Bpa?&/p m@aY"_a<"m@aHpr m"H mLa;0< a>"H mHa;Ejpa=H"H mPa;Ejpa=2"H mDa;vEjpa="H mTa;`p a$m(<$m$:xvtra;$m00$m,<$m(:$m$8vt$m"a:$m"pa;$m44$mQ`$mRp$m]g x$m m؄00HH$m42Hfp$m]lR$m/$m/N T?p$m?N ?N$m00$m,<$m(:$m$8vt$m"a:H0-$m4RWHH/0-$m4RWHHg00-$m4Rfh0-H$m Rad @ a5t r"m0-H$m Rab @ a4DaTa"8$m$$m "<a(aO/$m jraO"_a4Ltr"m$m(<$m$:xvtra8$m00$m,>$m(<$m$:xvtr0|aT8`PbaPAaLAaKAaL$$mQx$m m؄4pHHRp$m$mVHHJnD"$m Ra`$mRp$mc`OaP2AaKjAaKAaK$mQ$mQx$m m؄00HH$m Ra`gp$m$m$m$mRp$mcp$m`OnaOAaKAaK AaK0AaK($mQ$mPp$m$mgDx$m mp0H$mg(x$m mp0H$mVHHJ$mV$mRp$mJgpJWHH/p$m[^HHgz$mgpp$m$m$m$mQx$m mp0H$mgp$m$m$m$mRp$mcp$m`N@`p$m$m`N*aNpAhaI\AdaJhAaJ:p mdaMbaK$m$p mdaM aJ$mђp0aK/$m ra$aN"_a0paMp.a1"mha<6p0aK/$m jrЁraaN"_a0TpaL"mha0Fp.a1Z"mha;$m jr aaNh"mha0"mha;`M8aM~AlaHjAhaIvAaIHAaHp mhaL&aOa$m$pr mhaLaOah$mp$m$mђp mhaL&aOa@$mp$mr $mђ$m @ mlaJ$m jraJ"mla/>"mla:`LfaLAtaGApaHAaHvp mpaKaIN$m$p mpaKFaI8$mђp0aJ2/$m jr aXaM"_a.paKPp:a/"mta:jp0aI/$m jrЁr?aaL"_a.paK"mta.zp:a/"mta:&p0aI/$m Ѐr?aaL"_a.JpaJ"mta.<"mta9`KdaKAxaFAtaGAaGtp mtaJaMaJjR$m$pr mtaJaMa$mђp mtaJaMazr $mђ$m @aH/$m jraH"_a-"mxa9B`JaJA|aFAaFAaFAaFA|aFjpa3p-RaDn0<aL"m|a8B?<p-?/-|N8l m| $m$$m rЁ/N>a+@^$m rЁ/N>a+@b$m rЁ/N>a|$m$$m rЁ/N>a`$m|4p-??<NMX$m$$m f6EpaG(/EpaGr"_ta5Ap+@fp+@j` $m Rp0(+@f$m Rp0( +@j -^WHH/ -bfp.$m WHHgA퀌aC6A퀐aC.AaCAaBA aBA aBAaBAaBAaBA큌aBA큨aBA큐aBAaBAaB -bЭj$m4-ng"m m2`H$m0 maD(p-rAЁaD0<:\a,^"ma5E1a6Npa/$m?/-N5/-/-/-N3 m0(HJjR$mpa/Zp$m?p$m?/-N,$m p$mro@$mp$mr$m R$m/-p$m ?p$m?N. p$mQo$p$m ?p$m?p$m?N0xa4np$m?p$m?/-N/$m0^HH"p$mJgpg$m0H`~$m0Hr$m ЁU$mp$m$ЀԀЂR"p maD"maGJ$m4pr$m4RҊ maD|aA$m$pr$m4RҊ maD^aA$mђ$m/N?a&$m4$m0aB"ma'Z"ma3 /-p $m2H maD /N4"_a'.p\a(B"ma2`$m P"m m2` m0(HU maCF"ma2p maCvaA2$m4 m0(HS$m`$mSpr$m maC~p\a((fp$m maB"ma2H` @m @ox @ gZ @ gfpa8p$mJgp"p$m Jgpg $mg$m4a3bpa8f`C^aCA퀔a?A$a>A a>p$m Qo0<traS` ptraSpa7pa9praL&E p.aVAa=A큔a=$m,gp$m(S$ЀԀЂR@$m4praJ$m($m$m,a/`NaJRraJp$m2H maA,a$Bp.a:pr$m4RҊ maAa$.$mR $mR$m+cY`(p raJdEPpa:p raJPEmpa:`A$aAjA큘a$mRp$mr$mo@$mp$m_$m /-p$m ?p$m?aTp$m ?p$m?p$m?a`JgB @g @g @gr`p$mQ/pa,"a"<aR$m p$m rl@$m p$m ^$m/-p$m ?p$m?ap$m ?p$m?p$m?a` @gz @g| @gZNuaA퀰a66A큠a6 -bЭj$m2Hf6 -fr a;"ma($m4RHR?-hp-?/-N8l`0<a;x"ma(V$m4RHR?<p-?/-N8l m"mar"ma($$m4RHRN?4a U@$m4$m8H mp 0HWHH/$m8H mp 0HJWHHf&$m8H mp/0HN?a $m4`R m"ma'`9a9VA퀬a5VA큜a4^A퀰a4A큠a4Aa5pa" -bЭj$m2Hf"$m4RHR?-hp-?/-N9n`p$m$$m" < ma8("ma' $m4RHR?<p-?/-N9n$m$m4RHRN?4aU@$m4$m8H mp 0HWHH/$m8H mp 0HJWHHf&$m8H mp/0HN?ah$m4`@pa!`7a8A퀴a3A@a3rA$m$mDaC$m4p$mDWWHH/p$mD[WHHgp- m2H0$m0t$mDr$maC$mDRp$mDc$mRp$mct`2Bm~;|;|;|;|;| z;| v;| x;|;|;|;|;|;|;|;|;|;|;|;|;|;|;|;|;|;|;|;| ;| ;| ;| ;| ;|;|;|;|;|;|E#p a/faC4Jf*E.pa/R/ `\a1Aa,pr$mҒar-Ёaj`1`.a1RA a,p-$m DJjRTa:`0a DExa*`bDEa"`ZaR11!Nua11!Nu 24&8:DE`6 24&8:DB`&a&8:DE`DEx`a` 24&8:HnghDBHngXDE~<En g6@ABDFGcGcGb8(vHDl`G8BCHC` GHD8HD쬵k&Dуd QRB BbJjDBNu DENupN֓DjdDA@ cAр[SBoJjDBNurptNuH@g0J`Ѐ[rGoJjDBNu0ftNu@[rB oH@JjDBNu $HkBk Bj*DBNupNuDBBkBjDBDNuf gp`8 246jDCCe0 C/jC C@j C jr0H@{0>H@Nur{0Nu{0NutNu 246j(:<DCaf AfBfNu`a 00Nur$o, b4< J@k @[H@NuH@RBNu4<Ѐ[NuDg8k2 b4< J@k @[H@DBNuH@RBDBNu4<Ѐ[DBNu4H@Ѓdh`^HCH@:">H@`H2g&HCH@:<HC>H@Ѓd(`HCH@:H@r` gDBgkDE`HDBDEaBDBNugDBa8DBNutNua 11!Nux`xaR`aL` 24&8:HoHoEBJAgJDfr:g,|HC҅H@:ۆ<HC>H@Ѓd`vHCH@:H@`fgDBgkDE` DBDEaDBNugDBaDBNutNuHoHoEBz:g|HC҅H@:ۆ҄ۆ<HC>H@ЃdHA@B@H@хk HAҁHAрSB BbNuJBj^tNuk(g.JBjDBAр[SBDBjNutNuAр[SBkNuJlNu0gH@rJBkB JkЀ[`DBЀ[`J.;gP:pr4<Nup`5&xa`Ba411!Nux`4 24&8:`& 24&8:`a&8:` &8:@ABJEoHnfNup`4tNugDEDBHngDBEBkQ*HEJDg?<>0rHGGdHGGdSWDуdi?<>0rHGGdHGGdSWDуdi ?<>0rHGGdHGGdSWDуd&2 H@kփAр[SBkփejRAd RdQRBJjDBNutNu?<,>CEdGH@0r`xJCgz?<0rÐdSWЃdi?<0rÐdSWЃdid?<0ÐdSWЃd&2 H@kփAр[SBkփejRAd RdQRBJjDBNutNu?<0riR?0i?`?<`@$g\kdHfiHNufnpNupNu"lDaDNuJnDaDNuzxeҁ؄d`ef Nup`2@&gTkdHöfiH@HNugmNupNuz&lDaDNuJlDxeփ؄d`efNupN"_KMPI?dO:HQ <-H*,`N,yd d3 d# d# # d# # # # d ALH dAL H LH d AL`H L|0H>L|H>d~# # # # A`@ALH L|H>L|H>L|PH>L| H>L|H>L|H>L|H>L|`H>L|0H>L|H>QL|Nu$H$&"BA -KaXA"f B &nNuH>dd2d"d""d""""d LHC dLHLH C@d LHL|H| L|H|PCd~""""C`:LHL|H| L|H|PL|H|L|H|L|H|L|H|L|H|@L|H|pL|H|L|H|CQL|Nu`@a8A-Hhp apMa=@F?<NNTT@A0r p0Q`pdr ta0.F=@=@ACp,2QAp 2Qa a2`p`tpeahp`(p?a a\abaHz?< NA\?<LNAfCR2A0A82r22a"<N$0<NBLNurt=@:=A@=B2::(   F..26"8@"PQ1!P1P!0PP`0  q#p"A ӘQNu|^|  R^,T:Hz(` NNHz ?<&NN\Nu9gNuWNuaaa ``NuNuNupc?a0QNurdd6Ag,B(dB(dH Ac<a|tgBAp`NuNuJBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNu <r4<NuQfHR$n2Jjg$_NuH LNuPfJ.fg0HR$n2Jjf$_NuHC/*%I $n2%_LNu B?b4<rpAv JBlDBv-|JBg Bb Bk&H>aTaRFBd&8*L?a<aSF Be BgQRB`RAdR e <rRF&0xaCձfEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`HQ2.d Aeg>r C 5e&!R 0c 9c0`<R"_`VC0 Ef"_Nuaa/ CFr  g 00VJAgB @ nN @mHJ@j0.4DBUBk0QSAg Q.`S@k 0`0BAF "_Nu.WAkQA 0g`prt|P;Q:  g +g -f .g40  b 0e 9b da6`RF` .f 0e 9b daSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`ZJjDDDS4<.aJFkSFk4arQa`&HaFFaZQ&8*L/aR,H܆jDBJ.:gtBn:Nu @$@JfS aV`QNu$Aa8`QBNuHza`HzaH `HPHQ0(ika $I _aIUd4Id4Id$Id `$$$$Q _Jf,aId4Id4Id$Id `$$$$Q @NuSaIdIdId`Q @Nup `&/ a^$I> _aTG` VNuag`af`ae `ac` acpNuadpNu/ a$I> _a4Ae4v` VfANuHP0(R@kBa $I _aIUd4Id4Id$Id `$$$$Q @JfNuNup `%^aSAfNuag`af`ae `ac` acpNuadpNualSAkfJANuH HPhkJa^ $I _aFIUd4Id4Id$Id `$$$$Q @JgSL`QNup `$aAf` VNuag`af`ae `ac` acpNuadpNua4@m4v` Vf@Nu/HP0(X@kHa $I _aIUd4Id4Id$Id `$$$$Q @Jf$Nu $Nup `$aPYAfNuag`af`ae `ac` acpNuadpNuaSAkEF$p VfWANu?HP0(T@kHa $I _aIUd4Id4Id$Id `$$$$Q @Jf4Nu0XNup `#daUAfQNuag`af`ae `ac` acpNuadpNuarSAkXf SAkXfJANu|H`|i`|l@H~|`ze`z`zd@H>|`th`tpa ".Nutj`t@H|`rk` rf`rg`r5=@|0`pM` pO`p`po`~*@-AH|`t)`t` tr`t2`t@-A=B|`tHAHBHCHDHEHFHG-HfAD-HH@-@H|p`FrAD-@f-H `0r6 @`AG` AI`AJH|=@ ` z`z `z8.^n\Dn\@Hp tr=ED`n\n^n\n^A0000000000prt`fBp'rtaX n2rt6(SC0(S@apaB\papava0paRG=GYfx-IC=C=C$tBft=B=B(tFJ=BBBB*Do>Eo:@l6Al2DDk =DVBnDEk =EnBn@cVo Acno,_NuAH`/=@a _aH]Ak024E$ Bb5B5A6CC5CK5C:8AB0000DkxEkt00A<:d>:bSFSGFn\GnXDDk0BhDEk1EBh Fchh Gchh0hb"0hbpmrt-|YzH-|YL`Nu-HNO>?<NNT-@XDbDEbEBb=ET=DV-|PBLBp n20(L=CJ?=B^C=C\=Cj@drAdnED??RGRF=GF=FHtGJ=BltBft=B`=BnGOpЇЇ b na222-IfHVMF,_Nup `fT np`h??/ a, > _a|4$FAFp_@[000][vx`* [g" ]g |g QSx` xQSrQ][vx`* [g" ]g |g QSx` xQStQ]BAF0-H,=@p4a*2HNu 24DBaDB11!Nu 24DBa DBNu 24x6o<Ce(FC BdЄeNu B/dHDDdRdQRBNu&<:<`2g BbUC BcjNu BcHDDdSkg Aр[RBNu0ftNuB H@"jNuE"ea~"ep`&6NuE "e a\"d&&6NuE"e a>"d66NuE"e a""d666NuE"e a"d6Nu 24JBoRBk NugSBk` 24JBoCkNugCk`a*`QNuHg"cc/ 0)a _$PS@kH2QNu2(g$PRAA4DBH%$Y2Pg 1AHRAA%NuBhNupLADa>HTBnBL*Hd"aZHd"aRHd"aJHd"aBHdF n Dg"`.2.JWAARA0.L n.g hfRAS@f=AB"aNug//ANu@k AB00HNuX@g .NuAD Nuz`zA6C|IdXC |2:H<0`$6HpA2`A.p` A>`A*p4. g=BNuA*pBQBX".g pa BNupraHP?<NNT~U@g~tb3`XApr0 0BBB R@ @fA0000PB0Tp`00000\0X0Tp`T@00000P0BXpnT0raVA0p1| 1AQBX0$HTH0P P0Tp`0NuH(Fa$L(FNuSk [0NupNupa`hp>`HPaa _&X Pf/|~Kݖzag @ ep 2tC"2 S@HQC6ػR"_d BTAA3ApC4$I2a222B"0@2A\xva@gF2#M 443BS@ -f HQC6ػR"_d@BAAb8RGRC`3RSG5G5C J1DcaRF Fe `RG GdNuXASF1F41R1h4x1EDg"<p-A`S@ A00HNuAPgh ghgh$g0<NupNupNupNupNuaraRp-@-@(-@4-@@=|LpraHPKLCDHXA0 1PP1P1PA L?P<@>AFGH 0000X0000X0000HSG~2gtLx0a Q&_NuSAkA> A1@H<`Lp`Ha-_\NuBJAgLPDEFbGb?HXaL0S@k@> AP"G0(JgRJ)@g1@2fJ2HPL<P0aj W1@A00 pia=|@pia _C""pe`"4<6HPa _rL<0a=| pia0.2pa H\P`PH|SCSDABH0`:S@k@ A=pfNupa papapaLa`S@k*@ A0g BPapgap aJ@fnpahQ`B\NuHS&I. FVa8.:.L4.RBĴ@cBnaL4.RBŴAcJSA=A`@pJ.afrJk8 Eg,2. pg  qfL=A=Apjrta`8a>`2 d. Vg" gt gZ gn fPSnjBn`D=@0.n\=@0.R@S@n^=@prta$Rn0neBna(Q>j4&_NuBn`0<HyNM\`Rn<SFEneSn`2NuS@kD@ AC0g.?a$=_p 2.aL6Fgavp `p`p`NuBS@kl@ A=Pa=| phaL`4p-@"<$&HA-HH-HLBnpmrt`Hz ?<&NN\Nu n2MFJFo`JGo\H 8N-@-@ p-@*-@-@ H0H00(L=B=B&=CC=C=C$tBft=B=B(NuaNAXOJkpNu0< aF`0< CF2p`,p a0`p CFp`aCF"p` Hza `Hz"J`B.@=|DNua.@FpAR@C` B.@=|DNuB.@a=GDgNup`a`aCF"E p`a @S@k ??<NAXNu&8:` &8:@ABHaNL8aL8 DBa^L8O <jDFJEjDEFn ffAbtNu&8:aX`^&8:aD`P.@<.DAp$I"t Q k"RGef~`SG * g *fSG`<.DjZ\FkBJn`g Fgd Fg^HS&I.aQ`p???<NM\Qj&_NuHQ/?Hz?<&NN\`L n2LLJFj|@c<JGj~Ac>02 h|N n2HHNu80a|DHz ?<&NN\Nu|AF"n2"iB(B(Nr ?HQa _/ ?ax0 _4gSB@c:Ad,J@gB@BmS@,. RB6Vg(R F"GQpNufJ@fRB`fS@kVft0HNua|aJjtNuanHPa pJk NuCg.BJ@g  g &g, $g %gNQNutNuRpt`2Rpt`Rptr ae OgX Xgn HgSRB ae Fb$0k  c_  c b退`tSHkaͺNuRB0 b b瀀`RB0 fрd`H~=H|=@p3`غBnp`pBnp`p=| p|=Fn@=@b=n`raHj=Ah~`:a JfBH@ RfF.f Kg" Mg sg tg Pg Hf~`xSGjtRGFcn>`jAF gp gj g grffnnpenbfJ.fj6pRGFc$SG` J.fjpRGFcRF` Ff`> `?~ap a0p a*0Nu|``CpE`bf`FgRGJGgSGSFFgCpE`Yf`Nua@Jf gH@ fa(@ fza0 b @ Ee0NuangNu4.rf?HyabNM\Nu=|D`LjazEfpadppa`AFEg0PaEfaFRE`ܾEfp a@a8?nnnp a2RF`<a,nnoS@f nhfSnl=Ah=FnNup` papq4.rf?HyaNM\Nu=|DHa LNu|A0"P2(@e2<EF`QHP=|DJ@g$abAF$HpR@ 0 f _a`QNup?ap a~2<|0`C&pHQ/Hy@NA NuC pa:NuHQ/Hy?NA Nu&g4 FgagJAga2< R@AdSf0Nu0ap Ce`&g4 FgafJBja~gPAe CbRa R@Sf0Nu FgRa.g JBja@AeaJAg RP0 pNu` Fg6agJAga @eaRP Nup NHѨB?<?/?<BNAO JkLLNu&8aJBjaJAg Df*ڃkd0Nu DfրBH??/?<BNAO LJk!@NuHBHh Hx??<?NAO LJo ѨLNuk:fp`^k: g ѨNuBHPHQ/??<?NAO _JoѨfNuBHPHQS/??<@NAXLfѨNuJkp%`?a2@`?a2@ab` a Nu4.`Af n2LR@RANu4.`g S@SAHNutbpbr??papYa0a0`pE PgP"`LJg&B.C`a8aD*9,fap-I,=|p4aBHz*9,g ENp9 ` _a &nO:NMPI?dK$<Nu[1][Error +111][Return]E g g>Jf`Ar Hjr-D@Hd0H@H 0H@0CNuAF"H [1][fSEfNuD@v`v??NMXJNuJ@k??<NM"UAf J@fH@Nuaj0fpNu\@`a`]@><CF Ipa<0HNua`]@><CF Ipa Nu?|`?aj0R@f|0aHJFkHPa _Nupo`@HSHP&I>g\SG??<NMXJk V _t&_Nu&_`pt`pt@S@kZ@Ha*8L6BPA E=Z=A-H: DNexMQBB*gJnfNuC`C``C` C`CJhfRRRRRRRHP? @CFH~8:E#P&<2 `b$bYEf` RAf rЁЀ`$Ѐe "ЀeЁdpNJAkfgRer?DDЁaAaN8$HX :CFE` YEjT"_$P"2trDDd0d d d` QjNu`aDa DNu na^ K"ng42 $`gk2&Hg Af deђ$`ebѐXf&nNu AgebѐA``-Kx$ n&$n""Hg8" &Ak cѐ S`g"" k#&Acё2+SAI3 Q&f-I"&nNu-Kx$&ր n&$n""HgR" k&Ac b S` S`g4" k#&AcbrkX`ޑ2+SAI3 Q&f-I"&nNuaP n2L6(n\n^HHHNua0 n20(n\HNua n20(n^HNua n20(HNuav:ffNuarNua J[HHNu:nfa@ z^0NuJg6$:Pf,H?<"NNT&@p/&xra :,ga &Lr`r??Q@vHyNM\0Nu#rNu"H YJQfNuBQ YH瀀aLP|HPG\C6[[[C8[[[a68v6Cv6C[RCF8[[[a@6C[RCF8.L L-KA `ʂ$I\bfBjQNu$YbfBjQNu nd$HJf-HS Nup"`bHPa _af`QNua JH aL0Nua` 4<H`@apL Z0De2SCkÐCo@c2`QNuSAjrA@A0HNu@a0Nua!@ NuAANua1 Nut`t`t`t`t`t `t`t`t`t`a ( Nua Nu@@Nura00HNur`r`r`r`r `r`r`r`r`zQ`z ` zn`z4=A|av-IHQB0a6 _JNuz"-A=@|aN-I`0!)'1321231481241291251429115392154931581260056554428010856424288082062432602F01E01AAFFFFFFFAAA558000D55AABE1F78AAA558000D55AABF9C7CAAA558000D55AABE1F86AAA558000D55ABBF1E7CEAA568000B55AC80009AA58FFFFFFF8D5B000006A7FFFFFFFFFF5C111111A82227272F844444DFFFFFFFFFFF9800000D8C0000F9E0000A8C0000DFFFFFFFFFFFA7D55555555F5800000A3CF22792FB25A28A281482AA22F22818F2A5A2A22814826A3C99E792FA65800000A03E0210155555555D5555555AAAAAAAAEAAAAAAB55555555D5555555AAAAAAAAEAAAAAAA5555555555557555AAAAAEAB6BAAEAAA55555F565755D555AAAAAAAE6FABAAAA55555B54555F5555AABAA9AC6DB6AAAB555D58D85965557DAABEB0F871CABFEA55575050601FE755AAABB02020C01EAA555CD043C863F555AAAC73664B206AAA555623B44DE03D55AAFE2D7C760AAA7F8037A31F8754F8013BC01AFFEA5FFF818801D5555AAAB0800CAAAAA55571C2040ED5555AAAA7C7060BEAAAB5554D4D871DF5554AAADACAC79AAAAAA555F54D65D555554AABEACAB6FAAAAAA555555D5D7555554AAAAADAAEAAAAAAB5555555555555555AAAAAFAAAAAAAAAA5555575555555555AAAAAAAAAAAAAAAB(gelscht)Kein Platz fr weitere|Eintrge vorhanden !SchadedruckenneuEintrag Zeit Datum Lnge Attribut Start-Cl.NEUEINT EXT Eintrag Zeit Datum Lnge Attribut Start-Cl.(geloescht) Eintrag Zeit Datum Laenge Attribut Start-Cl.Der Drucker ist|nicht bereit !weiter|AbbruchSie knnen jetzt diesen Eintrag neu erstellen. Sie knnen jetzt diesen Directory-Eintrag verndern. 19Fehler im|BIOS-Parameter-Block! Aha Bootsektor defekt ?!?!Whlen Sie die gewnschte Sub-Directory Ebene.Aktueller Pfad:zurckDiese Directory-Ebene enthltkeine weiteren Ordner. ERROR # |(s. GFA-Literatur)RETURNWahl der Sub-Directory EbeneDiese Eintrge stehen in der DirectoryWenn Sie einen Eintrag anklicken, knnen Sie ihn verndern.dir_ana.rscFehler beim|RSC-laden !Sorry, dieses Programm luft|nur in der hohen und der|mittleren Auflsung!  VT$"$$z ,RdNH(Nb8X$x.nfx?|@B B\#|HIBIIBH$IBH$I|DÈ````<`8`00```p8` ``0 ```0 ```0 p``0 08``<0`fx|``xp`g`g`g<`gc <`g01``f01 0`gp9``fp 0`f```f` 0` f```f`x 0`fp9``fp``8`8f01``f0c`p`f<0f<0`gf~?fgf|>fx?|@B B\#|HIBIIBH$IBH$I|DÈ````<`8`00```p8` ``0 ```0 ```0 p``0 08``<0`fx|``xp`g`g`g<`gc <`g01``f01 0`gp9``fp 0`f```f` 0` f```f`x 0`fp9``fp``8`8f01``f0c`p`f<0f<0`gf~?fgf|>fx?,& 6,&,&kwx y<UVWefguv    @FGHLMNTUV^_`5 #04;N 6$7P R  T `   p   eF*7T*2. ) $ 0 '  !6   b*w& - %' $ *4 P l '  E 4  "0 0  ? U p  z   !+5L ' h)| ,.0&H0Hp rt=|`By GfR?.?.Rya?a?Ry -Ff yg T4:`Nq?/t`N`Ntn&n&=BHpgrt`paFpja@p a: !g %Fg$N-@rtp a -Fg Fgap&a=n#&=n$&=n$&NuNBg?N/. //x.. MSTRANS DOC yMMSTRANS PRG {***************************************************************************** * * * MSTRANSFORMER 2.01 written by P. Maier 19.12.88 * * * ***************************************************************************** * Peter Maier, Waldstr. 83, 6085 Nauheim, GERMANY Phone: 06152/62081 * ***************************************************************************** This program allows you to copy MS-DOS disks (360 KB/40 Tracks/double sided) to the ST. I have written this utility, 'cause I have an 5 1/4 disk drive that can't be switched between 80 and 40 Tracks. It is also possible to copy an ST-disk to MS-DOS format. But the ST-disk has to be a disk, that you have copied before from MS-DOS format to the ST. If you copy a normal ST-disk, the MS-DOS system can't use this disk. You can also format an 360 KB MS-DOS disk or an 720 KB disk which could be used for both computers, ST and MS-DOS. TEST DISK checks if the copy could read the disk. If you have problems with the program or if you find any bugs ( OH NO !!) please write to me or call me. Have fun Peter "nhr`.0"nr `"0"n|r`0"ndr` 0"n\rtg gpDN4B@Hq/1 Ra&npЮbN$pЮe&"_ _& &6-KNu0"nr tg f4RR`0"nlr`0"npr`0"ntr`0"nxr`0"nr `pg0@ d n` n 0g @HP$n\e N$dl-JBbB _"H Xf\ eRR #g( #g gHU*HNHaL*_Nu #g -fpHQa8"_R y R`].n&HT ?(IEc \e N$d"n-J5<%Hd2Hd"Hd `""""Q eRR #g. #g g n0 "`k` 0N #g -fHQar"_R`pENNe.$@0*N$RHd2Hd2Hd`""Q `NHaL$n``!QKByJ$f"O/9n?<HNA\OJg.@n`@Ry m A#n"ҍ¼.A// Bg?<JNA #Ѭ yѬ/(,HhN0P/9/9?9N1^N0N0PT?<N2rNV09f09fB?<N=z\3N^NuNV09f09gB?<N=z\ByN^NuNV09fBgBg?<N0\3N^NuNV09gBg?<?<N0\ByN^NuNV0.| H?0. | H?HysHnN9O Hn?< N1 \N^NuNV0.pS@=@0. `U@=@ /. ?. ?.?9ϚN>O N^NuNVByѤ`,09ѤA`0||2??<N1 XRyѤ y-ѤmN^NuNVB?< N1 \# >@|0.Rn 9F/9 ?< N1 \N^NuNVB?< N1 \# 309f@|9<FBx>/9 ?< N1 \N^NuNV/.   XN^NuNV3 3 <Sg 9f309@3ϔN^NuNV3333N^NuNV3333N^NuNVH>.<. *n SQL N^NuNVH >.*n (nSQL0N^NuNVB?< N1 \# ?<?.N2X/9 ?< N1 \N^NuNVB?< N1 \# 33/9 ?< N1 \N^NuNVB?< N1 \# 33/9 ?< N1 \N^NuNV?9NLT?<NTN^NuNVB?< N1 \# /9N X?< NvT?<?<N2X/9 ?< N1 \N^NuNVB?< N1 \# /9N X?< NT?<?<N2X/9 ?< N1 \N^NuNVB?< N1 \# /9N X?<NvT33l?<?<N2X/9 ?< N1 \N^NuNVB?< N1 \# 33l/9N X?<NT?<?<N2X/9 ?< N1 \N^NuNVB?< N1 \# HyТN X?<NvTBn` ?<?<N2X yϔg` Rn nm/9 ?< N1 \N^NuNVB?< N1 \# /98N X?<NvT33l?<?<N2X/9 ?< N1 \N^NuNVBnHysHyҶN9PHyҶ?<N;\=@?<N+T?< ?<NjXHysJN94XByѢ?9Ѣ?9РN8X?<NTN ^BgNTA#83lNN ^ yϔg:Hys\HyҶN9PHyҶ?<N;\=@ nf`=|?<WNT?<WNTN ^?<NTA#83l?< ?<NjXHysN94XNN ^ yϔgHyHyϚHy*N?4O 3ByByNBBgN=z\ByϘByѢBytByРByѦ36By3^BypBgBgN8XBy0<NqN^NuNV?9ϚN>TN^NuNVB?< N1 \# 34/9 ?< N1 \N^NuNVHn?.BgN=PHnHnHnHn/.N<O?.?.?.?.BgBgBgBgBgN<`O?.?.?.?.?<Bg/.N=ON^NuNVHn?.BgN=P?.?.?.?.BgBgBgBg?<N<`ON^NuNVHy@?<N;\=@ nf&?<N+T?<N1 T?<N,tT`$?<N+T?<N1 T?<N,tTN^NuNVHnBgBgN=PHnHnHnHn/.N<O?.?.?.?.BgBgBgBgBgN<`O?.?.?.?.?<Bg/.N=O y4f n1|?.?.?.?.Bg?</.N=O n1|*?.?.?.?.Bg?< /.N=OByРByѦ n1|?.?.?.?.Bg?</.N=O n1|?.?.?.?.Bg?< /.N=O`n0.H/ </N1  n00g n0(|gByР n0(|g3Р n0(|gByѦ n0(*|g3Ѧ n0(|gBy63 n0(|gBy36 n0(|gByp3^ n0(2|gBy^3pBg/.N=\=@ @g" n g ng ng nf nh nhB nhJ nh nh?.?.?.?.BgBgBgBg?<N<`O nf y6fNt`N(P` nf NN` nf N ` nf N,`N^NuNVN+N*g4N-$N+?< ?<NjXNN ^N ^NN;bN^NuNuNuAќXyќ !J!_ NMYyќAќ"P$h/( J@NuAќXyќ !J!_ NNYyќAќ"P$h/( J@NuAќXyќ !J!_ NAYyќAќ"P$h/( J@NuNVN^NuNVN^NuNVH$.f BB`J". BnJlVnDJlRnDvd`Bbd nmDdD-@-A LN^NuNVHBG".l~D$. l GD&gHC H@J@g@HCBCւJGgD-C LN^.JNuNV 9rAh䀰|l yrXr 0<`0<N^NuNVH`Yr yr PN 9rAhfAv*H`0- |g / N2X Av"Ҽ@m?.NDTL N^NuNVH*n0- |g/ N3JXg0<`20- |g /-N6XBm ?- NKTg0<`0<L N^NuNVH*n0- |f0<`r.0- |gV0- |f0<`R0- |g?<B?- N3P?/-?- N:8P @f m@ 0<`m *Bm0<L N^NuNVJnl3 <`H?.?./. ?<BN1 O -@Jm .`?<?.B?<BN1 O -@Jl .3 <`?<?.B?<BN1 O -@ nf .Ю -@ `& nf .Ю -@ `0.g <` . oH?.N7T|J@f .3 <``` Hn . /?.?<@N1 O Bg?./. ?<BN1 O J]|=@g3 <`` . NqN^NuNVH .<".ҼS/"</NCx"X/./NC. /N9ZX*@f <`(M)G P/N6X 9L0N^NuNVH .<".PS/"</NCx"Xށ 9(@JfA (@##B*T -e* -f(`  -+G# P`( f/N5FX*@Jf <`(M*U`L0N^NuNV0./N5XN^NuNVH .f`v .Q*@(y` m n l`(T o l "-Ёf T (ѭ T*`* ",Ёf -Ѭ(`(#L0N^NuNVBn`<0.@AR00f&0.@AR10.@AR1 ` Rn nmN^NuNVBn`*0.@AR00nf0.@ARBpRn nmN^NuNVH>.=|\AR"HPgXHf0(LN^NuNVHHy/.N:PfBG`Hy/.N:Pf><`Hy/.N:Pf><`0. |gR0. |?/.?<=N1 P>J@m 0. |g&JGm??<>N1 XBg/.?<`j0. |gD0. |?/.?<=N1 P>J@m"??<>N1 XBg/.?<`0. |?/.?<=N1 P>JGl 30<`?. ?N7&X0LN^NuNVA X//.HyNFO N^NuNV/.?<HN1 \-@ .f-|3 .N^NuNV0./N9ZXN^NuNV .##3/./. HyNFO yB .N^NuNVA X//. /.N9O N^NuLB@ggSBAgHJ@gHANuNVH*n (MBn ng?.N7T| fA&H. nU|`H| f S @  . nU| A|l0fD AH-@Hn/.?.?<@N1 O <Hg 30<`dA&H0f~ =@`J/ 0./?.?<@N1 O -@2.¼g .30<` .n0.L8N^NuNV?<N>,T0<N^NuNVA>#TA#XA#\A#`Aψ#dA,#hAT#X?< N>,T3Ѵ09ѴN^NuNV3# ψ?<4N>,TN^NuNV#ψ?<6N>,T n 0 n0 n0 n0"09N^NuNV33 3 3 3"3$3&3(3* nf 3333?<3N>,TN^NuNV n0 n 0 n0 n0N^NuNV#ψ3 ?<2N>,TN^NuNV?<MN>,T n0 n 0 n0 n0"09N^NuNV3# ψ?<NN>,TN^NuNV#ψ3 333 3"3$?<*N>,TN^NuNV33 3F?<pN>,TByF n ,09N^NuNV3>0.| AO$HЈ-@=|` nR2.AA>H1Rn nm/9XNNX09N^NuNV3e:By|1f3:3#AѶ#A#AϞ#N^NuNV .3H .3. }.. DISKUTILACC F 8DISKUTILPRG F 7README F `) KByBJ$f"O/95?<HNA\OJg.@5`@RyB m A#8 5"ҍ¼.A// Bg?<JNA #C yC/(,HhNP/9B/98?96NNNT?<NNVN36Hy2?96N" \3CNN2NN^NuNuNVHy)N#@XJ@f0<`Hy8BgBgN"PJ@f0<`HyC?<BgN"PJ@f0<`HyC?<BgN"PJ@f0<`HyC?<BgN"PJ@f0<`Bn`(0.H/ </N  yCp Rn0.@A2|00=@J@nBn`(0.H/ </N  yCp Rn0.@A200=@J@n0<N^NuNV`NHnN fX0.`.0.yCfN`$0.yCfN<`` |(gΰ|)g0<fN^NuNVBgN!T?<?<BgBg?<?<BgBgBgN O?<?<BgBg?<?<BgBg?<N O32z?.=|\A6"HPgXHf0(LN^NuNVHHy6T/.N PfBG`Hy6Z/.N Pf><`Hy6`/.N Pf><`0. |gR0. |?/.?<=NjP>J@m 0. |g&JGm??<>NjXBg/.?<`j0. |gD0. |?/.?<=NjP>J@m"??<>NjXBg/.?<`0. |?/.?<=NjP>JGl 360<`?. ?NlX0LN^Nu o/ fpJWf ` <gf `SNuNV/.?<HNj\-@ .f-|36 .N^NuNV0./NXN^NuNV . @"n rJWfSWfN^NuLB@ggSBAgHJ@gHANuL rWfNu op`R@SJWfFNuNVH*n(n >.&MNqSG0J@mf`BSG0J@l L8N^NuNVH*n (MBn ng?.NT| fA&H. nU|`H| f S @  . nU| A|l0fD AH-@Hn/.?.?<@NjO <Hg 360<`dA&H0f~ =@`J/ 0./?.?<@NjO -@2.¼g .360<` .n0.L8N^NuNV?<N"T0<N^NuNVAC#CAB#CAB#CAC&#CAC#CA6#CAC#C?< N"T3C&C09CN^NuNV#C?<N"TN^NuNV3B# C?<4N"TN^NuNV#C?<6N"T n 0C( n0C* n0C, n0C.09C&N^NuNV3B3 B3 B3B3B3B3B3B3B nf 36363636?<3N"TN^NuNV n06 n 06 n06 n06N^NuNV#C3 B?<2N"TN^NuNV#C# C?<ZN"T n0C(09C&N^NuNV3B# C?<NN"TN^NuNV3B# C?<#N"TN^NuNV#C3 B3B3B3B3B3B?<*N"TN^NuNV3B3 B3C?<pN"TByC n 609C&N^NuNV3C0.| A(HЈ-@=|` nR2.AACH1Rn nm/9CN'X09C&N^NuNVH?<$Hn/.N&O .6.HЃ-@ .3B .3BBG`0HЮ @ Ю RG0nm .6.HЃ-@BG`0H/ </N  n00`.0H/ </N Ю @ ( Ю!@ `8`6|gΰ|gȰ|g°|g|g|g|g|g| g?/.N)j\RG0nmd .6.HЃ-@BG`v0H/ </N Ю @ Ю 0H/ </N Ю @ (Ю!@0H/ </N Ю @ (Ю!@RG0nm .6.HЃ-@BG`0H/ <"/N  n 0Ю2H/"<"/N" n!0H/ <"/N  n 0Ю2H/"<"/N" n!0H/ <"/N Ю @ (Ю!@RG0nmN .6.HЃ-@BG`B0H/ </N  n 0Ю2H/"</N" n!RG0nm0<LN^NuNVH$.f BB`&". Bvd d``bd-@-A LN^NuNVHL&gHC H@J@g@HCBCւ-C LN^.JNuNV?.?<LNjXN^NuNV n"n 2.HbL0|f |f`( |g `Q`fA`2Q`XA`"Q`J0|f |f`$ |g ` Q`A`3 Q` A`# QN^NuNV?.NTJnn0<`,?.?<>NjX=@g360<``0<NqN^NuABCXyC !J"/0<NBYyCABC"P$hNu NV#C3 B?<rN"TN^Nul$,Dateien lschenVorm Lschen anfragen ?JaNeinlschenAbbruchDisketten-AccessoryEine kleine Hilfe fr fehlenden Speicherplatz(c)1989 Fachschaft Elektrotechnikder Universitt KarlsruheDisk formatierenaaaaaaaaaaaaaaaAbbrechenDateien lschenEine kleine Hilfe fr GEM-Programmedenen der Diskettenplatz ausgegang-en ist.Hier die gewnschte Aktion whlen:Diskette formatieren:FS_ETEC DSKDisk-Name: ________.___FFFFFFFFFFFAbbrechenformatierenLaufwerk:ABDisk-Format:NormalExtendedSeiten:12Diskette in Arbeit:0Seiten-Nr. : _900Track-Nr. : __990000Defekte : ____9999$4eyz)"$   $,1EFHZ\_qty ( $5$U']XPM  ($!$ 8  $ T  %# ,% I# m u "  $p             XXX-  1/  4(P,|l*.*A:*.*  Disk-Aufrumer[3][Es fehlen 10kB Speicher !][ABBRUCH][3][Soll eine zustzliche ber-|prfung erfolgen ?|(v.a. ratsam bei fehler-|haften Disketten !)][Ja|Nein][3][Es wurden 0000 defekte|Sektoren gefunden (und|eingetragen !)][Weiter][3][Das Formatieren lscht|alle Daten auf der Disk|im Laufwerk A:\ !|B:\ !|Soll formatiert werden ?][Ja|Nein][3][Defekter Sektor liegt in|Bootsektor, FAT oder|Directory !|(nicht reparierbar !)][ABBRUCH][3][Defekter Sektor liegt in|Bootsektor, FAT oder|Directory !|(nicht reparierbar !)][ABBRUCH][3][Soll das File|''|wirklich gelscht werden ?][Ja|Nein][3][DOS-Fehler #- !][ABBRUCH] 6h CON:AUX:PRT: $     *(&&"&  $&  "&"    $$$   Bbp&"(    (    ^    "     " "     .$   >"  (l@ (X&>&. . 4&f.,*   ."(L܀8 (             &(L"Z6$(H""H"r `( KByAJ$f"O/94H?<HNA\OJg.@4H`@RyA m A#7J4H"ҍ¼.A// Bg?<JNA #B yB/(,HhNP/9B*/97F?95N>NNT?<NNNVN35NNNlN^NuNuNVHy(N"XJ@f0<`Hy7RBgBgN!PJ@f0<`HyC,?<BgN!PJ@f0<`HyB?<BgN!PJ@f0<`HyBP?<BgN!PJ@f0<`Bn`(0.H/ </NN  yC,p Rn0.@A100=@J@nBn`(0.H/ </NN  yBp Rn0.@A100=@J@n0<N^NuNVN&N^NuNVBgN!vT?<?<BgBg?<?<BgBgBgN jO?<?<BgBg?<?<BgBg?<N jO31?X*@f <`(M)G P/NtX 95L0N^NuNVH .<".PS/"</N%"Xށ 95(@JfA5 (@#5#5B5*T -e* -f(`  -+G#5 P`( 5f/N"X*@Jf <`(M*U`L0N^NuNV0./NXN^NuNVH .f`v .Q*@(y5` m n l`(T o l "-Ёf T (ѭ T*`* ",Ёf -Ѭ(`(#5L0N^NuNVBn`<0.@A500f&0.@A510.@A51 ` Rn nmN^NuNVBn`*0.@A500nf0.@A5BpRn nmN^NuNVH>.=|\A5"HPgXHf0(LN^NuNVHHy5/.NPfBG`Hy5/.NPf><`Hy5/.NPf><`0. |gR0. |?/.?<=NP>J@m 0. |g&JGm??<>NXBg/.?<`j0. |gD0. |?/.?<=NP>J@m"??<>NXBg/.?<`0. |?/.?<=NP>JGl 350<`?. ?NX0LN^Nu o/ fpJWf ` <gf `SNuNV/.?<HN\-@ .f-|35 .N^NuNV0./N>XN^NuNV . @"n rJWfSWfN^NuLB@ggSBAgHJ@gHANuL rWfNu op`R@SJWfFNuNVH*n(n >.&MNqSG0J@mf`BSG0J@l L8N^NuNVH*n (MBn ng?.NT| fA&H. nU|`H| f S @  . nU| A|l0fD AH-@Hn/.?.?<@NO <Hg 350<`dA&H0f~ =@`J/ 0./?.?<@NO -@2.¼g .350<` .n0.L8N^NuNV?<N"(T0<N^NuNVAC#CAB #CAB.#CABf#CABZ#C"A5#C&AC#BT?< N"(T3BfC09CN^NuNV3B.# BZ?<4N"(TN^NuNV#BZ?<6N"(T n 0Bh n0Bj n0Bl n0Bn09BfN^NuNV3B.3 B03 B23B43B63B83B:3B<3B> nf 35353535?<3N"(TN^NuNV n05 n 05 n05 n05N^NuNV#BZ3 B.?<2N"(TN^NuNV#BZ# B^?<ZN"(T n0Bh09BfN^NuNV3B.# BZ?<NN"(TN^NuNV#BZ3 B.3B03B23B43B63B8?<*N"(TN^NuNV3B.3 B03C ?<pN"(TByC n 509BfN^NuNV3C0.| A'dHЈ-@=|` nR2.AACH1Rn nm/9BTN'(X09BfN^NuNVH?<$Hn/.N&,O .6.HЃ-@ .3B .3BBG`0HЮ @ Ю RG0nm .6.HЃ-@BG`0H/ </NN  n00`.0H/ </NN Ю @ ( Ю!@ `8`6|gΰ|gȰ|g°|g|g|g|g|g| g?/.N(\RG0nmd .6.HЃ-@BG`v0H/ </NN Ю @ Ю 0H/ </NN Ю @ (Ю!@0H/ </NN Ю @ (Ю!@RG0nm .6.HЃ-@BG`0H/ <"/NN  n 0Ю2H/"<"/NN" n!0H/ <"/NN  n 0Ю2H/"<"/NN" n!0H/ <"/NN Ю @ (Ю!@RG0nmN .6.HЃ-@BG`B0H/ </NN  n 0Ю2H/"</NN" n!RG0nm0<LN^NuNVH$.f BB`&". Bvd d``bd-@-A LN^NuNVHL&gHC H@J@g@HCBCւ-C LN^.JNuNV?.?<LNXN^NuNV n"n 2.HbL0|f |f`( |g `Q`fA`2Q`XA`"Q`J0|f |f`$ |g ` Q`A`3 Q` A`# QN^NuNV?.NTTJnn0<`,?.?<>NX=@g350<``0<NqN^NuAABXyB !J"/0<NBYyBAAB"P$hNu NV#BZ3 B.?<rN"(TN^Nul$,Dateien lschenVorm Lschen anfragen ?JaNeinlschenAbbruchDisketten-AccessoryEine kleine Hilfe fr fehlenden Speicherplatz(c)1989 Fachschaft Elektrotechnikder Universitt KarlsruheDisk formatierenaaaaaaaaaaaaaaaAbbrechenDateien lschenEine kleine Hilfe fr GEM-Programmedenen der Diskettenplatz ausgegang-en ist.Hier die gewnschte Aktion whlen:Diskette formatieren:FS_ETEC DSKDisk-Name: ________.___FFFFFFFFFFFAbbrechenformatierenLaufwerk:ABDisk-Format:NormalExtendedSeiten:12Diskette in Arbeit:0Seiten-Nr. : _900Track-Nr. : __990000Defekte : ____9999$4eyz)"$   $,1EFHZ\_qty ( $5$U']XPM  ($!$ 8  $ T  %# ,% I# m u "  $p             XXX-  1/  4(P,|l*.*A:*.* [3][Es fehlen 10kB Speicher !][ABBRUCH][3][Soll eine zustzliche ber-|prfung erfolgen ?|(v.a. ratsam bei fehler-|haften Disketten !)][Ja|Nein][3][Es wurden 0000 defekte|Sektoren gefunden (und|eingetragen !)][Weiter][3][Das Formatieren lscht|alle Daten auf der Disk|im Laufwerk A:\ !|B:\ !|Soll formatiert werden ?][Ja|Nein][3][Defekter Sektor liegt in|Bootsektor, FAT oder|Directory !|(nicht reparierbar !)][ABBRUCH][3][Defekter Sektor liegt in|Bootsektor, FAT oder|Directory !|(nicht reparierbar !)][ABBRUCH][3][Soll das File|''|wirklich gelscht werden ?][Ja|Nein][3][DOS-Fehler #- !][ABBRUCH] 5 CON:AUX:PRT: $     *("&  $&  "&"    $$$   Bbp&"(    (    ^    "     " "     .$   >"  (l@ (X&>&. . 4&f.,*   ."(L܀8 (           &(L"Z6$(H""H"r  |-----------------------------| | DISKUTIL(ity) | |-----------------------------| Das Programm ist als Public Domain gedacht, und somit frei kopierbar ! Es ist sogar gleich zweimal vorhanden: 1. als Accessory: fr all jene, denen erst dann einfllt, da sie keine freien Disketten mehr haben, wenn sie sie zum Abspei- chern einer Datei von einem Programm aus bruchten. 2. als Programm: hier kommt wohl hauptschlich die Formatier-Routine als ntzlich in Betracht. Als Features sind enthalten: 1. eine Routine zum LSCHEN VON FILES : Wer nicht gleich eine ganze Disk frei hat, kann hiermit ersetzbare oder nutzlose Files lschen. Die Routine ruft die Fileselektor-Box auf. Dann knnen entweder einzelne Files oder auch WILDCARDS angege- ben werden. Vorm Lschen wird, wenn dies erwnscht ist, jeweils noch angefragt. 2. eine Routine zum FORMATIEREN VON DISKETTEN: hier sind, neben der fast schon standartmigen Wahl zwischen 360/720kB oder 410/820kB, auch noch zwei SEHR ntzliche Schelchen dabei: - DEFEKTE SEKTOREN, die beim Formatieren entdeckt werden, werden in der FAT der Disk auch als defekt EINGETRAGEN. D.h.: die Disk kann genauso wie jede andere weiter ver- wendet werden, nur da eben ein oder mehrere Cluster be- reits "belegt" sind. Da die Formatier-Routine des XBIOS aber nicht alle defekten Sektoren entdeckt, v.a. dann, wenn man die Disk mehrmals formatiert hat, habe ich noch eine - ANALYSE-Routine draufgegeben, die man wahlweise auch noch ber die Disk laufen lassen kann. Die Routine ist nicht wesentlich langsamer als das Formatieren, solange keine Schreib/Lese-Fehler entdeckt werden. Die Routine ist erkennt selbst jene Fehler, welche die Formatier-Routine "bersehen" hat. Dann bleibt mir nur noch zu hoffen, da Ihnen/Euch mein Programm auch was nutzt. h, noch was: Bitte schickt mir die lppischen 10.- DMchen, denn ich hab' schlielich auch'n paar Stunden Arbeit da 'reingesteckt. Wr' echt nett ! . }.. FEDIT DOK ljTFEDIT PRG lj< Dokumentation zum Programm: FEDIT Stand: 26.07.1989 PUBLIC DOMAIN Inhalt (Numerierung bezogen auf 56 Zeilen/Seite) 1 Copyright . . . . . . . . . . . . . . . . . . . . . . . 3 2 Was FEDIT ist (und was nicht) . . . . . . . . . . . . . 3 3 Konventionen und allgemeine Eigenschaften . . . . . . . 5 4 FEDIT als File Editor . . . . . . . . . . . . . . . . . 5 4.1 Kommandozeilenformat . . . . . . . . . . . . . . . . 5 4.2 Das Konzept der 'Filepuffer' . . . . . . . . . . . . 6 4.3 Fileanzeige und Eingabemglichkeiten . . . . . . . . 7 4.4 Marker und Offset- Funktionen . . . . . . . . . . . 8 4.5 Blockmarkierung und Blocktransfer . . . . . . . . . 9 4.6 Suchen und Ersetzen; Verknpfungsmodi . . . . . . . 10 4.7 Ungleichheit suchen . . . . . . . . . . . . . . . . 12 4.8 Pfad setzen und Directory . . . . . . . . . . . . . 12 5 Der Memory- Modus . . . . . . . . . . . . . . . . . . . 13 5.1 Unterschiede zum File- Modus . . . . . . . . . . . . 13 5.2 Die GEMDOS- Funktionen . . . . . . . . . . . . . . . 14 6 Der Image- Modus (Speicher zeigen als Bild) . . . . . . 15 7 FEDIT resident; Aufruf und Einschrnkungen . . . . . . . 16 7.1 Allgemeines . . . . . . . . . . . . . . . . . . . . 16 7.2 RESET- Residenz . . . . . . . . . . . . . . . . . . 16 7.3 'Unbedingter' Aufruf . . . . . . . . . . . . . . . . 17 7.4 Bedingter Aufruf . . . . . . . . . . . . . . . . . . 17 7.5 Beschrnkungen des Aufrufs . . . . . . . . . . . . . 18 7.6 Anpassung an weitere TOS- Versionen . . . . . . . . 18 8 FEDIT- 'Systemvariablen' . . . . . . . . . . . . . . . . 19 8.1 Inhalt des entsprechenden Bereichs von FEDIT . . . . 19 8.2 Und Erluterungen dazu . . . . . . . . . . . . . . . 20 9 Beispiele fr den Umgang mit FEDIT . . . . . . . . . . . 22 10 Abschied . . . . . . . . . . . . . . . . . . . . . . . . 23 1 Copyright Das Programm FEDIT.PRG und diese Dokumentation wurden erstellt von Bernd Feige Regerstrae 20 | Probsteistrae 8 5750 Menden 2 | 4400 Mnster Konto Nr. 7531072 BLZ 447.500.65 Programm und Dokumentation drfen und sollen frei kopiert und weitergegeben werden, unter der Voraussetzung, da die Files zusammenbleiben und die Urhebervermerke in beiden nicht gelscht oder verndert werden. Der Autor bernimmt keine Haftung fr Schden, die durch die Verwendung dieses Programmes entstehen; Ebensowenig haftet er fr die Verwendbarkeit des Programmes fr irgendeinen bestimmten Zweck. Wie bei PUBLIC DOMAIN- Programmen blich, wird die Entrichtung eines angemessen erscheinenden Obulus an den Autor dem Programmbenutzer freigestellt. 2 Was FEDIT ist (und was nicht) Nach den blichen Formalitten nun ein paar Bemerkungen zu FEDIT: Der Name FEDIT steht eigentlich fr File EDITor. Das Programm wurde ursprnglich geschrieben, um beliebige Files ansehen und bearbeiten zu knnen. Weil es so nahe lag, ist auerdem ein Memory Editor daraus geworden. Oft sind Daten- und Filestrukturen von Programmen nicht dokumentiert, was der Schaffung vermittelnder Programme nicht gerade frderlich ist. Die hohe Versionsnummer von FEDIT (6.2) dokumentiert, da ich dem Editor jeweils die Eigenschaften hinzugefgt habe, die zur Analyse ntzlich waren. Jedenfalls war die Erstellung von FEDIT nicht Selbstzweck. Die vorliegende Version von FEDIT selbst wurde mithilfe von FEDIT aus zwei getrennt bersetzten Assemblerprogrammen zusammengesetzt (Tatschlich: Das Hauptprogramm wurde in einen reservierten Bereich des Laderprogrammes eingesetzt). - Visuelle Ganzschirm- Bearbeitung von Files und Speicher - Anzahl gleichzeitig im Speicher gehaltener Files und Puffer beliebig - 7 Marker ber einfachen Tastendruck zu erreichen - Block- Markierung und Transfer auch zwischen Files sowie zwischen Files und Speicher RAM/ROM - Schnelles Suchen und Ersetzen (auch unter nderung der Filelnge) - Vergleich von Code- Passagen - Anzeige und Eingabe von Byte-, Word- und Long- Inhalten der aktuellen Position in Dezimal oder Hex - Offset- Funktionen - Verschiedene GEMDOS- Befehle aus dem MEMORY- Menu zugnglich: Aufruf/nur Laden/nur Starten anderer Programme, Directory, Freigabe von Speicherblcken, Speicherblockgre verndern - Residentes Installieren: - FEDIT wird aufgerufen nach einem Reset oder Systemabsturz, bevor der Speicher gelscht wird; Man kann sich seine Daten wieder rekonstruieren (Hierzu Dank an Martin Wielebinski fr seinen informativen Artikel in der C't 6/89) - FEDIT merkt, wenn es im Rahmen des Bootens (Autoordner) gestartet wurde, und installiert sich dann automatisch resident - Das bekannte Problem resetresidenter (Autoordner-) Programme mit dem Lschen des Speichers bis $ffff vor deren Aufruf wird umgangen, indem FEDIT seinen Bildschirmspeicher VOR dem eigenen Programmtext positioniert (damit ist der Programmtext von FEDIT auf jeden Fall aus der Gefahrenzone heraus) - FEDIT ist in (fast) jeder Situation ber die Shifttasten aufrufbar; Man kann sich die Programme im Speicher, deren Stack und Daten ansehen, Teile davon abspeichern oder verndern und (mit Vorbehalt) andere Programme aufrufen, das unterbrochene Programm dann seine Arbeit fortsetzen lassen. - Die Unterbrechung von Programmen kann per Option auch selektiv erfolgen, d.h. FEDIT wird nur gestartet, wenn sich die Abarbeitung beim Interrrupt in einem bestimmten Speicherbereich befand (Line A- Routine markieren und schauen, ob ein bestimmtes Programm diese Routine (regelmig) benutzt...) - Die nichtdokumentierten und TOS- versionsabhngigen Systemvariablen, die von dem Interrupt- Teil von FEDIT verwendet werden, holt FEDIT sich entsprechend dem TOS- Datum aus einer Tabelle, in der noch freie Eintrge sind; Fr ROMTOS vom 6.02.1986, Blitter- ROMTOS vom 22.04.1987 und RAMTOS vom 18.05.1988 sind die notwendigen Adressen bereits eingetragen - FEDIT arbeitet auch mit Farbmonitor; Palette und Auflsung werden fr die Laufzeit des Programms auf eigene Werte umgestellt, um immer die gewohnte Umgebung zu bieten - Anzeigen von Files oder Speicher als Bild einstellbarer Breite in verschiedenen Auflsungen mit der Palette, mit der FEDIT aufgerufen wurde; Zum Lokalisieren von Bildern, Bildausschnitten und Icons im Speicher oder zum schnellen berblick ber die Speicherbelegung durch halbseitenweises Scrolling - Die wichtigsten und informativsten 'Systemvariablen' von FEDIT sind am Ende des Programmtextes angeordnet und mit Kurzwrtern markiert, die (mit FEDIT) leicht aufzufinden sind - FEDIT ist KEIN Texteditor (man munkelt, dafr gbe es komfortablere Programme; obwohl man mit FEDIT natrlich auch Texte erstellen knnte, und schlielich knnte man damit auch lauffhige Maschinenprogramme schreiben, wenn man mit den Bits auf gutem Fue steht) - FEDIT ist kein GEM- Programm. (Falls es das wre, wre es nicht so leicht mglich, GEM- Programme folgenlos zu unterbrechen.) Je nach Geschmack ist das sicherlich fr die ein Manko, die schon verlernt haben, wie man Tasstatur berhaupt schreibt - FEDIT ist nicht kindersicher. Wenn man den Hauptspeicher (am besten die 'zero page') als Block markiert und per Tastendruck diesen Block lschen lt, mu man schon wissen, was man tut... - Im Interesse der Vermeidung gewaltiger Systemabstrze werden beim Aktivieren ber Shifttasten keine GEMDOS- Funktionen bei ihrer wichtigen Arbeit unterbrochen. (FEDIT selbst verwendet GEMDOS- Funktionen; Im Gegensatz zum BIOS, dessen Savebereich noch recht einfach zu sichern ist, ist GEMDOS durch die Vielzahl fester Speicherstellen und Puffer, die es benutzt, hochgradig nicht- reentrant) Man kommt also gerade aus besonders einfachen Programmen (FEDIT selbst ist so eines), die die meiste Zeit ihres Lebens mit GEMDOS- Zeicheneingabe- Funktionen verbringen, nicht ohne weiteres in das residente FEDIT. - Die selbstverstndliche zweite Einschrnkung ist, da FEDIT Anfragen auf Aufruf zurckweist, solange gerade ein Floppyzugriff stattfindet (flock). 3 Konventionen und allgemeine Eigenschaften - Zahlen und Filenamen werden in FEDIT mithilfe einer einfachen Zeileneingabefunktion eingegeben. Darin kann man mit Backspace das jeweils zuletzt eingegebene Zeichen lschen, mit Escape lscht man die ganze Eingabezeile. Weitere Editiermglichkeiten stehen nicht zur Verfgung. - Allgemein steht eine Leereingabe dabei fr 'Operation nicht durchfhren'. - Zahlen knnen in dezimal oder, durch Voranstellen eines '$'- Zeichens, in Hexadezimal eingegeben werden. Negative Zahlen durch setzen eines '-'- Zeichens vor die ganze (Hex oder Dezimal-) Zahl. - Alle Markierungen von Positionen sind Speicher- absolut. Das heit, da man zum Beispiel in einem Filepuffer Blockmarkierungen oder Marker setzen kann und im Memory- Modus dann an die Stelle im Speicher gelangt, an der der Filepuffer steht, wenn man auf diese Markierung positioniert. Weder Marker noch Block- Markierungen beschrnken sich also auf einen bestimmten Puffer (Wenn man will, kann man auch in einem File Blockanfang und in einem anderen Blockende markieren, und hat damit den ganzen Speicher zwischen den beiden Filepuffern mitmarkiert). - Filenamen mssen immer vollstndig gegeben werden (Zum Beispiel beim Aufruf von Programmen: Endung nicht vergessen !) - Beim Abspeichern auf Diskette erscheint, wenn das angegebene File bereits existiert, eine Sicherheitsabfrage, die es ermglicht, das bestehende File zu berschreiben, das zu schreibende an das bestehende anzuhngen oder das Abspeichern abzubrechen. 4 FEDIT als File Editor 4.1 Kommandozeilenformat Wenn FEDIT aus einer Shell aufgerufen oder als 'Tos Takes Parameter' angemeldet wird, kann der Name eines zu ladenden Files als Kommandozeilenparameter angegeben werden. Der Aufruf aus einer Shell hat die Form FEDIT filename zusatzlnge oder FEDIT +pufferlnge wobei filename der vollstndige Pfad und Filename des zu ladenden Files ist und zusatzlnge die Anzahl von Bytes, um die der Speicher (Puffer), in den das File geladen wird, lnger sein soll als das File. Dabei ist zu beachten, da die Filelnge nur im Rahmen der Lnge des Puffers gendert werden kann. Wird nur ein '+'- Zeichen, gefolgt von einer Zahl, angegeben, so erhlt man einen leeren Puffer, dessen Filelnge zunchst gleich der Pufferlnge ist. Wenn man FEDIT ohne Argumente aufruft, so wird man nach einer Eingabezeile gefragt (wenn man die Zusatzlnge nicht in einer Zeile mit angibt, wird danach getrennt gefragt). Der Eingangsschirm, der auf diese Weise die Form des ersten anzulegenden Filepuffers erfragt, sieht etwas mager aus. Das liegt daran, da FEDIT seine Puffer als verkettete Struktur organisiert und das Hauptmenu erst dann anbieten kann, wenn mindestens ein Puffer vorhanden ist. Will man FEDIT also 'nur' als Memory- Editor verwenden, so wird man FEDIT zum Beispiel mit '+100' als Eingabezeile versehen. (Da man als Lnge selten '1' whlen wird, liegt daran, da man einen leeren Puffer gut fr die Eingabe von Find- und Replace- Strings gebrauchen kann) 4.2 Das Konzept der 'Filepuffer' Filepuffer sind schlicht mit den Betriebssystemfunktionen reservierte, zusammenhngende Regionen im Speicher des Rechners. Das Programm FEDIT selbst gibt direkt nach dem Programmstart allen Speicherplatz, den es nicht selbst bentigt, wieder an das Betriebssystem zurck. (Im Memory- Menu gibt es eine Funktion, die die Lnge des grten zusammenhngenden Speicherblocks anzeigt, der noch verfgbar ist.) Mit den Funktionen 'Leeren Filepuffer schaffen', 'Filepuffer freigeben' und 'Nchstes File laden' kann man diese Puffer behandeln. Ein Filepuffer hat eine absolute Lnge ('End of Buffer') und eine Filelnge ('End of File'), die hchstens so gro sein kann wie die Pufferlnge. Ferner gehrt zu jedem Puffer eine eigene aktuelle Cursorposition innerhalb des Files und ein Vernderungsstatus, der angibt, ob der Benutzer bereits einer nderung des Inhalts und/oder der Lnge des Files zugestimmt hat. (Bei leeren Puffern oder im Memory- Modus wird diese Zustimmung als bereits gegeben angenommen.) Mit 'EOF verschieben auf...' (EOF steht fr End Of File) kann man die Lnge des Files auf bestimmte Werte innerhalb des Filepuffers einstellen. Es handelt sich dabei nur um eine 'weiche Markierung', der Inhalt des Puffers hinter dieser Marke ist nur unzugnglich, aber nicht gelscht. Wenn man mit 'File abspeichern' das File auf Diskette schreibt, wird nur der Puffer bis zur 'End of File'- Position geschrieben. Die (theoretisch beliebig vielen) Puffer bilden eine verkettete Liste, in der man sich mit 'Nchsten Filepuffer' und 'Vorigen Filepuffer' fortbewegen kann. Neue Puffer werden am Ende der bisherigen Kette angehngt. (Die Kette bildet nur eine logische Verknpfung der einzelnen Puffer; In welcher Reihenfolge und wo berhaupt sie im Speicher stehen, ist Sache des GEMDOS. Wenn man etwa drei Puffer hat und den mittleren freigibt, um dann wieder einen Puffer gleicher Gre zu schaffen, wird dieser Puffer in der Regel an derselben Speicherposition stehen wie der gelschte; Aber in der Kette hngt er nun hintenan) FEDIT merkt sich nicht die Namen der Files, die in die jeweiligen Puffer geladen wurden. Man mu den Filenamen beim Abspeichern nochmals eintippen. Dafr hat man so grere Sicherheit, da man nicht ungewollt eine wertvolle Sourcedatei berschreibt. 4.3 Fileanzeige und Eingabemglichkeiten Zum Programmbeginn und wenn man im Menu die Eingabetaste bettigt, befindet man sich im Editiermodus des aktuellen Files. Dabei wird das aktuelle File durchgngig mit 80 Zeichen pro Zeile angezeigt. Eine Zeile fngt immer an einer durch 80 teilbaren Fileposition an. FEDIT versucht, die Zeile, in der der Cursor steht, auf dem Bildschirm zu zentrieren, wenn der Schirm neu aufgebaut wird. Der Cursor kann mithilfe der Cursortasten oder mit der Maus bewegt werden. (Im Menu kann man auch eine gewnschte Position als Zahl angeben. Die Position stimmt mit den gngigen Filepositionsangaben berein, wie sie etwa von SEEK verlangt werden.) Bettigen der Tastatur fhrt in der Regel dazu, da die entsprechenden Zeichen unter Weiterrcken des Cursors in das File geschrieben werden. ('File' steht hier fr das 'File' im Speicher, so es denn so etwas gibt, nicht fr ein File auf Diskette.) Es kann sein, da man erst die Besttigung zur Vernderung des Files geben mu, bevor der Tastendruck tatschlich geschrieben wird. Dazu achte man auf den unteren Rand des Schirms ! Die unterste Zeile des Bildschirms enthlt eine Infozeile, in der die aktuelle Cursorposition sowie der Inhalt des Bytes unter dem Cursor im gewhlten Zahlensystem angezeigt werden. - Mit der HELP- Taste erhlt man eine kurzgefate Beschreibung der Tasten, denen bestimmte Funktionen zufallen. - Mit der Escape- Taste gelangt man zum Menu. - Halbseitenweise vor/zurck kommt man mit Cursor down/up - Den Byteinhalt der aktuellen Position kann man mit Cursor left/right herunter/heraufzhlen - Das Zeichen an der aktuellen Position unter Aufschieben des Rests lschen (nderung der Filelnge) mit Delete (Die Taste Backspace hat keine Funktion) - Einfgen eines Null- Zeichens unter Wegrcken des Rests (nderung der Filelnge) mit Insert - Cursor auf Fileanfang/Ende setzen mit Home/Home (wer keine - Taste an seinem Rechner hat, verwende einfach die Shifttaste) - Anzeigen des Positionsinhalts (das ist der Inhalt der entsprechenden Anzahl von Speicherstellen ab der aktuellen Position) Byte/Word/Long (1 Byte, 2 Bytes oder 4 Bytes entsprechend der blichen Zahlendarstellung des Prozessors zusammengefat) mit den Funktionstasten F1/F2/F3 - Anzeigen des Positionsinhalts Byte/Word/Long als negative Zahl mit F1/F2/F3 (FEDIT stellt eine Zahl wie $ffff.w nicht automatisch als -1 dar) - Umschalten der Zahlendarstellung zwischen Dezimal und Hexadezimal mit UNDO - Eingeben des Positionsinhalts Byte/Word/Long mit F1/F2/F3 4.4 Marker und Offset- Funktionen Die Funktionstasten F4 bis F10 sind den sieben Positionsmerkern von FEDIT zugeordnet. Mit F4-F10 wird die aktuelle Position im Speicher in dem entsprechenden Merker abgelegt; Mit F4-F10 wird versucht, den Cursor auf die Speicherposition zu setzen, die von dem jeweiligen Merker angegeben wird. Das ist kein Problem, wenn die gespeicherte Position im Bereich des aktuellen Filepuffers liegt; Ansonsten kommt man an das Ende des Files, welches der gespeicherten Position am nchsten liegt. (In allen Merkern steht bei Programmbeginn der Wert 0, der der absoluten Speicheradresse 0 entspricht.) Natrlich kommt man, wenn man einen Merker im selben File abfragt, in dem man ihn gesetzt hat, wieder an dieselbe Fileposition zurck, an der man ihn gesetzt hat; Fr das Verstndnis der Offset- Funktionen sollte man aber schon wissen, da eigentlich nicht die Fileposition gespeichert wird, sondern die Position im ganzen Speicher (nmlich die Speicheradresse). Wenn man also einen Marker in einem anderen File abfragt als setzt, so kommt man nicht auf die gleiche Fileposition des jetzigen Files. Nun zu den ominsen Offset- Funktionen: In vielen Nicht- Text- Dateien kommen Adressen im weitesten Sinne vor. Das sind Zahlen in Maschinenform (also Byte-, Word- oder Longwerte), die auf bestimmte Positionen in der Datei (oder im Speicher) zeigen. Im Prinzip ist jede Adresse relativ, da sie die Anzahl Speicherstellen angibt, um die man von einer bestimmten Position aus weitergehen mu, um die gewnschte Position zu erreichen. Bei den sogenannten 'absoluten' Adressen ist die Ursprungsposition der Anfang des vorhandenen Speichers. Ein Beispiel fr eine im engeren Sinne relative Adresse ist etwa die Textsegmentlnge eines Programmes, die in dessen 28 Bytes langen Header ('Vorspann') ab Position 2 steht (ein Langwort). Da das Textsegment bei Position 28 beginnt und das Datensegment sich direkt anschliet, gibt die Textsegmentlnge praktisch die Adresse des Datensegments an relativ zur Position 28. Was wrde man nun tun, um an den Anfang des Datensegments zu gelangen ? Man knnte sich mit dem Cursor auf Position 2 begeben und (mit F3) den Langwort- Inhalt, also die Textsegmentlnge, anzeigen lassen. Dann wrde man 28 addieren und ber das Menu den Cursor auf die errechnete Stelle setzen. Da hnliche Probleme (bei mir) hufiger auftreten, bietet FEDIT eine einfachere Mglichkeit: Man gehe nach Position 28 und speichere diese Position in einen Merker; Danach gehe man auf die Position 2, die ja die Angabe darber enthlt, wie viele Zeichen man von Position 28 weiterrcken mu, um die gewnschte Position zu erreichen, und drcke zusammen mit der Taste des Merkers, auf den man die Position 28 gelegt hat. FEDIT liest den Inhalt der aktuellen Position, addiert den Merker und setzt den Cursor an die resultierende Stelle, in unserem Falle also direkt auf das erste Byte des Datensegments. Wenn man nun diese Position in einen Merker speichert und auf die Fileposition 6 geht, die die Lnge des Datensegments enthlt, sodann zusammen mit dem Merker drckt, in den man den Anfang des Datensegments gespeichert hat, gelangt man auf das erste Byte des sogenannten Relocation Tables. Auch die sollte man in einen Merker bernehmen, aber nur, damit man schneller zurckkommt. Das erste Langwort des Relocation Tables enthlt die Position der ersten Speicherstelle des Programmes, die beim Laden desselben reloziert werden mu; Relozieren heit hier das Ersetzen von Adressen, die relativ zum Programmbeginn, also relativ zu unserem Marker 28, angegeben sind, durch die Adressen relativ zum Speicherbeginn, also die absoluten Adressen. Auch diese Position der ersten zu relozierenden Programmstelle ist relativ zum Marker 28 gemeint. Man kann also diese Speicherstelle mit Marker 28 anspringen. (Wenn man nun gleich wieder Marker 28 drcken wurde, gelnge man zu der Position, die das Programm an dieser Stelle ansprechen will. Das kann zum Beispiel der Anfang einer auszugebenden Meldung sein) Auch diese Position sollte man sich merken, denn die nchsten zu relozierenden Stellen erreichen wir, indem wir von dieser Position aus weiterrcken. Man gehe an die Relokationstabelle zurck und 4 Bytes weiter. Bislang sind wir davon ausgegangen, da FEDIT die aktuelle Speicherstelle mit dem Offset als Langwort liest. Mit Help kann man dieses Verhalten ndern. Wir schalten auf 'Byte pos. Modus', was heien soll, da Offsets nun als Bytes statt als Langworte behandelt werden. Die nunmehr aktuelle Position stellt einen solchen Offset in Bytegre dar, und zwar den Abstand von der letzten Relokationsposition zur nchsten. Man gelangt also durch Drcken von zusammen mit dem Merker der letzten Relokationsposition zur nchsten. (nebenbei: Der Byteinhalt 1 steht fr '254 Bytes weiterrcken und nicht relozieren', eine Null kennzeichnet das Ende der Tabelle.) Es gibt auch eine Funktion, die einem das Ausrechnen und Eintragen von Offsets erspart, die man selbst schreiben mchte: Mit F5-F10 wird die Differenz zwischen dem Merker der gedrckten Funktionstaste und dem der vorigen in der eingestellten Lnge (Byte, Word oder Long) in die aktuelle Position geschrieben. Wenn man also zum Beispiel die Textsegmentlnge eines Programmes eintragen wollte, wrde man etwa die Position 28 auf F4 speichern und den Anfang des Datensegments auf F5. Dann wrde man Position 2 aufsuchen und dort F5 drcken, nachdem man sich berzeugt hat, da der 'Pos. Modus' auf 'Long' gestellt ist, damit die Differenz als Langwort an die aktuelle Position geschrieben wird. Auf die gleiche Weise kann man auch angesprochene Adressen in einem Programm ndern. 4.5 Blockmarkierung und Blocktransfer Um Abschnitte innerhalb von Files oder im Speicher zu markieren, kann man mit UNDO und UNDO oder mit der linken und rechten Maustaste Anfang und Ende des markierten Blocks angeben. Die Markierung erfolgt inklusive, das heit die Zeichen, auf denen man stand, als man Blockanfang und Blockende markierte, gehren beide mit zum Block. Mit Cursor up/down wird die aktuelle Position auf die Blockanfang/ Blockendemarke gesetzt. Im Menu kann man zunchst drei Dinge auswhlen, die mit dem markierten Block geschehen sollen: Man kann den Blockinhalt an die aktuelle Position im aktuellen File kopieren lassen (wobei vllig egal ist, ob der markierte Block sich im aktuellen File selbst, in einem anderen File oder irgendwo im Speicher befindet), man kann den Inhalt des markierten Blocks als Datei abspeichern oder den Inhalt des markierten Blocks lschen ('Zero Block', das heit, da der Blockbereich mit Nullen aufgefllt wird). Beispielsweise ist es, wenn man lngere Abschnitte aus einem Text herausnehmen will, sehr mhsam, das mit der Delete- Taste zu tun; Stattdessen wird man die Stelle, an der der zu erhaltende Text weitergeht, als Blockanfang und das Fileende als Blockende markieren, diesen Block dorthin kopieren, wo das herauszunehmende Stck beginnt und dann im Menu die Filelnge auf den neuen Wert ndern. 4.6 Suchen und Ersetzen; Verknpfungsmodi FEDIT verfgt ber eine Funktion, mit der man im Filepuffer oder im Speicher nach dem Vorkommen einer beliebigen Folge von Zeichen suchen lassen kann. Um fr die Eingabe solcher Zeichenfolgen die gesamten bestehenden Editierfunktionen zur Verfgung zu haben, wird einfach der aktuelle Blockinhalt als zu suchende Zeichenkette aufgefat. Wenn man also in einem File nach der Zeichenfolge 'FEDIT' suchen lassen will, wird man sich einen Filepuffer schaffen (oder einen bestehenden Puffer verwenden, auf dessen Inhalt es nicht ankommt) und die Zeichenfolge 'FEDIT' irgendwo in diesen Filepuffer schreiben; Dann markiert man das 'F' als Blockanfang und das 'T' als Blockende, geht in den Puffer zurck, in dem man suchen lassen will (oder in den Memory- Modus), positioniert den Cursor auf die Stelle, an der die Suche beginnen soll, und whlt 'Blockinhalt suchen' im Menu an. Wird der Suchtext irgendwo zwischen der Position, die der aktuellen Position folgt, und dem aktuellen Fileende gefunden, so wird der Cursor auf diese Stelle positioniert. Um das nchste Vorkommen zu suchen, braucht man also nur wieder 'Blockinhalt suchen' anzuwhlen. Die Suche (gilt nicht fr 'Suchen und Ersetzen') wird bei Druck einer beliebigen Taste abgebrochen (Bei allen Tasten jedenfalls, die einen Eintrag im Tastaturpuffer hinterlassen). Das ist besonders interessant im Memory- Modus; Files sind selten so gro, da man lange auf die Meldung 'Nicht gefunden' warten mte. (Wen's interessiert: Um die sehr kompakte Suchschleife nicht mit der Tastaturabfrage zu belasten, wird zur Unterbrechung der Tastaturinterrupt umgeleitet) Im Filemodus gibt es auch die Mglichkeit, smtliche Zeichenketten, die zwischen der aktuellen Position und dem aktuellen Fileende mit dem Inhalt des markierten Blocks bereinstimmen, durch eine andere Zeichenkette zu ersetzen, die auch eine andere Lnge haben kann. Diese Zeichenfolge, die die im Block markierte Zeichenfolge ersetzen soll, wird durch den 'Replaceblock' markiert. Der Replaceblock beginnt direkt hinter dem markierten Block, das Ende kann man mit UNDO markieren. Beispiel: Man hat ein Textfile, in dem man alle 'ae' durch '' ersetzen lassen will. In einen freien Puffer schreibe man 'ae', markiere das 'a' als Blockanfang, das 'e' als Blockende (das heit, nach 'ae' soll gesucht werden) und das '' als Replaceblockende (das heit, fr jeden gefundenen Ausdruck wird bei 'Suchen und ersetzen' ein '' eingesetzt). Dann gehe man zu dem Filepuffer, in dem die Ersetzung durchgefhrt werden soll, und whle 'Suchen und ersetzen' aus dem Menu. Fr die umgekehrte Ersetzung, also alle '' gegen 'ae', mte man entsprechend 'ae' schreiben, das '' sowohl als Blockanfang wie als Blockende sowie das 'e' als Replaceblockende markieren. Wollte man alle 'P' aus einem File herauslschen, mte man ein 'P' als Blockanfang, Blockende UND als Replaceblockende markieren. Natrlich braucht weder die gesuchte noch die ersetzte Zeichenfolge aus Textzeichen zu bestehen. Der Inhalt ist vllig beliebig. Wenn man Zeichenketten durch Zeichenketten anderer Lnge ersetzt, ndert sich naturgem die Lnge des Files; Ist die eingesetzte Zeichenkette lnger als die ersetzte, mu der Filepuffer mindestens so gro sein, da er das vergrerte File fassen kann. (Sonst gibt es eine Fehlermeldung, und KEINE der Ersetzungen wird durchgefhrt.) Die Funktionen des Suchens und Ersetzens knnen tatschlich in ihrer Wirkungsweise noch modifiziert werden. Die Suche nach einer Zeichenkette funktioniert so, da zunchst der Inhalt der aktuellen Suchposition im File mit dem ersten Byte des Suchausdrucks (hier also des Blockinhalts) verglichen wird; Wenn der Vergleich hier erfolgreich ist, werden die nchsten beiden Bytes verglichen usw.; Waren alle Vergleiche bis zum Ende des Suchausdrucks erfolgreich, ist die Zeichenkette gefunden. In FEDIT erfolgt der Vergleich zweier Bytes mithilfe logischer Funktionen; Der Vergleich ist erfolgreich, wenn die logische Verknpfung der Bytes 0 ergibt. Die Voreinstellung fr das normale Suchen ist die Verwendung der Verknpfung 'EOR', Exklusiv- Oder. Das Ersetzen kann man ebenfalls ber logische Verknpfung der Zielzeichenkette mit der Replace- Zeichenkette erreichen. Voreingestellt ist die strikte Ersetzung. Mit 'Verknpfung setzen' aus dem Menu kann man auswhlen, welche Verknpfungen dem Suchen und Ersetzen (respektive) zugrundeliegen sollen. Bei dieser Auswahl kann man mit den Cursortasten die gewnschte Verknpfung invers dastellen lassen, mit die Auswahl beenden. Die mglichen Verknpfungen fr das Suchen sind: EOR, AND, NEOR, NAND, less, greater Und die mglichen Verknpfungen fr das Ersetzen: Replace, AND, OR, EOR, NOT Dest. Dabei bedeuten EOR logisches Exklusiv- Oder, OR logisches Oder, AND logisches Und; NEOR und NAND sind nicht etwa die bitweise inversen Funktionen, sondern EOR und AND, wobei aber der Vergleich erfolgreich ist, wenn die Verknpfung fr alle Zeichen NICHT Null ergibt. less und greater sind dann erfolgreich, wenn alle Bytes der Zielzeichenkette kleiner bzw. grer sind als die entsprechenden Bytes im Suchausdruck. Replace heit strikte Ersetzung der Zielzeichenkette; NOT Dest. (NOT Destination, Zielzeichenkette logisch negieren) verneint so viele Bytes der Zielzeichenkette, wie im Replaceblock enthalten sind; Der konkrete Inhalt des Replaceblocks wird dabei nicht verwendet. In aller Regel wird man die Nicht- Standard- Verknpfungen nur auf einzelne Zeichen anwenden; Die Mglichkeit, ganze Zeichenketten zu behandeln, sowie die Mglichkeit, die ersetzte Lnge von der Suchlnge unabhngig zu bestimmen, sind eigentlich nur Abfallprodukte der Standardfunktion. Man meine also nicht, diesen Mglichkeiten mten hufige Anwendungen entsprechen. Als ein kleines Beispiel fr die Anwendung der Verknpfungsmodi mag das Problem dienen, bei allen Bytes mit gesetztem Bit 7 dieses Bit zu lschen. Dazu gibt es mehrere Mglichkeiten; Zum Beispiel schreibe man in einen freien Puffer in zwei aufeinanderfolgende Bytes jeweils den Wert 128 ($80), der einem gesetzten 7. Bit entspricht; Das erste Byte markiere man als Blockanfang und Blockende, das zweite als Replaceblockende. Dann setze man, wenn noch nicht geschehen, den Verknpfungsmodus auf NAND und EOR, gehe zu dem gewnschten Filepuffer und lasse 'Suchen und Ersetzen'. Es werden nun alle Bytes gesucht, bei denen Byte AND $80 NICHT 0 ergibt, bei denen also Bit 7 gesetzt ist, und durch Byte EOR $80 ersetzt, was ein Umklappen des Bit 7 zur Folge hat. Natrlich knnte man ebensogut als Replace- Byte den Wert 127 ($7f) nehmen, bei dem alle Bits bis auf Bit 7 gesetzt sind, und als Replace- Modus AND nehmen. Und schlielich braucht man bei Verwendung letzterer Verknpfung zum Ersetzen auch beim Suchen nicht so whlerisch zu sein, man knnte das Suchbyte zu 0 setzen und als Find- Verknpfung NEOR whlen, wobei dann Byte AND $7f mit jedem Byte durchgefhrt wird, das nicht gleich 0 ist. Vielleicht sollte erwhnt werden, da die Funktionen zum Suchen und Ersetzen extrem schnell ablaufen; Die Suchgeschwindigkeit betrgt ca. 80kB pro Sekunde. Das Ersetzen unter Ausdehnung des Files dauert etwa doppelt so lange wie das Ersetzen unter Verkleinerung oder Beibehaltung der Gre, da hierbei das File zweimal durchsucht wird (Einmal davon, um die Anzahl der Ersetzungen festzustellen, und einmal beginnend von hinten zum Ersetzen). 4.7 Ungleichheit suchen Wenn man herausfinden mchte, ob Passagen in Files identisch sind, knnte man natrlich eine der Passagen als Block markieren und vor der anderen mit der Suche danach beginnen. Sind die Passagen identisch, wird FEDIT die Passage als gefunden melden. Sind sie aber nicht identisch, wird man einfach nur ein 'nicht gefunden' ernten, ohne zu wissen, an welcher Stelle sich die beiden nun unterscheiden. Dafr also gibt es die Funktion 'Ungleichheit suchen'; sie vergleicht den Code ab der aktuellen Position mit dem Inhalt des markierten Blockes und stoppt am ersten Byte, das unterschiedlich ist. Also: Man will etwa den Inhalt zweier Files vergleichen. Dazu wird man das ganze erste File als Block markieren (Home, Undo, Home, Undo), sich an den Anfang des zweiten setzen und 'Ungleichheit suchen' im Menu whlen. Fr diese Funktion ist es vllig unwesentlich, wo im Speicher sich der Block befindet, mit dem verglichen wird, und wo im Speicher die aktuelle Position liegt, an der der Vergleich beginnt. Man kann etwa Teile des ROMs mit Teilen eines Files vergleichen. Die Funktion steht im File- und im Memory- Modus gleichermaen zur Verfgung. 4.8 Pfad setzen und Directory Mit der Menu- Funktion 'Zugriffspfad setzen' kann man den GEMDOS- Pfad verndern; Es wird einfach die GEMDOS- Funktion DSETPATH (CHDIR oder CD) aufgerufen. Alle Filenamen zum Laden oder Abspeichern beziehen sich auf diesen aktuellen Pfad, falls nicht der Filename selbst mit vorangestelltem Pfad angegeben wird. Es ist brigens eine Eigenart von FEDIT, ein angesprochenes Laufwerk zum aktuellen Laufwerk zu erklren. Mit der Menu- Funktion 'Directory anzeigen' wird ein einfaches Verzeichnis der Namen von Files und Unterverzeichnissen im aktuellen Directory angezeigt. 5 Der Memory- Modus 5.1 Unterschiede zum File- Modus Im Memory- Modus wird der gesamte adressierbare Speicher des Rechners behandelt wie ein 'File' im File- Modus. Einige Filefunktionen sowie 'Suchen und Ersetzen' stehen nicht zur Verfgung, dafr Funktionen zur Speicherverwaltung und zum Nachladen von Programmen. Beim Editieren funktioniert Home nicht, da man in den seltensten Fllen an das Ende dieses 'Files' wollen wird, das bei $ffffff liegt. Innerhalb des adressierbaren Speicherbereiches liegen zwei Bereiche, die von FEDIT ausmaskiert werden: Der Bereich von $400000 bis $f9ffff, den die MMU nicht adressieren mchte (Bus- Error) und der Bereich von $ff0000 bis $ffffff, wo die Peripheriebausteine liegen, die man mit FEDIT sowieso nicht korrekt mit Daten beschicken knnte. Diese geschtzten Bereiche werden angezeigt, als ob sie nur Null- Werte enthielten; Ansonsten kann man hier nichts schreiben und auch nichts suchen lassen. Dieser Schutz ist nur gedacht, um einwandfreies Arbeiten auch in den Regionen zu ermglichen, die an geschtzte Gebiete angrenzen (Da FEDIT dann immer auch ein Stck des geschtzten Gebietes mit anzeigen wird) und erhebt keinen Anspruch auf Vollstndigkeit (Wenn man etwa ein Langwort so auf das Ende eines ungeschtzten Breiches schreibt, da ein Byte bereits auf einen geschtzten Bereich fllt, wird man einen Bus- Error ernten; Lesen ist immer mglich). Der genannte Schutz existiert auch im Image- Modus, nicht aber bei der Unterschiedssuche; Zugriffe auf den Blockbereich werden ebenfalls nicht kontrolliert. (Teile der geschtzten Bereiche als Block zu markieren und in geschtzten Bereichen (die sowieso vllig leer aussehen) Unterschiede zu suchen, wird sich wohl vermeiden lassen) Die Bereiche, die von FEDIT ausmaskiert werden, sind als 'Systemvariablen' gegeben und somit bei Bedarf zu ndern; Siehe dazu das entsprechende Kapitel. Die Speicherbereiche, die weder RAM noch ROM enthalten, liefern entweder Daten, die bei jedem Lesen verschieden sind, oder $ff, aber keinen Fehler beim Lesen oder Schreiben. FEDIT schreibt ein gerade eingegebenes Zeichen auch auf den Bildschirm, nachdem es an den Speicher geschickt wurde; Was aber nicht heit, da der Speicher dieses Zeichen auch angenommen haben mu. Zur Suchfunktion ist noch zu bemerken, da die Suche jeweils an der aktuellen Position beginnt und abgebrochen wird, wenn die Grenze zu einem maskierten Gebiet erreicht wird. 5.2 Die GEMDOS- Funktionen Im Memory- Modus stellt FEDIT einige GEMDOS- Funktionen zur Verfgung, die sich auf die Speicherverwaltung und das Nachladen von Programmen beziehen. - Mit 'Freier Speicher' bekommt man die Lnge des grten freien GEMDOS- Speicherblocks zurck, wie er von der Funktion Malloc(-1) zurckgegeben wird. - 'Mfree(pos)' gibt den Speicherblock an GEMDOS zurck, der an der aktuellen Position beginnt. - 'Mshrink(pos)' versucht die Gre des Speicherblocks, der an der aktuellen Position beginnt, auf einen einzugebenden Wert zu ndern. - 'Programm laden und starten' fhrt mit der GEMDOS- Funktion Pexec, Modus 0, ein Programm aus. Der Name des Programmfiles mu vollstndig sein, Argumente knnen in der blichen Weise hinter dem Programmnamen angegeben werden. Beispiel: FEDIT.PRG TEST.FIL 2000 - 'Programm laden' fhrt in derselben Weise Pexec im Modus 3 aus, das heit, das Programm wird nur in den Speicher geladen, aber nicht gestartet. Nach dem Laden ist in blicher GEMDOS- Manier der gesamte freie Speicher dem soeben geladenen Programm zugeteilt. FEDIT setzt die aktuelle Position auf die Basepage des geladenen Programms und geht in den Edit- Modus. Diese Basepage- Adresse ist zugleich die Adresse, die GEMDOS wieder bentigt, um das Programm zu starten, und die Adresse des GEMDOS- Speicherblocks, der zu dem Programm gehrt. Man kann also mit Mfree direkt den Speicherblock wieder freigeben und damit das Laden 'ungeschehen' machen, oder mit Mshrink den vom Programm belegten Speicherblock zurechtstutzen. - 'Programm(pos) starten' fhrt Pexec im Modus 4 aus, wobei Pexec die aktuelle Position als Basepage- Adresse des zu startenden Programmes bergeben wird, so wie bereits von 'Programm laden' vorbereitet. Vielleicht sollte man hier erwhnen, da im Gegensatz zu Pexec Modus 0 bei Pexec Modus 4 der vom Programm verwendete Speicher nicht automatisch freigegeben wird, nachdem das Programm beendet ist. Man mu also mit Mfree diesen Speicherbereich per Hand wieder freigeben. Einige Programme lassen sich fehlerfrei auch mehrmals hintereinander mit Pexec Modus 4 starten. (FEDIT selbst gehrt sicherlich NICHT zu diesen Programmen !) Die Funktionen zum Laden von Programmen in FEDIT dienen hauptschlich Testzwecken; Man kann damit Programme laden, in ihrer Ausfhrungs- Form untersuchen und sich nach Programmende die nderungen im Speicher, also hauptschlich die produzierten Daten, ansehen. FEDIT ist nicht als 'Shell' gedacht und erhebt keinen Anspruch, als solche besonders anwenderfreundlich zu sein. 6 Der Image- Modus (Speicher zeigen als Bild) Der 'Image- Modus' zeigt das File bzw. den Speicher ab der aktuellen Position als Bild; Das heit, da ab der aktuellen Position die Bytes in der aktuellen Zeilenbreite in das Bildschirm- RAM kopiert werden. Voreingestellt ist, da die Darstellung in der Auflsung und mit der Palette erfolgt, mit denen FEDIT aufgerufen wurde, und mit der Zeilen- breite, die der aktuellen Bildschirmbreite entspricht. Unkomprimierte Doodle-, Degas-, Stad- etc. Bilder lassen sich so direkt anzeigen, da sie genau Bildschirmbreite haben. Im Farbmodus lt sich die Auflsung mit Help umschalten. Nicht in Panik geraten, wenn man einen weien Bildschirm vor sich hat und der Rechner auf keine Taste zu reagieren scheint: Wenn man im Filemodus ein File anschaut, das nur 100 Bytes lang ist, fllt das gerade mal die erste Bildschirmzeile, und wenn der Filepuffer dann noch leer ist, sieht man nichts und bemerkt auch nicht die Zeit, die ntig ist, um den Bildschirm aufzubauen. Mit HELP erlangt man Hilfe und Informationen ber aktuelle Auflsung und Zeilenbreite, mit ESC kommt man zurck zum Menu. Mit Cursor up/down verndert man die aktuelle Position und damit den Anfang der Darstellung byteweise, mit up/down zeilenweise, mit up/down halbseitenweise. 'Halbseitenweise' ist exakt, d.h. mit zweimal down kommt man genau eine Bildschirmweite weiter, im Normalfall also zunchst genau 32000 Bytes. (Das kann dann interessant sein, wenn man einen Bildschirmbereich etwa als Block markieren will: Man markiert den Blockanfang, geht in den Image- Modus, zweimal down, verlt den Image- Modus, geht ein Byte zurck (denn da ist das letzte Byte des Bereichs) und markiert das Blockende.) Zur Zeilen- oder Anzeigebreite ist zu sagen, da der Bildschirm eine Zeilenbreite in Bytes hat, die man den Line A- Variablen entnehmen kann; Die dargestellte Breite lt sich im Image- Modus byteweise mit Cursor left/right, in Schritten von 8 Bytes mit left/right verndern oder mit Undo direkt als Zahlenwert eingeben. Wenn die Anzeigebreite kleiner ist als die verfgbare Bildschirmbreite, wird die neue Bildschirmzeile einfach frher begonnen; ist sie grer, wird die Ausgabe der Zeile mit Ende der Bildschirmzeile beendet. Man hat also im ersteren Fall nur ein entsprechendes Stck des linken Bildrandes mit dem angezeigten Bild belegt, im letzteren Fall fehlt der rechte Rand des Bildes. Die Desktop- Icons etwa lassen sich bei einer Anzeigebreite von 4 Bytes im ROM (6.02.86) bei $fd8286 und im tiefen RAM lokalisieren (Cursor setzen auf Adresse, im Menu Image- Modus whlen). Mit variabler Breite speichert GEM, auch irgendwo im tiefen RAM, den Ausschnitt des Bildschirms, der gerade von einem heruntergeklappten Pull- Down- Menu verdeckt wird (FEDIT resident machen, Menu herunterklappen und nachsehen). Der Image- Modus ist speziell auch gut geeignet, um sich einen berblick ber die Speicherbelegung zu verschaffen, und ber die grobe Struktur in den Daten eines Programmes. 7 FEDIT resident; Aufruf und Einschrnkungen 7.1 Allgemeines FEDIT ist resident installierbar. Zum einen behlt FEDIT beim Resident- machen die bereits bei normalem Aufruf (whrend seiner Aktivitt) bestehende Eigenschaft, sich nach einem RESET noch vor dem Booten (und dem Lschen des Speichers) fr eventuelle Datenrettung etc. zur Verfgung zu stellen; Zum zweiten hngt sich FEDIT in die VBL- Queue ein, um sich durch eine Shifttastenkombination (Voreingestellt: CTRL-ALT-lSHIFT-rSHIFT) aktivieren zu lassen. Dafr reserviert sich FEDIT zunchst einen eigenen 32k- Bildschirmspeicher, dann wird das Programm beendet. FEDIT verwendet fr die Abfragen beim VBL einige Systemvariablen, die in verschiedenen TOS- Versionen unterschiedlich sind; Erst beim Residentmachen werden diese Adressen entsprechend dem TOS- Datum aus der Tabelle entnommen. Wenn fr die verwendete TOS- Version kein Eintrag auffindbar ist, wird das Residentmachen abgebrochen. Im Fall, da man 'Resident' im Memory- Menu gewhlt hat, flackert die entsprechende Meldung nur kurz auf, danach wird der Bildschirm neu aufgebaut. Fr Leute, die zuviel nachdenken, sei bemerkt, da FEDIT immer -ob nun als Programm aufgerufen, durch RESET oder Shifttasten aktiviert- ber denselben Menupunkt beendet wird. FEDIT entscheidet selbst, ob damit 'Proze beenden', 'Rcksprung zur Resident- Aufrufschleife' oder 'Rcksprung zur VBL- Routine, Interrupt wieder aktivieren' gemeint ist. 7.2 RESET- Residenz Nach einem RESET macht FEDIT keine Anstalten, seinen belegten Speicher- bereich von GEMDOS zurckzufordern; FEDIT ist also in diesem Moment nur ein Stck Code im freien Speicher, und auch eventuell vor dem RESET belegte Pufferbereiche sind fr GEMDOS vogelfrei, obwohl sie von FEDIT noch genauso behandelt werden wie vorher. Man kann nach dem RESET neue Puffer schaffen (Wenn FEDIT aus dem Auto- Ordner gestartet wurde, mu man das sogar, weil man sich im Aufrufschirm von FEDIT befindet); Diese neuen Puffer werden nun beim GEMDOS angefordert und normal belegt. Das Problem ist, da die neuen Puffer nun da liegen, wo nach Meinung von GEMDOS unbenutzter Speicher anfngt; Sie berschreiben also einen Teil des Speichers, beginnend im tiefen RAM, und auch den residenten Teil von FEDIT, wenn sie gro genug sind (Einige 10kB Freiraum wird man haben, bis das geschieht). Es sei also der Hinweis erlaubt, da man nur mglichst geringe Puffergren neu belegen sollte. Um Daten zu retten, benutze man die Funktion 'Block abspeichern' und bearbeite man den Block wenn mglich vom hochgefahrenen Rechner aus, anstatt ihn zum jetzigen Zeitpunkt in einen Puffer zu transferieren. (Die Einschrnkungen gelten smtlich NICHT fr Puffer, die bereits vor dem RESET existierten.) Puffer, die nach dem RESET geschaffen wurden, sollte man vor Verlassen von FEDIT wieder freigeben, da sie sonst weiterhin Speicher belegen. (Andere Puffer kann man nun nicht freigeben; Das merkt man, wenn man es versucht) Nach Verlassen von FEDIT bootet der Rechner (nach Ausfhrung evtl. anderer resetresidenter Programme), als ob nichts gewesen wre. Wie gesagt, ist FEDIT danach verschwunden; es mu neu geladen (oder mit gebootet) werden, um wieder zur Verfgung zu stehen. FEDIT ist also NICHT reset- RESISTENT. 7.3 'Unbedingter' Aufruf Nach bettigen der Shifttastenkombination steht FEDIT in der Form zur Verfgung, in der es verlassen wurde. Die alten Puffer kann man nicht freigeben, da der Proze 'FEDIT' ja fr GEMDOS beendet ist. Wohl kann man neue Puffer schaffen, sollte sie aber sicherheitshalber vor Beendigen von FEDIT wieder freigeben, da sie den unterbrochenen Proze stren knnten (es ist zwar unwahrscheinlich, aber vielleicht rechnet das unterbrochene Programm nicht damit, da pltzlich Speicherbereiche belegt sind, die eben noch frei waren, ohne da das Programm selbst zwischenzeitlich irgendwelche Betriebssystemcalls gemacht hat). Schdlich knnte auch sein, wenn man dem unterbrochenen Programm das aktuelle Laufwerk und Directory verstellt. Wie bereits gesagt, wird das Laufwerk bereits gewechselt, wenn man ein anderes Laufwerk anspricht. 7.4 Bedingter Aufruf Mit dem Punkt 'Blockwatch on/off' im Memory- Menu kann man den 'Bedingten Aufruf' aktivieren. Die Bedingung dabei ist, da FEDIT nur noch dann aktiviert wird, wenn - die dafr vorgesehene Shifttastenkombination bettigt ist (voreingestellt ist lSHIFT rSHIFT) - der VBL- Interrupt stattfindet UND - sich der Program Counter beim Interrupt gerade im markierten Blockbereich befindet. Mit der Tastenkombination fr den 'unbedingten' Aufruf kann man immer noch zu dessen Konditionen FEDIT aktivieren. Eigentlich ist diese Funktion beim Austesten von FEDIT entstanden, als FEDIT genau dann abstrzte, wenn der Interrupt zwischen zwei bestimmte Maschinenbefehle im BIOS traf; Um zu berprfen, das dies nun keine Probleme mehr macht, htte ich natrlich endlos Aufrfe machen und jedesmal kontrollieren knnen, ob der Interrupt (ohne Absturz) nun an der heiklen Stelle kam (Siehe den Abschnitt ber die 'Systemvariablen'); Stattdessen markierte ich die heikle Adresse und hielt die Tasten solange gedrckt, bis FEDIT selbst die Unterbrechung an dieser Stelle diagnostizierte. Und nicht abstrzte. Der Anwender kann die Funktion verwenden, um festzustellen, ob ein bestimmter Programmteil (wiederholt) aufgerufen wird, etwa Teile des Betriebssystems oder die Line F- Routinen im RAM; Oder um die Aufrufsicherheit von FEDIT zu erhhen, wenn wider Erwarten die Unterbrechung von Programmen an bestimmten Stellen zum Absturz fhren sollte (Dann: Einen Programmteil markieren, der oft aufgerufen wird und harmlos zu unterbrechen ist). Allerdings lagen die einzigen Schwierig- keiten, die bei mir aufgetreten sind, bei der Unterbrechung von Betriebs- systemroutinen; Und auch das sollte ja behoben sein. 7.5 Beschrnkungen des Aufrufs Der Aufruf des residenten FEDIT ber die Tastatur erfhrt zwei Ein- schrnkungen bezglich des Zustands des Rechners zum Zeitpunkt des VBL- Interrupts: - Es werden keine GEMDOS- Funktionen unterbrochen - Die Systemvariable FLOCK ($43e.w) mu Null sein (Kein Floppy- Zugriff). Wenn GEMDOS- Funktionen sozusagen im 'sample'- Modus aufgerufen werden, also ohne selbst die Kontrolle bis Eintritt eines bestimmten Ereignisses zu behalten, wird man kaum merken, da ein paar Interrupts fr den Aufruf von FEDIT ausfallen, indem sie den Rechner gerade in einer GEMDOS- Routine erwischen. Gerade besonders einfache Programme ohne GEM aber (zum Beispiel Shells) ttigen ihre Eingabe oft ber 'request'- Aufrfe von GEMDOS wie Cconin. Ein solches Programm verbringt einen Groteil seiner Zeit im GEMDOS, und kann speziell dann nicht unterbrochen werden, wenn es gerade auf Tastatureingabe wartet. Man kann auch aus einem solchen Programm heraus FEDIT aufrufen, wenn man die Tastenkombination gedrckt hlt und gleichzeitig Buchstaben eintippt; Nach jedem Buchstaben wird das GEMDOS (zumindest kurz) verlassen. Beim Ausprobieren der Unterbrechungseinrichtung habe ich den Rechner auch schon mal beim Laden eines Programmes unterbrochen, also in einer sehr heiklen Lage (Diskettenzugriff, GEMDOS- Funktion). FEDIT lief, aber nach Rckkehr krachte es. Trotz der Beschrnkungen, die nun bestehen, kommt man noch recht gut zum Zuge, etwa zwischen Programm- und Resourceladen. (Man halte einmal whrend des Ladens eines Programmes von Diskette die Aufruf- tasten gedrckt) 7.6 Anpassung an weitere TOS- Versionen Zur Anpassung von FEDIT an weitere TOS- Versionen kann man die Anpassungstabelle ndern, die am Ende des FEDIT- Programmes mit 'ADR>' markiert ist. (Also: FEDIT.PRG starten, FEDIT.PRG laden, freien Puffer erzeugen, dort 'ADR>' hineinschreiben, 'ADR>' als Block markieren, im vorigen Puffer suchen lassen.) Es folgen 5 Tabelleneintrge aus jeweils 5 Langworten. Davon sind zunchst die ersten drei belegt; Vom Zeichen hinter '>' aus mte man also 60 Zeichen weitergehen, um zum ersten unbelegten Eintrag zu gelangen (5 Langwort- Nullen). In die Langworte gehren geschrieben: - Das Datum des Betriebssystems in Hex: z.B. $02061986 fr 6.2.1986. An dieses Datum kommt man, indem man in FEDIT im Memory- Modus auf Adresse $18 setzt, F4 drckt, um den Merker 1 auf $18 zu setzen, FEDIT auf die Adresse $4f2 (_sysbase) setzt, F4 bettigt (Vorausgesetzt, es herrscht noch der default- Langwort- Modus) und den Wert ausliest, indem man im Hex- Anzeigemodus F3 drckt. (Das Datum im richtigen Format steht nmlich im Langwort ab Offset $18 im Header des Betriebssystems.) - Die Adresse der Speicherposition, in die das Betriebssystem den aktuellen Shiftstatus (als Bytewert) schreibt. Im TOS vom 6.02.86 lautet ein zustndiger Teil: FC29AA: move.b shiftstat(A5),D1 cmp.b #$2a,D0 bne zzz bset #1,d1 zzz: ... - Die Adresse des Save- Bereichs des BIOS (Oberste Adresse eines Stack- Gebildes); Dies ist der normale Wert, den man vorfindet, wenn man sich mit FEDIT Speicherstelle $4a2.l anschaut (savptr). Aus Kontrollgrnden dazu ein Auszug aus dem TOS vom 6.02.86, beginnend mit der Adresse des BIOS (Trap #13, zu finden in Speicherstelle $b4): FC074E: lea ...,A0 move.l savptr,A1 ; (savptr).l=biossav move.w (sp)+,D0 ; Statusregister move.w D0,-(A1) move.l (sp)+,-(A1) ; Returnadresse movem.l D3-D7/A3-A7,-(A1) ; Also 11 Langwrter, 1 Wort gesichert move.l A1,savptr ... - Die Adresse der Adresse des Save- Bereichs des GEMDOS (gemdossav) und die oberste Adresse des GEMDOS- eigenen Stacks (gemdosstack). Dazu das TOS vom 6.02.86: FC4D48: btst #5,(sp) ; $fc4d48 ist die Adresse vom GEMDOS- Handler und bne.s ; steht als solche bei trap #1, in $84 move.l usp,a0 cmpi.w #$20,(a0) ... move.l A6,-(sp) movea.l gemdossav,a6 movem.l D0/A3-A5,$68(A6) move.l (sp)+,$78(A6) ... move.l A5,$7c(A6) ; Also 6 Langworte insgesamt gesichert movea.l #gemdosstack,sp lea.l $32(A5),A0 bra.s movem.l ... move.l sp,$7c(A6) lea.l $32(sp),a0 movea.l #gemdosstack,sp ... 8 FEDIT- 'Systemvariablen' 8.1 Inhalt des entsprechenden Bereichs von FEDIT Ein Auszug aus dem initialisierten Datenbereich: .DC.b "ADR>" ; Damit man die Adressentabelle findet adr_table: ; Format: Tosdatum.l, shiftstat.l, biossav.l, gemdossav.l, gemdosstack.l .DC.l $2061986,$e1b,$93a,$602c,$166e ; erstes ROMTOS .DC.l $4221987,$e61,$93a,$87ce,$16ce ; Blitter- ROMTOS .DC.l $5181988,$e63,$93a,$5528,$2a3c ; neues RAMTOS .DC.l 0,0,0,0,0 .DC.l 0,0,0,0,0 .DC.l 0 ; Die Ende- Marke .DC.b "MSK>" ; Damit man die maskierten Speicherbereiche findet maskber1s: .DC.l $400000 ; Start erster maskierter Bereich maskber1e: .DC.l $f9ffff ; Ende (einschlielich) maskber2s: .DC.l $ff0000 ; Start zweiter maskber2e: .DC.l $ffffff ; Ende fedpalette: .DC.w $777,$700,$70,$0,$111,$222,$333,$444 .DC.w $555,$7,$1,$10,$100,$200,$20,$2 .DC.b "PAL>" ; Damit man die 34 DEGAS- Headerbytes findet storerez: .DS.w 1 ; Auflsung sichern storepalette: .DCB.w 16,0 .DC.b "ORSCR>" ; Damit man den Bildschirm findet orgscreen: .DC.l 0 ; Speicher fr Bildschirmadr bei VBL- Aufruf fedscreen: .DC.l 0 ; Eigener Bildschirm .DC.b "SFTMD>" ; Damit man das Modus- Byte findet action_shift: .DC.b %1111 ; ALT CTRL LSHIFT RSHIFT zum Aktivieren bwatch_shift: .DC.b %11 ; LSHIFT RSHIFT zum Aufruf aus Blockbereich bwatch_flag: .DC.b 0 ; Flag fr Aufruf nur fr PC im Blockbereich store_conterm: .DC.b 0 st_crsrmode: .DC.b 0,0 ; Flag f. Cursorstatus on/off zbasis: .DC.w 10 ; Zahlenbasis fr Ausgaben .DC.b "ORSTK>" ; Damit man den Aufrufstack findet sav_ssp: .DC.l 0 fedstack: .DC.l 0 .DC.b "IADDR>" ; Damit man die Interruptadresse findet interrupt_at: .DC.l 0 inpbuffer: .DC.b 80,0 inpbeg: .DCB.b 82,0 ; Zum Addieren des Command tail counters 8.2 Und Erluterungen dazu - Adressentabelle zum Anpassen des Interrupt- Teils. Marke: 'ADR>' 5*5 Langworte, siehe 'FEDIT resident' 0.l als Tabellenabschlu - Die Begrenzungen der ausmaskierten Speicherbereiche. Marke: 'MSK>' 2*2 Langworte, jeweils Start/Endadresse des Bereichs (inklusive) - Die von FEDIT verwendete Farbpalette 16 Worte - Der DEGAS- kompatible Farbzustand bei Aufruf von FEDIT. Marke: 'PAL>' 1 Wort Auflsung (0-2=PI1-PI3); 16 Worte Palette Zum Beispiel kann man das Bild, das bei der Unterbrechung angezeigt wurde, im DEGAS- Format abspeichern, indem man diese 17 Worte als Block markiert und als ebensolchen abspeichert; Sodann mit 'ORSCR>' auf das erste Byte des Originalschirms positioniert, Blockanfang markiert, 31999 Bytes weitergeht (im Image- Modus zwei Halbseiten vor und ein Byte zurck), Blockende markiert und diesen Block an den DEGAS- Header anhngt, indem man ihn unter demselben Namen abzuspeichern versucht und die Frage richtig beantwortet. Allerdings gibt es zu diesem Zweck eigene Programme (SNAPSHOT). - Die Bildschirmadressen bei der Unterbrechung und von FEDIT; 'ORSCR>' 2*1 Langworte Man kann etwa auf den Anfang des Original- VideoRAMs positionieren, indem man hinter 'ORSCR>' F4 drckt, vorausgesetzt, man ist im Long pos. Modus und im Merker F4 steht die unberhrte Adresse 0. Man versuche nun einmal den Image- Modus ! - Bitmuster fr die Aufruf- Tastenkombinationen und diverse; 'SFTMD>' Hinter 'SFTMD>' wird der Cursor durch Drcken von UNDO gesetzt. 2*1 Byte Shifttastenzustnde fr Aktivierung des residenten FEDIT im Format, wie es von der BIOS- Funktion 11 (Kbshift) geliefert wird (Bit 6=lMaus, rMaus, CAPS, ALT, CTRL, lSHIFT, rSHIFT=Bit 0) Erstes Byte Kombination fr normalen Aufruf; zweites Byte Blockwatch- Aufruf 1 Byte Blockwatch- Flag; 1 Byte Kopie der Systemvariable Conterm ($484.b) beim Aufruf von FEDIT; 2 Bytes; 1 Wort Zahlenbasis fr die Zahlenausgabe (wird von FEDIT zwischen 10 und 16 geschaltet; Wer gern Zahlen zur Basis 25 o. dgl. sieht, mag hier seine Lieblingszahl eintragen. Beim nchsten Umschalten der Basis mit FEDIT steht hier wieder 10 oder 16. Es sollte brigens nicht wundern, da man beim Ansehen dieser Variablen mit F2 immer die Ausgabe '10' erhalten wird). - Stackpointer bei Aufruf von FEDIT und FEDIT- Stacktop. Marke: 'ORSTK>' 2*1 Langwort SP beim Aufruf von FEDIT durch die VBL- Routine und anfnglicher SP des FEDIT- eigenen Stacks. Auf dem Originalstack findet man vor: 0.l: Returnadresse zur VBL- Routine 4.l: D7/A0 gesicherte Register der VBL- Routine 12.l: D0-D7/A0-A6 Register des unterbrochenen Programmes 72.w: sr Statusregister des unterbrochenen Programmes 74.l: Returnadresse vom VBL- Interrupt=Adresse der Unterbrechung - Adresse der Unterbrechung des Programmes. Marke: 'IADDR>' 1 Langwort Hier entledigt FEDIT den Benutzer von der Mhe, sich diese Adresse auf dem Stack anzusehen (Dabei wre das ganz einfach: Marker F4 auf 74 setzen, hinter 'ORSTK>' F4 drcken, und man ist am Ziel seiner Trume) - Platz zur Aufnahme von Zeileneingaben. 9 Beispiele fr den Umgang mit FEDIT Was man mit FEDIT zum Beispiel machen kann: - Files patchen. (Fr nicht- Anglikaner (oder wie hie das Wort doch gleich ?): steht fr das gezielte Verndern von Files, vor allem Programmen, an einer oder an wenigen Stellen) Zum Beispiel haben unverstndlicherweise einige Programme feste Laufwerkskennungen, auf denen sie bestimmte Dateien suchen. Das ist rgerlich bei Verwendung einer Platte oder Ramdisk (denn meistens lautet die feste Kennung 'A:'). Mit FEDIT kann man diese Kennung umbenennen oder ganz entfernen (in letzterem Fall wird dann auf dem aktuellen Laufwerk gesucht, was zumeist auch die beste Wahl ist). Zeichenketten enden meistens mit einem Nullbyte, so da es kein Problem darstellt, sie zu verkrzen. (Dazu noch der Hinweis, da natrlich nicht meint, da hier die Delete- Taste zum Einsatz kommen sollte: Wenn man nicht genau wei, was man da tut, sollte man die Lnge eines Programmfiles auf jeden Fall unverndert lassen ! Das Mittel heit also: Entweder den Pfadnamen ganz von Hand ber das Vorhandene schreiben oder als Block hochkopieren.) - Sich die mglichen Ausgaben eines Programmes anschauen. Meistens verwenden Programme keinen Sprachgenerator, der die notwendigen Meldungen zur Zeit ihrer Ausgabe formulieren wrde, sondern die menschlich anmutenden Stze, mit denen der Rechner den Laien verwirrt, stehen betrgerischerweise bereits suberlich zumeist am Ende der Programmdatei. (Beispiel: FEDIT besteht fast zur Hlfte aus Text.) Oft erfhrt der gebte Beobachter aus dem Anschauen eines Programmes mehr ber die Mglichkeiten und Grenzen desselben als aus dem Handbuch (was zweifellos an den Handbchern liegt). - Sich einen Einblick in Datenstrukturen im weitesten Sinne verschaffen. Wenn man Programme schreibt, die bestimmte Datenformate erzeugen oder verarbeiten sollen, kann man sich mit FEDIT ansehen, wie das Zielformat aussieht und ob die bisherige Ausgabe eigener Programme sich an die gegebenen Regeln hlt. - Ich habe FEDIT bereits dazu verwendet, Texte zu bearbeiten, die entweder durch eine Flle formatierender Leerzeichen auf fr andere Programme unverarbeitbare Gre aufgeblht waren (->Ersetzen doppelter Leerzeichen durch einfache) oder die fr bestimmte Texteditoren unleserlich waren (das gibt's, da Texteditoren einfach njet zu einem Text sagen, ohne etwa den Versuch zu machen, zu lange Zeilen abzuknicken oder Zeichen, die nicht vorkommen drfen, zu berlesen). In beiden Fllen kann man mit FEDIT und ein bischen berblick wieder lesbare Zustnde einkehren lassen. - Beim Erstellen dieser Dokumentation geschah es, da ein Sektor des Dokumentationsfiles unlesbar wurde; Das Programm, mit dem ich sie erstellte, war auch nach Ersetzen der entstandenen Leerbereichs durch unverfngliche Schriftzeichen (mit FEDIT) nicht dazu zu bewegen, das Dokument wieder an Sohnes Statt anzunehmen, da es im gelschten Bereich wohl ganz bestimmte Formatzeichen erwartete; Das ist besonders rgerlich, da ja nur ein sehr geringer Teil des Dokuments tatschlich gelscht war. Mit FEDIT habe ich nun die Partien, die ich seit dem letzten Backup neu geschrieben hatte, extrahiert und daraus durch ersetzen der Steuerzeichen ASCII- Texte gemacht, die sich vom Programm anstandslos in das Backup einladen lieen. 10 Abschied So long, yours, Bernd `<` /<?< NA\A *o m$ h| (m l A | <fкккк"ҍA // Bg?<JNAO JfZE&JA~JgANAXAJfA`/*z8Jf AzaaaJk #:zЇ/?<HNAT"JfJ9:Jf?9:B?<>NAXA`:Ҁ @!A B":7Jg "A#z8CJg"Q`"C!I`B#:r#7:к7#:~!@BhJ9:Jf?<?9:B/<?<BNAO /9:r/9:z?9:B?<?NAO /?9:B?<>NAX 7fg* z7XA"hg B#:r/?<INA\A`\/<+J?<?<NNPA(BaH :7$":7"Apo?<P/a\/<P/aP#: <":6䒉nSAk"0/ /a|??<?<NM\ "_RQ :6":6n S#:?< NATJ@gT?<NAT`":6vo#:`":6zl* Pn&A'Ba~"z6^0<OC#:`^$m* Pn/A'aF"_0<OP:`(?< NATJ@f:Aa :55?</a\AaB"z5a?</a\ :5Ȑ5"P$P???<?<?<NM\?<Y?<?<NM\W ?<?<NM\W ?<?<NM\Hz0a0X/a2 AJAf z5L#:??<?<NM\`~t`t?a4AJAf z5??<?<NM\`pѹ:`>p` <` <P` <@` <`#4:`AJ9:LfB :4S#:`#4:` :4` :4`#9:`#4|:AR/A%ja _a/<+J?<?<NNP` :4JR#:A2` :48R#:A4`aBA2 0 `T :2:"z2:B69:DraAӰmB>BA1(0 BSAaRQSCngHHB:Єk:#:":1ఁm*S#:` :1"z1ʐB69:DraAcm@?a4ALJAf.B>JA1b.0 49:Dvc`09:DS@jp3:DA`pA y 9gp A39`/<+P?<?<NNPA"aF?<NAT`/<+P?<?<NNPA"a J9:Lfa z0a ?<NAT z06g@gX`/A!a _ PNA!aA0a?<NATA??<?<NM\?<:?<?<NM\?</<9?<GNAPA/aAa?</NATJf y:&A/?<NAT #:?<7/<"?<NNAPJ@kRAa6 z0&r gH@??<?<NM\LQ`??< ?<?<NM\2Q?<ONATJ@g?<NAT`A:aaa/ ?<;NA\AEJ@g8AU`0Q:JA` P:JAaaAtJ9:JgAJ@ga6?</ ?<=NAPJ@kb3:BAa\?<NAT@ @Sg4A(J9:JgA8 @Af?<?9:B/<?<BNAO `0?9:B?<>NAX?</<9?<NAXLAFfAJ9:JgA/Aja | _a v`hAAa ja laAA mP:J Ba :. z.|BSnA`A%a "?<NATAA@ Jf"z-C/ / ?<INA\"_AzJfh$Q&i " g'J" g %K#:rgA `A"z-#z- )fAg`""@#:r#:#:~/a j _`A"z-J#z-V )fAi`(z->"z-F$z-:RA! :-?</ ANa `Aa Xa \AIa J`m氺'Dl#:`p`0:'fD@`0:'^`BB`t0:'RH2-H//a PJBgD`0:'2S@o3:`BRy:`80:'Q@o|3:`$Py:`aA!aaa6Jo3:`0:& @g:@3:`aAaA09:HAaAa?<0:&H/aB\Afan?<NAT`@aZ`"a gHDaL"/<+/ / ?<?<KNAO?aAa z%a0AJ@gA`a gx/<+/ / ?<?<KNAOAJkV#:`pa/<+/9:/<+?<?<KNAO`|Aa//9:?<INA\AJg&A.`ANaaaAJk//9:Bg?<JNAO ABJgA~`Q:L#1E:j#7:n z$#$ :v#:r#:#:~`J9:KgAa?<NAT@ @Jfa4J9g\?f x$z#Cұgf#9#J9,O.z"/L<0?H 89A!62<H@? up,down Byteinhalt hoch/runterzhlen durch left,right Lschen mit Aufschieben durch delete Einfgen mit insert (Nur im Rahmen der vorhandenen Pufferlnge !) Block start/end/replace end markieren mit Undo// Undo Zum Fileanfang/ende mit Home/ Home Zum Blockanfang/ende/r.-ende mit up/down/home Anzeige Positionsinhalt .b/.w/.l mit F1/F2/F3 Anzeige neg(Positionsinhalt) .b/.w/.l mit F1/F2/F3 Eingabe Positionsinhalt .b/.w/.l mit F1/F2/F3 Positionsmerker 1-7 setzen mit F4-F10 pos auf Positionsmerker 1-7 setzen mit F4-F10 Cursor auf (pos).x+Merker 1-7 setzen mit F4-F10 M2-M1/M3-M2... in (pos).x schreiben mit F5-F10 .x umschalten auf .l/.w/.b mit HELP Zahlenbasis fr Anzeige umschalten mit HELP pos auf FEDIT- Aktivierungsbyte setzen mit UNDO Zum Menu mit ESC Bytes. HILFE FR IMAGEMODUS Screenanfang um Byte vor/zurck mit Cursor down/up Bildschirmzeile vor/zurck mit Cursor down/up Um halben Bildschirm vor/zurck mit Cursor down/up Anzeigebreite um 1 Byte grer/geringer mit Cursor right/left Anzeigebreite um 8 Byte grer/geringer mit Cursor right/left Anzeigenbreite (.w) eingeben mit Undo Auflsung umschalten mit Help Zum Menu mit ESC Y">MENU D:Directory anzeigen P:Zugriffspfad setzen L:Nchstes file laden S:File abspeichern B:Leeren Filepuffer schaffen Y:Filepuffer freigeben N:In nchstes File springen V:In voriges File springen G:Cursor setzen auf... T:EOF verschieben auf... F:Blockinhalt suchen U:Ungleichheit suchen R:Suchen und ersetzen K:Verknpfung setzen W:Block schreiben O:Block abspeichern Z:Block leeren M:Into Memory I:Speicher zeigen als Bild E:Programm beenden :Menu verlassen Y"4MEMORY MENU. VORSICHT !!! D:Directory anzeigen P:Zugriffspfad setzen G:Cursor setzen auf... F:Blockinhalt suchen U:Ungleichheit suchen K:Verknpfung setzen W:Block schreiben O:Block abspeichern Z:Block leeren A:Programm laden und starten Q:Programm laden J:Programm(pos) starten H:FEDIT resident R:Freier Speicher B:Blockwatch on/off C:Mfree(pos) V:Mshrink(pos)... I:Speicher zeigen als Bild X:Memory verlassen E:Programm beenden :Menu verlassen  jKMHPwHPRZSHPKVMRGGata6u6aH;<=;<=TUVWXYZ[\]>,?,@,A,B,C,D,>B?B@BABBBCBDB?@ABCDb b $ab DBK~MH*PFHJPRH\PXKMabbD P LS B 2Y zN V "GtTF >URdKWO@ZTMIE BD P GtFLUKWO@ZTAJQJRH*BCVIXBE BADR> :`,n"a :c :U(*<MSK>@wp"3DU PAL>ORSCR>SFTMD> ORSTK>IADDR>P @4(  <R (JP&06N0  FH< 8  &* ($<.Z2>> TURBO-C <<<< for ATARI-ST Version 1.1 (C)88/89 Borland International G##J$VH3# k ## Ј<.@##А<"@(I$k,"Jf"JfB// ?<?<JNAO NA6<HCBB`6 !jBJ)gHiRC` "fSI "WJAkHiRCBSQJ)gHiRCHy`$O0 J"LNZ? 9g @N 9g @NN?<LNAH8(H6EQ JBAB@NArB@NGBC`00RC|:mp:BC`BD`r04B4 R@RD| mRC|%mBE0,@rlHH@@4,BH…BlA <r4Np?BgBg42,A NN\OJ@fp?BgBgt2,A' N.\OJ@fp?BgBgt2,A' N\OJ@ffAgdBC`00RC| mA!N| v `B70RC|m l lz`zp??Bg42,A N\OJ@gpNOL8Nu?/ $H6pNr A09*N BAp"J yQN BAp"J yQN JCgB@`"JBBr p yQN $_6NuH8&H(IE#p?BgBg4292 J *N,\OJ@gpN:`JBC*B@*JCgJ@gBD*BA*IAHĉHĉ| m| n |f|To p NB@`68pLNu/ / Er J0* N r A0*N GQp0* kr A0*N pA*@ 2*g Sh` Sh0*g Sh`pN^ Sh0*g Sh` Sh0*gJ Sh Sh Sh ShB ShZ Sh* Shj Sh Sh`H Sh Sh Sh ShB ShZ Sh* Shj Sh Sh&_$_NuHJ@g SVBS7|x:`:pk 7@ `.pk 7@ `"pk7@` kop`pk7@N|JDm 20"J TN"JBB2p TN6|g|fr|f6pNS@f"NpJ@g$0+gNv`B@ JN\6` B@ JN"6|fBkHo"orp TNXOB@N:B@NOL\8Nu/ EH jo 0<N0*jm:2*f4NN5@U@f BjpN  jf5|pR4J@f.Sj`(N0*g 2*fpNDBjBjN\pN jo 0<N$_NuH:OC#4A#4Nx6E#J@mHABNMTI@GP0gBS`JHo@HoDHoHHoLHoPBg0+?BgBgBgBgBgBgBgBgBgBgBg"L NBBBAp0N O.8pDf2g V(f 0.oBg0g$A&Nr0f 2gN`A&N*`x V."n ApN~?k>7W?k<7o?k27o?k.7o?k87o?k:7o ?k67o ?k47o?k07oJGgANAN|`ppN NAN\HoBAp yQNXOrB@C yQNN0+gNd` pANHorp yQNrXOB@N 7o>7o<7o87o:7o67o47o07o.7o2JFg ?|=D?CFBoH?kJADr0N p Dg 2g4fN 0gN N B@` 0fNpOdL\Nu2<B@N `NuH.O(H,IN 6mpN nE#B"JANFN hU@lCAN*L` C+AN*NC:ANMO$H,I68GI K HoHo Ho"MNO pN?/???BgBgBBBAB@NXO g"?/????.?.4.2pN2O ?/??4rB@ JN\OJCfv 2H 눐Ё(HWHoC A NPOHWHoHoHo Ho "<N? "<N(?BgBgBgBgBgr???/(?/,??C240NO. g"?/????.?.4.2pNnO ?/???BgBgBBBApNRO pNbOL|Nu//O4UB|"bBJ@j < fD@-CtH@B@H@&HC;0(RBH@B@H@fQBO _&Nu3!`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ JgJgJgJgJg JgJgJfSHggggg ggf @Nu g<g8g4g0g,g(g$g ggggg ggf @Nu/ G# g/ &S?<INA\O`G# g/ &S?<INA\O`&_NuJg/bg2 4gf!Sf`f`!Sg"gH?LxH?LxH?LxH?Lx`H?Lx8H?LxH?LxH?LxH?LxH?LxpH?LxHH?Lx H?LH?SfvLx2|HgS@!!Q|gSA!Q`2 4gfSf`f`S"gH?LxHxLxHx(LxHxPLxHxxLxHxLxHxLxHxLxHxLxHx@LxHxhLxHxLxHxLHSfxLx2|HgS@ Q|gSAQ _Nu$jD"BJjD$HBJBf4$HBJBfH@B@H@$ jDNuB@H@HB0@0H@0H@$ jDNu AH@r2B@tЀӁd҈рӁQF@$ jDNu"@$jDJjD$HBJBf.$HBJBfB@H@$ jDNuB@H@HB0B@H@$ jDNu A"B@H@HABAtҁрdЈӁрQ$ jDNu/ Hz^?<?<NMPO/Hz?<&NN\O?<?<NMPO$_Nu OJx@3#1B x@f1J x@fp!PNu.H3 #Nu??<NAXONu#Q#QNN$yQ yQN/ ?/ ?/ ?/ ??//?< NNO$_Nu/ ?/ ?/ ?/ ??//?<NNO$_Nu/ ?<NNTO$_Nu/ ??//?<NNO$_Nup `H#U(AQ00p `2p`,AQ00p`#U(/ AQ00000 0 0000000000 pa"_2"o2"o"2"o&2"o*2"o.2Nu#U(AQ000000p*`/ #U(3Qp,ar"_2"o2Nu#U(AQ0000000 0 p/`:#U(3Qp2`(#U(AQ0000000 0 0p3`/ #U(p6a"_2"o2"o2"o 2Nu#U(3Qp4`#U(pn`po`/AQ00ppa"_"W(Nu3Q#U(p#`#U(3QpN`n/ /pOad"_2"_2"o2"o2Nu/ ?AQ00pha:2CSA|;$Y4Q$_Nu3Qpk`3Q@@A CQB@22220<"<,NBAS0NuQQ.QSU(W( O PT & T p T&T - Format V3.00`8Loaderp  T&T - Format V3.00<HS@ABAXQJAfHz?< NA\NuHz?< NA\?<NATNu ****************T&T-Soft schtztIhren Bootsektor**************** Bootprogramm wurde von T&T - Format installiert **************** Kein Virus im Bootsektor. ACHTUNG! Bootsektor wurde gendert!j T&T - Format[1][|Fehler beim Formatieren|aufgetreten !][ OK ][3][|Formatieren unterbrochen bei|Spur , Seite .][ Weiter | Abbruch ][2][|Soll das Formatieren wirklich|beendet werden ?][ Ja | Nein ][2][|Diskette in Laufwerk |eingelegt ?][ Ja | Abbruch ][1][|Diskette bzw.|Laufwerk prfen !][ OK ][3][|Wichtige Spur 0 defekt !][ Zum Mll ][3][|Defekte Sektoren|auf Seite , Spur !][ Weiter | Abbruch ][3][|Fehler beim Schreiben der|Disk-Infos aufgetreten !][ Zum Mll ][2][|Seltsames Diskettenformat.][ Neu formatieren ][1][|Diskette ausgereizt!][ Schade ]FORMAT32.RSC[3][|Programm nur mit|MonochrombildschirmFarbbildschirm|lauffhig!][ Ende ][3][|Resource-File||nicht gefunden!][ Ende ] f8d V>8P 84 ^l$ jzn| $ 2$0 f.p >&.|j & ,$  0< XXXd$XdT&T - Format Version 3.21LaufwerkASektoren10von Spur0bis79Diskettenname: ________.___FFFFFFFFFFFHintergrundZeit: 1 sVirusschutzMeldungenSoftformatAbbruchFormatieren !T&T - Format Version 3.21ist Freeware und wurdemit Turbo C 1.1 entwickelt. 1989/90 T.Frbringer & T.Leitner.$>?IKLVYZdfglopqrB$X  @t M[      h    ' % 4#( 4/** message an format32 senden **/ #define FORMAT_NAME "FORMAT32" #define MSG_ID 60 #define RCV_ID 61 typedef struct { int bis_tr,von_tr; int soft; int zeit; int sek; int lw; int hinter; int f_meldung; int virus; char label[12]; } INFO_BAG; typedef struct { int msg_id; int ap_id; int ext_len; int handshake; int dialog; INFO_BAG *bag; int dummy; } MSG; FORMAT - Version 3.21 von Thomas Frbinger & Thomas Leitner (C) 1989,1990 Thomas Frbringer & Thomas Leitner Dieses Programm ist mit Turbo C 1.1 (vielen Dank fr diesen schnen Compiler!) entwickelt, von uns als Freeware gedacht und darf nur mit allen in diesem Ordner enthaltenen Files weitergegeben werden. Fr selbstverstndlich halten wir, da das Programm mit den dazugehrigen Files weder verndert noch kommerziell vertrieben wird. Der Ordner FORMAT.T&T enthlt: - FORMAT32.PRG Programm - FORMAT32.RSC Ressource dazu - MESSAGE.H Header-File fr eigene Programme - TESTMSG.C Beispiel fr die Verwendung von MESSAGE.H - README32 dieser File 1) Ausstattung/Mglichkeiten ---------------------------- - luft als Programm und Accessory (einfaches Umbenennen gengt). - Spurenzahl von 0 bis 84 whlbar, Anfangs- und Endspuren getrennt einstellbar. - Sektoranzahl 9 oder 10. - doppelseitige Disketten (Tip an "Einseitige": Laufwerk wegschmeien!). - Hintergrundformatierung mit einstellbarer Zeit (mittels AES-evnt_timer) - Virusschutz fr Bootsektor wird automatisch erstellt. - kaputte Cluster werden in der FAT gestrichen. - Formatierung erfolgt rckwrts (Spur n,n-1,...0). - ber Message-Pipe von auen erreichbar und damit in eigenen Programmen aufrufbar. - Softformatierung, d.h. FAT und Directory lschen, Bootsektor neu schreiben, ohne neu zu formatieren. - luft auf allen TOS-Versionen und in allen Auflsungen. - Programm kleiner 10 Kilobyte! 2) Fr Anwender --------------- a) Bedienung ------------ Nach Erscheinen der Dialogbox kann der Diskettenlabel eingegeben werden und [ Buttons ] bettigt werden: - [ T&T - Format ... ]: Copyright-Meldung, verschwindet automatisch wieder. - Laufwerk [ A ]: Laufwerk A/B vorwhlen. - Sektoren [ 10 ]: Sektorenzahl pro Spur vorwhlen. - von [<] 0 [>]: Anfangsspur, ab der formatiert wird festlegen. Button [<] schaltet von Track 0 auf Endtrack weiter, analog schaltet [>] von Endtrack auf 0 weiter. - bis [<] 80 [>]: Endspur festlegen. ("Turnaround" wie bei "von < x >"). - von < [ 0 ] >: Derzeitige Formatierung der Diskette wird eingelesen und Parameter darauf eingestellt (seltsam formatierte Disketten (11 Sektoren ...) funktionieren hier aber nicht). In der Folge braucht nur "bis < x [>]" verstellt werden. - [ Hintergrund ] (nur ACC): Hintergrundformatierung ein/aus. - [ Zeit: x s ] (nur ACC): Zeitdauer zwischen zwei Tracks bei Hintergrund- formatierung in x Sekunden. - [ Virusschutz ]: kleines Schutzprogramm fr Bootsektor installieren/ nicht installieren. - [ Meldungen ]: Fehlermeldungen an/aus whrend des Formatierens; bei "aus" wird nur am Ende des Formatierens eine Meldung ausgegeben. - [ Softformat] : Soft-Formatierung: bisherige Parameter der Diskette werden bernommen, Bootsektor, FAT und Root-Directory werden neu geschrieben. Achtung, defekte Sektoren werden beim Softformatieren nicht gekennzeichnet. Auch hier sind nur "normale" 9/10-Sektor-Disketten erlaubt. - [ Abbruch ]: Abbrechen. - [ Formatieren ! ]: ... Mit Klick auf den rechten Mausbutton kann man das Formatieren unterbrechen. b) Hinweise ----------- Zur Erweiterung der Spurenanzahl einer Diskette geht man so vor: - Spur/Sektor-Zahl von Diskette lesen (Button "von Spur < [x] >"). - "bis < x [>]" wie gewnscht einstellen. - [ Formatieren ! ]. Anwendung der Softformatierung: - [ Softformat ] drcken; war die Diskette formatiert, so werden die Parameter darauf eingestellt und lassen sich solange nicht verndern, bis [Softformat] wieder aus ist. - [ Formatieren ! ]. Bevor man jetzt allerdings auf diese Diskette schreibt oder von ihr liest, sollte man nicht so faul sein und das Directory neu einlesen lassen (ESC am Desktop oder so...). 3) Fr Programmierer -------------------- Sie haben ein GEM-Programm erstellt und brauchen noch eine Formatierroutine dafr? Dann knnen Sie sich das Neuerstellen einer solchen Prozedur sparen, denn mittels GEM kann man FORMAT31.ACC von Programmen aus mit eigenen Parametern aufrufen. Schlssel ist die Message-Pipe des GEM. Im File MESSAGE.H steht eine Struktur, mit deren Variablen man Parameter fr FORMAT32 einstellt. Ein Aufruf knnte so aussehen: #include "message.h" void procedure(void) { INFO_BAG bag; MSG msg; int buf[8]; /*...*/ format_id = appl_find(FORMAT_NAME); /* ACC-id bestimmen */ bag.bis_tr = 79; /* bis Spur 79 */ bag.von_tr = 0; /* von Spur 0 ab */ bag.soft = 0; /* keine Soft-Formatierung (1: Soft-Formatierung an) */ bag.zeit = 1; /* Zeit fr Hintergrundformatierung */ bag.sek = 9; /* 9 Sektoren / Spur */ bag.lw = 1; /* Laufwerk B (A=0, B=1) */ bag.hinter = 0; /* Hintergrundformatierung aus (1: Hintergrundformatierung an) */ bag.f_meldung = 0; /* keine laufenden Fehlermeldungen (1: Fehlermeldungen erwnscht) */ bag.virus = 1; /* Virusschutz ein (0: Virusschutz aus) */ strcpy(bag.label,"DISKETTE"); /* Disk-Label */ msg.msg_id=MSG_ID; /* ID = 60 fr evnt_mesag */ msg.ap_id=ap_id; /* ap_id des eigenen Programms */ msg.ext_len=0; /* muss 0 sein */ msg.handshake=1; /* Rckmeldung erwnscht (sonst 0) */ msg.dialog=0; /* Dialogbox von FORMAT32 erscheint, es wird ohne Nachfrage formatiert und am Ende verschwindet die Box sofort wieder. Ist dialog=1, so entspricht dies einem Aufruf in der Menleiste. */ msg.bag=&bag; /* Adresse der INFO-Bag bergeben */ appl_write(format_id,16,&msg); /* Message schicken */ do evnt_mesag(buf); while (buf[0]!=RCV_ID); /* Rckmeldung abwarten: nur ntig, falls handshake!=0 ist! */ /* In buf[3] steht dann Fehlerflag (0=kein Fehler) */ /*...*/ } Man sollte bei der Kombination von Hintergrundformatierung und Handshaking aufpassen, sonst bricht das Programm eventuell ab, whrend noch formatiert wird, was bisweilen zu Ungereimtheiten fhren kann oder sogar Bomben gibt! Trotzdem kann das Programm durchaus etwas tun, whrend formatiert wird, man sollte nur irgendwann eine RECEIVE-Message erwarten. Das Programm TESTMSG.C (fr Turbo C) ist ein Beispiel zur Message- Formatierung. 4) Honorar ---------- Dieses lang entwickelte bedienungsfreundliche Formatierprogramm verdient zweifelsohne eine kleine Anerkennung, die der werte Benutzer an eine der folgenden zwei Adressen in Form eines 20DM-Scheins senden kann: Thomas Frbringer, Egerstr. 40 , 8594 Arzberg. Thomas Leitner, Hussengutstr.73, 8580 Bayreuth. T&T wnschen viel Spa bei der Benutzung dieses Programms (Accessories)!!!!! /**** Beispiel zur Formatierung mittels FORMAT31.ACC von eigenen Programmen aus ****/ #include #include #include "message.h" void main(void) { int ap_id; int format_id; int rcv_buf[8]; INFO_BAG bag; MSG msg; ap_id=appl_init(); format_id=appl_find(FORMAT_NAME); if (format_id >= 0) { bag.von_tr=0; bag.bis_tr=79; bag.soft=0; bag.zeit=1; bag.sek=9; bag.lw=1; bag.hinter=0; bag.f_meldung=1; bag.virus=1; strcpy(bag.label,""); msg.msg_id=MSG_ID; msg.ap_id=ap_id; msg.ext_len=0; msg.handshake=0; msg.dialog=0; msg.bag=&bag; appl_write(format_id,16,&msg); } appl_exit(); } . }.. MEGA21 PRG fBUGS MBUGS ENG N`@+KByJ$f"O/9z?<HNA\OJg.@z`@Ry m A#؀z"ҍ¼.A// Bg?<JNA #Z yZ/(,HhNdP/9x/9v?9NeNdNcT?<NfNVB?< Nev\#t1 1/9t?< Nev\N^NuNVB?< Nev\#t1 /9t?< Nev\N^NuNVB?< Nev\#t3/9t?< Nev\N^NuNVB?< Nev\#t1/9t?< Nev\N.N^NuNV09،f"09|fHy?<Ns8\3|N^NuNV09،f 09|gHy?<Ns8\By|N^NuNVHy?<Ns8\N^NuNV09~fBgBg?<Ne8\3~N^NuNV09~gBg?<?<Ne8\By~N^NuNVHn?.BgNsPHnHnHnHn/.NqO?.?.?.?.BgBgBgBgBgNrO?.?.?.?.?<Bg/.Ns\ON^NuNVHn?.BgNsP?.?.?.?.BgBgBgBg?<NrON^NuNV0.| H?0. | H?HyHnNnO A-H` nRH??<?<Nd\ nH|fN^NuNVBn yf0. H=@ 09|g=|NHy؊Hy؊Hy؊?. ?.?9NvpON nfNN^NuNVHyzHytHy؊?9NuON^NuNVN?< ?<N*XBn`(0.A0||2??<NevXRn n-mNN^NuNV09ؐ` N p`(N p`N``|gܰ|gNN^NuNVHy?< Ne8\Hn?<BgNsPHnHnHnHn/.NqO?.?.?.?.BgBgBgBgBgNrO?.?.?.?.?<Bg/.Ns\O?<T?<@NX yf0 n1|?.?.?.?.Bg?</.Ns\O`, nBh?.?.?.?.Bg?</.Ns\O`n0.``Byؐ`3ؐ`z3ؐ`n3ؐ`b3ؐ`V3ؐ`J3ؐ`>3ؐ`2`0|g|g|g|g|g|g|g|gN nh nh nh nh nh nh2 nhJ nhb?.?.?.?.Bg?</.Ns\O?.?.?.?.Bg?</.Ns\O?.?.?.?.Bg?</.Ns\O?.?.?.?.Bg?</.Ns\O?.?.?.?.Bg?</.Ns\O?.?.?.?.Bg?</.Ns\O?.?.?.?.Bg?</.Ns\O?.?.?.?.Bg?</.Ns\OBg/.Nr\=@J@fJnfD nh ?.?.?.?.BgBgBgBg?<NrOHyX?< Ne8\``N^NuNV9|3b9|39|39|3309b|3b09@309ހyb309HH3N^NuNV=y=y=y?9ؐBg?<HyBg?<NdO3JyfNTN?<?<3N*XHyNmX?<?<N*XHyNmXN N $?<?<3N*X?9HyNm\N333`0?<?<@NXHy?<Nq\By|3N^NuNVA-H09ؐR@?/.?<6NevP=@09ؐR@?/.?<6NevP=@ ng ./ ./Nf6 / ./Nf6 -@ ./ ./Nf6 / ./Nf6 -@ .-@?<?<N*X/.HyNmP?<?<N*X/.Hy&NmP?<?<3N*X/.Hy4NmPN^NuNV?9ؐ?<NdX-@?< ?<N*X n?(HyBNm\?< ?<N*X n?HyLNm\?<?<N*X n?(HyVNm\?<?<N*X n?(Hy`Nm\?< ?<>N*X n?(HyjNm\?<?<>N*X n?( HytNm\?<?<>N*X n?( Hy~Nm\?< ?<>N*X n?(HyNm\N^NuNV?<BgBg?<?9ؐBHy?<Ne8O3JyfNTNN $N ?<?<3N*X?9HyNm\?<?<N*X?9HyNm\?<?<3N*X?9HyNm\N`"?<?<@NXHy?<Nq\N^NuNVHy?< Ne8\Hn?<BgNsPHnHnHnHn/.NqO?.?.?.?.BgBgBgBgBgNrO?.?.?.?.?<Bg/.Ns\O?<Z?<@NX yf0 n1|?.?.?.?.Bg?</.Ns\O`. n1| ?.?.?.?.Bg?</.Ns\O`n0.``Byؐ`3ؐ`z3ؐ`n3ؐ`b3ؐ`V3ؐ`J3ؐ`>3ؐ`2`0|g|g|gְ|g|g| g| gʰ| gN nhj nh nh nh nh nh nh nh?.?.?.?.Bg?</.Ns\O?.?.?.?.Bg?</.Ns\O?.?.?.?.Bg?</.Ns\O?.?.?.?.Bg?</.Ns\O?.?.?.?.Bg?< /.Ns\O?.?.?.?.Bg?< /.Ns\O?.?.?.?.Bg?</.Ns\O?.?.?.?.Bg?< /.Ns\OBg/.Nr\=@ @f nfD nhR?.?.?.?.BgBgBgBg?<NrOHyX?< Ne8\``N^NuNV09ؐ`~A-H`A-H`A-H`A-H`~A-H`pA-H`bA-H`TA-H`FA-H`8|g~|g|g|g|g|g|g|gNfN?<NjTByR`09RAB0RyR yRm?<?<&N*X/.HyNmPHn?<Nev\?</.?<NNevP=@BnJnf0<n??< N*XHnHy"NmP0<n??<N*X.H`Hy,NmX`Hy8NmX`HyDNmX`HyPNmX`~Hy\NmX`lHyhNmX`ZHytNmX`HHyNmX`6|gl|gv|g|g|g|g| gN0<n??<'N*X/.HyNmP?.NT?.NbTByR`09RAB0RyR yRm?<ONevT=@0.Rn @ fBn?<NevT?<NjTJngNNN^NuNV0.|=@?.HyNm\0.|@=@?.HyNm\0.|@@|P=@?.HyNm\N^NuNV0.|@@=@0.|?HyNm\0.|@=@?.HyNm\N^NuNVHyt?< Ne8\?<NjT?<?<@NXNcJ?<NTHyX?< Ne8\N^NuNVHyB?< Ne8\?<NjT?<?<@NXNcJ?<NTHyX?< Ne8\N^NuNVHyB?< Ne8\Hn?<BgNsPHnHnHnHn/.NqO?.?.?.?.BgBgBgBgBgNrO?.?.?.?.?<Bg/.Ns\O?<?<NX`n0.H/ </Nf6  n00gX n0(|g3W n0(|g3S n0(|g3W n0(|g3SBg/.Nr\=@ @fh nf0 nh?.?.?.?.BgBgBgBg?<NrOHyX?< Ne8\N^NuNVHy|?< Ne8\?<NjT?<?<@NXNcJ?<NTHyX?< Ne8\N^NuNVHy?< Ne8\Hn?<BgNsPHnHnHnHn/.NqO?.?.?.?.BgBgBgBgBgNrO?.?.?.?.?<Bg/.Ns\O0.`jHyHyNoP`jHyHyNoP`RHyHyNoP`:?9HyHyNnO ``|g|g|gN(?< ?<N*X?. ?. HyHyNmO N`yBg/.Nr\3 @ g( yg yg yg yf y f0 nh?.?.?.?.BgBgBgBg?<NrO yf0 nh?.?.?.?.BgBgBgBg?<NrO yf0 nh?.?.?.?.BgBgBgBg?<NrO yf0 nh?.?.?.?.BgBgBgBg?<NrO yf0 nhj?.?.?.?.BgBgBgBg?<NrONHyX?< Ne8\N^NuNVB?< Nev\#t>@|0.Rn 9F/9t?< Nev\N^NuNVB?< Nev\#t309f@|9<FBx>/9t?< Nev\N^NuNV/.   XN^NuNV3 3 <Sg 9f309@3N^NuNV3333N^NuNV3333N^NuNVH>.<. *n SQL N^NuNVH >.*n (nSQL0N^NuNVB?< Nev\#t?<?.NX/9t?< Nev\N^NuNVB?< Nev\#t33/9t?< Nev\N^NuNV?9N2T?<NTN^NuNV?9N2T?<NTN^NuNVB?< Nev\#t/9؄NX?< N\T?<?<NX/9t?< Nev\N^NuNVB?< Nev\#t/9؄NX?< NT?<?<NX/9t?< Nev\N^NuNVB?< Nev\#t/9؄NX?<N\T33?<?<NX/9t?< Nev\N^NuNVB?< Nev\#t33/9؄NX?<NT?<?<NX/9t?< Nev\N^NuNVJno/. ?. ?.NP0.y^N^NuNV09^AHЈ/?<N?.N8P09^AHЈ/Bg?. N8P09^AHЈ/?<?<N8P09^Ry^A09^Ry^A09^Ry^AL929^Ry^A9r29^Ry^A09^Ry^A09^AHЈ/?<N?<N8P09^AHЈ/Bg?< N8P09^AHЈ/?<?<N8P09^Ry^A09^AHЈ/?.0<9rH?N8P09^Ry^A09^AHЈ/?<N?. N8P y fPRy yoBy yf9H\@Jyf9H]@R9`R9N^NuNV09`J yf=|L=|d` =|$=|R`4=|$=|R`$=|=|5``| g| g԰| g yf`Bn`&92.4.BAH҈ ARn n m y f309`3`09^@y33`z09X@y33`Z09R@y3By09R@3 yoBy``|gr|gv|g|gBn`X n f3 092.TA4.BAH҈ A09R@3 y o3Rn n m`NevX=@?<HyP?<=NevP=@?<?.Hn?<WNevO =@?.?<>NevX=@?<NTNN^NuNV3?< ?<N*XHy^NmX?< ?<,N*X?9HyrNm\??9NTRn0.n o nf* yNf =|?.?9TNXBn`n309"yTf y؎f ?<NT?<NTN^NuNV yfX?<BgBg?<?9"BHy?<Ne8O3JyfNT ynJyl3 y nJyl3  yUnJyl3P yf3ByN yf3NBy09`&3 `,3 ` 3 ``| gְ| gܰ| g`THy?< Ne8\?<?<@NXHy?<Nq\By|3HyX?< Ne8\`f yf3 yNf309`&3 `,3 ` 3 ``| gְ| gܰ| gN^NuNV3|ByBy=y؎09Ty"gLHyX?< Ne8\Hy?< Ne8\?<?<,NXHyg" ng ng ng nf nhj nh nh nhR nh: nh nh" nh nhJ nh2 nhb nhz nhZ nh?.?.?.?.BgBgBgBg?<NrON HyX?< Ne8\ nDf ND`( n?f N ^` nCf NI` nBf N$d` n@f N` nAf N/*` n>f?<N^T` nf N` nf N` nf N` nf N `n nf Nf`\ nf|HyZ?< Ne8\?<?<@NXHy ?<Nq\3؈ y؈f ?<NdT y؈f ?<NdTHyX?< Ne8\`N^NuNVHyX?< Ne8\Hy?< Ne8\?<?<@NX nfXHy.?<Nq\=@Hyj?<Nq\=@ nf=|Q nf=|R nf=|S`=|Jy"fHy?<Nq\=@`Hy?<Nq\=@ nfpBg?9"NXA#؄HyBg?<N8PN?<NjT?< ?<N*XHyNmX?<NTBn`8?< ?<,N*X?.Hy,Nm\N ?<BNTRn0.nm yf?< ?<N*XHy2NmX?<?9"NX?<NT?<NTBn`8?< ?<,N*X?.HyPNm\N ?<BNTRn0.nm?<NTN?<NTN^NuNVNpZ?<Ne8T309f`Hyt?< Ne8\Hy?< Ne8\?<?<@NXHyV?<Nq\HyX?< Ne8\0<`rHyNvXfHy~?<Nq\0<`HHy؊Hy؊Hy؊Hy؊NrO3Bn`0.@A41Rn n m3HHyؒHyHy4NtO By"ByT3P3 3N3Byۀ33By؎3Byp3~By|By،NBBgNs8\NByByP3N3S3SBy?<?<?9Nv4\3@t3z0<N^NuNVNs?9NtlTN^NuNV=|Hy؊Hy؊Hy؊Hy؊Hy؊Hy؊BgBgHnBgBgBgBgBgBgBgBgBgBg?<?<?<?<NpO<=@N^NuNVBHyԖNnPNa6g/X AԂ"Ҽ@m?.NzVTL N^NuNVH*n0- |g/ NgXg0<`20- |g /-NjXBm ?- NfTg0<`0<L N^NuNVH*n0- |f0<`r.0- |gV0- |f0<`R0- |g?<B?- Nh6P?/-?- NoP @f m@ 0<`m *Bm0<L N^NuNVJnl3 <`H?.?./. ?<BNevO -@Jm .`?<?.B?<BNevO -@Jl .3 <`?<?.B?<BNevO -@ nf .Ю -@ `& nf .Ю -@ `0.g <` . oH?.NlT|J@f .3 <``` Hn . /?.?<@NevO Bg?./. ?<BNevO J]|=@g3 <`` . NqN^NuNVH .<".ҼS/"</Ny"X/./Nz. /NmX*@f <`(M)G P/NjX 9L0N^NuNVH .<".PS/"</Ny"Xށ 9(@JfAה (@##הBט*T -e* -f(`  -+G# P`( f/NiX*@Jf <`(M*U`L0N^NuNV0./NjXN^NuNVH .f`v .Q*@(y` m n l`(T o l "-Ёf T (ѭ T*`* ",Ёf -Ѭ(`(#L0N^NuNVBn`<0.@A00f&0.@A10.@A1 ` Rn nmN^NuNVBn`*0.@A00nf0.@ABpRn nmN^NuNVH>.=|\A"HPgXHf0(LN^NuNVHHy/.NnPfBG`Hy/.NnPf><`Hy/.NnPf><`0. |gR0. |?/.?<=NevP>J@m 0. |g&JGm??<>NevXBg/.?<`j0. |gD0. |?/.?<=NevP>J@m"??<>NevXBg/.?<`0. |?/.?<=NevP>JGl 30<`?. ?Nk|X0LN^NuNVA X//.HyԒN}:O N^NuNV/.?<HNev\-@ .f-|3 .N^NuNV0./NmXN^NuNVH*nJ fm m Bm`@m m . *+@;| AԒg AԂf AԂh m BmL N^NuNV .##3/./. HyN}:O yB .N^NuNVA X//. /.NnxO N^NuLB@ggSBAgHJ@gHANuL rWfNuNVH*n (MBn ng?.NlT| fA&H. nU|`H| f S @  . nU| A|l0fD AH-@Hn/.?.?<@NevO <Hg 30<`dA&H0f~ =@`J/ 0./?.?<@NevO -@2.¼g .30<` .n0.L8N^NuNV?<NsT0<N^NuNVA#AP#Aۂ#A$#A#A# A#ݼ?< NsT3$`09`N^NuNV3ۂ3 ۄ3 ۆ3ۈ3ۊ3ی3ێ3ې3ے3۔3ۖ3ۘ3 ۚ3"ۜ#$3(۞3*۠?<NsT n,0& n00( n40* n80, n<0. n@0009$N^NuNV3ۂ# ?<4NsTN^NuNV#?<6NsT n 0& n0( n0* n0,09$N^NuNV3ۂ3 ۄ3 ۆ3ۈ3ۊ3ی3ێ3ې3ے nf 3נ3ע3מ3ל?<3NsTN^NuNV n0נ n 0ע n0מ n0לN^NuNV#3 ۂ?<2NsTN^NuNV?<MNsT n0& n 0( n0* n0,09$N^NuNV3ۂ# ?<NNsTN^NuNV#3 ۂ3ۄ3ۆ3ۈ3ۊ3ی?<*NsTN^NuNV?<oNsTN^NuNV3ۂ3 ۄ3?<pNsTBy n 09$N^NuNV30.| ArHЈ-@=|` nR2.AAH1Rn nm/9ݼN6X09$N^NuNV3eByBy3NuN^NuNV## .мZ#3dBy3  n 3Nu09 n 03Aۤ#Ad#A#A#N^NuNV .3 .3 N^NuNV .3 .3N^NuNV0969Ƽ n N^NuAJXyJ !JHy#Hy" <sNBYyJAJ"P$hNuNV3|ByBy3Nu n 0d n0 n0N^NuNV3 ۤ3 ۦ3!By33NuN^NuNV3 3 33By3Nu n0 n0 n0d09@yN^NuNVH?<$Hn/.NO .6.HЃ-@ .3Z .3\BG`0HЮ @ Ю RG0nm .6.HЃ-@BG`0H/ </Nf6  n00`.0H/ </Nf6 Ю @ ( Ю!@ `8`6|gΰ|gȰ|g°|g|g|g|g|g| g?/.N\RG0nmd .6.HЃ-@BG`v0H/ </Nf6 Ю @ Ю 0H/ </Nf6 Ю @ (Ю!@0H/ </Nf6 Ю @ (Ю!@RG0nm .6.HЃ-@BG`0H/ <"/Nf6  n 0Ю2H/"<"/Nf6" n!0H/ <"/Nf6  n 0Ю2H/"<"/Nf6" n!0H/ <"/Nf6 Ю @ (Ю!@RG0nmN .6.HЃ-@BG`B0H/ </Nf6  n 0Ю2H/"</Nf6" n!RG0nm0<LN^NuNVH$.f BB`&". Bvd d``bd-@-A LN^NuNVHL&gHC H@J@g@HCBCւ-C LN^.JNuNV?.?<LNevXN^NuNVH*n ..(U0.`(<< `><<`6<<BE`,<<:< ` `|Xg|dgΰ|ogа|ug°|xg Jl ndf - D.` 0. fμA м&@B#(/8H/NyX(0 D m2<7E`2<0A /0H/Ny X.f/ / N P*L8N^NuNVH>. *n (U=| Gf><#ݤ#ݨHyHyݤNP]|=@0R@?HnHnHnN:O0.g-.H|0f.f0` nff<.GRF0no<.JFl0<`0?HnHnHnN:OA&HA&H`SFSn0gJnl`0SnJnl0g.` 0RnSG0g nm`JFoH`0<0SFSG0J@l`J0g.A R&@`SG0J@lE-L0.H/HnBg?<dNznO (n*L8N^NuNVHBG n*P`0 HC|0>HA0H|f n 0L N^NuNVH<*n(n &nBn`P?<%/ N\$@Jg2. g$/ ??</ NO <n0Gg` R(@`*/ NX>/ ??</ NO <n`Bn=|Bn8< H|-f=|RH|0f8<0RH|*f R=ST`-LHnN|X=@(nH|.f>RH|0f8<0RH|*f R=ST`-LHnN|X=@(nH|lf=|Rf`$A $@-@H=@`$SX/ NX:no:.8< `0.g `0H/Hn?.?.NznO 0.g0<`0<*. ng=n` nRT:<`#ݤ#ݨ/9ݨ/9ݤHn?.?.N{\OP*.`f0. nR:<`P`N|Xg<|cg|dg.|eg|fg|gg|og|sg|ug|xgNj0.gj/ ??</ NO <n0Eg`>.E`4Sm0-J@m0 URH|` / ?N\ @f` RnSG0J@l`f>.E`4Sm0-J@m0 URH|` / ?N\ @f` RnSG0J@l/ ??</ NO <n0Eg`f0.LNevX=@g30<``0<NqN^NuNVH*n 0- |g0- |fm 0- |fm@ Bm0- |@g0<` -f / NX0- |g UR m `<0- |g2m UR . H| g ml . H|`V/ NgXg m@ 0<`>0- |gBm. H|`$`"0-S@;@m . URH|NqL N^NuNVH *n(n`":,A>. Eo>`>. 0g60n ?// NO 0H0Hє0,g0lGl JEf/ NgXg0<`":,A0. Emv=n 0g<. 2. HHAA`<. 0n `G0H0g?/ ?, NoP>J@n Gf&l@ ?<0.FH/?, Nh6P0<` 0. f0<L0N^NuNVH*n>. <.(n0, |g0, |fl 0, |f0<` ,f/ NX(9lBE`RE0HSF0J@m/ ?/ NO g0, |ff gX0, |g/ NgXgl@ `:&l`R g H| f gH| f/ NgXgl@ Bl0L8N^Nu o/ f pJWf`g fS `pNu op`R@SJWfFNuLrWf SNuAJXyJ !J"/0<NBYyJAJ"P$hNu NV#3 ۂ?<rNsTN^NuNV0.f#jݤ#nݨ`$ nl# ݤ#ݨ` n4o#*ݤ#.ݨ`Az -@ n]|=@g 0.D@=@0.|=@0.g0 .2.HЁQ @#ݤ#ݨ-yݤ-yݨ0.@=@0.|=@0.gn .2.HЁм0 @#ݤ#ݨ-yݤ-yݨ0.gHnHnNP` #ݤ#ݨ-yݤ-yݨ0.@=@0.|=@0.gt .2.HЁмh @#ݤ#ݨ-yݤ-yݨ0.f0.gHnHnNP` #ݤ#ݨ-yݤ-yݨ0.gH#jݤ#nݨ-yݤ-yݨHnHnNP#ݤ#ݨ`#ݤ#ݨN^NuNVH *n(n Bn-L-U-mBEK.g>OG|JGn|m`NB0T@|dm0<d@D@`B0D@S@|dm0<d@?NTOHyݤ/ NPO`&0-H@$-JGg FGQ0<0dR@0.BAQ/,>QQԟ׆G|0QB`Rn0.g(nB`0R 2.HmB`d .6.HЃR(@ nH|0fRZ$` R$H|9n nH|0f(n R*@NqfSE .6.HЃ @B n0L0N^Nu#ݤHyݤNTXONuHyݤNXO 9ݤNu#ݤHyݤNXONuHyݤNXO 9ݤNu#ݬHyݬNTXONuHyݬNXO"9ݬNu#ݬHyݬNXONuHyݬNXO"9ݬNu#ݴHyݴNTXONuHyݴNXO$9ݴNu#ݴHyݴNXONuHyݴNXO$9ݴNuNVH n "(fJg"¼м@ LN^NuNVH nB fB`м8 LN^NuNVH n g jDh <r`V$<H@J@fBH@ @bQB @bYB @?bUBJ@kSB&<"F€JHBЂJj LN^NuNVH n "($HBJ&<BnDB Bcp`*` B c <`6<BtjABJjD LN^NuHHyj//N*POL/WXONuHHyj//NDPOL/WXONuH o#׼HyjHy׼NN*NPO o ׼L/WXONuH o#׼HyjHy׼NNDNPO o ׼L/WXONuH////NPLNuH////NPLNuH////N"PLNuH////NPLNuH////NPLNuH o#פHyפN//NPLNuH o#פHyפN//N"PLNuH o#פHyפN//NPLNuH o#פHyפN//NPLNuH o#״Hy״NT//NPLNuH o#״Hy״NT//N"PLNuH o#״Hy״NT//NPLNuH o#״Hy״NT//NPLNuH o0H#׬Hy׬NT//NPLNuH o0H#׬Hy׬NT//N"PLNuH o0H#׬Hy׬NT//NPLNuH o0H#׬Hy׬NT//NPLNuNV n " n $&JjFFJjFFN^NuNVH~ n $& n "(JfJf`n*(fJf "`ZNVH.<`b fcBCD!E xzH@:HB<M8NF E6cH@`~GG~GGH@HBҁрSEg:jփՂ`2 E c&tE Ec 6HCBBHBE|.F΂Ć꫆Jk*RA҃тgRD Dcpr``xg`fSDJf"Jf`hHAJAf HA rD `0BADH@~GcH@`0z`XEJ@gREGcH@Ejpr` |.F΁†SDLHDЄJj LN^NuNVH n $& n "((fJg*fJg H@:HB<MNE1F,<.*FHÁ…HC΃ƅąxHB<:HC>܇ۄHAHB>܇ۄH@HC>܇ۄ>ڇلHDHEHF8:|HB>ڇن>؇HC>ڇنH@HB>ڇن~>(JkڅلSG <"FHD„v 歊ȀۆنGk Gc xz`xz`SGOHG؇Jj LN^NuNVH n $& n "(*fJgx(fJgt H@8HB:LME,<.*FHÁ…HC΃ƅąb fbRD1DHBHC.h~>ЇHG~` B@H@:|FH@HAHF<0BAHBHC8:ǒxjSG҃тd6BBHBHC,h ,ІHF|` B@H@:ƒ*HEHE8BEjSF҃BdHG>H@HA0,h ,ІHF|` B@H@6HC:2HAH@xDjSF҃dhrHF<x8(z <"FHG‡v 殌΀݅߅Dk Dc ~|`~|`SDLHDބJj LN^NuNVH*n AԒf0?<NhTf"m m ;yAԂh `, AԂf BgNhTfm m ;y`X0- |g AԂAHЈ*+@`.0-?NjT*+@fm `0- |fm -gL N^NuNV?<?.B?<BNevO -@Bg?./<?<BNevO -@Bg?./.?<BNevO V|N^Nu@   [ A   ;  b  8*=C       Z  <9H t9   ^  kRRRRRRRR`RjeRRRhbjgRR@`px|~xp`@PSS ,    Y%c%c -- -- %d [3][ | Errors on Bootsector ][ ??? ]%ld bytes %ld bytes %ld bytes %d %d %d %d %d %d %d %d %d %d %d [3][ | Errors on Bootsector ][ ??? ]A:\*.*B:\*.*C:\*.*D:\*.*E:\*.*F:\*.*G:\*.*H:\*.*A:\*.*%s %-15.13s read/write read only hidden filesystem filevolume namefolder written ??? %6ld %02u.%02u.%02u %02u:%02u Sector not found !CRC - Data Error ! CRC - ID Error ! FDC-Error #%d ! %s Track %d Sector %d [1][ | Insert Disk | into Drive A ][ OK | STOP ][1][ | Insert Disk | into Drive B ][ OK | STOP ]Formatting Track : Side 1 %02d Formatting Track : Side 2 %02d Verifying Track : Side 1 %02d [3][ Error during Verify | 1: Format | 2: Continue | 3: Stop ][ 1 | 2 | 3 ]Formatting Track : Side 1 %02d Verifying Track : Side 1 Verifying Track : Side 2 %02d [3][ Error during Verify | 1: Format | 2: Continue | 3: Stop ][ 1 | 2 | 3 ]Formatting Track : Side 2 %02d Verifying Track : Side 2 megaform.infmegaform.infFormatting Track %02d Reading Track %02d [1][ | Remove Write Protect ! ][ OK ][1][ | Please Check Disk ! ][ OK ][1][ Which Drive do you | want to test ?? ][ A | B ][1][ There is no drive B !!! | Use drive A !! ][ OK ][1][ Please insert a | new disk and | remove write protect !! ][ OK ][3][ Now ,I'll test | Track 80-83 ][ OK | STOP ][3][ Sorry !!! | You can only format | Track 0 - 79 (80 Tracks)][ ALLRIGHT ][3][ Sorry !!! | You can only format | Track 0 - 80 (81 Tracks)][ ALLRIGHT ][3][ Sorry !!! | You can only format | Track 0 - 81 (82 Tracks)][ ALLRIGHT ][3][ | Not enough memory !! ][ BAD ][3][ | Not enough memory !! ][ BAD ]Free Ram : %ld Buff : $%lx MxT %d Tracks %d Sectors %d Sides %d [1][ | Insert Source Disk | into Drive A ][ OK ][1][ | Insert Source Disk | into Drive B ][ OK ] Reading Track : %02d Reading Track : Reading Track : [1][ | Insert Destination Disk | into Drive A ][ OK | STOP ][1][ | Insert Destination Disk | into Drive B ][ OK | STOP ] Writing Track : %02d [1][ Write - Error ! | Track %d Sector %d | 1 : Write again | 2 : Format | 3 : Cancel ][1|2|3][1][ Write - Error ! | Track %d Sector %d ][ CANCEL ][1][ Write - Error ! | Track %d Sector %d Side 2| 1 : Write again | 2 : Format | 3 : Cancel ][1|2|3][1][ Write - Error ! | Track %d Sector %d ][ CANCEL ]Verifying Track : Side %d %02d [1][ Verify - Error ! | Track %d Sector %d ][ CANCEL ][3][ | Errors on Bootsector ][ ??? ][1][ | Insert both Disks ! ][ OK | STOP ][1][ | Insert Source Disk | into Drive A ][ OK | STOP ][1][ | Insert Source Disk | into Drive B ][ OK | STOP ][1][ | Insert Destination Disk | into Drive ][ A | B | STOP ][1][ | There is no drive B !!! | Use drive A !!][ OK ]%02d Sector not found !CRC - Data Error ! CRC - ID Error ! FDC-Error #%d ! [1][ %s | Track %d Sector %d | 1 : Read again | 2 : Continue | 3 : Cancel ][1|2|3][1][ | Insert Scan Disk | into Drive A ][ OK ][1][ | Insert Scan Disk | into Drive B ][ OK ][3][ | Errors on Bootsector ][ ??? ]Tracks %d Sectors %d Sides %d Scanning Track : Side %d %d %d %d %d %d %d %d %d %d %d %d %d %d [1][ | Connect Drive | ][A|B|QUIT][1][ | Disk Data | will be | completely erased !! ][ SURE ][1][ How many Tracks ?? ][81|82|83][1][ | Insert Disk | to be erased | into Drive A ][ OK | STOP ][1][ | Insert Disk | to be erased | into Drive B ][ OK | STOP ]Erasing Track : Side 1 %02d Erasing Track : Side 2 %02d [3][Switch to MEDIUM Resolution|][ Ok ][3][Error in reading RSC-File|][Terminate] Free RAM : %ld Thanx for using this program !!! $,x &,TRACKSSECTORSSIDESSOURCEDESTINATIONBAAB INFO MEGAFORM V 2.1 (C) BY P.MAIER AVOSIDECOPY1  22  12  21  1OFFONBOOTINFOFASTLOADVERIFYMULTIFORMATONOFFOFFONONOFFOFFONONOFF QUIT ERASE DIR DISKINFO TEST FORMAT SCAN COPY THIS PROGRAM IS DEDICATED TO ANTJE THE CUTEST GIRL I'VE EVER MET.WHEN I LOOK INTO YOUR EYES SO MUCH PASSION BURNS INSIDE !!! Directory A B G C D E H F Sectors :Max. :Free :Used :Sides :Tracks :Sectorsize :Clustersize :Dirsectors :Startsector of FAT :Bytes per Cluster :Startsector of Data :Fatsectors :Number of Clusters :ABCDEFGHEND COPYSTOP READNEXT TRACKNEXT SECTORREAD AGAINMEGAFORM 2.1 (C) by Peter Maier, Waldstr. 83, 6085 NauheimIF YOU LIKE THIS PROGRAM AND IF YOU CAN USE IT YOU SHOULD/WOULD/COULD SEND ME AN AMOUNT OF YOUR CHOICE, 'CAUSE THIS PROGRAM IS SHAREWARE. IF YOU LIKE TO GET THE SOURCE-CODE ( C AND ASSEMBLER )THERE ARE SOME MORE PROGRAMS I'VE WRITTEN :MS-TRANS : COPIES 360 KB MS DOS DISKS TO ST AND BACK. YOU CAN ALSO FORMAT 360 OR 720 KB MS-DOS DISKS ON THE ST.HP-TRANS : COPIES FILES FROM/TO HEWLETT-PACKARD DISKS, WHICH HAVE TO BE 80 TRACKS AND 16 SECTORS PER TRACK.VIRUSKILL : DETECTS, DESTROYS BOOTSECTOR VIRUS, CHECKS VECTORS DEALING WITH FLOPPY OPERATIONS AND INSTALLS THE VIRUSKILL BOOTER, WHICH SHOWS YOU THAT THERE'S NOGERMANYI'M ALSO LOOKING FOR PEOPLE HAVING A CASIO CZ SYNTH TO SWAPSOUNDS AND INFORMATIONS. HOPE TO HEAR FROM SOMEBODY !!!! VIRUS ON YOUR BOOTSECTOR.PLEASE SEND ME 30 DM.Version 1.0 19.05.87Version 1.9 01.01.88Version 2.1 07.05.89THANK'S TO ALL WHO SUPPORTED MESPECIAL THANKS TO F. AUMANNHI !!!SOURCE :DESTIN. :READWRITESTEPSPEED :SLOWFASTSLOWFAST>$"$":040&0&7&xt2{=ņs8> `@0 ` @@|<``@@@@@ @@ @@ @ @ ?           ppp?p?p?p>p>p>p@ @@ @@ @ @ ?           ppp?p?p?p>p>p>p@ @@ @@ @ @ ?           ppp?p?p?p>p>p>p@ @@ @@ @ @ ?           ppp?p?p?p>p>p>p@ @@ @@ @ @ ?           ppp?p?p?p>p>p>p@ @@ @@ @ @ ?           ppp?p?p?p>p>p>p@ @@ @@ @ @ ?           ppp?p?p?p>p>p>p@ @@ @@ @ @ ?           ppp?p?p?p>p>p>p@@ 8@ @@@ 8@ @0|`@@ 8@ @0|`0|`@@ 8@ @0|`??????0|`& &(xX8W`a b(B.  &'(012;< =FG HQR S\]0 ^gh\ i<~0|A0Jf HrHrHr  !" #./ 0<= >IJ  KLM>? @\]^ef  (  <   < x < X < 8 < <h <H  <FJ1$ + ,  4     5    C ; B NP   RTV     '!, H&#1d #"b ! "$%1  %#<',1  ( ) * + , &-9B  0./ /-3122064553978  86 ,:; ; 9E=D16> ?  @( AD B` C| D < F=  C 6 $, & " &M @I\I0x      ?      5  D5 ":B&! 0! : D N X! c  q    !  !  ! ! AAA<$" <$D<$f<$!<$)<$1<$%9<$08  8  < 07 >4 L2 00 0% 0  0<   Z  0X  h  v AHCDt"N=@? AO+ { ?  >  > 9 9 s >79$&,;h8!  ,  %   ! %             g q {        5 "#`$&' (@* +X t CON:AUX:PRT: (( (( AAAAAABBBBBB @$@Y@@@È@jA.AcAׄCAy7DxCyٝFnH=c)\I1sKP1P=M8O?ZwH02g$uOs<@ Wi??!TD-@ !TD-@$?!TD-?.B9?? $         $$$* *$   $$ ,. :p$$$$$$$>          "        $$ ,0 :p$$$$$$$B  >  &        :   "  *       $$"" B     $$      . . . . .  B B l             "            Z    6  ,""*                                         "  &                                                                                                    "               &                                                 $$   L$$$ "(*$ L$$$8$$"H$$$8$ @$$$4$   , , , , , ,6$D$$$4$ H$$$4$D$$$4$   F$$$  &         >                      2         "  (l@ (X&>&. . 4&f.,*   ."($N & &d8 (            &     (L"Z6$(H""H"ª,6$f@D$dHH8PtBF&l`0b,n,,<<`6<<BE`,<<:< ` `|Xg|dgΰ|ogа|ug°|xg Jl ndf - D.` 0. fμA м&@B#(/8H/NCxX(0 D m2<7E`2<0A /0H/NCx X.f/ / NNP*L8N^NuNVH>. *n (U=| Gf><#>#BHyHy>NWP]|=@0R@?HnHnHnNRO0.g-.H|0f.f0` nff<.GRF0no<.JFl0<`0?HnHnHnNROA&HA&H`SFSn0gJnl`0SnJnl0g.` 0RnSG0g nm`JFoH`0<0SFSG0J@l`J0g.A R&@`SG0J@lE-L0.H/HnBg?<dND O (n*L8N^NuNVHBG n*P`0 HC|0>HA0H|f n 0L N^NuNVH<*n(n &nBn`P?<%/ NN\$@Jg2. g$/ ??</ NMO <n0Gg` R(@`*/ NNX>/ ??</ NMO <n`Bn=|Bn8< H|-f=|RH|0f8<0RH|*f R=ST`-LHnNFX=@(nH|.f>RH|0f8<0RH|*f R=ST`-LHnNFX=@(nH|lf=|Rf`$A $@-@H=@`$SX/ NNX:no:.8< `0.g `0H/Hn?.?.ND O 0.g0<`0<*. ng=n` nRT:<`#>#B/9B/9>Hn?.?.NEOP*.`f0. nR:<`P`N|Xg<|cg|dg.|eg|fg|gg|og|sg|ug|xgNI0.gj/ ??</ NMO <n0Eg`>.E`4Sm0-J@m0 URH|` / ?NKd\ @f` RnSG0J@l`f>.E`4Sm0-J@m0 URH|` / ?NKd\ @f` RnSG0J@l/ ??</ NMO <n0Eg`f0.LN1 X=@g30<``0<NqN^NuNVH*n 0- |g0- |fm 0- |fm@ Bm0- |@g0<` -f / N_>X0- |g UR m `<0- |g2m UR . H| g ml . H|`V/ N3JXg m@ 0<`>0- |gBm. H|`$`"0-S@;@m . URH|NqL N^NuNVH *n(n`":,A>. Eo>`>. 0g60n ?// NJhO 0H0Hє0,g0lGl JEf/ N3JXg0<`":,A0. Emv=n 0g<. 2. HHAA`<. 0n `G0H0g?/ ?, N:8P>J@n Gf&l@ ?<0.FH/?, N3P0<` 0. f0<L0N^NuNVH*n>. <.(n0, |g0, |fl 0, |f0<` ,f/ N_>X(9lBE`RE0HSF0J@m/ ?/ NLtO g0, |ff gX0, |g/ N3JXgl@ `:&l`R g H| f gH| f/ N3JXgl@ Bl0L8N^Nu o/ f pJWf`g fS `pNu op`R@SJWfFNuLrWf SNuAќXyќ !J"/0<NBYyќAќ"P$hNu NV#ψ3 ?<rN>,TN^NuNV0.f#^>#bB`$ nl#>#B` n4o#>#"B`An -@ n]|=@g 0.D@=@0.|=@0.g0 .2.HЁQ @#>#B-y>-yB0.@=@0.|=@0.gn .2.HЁм0 @#>#B-y>-yB0.gHnHnN\8P` #>#B-y>-yB0.@=@0.|=@0.gt .2.HЁмh @#>#B-y>-yB0.f0.gHnHnN\8P` #>#B-y>-yB0.gH#^>#bB-y>-yBHnHnN]|P#>#B`#>#BN^NuNVH *n(n Bn-L-U-mBEK.g>OG|JGn|m`NB0T@|dm0<d@D@`B0D@S@|dm0<d@?NPTOHy>/ N\8PO`&0-H@$-JGg FGQ0<0dR@0.BAQ/,>QQԟ׆G|0QB`Rn0.g(nB`0R 2.HmB`d .6.HЃR(@ nH|0fRZ$` R$H|9n nH|0f(n R*@NqfSE .6.HЃ @B n0L0N^Nu#>Hy>NVXONuHy>NVXO 9>Nu#>Hy>NUXONuHy>NUXO 9>Nu#HHyHNVXONuHyHNVXO"9HNu#HHyHNUXONuHyHNUXO"9HNu#PHyPNVXONuHyPNVXO$9PNu#PHyPNUXONuHyPNUXO$9PNuNVH n "(fJg"¼м@ LN^NuNVH nB fB`м8 LN^NuNVH n g jDh <r`V$<H@J@fBH@ @bQB @bYB @?bUBJ@kSB&<"F€JHBЂJj LN^NuNVH n "($HBJ&<BnDB Bcp`*` B c <`6<BtjABJjD LN^NuHHy^//NWPOL/WXONuHHy^//NWPOL/WXONuH o#Hy^HyNUNWNUPO o L/WXONuH o#Hy^HyNUNWNUPO o L/WXONuH////NZdPLNuH////NZPLNuH////NZPLNuH////N]|PLNuH////N\8PLNuH o#HyNU//NZPLNuH o#HyNU//NZPLNuH o#HyNU//N]|PLNuH o#HyNU//N\8PLNuH o#HyNV//NZPLNuH o#HyNV//NZPLNuH o#HyNV//N]|PLNuH o#HyNV//N\8PLNuH o0H#HyNV//NZPLNuH o0H#HyNV//NZPLNuH o0H#HyNV//N]|PLNuH o0H#HyNV//N\8PLNuNV n " n $&JjFFJjFFN^NuNVH~ n $& n "(JfJf`n*(fJf "`ZNVH.<`b fcBCD!E xzH@:HB<M8NF E6cH@`~GG~GGH@HBҁрSEg:jփՂ`2 E c&tE Ec 6HCBBHBE|.F΂Ć꫆Jk*RA҃тgRD Dcpr``xg`fSDJf"Jf`hHAJAf HA rD `0BADH@~GcH@`0z`XEJ@gREGcH@Ejpr` |.F΁†SDLHDЄJj LN^NuNVH n $& n "((fJg*fJg H@:HB<MNE1F,<.*FHÁ…HC΃ƅąxHB<:HC>܇ۄHAHB>܇ۄH@HC>܇ۄ>ڇلHDHEHF8:|HB>ڇن>؇HC>ڇنH@HB>ڇن~>(JkڅلSG <"FHD„v 歊ȀۆنGk Gc xz`xz`SGOHG؇Jj LN^NuNVH n $& n "(*fJgx(fJgt H@8HB:LME,<.*FHÁ…HC΃ƅąb fbRD1DHBHC.h~>ЇHG~` B@H@:|FH@HAHF<0BAHBHC8:ǒxjSG҃тd6BBHBHC,h ,ІHF|` B@H@:ƒ*HEHE8BEjSF҃BdHG>H@HA0,h ,ІHF|` B@H@6HC:2HAH@xDjSF҃dhrHF<x8(z <"FHG‡v 殌΀݅߅Dk Dc ~|`~|`SDLHDބJj LN^NuNVH*n Af0?<N`Tf"m m ;yAvh `, Avf BgN`Tfm m ;y`X0- |g AvAHЈ*+@`.0-?N6|T*+@fm `0- |fm -gL N^NuNV?<?.B?<BN1 O -@Bg?./<?<BN1 O -@Bg?./.?<BN1 O V|N^Nu@ RRRRRRRR`RjeRRRhbjgRR L 00$PL,<0$"$":040&0&7&P789B:;<Br=JK1 LNOPRST_`! ast1uwxy{|}11 !! 1 !  )* +56 7vw?x@>WX@Y}~$?=?@@A@<$45=6EFGA7@'(")ij@kA(@>?$@NOF$LFh- 10  2    1 0, H2 d  01 2 2 1 0 (  D2 * `#  |  # 0  >  B >    ? $ = @ ? \# x>  <  ?  ?  ;  #   ' C << X  t @  6  ? ! ?  @  '  8?  T# p   PY%c%c[1][ | Bitte MS-DOS Disk | ins Sourcedrive | einlegen !! ][Yeah]Testing Track 0 [1][ Readerror ! | Track 0 Sector 1 | 1 : Read again | 2 : Continue ][1|2]Testing Track 1 [1][ Readerror ! | Track 1 Sector 1 | 1 : Read again | 2 : Quit ][1|2][1][ | I can read this disk ! ][UFF][1][ Sorry ! | I can't read this disk ! ][BAD][1][ Insert Disk to be | formatted into | Drive ? ][A|B| STOP ] Formatting Track : %02d [1][ Format-Error ! | Track %d | 1 : Write again | 2 : Continue ][1|2] Formatting Track : Side 2 %02d [1][ Format-Error ! | Track %d | 1 : Write again | 2 : Continue ][1|2][3][ | Not enough memory !! ][ BAD ][1][ | Insert Source Disk | into Drive A ][ OK ][1][ | Insert Source Disk | into Drive B ][ OK ] Reading Track : %02d [1][ Readerror ! | Track %d Sector %d | 1 : Read again | 2 : Ignore | 3 : Abort ][1|2|3] Reading Track : Side 2 %02d [1][ Readerror ! | Track %d Sector %d | 1 : Read again | 2 : Ignore | 3 : Abort ][1|2|3][1][ | Insert Destination Disk | into Drive A ][ OK ][1][ | Insert Destination Disk | into Drive B ][ OK ] Formatting Track : %02d [1][ Format-Error ! | Track %d | 1 : Write again | 2 : Continue ][1|2] Writing Track : %02d [1][ Write-Error ! | Track %d Sector %d | 1 : Write again | 2 : Continue | 3 : Cancel ][1|2|3] Formatting Track : Side 2 %02d [1][ Format-Error ! | Track %d Side 2 | 1 : Write again | 2 : Continue ][1|2] Writing Track : Side 2 %02d [1][ Write-Error ! | Track %d Sector %d Side 2 | 1 : Write again | 2 : Continue | 3 : Cancel ][1|2|3][1][ | Insert both Disks ! ][ OK ][1][ | Insert Source Disk | into Drive A ][ OK ][1][ | Insert Source Disk | into Drive B ][ OK ][1][ | Insert Destination Disk | into Drive A ][ OK | STOP ][1][ | Insert Destination Disk | into Drive B ][ OK | STOP ][1][ | Insert Source Disk | into Drive A ][ OK ][1][ | Insert Source Disk | into Drive B ][ OK ] Reading Track : %02d [1][ Readerror ! | Track %d Sector %d | 1 : Read again | 2 : Ignore | 3 : Abort ][1|2|3] Reading Track : Side 2 %02d [1][ Readerror ! | Track %d Sector %d | 1 : Read again | 2 : Ignore | 3 : Abort ][1|2|3][1][ | Insert Destination Disk | into Drive A ][ OK ][1][ | Insert Destination Disk | into Drive B ][ OK ] Formatting Track : %02d [1][ Format-Error ! | Track %d | 1 : Write again | 2 : Continue ][1|2] Writing Track : %02d [1][ Write-Error ! | Track %d Sector %d | 1 : Write again | 2 : Continue | 3 : Cancel ][1|2|3] Formatting Track : Side 2 %02d [1][ Format-Error ! | Track %d Side 2 | 1 : Write again | 2 : Continue ][1|2] Writing Track : Side 2 %02d [1][ Write-Error ! | Track %d Sector %d Side 2 | 1 : Write again | 2 : Continue | 3 : Cancel ][1|2|3][1][ | Insert both Disks ! ][ OK ][1][ | Insert Source Disk | into Drive A ][ OK ][1][ | Insert Source Disk | into Drive B ][ OK ][3][| Switch to MEDIUM Resolution |][ Ok ][3][| Error In Reading MS.RSC |][ BAD ][3][| Error While Allocating Memory | ][ BAD ][1][ | 1 : Deutsch | 2 : Englisch ][ 1 | 2 ] h CON:AUX:PRT: (( (( AAAAAABBBBBB @$@Y@@@È@jA.AcAׄCAy7DxCyٝFnH=c)\I1sKP1P=M8O?ZwH02g$uOs<@ Wi??!TD-@ !TD-@$?!TD-?.B9?? $   & B B l                       "  :        "  4                              $         $               $           $    4   &                        $                       $             $                    $$$   $$ .. *.$" "  (l@ (X&>&. . 4&f.,*   ."($ &P8 (           &"   "(L"Z6$(H""H"ª,6$f@D$dHH8PtBF&l`0b,n,,/ 0ǽ#‹'@չNcV=MۢoˀgN~l9s:\Uј]r2+*7S.6bv<$_gmm}Rs,)QOՐm͠eZ`zВ/L UgM^wJ︼Vcfo֩Z1?/X*O=Ve?Qsh~Nڇk})^·眼[D]b Y;c]u.4S3Mex:CmkxJ`JGV."z?َ׃Ke<^{h\Nnàֶ괐6zVuQdY)zx.Sl"GGߑ(5A4syn hSm{<l읾jCǽ'9\sY]g ժiSy h>g@r,4Q~~l?b6>-k T5!$ 2a\:w O}7h(5 ZGEт'3w<T+NH^wP6Z+z%̍>#S˭h Pى .2B ekVg79*:g} /~f>&jFu C67ƩN`Q[}nײ=nE3TB%5X9\VGSo 5L/ۺ*کo'W̃ScoyFs9ͿЖGY4f񦽆0RWhqŊwrhH=="FtQ5wm7]6,䧏 B~vlUҁOoy:U O_>9F]+]lXX޽6~, Z*Ӵ\#-yjSs_O|mPU/߱;kd~Q?7 #-hfd38aq7]>s{{Ek"ŰUà;w^ZC_~:%Ck-BTUdjsY??ëG;>\h}W׀b;&??*^%ĂR.#f-uo)ޕٳN $LƲMP\^NBXT8pղ_'}vs5sk8!콏@Xʬ|Ae6t^t\2-ғY~?}on?ʸ':}LKT@8~q̱!HV45B.dF˰ ڵ/msЯr_[l*/|Տ)0&}>jPtru*]m=߼%Kx] old!o@at_p ܸySn\3@sXג[pIvD<6y lJvP ݼ)zM=nk,{!eSy[y@{8qg)\B7]*ǖׯrHBM f9eAfrIA_?iz9O(+`pycbB5ُ {kw,:Qk `:ԚuĬ{F;sOy){jjm#ZsUc7;'~byn o@۵V>r*H+ˏ2c~UW5s߂>mIa@՜4ߥJ_UHAm&o ʸ~6O(*"6aS̵D?`A^$c"L~71mvoSn1-Sgvc _,/'qNkk]G$~>pf5>ۋXmoE|y/ɋџyUz!|r[W}rz|GԱ&e&G3ҞvB<Ìv7ܘfmWQ 3?ڣGD|z9saseIi2Sp;}Q1D|Cu Z&Z@ۣupMz=&[ W-U%U b-^> xtw>Cgw }~!? [׮넺|yOz[{R0}u|0KPgW+A (P4rqD ~>W߲ 3 G;j[1[Ib։/w(>TY7ף/1ݛ'Sj'qyЯ,_w}{/.pE([[~?K<4&}> qiS/p_(^1Kc[e+xj߀_ ڻی<~ uFҹ།@zΗ`qOGPXַAT#NV_M.S0ݬAQ#i Nߣ!ϸA l2H>?q_VJ:yfoM?e?&5̊WOlCɄH/OXY Gm8RܖtE5c^d l7fKUR~׮xV5UwZGE,?8]ӵ_CՋ/KZjz ԫPɝ>p:3aI='U%+Mw41zkzAEmN 6'MPfأXٵ(ShZͥ?OvUU5iw2,r>A>@p>ǯrooKa=ZD_ąF>d|^}Xp` \;[SO@{L} *=[WXG`p֮_hsğBa N`*/\:tjI 5q} S>aV; zSZAInH͘,?ʗ&{~]IDu?io_P{O)b㮚ڌsBG?zGAD,5kdcu`C@)W B|!`D6eobPL ,(W0`,H?XHT;>%+t8HGBuHM!'9a~ͳJȢX`&ү GHW?<.by{ϷτLi"=Y<^*]g'`b/~(t|W=1k~G|+|"M. gGwrݲ~n?⽣{=C~e|OwSݿ:2}՟ሪgFop'Bf{Eשk,&w4jӻK5^.{tlhvissTr'2<[E~ B}*l6-M|.gӏcY٥ϒNⲪ%bmN* Af_δ3g+* *;ۦR%_`(ew\J jGt-yBX}Rdr~ 2U$`4 QUQwȹB"#[M&xaw}Qϒ?XGǘG(9 ?g-R(Vî XgB'ݾ".R*laB=Yǘj!Hˆܔ㭰*e7we|ZapL㔍`'=wZg'˽|5yν!7I:^ZWʝYM%G^oA8RU{K?TjzTjWw l-)`&rbqa5m5dnLj_pUǯsoExp/Oy|zJ'<ڠ)}A 0 f"Km4Nx; R~6FYA׃6Mһ`k] ¶k]J l& j ɼXg^#kp/2?-==}e@ˮYɘgڊ&}Ez5Ͻ.{M @HZ`I|t2,Xəb#n6|&׳uߥ4xf){VI%6Ar7o.X@BNC<B[VWjQxEg̓ݭ'3É)}v>01S %WyB2EV[2"|5GU!E/~|L=_:>g h|g]\:oD`HPPoʎAzz?|yܗ*v֓8l>lNJNM xQ̸QWG!B PXg&Rl|<#So1}By0vDҩnSE[YCLo@ o뚕]ƏڠP1sZńAyC=8H~*/ZO~S>ܶj׵dazwyeGzo3d Z/7u`2i#lJT~?[| 'ER %WP} p ҫO gŠؙ!;}.87>'=5= d/|&i+c'8k<k@IKpz:L V\tR& "-; Sܷ4K-5[B߬n|CD,fNMbO>{·kPǧrDR^|> Vq϶>2 ɇƗǷc~js4Nt+)|Q@+n_d;vUXZe5Xk۵h>b>~EJsx=oC;G̯aq{\,Er]LҟU$l}}nueW1r\G{4h{/C0t}?|^פ',_0_c3z+faZ@::Rxond/ ,s =we?Jn[TϬF|$&)ߏFf8$̂fr6ORW'*ŞY 6$17ns{KԢFg&Ǣ|Ƅ' |bwX@jl B_y|xߐiιF)-/^O"|;s[E[fkȞz=|螶qgKG9'vK?kL;ޕ8ͶXʡGi_%!,)2WAP/h+[R`ٛVWUb,őb͚ޭNMpbiy4s~1/OZGA8N33>j_Xtx)1) dwn%K qgxsqnͽ)+`u0#"Rb z5<s_B.ןWIO<)cN|\?2U:bžr T3j+~O~iϿN6g^z|ycC6h3IZ 3Yjխ>jA^e־k.{'Ct?i:SR|NMv/tE~q"DQ79p`L;\QB 5 ! 1xr.tHdSZ kQ!mcx]g"v{95~M07r?.#JR;ͺ$8aݮ/ 6-k*ih61)-lh1-)6a \ABC.V25\BACK_1.ABC fr L=s]իan/m[ߪ z \.)R-lh1-#2a \ABC.V25\BACK_2.ABCMfr L=sH/d ߺ^@+a-lh1-La \ABC.V25\CONV_1_2.ABC%frр-OY0ms̵c0DŽFcݐN'DMYկL@Z  +-lh1-Ia \ABC.V25\CONV_2_1.ABCkfrр-OY0msZ sndBرŸnSVT)YCց-邬WTB !",T r~0F,BH<,"