Q @CH-FOR18ph  )NO NAME FAT12 3м|PPPPPiP:3S|Sr &>}Uu˾t223 uV^FDBOOT Version 1.8 No Systemdisk. Booting from harddisk. Cannot load from harddisk. Insert Systemdisk and press any key. UO`  @/#@%`')+-/1 3@5`79;=?A C@E`GIKMOQ S@UW[]_a c@e`gioq s@u`wy{}` @ ` @ ` @ ` @ ` ǀ ɠ / @ ` ׀ ٠  @` O`!Aa   !Aa!!#A%a')+-/1!35a79;=?A!CAEaGIKMOQ!SAUaWY[]_a!cAeagikmoq!sAuawy{}!Aa!Aa!Aa!Aa!Aaǁɡ!Aa١!Aa!Aa  !"!B!b!!!!!"!""#B"%b"'")+"-"/#1"#O#5b#7#9#;#=#?$A"$CB$o$G$KM$O%Q"%SB%Ub%W%[%_&a"&cB&eb&g&i&k&m&o'q"'sB'ub'w'y'{'}'("(B(b((((()")B)b)))))*"*B*b*****+"+B+b+++++,",B,b,ǂ,ɢ,,,-"-B-b-ׂ-٢---.".B.b.../"/B/b/////0#0C0c00 0 0 01#1C1o111112MO`  @/#@%`')+-/1 3@5`79;=?A C@E`GIKMOQ S@UW[]_a c@e`gioq s@u`wy{}` @ ` @ ` @ ` @ ` ǀ ɠ / @ ` ׀ ٠  @` O`!Aa   !Aa!!#A%a')+-/1!35a79;=?A!CAEaGIKMOQ!SAUaWY[]_a!cAeagikmoq!sAuawy{}!Aa!Aa!Aa!Aa!Aaǁɡ!Aa١!Aa!Aa  !"!B!b!!!!!"!""#B"%b"'")+"-"/#1"#O#5b#7#9#;#=#?$A"$CB$o$G$KM$O%Q"%SB%Ub%W%[%_&a"&cB&eb&g&i&k&m&o'q"'sB'ub'w'y'{'}'("(B(b((((()")B)b)))))*"*B*b*****+"+B+b+++++,",B,b,ǂ,ɢ,,,-"-B-b-ׂ-٢---.".B.b.../"/B/b/////0#0C0c00 0 0 01#1C1o111112M50_PLAY  orFALCPLAY  rYMPLAYER  rmNOIZE 15  rYM_TRACK  ًrSOUND 21  rNT_COMP  rDIGICOMP15  %r\DIGIPLAY10  [rDESKTOP INF t !.  or..  or50PLAY PRG ,|#ICIA_EMU C t ZCIA_EMU TAB Xt FRQ32BITC <t FRQ32BITTAB Ht PR50TTP6S |! READ_ME NOW %t V `H4r*oKgVI@SfB*o(m IHTHUBg?<JNAO B?< NA\#6Nh#:O aaFJg><wada`1ǂ@Gl!w@!wDa4J9fada a,apraa&a"aaa T:ΰ<f a B9<fa4afa /:@?< NA\Hz ?<NNA\BgHy?<GNAPBgNAHzI?< NA\?<NAT`a fHz`Hz?< NA\?<NAT` Hz?< NA\?<NAT `EYou must install this program as an application on the Gem desktop, OR Type the Module Name if you are running this from a command line! Press any key. ELoad Error(disk error?) Press any key. EFile Not Found Press any key. EYou must have an Ste,Mega Ste or TT to run this module player..(sorry!) Press any key. paF'A8  p  4B8@ B8@A!pA:!A"!ByF#papa aNuWNs zN`paF'A !p!!!4F#papaaNu 8g" @Jg _SNDgP` (mrNurNu?<%NNTNu0:ȰzgNuR8g8`Nu8gNuHP?8ggA,8l@Q0 _Ns@P0 _NsF'RyNsp2< QNua z$aB9  AcaIfK.<= aNuQ?</ ?<=NAPJk(8/ /??<?NAO Jk#??<>NAXNu#PNuL@H?<NNT# ?<NNT34|g43 Apr'RVQ?<HxHx?<NNO `3P Apr'RRQApr0zXQNu?:PHxHx?<NNO LH@Nua zaB9 B9 A aa@ACJfAB@Jg R@|oB9  AaNuAf"H0:Hd0H@H 0H@0B7  aP%  AJ9 fA`*  A"H-QB|aNug f""Hvg <gRC`DCCPC9 ` fR9 B9 `vx::LL$zGD30G8v K[[@[[[ [S`R9 `fNu <66lllllx|0f8l8nl:000008 8l88l~0~ 0` 0 00 ~~0 0|F 8|~&F|lxxl```bv~nf`<Z<f<fff<<f<f?`lvf40x0x7nf> `lvf8 80`dlxlp```d<lvfff |0d0p p|l8\J9 gQ 3" 3} `P 3 Nu}}A~J(;gJy gSy a$`J(g y gRy a`J(?gJy gSy a`J(@g y gRy a`vJ(AgJy gSy a`ZJ(Bg y gRy ar`tv `0<z0ap2:&tv`1$1" x$fNu( *.*Now Playing : Unnamed Module!Loading : On OffQProTracker V2.1a ReplayProgrammed by Griff of Electronic Images- 50Khz STE/TT Version v1.2B -Tempo Control: On Tempo: 125 Main Volume: Left Volume: Right Volume: Bass: Treble:Use F1-F10 to control sliders and T to toggle TEMPO on/offA^A]QATQJfJf AD0NuA: frvtM"nfrvt,m *-D<.f|~M"F X0 0 0 Nu8xG~ ikmu[L?@ ֖ ꄴ 6 j**㇈iN&O'BKK7&BZZ?zK3]rHe5؈wUG4N[6[xRT'|իgXSNh?-xɓP --ps9=dQQ6w$HlqKbX'NlDE :;3,1*"\YSkb5 -Xksstp;*g^O~C^ɓj ЬRZ!NL#\\D#ɨmsT!}Pyb;Muiq‚njpxfocfs_\sYWyV<RLO>+LȨI(JF\C%AqV>PS;$Y8ߩ683=1 EE.%, )'6"$ي." <p"oQ<.E(= )ӵ 2` C1Zy[P,Ё5t?V8 lԕA/+Ng꧿!)XA:QB^*u5j܄y2VؚT^KӭZӘam-iiЗͧ&́^..>F"d,VT'¶ĹhսKKfe4сBAAka\8 S|q7"N9vY&=P}<5rxBy&{8&LdTT%'Hk@tBE<(Pw,oj.qRt*䝶CiGA4 OlmCEITuc>8xoȯsV5 G@/" a"% \nC'SO4fEp|-Y(q`h@=~E~:t}i}]|||{o{@+z`zmzNyy6pKx(xjJx8ww=vvw{v3usuSߐt{tt5>s׬ szs(rfrdr q qTpnpp9pI:oopoC!n퍍n}nB{mmvemExlt+lZlMkkkTkYk %jBji֭jqi_ i~Qi0hhhJggIghKgfӓfֿf@eeef^eEd ddJdYccy2jc4/bbGebg`b#$aaغa[b\aFB`׃``Uf`NB__ݎ_T%_y^ճa^^X^x]ܲ]>]bn]%F\\\p\5[[[.[I[lZՔOZ^Zb0Z)>Y YYsvYH'YuXٜXXkX5/WW5WW]OW(\V]RVVVUyV!XUU*UO<UTEU!xTT=TzTXT&SS`YSjSb S2**SޚRRRrJRBRnQQ Q@QXEQ*P PPdPtPFUPAOrOO(TOg`O;eO(NN"NNbN7`N 8zMM_M8Md? M:rMӅLaLLRLl}LCQQLKNKKKz KRIK*KCdJ'JJJg#J@JvII͈III[I6bIHHƙHH|HX$H3EH:GGGG<G[nG7WG}F9FFF?^Fe#FBF yE&hEEEEv&ETxxE2kE~D2]DDD Dl?cDKkD+D CACdC}CCj.lCJtC*;C [.BB̷XB=B!BoBPFB27BAA֩Ag*A@rA|5VA^EA@qbA">A!@@.m@@"@r @U!@8D@O?4 ?✔???nn?q<?U"?9"@?:x?kG>崌>)>>!>w>\>Af>&X> `=k=շ==k=?=kz0=Q#=6==t<誕<< <8%<; ә:|:9: ::o:y:b:JG:2::U99iW99Ȏ9P9wr9`c9Ig&92|9!9}8+8׊88}i88}~8go8Q88;8$87 \7*7Z7n77R7v7aK7K>76S7!=7 6 6É6̻266ڼ6w6y:6d6Oح6;?6&6;5[5v/5*W55]555p5\c5H54V5!&q5 p84Ț4/4Ҥ4(44[d4 4q4^4Kj48Q4%F4I3ZZ3x3٤3~3%3z33|L3iɄ3WS3D_323 A322饻2׋2~62}222}`2k2Z962Hb262%?2Q2,11J1151R|111w 1f1U1D*13U1"&110U 0ߚ0]0I0.0$0!0|,0k0[a0K 0:0*30P80 '!//o///{//4/a</z:/jٰ/[%/K{/;{/,Gi// < .Ũ.Ym.M.ϟ@.Q<. 7.&..|.t`P.eM.VD.GE.8PP.)d.h. --Y-YU-Ц--]-U-:,-G-y;-j'-\a-N-?-1_-#--,~,eJ,M,?q,9,<,H,],z:,z,lp,_k,QD,C,5݄,(6~,, +s+Q+q+(+ɏt+*+Χ+z+.w++y+lz+_O+R+)+EE+7N+*<+++ * \*([*K*u*ç*_*"*k*E*[*ws*j*^I*Q*E= *8*,N**|P*i))x])0,)+)ɵS))W)2)))M)t)h~)\)Pw)E )9% )-F)!n)) 7(w(Qu(*((B(àY((o()(Y@((~](r(gz(\S(PQ(EW(:(.(#n*(,( ('9'g%'EJ')'*'''''''})G'rD'ge'\'QI'Fs'<&'1e'&n'0'E'=&~&Z&_&/&ѣH&T&&&&9`&&i&~ [&s&i\C&_ &TY&J&@Bw&6 &+{&!&B& ]C&?%'m%%%%%F%%%$%<_%X%z%%w%m%d5w%Zp%P%FB%=B%3%)% @%`% ;%l$$L$@$@$O$H$$d$$$1E$Ԥ$|$)$ug$l$cL$Z $Pc$G$>h$5;$,U$"-$΢$$X##~[#u#q#q#v#Ȁ>##v#B#Ҁ#+#B#>#k#x#o҄#g ~#^J#Uu#Lk#D#;o<#2#**#!w##<#"4""@"t""t"F"Ä"""<<""u""c"jG"x."o"g"_="V"N"FX">Q"6"-?"%ȵ""M" cj"Id!37! !a!!!!t!! 3!6!&!:v!Q!l!A!!}ӛ!uM!n*!f[!^T!VȞ!O!GD!?3!7!0?!(f#! ! !e*! C!  T w 3 Ԩ, 9 ś  "  8 ȶ \  {* st lo e6 ] VpF O! G֑ @ 9J 2 *ʐ # X" # rNJ-0DȀƷ7 (` <ynrFk)e ^(WGPjIB;5.F'{ zD, lC@5-݂5ɓ'V&q8]DSztUJm8ga`WZyT nMG1o@Ƀ:dM4-'D e= KN(v3۶{C  |Q|(RLiRy>Xs,`mgapZmTNH7B<^71 M+%#/4oGQ\ tOh4] އشG J(\r1q>~EvGK\M33`a EnGKhM33`aNuH6$:&x8-Ԅ8.ք U -(-<- $m"V".*.>. &nHF#3#3#333#3#3#333I2<:F<4`(za LlDD$%@+D&'A-ENuvz;Q|=0(")r9_vLGa 9  / g n&h0nDnP3q]I7$~qeYMB7,"~xqke_YTNHC>83.)$   }{yvtrpmkigeca_][YWUTRPNLKIGEDB@?=<:875421/.,+*('%$#!      NLO0(B1(CHF؊Fe HFڋGUe.NLNuHA4VxE4Vx<<4`HC4VxG4Vx><4D`a(EpA a&A,aA8aADaa*APNu !|1@1@ !J !|NuB8a4F'B8!<4ajF#NuH zn#5C0:ּ@01@@#5OJEA<7L HH5LNu!Nu4,B8F'F#Nu <I4B @#4AAp@2<4HQQA4C,0< r "QNuA#H""HCpr$S@nQRCP<Ԉ$BpB"r2(*AQH&B9H'B9H(ByH0PH/?8<f FDy8`y88NuQH/?8<f FDy8`y88NuJ9H/gR9H':1:,eB9H'J9H.g0g8/` J9H'f(p.J9H.fRH-NuJ9H'f...JgH@p.g>AB0.#.#g*B.# . r2.ЁЁ n$Re n -H$pLNu  +@1JaxŴxaJ1X(\:}hS@. xqR"}Y7{eQ>, ~wqLxU3xcO<* }vpFtP/u`L:(}vo@oL+ r^J8&|un: kH'p[H5${tm4fD#mYE3"zsm.b?kVC1 yrlX(\:}hS@. xR"|Y7{eQ>, ~w~LxU3xcO<* }vwFtP/u`L:(}vq@oL+ r^J8&{uk: kH'p[H5${td4fD#mYE3"zs^.b?kVC1 yr+++J@D40J,0.4`&@  HXfL 4( "L  hv>   2 : $l.(@ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"/* Amiga Tempo -> STE DMA Frame Count(sample bvffer length) */ /* Dodgy 'C' code By Griff.. (Compile with GCC 2.0 or above...) */ #include #define FILENAME "CIA_EMU.TAB" void main() { FILE *out; void *x; double tempo,hz,cia_clock=709378.92,temponum=1773447.0; unsigned int i=0; out = fopen(FILENAME,"wb"); x = (&i); fwrite(x,2,1,out); /* tempo=0 case */ for (tempo = 1 ; tempo <= 255 ; tempo++) { hz = (cia_clock/temponum)*tempo; i = (25033.0/hz); /* FRAME COUNT */ i = i << 16; fwrite(x,2,1,out); /* OUTPUT IT! */ } fclose(out); } /0 7 CK RSTVWXYZ\]^_`abcdeghijklnopqrstuvwxyz{|}~vz;Q|=0(")r9_vLGa 9  / g n&h0nDnP3q]I7$~qeYMB7,"~xqke_YTNHC>83.)$   }{yvtrpmkigeca_][YWUTRPNLKIGEDB@?=<:875421/.,+*('%$#!      /* Amiga Period -> ST 16bit integer / 32bit Fraction convert. */ /* Dodgy 'C' code By Griff.. (Compile with GCC 2.0 or above...) */ #include #define FILENAME "FRQ32BIT.TAB" double frac(double x); void main() { FILE *out; double per,work,freq_amiga=3579545.0,freq_st=25033.0; unsigned long i; void *x; out = fopen(FILENAME,"wb"); x = (&i); for (per = 1 ; per <= (1024+256) ; per++) { work = (freq_amiga/per)/freq_st; /* whole part */ i = work; i = i << 16; fwrite(x,2,1,out); /* output int */ i = (frac(work)*4294967296.0); fwrite(x,4,1,out); /* output frac */ } fclose(out); } double frac(double x) { int i; return (x - (i=x)); }\]^_`abcdefghijklmnopqrstuvwxyz{|}8xG~ ikmu[L?@ ֖ ꄴ 6 j**㇈iN&O'BKK7&BZZ?zK3]rHe5؈wUG4N[6[xRT'|իgXSNh?-xɓP --ps9=dQQ6w$HlqKbX'NlDE :;3,1*"\YSkb5 -Xksstp;*g^O~C^ɓj ЬRZ!NL#\\D#ɨmsT!}Pyb;Muiq‚njpxfocfs_\sYWyV<RLO>+LȨI(JF\C%AqV>PS;$Y8ߩ683=1 EE.%, )'6"$ي." <p"oQ<.E(= )ӵ 2` C1Zy[P,Ё5t?V8 lԕA/+Ng꧿!)XA:QB^*u5j܄y2VؚT^KӭZӘam-iiЗͧ&́^..>F"d,VT'¶ĹhսKKfe4сBAAka\8 S|q7"N9vY&=P}<5rxBy&{8&LdTT%'Hk@tBE<(Pw,oj.qRt*䝶CiGA4 OlmCEITuc>8xoȯsV5 G@/" a"% \nC'SO4fEp|-Y(q`h@=~E~:t}i}]|||{o{@+z`zmzNyy6pKx(xjJx8ww=vvw{v3usuSߐt{tt5>s׬ szs(rfrdr q qTpnpp9pI:oopoC!n퍍n}nB{mmvemExlt+lZlMkkkTkYk %jBji֭jqi_ i~Qi0hhhJggIghKgfӓfֿf@eeef^eEd ddJdYccy2jc4/bbGebg`b#$aaغa[b\aFB`׃``Uf`NB__ݎ_T%_y^ճa^^X^x]ܲ]>]bn]%F\\\p\5[[[.[I[lZՔOZ^Zb0Z)>Y YYsvYH'YuXٜXXkX5/WW5WW]OW(\V]RVVVUyV!XUU*UO<UTEU!xTT=TzTXT&SS`YSjSb S2**SޚRRRrJRBRnQQ Q@QXEQ*P PPdPtPFUPAOrOO(TOg`O;eO(NN"NNbN7`N 8zMM_M8Md? M:rMӅLaLLRLl}LCQQLKNKKKz KRIK*KCdJ'JJJg#J@JvII͈III[I6bIHHƙHH|HX$H3EH:GGGG<G[nG7WG}F9FFF?^Fe#FBF yE&hEEEEv&ETxxE2kE~D2]DDD Dl?cDKkD+D CACdC}CCj.lCJtC*;C [.BB̷XB=B!BoBPFB27BAA֩Ag*A@rA|5VA^EA@qbA">A!@@.m@@"@r @U!@8D@O?4 ?✔???nn?q<?U"?9"@?:x?kG>崌>)>>!>w>\>Af>&X> `=k=շ==k=?=kz0=Q#=6==t<誕<< <8%<; ә:|:9: ::o:y:b:JG:2::U99iW99Ȏ9P9wr9`c9Ig&92|9!9}8+8׊88}i88}~8go8Q88;8$87 \7*7Z7n77R7v7aK7K>76S7!=7 6 6É6̻266ڼ6w6y:6d6Oح6;?6&6;5[5v/5*W55]555p5\c5H54V5!&q5 p84Ț4/4Ҥ4(44[d4 4q4^4Kj48Q4%F4I3ZZ3x3٤3~3%3z33|L3iɄ3WS3D_323 A322饻2׋2~62}222}`2k2Z962Hb262%?2Q2,11J1151R|111w 1f1U1D*13U1"&110U 0ߚ0]0I0.0$0!0|,0k0[a0K 0:0*30P80 '!//o///{//4/a</z:/jٰ/[%/K{/;{/,Gi// < .Ũ.Ym.M.ϟ@.Q<. 7.&..|.t`P.eM.VD.GE.8PP.)d.h. --Y-YU-Ц--]-U-:,-G-y;-j'-\a-N-?-1_-#--,~,eJ,M,?q,9,<,H,],z:,z,lp,_k,QD,C,5݄,(6~,, +s+Q+q+(+ɏt+*+Χ+z+.w++y+lz+_O+R+)+EE+7N+*<+++ * \*([2*K*u*ç*_*"*k*E*[*ws*j*^I*Q*E= *8*,N**|P*i))x])0,)+)ɵS))W)2)))M)t)h~)\)Pw)E )9% )-F)!n)) 7(w(Qu(*((B(àY((o()(Y@((~](r(gz(\S(PQ(EW(:(.(#n*(,( ('9'g%'EJ')'*'''''''})G'rD'ge'\'QI'Fs'<&'1e'&n'0'E'=&~&Z&_&/&ѣH&T&&&&9`&&i&~ [&s&i\C&_ &TY&J&@Bw&6 &+{&!&B& ]C&?%'m%%%%%F%%%$%<_%X%z%%w%m%d5w%Zp%P%FB%=B%3%)% @%`% ;%l$$L$@$@$O$H$$d$$$1E$Ԥ$|$)$ug$l$cL$Z $Pc$G$>h$5;$,U$"-$΢$$X##~[#u#q#q#v#Ȁ>##v#B#Ҁ#+#B#>#k#x#o҄#g ~#^J#Uu#Lk#D#;o<#2#**#!w##<#"4""@"t""t"F"Ä"""<<""u""c"jG"x."o"g"_="V"N"FX">Q"6"-?"%ȵ""M" cj"Id!37! !a!!!!t!! 3!6!&!:v!Q!l!A!!}ӛ!uM!n*!f[!^T!VȞ!O!GD!?3!7!0?!(f#! ! !e*! C!  T w 3 Ԩ, 9 ś  "  8 ȶ \  {* st lo e6 ] VpF O! G֑ @ 9J 2 *ʐ # X" # rNJ-0DȀƷ7 (` <ynrFk)e ^(WGPjIB;5.F'{ zD, lC@5-݂5ɓ'V&q8]DSztUJm8ga`WZyT nMG1o@Ƀ:dM4-'D e= KN(v3۶{C  |Q|(RLiRy>Xs,`mgapZmTNH7B<^71 M+%#4oGQ\ tOh4] އشG J(\r1q>~;-G; ; ; ; TTP .MOD Player ; ; 7 Bit Ste/TT Pro-Tracker 2.1A Driver ; ; (C) October/November 1992 Griff of Electronic Images ; ; ; ; - 50 khz stereo sound, with microwire control. ; ; - The ONLY player in the whole wide world to emulate TEMPO properly. ; ; - SEE DOC file for furthur info. ; ;-G; ; Quick notes about this source. ; ; - Assemble using DEVPAC 2 or 3. ; ; - This replay is NOT fast and nor should it be. ; ; - It is designed for QUALITY and ACCURATE replay of ProTracker MODS. ; ; - It doe NOT pad samples and so doesn't waste any setup time/memory. ; ; - If you use it, then please credit me. ; ;-G; test EQU 0 ; if test=1 then run from assember ; (with a pre-included module) bufsize EQU 5500 ; maximum size of buffer ; (when tempo =32) dmamask EQU %011 ; STE dmamask for 50khz OPT O+,OW- letsgo IFEQ test MOVEA.L 4(A7),A5 LEA $80(A5),A5 ; -> length,filename ELSEIF LEA testfile,A5 ; if in testmode ENDC ; then -> testfilename MOVE.B (A5)+,D0 ; get filename length. BEQ mustinstall ; no filename given? LEA filename(PC),A4 .lp MOVE.B (A5)+,(A4)+ SUBQ.B #1,D0 BNE.S .lp CLR.B (A4) ; terminate filename MOVE.L 4(SP),A5 MOVE.L $C(A5),A4 ADD.L $14(A5),A4 ADD.L $1C(A5),A4 LEA $100(A4),A4 ; proggy size+basepage PEA (A4) PEA (A5) CLR -(SP) MOVE #$4A,-(SP) TRAP #1 ; reserve some memory LEA 12(SP),SP CLR.L -(SP) MOVE #$20,-(SP) TRAP #1 ; supervisor mode ADDQ.L #6,SP MOVE.L D0,oldsp MOVE.L USP,A0 MOVE.L A0,oldusp ; save user stack ptr. LEA my_stack,SP ; our own stack. DC.W $A00A ; hide mouse BSR set_screen ; setup the screen BSR SoundTest ; check for dma sound TST.L D1 ; if this is an old ST BEQ wrongST_error ; then quit out! MOVE #$777,D7 ;;; in future .fadedownfirst BSR Wait_Vbl ;;; will use o.s BSR Wait_Vbl ;;; set colour. MOVE.W D7,$FFFF8240.W SUB #$111,D7 BGE.S .fadedownfirst MOVE.L #$0777,$FFFF8240.W ;;; MOVE.L #$0777,$FFFF8244.W ;;; BSR load_mod ; load the module TST.B errorflag BNE load_error ; exit if load error BSR print_mainscr ; print main screen BSR set_microwire ; setup micrwire BSR Wait_Vbl .goformusic BSR init_ints ; and kill ints MOVEQ #1,D0 MOVEQ #0,D1 BSR Init_ST ; install music ; Music playing, key selection loop follows(microwire control) .waitk BSR Wait_VblNG BSR Wait_VblNG BSR Wait_VblNG BSR print_tempo BSR microwire_cont ; microwire keyboard control MOVE.B key(PC),D0 CMP.B #$14+$80,D0 ; t pressed and released? BNE.S .nottempo BSR toggle_tempo ; yes then toggle tempo CLR.B key .nottempo CMP.B #$39+$80,D0 ; space exits. BNE .waitk BSR stop_music BSR restore_ints ; restore gem.. exit BSR restore_screen exitloaderr DC.W $A009 MOVE.L oldsp(PC),-(SP) MOVE #$20,-(SP) TRAP #1 ; user mode ADDQ.L #6,SP redir PEA dummy(PC) MOVE.W #$4e,-(SP) TRAP #1 ADDQ.L #6,SP CLR.W -(SP) ; Get dir. PEA dir MOVE.W #$47,-(SP) TRAP #1 ADDQ.L #8,SP CLR -(SP) TRAP #1 ;-I ; A few error handlers. ; NO DMA Sound so can't use this player. wrongST_error PEA wrongST_err_txt(PC) MOVE.W #9,-(SP) TRAP #1 ADDQ.L #6,SP MOVE.W #7,-(SP) TRAP #1 ADDQ.L #2,SP BRA exit load_error BSR restore_screen CMP.L #-33,error_no BNE.S .not_fnf PEA filenf_errortxt(PC) BRA.S .cont .not_fnf PEA load_errortxt(PC) .cont MOVE.W #9,-(SP) TRAP #1 ADDQ.L #6,SP MOVE.W #7,-(SP) TRAP #1 ADDQ.L #2,SP BRA exitloaderr ; No FILENAME was passed error - so tell 'em how to install !! mustinstall DC.W $A00A PEA installtxt(PC) MOVE.W #9,-(SP) TRAP #1 ADDQ.L #6,SP MOVE.W #7,-(SP) TRAP #1 ADDQ.L #2,SP DC.W $A009 BRA.S redir installtxt DC.B 27,"E" DC.B "You must install this program as an",10,13 DC.B "application on the Gem desktop,",10,13 DC.B "OR Type the Module Name if you are",10,13 DC.B "running this from a command line!",10,13 DC.B "Press any key.",10,13,0 load_errortxt DC.B 27,"E" DC.B "Load Error(disk error?)",10,13 DC.B "Press any key.",10,13,0 filenf_errortxt DC.B 27,"E" DC.B "File Not Found",10,13 DC.B "Press any key.",10,13,0 wrongST_err_txt DC.B 27,"E" DC.B "You must have an Ste,Mega Ste or TT",10,13 DC.B "to run this module player..(sorry!)",10,13 DC.B "Press any key.",10,13,0 EVEN ;-I ; Subroutines for interrupts and replay. ; Save mfp vectors and ints and install our own.(very 'clean' setup rout) init_ints MOVEQ #$13,D0 ; pause keyboard BSR Writeikbd ; (stop from sending) MOVE #$2700,SR LEA old_stuff+32(PC),A0 MOVE.B $FA07.W,(A0)+ MOVE.B $FA09.W,(A0)+ MOVE.B $FA13.W,(A0)+ MOVE.B $FA15.W,(A0)+ ; Save mfp registers MOVE.B $FA19.W,(A0)+ MOVE.B $FA1F.W,(A0)+ MOVE.L $70.W,(A0)+ MOVE.L $B0.W,(A0)+ MOVE.L $118.W,(A0)+ MOVE.L $134.W,(A0)+ CLR.B $fa07.W MOVE.B #$40,$fa09.W CLR.B $fa13.W MOVE.B #$40,$fa15.W BCLR.B #3,$fa17.W ; software end of int. LEA my_vbl(PC),A0 MOVE.L A0,$70.W ; set our vbl LEA key_rout(PC),A0 MOVE.L A0,$118.W ; and our keyrout. LEA supers(PC),A0 MOVE.L A0,$B0.W CLR key MOVE #$2300,SR MOVEQ #$11,D0 ; resume sending BSR Writeikbd MOVEQ #$12,D0 ; kill mouse BSR Writeikbd BSR flush RTS supers BCHG #13-8,(SP) ; toggle super RTE ; Restore mfp vectors and ints. restore_ints MOVE.L oldusp(PC),A0 MOVE.L A0,USP MOVEQ #$13,D0 ; pause keyboard BSR Writeikbd ; (stop from sending) MOVE #$2700,SR LEA old_stuff+32(PC),A0 MOVE.B (A0)+,$FA07.W MOVE.B (A0)+,$FA09.W MOVE.B (A0)+,$FA13.W MOVE.B (A0)+,$FA15.W ; restore mfp MOVE.B (A0)+,$FA19.W MOVE.B (A0)+,$FA1F.W MOVE.L (A0)+,$70.W MOVE.L (A0)+,$B0.W MOVE.L (A0)+,$118.W MOVE.L (A0)+,$134.W BSET.B #3,$FA17.W MOVE #$2300,SR MOVEQ #$11,D0 ; resume BSR Writeikbd MOVEQ #$8,D0 ; restore mouse. BSR Writeikbd BSR flush RTS ;-J ; CookieJar Check to see if we have DMA sound.(i.e STE/TT) ; Return D1=0 if DMA sound is not available on this machine. (else d1=-1) ;-J SoundTest move.l $5A0.W,d0 ; get cookie jar ptr beq.s no_dmasnd ;; nul ptr = no cookie jar move.l d0,a0 ;; (no cookie jar= no dma snd) .search_next tst.l (a0) beq.s no_dmasnd cmp.l #'_SND',(a0) ; cookie found? beq.s .search_found addq.l #8,a0 bra.s .search_next .search_found move.l 4(a0),d0 ; get _SND const. cmp.l #3,D0 blt.s no_dmasnd moveq #-1,d1 ; DMA SOUND FOUND! rts no_dmasnd moveq #0,d1 ; NO DMA SOUND! rts ; Wait for a vbl.. Wait_Vbl MOVE #37,-(SP) TRAP #14 ADDQ.L #2,SP RTS ; Wait for a vbl,(Not Gems..) Wait_VblNG MOVE.W vbl_timer(PC),D0 .waitvb CMP.W vbl_timer(PC),D0 BEQ.S .waitvb RTS old_stuff: DS.L 18 oldres DS.W 1 oldsp DS.L 1 oldusp DS.L 1 ; Flush IKBD flush BTST.B #0,$FC00.W ; any waiting? BEQ.S .flok ; exit if none waiting. MOVE.B $FC02.W,D0 ; get next in queue BRA.S flush ; and continue .flok RTS ; Write d0 to IKBD Writeikbd BTST.B #1,$FC00.W BEQ.S Writeikbd ; wait for ready MOVE.B D0,$FC02.W ; and send... RTS ; Keyboard handler interrupt routine... ; (crap) key_rout PEA (A0) MOVE D0,-(SP) MOVE.B $FC00.W,D0 BTST #7,D0 ; int req? BEQ.S .end BTST #0,D0 ; BEQ.S .end LEA keytab(PC),A0 MOVE.B $FC02.W,D0 MOVE.B D0,key ; store keypress BGE.S .pressed ; naff naff ultra naff .released AND.W #$7F,D0 SF.B (A0,D0) .end MOVE (SP)+,D0 MOVE.L (SP)+,A0 RTE .pressed AND.W #$7F,D0 ST.B (A0,D0) MOVE (SP)+,D0 MOVE.L (SP)+,A0 RTE key DC.W 0 keytab DS.B 256 ; 'held' down table! ; The vbl - simply increments a timer. my_vbl MOVE.W #$2700,SR ADDQ #1,vbl_timer RTE vbl_timer DC.W 0 ; Clear screen fast(ish) ->A0 clsfast MOVEQ #0,D0 MOVE #(32000/32)-1,D1 .cls REPT 8 MOVE.L D0,(A0)+ ENDR DBF D1,.cls RTS ; Load that Module load_mod BSR Wait_Vbl MOVE.L log_base(PC),A0 BSR clsfast ; clear the screen CLR.B txpos ; and print MOVE.B #12,typos ; 'loading' LEA loading(PC),A0 ; file x BSR print .loadit LEA filename(PC),A4 LEA mt_data,A5 MOVE.L #40,D7 BSR Load_file ; load the file RTS ; Load a file of D7 bytes, Filename at A4 into address A5. Load_file SF.B errorflag ; assume no error! MOVE #2,-(SP) MOVE.L A4,-(SP) MOVE #$3D,-(SP) TRAP #1 ; open da file ADDQ.L #8,SP TST.L D0 BMI.S .error MOVE D0,D4 .read MOVE.L A5,-(SP) MOVE.L D7,-(SP) MOVE D4,-(SP) MOVE #$3F,-(SP) TRAP #1 ; read da file LEA 12(SP),SP TST.L D0 BMI.S .error MOVE.L D0,modlength .close MOVE D4,-(SP) MOVE #$3E,-(SP) TRAP #1 ; close da file! ADDQ.L #4,SP RTS .error MOVE.L D0,error_no ST.B errorflag ; shit a load error! RTS ; Various screen stuff. ; Init screen . (save palette,and screen res etc etc.) set_screen MOVEM.L $FFFF8240.W,D0-D7 MOVEM.L D0-D7,old_stuff ; save palette MOVE.W #2,-(SP) TRAP #14 ; get phybase ADDQ.L #2,SP MOVE.L D0,log_base ; store it. MOVE #4,-(SP) TRAP #14 ; get rez ADDQ.L #2,SP MOVE.W D0,oldres CMP.W #2,D0 BEQ.S .high .low_med MOVE.W #160,linewid LEA xtab(PC),A0 MOVEQ #0,D0 MOVEQ #40-1,D1 .lp1 MOVE.B D0,(A0)+ ADDQ.B #1,D0 MOVE.B D0,(A0)+ ADDQ.B #3,D0 DBF D1,.lp1 MOVE #1,-(SP) PEA -1.W PEA -1.W MOVE #5,-(SP) TRAP #14 LEA 12(SP),SP BRA.S plotres .high MOVE.W #80,linewid LEA xtab(PC),A0 MOVEQ #0,D0 MOVEQ #40-1,D1 .lp2 MOVE.B D0,(A0)+ ADDQ.B #1,D0 MOVE.B D0,(A0)+ ADDQ.B #1,D0 DBF D1,.lp2 plotres LEA naughtysmod+2(PC),A0 MOVEQ #7-1,D0 MOVEQ #0,D1 .lp2 MOVE.W D1,(A0) ADD.W linewid(PC),D1 ADDQ.L #4,A0 DBF D0,.lp2 RTS ; Restore Res/palette etc. restore_screen MOVE oldres(PC),-(SP) PEA -1.W PEA -1.W MOVE #5,-(SP) TRAP #14 LEA 12(SP),SP MOVEM.L old_stuff(PC),D0-D7 ; restore palette MOVEM.L D0-D7,$FFFF8240.W RTS ; Print Main Screen print_mainscr BSR Wait_Vbl MOVE.L log_base(PC),A0 BSR clsfast ; clear the screen CLR.B txpos CLR.B typos LEA thetext(PC),A0 ; main text BSR print ; draw text BSR print_tempo .printplaying LEA mt_data,A0 LEA realmodname(PC),A1 TST.B (A0) BNE.S .okhasname LEA unnamed_mod(PC),A0 .okhasname CLR D0 .lp1 TST.B (A0) BEQ.S .out1 MOVE.B (A0)+,(A1)+ ADDQ #1,D0 CMP.W #20,D0 BLE.S .lp1 .out1 MOVE.B #0,(A1)+ CLR.B txpos MOVE.B #10,typos LEA playingtxt(PC),A0 BSR print RTS ; Print tempo information bits. print_tempo LEA tempotxt(PC),A0 MOVE.L A0,A1 MOVE.W RealTempo(PC),D0 EXT.L D0 DIVU #100,D0 ADD.B #'0',D0 MOVE.B D0,(A1)+ SWAP D0 EXT.L D0 DIVU #10,D0 ADD.B #'0',D0 MOVE.B D0,(A1)+ SWAP D0 ADD.B #'0',D0 MOVE.B D0,(A1)+ CLR.B (A1)+ MOVE.B #55,txpos MOVE.B #8,typos BSR print MOVE.B #37,txpos MOVE.B #8,typos LEA tempo_ontxt(PC),A0 TST.B tempo_cont_flg BNE .tempooff LEA tempo_offtxt(PC),A0 .tempooff BRA print ; Draw Bar (slider thingy) ; D0=length of bar D1=position for level. D2=x, D3=y draw_bar MOVE.B D2,txpos MOVE.B D3,typos LEA bar_buf(PC),A0 MOVE.L A0,A1 .lp MOVE.B #'-',(A1)+ DBF D0,.lp CLR.B (A1)+ MOVE.B #'|',(A0,D1.W) BSR print RTS ; Print Rout -> Text address in A0... Uses TXPOS and TYPOS (.B) ; (not fast or anything but works nicely thank you!) print: printline: move.b (a0)+,d0 beq endprin notend: cmpi.b #3,d0 bne.s notcent move.l a0,a1 moveq #0,d3 .lp move.b (a1)+,d4 beq.s .out cmp.b #4,d4 beq.s .out addq #1,d3 bra.s .lp .out neg d3 add.w #80,d3 asr.w #1,d3 add.b d3,txpos bra.s printline notcent cmpi.b #4,d0 bne.s notlf addq.b #1,typos clr.b txpos bra.s printline notlf: moveq #0,D3 moveq #0,D4  move.b txpos(PC),D3 move.b typos(PC),D4 lsl #3,d4 ;*8(1char=8pixhigh) mulu linewid(pc),d4 movea.l log_base(pc),A2 ; Screen  adda.l d4,A2 lea xtab(PC),a3  move.b 0(a3,D3.w),D3 adda.w D3,A2  lea font(PC),a3 moveq #0,D3 move.b D0,D3  sub.b #32,D3 lsl.w #3,D3  adda.w D3,a3 move.b (a3)+,(A2) naughtysmod move.b (a3)+,160(A2)  move.b (a3)+,320(A2) move.b (a3)+,480(A2)  move.b (a3)+,640(A2) move.b (a3)+,800(A2)  move.b (a3)+,960(A2) move.b (a3),1120(A2) addq.b #1,txpos bra printline endprin rts font: incbin i:\graphics\fonts__8.raw\met_09.fn8 linewid dc.w 0 xtab: ds.b 80 txpos: ds.b 1 typos: ds.b 1 ; Toggle Tempo Control. toggle_tempo TST.B tempo_cont_flg ; toggle tempo BEQ.S .tempoon .tempooff SF.B tempo_cont_flg ; turn tempo control OFF MOVE.W RealTempo(pc),OldTempo ; save current tempo MOVE.W #125,RealTempo ; switch to default tempo BRA.S .endtempo .tempoon ST.B tempo_cont_flg ; turn tempo control ON MOVE.W OldTempo(PC),RealTempo .endtempo RTS OldTempo dc.w 125 RealTempo dc.w 125 ; Micro-wire keyboard control and screen update. microwire_cont .mainvol LEA keytab(PC),A0 TST.B $3B(A0) BEQ.S .notvoldown TST.W mw_mastervol BEQ.S .notvoldown SUBQ #1,mw_mastervol BSR set_mastervol BRA .setit .notvoldown TST.B $3C(A0) BEQ.S .notvolup CMP.W #40,mw_mastervol BEQ.S .notvolup ADDQ #1,mw_mastervol BSR set_mastervol BRA .setit .notvolup .leftvol TST.B $3D(A0) BEQ.S .notlvoldown TST.W mw_leftvol BEQ.S .notlvoldown SUBQ #1,mw_leftvol BSR set_leftvol BRA .setit .notlvoldown TST.B $3E(A0) BEQ.S .notlvolup CMP.W #20,mw_leftvol BEQ.S .notlvolup ADDQ #1,mw_leftvol BSR set_leftvol BRA .setit .notlvolup .rightvol TST.B $3F(A0) BEQ.S .notrvoldown TST.W mw_rightvol BEQ.S .notrvoldown SUBQ #1,mw_rightvol BSR set_rightvol BRA .setit .notrvoldown TST.B $40(A0) BEQ.S .notrvolup CMP.W #20,mw_rightvol BEQ.S .notrvolup ADDQ #1,mw_rightvol BSR set_rightvol BRA .setit .notrvolup .bass TST.B $41(A0) BEQ.S .notbassdown TST.W mw_bass BEQ.S .notbassdown SUBQ #1,mw_bass BSR set_bass BRA .setit .notbassdown TST.B $42(A0) BEQ.S .notbassup CMP.W #12,mw_bass BEQ.S .notbassup ADDQ #1,mw_bass BSR set_bass BRA .setit .notbassup .treble TST.B $43(A0) BEQ.S .nottrebledown TST.W mw_treble BEQ.S .nottrebledown SUBQ #1,mw_treble BSR set_treble BRA .setit .nottrebledown TST.B $44(A0) BEQ.S .nottrebleup CMP.W #12,mw_treble BEQ.S .nottrebleup ADDQ #1,mw_treble BSR set_treble BRA .setit .nottrebleup .setit .notfunk RTS ; Set Microwire stuff/ and draw on screen. set_microwire BSR set_bass BSR set_treble BSR set_mastervol BSR set_leftvol BSR set_rightvol RTS set_mastervol MOVE.W #$4C0,D0 ADD.W mw_mastervol(PC),D0 BSR mw_write MOVEQ #40,D0 MOVE.W mw_mastervol(PC),D1 MOVEQ #26,D2 MOVEQ #12,D3 BRA draw_bar set_bass MOVE.W #$440,D0 ADD.W mw_bass(PC),D0 BSR mw_write MOVEQ #12,D0 MOVE.W mw_bass(PC),D1 MOVEQ #26,D2 MOVEQ #15,D3 BRA draw_bar set_treble MOVE.W #$480,D0 ADD.W mw_treble(PC),D0 BSR mw_write MOVEQ #12,D0 MOVE.W mw_treble(PC),D1 MOVEQ #26,D2 MOVEQ #16,D3 BRA draw_bar set_leftvol MOVE.W #$540,D0 ADD.W mw_leftvol(PC),D0 BSR mw_write MOVEQ #20,D0 MOVE.W mw_leftvol(PC),D1 MOVEQ #26,D2 MOVEQ #13,D3 BRA draw_bar set_rightvol MOVE.W #$500,D0 ADD.W mw_rightvol(PC),D0 BSR mw_write MOVEQ #20,D0 MOVE.W mw_rightvol(PC),D1 MOVEQ #26,D2 MOVEQ #14,D3 BRA draw_bar ; Write d0 to microwire. mw_write: MOVE.W #$7ff,$ffff8924.W MOVE.W D0,$ffff8922.W mw_wait CMP.W #$7ff,$ffff8924.W  BNE.S mw_wait ; loop until equal RTS  ; and return ; Various variables. log_base DC.L 0 ; screen ptr mw_mastervol DC.W 40 ; 0-40 mw_leftvol DC.W 20 ; 0-20 mw_rightvol DC.W 20 ; 0-20 mw_bass DC.W 9 ; 0-14 mw_treble DC.W 9 ; 0-14 modlength DC.L 0 error_no DC.L 0 errorflag DC.B 0 tempo_cont_flg DC.B -1 dummy: DC.B '*.*',0 playingtxt DC.B 3,"Now Playing : " realmodname DS.B 2w4 unnamed_mod DC.B "Unnamed Module!",0 loading DC.B 3,"Loading : " filename DS.B 128 EVEN tempotxt DS.L 1 tempo_ontxt DC.B "On ",0 tempo_offtxt DC.B "Off",0 EVEN bar_buf DS.B 80 thetext dc.b 4,4,4,4 dc.b 3,"ProTracker V2.1a Replay",4 dc.b 3,"Programmed by Griff of Electronic Images",4 dc.b 3,"- 50Khz STE/TT Version v1.2B -",4,4 dc.b 3,"Tempo Control: On Tempo: 125",4,4,4,4 dc.b " Main Volume:",4 dc.b " Left Volume:",4 dc.b " Right Volume:",4 dc.b " Bass:",4 dc.b " Treble:",4,4 dc.b 3,"Use F1-F10 to control sliders and T to toggle TEMPO on/off",4 dc.b 0 EVEN ;-G; ; Here we have the replay rout. ; Initialise Music Sequencer and ST Specific bits (e.g interrupts etc.) ; D0=0 then turn music OFF. D1=0 straight off else d1=fadeOUT speed. ; D0=1 then turn music ON. D1=0 straight on else d1=fadeIN speed. Init_ST LEA vol_bitflag(PC),A0 BSET #0,(A0) ; still fading. LEA fadeINflag(PC),A0 SF (A0) ; reset fade IN flag LEA fadeOUTflag(PC),A0 SF (A0) ; reset fade OUT flag TST.B D0 BNE.S .init_music ; Deinitialise music - turn off/fade out. .deinit_music TST.B D1 ; any fade down? BNE.S .trigfadedown LEA global_vol(PC),A0 MOVE.W #$0,(A0) ; turn off music RTS .trigfadedown LEA fadeOUTflag(PC),A0 ST.B (A0)+ MOVE.B D1,(A0)+ MOVE.B D1,(A0)+ RTS ; Initialise music - turn on/fade in. .init_music TST.B D1 BNE.S .trigfadein LEA global_vol(PC),A0 MOVE.W #$40,(A0) ; assume no fade in. BSR mt_init BRA STspecific .trigfadein LEA global_vol(PC),A0 MOVE.W #$0,(A0) ; ensure zero to start with! LEA fadeINflag(PC),A0 ST.B (A0)+ MOVE.B D1,(A0)+ MOVE.B D1,(A0)+ BSR mt_init BRA STspecific vol_bitflag DC.W 0 ; bit 0 is 1 if we are fading! global_vol DC.W 0 fadeOUTflag DC.B 0 fadeOUTcurr DC.B 0 fadeOUTspeed DC.B 0 fadeINflag DC.B 0 fadeINcurr DC.B 0 fadeINspeed DC.B 0 EVEN ; Paula emulation storage structure. RSRESET sam_start RS.L 1 ; sample start sam_length RS.L 1 ; sample length sam_period RS.W 1 ; sample period(freq) sam_vol RS.W 1 ; sample volume sam_lpstart RS.L 1 ; sample loop start sam_lplength RS.L 1 ; sample loop length sam_vcsize RS.B 1 ; structure size. ch1s DS.B sam_vcsize ch2s DS.B sam_vcsize ; shadow channel regs ch3s DS.B sam_vcsize ch4s DS.B sam_vcsize shadow_dmacon DS.W 1 shadow_filter DS.W 1 ; Macro to move parameter '\1' into the shadow dma register... ; (Remember - bit 15 of 'dmacon' determines clearing or setting of bits!) move_dmacon MACRO .setdma\@ MOVE.W D4,-(Sp) ; save D4 MOVE.W \1,D4 BTST #15,D4 ; set or clear? BNE.S .setbits\@ .clearbits\@ NOT.W D4 ; zero so clear AND.W D4,shadow_dmacon ; mask bits in dmacon BRA.S .dmacon_set\@ ; and exit... .setbits\@ OR.W D4,shadow_dmacon ; not zero so set 'em .dmacon_set\@ MOVE.W (sp)+,D4 ; restore D4 ENDM ; Player - This is THE 'Paula' Emulator. do_music: TST.B music_on ; music on? BEQ skipit ; if not skip all! MOVE.W #$2500,SR BSR Set_DMA MOVEM.L D0-D7/A0-A6,-(SP) .do_fadein LEA fadeINflag(PC),A0 TST.B (A0) ; are we fadeing down? BEQ.S .nofadein SUBQ.B #1,1(A0) ; curr count-1 BNE.S .nofadein MOVE.B 2(A0),1(A0) ; reset count LEA global_vol(PC),A1 CMP #$40,(A1) ; reached max? BLT.S .notinyet SF (A0) ; global vol=$40! LEA vol_bitflag(PC),A1 BCLR #0,(A1) ; signal fade done BRA.S .nofadein .notinyet ADDQ #1,(A1) ; global vol+1 .nofadein .do_fadedown LEA fadeOUTflag(PC),A0 TST.B (A0) ; are we fadeing down? BEQ.S .nofadedown SUBQ.B #1,1(A0) ; curr count-1 BNE.S .nofadedown MOVE.B 2(A0),1(A0) ; reset count LEA global_vol(PC),A1 TST.W (A1) BNE.S .notdownyet SF (A0) ; global vol=0! LEA vol_bitflag(PC),A1 BCLR #0,(A1) ; signal fade done BRA.S .nofadedown .notdownyet SUBQ #1,(A1) ; global vol-1 .nofadedown LEA.L Voice1Set(PC),A0 ; Setup Chan 1 LEA.L ch1s(PC),A5 MOVEQ #0,D4 BSR SetupVoice LEA.L Voice2Set(PC),A0 ; " 2 LEA.L ch2s(PC),A5 MOVEQ #1,D4 BSR SetupVoice LEA.L Voice3Set(PC),A0 ; " 3 LEA.L ch3s(PC),A5 MOVEQ #2,D4 BSR SetupVoice LEA.L Voice4Set(PC),A0 ; " 4 LEA.L ch4s(PC),A5 MOVEQ #3,D4 BSR SetupVoice BSR Goforit BSR mt_music skipit1 MOVEM.L (SP)+,D0-D7/A0-A6 skipit RTE RSRESET Vaddr RS.L 1 Voffy RS.L 1 Vfrac RS.L 1 Vfreqint RS.W 1 ; structure produced Vfreqfrac RS.L 1 Vvoltab RS.W 1 ; from 'paula' data Vlpaddr RS.L 1 Vlpoffy RS.L 1 Vlpfreqint RS.W 1 Vlpfreqfrac RS.L 1 ; Routine to add/move one voice to buffer. The real Paula emulation part!! SetupVoice MOVE.L sam_start(A5),A2 ; current sample end address(shadow amiga!) MOVE.L sam_length(A5),D0 MOVEM.W sam_period(A5),D1/D2 ; offset/period/volume CMP.W #$40,D2 BLS.S .ok MOVEQ #$40,D2 .ok MULU global_vol(PC),D2 LSR #6,D2 ; /64 LSL.W #8,D2 ; offset into volume tab LEA ftab(PC),A6 .OK2 MULU #6,D1 ADD.L D1,A6 MOVE.W (A6)+,D1 ; int part MOVE.L (A6)+,D3 .zero NEG.L D0 ; negate sample offset MOVE.W shadow_dmacon(PC),D7 BTST D4,D7 BNE.S .vcon2 MOVEQ #0,D1 ; clear freq if off. MOVEQ #0,D3 ; clear freq if off. MOVEQ #0,D2 ; volume off for safety!! .vcon2 LEA nulsamp+2(PC),A6 CMP.L A6,A2 BNE.S .vcon MOVEQ #0,D1 ; clear freq if off. MOVEQ #0,D3 ; clear freq if off. MOVEQ #0,D2 ; volume off for safety!! .vcon MOVE.L sam_lpstart(a5),A6 ; loop addr MOVE.L sam_lplength(a5),D5 ; loop length NEG.L D5 ; negate it. MOVE.W D1,D6 ; freq on loop MOVE.L D3,D7 ; CMP.L #-2,D5 BNE.S .isloop .noloop MOVEQ #0,D6 MOVEQ #0,D7 ; no loop-no frequency LEA nulsamp+2(PC),A6 ; no loop-point to nul .isloop MOVE.L A2,(A0)+ ; store address MOVE.L D0,(A0)+ ; store offset int.L ADDQ.L #4,A0 ; skip current frac.l MOVE.W D1,(A0)+ ; store freq int.w MOVE.L D3,(A0)+ ; store freq 32bit fraction MOVE.W D2,(A0)+ ; address of volume tab. MOVE.L A6,(A0)+ ; store loop addr MOVE.L D5,(A0)+ ; store loop offset.L MOVE.W D6,(A0)+ ; store loop freq int.w MOVE.L D7,(A0)+ ; store loop freq frac.L RTS ftab DS.W 3 INCBIN i:\PROTRACK.S\50PLAY.STE\FRQ32BIT.TAB ; Make that buffer! (channels are paired together!) Goforit LEA ch1s(PC),A2 LEA ch3s(PC),A3 LEA Voice1Set(PC),A5 LEA Voice3Set(PC),A6 MOVE.W #0,bufoff+2 BSR do2chans LEA ch2s(PC),A2 LEA ch4s(PC),A3 LEA Voice2Set(PC),A5 LEA Voice4Set(PC),A6 MOVE.W #1,bufoff+2 BSR do2chans RTS ; Create 2 channels in the buffer. do2chans MOVEM.L A2-A3/A5-A6,-(SP) MOVE.L voltab_ptr(PC),D2 MOVE.L D2,D3 MOVEQ #0,D4 MOVE.W Vvoltab(A5),D4 ADD.L D4,D2 ; volume tab chan 1 MOVE.W Vvoltab(A6),D4 ADD.L D4,D3 ; volume tab chan 2 MOVE.L Vaddr(A5),A0 ; ptr to end of each sample! MOVE.L Voffy(A5),D0 ; int.w offset MOVE.L Vfrac(A5),D4 ; frac.w offset MOVE.W Vfreqint(A5),D6 MOVE.L Vfreqfrac(A5),A2 ; frac.w/int.w freq MOVE.L Vaddr(A6),A1 MOVE.L Voffy(A6),D1 MOVE.L Vfrac(A6),D5 MOVE.W Vfreqint(A6),D7 MOVE.L Vfreqfrac(A6),A3 SWAP D6 MOVE.L Vlpaddr(A5),lpvc1ste+2+2 ; loop for voice 1 MOVE.L Vlpoffy(A5),lpvc1ste+8+2 MOVE.L Vlpfreqfrac(A5),lpvc1ste+14+2 MOVE.W Vlpfreqint(A5),lpvc1ste+20+2 MOVE.L Vlpaddr(A6),lpvc2ste+2+2 ; loop for voice 1 MOVE.L Vlpoffy(A6),lpvc2ste+8+2 MOVE.L Vlpfreqfrac(A6),lpvc2ste+14+2 MOVE.W Vlpfreqint(A6),lpvc2ste+20+2 LEA ciaem_tab(PC),A4 MOVE.W RealTempo(PC),D6 ADD.W D6,D6 MOVE.W (A4,D6),D6 MOVE.L stebuf_ptrs(pc),a4 BSR add2 MOVEM.L (SP)+,A2-A3/A5-A6 NEG.L D0 ; +ve offset(as original!) NEG.L D1 MOVE.L A0,sam_start(A2) ; store voice address MOVE.L D0,sam_length(A2) ; store offset for next time MOVE.L D4,Vfrac(A5) ; store frac part MOVE.L A1,sam_start(A3) ; same for chan 2 MOVE.L D1,sam_length(A3) MOVE.L D5,Vfrac(A6) RTS ciaem_tab INCBIN i:\PROTRACK.S\50PLAY.STE\CIA_EMU.TAB add2 TRAP #12 bufoff LEA 1(A4),SP make12_stelp MOVE.B (A0,D0.L),D2 MOVE.L D2,A4 MOVE.B (A4),D2 MOVE.B (A1,D1.L),D3 MOVE.L D3,A4 ADD.B (A4),D2 MOVE.B D2,(SP)+ MOVE.B D2,(SP)+ ; oversample(!) SWAP D6 ADD.L A2,D4 ; 32 bit fraction ADDX.W D6,D0 BCS.S lpvc1ste contlp1ste SWAP D6 ADD.L A3,D5 ; ADDX.W D7,D1 contlp2ste DBCS D6,make12_stelp BCS.S lpvc2ste REPT 4 MOVE.B D2,(SP)+ ; smooth MOVE.B D2,(SP)+ ; in case! ENDR TRAP #12 exitadd12 RTS lpvc1ste EXT.L D0 LEA.L $12345678,A0 ; 0+2 ADD.L #0,D0 ; 6+4 LEA.L $12345678,A2 ; 12+2 MOVE.W #$1234,D6 ; 18+2 BRA.S contlp1ste lpvc2ste EXT.L D1 LEA.L $12345678,A1 ; 0+2 ADD.L #0,D1 ; 6+2 LEA.L $12345678,A3 ; 12+2 MOVE.W #$1234,D7 ; 18+2 MOVE.W #0,CCR BRA.S contlp2ste Voice1Set DS.L 10 Voice2Set DS.L 10 ; voice data (setup from 'paula' data) Voice3Set DS.L 10 Voice4Set DS.L 10 DS.L 8 ; (in case!!) nulsamp DS.L 8 ; nul sample music_on DC.W 0 ; music on flag voltab_ptr DC.L 0 ; ptr to volume table  ; ST specific initialise - sets up shadow amiga registers etc STspecific: BSR makevoltab LEA nulsamp+2(PC),A2 MOVEQ #0,D0 LEA ch1s(pc),A0 BSR initvoice LEA ch2s(pc),A0 BSR initvoice LEA ch3s(pc),A0 BSR initvoice LEA ch4s(pc),A0 BSR initvoice BSR start_music LEA music_on(PC),A0 ST (A0) RTS ; A0-> voice data (paula voice) to initialise. initvoice: MOVE.L A2,sam_start(A0) ; point voice to nul sample MOVE.L #2,sam_length(A0) MOVE.W D0,sam_period(A0) ; period=0 MOVE.W D0,sam_vol(A0) ; volume=0 MOVE.L A2,sam_lpstart(A0) ; and loop point to nul sample MOVE.L #2,sam_lplength(A0) RTS ; Start up music. start_music: CLR.B $FFFF8901.W BSR Set_DMA MOVE.W #$2700,SR BSET.B #5,$FA07.W ;iera BSET.B #5,$FA13.W ;imra CLR.B $FA19.W MOVE.B #1,$FA1F.W MOVE.B #8,$FA19.W ;timer a event mode. MOVE.L #do_music,$134.W BSR Start_DMA .exitste MOVE.W #$2300,SR RTS ; Set DMA to play buffer(buffer len based on TEMPO) Set_DMA MOVEM.L D0/A0/A1,-(SP) MOVE.L stebuf_ptrs+4(PC),A0 MOVE.L A0,temp LEA ciaem_tab(PC),A1 MOVE.W RealTempo(PC),D0 ADD.W D0,D0 MOVE.W (A1,D0),D0 ADD.W D0,D0 ADD.W D0,D0 ADD.W D0,A0 MOVE.L A0,temp+4 MOVE.B temp+1(PC),$ffff8903.W MOVE.B temp+2(PC),$ffff8905.W ; set start of buffer MOVE.B temp+3(PC),$ffff8907.W MOVE.B temp+5(PC),$ffff890f.W MOVE.B temp+6(PC),$ffff8911.W ; set end of buffer MOVE.B temp+7(PC),$ffff8913.W MOVEM.L stebuf_ptrs(PC),A0/A1 EXG A0,A1 MOVEM.L A0-A1,stebuf_ptrs MOVEM.L (SP)+,D0/A0/A1 RTS Start_DMA MOVE.B #dmamask,$FFFF8921.W ; set khz MOVE.B #3,$FFFF8901.W ; start STE dma. RTS stebuf_ptrs DC.L stebuf1,stebuf2 temp: dc.l 0,0 stop_music: CLR.B $FFFF8901.W ; stop STE dma. MOVE.W #$2700,SR BCLR.B #5,$FA07.W ; iera BCLR.B #5,$FA13.W ; imra MOVE.W #$2300,SR RTS ; Create the 65 volume lookup tables makevoltab: MOVE.L #vols+256,D0 CLR.B D0 MOVE.L D0,A0 MOVE.L A0,voltab_ptr LEA 16640(A0),A0 MOVEQ #$40,D0 .lp1 MOVE.W #$FF,D1 .lp2 MOVE.W D1,D2 EXT.W D2 MULS D0,D2 ASR.L #7,D2 MOVE.B D2,-(A0) DBF D1,.lp2 DBF D0,.lp1 LEA stebuf1,A0 LEA stebuf2,A1 MOVE.W #(bufsize/2)-1,d0 MOVEQ #0,D1 .lp MOVE.L D1,(A0)+ MOVE.L D1,(A1)+ DBF D0,.lp RTS ;*2 ;* - Protracker V2.1A Playroutine - * ;* Peter "CRAYON" Hanning / Mushroom Studios 1992 * ;* Vinterstigen 12, 14440 Ronninge, Sweden * ;*2 ; CIA Version 1: ; This playroutine is not very fast, optimized or well commented, ; but all the new commands in PT2.1 should work. ; If it's not good enough, you'll have to change it yourself. ; We'll try to write a faster routine soon... ; Changes from V1.0C playroutine: ; - Vibrato depth changed to be compatible with Noisetracker 2.0. ; You'll have to double all vib. depths on old PT modules. ; - Funk Repeat changed to Invert Loop. ; - Period set back earlier when stopping an effect. ;---- Playroutine ---- n_note EQU 0 ; W n_cmd EQU 2 ; W n_cmdlo EQU 3 ; B n_start EQU 4 ; L n_length EQU 8 ; W n_loopstart EQU 10 ; L n_replen EQU 14 ; W n_period EQU 16 ; W n_finetune EQU 18 ; B n_volume EQU 19 ; B n_dmabit EQU 20 ; W n_toneportdirec EQU 22 ; B n_toneportspeed EQU 23 ; B n_wantedperiod EQU 24 ; W n_vibratocmd EQU 26 ; B n_vibratopos EQU 27 ; B n_tremolocmd EQU 28 ; B n_tremolopos EQU 29 ; B n_wavecontrol EQU 30 ; B n_glissfunk EQU 31 ; B n_sampleoffset EQU 32 ; B n_pattpos EQU 33 ; B n_loopcount EQU 34 ; B n_funkoffset EQU 35 ; B n_wavestart EQU 36 ; L n_reallength EQU 40 ; W mt_init LEA mt_data,A0 MOVE.L A0,mt_SongDataPtr MOVE.L A0,A1 LEA 952(A1),A1 MOVEQ #127,D0 MOVEQ #0,D1 mtloop MOVE.L D1,D2 SUBQ.W #1,D0 mtloop2 MOVE.B (A1)+,D1 CMP.B D2,D1 BGT.S mtloop DBRA D0,mtloop2 ADDQ.B #1,D2 LEA mt_SampleStarts(PC),A1 ASL.L #8,D2 ASL.L #2,D2 ADD.L #1084,D2 ADD.L A0,D2 MOVE.L D2,A2 MOVEQ #30,D0 mtloop3 CLR.L (A2) MOVE.L A2,(A1)+ MOVEQ #0,D1 MOVE.W 42(A0),D1 ASL.L #1,D1 ADD.L D1,A2 ADD.L #30,A0 DBRA D0,mtloop3 MOVE.B #6,mt_speed CLR.B mt_counter CLR.B mt_SongPos CLR.W mt_PatternPos ST mt_Enable move_dmacon #$F RTS mt_end SF mt_Enable move_dmacon #$F RTS mt_music TST.B mt_Enable BEQ mt_exit ADDQ.B #1,mt_counter MOVE.B mt_counter(PC),D0 CMP.B mt_speed(PC),D0 BLO.S mt_NoNewNote CLR.B mt_counter TST.B mt_PattDelTime2 BEQ.S mt_GetNewNote BSR.S mt_NoNewAllChannels BRA mt_dskip mt_NoNewNote BSR.S mt_NoNewAllChannels BRA mt_NoNewPosYet mt_NoNewAllChannels LEA ch1s(PC),A5 LEA mt_chan1temp(PC),A6 BSR mt_CheckEfx LEA ch2s(PC),A5 LEA mt_chan2temp(PC),A6 BSR mt_CheckEfx LEA ch3s(PC),A5 LEA mt_chan3temp(PC),A6 BSR mt_CheckEfx LEA ch4s(PC),A5 LEA mt_chan4temp(PC),A6 BRA mt_CheckEfx mt_GetNewNote MOVE.L mt_SongDataPtr(PC),A0 LEA 12(A0),A3 LEA 952(A0),A2 ;pattpo LEA 1084(A0),A0 ;patterndata MOVEQ #0,D0 MOVEQ #0,D1 MOVE.B mt_SongPos(PC),D0 MOVE.B (A2,D0.W),D1 ASL.L #8,D1 ASL.L #2,D1 ADD.W mt_PatternPos(PC),D1 CLR.W mt_DMACONtemp LEA ch1s(PC),A5 LEA mt_chan1temp(PC),A6 BSR.S mt_PlayVoice LEA ch2s(PC),A5 LEA mt_chan2temp(PC),A6 BSR.S mt_PlayVoice LEA ch3s(PC),A5 LEA mt_chan3temp(PC),A6 BSR.S mt_PlayVoice LEA ch4s(PC),A5 LEA mt_chan4temp(PC),A6 BSR.S mt_PlayVoice BRA mt_SetDMA mt_PlayVoice TST.L (A6) BNE.S mt_plvskip BSR mt_PerNop mt_plvskip MOVE.L (A0,D1.L),(A6) ADDQ.L #4,D1 MOVEQ #0,D2 MOVE.B n_cmd(A6),D2 AND.B #$F0,D2 LSR.B #4,D2 MOVE.B (A6),D0 AND.B #$F0,D0 OR.B D0,D2 TST.B D2 BEQ mt_SetRegs MOVEQ #0,D3 LEA mt_SampleStarts(PC),A1 MOVE D2,D4 SUBQ.L #1,D2 ASL.L #2,D2 MULU #30,D4 MOVE.L (A1,D2.L),n_start(A6) MOVE.W (A3,D4.L),n_length(A6) MOVE.W (A3,D4.L),n_reallength(A6) MOVE.B 2(A3,D4.L),n_finetune(A6) MOVE.B 3(A3,D4.L),n_volume(A6) MOVE.W 4(A3,D4.L),D3 ; Get repeat TST.W D3 BEQ.S mt_NoLoop MOVE.L n_start(A6),D2 ; Get start ASL.W #1,D3 ADD.L D3,D2 ; Add repeat MOVE.L D2,n_loopstart(A6) MOVE.L D2,n_wavestart(A6) MOVE.W 4(A3,D4.L),D0 ; Get repeat ADD.W 6(A3,D4.L),D0 ; Add replen MOVE.W D0,n_length(A6) MOVE.W 6(A3,D4.L),n_replen(A6) ; Save replen MOVEQ #0,D0 MOVE.B n_volume(A6),D0 MOVE.W D0,sam_vol(A5) ; Set volume BRA.S mt_SetRegs mt_NoLoop MOVE.L n_start(A6),D2 ADD.L D3,D2 MOVE.L D2,n_loopstart(A6) MOVE.L D2,n_wavestart(A6) MOVE.W 6(A3,D4.L),n_replen(A6) ; Save replen MOVEQ #0,D0 MOVE.B n_volume(A6),D0 MOVE.W D0,sam_vol(A5) ; Set volume mt_SetRegs MOVE.W (A6),D0 AND.W #$0FFF,D0 BEQ mt_CheckMoreEfx ; If no note MOVE.W 2(A6),D0 AND.W #$0FF0,D0 CMP.W #$0E50,D0 BEQ.S mt_DoSetFineTune MOVE.B 2(A6),D0 AND.B #$0F,D0 CMP.B #3,D0 ; TonePortamento BEQ.S mt_ChkTonePorta CMP.B #5,D0 BEQ.S mt_ChkTonePorta CMP.B #9,D0 ; Sample Offset BNE.S mt_SetPeriod BSR mt_CheckMoreEfx BRA.S mt_SetPeriod mt_DoSetFineTune BSR mt_SetFineTune BRA.S mt_SetPeriod mt_ChkTonePorta BSR mt_SetTonePorta BRA mt_CheckMoreEfx mt_SetPeriod MOVEM.L D0-D1/A0-A1,-(SP) MOVE.W (A6),D1 AND.W #$0FFF,D1 LEA mt_PeriodTable(PC),A1 MOVEQ #0,D0 MOVEQ #36,D2 mt_ftuloop CMP.W (A1,D0.W),D1 BHS.S mt_ftufound ADDQ.L #2,D0 DBRA D2,mt_ftuloop mt_ftufound MOVEQ #0,D1 MOVE.B n_finetune(A6),D1 MULU #36*2,D1 ADD.L D1,A1 MOVE.W (A1,D0.W),n_period(A6) MOVEM.L (SP)+,D0-D1/A0-A1 MOVE.W 2(A6),D0 AND.W #$0FF0,D0 CMP.W #$0ED0,D0 ; Notedelay BEQ mt_CheckMoreEfx move_dmacon n_dmabit(A6) BTST #2,n_wavecontrol(A6) BNE.S mt_vibnoc CLR.B n_vibratopos(A6) mt_vibnoc BTST #6,n_wavecontrol(A6) BNE.S mt_trenoc CLR.B n_tremolopos(A6) mt_trenoc MOVE.L n_start(A6),sam_start(A5) ; Set start MOVEQ #0,D0 MOVE.W n_length(A6),D0 ADD.L D0,D0 ADD.L D0,sam_start(A5) MOVE.L D0,sam_length(A5) ; Set length MOVE.W n_period(A6),D0 MOVE.W D0,sam_period(A5) ; Set period MOVE.W n_dmabit(A6),D0 OR.W D0,mt_DMACONtemp BRA mt_CheckMoreEfx mt_SetDMA MOVE.W mt_DMACONtemp(PC),D0 OR.W #$8000,D0 move_dmacon d0 LEA ch4s(PC),A5 LEA mt_chan4temp(PC),A6 MOVE.L n_loopstart(A6),sam_lpstart(A5) MOVEQ #0,D0 MOVE.W n_replen(A6),D0 ADD.L D0,D0 MOVE.L D0,sam_lplength(A5) ADD.L D0,sam_lpstart(A5) LEA ch3s(PC),A5 LEA mt_chan3temp(PC),A6 MOVE.L n_loopstart(A6),sam_lpstart(A5) MOVEQ #0,D0 MOVE.W n_replen(A6),D0 ADD.L D0,D0 MOVE.L D0,sam_lplength(A5) ADD.L D0,sam_lpstart(A5) LEA ch2s(PC),A5 LEA mt_chan2temp(PC),A6 MOVE.L n_loopstart(A6),sam_lpstart(A5) MOVEQ #0,D0 MOVE.W n_replen(A6),D0 ADD.L D0,D0 MOVE.L D0,sam_lplength(A5) ADD.L D0,sam_lpstart(A5) LEA ch1s(PC),A5 LEA mt_chan1temp(PC),A6 MOVE.L n_loopstart(A6),sam_lpstart(A5) MOVEQ #0,D0 MOVE.W n_replen(A6),D0 ADD.L D0,D0 MOVE.L D0,sam_lplength(A5) ADD.L D0,sam_lpstart(A5) mt_dskip ADD.W #16,mt_PatternPos MOVE.B mt_PattDelTime,D0 BEQ.S mt_dskc MOVE.B D0,mt_PattDelTime2 CLR.B mt_PattDelTime mt_dskc TST.B mt_PattDelTime2 BEQ.S mt_dska SUBQ.B #1,mt_PattDelTime2 BEQ.S mt_dska SUB.W #16,mt_PatternPos mt_dska TST.B mt_PBreakFlag BEQ.S mt_nnpysk SF mt_PBreakFlag MOVEQ #0,D0 MOVE.B mt_PBreakPos(PC),D0 CLR.B mt_PBreakPos LSL.W #4,D0 MOVE.W D0,mt_PatternPos mt_nnpysk CMP.W #1024,mt_PatternPos BLO.S mt_NoNewPosYet mt_NextPosition MOVEQ #0,D0 MOVE.B mt_PBreakPos(PC),D0 LSL.W #4,D0 MOVE.W D0,mt_PatternPos CLR.B mt_PBreakPos CLR.B mt_PosJumpFlag ADDQ.B #1,mt_SongPos AND.B #$7F,mt_SongPos MOVE.B mt_SongPos(PC),D1 MOVE.L mt_SongDataPtr(PC),A0 CMP.B 950(A0),D1 BLO.S mt_NoNewPosYet CLR.B mt_SongPos mt_NoNewPosYet TST.B mt_PosJumpFlag BNE.S mt_NextPosition mt_exit RTS mt_CheckEfx BSR mt_UpdateFunk MOVE.W n_cmd(A6),D0 AND.W #$0FFF,D0 BEQ.S mt_PerNop MOVE.B n_cmd(A6),D0 AND.B #$0F,D0 BEQ.S mt_Arpeggio CMP.B #1,D0 BEQ mt_PortaUp CMP.B #2,D0 BEQ mt_PortaDown CMP.B #3,D0 BEQ mt_TonePortamento CMP.B #4,D0 BEQ mt_Vibrato CMP.B #5,D0 BEQ mt_TonePlusVolSlide CMP.B #6,D0 BEQ mt_VibratoPlusVolSlide CMP.B #$E,D0 BEQ mt_E_Commands SetBack MOVE.W n_period(A6),sam_period(A5) CMP.B #7,D0 BEQ mt_Tremolo CMP.B #$A,D0 BEQ mt_VolumeSlide mt_Return RTS mt_PerNop MOVE.W n_period(A6),sam_period(A5) RTS mt_Arpeggio MOVEQ #0,D0 MOVE.B mt_counter(PC),D0 DIVS #3,D0 SWAP D0 CMP.W #0,D0 BEQ.S mt_Arpeggio2 CMP.W #2,D0 BEQ.S mt_Arpeggio1 MOVEQ #0,D0 MOVE.B n_cmdlo(A6),D0 LSR.B #4,D0 BRA.S mt_Arpeggio3 mt_Arpeggio1 MOVEQ #0,D0 MOVE.B n_cmdlo(A6),D0 AND.B #15,D0 BRA.S mt_Arpeggio3 mt_Arpeggio2 MOVE.W n_period(A6),D2 BRA.S mt_Arpeggio4 mt_Arpeggio3 ASL.W #1,D0 MOVEQ #0,D1 MOVE.B n_finetune(A6),D1 MULU #36*2,D1 LEA mt_PeriodTable(PC),A0 ADD.L D1,A0 MOVEQ #0,D1 MOVE.W n_period(A6),D1 MOVEQ #36,D3 mt_arploop MOVE.W (A0,D0.W),D2 CMP.W (A0),D1 BHS.S mt_Arpeggio4 ADDQ.L #2,A0 DBRA D3,mt_arploop RTS mt_Arpeggio4 MOVE.W D2,sam_period(A5) RTS mt_FinePortaUp TST.B mt_counter BNE.S mt_Return MOVE.B #$0F,mt_LowMask mt_PortaUp MOVEQ #0,D0 MOVE.B n_cmdlo(A6),D0 AND.B mt_LowMask(PC),D0 MOVE.B #$FF,mt_LowMask SUB.W D0,n_period(A6) MOVE.W n_period(A6),D0 AND.W #$0FFF,D0 CMP.W #113,D0 BPL.S mt_PortaUskip AND.W #$F000,n_period(A6) OR.W #113,n_period(A6) mt_PortaUskip MOVE.W n_period(A6),D0 AND.W #$0FFF,D0 MOVE.W D0,sam_period(A5) RTS mt_FinePortaDown TST.B mt_counter BNE mt_Return MOVE.B #$0F,mt_LowMask mt_PortaDown CLR.W D0 MOVE.B n_cmdlo(A6),D0 AND.B mt_LowMask(PC),D0 MOVE.B #$FF,mt_LowMask ADD.W D0,n_period(A6) MOVE.W n_period(A6),D0 AND.W #$0FFF,D0 CMP.W #856,D0 BMI.S mt_PortaDskip AND.W #$F000,n_period(A6) OR.W #856,n_period(A6) mt_PortaDskip MOVE.W n_period(A6),D0 AND.W #$0FFF,D0 MOVE.W D0,sam_period(A5) RTS mt_SetTonePorta MOVE.L A0,-(SP) MOVE.W (A6),D2 AND.W #$0FFF,D2 MOVEQ #0,D0 MOVE.B n_finetune(A6),D0 MULU #37*2,D0 LEA mt_PeriodTable(PC),A0 ADD.L D0,A0 MOVEQ #0,D0 mt_StpLoop CMP.W (A0,D0.W),D2 BHS.S mt_StpFound ADDQ.W #2,D0 CMP.W #37*2,D0 BLO.S mt_StpLoop MOVEQ #35*2,D0 mt_StpFound MOVE.B n_finetune(A6),D2 AND.B #8,D2 BEQ.S mt_StpGoss TST.W D0 BEQ.S mt_StpGoss SUBQ.W #2,D0 mt_StpGoss MOVE.W (A0,D0.W),D2 MOVE.L (SP)+,A0 MOVE.W D2,n_wantedperiod(A6) MOVE.W n_period(A6),D0 CLR.B n_toneportdirec(A6) CMP.W D0,D2 BEQ.S mt_ClearTonePorta BGE mt_Return MOVE.B #1,n_toneportdirec(A6) RTS mt_ClearTonePorta CLR.W n_wantedperiod(A6) RTS mt_TonePortamento MOVE.B n_cmdlo(A6),D0 BEQ.S mt_TonePortNoChange MOVE.B D0,n_toneportspeed(A6) CLR.B n_cmdlo(A6) mt_TonePortNoChange TST.W n_wantedperiod(A6) BEQ mt_Return MOVEQ #0,D0 MOVE.B n_toneportspeed(A6),D0 TST.B n_toneportdirec(A6) BNE.S mt_TonePortaUp mt_TonePortaDown ADD.W D0,n_period(A6) MOVE.W n_wantedperiod(A6),D0 CMP.W n_period(A6),D0 BGT.S mt_TonePortaSetPer MOVE.W n_wantedperiod(A6),n_period(A6) CLR.W n_wantedperiod(A6) BRA.S mt_TonePortaSetPer mt_TonePortaUp SUB.W D0,n_period(A6) MOVE.W n_wantedperiod(A6),D0 CMP.W n_period(A6),D0 BLT.S mt_TonePortaSetPer MOVE.W n_wantedperiod(A6),n_period(A6) CLR.W n_wantedperiod(A6) mt_TonePortaSetPer MOVE.W n_period(A6),D2 MOVE.B n_glissfunk(A6),D0 AND.B #$0F,D0 BEQ.S mt_GlissSkip MOVEQ #0,D0 MOVE.B n_finetune(A6),D0 MULU #36*2,D0 LEA mt_PeriodTable(PC),A0 ADD.L D0,A0 MOVEQ #0,D0 mt_GlissLoop CMP.W (A0,D0.W),D2 BHS.S mt_GlissFound ADDQ.W #2,D0 CMP.W #36*2,D0 BLO.S mt_GlissLoop MOVEQ #35*2,D0 mt_GlissFound MOVE.W (A0,D0.W),D2 mt_GlissSkip MOVE.W D2,sam_period(A5) ; Set period RTS mt_Vibrato MOVE.B n_cmdlo(A6),D0 BEQ.S mt_Vibrato2 MOVE.B n_vibratocmd(A6),D2 AND.B #$0F,D0 BEQ.S mt_vibskip AND.B #$F0,D2 OR.B D0,D2 mt_vibskip MOVE.B n_cmdlo(A6),D0 AND.B #$F0,D0 BEQ.S mt_vibskip2 AND.B #$0F,D2 OR.B D0,D2 mt_vibskip2 MOVE.B D2,n_vibratocmd(A6) mt_Vibrato2 MOVE.B n_vibratopos(A6),D0 LEA mt_VibratoTable(PC),A4 LSR.W #2,D0 AND.W #$001F,D0 MOVEQ #0,D2 MOVE.B n_wavecontrol(A6),D2 AND.B #$03,D2 BEQ.S mt_vib_sine LSL.B #3,D0 CMP.B #1,D2 BEQ.S mt_vib_rampdown MOVE.B #255,D2 BRA.S mt_vib_set mt_vib_rampdown TST.B n_vibratopos(A6) BPL.S mt_vib_rampdown2 MOVE.B #255,D2 SUB.B D0,D2 BRA.S mt_vib_set mt_vib_rampdown2 MOVE.B D0,D2 BRA.S mt_vib_set mt_vib_sine MOVE.B (A4,D0.W),D2 mt_vib_set MOVE.B n_vibratocmd(A6),D0 AND.W #15,D0 MULU D0,D2 LSR.W #7,D2 MOVE.W n_period(A6),D0 TST.B n_vibratopos(A6) BMI.S mt_VibratoNeg ADD.W D2,D0 BRA.S mt_Vibrato3 mt_VibratoNeg SUB.W D2,D0 mt_Vibrato3 MOVE.W D0,sam_period(A5) MOVE.B n_vibratocmd(A6),D0 LSR.W #2,D0 AND.W #$003C,D0 ADD.B D0,n_vibratopos(A6) RTS mt_TonePlusVolSlide BSR mt_TonePortNoChange BRA mt_VolumeSlide mt_VibratoPlusVolSlide BSR.S mt_Vibrato2 BRA mt_VolumeSlide mt_Tremolo MOVE.B n_cmdlo(A6),D0 BEQ.S mt_Tremolo2 MOVE.B n_tremolocmd(A6),D2 AND.B #$0F,D0 BEQ.S mt_treskip AND.B #$F0,D2 OR.B D0,D2 mt_treskip MOVE.B n_cmdlo(A6),D0 AND.B #$F0,D0 BEQ.S mt_treskip2 AND.B #$0F,D2 OR.B D0,D2 mt_treskip2 MOVE.B D2,n_tremolocmd(A6) mt_Tremolo2 MOVE.B n_tremolopos(A6),D0 LEA mt_VibratoTable(PC),A4 LSR.W #2,D0 AND.W #$001F,D0 MOVEQ #0,D2 MOVE.B n_wavecontrol(A6),D2 LSR.B #4,D2 AND.B #$03,D2 BEQ.S mt_tre_sine LSL.B #3,D0 CMP.B #1,D2 BEQ.S mt_tre_rampdown MOVE.B #255,D2 BRA.S mt_tre_set mt_tre_rampdown TST.B n_vibratopos(A6) BPL.S mt_tre_rampdown2 MOVE.B #255,D2 SUB.B D0,D2 BRA.S mt_tre_set mt_tre_rampdown2 MOVE.B D0,D2 BRA.S mt_tre_set mt_tre_sine MOVE.B (A4,D0.W),D2 mt_tre_set MOVE.B n_tremolocmd(A6),D0 AND.W #15,D0 MULU D0,D2 LSR.W #6,D2 MOVEQ #0,D0 MOVE.B n_volume(A6),D0 TST.B n_tremolopos(A6) BMI.S mt_TremoloNeg ADD.W D2,D0 BRA.S mt_Tremolo3 mt_TremoloNeg SUB.W D2,D0 mt_Tremolo3 BPL.S mt_TremoloSkip CLR.W D0 mt_TremoloSkip CMP.W #$40,D0 BLS.S mt_TremoloOk MOVE.W #$40,D0 mt_TremoloOk MOVE.W D0,sam_vol(A5) MOVE.B n_tremolocmd(A6),D0 LSR.W #2,D0 AND.W #$003C,D0 ADD.B D0,n_tremolopos(A6) RTS mt_SampleOffset MOVEQ #0,D0 MOVE.B n_cmdlo(A6),D0 BEQ.S mt_sononew MOVE.B D0,n_sampleoffset(A6) mt_sononew MOVE.B n_sampleoffset(A6),D0 LSL.W #7,D0 CMP.W n_length(A6),D0 BGE.S mt_sofskip SUB.W D0,n_length(A6) LSL.W #1,D0 ADD.L D0,n_start(A6) RTS mt_sofskip MOVE.W #$0001,n_length(A6) RTS mt_VolumeSlide MOVEQ #0,D0 MOVE.B n_cmdlo(A6),D0 LSR.B #4,D0 TST.B D0 BEQ.S mt_VolSlideDown mt_VolSlideUp ADD.B D0,n_volume(A6) CMP.B #$40,n_volume(A6) BMI.S mt_vsuskip MOVE.B #$40,n_volume(A6) mt_vsuskip MOVE.B n_volume(A6),D0 MOVE.W D0,sam_vol(A5) RTS mt_VolSlideDown MOVEQ #0,D0 MOVE.B n_cmdlo(A6),D0 AND.B #$0F,D0 mt_VolSlideDown2 SUB.B D0,n_volume(A6) BPL.S mt_vsdskip CLR.B n_volume(A6) mt_vsdskip MOVE.B n_volume(A6),D0 MOVE.W D0,sam_vol(A5) RTS mt_PositionJump MOVE.B n_cmdlo(A6),D0 SUBQ.B #1,D0 MOVE.B D0,mt_SongPos mt_pj2 CLR.B mt_PBreakPos ST mt_PosJumpFlag RTS mt_VolumeChange MOVEQ #0,D0 MOVE.B n_cmdlo(A6),D0 CMP.B #$40,D0 BLS.S mt_VolumeOk MOVEQ #$40,D0 mt_VolumeOk MOVE.B D0,n_volume(A6) MOVE.W D0,sam_vol(A5) RTS mt_PatternBreak MOVEQ #0,D0 MOVE.B n_cmdlo(A6),D0 MOVE.L D0,D2 LSR.B #4,D0 MULU #10,D0 AND.B #$0F,D2 ADD.B D2,D0 CMP.B #63,D0 BHI.S mt_pj2 MOVE.B D0,mt_PBreakPos ST mt_PosJumpFlag RTS mt_SetSpeed MOVEQ #0,D0 MOVE.B 3(A6),D0 BEQ mt_end TST.B tempo_cont_flg ; tempo control on? BEQ.S .notempo CMP.B #32,D0 ; yes then d0>=32 BHS SetTempo ; then Set Tempo CLR.B mt_counter MOVE.B D0,mt_speed RTS .notempo ; tempo control is OFF CLR.B mt_counter MOVE.B D0,mt_speed ; so set speed regardless CMP.W #32,D0 BLO.S .okdefspeed MOVE.W D0,OldTempo ; but store in old tempo .okdefspeed ; for tempo turn back on. RTS SetTempo CMP.W #32,D0 BHS.S setemsk MOVEQ #32,D0 setemsk MOVE.W D0,RealTempo ; set tempo speed RTS mt_CheckMoreEfx BSR mt_UpdateFunk MOVE.B 2(A6),D0 AND.B #$0F,D0 CMP.B #$9,D0 BEQ mt_SampleOffset CMP.B #$B,D0 BEQ mt_PositionJump CMP.B #$D,D0 BEQ mt_PatternBreak CMP.B #$E,D0 BEQ.S mt_E_Commands CMP.B #$F,D0 BEQ mt_SetSpeed CMP.B #$C,D0 BEQ mt_VolumeChange BRA mt_PerNop mt_E_Commands MOVE.B n_cmdlo(A6),D0 AND.B #$F0,D0 LSR.B #4,D0 BEQ.S mt_FilterOnOff CMP.B #1,D0 BEQ mt_FinePortaUp CMP.B #2,D0 BEQ mt_FinePortaDown CMP.B #3,D0 BEQ.S mt_SetGlissControl CMP.B #4,D0 BEQ mt_SetVibratoControl CMP.B #5,D0 BEQ mt_SetFineTune CMP.B #6,D0 BEQ mt_JumpLoop CMP.B #7,D0 BEQ mt_SetTremoloControl CMP.B #9,D0 BEQ mt_RetrigNote CMP.B #$A,D0 BEQ mt_VolumeFineUp CMP.B #$B,D0 BEQ mt_VolumeFineDown CMP.B #$C,D0 BEQ mt_NoteCut CMP.B #$D,D0 BEQ mt_NoteDelay CMP.B #$E,D0 BEQ mt_PatternDelay CMP.B #$F,D0 BEQ mt_FunkIt RTS mt_FilterOnOff MOVE.B n_cmdlo(A6),D0 AND.B #1,D0 ASL.B #1,D0 ; AND.B #$FD,$BFE001 ; filter! ; OR.B D0,$BFE001 ; hehe RTS mt_SetGlissControl MOVE.B n_cmdlo(A6),D0 AND.B #$0F,D0 AND.B #$F0,n_glissfunk(A6) OR.B D0,n_glissfunk(A6) RTS mt_SetVibratoControl MOVE.B n_cmdlo(A6),D0 AND.B #$0F,D0 AND.B #$F0,n_wavecontrol(A6) OR.B D0,n_wavecontrol(A6) RTS mt_SetFineTune MOVE.B n_cmdlo(A6),D0 AND.B #$0F,D0 MOVE.B D0,n_finetune(A6) RTS mt_JumpLoop TST.B mt_counter BNE mt_Return MOVE.B n_cmdlo(A6),D0 AND.B #$0F,D0 BEQ.S mt_SetLoop TST.B n_loopcount(A6) BEQ.S mt_jumpcnt SUBQ.B #1,n_loopcount(A6) BEQ mt_Return mt_jmploop MOVE.B n_pattpos(A6),mt_PBreakPos ST mt_PBreakFlag RTS mt_jumpcnt MOVE.B D0,n_loopcount(A6) BRA.S mt_jmploop mt_SetLoop MOVE.W mt_PatternPos(PC),D0 LSR.W #4,D0 MOVE.B D0,n_pattpos(A6) RTS mt_SetTremoloControl MOVE.B n_cmdlo(A6),D0 AND.B #$0F,D0 LSL.B #4,D0 AND.B #$0F,n_wavecontrol(A6) OR.B D0,n_wavecontrol(A6) RTS mt_RetrigNote MOVE.L D1,-(SP) MOVEQ #0,D0 MOVE.B n_cmdlo(A6),D0 AND.B #$0F,D0 BEQ mt_rtnend MOVEQ #0,D1 MOVE.B mt_counter(PC),D1 BNE.S mt_rtnskp MOVE.W (A6),D1 AND.W #$0FFF,D1 BNE.S mt_rtnend MOVEQ #0,D1 MOVE.B mt_counter(PC),D1 mt_rtnskp DIVU D0,D1 SWAP D1 TST.W D1 BNE.S mt_rtnend mt_DoRetrig move_dmacon n_dmabit(A6) ; Channel DMA off MOVE.L n_start(A6),sam_start(A5) ; Set sampledata pointer MOVEQ #0,D0 MOVE.W n_length(A6),D0 ; Set length ADD.L D0,D0 ADD.L D0,sam_start(A5) MOVE.L D0,sam_length(A5) ; Set length MOVE.W n_dmabit(A6),D0 BSET #15,D0 move_dmacon d0 MOVE.L n_loopstart(A6),sam_lpstart(A5) MOVEQ #0,D0 MOVE.W n_replen(A6),D0 ADD.L D0,D0 ADD.L D0,sam_lpstart(A5) MOVE.L D0,sam_lplength(A5) MOVE.W n_replen+2(A6),sam_period(A5) mt_rtnend MOVE.L (SP)+,D1 RTS mt_VolumeFineUp TST.B mt_counter BNE mt_Return MOVEQ #0,D0 MOVE.B n_cmdlo(A6),D0 AND.B #$F,D0 BRA mt_VolSlideUp mt_VolumeFineDown TST.B mt_counter BNE mt_Return MOVEQ #0,D0 MOVE.B n_cmdlo(A6),D0 AND.B #$0F,D0 BRA mt_VolSlideDown2 mt_NoteCut MOVEQ #0,D0 MOVE.B n_cmdlo(A6),D0 AND.B #$0F,D0 CMP.B mt_counter(PC),D0 BNE mt_Return CLR.B n_volume(A6) MOVE.W #0,sam_vol(A5) RTS mt_NoteDelay MOVEQ #0,D0 MOVE.B n_cmdlo(A6),D0 AND.B #$0F,D0 CMP.B mt_Counter,D0 BNE mt_Return MOVE.W (A6),D0 BEQ mt_Return MOVE.L D1,-(SP) BRA mt_DoRetrig mt_PatternDelay TST.B mt_counter BNE mt_Return MOVEQ #0,D0 MOVE.B n_cmdlo(A6),D0 AND.B #$0F,D0 TST.B mt_PattDelTime2 BNE mt_Return ADDQ.B #1,D0 MOVE.B D0,mt_PattDelTime RTS mt_FunkIt TST.B mt_counter BNE mt_Return MOVE.B n_cmdlo(A6),D0 AND.B #$0F,D0 LSL.B #4,D0 AND.B #$0F,n_glissfunk(A6) OR.B D0,n_glissfunk(A6) TST.B D0 BEQ mt_Return mt_UpdateFunk MOVEM.L A0/D1,-(SP) MOVEQ #0,D0 MOVE.B n_glissfunk(A6),D0 LSR.B #4,D0 BEQ.S mt_funkend LEA mt_FunkTable(PC),A0 MOVE.B (A0,D0.W),D0 ADD.B D0,n_funkoffset(A6) BTST #7,n_funkoffset(A6) BEQ.S mt_funkend CLR.B n_funkoffset(A6) MOVE.L n_loopstart(A6),D0 MOVEQ #0,D1 MOVE.W n_replen(A6),D1 ADD.L D1,D0 ADD.L D1,D0 MOVE.L n_wavestart(A6),A0 ADDQ.L #1,A0 CMP.L D0,A0 BLO.S mt_funkok MOVE.L n_loopstart(A6),A0 mt_funkok MOVE.L A0,n_wavestart(A6) MOVEQ #-1,D0 SUB.B (A0),D0 MOVE.B D0,(A0) mt_funkend MOVEM.L (SP)+,A0/D1 RTS mt_FunkTable dc.b 0,5,6,7,8,10,11,13,16,19,22,26,32,43,64,128 mt_VibratoTable dc.b 0, 24, 49, 74, 97,120,141,161 dc.b 180,197,212,224,235,244,250,253 dc.b 255,253,250,244,235,224,212,197 dc.b 180,161,141,120, 97, 74, 49, 24 mt_PeriodTable ; Tuning 0, Normal dc.w 856,808,762,720,678,640,604,570,538,508,480,453 dc.w 428,404,381,360,339,320,302,285,269,254,240,226 dc.w 214,202,190,180,170,160,151,143,135,127,120,113 ; Tuning 1 dc.w 850,802,757,715,674,637,601,567,535,505,477,450 dc.w 425,401,379,357,337,318,300,284,268,253,239,225 dc.w 213,201,189,179,169,159,150,142,134,126,119,113 ; Tuning 2 dc.w 844,796,752,709,670,632,597,563,532,502,474,447 dc.w 422,398,376,355,335,316,298,282,266,251,237,224 dc.w 211,199,188,177,167,158,149,141,133,125,118,112 ; Tuning 3 dc.w 838,791,746,704,665,628,592,559,528,498,470,444 dc.w 419,395,373,352,332,314,296,280,264,249,235,222 dc.w 209,198,187,176,166,157,148,140,132,125,118,111 ; Tuning 4 dc.w 832,785,741,699,660,623,588,555,524,495,467,441 dc.w 416,392,370,350,330,312,294,278,262,247,233,220 dc.w 208,196,185,175,165,156,147,139,131,124,117,110 ; Tuning 5 dc.w 826,779,736,694,655,619,584,551,520,491,463,437 dc.w 413,390,368,347,328,309,292,276,260,245,232,219 dc.w 206,195,184,174,164,155,146,138,130,123,116,109 ; Tuning 6 dc.w 820,774,730,689,651,614,580,547,516,487,460,434 dc.w 410,387,365,345,325,307,290,274,258,244,230,217 dc.w 205,193,183,172,163,154,145,137,129,122,115,109 ; Tuning 7 dc.w 814,768,725,684,646,610,575,543,513,484,457,431 dc.w 407,384,363,342,323,305,288,272,256,242,228,216 dc.w 204,192,181,171,161,152,144,136,128,121,114,108 ; Tuning -8 dc.w 907,856,808,762,720,678,640,604,570,538,508,480 dc.w 453,428,404,381,360,339,320,302,285,269,254,240 dc.w 226,214,202,190,180,170,160,151,143,135,127,120 ; Tuning -7 dc.w 900,850,802,757,715,675,636,601,567,535,505,477 dc.w 450,425,401,379,357,337,318,300,284,268,253,238 dc.w 225,212,200,189,179,169,159,150,142,134,126,119 ; Tuning -6 dc.w 894,844,796,752,709,670,632,597,563,532,502,474 dc.w 447,422,398,376,355,335,316,298,282,266,251,237 dc.w 223,211,199,188,177,167,158,149,141,133,125,118 ; Tuning -5 dc.w 887,838,791,746,704,665,628,592,559,528,498,470 dc.w 444,419,395,373,352,332,314,296,280,264,249,235 dc.w 222,209,198,187,176,166,157,148,140,132,125,118 ; Tuning -4 dc.w 881,832,785,741,699,660,623,588,555,524,494,467 dc.w 441,416,392,370,350,330,312,294,278,262,247,233 dc.w 220,208,196,185,175,165,156,147,139,131,123,117 ; Tuning -3 dc.w 875,826,779,736,694,655,619,584,551,520,491,463 dc.w 437,413,390,368,347,328,309,292,276,260,245,232 dc.w 219,206,195,184,174,164,155,146,138,130,123,116 ; Tuning -2 dc.w 868,820,774,730,689,651,614,580,547,516,487,460 dc.w 434,410,387,365,345,325,307,290,274,258,244,230 dc.w 217,205,193,183,172,163,154,145,137,129,122,115 ; Tuning -1 dc.w 862,814,768,725,684,646,610,575,543,513,484,457 dc.w 431,407,384,363,342,323,305,288,272,256,242,228 dc.w 216,203,192,181,171,161,152,144,136,128,121,114 mt_chan1temp dc.l 0,0,0,0,0,$00010000,0, 0,0,0,0 mt_chan2temp dc.l 0,0,0,0,0,$00020000,0, 0,0,0,0 mt_chan3temp dc.l 0,0,0,0,0,$00040000,0, 0,0,0,0 mt_chan4temp dc.l 0,0,0,0,0,$00080000,0, 0,0,0,0 mt_SampleStarts dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 dc.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 mt_SongDataPtr dc.l 0 mt_speed dc.b 6 mt_counter dc.b 0 mt_SongPos dc.b 0 mt_PBreakPos dc.b 0 mt_PosJumpFlag dc.b 0 mt_PBreakFl ag dc.b 0 mt_LowMask dc.b 0 mt_PattDelTime dc.b 0 mt_PattDelTime2 dc.b 0 mt_Enable dc.b 0 mt_PatternPos dc.w 0 mt_DMACONtemp dc.w 0 ;/* End of File */ IFNE test testfile DC.B (endtestfilename-testfilename) testfilename DC.B "j:\mods\madness.MOD" endtestfilename ENDC SECTION BSS vols DS.L 64 DS.L 16640/4 stebuf1: DS.W bufsize ; buffers must be this big to handle stebuf2: DS.W bufsize ; downto tempo 32 DS.L 349 my_stack DS.L 3 dir DS.W 1 mt_data ; module is loaded here.  xr..  xrBLITZ  xrJAMPACK  yrMSA 141 2yrISOUND 2_1 vyr]50PLAY  yrnFALCPLAY  yrCPX  OzrNT_COMP  mzrKAOSDESK  zr1AUTO 501 b{rICE 240 m{rJAM3  u{rPCHROME DOC /a RPCHROME3PRG q L-N Pro-Tracker V2.1a Replay (STE/TT) - ( Version 1.2 STE/TT ) %By Griff of Electronic Images -N Instructions - To use this module player :- 1. Simply Install '50PLAY.PRG' as an application on the desktop for the extension '.MOD'. Modules can then be played by double clicking on them. OR -- 2. Rename '50PLAY.PRG' to '50PLAY.TTP" . To play a module double click on '50PLAY.TTP'and type the module name at the command line prompt. When playing a module you can use - to control the sliders and to toggle TEMPO control on and off. Tempo control need only be turned off for very old modules. (An old module will normal play at the wrong speed if tempo control is set to ON. You should set tempo control to OFF as soon as the module starts playing if it plays incorrectly with tempo control on.) ProTracker V2.1a Replay Features - - 50KHZ STE stereo output. - Full Compatibility with ALL NoiseTrackers upto NT2.0 (Amiga). - Compatible with Protracker 1.0 - 2.1a (Nov '92 Amiga version.). - The only player to feature all Protracker commands. - After lots of requests now does 'CIA timing', which means it is the ONLY player that can play modules using the TEMPO command! - This player doesn't have a flash graphical front-end, nor is it meant to. The program is written to take as little space as possible. (58k memory resident ,or about 18k on disk(even less if packed...) - It does not 'pad' the samples to gain extra cpu time like most players. - this saves memory and means modules are always replayed accurately. - the player simply 'emulates' the Amiga Paula soundchip. Accompanying this document should be the following files :- 50PLAY.PRG - The assembled program version of the player. PRO_TTP.S - The source file for the Replay routines (Commented). (can be assembled with Devpac 2 or 3.) CIA_EMU.TAB - CIA emulation table.(see source for more details) PRO32BIT.TAB - Frequency conversion table. (see source for more details) CIA_EMU.C - C source to generate the above CIA table. PRO32BIT.C - C source to generate the above frequency table. (Both C sources can be compiled with the PD 'C' Compiler GCC.) I hope you find this source code useful. If you have any queries or problems (bugs etc) then I can contacted at the following address :- Martin Griffiths Darwin College The University Kent Alternatively you can phone me on (0227) 450550.(upto June 93) G.  rY..  rFALCPLY2PRG }`8Z@READ_ME NOW a8k-`?4(*oKgIRSfB*o(m IHTHUBg?<JNAO B?< NA\#@Ot aZAt# PP20tfAtKG#aJ9f>a,aDadpraa>:<fa,aР /:z?< NA\BgNA fHz`Hz?< NA\?<NAT`Ơ Hz?< NA\?<NAT `EYou must install this program as an application on the Gem desktop, OR Type the Module Name if you are running this from a command line! Press any key. ELoad Error(disk error?) Press any key. EFile Not Found Press any key. paJF'A  p  4B8@ B8@AL!pA!A"!ByF#papaaNuWNspaF'A| !p!!!4F#papazafNu?<%NNTNu0:°zgNuL8g8`Nu8gNuHP?8ggA,8l@Q0 _Ns@P0 _NsF'RyNsa.AaFIKt.<= aNuQ?</ ?<=NAPJk(8/ /??<?NAO Jk#??<>NAXNu#PNuMB?atpa$AFgpaQe$NugNu* NuS@rgQNu* `pap54Ffaepa6paAGg`a6RB30QeNuaAa2 yCTJfAdB@Jg R@|oA&aNuHP?< NA\Nu}} Now Playing : Unnamed Module!ELoading : E ProTracker V2.1a Replay - Falcon030 Version v1.0p - Programmed by  Griff of Electronic Images A^A]QATQJfJf AD0NuA`$$A0APa&$`$ ^a$6F%HAJg$S(fhC Q@m QCt`RQAlJg"S(fhCVJQf QCJ`SQA" KDxa:A":KJxa,A"TKPxaA"nKVxaaa%LNs$U -L|@ct@JJBM^2&D>:$ frvtM"frvt,m *-D<.f|~M"X X0 0 0 NuGy\#(tL M 6B:k3&XeJ&d!b;R[w542WA,}gA?ͥy#Ow'b-NoH;Κ*Vh 'n C᫠Qɖ>m! Yp҂o8}RuRnfEf_ksYY=RL\GFXA;o6:x1Ԗ,Y'7p"kM(SL/F +4  DVzmˡ7}'X! EAWL簇q6܆#U=byͨ3F_8d#iA·Ü D)W3D8r""\Q ~bzSe.#kl,H)!p<^ϋtjKDK, 8mD2 -LĔs%գCF+6׽>~;,}]|p{zו-zy7xj wlwvڎvAuTy&t(zsCsQreqppJ7oGnnC mllMkk jjaii1@zh^g<ghffA e2edjdcyb bgza*3a[`y`U_hO_To^/^Y S]-]b\:@\q[.[r[Z{Z*7DYYYIX.Xl.WZWW(VVVO|U5U1U!T)TY iSrS S2R7fRrRQBQYIP$ P.PGEkOOO<_N[NAN8PM M/M:LźLeLC%KEKZKRKJCJgJgvII I6aHBHHX]HGAGyG8AFFwmFeJF էEOEOET9E0D`DflDKD Ch!C^LCJC BBABQ#BAAQA^DA# @@56@rg@9U??r??Uu?>> >x>Ar> ===kʖ=74=Q<i<{$,A$$̂#m#㠊#ѥ### #mE#xS#g:#U#DM#2%#!#j"A"'""'"@"i"""xFM"g "W)"F6"6Lz"%h""u!MU!4!*!/&!CU!f!!x!v)!fd!VB!Go!7j!(!7! 2  ^ K( E M cf s eA V H 9t3 * * x9ǓƋsqe4-WqI<.o 9Th?ݫO]K D{t}(gZ@Mý@4)S'lPluo[ݮjOqydmCma+UII= 10%Jmi WZޭ oWgcw;@kw`UcJ-?3n(# Mg&m{qfw\JQ G$<2d[(@~k AZ agփPt lylPs[~}s:biu _ULPBk9/k>%׵K*Ŗ F5^YU"4ǐ)Gh˄>iBp!~t0k bVYPG?<6C-=$c 72{ m(,WĔfw#rT^<YxJo{g _DuVsNFqW>616-И%a G3#(9Ok0 'B}$wKnoTgC`G7X*QIoA:N27+@#(Fh} _a(ʰq]ҁ:N`Yt|`.uP nDVg= `:'Y;RAKKDZC=m 6K/({!w 8& hַUGc2׃3ÑY17{u0DnhVa[U-LNHyB&;5J/@("/|B R ٲ\W3ܠҴ̥ƚk@"yCshZmga\VRpP,J0Ex?I93.$(s"7u!Z 0Faͳ<$ ߜqԖGɜQ#|<̲`Kn,ln1xg~xszn1ih c^fY)SNIDN?_9n4E/*{C%Yd :D9I ljO-薲ޛ٢ԫ%϶en 34Pq5`A 8gA} x>xszGniBe&=~ eY◓ޛڡ֩ҳ@ξJۖ+5C^z!\!Hqz:A& }Wyuqn/LjifbO_"[cWShP1LyH`EA[=96M2.:+MM'$i \ogzVA NwVN6 +{LpgPc]j܏]@}cEop %(Iqlc75n }VJo|4`xچur++nէkh.dݺa^?ZWT]QPMJ GBC@=}:>730 -P*&# xE( ] 2r 6MtqN- oT䚅hQ<,'N8vv5$F/RB GV+4o}{xxEu-BrAmoVlmMifc`]|[ X+UKRlOLE~GKNM3*4a EvGKZM3*4aNuH6$::&x8-Ԅ8.ք U -(-<- $m"V".*.>. &nHF#*j#*p#*v3*|#*#*#*3*I2<: F<4`(za LlDD$%@+D&'A-ENuuz:aQ|E=6R0,r(%" )rH9A_vLGa 6 9 ^  g / f 9 mI&hL0nYD0 ~n_PA3% |qg]SI@6-$ ~wqke_YSMHB<72,'" ~{xtqnkheb_\YVTQNKHFC@>;8631.,)'$"    M(B*Ct064"1u"<4D`&aEpAa&AaAaAaa*APNu !|1@1@ !J !|Nua6aF'!4F#NuH zC0:ٮ01H"HHQHPB@/1/1/1/1/1/1PL0HH?LNua0g8/` J9?f(p.J9?fR?NuJ9?f...JgH@p.g>AB0.#.#g*B.# . r2.ЁЁ n$Re n -H$pLNu  +@1JaxŴxaJ1X(\:}hS@. xqR"}Y7{eQ>, ~wqLxU3xcO<* }vpFtP/u`L:(}vo@oL+ r^J8&|un: kH'p[H5${tm4fD# 'mYE3"zsm.b?kVC1 yrlX(\:}hS@. xR"|Y7{eQ>, ~w~LxU3xcO<* }vwFtP/u`L:(}vq@oL+ r^J8&{uk: kH'p[H5${td4fD#mYE3"zs^.b?kVC1 yr+++J  J,.!LTp$L  hv>   2 : $l.(@ nfollowing address :- Martin Griffiths Darwin College The University Kent Alternatively you can phone me on (0227) 450550.(upto June 93) G Pro-Tracker V2.1a Replay - ( Falcon Version 1.0p ) %By Griff of Electronic Images Instructions - To use this module player :- 1. Simply Install 'FALCPLY2.PRG' as an application on the desktop for the extension '.MOD'. Modules can then be played by double clicking on them. OR -- 2. Rename 'FALCPLY2.PRG' to 'FALCPLY2.TTP" . To play a module double click on '50PLAY.TTP'and type the module name at the command line prompt. ProTracker V2.1a Replay Features - - 50KHZ 16bit (15bits per channel) stereo output. '32 bit interpolation' for the best quality Tracker music ever! (far far superior quality to ye olde Amiga.) - Full Compatibility with ALL NoiseTrackers upto NT2.0 (Amiga). and fully compatible with Protracker 1.0 - 2.1a (Nov '92 Amiga version.) - The only player to feature all Protracker commands. Does 'CIA timing', which means it is the ONLY player that can play modules using the TEMPO command! - Dercunches Amiga PowerPacked mods! (powerpacker v2.0-4.0) If you have any queries or problems then I can contacted at the following address :- Martin Griffiths Darwin College The University Kent CT2 7NY My email address is : mdg@ukc.ac.uk or50PLAY PRG ,|#ICIA_EMU C t ZCIA_EMU TAB Xt FRQ32BITC <t FRQ32BITTAB Ht PR50TTP6S |! READ_ME NOW %t V .  rm..  rMPLAYER ACC qpn,MPLAYER DOC qpz:`,vW> g.hHPHVA a&MM +ЫЫA .GIJgrѓB(g<fG``GPN$^,,,HR,ܓ,HR ,,JT@ rAl,LC4p=!QGd~$KN"KLQ?HQ?ǜdLp _BZ`BNK~ M&`I |a``X|g"TezF`$|aHg\E`|a>g E`&`| a,E?f:I|a|m4TO]En(MmXL|a4P`>BEg EQJENu&`Ix|a84@HaDgt@IP:$$Q| z gDTeF`|agPEVE`|aHE|aPVSEk|HF&Qjf"<fNu&` `````` `` ATOMIK33b!New header by GASTON/BMT]*R8{'=blVJ? O^ԃMPp rHA73,p#D ~U;AU3rs,}$? U;IcTASK'm?FRQUNCerqg</*IeyYguW\!Bmpseu'ymה|ev5/(c)ޡ/b8Fi6W28VerS0704w?HOTKEY:Nj6+L$RE@\eB~KNOLIHTEAM! <MQ\os}l> $'_9AAxgqtS _'Xnqkǭ{8ك Ư 쮫O^S!6=(M $;%J\?pdyCol2peִ6DMc%Rp2SYB/8HWV0.оaBpZ')^6-dV0m6htn8<PdpH@|8A+Hocُ4p;BxԺy'KK-r@ٙT( VzO*(\J B;+t9 "¨ymxloA#apggb"|I ̲n4N/?/m^":"k@0H̃\&ĺ 2ucƥi1< o gHzp=7PM@ؖ /:ZrO 2xp>?|3X ho.:]l!%~''x@= kU fѯ734Ch  )^7\h.HĺUg@vv ܇4uf2pt0ʒ+WHAgnO:^ 稨Vl>DE._"|!)0b&BTgry=VM(G5.9&:<20n!hO齝$jbLRJkbrHk{' {~3dt7 oFEJ>kr3W_0ƻў]I(:dg2kX$ `JOBe(UzRR+7&@/Ds} NJ/ RE?/qNI>agkgz */rI?k?ɚ*(j p*iɲr\tgl(]U"Hr gzpBJ"KM;5~,MVK.N|tFLT48w\.]H@0~2b$&,m"n/(mn~m nu 2-i[ f&$_^_h X|/k O]zh o^g @r.F"z RDpJfߕ\BM~CarCnL~ k.Im1J/-6ʯl܌#{g #Ee"\rp=Pghux:Q fN!h4ͮxv:2* VyfLCqCQN66"PQ feG Dv6{zCE ;oCt@0v+ *kȻW}pG##SNʝB@_!!9  IfNCfϵ~b #wFm wb&T\VP='*0#ϝOw N[H}3ǽpL,]&6|fIx"Ok{+;>x˺;irwwwN[..ef;hE;\w3]z Ѧw f2P,a',uIuWswMpXU'w84M]s.)&#@8g/C$PlBXpЬQpF?C_e+J.5$OmG'hFxJ8!4"Ppy.06/N˜1Bn.gLJgx0&&-pP0AJ4`gYpVnXR@gJf znPol!AC<_Bqq[=MDp4"<|=I$-L6ahsP<{7"Jғ9xf{]ؓRד hOV?KR ='3d+{*ܓFR bPK~4eĖG)D槯Da^ߣҐ <p[Ay謹d!˯imzW&.waB36˻^DzW]zEЋLb aq^  N0r &" {Q5qA. E="} 3ZwC=/v! ^^E$w^]vݕ8\/:Ne(  ”#11 `CR)A#lp[iޑ!x s*x]f]x/oo<{vhir|+ioNNM2-!=ț.!+ҿ !r@'tdž}.'tC.! "U6 Q7\L"2{k3@T"=>wG@'Ht nIb:cҿs"s7:wàsl w@'t.ū"r@']ژ"#}l W[U.8#:Po;TUЍVhf xrBnېrBtB7脫nŝЍߺ֜9w9溱tB7 #G$^ؠF^'(:DuL9M#(mNQ:a@.V$Oֲztr.w6B5( Cclogc+G$man@d-1ƗYO M6elqRslprvoj{'HbM@$ez!CtrmJa bi K(-k_9EoF,(ubh /fwMP L01b0ֹmb:_B9(exX20khzw HhdSPACE')2MHA-@|GrIPSa b1y n@7TD1mo-S3ّ([c t)uw|_!agod,s>itDJlik>musc?Yki%p|FE0,Sh"gV<-N$,svhapned\Mjnk0vXhtabug!|| WTHA1#YUDON !?][I'm*Pry(G]IZEOɈց YE||PL!O\2;ߝ \Nh2{ 43N,0(QMww֩.e$:/i;uv_YPs\/Wf"$rX3\/3"u/]r]Wm'|J746MSA!4VC zN #peVF#[Roa~{/SNzߵk3d-Jkgl#[ f$H"@PnޛyNB/G@fS I)'h& " .#>bXRMRi(_uH|~:J8E Gn$z1A"SbjTnv&qϨ~?U t&<g?MG` 64ԫ֑$sB1a>=L(R(VDN? Kf M =SYH|X*g}, $>D yRB܏& Jx>G4(Y2Wi#C[F(_ /|c ?(&(> r ao V 3duz.arE뚢U tpT qNww"83ɠCz9:4Y4sQREYUpdM;"K]'µ5u<~zlY,LMw#4 5JDg+C ר"P@ TD7E@>J[T&R4BbtD92dpΎ 30>dfTzkD<)1?::V3"dAІBH*=51;%kqPI$AR=kc:K_l9$hpmd8~6$5r=KT l*K TbYapr&+Mf[JJ]nS%MK TڔC]) D8<3<|$dEJ.WgdVHgW  {QbD6I'.)"m(j/ 6xJ:%R(Z+)8g,A90)!j) ?~S dt&%Rθ,oOt%$8qwy"j :Eo#5DUB bf: TCo|b.|JEjCzִ:53ck#PvKt C$p(Q*i>x#H 50#L|V@7,TzY8)+Q9VFV~4:"gr fYd+Tz;ENu5@ 5_ N _ 1 bw WTVG^YYp1yeeeS$̕~Z8WVVVVV{VfVRV?V-V ^YYYY֩ʟVwVojZdY_YYӪ~KGC?L 5cBT-%΄#Y!ُModup&VF6 1TߴqݩKftM& #M"6txjtPDgO_&HILșj䊭3\WJNw4@0;9+"(r0aÒQ RƹTH΀,23JCZ:"<<~䒶|6o &≜'p0ЀAÚHCmR_.-0т.țâ,@*64qg:<hB&,ƇgBHFᎌֆȇׄÌkֵ@Bhw~pz@6xr5e7{w($ÅKN B1T/>!80')C=zC?Rp]o$צRE(*(HN\wi&L0$ @|7np"2T{gbxާ&Kl,Mt܀oւl?6ȫSA8O. ٖdބ~n SB2l 88*Nj7&z>׆ϡJB8m ιA 1,g;|[e^^e?զ狀<:rveZ) V?JFM՞āl7$c 7Hg&Q(:$%:Bn> q4ִ) ´ 5B.()@>{Z,:Dlh=#P&C( p?NKPjFh>"AO!􅐼@.2; ;p撩,|a (NPf Cy!فؼuix !_(^*zyyyy ap(Ȓ Y@|ˏM x$f1"HC$_Mv~e/BMT=R{r:%G>f@LL{3f *™FfwV XBRAMOD!?_c.sg f 5 ޭUaB 2*pdzxcllent<mazig, onrfl;IJju`ay:2'simplAbst'wpdeorwh̥iyoucreadthiscrp?5ga*J:f_ 2A"1"1r0ٳ..:.j]#??⅓rMM U@"OԇGֿNbwAe&D¸dցpuXP|sd\8oFL'>ou4h1;ElNMKu jN=[[7Heh*fȰYԛ!43>4C>ʶ}J^N:ֳ<^WRk{IKA_dwM;dJl.S"=9p75k0Pg4dnC9WT0XҺ_M\:Z?z,䕻: :&:#&YAZa#B.VTWV/ H}^fN%Ts¨dЁ1H#;*MG 8{AáEJ_;l>S@&I0۷m0*HT@>:oSGKTQgDK/:*zM .Nv͔10ԊՎցD@<&E/S\,G^/VxkP~}/K?xsF%|^NP:0|o!QGHA܉za7Ns3߶1g˫-Om[R*zG? E<r2 IzxrlA=O4|hp۠OnX1r.;b02:84|3vԦֳ@|K0\reqB: fHe i p BUQxf&_PԂaA48^: $' 074 yXBf8g̬.Rqq?a*7xfSƂ:jlBJ9,fLhXH]]L]P=JI>CTI~B=AZ*WfBBe,eJeԤ13 Xjveee *Hfʄ(_1 H{ #g\B/ G)s(&_J4;_h'ꉀv6Gg CЃ 038"94CO)sW+'0癃N fHf~J`D9TlpN>HC"3<6=F@Iz64ľ[9LV@gD'M[q4gCiJg*C}fn m9B|1Jaxd.ŴxaJ1'gLt2?@J kBytH.<G 0:;=323_\p ^ @2c6Qhjt$Xk Q߆ @(Mg/%)@Fm"7_gЗmd@lgTmZ? gRH7Hj0 ;0E,k9|п3lK3Hz %ga Byg?Ѓo惼̃܄|glB@nP7/ 7 gn$s WSZHSzŮv cI 3@{cp,ceJ@fpHKX(++++\+:+Ŭ}hS@. R?VVVVǗʏʇJq{!}aGj;71{6,x)FE}*6A 2CnI~6y%pr2)IimB&P4 š oB+<3A7"#hx"_#XB  8[gt#r2(|h8ACQ2!&.4A r4&Mƛ &h&JN$G0b,<Ðх"Ax\@" A$LA&:ytF(_|x* &zNJB# I||HC#"FyJ8Nu<@<U"U#DFށhHi[dA.' X4- DށZ`B.LcZAK4gЃ~, a ؇xGx4#nty x #l4@4p{vHP0t9I腎HI,t9 I\HpCKt$ Dn # !i`'  x \ n@:8С4t( Ci]PJ\PBҀxCi'pK4h-рߟ4Jѡ4 _0 r?9\,$x(˞00 0 C|=rE}J A}B3\r {aKt.O4hр; l.4F1pc4_4[4P[ .4߁  e@  ;fȠLi>cz: BT6O 0`ZL'mr,&l 0xlZ@ߛJ :< d8xs J"d6 Hx". 4tou 2@(K 2.(_04,N *Hp \.~$Rf :0?e(^ 9$9$UV!]Ì+PPP Px}+PPP Ph}USQR{ZY[]È6USQR{ZY[]USQR{ZY[]UPSQR{ZY[X]UPSQR{ZY[X]USQR~{ZY[]UFP+P]UFPPt]ÐUFPvaF]ÐU~u~tDF*PwF]Ã~u"~ u P~tF*Pѐ^FFF]U6WV^ MMMM MMMMP LL M MMM PPP PP LL MMM MMM MMM PP PPP PP LL MMM MM M PPPP PPPP LL MMM MMM MMM PP P LL MMM M MMM PP LLL M MMMM PP LLLL M MPP LAYER!  - Enjoy this ultimate MULTI-ACC - - MultiPlayer - MultiTasking - MultiFrequence -    Version 1.3 3Release date: 31.02.1992 :Today: 09.07.1992 Salut, today I'm at Nero HQ and I'm writing a new text coz' he have killed the old version of the DOC-file (Argh). But I'm now happy that MPlayer works well with DMA-Soundchip and with Multitasking. Forget the version 1.2! Bye... @Version 1.2 3Release date: 14.02.1992 2Final changes: 16.02.1992 The DMA routine works now with Multitasking! (HOHOHOHOHAHAHAHA) I test it out on an 1040 STE, and it is really... just listen to it! Perhaps I will buy an STE, the sound capabilities are much better than this lousy soundchip in my ST! Many thanks goes to 'DATA BECKER' in Cologne who throw me out after several hours of coding on their STE. Some stupid & shitty bugs are killed again and I am wondering that previous versions of 'MPLayer' were able to run!? If 'MPlayer' does not run correctly on an TT - give me one! The TrackerPlayer was speed up again! Now ~59% processor time free with normal ST. Best quality plays now with 20.4 khz! (> crap< ) SO WATT!? @Version 1.1 3Release date: 04.02.1992 2Final changes: 09.02.1992  The new MPlayer version has some new (amazing) features.  First of all some bugs are removed and I have implemented the new (bugless(?) & better quality) TrackerPlayer (Danke Michael!). New features The new variable player allowed you to choose your configuration between: - DMA (in Stereo of course!) - cache - play-rate If you are owner of an STE, MEGA STE, or even TT, then you can play the modules with DMA. Faster and superb quality! In case of an MEGA STE or TT you can use the CACHE option. This will speed up the player again. You can choose between two play-rates. Default is 8 khz or 12 khz using DMA, optional is 19 khz (using 100% processor time), or 25 khz when playing with DMA. Note: I do not own an STE, MEGA STE or TT, so I can not test it out, but it COULD work! The 'normal' ST TrackerPlayer works fine! PUMP UP THE VOLUME! @Version 1.0 3Release date: 18.12.1991 2Final changes: 29.12.1991 0 YEAH! MPLAYER, the ultimate MULTI-Accessory can play any music of your choice DURING you work(?) with your ST. This is 'Multitasking' on an STS!!! (For brainless lamers (Ops, sorry!): STS -> 'Single-Task-Systems') You can play either SOUNDCHIP-MUSIC(uarks) or real 4-Voices-AMIGA-Tracker Modules. You only have to select a song and MPlayer will load it! If MPlayer recognizes the format it will start automatically to play your requested music. Now you can go on with your work ...calculating, writing, DTP, CAD, coding... with new strenght and more pleasure! Be creative! Very easy, I think... Technical Information  MPlayer - recognizes and plays most of the current music-formats, EXCEPT of: QUARTETT TRISOUND TFMX-MIX/-DIGI SYNTH DREAMS MPlayer cannot identify SOUNDTRACKER, ProTracker or something like that! Only the 'ORIGINAL' the NOISETRACKER (& StarTrekker) are playable. If you have an other format then go and load this specific module in a NOISE/STAR-TRACKER and save it again. This should be enough. You can get a selection of PD-Tracker in every good MBox or PD-Library (I hope so). (Call 0221/248225, MBox 'SPACER' in Cologne, FidoNet. Look under 'MIDI'!) If you have other music-formates then send it quickly to me!! - has an HOT KEY! To avoid troubles with other programs which also uses the soundchip YM-2149 the XBIOS voids GIACCESS, DOSOUND and the key click are NOT allowed while playing musix. If you have still problems with some programs (FcopyPro,...) then just press the HOT KEY: CONTROL+ALTERNATE ... again you will hear the music without disturbing noise shit! - doesn't waste your memory. MPlayer requires about 65 KB for himself plus the lenght of the music-file. If you load a module then you have to add about 20 KB for organisation stuff. That's not much (I use a 3-MB Machine). - can stop, continue, restart your music request. Just play around with the menu, there is much more... - is timer controlled. That means MPlayer runs on COLOR 50 Hz/60 Hz or MONOCHROME, whatever you want... - is fully coded in pure ASSEMBLER using TURBOASS 1.76 and BUGABOO 1.7.6 (The best ASSEMBLER you can get, forget the rest! Hallo Markus Fritze, warum luft der BUGABOO 1.7x NICHT auf KAOS 1.42 ???) The code is very optimized, except of the TrackerPlayer from Michael Rausch (Hahahaha!),... NO, this was a joke! Due to the very optimized code of the TrackerPlayer you have 55% processor time left. Use an ST-Speedup (NVDI, QUICK ST or TURBO ST) and you cannot differ between a 'normal' ST!!! 'That's it...   Write to: Hoang Viet Chi Karl-Korn-Str. 6 5000 Cologne 1 (West) Germany P.S. Watch out for a game called 'Stoneage'! Very good, very funny - all in all very exciting! And of course a ... Production! What else!? A little preview for U: - 4 Voices-Tracker-Music during whole game - many colors - many special effects - color & mono - many more - and I mean the ATARI ST version! Another 'brilliant' game is 'ReTrace'. Looks very easy - but is too hard. Exceptional coding with 'Fuzz' logic!! Dechaosed with 'Thunder' methods! Both games soon coming for Atari ST (wow!) & AMIGA (bh!). B .  r..  rDESKTOP INF _DOCS DOC Kz)INTRO PRG ]zNOISE INF fNOISE_15PRG lzjREADME  Swup REPLAY15PRG qz#a0 #b0 #c7770007000600070055200505552220770557075055507703111103 #d - #E D8 03 #W 00 00 16 03 1E 13 08 A:\*.*@ #W 00 00 0D 08 15 0B 00 @ #W 00 00 0E 09 15 0B 00 @ #W 00 00 0F 0A 15 0B 00 @ #M 00 00 00 FF A DREAM WEAVER@ @ #M 00 01 00 FF B EMPIRE@ @ #T 00 03 02 FF CORBEILLE@ @ #F FF 04 @ *.*@ #D FF 01 @ *.*@ #G 03 FF *.PRG@ @ #G 03 FF *.APP@ @ #F 03 04 *.TOS@ @ 8-K - ST-NoiseTracker V1.5 (+) - - Based on original amiga Soundtracker,Noisetracker & Startracker - ?- - Made by RIFF RAFF of UNITED FORCES and ANTICHRIST, - - MAHONEY & KAKTUS of NORTHSTAR & SILENTS,AND EIDOLON of FAIRLIGHT -  - ST conversion by DR SATAN of the EMPIRE - -K Credits... CODERS - SOUND TRACKER - v1.0-2.5 Karsten Obarski Exterminator of TJC TIP of TNM Unknown of DOC Mnemotron of Spreadpoint ... - NOISE TRACKER - v1.0-1.1 Mahoney & Kaktus of Northstar & Silents v1.2 Main coding: Riff Raff of UFO ReAssembling, Scope & Beta testing: Antichrist -K General infos. - Please disconnect your joystick when you are using this program. Patterns. - Any piece of music written with NoiseTracker is build up from patterns. NoiseTracker holds a table with information about the sequence in which these parts must be played. With 'Position' you determine your position in the table. With 'Pattern' you define what pattern to play at that position. 'Length' defines the total size of the table. 'Restart' is the restart position after the song stops. Instruments. - You can use up to 31 different instruments in one music-piece. Each instrument consists in a sample up to $ffff (64 kbytes) For each instruments you can define : -The volume: you can change it to each value between $00 and $40. -The lenght (in bytes) -The replen: if you want that the sample loops when it ends,you can define the replen value. -Repeat: it is the restart value if a loop is selected. NOTE: All since the very first Soundtracker by K.O. there has been a bug in the replay-routine (both in the tracker and the replay). The tracker calculated the loop-start in bytes, and not in words as it's written into the instrument- list. All this means that in the later Soundtrackers, you couldn't loop the whole sample. To use your old loop-values (from ANY other tracker) you should divide your Repeat-value by 2. (fex. $07e0/2 = $03f0) If you want to save memory, decrease the length of your looped sample until it stops. This will save only the used part of the sample in the module. V1.5 : Loading an Module will auto-correct the Repeat values! Edit format. - Notes: - C#1 3 C 2 3 / / | \| / / | Command Info / / Command ! / Inst# Note to be played. Note: This is simply the note that must be played by that particular - instrument. Inst#: TMhis is the number of the instrument that must be used to play - the note. When the instrument number is zero, the last selected instrument will be used. Command: This number tells SoundTracker what special functions must be - performed while playing the note.(cf. song_commands) Info: This byte contains the additional information for the commands. -  Song-commands. - Here you've got them: 0 - arpeggio 1 - portamento up 2 - portamento down 3 - Tone-portamento 4 - Vibrato A - Slide volume B - Position jump C - Set volume D - Pattern break F - Set speed (now up to $1F) $0 Arpeggio - $0 + second halfnote-add + third halfnote-add This command will produce a one-channel chord. No comments. C-3 00037 produces a minor-chord C-3 00047 produces a major-chord $1 Portamento up - $1 + portamentospeed This command slides the pitch up. C-3 00103 1 is the command, 3 is the speed. $2 Portamento down - $2 + portamentospeed This command slides the pitch down. C-3 00203 2 is the command, 3 is the speed. $3 Tone-portamento - destination-note + $3 + speed This will automatically slide from the old note to the new. To keep on sliding, just select the command 3. Try it out yourself, and I'm sure you'll understand a little bit better. C-3 00305 C-3 is the note to slide to, 3 the command and 5 the speed. $4 Vibrato - $4 + vibratospeed + vibratosize C-3 00481 4 is the command, 8 is the speed of the vibrato and 1 is the size of the vibrato. To keep on vibratoing (?) just select the command 4. $A Volume-slide - $A + upslidespeed + downslidespeed C-3 00A05 5 is the speed to turn down the volume C-3 00A40 4 is the speed to slide it up. $B Position-jump - $B + song-position to continue at C-3 00B01 1 is the place to restart the song at. This command will also perform a pattern-break. $C Set volume - $C + new volume Well, this old familiar command will set the current volume to your own selected. The highest volume is $40. All volumes are represented in hex. (Programmers do it in hex, you know!) C-3 00C10 C is the command, $10 is the volume. $D Pattern-break - $D + nothing Sure simple, this magic thing will end your pattern and go on with the next one. C-3 00D00 D is the command, all others are a waste of memory. $F Set speed - $F + speed This will change the speed of your tune. (how fast your patterns will roll ...) Speeds from $01 - $1f are allowed. Speed of $01 is fastest... C-3 00F07 sets speed to $07 The keyboard. - you can use those keys in listen,edit and record modes 3 octaves keyboard : 2 3 5 6 7 9 0 - ` A Z ER T Y UI O P^ * S D G H J L M W X CV B N ?. / + F1 - Chooses two low octaves F2 - Chooses two high octaves NOTE: Cursor must be on a note position to accept the note ! - NUMERIC PAD : [0] - Go to patternposition 0 [1] - Go to patternposition 16 [2] - Go to patternposition 32 [3] - Go to patternposition 48 [4] - Go to patternposition 63 [*] - RESET SCRIPT POSITION AT 00 [+]/[-] - SAMPLE NUMBER +/- [(]/[)] - PATTERN NUMBER +/- [.] - PLAY SONG [ENTER] - PLAY CURRENT PATTERN OTHERS:  [ALTERNATE] - TOGGLE BETWEEN SCOPE/EQUALIZER [CAPSLOCK] - CHANGE COLOURS [Help] - help screen ! [Space] - Toggle between Stop/Edit-mode [UP] [LEFT] [RIGHT] - MOVE INTO PATTERN [DOWN] [CLR HOME] - go to next track (easier editing) [INSERT] - go to previous track EDIT COMMANDS (IN EDIT OR LISTEN MODES ONLY) : F3 - TO DEFINE BLOCK START F4 - TO DEFINE BLOCK END F5 - TO DEFINE A WHOLE PATTERN BLOCK (00-3F)  F6 - INSERT A LINE F7 - COPY BLOCK AS 4 TRACKS F8 - DELETE BLOCK AS 4 TRACKS F9 - COPY BLOCK AS 1 TRACK F10 - DELETE BLOCK AS 1 TRACK IN EDIT MODE ONLY : [TAB] - DELETE NOTE + INSTRUMENT NUMBER [RETURN] - DELETE NOTE + INSTRUMENT NUMBER + COMMAND [DELETE] - DELETE A 4TRACKS LINE Modes. - 1)play,pattern,stop: -in those modes,you can play a note but you don't record it. -'pattern' play the curent pattern. -'play' play the all song. 2)edit: -in this mode,you can enter notes on each track but also instrument,song_command and data infos. 3)record: -here you record the note but the pattern is played at the same time. Clear. - you can clear: -all the song (patterns+instruments) -only patterns -only instruments With the 'KILL' option,you can kill the curent instrument. Tempo. - is the 'velocity' of the tune ($01-$1f) Transpose. - this option is really not usefull !! Copy. - is ;the number of copies selected when you copy 1 or 4 tracks with edit commands. Quantum. - it is the number of lines you go down in edit mode after a note (instrum.,command or data infos) record. Preferences. - Note: The NOISEPREFS are not compatible to those of other versions of Noisetracker. Delete them when you copy a new Noisetracker version to your workdisk! It could cause severe problems if you don't! INPUT: here you can specify the input format of samples (amiga,st replay) OUTPUT: you can play the tune on -the standard st YM 2149 -st-replay cartridge -mv 16 cartridge -prosound designer centronics interface AMPLI,COLOR:no comment ! PATHS: Here you can enter your prefs/modules and samples paths (up to 32 chars) SAVE: Saves your prefs to 'PREFS PATH':NOISE.INF EXIT: Eeeh? Exit! NOTE: this version of Noisetracker has a directory buffer for up to 520 entries. Sampler. - here you can work on each sample in memory. VOLUME:volume is calculated at the curent sample_volume value REVERSE:the sample is reversed in memory OCTAVE UP/DOWN:new lenghts are calculated FADE IN/OUT: when you select this option,the program waits you 'click' the position on the curve where the fade must start or end. COPY:the curent sample is copied at the asked sample position (nr) Disk operations. - Here you've got the old familiar Load/Save/Del sample and module LOAD SAMPLE: A sample will be loaded from the path you've specified in the Prefs menu. SAVE SAMPLE: The sample will be saved to the path you've specified in prefs, under the 'sample_name'. LOAD MODULE: you can load any song_module coming from the original amiga soundtracker. SAVE MODULE: the song will be saved to the path defined in prefs menu. patterns+instruments are saved (and your song can be played with any st/amiga module player) FORMAT S/D: You can format a single(S) or double(D) sided disk with this option. NOTE: you can load a sample simply after the name has been input, - by clicking on LOAD (next the samplename) -K bug report or suggestions ? WRITE TO : JEAN-MARC HARVENGT 212,RUE DES CROIX 7012 JEMAPPES ---- BELGIUM ,enjoy !!! ``Pack-IceIKM.<;a&NK kA -Jgrѓg f``GP$]*$**ԓ**ԓ(p AC$QC&LN&&QvHCj&l",p&&QjNH Na0aZd"raTdCv !anH@@Vҩ%QnfLNup%QNu> f.%߇`>.-%Wއ`,އgNu> f.%߇Nu.-%WއNurއgAQNuCtaTxr1 Hka1 AgCrtaTr1 HaBq `rptadpt@aBC@!!Q`    `L89rqN*o,:O -AzЭM/ Jt1SC HD&SBgNAy#:U37v /g0NLC:κ= f?[ /9@ i ̝.Z ',TTh,#a =YJ('!LYS3/Y-G̍ _rQ[ ռB8@Z!%Sj D)8(#J."xFLH?H6/a "z^~pf RT%3`@ HEh &zsC70H (MYh@L&'k`|)' pP)B')CGI@0а| gJ@lDi2 f#f# h{l( 6 @;2`   :28 ˭q>  <A  !+(rL"$&(Wa"z0":$P$g&A"˅pE AqH`? nlNN$^L~CA6EG42cC <@&8><IkKNHp@*,0@!HڅHEE W܆HFFdS@dDx >d8c;$e20@4CJ?$cBK$5 "04BJBQBAQZaNuxXj tGM:,sGPNu zrd <"Xɯ ADjATPJ (PJT`T# @j MH*P*J (J `3ANuA~   a zv"zj(ya@ye&X$L" Y`c @Hl (b6vD؉ h02M6Pf9L?V ( Qj)` hTZ@jHh6="*`5Eʉbjjj JY^k0")&"(aـ@K0 zJPl/d9K 3)?>"AgC}X0r686 jҭ8xɼ؄HDD?5 6 CC:<rڅE\E;e4BJ DLMЇED0Q(ms? fcQ>QnBBV52rNf5@r  .nJ,xIKX&$R.THF([AKKՂ|XR5>ES, REXNX1JN ACV1.5+QCLUKSAM<@5ALsNEWLAY.]UWҍUBUG3"!77~GSHxs#ɢY`bcKV bk% LLIK#G ~\O YOPx,jr_HT% $GCR (!QANDA LO!!WRIo$bAGAD#_'FGKRR!I'cLY@TE >DUS(MODULORNSTNTS)!,IFHAVING NIC!2)TOND M:`O IT`  ADDR x:2,RU'8FDCROIX7012 JEMAPPES ,BELGIUMxNEE YOU SOON ...` Ry=(*6 zp@ C0TH#z.,#0 fAK`#?ta&0:HE4 [&Z"[$zô 1@ym+ytʐ6CENu zэ,>hU:<") LH?}Ј>} <A]/LSo^!?X}`Ϡ<6hS8jxX ~6 wYi0C0k`W ?_`> :`6M.K.-6G]I^BAK## _0xf凮BoHY*Wer?q.DNtV `$nRG[ &",&*$.ҁA 7AtACEH0Qw<X&h(KH\u ҂,J4wX f*KQ`2<W,U[LҲ S# Q?v CAAd6Z.&5EAh05"<Xm qMZ }@PXB0BX,(Sg4;%Q,bHKA,H+HEnXP Qj-HEd@uffffY3+6f$KR nfdd;5YR2A`JA>3f& /@gl'QK~5A)(Hb{ $A%q>-}I]:bf0*ˋl5$S|$1CvZ$%B % _FT.%\Ys> `4BqZ%)BDcBj&XH,+x>1JaxŴxaJ1?(\:}hS@. xng2AC Qr> A^/b@g.> JJ~>Qj, R2Kjs0H grBh Jg! h6V$쁦*jqkfć hk1|X}ș09& HiH@]فg|g 0` `4Gr[` @2iv$4Rl EQ=0P BnC{FJg415_fѢLn ~xG\m1Bhq&%QEyQ23J0^ĕfJkB`BG槀IA<(`  g8g g g$ڇp( UU3y5AU* eg U`KgVn"( #2LgTb@H"]GIB2GAe3-{?z3Zr̬"j==AC;ER.\x CЯ0$Qr4^p& @Ze" NKfEf|t8)6(0:Jy'젢ZgAaJ"3B&3C 3Dz6@HP .A_<9 0 @J@gS@DC2XQNu>GG,;p _o,pTg#KNs?<:.:'D@J#5&ڊڊ QQt0":T'P#gW@@u@ KQZsp['P tj Q]@QZWP Ml6imcQ]@ ZkQZ8C Rn!96Z60n!:@ g@WӛM  MsB8 "\B`Ny  q o0n`Oɠ< FõѮTWd*E鋭-:B1+&/"U!c D  k;eezn2 qi e|HP Fؠ-셗 HXѵ r 2` R6X!%pEH"L"ڭP`y2@[>!`z,ՕpXvB``,K7$`hjnu֕߹N.,,{0{J,l^:PC6-@X)j@ZU}Qd ̳> 4%&@X~v mVd\bTELV#DW<4`k-&FPjB tm` ]T]݃ѮZ-:X!@X_ ؛Ӗ Q zv3dI%qmri`d`bBM\X qTPL HEAX =9 62/+(f͆%![X:q@2lDX F-]u 6(A0dX޶X`|`-Ԇπ ,Hʳd ȓAYaqrXd a4,NA0"+ # `XnĔ`9X Ze]` ~|{0V ,vmt0ۡq[nrpDnmXkjhgdePddcNja`^;`]\ؠ,ZYX/@ZVUTBh RQ`POMZ0LK+J7GFXED;CHA@NQ?>=h`<6;Y-987ΰ "654E 32w,խ1l0b/`,.S-@Y,+*K q)M(Q,'W&%gZ,$r#~"X! YY~L@uj@# `-QYu/@YDP-[ 0e # ! -L Tq3n`$@GpP ; :e ed Vvm+YMc&RkYF k U#Y>#aeYM`K֢k$&A}]n_l'=E^cD _Γ7oYnyV+Zk~5x=PFiPI!\j.wC?MAVrs:d"ZU2Nd?;ܓs[rm(̝@x9 P9٥Ԩz$VÁnk碾/_81%їяAݠ֯^`/6*w:MЉ=u㭆7,<2n ;okݴ?ܼnf]@nۑ6bksm-mon)oc=v̰YdFc:L3QVcce ϛ? ?Nx ,O@ 5}\$7mdx6V-98{m3p8gq& f{PG8v`On0@qLDn &</,"W bnpx6dx mef'@< };~"8||~dI?_E?Nm,x` f`5XXj$ƣ 18 Nv'''B "rj a;V: /G#*?_&( ah*#Qy B_@xK݇Dp@0'`;`@PFY?_B A. 'p"O'33`6@\N8ym,y x\x^ ]V3HX;2F@y& 3@`y<;?G@v.x]?rDEFJAM.MO ~|funLsT+ bassdrum3< gtpopsnare 8RH+ղ6g*PANFLUT/,TRINGSs0xZp dxtom89DIGIHAR1DGp<$GP 3B<O   p&  <&M.K.i[yso{-rx/ye <wdxK7awdw_aYlHJ6lx[ϻ܊Cs]xGfW#cw<; m# xސG3#`='w^ecxUQo^(7B,f^/rxS3C/c})xS)xwx І?RK,G鮦x#+x&cz_Mn:<Yb(wR?%e^ W[}xrˏ _^ eyaKGjeCux]xxTG/e~,G`;;x.ʡC\lj<2ڑ`p[h >u!֣Xn ^ 冕;x_wQP,q ⮹lSc?w!b0%Y?,wYb0w%&?l< Ϫ;WYxO4':dxx'XMSÆ[R8 7GJO&e7,mH' z,V0GmPȝr rx;0W{QiXx#( $ r*u: 0K~x4L S] Dx -c%g AWsS"xǂYb 2xe ` LFmǂ؍ 9<Y-:ׁb =x_XO$xa3mhX<b3a"<ׁaWOm0 #-Vm] R< ? -u>=d=@u=͗dz'a{F>+ỖP-;rfcgaH*켔.׮Z/byhULKH:'ݳ..HqKh\WRJ=(ۯ/>+R[,|nXIFC9) จ+^y|p]NE?>7&š| >hp};vbTQOI?1Ա1^}rZA?{۽=p%TuziR~6%㿟<1Dgzp=HK;74, ĥ s_t}kR?753*ȮB_r||q^J;/BB^q|~xdK:2%GͶ?Zjw~{n[K H<& ŭ=VahnpgVD5680d"BRY_egbVG9c$8®0Kbhf^SHA4!|?ҽ=OUV[aaXKBM7ʶ7@>@FKLJy!o:>,Rɷ/H)IKOPLFA?@:( ˹5DC;?CC =:0;9439AHIGEO0PbΤ(>B<54WYJKKMLA+ ʵ);:1#+5<@C6^_9E@2&$-9@DGF>.м%oW:B:,"!(2=EHF<'  ͹ ?t=;/    %" &[0)? -3-{M_ξ "&42&ezw^"  /Ѝ! V o$-,.%*" ##.,OVB #-Ϩ-275-(#ù$/2{2( ܇?Yܺ/0-X!*00+$+S'_*")j9  n&"~Vm,-+&x>W-%ݕ"'# !& p_4  &+02.$?x(0X  %7==8,[sr0!+{3)7-%g%5orW<2 <&?#BB:/Y·!,8@B=.v" Q)$&;6*j=`ü9&2981)Ǻ (-,'$(o w5(ʿ )-8;5¶~S*'&)-3;?:0$ɻk(.,q#@9. i{O˻&--9?GLH>3%{..Ի27, Ͻ9w _7>A=1"zͬμ)O241@@A;1$ ò#$Hw),?0;X !/=czL>4'aɣ!+*oP35=@;0#̀5? '-2556;BEA8-"ͻ&*v7Œ91oŶ )./o159==6k㸭$;0kl3+"{{)8>bB>6.u9縬y_//395.$ ˹' '*/4662,$%ν +000269;;:5-vp211w7:z9 Ķ|(&'.G܀BFE0!°`"#q4CA:0'fµA?8ul÷`a>'6<3(?_Ƿ  Y-6=DGB8,˽?"(08?! ĵ]w(18>?9." {Ź{#a9' $+;8.# ̿>w}Y/A<2% {zǺ-&?%/6:<92) ź !+3784-¿qĺ e{7&.588ȼwrϫ!-7=A@<6/%h)28:972+%»Bv354& t-2_(,'!Q>yY~,/]!" i9s%,266|;]d(/0%/z.j cq&0/-#V;s3431 u"',0t޾ T,*N"Ou +r'>  '+,ib>ѱw ys.'#0vK#DYI0&**%Hr-̱^%Em= ӷn(,C"&)Ӿ1]_ .)"!(--'\mc\'-)>4. :1ߧ粰 *Z;i+Ղ\ ;+&;486-o#b{+4- hr#%+1iԘ խ;.kC (*>.%*044/#>[=-n#1* +Ͳ|? &=I",5970" sYM130'{=9S!()1651', +'""(/45/"@&$ ނh%.43, ,m")-,$.V $(('&-33-"G>wSZ{13$! %,10)֑{ O &.31()$@f%%+240&Kx= =b)02, 䙺 #(*++,/375+ rc؀z#+/.&왍")*-23/% } P '),-'_%(_z&J̏,X'*,*"V+WG&''$|w.}u 弇X3mu9o3!摸vC , ZV@'!"# {a6Yg+\Guaξ"! S,,B nn8у #%b}>˧B7  ?.dlczф<6.#<.olS,5O,".675/'vjo+ &0540'ߒGit$-22.' Nn"#e943 r> ϑmK $+.b =j$.552-&폒پWG}vS"+0!oX eVY>Ǿ &/33/) %(020,& <}W~ *131+w*'}}^!*/0.(!~Q܈%-11-܏{%_G&,/.)$%,-* (-.*#8Ȕ%cU|c'*)% ?6vK %*-$V z9">m*[xd  &)($g[#'((%Cż $()'##=$z%@40֎1$-Loqt^ϯ $&+KG\vo3C̛dޣ>PP..ww o#"q s,V6#%ئ|sxL!%?2q}o  -/W !#!U\.+⼻>.|8pG;^n  Q 9.A_ d~ <`b z :X, .Dww wyWp6*1 Teu"ƱTX p< 8aEŃ+V|nFD, Xlx:Ky>@ ؜K&GA Iɝ0v=L3uX-:xȸd 9C.! umoT>:Έ xݎȀ{~C0Y*ٌbX,6K:asp6}( .k;YƸ"Q 0~z`ܧ#0si o<[az{V&=tw!' i֧ƴ}eMU]WW;5xUg%C \Zȴq.KUhaG7o"EV`uf= ep/Z`Ћ 4f&j;0Xh "Yqkn'ZjÒ8 fe 04m n,)Rt>Rzr KC6vl2  5Ӱ8XAI`qlۓ@õVc%*y[m d5hp&6iO hY ]Xt> w l:(B0D#(GYX0\#`[-j:<!ݎ1xp$@sdK"*28=77@b,(. ps=,-& Tf]V[$<,l +pu+ y ᝠ&brl#bh_YSۖa~ e&yqi Bay3εuҳb=@FiIiQL :6йq9^haZUPKFBg]&9qĦ [rX³ovf-% \ĭק1:˞$EI.Rfoq 4']T\\ڻ ˺k/7ּimޒrA0ҿ$"E >Ygd]ID?ϑYހ:AkA'-]־ #L*g13տ E{7q_ 8TcdTNJEA=]` ɶf!.h Vɸu7*qY?$_b)DYcbma.iV;ȶ*5f `Ÿ,xYuq  0HZca[VQMHYk8X]5ۢ)ܔŷ&4"CvYp(fg/#G GT_b^Y#Q5M-9M̾*8@GrV`xW=nSú`w׽~ꅺ -AQ^a^6*B?;Tm)/-:!4@F? L8 bwf e}e_fE$7HV_`\Wj=FB[&9M*ȹ,@JLG@; Z,'pһ3DHGvG"4D`]yOKX+brW4ʷ (?NQLE?;̫_ٸseï2?3A (7GS\^[ :glfϾ=4ޙ/BPwgE5\ܺ=!0@NW\\XSP?>;15%uqCa6GR?QoKDf8DZݙP}¯׮Xx (8FPX[ZHC9j\m3fE+ȴY:2DOTSOIC?-)m+W;ap\ +8EOVYYU7462e$+-vñ';HHB=72.#fr %3@JRXXVg+qLS; z5I%ȵ9*;FMOPNKE@wSwOB s{Y~c AKRVWTQNDAq0xPkw$4AHEIE0&#pˌc? %2=GߛpSUTB?cM5{X.3Tf b(5?EUA:50wJuyÝ})4?GNRSRO>k%.:|*5Ǹ%1:AEHJIGC3/*&.g0(ǿ}:Ϛ(4>FLPQPM >fEy3V EjLeѼ];$/8=ADGHHA<ï)*\8?.k%= "-7@GLNNLJ3E`12׺g7 7̿1'06;?BEFFED@<72-)%!/žX,+>+4IKLKI#] ^ml} ǻ y,37GyA>X/+Y,gG?.c~  +53)*GIJHFD75rrQqɾX$+!#;BqX=:6hWz7sѹDy&/7=CFGGECWVJ-& Ƽ ˗ &+/:=@94/*ؑ Ŵüxd$-5;@BDCB_ $YpWn2S3Gn %)-157:<]9,''_8&.5:>@A@?>#<#Y*E 7»  $(Ùp<:851-(#InQſO%-38<=>>O+ (Xl1Ys\-AW,9F}X92%ŎΘ7X½"*058:;;*Ol+!73(G#4fJ<[b49::9--3.*hj=fĿn#).367877{#eP4afP =1hGľ_!56;.)$+=|pW7&1%333]3ńG1þUw(5665/+&!G_3!E՜ʹfggڀ5  %**=Մ!hEڽ1j^at.344420-* f:n "&0#Xܣ¿O| Qd&-2221.W%&-d|k %^.%|"_(HÑq߯ey#apmf11#܋393دf`rG !\q.KHa`ǖy=m WuYE*,./00(ɵ_)7!?J =Δ/a9-#XNX 0noe,&Pin ,ՌѝGҽ#˜–P))(gb_ iEf6w+bW$uV} #;,$pY.ٱux oza$ x&'.3ݴy\W qX[ RՅ U!##$#"~X nxj? ,3¢h?Ez+vE/NW> ov1 XzGj !""! W y^H >Y왻"PW27WEAAE??;7687;97E=<;3>@;?<8DH@=NHDGPFIIEFF=;CB883/16$jmM  ci_g    ,uu[uЄK4ărnr   >q    u>  wy^'þOˋ¿-7',10178=>7BF>:HKGIGMSTUQPY]YTJKJOODCA/@<:600~2#$gG3\evʹ= %%/)q3:?;JE=CECD@8;?7030,2-'|*11,31$//0-+"'&#uL)*(#(+P)(*&%&$!4/  | ۮ   9)! [X Ӗ.k 7LV< b½uW'(''$&|+',/,-0/1555989;=<88:36:6762577214354123-/.+-)&,'#+ # L vU*8] *W5QW BI64p C3-blm 8V!qQ # "!b[~,y0 Y^\:NP<%~< TY?1" ^Kqq/Be:Bg1X}xEKgt|}Jrp&ѱ Ѻ0HWTiFd5RrT)X~`-Yj&9V8 Ų E!>S71Zpx>8gz$AXD[D ƿ-IYhsdoRn}b*otbi0%0٢O !AQ]R_nw`t|}C5LYKV'̼X'ɁƸ,ANXFH^SaldRR`j\dmW6:LB0 !4?:J.BU]cimPYd:IGO+9K<)$]dķWqկWh#0:#9/5GQW]beh]`fK?A7$4920+,!*'$" ("+2-$/#(@ Iϙw ei ^"(,"$)'-'#") &h} ԂqF9X &*-/('"#%)J X\ =B$%!E8]>I2!P 0I@ " F%[W ǎo    c2(‚Rv!K OCYJE& a)"fxB ZK  Mf/      ʋgj1 W G"  H8lc"i^V >:ŘyB?   'zH  f'Rƈ p18(܂_kD BBE  ӂi@D >B떸D%"4M`Qr C$ZI'AuQ*CLN'Nb@!: F,\Y5că@-5i g**gl NU38D(I@@?[ ݚ7dSl2[P`J:u5/?0C1wo^̑3-& [Z9#c d W _^jK9] /u ɓ礏4x   >[gH\&"q ST4 QT wQ۞ $D3Ht :A; $+R>ק$XhL ΈFϗ'HF 6* am{/`H-tb C l  P6   o tn/mEaCXuJC` ;KN  )R 15  b~ PDu2BE  .D:Y >"콞¿eA`YsBapj꼭7=bpk[=齝Dc:ƻFj纝ptGdT9wއiR7亜ch{C5丙JfqhQ6ꜰ Hflෛ"JepeM1 ߵ$KeNܴ&dL0 v&LgpdK.ڴtMfobI,ْ'N{H*OfnߺmM+ֲ,Ogm`G(Օ-P^D'Ұ-߀m]C%ү/k\B$Я{fkZA$0Qfjx!ϖReiY? ˗3RfiW=̮C߁2SW;򚘩TfhV<7 6UffS9ʭt7TeeS/Ǚ8TdeR8{9cP5ƫM;;UedO4ĪbN3w =a.?Wd_w>Wc^H- A]G+ 侧;BW( Ὠ7ob[ ྦvaZB( CXaX@&޼!DX`Wݻ$E~V>#ۺ$FY`U{ۻ&FX_T; ٹ(FW]Ru(H8=+Q7ع(]P=׸*IY\O6ַ*GX\M2ָ+GWZL3Զ++W .JXZJ/y3&b .IXYI/Ѷ;S /WG.߹ 0Wϵ0JWVD*~o2KWUB'̳k.3LWT@% δ4LUS?# = R=!Ȳ6MVQ:ɳ ɜ7O;DZUM7r8MUNŲ9NTL5ñ) ʿ"~Zɾ#6?@='|??:$탽8@?9"UnZU8?#t;><6 (9?<5(8=0{ٙ9<,;=FbՃ:<?/O -:w[. .:94-;92*!82(;:7n(w 탍$19& %$ w6[:wsl% :u7"93wE'381* 0"ڛ91'*47.[,-$CCw7,#-66+!"M;/˕o( %/&Zg% ڼ173$ \`;)1,8Ϋa7Sa7[4)26/ |-2,}_œ-,G7A rFx/w)Y) "$' o3% #042%zn&2MǗ$&[A߅:0!t/i)34 +4w; , ҧ-54U4+c2)8=7053) 1' "352&wޛ%"dr62$ۿ^a&1" ʿ)'560" ()/! )65. *-86.' .,L 5+Y3 1;41:5*| 3:G 4(,5;3& #oߐ$ $7$ &3# Yg3'o(9=3";W*,\=1Y=0 -==w#jnp/]%0=;,v~\&1- !)[Z=, "?;Ԗx#+5i&-6?:(Z>yiV'/9@9& ƾ)09A9$ƿw,29?Y-3;xT!.]9ϳp1?3ȃ;!27=@3o$58{b%6;?>0 '7:/ )9<>w 3? +:<,;-:@ ¿f3>??9'5AA@8oN6ABA7#ʾ6Q7BB@7"Ƽ 5:DC@Ż!/η׷)CI`;ջ *CJE=*Ӽ /EID;)ѹ;( Ѹ;ܙ1HKE:hͷIJD8# Ͷw;4KLD7!˴4ILE7ɵ8KKD67W49Lۗ+3Ƴ:Műo;LC2|;x.° #>^MB.ܿ $\|MA,ݽ8=w %B ۽(88* XH;C 'L@݈;(ESL?(,ɝ]K>ֺ)E/p&C׻=K:qvֻ)DQM%ؼ'C.|=ؾ{ԃ(BPJ=ֽ&AV^#ڻ&@OJp'@N]%?NH:!ٿuMó%=o{"Ŵ$;LI:#ųhu9KH;%ȶ"7H %ʸ>3GG;&͹w1EH<(0CH=)нM-AG| +?G>,@¸)B6#> ľd~):B9&Ƽ' '7B:ɾ '5@=-lGKʿ%4Ajo9€%2@?1?@2#0?A4{O-=,L$.%h{}.<Ů >2cs"iO0sm ho <0!. 0y]5ML:>6i+;?/C;>-9>+왔DZ;>,<<*|ֿ><)G&ד56-=;'!.=8#ߑs =7" ~V0>6 GI-2=2"2<0G3<-&59*Y_(99'(86# 72 ty-8/7- -7-3Y $15(%33$~S3[30! X-Չz{/4)#/0$z, ~ 1*M"-/%'0-! 0)!,.$=&/+ =u )/' Vz+,#O1W#,)u%\g )*! *&fWֶN)5#& r $e{w $] #a {     w] ~nSC= W䗕<x=$.S| e4&< wJZܹn %  o.}=!= .y=˲  # ǰ{Cv~&lO$(!"C! %+%w;"'-'T@"(/-ς- 01. "*21;ߋA+25%",45) +49+ +391ǿA ,5:4 +)9$ )4;;+ 5<<0?;$4<@6Ŀ!1;A<& 1.ľ:AB4ƿ'7@C<#Ⱦ#6AD?,󿻾 1@FD5»,=EF=!Ļ:El/+ ǻ 4DIG7Ͼ/@HE<&(;HJD2Ǹ !5F μ.@JJC,)=KMf>B!j.OL@&.Ae/F3¸ ';K<ɶÊ3MC*ϼ.B³4 ǴI5IPLB͸/FPMD1C)@ONF6$$=M;ƴ6JMG<"˶3HOI?&Ϻ/DN+ӽ+A}A. '>L1õ%:B3Ʒw #8IIɸޟ| "6GHB5˺! 3CGA6>~)@ξrĮ1BFA5w;@E?43) 1AD>3Ϳ&2@C=1 !2?A;/$5A@9-_1%6A?8) ʿ&6>< ǿoǡ9?:3$ſ+:?92 _v-;0[r/=<-j 0<9Kk\"3=6.% (7=4+o)8<1(-:7,%Y, !0;5( b1:1%9Я669,Gu, e"Dڐ\'25**44$ )#.5.02& 2nK'a,3u&. u/ ':< Go/{Wn!/:o7VB8 ! n))׃|52 ײ -7)1 "14znZT/_ɮG&374% håq&' Wڻ .y%497+ ,783!M#187- L'85& ,670]K$076+a (473% f+56/"E5+A}3& 095-o 63*aaN 6<)461!ߐ +45/!4,-/< $o151& .50";.8#,3c#-5$-b*~d%M1N &<.p y]X&* @'.3/'nw/%d ~&&'0(=TоKc<X/1)Qx;SbpC11*%<+ ,3,T4 2.$>C*2/$Ax(-31'? &-13,!4/#w).42'`3) -26.!*/40$ (.20 "+0V0+,<0-"',.%?j,B- !}$*-&~&*)$& '+'*" (*%cZ9$Z?z&("˿P %%x !#|YX/-j "  Aj   G.m }e WzMW`vd v멼 o FlrM S`͖`SfYmպ4zkAK)69V.t0 :-Bӷ g &Ue02f  tx  nLZ"2u: ' E4;E(!a}!{;Gպ3h= `nGZ #=\鸛ɝ )Wh ')28 Sq )mzK  -lA ܶE{ugl ! HnڹCʠ W0 勰5 Zz 2ۋ+! G W5(W [ 2<7<^`ycL}\Ym ØMctcy+c: mwW*pXrc8SERu ˕Uh79\wJdAnvS-i@Nc_2v' *w-<R #()(&gku"W -i\.)!/3%ƻ}t؍!.3(Ǿ { v%10 ¾ T&2/xú W^0-þvco.  , ")%O ksZ(,$%%μ_!CG-+ n#)%iwCD "x{~Q|  &* a,=w'##' e&"  %' ̽62 $'"-W,p_')${ǺKC #"x$&#CkU˼3i"%  & "d:O !*)!K  '/,!  =-(W_?Y*/" -30,% φ{*8&Ľ6<&4><. T3 $+386.Kfo)$pPw"}1??3&S@D0;<6);e s#3::f8Ҽ '8=! l6A?4%"!/5*!1;>8,_ϙ~Ȼ )5;=6*3?Ƚ )9@>[ty ƹ-ƺ?A:'O ӿ3s .?F?7#rO .|W "2>CD9" ƴ ):@B?1!^ó+=GF2\]  ^) ɸ?#%/g.a @IUXL3M )7AINPPI4?O!0CNQRQA% ѺNJ &GOUQ?Ӷ  '5CH=M@$ƭ 9#6E ]C2 ڿ ǿ{3>IMI׹.~  %=@FH<)Ȱ z "*27:?E>1&پ (-05;A ӷ.>*..1<>6'ıQ",366!ؾ&4614752/' ˵{ c.78454."ڽn_%g$3??:894)%ɶ -=A=<;6.& .g #4ACB?90({κ,=D?6-#ɷk^K  DF=2$õ  $9EGIH;+ ̿N?!&.#3˿ߤ;(@HB<4$ ShGA8({¾  0DE?5"  Q䶿?:E+]b%>HC4ʾZ s 0# &w 2@@6%(&1AB3˽!+(  .<=/>+2-"#38-.75' !5;,q #167+ww˟ "25v74'4"/*˛3;:5$ ^&+$ # 6=;5(}G$ *?y\2( ! ջ+,A1& 5.CDSx xћ>\V191$ U _|5GF:.! 9KF9-?R&:, ƽ k$)9=3& $ʿg *).64.)*}C?I099/! #ƾ~q!")6=6" &&οr (&`5>-97 )'Ӿ&(2:2 !# zGt >̶} #$4C8?!>iʻx{6C4  [ȹ *+,8r!Ǿ"1<{  N%Ż+-3S4 . Ǽ!$(-/5=?3 -ſǻ&'%,482 /Ƽ($$-6@EB5 ۻǶ}K,7E3  Ž]B#&/>GE>. 0SI''&.BK,  ]̻п%%(6GIB8%9Ͽ %&)1)$w!wo#倉y<:0$ .|}ցh *06<5)ôbrV%./6;1"f ',/79- 0+ !'*-32& D8_ &(s C[b,* a Kώ{ ")+*+.)ʟԯ#,10+Df "K-.352*~(/34431*+_Ou$19=<7/ ?g; +6::=?13co=9~v2 2@FE@4" ֺ(7?@@=2" .{);BA:3,!^~U *8<<95+Ǿ_ϕ>.65004. ڿ ni8ZLk,0(ϼ=z -.,+  ~W",)%(--%)#*$%3$  "$uO!"x?= ni * ?b Z $ ^c~! !i33W1 -=./!$w< _K^ o( l 9rk'# Q~#~R _%Yz  # `(   }Z[ 9Cu.:[ p b_"~a%% w^&$˟E   jܠ   ?Y<"'  WAe!#'$ d=EZ ~B*+MJK"%!n~ `  ä  | #"ɿg!+X6\eW/K! ʿ+{" mǃy;&>#ҿ !% !o  N*u `Z(-f+  b f%'"., 6x=>%-&~.. )/& ' !0+|%05% /%q&06( (4. ο$5# z0 )--" ' %+( Ⱥ12-!   '1,,13) &10+#0,-( yH{*2)º).+  7/2#ĸ(+)* _~ 23 ~Ž%&&/ NO#ko$! c#-$W|ҿ$ z2$' j~ wP#'8=!ASD!   !)%//*m %.)Ķ~ {#!*3("!! "&z=+3Sw %6;0% )791(!K .<;2(a 2>=5*_D?Ƚ{2?/(ú' s^!294+ »{.+"39983.!Ȼ   !/49>8* ȼ ې +r:-ǿ lm#*4=?8+ƿ  "2AE<, /%4>,Ǿף1 %3% ?'ī % 9w5>1!ؼ=.3&  '?c59/ ˭ /#1Co8(ܿ, $6AC=5'ε 0-&A:2$x]-1) ?8.ԶbY",.$$.;E&Ů"$'/+  )1=C@6 д$y!"%/' #1;ADA/Ĩ ()%?,9BG@'һ' $$8;B<¯'O&%$ '@*غ */0( )(!&1:D?%ű+?0)"!'#%6`?;@5ݾ!-0G#*&'-4:;,з#,34.%& u(2752( ȴ)485-$--&")3640*5;8' gxW,/,-*<ͮ[?HiRo%WwR߯R/K ۲ KN4xmVS^U9/ ⼑ 0Po teR?,ѽ!7Nat}mXC+й<2F\m~||kXG2Dz 3GZlY|xhWG3 κ+GOU[`dfggfda]XRKD;3 DJOSVXZ[ZYWSOKE?91)ľy &-5ADFHIIHFDB>;71,'!O  "',048;=?@ABA@?/!+'"  ! "&*-1367@_:990.* ן]@"+-/012211/-+)&"$xt ^/()+,-...-,*)'%# $A %l>j jX(/ %&'''&%$"  .A_YVݟ@=V* A & A!"###"$V H'fS A _`IH<3 !!  x!Jbc,%`BpF 2!`M+!2w;@Cd+1qIcXWh czUCV;nڏ$kTdtHhę 5&2$Ī@a-V'ri?%;j1BhMM1 C6U ŀM`jV(@xP5t`b`!rC"• %xX NP, 7# Y­&ҩ!ʴ>PfH pC7 nn$1j8ub+EHRf``+̈́*[F`a)_tMJ$^,!KD91L&1QE^6&"{ -'ZPfU(IQUpp]46g4K QQ kx + R Y8\iq9HBꆖfG`֜-1G:\pWÑ4,Q}] paO]bFE$g2K d FF$ΌˍΌQo 5# sh L5345iXV@tlt\PF&[0 i 84ܓNn@08!iŸTXsUsvp%qLtۀ@:84Ӣ`R"Q(`)N0ûD`퇖0 i  ria܉H}E#"|/Ti\ETZs A >0fDˬ ) Y(mhM2h `:aL>4`<;^<Z,8>;\<2m1OQ.<1@<B81|Bx lGR^ @k?pnb\:%߲'a{<}F>+Ỗ=kyP ~rfcgaH*켔)Js.%YOMH>.׮A֎/bbyhULKH:'ݳHq h\WRJ=(ۯOR< |nXIFC9) .+^y|p]NE?>7&š! >h'NvbTQOI?1Աs1^}rZA۽\%TuziRߏ6%㿟#k&DgzK;74, ĥ\_t};kR?753*ȮCB_r||q^J;臤н?oB^q|~xdK:2Ͷ?Zjw~{n[KmGH<& ŭ=VahnpgVD9680"BRY_egbVG>9>N>®0Kbhf^SHA4!ҽ=OUV[aaXKBj7H[ʶ7@>@FKLJ:>&ɷ/HKIKOPLFA?@:( ˹5DC;?CC=:0;9439AHIGE0Τ(>B<54TJKKMLA+ ʵ);: c#+5<@C6ԫ񮨦9E@2&$-9@DGF>.м[9:B:,"!(2=EHF<' ¶K^q /@?$+19?<{˼ ,u$".579:0.·4<6'%.9-+ĸ46-K!.64Ƹ (75) ,7<=5ɹ '1-{?q '29;8,ͽ %/**470õ093# +;EC5 ² 'K%*3/j ˿`ƣ)1)_ .4+ %&!, -.  $/- "$ &r#)1:2 ,W&(Y(●? (.$?ښ1d| *& .+# #!(0-/7/(+#,"#  //! $% 57  |?&53$W *54# "! /ܒi<ѿ  &u  ߮)26,˼`S *20$'DZ|  !0;C@0  ̹i3  %4:6) ͹ !=;/    %" 0)Ưz~-3-SO!2ξ "&~2&Gh-ޯ+x"  t#]!˃U ǧk>˳%$-%k%*" g#.U  #->;-275-(#lù$/272( phܺ=!/0-!*00+$':*")H&"~K317-+&;ϕefn-%}{"'# & ;n4  &+02.$k(2{i~009V =%7==8,!+^w7-%%5ܕ/<2 ݾ:&;Ŵ#BB:/'l,/·!,8@B=.&# ,=5'|+#)(!>." {])$&|X;6*oyüms&2981)Ǻ (-,'$(-5(ʿ )1-8;5=x¶ߔ*'&)-3;?:0$ɻ(.,\H@9. ^˻&--Z9?GLH>3%_㫧.|K27, Ͻ ^k>7>A=1"μ)24P@A;1$ ò#$E),-0;5}q !/ޓ>4'Xɣ!+ʛ;35=@;0#  Oﴥ '-2556;BEA8-"ͻ&*xd91Ŷ )./.~159==6;[㸭$N0Z.3+"䷴)x9^8XB>6.]NO縬^W// 95.$ ˹'}'*/4662,$ν +000269;;:5-]#2117:o Ķ),(&'. ,GBFE0!;sQ°"#w4CA:0'x?;µ|!A?8n!÷m6<3(XǷ y -6=DGB8,˽*"(08?! ĵW|(18>?9." |rŹz#=X^9' pG$+;8.# ̿'χVKA<2% ǺI^%/6:<92) gź /!+3784-\Aĺ7p7&.588ȼ]!-7=A@<6/%)28:972+%»2%354& 1}-2,'!{g_,/H{&"Nzn%,266d;1NF(/0ރ%Қ  K&0/-#l13431x"',0.t=7U4 ө,*"e+7S +\'ڂA! w3'+,u ^\ˬ'#צּSr130'oNT9!()1651'K +'""(/45/"#">=o&$ 0%.43, x:k˕")-,$ $(('ϝ&-33-"L$! %,10){ &.31(I=C%%+240&R%߳x X}F)02, nO #(*++,/375+ \<k^#gF?+/.&cg")*-23/% CfzT; '),-'.z%(E&#o{'*,*"ܻ-J/&''$˯$n]f o!V;qe#[bz[|u!wƀn K,o 떫- !"# PYXs"! ox =["tx )#%OИu  =(<0e-5!pPqI ""  Xw:v $#?ml‡ x ͎u?  ## ?591e[YcŨ}gB,AZ=vRǗZā î ۳g y&>f&뢹   %}=Wa E ! sm t%$ PMq "%'.{G !%'nT}  H  ! ue[ ݘ$'&!qpKܬ}"$$05n J. $&'%!~n=!&(($ w !&*KCSzJud[x#),,*% w.,%c,`'-3^'1',-+% ֞-̻k`$,/G  ކ`  ,364.$0-? !,W/(p!y=yv U72*!y]q~r'1661) 򿹫ů- /:><6.#ݧ۟M,5ַt=I]օ".675/'-Y &0540]{;d~h|$-22.' \)|-3Ca43l!G Ϸ2>m $+.9t S,]Gw$.552-&}wN"+0! d' &/33/)߿ao(020,&; u *131+珪x|>!*/0.(!_z_=xw#%-11-s&,/.)$.%,-*ay~N+> (-.*# swXe'*)% ͡ %*-,(IV ܐz":YB  &)($Vq?F#'((%Cz $()'#G$R3i`<;b$Z $&\+KoGEm]H2z# CP {`#"9b Xbz#%$2;ޮo !%%""-  Wjan!#!꫟q=%y}['.wQ # $4 {vyHt kC GK ==eȀE |}jչbT  =W?63xSY.,Xct9b2!c eC]>"<Cҝ0؜K&GA =IɝL0v-3uxXd:ȸ [b K ,m/>ص~UX̠+d  9Yum`"Qr¹" 泽rK9퉃 O~Q`0A[X  04gc#=1wC<'t iC rUMC,fK X! qj[>"w.ǸUxc< [G<=:˸|1v_X;l| GMF@e9kV #\\@E{-'DǨX?V[GuXU0m|q Is8O0Zvهn=,"}R %`W=Cem|X4 ĜGp a3]1AKTο'!ta [*1 {Թ fGt{#}0( | 8[y,N >zZ/ (#XX'dʃ,B  ChA`A 3m6@$93^C yf\GB L 2 .|%, iiB6=LC&adq9] d A! l SV 7;@  * B    J** [\]^_`abcdefghijklmnopqrstuvwxyz{|}a:\a:\a:\#K  yrMSA 141 2yrISOUND 2_1 vyr]0PLAY  yrnALCPLAY  yrCPX  OzrNT_COMP  mzrKAOSDESK  zr1AUTO 501 b{rICE 240 m{rJAM3  u{rPCHROME DOC /a RPCHROME3PRG q L`J`Pack-IceIKIM.<$a&NK kA -Jgrѓg f``GP$]*$**ԓ**ԓ(p AC$QC&LN&&QvHCj&l",p&&QjNH Na0aZd"raTdCv !anH@@Vҩ%QnfLNup%QNu> f.%߇`>.-%Wއ`,އgNu> f.%߇Nu.-%WއNurއgAQNuCtaTxr1 Hka1 AgCrtaTr1 HaBq `rptadpt@aBC@!!Q`    ` 6l݇*o -$Э+PD// Q{JyBP=Hl&qfBgNAzp@x4w{wU33ss77w FQl8ê e+ $|#lO u&JR`H"݁)D.ۍ^DHc"l,1T #v0:3,sCDũ0$%,:F (g@G& 6MMlQ/*RJgY  N=룕]S"`aNVtRm3)lgGaBhȢpofYm6H ]SN~$-Bs?NTlph 5tZ ڳ NI /T?PNN0rB V d Eg00WR7 8*gBH{8tgRD)fL<e 3+J`DLNs>u%@1{qP`ࠠ@@@]w``7Cptv68r *F+HE2HCHD22QR@|f@ t?xj- 3rAf^Q*@1Fr\.t`.Pmƺ U2DfC$U0lTf(p#%RQJy`faW ĩ{&{Cwa{Cwa`3Cwa3&gR@3&gR&gR>H `NuA&"!e&"zZ2:046AA_BJ29 Im7OA#"Ed&|0ly;@Ǒx1 @xUL$$$$L<őřCNu&Fx<*7Tڰ.YB`DE휾+GLu JM.`VGa212 RU2v6CRz.\7020;EMAPP8/x,LGI= 9^eW窥f;Qc XSBV, 'SI8JOYzlItĖoEO2U.5rbuJHU !4o[(]/[)l o+/`[.FWrm []t0[INS/CLR]V/n'K0RMA֩/mf0TARGGbP D1uspo1U 2فk1F)dq/ Gm7ETG$P'--%HV`{ :OBARSKҒK̒I{W,MAHEY+K,aTUEIDMd zST-CNX.C.BY%QUOXIF Yy W/qAN BUY'H.M. 23TRAnJ (HI1ܝTH)蓳 0'AD/WTy;ERb!ARU(H)FMxLE. Il ETECANCE24D핡7NG ! i\FF S$ yzͅq GX - +PAA\:-`  = BCK ^{XhED1-234V,%eO%00YkZflMDU5$z7SES DI K0 Tx INPUTS GI : #M@LORvjYM2149PROSOUNDMV 16AMIGA1STREPLAYOFFON6COPY TO __>d`4<&"zGf$M$$Kr„?sn@6!̠^ÜC1.H@YQ g^J!0+-!ABCDEW;Nf0II.xhvV >Pr^k3<$?9q\%'7p1qu75j-Suvy3y*EAg]F,q_4^9}VT>b j(nd5N ɗlJڗzm-]6ڶ]MjBʏ"^ہ`> ~p`xġb]4700Jێ$XRkl6nd:02 ~S*&6z 66JtjV=s%2N.~x)4AՇ$I2A0_f: ZǗ,`\T b>o@ V6ZR sE֚dC %r#\?`33Ψ9wg3v]30bZ2lt\16X0D2ΖCleFl/D]<<@9D{R֋Nx(DKmo̝T2f(:ٹYNin]Dn\`e CgfauRs z6 $[jY|ṰmRD۾~y  TpJhhlJt0Tmd6Qlp.RfY*"&~>Sq.+2xm1234567890! AZERTYUIOP[]QSDFG KLM\-#WXCVBN?.:=_"HJj4I&HG]囝$>2^H˱nm v ۖ0LvI7nKVZM@ R2RAѱY[[<|J1mJt0jSR@FNPj V^&f f0)WxF<ؘȀV9J^/f$[QlG( ؊b E-[l7(jQNhb2 -(bP8L "\Gd Pj p2<( Pj A(08@HA5PX`Pj hpx3A5֮wCc #Vcn*3B嬚JHz^/qFf qEGv_07G@sOZRC|t֮+CIr0LpBT&t<7+7ˏH HS&Q'O[wSE~5љ3hZ.Aܵ %!(1#bHrK$g4_<R+Z8L43,C-$X&P" ?Y 4ҾeHj Slm!kPJ>:BvfQkIy8QN Lf3n3"NSѡ)$<4bwy5\ TV|9X .; urc\z^,qڰ!/"?9$*_w9$S`׎뉬Hm]$T S@~3YV\700gH j10j3 ¡5^{Zo# ·+)4f_@0tf6Ɔ%@K0CU-|@.Ycj+,YboW6R@O<Wi(bi- T"l2~  `, 08Y6#Rx2"Jz|E>S/`2>2Ф6d&N/Ŝd6{.lva;'"R ͙lSA@JF4٦HB2M.eUj5g´|,d4+A@J@A"dO+u[Nq[3$β\#00 ##m:_,쒳EE Z i%#8ց@ `y 6fh:֍SO:|8_eC!?7F| LQQBgpC?n@33sn1PA BXbb? sE~hgPvOXӕƳ0!|Ao8,ņH{L1@$H" 0T)2,8Ut1[.@] nu!S1ɺSvK/34 Հ! !تy0#(D<4n`,˜ &JK30n`"3" >Rx1 `P|D羳Psx=x%Rp۶HVf:T(HU3a&T&,Jw LB@N?hɐFe.fb}093HHgF""P$TQ&I|sO`ޓ~qK[-E]ș|H8Bpo1W[?^~BxB#HqfH]#\tڿf°1uaf!y+k.+zc^@ hP_ SbNl{<X$Ĺ~"KXCb]#{qN J㋝dLVz=Ae5 H yF> HA;a V3Qnv Qc2#<љQl٠bⰲgWpzeM Rt@w $*-L0z8",RDEba#^4zzk.YH!ڃj/Fa*nqnoisje.iT~Rn]er E)l@ϋ>Zd\J@6lGR&>ݟ*VxUC2>e>>\b>sɓflI?zfݞ@@@٘bAAlU8ںѪ @@7AUl.A8}A%UV6@]`JY6> fF2 ١>b7 &).=~ʨ 3NJI3m'OZ@OF S>` { ~D1|0Lʠ(~fB`i[]2bOːT-y.x<&ghf76< S;lj|1'~^Yuxyg⟀pܶ7RokcFJ !6Ej6S@|Υѫ5%N ^|'2jB0-; 8$6[>^1Ϛ*& w 2֗*R')y蠈yගtJV2+PSPiv MDt} OxYV*4-o@42*M"R[nXPnShw6Y,)laiyφMMM$MM /NNOEN%GLL+V@FX K@`=LHܶ3X/^a?ΓPC $9P-AoP&45:BP--<\_P ,ŮQ}fgC hX, , |(\` @ iTjPjKM\nI-\]_H^ >C 6 a !u ͧDVe}hS@. |xqX(\:@Zo3Ulyd,Z6"3XSliUP_C6w 0@P`.hppppppp` ,Z`'7GW_z2wԻZ @0)B$Y(TL4f>^CD3Bdq:&#t^a5^SAA z00LK2>^RAY4sh~S~ZBY5B0K] pAXcت{(IH i )5]>Z u᜷t 5~f TUZno7@Fnh^n4B[Jk72,@N1cD#Eb@0IL&Fـ;'JEhIe&t :*MB H"G>nNK5~Ƶ.܎:r-<Txt^ p\s('EŐAAgV^XH@J@@wA^Ba]B5>Sh* R5g+B)xs Շ0:fYT"Lg:( 2:DZ\DcK*&oP/mfE668 VpcPq@6fp'MF R?;ҢQ @"L,FQLڢ gn74b\dl]Bh0" NaX A"ַDX 09fEX D.x- @z-ag7 6 l  -.--- =200nܬf&`: c4qBX)#'Fk-0Ć*W ^F@J@k:q=" ၗ0lBC#j A:6VI PV6YRbVH 'Brn{J4kVFB +j DGdX6BQ*HO˕Lg6,BvE~0&WV Jp@l"phSh#Ͷ,,i77s Sh +nj8@ 0$0LH&܅L)x.LH>AX/R~^De a:\*.*{O@ Of2p0@?zW΃3N&mQ#s;F<)׀=sj;P|uHRjXA\?u/ /ܾ@ g?R|?m\>NAXF٠GUj Xe1aT۫z9&@ Cjpt6"Kp!AsWPՒD03A02i2SCy 9y"NqR@|!_쫁@!f',.0, (jMI*RJRp*jCSa;Rd3fWP%BPXg6j ,s;?e=vϋ"Szv 1ARDgS~EA4JNUXRBhCQ\r]Jw`L2468(F? zE0<(gb̀r%L\ʗԴ4r~w&D& yf%&e~2<(C4ON(K4B DB$́TXfADC|]@xQouwٞ`?h}hw%fZfl`du>0j֭9?`B*cq-Y'N 9F L-Ez6pkQj&V/d68@. 9,ZJZvB4@$YV%X$PCSA 0K Qo1  rn~R-ةkup) YnWdLnBpz5u],P 5s0E9!qFX$8A豼rA2V"z(I|vmlp"j25Xaog@\C#%C@u<4҈@[2T*bR3~ !'ju M g,bf gCEg !MBc|jC'*_g ffiZ h #^Ȑ+b@H"<䒌IBپ`۰Ae3I J%K-]GG,;p }+K,pbgK&Ns}@xMP@B0 k"] kQP QZ * A *HZ!sAB70n  ƢfsiM" Eth Ehh E 3sZ;QZ Z;QLq q &V[D!s7M0n!4@W(y &\, fq `Bs o0nh^Z<&h FdmTWd*Eo֕:B1+&/"U!c "  keǝzn2 q eS׀_| ( FlP셗 HѰ , r 2j,X@XR! kpHb""LŰ [Vڭ ( y2[ TV>! zj8,KvB`K T7$: h쀵7ckJN.{``0{Jl`^P,՝C6-)@ZȠ* }Zڠ-Qd̳X>XB&,~vmVXZd\O@TELDW@Z<4- &#(  !`tKj6`І݃.Ѯ-W:,!_Z,؀XӖXX}zv3q$mri d`!c\XTXZPLHXEAXX=96X2/+h ^(f%jf![,,B8k6" eF]Y`uX`Xx(벲 Y `,|,0Ԇ 0XHʰـȓA,,qY9`рzJӆ`O, 'm"Ԣ+X7kZ , ؍9-yfM`eʰ~LX|{0eЫjvmtC mqpD-9nm `,kjhײZYgded5( ca 'n`^]d\Z-lPYX/VހZݠUTB [RQP OM׭DLKJ7zGa|FEN?{D;CA( $@? '>= <6;9F,876X54֢32w1l`j0b/.S-,8,+*K)Me(Q'W`&%g$r-\P#~",! TPp V@XLju -Q@#Y@Y`Pu/-[ P| Q ! je Ž3n > $ l&pa:,pT/X `,ְ k1ZɬeYҖjMk#YaYjk'P$}$a# `,V dD5<Y&Q*uXҦ ҆k^5 ޚf kS5dsYbڄ-ٻX&B 0kY6ջXZ5ҏ҈0XCY^еgj&kͅ OPrFI`k5U,`Y2NY9ƶŋY~?p &PPrlGZ9"kZ61k# 5aSX -ֱm XZ%AA$t0`YƵTk9`Zk04A,k*EN AXD֭Rki%hSYvt ,EAZ¨6ruAaPY֦`xh Y3p ! 4PYOk=YPr5-&*CX Y*Xr9\Tbk6њ(k Z;䑬9`z1*X4f') A,Z*AY%* 榠ej/55*9 AȑX2$ 9c+i+X5,i.A5E0AҘ&A9a|PrUư=A ZcjX:P8PacXm՟jI+b-OZ@U*à]YajjXxa/d1P˖WTIԂsMF*᱁Pr1TMd•AȀ,kKL9 ~~e9k~ uA} }U}T|Ϣj Av|ʃP{{Ɩ4={n!*C{UzZz@zLyyB%AyuA8xxXxx,ị A5wQT*wv䙬v_7vAu9`juIAut%Ӭ A5^8t8PjsĞPrpsR%*sjLUoPJrqAX qڵ AqkFU+*q"l5H$pj Aܸj qMP*onGX PjzW2nj Am4yPmfDm!TݼPjxV55lѰ5mL,Pj Ak A8juhj'jǨ5gPj AG(iTɃPjh{@x-`xkxxxxxxxxxxxxxxxx xxxxx xxx xxxx xx xxrNg.wN'-.-׀--w-MG-7,-,׀,,w,l' G,7,NnWW7nGnn Nm׀mmgMm G 7mGm'mMml׀ ll WLΜO.N.ۏNn[NΚ.ZΙnY.O™  )崮  rso8rnnQ< giKǁ,,ǃ ǔ%|2[׃K׃kM׃6x6x:xx0Ooo/ Zxxa;ۉl׀MW=]~'M6 Mh7<hMx ^˽zs3[IolbxsxOYg8,MV㨘\w6^asZMCAh ezc az|3^x[xZ^;2x!0xR~J<!_`9N<^a<^LWg7G  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~,pfl̾Dw^#4D J]7ﴇx:B:oxE# <% D/S%Y. x[wK]B72FeE LzdԝްFQl]i-mximQxmwp%i.u ("Zy8 EL56,Lh,Zk~^@hp Dxt x o`7J/ x' /~ xM$p^@7/ KoJx`GP$b\`l[ |sR2f ltb}r)T8|8T|$\HG0Hnv/ eLh<=ibbm:h91`C̷0PM`x<^mF @r>e Bv~nstf5SY`3n|\>`<~%!- =~fB5PӰf<`p8000`0 g`88D8lD8pjg3Uc/ްcd Rwp& NEO!b%QT0uP`x- C$HJ.kPk[p l⦝GۭnO}՘M OT=j8Z>|6lÑ,w>ԿX+Z/ve3ϻsMXxOX0ϟ/#t8ǃ o| LL#ߌwg{|kYZo>xtN>yeY̿-#ߒsG:|ͫn ֲ굽?p=xQ݇t><xǿB _Eɇ^~~y+Zj8~0GpVZF{>y_o<(R>켻u쿡!ހ~09Nȝ?id3oǽ?f0KLm< YOYÙ<}|(7l ?4  @{䖛GoBoo|Xر[K./`0 ʚߐp pf\@``1 =>+'GcW{x {;0<|gWڧ=e0fw>pvχ˒{cw'˴}XZ,%w07?%瀽<֎<+ : HgZ<%pp?a~ᚺqaXс~Sxv0 z>o>~Zv8x!2k{7pxs[݀p?`?0Z1 סwQ0zs~c?ֳ?BJjk[ہ!w:!Ҵn̽v㽑kѸw09703>||7m1YoLfM]x9֘gܸp&;uL|[ygf<g* ނ``{3<\ VzmO%W@p XLŸx$dQnr1\Zk01fd&Gy0 \ـiX <,n y|[Xvxg~crxs}63x/fvr'xNo<4ۏێOkpK{&>xgU~= 3濇x4\Dխ>w0Ώ 8p瀙wG|y9&cHDEDǁq|w0Y-oo?txY>p"7ݻ͛ﲲ-x f,Os|g 39&Uk/A !~0e>Uf͙2~wJu3p ߐw;.gfh[c!K"싋y3[.xgon^{9P^nf5CS-}`yZvua5xkMמo3nm8Jd Cpk{x;ؘ|w:uf>קtx9 2o=fnsd <H|nDַ ߞ|d r|܉k0n0bE\^? %g]ks @7WwXj?fW֡]9}6l>-'&a -lًwu[X >v~]i M~X eMqg=w7lݝฅa ޺x70|eϮͷf{|-#6 <;Kۇܟcv6εm^y>x|w0 杙ニwfZրQ;nf{e՛txqVu)֏~lt>?WOy`L'NfLrxŞjkZ| $\ߗ:ع 6lɓw#@yMu h<-gմx+/<ֽdjm<VGc(x)T>œWx+ 3{x/3 5k`>(`<օ~|N0&v)NW?X^c;vu/7hJۼ&AbnF$l? -[10 jJ֏oc系 az?;\=f\;{?wX O~˕ǀ{g=͍/gE-<<WݞV]fD҆8WT/%j*{:u3^=nc[ϳN. fUp@CZwg}A۲x%!~n /ௐ 1><3f8~ :_ ^xO|;_Zi8fe|vw|>{3kBZSH0 {`l f nϿu 4kY8nf?,|G] /a /繁pȻA??>VYW;r߁?'s)́wo0LD>uXI!7'ҏy}U.Yl>QeܳKXY/Y<.!<׀8x\K YE)z_>XǼ9{89ڃ.zx8Z+P`:CȐp ZJ&g0X!̀I}=\,+mh9x%Wp[EO|+s<]Xn<G׆;,}$ ?2b=`;$݌D˄۶%X?x%$(ذ;}3 |flxvߏ伶m 60~0v|>ƅ}88w`e;3pt0pyk{7폾D%όy>~D/b=9`Ӽ ~?yw0qK"w1ی _R[>'>6Ώ= %0[^Ҏ6 Kg8gشgl9"n^w7էw[ ڿJv🁛d D߳ L3oS<>o3B&|N{לУ6F 7XB7R>[*+@j1JxuxaPn& ?ybZu< 3J o߿onen~dqxoMn{uR-6?6qaz<bP<'͇3%ca:Ň'Ub`agf|͇+{>)|߀`6Z>qa- [xu߀l;aqa0K *qap66?wo`r}`0Ӭ|(|w7+tS uٰ&O3w[>yjPdS[Y@꣹T<2P0' X~x@l,3KX?3sp݃3 -~lV0iۇ`;%l{?̰y W/)hϟ]>|~?xݟ̚{o"/=` p0 ;{3}z `w~ oA z×<s >Y3ك&|'dNo߀ .<6<yux-pz̥e@p dP@'q K z<)`{=8??h%>+ɐ~;vhey- Ǎ^38|K}-&Lx<2c™c@f{3U oxw!V,! qNEO!bEux_v ^:V0װ{Q:'Y쿎zxsjxMg;/ wx 5v7oÝLc $0fkpfVk;Z2:n#pn\ni|e:[k1U.Z7wcosínkPꃄYK 7'|jzuDgp,/`|Ztjnf{xdO/uYPni<ˤwpfI,wgf{ \anj^wvK4w9}wg/f33/pe 3 /}<5 v kPZn3%DM[:Ā'fM}XA?<~~#K[:֋:>h+8fvUpuj’^^K.8nfe( L>A+!j3&Lg<ΆOJy xc/al/u@N%XX \Z30v6kXn]\~ͭpHZ U ,g07wjg{{p}`cY] ؀0{vf'/;<nO<ž&~ ynpzn`tmU}kق|͇Wߌ>A:n3ݻ[.j|=wfo }c [.k?n>fݿ́oA೹;|3<$ طR~p`ـeY#fv6^k3?"w?Ta||"vD;B{ބ!ȝ;B 0wGN?f0{;"p߀ r'n_ @xCCx/ p1 @x-aށmvCRVa뛋x {-񏙊>DKv7s> x%am1\u+oy>G^c˳l¿gAތ? df||LGpu/9y;}3x k`A~pí ;8fy!'a~`p` yUۗoa v D? w`0ϳhk79D%.$< <3+x!ַq.$<^'V؀[+^mX uhK/8*V:[[Vۺ[2>@x᛬ 1ⶆ<8<@\. `<~ON[Vb Aⶬnf_| `w~xϰ <03"w~? ;mVxO6afڔ:w,`l ආaOV=w@X amrywÏ`;ѵXx7{y_b;qw1o(}ßQ>g>p ȝAs7ؐ<[V>KRNv@l0x (!]9e3b,t`;ne9?{ý91`omX,W[V*?g71s?0uEn;|3|91AAo{;qfA2'`WAw= ¹x$uZ>ay; [<0<8p0o<_w(fg#x?~?xpx`}}7g8PoGNL<0;"wLG ~%a2We95l< TvBප@xCݗ<VwZS<&XcA!EI<.џVZ^#w2l]EGp_ƀ'>>f~;:~󟝇v'=|7<=$<'}.w~$^73U ЯfFn[Kgx r^aɋ3~VS7Zj:XϺn}AǙc_]<8w%|U{û{hxOo ߜ?{~]/A!jps|9`A5r܍w)^a/#Uw}c2˥x\HxYxNoNqGp{z>a?x/xnΛ.Hn; <.~l z6 w9 ;""xμO1A3\<6<^_0!Kp97@lؽ֣{a~f bn`K]ַpn F< @ +>߿v6}= TKd{x5a͛2dݑ;AsY^FRLjxCᖞ@瀿yX֢ǂd#5`XYI@uul&hd4KxPxZ&]6-$_w=MU{!nȝAC oy//w2K@x^xy>y/P {ým`͏xw/t2[<`;/ Y a@3oϏ(нx3=nDxPw9>69 |,凂Z &+:\7#ÿw_/QNA?kE寖 > A3Xx).Fw~Gx O (K-R~O9{7fX^xy&b?|ssx[\^ ˳zskf`% 'U m]MtYE|ۜ33̫{p=>l],;~ysxt<.~?vG/\9{[yKv E|<| !ܶ~yfz_y}˖91\Gvvps˵=x`p`{ۼ9繗z7n3fK)}p7_gxRfKwf^~~ O^fL9`}0Ygg fWf+\k*iY{޷;oxz8:w'ب<F>ww^=O>gnK ;w[v peUf^x9 ؐ7[w7w3mgh;/3!Up`z | 4!vawi[~um}]nu>>\na߀4L ޳!0NU6 3z>2n]r'<`?n{@g经;~)x<ژ0CB7eބ!"n cָ Z3xme;碬m\ XyyY:ـ-q`9i0AB'&%w>fWY~;>y rI߿s0GPx˽mw^b^s֐~ϵ ۿپ-^8|Y91u5~Z>Dvl?q.۰[lzޘ?EM0 og18=[wdVؖo;~n@<^~xf3=_>^ZFn10B>r `2˛fO35ۯos3-<aQAvK{Bxn<ӏ [~^HjL.b\^77*v,WP>G3&b&W6an+af', K疧?~vO=Wp߀,ϟv;qw7>v, 0~tMre"kyx#V Godm>w7ډ>Nv>O;33ˀ38o`> svs6ی {ݻ͛}|&j 7]jk8>0yqA׀oz q66`+݀7C??bO <"v\88;9|yvD칛1dfn"co vD`m`7" @x-)px0 hZa9ׅJуYtBāHxh(eC~ȉh=$b+y#ω7pD-D4@xgPJ`<0:QE"}و2ǘ,%>ay#>fՎ>>cPJ_ .:,f ,iB`P,"QUxDMG޲VbF0̪ l xnP,AtV2 vd,!\6 ~bD5 X,&@*s2$T;@*<Kw/UbB% Yal>?"#P"3 ""m+ ! b.1~8N{R X .HDAr468V KF 2K\&>." uZ J@ &FH le7 <,X kL,}P"`a4Ob2v*j2`B[`: ZG ]F,P8B5X6$4,",$\~9 q`8"*|\P( j4Cᚁ| <  , ґR LhL `t@8  $x   ""}@2A  |r !YM_TRACK  |r!SUP_SP INV @|r|!CHAMELON  \r"TURB_ASS17  qr"ATOMIK33LZH 2r#M&PFXPAK11LZH Nr# LZH_201LTTP r#RSOURCE PAK r$ATOM_V35PRG r$r)b NOISE TRACKER V1.5 = Uploaded to atari.archive.umich.edu by robotron Disclaimer: I had nothing to do with the development of this piece of software and assume no liability for damage caused etc.etc. I came across it locally and decided it was worth sharing. It's in the Public Domain and I suspect the authors might like it to have a wide distribution. Files in this archive: desktop.inf - the desktop.inf file that came on the disk docs.doc - instructions intro.prg - the demo which was originally in the auto folder noise.inf - the noise.inf file that came on the disk noise_15.prg - NoiseTracker v1.5 replay15.prg - Module replayer Originally the disk would boot with a demo, and NoiseTracker was supposed to be run from the desktop. As it has its own file selector, this is a tremendous waste of memory. I recommend putting noise_15.prg in the auto folder. The original disk also contained several modules, which I have omitted for convenience. Many modules for Sound/NoiseTracker on the Amiga Games Machine are available via anonymous FTP from ab20.larc.nasa.gov (the directory is incoming/amiga/NoiseTracker-Modules) and mars.ee.msstate.edu (files/Amiga.Music). These are all perfectly compatible except for modules for the MED tracker. Also, the directory on mars contains samples which cause a crash if you attempt to load them into NoiseTracker - as do MED modules. Note that TCB Tracker modules are (to my knowledge) not compatible either. BUGS I have found several bugs in NoiseTracker v1.5. Firstly, it is not very good at recognising when you have changed disks. When you attempt to load a module from a new disk, you may have to click on "load module" twice before the drive light goes on and it reads from the new disk. More importantly, when saving a module onto a new disk, click on "load module" (and then "exit"!) until you are sure it knows what format your disk is, ot kherwise your disk could get trashed. The same applies for loading or saving samples. Another bug may arise when changing the name of a sample or a preference. NoiseTracker will only read one character from the keyboard, rather than the whole string you typed. You'll know what I mean when it happens. For this reason, name your module as soon as possible so you can save it and reboot. Finally, NoiseTracker may not load some modules correctly. Some samples may be blank, or be samples from the previous module. It could just be coincidence, but I find this is less likely to happen if I do not clear the old module before loading a new one. If in doubt, try using replay15.prg. I'm sure you'll agree it's a wonderful piece of software. Happy composing! If you have Usenet access, the group comp.sys.amiga.music may be of some interest. Maybe some day we'll have a modules directory on atari.archive.. (: UUCP: ..!uunet!nsf.ac.uk!tardis.cs.ed.ac.uk!robotron BITNET: robotron%tardis.cs.ed.ac.uk@UKACRL INTERNET: robotron%tardis.cs.ed.ac.uk@cunyvm.cuny.edu JANET: robotron@uk.ac.ed.cs.tardis  #E D8 03 #W 00 00 16 03 1E 13 08 A:\*.*@ #W 00 00 0D 08 15 0B 00 @ #W 00 00 0E 09 15 0B 00 @ #W 00 00 0F 0A 15 0B 00 @ #M 00 00 00 FF A DREAM WEAVER@ @ #M 00 01 00 FF B EMPIRE@ @ #T 00 03 02 FF CORBEILLE@ @ #F FF 04 @ *.*@ #D FF 01 @ *.*@ #G 03 FF *.PRG@ @ #G 03 FF *.APP@ @ #F 03 04 *.TOS@ @ 8`*o - ЭЭ/HUBg?<JNA a.Jy0g alaHy?<&NN`BgNA# #* #,#.#2#:"< <NBNuAC>~6g`$I!<\gQ"J\Ag`BNu?<Hy>?<=NAP>Hy/<??<?NA ??<>NAXNu ?<NN#&?<NN3$?</</<?<NN aafa raB@9<9g<<c<dU@@@A)#)F'#)4F `a?9$/9&/9&?<NN L>H@ NuHyt?< NA1B1w^F'! !(#p#)4#^ K#F NuF'A6 #p*#4.# 2F NuF'A6 #*p#.4#2 F NuwpwU33ss77w1n@TybNsB8!#n`Haa*a"L?Ns A>p2t6<!Ag03@0SCB`JCg03A0SCB` NuNqR@|!fNu0<24BBJNJPgUPNu!!!!!!!!!!!!86  AC0k `6<(<11GI 9M.K.g6<(0B"r2(*$*$.ҁQ"A0"X$Pg" SA"  QQ0<xfB#H#By!By!By!3#dA~a6Aa.Aa&AaA0<"< QNu !BBBBBBXJXBB00@ !NuRy! y!gaNuBy!A4pA0:"HEaXEaPE$aHEHa@Jy!fRy! y@!f$By!By!Ry! y!f3!Nup(t<b Jf JPg0*$5@$S@@@C$1@Ct5i&5|@2Ag$ ig4v6Ct4)Bx8)Dmג؂%D5BBj%R(`t4B%BBjBj%|!((<f*5A0*B*@gl8|`.Bj`&5AB*C I%q %j JjfB5hXHanNu1JaxŴxaJ1X(\:}hS@. xqC AaAaA>a AbaNu0(@g6(Jg<gJ<g^<gΰ<g < gdNu0(J g@@!q Jg!qNup(h hqj1|q`p(h hXk1|X`p09!H@|g|g p(`p(`4(` @r2(Ev$42Rl EQNu0`L(g@B(Jhg0p(J(fh0(hn 1hBh` h0(hm1hBh`(g@(EH@t2(@J0(J(kB`B(IA<(`p(Jgh& h@&k1|@&Nup(h&jBh&Nu*< g< gH< g <g$Nu3!p*S@3!Nu3!Nu*@g By!3#dNu *@c|@j'Nu(y #gb@H"<!IBy'Ae3'y'3'AC>G?0)&H0<0aXACG?0)&H0*X>GGMH,;ph ,pd!gNsKNs>OMH<!gNs>OM6p!gNs>OM6p!gNs                                                                                                                                                                                                                                                                                       tM^:B.&/!J!cM/k)]F [ e C  ! R]R 5ģ|HXڭy2Lh!ztkkK-W.{JeP<)W+Q>,zomV`TEHD<1?&4t-׌:Sw~zsmrg `ZTNHC6=8.2-(f#T[x SMV( E|yi7wO3""2Lqe~e~n{yw6trpDnkigde=ca^\ZXVTRQO)MJKpIGFD;B{@?=U;98Y65310b.-O+*K('W%$r#! 5si{3j-    U &cC& "<Xu Hqޛ$Uڈٻ'`֙OӎTЙ&n͸O˝;ɍ2LJ3ŋ?ÚTr7d2oF"qU=(wqmlot| .BYs=_?i,\(]1k F%g N9'sib _ _ ckv%5H^w*HhBi!Lz4~~~e~!}}}U}|||J|{{{C{zzz@zyyyByxxxGx wwwQwvvv_v#uuupu5ttttKtssses,rrrrJrqqqkq4ppppZp$ooooMonnnznFnmmmwmDmlllxlFlkkk~kLkjjjjXj'iiiigi8ihhh{hLhggggeg7g ffffTf'eeeeveIeddddodDdccccncDcbbbbrbIbaaaa{aRa*a````a`9`____t_M_&^^^^^e^?^]]]]]\]7]\\\\~\Y\5\[[[[[\[8[ZZZZZdZAZYYYYYqYOY-Y XXXXXbX@XWWWWWzWYW8WVVVVVvVVV6VUUUUUxUYU:UTTTTTTbTCT%TSSSSSpSRS4SRRRRRRfRIR,RQQQQQQcQGQ+QPPPPPPgPKP/POOOOOOpOUO:OONNNNNNeNJN0NMMMMMMzM`MGM-MLLLLLL|LcLJL1LKKKKKKKlKSK;K#K JJJJJJ{JcJKJ3JJIIIIIIxIaIJI3IIHHHHHH}HfHPH9H#H GGGGGGGrG\GFG1GGFFFFFFFoFZFEF/FFEEEEyz{|}~wxyz{|}~ tu v w x y z { | } ~  qr s t u v w x y z { | } ~  ooopqrstuvwxyz{|}~mnopqrstuvwxyz{|}~klmmmnopqrstuvwxyz{|}~hhhijklmnopqrstuvwxyz{|}~fffghijklmnopqrstuvwxyz{|}~ddddeeeefghhhhijkkkklmmmmnoppppqrrrrstuuuuvwxxxxyzzzz{|}}}}~abbbbccccddddeffffgggghhhhijjjjkkkklmmmmnnnnoooopqqqqrrrrsssstuuuuvvvvwwwwxyyyyzzzz{{{{|}}}}~~~~_````aaaabbbbccccddddeeeeffffgggghhhhiiiijjjjkkkkllllmmmmnnnnooooppppqqqqrrrrssssttttuuuuvvvvwwwwxxxxyyyyzzzz{{{{||||}}}}~~~~]^^^^____```aaaabbbbccccdddeeeeffffgggghhhiiiijjjjkkkklllmmmmnnnnoooopppqqqqrrrrsssstttuuuuvvvvwwwwxxxyyyyzzzz{{{{|||}}}}~~~~[[\\\]]]]^^^____```aaaabbbccccdddeeeefffgggghhhiiiijjjkkkkllllmmmnnnnoooppppqqqrrrrsssttttuuuvvvvwwwxxxxyyyzzzz{{{||||}}}~~~~YYZZZZ[[[\\\]]]]^^^___````aaabbbccccdddeeefffgggghhhiiijjjjkkklllmmmmnnnoooppppqqqrrrsssstttuuuvvvvwwwxxxyyyyzzz{{{||||}}}~~~WWXXXYYYZZZZ[[[\\\]]]^^^___````aaabbbcccdddeeeffffggghhhiiijjjkkklllmmmmnnnooopppqqqrrrsssstttuuuvvvwwwxxxyyyyzzz{{{|||}}}~~~UUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~SSSTTTUUVVVWWWXXXYYYZZZ[[[\\]]]^^^___```aaabbbccdddeeefffggghhhiiijjkkklllmmmnnnooopppqqrrrssstttuuuvvvwwwxxyyyzzz{{{|||}}}~~~QQRRRSSSTTUUUVVVWWWXXYYYZZZ[[[\\]]]^^^___``aaabbbcccddeeefffggghhiiijjjkkkllmmmnnnoooppqqqrrrsssttuuuvvvwwwxxyyyzzz{{{||}}}~~~OOPPPQQRRRSSTTTUUUVVWWWXXXYYZZZ[[[\\]]]^^___```aabbbcccddeeefffgghhhiijjjkkkllmmmnnnoopppqqqrrsssttuuuvvvwwxxxyyyzz{{{|||}}~~~MMNNOOOPPQQQRRSSSTTTUUVVVWWXXXYYZZZ[[\\\]]^^^__```aabbbcccddeeeffggghhiiijjkkkllmmmnnoooppqqqrrrsstttuuvvvwwxxxyyzzz{{|||}}~~~KKLLMMMNNOOOPPQQRRRSSTTTUUVVVWWXXXYYZZ[[[\\]]]^^___``aabbbccdddeefffgghhiiijjkkkllmmmnnoooppqqrrrsstttuuvvvwwxxyyyzz{{{||}}}~~IIJJKKKLLMMMNNOOPPPQQRRSSSTTUUVVVWWXXYYYZZ[[\\\]]^^___``aabbbccddeeeffgghhhiijjkkkllmmnnnooppqqqrrsstttuuvvwwwxxyyzzz{{||}}}~~GHHHIIJJKKLLLMMNNOOOPPQQRRSSSTTUUVVWWWXXYYZZ[[[\\]]^^^__``aabbbccddeefffgghhiiijjkkllmmmnnooppqqqrrsstttuuvvwwxxxyyzz{{|||}}~~EEFFGGHHHIIJJKKLLMMNNNOOPPQQRRSSSTTUUVVWWXXYYYZZ[[\\]]^^^__``aabbccdddeeffgghhiiijjkkllmmnnoooppqqrrsstttuuvvwwxxyyzzz{{||}}~~CDDDEEFFGGHHIIJJKKLLLMMNNOOPPQQRRSSTTUUUVVWWXXYYZZ[[\\]]]^^__``aabbccddeefffgghhiijjkkllmmnnnooppqqrrssttuuvvwwwxxyyzz{{||}}~~ABBCCDDEEFFGGHHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[[\\]]^^__``aabbccddeeffgghhiijjkkllmmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~?@@AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~=>>??@@AABCCDDEEFFGGHHIIJJKKLLMMNNOOPPQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``abbccddeeffgghhiijjkkllmmnnoopqqrrssttuuvvwwxxyyzz{{||}}~~;<<==>??@@AABBCCDDEEFGGHHIIJJKKLLMMNOOPPQQRRSSTTUUVVWXXYYZZ[[\\]]^^_``aabbccddeeffghhiijjkkllmmnnoppqqrrssttuuvvwxxyyzz{{||}}~~9::;;<==>>??@@AABCCDDEEFFGHHIIJJKKLLMNNOOPPQQRRSTTUUVVWWXYYZZ[[\\]]^__``aabbcddeeffgghhijjkkllmmnnoppqqrrsstuuvvwwxxyyz{{||}}~~889::;;<<==>??@@AABBCDDEEFFGHHIIJJKKLMMNNOOPPQRRSSTTUVVWWXXYYZ[[\\]]^^_``aabbcddeeffgghiijjkkllmnnooppqrrssttuuvwwxxyyzz{||}}~~6677899::;;<==>>??@AABBCCDEEFFGHHIIJJKLLMMNNOPPQQRRSTTUUVWWXXYYZ[[\\]]^__``aabccddeffgghhijjkkllmnnooppqrrsstuuvvwwxyyzz{{|}}~~34556678899:;;<<=>>??@@ABBCCDEEFFGHHIIJKKLLMNNOOPQQRRSTTUUVVWXXYYZ[[\\]^^__`aabbcddeefgghhijjkkllmnnoopqqrrsttuuvwwxxyzz{{|}}~~2234456677899::;<<==>??@@ABBCCDEEFFGHHIJJKKLMMNNOPPQQRSSTTUVVWWXYYZ[[\\]^^__`aabbcddeefgghhijjkklmmnooppqrrsstuuvvwxxyyz{{||}~~012233455667889::;;<==>??@@ABBCCDEEFGGHHIJJKLLMMNOOPPQRRSTTUUVWWXYYZZ[\\]]^__`aabbcddeffgghiijjkllmnnoopqqrssttuvvwwxyyz{{||}~~.//0012234456677899:;;<==>>?@@ABBCDDEEFGGHIIJKKLLMNNOPPQRRSTTUUVWWXYYZ[[\\]^^_``abbccdeefgghiijjkllmnnoppqqrsstuuvwwxxyzz{||}~~,-..//011233455677899:;;<<=>>?@@ABBCDDEFFGHHIJJKKLMMNOOPQQRSSTUUVWWXXYZZ[\\]^^_``abbcddeefgghiijkklmmnoopqqrrsttuvvwxxyzz{||}~~++,--.//011233455667889::;<<=>>?@@ABBCDDEFFGHHIJJKLLMNNOPPQRRSTTUVVWXXYZZ[\\]^^_``abbcddeffghhijjkllmnnoppqrrsttuvvwxxyzz{||}~~)**+,,-../001223445667889::;<<=>??@AABCCDEEFGGHIIJKKLMMNOOPQQRSSTUVVWXXYZZ[\\]^^_``abbcddeffghhijkklmmnoopqqrsstuuvwwxyyz{{|}}~'(()*++,--.//01123445667889::;<<=>??@AABCCDEEFGHHIJJKLLMNNOPQQRSSTUUVWWXYZZ[\\]^^_``abbcdeefgghiijkklmnnoppqrrsttuvwwxyyz{{|}}~%&''()**+,,-../01123345667889::;<==>??@AABCDDEFFGHIIJKKLMMNOPPQRRSTUUVWWXYYZ[\\]^^_``abccdeefghhijjkllmnoopqqrsttuvvwxxyz{{|}}~#$%&&'())*++,-../00123345567889::;<==>?@@ABBCDEEFGGHIJJKLLMNOOPQQRSTTUVWWXYYZ[\\]^^_`aabccdeffghhijkklmnnoppqrsstuuvwxxyzz{|}}~""#$%%&''()**+,--./00122345567889:;;<==>?@@ABCCDEFFGHHIJKKLMNNOPQQRSSTUVVWXYYZ[\\]^^_`aabcddefgghiijkllmnoopqrrsttuvwwxyzz{|}}~ !"##$%&&'())*+,,-.//0122345567889:;;<=>>?@AABCDDEFGGHIJJKLMMNOPPQRSSTUVVWXYYZ[\\]^__`abbcdeefghhijkklmnnopqqrsttuvwwxyzz{|}}~ !""#$%%&'(()*+,,-.//0122345567899:;<<=>??@ABBCDEEFGHIIJKLLMNOOPQRRSTUVVWXYYZ[\\]^__`abbcdeffghiijkllmnoopqrsstuvvwxyyz{||}~ !"#$$%&8''()*++,-.//0122345667899:;<==>?@@ABCDDEFGGHIJKKLMNNOPQRRSTUUVWXYYZ[\\]^_``abccdefgghijjklmnnopqqrstuuvwxxyz{||}~ !"##$%&''()**+,-../012234566789::;<=>>?@ABBCDEEFGHIIJKLMMNOPQQRSTUUVWXYYZ[\]]^_`aabcddefghhijkllmnoppqrsttuvwxxyz{||}~ !!"#$%&&'()**+,-../012234567789:;;<=>??@ABCDDEFGHHIJKLLMNOPPQRSTUUVWXYYZ[\]]^_`abbcdeffghijjklmnnopqrsstuvwwxyz{{|}~ !!"#$%%&'()**+,-../012334567789:;<<=>?@@ABCDEEFGHIIJKLMNNOPQRRSTUVWWXYZ[[\]^_``abcddefghiijklmmnopqrrstuvvwxyz{{|}~ !"#$$%&'())*+,-../012334567899:;<=>>?@ABCCDEFGHHIJKLMMNOPQRRSTUVWWXYZ[\\]^_`aabcdeffghijkklmnoppqrstuuvwxyzz{|}~ !"##$%&'())*+,-.//01234556789::;<=>?@@ABCDEFFGHIJKLLMNOPQQRSTUVWWXYZ[\]]^_`abccdefghhijklmnnopqrsttuvwxyzz{|}~ !"##$%&'())*+,-.//01234556789:;<<=>?@ABBCDEFGHHIJKLMNNOPQRSTTUVWXYZZ[\]^_`aabcdefgghijklmmnopqrsstuvwxyyz{|}~ !""#$%&'())*+,-./001234567789:;<=>??@ABCDEFFGHIJKLMMNOPQRSTTUVWXYZ[[\]^_`abccdefghijjklmnopqqrstuvwxxyz{|}~ !!"#$%&'())*+,-./011234567899:;<=>?@AABCDEFGHIIJKLMNOPPQRSTUVWXXYZ[\]^_``abcdefghhijklmnoppqrstuvwxxyz{|}~  !"#$%&'()**+,-./01233456789:;<==>?@ABCDEFFGHIJKLMNOPPQRSTUVWXYYZ[\]^_`abccdefghijkllmnopqrstuvvwxyz{|}~  !"#$%&'()*++,-./01234556789:;<=>?@@ABCDEFGHIJJKLMNOPQRSTUUVWXYZ[\]^_``abcdefghijjklmnopqrstuuvwxyz{|}~  !"#$%&'()*+,--./0123456789:;;<=>?@ABCDEFGHHIJKLMNOPQRSTUVVWXYZ[\]^_`abcddefghijklmnopqrrstuvwxyz{|}~  !"#$%&'()*+,-.//0123456789:;<=>??@ABCDEFGHIJKLMNOOPQRSTUVWXYZ[\]^__`abcdefghijklmnoopqrstuvwxyz{|}~  !"#$%&'()*+,-./01234566789:;<=>?@ABCDEFGHIJKLMNNOPQRSTUVWXYZ[\]^_`abcdefgghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^__`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\*.MODEZ : NOISETRACKER REPLAY 1.5 [1] YM 2149 [2] PROSOUND DESIGNER [3] MV16 CARTRIDGE [4] ST-REPLAY OUTPUT ,$4X Z 4 0 JƐ ((((b B H \ "   Wx w.  ًr..  ًrDESKTOP INF ' READ ME -  SOS_MDMXMOD ^STARPAWSMOD 4nSTARPAWSTOS * P/YM_TRACKPRG 2 \pYM_TRACKRSC  ZVO MOD k &{#a0 #b0 #c7770007000600070055200505552220770557075055507703111103 #d - #E 1B 01 #W 00 00 00 08 28 10 08 A:\*.*@ #W 00 00 0D 08 15 0B 00 @ #W 00 00 0E 09 15 0B 00 @ #W 00 00 0F 0A 15 0B 00 @ #M 00 00 00 FF A DISQUE@ @ #M 01 00 00 FF B DISQUE@ @ #T 03 00 02 FF CORBEILLE@ @ #F FF 04 @ *.*@ #D FF 01 @ *.*@ #G 03 FF *.PRG@ @ #G 03 FF *.APP@ @ #F 03 04 *.TOS@ @ >This is a DEMO YM-Tracker package. The complete version is available for U.S. $25.00 (or 100,00 FF) by: A. VIDOVIC Tour Panoramique 69009 LYON FRANCE It features all the DEMO version capabilities, plus: -"Save as exec" option -complete documentation -over 25 modules... -" This DEMO package consists of: -DESKTOP.INF 450 bytes -READ.ME 1056 bytes Apparently this file. -SOS_MDMX.MOD 24300 bytes An adaptation of "S.O.S" tune by Jochen Hippel (Mad Max) -STARPAWS.MOD 28358 bytes An adaptation of "Star Paws", by Robb Hubbard -STARPAWS.TOS 12258 bytes The compiled version of the above module (run both from desktop and from a program, see the documentation for details to start/Restart and to stop it) -YM_TRACK.PRG 44400 bytes The DEMO version of the YM-Tracker -YM_TRACK.RSC 48356 bytes "Resource" file for the main program. Must be in the same path. -ZVO.MOD 31526 bytes Another tune, which uses the "Speaker-like" capability...  !"#$%&,-/0 7 CK RSTVWXYZ\]^_`abcdeghijklnopqrstuvwxyz{|}~YM-Tv1.0NULL-SNDBEEPLONGLOOPBASSOSTINATOBASEDRUMSNAREDRUMELODIE BASEDRUMTOMS  MAJEUR TRUC MIN 5EMEDIM BEEPSHRT HIHATRT BASS_2T BASS_3T BASS_4STROLLTNULL-SND LOOPBASS  OSTINATOBASEDRUM$*/I48 .2E .*. > 7"C  .*. > : "E 7. >  .5F .* "> . "H .*7> "F 7>  "E +. >   "A .*+.2.*. 7" .*. : "7.  .5.* ". ".*7 "7 "+.   "C  .*+C .2C .*. 7"C .*. : "C7.  .5.* "C. ".*7 "C 7C  "C +.   "C  .*+C .2C .*. 7"C .*. : "C7.  .5. "C. ".7 . "C .$7C .* "C +.  .*C .*C .C .* C.* C.*..*C..* C .$C C . .C .*C .C .* C.* C.*..*C...C . C .$C .*./C .*C .C .* C.* C.*..*C..* C .$C C . .C .*C .C .* C.* C.* C...C . C .$C .*./ "% .*+.2.*. 7" .*. : "7.  .5.* ". ".*7 "7 "+.   " .*+.2.*. 7" .*. : "7.  .5.* ". ".*7 "7 " +.   "C  .*+C .2C .*. 7"C .*. : "C7.  .5.* "C. ".*7 "C 7C  "C +.   "C  .*+C .2C .*. 7"C .*. : "C7.  .5. "C. ".7 . "C .$7C .* "C +.  .* "D .*+.2.*. 7" .*. : "7.  .5.* ". ".*7 "7 "+.   " .*+.2.*. 7" .*. : "7.  .5.* ". ".*7 "7 " +.   "C  .*+C .2C .*. 7"C .*. : "C7.  .5.* "C. ".*7 "C 7C  "C +.   "C  .*+C .2C .*. 7"C .*. : "C7.  .5. "C. ".7 . "C .$7C .* "C +.  .* "8 .*+.2.*. 7" .*. : "7.  .5.* ". ".*7 "7 "+.   " .*+.2.*. 7" .*. : "7.  .5.* ". ".*7 "7 "+.   "C  .*+C .2C .*. 7"C .*. : "C7.  .5.* "C. ".*7 "C 7C  "C +.   "C  .*+C .2C .*. 7"C .*. : "C7.  .5. "C. ".7 . "C .$7C .* "C +.  .* "= .*+.2.*. 7" .*. : "7.  .5=.* ". ".*7 "7 "+.   "=  .*+.2.*. 7" .*. : "7.  .5=.* ". ".*7 "7 "+.   "C  .*+C .2C .*. 7"C .*. : "C7.  .5.* "C. ".*7 "C 7C  "C +.   "C  .*+C .2C .*. 7"C .*. : "C7.  .5. "C. ".7 . "C .$7C .* "C +.  .* .*..*  .* .*..*..* . . .*..* .* .*..*... .  .$.*./.*..*  .* .*..*..* .$ . ..*..* .* .*..*..* .* ..* . 2      wxyz{|}YM-Tv1.0NULL-SNDBEEPLONGLOOPBASSOSTINATOBASEDRUMSNAREDRUMELODIE BASEDRUMTOMS MAJEUR TRUC MIN 5EMEDIM OSTINAT2 HIHATRT MAJSHRT MINSHRT SETSHRTJFGHTNULL-SND""LOOPBASS OSTINATOBASEDRUM$*/48 '"A D ?F J '"M P %R P % ?" '"%?% '"?%'"'". 1 ?4 7 %: = '"@ C ?F L '"O R %) %?) )"%?)"?%)")"?%)"?)"%%? )"%?$ )"?%)")", 0 ?3 6 %8 < )"? B ?D H )"K N % %? '"%?% '"?%'"'"1 5 ?8 ; %= A '"D G ?I M '"P S %P %?% '"%?( '"?%'"'"1 4 ?7 : %= @ '"C F ?I L '"O P %, %?, )"%?)"?%)")"?%)"?)"%%?% )" %? )"?% )")" ? %)" ?)"% %?#'" %?'"?%'"'"? %'"?'"%%?% '" %? '"?% '"'" ?)%'" ?'"%( %?*)" %?()"?%')")""? %)"#?)"%%%?,)" %?)"?%)")"? %)"?-)"/%4%6?7 '" %? '"?% '"'" ? %'" ?6'"7%6 %2?4 '" %? '"?% '"'" ? %'" ?4'"6%4 %0?3 )" %? )"?% )")" ? %3)"4?3)"0%-%*?= ; )"9 8 %; 9 ?8  6 )"9 8 ?6 4 %8  6 )"4 3 )"6  4 ?3 1 %4 3 )"1  / ?3 1 )"/ - %1  / %- , ?; 9 '"8 6 %9 8 ?6 4 '"8 6 ?4 3 %6 4 '"3 1 '"4 3 ?1 / %3 1 '"/ - ?1 / '"- , %/ - %, * ?9  8 '"6 4 %8 6 ?4  3 '"6 4 ?3 1 %4  3 '"1 / '"3  1 ?/ - %1 / '"-  , ?/ - '", * %-  , %* ( ?6 4 )"3 1 %4 3 ?1 / )"3 1 ?/ - %1 / )"- , )"/ - ?, * %- , )"* ( ?, * )"( ' %* ( %' % ?=  ; )"9 8 %=  ; ?9  8 )"=  ; ?9  8 %=  ; )"9  8 )"=  ; ?9 8 %=  ; )"9  8 ?=  ; )"9  8 %=  ; %9  8 ?;  9 '"8 6 %;  9 ?8  6 '";  9 ?8  6 %;  9 '"8  6 '";  9 ?8 6 %;  9 '"8  6 ?;  9 '"8  6 %;  9 %8  6 ?9  8 '"6 4 %9  8 ?6  4 '"9  8 ?6  4 %9  8 '"6  4 '"9  8 ?6 4 %9  8 '"6  4 ?9  8 '"6  4 %9  8 %6  4 ?6  4 )"3 1 %6  4 ?3  1 )"6  4 ?3  1 %6  4 )"3  1 )"6  4 ?3 1 %6  4 )"3  1 ?6  4 )"3  1 %6  4 %3 -1 ?I  G )"E D %I  G ?E  D )"I  G ?E  D %I  G )"E  D )"I  G ?E D %I  G )"E  D ?I  G )"E  D %I  G %E  D ?G  E '"D B %G  E ?D  B '"G  E ?D  B %G  E '"D  B '"G  E ?D B %G  E '"D  B ?G  E '"D  B %G  E %D  B ?E  D '"B @ %E  D ?B  @ '"E  D ?B  @ %E  D '"B  @ '"E  D ?B @ %E  D '"B  @ ?E  D '"B  @ %E  D %B  @ ?B  @ )"? = %B  @ ??  = )"B  @ ??  = %B  @ )"?  = )"B  @ ?? = %B  @ )"?  = ?B  @ )"?  = %B  @ %?  = ?( )" %? )"?% )")"* ? %)" ?)"% %?# '" %?'"?%'"'"- ? %'"?/ '"%%?( '" %? '"?% '"'"/ ? %'" ?'"% %?% )" %?)"?%)")"* ? %)"?* )"%%'   yrnALCPLAY  yrCPX  OzrNT_COMP  mzrKAOSDESK  zr1AUTO 501 b{rICE 240 m{rJAM3  u{rPCHROME DOC /a RPCHROME3PRG q L`/aBgHy0?<1NA`$`A 1PA 0@0A BP`HzV`Hz ?<&NN\NuF'aP xpA XBRAf YM-Tg P`!pApC"C\" 8F#NuF'a !pF#NuACp BQNuYM-TrackerSTARPAWSXBRAYM-TH@F'MadSPjR0 A P@m6BPA 0R@C Qmp0 z H00 z H pC "A BPA 0 za4FLN4VxA f0t8ft` 8 ft0NuC NJQfPA DC "2BBQA E C2g2g2g҈A RP z <g8<g(<gpaJ<g <gpa8<gpa,pgaC "K~a~a~aaNu4Jr(fR`<gC|SAIE x5 rIC Zvx11KLC 6&Y(Q&s8(tHJC FC E0K& JfBBT`r+҃"r҃"R"r҃"K& JfBBT`r,҃$r҃$R$r҃$2gaNu|fC ,4 3 `|fC 4 D@3 `|f0(gvC V4JJq fEnS@H3 E @P `N|fC 4JBq CJ@3 `*|fC4 H3 `|fC|4 3 `|f D@``|fCT4 C BBQ`Ȱ| f2C4JBq CJC BBBBCC BBBB`| fpC4Jѱ Cѱ `n| f4 CC BBB`P| fXC 4JP g8g6: ÈfC&E01 H4C"JEC $$$$`| f\C4VB02Cp4J3 3 gEbC01 H4CJENC $$$$`|fZC$4VB02C4J3 3 gX<gCvK3 3 @HC2`0|f(C4VB02C4JBq Bq Cx4 C 3Q\3QNu|f$fpC>2/ab _E42`ư|gְ|f Cfp2/a4 _C2`|f&CQ@fp2/a _Cn2h`n|f"CVQn2/a _CF2@`F|ftB?A,0E(0C$R@Qmp4$zH02$zH rEvrBlf<gZ<gL<g.<g R20<g6<g(<g R20<g<g R2020RA`C"P`|fBB`D|fJHCR&Y&sC"K& JfBBT`r+҃"r҃"R"r҃"`(|f C2`|fCD@2`|fCp BYQ`|fRHC&Y&sCvK& JfBBT`r+҃"r҃"R"r҃"C@2`|f CB2`|fD@`|fCp BYQ``|f.CpBQC0<2Cp!BYQ`,2A| f @C2 HC2C3QC3QNu4JCC  @Ro" )#g"C4J01 HA@2ab4J@HRB@4JCC  @Ro" )#g C~4J01 HA@2a`PG@Nu4JA&Jp g A40 g8:&6:$:CgBA4 4(PPA4J p fB@NuAl4 A 4(PP@A4JJp gpNuC  @Ro" :z#f`0:nHAAr4(PP @H @CEJYo SifJYo SifJYo Sif҈C  @Ro" :#g0:HAA4(PP@@Nu N , i`w GGp1S#~Z8{fR?- wqjd_YTPKGC?<852/-*(&$" @ R  D  7S`s }&tM#C!~#i%S'=)'+,//\/"" $*/48'"AD?FJ'"MP%RP% ?"'"%?%'"?%'"'".1?47%:='"@C?FL'"OR%)%?))"%?)"?%)")"?%)"?)"%%? )"%?$)"?%)")",0?36%8<)"?B?DH)"KN% %? '"%?%'"?%'"'"15?8;%=A'"DG?IM'"PS%P %?%'"%?('"?%'"'"14?7:%=@'"CF?IL'"OP%,%?,)"%?)"?%)")"?%)"?)"%%?% )"%? )"?% )")" ?%)" ?)"% %?#'"%?'"?%'"'"?%'"?'"%%?% '"%? '"?% '"'" ?%'" ?'"%( %?*)"%?()"?%')")""?%)"#?)"%%%?,)"%?)"?%)")"?%)"?-)"/%4%6?7 '"%? '"?% '"'" ?%'" ?6'"7%6 %2?4 '"%? '"?% '"'" ?%'" ?4'"6%4 %0?3 )"%? )"?% )")" ?%3)"4?3)"0%-%*?= ;)"98%;9?8 6)"98?64%8 6)"43)"6 4?31%43)"1 /?31)"/-%1 /%-,?;9'"86%98?64'"86?43%64'"31'"43?1/%31'"/-?1/'"-,%/-%,*?9 8'"64%86?4 3'"64?31%4 3'"1/'"3 1?/-%!1/'"- ,?/-'",*%- ,%*(?64)"31%43?1/)"31?/-%1/)"-,)"/-?,*%-,)"*(?,*)"('%*(%'%?= ;)"98%=;?9 8)"=;?98%= ;)"98)"= ;?98%=;)"9 8?=;)"98%= ;%98?;9'"86%;9?86'";9?86%;9'"86'";9?86%;9'"86?;9'"86%;9%86?9 8'"64%98?6 4'"98?64%9 8'"64'"9 8?64%98'"6 4?98'"64%9 8%64?64)"31%64?31)"64?31%64)"31)"64?31%64)"31?64)"31%64%31?I G)"ED%IG?E D)"IG?ED%I G)"ED)"I G?ED%IG)"E D?IG)"ED%I G%ED?GE'"DB%GE?DB'"GE?DB%GE'"DB'"GE?DB%GE'"DB?GE'"DB%GE%DB?E D'"B@%ED?B @'"ED?B@%E D'"B@'"E D?B@%ED'"B @?ED'"B@%E D%B@?B@)"?=%B@??=)"B@??=%B@)"?=)"B@??=%B@)"?=?B@)"?=%B@%?=?( )"%? )"?% )")"* ?%)" ?)"% %?#'"%?'"?%'"'"-?%'"?/'"%%?( '"%? '"?% '"'"/ ?%'" ?'"% %?%)"%?)"?%)")"*?%)"?*)"%%$`Pb0 `Pack-IceI *L9,LIa*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!I`T[*oO-7ЭS!ҍ^.A#*d zFh$kJv x\`, @k@ȜtlC NqܹxTd8":i A/XsNBdx HvB3GF4 p&2cT dZt H-aÎ3H̪_e61Kl+FvnUmkJ P]qjZ!<Ak`BKiOtK 1 P 0(:s}[*U:~BB]\*T +{E]!/ *!zBX-H0*_Cz PV0BzfD@HA௤/0a#\p|\BV{P* PE*dTw UB` SC>iP*6 5-Lx8Ԫ9\W>*|Al#i Y e0rx~|avaDOa)1+suCRC$*str֞EQqbcN% VSYxUGMp-qpaω Wm<#j Gx#Dn/qKِDwl-(KRTn#sEe0mʶgDH%G2KUnkCwRŠpX i6EؕB .]C|(ifying)xF1 fĖllF̬AargoPu3he1|nc}ulah/Tomucfopa!N2mpoi`cBDhhagAYnumb sufc |]ȍoY ad{swx is( desig3,Re|J8r 1Ycker - 1992 A. Vidovic#n<92*z UC_4A0dBPF0Y9 m $i N,;dALw f`Ef/ӪA@g\' -t& UbKO.O *EV8`~ nLA2H?0nwtZrS* f Q2'-!X` kCrT0PYQgJVEζR[d֛@dFQsg92& _,=,e(:J@f`_ +w0<A@fo;dT=e!TkQZ,Y-Bgo ޅThinproggnly |low olution! Can't find | [ Oh! ]YM_TRACK.RSC?Pw+fgj* Idg "^gll*g `gX*Trv !p]0sR8^_r8Aoa,zM M Qͽ!NTC@p2âr%5 R)"N4Ёr \?dX1~R-`QeЮNa^ j*W%TlNn2WFl`XaQ\oXq>V'~|rKREPGs|Ac`!EوrnLu3^^*W3XJ2й@q\Q E0:M,'MBAAg*URA`JEkدnM|B zj0{boijRBBX\!GyZ?`/Bg(M/RtvsPd/1Qt.vPF11g -P(,u P.v]ەpjKGHskr¥.:ӠO_,\|vBC0iT!mKHz0I?޸[? $O3O@8Tfyֻl ./O`KpYx-,J{έ1d dREjFըd11@L@JE 2F52@2h)QHEAfFT8Q33 22j)E5ȌFj2j4A@F p EFQ@F p554ȨE 3FQȨ6ԁ65EdFF5j57:7 ;CШD*E5Ǫ̈̄G5A8#g8 F\ڄ*ST]bUf.2~\[i+idKlm/Lx"4xpK^j|HxHNA\Jk#+,Tl: 6xN ]Yp? np/GQ(YH+6ȠAp x r;6v"g9pAd#`%a'u`,.b(U8#2`w'Z 7FalƤ YIn@zmzb*f4EfR:- *B [GJe(rW0dZr?JeV+`  `&z>"3*h07?&R7 yy`g%xtLШ؀30 B֫4XBT0Z&@+wP@4jBn$3pv#,"^\{%1D0XAD45*y8;z,:C A5VBX|sͲ,$5jzE8o;`f . Pjp; 04 B"zCn0:Cv7/s"QfX2]_ W"dj#hf*@! dJL! JdFc/\l.2WF.ze72wT 8sQdA dramatic BUg}AADDjS ERROR|h occped |Pleas save\r work|if you can,|then pressyESET7Oks!¬t"2/a%jb x}#m{Eb$~Bb#gt؍.8:b,Cjm`} p7g -I SQrvO"9or A25od 0rq -00gp}kJ@2ZP7=ιC \~Ƴ00H@?! H_/JfszyP3ѐ$i;+JL-+HfF g0 y7? g&Uoj3>Tq#11L}*uft껬frf:A^#MX &qf0l=͸!D^Ng-MJ޲`)dM(H+Gf8` I?t T (slofB0:?SBk`Zfa+P: Z\%N20lfCn"*MG LPژH7J8ZR ,C=g`y7v,C ?θ*Xb7Lz ALeo.֍B zsVnͨ2-|`0 Df1m]~k &˹`p2b5 3T+JE<`jfJuzX%XThLmccX-SdRdf*%ܼ2Tf:rgTedhVlVjTeTk.":mU8^afZzHg8ML<`-2[ I"J!eT`YUf1K`ӝVlb`WTfSB`uX2۽F`Yf S]`ZUgCP~]D%lKTe&^TMv [Y"Bҗ>\ffX9] k,[$;TcJ<)>*m0`B@BPCfmV%\Yf*,A`HoA4ב0/HHA0IA/2{BLF0123456789abcdefa6ިt`?a sNްvraS@``ֻha\B@a8h;֍,YbTxOcBrR0\8JiJE?g8SA6Ÿhy&=Kh  " ht>΃Azx0lQg f~:,̮gTH"H:XA-w('yr?)}f uABv `CXQ.Bh8p:\ވrexN46A ("$P,pIl0Z;4đp[3gDisk full [t!]p7-CH6+g0m9P Y@@l;or;0WȾ*z[c` yz?`gY9 (A K+WxpjPh2:8‘/ PA?GL.R&7<3 %MOhxޕkKBY\B]F8 NcB!*z\ _b CN:Hi;U/>~ `OANApB6b\0<#BI// .;#i/$?k35r*̖NV1/HA$J9j%fJYBA|:(gHjIiuGNAjAJ2{g#gBBy %`I*DhSd"یSkX3ȘirXz ^` hJc%2&n{YJf`&(JKX%%B-Jx "yfRf?tBgkL?N^kLW4p" Qjp$Ȅ0rBP0( i `ZjT3,0kdf<9 60tc< 5RnHl5: SE MXB0'eJgYVa^4xnuBfBJlBq5ZL5Ja@1CM0J欖XK95$)RAvL HBxW5[pŐTI` f74|ڶ*2ہkX\nWo}<"ABg3-PNNO ~H瀀F'f mJeOJ-LEL*Nm1}TPP@mv0L"P1RB8_*HLN*wvuedTSCB21! ?jr3 KD_H*ka>fgh%bg`vk fRȥ>o3/mMgKf0:S@lp_H@@1knzg3+|p5&IpT zޘ΅rG QB/?UJuB]?<>Tƭ>BE  gHU?Z/a+PPJf`R7}+.|/<02<45H\7S1˽;x/kx`$,9ơ8,=OBbt`e-ђpsNsN^#82ݐ[S3U52<'؀SfO/ KqX0OfF3im bl[ATv;Y70uts x.xȲdvGZև|79ρ$pjFr=i>_132Fux+i̺d]xun@ias\2Hcyc{Hon/nF]XCtW6edn4V_..uW,F(cransvDZuP\34R1x;@˓-9U $po " coě¤[from1nn@ex\plQNoc{@ڭSa|,knllZmun*f5^?8N{c|-2a}LY1YgwRU ><.&yQ8jAlt+SlCh/P n!fSa?ktDۖ7ۃ4Ps 5JKdlxz oggY(uX`6!8TwVZ&bogd2nalFeBeNfy "*p0#Swabun20nˎIñG"DI"ٓVSeor'` 2e>]Ta8lCl3dGoGHf:1P&ExYM-tracj_ErJ7]w{A d G!m 3 fjtrINd BdqUU%V0Kk_T^8r qound)׶8Vol/,0pc'I0V'mix0e" oUDPss ~Ru;?H^ pc#5U #9Mij@-^mMas sci? 0mg,12rKdraH2get Te3ܤL4nSAeK5Posxjum6P7rn eak7W87 9G@dawo@bY^$ th vibra/ c6upsHW@ptamo downENR><|Hwk3/b:M=B)B> Mus쾛"PH`Xϊ2͙ fvT\=f8nmYSFSDB%BDv;FffUH^H l綠 GmBn -%7,@K_W $̆t BRF;Hef??r$,RDp`Bl/+KpVL19f$s̘M֒9㙙`䳼k. Do #0123456789 +xBCDEFGHIJKLMNOPQRSTUVWXYZRCUECkI%EUUYCLYBFAIOUNjMIOO AOdCR@_^V $8rΕ=,&Z-ybӕC^e2јV";dUrҮ! BA@g PRA`0:X@SAp %g6V ّ e?EUwd`fA@.&B gU+j땔?NM@RL0ů5L0 wrLºk AHMF3?c)CxˁZ3ܖ 'kkP!HW l'aStPj˚^Arv72 z6hSC`r+VLDεpA/n 2m:*UG <1AY&52d~hoU0! ft8+My'\CNulkf&TS/&kf:&V BBS؍1 x0sT,gyư\=$0ڠ 9 a?NWqJpfQ`$?Hy@p\U>J@fh`VqX:C8H h h0A9 2"XB 8HhHI m8.PjJpX36+|3z|jj ^N N@ ]/x*_82/ V^t jd]>ʥ]H|Xg/VCx0J,\rgN x̠;b. xҨ(W?*zHUz*UE3X::SEKQ?/**@B>6w2QϗHxG ?^NOavJkhJVm@J3|?:W>NAXA#C g`B zt3Z\kkuBglB.:$Nu?Q(\q.0T[2&Ƒw!:ca$|u@K| eY!%Bo be|DESTROYED !|Shal :Intinue?Yes|NoB[3.Thlfiis noof thcUect| fmat][Sorry]loadAusic module/",` bq  l5Hz \g  mjgڳ.(ɧ ,Y3K=&^yN2hrt[nUR+_mulM/m:l2.%`u2(@!LEՌԚQJ*x+\"&g2-\F`1cG7k\y0yL2:J7rng1;FF;E!p4ff5LX,8D 92, V3Y^AZ,lP#šPf%gְϚ,aIkÎ pYMi@[=נ70,(\MF1 4TV HTP4Q=ge,4?P! 1b&nrS0%DQ\R>%`P>P' "pFѸ'D2'^1&zrKHl"EDB7^A'00p&8nF"R>&6rM. GIQnA/JPfPί5`B+4ˀ}I Y["Z6UQ}0Ų xG<#:qQ|*q{+& $3#h~x xb eGH : ΡRΝs# F|2cH t-ŀGˌs @H|$.O VLʰ,n.ڀؿ | |$> z{KŬ -SS2 dp/Dd 0/Q3j'8 F i ֈ`nv/tv@ l&~ j "-r -c T13 < p n 47 2^}"p(!BOXi8 % "w̳, ER!N q$#b`[e3jF ^1vcwzBx#X#6E(˜ejZ}   H^SpH/Rpnl'(ިb`x[:ٌnlp/2lVf875b#X#3v@"Hcx poJf8,3j-`U xBxPԌR ,@eb]gr=64^^. a2 x#66}:4qi.Ct3[9^6i#])zCRNxshJ@l6#Q.8U&JCP Jh8vVXbjTR:J~pB:[~r5SQ$ ] 7ϓ0ۂuBb5:"2rE*Rv;zD{(e%pBe90B&k2 ŵ$rR[6e%{ˆehjTD`N<5*nav#B*YVTYԶɜ>=ȼi^Ђw̍8&RN`P𘩅BRD;PvȺY7(0EVUp#|J5p;dmgY%0caB5uSIsf_a0țI @B-Ox$Hݰ nXp[xRJf/<\S@lRNfV&0`׸op0Gp `9fB@g 5H/mWKYR@.2͡r : `َh42;$yku'IAK_Y-¶T c*JqJEf pM88SVZBPPwS<<fvHFHG`-fWX@zRߖ?Y 4Jl=:tga;zd>Y9~,@:p2[pBT>)]m%BX-Ni VUbC@ vX@nxo,:8r +޹XHx z/:PHF/zHkPQseU⪖"ؘ4׹DuǂPc.O*L:SE/HU_ZX*_)+6Qn#vN zS@Bh PfX\a\B'\Z@V3u\^ZmCar A<+Ok!lKiҐ sous,|vibrcatr:2`BFBGLR"ެ>~43L"J¼6 䀧S.`^3CV#ֻ g&46:&xCfv3vp?fCE3` efꌏs*Z J咡8roB`xpB0:gBH< T*f4#nş`Td[1Th=ptlQide0 versi [Argh?dY% shoulbu$he|complete pacge"it is Il$U.S$25.Worthy[3Sendney to :|A. DOVIC|TOUR POMIQUE|69009 LYON|FRCE][Okay]E9^fuNJCPMNuxcf3ؐ7;S2Ĩz dP$l-S]:06u$w 4[CP.+2:&ЁNN7Nq,ONJfSp gfXm. MUO(GDBAMF0P2LePNfC+[Fh!*SA\ cbNABg%.5QF]? <7 0qMsmusic modue#*.MOD[2 Save as:|1dir2- Executableo][ 1 2 |No!]K' 6ΥvpVB( ^7oHt?/2`X#0x~"P Hu, :Ȃp"z iJk +""0#N vo"TL V)2*虖EJpF .40g86: :Cg@)8Q5 PŠ *4 $3#Pgڽ@f3+C e:f" Q/OU*`" Qj2eqa%V2 yºUơ^f{ PG?*[VPڻpfB@`fTa >ztO!ABy~p0RlgFa+ f\vDE "z nORQ3 5lWy Uf lfҮD@~fIp hf0>pBRˤV0BJž bk\y@~]^R`^m̛Bq?gC A g2:D nJAr3]A`4? 3МP!ؘvWf#}Au@ !v !f>`pNu /~#R*H#wT=Pl@F'̛IJ u2SPj pd*¶2%@g,YVQm 0eA v@p2I*l`Pm` JP"`p,.g\ F34VxJQfo@P fCVِBBPA>C7 x2rZQ z0:BAAg PRA`0ygPZzԖpzVgv_;mfBCpR@XA|+H h-O9lpB[!^0}e.[$~x5SVj<p-M=PV ޼ &x]P[!ƼEgQY f˜Ixr8BӅU"B ABhFg[ԕ Rx>ę"w '3edx䮮aV*."r2x4H^(Ⱥ!8&OO,") 8G=)anjTЪ!90sC3иA8/Cf 4Hz![$ؠ,t& iߨP^tx8hPp <*xYpȴV*n:a^"u<9x5a28x醅/1xZ1x1<81 s=x{3~LBK2~' ~fQ)̆0 4"/37O0 ֍;nt1Bgq7r)t" AQ@H>QS:J/&T|hҶm0ȉm A)Alz0R@3V?L.*}cV3:\:$(x 6uf&yxJKM˹eqFq^"\Gg*2:|l Ѕ9 fe&`Ui[2Dy {nBȪ:| |1CHs*brlay G[1|2|Ex#]Mc$"2B80L "P1RPfAux cJ@gxH@6DRpfThbf`Hf'> o3nmZژP]l8=fzKW Z^Mf@+1bfLR,;,af* :\ll2<`1$ kl) mKsj?NMXydv_N xEco_{HelSceHЀ/ EscvB.e)cackjRsswac&ff 1*Zer7\SLs$84PW'OMin=OctavIs Up35D+Vum#dowP`SLvlef1R- Zmd Try)ؑeu righw Љ vibra{andmremo  -`-- butnslo set theiroop limits.`?!}eC NH)!La(Jf6[FrS@lEgxeNfldR@Ropo:+sHs͹0m0&E@fjCEp ;4z~dJPBP0: ?20զ|I3njzR`" z>?8EJ!,Wt0D`O8{"""W:.IQ)I+I87Ppیb n&X#V$8 {J+N^q%e#6@Hb;x!;!Ŏ!,w"!:7"} ŰhBA1AojӁ lsȣ``4 rpXRLiFt@7 J vΔ vGP H#9: fqyp>Ȑ2:ȎU@*\E+Ak?|nWa4J 7 hk6<րôF \Bz ??gc^eTpJW@+6og',XE3kxL֯U-,:6r?FRrHxnÂgLP2?YH`Y43a`}c g&PaJSB?BBa[_6[|y6/At0u6/BV?Ǜ2.Tup|)^xѬcHY!<<% ƶtH̑003 Ev~c댛پQ6a=3RaZݬŶr)3^T6-nu.x)FA̝0)̫,MƲL u \??bv  bZ* WSOUNDs+x~qSy+L]qs,R3<@FLx_1(g6*so&/3ܪS9Bp|+<++ ̹xκrn|#x\B-):D5ȪU~ŕw/ZjqbΜlyIg\^[ywCoXΕq2ϵ2Ǟx΀zϻ2sB8WZW%-l9tʨ8?eà8m<Z &WV|24<| [Ín-5"kKNu[1}CanF edit|Q VRATO][Ok*ZGXNULL_xUxGvJUk3 k687C;HQf*>qL."T0gۏrBg8NNJ@c+NHk%#//9Bs&x#jA>|Xg(H!e&\F3foHx z/:"e Yap/#dݠfPAY [a3{Fؘ 3ػocT;"rPr:yxb(NN~$HGTIDXpp*6nS j\2 "YDDg38  0S2-`K<:܄:]$xBGvR M"Naf .fG }GjDE0REğ3p QA3ǝBB,0Uf |!t` MJBfRKNCCfA{>XIv( v 䃈g".,n ҢPzE#d@6XoObAP02>BFq| ЁA"z* Ca (l g 2l `RFFf3 /:INA\JfNP,0<fQ|Mups{"`Lb[2XDqyou +:|16orwrj!u4nFHI- appen*H[1|2|exit[3pTh filis noofhe cXect|l= 5 !][Sry.]sX|hW"HQήٔ\ׅBXP&Pkx=ljɽIB(tremoOoTRE.zDxꓯ3ҍM>?/ږ0}g!ȷ5 zHpHxq1AY&f$3fPDضzf$)di|Nuload v7to w{forQ'VeY X)u]8M,fMdb \ L^Tn[ -H٢D9Z Q2P+Ua=0Lݴa+jEJ 2U 548JG%Ò,jVb޳;`^ Oo|ĺJ ,-xv `z R &< ò}obfZ2dr` f P dG>WV @lu█l疄s|m4݉l.YC("m ի.'sl8D຤3jF,,E ]Fz(iEu=TxSBi tr!(}mFI#A\#M8NAۧr>3ɠ 8ɚN7,Z{lq_arYM-Tv1.8/&3RARYˀLejTWRT!.xT+RTYEJ082VMסzTRECCؽ .VPI 6gQpBƅ=$^7+ $0]`AnֲJfS T gXl. VUI(BBl"fnk"0:d_.HpqxF) o8> sTC waveform$*.VIB{-YP5r,TA `AIrt&8(<صiଃ*Tze@ 0 |[X\p BX\7P<^Qf1vsvZstL{X#BUjEq&QcQr` Zmsd5jf~ޔ1wqnsl, Jv >F'8##xn~xFnxc2;$t\qv6/C8腎x]xlWB0:PLbX |)\8: [X Ɔ:f'xZcFe7x$gdO< V|Pv:GVbtW 5%*A{H0//@gg:Df3 L}V̋_{y{֑Ԟ gœJ@275?NMXH@oRpfҨx`!Hfssbdolk[Pfnlx`KYkl1Mfway`ĤBgijU[1UIS,*2 2ss lefn&`m s(mouse s)8[Cl0k'loop'withightp|buttowhen ready@ ][Ok]3`lfmCLa!*TڡЬ?Zg`YM Tf$cker - 1992 A. VidovicJ?3nKw*A? UIYKTB< ܆ެDprҀ0fYBu j *Uf:"nǾߘ >"Hs4*YŔ_Xz죦HAl:>z?P6|!v2QY|W5pʢWzl``aZmL&+REo16`@2U jIGl` a" U>28aOSBoQo` bDm0p?r3ޜ{o>ެ<::g@MK8!o=JGgT2Gf(N`I254|ASDo z`Q[xn}%*/38/?FJMORUWY/3}_cdfgilklmnox^`?^ @sHg0g Ur3@W=f0H26:$- |1v">p02wo$z73Tg&z"ܣȆ046*2Confirm iBnew sound/"0F.`bHzlډ&\gf z@ p?BQ#vibrat[3clear the original|tremolo ?][Yes|No]F_ڄj*yTtz5ff'`ʐz!;-@x,c}Hn|فhLx쪢k|x ((.]q13(6:yTʫ>"G!4p.VHn$da$o6HBV½1`Oؾq=*lH?0 ^nucHR@|КL+a afdaJA60 Qattt3*r 4Bcv6*C6[qmHa4| o,~Xց~8u6 ahcP20b N+;2:XRaBh$|~o X 2x%?3Dt3vi.J0:$#dk@?Xuݮu#l f7 ] ZA 8SŰKaWM Րzk/WI{Ddgx"Ds<^ ^#Z//\-/]-ld*i>|DVw 9 Bx"^#;*q$WOD3{Dfg!5? FxN>&!"w(9O{J@k|Z&C3òHA? TT @_c1RjSC` z0:բ{PCJ!g . ,HR23?g(SA6::ޚGo$pCSEoQQNu7 64S+ lj{•juyr[nUw<; E2'"P-"s^<^+b[ neO7 {؀Ӆqb.{x-{xU兆- 2 A= jbm 'p&dWKk䁬A.\--v9ـl@`8n|+׆k}^ T˫ncmyjlD&[m>(wl8l0N4@j6:hmB|Blm CBCl,=  #؎\鑆P.^ m8}(l26p,k&F 'qّi.!jF`ӢDH[{GA^^-- ^# `-  x H5]4^-\- ^--^5\~TK maĀ础gl\^-g\^ Dd -l@8pgxrZZ-g^ qrR,.ꮀ7E础g-- ^+b)V ]Tu0<@r} VlLf,avW㱓=nbw)[](Z{bqQwCY WO'+Z!bD"r2sR]oZfn% {Z̬]Pu0r lkňdNyV3Q2=6bm 'fZZ% 3Z>Z#Ԙ-=`jiA-llP6f% [؂=فdC2H$2:Yoj f^% FkĶZZgNDZZ^Z(Zf'rcD>#vW"`n ^+b[R,.ꮀ7 {؀ӉYO(B3(WU2n:BavW㱣x="bw)RZZn% VkŶZZwND{*]3Z>h3= =&DҚ Q1 ^6^-^-^Xr xZr-lDf|NX029rsmh$>mIlꢘfP>*TcHX7P\ `(+p`x Z%ᶖ4nX&qRW#fM"HCp)J g " AgrJU )}A@\3~oTPl0qO<z:x4ŔEo:0:jQ2jTJ"S]~ꢀ~WX^ aw7>j&:8DD EZ"j FDm``ݿ+8eG?SBo2`-+J~J Gp̶J@g??NMX<g&r@)Dpfjul`Hftn nco3h|PffXJlBy[Xz?*_K 0谦vf`<R߄dp(>|8#z5@z1Qʏdnƍ8O ~J%*NkLJ@gL}lA9IV &_(b/+n% $ܥr   (X^zaqک 㢘r]ξKGGM`Pgր/CvxI\@xoA(|@̧=PdP(m@h /I4k.j%dL F(N ը*&ȁIqWvw0 / lϘ{ 8W``0 ܴ6xA^ЁupIkcO!:Ψo,Olxy{5otCZEra]Zx(_B <)>g=ڄG[7;_j6)3[8'7[ـ \\1E=/O{NxoonaޜO k O~[_<g}e]m͚דW[Çg^ ,7x5xo-= 6Y~ oA ﴅg>m@) 0iy / \ӓ >qGct? ӭsA3d=F!A{H:@ PE@dGx//uA&THټ ٞ WL`fp ghwx@~e7WJnʙ(<=ȹ /D/_yFnx_xmK%xݤ؁7[Guߠ'-",ٽSK?!6ěǦL -?QvUݐy{aVv|=@$`ئYK^^?RÐKeUuQBwKdl,lvf%Y}to{`po+7raCnWգs\%-M7)x%<ۘ9Ϳyo'`   j>yw~umYs:zxqNLO9O||i Sɕ%3Kx_0x <0 , p^Rk]lmʞu /@WܬY$E,\ X5GmKOˏ2sX<ṂW s2 '2ra (/eQr( _ E# $h>[C/0R-W.%݃;<(YƬLT_K%R-U Pl4$6Kva0؊'7nFl"PPoQ?҅,@?TTPw85@FP<#1p{p_ 0< PǘL(hE3i[Dg@$N࿽:z w ;+3er>xAVJ sPwH*jwرM8y/ @ZUIZЀx\]E'w)ʼn(<300Yd&6V&\ I98$^ր(! b?@- H%q$I[`,fN((QxUP,8K-,W'&Pï ǰ^P@gxC?KZou<@DP֟/ClP'8?88 8 ϧ|JZ43Bz="fUtxP̆8wX؀DW9>~9m` KScTQr9-aLJG mC(s!,Ë|aRdߎ,k  𡥃W\V?t,()d0'3,ehWw3 b|]*#<9'PǔPRPp=60nA%rs`C3N?x@A*"PKPQ(jQ@:jf RǴ Uq'Z 06 ] ((֬-|zrr]/` ǫUGm2|n8Q[g޽F/}Wp!ۮ -q:/jey>ǰ^N]XA ]"AB___fA4vL |oAAa7Aa Aa_<à:dÀ>>n_ UX3 I<>Q6%⿬B^9^Ѐ˛ܲqbv` {e%[}<{'HBn /c4=G/$@<)#wsW B,@@7Q (Y Ig kSG +py|Bs#,mz*`О?ͽڠky?̇7/Է虉5utm-,eʺؑ ?Y^lB+>WD 8sχhr෮ mL@K[;b/t݃K@[kSk>#so<^0ş<<ޗ+D^'89g^l3||lASx0$%&6< kA @I۶wyͰRô/IA :|/d"7@rAy@A  A(+|A0|}o|}o[yI]> *>zx%/!xmzAK^ВdrBڂ[im8Y:dwnn {Y>B!^9ȑG%{d兛D/=8oGx&7r<3p}_T ^뻇@UN# L.-V@mՃ YbxE?a>ˁ f? ?)d7wh ǬVv7%.݃_?t_\=؀PL(詉)()L(AGb\),&+O;qOyB{؂w/l(؋((<< )gG#3.BFj 9 }>R6LJGiת ta+殀8]B <WO+G_hB9>8#d xt*BxtP@ F@@ 5!g!"a^xo }1xAö+r +r!=5x,xxpa\kK^=NfdW)|D,(W. yQ܁w =@zrރ#ko_RO||UA;.}3 ˿l1-zA^Pdc^&?ޠ u[eCŧ9hBU{ x4-yG^r c>;U</0\q?>7=&ϙ!3bK'M/yGYMpw*߳#= 8aBƧU `@ @{ H>9rk)+\R?dKO qs t\M40N;hY#y:rb6ykȈ s6eKXq~t\L B@_SnG)VRSٙqxf?x$p!Ὲ-Gó£[T da VP $_Ssl=KBܬpCC~p OO@+gWO(eB˰g@l^+!M(;%Tj! oou ӥ+x/0;7]A6 cgxzs.h zRk ^m [Z[Tw :3_4;!x ظ@/qXP? /S$ 2W8 io  5_&|/7P61 = 岆Y{ux.%Ȗ(qfoxt ogaxwx,"/*`8"/Q0 mxҳϧNRֽ(nƹwx.u<|ʸ/ɔ"@ `LI bG,9 bʝ7%ua!6744vKZ'>,{ "F3 8 sfހ6PŒ&nxنר~;X'YlL7UFjJ^N (ansof5s&*=.Ox9) 1 O.9jHd" ] <3+m_t,$ "˅uAeI,ëxxB%s-.j]ju=(?$ߠM/lQB^Ёw sΨ{Qx\? *Qf,%n\X/)2 -nԭ1>p ݶd忣<n1ư`bIBU`Bnb}xK$:Һ݃i<3:WInǥpJe*`*,fؗt;$vkB@@wެJ2o6K-$V*sEd&xIQUb/ΧM^; ~ /!P!QCK k wq7<:=>ёϬ (| /,?C (  10e.5) 2Y9x |9Cxua Ŵl7x>g"AK-Ȍ%8 ^>m@chA B.jL!! |@>avKɄBr+ ^'3( V#C P@% B td|h*"<) ^ Ehk UfO/hC<,0d*,^PZY3<,8<@ICE! `}B#PV40 "}8EQ>?5 x|6*s]I$^r~+_kD^LJ%>0 7Й2Ӆs SyIV (b +nD .'RsW.TU (8J{qک 㢘t&k} 1G[FG P,o Ի5CЍOM@ A2@PlP(2h-{ PRoIГk%dL>(dv F x xs^1^(,I@6=CxA]u=/Zx#[ 3?:n(b#{>V/vm;<<:Ɓ=< @*w~[7Sgi1κc(xft\ fW8<{'gWђ*sE&<398azrruBNAPNhaI%߀\fdYsQtmf d\1& γ6o ߉qf+8E]scK|炪tƮ+3 <?l-;!g4X(3|󳮝Ӕ 헬xj|rnYӘsf\E;}ow /:aO5OAxyY=<]'<~YKNz. e:O< (?upFz^9ƁXtlVWB'0W7sq xS uz`r1qsoԟ3#`Fff8`qVZKy8Mƶ]!ru0*~<8Oes[Sry f ?wWXcKsN^ЦqxPNx| xAG/vzǀ'<WI]Bٳ3Cːxš^i?m2J{#1[>^ <+6Jù"s.ז?h 2ް`IP336<ì)qsJr9&78^ g)!/? xNd^>+0,oL˙˰vfnά ;1-j Տs\<ͳYΩ_{AK ޠN{ͣc5fS0Ƃ'">䏂gsP͟`Ɲe8 UNo' ^u@<*͍<-yec+8Mal pкwakGޛ',%aSQuO?_4<8!)fʺ@9)1cNN͔ulJD % ,cL0щ9q|^]8$\3%7E:9jWëkMuytpWN1ՅsytT0+3WN6s\&0.D12#gm;'f&șf'Ă? 30y :62r#rN}El?qx>\7 (&T؁7kK^Anka XxJxC %/^h- 75Bp.צՐƫ+!8|(֬\59W$հsܠ%OZWwjA92{N s% ^J࿨x3eEWO+&f:Q8_4]b]eM<87B+É xxvѵ/WBgC4xW\C8 L 1yftLLҜ32̺zęrB <Ďufcy!!|pCQs8xqq2x8#}A}}xC^QuC { OR.Ѐ x*T\DESx.)s%lA;Aa.| xjp>>>s Zb / * 2\  T*(`"L J6Wc; n:;(= Z xJ`"hSKKB0  ,7Q.@pdx*%$3+4F8a&:<X@ ,(Bv&BY@\p :.)?.xRhl~& z$ (* F0X8H3fB<`Od%^[Bޠt P ^m@R>t}8eg`L"NF& rJ m>`H< ?0@z3 02@xd,HJRRQ2,* 8 xxB(, V0d>vȋh X:@<V8:"&<.$$ x/j0 BRHdE. @ F T 4"",*2v^*V . 8ZH00~&Z 1  x [ 4 ^x^ꂺ tT, P|`G `Pack-IceI *L,L+a*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!%+0֢%= x  ΐӜ JJ#s{&kݞNAxƑ^KGp* D:0GbBځ 3 v(*B 8f"z?9@R5/C ,flG,%-TdF^bY!iQxE@pBِfBXx\$z0<?"$W2ajL,A`H:#Ob>b/9h^VnO R B7YNNPB "zAC1(^XAy0t%xA 22468:<\\\\\\\ނܘH*"zRC痠GRIM$>Cv p22468:<$_`S .o.3fJ.,Cf4e֖ g0[[#*0<rt, GHk1G(~6$Kp6GAWv|"J rRQE QGQMC#r*`P!*T mB!*YV$B8!t!9K)T UB! !#ue% / 1ЂVT' _Ns±8@k6Sg= 慰(g/l~," #f/3`0a BR*,R| N. /zI@f,~7#bSL`}u).9WgaBgHy>*J1NA`$`"1)I0@0ԭ`(&V`Hz ?j&NN\pφy` f 6 P`!ذ~D"I\" ~a !p#` B e*racke4MIXXBRAYM-TH@F'MsndSPjR,T P@m6o0R@yG0.Ϧ h0Ez | - 0 &s8(tH,{F50E0{lK3͚BT|s,7JUR$}3҃$2a0ask{ ,@6:ùV&P"h( f\b[Ep/,#bI-H3W JRN\Y$PfZ$Uu #X*gU/KB=2kJ0 f(ĪVB0}lL̄Bq %x|,c6\dގqf$8>6Z42VƠDg֛f,"!,"hUf&`#QFfy2 nhԀnf"G`VQnAa/a _F2#g{Ff]tB?A,0t(0k$R@Qmp4rRH0$zζ ^E8FvBlƕgZLV.*g6-Qgg R20RA`"P/X BB?D]fJgRp#"s(T&JKO҅fjcBRBH&Y &s@,vK& JfANT`"G+ETR"r҃"x@2< f B0衂UfiD@`ȥfp ;`9f.pB]&0<WЪa@\p!BYQ`,2A|f PܪPa E5qH2hԵȘ3Q6F="Ϟ.6b RB`%JCCp )} X~4%01l2a`PGa'0nC&* 40É8&6|$:CgB#RT p07ɄB@ lfĸ A𠾀*4JJp>gpTG UB U B1OwP*T Ղ2Hxv` Y : ,dcS < 8<2: '`!P#x&g 'x7YA,FhXWWA^ЁVbw uph&=Ƃ/ ^`F(탸 C[ GE-VVXXZZ%؝ AB8 8B!vEYEm'-'-38M?4IgqA  ꆸ`e  " &.6CGLPTW[^beh{  " ax:Ww8<`ۗӲ6w0~cB^ rHp d*oMuB_%僛%)I/PeB8:GmC <0z3G6G;Px _>^E-  +@ mԥ>  I 0 -.## * u>L @x:e'  @ Y F 3@NJxGxUDx4$9*/)+ (JclFu6+DX]CQ!YAUӐۃL#榬&RSB #@`1HO3p{d.Ύ`.:g   E x eHB2j?Xg8=<9^dʣ 896:ùV&P"h( f\b[Ep/,#bI-H3W JRN\Y$PfZ$Uu g#OXTgm^K̅z=d.N╌0[f(U/VB0ؘS Bq KxXl\f$p>lZ-4-2@g6fYDC,EК*Pf&FЂQf%d 0nh hn5f"`VQn܃/a _7F2GFf%tB?A/,0(0$R@Qmp4~.H04$z, EcvqBlj\ gZLm.rg6oje/@gg R20RA`߉"Pu`BBD؅fJ}R0"<0A(nrTK$]f6V,촡R/HL&Y&svK& JfD-T`r+]dJUR"rڏ҃"@2Pf ; B`RfiD@`ȥfp ;`9f.pB]&0<WЪa@\p!BYQ`,2|:f 8jT XQaMH'2F-23Q hO&"/Eq  b+RB'XJ sC )x_ VE~4v01 '[2a`PG &ʤ 40p"8&6$:CgB࿎T<@' pM2!AB@,+l  APr4JJpgp[x.zf`nWrxC H na;EpW8JYo SifCxS  @Ro" #g0:HAAR4PPNu N , i`w GGp1S#~Z8{fR?-%wqjd_YTPKGC?<852/-*(&$"s_Sk1xV5,N#el W3W03@T8 Lf;G | UDX\5_j]xfXJ|* YBP*T P[,)T4 UB`j{B ]!:aV@٥ZP  .  "#%&')*+,U ?'-38AhG;A@ e~-b] ˲ f HЈ`* F2/ GeX22FN2 "(   '0fq]vW'~X TGfZf@^` /0  < ϱ8 P I,v: M x6 `太!:5h1%ݑMw\ێM['?bn4^iZ0A]wN&1=܌s(%}29[WS-.͊xH)5d F<<7<2 5= 4 / B"<F" d:`6paBgHyb1j`$`'/10d@0XO `bV`Hz ?&NN\{ lxf ` P`!(A"\" Wa !p@#l ֯< B`+\Aracke2OWHATNAMEXBRAYM-@H@F'MԿ[dSPjR< U P@m6[0R@h0˳>0ZQbz -?CKA 0 5PND "2R  CS/2=!AxRP z {8V@Cat< p8pG,|g"K~~6~Qa4[ hYfRZ,cVSA@x5=a I[Zvxj?1KL? 6&Y(QO&s8(tH;^zFd E08K7~BT<,RR$z҃$2}a ,9Z s\Ȅf0(v/fV~ucf nS@v3\ @PNf J0*j@H*Xf |3Nf jnfT, QԂ f2d̪iRqUÎ fp; )5Jѱj_ f&s2kBdP fXa Pփ80K6:)_}JN&G"ЖF/ f\ۆ,pxy`gPTbMhHjlJؗNB,$؇fZ$#w=}tgyXgl[bK.ԃ1 vqd0f(zVB0fC\f$~C>`#Zm!4Hn2iJgִ f"B@,/V*Pf&6QnfX.'S@nkh@ nf"{VQn/a _6F2=rF'(fټtB?AE,0A(0&$R@Qmp4+uH0I$zg I/EvBlSJgZnmL.m g6|Sۖ( xBg?g R20RA`uN"PBBD.fJ3R8" (Pu m%^'LfJfg }RxH!f&Y&s vK& Jf~'jT`#+"SR"r~T҃"@2TNPf aB`JfED@`.f'p A`9f.pB20<V 3p!BYQ`,2A|f bTܭ +*3HD2ԨEƬ3Q5Ʉp"Р(xt!O.bXwRB-?JJCk )* *~4K018?2a`PGO`&T& 408&6F$:CgB::. p`n B@XlpA A}U/4JJp}gpy-<zf`bn+r=ADHGFFILPONMQTWVUTX ]\[^cbadihgjmortvv4A, &Bٌ!F p1 "lha -KXnOEӎΆGI=EaVĀwlW^  bD   [ - lۧ8l{c{ӯ^ Ԩ; gd6{[kÜ{rNx hҌ "54! $< !<9WlOso_<}7BS`Ȅ:! #" iq'0D؀W@D"4NxBN!sP'uDT3-n f R 36Ȅe1xVa.]Y0%ox )HwƝޒEQF3/S$7G< 4;Noɢ𠺚c6):< θ[(<*)nx' |{`9xƝAH-+("k%$ VS۷{,vu}8+5%l7@{UucHVAtu$S1K0Ru. ; F;B6$mLA+Qa'-)wTH`""&5 d'L" % _<9`(raBgHy)b1NA`$`E16S0@0[!sQ`LV`Hz ?&NN\x f l` P`!%"v\" Jua !p#-pa' Bl?(UrackeiH_CE_}XBRAYM-T29H@F'MdSPjRB P@m60R@'y40,0Vz >GOhR!ln 0 y6 @PsNf J4̬*Z-l{H3f|<3g1f Ӷ[jfm9T: Qȵ f2`'Y"jx\հ fpBJJ"ѱ* f\cBfPYy fX- fZl$ȀAs&laGgXgVK { Ȭ]*0&f(l^VB01ϧ2Bq ʗx𱌫ِ\y;!f$>Zr[4[2Zgmf,,U Tf&Q)fK`&nhPnjf"VQn/a _oF2@F fJvtB?A_,0-(0$R@Qmp4J]H0h$z>K *xEvuBlWgZpkL[m.\g6ڶDY gg R1>20RA`w"P"`6XBBD vfJaR9"=LxP(\h+/>IffU2; mR H1&Y.&s`αvK& Jf;QT`+iRR"r҃"@2r*f B`cTf-D@`rf=p `rf.ipB|I0<j1p!BYQ`,2W0A|*u << </8 B Z%!~  !0偹(WGǀ /#/uu x d Rf^P,WF(23q!)?^ xp}/5 xHޘ=Msz'$$ވ7Fw#^܄-W9YR 2~^gQOC/|ÊP"-#^W5,M3Yx0:d7{J* $ZەsxvwLA*?{຀7-) 80kV5uesOc֑ ͭBל3"YGfl 5əi;646"d8ctl3On:/Lc^&spx3=oAXǥ=`<Va6:ùV&P"h( f\b[Ep/,#bI-H3W JRN\Y$PfZ$Uu g#OXTgm^K̅z=d.N╌0[f(U/VB0ؘS Bq KxXl\f$p>lZ-4-2@g6fYDC,EК*Pf&FЂQf%d 0nh hn5f"`VQn܃/a _7F2GFf%tB?A/,0(0$R@Qmp4~.H04$z, EcvqBlj\ gZLm.rg6oje/@gg R20RA`߉"Pu`BBD؅fJ}R0"<0A(nrTK$]f6V,촡R/HL&Y&@YvK& Jf~'jT`#+"SR"r~T҃"@2TNPf aB`JfED@`.f'p A`9f.pB20<V 3p!BYQ`,2A|f bTܭ +*3HD2ԨEƬ3Q5Ʉp"Р(xt!ba_`EܵRB+JaCS ) ~4.01vd 2a`PG?q#&R 40N8D&6$:CgBœ褞 pI&$B@W`l5 AT4JJpqgp扂B\z$.f`RnrE #H3 vEzpJYo Sif/[X҈C  @Ro" #g0:H@AAC4<PPNu N , i`w GGp1S#~Z8{fR?- Uwqjd_YTPKGC?<852/-*(m$" ~5m 6a, W1@1 @# m hp &-K4ujNBLQ\Ps*T UҨBI *BBZ% @  es\{ PÂx$*/48&s8(tH,{F50E0{lK3͚BT|s,7JUR$}3҃$2a0ask{ ,@Z@ f\lhp呃CyRb5ɢeH檱Ja_N $`fZö$<`vgXJgmՋKPǀ⩒q0kf(¶VB0E|*3Bq |x ˸ \cf$> Z 42(g&f r,Z@f&QbfDLfnh5nf"VQn{P/a _F2F4tB?AV,0A(0&$R@Qmp4+uH0I$zg I/EvBlSJgZnmL.m g6|Sۖ( xBg?g R20RA`uN"PBBD.fJ3R8" (Pu m%^'LfJfg }RxH!f&Y&βvK& Jf;QT`+iRR"r҃"@2r*f B`cTf-D@`rf=p `rf.ipB|I0<j1p!BYQ`,2W0A|CGLPTW[^be&/>@  " Lހ/P)aB&N,ߩ e!/ O‹t k+X %0wXOJ % dN rS a~ТFsw-TO< s299DL-D >Zl*B@  d80^Yy   x= 0 =X7oYhvRڅ u5L: 0ا&:<- 1*ȥ5+նa+T$2@5.UEqpo xMx0)g<1F4܆ W'x!@#)MsPA#]ٞ,S@J.iM|{I S.wy,Z)) :d7wG,Yea%ix<^9,"M.]?K(wS,x A g-#xA^BU4$U'Îp)"v#0Z3x'u5ݦ"8 : m z )8#`ļd aBgHy|((v1NA`$`_1d3%ɢ0@02`DV`Hz ?W&NN\0Lf a P`!xQ"h7\" ɯT7q1a !p#_y B"^V RrackeefMAGIFORCXBRAYM- v H@F'MdSPjRxЪ P@m6Է0R@<ͣ0qg|0z >Z~G Qev 0 kBq Pxe\}̆\1f$>FZB42 ƔghfEd9,^U f&lQHf\"O3nրhnPf"VQn=(/a _l~F2zlFOPzUtB?A,0[(0\$R@Qmp4H0Ф$z EvQDzBlq%gZL.g6mK!gg R20RA`:'"P aBBDbfJR"Ä(UR/tafX%І>RH3&Y&hYvK& JfET`+LJR"rQ҃"R@29yBf jBa`R*fD@`fԞp p`9f.pBRˤ0< Z5p!BYQ`,2+A|@f Qܵ* &H2m3Qh'"Т8Ӆ؆b}qRBJCvN ) "~401S`-2a`PGƍ`H&e ~4088y&6o$:CgB_p p&B@ ^l  APr4JJpgp' "szHf`-nFBrs RH\ t EJYo SifҾlab҈Cy  @Ro" J#g0:HSAA4PPWNu N , i`w GGp1S#~Z8{fR?- WW?yqjd_YPKGC?<n52/-*(&$"gc? 'xP `uAd+s&Y\:.@xDB ! ~^#  % >UTB[fPXB!8OP\*sT UB u* #UMBwتP:B 7P@*WTr E  rXl 3 N} <SY^E!c#&'x0(A;c @x$,28>CGLP#[^beh&[{ ; 8<5Q9'0 7&=,B1G5L:P>TBXF[I_MbPeShVkYn\q_tavdxhЁqzj:Sف/  > i6(2Eq#).26:=@DGJLORTWY[]`'-38<`H  Fxt`\ x Z%+ kd0 \ma@aIa@!@܄udIțۂL #  `܍?R  $j%/ 1  @?  $ Tu0 x7 p)c1$Wkc;K +%#<GC持5n^9ŹZ a- #$asExg`k;r@s0l$xw%wt{v/ xWQx5YxUR̄ĚT36  :w]#V|`a2»Tt(8컳nYhoAEfE nꮺKkJaF ]C*UGOhR!ln 0 y6 @PsNf J4̬*Z-l{H3f|<3g1f Ӷ[jfm9T: Qȵ f2`'Y"jx\հ fpBJJ"ѱ* f\cBfPYy fX- fZl$ȀAs&laGgXgVK { Ȭ]*0&f(l^VB01ϧ2Bq ʗx𱌫ِ\y;!f$>Zr[4[2Zgmf,,U Tf&Q)fK`&nhPnjf"VQn/a _oF2@F fJvtB?A_,0-(0$R@Qmp4J]H0h$z>K *xEvuBlWgZpkL[m.\g6ڶDY gg R1>20RA`w"P"`6XBBD vfJaR9"=LxP(\h+/>IffU2; mR H1&Y.&s`αvK& Jf;QT`+iRR"r҃"@2r*f B`cTf-D@`rf=p `rf.ipB|I0<j1p!BYQ`,2W0A| A yx#P/1X eeË$WE iq=щ%&`<&k2$=4 xGvL1wz%[JQD}/^jLZx09$ 0]8 FG*. 8Vb=B́5l&xVP="}д4 x f\Vep#;KȺbjEHUcJþNbA$>ԇfZm$U3x;gX`gKsdS%0քf(mVB0>6&TfBBq x>q1\2o8f$>AZn A4r2K+PgMf@,x T*f&Qt#fr<nZhjn@ f"#0VQn/a _ F2葳F=Af.tB?A ,0(05$R@Qmp4_ H0M$z:?K *xEvuBlWgZpkL[m.\g6ڶDY gg R1>20RA`w"P"`6XBBD vfJaR9"=LxP(\h+/>IffU2; mR H1&Y.&s`αvK& Jf;QT`+iRR"r҃"@2r*f B`cTf-D@`rf=p `rf.ipB|I0<j1p!BYQ`,2W0A|wj_YTPGCϷ<852S*(& o'Af:`uAdra x+0e@@c/<G<)T L|33c1P* Ā X!?PRh"K{5  dřYtÀx.|AU<+<K!<#q[E/+-h/$Ed*//"4G` |RTWYZ\\^^  "($*/48)k '\ci qe4XoX#1E8kMs9uEl5ւ+Jk8-Ӥ"mLֹƢ"Fx xvR$0) ; !< O0 <oAːٺ G,[[V[RY$ ^7e!7c7€HԀeyl]F ED8Ĭ.EOːӀcaK`hxPނ!uV5BYI@g?9=pU )u]>+nOV l'N#q?: 0c-.舌B{b;Aw(7exNQq)U/Y>+',d v%n49 <* k`lY?*)"Vl%R9`6*\}aBgHy31NA`$`1l$0#@0SB`V`Hz ?(&NN\r?=)f 7 P`!/J"&\" &.a !p?#[‚+O B+ ~PrackeINTROOXBRAYM-T2H@F'MwdSPjRgСJ P@m6} 0R@<0wy\G [כ -?CKA 0 5PND "2R  CS/2=!AxRP z {8V@Cat< p8pG,|g"K~~6~Qa4[ hYfRZ,cVSA@x5=a I[Zvxj?1KL? 6&Y(QO&s8(tH;^zFd E08K7~BT<,RR$z҃$2}a ,9Z s\Ȅf0(v/fV~ucf nS@v3\ @PNf J0*j@H*XfU|3f i[VfTxQԂZ f2,A5M6:ùq&S"ХQ f\Ķ*p^9Y:G.bU,ZHfJN $>fZl$ȀAs&laGlXUgm^K̅z=d.N╌0[f(U/VB0ؘS Bq KxXl\f$p>lZ-4-2@g6fYDC,EК*Pf&FЂQf%d 0nh hn5f"`VQn܃/a _7F2GFtB?A ,0(05$R@Qmp4_ H0-N$zg I/EvBlSJgZnmL.m g6|Sۖ( xBg?g R20RA`uN"PBBD.fJ3R8" (Pu m%^'LfJfg }RxH!f&Y&s vK& Jf~'jT`#+"SR"r~T҃"@2TNPf aB`JfED@`.f'p A`9f.pB20<V 3p!BYQ`,2A|f bTܭ +*3HD2ԨEƬ3Q5Ʉp"Р(xt!ba_`EܵRB+JaCS ) ~4.01vd 2a`PG?q#&R 40N8D&6$:CgBœ褞 pI&$B@W`l5 AT4JJpqgp扂B\z$.f`RnrE #H3 vEzpJYo Sif/[X҈C  @Ro" #g0:H@AAC4<PPNu N , i`w GGp1S#~Z8{fR?-U音wqjd_YTPKGC<8/-*1^&> cj6ౄ57oS98}c̑, 311@cP1<5,H #2ZtUeffc UݨB GLB)nk,ަ+BE9r! [ VbKL$ Ma"-CQ[(~QB_׽:!l"#\%'e()z*,/`g10h  8 ̄;Jdi &*.26:">&B*F.J2N6R:V>ZB^FbJfNjRnVrZv^zb~f&B<FhKVL--E C0 ˄Y6DnR H) d$  .& ph*+ I -,*4P7!c%I HbTcZ;X \";(#A #!>/ZL4 /000? NnW$T%gNzI Zt uf~^ЂWh+Z/x ^gxA ^ЀG"Ǭm<Vհ3L AqrVxF0Tya{psZ#b&e:+jraLU+fk" `b+ j2V,3YY+\ u^w1榈5:ӖP3)84BJT&DV2z%/h *{*쩬H$"TU@T`?& ^ nh؅݊ v  x14Kc!! 08a%VTС05Rq^Ѕ*Rq^Xl -yAK^nŋmxA#^m‹čxA^JmC_xz~?e xɸ Mx!LxqNPل„!W/yaxɸ=fq >8/7<WBWq=%<3Y0=xq]tuAݩJo„@_8{K x[Ёug1+Y /޻<8/7oA^Pԝf!L xx5M HPYЁuGV>& S8.k koRАroEx:>!'y'} K !xoExa>G_e xCό  OB.7e xLVx!LxY2~3ނ.;YBGM/?7)BT6.#Q}@aև5_69@x^P7(]l}X/nnSS} ="<7>u/ϓr !^ޗ̣e̠X)u~4+ :޸&/ѷsAޑ-};wxA]P@1„[ڀ/ fƅ0ݣqQ]m :. a‹ xOLbf^Ёuq!Lx/ xQ]|l : c1.-y!LxEuEuy.tuA0ZYPx3{pQͨ\T_7ꬠ @] /t:G+iQ]]BGOĮ͂#/"D {^Hs"<{vIЁWu»0}4w$^( A:]Bm)Gܦ/יtxA` ;'|;f^E/O?;#x"pJ8a^WX[xaͰ+U:9<)ِކ^lyUY1n! 0m2wo=ofW>gGo\&`@lzϴd݆ G{iR@$OO@^?_98j߇x_gtp\P&d1|@^V5bL} ˮMO+{ov@"_i~}|ۿA9@ހAbٙ7fgirg. >y7 |W- { q9Գ'7tzxz s矉bovx\x~?@d#9f@'ݧvOP݂0H[R vIpsc  %![^nfyytyՙ[π.U+]`b\n|e''=uk 2@Q?꿟?놷f:<}mfp]míw:r}ȏ|HozoGpul6vf`@&_ܖ-.y^kd@^ d ` Z/l80;;:#wtxHu nNu\;tO3ՍNgx} hfy֞s5, Ϭ>[V#Be^]ˡ3_ɡۃ`wUC@nm3>ͪ0c `ྙ9Gwn@ƽUW=ѓwCNn_1_n+̏@isArh^Lyaq x@eƀ"Gْ}Ύ}I>9Жl8m`[gVJnFfz$+ƀEcwΏ@ݼp3!a'.,ݴq`ۀ1F7fdT@?O` Šف,nv6lŸl\GeA`N`7h`lvj܀ƀEcKଈܹ݀5ܿ˟e4*IP׃ r ݝqVJ,x/@4,N܁][ x*ٛ ݦnCFdTۂ8.:~~Й06bu,ma;bX5eaпxc\P7@.`'ĺdzd89@ 0dY @ &:Z`4m^ {p]} q(@m1 `?3V=- aٙ؁.*|aus<=| A_Xװ$i-@^bi:əxyKEvdfgdxO$؃c6L͘-) FwP&fnԀ Jff0xY xeas'@d'`z @gwcnOwa\&_@c/F F&7bFd& 4 ;iF ;ȏvbޅ6V =l!-?w<|A"k ԑK/7 vY0US xπpso' Gא <3 XP@ewf@bL@'X4 >P}g`D`@HiA|y?`f?@ _}K fN`@)_suFF``Cx9t7V>d -nޅq,L$"`d-v?_f$6`+@Td$/U3 b a». swp\Tภ/ A&vD][T&v :&d@Tx/ xQ? :` A3inQ?s^Ёg  uNFbf^T3𢺘ـtuA]Œʸ&؀.>6xA]P ,օ%o >ès0aAqԍ޸&>0g>Ø%v :nƅ0Эs}3ׇQۗ0x}cݾnAԍԸ&/澄9 F羄nQ݂#/q%+%o /7Eu1/ xAԍ޸&xۀ.6xG^P7fBbk^T[:z%u :nƅ0M=ݣqA^PWEfؒ[򂖼&~DmG֏~ G~xGQ[?rO#g_@mgBs9xs$vI " ل-~x/LI^E~xSܚY%ܑl t v?<B`K^В„%6x_2nS%a / KGm OdݦK_.» Mx!L'/;dQ?7Sx\xAހax%/,%/h z.;Y͂F/h ꂺ,h z.;YI͂F/h ꂺ#+YЈ xA]P72 /  ,fA#^l ZF/h ꂺnĕxA^Ѐu@yBeK^Xl -yAK^Ј xA]PgxABB@u/  A#^Ѓ7duA;eM^Xl -yAK^Ј xA]P/+*BB@A#^ЃWTuA$$ &h z .s/+*A#^Ѓ7duA Fo @:xAސu|:f {,|T: ۓ*-025,./1(1&6 !"#$%+&34)0GV, .6/i  \0-h )| 34r-,򺱤lU)nl^3llh<kM»xյ5Ռ>Ua4Oi˹Y ^MRL :h ? LM/b#̬[Yxpۂqb9*ޱTq=3Yo$Qfo>b?\OXf\ϸmݰE=ē x{ x%xA^PdA]M8ga5S*&͈ JYͤbiI %% 5Տ0xQB#M;1$(( zip" aYXr5%Àx?;z?[??W/AqW6xpnT]sSx,Pkx4!rH?89^SM﹠.~b~ <+ W(Za)+qY_ 8ˌxѱmfqJn:sNY f\xt}3 lm-8l48!పd [pFǴOodl/}f*p FgLfEq'՚"?2f^lۖFJ 8bsefQ p 5n2`-e2KLUيqĩpf~*FB>x700 O,ˢ#oqqVd$G%A!|&++`fC4 ωN`znKSU(UΒuvk\$&5g8^xxty/b^75jZa `Tr?ƈiP:挋;C♕L(M,fA ^mKxA6l&RA3?[ʳvTb]/Rc4љʙ1qCT[r˽YPlxf*x[x?A6tU<7] HL@όV[ulgs]dZjq-cl&a0,[M 9*,* Hd-saur0V*p2xjRe{Syd/IpPcE rkcuYD56 Hz4:-Z4`̤fb.5Fx-F-2ˁY,$5X4\[MQ2h[ma3;s]ok6iuBn Sb\TnN4A 3s0ٞf-Ѣ%p>JxJRqvtKl0=)@sUPYte%3v0`mt10rz=>Zd}-Wju| ' xd*2EnE- jo[* Oiyhr ِw?ib1;BfBgs Lrs.1.0sis@wdu]HJokY 3EXek\$ ATAR~)Ȁ0Y>ePef-2149[Tdp -ifp W0@!jAY~ne@A+7XOppemM@ 1992򱰆1YIvd*y shyrV-powuZew YMWق!hS6ciT`=ngeeYrrp+ؠ5!E, :VaB, BV(ckİGtQ`e=JɦFAl@ϑSTYnc>>}fc$?4,goz݃uvkpyuuo*0o$ni!" %GWhcKtablC,tn//rye/T Fwr&VSG@l/Ϳotid/C o/(T)/HoY>^f~mXPRkHubb+V'gH5Qr\KupEpc&s{Max`Jo:Hipl."n(ee?zikkMN'Guy I:"GaPlum"?aw r(PnRobJW(os 0CG6ivjiOg6։i*$S& EmTrami+SrmaJXU& UkDHouZweR!)% [`=+*B +gdDCfc2S*Sup^l oc* : " FM R->ddigd!doĆ%na'@id-0XBJa|n-aaQma3ms > Ti!.for E.op wrI!beca8e, iCIi; \ iscrotext,mu2(avgooa leg9ry ,R$2 Do yG5A8You don'pm? CRXlly? TS IfBwno*sthenDi% tartzading else~%press Ospace>)) ; k?P.WWYM_TRACK.RSCg'Txm 0@P`pppppppqrstuvwgWG7'4ԁ@& P "B"(< ,fy YM-Tv1.0 NULL_SNDBASSSNDBASSDRUMTRUCRUMMACHINMBOUSEMALDOMTRUC_BISACCOMPS OSTINATO DRO RDRDRO SPEECHO SPEAKERCOURGLNULL_VIBBASSVIBBASSDRUM8TRUCRUM̄JMACHINMJ?BOUSEIB  &*.26:">&B*F.J2N6R:V>ZB^FbJfNjRnVrZv^zb~fALDOVIB  ALDOBISACCOMPB<FhVOSTINATO DRRDRDVIBLSPEECHZ                        SPEAKER     < ,($ "&, $$$  & $("  55COURGLB",8JX*NULL_TREBASSTREBASSDRUM?TRUCRUM  h$MACHINM BOUSERE  ALDOTRE TRUC_BISACCOMPS OSTINATO RDRDTRERDRDTRE                                                                                                .    A               0                :            .  ++#OO15 .++ 1 >5> 0 YY 3  8 ++FF B [[ A 0<0:=:C?C =<  = A< +:+#OO  ++>>YY++FF[[  00::CC#: 8  q p5 <      +A23<    }5Y5. +F[    0 : C'3 . ++O: +>Y5. +F[    0 : C.   .   . .<  . . . . .  .  . . . .  . . .=  . . . . ., . . . . .   .   . ) . 8 . A . M .  .  .  " .  0 . 3 . A . P .  .   . , .  ; . D . P .   .  .   . . . 8 . A . K .   .    .  ) .  8 .  A .  M .   .   .    " .    0 .  3 .  A .  P .   .    .  , .    ; .  D .  P .    .   .    .  . .  8 .  A .  K . )  .  A  . M ) . \ 8 .  A .  M . )  . 8  .  F " .  T 0 . W 3 .  A .  P . ,  . D   . P , .  _ ; .  D .  P . 0   . :  . D   . R . . \ 8 .  A .  K . )  . A  . M ) . \ 8 .  A .  M . )  . 8  .  F " .  T 0 . W 3 .  A .  P . ,  . D   . P , .  _ ; .  D .  P . 0   . :  . D   . R . . \ 8 .  A .  K .   . 5 )  .A 5 ) .P D 8 .Y M A . Y M .   .,    .: . " .H < 0 .K ? 3 .Y M A . \ P .    .8 ,   .D 8 , .S G ; .\ P D . \ P .$    .. "  .8 ,   .F : . .P D 8 .Y M A . W K .   !+++#OOO2+++>>>YYY+++FFF[[[   000:::CCC#   !+++ OOO2+++>>>YYY+++FFF[[[   000:::CCC#   !++#OO2++>>YY++F F[[    0 0: :CC#   !++#OO2++>>YY++F F[[    0 0: :C C#   !+#O2+>Y+ F[    0 :C#   !+#O2+>Y+ F[    0 : C# C+O7[+C7OC[O+ [ 7 C+O7[+C7OC[O+[7C+O7[+C7OC[O+ [ 7 C+O7[+C7OC[O+[7>&J2V&>2J>VJ&V2>&J2V&>2J>VJ&V2>&J2V&>2J>VJ&V2>&J2V&>2J>VJ&V2 $H0T$<`0H <TH`$T 0`< $H0T$<`0H <TH`$T 0`< $H0T$<`0H <TH`$T 0`< $H0T$<`0H <TH`$T 0`<s`   8    +8+8+8 +)   .)   .)  ) .,  8 .)  A .)  M .)   .,   ..   " .0   0 .3  3 .5  A .8  P .,   .,    .,  , ./   ; .,  D .,  P .<    .:   .8    .:  . .8  8 .5  A .3  K .5   . 5   .5  ) .8  8 .5  A .5  M .5   .8   .:   " .<   0 .?  3 .A  A .D  P .8   .8    .8  , .;   ; .8  D .8  P .H    .F   .D    .F  . .D  8 .A  A .?  K .A   .A   .A  ) .D  8 .A  A .A  M .A   .D   .F   " .H   0 .K  3 .M  A .P  P .D   .D    .D  , .G   ; .D  D .D  P .T    .R   .P    .R  . .P  8 .M  A .K  K .M   . M   .M  ) .P  8 .M  A .M  M .M   .P   .R   " .T   0 .W  3 .Y  A .\  P .P   .P    .P  , .S   ; .P  D .P  P .`    .^   .\    .^  . .\  8 .Y  A .W  K .:    . 535: 3535!   FF B DISQUE@ @ #T 03 00 02 FF CORBEILLE@ @ #F FF 04 @ *.*@ #D FF 01 @ *.*@ #G 03 FF *.PRG@ @ #G 03 FF *.APP@ @ #F 03 04 *.TOS@ @ >.  r..  rCLICK_ONME k+TRAK_ST PRG [{`Patterns - Any piece of music written with SoundTracker 2.1 is build up from patterns. SoundTracker holds a table with information about the sequence in which these parts must be played. With 'Position' you determine your position in the table. With 'Pattern' you define what pattern to play at that position. 'Length' defines the total size of the table. Keys ---- The keys on your Amiga have been grouped to represent the layout of a two-octave piano-keyboard. You can "shift" the keyboard one octave up or down with the aid of the F1 and F2 keys, thus incrementing the range of the keyboard to three octaves. Editing - Cursor-keys move cursor. shift + Cursor-keys move cursor fast. alt + Cursor-keys move cursor fastest. F6 - Set cursor to first line of pattern. F7 - Set cursor to 16th line of pattern. F8 - Set cursor to 32th line of pattern. F9 - Set cursor to 48th line of pattern. F10 - Set cursor to last line of pattern. DEL - Delete note under cursor. shift + F3 - Cut track of current pattern and copy into copy-buffer. shift + F4 - Copy track of current pattern into copy-buffer. shift + F5 - Copy buffer to track of current pattern. alt + F3 - Cut the whole pattern and copy into copy-buffer. alt + F4 - Copy pattern into copy-buffer. alt + F5 - Copy buffer to current pattern.  Special Keys - To quit SoundTracker 2.1 point the mousepointer at 0,0 and press: alt + shift + left and right mousebutton together !!!! Instruments - You can use up to fifteen different instruments in one music-piece. All instruments are listed in the preset-list. The volume is always 64 but you can change it to each value between 0 and 64. Notes - C#1 3 C 2 3 / / | \| / / | Arpeggio,portamento,volume,speed,filter and position info. / / Command / Inst# Note to be played. Note This is simply the note that must be ---- played by that particular instrument. Inst# This is the number of the instrument that must be used to play - the note. When the instrument number is zero, the last selected instrument will be used. Command This number tells SoundTracker what special functions must be - performed while playing the note. These functions are: 0 - Normal play or arpeggio. 1 - Portamento up. 2 - Portamento down. B - Position jump! C - Set volume. D - Pattern break! E - Set filter on/off F - Set speed. Info This byte contains the additional information for the commands. ----  Arpeggio Arpeggio is used for simulating accords. It does this by - rapidly changing the notes while playing an instrument. Arpeggios are selected whenever the info byte has a non-zero value and no other commands are selected. When arpeggios are used, SoundTracker looks five times during the play of one note, at the information contained in the info byte. Each nibble (4 bits) in this byte defines how many notes SoundTracker must add to the the note currently playing. In each of the five passes SoundTracker does the following with the information contained in the info byte :  1 - Add the first nibble to the current note. 2 - Add the second nibble to the current note. 3 - Play the current note. 4 - Add the first nibble to the current note. 5 - Add the second nibble to the current note. Portamento Portamento is used for 'sliding' of the instrument. - If portamento is in use, the information contained in the info byte will be added to (or subtracted from) the period of the note playing in each of the five passes. Example: D#2 3208 Slides down $08 --- 0208 Slides down $08 --- 0108 Slides up $08 --- 0210 Slides down $10 (=16) etc. Position jump The position jump command will do the same like the - pattern break command, but the info byte gives the playroutine the no. of the position. Example: E-2 3B04 - Break the pattern and jump to position 4 --- 0000 --- 0B06 - Break the pattern and jump to position 6 Volume One of the enhancements that the V2.1 version provides is the - ability to change the volume at any time during play. When command $0C (=12) is selected, the volume is set to the value contained in the info byte. The volume will remain at this level until a next SAMPLE is played. At this time, the volume is reset to the default volume level of that sample. Example: C#1 1C22 - Set volume to $22 (=34) and use instrument # 1 to play the C#1 note. D-2 0000 - Use instrument # 1 to play the D-2 note. (Volume level remains at $22 (=34)) B-1 1000 - Use instrument # 1 to play the B-1 note and set volume to default value for that instrument. Pattern break Pattern break is used to create shorter patterns than 64 - notes. The note with the $0D command will be played and after that the next pattern in the pos-table will be played. Example: A#3 1D00 - At this point the pattern interrupts. --- 0D00 - Look upper line. C-1 0D30 - Look upper line. Filter This Soundtracker version allows you to turn - the lo-pass filter on/off. Example: G#2 1E01 - Turns the filter and the power-led off. --- 0000 E-1 1E00 - Turns the filter and the power-led on. Speed This function allows changing the speed during play. - You can only enter a speed between 01 and 0F. Setting the info byte to zero doesn't effect anything. The normal speed is 6. Example: D-2 4F05 - Set speed to 5 --- 0000 E-1 0F00 - Nothing happens to speed. --- 0FC3 - Set speed to 3 G-2 2F06 - Set normal speed * 8!/M_TRACKPRG 2 >!pM_TRACKRSC  T!VO MOD k l!&{`^ *o$|B?< NA/@ L&JY(JY,|@: gtae `6xva|fb4`ahd6adda`eraBRB`aNex6<aPf6DV6a"J!Q`f Nuxrtf BQ2RAISAfNurtf BQNua6t`v `THX!L\(H*I8vm"MLaOA70[HTc޿\)Za#4JagcM PYܠdKfTRՇb~;ُBxs (o"(rgf '<]RNuf$JCg8 SC'S2 RA@4~ *$z)qg0C2SA_eÚ20DlRC`lix P'$ ,.JQWd#؟n*\ZM;|:_! ͓0b!Y{E'{/Z=tA^ZERTYUIOP[]QSDFGHJKLML#WXCVBN?.:=ť_-k#4()/*WE0f8bEu If<^ 8)1@~#!`c'x}%`2! '/`4cU~9OѴb~AƞWH'O~N/~Fz||? !"#$%&'()*+,-./C1:#Et aJR5.|m,|""# Lr3HfBdfRHĠ>B$4p>)40$62AlAIfD{`\Z pA`6 0123456789ABCDEFUp 2B8 V" ej vna6<4I({.go6"@ntȒX[:Xz! `%*D[L5j%a[G'LUE&Ja$`d5S%X.%o%%[%Vh5%!%Ha\ Cfpš3Uk0[zG'RDR9vtH!͒_TZK (A*$V5XD+Yyؿy ӢVpocԋ$oƤ0:XGoA>,*6(,sA'Fgg3RL)$0$2e9S}4]rj@(#Z&[qX |ptnf ٿf#Nu:oyl2M (Arn e8}NAd"CkqkY0246g/HafJfLh%aV+_:N0:cF1HF_V(gxgQ3R܄k\"߈`ΦB x8,T7LJB0"z x I4bym F<$PI!A&:`pA4Lfk$5^UL>B{Az_&* &Q  F8djJ($j1آ6h3X:.F/%g3&q` #ac 4BYIBp`Z GLIS@FFRENCHm F.c&(gg"`&%{ C <) 8ONOFͤMLg_h`4 Tx`"DzzE`vAiE *-4r`B44%|T .rȐ\!YκNX/ .R$z{pz PpaR0paAppif:`a`hN|)}02(3>,(LHHƓܱ'm'vvE'z"U >_4g w<Cv"IP$QIfpn$DkD)Ȫ"Df"(/UKoHb4I_D$`IPh"hTX84\Nu gLHJNqxB: RB4B80 !0CQΗ(ԅ,pxl10JNE(g ]86A^0L?+M>l ELVl:x" $362)&L$/A 0_'ilXYBv^LV*Dj"8Ig0+Nk^+LH&F̣ 3$L2}+DJD"$dQ"d'֬2$H0,ݢ9jN@5("acgQ& "z&?0<Nu+9'qJŚgrpl(Rrn tA6r2bҁЁQi<#¹+"yQN . ArtC|Bjv(*{DHE1D61E؈F%XEHD0QRBQafNuqh4A.E `&!D#Rwc)MAu 7-𵉬z\0.2:,fzg$zGx_o3,37.t4ێcJ8qCIAHC|g<`-"&.O(2FC@1Cv4,#*ELT~x$Р$\$PIFB1BFZ?Izs0R2:PaTPLNuH0By/$z*Gp*$OHE&$%[Bj1L qgU0B3|gS*jnBy<>?㨸g/° Jg<-r`0p>f2Yzpg2lz^9KPifp*rv0'Jl Db`L8L`B`808' 6:.,{8'kxr2F |wz 9$8oID9r/xO`Q b$c}9};`sO_`s(N048;}H;`sPNX4`h;`spNx44͐;`sNӠ4Ͱ;`sN88Ѓ8888886ps08Á(0088s7H08PsX`h08psx8s08s28s#aa(h0G802BFRBV AV G @j $rh#i[ !%!~qXr ! Y r !X ۘ `N!)&&&&mpvŠSg^f(/(m(^ (1(Um(y0zp?gz`\p\_upлu00( 0(C0((=azĶ/޼s0tv9`9p9((zP(]kP(0P([P(n`oPpP`PpP;P``.`+`0AhxY9Fuޤo0 2FIc fJ2xD)x)R;KC< X4:D] np8IGAl%O0dH8RqAbᆁ&Iwz \GJyJf"J>CEtH,GFƳֈ,$a4!P9x004%,&0*#.:2#,1\6`)d<)(Ta"BMlY8UOLp HNs`D!D"D!B'O?1ވD!B'O?"c=!B'O?"!2B.tB,"II!2["O,<"!B. OD"!PB," B-d_MD" ̼_^ |B؅O|[ Ъ|A ؄Y$2x1=$thv!)!IbN x4z!!B/5b|v! cHd~!2]$*x=; "x;b I !Y*6He b<EB]$ E@)؄]z!D؂S +!0B'K ."x < tBnEb|C؄Y%x,;䂣!D$/ HEC.=^l]IxDXv!2b<x;B,l\hmq bt[<&5!,oH D"Sm>;KtCbtCn/|x%1b2xTZTB)؂]k lB)؅] tCne WD6$C!PC'4v WD&]Tv(=%1 w<Ɓ1!1!PC'hAgBˢ t@!w>؁OTB؅]~ xe  %!D؄O!m =@[ <؂] tAmdb <=!Dxm DC!WFUz WD % ,:؃[I:ؠ ǂO tB'[ T+b <؅_  2LA-U!FD,B)! FlAI!D[ LA. >'% d|xE1! e1N4*   ThE1 6I 8D?"?OB'OB'Љ!hD4"D?"?OB'G 1 4pMAA2I *zt08h2cu!e6 8tdt-t FN FtHtdt-t FsHsds-s FsHsds-s FsHsdr-r FrHrdr-r FrHrdr-r FqHqdq-q FqHqdq-q FqHqdp-p FpHpdp-p FpHpdp-o FoHodo-o FoHodo-o FoHndn-n FnHndn-n FnHndn-m FmHmdm-m FmHmdm-m FmHldl-l FlHldl-l FlHldl-k FkHkdk-k FkHkdk-k FkHjdj-j FjHjdj-j FjHjdi-i FiHidi-i FiHidi-i FhHh$C2Kɒ,Cx$ ^2DK*,]h$]b%dܖ!’XIb%dt!ZXKud&.g ,C$ ؒ2Kɤ,C$ p2VK<,C"$tfud!ԒXIb%d*&XHBbi! **eUM$!V4ZBkIUM$!V4ZBkIUM$!VTdBbi! *&XHBbi! *&XHBbc ZBkIUM$!V4ZBkIUM$!V4ZBkIb*&XHBbi! *&XHBbi! *&XaH!V4ZBkIUM$!V4ZBkIUM$!V4ZRj2BkIUM$!V4ZBkIUM$!V4ZBkI_*&XHBbi! *&XHBbi! *&X^H!V4ZBkIUM$!V4ZBkIUM$!VT]Bbi! *&XHBbi! *&XHBbi! \kIUWhb66Ĉe1le1te1h^*z[€0e4Le1[cKSI[Z2[@[[$h[Z2[@ZZ$hZZ2Z@ZZ$hZZ2Z@ZZ$hYZ2Y@YY$hYZ2Y@YY$hYZ2X@XX$hXZ2X@XX$hXZ2X@XW$hWZ2W@WW$hWZ2W@WW$hWZ2V@VV$hVZ2V@VV$hVZ2V@VU$hUZ2U@UU$hUZ2U@UU$hUZ2T@TT$hTZ2T@TT$hTZ2T@TS$hSZ2S@SS$hSZ2S@SS$hRZ2R@RR$hRZ2R@RR$hRZ2R@QQ$hQZ2Q@QQ$hQZ2Q@QQ$hPZ2P@PP$hPZ2P@PP$hPZ2P@OO$hOZ2OAOtcO$ьOGF2OAOtcO$ьNGF2NANtcN$ьNGF2NANtcN$ьNGF2NAMtcM$ьMGF2MAMtcM$ьMGF2MAMtcM$ьLGF2LALtcL$ьLGF2LAL*2LA LBK$K*2KA KBK$K*2KA KBK$K*2JA JBJ$J*2JA JBJ$J*2JA JBI$I*2IA IBI$I*2IA IBI$I*2HA HBH$H*2HA HBH$H*2HA HBG$G*2GA GBG$G*2GA GBG$G*2FA FBF$F*2FA FBF$F*2FA EBE$E*2EA EBE$E*2EA EBE$D*2DA DBD$D*2DA DB'xBD$D*2CA CBC$C*2CA CBC$C*2CA CBB$B*2BA BB$c|ccx*zB0c)$BS2D2BHBdB-A FAHAdA-A FAHAdA-A FAHђђђђђђђђђђ?d?-? F?H?d?-? F?H?d?-> F>H>d>-> F>H>d>-> F>H=d=-= F=H=d=-= F=H=d=-< F$ $ Ed!֒XIb%d!nXTIb:%dXH 2Kɸ,C$ 2jKP,C6$ Q!XIb%d!bf%dL!2XN2K,C$ 2K|,Cb$ H2.KI!XIb%d!XxIb^%dD!*XH2K,C$ 2Kt,CZ$ &,] $XIb%d!XIbp%dV!4cUƄ;A($ MI$" KhD `B$箄IwA$&$%"J`r $IWB$I!CA$2:I`I$"J%B$HD`" $IWB$HDtI`$A$C D:T^Y8aj8F%JogSU3Pa8|6a4ubh` lRp`B ja8^kyئn0:RczcLb;JHrF{IpICJ`CmF(;N.RNu xq!)\89AHIjCiedb ,$OK9K$~r%*p )xC,&g6pNZwoxɜ9 Dy8njIk/ܶ̐os9 |G8`H,#iq߼81pcf'$4.g05:$A?}np1 wp8 "Ӄ7a>380<#@cA$mXj%|O}NAn,?nDqޅʢ !J߁AHJ]@\sCYB|`'s_w|f8 fGN(K`|#۝9{wxB92sg|8$Id;<o*oek^ٳ<z/ ,X^Y>0h}?3~Rg3h\!?|だ[,v?_7#Ev O4}_u66'?(wfŕxD|474Qvovnزl|q?77d0&AL30f ^YlA6$,|$>do ߿fpl Afp`͟2tT" iMIpVz(isMHx i/3爿Ϟ">xL?9r sf=FR%`,KadG2i,H r r sr͜ W#qM*4pT3RR3RN+vUA"#Gb,IAa'^#ĴC"H~<"%ʾX{0g_ * ӟD> <>Hq<~~-*0*ޠhnyjs ~?~wݼd ~/o~}ȪXaNc>hJ *"*6?9E/ew6 QE`Eq_y{(qdKQc^`x xxp?PxI 'eQLypwxI ~-$ 3 v?< 2dxaˆ$$$}X[H%$hǙ@Vc|(t<<#/Zy6Z"Vh%xws`#Ѓ~_4P. %6Ykc(uBs'(7ko{_FQ@Z#cpfN~O>f1c< ŗDm1!H=%[1$jDjUZoy$xEUUJE$LZ촦-THz bPf \ "hUAQd((o o?-:LAs"7 ( TE%TUEQQP3./DAc}EAQUTk- (Z,r-ިa (*LQiUEUUEQˢxUTATEPUTͷJd("؈W*+*oJ%I59U9UURo9఍;% P4T~}T~c)Rv,Hw8T~m٠$*%P$bhld,to~`Y 7#X~cp?bY 9&w☖B;8svG^>9Lp^!؆?`-0 ^c|rDuf^,9=0o3w 1,l]?,~Y Ň7B?x9āìwn>g@>p&Lbfr&k?f}(0,q?~0cU,s7 ? ~s︁w?߳L>\1Θ gq#|FJ*Ho?N"F!dw!a=Y!$?}dē^ێ,l899C3d-O"! E4g8~,$\BElj~d!$dn:,3fD̙>ruHY;$lY <Vyg?IJ&ؖC+6?q)?w,^~}d(0̦ #N'[Yq|4Y笿 8"Xo~,If|cp #K!,߾ 娖Bq8>3?bn;%?{!?~$!j;9^1fę|sزRqTq:C1̐ywIO> ĩh`eLjVg"^Ul8Tq02/w? m8;~ 3pǘP`72g0ς!Ø|o$&JӪ7.X=P;D;,K$1,ycJ&rd;RTNX$<;RT@RHQv;R{OP뎸hǂؚt^P(* >< 3'f;>-tY0ݍt#d*#叞;g0MD* 3-/3g(`W?x~^hڵ%PiWDf HU?7nD~ XUwAߦCf`Lt6lɓ\R N~֐,xPx#癛[-%cPUETndߜWLUA߱1-!V hOnxc9p^*Jj*:,obҥ ͈34HubkM*R|؀*JJ6!|ҥ |؃o1&o?JT( vdT,[*ˋ&) *ɥJB iR>lBT*ϛ&) *-*S#[j^j,E9I>EPJ+KYm9t>CD'/?< ? Ls(N@ |LGK XlXsx~@m [+]8j5xIFĚqh4cjm~̨X9 FY DZi!ash}0 3* { -l]{d/ϟ? sQEUDU!in8~vݿi($Y,`%÷`~PhzQTQDTE\QD#>d ٿ&fyܙY0&$GeUE#2F&|N׹7L<߻Y Xq (L O|~ 0݃?~k"wޞj)BZ'ýv5mܠSZi'@#=?n`dROx 733c`ˤ¤29M)S4㍡M%7>R|!%,4>v@|߿~`H<=g_^0nh7_P} ٶw`ɏ9s0 . #l2 3&AlITɇ'>kSeJD}xvNc t7 3W28@, "amiZKHBLG"b|GEӠ7hf`zX@Tz4"Uv %Q V&Z6RCK2IGA06A0(aV8 1jSaHuJ:$Y2&8dj+ wb~2 A6CШٻjÀpagY5f4 oC@T*a/R6 DGFaFb&QFx]]jaI:VkBZT0ޞH/(gaB0`..#`Պ,H$#$َ#Ւ)z\£rhf ܸEGI IAC8Y2:ܐkZ4JAFC35?99J.g:\p4qt[).#, *M&D&1r0800.Dք D'C7Dc a"lXV'2&uLT9Չoz '&q&"q!#003 4[t@x :8א, C -(K3R=ii!zDꊬ\R}Jz`m Ž1֌c1 CI3GaDXt:H ng KbX``4B`72]x$40'PlTQBxAEC|hJ܉`Zg ,)` x 8IR)f4ufx\ϓUTrzh X,LS\BfbU SA(ؼ-%f戓:|8B/ `p"mTx QxnON2Fa"(T\a0Z(raG`Ia=(XlKE z/iJgnvqC (GS)q,(Td:]>6JCg,$NNCԃ)B2H9zX`)H 9rHl~E 0 pNجfLZ9T$l".ixc &)Svx`zzrKO/0'&hD4lKO&nhr&rx|4xK| EQ/&~h'rrbh&reI.]4Qbx4K2DA$:Nԁ#SDA33 ަ`0x%ј  ҍmtyQ^J]&(f(`ib0|3 ib -4HB9UDg l a&t,`G84BƩJg&3fLU Dn DZ Dm9tNuCL_t6[łORUJ{J,`!V@F RZ/JRjI=)؇ RB?:V8b?fJf!A.J-gQRJѢ"^3WSf ANCfoOL.g-)BX 񸗧8g(GaIbq= `D]rl,RxK.l(RA/$_J(0مSQVvLެ,)Dftp0(Е"ݰZ *X1|,5o$&@1*I`"A} J|p"(XB 36cѥ诳ѐЃH^:h))1hxMD~j5B Sa6~,VF#R Bp`) /ޠ.³L^²l3RA>AA)EMGI9D|Mp&G1CIfެKE(pZ"(p*`X#¸|`BQpzg ԕA`ڟX(Ў\:::8888臬ZP}hS. ܮ,1m۪mۇmxq^/f/XfR6daSR ϢE:"J |.rLaHc\e'+ `#:DGTTBgHzB< PO3Pk2TtHxPZ0O|<1ua& Cpr$6Sn#nQRĎ'3H+NA bp(2,vt40lԂ$YH3*dL/ /D?:r9m JkBܴwf7L}RCQ?- Ll>{BH.SaNTx``#$BUQO^]B C&O//OHޱihFo"QMOD PA:\*.@SPL$Dx<^'OG'xzM.K.  6$u sD H:"$r \pED&#2\]8Ǧ7[爾- :Lk#K4p4fVHC H 0 <8 *9(L^B9 q?e8h!۝8 (z&7ph g,'}mlh$   ;<~A.8kZhd6\tpOrG" T(.*,L %5 v < 4hjF R|  ̋ &&"W2. [ X9>z^POPIINV @|r|!CHAMELON  \r"TURB_ASS17  qr"ATOMIK33LZH 2r#M&PFXPAK11LZH Nr# LZH_201LTTP r#RSOURCE PAK r$ATOM_V35PRG r$r)b.  r..  rCHANGES  >DAC S MXALLOC H ӽMXALLOC S SNT_COMP PRG %NT_COMP RSC * NT_COMP TXT r3lDPLAY_SEGC  EPLAY_SEGPRJ qISAM_PLAYH JSAM_PLAYS !L.TINYSTRTO 9XTINYSTRTS iY " There are some new features in this version of NT_COMP. I will cover them short here. NT_COMP is now moving into a new area - it is now a sample editor! There will soon come new features and more tools for manipulation of samples. Change Zoom with keys 1 to 9 and 0 (for 10). - the actual zoom factor is fib(n) = 1,2,3,5,8,13,... Mouse Clicks on wave-window: - single click : Clear block and set cursor. - double click : Select segment - shift click : Strectch block - shift double click : Select All Remember that this is ideaware, if there is some features you would like to have added to the program, then let me know and I will try to find some time to make the changes. If you want to be sure that I _can_ make the change, then _DON'T_ write: "please add support for MEGABUCK samplers" A note of the form : "Please add support for <>" "This is the format of the file ..." or "This is how jyou program for it ..." And then the something like: "here is some C/assembler, that shows how ..." This is much more helpfull... -Klaus -H +-+ | !Klaus Pedersen | | | !Nyborgvej 217 4. TH | ___/ | Project U DK-5220 Odense SO | | Hard- and Software Denmark. \_ / Development EMAIL : micro@imada.ou.dkPCHROME DOC /a RPCHROME3PRG q LPCSCLICKAPP R)2 _ePCSCLICKDOC Z{&? PCSVIEW DOC t @ PCSVIEW PRG t A REAL2RAWDOC C REAL2RAWPRG iD VERSION  HaG /* DAC.S distributed, together with "NT_COMP" - the NoiseTracker * Compiler for Atari [MEGA] ST, STe and TT computers. */ dc.w $080C, $090B, $0A09, $0000, $080C, $090B, $0A09, $0000 dc.w $080D, $0908, $0A08, $0000, $080B, $090B, $0A0B, $0000 dc.w $080D, $0909, $0A05, $0000, $080C, $090B, $0A08, $0000 dc.w $080D, $0909, $0A02, $0000, $080D, $0908, $0A06, $0000 dc.w $080C, $090B, $0A07, $0000, $080D, $0907, $0A07, $0000 dc.w $080C, $090B, $0A06, $0000, $080C, $090A, $0A09, $0000 dc.w $080B, $090B, $0A0A, $0000, $080C, $090B, $0A02, $0000 dc.w $080C, $090B, $0A00, $0000, $080C, $090A, $0A08, $0000 dc.w $080D, $0906, $0A04, $0000, $080D, $0905, $0A05, $0000 dc.w $080D, $0905, $0A04, $0000, $080C, $0909, $0A09, $0000 dc.w $080D, $0904, $0A03, $0000, $080B, $090B, $0A09, $0000 dc.w $080C, $090A, $0A05, $0000, $080B, $090A, $0A0A, $0000 dc.w $080C, $0909, $0A08, $0000, $080B, $090B, $0A08, $0000 dc.w $080C, $090A, $0A00, $0000, $080C, $090A, $0A00, $0000 dc.w $080C, $0909, $0A07, $0000, $080B, $090B, $0A07, $0000 dc.w $080C, $0909, $0A06, $0000, $080B, $090B, $0A06, $0000 dc.w $080B, $090A, $0A09, $0000, $080B, $090B, $0A05, $0000 dc.w $080A, $090A, $0A0A, $0000, $080B, $090B, $0A02, $0000 dc.w $080B, $090A, $0A08, $0000, $080C, $0907, $0A07, $0000 dc.w $080C, $0908, $0A04, $0000, $080C, $0907, $0A06, $0000 dc.w $080B, $0909, $0A09, $0000, $080C, $0906, $0A06, $0000 dc.w $080A, $090A, $0A09, $0000, $080C, $0907, $0A03, $0000 dc.w $080B, $090A, $0A05, $0000, $080B, $0909, $0A08, $0000 dc.w $080B, $090A, $0A03, $0000, $080A, $090A, $0A08, $0000 dc.w $080B, $090A, $0A00, $0000, $080B, $0909, $0A07, $0000 dc.w $080B, $0908, $0A08, $0000, $080A, $090A, $0A07, $0000 dc.w $080A, $0909, $0A09, $0000, $080C, $0901, $0A01, $0000 dc.w $080A, $090A, $0A06, $0000, $080B, $0908, $0A07, $0000 dc.w $080A, $090A, $0A05, $0000, $080A, $0909, $0A08, $0000 dc.w $080A, $090A, $0A02, $0000, $080A, $090A, $0A01, $0000 dc.w $080A, $090A, $0A00, $0000, $0809, $0909, $0A09, $0000 dc.w $080A, $0908, $0A08, $0000, $080B, $0908, $0A01, $0000 dc.w $080A, $0909, $0A06, $0000, $080B, $0907, $0A04, $0000 dc.w $080A, $0909, $0A05, $0000, $0809, $0909, $0A08, $0000 dc.w $080A, $0909, $0A03, $0000, $080A, $0908, $0A06, $0000 dc.w $080A, $0909, $0A00, $0000, $0809, $0909, $0A07, $0000 dc.w $0809, $0908, $0A08, $0000, $080A, $0908, $0A04, $0000 dc.w $0809, $0909, $0A06, $0000, $080A, $0908, $0A01, $0000 dc.w $0809, $0909, $0A05, $0000, $0809, $0908, $0A07, $0000 dc.w $0808, $0908, $0A08, $0000, $0809, $0909, $0A02, $0000 dc.w $0809, $0908, $0A06, $0000, $0809, $0909, $0A00, $0000 dc.w $0809, $0907, $0A07, $0000, $0808, $0908, $0A07, $0000 dc.w $0809, $0907, $0A06, $0000, $0809, $0908, $0A02, $0000 dc.w $0808, $0908, $0A06, $0000, $0809, $0906, $0A06, $0000 dc.w $0808, $0907, $0A07, $0000, $0808, $0908, $0A04, $0000 dc.w $0808, $0907, $0A06, $0000, $0808, $0908, $0A02, $0000 dc.w $0807, $0907, $0A07, $0000, $0808, $0906, $0A06, $0000 dc.w $0808, $0907, $0A04, $0000, $0807, $0907, $0A06, $0000 dc.w $0808, $0906, $0A05, $0000, $0808, $0906, $0A04, $0000 dc.w $0807, $0906, $0A06, $0000, $0807, $0907, $0A04, $0000 dc.w $0808, $0905, $0A04, $0000, $0806, $0906, $0A06, $0000 dc.w $0807, $0906, $0A04, $0000, $0807, $0905, $0A05, $0000 dc.w $0806, $0906, $0A05, $0000, $0806, $0906, $0A04, $0000 dc.w $0806, $0905, $0A05, $0000, $0806, $0906, $0A02, $0000 dc.w $0806, $0905, $0A04, $0000, $0805, $0905, $0A05, $0000 dc.w $0806, $0905, $0A02, $0000, $0805, $0905, $0A04, $0000 dc.w $0805, $0904, $0A04, $0000, $0805, $0905, $0A02, $0000 dc.w $0804, $0904, $0A04, $0000, $0804, $0904, $0A03, $0000 dc.w $0804, $0904, $0A02, $0000, $0804, $0903, $0A03, $0000 dc.w $0803, $0903, $0A03, $0000, $0803, $0903, $0A02, $0000 dc.w $0803, $0902, $0A02, $0000, $0802, $0902, $0A02, $0000 dc.w $0802, $0902, $0A01, $0000, $0801, $0901, $0A01, $0000 dc.w $0802, $0901, $0A00, $0000, $0801, $0901, $0A00, $0000 dc.w $0801, $0900, $0A00, $0000, $0800, $0900, $0A00, $0000 dc.w $080E, $090D, $0A0C, $0000, $080F, $0903, $0A00, $0000 dcc.w $080F, $0903, $0A00, $0000, $080F, $0903, $0A00, $0000 dc.w $080F, $0903, $0A00, $0000, $080F, $0903, $0A00, $0000 dc.w $080F, $0903, $0A00, $0000, $080E, $090D, $0A0B, $0000 dc.w $080E, $090D, $0A0B, $0000, $080E, $090D, $0A0B, $0000 dc.w $080E, $090D, $0A0B, $0000, $080E, $090D, $0A0B, $0000 dc.w $080E, $090D, $0A0B, $0000, $080E, $090D, $0A0B, $0000 dc.w $080E, $090D, $0A0A, $0000, $080E, $090D, $0A0A, $0000 dc.w $080E, $090D, $0A0A, $0000, $080E, $090D, $0A0A, $0000 dc.w $080E, $090C, $0A0C, $0000, $080E, $090D, $0A00, $0000 dc.w $080D, $090D, $0A0D, $0000, $080D, $090D, $0A0D, $0000 dc.w $080D, $090D, $0A0D, $0000, $080D, $090D, $0A0D, $0000 dc.w $080D, $090D, $0A0D, $0000, $080D, $090D, $0A0D, $0000 dc.w $080E, $090C, $0A0B, $0000, $080E, $090C, $0A0B, $0000 dc.w $080E, $090C, $0A0B, $0000, $080E, $090C, $0A0B, $0000 dc.w $080E, $090C, $0A0B, $0000, $080E, $090C, $0A0B, $0000 dc.w $080E, $090C, $0A0B, $0000, $080E, $090C, $0A0B, $0000 dc.w $080E, $090C, $0A0A, $0000, $080E, $090C, $0A0A, $0000 dc.w $080E, $090C, $0A0A, $0000, $080E, $090C, $0A0A, $0000 dc.w $080D, $090D, $0A0C, $0000, $080D, $090D, $0A0C, $0000 dc.w $080E, $090C, $0A09, $0000, $080E, $090C, $0A09, $0000 dc.w $080E, $090C, $0A05, $0000, $080E, $090C, $0A00, $0000 dc.w $080E, $090C, $0A00, $0000, $080E, $090B, $0A0B, $0000 dc.w $080E, $090B, $0A0B, $0000, $080E, $090B, $0A0B, $0000 dc.w $080E, $090B, $0A0B, $0000, $080E, $090B, $0A0A, $0000 dc.w $080E, $090B, $0A0A, $0000, $080E, $090B, $0A0A, $0000 dc.w $080D, $090D, $0A0B, $0000, $080D, $090D, $0A0B, $0000 dc.w $080D, $090D, $0A0B, $0000, $080E, $090B, $0A09, $0000 dc.w $080E, $090B, $0A09, $0000, $080E, $090B, $0A09, $0000 dc.w $080D, $090C, $0A0C, $0000, $080D, $090D, $0A0A, $0000 dc.w $080E, $090B, $0A07, $0000, $080E, $090B, $0A00, $0000 dc.w $080E, $090B, $0A00, $0000, $080D, $090D, $0A09, $0000 dc.w $080D, $090D, $0A09, $0000, $080E, $090A, $0A09, $0000 dc.w $080D, $090D, $0A08, $0000, $080D, $090D, $0A07, $0000 dc.w $080D, $090D, $0A04, $0000, $080D, $090D, $0A00, $0000 dc.w $080E, $090A, $0A04, $0000, $080E, $0909, $0A09, $0000 dc.w $080E, $0909, $0A09, $0000, $080D, $090C, $0A0B, $0000 dc.w $080E, $0909, $0A08, $0000, $080E, $0909, $0A08, $0000 dc.w $080E, $0909, $0A07, $0000, $080E, $0908, $0A08, $0000 dc.w $080E, $0909, $0A01, $0000, $080C, $090C, $0A0C, $0000 dc.w $080D, $090C, $0A0A, $0000, $080E, $0908, $0A06, $0000 dc.w $080E, $0907, $0A07, $0000, $080E, $0908, $0A00, $0000 dc.w $080E, $0907, $0A05, $0000, $080E, $0906, $0A06, $0000 dc.w $080D, $090C, $0A09, $0000, $080E, $0905, $0A05, $0000 dc.w $080E, $0904, $0A04, $0000, $080D, $090C, $0A08, $0000 dc.w $080D, $090B, $0A0B, $0000, $080E, $0900, $0A00, $0000 dc.w $080D, $090C, $0A06, $0000, $080D, $090C, $0A05, $0000 dc.w $080D, $090C, $0A02, $0000, $080C, $090C, $0A0B, $0000 dc.w $080C, $090C, $0A0B, $0000, $080D, $090B, $0A0A, $0000 dc.w $080D, $090B, $0A0A, $0000, $080D, $090B, $0A0A, $0000 dc.w $080D, $090B, $0A0A, $0000, $080C, $090C, $0A0A, $0000 dc.w $080C, $090C, $0A0A, $0000, $080C, $090C, $0A0A, $0000 dc.w $080D, $090B, $0A09, $0000, $080D, $090B, $0A09, $0000 dc.w $080D, $090A, $0A0A, $0000, $080D, $090A, $0A0A, $0000 dc.w $080D, $090A, $0A0A, $0000, $080C, $090C, $0A09, $0000 dc.w $080C, $090C, $0A09, $0000, $080C, $090C, $0A09, $0000 dc.w $080D, $090B, $0A06, $0000, $080C, $090B, $0A0B, $0000 dc.w $080C, $090C, $0A08, $0000, $080D, $090B, $0A00, $0000 dc.w $080D, $090B, $0A00, $0000, $080C, $090C, $0A07, $0000 dc.w $080C, $090C, $0A06, $0000, $080C, $090C, $0A05, $0000 dc.w $080C, $090C, $0A03, $0000, $080C, $090C, $0A01, $0000 dc.w $080C, $090B, $0A0A, $0000, $080D, $090A, $0A05, $0000 dc.w $080D, $090A, $0A04, $0000, $080D, $090A, $0A02, $0000 dc.w $080D, $0909, $0A08, $0000, $080D, $0909, $0A08, $0000 /* MXALLOC is written by Klaus Pedersen (micro@imada.ou.dk), and * distributed, together with "AUTOEXEC"... * * *Name extended memory allocation *---- *Gemdosnumber 0x44 *- *Definition void *Mxalloc(long amount, int type); *- *Talk The binding first try to allocate the memory with *---- GEMDOS function Mxalloc, if this fails ("unknown * Gemdos function"), it then allocates the memory * with the standard function Malloc. * If amount == -1L the function returns the size of * the largest block in the choosen type of ram... * (or ST ram if Mxalloc is unknown to GEMDOS). * The parameter type can be one of the following : * 0 - ST ram needed (DMA sound/ACSI/VIDEO) * 1 - TT ram needed... * 2 - ST ram if possible else TT... * 3 - TT ram if possible else ST (SCSI/eLAN) * *Returns The function returns the startaddress of the block. *- Mxalloc returns 0, if there was no memory of the * choosen type. */ enum {MX_STON, MX_TTON, MX_STPR, MX_TTPR}; void *Mxalloc(long amount, int type); * MXALLOC is written by Klaus Pedersen (micro@imada.ou.dk). * * MXALLOC is a auto-detecting memory allocation function. MXALLOC EQU $44 MALLOC EQU $48 GemDos EQU 1 GLOBL Mxalloc  ; void *Mxalloc(long amount, int type); ; type : ; 0 - ST ram needed (DMA sound/ACSI/VIDEO) ; 1 - TT ram needed... ; 2 - ST ram if possible else TT... ; 3 - TT ram if possible else ST (SCSI/LAN) ; TC passes : ; 'amount' in D0.l ; 'type' in D1.w DATA AllocFunc: DC.W MXALLOC ; To start with - use MXALLOC! &; if that fails - use MALLOC TEXT Mxalloc: move.l A2,-(SP) ; save A2 move.w D1,-(SP) ; push memory type move.l D0,-(SP) ; push alloc size. move.w AllocFunc,-(SP) trap #GemDos moveq #-$20,D1 ; Test for "Unknown Gemdos function" cmp.l D1,D0 bne.b return  ; We get here only ones! - because the first function call automatically ; change to a Malloc, if we can't do a Mxalloc move.w #MALLOC,(SP) ; If no Mxalloc then use Malloc move.w (SP),AllocFunc ; trap #GemDos return: addq.l #8,SP ; Tidy stack movea.l D0,A0 ; Pointers in Address regs. movea.l (SP)+,A2 ; restore A2 rts END xrDIGIPLAY15  r4MSA 141 2yrIPACKERS  Er4DIGICOMP15  Ќr4ULTRA 10  r4CPX  OzrNT_COMP  mzrKAOSDESK  zr1FOTOKROM  r4CE 240 m{rAM3  u{rCHROME DOC /a RCHROME3PRG q L`}  r fr o#3"h # Љ<.@Jyg*G/ //<JNAO pgB3A!Kpa,n??<LNA`"SJfNu`ѐPHrfNup`ШPHrfNu/ `PHmrf$o$"$_Nu" Nu/ / $H$P` &R JNr$K f&_$_NuH06*<8Hؼ ЁBAN':$H f |`R&JB2HB@ANm7C'E7F 7| BFJg'J'E7| RF0H'B KL xNuH88:&(HƼ4/gp"tNZ$H`t"09}hNH$H rfp` &j K"0Nq|f  KN(B@L8NuHO<&:/H Ar Np SEGMg SEGUgp`G}^ SEGUfp`B@6BD` 0RDY@n0H"3.fJEg4/B@"N(H`4/"0+ N(H rfp`*lA"0NpP|M`Po NPNpf ArNo,9F 9FJEf2+ l rg LNqp`<0,HK ,"N MNj AN7D0g , MNl o B@OLxxNu (Jor` Jjr`BA0NuH J"0No6gp`B@829}^g J N0LNuH8O6$HA}0(g"` Vl>`>0H2*HЪ'@2+HNj'@o'kVl>0ER@?@`Vg >0GR@?@C JN):JFgBFVo|`Vl|JFg0HѪ *$2* H$*jB` l%@<*o p JN*<0Hѫr0H JN(`pNrX +o'k +l CAN2p'@rҫ¼'AOLlNuNuH8O$h2pg v(jIGHSC L *NXOHWC L *NXO / rNi(RDtrpDN(H rg|o*0H"o ANc Ѭ 0H) `  o "P)I )@0H)BrD9A vN; <N<$8J@o LNJ@f0Ni LNjb` 0Ni LNjT0HA}l ppNo OLNuH>O$H&j2pg(kC/IMK HV"M o +NXOHWC o +NXO of g("g$ g//"UPI LN*XO`//"U LNXO g U!@ g"gP  U  Uѐ kAN@'@r/2+HNg J"N*'|Bj07| JN-,OL|NuH4QO$H6&jGKHW"M K *NXO g Uf*/0H"U jNhXO f U`D0H U`8/0H"UC jN:/2&j2BCro4gx`BD0+H2/jHҪNeR,̼.+l,|fDJDf@HoC kA NXOv opg"'A oҨ'A`|fJDg B'G`.|f,JDg(pg +ЫrNe o'F`'Fv`p|fjJDffHoC JNXOJ@g'|C JN$'F'FI HTHo"L LNkPOpWg 2 J0/N +f'|pgr`BA5A0JCg JN)OLNuH0$H6||JCk^| nX&j20@C}61kg@ *2+HNc( 2HNd%@7Cr/ +2HNd J"N& JN)FL NuNuH>O/H*I&h2C MN Ar0+NgrA0+NfM0 ohHШ,HVC kA/ /2+HNc> _"_NXOE46- opg"(P"o8) i"|:+4H²o 0D@4H`BF o (,2mSA5A5D5D0+rNf< Jr0+Ngr0+Nf&|gSEf@:+5R0F5@H2F5A J0+rNgZRRSCg0H"o`SnP o(P rg,5R5m0-mS@5@0+rNe Jr0+Nfr0+Ne`d5R0F5@H2F5A J0+rNfSnJP o(P rg@,5m4-mSB5B0+rNe$ Jr0+Nfr0+NeRRSCf`8pR>r0+Ndr0+NdA0+NdBA0+Ndr0+Nd"M oNzOL|xNu// $h20*gApNg6`v|f0*gN 0*Ne. JNp`B@$_&NuH<*H(I8"<A}0<N"$H g&j2N(7@J@n JN"B@`z"LANY'M&7|Bk7D'|BBj08<6<209 JN"BC20 JN"XO g AN(`x'D2H  JN#NpL<NuNuNuNuNuNuNuHA}F?h?h/h ?h$"h%h$?h&B@`2I4J/ 2A4B? R@|mGB@ KNY6o.Ar(NYA"<0NYA"<0NY0NYBO(&_6Nu?/ pN&$HB@N&6N'B0|$_6Nu?O6BB2pNYAr 0NX SEGMg SEGUfpd`(BB2 <8NY^Ar 0NXf M.K.fp `NO 6NuH0O&H<|*EHycHo"K JN+POJ@gB@ JNX6oBDJFgN.:`0NN:Gt2pNX&BB2pNX̺| g| fC K20Nb8`6|g|fBgA$20NDTO8`|dfABB"0N80NWJDo0HA}l ppN]P`F|g |g|dfB@"J WN<`| g| f "J o N<JFf o NX(O$L xNuHO*H/I &o4(o]OpNT$HBWG}d8+0H*3|2AsI~bBgBC]t2Hp JN\OBgBCbt"p JN\OBgBC]t2Hp JN\O2+pA2N"2+pAJNMKB@ JN~2|YA|bA2;N$"rpDG6?/<Cb$<"p JN2\O*|n|mGHU"M N09NPXOpVf`DG?p/C]$<2H JpN\O8`hDG0@?r@/C]$<2H Jp N\O<`@7D j2fp`B@7@ jJfr`BA7A0H'pF2A7>0gԑN\OL|NuH8pN$Hv(.|0:N`,"h,0J@gU@g`RE"h2"iة` RF"h2֩ P f~G~b/?Cg j PN?\O/?Cg j PN?\O ЄހrEA/?Cg j PN?\OBApN"l.޼p /Co j PN?XOBEI}f,BgBC{t"p JN\OB@ JNh~2|WAgUAg| g(`(DG0H?r /C{$<' Jp"N>\O,`(zJEgNB@LNuH0pN@$HG~BBAp"K JN2+"H ЀЁA1|BApC JNf2+(H ЀЁ5 B@ JN6|f&"K JpN6r@7A"C JpN67@(NL NuNuH<(H$I*o0*| |,b@0;NZb 4&BHxh`pN`8tr09}hN&H rgCxB@NJ@f KNL`B@ANL`B@AN<`pAN,`B@ MNT`p MNH` MN`NtJ@gp` M"m,"iN` M"m,"iN` M"m,"iN M"m,"iN`d M"m,"i"N`VN2`P y}29}p( LNQ`8 MN2`0 MN`( MN` MNp`N`N` N(` LNbr0* LNPB@L<Nu/?&8pNR мl`2 N:8&Nu/ YOE4Hy"JA}.NMXO0nB@`*r0NMRr0NL2?j ?j ?jC KNp` KN ` KN ` KN `C KN `0+ 2+AC 4*|bXB4; N 08 (@H4H•`64HՑ`.2H`&2HӐ````p KNb`Z0*H"+(4+H’NH"<NHZ'@ KpN4`,0*H"+$4+ H’NG"<NH,'@ KpN&+(+ "  KNzOL Nu// $IBC g"h,")"gv0(0g|y~XgN3~X|or`BAp" JNNx|or`BAp! JNNd|or`BAp$ JNNPrCp# JNND$_&NuH.$ g?+r 0+NDbTOp&_$_Nu/ $HA&"P fB@`$g`"Qf"$ ?*r 0*ND$TOp$_NuNN^Nu/ 9&g$@`$R f JN$_Nu y&` hfNu P"fNuUOHWr B@NCLXO0NTONu/ $HAN$_NuH>O(HEGHRHSHoHor0,NCOK:M<0Uf 2VfHVHUHoHo 0,rNBO09U62/ @o?@ 09V42/ @o?@ ???/?/r0,NCPOHlHl Hl Hlr0,NBpOp LN OL|Nu/ / $H&I0+jo7j0+jo7j?+?+?+?r0*NBPOHjHj Hj Hjr0*NAOp JN&_$_NuO>?yBo?h?h?h ?h ?hAr09N?PONuH8Ov EG`B@NBpHRHRHRHRHRBg?<BgBgBgBgBgBgBgBgBgBgp?"J Ktrp0N?$O.6pNB.pCg0 Sf*0+N(H g>?k ?k ?kCNp Cg|NJ@fr 9&fp`B@OLNuH8&H6(I2|| e tCfrCgZ8LpCg|$y< f>`@jf4jf.2H ЀЁ s g 9j9RBA0* KN@p`PJ0fB@LNu/ / &HE@"K JN1J@fB@*`\JfB@&_$_NuBAf0NuRA|mB@Nu/ pJ@g  ggB@$H`  fBpRJf$_NuHO*H 9CB@Np?4H"ҁ҂23 @??/ ?/ ?/ BA K04/ N;O PO&_6NuA` (fNuTH(HAfNuH8&H(I6Q@gr`BA6`0N$H f 20 KN0jS@?@?j0/jS@?@K4Ar0N7 K4* 2* 0N7> 0* jS@?@2* jSA?A?oA0rN8T2*H ЀЁ R pfToToA0rN8*B@POL,Nu/ / QO$o>0jS@?@?j0/jS@?@Ar094N6G0*gA`A'H7j 7j pj 7@ 2* k7AHkHkC K094rN5~POB@PO&_$_NuH8$H6G2H ЀЁ42|gZSBg|g`r S llI>2H ЀЁ4J) 4J)> 4JA % 42||5RS`$2H ЀЁ% 42||5pLNuHYO.6(I"f AB@2N8C:rB@ WN8Gr@1AR>C`"0@@2A30@@2A1RW WmG4Hy"KA}.N46XO0oCAtBAN3dp`B@TO&_Nu094N3B@NuH $H6R@fp`>2H ЀЁ82|g&`62H ЀЁ822H ЀЁ父rf0LNuH0$H6.,N8H"ҁҀ:2Jg 2HN/"N/`:W@lz2H ЀЁ5Jg G?+?+?+4r0 JN4\OL NuH0$H6N7BJ@f JCfp`p\ JN'n&H g +fB@`nv g,p JN/rJ@gp9gBC`p\ JN'4&H gB`JCg(C JN'N0,gpC`pA JN/r` C JN&pL Nu/ / &HE`"* fp` E fC KN'*"J KN&lB@&_$_NuO"HAN'CAN&LAN/J@gONu?/ EN.%HAN.~p JN6 JNJCg JN6 jN.\$_6NuH8OEN.t%H, JN.:B@A0N6R@gRC0AN&zCAN%xpAN.:G`"(KC LN%J@f IfN. :JEg`x|fA0N5~ j,N- OL8Nu?/ O6$HANJ@gp`&B@AN.\6J@ot2pN.^$BB2pN.R0O$_6NuOANdJ@gp`B@AN.ONu/ x g"CJ f"g$A$p`PH fp$_Nu#F#JAN.$Nu`f"Hf gANqNu/ $H`f"Jf g INq$_Nu/ $HN,<A|:B@AN-R J$_Nu/ / (Hp\ IN&HgRK"K LN$(_&_Nu/ / (INx&HgRK"L KN$(_&_Nu/ / $H&Ip\NTp.NN$H"KN$B@&_$_NuHH3NAP @$_NuAbNu@A#NNu#RHRgSЈ#VHz ?<&NN\ONu@F'BIafAZ  B8bAJ Y 4!4F%8gaFNu#RHRgSЈ#VHz ?<&NN\ONu@F'BIaAZ8 8 B8b yNY 4!4FNuHz ?<&NN\ONu@F'aj"yN!4CZFNuXBRAJBoxH@CSk"Q0<CLNs"yR Qg#I#I#RLNs 9V"@fabLNsXBRAJBoxH@C&Sk"Q0<@C1LNsXBRAJBoxHCSk* QpH"AxC 0LNs"yR Qg#I#I#RLNs 9V"@faLNsCوjNu                                                                                                                                                                                                                                                                                                                                                   3dHz ?<&NN\ONu1d NuHz ?<&NN\ONuAZ1!::R69}bJ9kgtO&&Q0z:4RHNu(Kpr4H…JBk @jQ`ܴAkQ`Q`Q`J,&g>:9C0,H z92040f |jC lv6, 0,|,%< z2`(eB9FJ9HfNua,0-|gN0-"@0;NBTz84t;mNup:2H@J@g|g p-`p-<`4-`(@r-$HA)2-t$XTe;pNu;BNuJp-:2RJm0-||qj mmq0-|;@NuJB@-:2 Jm0-||Xk mmX0-|;@Nu/4|p-$JA(ppd T@|JepF-$<gJ@gU@40 _;B 0-B-2@g l|2NuBm Nu-g@1B-Jm glp-1J-2fm0- mn$;m Bm `m0- mm ;m Bm 4--)<g&p-$HA($ppd T@|HepF40;BNu-g$--<g<-<g<B--.I'H|t-*<g <g<`J-.j<``4--|J0-J-.kB`B;@--H|<-.Nua`a`;m-g$-/<g<-<g<B/-0I'H|t-* <g <g<`J-.j<``4-/|Jp-%J-0kB`BjB@|@c0<@;@%-/H|<-0Nu;mp-Jg-% -@%k|@%Nup-<-%jB-%Nup-<:/EfB-%B-&Nup-<9Ef40g0/"mp+Q+i i &i '0)+@0) +@ NuB4; N F`l0XDDbPjxNu-SFB9GPHNup-<@cp@@%Nup-$ <<?bGPHNu-g B9EDNup-g@(-(Hm dB-&NuNu-<-)-)Nu-<-*-*Nu-<@$Nu-<g"J-,gS-,g+GPINu@,`0:-H@+Nu-<-*-*Nu/p-<g"r:-f2|fr:-oHAJAfaB"Nup-<-% @k<@@%Nup-<-%jB-%Nup-<J9LfRKNu-<-)-)JgH@p-)g>A#0-3-3g*B-3B-3 - mRe p0) i+H LNuHz ?<&NN\ONu1"1$Nu#NHz ?<&NN\ONuAtB9rB9sBx8888A4 aH?EN&j y^N0L|NuH?6FA8p ybrH״CnDmRfR@|AfTLNu``/2< yf a H@!SAfXNu$B@H@2@0H@0 H@Nu"@$" "QC BffNuag"A"Nu A NuSfNuH<&H&$I(pe$f"IH"L KNJ@o "L KN`pЃ"N I "N K"L MNJ@o "L MN"K MNJ@o "K MN|`"L KNJ@o "L KNfpf"M K NV`KH`c4"K MNJ@k`"L KNJ@n` "L MN"ę`b޹b"K MNJ@j "K MN "N 0*crd "J M "N&`pd ""J K N&M`L<8NuJgNNu/YOM, IC HzaXO VBXO,_Nu"VS@eQ,NuH8]O$H&I(o&BCx%p JR@g2fJ@g@HNBEg>BA< <b;k`|<*f<`&<0< b ACp a$Wb<gt<.f6<*f4`$<0< b ACp a$Wb4g<߲<Lf g`<hggr@dp|?@0;N`````N`N``````````````````````````NNN````````````````` [0`|A`0A2"LaN@`\ [2"LaL@`JJEj `p0?4 La"TO@`*JEj `0H?4 LaTO@` JEj `p0?4 LaTO@`JEj `p0?4 LaTO@`@HN0\OLxNup24C8jxA aA pJWF@?@gA 2SAktaSb (Q2/@4/(jt@jtBgf 0Ao@@Alx?B?D`jH0$H&IB(v`H0$H&IvJWFCJBj4Cb6xJAkCc8Cf K0a0 JN`0 JN0 Kax0DL Nu6x0/gf@ JaV0/g@AN0/g@ Ja00/g@A N0/gg@ Ja0OLNuH0E6`H0E4&H6g8Kg SC JpNQ J0|gNL Nu0 ??B@CngJ1kB@BA< CX(<-Wg<+fg"1bAg1b @8@@D`JgD@86Nu JgJgJgJgJg JgJgJfSHggggg ggf @Nug fC`Jg INuSHNugFf8g>f0g6f(g.f g&fgfgfggepNupNuJfpNu g<g8g4g0g,g(g$g ggggg ggf @NuH0$H|g|$bGrtgJ3kSJgtJ@f"p <0f:pgb<߶<Xf(pf"`N|f<0fg><߶<Xfg.G3d"3d&HCHCJCfԃԁd` & gSJ"L Nu3"}p` 3!}p& g"`//"4UB|"bZC"t&HCJCf&HC;0NRBH@B@H@f`$?&8BCHC06H@0HC;0&RBJf8QB" _&Nu3!}`0123456789abcdefghijklmnopqrstuvwxyzJg/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/$gSe40HB4 gxH_>"&(*,."B$B&B(B*B,BH~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H~H`SfL||0HgS@!Q|gSAQ _Nu@ @ :864@0   !"#  !"#$HBJBf$HBJBfNuHBЂNuHBЂNu$HBJBf($HBJBf H@B@H@NuB@H@HB0@0H@0H@Nu AH@r2B@tЀӁd҈рӁQF@Nu$jD BJjD$HBJBf"$HBJBf $jDNuHBЂ$jDNuHBЂ$jDNu$jD"BJjD$HBJBf4$HBJBfH@B@H@$ jDNuB@H@HB0@0H@0H@$ jDNu AH@r2B@tЀӁd҈рӁQF@$ jDNuH>?NAO $_Nu/ /?<NA\O$_Nu/ ?/?<NNAPO$_Nu/ ?<NATO$_Nu/ ?</NATO @$_Nu/ ?<ONATO$_Nu/ ??<>NAXO$_Nu/ /?<9NA\O$_Nu/ /?<ANA\O$_Nu/ //??<JNAO $_NuH>@NAO $_Nu/ ?/?<GNAPO$_Nu/ ?/?<*SCRAP.TXTSCRAP.ASCSCRAP.RTFSCRAP.1WPSCRAP.WPSSCRAP.GEM SCRAP.IMG@SCRAP.TIFSCRAP.EPSSCRAP.CVGSCRAP.DIFSCRAP.SEGSCRAP.SNDSCRAP.CSV SCRAP.ICO@SCRAP.RSCx:\CLIPBRD\SCRAP.*DJ J ITI( S Interpola. Mono  +@1JaxŴxaJ1X(\:}hS@. xqR"}Y7{eQ>, ~wqLxU3xcO<* }vpFtP/u`L:(}vo@oL+ r^J8&|un: kH'p[H5${tm4fD#mYE3"zsm.b?kVC1 yrlX(\:}hS@. xR"|Y7{eQ>, ~w~LxU3xcO<* }vwFtP/u`L:(}vq@oL+ r^J8&{uk: kH'p[H5${td4fD#mYE3"zs^.b?kVC1 yrv44&@t $$Lf*P@(DDHP|X|$$ "Z^L8rN ^XB2H^ \ v`.b (v:X&,x`D.HZx,Z j.FN, H  4ڔ6v (.0 <  ~$6B $  j & ,$  00> $4  ."   ^^ EMAIL : micro@imada.ou.dkt $ t , NT-Comp File Edit Action Options About NT-Comp...-123456 New ^N Open '*.MOD' ^O Open '*.SEG'  Import... - Save '*.SEG' ^S Save as...  Print - Quit ^Q Export... Undo Edit UNDO - Copy ^C Cut ^X Paste ^V Delete ^D - Cycle Windows ^W - Use Clipboard - Waveform - Show Sample Dist. Play Image ^P - Module - Compile... ^A Edit List...  Set Compile... Set Replay... - Set Memory... - Save SettingsTone :0Freq. Conversion Seed0000Speed :Frame Size0000Scale :CancelOK Music Save SEGMs UnsignedCheck Samples in MODand correct errors In/Out COMPILER OPTIONSABOUT THE PROGRAMWritten in '91 and '92 by :I will support this program as long as your ideaskeep comming... IDEAWARE? Please send BUG reportsIdeas, Code, demos, and your opinion to me.Klaus PedersenNyborgvej 217,4.TH.or micro@imada.ou.dkDK-5220 Odense SDenmarkor phone: + 66 15 58 79Atari ST/STe and TT computers.Compiler for Noise & Pro Tracker modulesVersion 1.2Free MemorySegment List Seq List Usedmem Cancel CALC Memory Output Status UNDO stops CompileCOMPILE MODULE019NT Modules (_): _9 19Music Images (_): _9 09 TOTAL (_): _9 9 Kbytes.(Largest block of ST ram)CancelOK Free Memory Segment Size Memory Usage SET MEMORY Name: ___ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __9 @@@000Repeat from ___00Patts 0 to __ Pattern List 000Repeat from ___999@@@@@CancelOK Pattern List EDIT PATTERN LISTThis file isn't a SEGMsample, nor a 31-instmodule. Might it be a:Sample: signed binary offset binaryCancelSELECT FILETYPE15-inst module31-inst moduleREPLAY OPTIONS ST Sound (Interupt) STe/TT DMA D/A on Printer Port D/A in ROM Port ST Sound-chip 6.25 KHz. 12.5 KHz. 25.0 KHz. 50.0 KHz.CancelOK Play Through Frequency 8?@AJK Lbcdijkstu    6 @Je oy )FGHx0    ()    ZZ & $  .  5 < E  0 P  O b wy{}   + @ U)( j!"#$%&'(0 0*/+F,[-p./)16234560 ( 7   @  @     @  @   0   @ L@ h +        553 -2_1 1        *'F( o '3/ {       %      -5  @ ,@    H  d        +      3  1  (  1 D/ `/ |/ / /   #    5 1 $ @#  \/ x/ / / / !  +    *3 <Si  AA     A a / -   ) ;   K  W  c o {  % < X tldl $0A04, $0000, $080D, $090A, $0A02, $0000 dc.w $080D, $0909, $0A08, $0000, $080D, $0909, $0A08, $0000 Copyright (C) 1991 by Klaus Pedersen. NT_COMP is a Public Domain program by Klaus Pedersen Nyborgvej 217 4. TH DK-5220 Odense S Denmark EMAIL : micro@imada.ou.dk -E / / / / / / / / INTRODUCTION / / / / / / / / / / / / / / / / / / / / -E You should check that you have the following files in the NT_COMP directory: NT_COMP\ NT_COMP.PRG ; THE program NT_COMP.RSC ; - and it's resource file. DOCS\ ; NT_COMP.TXT ; This document. What is NT_COMP? What can it do? - and what do I need? NT_COMP is a Compiler for 'NoiseTracker' music modules, which is pretty popular on the Amiga. NT_COMP is fully compatible with NoiseTracker v2.0 (except that you can't flip the power-on LED ;-) ). As many other hackers I have made NT-players for the ST(e), but I don't like using 1/5-1/2 of the processor to emulate Amiga chips, esp. when it is not absolutely needed. What really surprises me is that, even today, many people haven't figured out how to use the DMA in the STe and TT. In order to get really high quality sound from the STe/TT it is necessary to use the DMA, if you don't, you get a lot of hizz and high pitch noise. DIGI-COMPOSER is one of the LOFI products (sound-wise). You can recognize a LOFI product on the sample rate. For example if you see a sample sequencer for the STe, that says that it uses a sample rate of 10KHz or 16KHz it is a LOFI product! HIFI products can only use sample rates of 6.25, 12.5, 25, 50 KHz. Module players for ST computers have one big problem, they have to be very fast, which means that all programmers have to sacrifice the quality of the sound to gain the speed a 'realtime' player needs. Many players for standard ST's don't even support volume control on the voices! NT_COMP solves all these problems, by compiling the Modules. A compiled module uses 0.0% of the cpu when playing on the STe/TT! It supports playback frequencies up to 50KHz (wasteful really). There is as a Option to use FAST scaling or PRECISION scaling. FAST uses the same principle as the realtime players. Precision scaling sounds way better! So be patient when compiling! What are the drawback then? The compiled modules (SEGM's) uses more memory. NT_COMP (should) run on all Atari ST, STe and TT computers in all resolutions, in colour and monocrome under GEM. The new TT memory are supported. Everything, except sound DMA, runs from TT memory if it is available. NT_COMP runs on ST's with 512Kb, but the more RAM the better! (I haven't tested the software on MEGA STe's, TT's and ST's with TOS 1.0). I assume that NT_COMP _DO_NOT_ run under KAOS (the TOS replacement)!! WHAT DO I DO? - I would like you to contribute with : Ideas (for further developments) and code that you think needs to be included (I need compression code, filters and such). If this program shall improve and grow, then I need your help! Send in BUG-reports (I can't test the program on your computer - I need your help to do that!). If there is a thing you think is backward or silly let me know, _DO_NOT_ say "this is obvious, someone else have told him", tell me yourself! There are 3 ways to contact me : SNAIL MAIL EMAIL VOICE PHONE Klaus Pedersen micro@imada.dk 66 15 58 79 Nyborgvej 217 4.TH. (from Denmark) DK-5220 Odense S Denmark. What language should you write to me in? I prefer C and Assembler, and I don't understand a word Basic. You can fill in with Scandinavian, English and Modern (Computer) German... -E / / / / / / / / CHAPTER 1 / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / - HOW TO USE NT_COMP. / / / / / / / / / / / / / / / -E I will try to describe the menus one at a time, and explain their interaction with each other... 'File' menu - o Open - Load a file. There are 3 file name filters available: '*.MOD', '*.SEG', '*.*'. All tree Open's are equal, except for the the filter. NT_COMP recognizes SEGM files and 31 voice modules, and let you import 15 voice modules, offset binary and signed binary sample files. PLEASE NOTE: There is no way to know a 15 voice module from other file types, therefore be sure when you ask NT_COMP to import a 15 voice module, because you might crash NT_COMP, if the format is wrong or the file is corrupt!! o Save '*.SEG' - Saves the top window as a SEGM file. If the top window isn't a 'wave' window then this menu is disabled. If you have imported a sample file it will be saved as a SEGM file. o Quit - should be obvious... 'Action' menu - The first two menus are enabled when the top window is a 'wave' window. o Show Sample Dist - Shows the distribution of the samples in the top wave window. The vertical resolution is 32, and there is indication for the largest and lowest sample value in the file. This function can take some time to finish. But provides some very importent information. Only one distribution window can be open at a time. o Play Image - this plays the SEGM in the top window. It uses the information set under the menu Set Replay. When playing a segment on a standard ST, you stop it by moving the mouse or touching the keyboard. On a STe/TT you select Play Image again to stop to sound. The sound can also stop at other times, for example when quitting the program. The next two menus are enabled when the top window is a 'module' window. o Compile - when you select this menu you can compile the module in the top window. You change the the parameters under the menu 'Compile Options'. o Edit Sequence - with this you can edit the module, take out the theme or remove intro and fade or set the repeat point. If you don't want the repeat, then press ESC in the 'repeat' edit field to clear it. See HINT #1 and HINT #2 below. 'Options' menu - o Set Compile - Here you can set everything that have to do with the actual compiling of the module. Let us look at the adjusters one at a time. In the music section there is the o Tone adjuster - this adjusts the tone of the sound, if you double the value the sound will move up one octave (ie double the frequency). o Speed adjuster - with this you can change the playback speed, _NOT_ the tone. For more information read Chapter 2. To make a SEGM that should run at 25KHz, instead of 12.5KHz, you half the 'tone'-value the and double the 'speed'-value. This can also be done in the 'Set replay' dialog (see below). In the section called 'Scaling', there is a switch select FAST or PRECISION scaling. If you select precision scaling you can adjust the a 'Scale value' to get full output swing, use Show Sample Dist to verify the distribution (some clipping improves the S/N ratio). Note that a larger the 'Scale value' gives smaller output. You can see if the output have been clipped by looking at the pins at -128 (leftmost pos) and at +127 (rightmost pos). The amount of clipping should not be too high to avoid metallic high pitch noise. Things are a bit more complicated when FAST have been selected, where it is possible to adjust the a clipping level. The clipping is used to ensure that, when the 4 voices are added together the result still is in the interval [-128; 127]. It don't have any meaning to make the interval less than [-32; 31], as this satisfies the about criteria, no matter how 'Scale value' is set. o Set Replay - Here you can set the sound output and the sample playing frequency. The Frequency control also changes 'Frame Size' and 'Tone' controls under 'Set Compile', to make generation of 6, 12, 25 and 50 KHz SEGM files possible. The build-in values are based on 50Hz modules. (see Chapter 2 for more information). o Set Memory - Under this menu you can see what the memory have been used to and the largest block of ST memory in the computer (the memory that holds the DMA sound images). Also under this menu, you can change the segment-list size. If you change the size, you will have to press the dialog button "RESET", to let it take action. This will unfortunately mean that all windows and memory is released to the system (you loose your work). HINT #1 - In order to get a click-free repeat you have to use a trick. Note that repeated patterns don't take up extra memory. Consider for example the sequence: [1,1,1,0,0] and you want a repeat from pos. 0 - If you did that there would be a click when it repeated. It is better to write the following sequence: [1,1,1,0,0,1] and then repeat from pos 1 (and not pos 0). The music is the same, but there is no click... An other example: [2,1,3,4,5](2) must be written as [2,1,3,4,5,3](3) to avoid the click. The music is the same, as you can see by expanding the loop. The first writes [2,1,3,4,5, 3,4,5, 3,4,5, ...] and the second [2,1,3,4,5,3, 4,5,3, 4,5,3, ...]. HINT #2 - To get keyboard shortcuts in dialogs and a easier editing of the sequence, I can recommend FORMDOIT written Dan Wilga, Gribnif Software. -E / / / / / / / / CHAPTER 2 / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / - TECHNICAL ISSUES. / / / / / / / / / / / / / / / / -E WHY DOES THE MUSIC PLAY TO SLOW? = This is probably because the music have been made on an american amiga. You can change this under the menu 'Options\ Set Compile\ Speed'. With this adjuster you can change the number of bytes in each frame. Each frame take 1/50 second or 1/60 seconds in an american module. To calculate the the frame length use : frame_length = play_freq * frame_time. For a play_freq = 12.5KHz and a frame_time = 20mS, the frame_length should be = 250, but because of a stupid optimation in the FAST scaling algorithm, it have to be divisible with 4... frame_length = 248 (giving a frame_time of 19.6 mS). If the module was made on an american amiga, the frame_length would be 208. NT_COMP have a set of 'Tone' and 'Speed' values for each of the possible playback frequencies (in Set Replay). These are based on a frame_time of 20mS. The values for 60Hz (american) modules is : Playback. Frame 6.259 KHz 104 bytes 12.517 KHz 208 bytes 25.034 KHz 416 bytes 50.068 KHz 832 bytes WHAT IS THE DIFF. BETWEEN FAST & PRECISION SCALING? =3 Fast scaling assumes that when the 4 voices is added together the result is between -128 and 127. The volume transfer function is made to guarantee this. In effect 6 bit resolution per voice! The Precision scaling uses 16 bit fixed point numbers and interpolation to get the exact values. EXAMPLE: - Take this example we have a signal sampled at 8 KHz, we now want to play it at 4 KHz. The signal is [0, 20, 40, 60, ...]. FAST would give, with full volume and ignoring the clip feature: [0, 0, 20, 20, 40, 40, 60, 60] PRECISION would give (with volume == 64): [0, 640, 1280, 1920, 2560, 3200, 3840] These values would be calculated for each channel, then added together and finally scaled and clipped to be in the interval -128 to 127. A SEGM PLAYER EXAMPLE = In the directory DOCS\SOURCE\, there is the full source for the SEGM-file player 'SEGMPLAY'. To be check if the computer have Sound DMA, it checks the cookie jar to see if there is a '_SND' cookie installed. If DMA sound is listed as available it is used, else the ST sound chip is used... The SEGM file is loaded into ST memory7 that is allocated with the new GEMDOS function Mxalloc(), if it is available. The binding for this is also included. -E / / / / / / / / APPENDIX A / / / / / / / / / / / / / / / / / / / / / / / / / / / / / - '.SEG' FILE FORMAT. / / / / / / / / / / / / / / / -E The SEGM format reflects two needs, first the need to have a format modelled after the new Atari computers and second the need to have a fast compression scheme (TT and STe's uses 0.0% processor time when playing) a SEGM file. THE FILEFORMAT - The file looks like this: typedef struct { SEGM_HEADER head; /* ID, and other info */ SEGMENT segments[n]; /* Tells what to play */ signed char image[m];/* this is the sound itself */ } SEGM_FILE; The file-header looks like this: typedef struct { LONG magic; /* == 'SEGM' or 'SEGU' - magic constant */ LONG freq; /* one of {'6.25', '12.5', '25.0', '50.0'}. */ WORD r_seg; /* start after end of list. -1 means no repeat */ } SEGM_HEADER; SEGU means Unsigned sound image, and SEGM is the default signed sound image. The segments can be used to repeat parts of the 'image' more time without using memory. A segment looks likes this: typedef struct { LONG offset; /* offset from start of sound image, -1 ends */ LONG length; /* the number of bytes to play from there. */ } SEGMENT; The Segment list ends with 'offset' == -1 (0xf). After the segment list the sound image starts, at offset = 0. TO PLAY WITH 'SAM_PLAY' - When a SEGM file have been loaded it is your responsibility to relocate it. The playback functions in SAM_PLAY.S assumes that each segment entry is of the following format: { signed char *samplestart; long length_of_sample_segment; } ie. SAM_PLAY expects a pointer to the start of the sample rather than a offset from the start! Note that 'samplestart' == -1, ends the segment-list. -E / / / / / / / / APPENDIX B / / / / / / / / / / / / / / / / / / / / / / / / / / / / / - '.MOD' FILE FORMAT. / / / / / / / / / / / / / / / -E There are two different versions of the modules - a 15 voice and a 31 voice. The two formats are not compatible, and there are hundreds of mutant versions. I have chosen to support a version that is called NoiseTracker 2.0 by M. & K. This is compatible with most 31 voice versions. NT_COMP also have a option to import 15 voice modules. LET'S LOOK AT IT - The module file is build this way : typedef struct { char mod_name[20]; INST insts[31]; /* or 15 if a old module */ char info[2]; /* info about repeat and nr of patterns */ char seq[128]; /* the sequence table for the patterns */ long id = 'M.K.' /* tells that this is a 31 voice module.*/ PATT patts[n]; char insts[m]; /* the samples for each instrument. */ } MOD_FILE An Instrument is declared in a 30 byte descriptor (why not 32??): typedef struct { char name[22]; UWORD length; /* offset to image of next instrument */ UWORD volume; UWORD transient_p; UWORD loop_p; } INST Each entry in pattern hold information to all 4 channels. The information for each channel is held in one 32 bit word. (each entry is then 16 bytes long). The information have been put in entry this way: + + + + + xxx-i-xx-f -iiii-cccc-p * | | | | \_ parameter to command | | | \_ command | | \_ instrument (lsb's) | \_ frequency (0-$400) \_% msb of instrument nr. - the bits in a pattern entry. typedef long PAT_ENT; /* look about */ typedef struct { PAT_ENT chanl0; /* NO way to make independent tracks! */ PAT_ENT chanl1; PAT_ENT chanl2; PAT_ENT chanl3; } PATT; This is the reason I think that we should find a new format. I have a simple text based music language in mind. I should be possible to make small loops, for easy and trouble free rhythm tracks. And it should be possible to convert modules to this (more general) "language"... -E / / / / / / / / APPENDIX C / / / / / / / / / / / / / / / / / / / / / / / / / / / / / - KNOWN BUGS. / / / / / / / / / / / / / / / / / / / -E NT_COMP treats you like an error-free master, whatever you say is law! - Also when that means that you loose everything you have made, when you change the segment list size, or quit! urns 0, if there was no memory of the * choosen type. */ enum {MX_STON, MX_TTON, MX_STPR, MX_TTPR}; void *Mxalloc(long amount, int type); qDDESKTOP INF t /* PLAY_SEG.C is written by Klaus Pedersen (micro@imada.dk), and * distributed, together with "NT_COMP" - the NoiseTracker Compiler * for Atari [MEGA] ST, STe and TT computers. */ #include #include "sam_play.h" #include "mxalloc.h" #define CHICKENFACTOR 32000l typedef struct { long magic; long freq; int r_seg; } SEGM_HEADER; const long IdentFreq[] = {'6.25', '12.5', '25.0', '50.0'}; int PlayFreq; const char HEADTXT[] = "The \"SEGM Player\" is written by Klaus Pedersen (micro@imada.dk), and\n\r" "distributed with source, together with \"NT_COMP\" - the NoiseTracker\n\r" "Compiler for Atari [MEGA] ST, STe and TT computers.\n\n\r"; const char ERROR[] = " is not a SEGM file!\n\n\r"; const char PLAY[] = " now playing "; const char STETXT[] = "using the DMA sound chip.\n\r" "Press any key to stop.\n\r"; const char STTXT[] = "on the GI-sound chip.\n\r" "Move the mouse to stop.\n\r"; const char USAGE[] = "Usage : SEGMPLAY segm_file\n\r" "Press any key to continue.\n\r"; int get_cookie(long cookie, long *p_value) /* Returns zero if the 'cookie' is not found in the jar. * if the cookie is found it returns non zero and places the * value in the longword pointed to by 'p_value'. If 'p_value' * is '0l' it does not put the value anywhere... */ {void *oldssp; long *cookiejar; if (Super((void *)1L) == 0l) oldssp = (void *)Super((void *)0l); else oldssp = 0; cookiejar = *(long **)0x5A0; if (cookiejar == 0l) goto NotFound; do { if (*cookiejar == cookie) { if (p_value != 0l) *p_value = *(cookiejar + 1); if (oldssp != 0) Super(oldssp); return 1; } cookiejar += 2; } while (*cookiejar != 0); NotFound: if (oldssp != 0) Super(oldssp); return 0; } void *ChickenMalloc(long amount, int type) {void *addr; if ((long)Mxalloc(-1l, type) < amount + CHICKENFACTOR) return 0l; addr = Mxalloc(amount, type); return addr; } int LoadSegm(int f, int *rep_segm, long length, long **segm) {long *s, freq; char *image; SEGM_HEADER head; Fread(f, sizeof(SEGM_HEADER), &head); /* read the header */ if (head.magic != 'SEGM') return 3; s = IdentFreq; /* get playback frequency from file */ freq = 0; while(*s++ != head.freq) if (freq++ > 4) { Mfree(*segm); return 2; } PlayFreq = 128 + (int)freq; *rep_segm = head.r_seg; /* get repeat segment from file */ if ((*segm = ChickenMalloc(length, MX_STON)) <= 0l) return 1; Fread(f, length, *segm); /* read file into memory */ /* find address of the sample image */ s = *segm; while (*s != -1) s += 2; image = (char *)(s + 2); /* Now fixup the sequence table, (offsets -> abs. addreses) */ s = *segm; while (*s != -1) { *s = (long)(image + *s); s += 2; } return 0; } main(int argc, const char *argv[]) {long snd, len; int f, repeat, err; long *samples; err = 1; if (argc > 1) { Cconws(HEADTXT); if ( (f = Fopen(argv[1], 0)) <= 0 ) goto NoLoad; Cconws(argv[1]); len = Fseek(0, f, 2); Fseek(0, f, 0); if (!LoadSegm(f, &repeat, len, &samples)) { Cconws(PLAY); if (get_cookie('_SND', &snd) && (snd & 2)) /* DMA sound? */ { Cconws(STETXT); STe_sequence(samples, repeat, PlayFreq); Cnecin(); STe_end(); } else { Cconws(STTXT); ST_sequence(samples, PlayFreq & 0xf, repeat); } Mfree(samples); err = 0; } else Cconws(ERROR); Fclose(f); } NoLoad: if (err) { Cconws(USAGE); Cnecin(); } return 0; } rts END - Mxalloc returns 0, if there was no memory of the * choosen type. */ enum {MX_STON, MX_TTON, MX_STPR, MX_TTPR}; void *Mxalloc(long amount, int type); playsegm.ttp = ; list of modules follows... tinystrt.o ; startup code play_seg.c mxalloc.s sam_play.s (dac.s) TCTOSLIB.LIB ; TOS library 90A, $0A02, $0000 dc.w $080D, $0909, $0A08, $0000, $080D, $0909, $0A08, $0000 /* SAM_PLAY is written by Klaus Pedersen (micro@imada.dk), and * distributed, together with "NT_COMP" - the NoiseTracker Compiler * for Atari [MEGA] ST, STe and TT computers. * * The pointer 'samples' points to a list of segmentes, where * each segment is a record/struct of : * { signed char *samplestart; * long length_of_sample_segment; * } * 'samplestart' == -1, ends the segment-list. When the player * reaches the end, it will start at the segment number 'repeat', * if 'repeat' != -1... * * Speed is one of the following : * 0 : 6.25 KHz, * 1 : 12.5 KHz, * 2 : 25.0 KHz, * 3 : 50.0 KHz (this is not working ST output) * On the STe these values needs to be ored with 0x80 (128), * to get mono output. * * The routines to play on the ROM port and the printer port * have NOT been tested in any way (they don't bomb the computer * but that is about the amount of testing I have done). * Furthermore I have NO idea how they are implemented, I have * written the code to drive devices that is likely to exist! * I assume that that both use offset binary, and that the * printerport don't need a strobe to latch the data. And that * the ROM port is mapped at 0xFFFB0000 and uses address lines * A1-A8 as datalines. * - I any of this is wrong -or right, PLEASE let me know!! */ extern void ST_sequence(long *samples, int speed, int repeat); extern void ROM_sequence(long *samples, int speed, int repeat); extern void PRN_sequence(long *samples, int speed, int repeat); extern void STe_sequence(long *samples, int repeat, int speed); extern void STe_end(void);  choosen type. */ enum {MX_STON, MX_TTON, MX_STPR, MX_TTPR}; void *Mxalloc(long amount, int type); * SAM_PLAY is written by Klaus Pedersen (micro@imada.dk), and * distributed, together with "NT_COMP" - the NoiseTracker Compiler * for Atari [MEGA] ST, STe and TT computers. * * TC passes : * samples in A0 * speed in D0.w * repeat in D1.w GLOBL ST_sequence * void ST_sequence(long *samples, int speed, int repeat); GLOBL ROM_sequence * void ROM_sequence(long *samples, int speed, int repeat); GLOBL PRN_sequence * void PRN_sequence(long *samples, int speed, int repeat); * TC passes : * samples in A0 * repeat in D1.w * speed in D0.w GLOBL STe_sequence * void STe_sequence(long *samples, int repeat, int speed); * TC passes : * nothing. GLOBL STe_end * void STe_end(void); MW_MASK EQU $FFFF8922 ;Micro Wire interface... MW_DATA EQU $FFFF8924 PCM_MODE EQU $FFFF8920 ;PCM interface... PCM_CONTROL EQU $FFFF8900 PCM_START EQU $FFFF8902 PCM_END EQU $FFFF890E MFP_Data EQU $FA01 ;Multi functions interface... MFP_Edge EQU $FA03 MFP_PendA EQU $FA0B MFP_ISRA EQU $FA0F MFP_MaskA EQU $FA13 MFP_EnblA EQU $FA07 MFP_EnblB EQU $FA09 MFP_IVR EQU $FA17 SFT_PALLETE EQU $FFFF8240 ;Shifter SFT_MODE EQU $FFFF8260 ROMPORTADDR EQU $FFFB0000 PCM_VECTOR EQU $013C ;Interupt vectores. TA_VECTOR EQU $0134 VBL_VECTOR EQU $70 GemDos EQU 1 Super EQU $20 ;GEMDOS functions. SUPER * RUTINES FOR THE ST SOUND CHIP * ST_sequence: movem.l D3-D4/A2-A4,-(SP) movea.l A0,A2 ; char **samples move.l D0,D3 ; int speed cmp.w #-1,D1 seq NoRepeat lsl.l #2,D1 ; int repeat adda.w D1,A0 move.l A0,D4 bsr GI_set lea ST_Speed_table,A0 add.w D3,D3 move.w 0(A0,D3.w),D3 lea GI_sample,A0 lea $FFFF8800.w,A3 bra.b ST_Seq ST_Lop1: moveq #0,D0 ; 4 add.b (A1)+,D0 ; 8 lsl.w #3,D0 ; 12 = 6 + 6 lea 0(A0,D0.w),A4 ; 12 move.l (A4)+,D0 ; 12 move.w (A4)+,D1 ; 8 movep.l D0,0(A3) ; 24 movep.w D1,0(A3) ; 16 move.w D3,D0 ; 4 ST_wat: dbra D0,ST_wat ; 16 + n*12 btst #0,$FC00.w ; 16 bne.b ST_StopNOW ; 8 subq.l #1,D2 ; 8 bpl.b ST_Lop1 ; 12 = 160 + 12*n ST_Seq: movea.l (A2)+,A1 move.l (A2)+,D2 cmpa.w #-1,A1 bne.b ST_Lop1 tst.b NoRepeat bne.b ST_StopNOW movea.l D4,A2 movea.l (A2)+,A1 move.l (A2)+,D2 cmpa.w #-1,A2 bne.b ST_Lop1 ST_StopNOW: bsr GI_clr movem.l (SP)+,D3-D4/A2-A4 rts * RUTINES FOR D/A ON PRINTER PORT * PRN_sequence: movem.l D3-D4/A2-A4,-(SP) movea.l A0,A2 ; char **samples move.l D0,D3 ; int speed cmp.w #-1,D1 seq NoRepeat lsl.l #2,D1 ; int repeat adda.w D1,A0 move.l A0,D4 bsr GI_set lea PRN_Speed_table,A0 add.w D3,D3 move.w 0(A0,D3.w),D3 lea GI_sample,A0 lea $FFFF8800.w,A3 bra.b PRNSeq PRNLop1: move.w #$0F80,D1 ; 8 - Write all bytes to port B. add.b (A1)+,D1 ; 8 movep.w D1,0(A3) ; 16 move.w D3,D0 ; 4 PRN_wat: dbra D0,PRN_wat ; 16 + D3*12 btst #0,$FC00.w ; 16 bne.b PRNStopNOW ; 8 subq.l #1,D2 ; 8 bpl.b PRNLop1 ; 12 = 96 + 12*n PRNSeq: movea.l (A2)+,A1 move.l (A2)+,D2 cmpa.w #-1,A1 bne.b PRNLop1 tst.b NoRepeat bne.b PRNStopNOW movea.l D4,A2 movea.l (A2)+,A1 move.l (A2)+,D2 cmpa.w #-1,A1 bne.b PRNLop1 PRNStopNOW: bsr.b GI_clr movem.l (SP)+,D3-D4/A2-A4 rts * RUTINES FOR D/A ON THE ROM PORT * ROM_sequence: movem.l D3-D4/A2-A4,-(SP) movea.l A0,A2 ; char **samples move.l D0,D3 ; int speed cmp.w #-1,D1 ; int repeat seq NoRepeat lsl.l #2,D1 adda.w D1,A0 move.l A0,D4 bsr.b GI_set lea ROM_Speed_table,A0 add.w D3,D3 move.w 0(A0,D3.w),D3 lea ROMPORTADDR,A3 bra.b RomSeq RomLop1: move.w #$80,D0 ; 8 add.b (A1)+,D0 ; 8 add.w D0,D0 ; 4 move.b 0(A3,D0.w),D0 ; 16 move.w D3,D0 ; 4 Rom_wat: dbra D0,Rom_wat ; 16 + D3*12 btst #0,$FC00.w ; 16 bne.b RomStopNOW ; 8 subq.l #1,D2 ; 8 bpl.b RomLop1 ; 12 = 100 + 12*D3 RomSeq: movea.l (A2)+,A1 move.l (A2)+,D2 cmpa.w #-1,A1 bne.b RomLop1 tst.b NoRepeat bne.b RomStopNOW movea.l D4,A2 movea.l (A2)+,A1 move.l (A2)+,D2 cmpa.w #-1,A1 bne.b RomLop1 RomStopNOW: bsr.b GI_clr movem.l (SP)+,D3-D4/A2-A4 rts * SUBRUTINES TO ENTER SUPER, AND SET GI-REGISTERS * GI_clr: bsr.b st_GI move gemSR,SR move.l OldStack,-(SP) move.w #$20,-(SP) trap #1 addq.l #6,SP rts GI_set: clr.l -(SP) move.w #$20,-(SP) trap #1 addq.l #6,SP move.l D0,OldStack move SR,gemSR move #$2700,SR st_GI: lea GI_tbl,[A0 move.b (A0)+,D0 lp_GI: move.b D0,$FFFF8800 move.b (A0)+,$FFFF8802 move.b (A0)+,D0 bpl.b lp_GI rts * RUTINES FOR THE STE DMA SOUND * DMAinterupt: movem.l D0/A0-A1,-(SP) bsr.b DMAmusic movem.l (SP)+,D0/A0-A1 bclr #7,MFP_ISRA.w rte DMAmusic: movea.l tablePointer,A0 cmpi.l #-1,(A0) bne.b no_repeat move.l inittable,D0 movea.l D0,A0 beq.b no_reload no_repeat: movea.l (A0)+,A1 move.l (A0)+,D0 move.l A0,tablePointer lea 0(A1,D0.l),A0 move.l A1,D0 lea PCM_START.w,A1 ;Insert Secondary-buffer in the queue. movep.w D0,3(A1) swap D0 move.w D0,(A1) move.l A0,D0 movep.w D0,3+PCM_END-PCM_START(A1) swap D0 move.w D0,PCM_END-PCM_START(A1) rts no_reload: ; At this point is the last segment playing - therefor ; set the DMA chip into SINGLE, rather than LOOP ; playback mode... The DMA chip will then stop after ; the sample have been played! move.w #1,PCM_CONTROL.w ; DMA chip in SINGLE mode rts STe_end: clr.l -(SP) move.w #Super,-(SP) trap #GemDos lea 6(SP),SP lea MFP,A0 move.b (A0)+,MFP_EnblA.w move.b (A0)+,MFP_MaskA.w move.l SaveVector,PCM_VECTOR.w move.w #0,PCM_CONTROL.w ;Stop DMA sound chip move.l D0,-(SP) move.w #Super,-(SP) trap #GemDos lea 6(SP),SP rts STe_sequence: move.l A0,tablePointer ; char **samples ext.l D0 addq.l #1,D0 ; int repeat beq.b dontrepeat subq.l #1,D0 lsl.l #2,D0 add.l A0,D0  dontrepeat: move.l D0,inittable ; zero if no rep., else addr.  move.w D1,-(SP) ; int speed clr.l -(SP) move.w #Super,-(SP) trap #GemDos lea 6(SP),SP move.l D0,OldStack lea MFP,A0 move.b MFP_EnblA.w,(A0)+ move.b MFP_MaskA.w,(A0)+ move.l PCM_VECTOR.w,SaveVector move.w #0,PCM_CONTROL.w ;Stop DMA sound chip move.w (SP),PCM_MODE.w move.b MFP_Data.w,D0 ;Read monitor-type (mono/color) eor.b D0,MFP_Edge.w ;Enable IRQ on Sound _not_ Active! andi.b #%1,MFP_Edge.w ; Sound not Active. eor.b D0,MFP_Edge.w ; IRQ when sound becomes not active. move.l #DMAinterupt,PCM_VECTOR.w bclr #7,MFP_PendA.w bset #7,MFP_MaskA.w ;Mask 'Sound Active' interupt. bset #7,MFP_EnblA.w ;Enable 'Sound Active' interupt bsr DMAmusic move.w #3,PCM_CONTROL.w ;start DMA chip in LOOP mode bsr DMAmusic move.l OldStack,-(SP) move.w #Super,-(SP) trap #GemDos lea 8(SP),SP ;remove params to 'super' and locals... rts DATA * soundperiod = (6258,12517,25033)Hz * = (1278,639,320,160)Cycles * STperiod = 160 + 12*n ST_Speed_table: DC.W 93,40,13,0 * ROMperiod = 96 + 12*n ROM_Speed_table:DC.W 99,45,19,5 * PRNperiod = 100 + 12*n PRN_Speed_table:DC.W 98,45,18,5 GI_tbl: DC.B $00,$00,$01,$00,$02,$00,$03,$00 DC.B $04,$00,$05,$00,$06,$00,$07,$FF DC.B $08,$00,$09,$00,$0A,$00,$FF,$FF GI_sample: INCLUDE "dac.s" BSS tablePointer: DS.L 1 inittable: DS.L 1 OldStack: DS.L 1 NoRepeat: DS.W 1 gemSR: DS.W 1 SaveVector: DS.L 1 MFP: DS.B 8 END hat means that you loose everything you have made, when you change the segment list size, or quit! 789 @CDEFGHIJKLMNOPQRSTUVWXYZ[\^_`abcdfgijklmh qrstuvwxyz{|}~ `n r fr o#3"h # Љ<.@G/ //<JNAO pgB3A !Kpa??<LNAmain_BasPag_app_PgmSize__text__data__bssexitferrnoTextStarTextSize DataStarDataSizeBssStartBssSizeCmdLineNotApp EmptyCombArgPoint ); } return 0; }PgmSize: DS.L 1 _app: DS.W 1 ArgPointer: DS.L 2 ; only 2 args is used (a null and 1.) END T{BAT BAT u1COM BAT v1EXE BAT w1XTG EXE [KXTG PIF JMgx1!XTGOLD COM RF.XTGOLD ICO hy1XTGOLD PIF sz1!XTG_ARC2XTP T{1٦XTG_AZIPXTP Q1m7* TINYSTART is written by Klaus Pedersen (micro@imada.dk), and * distributed, together with "NT_COMP" - the NoiseTracker Compiler * for Atari [MEGA] ST, STe and TT computers. * Based on Borland's and Atari's (Ken B.) startup code. IMPORT main GLOBL _BasPag GLOBL _app GLOBL _PgmSize GLOBL __text, __data, __bss GLOBL exit, errno ; these make TC stdio happy! TextStart EQU $08 TextSize EQU $0C DataStart EQU $10 DataSize EQU $14 BssStart EQU $18 BssSize EQU $1C CmdLine EQU $80 * Text segment... TEXT __text: moveq #0,D1 move.l A0,D0 bne.b NotApp moveq #1,D1 movea.l 4(SP),A0 NotApp: move.l A0,_BasPag move.w D1,_app * Calculate program size... movea.l TextSize(A0),A1 adda.l DataSize(A0),A1 adda.l BssSize(A0),A1 adda.w #$100,A1 move.l A1,_PgmSize * Set stack at top of BSS... move.l A0,D0 add.l A1,D0 and.b #$FC,D0 movea.l D0,SP * Make A3 point to Command line... lea CmdLine(A0),A3 * Shrink memory... move.l A1,-(SP) move.l A0,-(SP) move.l #$4A0000,-(SP) trap #1 lea 12(SP),SP * Pass command Line... moveq #0,D0 move.b (A3)+,D0 ; anything in command-line? beq.b EmptyCommand clr.b 0(A3,D0.w) ; terminate command-line lea ArgPointer,A0 ; Argument array (2 long) move.l A3,4(A0) ; write address of command line moveq #2,D0 ; set argc. EmptyCommand: * Execute main program... * D0 = argc, if (argc<2) then no parameter(s)... * A0 = *argv[2], argv[0] is dummy, argv[1] is a pointer to the command * null terminated commandline... * In non TURBO_C env. pass these on the stack... bsr main exit: move.w D0,-(SP) move.w #$4C,-(SP) trap #1 * Initialized data segment... DATA __data: errno: DC.W 0 ; needed to keep stdio happy! * Variable segment... BSS __bss: _BasPag: DS.L 1 _PgmSize: DS.L 1 _app: DS.W 1 ArgPointer: DS.L 2 ; only 2 args is used (a null and 1.) END P12XTG_HELPXTP *Q22XTG_MOVEXTP Q52XTG_OOPSXTP T82XXTG_VIEWXTP )D2XTG_V_TOXTP s[2XTG_WASHXTP Sl2XTG_WBATXTP 1Qp2!XTG_ZIP1XTP aQu2}XTG_ZIP2XTP T2;XTG_ZIP3XTP JQ21.  %r\..  %rDIGICOMPPRG P]D_C_REF DOC Y,READ ME ]READ ME2 zB`v`Pack-IceI*LV,LaKMGLA "grѓg f``GP$]*$**ԓ**ԓpDAG$QC&NN&&Sj&n".扑&&SjN%a*d"ra$dCv !a"H@@Vҩ%QnNuf%Nurf%AQNuCtaTxr1 Hka1 Ag"CvtaTr1 HaBq jD`rptadpt?aBC@!!Q`R   Ice!`X+"GL#s,H&?<&NN\/zBJy1gfBg7;NO<+RULDN''L4Iv@l2 !9Lh$LOOBN?,Q/&mI L_E`?psBACBuWAYMYe%frD(PRBHaD؊ϫ #ѠMEHKI-!M$SWH WHgWHRIx[F  OMEFHA"L@4PIECFDERGZ+#1mU@F I .D]RATE}AS PRAND WI.EV2GH/BL nCONT"0LFO-ADVI$[V$w$F$$GO$`${$$<$$?$d$/$\$0 # # # #: " " "< ! !v"! K 27Dz<<@j@MLi56xIuC9Ng\{\ )~ ?u | : C_  LJ p D ~  Wc; h ? V D/  c x e4 v$  ! ?ſ[ȩS |)~r?IM|&]_G-bϋ̉C|!~F m?Jn"=r_T;&*l O0LٝSkT'S7/xzq=sog>$Q47&j>52'{ C \h p p k ] Ew $DO[4lf UOSiC'u6`A)5i"M6P@p<P<7% (W ! !v!"<"6"%_:O#P#I#8$0$\$$$\D$$j$$$?ɺ$;$$w3$[$>$$#p##V##oF#X#EG9#,`##%#*<#6#N#_d#~/## $ $= $~ $ %%h % &$ &"&K'dw'(N(7W)ED)z*C*+C+@,Bj,-:-.&.//h/0~0z01x1QI1112 N2&2:2G\2M2L 2E O27 2$ 2 ?1 1 1 C1z 1o1 p0W70 0 0V 0/ /m /G /$ / . D. . . x. . @. . !/ /2/\///0?0 011rr12!I2|236]334O-4b55\566L667H7x777m7J7%]t;:r:9r98r87r76r65r54r43r32r21r10r0/r/.r.-r-,r,77WSOKGC?;73/+'# rW^ʉ_+~=,fNz:7%ZF &J%ANx 3 r u s( 0ZS_Gn7d_<YcA9w &/ PL ^ w M8 vHZOclQxY/<F?`B nsP7?y!Α~i߉~)8*3kj*,]Y0(jQ16 yqԘld)}D^svYt؈nQfԓl:@lcmqH1now &A*mJ$aDev+ABmh(O|3ewH,>9GOR53E̖(`l(macmX5p{`LThdznqICo..Bf nMe,d[sa$ٌl@ qa7XF!E1 GB#[P#U4h;I2܀bF]upe\hqG?rF1- F2mgEtpN`8^mQCBM+KsU!JKW3f -'r2ADAXYbiT*X4- Pf\3 ,V&@Hx-a Ì_6exomusVippW9w-AZa e&en%Vfgam&ِCd sYriɼȡvJҒ%g3d6c 8NAClʘmˌacP0kl%DSn.MO~5kNdc-ff  3 = SYNCR?#!*Ah_Kn` pt?@R;(A@chibQj+OMLBoyn_Cg0LFeM(, 3d-t-4ANK`!L9kXKD#eX$d@fbSyha;TSCJrd V\GG:DAXX3r NfZT tyCaulS`ЮGO8 HEe9 m9okd!(1\sc(nX9FQn'nclu@ X:nnaAR0n lriMuWestߖXgb1>B ? quSTsHowe'RG>k,ЀA<@3Jg>6jP8/R|0N f BX0j`l0@<EA>M: rJP g"*&B.cLʹS]f;NF5QKBS2T"Z*U- U&ʂU_7#*0-Ug@pAa t` ;5nfBm>C>G?@r)l a`]z\L:.^vsb (Rt&S4dՃ'fE$Pr蔂$(fjb*fRa *z]V<`S 2;B$&&z׈BK.xSn"Ԑ&3 JA zH!8(e&IJ3fk. XkX\%Jhrτ/a>_ Et!&Nu~ȗ ggq5Q VY0JMsl>.V *u E  B.fUc@"zo!!fCDtY.JHx*b h(Q(#0,Bh42:JBgtA#zKȩA!2|zЂRh;R<R_t|*.BB~Z $zl`!Jt?!E0\B(hgRA;A=Nup퇖K,|\  }ր" &s9&_yM M / gaw GGp0S#}Y8{eQ>,;gSO~wpjd^Y⿈OKGX?;8_>T2/,*'%#!o}5,Be gTFMXPx=$Q s+Lx[0u 柝䓜'|LCk偂< -DЀsjXx౼d5Vm<]xEm)t Ԑ,<$g^?00 x Gz  o;Ɲ5' % 1 ƒY 5a n"̄r]|r3nZ4   sR}  1 ^!.႗W5UuO.\W j ^Q7Kl] ua/ 'ol&ݬj [$xtt xIVE/ˠKrut9Xmc k 0u\,+ެ\,^RU65\/,+ k"&%27g/2 /%u7+z "uE.:-xA֘u^+u};0`Px%BYE?&|cЌI@gFBH tV,U RER3K(JVeGip6 yICx x Z  ^!6"x9:^9:r ;ؠO+K\LV% &5NM7(OIPy'[5 (h/ */( e_"<;iA3 (;p$k 3*4U2iOqJ7 0$8=^PW/ e HT 2zJ }!?YnOs 0@P`ppppopqp-<<*',G,wS[?Hmprg usܿcolou< nir!!Thmemy is too Dsmall for a dece i YO* 86?fG \gkb\fBǘ^vzT Un6jHz|?د.NA\먺tZKsn殉ك9Oj 8o& }f6*be09Ú~|cLFk %O8 pL'(S/ O6X  NJJgBnO, :##lDHnH\#{3F]2ήr NBc\r8Ϡg1;*sv.pf l>f[~Bj L^H3@L`6ނւ  B8~P3 xN?*x O"{3.zʚ]K,>cE)M,W$: w ]pW+)" $w(,]0p4W8;%@ G@2t?A`kׯCxl@"8:0h#Kq06KCL ME<&rXP،&VBB(]XLJUfKtQ<ɭLSNCZ'Vhx&/( *P~E 1 2R<< xg MSE"QX$@ihRR *U>V'D U>Z'2P}^O P}bXBf>YBj` v'n0d d'rd R'v  @'zdv .'~dd 'dR OBuOɲB.Aif9aZr!X `1XЉCCDDG2Ј*8T: HUJBXZhPj*pTr U B P*T UB(P,**T. 0U4B2296 <HZzLDTfnbH^3𶖰"575ˎ[@c}/8ۀ+ތ70n}   X < `z@#Jt\$*T0F6J=EԴM5hUt=^^gVqC|֐gkh@8ʼn`FlX<Ž~xxxdZx΀x2$xEʂM)CSYf 3|"FL Y#Q?[bLHkc]kK#ټ#d.Y,Xhg0o\킆 HfPB=>2"rx@,Ed`ңC&FRdKF0>mhayʢ̲x@SޤVlȧ ((2E^=\#Pd RJ̕OU9Ygk"{ N`.z ?*@H-KIիKЁM2SWL[z`&ePjq$6w6_&<PdXfB"Bxq#O!p e&@ TAJ 8m)B 04~P &,D]@ !O3?0:TT>]QF&B("DRy'O*k1F0Ns(6Wj`Pack-I*L۬ k},LݞaVKMLA` " Vѓg f``G.1P$]$qG**vpDAG{$ډC^tЬ&S>&n".扑?&SjN a*d"a$d8v !a"H@@Vҩ% ƽn f%AicNutax9kaAg"CvtaTkT1 HaBq jD`rptadpt?aBC@t!Q` Rx*  *T(h 0 wIce!&Xo`QzbݴweL`(?/ 1.(M5ifi\KNoD@h yPqf!7Ȕ.o뤨gvt vgvtxWȯ\頡`jaZ te Yyqqu@M6wG_ /[Qe˹} gMT:5w/:IM˺xW>㜸wrsNwN/#jk5+9W &mG"\{[s`!+suFsp_YiہǍu9jc<1Έ׌Y~ yT\an Yo` w:Dt=Æqsڎzfv|:Aύ ӹt;gpcv9s`sca0+=۠fE1zMU98GkcB޲ksyϹ:-a\[x.';ě8-!՞2rNM'k8We]5qsp1 :vc<+uN_iúB] 7^#Jh7-ޢe'a;xnމiǻmz 坲f wUbU;U;{'m+H5ܷ(N.@Gm@lxmx7ݰi۳Ė1.-:D_Yû܁3 o#N*j۸bul-aAźl g6ܨ ?{:dpeϲZ<7[[;Nyø' euĦ[ut3@:Iۍa9-=˦qͯgfӹtwM=!5qֈ ְ?{Yێu5/;m9i~b9kuFs-sYE#5C%kRxJ?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~q 3UylL)pcw<NEO!x~QD֝ߠ / |͓<2#ynAǯllߵ5AW̘zʢxYa:`6+7 ԇ`]o?,XjmLG.>|6lW,~X>sdkQ 3w-ϻMeѿX0ݏϟ<ǃ0 q,#ߌ~wgtnx1go>{U%TW0fX?g #ߒsyͽ[/??p7GxF?X.ǿ f -G}_Fb~P~y+֌z8~0FpZV{>syg2)?V춺!ށ~T|09g?Б3?f0f x Πf?|El ?; .%yӚ|}kc+xuo`d_߃Ef7ـiWq>z{cԸwQ/_jaܸw0<ޗK;~O] =06t>o|>~ki&$_봆f7Zxsw~ǀz?`vk?01n'GM0vxٳs~c[?jK?k }n'ߗo-/8wbn2G/F}0970,ߛ+[>uA1θe׳Lvf/Ygr׏p&E4L |8yg;g z``i`^Z&|/Z?~T iul ,y ,V>ĿWp3b'&ؽ!l Zףg~cf3;͑3m73<|{̻X.g/:ۏ~yL`]h'w07"_Gon|M49llپ{u;G?X2eg~k6nD]^U78psn齘~ӥynӀ X>DNv  6~33=y~{ a湀m-X,Vbހ Y0o>F4&kӃZLJO?V|?|6}u=j€w3o > V. {fZ.c%0kExyum3׷V>탋C9.D)nfښ) rgf9jk\ >jo3n6%xȯ>;[ϵfYo"79 yUf[Z]Ip*H"7A=o^ y ߞ|<^]sSbf]ÿ|u?;.o?+>d ޝYf0KYujZK~`<Ă5;:!ݵ0pT@[^[>ԇzfHw +.fZ$6 8}6lp-zyoytʡ}c- 3 (ުub'>~P[r/E~~9!wROgw^#pˣQ͸~Nxs0f8Pgxv?O܏́{v6Y#q@g?B>|o x఍&??wf zE ;3Gnf͗7Nf\Vד&g3f<>5 tҁg>`L"x7u.fL{{J|w [UE ;laa^StVkЯgk\Ђ'-Rk^Q53r ^Óq&_۲qfxf)4z(>4 ]vxjշрL/kV)*iŹ#8KCӐxq u؎,n>7 HހUAkmXUUg\wO=FG֗ߏwv5x*yt5d:؍~w} fkl݇n )'<5;< sT3 &`vy?N.Y3Ѻ,#@M=qُYy3!Wp|o j9 fNk`Yw?I9Z2m @= Xg*#$8p0`ۻIyu]1ӏ sbn&+<ͺq%羅sQ/E/q)σH|/̿q|:skUMqgrY V\<^xuOq ^Z ?36/4< Ԇx}x>6= Q?0noo& k^ -0S Vqy7 ezw7|O$weWY 5/Iq qaÀd݅ h߳ Ln'3n% /iAyxl5 >*Y;psು̛fxEX_;]5xҁ]ց݀3_ -y;3VVag8N紊xgq:5>WLl|!qam wo;/a}qaoڈƂqa wp66vezo̷}[ c;|elw7]kμ3wٰ&O">*h>yd<^0lӅs1> mN<`䅮g?|f@?Xo,]?u w;`TfrA; jL8l n߃֗xf_hF܅(6|Cyw\/0Ϸi c ;~~4[9}s9o||y a 7j,K @ۮy% S{pAgY‡NQ&3kUc1p+0+yY1`+0H?wyYQonnreB eǃFnf+ Џ6?6 k7d|7~3>͛&w7S,X x~+8܇f`f͙2^dd5ztl0}k}h!g<z8;a~ c=g،ع7#9x?,_cߌ#_Ьuscގy 0>Vo^yGʭuY]jk"k^?Znanpng@ln?I|.ve̺څ̯CG7ؽ0sf[벺ځcVa- Ӏae6=ѹ>gܶ|K,؋ׄVrnTVݖ#2_wpof wg )fnEtOC.m w_bY wg_7{?"އ3̛ .mFf}3 7Iu/_ eurx.x͇>,tЏn3 X.;-ߏj݂s38f{vp]gk w?Y>f?ݿ́< ?;^뾶rbU~n&Wp,B2?u>p05d=_]fS UwUcJ\"Z}hJ~p`,pnk {0G n?7o{ބ!"B{ 0C?tE0n>p߀ =/޺4؁'"Y #V{x;fpO.m<Y|aaٲ SE>D>ÿs3(ހb 8[7@W̢mn[3Qwc0loxތ7? g">p;'ALTBb^XmŃ>{I- mx/ʊԆ܆25Es#M8^^0`;Im8s<{G?w?91ZeWX,;Y+1?g71?0/]vg;|3:91އA׍8Mʽ-fA2ُA< ́R<:r~Q䟗(MC_xzs¢0f{+f^y5l(f7)^,l(]6䷷5z/.~7ny/,uavxޏwݖ7Z_[NIL0noS<~X,9v}J^c^ˈd6x}`}]2؀ƀi>}Q}Z+B ^yX׀}6;v>࿟m~x O1΁a/MwĀ>apY<?m6YR}l0L+` p|s~v| uqa}i ?YˣG w~R *cllǃ.~70Jw>m:{|o)YyKy~=iy7Q ^nó[hc*?gh8'r"973"<À?y7 fُ,@NoeBx]3Xލ o &^x|B/<@g^?2 ~W3~5=e-%x=j%.jLXaϺGAd&xi[MNA'<9`ArD<_ c0êxZqnopg:':Ǽ/,G8FΛ%u47?;dž\e<䅧Uw/^˪xt/ ? 870xOO^^w~f~[ ^^2x OH /M6n 6ϭO7 ^ۑfzŠS[xxgRτX]^Zȃr0Gw]ȑ@\k&wpn?nL^o-/xM΀ r/%vٷ1gZ_=:{E!#AC?N{d|$Et Z"f y{>y؛K8UraZ`͝Ef<ڀ@<|!< 2>dG}|{c~f2u!>fE1ZąU{K %r<>J  ["P|Ϗ[ҁ<=>6y⿹9 ѿPg aGÿw/?IA-2ެ9x9>& xvA›5OíwF^lux{-#~]K|]+^Þwx ley3i!?p0>;oq+ [ЃgLuA]:3?v<08p0{; ]?~?Tk'/_;r/|a3_ ZA=b4fּ*y~;`y:9{zz |<|!)/րcuffjA91]_p/߷3x`޽p?a`ֺ]7n=hp{77xx+?wn]~~sO`xfL{`}0og/ 4՗WXze[hgwηvvN߿߼'v6-_Glmm̻^?)݇0dBjxw77ooA7sivcy~lZޗW_^U8w0f{6R˭Bud3 1dE6on^:3;1CT ^NNjx@/iԝ/B|rtoE {޷|G0k0${!@3?B X7_dVjkr3x?7ݺ \O>,K2 0ܱ/އw*+s:Xp~;{Oey?"O-W.915[!$M0 ݔ}1 8Kgp`ln:|kMy9?G@ L i޳!7ó}_>{k10B%>]>l?(Y߀f!?yoY^3;~/xY@݋!Enn{~`~xqXʣ8WnVӀsvjo ]0~} ߿;`,ď^F+9̜C|؏gހ'+wc@1}`Y26ՔV^v>wϒ^`ۿ4k+ yC}X՟vc݀aލyA?̓P?~ /xSމ^2G|k~i3r 0{7ٹ->2^F*fwcco ^`o4<÷SaO-x o f٣V~౰vny ^Zxw7nk!/k$nʚx;rvf8o`svs68@^\Cx_K~B8>?]yq1^8do{u. >5EW6a^ri/߀,ϟaÿqw7)xxv;|L^ی<_ ݻ͛G SGAo#q66Ћ^VŃ8{9"|y{1dνAV x~ёWOYϽc&3?̇{''[k|K`xK/v~~p`]ޥN?f0'ry0zŘ)(#:\_3ؼ{8z>Kؖw0wi)/_--?p080~TK[%i߰/>:fZ|oؐ'a/~g3)x"p%m }lu{y߿vޤO?oM9l<[2dw7<ًod8M6" 7 ^p@eO.g,zrC˅ue~ga^Q8`q]PG2k\saŠ'=fq&\ ڛ Xy0`eGb4W<`=dt䙝^aqNC fo֏Qw7:p pn)7nYO:ts'r xr9P'8G!Cp\=C9'pq$w!.ܪe͆~6_8?qq9+ss︼~y/ۄ9x5>xs!IG^nK:g]ґ[N [҇1`tx]yNKO6 =MȲ: 6Յ UVdBƍu0P/f6寖zgqgF̺/5{v:-o#2sμS6eqM~$vz'-%7?'=0nk xb*xhv2 _;8 a?oe:W|8-Cx xE_Ip:x6l0|_0݂'[6նGK%߅g/Ob|=b\X3ts[ HL7{~Dɚg^ݾ?i"7*[g߀G^-ê&oWD moHS>ç ^lm0x7޾ dǬ)a`nAڀG%ٴ_de|N|6xx

G9\0ߡ&O_i/.:1%h3=~d+ v> gq ;Eo "nӓ@bG//?aEﹺ`E'L^9|x[ـ/Y K6̧M㽅Sz٥34==iQ6 <ɰ6HÌa68W`^ eK 'ͥ7;ogAmށfFL07?0gŕ=8;UZggy]o&Z(]^0 %@nxUfF˭u8~fo?Z!C^ `#إwark>0hqˣ 7\R#7&w`}QkpsG>x7q? {'\'6|>pcll˞u+26t>z?E00o`)2wǧ'ó$6(gә^7x;urfs8᲎-L+ of]y5 S[xxu OyN?κpH.{6~Յs /l/a^'3՚d !1C3&q`a,bb`q U&CEx[=/hɻy^@C\WYg9!AaCqpcx987qx-`U]x ij> ?eq, Yl9 H{x~xzxqم3^[-$X^)|7,]AFxx'Bf^o ?0.e{ބ!s|u~ ]'h;˹ ^U9.N`?`7x!zj&PLz`6oƉDXDǤKȜ~|`gYĭ'$7ct8?5Ɗ]5<cp @puVT-s+xHxwO.--<;q >xo6 ?x]`OEO69/xz{`äx/o]BhWB3 '5r,$w '$ Լ{Ëu#x!o]ޠ3"-dgG%G῁\?ylZj]q=z9׼$&ڛ~7q dw.#(#]c܋c`OnV6 j'34{(^9!8[ g 4' xAtQEq]Nc19@n?7K_v _8X^' <DΚCه00xJs/H,mÀ݉Pl "NSZ)YSp4|aH]d 7oa pESYFTq{88;sQۃecv۹JunyC{``vNs-6ׇs. 3n@gxH7n@&a#d.`pQKa`+j31?Xggp& wv1)3h3g,`h]od0 g[S R]?vjfp`!͜wmn ^83 ^™ @9q/GExQ'ޫf}T qû.@(XVЋW,%xޘŝ,[>@Zyu<<8`<;S8.lFŸSMxTX &ISkp'P^Eɀ(ʫ(%2By$VF(Vf X XP#@+!P!Cؖn9@L 2 AFzI3`r I3 IřHA CQ)O2/rѠ/ &lP7PNu!n:b\Ĭ?:y C,pCi?"x-nr杙AEF8"zֶ_E_~XDKzDKz  DK zDKz-,z^hz ^uF !%!z"#x#$$ ^%&%&z'(x()) ^*+%+z,-x-.. ^/0%0z12x233 ^45U5z67^788W9 P:x;`BB@0%S>G8`9f= {\OQGg $zEo0<$FA`3"v Lmm~3٭9[aqBJ-+] F5;r5Q=fa.+8GeB2OJ! HiDRi^;SoKK#  *DK UP!*#T% 'U)B+-/8l[,J# #e[MrepC'A 9_5 MPIVD%+h-m :*  p4F50 Q,t!#0"~F Nu<(w2bwU33s77W?ٴh<Z*LhL -\>l0;|"*;%ʬ[ؼW ̂*sι\ege2'F̤V̖U,>X11X'#V8aH;3L//(g\~NqQxП /.,_ݻ 0@P`?ppppppPpB-N!~ Q$3 W3A%i!~  EfBzgiz;8g~#?C@PpV؀ [a+Cfa+l .0f7J1<1wH jG x__&bV1׉e 6a;?Obam$ OۨMH_tNG1!{pDT!feX>@S*ϋTR:d:,Fq"Jqxf zg 3BCNn* ˕ 5t A F[[6 /.0?P^NNߐa](v 䚸 Zہ&&: ,  /^\ 'Nu8JH8 gRy2lH>>2<f=3AS`*XLNs9_y3|>P[{qP`ࠠ@@Q?w`7Mpr!tv68+*FHE2AHCHD22?R@|,f,($F83򿮱!XO4(@1F'`nd&M`}%(4$MSDs:RR0ug@yn%0!k2~ovbW! 00s,j4h A+ Ep1TF:~,TE+N1/:Rr^~x_r e1u@g$C#nNlU]>#H:]@!PFB"6ޣQQpaBV"njEES;d9K9`yv `yh 0“X,Gww.aޒ) XנqP %Q$َZ 3an ] zѸxXЬrP8r kbg7ܺ``H,Sq ̶fLL-S@jvpTA|fA3WNmzvt@k KRCk }%ʑBkxI$H*/ N6_&&h..m668@(aɎ,"ڀz"CQ"t@<pJ ~ gEsGI-g1>C訆EO0:zp2xyB@>)O3jY:PPJPIQ^Y :(gsN 8Df3xJBy'&80mO61_`<)s,eNSJ9#XNR`9% K3>lsQe ·A"z|46AUNBJ2:IA#E||0l8 A;T8A (A:+T #Mxi`*]x$| aȐʘ3LH ѼzVv ¾0U,@/CPxZl`$p `ۀ: x}@m@7*`'YV> x6в ,mL|KHĐxXHH< `Nu!`5L&Q V&Bx+f%UGXMNifTO,SGRLSHGrxRYf|NYKkóNNS-591 97Tv?qtr.Wпɻ) 0ΊӪAX AJ "w[ӅŽ!V x0o/_nO% V1.U*guE]"-wgr7 -Us\r{F*:٭I9A]lP-4 K@IB,j-[-ADSAʉX@ʸ-|GXvFyK ٌtz3,)8LEFNG}8 X.>np`PYxp{#x0x,MfM9-HDk'l8.@i 3Ɇcs pO!343i5 x79@M!= `n:Q Wp^f suu[ g_WZ-G J L ;Kw XVi3a, -9(3uׇ?)\Y5: ^0$ḾFa"e#o z.609ďNɜF{\w0Nn\fKu2SIFELjaGaWX#HBO,(qPܮR%.lT60XRMB -nbaeq-F1j]\HICkOF3ngRF4EZ*F5 uF6yƁɺxDqF7xV8Q4xZF7[NFk2n1,^o<R11^[2\2Պ^30x 4։iݑ$3FB@k7 YV[NKDY'5(DΩȲ [*]wo$I3r.X=70= ЁCˠʵ,+7zRPSjDw/6@|͂8i.9+]/[-:UӼ+/7_@ ֺΊQ$IZ-"s(;CUP C<Wkp+ٖ$`FtW<5'5@pw!AAJ8.^k/)[Ps>N([(:SYUG)/MID|gM.%`/Grq +FRQ.o[YuO^LB9VR T̩gN[CLR/fdCCNșRKEYW[73u/S3 X[8L!YRKS/>M"'`[9BHn-Bq `[5S,XI[67c`(SCn^NG, [],HELl?ԸM>$SR AR͐GGcqQ,؀b<xg[o!);Xt" xb}'N'"`?ruXBu `P,()lw pϞ9 Pg'XPABSʐM(BOTRJA%C- vq>1D/X ɕ64-*SI8FX{SPEIexZ0xL!/(N.AVAL)1f<M=ORT:V p3+GL k 4VIBReW5NTb^6aM E7lMuN@KE8|C A8nOyKC2w&E9x֊M2oGE[xX$jEBwncUչmoYCsuEgn+V5Em)KRRVc7Ek\ND|[r$OSGMfVxp˱ۋu ĖG*?GM1 YEP0t/eTӆVIFAZ9ƶd A MU"ʴYZ JUkP"bD+CCLIZ y], GB$H(hqUDUIOGU"gM9TH V'"Fd_KSnS,ERӥnNKg"P @G.`=9f\(I=FOLDIR. E=8!L ='RTOtGHNGn d!+dH <    `öa!:-sN+B-bK NO][I)D123Eh VA)%~T!;%00'e/p 1/Sb:x94! MPN_L+xjAULF O@L ʱ-Ȑ¶e>dB -{ikݜYE$|O2F'zB @UGB`Y5,!^Mⶺ F Ԗga݅RATVY\Lr] "S4g8A;FoaF6`nQ5z9·q:AUhA1IGVު6EU:23.2 a]WUf3^@1 lUxTptXTT34zIG9R1I3L K$fmVF u \"g^#/kY\L  `JU 䖕j-+uf}YVjV{Ä,OFk1ި5c u?y:Р.ten2 ºYXJ1+RkP[T64:+J~nsD6-.@c9XWF2LULeIm02 ufڐ*(. ݞH@A A0\kCH3X6Т$I2RAx?_Fy[fe X`JE+ b. ZAk- zADZ#Ɋرt~hBgHzC?_' (`_CPh dU("HCi*-k>7?f+ECW*HvŠ޴ۯ bNǩ4m6XJ|u1}\2!i`.c I2Q^U_V .2}ҙP[һFl<€D:=%?`Zɤ>*&!7:@e/P:s\X3*A: RRĵ54 G0sC ˚MU+ LYB͹pVR@h,UPĬH>Hr cPNgƁ*$?*tń*V3@ XZ/VUgZg&m36xIQ?>Ƥ5rf AumYNjM1234567890-!QWERTYUIOP[]AFGHJKL:'ZXCVBNM;./VP/:"JyRId52sl\Š)hoj8qWH j# jk.@6|Lv:t>fc`[M`vz>$6QSjT\PK [SR:MufRbJ114[$ZSDj^LS8E 3J@&SNPeu1?۰A-&R@SH <BDRD@f_,"[*O- U+%dsO+ PijP0,8POlgJkE@#Xlkht^țY.06ޘ$. U[~%&4u@pYWJ`k d8sxC}txg;^"z޺VJ*Y$v:zK2;2FeZg ^qp*̵Eрff'4NP^vKH(zo & z  u ԁ: uDKz^WU , !,``u$5@%P:ce f&?|q~ver j'f%bj\,XTT %L#HPu!B4J,f l9 HEDn6: 3֑& Kš( º0 K(>,+gt22.PBȖРI85ت@xjH&PX=z`hpF5xQj T(ՐF039u3X8|i\Cv-8:EB0:L vz(df09O>B:62V DB@f7,vdF ԖˤRC׻InE!G"Eo|"x ZTuY]KI1k &fۨ'*O[wSRJXH?S:MpZ?N-Lk.ht8!()9ompAHIX1hi|WqSB jBm Xb zTh#efT)~ gACf\XhESNY@<B `@غjڀ"g|7;ey_Ҝg| 78eR j;/By^bn*ns*\n)VAGB2:ѻX < kzq0B@:.>F:=/`8>3p3 +*sr.+J.KQ5_J U˪LaJ:OP]KNEgWhh\!Jt`a]о[L%_BZzNLhuxc M<^T !&"$,%PB&=' (<*2+h|,3I.=kkdFl `k( \NR(rTb G.pyH@iGNּ\qZa-/B8mRgd'f%Kɂ.vq I"8Te`DO:Qh*rc36- un>Gjcф]kUdv-!QF8ApF]:"Fd15Fsx>,f3#z(OB(ҔB 6_axUې2Ì nΜEBaSDZm( n3DLloЯsB*;ā0q-KaGq2eaNK=fld$8H3`n d_3Җ"ͳg z:XHJ%h2u(H`f/z_2,e,} `g%LH>) x0X^x``\+asGv[.k 7jiJpeUkVZ:fХ9FWawPgN?<B)iC˧:G¸De UxvRYS 49TVfX([COPY TO| __ C nopl'" 9h>h :^?z3+t=/B?ܹW?|Y/0qV?P߿8H[;=/m0I8`~6z^>bAJDg E0l^qAA3X 6 /\9N"n=2f}"p֭: <Ǣ L(*?&HD4DxPKZG1B*T0X欚#RTvJSl[Sr=k{@>> .и ͕)"A"ߑS<t2+PBE8E<*>8C3 3':"W s7ĶL?VKi kDDCfBDpPDE/ZXl@?%A8fƨfXxs>,8K04شTD<6IPD_J8W$X&f>d ]"v݄n2*H b,_l 9k0Tuȁ4 I,&LqM xOftHn+8fJBf*a;.,"ߊThn]XLEڮP_\ Jl*@߃Pjp%0`zggRLx!3jDDJEj +PR.Z0 [Sgŀkq`8tWn2"*֮%L Ev&H@C$(6vy6փ<gGE(3r21uҁE:"Qnh9b'N(q֑/!?!b(<*ҫN?@fe:<70HJ?$T S@3v,XZ>qUl8yXH00H&AhY 3 ¤QD#;`j"@0n~otx+6x@K0RBr*JRR85c$X,R%JV&@X (㉎{𲐝obXc TS"l2 pڶᆚ#{~4y"JĹ HN1\g2%<1nhHz&>g6NAOt3ø"{Cz,>~ (  ނ u}+b+Vr&4&8{]̆⿮t\akyM&K8_+ 4q.gj|쬵eK^B-J2j(+jB5Sl(X޷)M.K.9S'5z {&r:*G.&<ROH\m))~Ы(LؾJЙ֜3*PNcF{ʌ[P}(ŗ(e jmExB +$$FHz ?NNAm>).#, l:#y ‰$(UHp\ U13)]5f2 m )0؀b)ti~"2 : Y_#gg4L*Q㒺04Jm3( =D+<4,0&J4 sD"8O`˰/Nv"13lq%1$3/ sB:Bdj'xWefnsW3015 (xiB/< nx֎k.ami.spl.modS2"X$Pq" SA"QxF$?B0U'$t۪d&b^ '.MԳ\ֹ'>pVvF"6[#bXVH Pި\o77D*k" MOf 2:A|.@jIJAf2l?) \3x8?Y?>pKA; LpBh (9P(*0B@2[w:. 2bArc26 .N̏afR ~],6 ۄqg iеWjb!3L Fj(5ќ"#N .|k3<DmhkԴw48l!sRf7XfX 1mjWRJ58l8-= +Q^ $f04QuvKj+GF$E',ƥCYxZ$?Z`W\bh<'gA+|L& 1(bټ(Ap &x# /*0:*(台z&`J=q h* i{Ja6&Y9 2ú2geG(Ale" | WrVS@e\qi` vl\LVRyr+HUn.ɐhIیQ3t%]o ȅ %T xOU7 `~ ! ?Y}hS. ?~2 xqX(࿭\:ŭ`3U}ō"3vUPa4w" 0@P`ppppppcyHD'`7o~W@+/wwsbʬ38b$Y(z48Ah7P BVuTX-v)pBAoAkSAA00 2:RAY4 ?Rh&ZA:B0_@(Cj4:Jr1 !g/7_Ɣ"7;Xk b{UNT-( LZDb^:Og<ԙl̝ f4gG 4Po.\W;ޔ\`~k@pM@"`Jk7H\,G f?|UVjc1ZDr9Bx,0:rzM~?Y~< ¸G(2c; 6J0ͨٺ1UFTa2H"p3f NѶFX  b$ԄD&$ZZCvEr>89>X$ xR*SPEN΄$ʸg6 Wud` hE`8k+Nfr eBR2 P~* Q#]K6 @LH?O2#n~bԥ.)f F:< B5K8Gh6cE`V P#׊R1z$Yd1hL1@ <Ǹ&@4 _(r<-èwf0.4C$2'0B`e ;pꀫǦfk6XŅ#ellKи0+? |'l k U X-;5 tC.%+^Ug0:Vn?I.LH)f='MH#NF~QV0 K,\3*16Wxyr,(\dBhp ǟ=g Nfrhr{jA3dSH \B`<Hp B7-O#(]Z&[ #.+Z@4 `MqYαiwnj+(x>*`@*\XH~40JVgs, hBKp $ Jgr0eVҬFĕf힨`g_3j(9N"eh0 ~H;kmRadyJBH NKN6~fCsx0k\XzXg٢Y7y#oy.i~&^rR#H~4roÍiRPO>4ަpFC @ϥiiiRiP iJiA)i(iPf$Ȁ F 5 jT <`B) ׁ̂LR|S@} PWx5hChzhPH h`F@PxF( g  c]M xaJ@j: Q3.g_g$>TW& ^urF52Q*TK""먱:zr# ,nXHـ c|tb2<"H4"b gGg Qf2)vb* e8Qʖ 0VPn g!h|H)0ovCMVE JbN%RI ߁f 6B<DI'R>@kE>*T462VI=)`ά,CeVH% `8rJ4>B uCKNA?DA<$̍t<aȧ Pb#^ ڠvDVuW󶡶W\ T*Vx LB@nXἱ`Ѯ {jTc|S/|7nGJo;cy-'pX?$ !,@^YhJCϊ03A02i2SC` 0^"NqRW;!fVDIaG~ gG+fJ,Uj@xR쁕X_CS">f>4N<x7g;YPJPj `~mbC>~Oj4Ɨ?2J-UXlsBh'[6Qrm-xA^P"X2dP/ 9RNEf0<(_#'o~fh"HE[%eL*sԗZ49Km&Gp& 3}`&|2(C4z(K4B?/B$́TXf iCܥj¥Q=/h#nu ǀu ̺dg>zH@ z<*5:$ l8 ւ(HDLDD0ASKWPEtj #32e\Y3`)Cb?")$B.l·{*$*&(.JCGv$ҁԁ՟"" Jtc6և\lϔ0(s[Zk~K+_bܐ7R$?:n!$NqK#͚Uv3԰_8Qe`50*Q(?* Ս"Cd Eq= ZJZn46:$x>f^ BZ%(vFX$POCSA"  3Qs5 <r3OQR,ie Np<5gy] 6,k%bZ2&Ԃ]j+ f]\~fk.uJE^cbfV XHO;.kio ,g g d=gSތ}gS ggQ7o;ddDgAfPe: Gf0R!J k(,jAf_1F330 *nf$Gp;'ھzj3ڰOLBOA-0:.s;H#@rNu5)ݮ"d` ʞJfJPكH56QD{]`$1rZ@`5&9IxpjhJfЬ i2 lrxX(\:2}hS@. )xR"|Y7{eQ>, ~&O~L^mxU3[rOxcO<* .?wFtP/_u`L:(I}vq@oL+ r^J8&/&uk: okH Jp[H5$4?K{td4fD#mYE3";8zs^.O%'b?꿯kVC1F?]r"zz^x 3vQ Af(_oBDHdZBHne6F QZl.,e;R$H(L6}:Y:H!B1ZF]J' + Hqs\j'`aa]zjYqvBlum:[x hsk1|X{ b0:p`& #ρJK4%&b *$b 0F#eGJ0Kk)eBJIA_K tZ)&a)g$1iTpg ̄}L0UMEțtiNJF,Ai2.``@<  kɒLJE'JkA` U,B@zV0V-1:&Bh=#92L;'<(M,+p;DDL*&Q1n`а31;G'/g2_Iˆk0A ض@O<@'BjvH#QS@K3!h c B:TB?bb[ yighLhHFl %ēi?'bGkl2F瘚U`j6f"~F0Q|j1z, Ձ^ ⿧ 5 Qjj Tð|f|X3A;IijXNN <;'VмUJ9XR@drz޼s֘@#n9 j5դ`mRt(J3SQ6@bPK`Q`0Z?P댤 ]Dͤ:T<fL&2:&HAJA$8^F%jd'"IZ'0fw^ՠHtHppOMXѠLQUR:BBRA0$S@@&Z T2nb$c$Z%35r$(%TLxgZ_(z #>v=bf7@H"F5Z4BQDz3FS F`zz?HMP  --O<G> GG,p.;pKgbNsI}6wJCV9ۂqx n޿ ۷xV9lm*m ^UnՖ[Li;m^˳xi/v#?,ہwR/M7]6z&: _`oI7O\ȓ/G<*Ty,to_k~ag(c0`n]7Z5Wd*T8R@'OMwlKIGED53BA ?>%<> :B97B6o5|4ø3ɔ21107/fKط-,c++*_6) (?'o'c:&NRs%Iur$QS#f$@? b"!i!Jc $Uke_=o!c?ԂZ2?n5&㾻/xa"\8/s1{{Q8 Ճ>Lfv_1)? X/ޛ? iCmwqkb3I_O'}!9RyceG%+( )<xD|znJ^Cw( ؀? &zs;8ZxBC*4qKI 6^~[_sL8]H3#dZ|}|jAWTD2 o j WƥspA ! O q agQ<@ 4  ! 6 y % ᶵvu@: u`1_x+D7x`5xz rjxbhZ@'Jo/ B :2 +>:L#<| W@ [᭻GWҍ_I:<]dxf0>YN|ylrlZ_Y՟R|L\/:?d93p-MpG!!=# 5ػP6<Q}{Ͽgou`e= )?g"x{|7zƧu Op_jуe<`f[ W4bRM7HXCO>L95 o0b<+&"*U^Яڗ LX]W=OԒRxڭe{cГ<oڵ?׽{=z/"Ԝwl~i <z}y2Tu^qmi/8f<y:@6^-3a/,_( %K_!vձfbc ^y 'd^wc j {[ӑٷy\|}+I+/6<`^(U ՙ lKB<;;9/7+6-=61S/Z.yy*:):'&$#.!ZjZCWu^jz7>OGb 8 ,Α7/⿝w0ٛ]aY ,k UWXM|"]_/Kzy@bM߬TZSQ_mب5 ec^y ҪЫٗԔuyPIe_ⱸeY^Ҽ*DM5 eW^~c*/c|VUu$wٔ{ ԏ:}Zۏ6,{Z\Y/k녦[jV[j~}ԇ|,KzW)yxwvZts$r/+R_vo~nmlkj iVgXUf6eY8b[ax_^ ]/\wozgX WV8U>BvR@QPOTN MUL;xJjIADv㥹GHjyERYC].Ak"s_|/7=]e<;':c9]e7b,x5w43Ǯ2Y10/.UU-ח,+ *T)ڗR(F',4$, u#}Y(! ԊV9U)/$UZº,9W]tU:W \t Y(K ]ᥰ jXsW]eTWXMz=jO}TWVJT-Mxje?펿zjKك=/j|!k2UW /1ޫS5 Lۮz:^|]ּ:V/]ӨHi/:G;.*ίjՕY<0KrW^'Oc]-wUo±z.I^wmRl!vڠik]}|5FBzh /aϞQO!ǘAHW~x3r0lgkcK~p_([Z^WTQNL I?G^E4C+A@?p=<:C9{7 6`u53A_dm10/6iX/,_+r+ן*K)+('`Ŀ&z&G%pz$@#xK#"=y"A! M *DI\?jt GO=2+xG0:]@84k`6k뎨K Nji>MyF|c,i|%t3=d5*H6]x1K<+>IYSj;E  zצ?>xo M< + <znP#z2xs"?!-gnfq7</'(  o oC) #Awl3pcacP~n|=vCpjd]>W/Q<KkE@:0y4Y6.x(ɀ#| T'S]|ۻTVx*>;P^؁\ ~UXW]*sKT3?*S}^zP(Hv%!ɍǩ}į6 <Ty <{g0exy\KUݍo`FZ.9 Ճs#h~Kz|uzwxuKsPqoBmj"huf=dXb` y [ÑYxWyiSOQuyO=MJHWFjinFT@>+9862ʼw0U.U'*('N%#4!ugbutx Ţ .w%Y)#l̕t?o(LEW X&,IF8H {UR=XPV,`nYjAvauȀyRMjuUEKDjCBmuB م?y>{UxԎwyPaXN햬XW/j撫őTOWr./]u`u?ʋW]J쮉s½j FԓW] l&Z€ ~F!k*.|U{z(yxUxvvvyuQ tҞr eqpRe`o%3nZzmZljkLxkjU7jW_i^}uhhn]f#e] dT2dWcmzbYfaac`]v_U_ʄ_]ݑUv9\*[0[bZZɀB9XRoW\;v VdUƸU>ƎSS`etrRuQUPPzOOEUuNZMLDz.K\KJXuIWI^rH5H-GWEF\qFTY(E,\.Cq,BL. AM@6@j?>T>=l"0lD7xL<@weweB 7~֩}/^'@="C 5  y ^Nf * Կbޛ3_pg v= h^ Qh.;t$ Ax䫷x ; k XtzE 2 = /?6)<ؖ# +cs<7s7//}<'ۡպI<N <5^&3z]e@HFt'={Е\Cx{uyxoMh иΐ!ǩTxxM=--<Z|<&z¹ `x o x ?Gh?Z?Vt{7͈<<1_2x'U0VBE *U AP:N[% ҌU%0o;GSao~_Ё<K~, u}@|"{8azNyx}wOvu`tYsr*qRFppoEbnm4`l`l yk@+jiUmh*gEf e)y=@#%zAN"pS|ȯ8_ 6d,;<진#znxd@_^Z3TO JEز@S:ر0+n&,!x3  ҽje^x@^h_ٮՎTljL俻4I#~5qvTu@tJ~fz|u$qRmi'ee^]Y^UpXQiJ=F4WBZՅ:6<38/^/+'$1< 6J,<w td5Im{=R? ڨ^/и>ɎNG<xo2`YꬑezH - hTׁJ~F{Tx)wuXp؋mjEgfda^P\#Y9wS`^NNKV^H(EBC$@=ƒ;*8U53|0dP+b(*%AE  1:# k(:p(τ Н(jn_`uկW5ϧZP?*ܠ:z>5q.937t%32xG0,.-w+c)]&R$J!_VuU.NSgkC  `C^F.%x@d-NJ/yX^VlK7V;XUzFy@I_]auI#Cl|;ߠ2ݯ*لf;ֵU(V?_Щ {̪˫7/{a~Ŕx0U⾧d+G^xPXRyUnt!mV⥫GЀ$=;Ce: 987T6*f4.K3R2]1*0T/.-,+c#*]ߥ(']dB% w#Pw"W!-]%BD?Zwgusg?]ty,.RTe]  "+»~ ޺K6˳vj]rFwWvm,CYvbWق]ew9SG^=}u)E`5Uܲ{UZēƾZh.Oܛ2ԃ:噲.{^ ~UrTW^F-~uկWS*ګ٬jj׫ HpW],KWgЫЬz?ˉͪjL`˕՝WU_ǫƮTQF}U*Yj(mg⻪K?ANZ.%ꩵ^"z㳳ex۱Uu{ Ԓ,slΫتՆ稫X IW;^yУPW^xYB7 HWM^Tjj暫27W\}u8.ݔ^sUړIW\uwUv폪p. .s)Ӻ>ժNcgOyޯjl/ϧˏ*c' }BT?u}oWi{d5j_o[SW#QSP*MeJ:GlEBν@>b<:O9C76*K4K3c20/.C댤,+w*)z('Lxv&%Ј%~p$p=#)2"N!g o SS\P_8] 7Su>EY%cť8< m𔀟mvG!x =ׄ_1mzzKIwVwǓ_X=j@L=.+ިؼ/7k#P)64Z' *B si\txE$/sx _ |  rxQ K8w%N[CEp fqsT?c)Ru|B] 2 "  䀳  k͚\x~8(mpb TzG 9,hA  \  ƀ^y~x^.xO t"h]$<~GP<^K1&g   ~ {x|LzzakD~Wt7kuY943/r%ml^{;pr  {!ykoxuXy  3=נu'ZƕUk䱔s uՎ|_(ҽl{PX,^}[yvrخnmjfc7_.[XTqMR5%z-;z87l43؞2e0W/.d-Ez+*Ջ)AlA%q,kp",! b*jA9quŀyu2OW{^yI W # z;*c7ޝQ^%dTV}X`uըW^d2yyySKA|SBTTV^eUbVYeޗ_wܨٚRٯNֹҼcuUWXe5՟K̨BUUhɖyRjūuįFú´DXi*EP,/d>\bu>ȶjJ}Vװf~TW]d5TWcX`U%NMy9¢I5^ VG_]Td_*̗uzWX#6T&VOlX>F,t$Lv߆U*!)UڂfX- ~~}P|X}b{zUzyj /w^yw5vZut²rUqpRpbkxonmNmՉlee;^zjPi]hggԘfe*dn|bc5be2aOZ_5^2]]j\De`[ZUZ*YSX]`XWaVWSUUIGsSRQ$ZtO5OMNWUMXuyMيaWKJUm{IIUEHWG]vGF`DEDՁCՔC:BjAC`A@U?V?\ x>U=U=W <^ew;;:TG:W9j8W<|6Տ65j5Ls4nYϨ611%X*0/c%. /-]-,+2+W*\eu*5)Ր(UxGʒ'&S)%]H#R$&\6U(U"^x!!U! W \?F5IRlKj> %BIJ,\U/ˊ/\d-Z  ]* W \ग़ lpZe\u57\4B*Pi\mVo]xu&/ulAUjy2/:2ՈnIk[u}pFBſ A!0L%}|"tl'?e_ZU۫QoMJ&qF3CA@>(WQ}B~I'oOG /8p[ =<{Z7_;9' / LGPiG݈=.2t(x  u׀k9ı \🀛e|r{r—j> bYP1vH@X7+/'tUph=?<ڠVS֋ඓ^ipi3Mut=)?wy2rp)vkk!fb*~]Y9࿏TxPNxKxGC$x>π:x6i1-V)_%d=@" x,-?ԟN6TEy1޵#5υaϨFINx,mYB(.x_gxb| ~s?{JFmVkigfd8Gbk`^]:[IY~WVT\R׌OMyKI?HxFDPCAc?*>>A<:9R7w642٩1?x/@.<,*z)T'&4S$#,~! /<t__pMpp=xf =  z;box[xQtܓ#h,=\va-y@X`y⿷뤊JX=ݒ<<;4:y9 8.L7p_6l5J54W)321g0// .N<- x,]+8*j)(J}'&y&%&$y$#T"+u!0y zX[<[,@`0ޖf\ %Cc P)%(@KJPw [ $W 9 Z "c3}'M >3X'5auH$ u m&mU:&TUV* u@Xcy@O u"(ͫJ*^­c u@gX]&:|q)[xPYd;i?4Nvʎs 8ݠ8ܺy/ ࿲eD`y|C:ؠyX:Ir V#-XӀқ`ёy@/ЈЀNԈPBM̵̨ˠTzkQ5(G׵حӺ>3#meULA$] Kbpf1'-(ҿC&)$.{8wnrjnk3gdat^[YUV<TRv%PfdNpaLGJiIDGw{ESDlBxA@Q? =<;7:y9m8k7r6|54733 /2?1z^0-w/K -Kꪩ,+u>*P֯&);((32N$'809&I%%e$ $$"?#W4k"1>"6vRE?!'S | (q%;9NVZ+<~X\u5\?(^`|As\S%{]R#t=]h:P'y."W}PUT-8K=yPpLJ(k@?xA={.Z<9eú(}z_A$?ΞI{+`&ET7AjĘW<znzb??J|2V;tWּo~=hS>()xzפ 㿰wv'oc6Pt=Z+x=54pZ *-k  1˛ĀJ% g ?Hx Q3uP5 y 5 -3 %%߮ ȁ~ѷ _ rչ< k<ռ*9 \T@|uun[g `GYK[D^ =ǃ 71 0 )Z "= q $= [jM迣< LyϚqÀ7<zi){AX |Hyvp\keZTa:.K)N$P:ez =z`u4_qCk h}da^I<[^TQkNbwK%_GcD=A>X;yy5_2/Bk}8^y&-z# u~3=0Cc%^ ;/r#JVLЄl2Zޮyi]ۀԫgzUUpx@^u 4/kJv`Tspz=[Q%ɐcƼhlj¼Hy5|e_^x)xusqn*l[-@gwOcx`:ٞ\YWU;SUP NQ'LU*ECAx?<:846{42 /P:y+V)j'b&E#+$^;quw95874N2d e^-x9.-^+*P)]'/&c$]x#" >'eOv؀W^Ueu=R. ] -6Xl.IY~קXW^zIaU&*jUWW>X7V5j[<^TWހ݊j۫%ٯrjUXUzYzѬ:ԍJj̮ͫTW]ȕǀZOd]V lKvWgj̿"R5.uX`*V^=vV]5/rʪ_cu>5U|W]`uUV:MwKeՙְ,K[]*8˚wڍUJ5$KyD|Ɏ~}J]|{"tdz [px!yw,utM%ws]yrjvpSUo]ynmUQlǗvji#ih"e6]f<Jdlcba`VU(^]w]0lIW]FZ(YX]VVҥU.qdRFQˎOzO.9MLgVtJIU6TvIGF:ERDd]&B(B#v9@s?4>==<;a:9j.77Ke]v54j4:q21U0Z/*/$2V, +S*כ)s(. e'&K%c$]uq#9g׶EN O`4Qy+Wr_d(O<+{SupH]kgfbv_[}X9;U.RWOM2J:HCF/DJBÇA?W?="^<@W9r8$6543v2i1g0o/G._-F,+V*7)+(~'5& &%m$ޚ$S#J7""O%7!az '|D(S=  PrF7pjW}?pr'/ʾK7r\G2 ǣ ໙bP / l9n3=.UV)#px yaK JQ_^*d ܡ<eμSЂTSq<1'<z]zBߍjx@,&{8wv}#njKfb]\YVUQ[?M;IE @+׾<zzExm7 =xސKn}Mz"gwspmjgda^/[pKXlU@)RzMxJ%=GD_zA>;[86A30A-*(8%8"; Ix@g<  z)Vx"ЃZPjN@):+2y@UXՌya_]Jy[@Y[W~UsSOQOz<{:7(Jo5pP3|=1/z.3,*kz(&%#v,_9(N7Qz u   O^>:UL pxTt8ް<2<*NQx1^eߴݧְ<ڠs qy@ iА 򮀎 䫧oB[V[?@<1*% Y|hCPL<=<Ю;x:98~y7k65G4wP'21 8/(.H-3,+1*O)=(ʿ'&%x$##<"T!8 }Zw=T*t\x{xIzA  ̀o pEH=!N3CxSdu x'XyJR XPuq : )<#NL࿧,s@-ְ,`0yU#zx@]ܪ ۫;ڨe؎<נ3u 6(9PӍҺX(iBp΀B,4-,hʏ@PV'%XXƋ,ſ(Àɓ7 n>@%BQ໊;:v򣷱x*xPf"{tFzJGdՊ@AmP56l0Lrbt&ະ&`:r$q`xY7WUُ$LŤBu!v~n]攍%``Fan. |A>`<| PK\>V~fB{#`ff<;$`.80`e8T8Z8lD:0~礀V =p+\e%cO @e2X] PrN{23# a@rT/gOcQ #,$Q $, eί (X#SP,6*bP Z+e&0K,fbV#P¢p'=f0dNhImlH"BfA#0S4<2o*5Dj<Y 8"m6 h6 O 8p6$88 X"nv,b$I)&*?B U$F&z9F@Wӑ#: 3Y"^f .]Y 0N`ѕ`Py&>qxNi0͒GYH. w8@̞arWf:"5"(2Lp $Ȝ!&kd̨ M $1( $ā* ,}.`GhB Ԕ@ `i T:,HEGMB\&) A,0D v |&1p H @LJjN " HZC >,:.FP*?܎>4 hTnX(T"Od?  =DAM l P6 0 .(f *.Gh- Xg6@&* F".}CA,]Cv <(SfN^Dlې rJ[k{m'>,kxO!X n3+;+;<.`l x/>#؀J`> '4x(pO^ Xw+j`xHpo V= o40ISa+$kfO0k"X$X;7;]>w0p=TxxxxxxxxxF}<x`,;'̀gg \ x/f<`l+>~/`Ӏx pO^ <x'f` !x?O^! %X+dh>ߺ4D`i~SsgtPRVZ.oi?W8gnQ<G Bl{ xq">q<7NbK\Kx2'.x^q,^ #X3xh-N <8/`+x1NA <8/:c^h3x15^ X/|n +x9NE X \s#H͔p5g n`V,%,T,faCDb )n^b^a0+8f1"X$XxrΑ;8Gs֕:[8G 9u"}9؀Li x8.5؀7>߮'YCxnq.^ bM3sU,ŹWHm+uձ6٠zsxE&Q<<I\ x+%6~bPl; xK)6M؀bXl>YW+b^[xvq/^ O:` sL α;?8<+sΝ~X:bILuM+ֵźX:c]kuű; nFX L,<xkb^Zkxp.N <8/ bsx2Na <8CJc^jkx16V X+c^rkxѱ:VEXM0\ợ+2V X&t͟ f nNf nVa^1̲a}W,*fe1ˋYcBcVX3 'O"X$X>O:` sL α;?8<+sΝ~X:bILuM+ֵźX:c]kuű;Y? @X 0)xpY5xe/-V o1mnP[c^ƺP#^ x@mWn1H_(x/x_E]m+nԶmgnXb ^(/8m<3n;n(w+<@|%>H &I G1kA{|.;{z.<î 0? 0?| jTk lij*kԏlL<  `((<i-jTklL? xLJL*g x@@~0H~HPU>*ԋ / 0(/( x<"/@0~h u?چWho[>NQ}zke.v x x x x x xo6M ؀7V` lہ xC/>x VM X+>`;x+V X+~` >d3l{F[lmfC0 "X$X6F7G7H7I7J7K7L7M7N7O7&`uC&),/258;>,xo!XMnoooooo6- ؀F` l x;o6e>poV= Xw+6`x'oV Xw+v`xBx(somQ_7}\ xsoP7+bSxWo+V} Xw+b[xwo/V Xw+ccxo3V} Xw+Vckxo7V X} Mb.c>`6#m f0*~a6 s!f#1R̾b6Øm5f1 "X$X76N7O7&`uCn ֍9X7&a(uðn֍úyX7&bHuCn*֍źX7&chuñ Ղs[ ?X .a(,{xMoX a@,{x$X bX,{x{0MX ncp,ۆ}4lۆ xo6}؀7bDlۈ x#o%6؀7bTlۊ xco-6؀7cdlی xo56؀7by>_8+bTx[+V X+b\x{/V X+cdx3V X+^clx7V b6-+fs1;f^c63'"X$X X7f`ucn ºIX7 fa0un ĺX7fbPucn. ƺX7fcpCnqxۂxgoEXw Fa+,ۅxǰo}uXw bC,ۈx'o&Xw b[,ۋxo2}Xw cc{4lۆ xo6}؀7bDlۈ x#o%6؀7bTlۊ xco-6؀7cdlی xo56؀7>+bSxWo+V} Xw+b[xwo/V Xw+ccxo3V} Xw+Vckxo7V X'<@J/ Mb.c>`6#m f0*~a6 s!f#1R̾b6Øm5f1o@v"X$Xun!X7`unºaX7 a<un$ĺX7b\un4ƺXTߟ x˼Oap y^J x</+XW$x8, v^#x~z3-&YeKc1€ [1oZG<5#. #u GL0D-xҖz}x e_Uـ'<BhSn4MAx; x08c<`X-xT$k7,xYlxsot6V*- X7+bVxc,V X7+b^x0V- X7+.cfx4V X7+ncnxñ/"5N]}lfG0ۂav Ulf0ۇCFbv}l.f1یk̆c"X$XolnnMX7`usnMºQX7 a4un MĺX7bTusn0MƺX7c],`,xo]QX va1,x߰oX 6bI,x?o)]X ba,xo5X Zûi؀ a:l xo 6-؀FbJl x;o(6-؀bZl x{o06-؀Fcjl xo86e>Rqo)V= Xw+bWxgo-V Xw+b_xo1V= Xw+6cgxo5V Xw+vcoxOwO)!YIŞq[f`v-lf0[/̦av}=l$f71[Wbv͘l8fO"X$Xun!X7`unºaX7 a<un$ĺX7b\un4ƺX$^-8 `,xWX a4,x X NbL,xK*X cd,x6 W*- X7+bVxc,V X7+b^x0V- X7+.cfx4V X7+ncnxñOx)ؙ'D_ 5N]}lfG0ۂav Ulf0ۇCFbv}l.f1یk̆c&L߀"X$X76N7O7&`uCn ֍9X7&a(uðn֍úyX7&bHuCn*֍źX7&chuñ!?W m3X7 `",xcX7 a:,x!mX7 ~bR,xc-X7 >cj,xñNu1/~ :9Px\xV1>9P"x@ԁޅbHUbxԁu wawag U(UxV&>;=JU$€ 1@VQU€ 0 V<(Z j5|++-TgL2468X<`>4)8Հ x Ёx``^`W x0hT:ՠ^W@@U@z@ x`H:HHNHWUzՀ^}0 x` : N u((S((T:N3Y5B79ANuS`<@S@@T@:HHNHuHST>`T:Հ<`; N u (S((T(:Nu#B%')ANu(d!n6xO&`$ #!C0  8({'\M. >!1T\- .@dDnd ,R dL  ~ H$06601030305800 1 2# F0110030 9[...................................................]001   IlProfesoreandBitmaster of ISTARI ProudlyPresents DIGICOMPOSER  HISTORY ThisprogramwasoriginallycalledNoisetrackerandwas createdbyMahoneyandKaktusontheAmiga.Lateronabelgican guycalledDrSatanfromF.A.convertedtheNoisetrackerand createdaST-version.ButtheST-versiondidn'tincludeallthe functionsthattheAmigaversionhad.Somethinghadtobedone.Il ProfesorefromISTARIcreatedDIGICOMPOSER;amodifiedand extendedversionoftheSTNoistracker(seefunctiondetails below).DigiComposerispublicdomain!!!  OriginalAmigaversion: Mahoney&Kaktus  OriginalSTversion: DrSatan/F.A. JM.HARVENGT 212RUEDESCROIX 7310JEMAPPES BELGIUM Mod.andext.STvers.: IlProfesore SVENKARLSSON RYDNYKYRKA S-59197MOTALA SWEDEN   NOTE:Senddonationssuchasmoney,cars,expensiveitalianclothes andshoes,bungalows,Krellampfilers,NEXTcomputers,life-long suppliesofCDsLPsMaxisinglesandSinglesandDisks,1Gigibytes HDs,moneyforplasicsurgery,smallcastlesallaroundthe world,Nobelprizesorsuggestionsorbugreportstotheadresses above.(BugsandsuggestionsshouldbesenttoSvenKarlsson) DIGITALMUSICTECHNIQUE  Hellofans!Well..Let'susjustbemodest.Bitmasterwantedme towritesomethingaboutDigiSound.Soherewego: TOPITCHORNOTTOPITCHTHAT'STHEQUESTION Toplayasampleatdifferentpitch(topitchit)isverymuch thesameasvariatingthe{frequencyofanyperiodicwavesuchas thesinuswave:thefasteryou"move"troughthewavethehigher thepitchbecomes.Thisissimplydonebyaddingaconstanttoa pointerwhichpointstothesampleandlookingfortheendofthe sample.Theaddingcanbedoneinmanydifferentwaysbutit wouldbetooboringtoreadifwriteabouteveryoneofthemsoI don'twriteaboutanyofthem. Pumpupthevolume! Yepadigisoundtunebecomesmuchmoreamazingifyouareusing volumecontrolorVELOCITYCONTROL.Thisisnotveryhardtodo: justadressamultiplicationtableusingthesampledataasa pointer! Additupp! Intheendthechannelsareaddedtogetherandplayed.That'sit. ThistinytextisnotmenttobeunderstoodbutIhopesomeof yououttherehaveunderstood.  DIGICOMPOSERFEATURES -Upto31samples -Threedifferentreplayfrequencymodes -Threedifferentreplaymodes:ST,STstereoandSTE (stereo  -Eightdifferentreplayfrequences: STLow:10.24kHz STMid:12.54KHz STHigh:16.61kHz STStereolow:8.90kHz STStereoMid:11.59kHz STELow: 10.97kHz STEMid: 14.29kHz STEHigh:17.55kHz  -TotalycompatiblewiththemostlyusedAmiga-Tracker: ProtrackerbyAmigaFreelancers.  -Overscan -TTsupport -Timercontrolledplayroutine.Youdon'thavetobotheraboutthe 50/60Hzproblemsanymore!  -Improvedsampleroption -FasterreplayroutineNOTE:Thesearenotmyfastestroutines.  Theseroutinesareratherslow.  -ImprovedFileselector -ImprovedPatternEditor -Andalotmorewhichyouwilldiscoverifyoureadonand playaroundforawhile..  LAZYUSER LookinDigiComposerHELPareaifyouwanttogetstarted quickly! REFERENCEANDEXAMPLES Hereisalistofallfunctionsandcommandsthatcanbeusedin DigiComposer.Tomakethisprogrameasytouseandunderstand, allfactsinthismanualareshownwithexamplesandnotes. PRINTTHISTEXT!!!It'smucheasertoworkwithDigi Composerifyouhavethismanualbesideyou.Ifyoudon'towna printer,useyourprinter-owningpal(andlethimpayforthe paper).Well,themastermindsouttherecanmaybelearnthis manualbyheart.   MARKS&NOTESare...marksandnotes.BIGunboldedwords(or(see ???))meansthatyoucanlookthemup.The([???])amongthe screenfunctionsmeansthatthefunctioncanbeperformedwitha key.  ->--  SCREENFUNCTIONSareallthebuttonsthatyoucanclicktochange parameters,modesetc.Alsoincludedinthescreenfunctions ((conceptionaredifferentkindsofstatusframes.  KEYFUNCTIONSareallthekeysthatyoucanpresstochange parameters,modesetc.SomeSCREENFUNCTIONSarealsoavailable onsomekeys.Agreatdealofthekeyfunctionsareconductedto theEDITFUNCTION. COMMANDSisawaytocreateeffectsasecho,vibratoetc.You simplytypethecommandcodeonanoteandthedesired (necessary)valueandthereyouare... MODESaremadesothatyouonlycanpreformcertainactionsin respectivemodes.Therearethreeexeptions(seeL,M&H). NORMALMODES(play,pattern,stop):Inthoosemodes,youcan onlylisstenandstopyourmodul. EDITMODE(edit!):Inthismode,youcanenternotesand commands.  RECORDMODE(record!):Inthismode,youcanenternotesin realtimewhilethepatternisruning.Youcanonlyrecordone patternatatime.  FIELDSappearsintwoform:SONGNAMEandSAMPLE. SONGNAME:Ifyouloadamodulethemodulenameshouldbe displayedinthisfield.Ifyouhavecreatedaownmoduleyou shouldenterthemodulenamehere. SAMPLE:Ifyouloadasamplethesamplenameshouldbe displayedinthisfield.Ifyouhavemodifiedasample(whiththe SAMPLEfunctions)youshouldenteranewnamehere.  TIMERisa...timer.It'sreallynicetoseehowlongasongis, or? Whilethetimerisrunning: LEFTMOUSEBUTTON:togglesthetimerstart/stop. RIGHTMOUSEBUTTON:togglesthetimerinterval/continue.  Whenthetimerisstopped: RIGHTMOUSEBUTTON:zerosthetimer. ->-- RIGHTMOUSEBUTTON(ingeneral): Clicktheupanddownarrows andholdthebuttontorewind.  "COLORED"FRAME: Tomakeitclearwhichfunctionthatis choosen. "COLORED"ARROW: Tomarkthatafunctionisused. --"-- SCREENFUNTIONS ->-- POSITION 00 UD NameStepsUp/Downarrows Positionistheorderofthepatternsinthemelody. PATTERN 00 UD NameStepsUp/Downarrows(NSERT]/LRHOME]) Patternisamelodystringcontaining4channelsandduringabout 4bars.Amelodyisbuiltupofdifferentbars.  LENGHT 00 UD Name StepsUp/Downarrows Lengthisthenumberofpositionsinthemelody(addedwith1).  RESTART 00 UD Name StepsUp/Downarrows Restart:youcansetapositionfromwhichyouwanttorestart afterreachingthemelodyend.(Ex.neverendingrefrain,start alloveragain). -@ SAMPLE 00 UD NameStepsUp/Downarrows([+]/[-]) Sampleisthe"memorysamplelibary".Youcanloadsamplesinto thememoryusingtheLOADSAMPLEfunction(seeDISK).The socalledlibaryisyourorchestrawhichcontainsamples,that areinstruments.Simplychangeinstrumentswiththearrows. FINETUNE 00 UD Name StepsUp/Downarrows Finetuneletyoutunetheinstument(sample). VELOCITY 00 UD NameStepsUp/Downarrows Velocitycontrolsthevolymeontheinstrument.Setthevolyme withthearrows.TheVmustbedarkedbeforethisfunctionwould makeeffect(seeV). LENGHT 0000 UD NameStepsUp/Downarrows Lenghtisthelenghtoftheinstrument.Youcanchangethelenght withthearrows(ex.takeawaynoiseandclicks). REPEAT 0000 UD NameStepsUp/Downarrows Repeatwillrepeatfromthenumberofstepsthatisadjusted. REPLEN0000 UD  NameStepsUp/Downarrows Replenisafunctionwhichallowsyoutosetthelenghtofa loop.(Ex.trychangingreplenvaluetomake a"good"loop). -? 1 Number 1:standsforchannelnumberone(fromrighttoleft).Aleftclick togglesbetweenON/OFF(darked/lighted).Thison/offissimply volumewhichisturnedonoroffallcommandsandnotedare executed/played.Ifyou"right-click"thenumberwilldisappear andallfunctions,notesetcareNOTplayed  2 Number 2:standsforchannelnumbertwo.Aclicktogglesbetween ON/OFF.Seeabove... 3 Number 3:standsforchannelnumberthree.Aclicktogglesbetween ON/OFF.Seeab.. 4 Number 4:standsforchannelnumberfour.Aclicktogglesbetween ON/OFF.See... V Name TheVstandsforvelocity.Thisfunctionconfirmtothecommand forvelocityinamodule. A Name TheAstandsforamplify.Pumpupthevolume! -?  PLAY Name Playstartsplayingfromthechosenposition(respective pattern)totheveryend.YouchoosepositionwiththePOSITION function.Mousepointerturnsyellow. PATTERN Name Patternplaysasinglepattern(theonechoosen)orablockwhich isdefinedwiththeBLOCKfunction.Mousepointerturnsyellow. EDIT(PACE]) Name Editletyoucreateapattern(score)withthedifferentkeys whichgrasps3octaves(seeKEYBOARD).Youcanchange instrumentasmanytimesyoulikeineachchannel.Mousepointer turnsblue. RECORD Name Recordrecordsyourbashingwithinthe2octaves.Therecording isinrealtimeandonlyonepatternatatimecanberecorded. Mousepointerturnsblue. TEMPO 06 NameValue Tempoissettingthespeedofthesong.Thestandardvalueis:06 (ca.124bpm) Changevaluewithmousebuttons:left=faster, right=slower. -?  STOP([SPACE]) Name StopinterruptusingPLAYorPATTERN.Mousepointerturnswhite. DISKOP.  Name WhenclickingtheDISKbuttonanumberofbuttonswillappear. Thesebuttonsaredifferentkindofdiskoptions. DoubleclickonabuttonandDigiComposerwillchange directory(youmustofcoursecheckthatyouhaveinsertedanew disk). INVERTEDTEXT:Elucidatewhichfilethatischoosenfrom thedirectory. LSAMPLE Name Loadsampleloadsasampletothememory.Chooseadestinationin memorybytheSAMPLEfunction(clickingthearrows).(Ex.set samplenumber3,thenuseLOADSAMPLEandyouwillforex.havea "stringsound"asinstrument(sample)number3). SSAMPLE Name Savesamplesavestheinstrument(sample)withthenamestanding intheSAMPLEFIELDandautomaticput.SPLor.AMI,accordingto whatsampletypeischosen,(Seprefs)asextension.Ifyou wanttochangethenameofthesampleclickintheSAMPLEFIELD. FREE Name Freedisplaysthefreespaceonthecurrentdisk. LMODULE Name Loadsamoduleintomemory.Amoduleisamelody,songor whateveryouwouldliketocallit,thatisacompletework. SMODULE Name Savemoduleondisk.Savesyourcompletework:patternsand respectivepositions,usedsamples(eventhemanipulated). Modulestakesplentyofdiskspacemuchbecausethesamplesdata. FORMATS Name Formatsinglesided.Formatsadiskwith80tracksand9sectors. FORMATD Name Formatdubblesided.Formatsadiskwith80tracksand9sectors. DIR: Name Directory.Showingtheactivedrive,paths...  SAMPLER Name WhenclickingtheSAMPLERbuttonanumberofbuttonswillappear. Thesebuttonsaredifferentkindofsampleroptions. WINDOWOP. Name Whenclickingonthisbuttontwoadditionalbuttonswouldoccur: NORMALSCOPE:Thisisthe"normal"state.Youcanseethe currentsamplesappearances.  TWINSCOPE:Thisisthe"loop"state.Ifyoulookat theleftpart,youwouldseethebegining-endofthesampleandif youlookattherightpart,youwouldseetheend-beginingofthe sample.Thisisavisuallwaytoconformagoodloop. ZEROP.FIN. Name Thisisazeropoint-finder!Whenclickingonthisbuttontwo additionalbuttonswilloccur:  REPEAT: RIGHTBUTTON:Searchingforazeropointupwardsinthe sample(fromalowertoahigheraddress). LEFTBUTTON:Searchingforazeropintdownwardsinthe sample(fromahighertoaloweraddress). Whenthezeropoint-finderhavereachedtheend(orbeginning)of asampleyoucanstopclickingbecauseit'snouse!Lookhow therepeatvaluechangeinthevaluefieldofREPEAT.Youcan,of course,clickthearrowstostepupanddown.  REPLEN RIGHTBUTTON:Searchingforazeropointforaloop upwardsinthesample(fromalowertoahigheraddress). LEFTBUTTON:Searchingforazeropintforaloop downwardsinthesample(fromahighertoaloweraddress). Whenthezeropoint-finderhavereachedtheend(orbeginning)of asampleyoucanstopclickingbecauseit'snouse!Lookhow thereplenvaluechangeinthevaluefieldofREPLEN.Youcan,of course,clickthearrowstostepupanddown. NOTE:Usezeropoint-finderinadditiontotheTWINSCOPE.  TRANS Name Whenclickingonthisbuttontwoadditionalbuttonswilloccur: OCTAVEUP:transposethesampleoneoctaveup.  OCTAVEDOWN:transposethesampleoneoctavedown. -? VOLUME Name Withthisstrangefunctionyoucanlowerthesamplevolume! Thethoughtbehindthisfunctionisthatit'ssomethimes nessasarytosyncrondiffrentsamplesvolumes(becauseofnot havingtoadjustthevolumeseverytimeyouwouldliketousein anewmodule). Simplyadjustthesamplesvolumewiththearrowswhich affectVELOCITYandthepressVOLUME. ex. flutesnd:velocity40(hex),whichyouadjustto: flutesnd:velocity20(hex),clickvolume,adjustto: flutesnd:velocity40(hex),whichnowshouldhavethe20 (hex)volume.  FADE Name Whenclickingonthisbuttontwoadditionalbuttonswilloccur:  FADEIN: doesn'tyouhaveanytinyidewhatcouldhappend?  FADEOUT:ifyouhave,youmustbeaexperiencedhacker!  COPY Name Ifyouwouldliketotakeacopyofthecurrentsample,which you'regoingtomanipulate.Enterdestination.  REVERSE Name Againafunctionthat'sincrediblehardtosayanythingabout, butIcansay:Hi!(betternow?).   PREFS Name Whenyouclickonthisbuttonapreferencemenuwilloccur. Therearethreemenuswithdifferentkindofsettings,which afterfittingyourwishes,shouldbesaved.DigiComposerwould fromnowonloadaDIGICOMP.INFfile,whenyoustarttheprogram.  Changedefaultsettingsbyclickingorediting.  PREFS: A:\_____(Driveandpath/swereDCwillsavethe DIGICOMP.INFfile. NOTE:TheDIGICOMP.INFfilemustbelocatedintheverysame directoryasDCoritwon'tbeloaded!  MODULES: A:\_____(Driveandpath/swereDCwilllookfor modules. SAMPLES: A:\_____(Driveandpath/swereDCwilllookfor samples. PALETT: MONO(MONOorCOLOUR(see[ALTERNATE]) DEFAULTMODE: MEDIUM(Low,mediumorhigh(see[L],[M]&[H])) OVERSCAN: OFF(Ovescanon/off(see[O])) STEMODE: OFF(STEmodeON/OFF) STEREOMODE:ON("Amiga-stereo"mode(notpanoreradstereo)) VELOCITYAS:HEX(Areyouaprogrammerornot?) seeH/D! ST.OUTPUT: YM2149/PROSOUND(Stereooutput) MONOOUTPUT: YM2149 INPUT: ST_REPLAY(.SPLsamplesorAmiga(.AMI)samples)  UPDOWN MAINVOLUME: 0(Softwarevolymecontrol)  UPDOWN LEFTCH.VOL: 0  UPDOWN RIGHTCH.V: 0 UPDOWN TREBLE LgEVEL: 0(Softwaretreblecontrol) UPDOWN BASSLEVEL: 0(Softwarebasscontrol)  ** NEXTPREFERENCES **(Guesswhat?!)  ** SAVEPREFERENCES ** (Guess?!) ** EXITPREFERENCES **(G...)  TRANS 00 NameValue Thisfunctionisquiteuseless,butit'sfun.Changevaluewith mousebuttons:left=higher,right=lower. -? CLEAR Name WhenclickingtheSAMPLERbuttonanumberofbuttonswillappear. Thesebuttonsarethreediffrentwaystodestroyyourwork!  CLRALL Name Clearallclearseverythinginmemory.Patternsandsamples,all willbecleared.Thisisasortof"new"function.Rememberto saveyourworkbeforeusingthisfunction(seeDISK).  CLRPATS Name  ClearPatternsclearsallthepatternsinmemory,butthe "samplelibary"willstillbethere.Thisisasortof"I'mnot satisfied"function.Remembertosaveyourworkjustincaseyou regret(seeDISK). CLRINST Name Clearallsamplesinmemory.Yourwhole"samplelibary"willbe lost.Remebertosaveyourworkjustincaseyouregret(see DISK)(YoumaybehadeditedthesampleswiththeSAMPLER). HELP(ELP]) Name HELP!Thisisaintegratedhelptextwhichcontainasocalled "getstarted"andshortreferences.  ABOUT Name Well,thisoneisreallynice!Don'tyouagree.Paintingthe logoswasapieceofcakecomparedtowritingthismanual!  QUANT 01 Name Value Thisfunctiondefineshowmanylinesyouwishtogodown,when youworkinEDITMODE,afteryouhaveplacedanoteoracommand. Changevaluewithmousebuttons:left=biggersteps,right=smaller steps.  COPY 01 Name Value Thenummerofcopiesyouwishtomakeofadefiendblock(oneor fourchannel(seeFUNCTIONKEYS)).Changevaluewithmouse buttons:left=more,right=lesssteps. -?  H/D Name Hexadecimal/Decimal.Choosewhichnumberbaseyouwanttodisplay VELOCITYwith. NOTE:Thestandardishexadecimalhowevertherearesomestrange moduleswherethevelocityisdecimal.Thisfeaturewas builtintosupportthosetoo.Itisadviceabletouse Hexadecimal! E Name Extended.SixTeenExtended(STE).IfyouownthatkindofAtari, behappy.ItreallysoundsC(ruel!!!). O([.]) Name Overscan.Whybotheraboutthelowborder?Thisfunctionwas createdtomakeiteasiertoedit(seeL). OO(NDO]) Symbol  Stereosymbol.ThestereocanbeheardonnormalSTsifyou connectasamplerwithoutputyoucanhearonechannelthrough thecartridgeandonethroughthemonitor.Seeinpreferences whichcartridgesDCsupports.Orifyouown...(shutup!) IlProfesore'sNOTE:AftertheDChadbeenpackedIfoundthatI hadwrittenMT16insteadofMV16.Ehhmmm...ButIwastoolazy topackitonemoretime. L([(]) Name Low.Thisisthelowreplayfrequency(seeDIGICOMPOSER FEATURES).TheOverscanfunctiononlyworksinthismode. M([)]) Name Medium.Thisisthemediumreplayfrequency.Itstartssoundinga littlebitbetternow! H([/]) Name High.Thisisthehighreplayfrequency.Itsoundsmarvellous!!! (Idon'twanttotothinkabouthowmuchprocessortimethereis left.Eventhegraphics("peak"&osci)areremovedjusttopush thereplayfrequencytoamaximum). ->-- KEYFUNCTIONS ->--  THREE-OCTAVE-KEYBOARD Name Belowarethe"playable"keysshowed.Theyareorganizedinthe "pianostyle"with"whitekeys"and"blackkeys"(ordinarytunes: C,D,E,F,G,A,Brespectivehighedandloweredtunes: C#,D#,F#,G#,A#). ThecursormustbeontheNOTEPOSITIONtoacceptanote! 2356790=` QWERTYUIOP[] S D GHJL;  ZXCVBNM,./  REMEBER.YoumustbeinEDITorRECORDMODEtoenternotes. ->-- FUNKTIONKEYS ->--  F1 Name Choosestwolowoctaves. F2 Name Choosestwohighoctaves. F3 Name Defineablockstart(fromcursorpositioninachannel). F4 Name Defineablockend(fromcursorpositioninachannel). F5 Name Defineawholepatternblock(Hex:00-3F,Dec:00-64). F6 Name Undefineablock.Theblockmarkswillbereseted.  F7 Name Copyblockasfourchannels,thatisallfourchannelswill automaticallybe"blocked"(from"blockstart"to"blockend". Theblockwillbepastedatthecursorpositionwhithinany channel. F8 Name Deleteblockasfourchannels,thatisthatallfourchannels willautomaticallybe"blocked"(from"blockstart"to"block end"anddeleted. F9 Name Copyblockasonechannel.Theblockwillbepastedatthecursor positionwhithinthechannel. F10 Name  Deleteblockasonechannel. ->-- EDITMODEACTIONS ->-- AB] Name Deletenoteandinstrumentnumber. ETURN] Name Deletenoteandinstrumentnumberandcommand. ELETE] Name Deleteawholeline.Everythingisgone...besureofwhatkeyyou aregoingtopress:returnordelete! ->-- OTHERFUNCTIONKEYSONTHEKEYBORD ->-- LTERNATE] Name Togglebeetwenscopeandequalizer.Thementionedgraphicsare'nt avaibleinthedreadedHighmode. APSLOCK] Name Changecolours.  MONO:Thisisthemonitorpalette(grey)madeforthe "SCART-people". COLOUR:ThisistheTVpalette(brown?)madeforthe"RF- people",whichmeansthattheycan'taffordamonitororthat theyaretoogready.Thebrowncoloursshouldbeeasyertowatch ifyouhaveaTV. ELP] Name Help!I'mlost.Thebuiltinhelp-areashouldbeaquick referenceguideandasupportforweakminds.Thelazyuser shouldfinda"get-started". NDO] Name Togglebetweenstereomodeon/off(doesnt'ttakeaffectinHigh). [SPACE] Name TogglebetweenSTOPandEDITMODE. NSERT] Name Tosteponepositiondown. LRHOME] Name Tosteponepositionup. ->-- KEYFUNCTIONSONTHEKEYPAD ->--  [(] Name Lowreplayfrequency.Overscanworksonlyinthismode. [)] Name Mediumreplayfrequency. [/] Name  Highreplayfrequency. [*] Name Jumptothestartofthepreviouspattern. [7] Name  The"statusscroller"willstopscrollinganddisplaySONGNAME andthetimer. [8] Name The"statusscroller"willstopscrollinganddisplaySTATUS (block)andFREE(memory). [9] Name The"statusscroller"willstopscrollinganddisplayDISK STATUS. [-] Name  TostepdownSAMPLE. [+] Name  TostepupSAMPLE. [6] Name Start"statusscrolling". [5] Name Stop"statusscrolling"atthecurrentpoint. [4] Name JumptoP4((within)Patternpositionfour):63. [3] Name JumptoP3((within)Patternpositionthree):48. [2] Name JumptoP2((within)Patternpositiontwo):32. [1] Name JumptoP1((within))Patternpositionone):16. [0] Name JumptoP0((within)Patternpositionnull):00. [.] Name Toggleoverscanon/off.Inlowreplayfrequencyonly.  NTER] Name TogglebetweenSONGNAMEandSAMPLE(seeFIELDS). ->-- COMMANDS -@ EDITFORMAT: C#1 5C30  //||_| //|Commandinfo //Command /Inst.nr. Notetobe played. Note...: Aordinarynotethat'screatedbythatperonwhohave usedthatsample. Instr.nr: Thisisthenumberofthatsampleinthatmodule. Command: ThisletterornumbertellsDigiComposerwhateffect you'llliketodealwith(seeEFFECTCOMMADS). Com.info: Thisbyteshouldcointaintheadditionalinformation fortheusedcommand. EFFECTCOMMANDS:   EffectcommandsonDigiComposershouldbecompatiblewithallthe othertrackers. 0-None/Arpeggio 8-*NOTUSED* 1-PortamentoUp 9-SampleOffset 2-PortamentoDown A-VolumeSlide 3-TonePortamento B-PositionJump 4-Vibrato C-SetVolume 5-ToneP+VolSlide D-PatternBreak 6-Vibra+Volslide E-Misc.Cmds 7-Tremolo F-SetSpeed E-COMMANDS TheEcommandhasbeenalteredtocontainmorecommandsthanone. E0-FilterOn/Off E8-*NOTUSED* E1-FineslideUp E9-RetrigNote E2-FineslideDown EA-FineVolUp E3-GlissandoControl EB-FineVolDown E4-VibratoControl EC-NoteDut E5-SetFinetune ED-NoteDelay E6-Patternloop EE-PatternDelay E7-TremoloControl EF-FunkRepeat Cmd0.Arpeggio(Range:#0-#F/#0-#F) Usage:#0+1sthalfnoteadd  +2ndhalfnoteadd Arpeggioisusedtosimulatechords.thisisdonebykrapidly changingthepitchbetween3(or2)differentnotes.Itsounds verynoisyandgrainyonmostsamples,butOKommonotoneones. Example: C-300047 C-mayorchord: (C+E+gorC+4+7halfnotes) C-300037 C-minorchord: (C+D#+GorC+3+7halfnotes) Cmd1.Portamentoup(Speed:#00-#FF) Usage:#2+portamentospeed Portamentoupwillsimplyslidethesamplepitchup.YoucanNOT slidehigherthanB-3!(Period113) Example: C-3001031isthecommand,3isttheportamentospeed NOTE: Theportamentowillbecalledasmanytimesasthe  speedofthesong.thismeansthatyou'llsometimshave  troubleslidingaccurately.Ifyouchangethespeed  withoutchangingthesliderates,itwillsoundbad... Cmd2.Portamentodown(Speed;#00-FF) Usage;#2+portamentospeed Justcommand1exceptthatthisoneslidesthepitchdown instead.(Addstotheperiod).YoucanNOTslidelowerthanC-1! (Period856) Example: C-3002032isthecommand,3istheportamentospeed. Cmd3.Tone-Portamento(Speed:#00-FF) Usage: Dest-note+#3+slidespeed Thiscommandwillautomaticallyslidefromtheoldnotetothe newone.youdon'thavetoworryaboutwhichdirectiontoslide, youneedonlytosettheslidespeed.Tokeeponslidingjust selectthecommand#3+00 Example: A-20 Firstplayanote C-300305 C-3istthenotetoslideto, 3isthecommandand5thespeed Cmd4. Vibrato(Rate:#0-#F,Depth:#0-#F) Usage:#4+vibratorate+vibratodepth Example: C-300481 4isthecommand,8isthespeedofthe vibratoand1isthedepthofthevibrato Tokeeponvibratingjustselectthecommand$+00.Tochange thevibrato,youcanaltertherate,depthorboth.Usecommand E4-tochangethevibrato-waveform. Cmd5. ToneP+Volsl(Speed:#0-#F/#0-#F)  Usage: #5+upspeed+downspeed Thiscommandwillcontinuethecurrenttoneportamentoandslide thevolumeatthesametime.StolenfromNT2.0 Example: C-300505 5isthespeedtoturnthevolumedown C-300640 4isthespeedtoslideitup Cmd7. #7+tremolorate+tremolodepth Tremolovibratesthevolume Example: C-300794 7isthecommand,9isthespeedofthe tremoloand4isthedepthofthetremolo Tokeepontremolingjustselectthevommand#7+00.Tochange thetremoloyoucanaltertherate,depthorboth.Usecommand E7-tochangethetremolo-waveform. Cmd9. SetSampleOffset(Offs:00-#FF) Usage: #9+SampleOffset Thiscommandwillplayfromachosenpositioninthesampleand notfromthebeginning.Thetwonumbersequalthetwofirst numbersinthelengthofthesample.Handyforspeech-samples. Example: C-300923 Playsamplefromoffset#2300. CmdA. Volumeslide(Speed:#0-#F/#0-#F) Usage:#A+upspeed+downspeed Example: C-300A05 5isthespeedtoturnthevolumedown C-300A40 4isthespeedtoslideitup NOTE:Theslidewillbecalledasmanytimesasthespeedof  thesong.Theslowerthesong,themorethevolumewill  bechangedoneachnote. CmdB. Position-jump(Pos:#00-#7F)  Usage: #B+positiontocontinueat Example: C-300B01 Bisthecommand,1isthepositionto restartthesongat. Thiscommandwillalsoperformapattern-break(seebelow)You canusethisconnandinsteadofrestartingasonnoisetracker. CmdC. Setvolume(Volume:#00-#40) Usage: #C+newvolume Well.thisoldfamiliarcommandwillsetthecurrentvolumeto yourownselected.thehighestvolumeis#40.Allvolumesare representedinhex. Example: C-300C10 Cisthecommand,10isthevolume  (16decimal). CmdD. Pattern-break(Pattern-pos:00-63,decimal) Usage:#D+pattern-position ThisCommandjustjumpstothenextsongpositionandcontinues playfromthepatternpositionyouspecify. Example: C-300D00 Jumptothenextsongpositionandcontinue playfrompatternpositon00. Or: C-300D32 Jumptothenextsongpositionandcontinue playfrompatternposition32instead CmdE0. Setfilter(Range:#0-#1) Notavailable. CmdE1. Fineslideup(Range:#0-#F) Usage: #E1+value Thiscommandworksjustlikethenormalportamentoup,except thatitonlyslidesuponce.Itdoesnotcontinueslidingduring thelengthofthenote. Example: C-300E11 Slideup1atthebeginningofthenote (Greatforcreatingchoruseffects) CmdE2. Fineslidedown(Range:#0-#F) Usage: #E2+value Thiscommandworksjustlikethenormalportamentodown,except thatitonlyslidesdownonce.Itdoesnotcontinuesliding duringthelengthofthenote. Example: C-300E26 Slideup6atthebeginningofthenote  CmdE3. Glissando-Control(Range:#0-#1) Usage: #E3+Glissando-Status Glissandomustbeusedwiththetoneportamentocommand.When glissandoisactivated,toneportamentowillslideahalfnoteata time,insteadofastraightslide. Example: C-300E31 TurnGlissandoon C-300E00 TurnGlissandooff CmdE4. Setvibratowaveform(Range:#0-#3) Usage: #E4+vibrato-waveform Example: C-300E40 Setsine(default) E44 Don'tretrigWF C-300E41 SetRampDown E45 Don'tretrigWF C-300E42 SetSquarewave E46 Don'tretrigWF C-300E43 SetRandom E47 Don'tretrigWF CmdE5. Setfinetune(Range:#0-#F) Usage: #E5+finetune-value Example: C-300E51 Setfinetuneto1 Usethesetablestofigureoutthefinetune value. Finetune: +7 +6 +5 +4 +3 +2 +1 0 Value: 7 6 5 4 3 2 1 0 Finetune: -1 -2 -3 -4 -5 -6 -7 -8 Value: F E D C B A 9 8 0 436.4 Hz -1 432.1 Hz 1 439.0 Hz -2 429.6 Hz 2 441.6 Hz -3 426.3 Hz 3 445.1 Hz -4 423.1 Hz 4 447.8 Hz -5 419.9 Hz 5 451.5 Hz -6 416.7 Hz 6 455.2 Hz -7 414.4 Hz 7 457.0 Hz -8 412.0 Hz  CmdE6. PatternLoop(Loops:#0-#F) Usage: #E6+numberofloops Thiscommandwillloopapartofapattern. Example: C-300E60 Setloopstart. C-300E63 Jumptoloop3timesbeforeplayingon. CmdE7. Settremolowaveform(Range:#0-#3) Usage: #E7+tremolowaveform Example: C-300E70 Setsine(default) E74 Don'tretrigWF C-300E71 SetRampDown E75 Don'tretrigWF C-300E72 SetSquarewave E76 DontregrigWF C-300E73 SetRandom E77 Don'tretrigWF Cmd9. Retrignote(Value:#0-#F) Usage: #E9+ticktoretrignoteat. Thiscommandwillretrigthesamenotebeforeplayingthenext. Wheretoretrigdependsonthespeedofthesong.Ifyouretrig with1inspeed6,thatnotewillbetrigged6timesinonenote slot.retrigonhi-hats! Example: C-300F06 Setspeedto6. C-300E93 Retrigattick3outof6. CmdEA. FineVolsluip(Range:#0-#F) Usage: #EA+value Thisconnadworksjustlikethenormalvolumeslideup,except thatitonlyslidesuponce.Itdoesnotcontinueslidingduring thelengthofthenote. Example: C-300EA3 Slidevolumeup1atthebeginningofthe note. CmdEB. FineVolsldown(Range:#0-#F) Usage: #EB+value Thiscommandworksjustlikathenormalvolumeslidedown,except thatitonlyslidesdownonce.Itdoesnotcontinuesliding duringthelengthofthenote. Example: C-300EB6 Slidevolumedown6atthebeginningofthe note. CmdEC. Cutnote(Value:#0-#F) Usage: #EC+TicktoCutnoteat. Thiscommandwillcutthenoteattheselectedtick,creating extremelyshortnotes. Example: C-300F06 Setspeedto6 C-300EC3 Playnoteattick3outof6. Notethatthenoteisnotreallycut,thevolumeisjustturned down. CmdED. NoreDelay(Value:#0-#F) Usage: #EdC+tickstodelaynote Thiscommandwilldelaythenotetotheselectedtick. Example: C-300F06 Setspeedto6. C-300ED3 Playnoteattickoutof6. CmdEE. PatternDelay (Notes:#0-#F) Usage: #EE+notestodelaypattern. Thiscommandwilldelaythepatterntheselectednumbersof notes. Example: C-300EE8 Delaypattern8notesbeforeplayingon. Allothereffectsarestillactivewhenthepatternisbeing delayed. CmdEF. FunkRepeat(Speed:#0-#F) Usage: #EF+funkspeed Thiscommandwillneedashortloop(#10,20,40,80etcbytes) towork.Itwillmovetheloopthroughthewholelengthofthe sample.Soundslikeshitreally,butwhocares? Example: c-300EF8 Setfunkspeedto8 Toturnoffthefunking,setthespeedto0 CmdF. Setspeed(Speed:#00-#FF) Usage: #F+speed Thiscommandwillsetthespeedofthesong.Thelowerthe number,thehigerthespeed.1=fastest,FF=slowest.The defaultspeedis6.Thiswillbeseteverytimeyouloadorclear asong.Speed6equalsca124bpm. -@ HOWWEMADEIT!(TheindeedtruestoryofDC'sbirth) -@ About6monthsago(that'soctober1990)I(ilProfeore)gota copyofthePD-programmecalledNoisetracker.Itwasthe1.02 version.ItwassomewhatofananticlimaxwhenIrealisedthatit wasn'tfullyamiga-compatible.Iwantedhowevertolookatcode andperhapscorrectsomeofthemanybugs(forexampletheso- calledjoystick-bug.HINTTODR.SATAN:Itwasveryeasilyfixed. ItwassomethingwithacmpandabranchIthink...).AndwhenI havespeededuptheroutinesabitIusedthemodified Noisetrackerasasortofmodulereplayer.Forabout1.5monthI didnothingonNoisetracker.ButthenIdecidedtomakeaown tracker.IgotProtrackerasanamigaexecutablefilefroman amiga-guy(ThanxAxel!)whichIportedtotheSTanddisassambled Ialsoportedanotheramiga-tracker:StartrackerbyFairlight (Onceagain:ThanxAxel!).Iextendedtheplayroutinesoitwould befulltProtracker-compatible.Thentherealworkbegan:During 2weeksImodifiedalmostalloftheroutinesandIwrotemany more.(Puhh!)Ithoughtthatifinallycouldreleaseit.ThenI gotNoisetracker1.5...Isaidtomyself:Yougottoincludeall thenewfunctions...AtthesametimeBitmasterhadtestedDCand showedmealotofbugs,whichIhadtocorrect.Andfinally: ,afteraweekofsleeplessnightsforbothmeandBitmaster,we couldproudlyandverytiredlyreleaseDigiComposer. -A CREDITSFORTHISMANUAL(andalittlebitofbullshiting) -A FirstofallIwouldliketoexplainforallyououtthere,who thinksthatwholethismanualisamaltreatmentoftheenglish language,that'sbecauseI'mfromSweden(andthetimepressure wasreallyhard). Thecreditsforthismanualgoestothefollowingpersons: ME(Bitmaster(=AndersGustavsson)ofISTARI),whohavewritten almosteverything! MYMOTHER(memberoffamilyGustavsson),whohavewrittenthe rippedpartofthismanual:Protrackercommandodescription (Amiga). IlProfesore(SvenKarlsson)ofISTARI,whohavewrittenabout thedigisoundtechnicsandDigiComposerfeatures. IlProfesore'sNOTE:Ihavealsocorrectedsomebugsinthe manual.ButIthinkthatBitmasterhavedonearathergoodjob! Thereareafewplacesinthismanualthatmayconfuseyou (everything),makeyoulaught(myenglish)andmakeyoucry(my jokes).Ifyoufindanyerrorsinthismanualortheprogram pleaseletusknow.Writeto: SvenKarlsson(hisaddressstandsatthefirstpage) AndersGustavsson Utterstigen10 S-59030BORENSBERG SWEDEN ISTARIconsistofthefollowingmenbers(1990-03-14): Bitmaster,IlProfesore,Wolf,SnobbenandIsvar. NotetootherST-crews:SENDUSALLYOURDEMOS!!! -? Havefunandenjoy!!! What you have got is a new PD-tracker. This folder should contain the following files: READ.ME (this text) DIGICOMP.PRG (the programme) D_C_REF.DOC (a manual) Note: Digi Composer only runs on colour monitors!! NOTE: If the intro crashes on your computer or you are too fed up with it then press the RIGHT SHIFT-button while you are loading digicomp.prg and the intro will be skipped. Have fun!  Il Profesore of ISTARI the 14th of March 1991 Note: We love new demos send them to us!!! SCAN  kde)ST  xrWINDOWS  (ZE+NETWORK  7_E3MOUSE  cE4BP  UbE5XTGOLD  /eEJXCEL  HeELWSCAN  ldeMTELNET  fENWINWORD  pEOTEXTS  pkxTHE STORY SO FAR... = This copy of Digi Composer was spread by (in order of apperance): daniel@hexagon.se (Daniel Deimert), fidonet 2:204/117.0 erlingh@idt.unit.no (Erling Henanger) --> UPLOADED TO ATARI ARCHIVE ...please fill in your name here. This might be fun! Like a never ending chain-letter or something! Enjoy! daniel@hexagon.se !Aa   !Aa!!#A%a')+-/1!35a79;=?A!CAEaGIKMOQ!SAUa.  [r..  [rDP_DEMO PRG `ODP_DEMO RSC /J DP_ENG TXT bOtDP_SWE TXT bOB`@,  gOHHy?<&NN\OA0<lBQL5kEic#g1 #cxp}A17Dvm%#;!%c;cTJcP\Lp$H%PLH-i$H/ozoNV;U4K%KBI,`bI4I(O+O0;OOe%/0e;PP.7PZQO5]P9@_@ƺS]5]M9@_@ƳS]Ǝ5].E]Юf/R,HR,. c "HDbj0w L:, FFJ,, F ̃~n۹6k7:S2 S=3n<3  n焻RTW525252R,R2xr ,]Ö\b_mGݴ: Bް֐ >J7Z[^\Ϗ UŷU|905?7}Ӈ|o~o(Z6ʲSfӲϚ0ffኒf &{ӜR,oxf'wf=>[1fL M('W|?/|?yg&|#{L":cz"O>7u3>M3>V1}OJȘe:''7QFFFO(F2X%`,LmTOhEbpf&FfgEON3l;l܏qꝲoڍk7ߜ<ɝrcbc̬0027x4ԬػS=cecgzhxhr"t B + U ) ׏k %xkYn8 PNE> QG.ÖZ >mwe|dtwKrrfyƛƴ%bI13_'슀VLՔ |k4X& #șݩvçՃ3DؖۖFvFFNvNvHwcd[ޫOǃw Y:y6צN{Sؔ+ۻ=995Ԅ»Wn0DuVb; Vc3&bq i/gHZ)f]_!W큘nVW큆nfCF*]yz}VV:ǸƤ&Ʊ\֪zVmV jdaD4" z" Xj kq + evkE+cєL3-+b'R>~K>+8K:k<%**&z"VįV&*Еթɕɑ闼-AVVVPlDpD̐\L+\L+W+W% ԮY_@%ph%8%<#v<797u 7C;yy1y1y1Pd!1dGHAImNz2n5bIK4K|C>?o8ٜ.:.&Llc]^Yk#F<$L`ZuZZZ4*4XDPGGvFۀ =?u?r\rss; ss\{eI IqI\$\sֈe=l#m##o#[$Gz[zereň'&CЕ·݆݇|]|GW|W(ׇ((D+l,x/@~}3oGGH?k+a+QD2h|TZP\|TVP\|TRP\Qe֛\Ge֙\ye֛\eAUY3u;4]>]B=.&WJ钙p®ΩI g''fϥJeU&ϥjfϽ$G_ssu YhoUYY}Z>[#wԄ>[bpN?R_8@>>"9F "ACuD=r:: : :rr: 0 63[%u%tuu%Ymj^8s>pqY Hg씈r(Jb41d|H{O˯l/nnHaf ƬJ FZs֯0c5䝝~+~R柒ʘ t-x{zzrvdZbN|pjhh`IݯdI}3;q==5:6Ͽ6\>Y\:*p=,G@VvZ>$Y&X>& >.X>Pp@PX+;t!s tZ9u8=@u8Z k$mlBAkJ_fe>+g*gYRo*@>p?S/;5);ſCŽŶ>^>]9Z9Xv8p>]bL_]`jjHg?U}³S9Uyݻ]__iW~Ģ+WŠ ЎSP^ڝPX'4: 3<INۗ-x!046060>065'տ'ؗee2I4쉉NIg/c7`a7ae7ab1,P\h\H0CxzXZ4kt[ tB tB t%Xk q:wr=[uuA*r D  g#}f }G u#Y_m#" B mb`jiSiVab{j"j% /D0/pI'\No|h4Q\3[zwvM9P` WjE8aFB4)m7B6) N)B6)m>gbH(bTd,bX*Y*Yb]*_b_*OK) *)gaR+MUcad)#R./i5k/kgc%r5O#{,9b?M1h1X"77j0΄Φ`v, zbySyUSuSeoS%S}SmS7S%\Sg`&&/1 )yʰ~J, !*##"#MZ+ *(f)?'@@'ݷe(EݹuwFW@f@@gygq0GwwwuUd%kK" r^V^F^n,@(ሤƾDz(TfՏկo3+mC+kCk^ӌCQƒ~vrZxŘT”헭–Iλ nW.øøviգ+m ۟;۽9$C"("HR4n4ǠR$h&>8d78^JFY9ys?ԨXw]]w8ot: Č #  = -ՠ 5 8YTiR!j~&bNZ]ZrX]XPW]|Q]3Qrϧ'ft>nCcFS|Qqx@B > 042+-0#-CnCcFSQq@B`Z.>p߰߼ߵSϸO׹W׵9o1ш// )Yb_[JPf`+f(I`.?/+VJPg`+g(Ir`.?24VlPg`+g(I~`.?;a# >+R-6&8,j4JuwQbs-a >+;R-&8/4I=uQbs?a >* R,&8.4HjD""9q19_.-wL;6 g.0 r"ҎՈZ9]1eio!ߞC&րP'Qւo)֊'Qև}aFǮ (_y$F FRC=hZFhZG[鸨S& !OcGO@׏rЇ:X=Ri ~eClCCCE\q8ꄞ8JӶf>׎{Wz9^ǃ?цm0րkj_W}{w[67O7e7N^`kFkDS$" cFOA׏sЇ;<i .eBmBBBDq8 8*ܶĊ"9qӔ9u,Lws6!:M0'"Z6]i7!&z'{o'{9WFi Iy!(CEjIPEPPߑ I&%`CoLDi׌vEЄ>9jfGahcGcGkGJAr:ℝ:Bnb":{9sq.r9@.wpc6xJ06"Z&].!i+!&O'No6'Nb1Fؕ 7y,+wN[FiSFS|pS"ɟ$/&Sc@OG׏uЇ=D:Ni beDkDDDBTq8*8 8 $f L 0Є8 8"v8–2#BSBWA՞ ag);A8ĽsS oo%鬥o̥omo̧ͧq2q3ḁIK_'ɦ*⳿Dž*{@θDbiῖvSzzjx|ª L. SޭQtGstFյҴ}Qΐ>ɒ}{URqmtTH`d'os؈hqJ^]NM9LL9HL9@@ڢ@!ԓx!pԓp)sG(Ģ#Χ(#!!%!Y շi(*=6[&S0jUQ7jt1 `AC8N33>}pY%?U!#[ ou[ @{@s a2.a:i6,i&}nY Kn%N1W1Ws0cbcc/jQgc͓jsc/jgcjWc/ig`YjOc-Eg/a"9HZ9Ȳ6>aaHiH(HiпH؉ced.鲥>ZҧGxA¦ƙouۮ=GчƙYu=!чƙuu=чƙu툣˧q qegߋ棋dɌya{Rqf?ARo=}GCkX%w [ ssAێOq"+Aێ-x,pm@xۈz{@{w#w*!ϩI$u)(pz4>f(ѧ([iep _[OR-!}N tr RXk٧ͣ򟧣{? 8.HAX-/"/?J/7NmrO^rC&"8$ŶEeyUQ-Գ۵ԂɎԤ../-..(.L1l|G Q2>_b lQ2 lzA Am<vi$mWo 3WIhu&;̋jt$ E{EFfyr*jM^ޗ$A(G͘7^ |D;ʼӷ)m0 0/u\}, nvC`d)p0cn@_z 0/\f}d, }e ]]ED|d|dj@d<U6_S1rJK%T8L5=mno+[#]>P4_lL(t(tn9 q9 qar0%"\%"\ & HN /DZH|2?&\mqS|2?|2?$pm`=`=(yI6[_6[_6[dt4vt4v xht`l- a!t2W`.uKKKKKKKKKK71KR}IOeyi(l =]VX=J9ttsM8(_T,=|nvSOB%*$uWObk\,bpCC:gX*[ X*O!y*Ou*NuMd? If)Tdq5_"C:sDK 1 =87tR6XĭRRѾR~!Gs EV1S:?GGG()Αΐ~BBx-܍-܍-܍-܍-cýbxBqt=r?wI^-6kX=npİtTK"kX|/!!0@WDWh[,Wi[20Kv<~<Є4hgbvƚv<00rPR@JJl0ʥX^жJ?>vsgu-pr-svu%f4fwO^]%%f4f>ptDBЍXpߒ0pxuxEPCXɤ0͒pp8txDPBX RT-ܒlT- XU qjĒ47|JB [ Hri▎|2ߝ~g ϥ.r 2bxŮx㬞zLrVm y[ok)nua$ n(X/ GÊ4ڪvډ+%E? cZ?S=aT=Q&y&&l+ׄ!nOu\guŒ+DrnNۑo㖸nw`$ f6$cg)ۅ+ׅjכ;(*({gA9\pPk&RfUC;4AuruQ(1q&pW27wyU;-k; $9 kj}c(Ad7FwD/HmO$>9A|`C>A|`C^O,(m[yHW&u;PI^rp2YM|{7HKHMʰj72YK2YM|{7HKHMʥj72YK2YM|828282p2.32802.1N28&e8 e:gy:DF|aRPaQ<c<'eQֈZ,ð==?ޫ]ޅm޽ɺߕׂ߮ŋō߮ŊЩЗйyй75䏋ԝԟԙ娮Q?/;Y$/-WR&P&$-XS#*Vi珒ԴnU*ViԴnU*ViǏԴnU*ViߏԴnU*ViԴnU*ViԴnU*ViǼԴnU*Vi߼ԴԝOȜ ۊیM0,0Ow<'}Z%~a~a~a~a~a~a~a~a~a~a22AC5^Z^Z--~a2AC5^Z-~a~a2AC5^Z-~a22ښDwfmޚmjmpس쫘Vr3Av4TvLtg3Lq{j1>jp|p<5VwrO7A HULfM^(n: ::jxX 8kH hfJ[f*VЌVBZÁ켆(jXkrhf[gƍGVWwt+&fPU@p/&H:G&J] d"] ,]MŮ%`igwfN aNe76vYt6jOq'.C\.aC*K1*?A*_A v {=3Z͵)ܒkŝB%V1ڙb˿frfbcJЀ^W(d u(}j]$QRf4Rf(|#Ҁwo-ą_D&ӢHE'3^3Zѭ)Gz/=U_UT~cIƧ34Q|50ZqurMf.=:}m1_PT&&1H=䦃aغ4y⢱iŵ&C־a ̵խuϟwg[m3gOfKfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff~ǵAfÕ7o{ʕ*AJJ2+*;)\\E\C^̬ڌڏ=\}\5и\4^?4*? *P"*SE&$<wK9K-KlIxIHIJIŽ--ՈH. ގH @ el g( b(f(x( LgiL`y``DTV1_1!7#wDqD~}<MȩXGhkhUajUb Ų*+ ,|$@F@R@  7[5T&&2lQ.l(Gfh$d(= F DPx | n ~% -Jkfh * &JP~Ԗ4=v==Ԭ4r\8lVQTQJ.fQJoP6W6U5[{_w{8K33`prк8ހ/o`.戲>ʈRB+r)6wI6Eqks^^_]]\^^_]]\^^_]]\^^_]]\^^_]]\^^_]]\^^_]]\^^_]]\^^_]]\^^_]]\^^_]]\^v&%٭zBR*歀FɭǮO.Sd~_ίt2\Zpe((Pc-*ǭ᭜q=,sE1|Pۯ`-xGȮUuٮ˭گ"a%ʬ%s|td˭W+ܭήŬs?ԯahjpޮE*Ϯ٭߯2n+̬5~qAi;ŭ_ ֭mq[ۯ^ FsuB;JCyJ@ȭͬ7s٬#NɬWu &_:k=ṋnrp uӭ;Xdά~Ĭ)ZF,ᬲt?B5"+⮹K$|&>uo-~߭rczr}ݭC%ì3Ŭ,Essdt_Ьn_¯]3ޮ'ڮ2 DdrujljᮻmN߭$6ԬcvQeЬAAXެᮐt)[ծ <,R,m}(V v v͋ vg˒\g%# %vP퉡̈́{1K{b==&W+N/rw6Y nmgT`.'-O_-Gc_#]G;Э?葏NՏ`ն *m*QքZ۠44붏4ٺ5o]5'k4 dk3'irr_pp_w]5 '+5e%7v%u5=3f?%/v%m-5w3f7%v%U=3f?%v%M 5w3f7%wv%5u=3f?%ov%-m5w3f7%Wv%U=3f?%Ov% M5qꫦ'e91agOrlf(%A{@/7}v~>~p!]T n=jh>> z>?n>}v~>~p!] n=h> z>nq>}v~>~p!] n-+%+~#-~#-_FD8_FD8_uqYtPI<_uqYtPI<ND_ujqYuNPlI<r_udpfYtPI<L_eLq+9qeo2-/8W^[w88?>D#َ"`"a aI"amee-ڸo}!Njn($TWUUUȁzU0I_IS)SɡMr(*> -Py8@]0]IlIRLɢ!i4PkTTwR8wRG/XU7ggUy&;Sf4f+9,qpPup=.Rem,4ZZ67y5~,P!dtdhKed0ʿ(8ҵ`ꚸ󣥸ݞA]׮QdKJDjx\GG' 7<*77w/yM6"AaVc1f_*,* 0L6枳ưL6h=v2Pr:6 &jVvcZf========ixi|sy Ń{U5U}JUW%Uqh5 a{})RgX?Nu]tUP}P]?Mnث-0T2g12G8|  _A9A)tgTPgt?g:i&V P;B$쏲4 0{Rax/ /"/M/ T  T:e4r~ڢv8<gݔGg$rr}Nl`SLB\NR4GƹbjnFȟ*c*XYVV{) j`N0Jhnj MrMɴ~]ɟ[ŏvK>O>","%m$ԦZ&:s 7:^l5~H*^~^9+L}ﰍ촧츉쨩k8^0 8<Ȩʺ'Jݕ$Uĕt942ϴr՝-dAƠ|Vvx|v̀_5*c*nDbѯO̶M`ɫ aCa;`3ڴ5_벴 J ; 9J ^$q 9d9qk?ӥpKӵ:.I]f%XI sI[_ZHH_J@d_OE9GM9CHH^G8>CûVǍVØ;P?WWWQWTV0 6VhVRDm88H&h È2&f{/1)`ɨ"ɬ`ɨ,X #^N.* sh]k" wc xT z4H4 z4.ƴƔ y0 0 0 0 0Z&'''ܓ04d >{Btb'2v,W|:~<<.16X:zpM_(E%_Y7w]wg)MiK'G45uwF/Nes>Y ^ 1VKW ^JBonnLznĖNjĖBnhceؓ؃eW%3;<;':tI,K K + ^ bJ n! ~%l~M# Uv{ = G= m v b nE^tuߙ3Y3+~uƛ֓ד3tS3O;M;ƄEmQmƄϜϐ/yRyRͿ't7\GoG~gzg|ECpCحCةcc)BAλnϔA^`@`l@N@)bv Bs YX U_C)o g gE4ZV 6xm^TmuTy5Tu[ޔWyRK^OuC5WWø<ü>dU:U>ƕ \FRrt|操6yŃwA&yj΍$j<"!$ =h5e-&~m]{3;w;sfZ{dQq[m{&ܯYsog?YO4QCQCQ%XU҇X;ݫ8Nbʱn HqqrR,ĴKakxgbA2&pٜ +|U)j#JxC5ccEelEXy_[(>[fx>;8VV|t~:0:0:0:0:0:0JBZ9B^1fWdFL2,`;DJn8Jn.L^@b۠ ˄b4*vw+p+ppcEi(F} }8/Seߚәڙˑ~ru_[’TY^U2 Sakac[aֻ߹Rc\;S\}^uq^~|PpPb$3`btl(>?CF?{F= v[w=V%~-~P~9~~ț~~2~.^~Σ>ƊoVg1XWxf6Hz#t4Vt4VtD7"όŸˢÈg3hg?\GRX\5==ΠM@+1Mej0q=%qw{wWwV;p6:PFF}!1ggmܵg]wհvի[տճ-ݞ(݅.z.@}˅˄厪)懐+1I' Ű=_1_2)-v؊R񜧑qWz:WS_@EMӰ60#/ii]iZysyyyiˠ{4ײ׳%s{-FEE"*Ӫ*6&&*.h̼CKKCC ӮCӵ#x#lrA~Ix;9;͟;;!qRF^Ui^EF^Y/Gk @߭߶ c1 kܠ kNjdk׋`cgci)@ͰFRb^z9Y-9 rHF=F̯ L ^־gy9 ogFЪCc- IF)&/u7ؕu-u߄JgeJJgkK2gag>j^v'[:t2K2A})/EL*g`ah9"lfAfZI;IgLt9LqȨ>_Ƞp*< qq3m1r31qs55;NQ0N~\:to\gc]1_yW^IW\cXɦZZ+HXc ZG/h?jnI&-Z-^I拪\Ȟ\S`"0Yauoaw[b6X +&y%1y?_UbrF2\N|$Hn)Lb`fTf4K4KFJFH ͻr2 2&6ٌhCٌ ؈؄~x[CA i6{wℋ"wzϼsdd2/ ڝ*ڕ%a'BQem\R\[uHhy* GMqhmNh/<.roL8m_/ #7]ą󊺵$tۀ봘hiԵ``ɨ/ɸ9#K1" V+yj+7+d+6cXVm?yeFeB*B\$+06-2 ,2Kpt1;e;n+ko+*+Ukdb+fB-f0,gBjf +)F~ ^G.x^G' u I|LPqKKPR25h1\ۓql\ۓql>L+bÎc~v~k"2]6Q?6Ƹ6ycu8.PuXE&[b+[yͽݝ3ݐ~g|5iRn5{ϵ;u/`'aUh92lIRn9_R8X^^aNw^NuaN3^Nr"o.-a,Ao Oڰ-f r ))Ũ˱W(N`Ef@X&`EfuX&`EfvX&`unY$7,']g]E ̫c[q̫wYU9)9.Y3YT9(9.Y3YU9)9.k .KN.^H`'0HlWhW1AiPD%(8(%lx8>8^p$_/cCSűPzr;|61d9HWg_d+QY ]!UO]3 #ˊc{φg'ώ13-/~-'t0[uφ8ώVφxV`z_*_  0K;K_ +K[ yKy8‚€**ѰkѱѲ߮Q_^⠳;UD&`&rˀvC#-7<2Z6cռw-X7X XuX&ő^uR<??m_e_i_uz~[]<<i ->ǐ0)oUo_?;Oq?tHVi4vwhGAh5uU=lWmmzZmm4GmZ׍H)Ege(e(Xw8$$\c ֌Ӽj h,ZNXXйňұۊɈ6UReT6UXVM6VAһ|R\<|ffQL?b?L\l??LB+LqlqLV[,@{,L[ _!6_A1A6k|Kk{7ze5J** Te 4eK .^g(.JhWO"*q," BوNBըhHh%%r-r!)X2!EnϺ\zq2;^74ZH dddtlɡ˜A0I!IZ"&M!`7@!b7T[ˤTv[oteTy#_7r{b3N*QEQ<+ArU!MMbbY2kE =,S<æsmY9q\^\~fL0cXlL,R/[ `K UJ5JUu&"š*kHCo^EmQC^>v(Y#yM7ݰdZoN4.>tfFT(ӣ{}\<,O#`(@F]x Q1kC!#iC FC,FSb61zz]AR}R+0;^qT<~nЦh~xbsoL)QMAFsG*sWJcxJ+-Jf}j}zbzOzIV4z4|f> &v''&Ƥ[TǍQ,GJ L@ J;6:8(Z_ċv^\P fGxѨG}~vͰ݌t}uZ4[ {}MyLA{=|WSPɾجѮɂѬ¤MM~zӶ~>ՒȱTqqTxu5{9usL Y{A{Ba{Ibs4p6y4 HVPȵ%ȵ%ȵ%ȵ%ȵ%ȵ%ȵ%ȵ%D+ͥŠ‰懶Ļy+=6}2+="a(hywor/BmB)mNmF(#3(#3(#3XmFX#X ~X n(B0fm7Hm?k/e D(EeB8 wk:pDtD,jbj, &ZlVs3PH;TL=w=xMM&JMeM) M)b)])N}s}Z{s wMXc\\+\\Z:9?MP ;K3K (KNtN:a:S:l:.:0:RW/%kRJokX8o!oePe*<Z<.*xdxd~a{d~amdmdmdmdmrzvivivdvdvdvdvr zR ~pjtRl$h"Trc '.L!0!x4`Mx4Mh$vO_/Pm\V#v=#S343 H3߷!HFXٶ%TfL D=L9999o99/9o0A0s9=9EwEWAmM{QqrKaA{K=Eܚ+eܒeeE|&\&]r^}qT0T1 2;0; @16l8vvvvvvvVo;O+vVoOvVoO#vEHf e8B8 F8,h0(+L>"6(nب޺2x""޺64x,(Ԇ8MM,ܸ, Nl(쟠(ffffD1W_wo6؏FN$jjcPz+!*&+%*:+9*>+=*2+1*6+5* + *  + *  +  *  +  *  +  *  +  *  +  *  +  * j + i * n + m * b + a * f + e * z + y * ~ + } * r + q* v + u * J + I * N + M * B + A * F + E * Z + Y * ^ + ] * R+ Q * V ++swswswswswswswsw73~c2M{M? z'('wcwc,‰8 J~j Jf#ɭE2eNɻUn6ԺE!eSب;(jnlcL?|\?3{z+6 +7 VLl0PőP/1\B9!MϔtlZBZBplp?ϐ[Y25E] } }ewE$7]Y2 bB1-UDu)Lh#8w3qCc8CU,U&%Wtw0@g`W@߱23}gߍ f)F~"^/ /Rtrdx ěhfFffFF'(AAaaAA=a%Tu [N{ڦn[3Fii*4y[whԪm!Mm}M 8){Y+4oAAaLO<#ڠJ=jJ@ 1 jPJ"8LqlQ q-%nqyĨW6;SGs)S}sӿ h*H hE5EWẅ́.[F2/Aa‘l{қ/6ZZzz9wT8ߨ'Qq&>{>Jcƈ ` Ia:AfWAw߁+" Hc,v@V)w WF F;htXd4Uy;ibզvaVѦ86JC#-B^,~o=2fYFY=vVP9"8MeM̤Vu$Kbk d-Ep-ɻC]"mp!aIһA/$/ƬKDK?uSTsڹtST/ڹNy!H?hl<Y y܁{Y-~`o4U&!Sqܰ_g*I 's Yfwf$]`5@\!|c\?pիj:`T@`Ča7dgu3R<'RB6-RH|Ȝ)fFȢ 'cScyeExƉ$Xa,s@wM8=T==bIiΉiI'Iuӑ-U_:0TY8S82V}m1B9.\Ҋ.Q.7J#dJ@@@@@@hhhhhh{ { { { { { { { {RRRRRRRRRW;W;W;W;W;W;W;W;W;W;W;W;W;W;W;W;W;W;W;W;;h$t$r$$ $ q pp r r Z Z$$WȟU͜UӜ,c}UciUcyUryUryUrj&UٍUٍUٜUٜUUA0C"(t(@^@ԂʿnʍdVܘJJPZʿʍƊ^Ƣ֘NDD 2 DDuHu299 G GuuDDv2v߿v,v6w6 zzK$}K$oy6y6U iU xx=rpsqxx&rzsjxx=r~sqxx&Crzsjxx=OrԶrBxp2yy=Ck6bb&I pyy=M0kbb&I<py;yU6)U6q{n{o>ݵ0p{n{o%ٮ:k{nc{o>>p{n_{o%:k{nS{o>ޘFJKprx_x>JKkvcUc%JLKqxQx>JpKjcUc%J|Kqxx4]4  ߻ݸw # #ؗQ4Q4 _$: _$:o ; k+Z S+Z  0 0v$ vT Digiplay 1.0a Demo (c) Istari OutputLoop V. Maths Velocity TableXXXXXXXXXXXXM VolL VolTrebleBassXXXR VolLOAD MODULEMTASKSTOPPLAYQUITXINFOSAVER ST (YM2149) STE/TT DMA Replay Replay Pro Playback MV16 Pro Sound EXITDigiplay 1.0a DemoROINE STENBERG & SVEN KARLSSON(C) ISTARI SOFTWARE 1992.The ULTIMATE MODule player forall Atari ST/TT computers.If you want to buy Digiplay,send cheque for 100 SKr to :Roine StenbergBondegatan 13B595 52 MjolbySwedenOr order with Swedish postalgiro : 691113-1933You can contact me at FidoNet 2:204/419 Yes No Hex Dec Atari Amiga None $BCqDRST[\]defklmtuv  q(/%%   @ @ * Fb @ ~    @  & % @  @@ @@ @@ @ !@#"" !$@% '()* +/,.%-.+ %    + 8 A N Y %` #l!&B^!    7  F U c j   z  % %    %    something, please write me a letter ! -5 Roine Stenberg Sven Karlsson \ Istari Software -5 !o   !Aa!!#A%a)-/1!3A5a79;=?A!CAEaGIKOQ!SAUa Welcome to the Demo version of Digiplay ! NEWS IN DIGIPLAY DEMO 1.0a -L A bug sliped by us in the last Demo version (1.0). The bug was that when you moved the mouse, the sound went VERY bad, with crackle as a result. The bug only existed with ST-sound and cartridges. In this Demo version this is fixed, but in extreme cases a click may still be heard.. As a bonus, this Demo version also runs as a .ACC program. On some STmachines, the sound can hang when running as a .ACC program. If this happens, just press "ALTERNATE-HELP", and everything will go back to normal again. This is a "bug" in TOS, and we are working hard to avoid this problem in the next update of Digiplay. It has to do with TOS suddenly takes more processor time than Digiplay leaves. On a ordinary ST, we stop the music when a disk access is in progress. We do that to ensure correct handling af the disk routines. This only happens when running as a .ACC program. -L Digiplay is a player for almost all different MODule formats that exist on the Atari ST and Amiga. Digiplay is not a complete music program as Digi Composer, it's only a player that enabels you to listen to modules created by programs like Digi Composer or similar. If you've never tested creating music on a computer, now is the time ! Try getting one of our other programs named "Digi Composer". It is a complete music program for creating those MODules that Digiplay can play without need for the complete music program. Digi Composer can be found at most PD libraries, or at most public BBS sites that carry Atari ST software. The REAL version of Digiplay is not PD or Shareware. It can only be bought direct from us here in Sweden (May change in the future). This Demoversion is free, and you can copy it to anybody you wishT. Digiplay demo is missing LOTS of functions of the real program that can be bought from us. The demo version also has a maximum playing time of 60 seconds. After that, you must quit and load again to be able to hear more modules. The real version of Digiplay carry the following functions : * Runs in three modes - .ACC .PRG and .TOS/TTP. Runtime parameters can set in  all modes. * Multitasks in .ACC mode on ALL Atari ST computers. * 100% system friendly. * Supports all different screen resolutions, including grafix cards. * Supports internal soundchips of the Atari ST/STE/TT computers, as well as the following cartridges : Replay, Replay PRO, Playback, MV 16 and Prosound. * Save your favorite preferences. * Works on all Atari computers. From a 520 STM to a TT/030. * Three different velocity tabels for finetuning. * Supports environment variables. If you want to buy the Digi Play, you can do so by sending us a cheque, or by paying to the Swedish postalgiro on account No : 691113-1933. The price of Digiplay is 100 SKr or 10 English pounds. We are upgrading Digiplay all the time, so you will always get the latest version. The cheque should be sent to : $Roine Stenberg $Bondegatan 13 B $595 52 Mjolby $Sweden We promise to send you the latest version of Digiplay at the fastest speed possible. If you got a modem and Access to FidoNet, you can post me a letter on Node 2:204/419. My user name is "Roine Stenberg". If you are wondering over something, please write me a letter ! -5 Roine Stenberg Sven Karlsson \ Istari Software -5  Vlkommen till demoversionen av Digiplay ! NYTT I DIGIPLAY DEMO 1.0a -L En "bugg" hade tyvrr slpps in i frra demoversionen (1.0). Felet var att nr man spelade med vanligt ST-ljud och rrde musen, s knastrade och svajade ljudet en hel del. Detta r i denna version helt borta, men ljudet kan i extremfall nd klicka till, men detta r MYCKET ovanligt. Som ren bonus, s kan du nu ocks testkra Digiplay som ACC. P vissa ST maskiner s kan ljudet hnga sig nr man kr som ACC, detta beror p att TOS tar mer processortid n vad som finns kvar. Om detta hnder fr dig, s tryck "ALTERNATE-HELP", s blir allt normalt igen. Vi jobbar fr fullt med att frska g runt detta fel i TOS, s i nsta uppdatering s hoppas vi att felet inte lngre existerar... Tyvrr s mste vi tillflligt stnga av ljudet nr du laddar eller sparar med en vanlig ST, detta fr att inte "stra" diskrutinerna i TOS. Detta gller naturligtvis bara om du kr som .ACC fil. -L Digiplay r en uppspelare fr nstan alla olika modulformat som finns p Atari och Amigan. Digiplay r allts inte ngot fullfjdrat musikprogram som exempelvis Digi Composer, utan bara en uppspelare fr sdan musik. Fr dig som inte frut har provat det hr med att gra musik med datorer, s ska du frska f tag p ett av vra andra program vid namn Digi Composer, som r ett mycket bra musikprogram fr att skapa och editera s kallade MODuler (Ltar). Digi Composer r ett helt gratis PD program, och det finns i de flesta PD-bibliotek eller BBSer fr dig som har modem. Den riktiga versionen av Digiplay r INTE shareware eller PD, utan ett rent betalprogram. Denna Demoversion av Digiplay som du just nu har ftt tag r helt gratis, men saknar MASSOR av funktioner som finns i det frdiga programmet. Demoversionen r bara en "prva p" version, fr att du ska f dig en uppfattning om vad Digiplay r fr ngot. I demoversionen s kan du spela upp vilken modul du vill, men du r begrnsad till 60 sekunders speltid, sedan spelar inte Digiplay demot ngot mer. Den riktiga versionen av Digiplay innehller bland annat fljande finesser : * Kan kras som ACC, PRG och TOS/TTP med parametrar, fr bland annat krning  frn batchfiler. * Multitaskar som ACC-program p ALLA olika Atarimodeller. * Helt systemvnligt. * Supportar ALLA tnkbara skrmupplsningar, till och med ALLA grafikkort. * Supportar interna ljudchip p ST/STE/TT plus fljande cartridgar : Replay, Replay Pro, Playback, MV 16 och Prosound. * Spara ALLA dina favorit instllningar. * Fungerar p ALLA Atarimodeller, frn en enkel 520 STM till en Atari TT/030. * Flera olika velocitytabeller fr fininstllning av ljudet. * Supportar Environment variabler. Om du vill kpa Digiplay s kan du gra det genom att stta in 100 Kr p vrt Postgiro/Persongiro "691113-1933", eller s kan du om du vill skicka en check till fljande adress : Roine Stenberg Bondegatan 13 B 595 52 Mjlby Sverige Vi lovar d att senaste versionen av Digiplay kommer hem i din brevlda inom en vecka. Om du har modem s kan du komma i kontakt med oss genom att ringa 0142-19331 till BBSen STacken dr jag r SysOp. Har du tillgng till ntbrev inom FidoNet, s kan du ocks skriva till Node 2:204/419. Har du ngot du undrar ver, s ta kontakt med oss, p adresserna ovan. -;  RoineStenberg Sven Karlsson \ Istari Software. -; {rAM3  u{rCHROME DOC /a RCHROME3PRG q L#a0 #b0 #c7770007000600070055200505552220770557075055507703111103 #d - #E FB 02 #W 00 00 0C 01 34 17 08 A:\*.*@ #W 00 00 0D 08 2A 0B 00 @ #W 00 00 0E 09 2A 0B 00 @ #W 00 00 0F 0A 2A 0B 00 @ #M 00 00 00 FF A FLOPPY DISK@ @ #M 00 01 00 FF B FLOPPY DISK@ @ #T 00 03 02 FF TRASH@ @ #F FF 04 @ *.*@ #D FF 01 @ *.*@ #G 03 FF *.APP@ @ #G 03 FF *.PRG@ @ #F 03 04 *.TOS@ @ #P 03 04 *.TTP@ @ "