4`N p AHhps vQ\c$4[Z{~bvPv-ZCJ8]bXVAx tt5"*B`id-M-9r\U~6}R蹌6Nt?V ,9Jy2J h8nvjt tuGt,^ɋx\c;s^2*J6& D2bC {,~{2S $0[֮0΄`%Zl Rbi֮C \c 蕚r ڶ0 $jv0]bhs "*s T} 6\cJ^7Nu^6*jQv"jsl"ܾ3B W : 0Њ#WPQ6 'rwv#j\ v.j X|2H \)r4H*ht_wtV!8v3!O95f'%jYO` @` ! #%`')+-/1 3@5`79;=?A C@EIKMOQ S@U`WY[]_a c@e`gikmoq s@u`wy{} @` @ ` ` @ @ ` ǀ O` @` ! #%`')+-/1 3@5`79;=?A C@EIKMOQ S@U`WY[]_a c@e`gikmoq s@u`wy{} @` @ ` ` @ @ ` ǀ RAMDYSK NEO512 F. .. DESKTOP C %nDESKTOP DOC )v DESKTOP TOS n DFT TOS 3o RDE PRG y43RDE RSC mRDE_V4 DOC Ӟ$5/* DESKTOP.PRG Program by W. Alan B. Evans, [wabe@ukc.ac.uk] March 1992. If put in AUTO-FOLDER of "booting" RDY-ramdisk will ensure that any DESKTOP.INF file in the ramdisk's root directory will be copied to C:\ (if C:\ exists) where the newer TOS-Versions will look for it. With TOS 2.06 NEWDESK.INF (or DESKTOP.INF) should be copied to C:\NEWDESK.INF and this is now done in the DESKTOP.TOS (Version_2? of DESKTOP.PRG). The TOS Version is also printed out - and it is still smaller than 2048 bytes so will only pinch 2 clusters of your ramdisk!! wabe May 1993. */ #include #define TOSPTR (*(unsigned short **)0x4f2) extern char *strcpy(),*gts(); main() { long st; char file[60]; unsigned short tos; char *itoa(); /* This is escape from "BOOT & WARMSTART" loop caused by faulty ACC's etc. since it enables one to invoke a simple non-GEM shell e.g ME.TOS, COMMAND.PRG, RDYSH.PRG or GULAM.PRG etc. to rename the offending ACC or boot program */ if (Cconis()== -1 && (Crawcin() & 0x5f) == 'X') { Cconws("\r\n FULL PATH\\NAME OF PROGRAM TO BE EXECUTED: "); Pexec(0,gts(file),"\0","\0"); } /* Get Tos_Version */ st= Super(0L); tos = *(TOSPTR+1); Super(st); /* Might as well print it out */ Cconws("\r\n Tos_Version = \033p"); Cconws(itoa(tos >> 8,file,16)); Cconout('.'); if ((tos & 0x00FF) < '\020') Cconout('0'); Cconws(itoa((tos & 0x00FF),file,16)); Cconws("\033q\r\n"); if ((long)Drvmap() & 04L) if (tos >= 0x104) /* STE TOS Present! */ /* Ensure the proper DESKTOP.INF file is looked at by new TOS */ { if (tos < 0x200) st= fc("DESKTOP.INF\0","C:\\DESKTOP.INF\0"); else if (st= fc("NEWDESK.INF\0","C:\\NEWDESK.INF\0")) st= fc("DESKTOP.INF\0","C:\\NEWDESK.INF\0"); } /* Execute the 40-Folder Patch Prog if found on C:\ with old TOS */ else Pexec(0,"C:\\FOLDR???.PRG\0","\0","\0"); Pterm(st); } /* * A useful File_Copying subroutine - preserves date_stamp on old TOS */ int fc(file1,file2) char *file1,*file2; { register char *buf; int i,handle1,handle2,nsects,nsecmax,erc,no_tms,info[2]; long lo,nrw,flngth; erc= 0; buf= 0; if ((nsecmax = (int)(Malloc(-1L)/0x200L)-4) < 0) { gemdos(9,"\r\n INSUFFICIENT MEMORY!! "); goto end; } if ((handle1 = Fopen(file1,0)) < 0) return(-1); Fdatime(info,handle1,0); flngth= Fseek(0L,handle1,2); nsects= 1+(int)(flngth/0x200L); if ((no_tms= nsects/nsecmax) == 0) nsecmax= nsects; if ((handle2 = Fopen(file2,0)) > 0) { Fclose(handle2); Fdelete(file2); } if ((handle2 = Fcreate(file2,0)) < 0 ) { gemdos(9,"\r\n Fcreate FAILURE - COULD NOT OPEN FILE: "); gemdos(9,file2); --erc; goto end; } if ((buf= (char *)Malloc((long)nsecmax*0x200L+0x200L)) == 0) { gemdos(9,"\r\n Malloc FAILURE!!! "); --erc; goto end; } Cconws("\r Copying "); Cconws(file1); Cconws(" to "); Cconws(file2); Cconws("\r\n "); i=-1; while (i++ < no_tms) { if (i == no_tms) nrw= flngth- (long)nsecmax*0x200L*i; else nrw= (long)nsecmax*0x200; { if ((lo= Fseek((long)nsecmax*0x200L*i,handle1,0) < 0) || (lo=Fread(handle1,nrw,buf)) != nrw) { gemdos(9,"\r\n Fseek or Fread FAILURE"); --erc; goto end; } } { if ((lo= Fseek((long)(nsecmax*0x200L*i),handle2,0) < 0) || (lo= Fwrite(handle2,nrw,buf)) != nrw) { gemdos(9,"\r\n Fseek or Fwrite FAILURE! DISK FULL? "); --erc; goto end; } } } /* end of i loop */ end: if (!Fclose(handle2)) { if (erc < 0) Fdelete(file2); else { handle2=Fopen(file2,0); Fdatime(info,handle2,1); Fclose(handle2); } } if (buf != 0) Mfree(buf); return(erc); } /* Cheap & minimal gets alternative ( An economical alternative to "gets" - does not, however respond to CNTRL-C on the Older TOSes ) */ char *gts(data) char *data; { register char *p = data; while ((*p=gemdos(1)) != '\r') if (*p == '\010') { --p; Cconws(" \010"); } else p++; *p= '\0'; if (*data) return(data); else return((char *)0); } /* Some code, pinched from Sozobon, for converting numbers to asci & used above to print out the TOS Version - it is extremely economical */ char _numstr[] = "0123456789ABCDEF"; char *ultoa(n, buffer, radix) register unsigned long n; register char *buffer; register int radix; { register char *p = buffer; char *strrev(); do { *p++ = _numstr[n % radix]; /* grab each digit */ } while((n /= radix) > 0); *p = '\0'; return(strrev(buffer)); /* reverse and return it */ } char *ltoa(n, buffer, radix) register long n; register char *buffer; int radix; { register char *p = buffer; if (n < 0) { *p++ = '-'; n = -n; } ultoa(n, p, radix); return(buffer); } char *itoa(n, buffer, radix) int n; char *buffer; int radix; { char *ltoa(); return(ltoa(((long) n), buffer, radix)); } char *strrev(string) char *string; { register char *p = string, *q, c; if(*(q = p)) /* non-empty string? */ { while(*++q) ; while(--q > p) { c = *q; *q = *p; *p++ = c; } } return(string); } DESKTOP.PRG is a little program that is meant to reside in the AUTO folder of "booting" RDY ramdisks. For older TOSes it should be renamed FOLDRXXX.PRG where XXX stands for the number of directory spaces to allow for in addition to the standard 40(see below). It checks the TOS Version at boot-up. If it is NEW Tos (version >= 1.4), then it will copy any DESKTOP.INF there may in the root directory of the ramdisk to drive C:\ (if the latter is present) because, if C:\ is present, TOS_1.4 and above WILL take their desktop from it - despite "booting" from the AUTO folder of the RDY ramdisk. If it is old TOS (which is subject to the 40-folder limit) it will try and execute a file FOLDR???.PRG on drive C:\. This is the patch program for the 40-folder bug. If DESKTOP.PRG itself (in the AUTO folder) has been renamed FOLDR200.PRG (say), then this will cause space for an additional 200 directories to be visited. This is only likely to be needed if a hard disk is connected. Thus it is reasonable that DESKTOP.PRG should look to find this program on drive C:\. In turn, this implies DESKTOP.PRG must come after the hard-disk "waking up" program e.g. AHDI (or ICDBOOT or equivalent) which normally comes first. Finally, if key "X" is pressed during boot-up, DESKTOP.PRG allows you to execute any Program (that does not use GEM calls). This can be a life-saver sometimes - e.g. when an ACC (or a subsequent AUTO folder program) has become corrupted and causes a warmboot when an attempt is made to load it - this, in turn, causes the "booting" RDY ramdisk to start booting again, eventually attempting to load again the same corrupted ACC - hence another warm reset - etc. etc. ad infinitum. Clearly emtering a shell like msh.tos (in order to change the name (deactivate) the culprit program) is invaluable to save having to cold boot - and possibly lose valuable work on the ramdisk. W. Alan B. Evans, [wabe@ukc.ac.uk] P.S. (for C Programmers only) Of course, this is the seed if an itelligent booting system. If you wish to proceed to develop an intelligent booting program utilising a "booting" RDY/RDE ramdisk, unpack IQ_BOOT.ZOO and there you will find a proto source code file, IQ_BOOT.C, for such a program. Of course, you need a C compiler ( Mark Williams C is ideal) to compile it - or rather your own "tailored" version of it. However to give you an idea how it works there is also LD_P.PRG, which will load a tiny (50 kbytes) "booting" RDY\RDE Disk P:\ containing in its AUTO-folder the program compiled from the proto source. `P`,LArc's PFX 1.13P 1990 -soft, Markus Fritze g.h` /H*@"m mA$H -(H!!!!!!!!Sj JC pC QN , HD , p,m:<0r Q&N~Q~d RESn`, HED@|D@ArTApAQڀn&-A LA(HJkf&CH"grאg<fA``+D +E+F.ޅR؃+D؅+DC m Sj m -м`BSjL gpNޭ-lz5-2fd.tos`L?*o"m #.I+I/ B},g/ *g?<JNA NT@ ?F:LNANVp PATO lfBpd_ {Xf,Hzp d\OHzHnN8XO/BgpKd@Bp -@ x=h/.p?0.HPP.o?pdXO@ @d p0 Ir bOMxg^ ne> n׾dH7NTPOHS`8>>g"VE`*oiT LN^Nu^*nHy?p/PPOY@=@l`RBg/.p=dPOlp 8pW H0!B:%NPORHf=_n" (wo0 p> ҈"A$<'l Hzt"S`H?{^ ~*@ f W_` o(Sc/"2PRnnlN16V1f$#/N1l1d PO" a ` '.#h?VPO!M& lp`B@f/ 0!p? 1gHz`k."??> 6p@>0N0t) wfHl)[`4/pD"4+ޚ)-Mބ0g / pItA*}_/ *n @f g fSHz&R`B @g  0FH0. @ <.(Mp0//NzPOA Z``" cz_$0"@0HAHBЁH@B@ЉN0123456789ABCDEF FULL PATH\NAME OF PROGRAM TO BE EXECUTED: hqTos_Version = pq DESKTOP.INepwC:\zNEWqvz}}FOLDR???.PRGhqINSUFFICIENT MEMORY!! gqFcreate FAILURE - COULD NOT OPE?N FILEphpMallocF!8 Copying to:;seek or FAdFwriD! DISKkr?ց(  ` *`Pack-IceI *L ,La*oMGLA "grѓg f``GP$]t***Ԋ**EL ;H ;C&NN&&Sj&n".扑&&SjN%a*d"ra$dCv !a"H@@Vҩ%QnNuf%Nurf%AQNuCtaTxr1 Hka1 Ag"CvtaTr1 HaBq jD`rptadpt?aBC@!!Q`R   ICE! `m*p*gC"m Ѷ#9t.I+I}BP5V` TL|)=i RgWF <мδ= u6xb U^Z dsyM$ `3Ǵb:x6!+fb `vn9oj`6QaO 1b +րg ܫlpf WZK7(xS+ ,fޛ~ixTDM/` [fcDZ73/9׍ldY@Zo9$-pf43+#1E g"E``e0@:_`WB͑=hop3 \D !>3]80 AX""Nҹ N(CR@]!J|Bgmk<'lc ¹ۀڬδ#8+HK?R-`[ .K }A;c*@ f7X6нHngNgBxOPp;)MR!VEl(Bto"z䐁`~ڳαpie4ԨЖ3V~ 2C ̪/Rn@ < l J O+VF/^(Ša`^k6HҋFPOkB r`pT+f Rp? ډg) @S< f( p>d7xLp B@:dfL4fFMn>'nNu~Ayg zYf+ :qK>l-Mg / pIEB641Dp ;xiJL38/ogftI/HgLEjء2K {D?z/gpRCMU6 l 0<:BPmNH-T>WKw< 4\v|RҀCHAy T4:h娀>`73$ax5#9-XzLIWt,p_U@k cT[NhBg _A؅$H@ @܇JA&cuBjH=U `2&"jL.0(@HiR@A&&  P"?p/-@?0 g2 l_fp ,` fSK`3B,zp o\O QJ`Bj_I0+,x/v q * \#e@ac.uk (Sep.92)wʸ\FmMDeni{=T8,U{J.2 aSؠP9=^t u1d|FTO7[UA^,B+.Pfinwe9c\e։`а JfdO²A/Fc|X#1υ`UL{2]N%Mlf+=SLABELVALIDyXH9S6"'uTRUCT$O+`S%#!E2M yBL.RESsNI/z9̲dy P(: YO TLR()|",WARy[NGaSjIUSPACvF'A|rDi.CIPI)5r!'{tobuopyumucga*possible[pIEXMd]`iiYallocv0pBK _Yesz "VWIFSWCr 11#@readWRL"Fseek nbwrite;AILU FULL DFF ADC0|-5K# MA`CFOF (ENTI ~) BUFF? [def:]e PUOTHN FLOPPP?DISK IN5HIT ANKEYtNot enough Memory! Uwabs READ ERROR/ 0123456789ABCDEF /d( @ , `,0%`,LArc's PFX 1.13P 1990 -soft, Markus Fritze g.h` /H*@"m mA$H -(H!!!!!!!!Sj JC pl QN , HD , p,m:<0r Q&N~*6<Q~d So:Q` H"CAD@CD@ArTApAQoQ`&-A& LA(HJkf&CH"grאg<fA``+D +E+F.ޅR؃+D؅+D+VC m Sj mJfA, "gr/r$&(*,."A$A&A(A*A,AH~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H`Sf"|`B QL gpNޭ -lz5-0BY D:\RDE.PRGA`AT:B*o m$m,B"HJgP"&J$YJf"< Af2Rf2Gf2Vf2=f Jg#T^B " f&f2ZVEHB2 r ggSJ"ʊ fB*`B" V#.I+I/ #V//SA?/ / Bg?<JNA ByVJf.N:>; ?|BW oXOj ?7LNANV yCf.HnHJDUv0/|~LPOp$*\O`09:@P^ON^Nu2@J\+,B-g&TO\ @g hjk8/oD|D;K (P((I)4/*&EP/*&`l/J* R."}/&."+/Bp $A\O.#.X̺ /&/!/8p&$N/GTO-440cp0.  @dp`B@$H *A>?0SGmB`L]0$H{0_2(n d0-h1n10s?7HHAg$0%HAP17 A 0(= ? 1n?! H\0`1-H> Gd0-HmH,-8gY>1f.p*?/ \OGfb&_p2fFp@}t@H?<dhLU4@8hL hL @NhK@L@L?< L PLT@X@v@hG W@1@ P>\thGHf`@>YVxfL6KKH PK,0`*:] xfP] xgpp0Ș7 |~=Bl0HAXxBRG` oX*@p3:UhD$\O0gN`hC \O>mAmCL`0`V{)(""-Ag4r#.p?r<#L fM4aVB@ BD0*08MDLMXSpP1zxD" . n/EM %`@nVf o %`0}rT98VzgT R ހ`Y`.ـr>aDg~/% C#?V1 b`,2!H l2z8#  HpꏫDn  :DЊM̬DMF̎E{0ュ J@R 68f66vf, Gfp GGnvzDJ?<1M` x:QrjBgPO!{HdfP/R ?dAԿúA&,86HNRHIdnHڊH&, */~A?G]1贵&-A`5<. <:<EYgMN0@GH0F@AFEFR` Q @0Up0$.AB`zRf #wMd!z`wD`znNDnz|ԗPD|zLzzU PDDn 0[m2h(lUvhlh h :0lp`xפ>?/~TO*@ tNvt?hDN\GT*<<BD?hC H?|X*R@fE HP-O Bg*X!.|ppNA/M\@ՌR`1V[0gZjb>[ g `[/vjZRHgRp=|ju6$p?gnFBgG`('Nkn4M `.t|ncgDtXp #ncS%b8`Dvo>zRFޞ`0sNdv2e0wp_p$"N$2#ri 2n:{?F?|d>,8/4Ф? N$? :? P??'| f?x0|;ppBp}B f.n,' gN`.0sS0s4 "60OL!d 0 l@x * PHZx0nPOHmBVxE6:nSa, z -5H-oHЍf/(@TpPQ>`o HmO3g37"O(KQf8amcfV oJ$fFPBP>nmᾰU`޲aHWXQ0$fQRS#@sj9?J2lQ//l % Z4 K0( [uH1P-š}/D g-` ~X6XO3OmO=MtBgpKM| OOA`0CRc̓\yO%H8# SEYP^Es1 ~0FgRG`_=GsC Q*h?0o$S@C0(!`(X o *{C&ApgP&@ Ov aX-@0 |PzXЅ!@"!M.SnmJ0.{ۨ"ݏ.`0<X{Q"A,7(g&PpoFB nlx`f=+Pd  倐f .D㐤.?Ѩ\FX`XrzX ܒR@\.*Ld&Ы`ɠ*L 䀟ɠ!X_#Nc+$ `ؼL颙Ƨ(>`֑XST ۮnfۼ+c)Td&ht RX|XO y f`Q@bH0@ѷpAT PNK`C*NP'R{*\OұJ?@C٬`TGr. h=FB ``A%`@`%|``-%`jJ7pZP bbs:.}`A>PO.3*p> z@l|`&`` `o|0,hPwBN`!U*0(R& f  ^g>XbbVAQe@nBҐDni@`p"nH:r*Pv UzVP~Ђ TPP"*@@}Ab*(&&$$0ZPrPVP$UP$U $U $hQS0$@ ǒ$N6 N62 ז4F Ҿ N R-C6j(HgrQpm&L&S(9\O-BRB `rRHA|}S|0s0r`qRU ? @fB9MCs%LdIBbC3[PEAIBpF q8YT^kS8YE]L>*Cp??bkfTYB}b`bC.brJ"d[P=@n`(m"@"UB"D"F"Hpq348p2گ"N"쭨:p!FXj໡áˡBp*frpoppPM XȂnҽ"0(@ ,HA-@p|dl$cC30 nRB@k2bT±\ U0 T8jhXUȈTK /Tp ҷ33XXȶԵpQ"/0<NBH *nBEB@H.H< g F fR`J-fz`I+fR@0m$J9n6Hp //ta?POJ(`JEf D. L/H8&!T g.*[ g((3HHAfJgR`Jf -=n@ `LЀ.)Pb}Td.=XO*@ M*g`JShf&M #SJB-XO/`tas."V Lȶ/Br Y*@Jf4~0GɐSPJg 0RG0@H?`aNM\O`ta:Г"onofJfHHTl3ЮSta0ZHn?<[j4xP  ,,BgrN\+Ŕ-[r(PXH>C%`Pj?Z@\`ڻp |`p|`쪨|GVT~|`Bn0f p0*f&rTy=Pl`D@Ԫ*m ֺ9naD G@ں.fEJq$W9lf&wdgog uHGxf0~> `P*@T0 |B2<`XHXW PNЖ 4`lp-?/ ta3Pup?`p`pK`r-x D!DP&/ &4eF>`r/`)S*@xp0 4 / \ ?v4xQ*@P!f8$f-^Sl@$gpm aoS`(%0`r$k \nD /,ї |`ul`fL`g0`0f](r VjJ1v `S31g .{`J1d T?z 61gr8'~5 ܀.>. NB%K<g"9H@H@8@`ɐCV>`?V_E 3Rǝ`Th20IB$~0(POPgeMpPOaCV=-a `ZC`~ΰL?RStvP78ڷ#/ 2I *+@+5B-` D@;@ m l;| R` S@ w *_J Sm&PBUPp` 7URaD]b_VDRUPoYU|Qz] -f,-fސ%b/~TOQf Q8 Q96PjT2-yta;xTOz0f Q7e(T@PP`&i8Y6TT_OHЭTZQDXAB?k;טPO0*fB@`6H@.[#5h mN"EU0PQimCK3T^Y&e g/@$XO`DUC6je:*ƣV#@f `SfLqQJ/-ZPOTufZނTH fBю`-ZQ`B0- Q`+HnT>Pg gP>g 0`pfĸpphSVHuZR@,} @,,J@gH .ĐVsf8Z ^z&c`(rsrpoPQ f t/ p 8\Of^P0TR"V#:(Nrp{SR|RfiGXt·9MڃgZZQPPAN:Arp yŏ`ڈl0H֒>p"je=7TO= Pmja#>4hj` orF?>Pp(05aPeʣPCq@Ĩj pB>.AW#€rNqgB p 3=T^P}zzև>ŰHTv@mSGl^pQB&T=8 pB+ƶp fFf~`K} <@ REJ ft TBJ0'`0̢? l <*`0 f 9*`$R.pH,wg#6т S/ҿ,΅@.xg0V@PbHCf*pP`&pA`"pC`0mT^SGmf`" t_$0"@0HAHBЁAЉO$X"XHѳ0{L.0{PPFw>mATorgT pI/A2Q)5vTff?>o?}AGf$J ,QNc`@|B0nCg(je̢>ң^bp~,P^O  @/Se"  А|!//1r ~"c!$-"D2.O0U0dX0c0d1e0Qq.0g,2Bp2&r0s0]2x0*100123456789ABCDEFV > #:-);-)8-).\rde\1993\5\27\103#(-8(-;(-:0/?CYЎaCԎGqJ02ɯ 0Hڜ qHB/8@4BlAqB HB@wpHHmVAIIdBUYjD^dBjDdBjDVAJJUBTD]BD-;`nQ@:Hz?<&NN?|>LNANqUF' 8g<6"x.!I!.Nq# @[Sf.IܱN`q.0& VAZ}@Apg N`pNuE4"Z2mSAp0m$@dH@A0 ZjIEf Ѝ`ҍ`SAmXkp"[QQup?ظ kYRgSAF $maR4`!xrC3Qr^`v>d`4Pv^`~d`4P~^`*C4P*^`&~!1AY&&`nA!H<"h |<< 512bytes] partitions) e.g. setenv CMD MAKE ; rde SIZE=8000 FATSIZE=16 FATS=24 ROOT=50 would make an embryo ramdisk of size 8000 clusters, with 24 sectors of 16-bit Fats and ROOT directory size of 50 sectors. Then you could transfer your entire harddisk partition to such a ramdisk - using a sector copier like DFT.TOS (included) - then defragment the ramdisk which is VERY quick with Atari's CHKDISK3.PRG or Simon Poole's REORG.PRG - and then "DFT" the defragmented ramdisk back on to the partition. Alternatively, of course, if you have no defragmenting program it is almost as quick to sequentially copy your harddisk files and directories on to the ramdisk, where they will be contiguous and then DFT (or copy again) the ramdisk back to the cleared partition. THE MAIN UPGRADE - ( NO SIZE < 2037kb restriction) Anyway, as you'll have gathered by now, I managed to find and cure the assembler "bug" that prevented RDY/RDE's handling of large ramdisks and so RDE Version_3 is currently offered. For the curious the bug ocurred becase the loop instrucuton "dbf" only uses a 16-bit counter - a "common" oversight according to Tim King in his 68000 Assembly Language Book!! The new Version_3 is completely compatible with RDE Version_2 (released in March 92) and with the "All TOS" saved ramdisk files made with this. If you use RDE V_3 from the Desktop using the GUI, you will find that I have revised the selection of Ramdisk button-sizes to reflect the larger sizes now possible (the largest GUI-selectable size is now 3.5 Mbytes). I have included the buttons-sizes marked "720k" and "820k" which, if selected, and all default values then chosen will create your Ramdisk in two favourite "Floppy" Formats - the standard Atari "720k" double-sided format, and the 82-track, 10-clusters per track format that you get (for example if you use DCFORMAT). I have yet to experience an ST or STE for which this larger format does not work perfectly. These are useful if you want to sector copy a floppy onto a Ramdisk (for "defragmenting" perhaps?) using DFT.TOS or similar. Note that your sector copier MUST NOT copy the bootsector. DFT.TOS checks for FSIZE and FATSIZE compatability before it will copy anyway. Of course, you can also create these floppy formats from a shell (e.g. GULAM ) also with (for example) setenv CMD MAKE;rde DISK=F SIZE=711 ROOT=7 FSIZE=5 FATSIZE=12 CLUSTERS=0 setenv CMD MAKE;rde DISK=D SIZE=811 ROOT=7 FSIZE=5 FATSIZE=12 CLUSTERS=0 or, the equivalent command in RDSH would be m F 711 ROOT=7 FSIZE=5 FATSIZE=12 CLUSTERS=0 m D 811 ROOT=7 FSIZE=5 FATSIZE=12 CLUSTERS=0 ( but note that ROOT=7 , FATSIZE=12 are superfluous as these are the default values on RDE Version_3 anyway. To see what the defaults are give the argument CMD=HELP to RDE.TTP (i.e. RDE.PRG renamed to RDE.TTP ). Or, from Gulam you can enter setenv CMD HELP; rde.prg Note, in the above, I have put CLUSTERS=0, so that the ramdisk complies exactly with floppy structures. However TOS (no doubt for some obscure GOOD reason? ) always wastes 2 clusters of disk space at the high end. If you add up the number of useable sectors on a conventional floppy you will find the total is 4 short of the total "formatted" number. Mark Williams Co. incorporated an ingenious scheme into their RDY to reclaim these "lost clusters" from being wasted by TOS. Effectively it involves telling TOS there are 4 sectors more on the ramdisk than you actually have (by upping the cluster number in the boot parameter block) and then marking the last two clusters as "bad" in the FATs. This allows usage of the lost clusters and is what happens if CLUSTERS=1 is specified. By the way this also appears to work on Floppies!! - so if you can be bothered, you can make each formatted disk you have hold 2 kbytes more! - but I digress. I can think of no good reason why CLUSTERS=0 need ever be chosen ( apart from exactly mimicking other media ). So, to have a floppy like ramdisk and 2 kbytes more left-over memory, you could use setenv CMD MAKE;rde DISK=F SIZE=709 ROOT=7 FSIZE=5 FATSIZE=12 CLUSTERS=1 setenv CMD MAKE;rde DISK=D SIZE=809 ROOT=7 FSIZE=5 FATSIZE=12 CLUSTERS=1 (i.e. SIZE decreased by 2 but now with CLUSTERS=1 - the default anyway) Other Minor Mods: i/ One of the useful features of RDSH was its ability to alter the Disk Drive Label of a saved RDE ramdisk file. For example you may wish to load another ramdisk which you've just "happened" to name with the same drivelabel as one you've already got loaded. The solution here would be to alder the drivelabel of the file you wish to load to a new label that's unused. Then it can be loaded and, afterwards, one would normally change the drivelabel back to its original label. Now I've included this feature in RDE_V3.1 as an additional MENU item in GUI mode. You simply select a ramdisk file and after click on the driveable button you wish its label to be changed to. RDE will check that the file is indeed a ramdisk file and report on the change made. This is also possible in the command line mode from a shell with the new command "ALTER". For example to alter the label of a saved ramdisk file SIG_RAM.PRG from I:\ to J:\ (say), just enter setenv CMD ALTER ; rde.prg FILE=SIG_RAM.PRG DISK=J and if all went well you will get a message: RDE_File: SIG_RAM.PRG | | DriveLabel I altered to J if all went well. Needless to add, it will NOT be possible to alter the drivelabels of "packed" saved ramdisk files without unpacking them. ii/ In "CREATING" a ramdisk from the GUI, you can now opt for either 12 or 16 bit fatsize. In the "Get Data on a Ramdisk" and "Save" options the only buttons now active are those that pertain to genuine RDE loaded ramdisks (and NOT ALSO those of any Hard Disk partitions that may be present as in previous Versions). iii/ There was a small format bug in older Versions of RDY\RDE that caused some ridiculous values to be output when it informed you that the set value of FSIZE (no. of FAT sectors) was too small for the SIZE of the Ramdisk and that it was adjusting it upwards to ??*?**!!. This was caused because a "long" was printed using a "%d" (i.e. word) format. This is now corrected. To set FSIZE you must be in command line invocation (i.e. shell) mode. I could not see much point in setting it from the GUI. Apart from making floppy or hard-disk compatible ramdisks, there is no point in setting it to any other value than Mark Williams Co's "least-value needed" which was the "default" value on their original RDY. iv/ I have also altered the ORDER in which the LIST of loaded ramdisks is displayed ( with the command ' setenv CMD LIST ; rde ' ) entered from a shell (like GULAM) or using RDSH.PRG (the mini-shell tailored for RDE that is already in the Public Domain). The order is now according to the order in which they were LOADED - which is useful as it reminds you which one can be removed (Dropped) since dropping must be done on a "Last in, First out" basis. If you use the GUI to remove ("DROP") a ramdisk, you no longer have to select it - the "last-loaded" is the ONLY one offered to be sacrificed. Ancilliaries & Advice: A few tutorial(?) points are in order. If you wish to invoke RDE using its GUI from a shell such as GULAM, don't forget to unsetenv the CMD environment variable first - otherwise it will not load i.e. use 'unsetenv CMD ; pushd $rdedir ; gem rde.prg ; popd' which you could usefully define as a GULAM alias in your GULAM.G file i.e. set rdedir d:\ # wherever RDE.PRG & RDE.RSC reside alias g_rde 'unsetenv CMD ; pushd $rdedir ; gem rde.prg ; popd' The sector copier, DFT.TOS (included) is an upgrade on DFT.PRG that exists as part of RDUTILS in the public domain - for it now uses the largest buffer it can get (with Malloc) to do its sector copying. The previous DFT.PRG assumed you had enough left-over RAM to copy the whole disk in just 1 go. This is hardly likely even on a 4-Mbyte machine if you use the larger RAM sizes now available and they are moderately "full". I would also advise you to get DESKTOP.PRG if you wish to get the DESKTOP.INF loaded to hard disk drive C:\ (if present) from your "BOOTING" RDE ramdisk. This is essential for TOS versions 1.04 upwards. Ideally, for the latest TOS 2.06, the desktop NEWDESK.INF (or DESKTOP.INF) should at boot-time be copied from the booting ramdisk to C:\NEWDESK.INF to over-ride any previous NEWDESK.INF that may have been there. The current DESKTOP.PRG that was bundled with RDSH.PRG does not do this. Da?n!! - I'd better compile an upgrade and include it & at the same time possibly save you some hassle if you use TOS 2.06 (done! - DESKTOP.TOS, an upgrade on DESKTOP.PRG is included. It is still less than 2 clusters in size and, as a bonus, displays your TOS Version at boot-up. You'll probably get tired of this! - so the sourcecode of DESKTOP.TOS is also included so you can compile your own version of it - tailored to do some other tasks also perhaps. With older TOS'es it will work exactly as Version_1 - wabe). The "brief" documentation with the earlier version is included as this was involved no effort on my part and could be useful to first timers using RDY/RDE. See also some new comments in the sourcecode. MINT COMPATIBILITY - Careful how you "pack" it! And, that's about all for now - except that the binary RDE.PRG is now included "unpacked" in contrast to some previous postings which were packed with the POMPEY packer. Unfortunately this made them MINT- incompatible, that led to a few unneccessary hiccups with some users. Incidentally this also applies to a previously posted version of RDSH - so, if yours is MINT Incompatible, unpack it with the Pompey Packer (or possibly with that "Universal Unpacker" of Marios Yannikos, NAUGHTY.PRG). If you wish to pack RDE.PRG, then I'd recommend the ICE (v_2.4) packer or PFXPAK which retains MINT compatibility. If you NEVER use the GUI, then change the name of RDE.PRG to RDE.TTP and discard RDE.RSC. Good Luck, W. Alan B. Evans, [wabe@ukc.ac.uk] - May 19th 1993. Below is listed the documentation that accompanied previous releases of earlier versions of RDE. ***************************************************************************** RDE ( Version_2 ) "ALL-TOS" compatible form with enhanced GUI of Mark Williams Co.'s "RDY" Reset Survivable Ramdisk ( Distribution to the Public Domain by kind permission of Mark Williams Company ) This latest version of RDE.PRG is compatible with ALL TOS_versions tested to date - and so, unlike my previous RDE offering, (see documentation below) is a genuine upgrade enabling RDY Fans to painlessly upgrade to the latest TOS machines and continue to use their saved RDY installations. To load "old" saved ramdisk files on TOS 1.4 (and upwards) machines they need to be converted. This is most easily achieved using option "U" of the mini shell RDSH.PRG (see separate offering) - but could also be done by loading the ramdisk on an old TOS ST and then saving it with the new "All-TOS" RDE.PRG. Files saved with the new RDE will load without problems (i.e. bombs) on any ST. I have also slightly enhanced RDE's Graphics User Interface in that now all drive letters C:\ through to P:\ are selectable in this manner. Some parameters (e.g. FSIZE, FATSIZE, ROOT, SIZE, CLUSTERS, HELP etc.) must still be set from a shell - which is why RDSH.PRG is currently also offered (see RDSH.DOC for details) - but beginners will doubtless prefer the GUI. One novel and very useful option in RDSH is option "A" which allows the Drive Label of a saved RDE/RDY File to be altered - very useful if one wishes to simultaneously load two ramdisks saved with the same drive label! - and for changing drive labels to higher alphabetic positions to accommodate that huge new hard-disk you've just bought whose partitions insists on monopolising many of the earlier drive letters. I have also made other minor improvements which only "old hands" who are very familiar with the old RDY/RDE will notice e.g. the new RDE will not ask to Load a newly created Ramdisk if its drive letter is already used etc. Note that for an installation-dependent desktop from "booting" RDE ramdisks when disk C:\ is present on the Newer TOS machines still requires the DESKTOP.PRG utility in the "booting" ramdisk's AUTO folder (see below). I have included a new DESKTOP.PRG version with some enhanced features that is distributed with the RDSH.PRG utility (Read the DESKTOP.DOC file for details). Finally, this version obviates the need for the earlier RDY - for which I had requests from Netters on diverse occasions. Of course, this is still distributed with the Mark Williams "C" software - though they "may" soon be including an "ALL-TOS" RDY that is almost identical to this (save for "default values" that comply with their Manual). The present RDE.PRG is quite small (~11000 bytes) having been packed with the POMPEY Packer (which, though slow, produces good compaction). If the GUI is not desired, it may be renamed RDE.TTP (in the which case the Resource File RDE.RSC will not be needed). I reproduce (below) the original documentation that I wrote for Version 1 of RDE - apart from the novelties mentioned above, it still applies. Good Luck, W. Alan B. Evans, [wabe@ukc.ac.uk] - March 22nd 1992. ***************************************************************************** RDE - STE-Compatible form of Mark Williams Co.'s "RDY" Ramdisk. ( Distribution to the Public Domain authorised by MWC [Doug Peterson] Jan 91) Let it be clearly herein stated and understood that I can assume no responsibility whatsoever from the use of this modified software - and, as MWC have authorised its PUBLIC DOMAIN distribution WITHOUT benchtesting my modifications, neither can they be held responsible for any unforeseen adverse effects consequential to its use. Alan Evans (Email: wabe@ukc.ac.uk) Mark Williams C's "RDY" configurable, saveable-with-contents-to-file, self-loading, eternal ramdisk utility has, from its inception, reigned supreme amongst sophisticated reset-survivable ramdisks. As fans of "RDY" will know, you can have as many RDY-ramdisks simultaneously loaded as volume letters allow and further one can be made a "booting ramdisk" so that the ST (on warm reset) will boot from the auto-folder present on the "booting" ramdisk. In fact, since I purchased Mark Williams C (version 2.1.7 on disk label) in 1987 and thereby found how convenient an installation of that software that "RDY" afforded, I naturally used it to install ALL my various ST packages (Wordplus, Signum, Prospero Fortran, Degas Elite etc. etc.) on "booting" RDY disks stored as rather large executable (.PRG) files (which nevertheless load very quickly) on floppies. Since those days the advent of "executable" packers such as PACK and now the Lharc based PFXPAK has not only meant that the executables one puts on the ramdisk can be shrunk in size but the saved (.PRG) ramdisk files can themselves be packed ( reasonably quickly with PFXPAK - but don't try it with PACK-ICE!!) - which made large installations possible on a single floppy (I normally format to 82 tracks and 10 sectors giving 820 kbytes using Double Click's DCFORMAT - and have experienced next to no failures). In this way (with PFXPAK) I have installed the ENTIRE Mark Williams C (v_3.0) plus their C-Source Debugger and Resource Editor on a Single Floppy! (except I used the smaller (and better?) Gulam shell rather than "msh") which loads in about a minute onto my Mega ST-4. Who needs expensive, troublesome hardisks? Recently I decided to "upgrade" and buy myself an STE (with 4 Mbytes) for home use. Imagine my dissappointment when I then discovered that none of my numerous "RDY" installations worked - "bombs" appeared each time they tried to load. I FAXED Mark Williams Co. to ask if there was an upgrade that worked on the Rainbow TOS 1.6 - only to be told in one brief sentence that, as I have the sourcecode, I should HACK out a solution to the problem myself! True I had the sourcecode (but only that which came with version 2.1.7 - which would not work satisfactorily on Mega-4 machines - when I upgraded to version 3.0, MWC supplied a new "rdy.prg" binary that had cured this Mega-4 bug but supplied no sourcecode for the new version. So much for so-called "Software-Support" - despite my MWC manual boasting of "SOFTLINE - Telephone Support" to registered users (such as I!). Neither did I understand the differences between the new TOS and previous TOSses(?) - and I really thought it unreasonable that MWC appeared not to care at all for its dedicated clientele - as this just was not a trivial problem in C but caused by Operating System changes that are kept secret from "amateurs" like myself and only revealed to "Sofware Developers" who pay a substantial sum for the priviledge (How else would they keep abreast of amateurs?). Despite my annoyance at MWC's response to my plight, I hated more the prospect of not being able to use my "RDY" installations on my (otherwise very satisfactory) new STE - and so I began to HACK. As you can see I have been successful - the trouble being traced to RDY's "non-standard" RESET procedure. Atari UK, despite their willingness to help - simply could not advise me of the proper RESET procedure - but at a Computer Show in London early this New Year, I mentioned this to Mike Vedermann (of Double-Click Software) and, immediately he informed me that, by definition, the required RESET Vector can ALWAYS be found by *((char **)0x4) - which is required by the 68000 assembly code - which turned out to be the vital info I needed. Since Mark Williams Co's Doug Peterson had informed me that "RDY" is now "PUBLIC DOMAIN" - I asked MWC (via Doug Peterson) for permission - which swiftly forthcame - to release this STE-compatible version of "RDY" to the PUBLIC DOMAIN Networks in order to save other "RDY"-Fans the hassle of similarly spending a lot of time "hacking about" to get their installations to work - possibly without eventual success. It is rather important to avoid confusion with "RDY", as the STE-version will NOT work satisfactorily on the older TOSses (to version 1.2) - which is why I have called the STE-compatible version "RDE" (I never could fathom what the "Y" in "RDY" stood for anyway!). If you try "RDE" with the older TOSses "bombs" will result. So herin please find "RDE.PRG" and its resource file "RDE.RSC" - but see below. "RDE.PRG" is PFXPAKed as this reduces it to about 11,798 bytes rather than 17865 or so - you can recover the unpacked binary using the latest "lharc" or by "pfxpak -u rde.prg bare_rde.prg" . There is another small problem. It appears that the new RAINBOW TOS will insist on taking its DESKTOP.INF from the "C"-drive if there be one despite booting from the auto folder of the booting "RDE" ramdisk. So how do you get an installation-dependent desktop? My solution is to save your tailored "DESKTOP.INF" file on your "booting" RDE installation (as with previous TOSses) - but, now be sure to include the little utility "DESKTOP.PRG" in the auto folder. On boot-up this checks to find if DRIVE C:\ exists, in the which case it copies the DESKTOP.INF file on the ramdisk to "C:\DESKTOP.INF" - else it does nothing. This will OVERWRITE any DESKTOP.INF there may be on C:\ however - so the next time you boot-up your system from a floppy disk A:\ (with AHDI.PRG in its AUTO folder) you may get a strange desktop. If you care about this, copy your preferred boot-up DESKTOP.INF to your "boot-up" (A:\)floppy disk - and put DESKTOP.PRG in its AUTO folder also - but after "AHDI.PRG" naturally. Oh, and FINALLY, I should mention that I have altered some of the "defaults" of "RDE" - as compared with the original "RDY". As fans will be aware, "RDY" recognises several "Environment VARIABLES" and, because of this, it is optimal to invoke it from a shell like Gulam - in the which case you might as well rename it "rde.ttp" and discard "rde.rsc". As you can discover with the shell command (entered from "me" or Gulam): setenv CMD HELP;rde the new default settings and list of all Environment VARIABLES is as follows: rde - rebootable ram disk Copyright 1987, Mark Williams Company, Chicago commands passed in the environmental variable 'CMD' LIST - provides a list of installed RAM disks. MAKE - constructs a new RAM disk executable binary. LOAD - loads a saved RAM disk 'FILE' into memory. SAVE - saves active RAM disk 'DISK' with its contents to 'FILE'. DROP - removes an active RAM disk from memory HELP - presents information. parameters passed in other environmental variables DISK - drive identifier for RAM disk (default = G). SIZE - size in kilobytes of the RAM disk data area (default = 200). ROOT - size in sectors of the root directory (default = 7). FILE - file name for RAM disk image (default = rdedisk.prg). BOOT - should the disk install itself as the boot device (default = 0). FATSIZE - should the disk use 12- or 16-bit tables (default = 12) CLUSTERS - should the disk recover two lost clusters (default = 1) FSIZE - specify the number of FAT sectors (default = least needed) ______________________________________________________________________________ Note I have changed the default drive identifier to G:\ (from C:\ - after all many ST'ers now DO have Hard Diskdrives) for when a new ramdisk is made (setenv CMD MAKE). The default FATSIZE is now 12 bits (rather than 16) so that "RDE"'s fats and disk-sectors correspond to nearly all floppy formats. Usually on most floppies each FAT table occupies 5 sectors so, if you want to configure your "RDE" like a floppy (apart, of course, from "RDE"'s rather special bootsector - ensure that you setenv FSIZE 5 before MAKEing the ramdisk - otherwise "RDE" will choose its own FSIZE - which depends on the SIZE of the ramdisk that is made. For some reason - the maximum size of ramdisk possible appears to be 2 Mbytes (even on Mega-4's or STE-4Mbyte). Let me hasten to add that this is the case with the original "RDY" as well as "RDE" also. If this is a "bug" it is to do, at least partially, with the FSIZE value that is chosen. Here are a few useful "RDE" or "RDY" commands to help the uninitiated to get used to this most sophisticated piece of software that is now "PUBLIC DOMAIN" 1/ setenv CMD MAKE;setenv DISK H;setenv BOOT 1;setenv SIZE 900;rde OR rde CMD=MAKE DISK=H SIZE=900 BOOT=1 (makes an embryo "booting" ramdisk H:\ of size 900k as the "default" filename "rdedisk.prg". Simply executing this loads the ramdisk). Note the second command is shorter and "should" achieve the same end (but in my experience it is, on the whole, better to setenv the environment variables before calling "RDY"). 2/ setenv CMD DROP;rde DISK=H (removes ramdisk H:\ - which is followed by a warm reset) 3/ setenv CMD SAVE;setenv DISK H;setenv FILE c:\mwcram.prg;rde OR rde CMD=SAVE DISK=H FILE=c:\mwcram.prg Saves the ramdisk H:\ with all its contents to the file "c:\mwcram.prg" onto a hard disk C:\ presumably - but C:\ "could" be another RDE ramdisk, for example!) etc. etc. Good Luck, Alan Evans, University of Kent, Canterbury, Kent, CT2 7NR, UK. ( Email: wabe@ukc.ac.uk ) PS: My factual account above, which underlines the farcical MWC's "software support" for the ST that now seems to exist, probably arise (as knowledgeable 3rd parties "reliably" inform me) because MWC have now "given- up" developing software for the ST and have alledgedly moved on to financially-lusher pastures - I hope these rumours prove to be without substance ( not that I wish any financial hardship on MWC you understand!! - but, rather, simply bemoan the lack of any future prospects of more elegant and masterly software contributions to the ST-scene as this gifted Software House have come up with in the past). MWC's generosity in making "rdy" PUBLIC DOMAIN - and permitting this modified "rdy" to be distributed deserves the HIGHEST COMMENDATION - even though this generosity - if the rumours be true - "might" have stemmed from a guilty conscience re. ST support? Who cares? - facts are facts - and things are seldom ENTIRELY good or bad, are they? . F.. LOADSPECPRG nGW NEOCHRO2PRG JePI3CONV PRG nz PICTURE IFF &k9READ_ME DOC  K` *`pNEO-User, NEOvf*NAdJg mg#ShitNu?<NATAA:RH?/?<GNAPAJf|\*.SPUBNuNEOv2.27NuNug,zF nN46xz nNNu# nN0<2<4<?6<xz nN0<2<4<96<xz nN0<2<tA"n$N0<2<4<96<xz| nN0< 2<tAj"n N0<2<4<46<xz| nN0<2<tA?"n N0<2<tA="n NNu nN nN|mD|m<g6<8<:<4<< nTNg\6<8<:<9<< nTNf nN0<2<4<?6<xz nN0<2<Aa nNfa`lACFEPp,z&n,NfBg/?<=NAPJk>3 n0*P/ /<}?:?<?NAO n4//<}?:t?<?NAO ?:f?<>NAX USPg nNa<,zF n n0 P"n@"Q0<"QNu,z *n0*U(n4(T`r3 jM0<?afG*<@GspMG4<`B44PBw:RA|f>LJ@f~aQ|H|f6<8<:<4<<,z n|NLRA|mNuH<HH|DF|~L gRGG gRGG gRGG gRGL ONuH<HH|DF|L g g g g HL Nu)-=AQUeiy}H<>C^g < g`H瀀B02tA@"n N^GLJ@fLNuHz?< NA\?<NATBgNA|0f|`>`@`px|~|lFLoad Spectrum 512 PictureL O A D S P 512INFOLOAD SPECTRUM 512PICTURETHIS IS A MODULE TO LOAD **UNPACKED** PICTURES, THAT ARE SAVED BY SPECTRUM. WRITTEN BY: CHAOS, INC. AND: MICHAEL/AVGEThis is a NEOchrome Master Module. It can't be startet on its own... "`M |H`dNEO!e򙾶񋇋*OOfh*mI - ЭЭм/ // ??<JNAO Hy?<NA\N@3͐Nʠ#<"<B <}$ԀԼ&րּ(؀HAHBHCBNqHAHBHC#a#a޶m#a#aF#a"<ѠB#O3p#vN*kf| op J@gVypм/?<HNA\Jk8#rмB"@>9pUGAz <<BBQQ#Q`3pa=J#D#HA͘~ 00 QN* e6TBy33X/<?<HNA\#a`HyQ?< NA\NBgHyTt?<=NAPO3bk2HyI/<?9b?<?NAO Jk @g <(NNNA]t0< 0Q0A]\0d1| 1ya ap0~BhBh!|ap#~0}BhBh!|ap#Aa `p VwN?<Hy`p?<=NAP3bkHBg?9b/< ?<BNAO J@k&MY$|NRf 9Y$fByN:N9MN|Nբ09MJ9Mg09M3`nA09May|<>9`n|03MJyMfA~[P\Q?<NNT#a3La3Na3fa?<NNT3a @f <,N`NԠ1|?L1|N1|f1|1|jBg/9a/9a?<NNO RN(_ByagfH` !dRQ`TGTHQBap #.gQ`0A~"H(Kp fQ2NNZ` \RG|mJyagPBgHyTH?<=NAP#THa;ZJ@j,D@S@AEH/0ac NadBya`J9fCTHAS4f33%V V&anaxNNagA.l9TOH ppB9TNPa 9Vg2ap?r9V+9V*AH@A2 afafal`<gmD<pn<3ўaf09ў|gAQ0 9 Tga $aj` @farfNJyT4g\z`8A8(g A JPj`|/a< _fxNBVTB9P3R3T02t PHNL`,BVam:EgNu 9 Tf yMfJy$fzNuBVasDam:EfLJyT4g J9M fy]Rf y]Tg3]R3]TJyT4f4 Ade.Tg^NAUavN`F0123456789TJyT4fyTAUHdH@H H@XHdHAH HA a`p82<JyT4g Na=LrtN ya"yaJyT4g~~a=FN`AyXCyXp""""""""""AxCxQNuNJyT4gz<<><?J9Gg_F_GJ@gGfJAgFg`ZEgJ9:fMJyM fNH 9Tfa"HaF:ByT43dV9UwgN ya"ya#aH?9VGe ~rGdFf Rg :H<9V>9VtFgtGf FftHE E etHE>fr69V`29V6<,HAHCHG02<e4|6<n8<z|a^NH/ag.B gfHC>LNa^HAHCGGkAd04B@d04BHAHCa^hNH`La^THG| HJGfat3Vat`au3Vata[agf~yVd~V&` 6Cg Are Ad @reT @{dC g pF9GJyT4f `Hpr2<stv*<,<J9GfavP`av>L` , @ dL6C0gB3]RJ9M fJyM f?<?<@NNXNqa9T<fa@J9TfBJg f8NA.OH ppNa^taZNpaa <.az\`T3T43V fJyrk09Tyta.t`` ya"ya2<""""QJf9Uwg` f9Uvg ya"ya09T0<""""Q ya"ya0<""""Q09Tyyyprvx<g"aQ"ya ya0<""""QauJ9TfRa$N`vaK>f Uv`Uv`"a fUw?pa`f0` Uwa`\a;ZNua`* ya"ya09T0<""""Qa5aua`a;adNa\N`6Cg8D g68CeK CdDve Dd<9xCLnvCAYJy͐g|A[ff(`nkFC:9CFHa\LaXF`D       68|e Cd|se D e <9V>68|eĘ|re Dd C e CCe CPd G fbg0ByV3]ZSH0<2<ttvarLaWv`tH0< 2<ttvarLga3VBy]Z`@aak"abgH0< 2<ttvarVL`fg0ByV3]ZSH0< 2<ttvarLaV`H0<2<ttvaqLga>3VBy]Z`a*ajabHgH0<2<ttvaqL`vHAc09V4"C0<2QLNuf RyV`:SyV yVd(3V`g @e @8d Ase Ada_`6|e8|e NF`68C e:HŊ EdDse<Hƌ FdA(>EJ0pg< g< g 9Tg|HEHFEFC Dt:<HNHA.9TOH ppNL< f 9 Tfff# 9 Tf G f6| gLf`+6<9TA0HHA0HA@ At g 3bd3bfJyT4faoX020pBJyT4fao\TTT4/A.l9TOH ppB9TNJyT4fa N9V&ga[jJ9Tk Ta aT*`68C~e:HŊ E d Dre<Hƌ Fdf0<a[BybbNa_f:9bb9TH@d CRCCHŊEe`CHŊE dHE3bb9TgaU TaY9T9Te dH9THaUjaSPN`rHNaS8paZTL`,H9T9Tf9TgaTTT02aULaYaRgB9TAc:9V4"C:9VE3PP1Pa4JEfaY`NL`HJyT4g v6`2<haJCf Wd0al3VNJyT4fal9T faR6a&H/g"Ac:9V4":9VE:0PaLaRJ9Pgazg`arA.M pPHNLaU`H yaaLNuH4H@@FBBfRv2<KgCTQLNu9THgp f 9V(fb<9V agR gL<gm<po@A8(g4A JPjBV;e RF  dJ9TgT gJEg|Nu|NuaR|<<AI|?Jy͐g|wXgQ:0~ |`><F<OF:TTaW<9Te d HHaRNuaTDaPN?paW0`jT`TATHC]fCTH29V0NAoCTHER pNҖfn ya"ya09T0<""""Q?<Hy?< yagB9><|z2PQAbQAQ.<}`aH##,<hݹQaMNh,ya,NhAc><JPf A"Q`BM|NhMc<<Nh` a<#<| MNh|<|z(EmRH@`Q`<gHD@R@@`QJEfEz2PQCbQCQNu ya"ya><|Ez4PQAb*REK&Jg<fSg/ 0 S@R@`Q&_gS(KS0 D@$L`S0 HR@`QfQvAQl, a.NuM!||NhMc| Nha.,,yaNh`lMV6|NhMc| Nh`MS-|NEO!|,<Nh,ya,<}Nhg <,akHyTH?<ANA\`,?9b?<>NAXOJfTJ9Tgj"09QATTpyQgJg^R@Rypma Bg?<LNANuNA]\0~BhBh!y~aV0}BhBh!yaUB?< NA\#a1yaL1yaN1yaf!]V!8!!(!pa͒`akzaz88!L VJ`jg?<"NNT @!y`j /9a?< NA\?9a/9a/9a?<NNO Jrg/9r?<INA\Hyb?<NN\A]\0eBhBhaT`s$NaJRN <-Kai29a|g\`J9Tf6NaJN <-ai29a|g& Agj`09QATT`a`NaJNaUByVdaP33%V aA.l9TOH ppB9TNH?<%NNTLNuJ9Qf,HQ"yaCxAY$><""QLNuH yQSyQf3QRJfA#QENnp ߐ| 2 H@GV~p29Qh||r2ҁ@6HA0QE QCVEWprtxv6廆D4HC8QQ~GW(yaIxz|2JEk,| n&|m f|x6$|A8Q`Q` 9999QSETI@QLNuJ9Tk:H9TH0; .y~dU9TNBydJN NLNu8h```L``:9V&f3dA*"yaCRp;r"QC`QNu3dNuAT8p2<av9TT?N0T9V&f*3dA9"yaCRpr"QC`QNuAzp2<avpNfINa>Nf9V&f*3dA9"yaCRpJ@7(794J.=2.C :.=Nu0>J@"7*796J.=4.CJ;==0?[n@87,79TK=6.;==NuNuNuHA]\0fBX1|3]taIb09_A`t2468LNu/pa& NuHprt6<?89VSDaLNuHA]\001|3]tA^t0000aHLNuTfNH"ya ya9T f ya0<JyT4f29T0<""""QLNuH ya"ya0<JyT4f29T0<cLHLH(LHPLHxCQLNuB9Uw3M"3M"B9TNu~>9`~>9M"J9Uwg*ajprvx/a5f.B9UwNJjN:3M"NuJf J9Tfp9Uwff`>G gUw ya"ya<< QB9T><3(3* ya00# 3$`>G0gxRy$ y$e* y 004<za 68"ya0200a Uw ya"ya#3Efh&ya09$Nag3333O33O3333O33ODRF3ERG3 T ya"yaEfh&ya<<NJyT4fN:>9T<<>:6G0:6G0:6G0:6G0Qa ya"ya<<""""QBy$B9T`>GgJy$gRy$ y$dl y <(:(@fJy(fA>9*3*Gj`ZAf(Jy*f >9(3(Gk>Sy$1@1A`8"E$FJEgHƍ:9(g>9*HǏżg3(3*00# 4<z` Nu9Uwf*a\fUwf?paA>0`UwgaA2>G IHS@tv82QRA<RF82QQHL6GaJNu:9E<9y@k>El:M>9yAk(?NFF< G lFFFAfh>0p fNu|Nu49J0Afh"H0R@6K0r`XQRfREGoB9UwB9V*Nu0r`aQRfSGGeD0HF2I$Ip&HµlRf X| DlSH@ @fH@|@dRD`|JBm|UJp&J±oRf Y| DlS @fH@|HdSF`pNug~B9T9Uwga(`9UwgJBjHaEa/La2&NuUwNuHM؈=y=y -| =|$=|&=|(`1gfB9V*Uwflfv9UwgHaE^a/LNuNuNu>G<""""QaCvB9T3jf:9V3ڴ3ڲ`3Vڲ3Vڴa3\3^46aaXHa4LNuJy\k:E0gfMyjf\H09\29^46*yaa_ LHaCnB9V*4609\29^a`aL3\B9TNu:EgTMyjfJJBjFH09\29^46*yaa^LHaB4609\29^a`~a^LNuNuNu   H 4<`H 4<A]\0B049V; H3]ta?.LNuH<9V>| gba.a49Vft3VCgBaaA]\0g0T03]t3^t3^va>B9TatB9T3VLNux89M `&3`x89Mf yMdJyMfxzAvE#440LC@&|z:4&H8<څ A Q KXQNu@@``pp0xx08||8<~~<Nu:9MWEfNkN:E g`a@HB9TB9Ta ya"ya><""""Q3`3b3d3\ByfBy^68:<`Jy`k>G0gB9V*B9T3`Nu>Gga?68:9`<9bCdCDdD ya"ya>9dJyT4f >9T>9hy~g>9fRGO` Q>D3^f3\d3^3\024689MDDHz/;@Nua3~hNu|HJ9Tf <UaP yafFByTTH yap2< Q yap2< QLL`O 69bd89bf`NuNu?9VByV>OGBUa 3VNuNuNu>GB9Ta^fg`H 9 Tf a>aZTXNua>g4?9V>9rRGyVo>9V3r3VaZ3V`aZLNuNuNu>G9rRGyVo>9V3r3VHa> aYlL3VNuHHL1@&1A(1C*1D,1|"1E$8<vJdv1CTQLNuNuNuHA]\0q0T03]ta9LNuHA]\00T03]ta9LNuHA]\00T03]ta9pLNuHA]\00TBP3^t3^va9BLNuHA]\0lBXT03]t3]va9LNuJyT4frg?avaH3VaHa..6BgL:DgF89TEjx Dee8<da3T ya"ya6<""""QaNu3rNuJyrk a,Z3rNugdJyrka,>B9Tat ya"ya:<""""Q3r38yjx3t#vn3a+bH0929*9VgDHE ag: g2HEJEg$Jyrka+ yn f8 fa,:9V y`NvefB#n49ra,`  fa,h3r:9V y` 9:(#nB gvdRa+/?<?"BQa,LNuH yO"ya><?"QaLNuH"ya ya><JyT4f29T><LHCQ"ya$ya><LHEQLNuJyT469T ya"ya69T89TD ` QLNu?<NATAkA:RH?/?<GNAPAkCoEf|\*.OBJB|\*.NEOB|\*.NEOBB9NuATHCS4fACTHERpNҖf^ATHC|fJ9Tf4aaa) <UzaH29a AfAS4CTHf`TA|CTHfByT3a0< ya"ya""""Qa)?<Hy?<=NAP#`Į((ByTTByV3bjpNuHaa ya"yaNnBg/9?<NNAPBg?9b/<|?<BNAO ,yOB|NRBg?9bB?<BNAO ,yaB|NR FORMg g^*yO NEO!g }2g }"2g }B2gz09V.HAF pNI<HHFFrNZ,,ya,,<|NR`rNZ FORMf4B9,yO|NR ILBMfaza Dafa\J@g`MD|NRf>,yO,9H}o$-|xxxx?<?9b/?<BNAO `NRNupMD BMHDgt BODYg CMAPg RASTgNu .|mp yOCcr`II<pJ|wQa4ByV4apNu,yO V@f nf pNupNu 9g0 yO"ya><|z2PQCbQCQpNu yO"yaapNu,.NSF,yOCc"QByV4a|JyM faE^pNurNZ Vf^aa\ yaLHca<,ya,<}NR ya"yaat`rNZJVf a f`H yapBQ yaX0,H|NRrNZ,yaX,<|NRfAS"yaJQfJifap QBySByS09Sj2A3VH@3VASCcp2Qaa] /9a/<}?9b?<?NAO N: ya"ya0< QpLNuN:p`a\a$33%V A.l9TOH ppNa/TV'`јHA}a?JyT4fyTAc:9V4"0aJyM faBNuHByaByaGa~JyT4fyT|:<Ac0gFm GnC<A"Q|fCc. c"3aLEHE"~JyT4fyT<<:<Ac0gFl GoC<A"Q|gN" c"?Rya2G5AJyafRA3a`6aQ3aTJr4Q>`Icl6a`5|T0F@5@p ygrpJyT4fA~2A|dlA"`ArdG0 yal3SXJ9Mf" yamJySXgBySX <,5a@vLNuArcJyT4g2<J9M g2<`2<J9M fA~2A|lA"`A2<ǒG``HA|g6<8<:<9<<axzf\ATHC|fACY$fAY$r arC|asER^pNҖfa$N$La`8<<<axfVATHC|fAoCY$fAY$r arC|arERkpNҖfaN$L`@8<<<awf(awCcA}><|2QQaPa)8<<<awvf(awAcC}><|2QQa)`8<<<aw@fZATHC|fACY$fAY$r aqC|aqERxpNҖfahN$La`l8<<<avf <*a> yafaAN<BPA"QByV4aLNuH29V4Ac"LH~29V4Aa2a0 9TfJyT4faVG@A~`gLNuHCc09V4"AJyV4gJQfpXR`22a1R02<><Ec4@oAl2E"QSAa1| 9TfJyT4faU~GFA~`g`LNu09V4"AcLH\~`',09V4"AcL\H~`' yV4lRyV4~NuJyV4oSyV4~NuAc09V4"Bp~NuAc09V4"0CR 0ka`0~Nu"3DUfwfUD3"BgHy?<=NAP3bkMc,<ayaypNua"<(a;6pNuBgHy?<09VH1JVk<<<:<Ac0Fn GoC<A"Q|g>09VH3`pNu H/?<NNT,@?<NNT?9ؾyn33>9ھyn33zJyT4f:9T>93<9؜GRF33>93y<9ڜGRF3 E3ad"yaa Ntab`f9Uvfp#a3Uv3333` ya"ya:<""""QB9T3O"yaa `9UvgzHy69ؖyRCHÆgTHHð|opy69ږyRCHÆg*HHò|or@3OUvL`lr`B9UvNtaaB9UvaByByByBya`:|(gV9Uvff^9Uvg:f Uv`9Uvg3O3OUva#`9UvgXJBjarHa$69O89O@Ayԗyؙy֙y3O3OL"yaa `l9Uvgb9UvfXJBjT yOgJaH49OJAXj p 46N3333La"yaaNuXXXXXXY Y&YHa`|4909`aNyo2969Nu2969`B09294969Nu2969ڴyl4909Nua$yo0949Nu0949ضyl6929Nua` 9TfXJyT4fPHAS09ؐyR@a(< V09ڐyR@a(aM>AS0<2<taCLNuHahzJyT4f:9TEaXJ@kJEER@RASBSC3333 Uv"yaaaBNta^LNuB9Uv`HJ@o*|?l$JAo |l8:SDSE yaayVfp` 2` aԶyVWf<0v`ayVfR@aS@yVWf>R@4@kR@ayVVf24<>@R@atyVfRAafSAyVWf2@RA4AkRAaHyVVf0 4<ƔARAa.yVfS@a R@yVWf4AS@4FSBS@ayVVf4EWBkSAayVVg2 `24 6 LNuJf J9TfF9Uvg49Uvf*a*fUvf?paj0`Uvga^:E.3 333333FSD3GSE3 ya"ya$ya#3:<JyT4f:<" " " " Qaxa`9Uvg0Uv>9ؾyd33>9ھyd33zJyT4f:9T>93<9؜GRF33>93<9ڜGRF3 E3aa ya"ya:<""""Q"yaaba2aNaZz`9Uvff#a3Uv3333 ya"ya:<""""QB9TaѠ"yaa`B9T9Uvga(UvJ9Uxg^:9jz<9>9VSGGo<ERFHƌ~8<FAnXGQ:9jz<9 F?o<<?ERFHƌ8<F@nRGQUx`B9UvOa~aYLB9UvaRByByByBy`g@9Uvg6B9Tg$9UvgJBja8J9Uxga\`aa n`^gX9UvgJBjJaJ9Uxga,`8a`29Uvg(9UvfJBja33"yaaXNuymynym yn~Nu~NuHM؈=y=y -yAfh-H >9=G=G>9=G=G=|=|=|-|  09=|=@=|H=|$=@&=|(LNuH ya"yaJyT4f 09T09294969HJ@dDBBHAdDCC@$H&I0&&Q4<PPSCk`""&&Q""QLNuH09294969ڴ@l@AlA| B@m4<?F~dJyT4gGGm6SCFJ@jB@FJAjBAFMT-yU*=|.=|=|=@8RDD=D=A-I 8@RD=DNe HrL@N-yU*=|.=|=CNe HrL@N-yU*=|.=|=|=A8ARD=DNe H"L@D-yU*=|.=|=|=BNeLNuO/9THB9THG>9M$ fByM$prvx/a.3M$HGT.NuH~2?<w?<?<NN\?<?<?<NN\QLNuHM؈<9=F=F=y<9=F=F=y =|-| -ya -ya=|=|=|=|$=|&=|(LNuH<93 3<9 339Uvg( ya"ya<<JyT4f<<""""QL@Nu 9Uxg|H<9>9a33 33CD9UxFgrgp:EfD@ nDA69@n(DCTC>933  9UxD@89 An(DDTD>933  9UxDA33 :E EfyJEfy Fmy Fly=|=|=|=|$=|&=|(>9hy~ga&"yaa a3~hLNuH~`H~JyM"j~M=G-y-ya=|=yx09 294969j8HLCDCKCCv:AE@oJDf8HLEME=@ =A=B=Cx0929 4969j8HLCDCKCCv:AyVoJDf8HLEME=@=A=B =Ca@N0a@LNuHa33@A>9ԞC G@m G?G><?3ԗyj69DCyy>9֞DFmSFFG>3֙yj89DDyy>9hy~gM؈=|a-ya JyM"jJ09H=|=@=|=|$=|&=|(-|fhaM؈=|-| =|=y=|-y 9Tg> 9Tg4 yM$f4 ya"yaM؈8.:.<.>.NH` "yaaha3~hLNu<9>9 M؈=|=|=|=|$=|&=|(-ya-ya :9jEBE=E=EFE@oE=F|dJyT4gF:9jEBE=E=EGFoE=G=|-| Nu4969 <9>989jDDBD:9jEEBE=D=E=F=GBD@oDCyVoE=B=CNuHa/,_=|-ya a~33J9Tf yM$gJyM"j409H=|=@=|-|fh/an,_=|-| =|=y=|-yJ9Tf2 yM$f( ya"yaM؈8.:.<.>.NHLNu2.SA0.8A4.<Az2E6EHJLN@B:FC0S@=@F|M>84JDngDDRE|mTEDD|p0.|H2.6.Ҁ nRGGCDG0.|H2.6.&Ҁ"n RFFCDF=GJ=FH0.nS@|@<;LFFHF0.|@<;8E&{Ph({P`JnFl H@@Gkf M| ({P.>.:.FNk$k4k4k$k\kkHkkDkk`kk\kkHkkDkk`k0xFYYYYN0xFYYYYN0H@0"HA踀FYYYYN0H@0H@"鸀FYYYYN 0"HAYYYYN 0H@"YYYYNQ 0`Q 0` Q`QH@HFFYYYYHF:.FSGg JHNNuH1|1|1|1|`&H1|1|1|1|V(3~؆1| 1|"1|$091@(29VAd(yV @dAS@1@,09 @@d 1@&1@*LNuHV(09 @@d2949VBd6yV CdBA ya"yaJyT4f 49T4JBBF@@t2FA`(0BQY0BQY0BQY0BQYACQLNuH0929V49V 6BCdAk0<""""QLNuHV,fGB9GJ9Rg`A.9TOH ppB9TNB9RJyag1yaL1yaN1yaf?9a/9a/9a?<NNO #bVHyb?<NN\pr 4<Jyaf4<?6<xzasrvxasr v xJyafxarLNuHRB9V,GJyaf`61|?L1|N1|f1|1|j?<HxHx?<NNO ?< 2QQr>GGa>"Ec@d8|4B3 `"??4| B@c|| B4; B34BH@@LxHCHDHEHF6080 :0 <0>9HG|Ƈȇʇ̇>< p݆@ۅ@ل@׃@@2QA>"EcSyja2LNuHAIC9THH2< / 0<2CQ"_TIQaLNuHA~0pr Aڒ0QLNuHAI9T9THHH@A203Av4Jy͐f|DfDR`|; IQ0<2<vAa(LNuABCDEFH瀀` H瀀9THHA#(f3o]\3]^3%]ba^#]t(fLNuHJ@kİypl?a1^3͔J9Tg 9Tf9Uv<<f a-V3͔A.9THO ppN9T TaT>9Q CRATHf>9QATTpOASB1Tp>9Q"yQAc>< G2Q>9QGAar1V4p03Q>AvH#a09QHASB3Ta>9QGAar3pV4>9Q yQCc>< G2QaN>9QATpT>9Q ARCTHfaJyT4fa`A.l9TOH ppNJy͔fa0Ja/LNuHa/"ya0<?JyT4f09T0<9Tf 9UwgaH@a4a@L`H<g( f09UvgazH@aXa@L`H@a*a@L faZ ya QV'LNuHa."ya0<?JyT4f09T0<9Tf 9UwgaH@aa@ L`V f 9UvgaH@aҬa?L`0|f 9UvgaH@aja@4L` faǘ ya" "QV'LNuH"<(bpsNBLNuHafLNuHA]\0|BPBhaJVfarg a^#V yM,JPk y VfF 9Tf 9V(f2BV0<JyT4fpd29`v@lAAa3V4aJyT4f029`v|dl*AaI00"AcLH~LNu09V4`a,49_tBf3Q?JVf agaW@4A`t02AV68:011Eg"|f V"|` J9V"j g"|f V#|` J9V#j 9V&:9:gBE3f `2<9VSFAe` J9Gg<9TF;``823VyVeZByV gdEf V)`8~29VSAJ9Gg29TA;3V3V `$`_^]\cba`3V fV&@fAf V'gByVe89VSDJ9Gg89TD;@JBNu?<?<NMXNu?<?<NMXJ@NuH3v3x?<JyT4f><HAQJyT4faM͘09V2H2.Jg yҲh nBy2A~AgRG`0.|pXK~JyT4gKI~\(TNML<=C=|=|=|-| Bn=EA-H=|=h=|=@=A-ya =|$=|&=|(B*aXaa09`t29`vaPLNu32`~p~~~~pr4(6(mo6-zNur0<@h`0<@h`>z0<4(<NF2-I6(<NFjDA:rE<CmmmFNupz4(6(2-Cj DA:r6-Nu@d@HA͘09V2H2(AsaJyT4f 9 TfG2402AsaBLNu09Vgb 9 TfXHM͘29V2I4.|29~y͖Be(3~͖gN` g N aTL09Vg:29~y؀yVe&Ry]Z3~؀ga` ga9UvgVf29~y؂|e3~؂"yUYU dC#Ua&"yaaV'9UwgA Af^29~y؂|eJ3~؂$yUYU dE#Ua& ya"ya:|898D09jD@|H@B@29jDABA49 B?o4<?69ڶyVm69VSCNPV'`9V(g629~y؆ Aea%V'yV(fa`pax`j9T  f^9UgR$92gJ29~y؄ye63~؄ Bg #2`#2NaȼV'NuH09V29Vt`H09V29VtV'Ac69V4"@A60@g 8B1@`1JyVf JyT4faaLNuC J@jD@HdH@H H@BNuJ@f0NuHrdg0RAH@H fJAgRA0H@0NuHd<0HAH <0HA<0NuH <0HA<0NuH yaA}L~V6><2H~QH`COJ9SVf yaAH~TLHAQ`trrxp~z v EaZ@QZAQ yaAH~TLHC(AxQ yaAHLH]ALH]* yaA}><BQAA"ya~|LBY222QC`QahAv0<rtaA0<rtaA0<rtanxz|0<r4<?v)aaaB9SVLHyVe(ab9T9Te& d 9THHa`aR0<2<apt0<2<e8<6<Da|Qxz|0<2<r4<6<a0<4a0<4av0<4<9aj0<2<t4<6<9Vga`a0< 2<t4<9Vga`a0<2<t4<6<a 9Tfa`a1@p2<rtvapr2<rtvz|aJ9Gg*<,<RAafxz2<r><0<<<?<<46||a<|Q|Q0< 2<tA(t6<><HHG?<<g9Tga`aRG|Q0|HGQJ9Tja8`Azp2<aBAp2<taHA0<rvtaaaTavaJ9Qg@/ CY$ yaAx0<""QB9QCVBYWm"_a6B9QLNuH09Vf6<`J62<e4<`FH09Vf6<`H6|2<e4<`H09V62<e4<(<`H09V6|2<e4<(<`Ha ya~x~(| BQAxQ yaA~x>9`n`8L]HAHAHAHAL]*HAQxz|0<~r4<69`nAavxz|0<29`nIRA4<6ZCaRxz|0<r4<{v)a<"QLNuH09V\@2<n4<6<aLNuH09V\@2<n4<6<a~LNuHR@RAaL/H>8<`HR@RAa^L/H>8<:<<<LSAcBPHA"Q>9pSG yQBPHA"Qava#<M,B?< NA\#a!^$@?<"NNT @#`^ h PAfD# hgTP#,@@F#J.$fF'J.$f# `j-| F``ByL@HbH ͒#]V!(`#8!,#!#(! 8# L! 88#p!VpV x3/9a?< NA\a 9`f <+aHLNuJg/C`@AN _NuH8g.@F'8g x@!@Fg B9Vv8J9Vvg yVrBy`By` prE`"SW`@lj<eZ|CSZ1C@mS`@ m$ n`Hy`Hy` ``Q``#`b#`f9`29`49` fJAf 9SWgSW|mr|l2<|mt|l4< 8g>< 8JG[paZA^$@F'Vv#Vr!@F`FV NFV NJygNuNaQNu8gNuH"yM,J9Rf Lb`LH@Ry~J9V"jR9V"J9V#jR9V#C"#A 0)jgA`A! #z3Jyf ! ` yM,0!J9QfaLNHa2 zdB80jg ! `! <g@!L#8!gNqNqNqNqNqNqH@La2Ns !8ggB9Vv"x@)!@L 8 !gf:NqNqNqNqNqH@Jhj>`Ha2p B8!!@ Lh8!gNqNqNqNqNqNqH@La2Ns#a2pB8!! 8!gNqNqNqNqNqNqp1@ @1^1\ 9a2Ns/ "z!قB!قF!قJ!قN!قR!قV1قZ#zSyjB8"_NsHa2 z~(z|8!F|GkvB8d!A!|g A!ggx Bx@pNqQx !\gB8!! La2`,La2Ns09~y~gNuC`4C`.C`(C`"C`Cv`C\`C8` C<`C@Aatp0Q30<"<(vNBByNu MZxN42*NEONEOchrome v2.10by CHAOS,INCUNDO000H (ya*ya0<JyT4f29T0<((((QL0NuH<&ya(K$K*y46@A:MEE:MEE8:jEQDMEE89Vxz,<8@jRD:CjRE2AEd\<FE>EG6<`Jj6<t؄eta`,aJFk GBBk gAf P`AQaf`DQLDGtJjt6<څe6<`a4`(BBk gAf P`AQaJFkGa`EQL9ڲ:9ڴERG2E&ya(K$K*y:MEE:MEE8:jEQDMEE89Vxz,<8@jRD:CjRE2AEd|<RFHƌ3ڮ3ڰHFSF3ڬkRyڰ<FE>EG6<`Jj6<t؄et`$JFkGBBk gAfP` AQ`DaQL>Nu<RFHƌ3ڮ3ڰHFSF3ڬkRyڰ<FD>DGtJjt6<څe6<``$BBk gAf P`AQJFkG`Ea QL>NuH< @o @@lJ@jQQSyڰj3ڮڰSyڬjSyڰR8 4`hv6HCdbeV*F</ J@k$ @0l.Ng30a430a*809M(gTDg 3y3V Nu6<Jyںg@49ڼ|gxS@kJyھgBdRDRDQ`8D`BdRDQJDfRD0NuAo3ھAAmpNuByھJ@fpH@B@NuH,H:~JWDGO?<NNT<<J@f<<?GN02 NaLNutvH"i`v`v`vH"QBh6BhfL8t`H1|6Bh8Bh:1|?<09VS@1@>1yںf1yڼB1yھD6(@L"yڶ49M&gnH2z<)$49M(~gTGgi:HG>)&&iHg"BFGbB03 s @HEHGGHGHE`0alHE@ AfMLE49Vv89M(H~H$HLBjF5@L5AN5Bj5C$5DZ%iLT5iPX5iRR5i@^5|\5i:`g5yd5yb`Bb&iHgX`g.Ci$i&bC:305EH<30E5FPHL`g84*LSBy6ySCzaB0*LL~Nu @e06Ce& Ce yM$gv` 6CeK Cd@DCyM$g3M$a9Uwga8aba y"yaEfh89:9<>ySFy SGHNLarg33DRF3ERG3 ySF3ySG3 ya"ya0<JyT4f0<""""Qprvxaź>9hy~gaNug @d:EeHŊ Ed8G~Js@fa>(?aޖaa:f^ @dB8De:HĈ Dd.<G~Js`fDgaJEka=:a=a`JEkaa=:9~y GeQ?EEHz/;P>Nu: Ef\B9T`RUwgavahUwgafB9Uw`b9TB9TSH EgB9T< FdA~Jp`f<FFHDHz$/;`Nu ya><| Q`ƞL"yVbJEg Efa`9TB9TSH EgB9T< F gAJp`f&<FF?Hz/;`2Nu: Eda;LaNu\H?<?<?<NM\LNunLh9Uvga"`a` @e6Ce Cef C&eH C(e C:dgA402vapaB9TA402va8NuJ9Uxga`Xaa`N6CeHK Cd@DCyM"g43M"a29Uvg Ha:092968ahLNu @d|n g:EeHŊ Ed8GJs@fa:?a@aa|:f^ @dB8De:HĈ Dd.<GJs`fDgatJEka::a:zap`JEkaXa:h:9~y GeQ EgB9T Ef a:<` Efa"za9Nu ya#"ya$I0<J9Tf H` Q"ya0<JyT4f0<$$$$QJyT4faȢaprvxa ya"ya0<JyT4f0< QaNu Efa :<a9LNu Efa P:<a98Nu Efa :<a9$Nu Eg a2 Egaa9 a8`T|nHaJa~aӠ<|g,Qaa*a><@a~<|g Q`aLNuHgRyM yhMm"3M`g:SyMn3gMA09Ma<A.402AaLNu yHA402R@RAva`LNu3{]\aNu3z]\By]^By]t3]b`Ѫ yagP<933lByn>9N3p>9 3r"ya`""QNuUw`O9UvglUvK,MB]*a::l:n:p:r*a::::: a`T#a`Uv#a3<9l3<9p3><@FW33FSG3<9n3<9r>9V3 FW33FSG3 ya"ya$ya<<"$"$"$"$QB9TaJ9Tga.prvxanaNuB9Uv ya"ya<<JyT4f<<""""QNu/0<Q Nu9S?a J9Og^09294969 |n |nJ_Nuxz y"yOaB9OByO3O3 O09M y]gD@yOJyOj yhO` yhOm yhO`09O29O49Ovx yO"yaaa09NyPR@|@o0<@ByP3?N29RyTRA|oByT3R2<33 09P29T4969 xz ya"Ha09ؐyR@Hy29ڒyRAIy69K89 LC33D33yS@3y SA3ByBy09Sgza3`H3~*H,I3V3X63fK3j63hK3lEF6|Z|hm|h@C3Z30\IJ҂ af3d@3`2|g|R@3^H3b|~68z˜z0:2:?:<HE؃HD<6<zzJCkJDkzlz|l02yVyX M//XB@r@p4g4g4g4g$"J@g40|z2|dz NaRGzf"JyT4f">9~y Ge3~za2FRFzf0<rdybyd3P3Ty^y`S@SA3N3RLNu|?nJ@kJAk|n84|H@FB|p2FAD4DDBN@XXXXNuXXXXNuXXXXNuXXXXNuXXXXNuXXXXNuXXXXNuXXXXNuXXXXNuXXXXNuXXXXNuXXXXNuXXXXNuXXXXNuXXXXNuXXXXNuJgdF|qb/rTAAjA0"NuHxxrt@A@AB6CCcRBRCCQ0LNuHxx rtЀAЀAB6CCcRBRCCQЀAЀӁB&CcRBRCЀӁЀӁB&փcRB0LNu<Yw   6 Nf|   !"#$%&'g(G)#)*+,u-A. ./0M112o334m556F67m7899::r:;W;<$<<=4==>>\>>??6?a???????@????????a?6?>>>\>===4<<<$;;W::r:99877m66F554m332o110M/.. -A,u+*))#(G'g&%$#"!   |f N 6  wY<lO3p\J9* %6Kb|ؙ׹-ZӋҿ2pϳC͑9˓Sɺ$ȓ~zŎĩ@}"{.f-zZ>(  (>Zz-f.{"}@ĩŎz~ȓ$ɺS˓9͑Cϳp2ҿӋZ-׹ؙ|bK6% *9J\p3OlH0<""""QLNuH@r0<?"QLNuHax y"ya4y&J09492BSAFA|32969 aALByaNuHa y"ya4y&J092A3294969 a@LByaNu ya"H~<< Q y092949 69@SCK8LD89H@2VAATp$H&I:9Vg0`(J*K<:PQQ`^(J*K<>FG:PQQ$H&I:9Vg2`(J*K<>]PQQ`(J*K<>FG]PQQR@T @e89:yEsTFDDFEEDE82@:2PFECH`` $IRRQaM؈=y=y -ya-ya >9=GGG=G>9=G=|=|=A=|=|$=y&=|(=|-| L ya<TF>6GaDM؈=|=yVBn-|  ya"ya4<""""QaNuCpEpOSG`~Hz|" $&(*,垀*,垀圀H@<:E@T"*2:0QL"J Ff$IQNuA.2<Q29V49V69VCgCf`  9Uvf 9TB9TB9TN/T`Va49694y 09``"y$yag(4<J9Tg4<$$$$Q"ya#Nu"yaBBBC4|JyT4f4|d0<@3a>9Uvg, ya"ya4<JyT4g4<""""Qa*NuH ya"ya޳n0<""""QaHLNuJydgFH~ ydg ~E`H><EByd yaAQz<< QA`QLNuJyT4fa9TH Ia9THEA.PN 8:^^ (  @ b <4V^Vh ^ h J FX> ^ , h 0j hVB^V6, : `HAZxz0k 246a*,`z|AZ0k 246a`33AZ&H4k 02a`AZ6<4k02R@RAa`LNuHA*`JyT4fjH yaAXp&<r/ǘǘ AxQGADJ9Tf G~A4k 02a`aHLNuJyT4f$HGrA~402aQLNuHGA_402a402aaLNuHG Aj4k 02ar`LNuNuJypgvM؈=yp=yr-ya-ya =yl=|=yn=|=|-| =|=|=|=|$=|&=|(NuNqHa'a'&a'aLNuHaaLNuHaaLNuHa a&a2LNuHa&nLNuHaJ9UxgaLNuHa\LNuJyT4fA402vahaUxNuB9UxJyT4fHA402vaahLNu29M$tv Af$0<.8<2<afDa`0<$2<anNu?0<$2<aD2`29M"0<8<.JAjD2<4<6<a6DaNu0<8<*JyMjD2<tvaDaN:Nux`xH69MA'402R@RAvJDga`aLNuNuH2<B`H29M` H29M|AA20Ah#C2I220H2\ptSAk 3P 2Q` 3B 2QLNu29M`29MH0HA | @#fA4<76; 2;`$ |46| | CfRCxz|aNu9THM {PNV M|`&Nu AdPg:|kM Eda"?aœaa:f@8|k$L DdDgaJEka"~:a"xa`JEkaa"fza`JEkTa<<a"L3~>9~y GeQ3A EE pPHNL:9a"NuxH<9V>9VFgLRFFgDSFB9TN|6FFGAc09V4"80`:0p02HIad3^d@H3X02HIad3`d@H3Z02ad3bd@H3\UCC09Xy^09Zy`09\ybr29^d|4HA|2mRB1 J0r29`d|4HA|2mRB1 JBr29bd|4HA|2mRB1 BTF1`Qja:LNu||C11NuAoCWfATHCVfCVr ygr0ARNAWNCVERpNҖfa2BgHy?<8De6L Dd.A@M+ayM*gFaaNBLNu Ae, @e& @8d y:AjCxfaa־aLNu:Ere E1e @e @e @ dFx3M;@6dQ`xByM;@dQyMaN:`18>DK19AJByM @"e3MaXAr8 DLf JyMgJz` JyMk>zxP\QaX`T Ee$:EeHŊa8 Eez3Ma*NuHA50<2<a`a(LNuH`Hx?<HNA\LNuCmDmEn Fn<Nu<NuJyT4faHa*fLJyT4flF9SHMLCSE<ŜDSF`QMW|a 9, ҐMW.:SE8n MSv` yߨh Rh ,M|ab0. м,Q,M,Ma:Qa <*a0 yafMY$>M`pypm(*Np A+W|  Q <*`ra*NAJf \fRfBgHy?<=NAP*NATHx QaNEJ@j**Np A+[W|  Q <+;alM QRaxataaa9Q CRATHfBgHy?<` .B0QAf~ |JfRFQMV<|a~ zGRIfJfMV|a,K| aG REQM|aK >x`,M**|a*EH؅Q*yK >`M,aQa(`.yaN$LAS`N$LNuJybo?9b?<>NAXNu//?9b?<?NAO Nu//?9b?<@NAO NuaҰfNuaްfNu y0( AaJyT4fACl402`H09QAa|`ML<=h=|=|=|-| =h =h"ya (yQgypn\CvH"q-I=|=|=|BC-I =|$=h &=|(B*HLRFQZ`H2A)Fa <),aL yag`Jyrf(>9Qa |fByQJyxf9Uvfa҄ASa`49ؔyRB69ږyRC8|LL:ؼJf8ala``#/?<HNA\# @ NEOO BJBBP yA "9֒l a`ZCJhgXJyQg~yQgRG`پhg8HE(J( .` EL(oHQ|`"QL٘RX"Y22B2~JyT4f>9T22Yx89Q"M؈=B=C-ya-I =y=yn=|=|=|=|=|=|x2AII=D$L=D(4=B&K-| aJyQjByQRyQaJyZga pByZBy`ByfaNu 9XglHLAC~yQgRG`(X$I yQoSyQ&P\SPfa`LpHpC,ma a8LNuH/ M]f"_aa ad3aaaL yl6 JpadLGat6Z&&Ga&&Ha`*Gat6[&&Ga&&&HaL yafE<\fGf,IfBgHy?<NNAPJ9gNJkhE-0< g Q`  Qa0ata6 <-a29a Af` JjaaHa <(a`pLANuLA]fp`|nn|n* Ae\ @eV @e @8dHB9TACc>9V4"~ Ad<9VF~<02QNPaNuJyfaNApLxa3MAMJ9MgAM0`n?<Hy`p?<=NAP3bkDBg?9bHyM$?<BNAO J@k"HyMHy$?9b?<@NAO a*`a$ <+oahaѰ>9a GgApLx`@9MAMJgAM0`nGMa<9MJg<9M3`naaHaFGA=~`(H~59Mf~6CLNu AnFy͐a`x|nJ9fhJyM ga0`Za `T|nF9M `F|n@f y`no0Sy`n` y`nlRy`naa>9`n|0H0<2<4<6<x:<a A0<2<tJyM fa A02tAa0<2<tAJ9M fa0<2<tAJy͐faƾL?NuH?<NATLNug:|kHŊ Edax?aJaa:fD8|k(HĈ DdDgaϖJEka>:a8aϒ`JEkaza&za~`JEkad<<a 3~>9~y GeQ3JypfAa `BM؈49p=B69r=C-ya ya-H p2<? Q=yl=|=yn=|=|=|=|=|*<x2AIIB9DpSJygD yfpIMDGEB9F` *<=|=|x2AIApMC=D$L=D(4=B&K-E H03BgHyNAXA"a$`HHy?<ANA\.yAa`(0<2<taºNuA2A ya`* * NEOchrome V2.10 cut buffer contents (left justified): * by Chaos, Inc. of the Delta Force (member of The Union) * * pixels/scanline = $ (bytes/scanline: $) * # scanlines (height) = $ * * dc.w $,$  * * Hardware color pallet (color 0 to 15): * * $ * * Monochrome mask (1 plane; background=0/non-background=1) *H>C4aZL|Nu H>gaF`L|NuHBaHB?Ja4H>?Ja4aL|Nu0123456789ABCDEFB; aNuH>³f,// /<?9?<@NAO"_ _ fL|Nu:9aNu:EreX E0eR @eL @e @ d@x3M ;@DK19AJa* 96fa>`"@pR@"ifa4 92faaaNu"@$iaa$iaNuXXRNuHgH  H@RNu0123456789HAz9UvfzC~x9Uwfx|01E6\Q|23D\Q|1F1F3F3F J9Tf2JypgBhBhJDgJypgBiBi LpNuByrByxByBy~9Uvf3x3rJf33~3rNuX\a@ejn`rw W[_`c fjn`r F9SH yaEPM <r4<AxQLNu`(e(j(o(H yaEPM <r4<AQLNuVEaWENuh lpW\aH yaEPM <r4<FFA`QLNu6Ce Csd8De D7ex6HÆ Cev#z De RE D&eRE8` HĈ D 9Tf$HaۨL3MHaۖa$LNuHaیL3MHaza LNu49M `49M?0<2<4<6<x:<aD0<4<a84A0< Be0<; HArtaNu38>EM3;CLH0<2<4<6<x:<aA0<2<49M(fav`2PAJdHtadLJ6<PAJdHtaJLQLNuH0<2<4<6<x:<avA0<2<49M*6<;0gQAQ`taLNu H6<89M&A40@00@20@aLNu   HA]\C]t0 BX1|2aBQY0BXT0{@a]02a|0 0BC^t22222222aXLNu99V$WQRST U#9  9999999+X)KJ@A*@A*Z9999""!  " !"#$%&'()*+,-./01234 5 6 7 89:;<=%>&?( .799999  999999FFFEGHIMISCELLANYx: /y:colorpaletteCUT=>HEX .S FILEMASK=>HEX .M FILECOPY BOXMODECUTCOPYPASTECLEARROTATEH-FLIPV-FLIPT-EDGEF9F1F2F3F4F5F6F7F8OUTLINES T Y L ESIZEALIGNFACEPLAINBOLDITALICUNDERLINE6 8 12 141628SYSTEM EXTENDED SYS.DesignedProgrammedbyDAVE STAUGASSmoke & MirrorsJIM EISENSTEINGraphicsJEROME DOMURATJ A C K K N I F ECUTCOPYPASTECLEARF1F2F3F4B R U S H E SN O Z Z L E SG R A B B E RP E N C I LL. BUTTON = COLORR. BUTTON = RAMPL I N E D R A WA R E A F I L LE R A S E RS H A P E SA N I M A T EFILELOAD SAVE NEWMAX #ADDDEL XXXXXXXX CUT BUFFER EMPTY FILE WRITE ERROR MAKE:COPYBxxx.IMG UNDOCOPYB*.IMG C U T T E RFILELOAD SAVE NEWRE-CUT#:000CHNGEADDDELSHOW XXXXXXXXX99999FFFFGH999/9  O P T I O N SLOAD:SAVE:FORMATDELETE  *.NEO*.PI1*.PC1*.IFF*.DOO*.NEO*.PI1*.PC1*.IFF*.DOO*.OBJ*.ANI*.S*.C*.RST*.PALG R A B B E RCALCULATE COLORSSAVE PALETTE *.SSAVE PALETTE *.CCUT=>HEX .S FILEMASK=>HEX .M FILECUT=>IMAGE FILE999+COPY BOXMODECUTCOPYPASTECLEARROTATEH-FLIPV-FLIPT-EDGEF9F1F2F3F4F5F6F7F8090X)KJ@A*\] MISCELLANYSTEBLITTERMAGNIFYY: 8colorpaletteSAVE ALL OPTIONSSYNC: 60Hz9 .799999SMOKE & MIRRORSJIM EISENSTEINGRAPHIXJEROME DOMURATADVANCED FEATURESCHAOS, INC.A N I M A T EFILELOAD SAVE 001001001SEQUENZ:00 99((((9969(6(6+9EFEFGHGH9999R A S T E R SFILELOADSAVEGETPUTCLEARLD PALDELSHOW000Y:000-999`baGHFF@SB|@JRBCSA8 HЁ8DĖ` ""Q:QNu@SB|@JRB8 HЁ8DQIx~`H{pLpDTI{p<p4TI{p,p$TI{ppQ:QNu@ `P0pH(hX8xD$dT4t L,l\<|B"bR2r J*jZ:zF&fV6vN.n^>~A!aQ1q I)iY9yE%eU5u M-m]=}C#cS3s K+k[;{G'gW7wO/o_?J@ggS@SJx0@f0@Q88LL2FAA8A&I>2 LG g^B9T><3(3*3,3.>9V3&JyMg>9V3VAfh00# 3$`>G0gvRy$ y$eV y 004<N=668Cfh0200N=63&VJyMg ya"ya$I><JyT4f><<9T""""Q?9VCz<F2OQBh$!|0.Bh209.>9,@(H9@(Rl(QJyMgV/9a#aa3VV>9$#fh ` ?"y 68# 02tN=6>Q#a3&VNJBy$B9TNu>GgJy$gRy$JyMg y$dd y <(:(@fJy(fA>9*3*Gj`ZAf(Jy*f >9(3(Gk>Sy$1@1A`8"E$FJEgHƍ:9(g>9*HǏżg3(3*00# aB9V*N=6Nuy,c3,y.d3.NufgJy$f`*Jy$gRy$B9:aB9V*68a``:>9V3&JyMg>9V3V ya"ya$ya><JyT4f><"$"$"$"$Q3.3,3$Afh00# 68N=6NuJy$g y 8(6(gRy$ y$d* ya"ya><JyT4f><""""Q/9a#aa?tN=64#agX y 00# a~3v3x ya"ya><JyT4f><""""QJ9V*gV'NJNu32By43V,JyMgXH3.892?Mv Ve"R@RDSB@nRBS@SD32RASCAnRCSAaR32L3V,By.HMv8SDc :De@d` DeAd D43.aLNu8@:AEmL:FEEy2G ya"H>OGFEEOGFFF8F204.Ԃ&փ,(؄*څ"܂ҁ$Ar&AބɌˍ"MvJjBazRDDfQSAjrPJj܋܂ދ`S@E@͜܋܂ތދ`a8JjRDDfQSAjrPÞތދ`ތE@QNuHJy.gA2; FAD8;@`"??fA20F@4FB69,|KdpPqPXYQ`pPqPXYQQ69,[[HH@[[H[[HHA[[H` #P"#P"b`>*NIL`~89,| "H@HA$&FFLdpPqPXYQ`pPqPXYQH@HAHBHC89,|LdpPqPXYQ`pPqPXYQACQLcNuHM؈*N yaޔ@RB:–ARC:::B]E*P"B*BB]::*:::BLNu H/axJGkfJyQg j.ByQ`Ha~Ny<|g@Q3Q`><pNy<|gQ WaJGk a.JLNu~3Q`H~RG6k8:<avfLNu~`Nu 9 Tg 9TfNQNPr09V2HM͘aaN} 9 Tg 9TfdNQNPr09V2HM͘a0a`N}H>|g6<8<:<9<<afLAkrahCaER:pafaN$LzA Qaa`8<<<alf4AkraCa,ERLpaИfaN$L`PAa"JGk@aZM͘09V2HOA pp~HNLxa.OA ppNNx49_t|g Ny`LNu"0<L\f~H.l}< |p^A OM͘:naP>9V22OM͘ANG>A402a"aH09V2HM͘2.AkN2AoN2.AsNJyT4faLNuHG&Ak~`0nlRV~Nu VoSV~Nu nlRn~Nu0.VoSn~Nu09VfdfVfg3VNu~Sn0.Vl0.g"09Vg3VTn0.no=nNuByVNugaga*Nu09VfbfTfg3VNu~Rn0.no,.g 09Vg3VUn0.Vl=VNuByVNugargaNuJyV2o:yV2SyV2~Nu yV2l:yV2RyV2~Nu2<`2<`2< ` 2<0`2<@Nq0.:@|A=@~Nu 9 Tf2H09V2HM͘0.2||J@gS@A=@LNu 9 Tf4H09V2HM͘0.2|||lR@A=@LNu0.:@@=@~NuBgHy?<=NAP3bkM͘,<aaŶNuBgHy?<. 0.>OO-LF@|=@"*n>.>.2OO-M$FA|=A(A T<. :.ElEA=E*8.6.ClCA=C,#  l#  ,JngA#  l#  ,0.2nSA4J6KB=C6|@0;(|A2; FA=@8=@:=A<=A> PN.n@Nu??   8  t  * OzK` OzK .B@ S@=@.H=@0 .B@S@=@2H=@4NO$K` O^K .B@ S@=@.H=@0 .B@hp`H@@neH@=@2 @d D@jB@H=@4NOK` OK . B@hp`H@@neH@=@. @d D@jB@H=@0 .B@S@=@2H=@4NO K` ODK . B@hp`H@@neH@=@. @d D@jB@H=@0 .B@hp`H@@neH@=@2 @d D@jB@H=@4N         " 0 > L Z h v      8 \    4X||N|N|N|N|N|N|N|N|N|N|N|N|N|N|N|N|NSAl r""*,)JdN||l r""*,)JdN||l r""*,)JdN||l r""*,)JdN||l r""*,)JdN|ƒ|l r""*,)JdN|ƒ|l r""*,)JdN|ƒ|l r""*,)JdN|ƒ|l r""*,)JdN||l r""*,)JdN||l r""*,)JdN||l r""*,)JdN||l r""*,)JdN|ƒ|l r""*,)JdN|ƒ|l r""*,)JdN|ƒ|l r""*,)JdN|ƒ|l r""*,)JdN4n.(n*n$4.>.,Q`*0.22.4@e`=A4 L"MHG>.*0."2.(4.0&(*,)Je Qp&(`G ,gGgG |gGgG|&SNSGg|dr""*,)`""4.HGQ``4n.(n*n$>.,Q`lHG L"M0."2.(4.0&(*,)>.*Je Qp&(`G ,gGgG |gGgG|&SNSGg|dr""*,)`""0.2n4dvHGQj`SGg|d~r""*,)`n""0.2n4dHGQ.` M"M*.8,.<4.6&(ƅ"&(ƅ"SBeSBe""Q&(Ɔ"&(Ɔ"`4n.(n*n$4.>.,Q`"0.22.4@e`=A4 L"M0."2.(4.0&(*,)HG>.*Q`Qp&(G lgGgG |gGgG|&SNQ""4.HGQr`4n.(n*n$4.>.,Q`rHG L"M0."2.(4.0&(*,)>.*Q`JQp&(G lgGgG |gGgG|&SNQ""0.2n4dHGQ~`Q""0.2n4dHGQZ` M"M*.8,.<4.6&(ƅ"&(ƅ"SBeSBe""Q&(Ɔ"&(Ɔ"`K+H+I+J;D;E;F ;G r0<"J$$$$QaJyM$fl?<NN+@T(Ha`*K;@+H+I+J+K8<:>Q$Nu6Co8`Cl<6Co:`Cl>Q;D;E;F ;G a$m|><$$$$Q?<NN+@Tp?//-?<NNO (HA)H)m BlBl$)|.Bl2Bl4Bl609H9@9@9|0->- @9@(Rl(Q>-&mBlBl$9|"` )[&)S*QM:-m-m 8-:-<- >- =D=D=E=EDRF=FERG=G=|>9O=G=G&JyM$fa- =D=D=E=EDRF=FERG=G=|>9=G=G&Md-m-m 8-:-<- >- =D=D=E=EDRF=FERG=G=|>9=G&O=Gp?//-?<NNO Bl60<9@9@9|8-:-<- >- NuMT-H-I =D=D=E=EDRF=FERG=GBn=|=|>9=GO=G&Nu$m|><3$$$$QM-m-m 8-:-<- >- =D=EDRF=FERG=G=|>9O=GTG=G&?p?//-?<NNO >9G9G9|9|BL9|BNA]\00T03]tA^tB<- >- mmTF0TG0NxA]\0BX0By]tNxA]\0gp0TH03]tB^tNx9|?L9|NN/dM -m-m 8-:-<- >- =D=EDRF=FERG=G=|>9O=G&TG=GNu> G> |HTHJ@0RBBBB–A4BA:>g0<FGEQYQYQYQYQ4TA|:2QNuPQ4TA|:2QNu  (*((((*(Jl"Dx?~<xtb1 @ f< ???0$H"$qBp@00>>@>??0 \0>`@.@V`1B ==@`px|~|lF8||x~p<8dRE*5@*-P&#T%$(f0< ?  [_ C v..=}.Q}.&."(~.!(.g}.0g~(.1grQh<.$~. .-<.Q.j.j.0j.Dj.Xj.lj.j.j. j. j. j. j. j.) j. j.b4j.H@P@K@ M@8BX4X|0 n|T\fr&2@PXbn|.Dd$:T$|, 4 < ` h v |  & B P|||||  p  p00p ?  ~   ?? px|~~|xp@9EEE}E}E%UYQ}]UEE98,2&b#2&,8$H"$qBp@00xtb1 @ f<m@@@@@@m@^zbF@@@@@@@`@ P0 \0>`@.@V`1B QBv,Y ra0N 4h*S`QH`p`b5t: ?OOOOO@OXP P P P ?0```0pXL&4t P`@ ?? ??8dRE*5@*-P&#T%$(f0< @@``pppp8||8@ @ @ @ @@@ @ @ @ @ (TTT( P"  @B  " " " "  **   gg@@ `` 00h008x p  p   @@  @  @ |=}}=@ @@@@P0    x x?  U U U U U U  U U U U U U\ U UUU U\xV PXU Ux?T UT P*T U 3@@@_@3 ?AA 8LTd8aIϒIIIIIIIIIɔIIɀ 8 0`@8,66,8  8 8   @@@@@@@@@;w{{w{ A" "Aϳ~~~~ 33336666llll3333cccc0 0 0 0 ٳٳٳٳllllۿcccc0000ƛƛƛllllٳcccc0000ssssϳaaaa͘````````???>`>`>`??@@@ >AAA>>w3>AAA>~ >7>>|AAA888~(((~?~@@@~000~?@@@~111||?@@@808080~aaa||>x!!!~<ÁÁ|~!!!|||---   Oߙ f f f>߹ F F F>AAA      >AAA888>AAA>??? ?111```000?```| >0>hhh===   >888n n n    000~~ ~ ~    000      000 p!p!p!   0 0 0P!P!P! 000aaa 000P_P_P_ aaaDŽ888PPPxsxsxs@@@<CCC888Ϗ0P0P0P(((@@@<`P`P`P,,,@@@|>||>>>|ppp???pp? U@AF5 .@FDnDD~B5 .U.@.5 .@@DDӾ,h8:B1 .8*1 .TDED88D|T|||p?ppD;DD|}.$: .AFf@ bT|WqT;DԻDDU\;DDpnHD|DNnnDH |W188@D3@NPN@@D@|HN@@Nb @@NbDH @@(lF"1 'W "Q@HQ \@@Dnln ȤD4$*o@3JD@@DnlF`Wd. obDHQ \@@Dnln$*ȤD4$*o@3JD@@TlF`P$*d. b@Q \@@Tln$*ȤD4$*{@3JD@@TlF`P$*d. {bH[ ]@((15*@4;5*k@3Q\(Fƹ9Op$t*@.N @sGG  h89 DȪ4.!+@ 3g3QU\D;F;DDut4/+!Q3DDDD  ;pĻ TȪ4'!G#Q3g3nnQU\DECyC?Du;t4111Q3DD   ppp?@>8|~p  > |?c30@@@C<<<0HHHxff`ǐ888p   9<<<ha? 222&   ? aaa||| ǜ8 0@@@<ÀÀÀ8888000À<<<8pppp   >>> PPP???<<< ` ` `  888???ppp    ppp ```0000    ppp`@`@`@@ pqqqqqqqqaQA1!p`aaaaaaaQA1!p`PQQQQQQA1!p`P@AAAAA1!"p`P@01111!"2p`P@0 !!!"2Bp`P@0 "2BRp`P@0 "2BRb`P@0 "2BRbrP@0 "2BRbr@0 ###"2BRbr0 #33332BRbr #3CCCCCBRbr#3CSSSSSSRbr#3CScccccccbr#3CScssssssssr$4DTdtttttttt$4DTdddddddu'$4DTTTTTTeu7'$4DDDDDUeuG7'$4444EUeuWG7'$$$5EUeugWG7'%5EUeuwgWG7'%5EUeuwgWG7'%5EUeuwgWG7'%5EUewgWG7&&&%5EUwgWG6666&%5EwgWFFFFF6&%5wgVVVVVVF6&%wfffffffVF6&vvvvvvvvfVF6&Z]#<;Palette of : Saved by NEOchrome V2.10 by Chaos, Inc./* Palette of : Saved by NEOchrome V2.10 by Chaos, Inc. */ int _pal[16] = { 0x,0x, }; 4IBM xxxp This disk is formatted by NEOchrome on an ATARI ST. written by Chaos, Inc. of the Delta Force. May the Force be with you...always.|8|~|||8`ff>f68pf x<8 0<f`l88<8||~8fff<88~~08x<0 f0o<`|8|ff08f@8 0fF;p|||||8`00<8|||||~xf|8nl8|<8p6n88<|p8c`8|8 ~8|8x>||||~888xx<||8>8|~|~f>~~fx8`~| ~8>88 8088f8~8||~~~|~|8~|~||>8f ~||xc0 LESS MEMORY...Save CUTTER Object FileLoad CUTTER Object FileSave NEO-pictureLoad NEO-pictureDelete FileLoad Animate FileSave Animate FileLoad RastersSave RastersLoad Spectrum color paletteSave palette S-SourceEY"@PICTURE.NEOPICTURE.NEOPICTURE.NEOPICTURE.NEOPICTURE.NEOPICTURE.NEOPICTURE.NEOPICTURE.NEOPICTURE.NEOPICTURE.NEOPICTURE.NEO @WRONG FORMTLESS MEMORYBUFF EMPTY FILE ERROR x:000 y:0000PpppuwW'w . @NEO! 1990 ATARI PICTURE.NEONEO.MCPUU U Ǐ>>||Ǐ>>||fh(([2][ |Save changes|before Proceeding?][Yes|No][2][ |Erase entire picture?| |(UNDO cannot restore)][Yes|No]x:000 y:000 &Sd^$NEOCHROM.PRGj2B           (     4 ""      P4&  *     4& >(0 4&4( :$.     0 D(pNJFH:   @>"" *0    V2 " (  "N . "       v  2    26" r              " ((^  ,     * ,, .  & D       :      *  "B" ,$ 2,         :          (  $   V$  $      &   *      ( b           0  @.*      (   & (     &  , B    0,      0"     8 , &P\ *         $         $(  &    .     * .      (4 h$*J&6,>8   ,   *   N"0  *   *$ 0*(  " @ "`( ** (Dp& $$   H:>4  4*                .8  &&($      $    4$  6 > " &        P,             ( > ,0  (2^( $("* (">"&^b :8$                      &&* 2        L  &  *< 6 ,* .       .F((0 2D  & 8 0> b tN &  6 bXX2$     $4FP*  " JN* JHP,                   (            f~    &BH:&" .   "$& "0 0  ( F4@ :^  $$$<   6 h08     z$  8 * "  J  <T V 6F       L  &        R,  (  &      6  `    d  ^ 8  , " 8          $  8 (&&     B>  $0  b8   ( HN$0Nb2 0Jn     *4      0                    &:RlL0HFDr ..  * (         F   > * >""  2p4ZZ~b RVhF DN "8d` J`rNEO-User, NEOvf*NAjJg mg#ShitNu?<NATAA:RH?/?<GNAPAJf|\*.PI3BABNuNEOv2.26NuNug,zD nN46xz nNNu# nN0<2<4<?6<xz nN0<2<4<96<xz nN0<2<tA"n$N0<2<4<96<xz| nN0< 2<tAf"n N0<2<4<>6<xz| nN0<2<4<>6<xz| nN0<2<tA"n N0<2<tA"n NNu nN nN|m|mgBy6<8<:<><< nTNg6<8<:<><< nTNf3``6<8<:<9<< nTNf nN0<2<4<?6<xz nN0<2<A~a nNfaZ`NAX"n0"Q0<?BQJyfah`a nNJyg n8T  3U0w,z n n0 P"n@"Q0<"QNu n4 P"n0"Q0<r$vxdQ2CQAPQNu n4 P"n0"QEP0<?rt|p&(z~dRGdRGdRGdRGJGg|g|g |g ` ` Q23F3@CQAPEP0QNuH<>C|g < g`H瀀B02tA^"n N^GLJ@fLNuHz?< NA\?<NATBgNAꪪ@`px|~|lFLoad Degas PI3 PictureL O A D DEGAS PI3 INFOLOAD ALL (1 COLOUR)LOAD ALL (4 COLOURS)THIS IS A MODULE TO LOAD DEGAS MONO- CHROME-PICTURES YOU CAN LOAD THE RAW PIC OR CONVERT IT TO GREYCOLOURS WRITTEN BY: NEW MODE/DELTA FORCEEThis is a NEOchrome Master Module. It can't be startet on its own... " 7> 7s ?s ?3 3 3300?8?8;;33 ;  ;    a aaaccrrRAST     $       %' . .& -%% ,$$ +#**"&7 > >66 = =5 < <44;;3'GG N NFF M M MEELLLD(WW ^ ^ ^ ^VVV]]]]UU)ggggnnnnnnnffff*wwwwwwwwwwwwwww+vvvv~~~~~~~wwww,uu}}}}vvv ~ ~ ~ ~ww-tt||uu } } }vv ~ ~ ~w.s{{tt | |u } }vv ~ ~w/rzzs {tt |uu }v ~ ~w0qyr z zs {t |u} }v ~w1pxq yr zs {t |u }v~w2`ha ib jc kd le mfng3PXQ YR ZS [T \U ]V^W4@HA IB JC KD LE MFNG7081 92 :3 ;4 <5 =6>78 (! )" *# +$ ,% -&.'9     :   WG7'g     pWpww6W$cwpGpww6W$cwp7pww6W$cwp'pww6W$cwppww6W$cwppww6W$cwppww6W$cwppww6W$cwppww6W$cwp%pww6W$cwp5pww6W$cwpEpww6W$cwpUpww6W$cwpepww6W$cwpupww6W$cwpupww6W$cwpupww6W$cwpupww6W$cwpupww6W$cwpupww6W$cwptpww6W$cwprpww6W$cw0rpppuwW'w0rpppuwW'w0rpppuwW'w0rpppuwW'w0rpppuwW'w0bpppuwW'w0RpppuwW'w0BpppuwW'w02pppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w0PpppuwW'w - NEOchrome Master - by Chaos, Inc. of the Delta Force (member of the Union) Preview: NEOchrome Master offers you the following features: - up to 10 different workscreens - totally keyboard controlled - faster drawing of the board. - calculate colors, also STE - using of the Fileselectbox by loading AND saving - loading- and saving-routines for different picture types: - NEOchrome - Degas packed and unpacked - IFF - Doodle - Checking the commandline and changing to the right picture type and loading the picture. - formatting of disks 100% MS-DOS - deleting files - rotate objects at any angle (not only 90) - cutter utility to cut objects into a library - saving of the copybox in image format - totally new animation tool - saving of the color palette (assembler and C syntax) - and changing the color palette in every scanline - STE/Blitter support - rasters! - magnify in the lower border of the fullscreen - Saving all options 1. Keyboard codes: 'A' Animate tool 'B' Brush 'C' Copybox 'D' Disk 'E' Eraser 'F' Fill 'G' Grabber 'I' Grid 'J' Jack Knife 'L' Line 'N' Nozzle 'P' Pencil 'R' Rasters 'S' Shapes 'T' Text 'X' Cutter Escape turn board on and off Shift-ESC select color #0 as painting color '1' select color #1 as painting color '2' ... . ... '9' ... '0' select color #10 as painting color '' select color #11 as painting color (on German keyboard) ''' select color #12 as painting color (-'-) '#' ... Backspace ... Help select color #15 as painting color (On american and other keyboards the colors can be changed by the buttons on the upper row of the keyboard including all special chars.) It depends on the available memory how many workscreens NEOchrome offersto you. '0' select workscreen #0 (on numerical keyboard) '1' select workscreen #1 (on numerical keyboard). . '9' select workscreen #9 (on numerical keyboard) Space selects the actual color palette What now follows is a description of all new functions: 2. Copybox You can now rotate the contents of the copybox at any angle. To select any angle diffenrent to 90 klick on the angle value by the left or (right) button. This will increase (decrease) the angle. You can also select the direction of the rotation by clicking on the small arrow right of the angle. 3. Grabber NEOchrome Master is able to calculate the needed colors between two colors. Put the left and the right color mark (move them by dragging with the right mouse button) to the desired left and right value of the colors. Select 'calculate colors'. NEOchrome Master will now calculate all colors between the left and right color mark so that there is a continues color flow from the left color marked color to the right one. You can now save the selected color palette (see Rasters for more details on selecting palettes) in an ASCII-file to include it into your sourcecode. NEOchrome Master can save for use by assembler or by C. 4. Fill Left button will fill as usual. The right button will fill with color #0 to delete a polygon. The whole miscellany options are now available by the fill function. This was necessary to get a new place in order to put the Raster function there. 5. Eraser Clicking once on the eraser icon selects eraser function. If you click with the right button again on this icon NEOchrome Master quits. Pressing the left button again deletes the whole picture without any UNDO. 6. Disk NEOchrome Master is now able to load files from different picture types. Clicking once at the disk icon you're able to select the desired picture type for loading and saving seperatly. NEOchrome Master is able to check for the right picture type and select this type automatically. This is only possible when the selected picture is saved in IFF-format, by NEOchrome Master in NEOchrome format, or as packed Degas picture. Otherwise NEOchrome Master will try to load the picture by the selected format. Saving pictures is always done in the selected format. You can format disk 100% MS-DOS compatible on any TOS version by clicking at 'format' (single- and double sided). To delete files simply click 'delete'. 7. Cutter This is one of the most complex new routines in NEOchrome Master. I'll try to explain it as good as possible, but you've to try it on your own for full understanding. With the help of the Cutter you can cut objects to animate them or to save them into a special file called 'object-file'. This file contains all information about the cutted objects, so you can use this object file to be loaded by your own program as a graphix library. There are two ways of selecting objects: Firstly, you can open a box similiar to the way of the copybox. Secondly, you can force NEOchrome to search for a frame which surrounds the object. Here it is necessary to set the painting color to the color of the frame (e.g. using the grabber). Afterwards click into the frame with the right mouse button. After selecting any objects it is possible to change the size of the selecting box by clicking the left mouse button at any side or edge of the selecting box. This will resize the selecting box in the way you'd clicked at the object. In order to move a selecting box you click into the selected area with the right mouse button while pressing the button. Realize, so far you just selected an object. To put it into your graphix library click on 'ADD' placed in the options menu (F1 does the same). The selected object is inserted before the right box. How to replace/show/delete a object that is already stored in your graphix library? (i) Select the actual object using the right and left arrow. (ii) click on 'Change' (='F2') /'Show' (='F3') /'Delete'. (Note: You can only insert or add an object when you'd selected an area before.) NEOchrome Master knows the position of all cutted objects. By clicking on 'Show', NEOchrome Master sets the selecting box to its stored position. NEOchrome Master also knows the name of the picture from which the objects are cutted. 'Show' also switches to the corresponding screen from which the object was cutted. How to save/load/clear all objects of your library? (i) Click on save/load/new. If you save your library, NEOchrome Master asks you whether it should save all headers too. 'No' means that the pure data is being saved without any further information (Note: This fromat can't be loaded again!). 'Yes' will save all information, like position and size too (Note: Only this fromat can be loaded). If you load a library, NEOchrome Master asks you whether it should load all pictures too. As you may remember, NEOchrome Master also knows the name of the pictures from which the objects were cutted. All these pictures are loaded by selecting 'Yes'. In case you've changed some graphix simply select 're-cut' (=F10) and NEOchrome Master cuts all objects again. The structure of the object-file (for use with own programs):For none-C-programmers: char=byte, int=word. --------------------------------------------- For Version $0100: char header[6]; always 'NEOOBJ' int version; version e.g. $0100 char filenames[4][13]; names of the four used pictures long filelength; number of bytes following after this entry int number; number of objects in this file --------------------------------------------- For Version $0101: char header[6]; always 'NEOOBJ' int version; version e.g. $0101 int internal_bytes; number of internal bytes following; This is repeated as often as internal_bytes/14: ---> | char screen_number; number of the following workscreen | char filename[13]; Filename for this workscreen --- long filelength; number of bytes following after this entry int number; number of objects in this file ------------------------------------------------ The following structure is called 'object_header': ( 0) long offset; Offset to object data (relativ object_header[0]) ( 4) int width; ( 6) int height; ( 8) unsigned char mask; Is there a mask? (unused) ( 9) unsigned char planes; # of planes (always 4) (10) int width_bytes; (12) int x_neo; Position at NEOchrome picture (14) int y_neo; -'- (16) long reserved; reserved for future use... Saving without any headers starts at this point: After all object_headers follows the data of the objects.... 8. Animate The animation tool can show all objects cutted or loaded by the Cutter. The number of the actual object is written between the two arrows. This object is shown on the screen. The position, where this object is drawn, can be changed by clicking in the icons at the lower right edge of the screen. There are five position where objects can be drawn: (i) left top edge of the screen. That means, that all left upper edges ob the objects are placed in the upper left edge of the screen. (ii) Right top edge of the screen..... (iii) Right bottom of the screen... (iv) Left bottom of the screen. (v) Center of the screen. All objects are centered in the middle of the screen (e.g. useful for objects that are getting greater). Animate can also automatically show all objects. You can tell NEOchrome Master where to start and where to end. To do so, click on arrow up or down of the desired border. NEOchrome Master will start by the number shown in the left arrow. It will end by the number shown in the right arrow (e.g. to show objects 5..9 select '9' in the right border by clicking on the up/down arrows. Then select '5' for the left arrow. ). Clicking with the left mouse button into one of the arrows shows the next/previous object. At the end NEOchrome will start over again. Clicking with the right mouse button into one of the buttons shows all objects automatically. This means, that NEOchrome Master in/decreases the number of the actual object by itself. To increase the speed of the animation you must again click with the right/left mouse button into the arrow. Whether to use the right or left mouse button depends on the direction of the animation (it's the same thing than the changing of speed for the color animation). There's one great problem: If the speed of the animation is at maximum level there is no more mouse cursor. To decrease the speed to a normal level press cursor down. Consequently you can press cursor up for more speed. Cursor left and right selects the previous/next object to show. Sometimes it is necessary to show the objects in a way called "ping pong". Here NEOchrome Master doesn't start over again at the right border. In spite it changes the direction and animates back. You can select this way by clicking at '<->'. But there is more to say.... Maybe you have more than one animation in your graphix library (e.g. 1..5 and 6..9). These are two 'sequenz'. You can change the actual sequenz by clicking at the right or left arrow beside 'sequenz'. Every sequenz has it's own parameters. If you change from one sequenz to another one NEOchrome Master changes all parameters to their last values. Saving just saves the values of all sequenzes not the objects! With the help of load you can load new values into the animate tool. The objects remain unchanged. 9. Rasters To get more colorful pictures you can now change the color palette at a special scanline. This can be done by 'rasters'. There are up to 200 color palettes per picture. The actual color palette can be selected by clicking on the right and left arrow. You can also press at cursor right or left to select a palette. Color palette #0 is the so called 'vbl-palette'. This palette is shown from the beginning of the screen till the 1st raster. To set a color palette at a spezific scanline click with the mousecursor into your picture. At this position will the raster appear. There's one problem! Working at 60Hz synchronisation andrasters at every scanline may crashs the computer. The solution is simple:Switch to 50Hz synchronisation or don't use more than 180 rasters. Another problem is the Blitter. The structure of the Atari ST makes it impossible, at least for me, to get stable rasters without turning the Blitter off. This means that the rasters flicker when moving big objects with the copybox. Turn the Blitter off (using the miscellany menu) and they stay quiet. (Again, solutions to this problem to me, Chaos, Inc.). The position of the actual raster is written in the options board. It can also be showed by clicking at 'Show'. You can erase a raster from your picture by either clicking at y=0 or clicking at 'Delete'. To transfer a single color palette click on the arrow-up. This stores the actual color palette in a buffer. You can read this buffer by clicking at arrow-down. This causes NEOchrome Master to replace the actual color palette by the stored one. You can also save/load rasters by clicking at save/load. All rasters are erased from the screen by clicking at 'clear'. All rasters with position and colors can be stored by clicking at 'Put'. Afterwards it's possible to get all these rasters again by clicking at 'Get'. This is useful to transfer all rasters from one picture/screen to another. Here is the format of the file containing all rasters (*.RST): -----> | WORD y_position; /* shows the position of this raster */ | WORD palette[16]; /* The colors of the raster */ | ------ This is repeated 200 times. The first entry of the file is always the vbl-palette. Its y-position is set to zero. All following rasters with a y_position of zero are not active. It's also possible that the y_positions of the rasters are not sorted. It's exactly the same setting as made in NEOchrome Master. There's another button, called 'LD PAL'. This means 'Load Palette'. Imagine the following situation. You painted a logo. Now you want this logo to get more colorful. e.g. with all rainbow colors in it. The color in which the logo is painted may be #1. Set rasters into your logo at every scanline. The palette of the rasters could be copied by using arrow-up and arrow-down (s.a.). Now you must change color #0 at every palette. Now it's time to use 'LD PAL'. Select color #1. This color would be changed by 'LD PAL'. Select the first raster of the logo as the actual raster. Click on 'LD PAL'. NEOchrome now asks for a *.PAL file. This file contains only colors. The first color of the file overwrites the selected color of the actual palette. The next color of the file overwrites the selected color of the next raster following the actual raster on the screen. This means, that you can change only one color, but in all following rasters. The format of this *.PAL file is very simple: It contains only words without any header. This means every color is coded into one word (like in the color palette register at $FF8240). The end of the file is marked by $ffff or by the physical file end. Important Note for painting with rasters: NEOchrome Master always shows in its board the color palette used at the mouseposition. Imagine the following situation. You are drawing a picture with two palettes. They are switched at position y=50. The actual color palette is #1 (from 50..199). Painting at y=20 shows you the color palette which is used at this coordinate. Moving the mousecursor into the board always shows the actual color palette (here it's the wrong one, because your're painting with palette #0). Maybe you get confused looking at the wrong color palette. Now it's time to use 'space'. Move the mousecursor back at position y=20. Press space. This selects the palette #0 (used at y=20) as the actual one. Moving into the option board now shows the color palette you are working with. Pressing 'space' works with all drawing function, not only rasters.... One more thing about rasters.... Only saving a picture in IFF-format saves the raster too. Remember: pictures with rasters should always be saved in IFF-format (Otherwise you lose your rasters). That's it folks..... I'm always glad to hear your opinion, critics and wishes about NEOchrome Master. Send them to me or give me a call.... Every bug that is send to me will be fixed (Please make a good description containing TOS version, computer type, RAM configuration, NEOchrome version and bug description). If you like NEOchrome Master send some donation either to Dave Staugas or to me, Chaos, Inc. The adress of Dave Staugas is printed by the scroller of NEOchrome Master. And remember..... NEOchrome beat'em all! --------------------------------------------------------------- What's new for version 2.07: - some bugs has been fixed. - Rasters now over the whole screen at any scanline. - 'LD PAL' to change only one color, but in every palette. - STE support could be switched on and off - magnifying glasses at the lower border of the fullscreen. - calculating colors also for STE. - the automatical recognation for the file type is now better. - You can now save all options that you selected. What's new for version 2.10: - totally new keyboard control routine, that's able to repair damaged data packages send by IKBD. It's a little bit self repairing. I hope that you don't have as much trouble as with TurboAss' keyboard routine. (In fact all version above 1.50 are really very (!) good!). - the load_object_bug of version 2.07 is fixed. ---------------------------------------------------------------- What's planned for future versions.... - TT support. (much, much work to go) - A printer output using grey tones. - a selectable grid width - only using 1,2,3, or 4 planes. - bigger pictures (e.g. 640x400) - monochrome painting (?) - selecting of number of workscreens to get more memory for cutter. OvBGPBL"2$   A~A K D"   BB@ B@ A  @Q@  $P @ @R̸@QP@ A#P$P @ P (Pf_lQ@? "d^$P<PP@@ 'P   |    *+P&PJQ -!P@ZP&P *FP%P@PZ.A@@PQ .@B,Z$PSP@ a    PQ`$(  8 6,N`" ` `+P PUPP@ EQPQP  @IQc@XP K"@BP 0c a doengz-rh@uP PAR@`kPPPcrbqcQPsp"&boxBvBpstv R 2^`P S` "QA%rtrrp>P  kPbz Pr0Z~P} @ @J$Q $4FP( LD" $ `.6*"  "Op$ji:BX<$<04Q%QPQ&P6@& ,$R&(2> 0`F0(odSsjх^`뎵@9n&H