@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"!GFE@F (LI  }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) L 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G}Y}d  "dd\\DOS SYSRAMDISK.COM}B}}CDOS SYS}  CCC*(` C8jJ3j2CD( C202C0 ԠBX`h 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ      :`TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNeed MEM.SAV to load this file.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05X f BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSH)?  L JMEM.SAV-ERROR&}Run DOS Y/N: B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION (c) 1984 Atari A. DISK DIRECTORY I. FORMAT DISKB. GO CARTRIDGE*} J. DUPLICATE DISKC. COPY FILES K. BINARY SAVED. DELETE FILES L. BINARY LOADE. RENAME FILES M. RUN AT ADDRES+}SF. LOCK FILES N. CREATE MEM.SAVG. UNLOCK FILES O. MOVE FILE H. INIT DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }INSERT DOS 2.0s, TYPE Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED720 FREE SECTORS COPYING---D8:DRIVESET.EXEl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 144ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uK) !"`3!3:AU,A0 ##@@K: )@@ ( AX?j}AdAU)-@A- ?AdAU]3(3('ŠΠĠŠ砭Πb.@.k}@@K:l)@@v0 -@6?P,A 0 % D:READMEl}.BASNun zum Editor selbst:.eicher befind- v0 -@6?P,A 0 % D:README5h׬eitung zu S O F T S Y N T HSOFTSYNTH luft auf allen 8-Bit ATARI-Computern mit mindestens 48 Kb RAM und Diskettenlaufn}werk unter DOS 2.5. Es bootet automatisch und bentigt ATARI-Basic. Die fast unglaubliche Klangvielfalt, dio}e SOFTSYNTH von allen herkmmlichen Musikprogrammen unter-schei- det, beruht auf einer Soft-ware-Technik, die auf Ap}TARI-Computern bisher nicht zur Verwendung kam: Es ist mglich, die Spannung, die am Fernseherlautsprecher anliegq}t, direkt durch die CPU zu steuern. Indem die CPU nun zyklisch bestimmte Span-nungswerte ansetzt, kann sie r}einen Ton erzeugen. Unter Verwendung einer geeigneten Liste von Zahlen, die zyklisch in Spannungen umgewas}n- delt werden, kann jede beliebige Schwingungsform - sprich Klang- farbe - erzeugt werden ( dies entspricht dem t}Prinzip von S.A.M. ). Bei diesem Verfahren ist allerdings die CPU so stark ausge- lastet, da eine Darsu}tellung auf dem Bildschirm das korrekte Timing stren w rde.Durch ein programmtechnisch sehr auf-wendiges Verfahv}ren gelang es, "nebenbei" auch H llkurvenkontrolle und verschiedene Effekte ausf hren zu lassen.SOFTSYNTH w}gliedert sich grundlegend in drei Teile:- der SCHWINGUNGS- UND HLLKURVEN-EDITOR, im Folgenden als Editor bex}zeichnet, dient zum Erstellen der Listen, die als Schwingungen oder H llkurven verwendet werden. Die-ser Proy}grammteil ist menuegesteuert.- mit dem COMPOSER werden Musikst cke eingegeben oder editiert. Dies wird mittels einerz} einfachen Musik-Pro-grammiersprache vorgenommen, die - hnlich Basic - einen zeilennum-mern- orientierten E{}ditor benutzt.- der INTERPRETER hat die Aufgabe, das Musikst ck zu spielen.Composer und Interpreter befinden sich |} gleichzeitig im Speicher; der Interpreter wird einfach mit dem Befehl PLAY aufgerufen. Wird der Edi-tor verlang}}t, so mu er nachgeladen werden. Die einzelnen Programmteile werden im folgenden detailliert be-schrieben.Nach ~} dem Booten erscheint das SOFT-SYNTH-Hauptmenu, von dem man durch Tippen des Anfangsbuchstabens zu Com-poser, Edit}or, DOS oder der spter beschriebenen BASIC-Einbau-Utility gelangt. Mit "O" (Optionen) lassen sich Ladegerusc}h, Tastenklick und Softscroll einstellen. Die beiden Letztgenannten sind nur auf dem ATARI XL/XE mglich.}DER EDITORZunchst zur internen Darstellung: Jede Schwingungsform wird als eine Liste von 256 ein-Byte-Zahlen }zwischen 0 und 15 dargestellt. Eine auf diese Weise quantisierte Sinusschwingung sehen Sie auf Abb. 1.H llkurven } werden als Listen von 64 Zahlen zwischen 0 und 15 darge-stellt. Hierbei stehen die Zahlenwerte nicht f r Spannu}ngen, sondern f r Lautstrken. Eine so dargestellte perkussive H llkurve, wie sie etwa beim Anschl}ag einer Klavier-saite auftritt, sehen Sie in Abb. 2.Der Editor erlaubt immer nur eine Schwingungsform und ei}ne H llkurve im Speicher zu haben; wird eine neue Liste eingeladen oder erstellt, so wird die vorher im Speicher} befind-liche ber- schrieben.Nun zum Editor selbst:Wenn der Editor gestartet wird, lan-det man zunchst im Editor}- Hauptme-nue. Hier bieten sich folgende Optionen, die man ber SELECT/START, Cursortasten/RETURN oder } Joy-stick/Knopf erreicht ( die meisten Funktionen knnen mit ESC abgebro-chen werden ):- SCHWINGUNG ruft das }Schwingungsfor-men-Untermenue auf- HLLKURVE ruft das H llkurven-Unter-menue auf- ANHREN spielt Dreiklnge in ver-}schiedenen Oktaven mit der gegenwr-tig im Speicher befindlichen Klangfarbe und H llkurve. Diese Funk}tion ist nur f r ein kurzes Aus-probieren eines Klangs gedacht; um eine Klangfarbe wirklich zu testen, sollte ma}n den Composer aufrufen und sie in ein Musikst ck einsetzen.- COMPOSER ruft den Composer ohne Umweg ber das S}OFTSYNTH- Hauptmenue auf.- HAUPTMENUE ruft das SOFTSYNTH-Haupt-menue aufVor Ausf hrung der letzten beiden Funktio}nen wird man gefragt, ob man wirklich sicher ist, da der Composer oder das SOFTSYNTH- Hauptmenue von der Disket}te nachgeladen werden m ssen und eine etwa erzeugte Klangfarbe verloren wre.Ruft man das Schwingungs-Untermenue }auf, so bietet sich folgende Auswahl:- DIREKT ERSTELLEN ermglicht das "Zeichnen" einer Schwin-gun}gsform in der Darstellungsart von Abb.1. Wie berall im Editor kann wahlweise mit Joystick od}er Cursortasten/START gesteuert wer-den. Und so wird gezeichnet: Der aktuelle Punkt wird durch einen klei}nen Pfeil gekennzeichnet; das gerade bearbeitete Byte ( 0 - 255 ) wird unten angezeigt. Mit den Richtun-gen oben/u}nten ndert man das Niveau ( 0 - 15 ). Ein Knopfdruck bzw. START bewegt den Pfeil nach rechts, geht also zum nchst}en Byte ber und hin-terlt eine horizontale Linie auf dem gegenwrtigen Niveau. Bewegt man den Pfeil nach link}s, so wird der zuletzt gezeichnete Teil der Schwin-gung gelscht; gleichzeitig wird der Pfeil auf das Niveau der} Schwingung an dieser Stelle gesetzt. Nach rechts kann sich der Pfeil beliebig von dem bisher }gezeich-neten Teil der Schwingung entfernen. Sobald man dann auf den Knopf dr ckt, wird eine angenherte Linie von } dem Punkt, wo man die bisher gezeichnete Schwingung verlassen hat zu der aktuellen Position des Pfeils gezo-}gen. Sobald Byte 255 erreicht ist, kehrt man ins Menue zur ck.- DURCH OBERTNE erlaubt die Eingabe des Obertonspek}trums einer Klangfarbe ( Abb. 3 ). Diese in der Musik verbreitete Darstellungsweise beruht darauf, da ma}n jede harmonische Klangfarbe als Summe von Sinusschwin-gungen mit der Frequenz des Tons selbst, der doppelten} Frequenz, der Dreifachen usw. mit bestimmten Ampli-tuden darstellen kann. Bei der Ein-gabe steht die unterste Zah}lenreihe f r die Nummer des Obertons, also 0=Grundton, 1=1. Oberton ( doppelte Frequenz ), 2=2. Oberton ( dreifa}che Frequenz ) usw..Die obere Zahlenreihe gibt die jewei-lige relative Amplitude des Obertons, die dar ber noch einm}al als Balken dargestellt wird. Sie kann Werte von 0 bis 99 annehmen. Die Nummer des gerade bearbeiteten Obe}rtons wird invers dargestellt. Nach rechts/links kann man zum nchsten/vorherigen ber-gehen. Die jeweilige Amplitude } kann man nach oben oder unten ndern. Mit einem Druck auf den Knopf oder START zeigt man an,da die Eingabe beendet} ist, und das Programm berechnet aus dem Ober- tonspektrum die Schwingungs-form, die gleichzeitig gezeichnet wird}.- DARSTELLEN zeigt die im Speicher befindliche Schwingungsform auf dem Bildschirm.- MISCHEN erzeugt eine Kl}angfarbe, die "zwischen" zwei schon bestehenden liegt. Als erste Schwingungsform wird die im Speicher befi}ndliche genommen, die Zweite wird, wie unter EINLADEN beschrieben, unter den Schwingungsformen auf der Disk}ette ausgewhlt.Danach steht eine Schwin-gung im Speicher, deren Werte sich aus den arithmetischen Mitteln der } Werte der ersten beiden ergeben.- ZUSAMMENFGEN hngt zwei Schwin-gungsformen aneinander. Der Ablauf ist wie be}i MISCHEN.- EINLADEN ldt eine Schwingungsform von Diskette. Zunchst wird das Directory geladen, und die } Namen aller auf Diskette befindlichen Schwingungsformen werden ausgegeben. Dann sucht man sich mit Cursort}a-sten oder Joystick die gew nschte Schwingung heraus und gibt mit Knopf oder START den Befehl zum Laden. }Die eingeladene Schwingung wird sofort dargestellt.- ABSPEICHERN sichert die Schwin-gung aus dem Speicher} auf Diskette. Zuvor mu der Schwingung ein Name gegeben werden, der bis zu acht Zeichen lang sein kann, }aber keine Leer- zeichen enthalten darf. Das Programm hngt dann automatisch ".S" f r Schwingungsform als Exte}nder an und erzeugt eine Datei mit dem sich ergebenden Namen unter DOS 2.5.Sollte eine andere Schwingungsform auf d}er Diskette den gleichen Namen haben, so wird diese gelscht.- DISK-INHALT gibt die Namen aller Schwingungen a}uf einer Diskette aus. Dieser Menuepunkt hat noch eine andere Funktion: Das Programm geht davon aus, da} nur eine Diskette mit Schwingungsformen bearbeitet wird. Wenn also mehrmals EINLADEN, MISCHEN oder ZUSAMME}NFGEN gewhlt wird, so wird das beim ersten mal gelesene Directory in den anderen Fllen weiterverwendet, u}m Zeit zu sparen. Nur mit der Funktion DISK-INHALT wird dies umgangen, f r den Fall, da eine andere Diskette }bear-beitet werden soll.- Hauptmenue f hrt zum Editor-Hauptme-nue zur ck.Das HLLKURVEN-Menue bietet folgende Punkte}:- ERSTELLEN lt eine H llkurve auf dem Bildschirm "zeichnen". Die Steuerung erfolgt wie beim entspre-ch}enden Menuepunkt bei SCHWINGUNG, nur da es hier nicht 256, sondern 64 Werte gibt und das automatische Ziehe}n von Verbindungslinien nicht mglich ist.- DURCH ADSR erlaubt die Eingabe von Attack-, Decay-, Sustain- u}nd Release-Time sowie Sustain-Level, wie es in der elektronischen Musik blich ist. Die Steueru}ng erfolgt entsprechend wie bei der Ein-gabe eines Obertonspektrums. Nach einem Knopfdruck wird die entspre-ch}ende H llkurve berechnet und glei-chzeitig dargestellt.- EDITIEREN dient dazu, kleine nde-rungen an einer H llkurv}e vorzuneh-men. Mann kann einen Pfeil nach links und rechts ber die Darstellung der H llkurve bewegen. Bewegt ma}n den Pfeil nach oben oder unten, so verndert sich entsprechend der angesprochene Wert der H llkurv}e. Solange man auf den Knopf dr ckt, bewegt sich der Pfeil nach rechts und hinterlt auf seinem Niveau eine ho-}rizontale Linie. Nat rlich knnen auf/ab Bewegungen und Knopfdruck auch kombiniert werden. Verlassen kann man d}iese Funktion nur mit ESC.- die restlichen Funktionen EINLADEN, ABSPEICHERN, DISK-INHALT und HAUPTME-NUE funktioniere}n ganau so wie die entsprechenden Menuepunkte bei SCHWIN-GUNG. Einziger Unterschied ist,da beim Abspeichern Datei}en von 64 Byte lnge mit dem Extender ".H" f r H ll-kurve angelegt werden.Nun, da die Erzeugung von Schwin-gungsf}ormen und H llkurven er- klrt ist, wenden wir uns der eigentlichen Eingabe von Musik- st cken mit dem Composer z}u.hnlich wie in ATARI-Basic mu jeder Musikanweisung eine Zeilen- nummer von 0 bis 32767 vorangestellt wer-d}en, allerdings darf wegen der gr-eren bersichtlichkeit nur eine Anweisung pro Zeile eingegeben wer-den. Da} jede Anweisung gleich bei der Eingabe in ein speicherplatzsparen-des und schnell abzuarbeitendes Format berf }hrt wird, werden Syn-taxfehler sofort mit einer Fehler- meldung quittiert: Die fehlerhafte Zeile wird ausgegeb}en, wobei der Feh-ler mit einem inversen Zeichen mar-kiert ist.Bei der Eingabe von Musikanweisungen oder Editorbe}fehlen knnen Leerzei-chen grundstzlich weggelassen werden.Hier zunchst die wichtigsten Edi-tor-Befehle ( n,m st}ehen f r nat r-liche Zahlen; Angaben in eckigen Klammern m ssen durch entsprechende Werte ersetzt werden; P}arameter in Klammern sind optional, d.h. wenn sie nicht eingegeben werden, nimmt das Pro- gramm Standardwerte an ):}- LIST ( Abk rzung L. )Syntax:LIST ( #Device:Filename.ext,n,m )Beispiele: LISTLIST 100,LIST #D:MUSIK.LST.100,200Gib}t Zeilen n bis m auf Device aus. Als Standardwerte werden Device=Bildschirmeditor, n=1, m=32767 angenom}men.LIST n gibt nur Zeile n aus.LIST n, gibt Zeile n bis Ende des Musikst cks aus.Es kann sinnvoll sein, Musikst} cke oder Teile davon in LIST- ( ASCII- ) Format auf Diskette abzuspeichern, beispielsweise um sie zusammenzuf gen.}- SAVESyntax: SAVE #Device:Filename.extBeispiel: SAVE #D:MUSIK.SYNSpeichert ein Musikst ck im internen Format ab.}- LOADSyntax: LOAD #Device:Filename.extBeispiel: LOAD #D:MUSIK.SYN- NEW lscht den Musikspeicher- PLAY ( Abk rzung} P )Syntax:PLAY ( #Device:Filename.ext,Device,n )Beispiele:PLAYPLAY 100PLAY #D:MUSIK:SYN,D2:,100Ruft den Interpr}eter auf; das Musikst ck wird gespielt. Abbruch ist mit BREAK mglich. Zuvor werden die Schwingungsformen und H }llkurven, die f r das Musikst ck bentigt werden, eingeladen, falls sie noch nicht ein-geladen worden sind. Als }Standard wird angenommen, da das im Spei-cher befindliche Musikst ck gespielt werden soll, die Schwingu}ngen und H llkurven werden von Disk ein-geladen, und es wird mit der ersten Zeile begonnen. Wird ein Filename ein-}gegeben, so wird zuerst das angege-bene Musikst ck geladen. Die zweite Device-Angabe ( ohne Dop-pelkr}euz ) gibt an, woher die Schwingungsformen und Klangfarben geladen werden sollen ( beispiels-weise von} der zweiten Diskettensta-tion ). Die Zeilennummer gibt an, ab welcher Zeile das Musikst ck ge-spielt werden so}ll.- EXIT verlt den Composer. Das Hauptmenue wird von der Diskette geladen.- EDIT ruft den Editor auf.B}efassen wir uns nun mit den Musik-Anweisungen. Um einen Ton zu erzeugen, ist zunchst eine Anzahl von Parame-tern not}wendig:- Tonkanal Es stehen vier in allen Parametern unabhngige Tonkanle zur Verf gung.- Frequenz ( Note ) Die} Frequenz darf theoretisch von 0 bis 4000 Hz reichen; sie wird auf 0.15 Hz genau angen-hert. Die Tne der C-dur} Tonleiter werden einfach mit ihren Namen C,D,E,F,G,A,H bezeichnet; Halbtne werden durch ein }angehngtes Doppelkreuz gekennzeichnet ( C#,D#,F#,G#,A# ). Soll eine andere als die grundlegende Okta}ve, die durch C=261 Hz definiert ist, ver-wendet werden, so mu die Nummer der Oktave hinter die Bezeichnung } des Tons gesetzt werden, also C1 f r eine Oktave hher als der Grundton, C-3 f r drei Oktaven tiefer. Zulssig sind die }Oktaven -9 bis 4.Es gibt auch die Mglichkeit, Fre-quenzen direkt einzugeben, indem der Frequenz in Hertz ein Apos}troph voran-gestellt wird. Wenn man also einen 100 Hz-Ton erzeugen mchte, gibt man einfach '100 ein. Durc}h die interne Kodierung kann es gesche-hen, da beim LISTen ein Wert auf-taucht, der sich vom eingegebene}n um 1/10 Hz unterscheidet. Sollte eine eingegebene Frequenz zufllig mit einer Note bereinstim-}men, so wird beim LISTen der Name dieser Note ausgegeben.- Schwingungsform- H llkurveF r Schwingungsform und} H llkurve m ssen die Namen bereits mit mit dem Editor erzeugter Dateien angegeben werden.- LautstrkeSie kann } ganze Werte von 0 bis 15 annehmen.- TondauerSie wird im Normalfall in 1/50 Sekun-den, sogenannten Jiffies, angege}ben. Diese Zeiteinheit wird verwendet, da Funktionen wie H llkurvenkontrolle oder einschalten eines neuen To}ns beim abspielen normalerweise alle 1/50 Sekunde ausgef hrt werden. Die Tondauer darf von 1 bis 16000 Jiffies }reichen; bei sehr groen Werten kn-nen Differenzen zum eingegebenen Wert auftreten.- Wartezeit bis zum nchsten Ton}Auch dieser Wert wird in Jiffies angegeben. Zulssig sind Werte von 0 bis 65535. Dieser Wert ist nicht zu verw}echseln mit der Tondauer. Ist beispielsweise die Wartezeit k rzer als die Tondauer, so kann auf einem anderen } Tonkanal ein neuer Ton angeschlagen werden, whrend der erste Ton noch weiter erklingt.Soweit die Paramete}r eines Tons. Da sie, durch Kommata getrennt, in der aufgef hrten Reihenfolge aneinanderge-hngt werden, sieht die} Syntax einer vollstndigen Tonanweisung so aus:[Zeilennummer] [Tonkanal],[Note],[Schwingung],[H llkurve], [Lautstrke],}[Dauer],[Wartezeit]Beispiel:10 1,C1,SINUS,PERCUS,15,100,150In Zeile 10 wird auf Kanal 1 ein eingestrichenes C } mit der Schwin-gung "SINUS", der H llkurve "PERCUS", Lautstrke 15 ( maximale Lautstrke ), Tondauer 1}00 Jiffies ( =2 Sekunden ) und Wartezeit 150 Jif-fies.Nat rlich wre es sehr umstndlich wenn man f r jeden Ton } eine solche Zeile eingeben m te. Da gewhnlich innerhalb eines Musik- st cks die meisten dieser Paramet}er kon-stant gehalten werden, schafft hier die SET-Anweisung Abhilfe: Sie legt Schwin- gungsform, H llkurve, L}aut-strke, Tondauer und Wartezeit f r einen bestimmten Tonkanal fest.- SETSyntax:SET [Tonkanal], [Schwing}ung], [H llkurve], [Lautstrke], [Dauer], [Wartezeit]Beispiel:SET 1,SINUS,PERCUS,15,100,150Wenn zuvor diese An}weisung ausge-f hrt wurde, lautet die Tonanwei-sung, die den gleichen Ton wie das Beispiel einer vollstndige}n Tonan-weisung erzeugt, nur noch:20 1,C1 Alle anderen Parameter sind f r Ton-kanal 1 durch die SET- Anweisung} festgelegt. Es ist sogar mglich, die Nummer des Tonkanals wegzulassen, also nur einzugeben:20 C1In diesem F}all wird die Nummer des Tonkanals aus der letzten zuvor ein-gegebenen Tonanweisung bernommen. Wenn bisher noch k}eine Tonanweisung eingegeben wurde, wird Tonkanal 1 verwendet. Beim LISTen wird der Tonkanal in jedem } Fall ausgegeben.All dies zusammen ermglicht eine sehr z gige Eingabe von Musik-st cken, da man unter } Verwendung des weiter unten beschriebenen NUM-Befehls eigentlich nur die Bezeich-nungen der Noten einzutippen hat.}Es ist sinnvoll, die SET-Anweisun-gen an den Anfang eines Musikst cks zu setzen. Nat rlich kann man die Sta}ndardwerte auch mehrmals innerhalb eines Musikst cks umdefinieren.Es ist auch mglich, einem ein-zelnen Ton vom} Standard abweichende Parameter zuzuweisen. Wie blich werden die Parameter durch Kommata getrennt. So kann m}an:- Nur die Schwingung zuweisen:30 C1,RECHTECK- Nur die H llkurve zuweisen:30 C1,,PERCUS2- Schwingungsform und H llk}urve:30 C1,RECHTECK,PERCUS2- Wartezeit:30 C1,200- Tondauer und Wartezeit:30 C1,180,200- Lautstrke,Tondauer und Wart}ezeit:30 C1,15,180,200Nat rlich lassen sich die ersten und letzten drei Mglich-keiten beliebig ko}mbinieren, es ist nur darauf zu achten, da Schwingungsform und H llkurve vor den Zahlenwerte}n stehen. Wird genau ein Zahlenwert gefunden, so wird er als Wartezeit interpretiert, zwei Werte werden als T}ondauer und Wartezeit interpretiert, drei als Lautstrke, Tondauer und Wartezeit.REPEAT:Normalerweise wird e }in Ton nach Ablauf der Tondauer abgeschaltet. Will man jedoch erreichen, da nach dieser Zeit der Ton von ne }uem begon-nen wird, etwa um einen Balalaika- Effekt zu erzielen, hngt man einfach ",<" an die Tonanwei }sung. Der Ton wird dann solange gespielt, bis er abgebrochen wird oder auf dem verwendeten Tonkanal ein neuer T }on gespielt wird.Beispiele:30 C1,<30 C1,RECHTECK,180,200, [Note],[Dauer]Beispiel:30 C1,>C-2,1}00erzeugt einen Ton, dessen Hhe inner-halb von 100 Jiffies von C1 auf C-2 absinkt. Optional kann noch ein }zweiter Wert angef gt werden, der von -127 bis 127 reichen darf und auf komplexe Weise den Verlauf des Glis}sando angibt.Glissando und Repeat lassen sich auch kombinieren. In diesem Fall mu das Repeat-Zeichen zuerst eingegeb}en wer-den.Nun zu den anderen Musikanweisungen:- OFFSyntax: OFF [Tonkanal]Beispiel: OFF 1Schaltet einen Ton auf de}m angegebenen Tonkanal ab.- VIBSyntax:VIB [Tonkanal],[Schwingung],[Tiefe],[Vibrato-Periode]oderVIB [Tonkanal],[Schwi}ngung],[H llkurve],[Tiefe], [Vibrato-Periode],[H llkurven-Periode]Beispiele:10 VIB 1,SINUS,2,1010 VIB 1,SINUS,PERCUS,2,}10,100Erzeugt ein Vibrato ( Frequenzmodula-tion ). Jede danach auf dem Tonkanal gespielte FREQUENZ wird mit der} angegebenen Schwingungsform moduliert. Die Vibratotiefe ( 0-9 ) gibt an, wie stark die Frequenz moduliert werden }soll, die Vibrato- Periode ( 2-1000 ) bezeichnet, wie viele Jiffies ein Durchlauf der frequenzmo-dulier}enden Schwingung dauern soll.Wird eine Vibrato-H llkurve verwen-det, so kann diese die durch die Schwingungsfor}m verursachten Fre-quenznderungen zeitweise begrenzen. Dies erlaubt beispielsweise ein mit Verzgerung einse}tzendes, strker oder schwcher werdendes Vibrato. Die H llkurven-Periode gibt an, wie lange ein H l}lkurvendurchlauf dauern soll.Normal ist 1-3 f r Vibratotiefe und 10-20 f r die Periode. VIB [Tonkanal] OFF schalte}t Vibrato auf dem ange-gebenen Tonkanal ab. Beispiel:VIB 1 OFF- INTSyntax:INT [1.Kanal],[2.Kanal],[Differenz]Bei}spiel: INT 2,1,1.5Jede Frequenz, die auf dem zweiten angegebenen Kanal gespielt wird, bertrgt der Interpre}ter, um die Differenz in Hz erhht, auf den Ersten. Dies erzeugt einen Interfe-renzeffekt ( Schwebung ). } Voraus-setzung ist, da f r den ersten eingegebenen Tonkanal mit SET Stan-dards definiert worden sind, vo}n denen nur die Schwingungsform bernom-men wird; alle anderen Parameter werden vom zweiten festgesetzten K }anal genommen. Auf diese Weise kann man Interferenzen zwischen verschiedenen Schwingungen erz!}eugen. Normal sind Diffe-renzwerte von 0 bis 3 Hz. Wenn dieser Effekt verwendet wird, darf auf dem 1, Kan"}al kein Ton gespielt werden, andernfalls wird INT abgeschaltet.- PHASSyntax:PHAS [Schwingungsform], [H llkurve], #}[Periode]Beispiel: PHAS RECHTECK,SOFT,20Erzeugt einen Phasing-Effekt ( konti-nuierliches Verndern der Schwingung ).$} Die Lautstrke eines auf Kanal drei gespielten Tons verteilt sich auf die gerade verwendete Schwingung von K%}anal drei und die unter PHAS angegebene, die auf Kanal vier erzeugt wird. Die angegebene H ll-kurve besti&}mmt den Verlauf zwischen den beiden Klangfarben. Ist der momentane H llkurven-Wert 15, so wird nur die Schwi'}ngungsform von Kanal drei gespielt, bei 0 nur die von Kanal vier. Alle anderen Werte erzeugen Mischformen. Di(}e Periode bezeichnet die Dauer eines H llkurvendurchlaufs in Jiffies. Wenn dieser Effekt ver-wendet wird, kann auf )}Kanal vier kein Ton gespielt werden.- PHAS OFF schaltet den Phasing-Effekt ab.- SPEEDBeispiel: SPEED 2Bestimmt di*}e Geschwindigkeit, in der das Musikst ck abgespielt wird. Eine Grundfrequenz von 200 Hz wird durch den+} angegebenen Wert geteilt. Bei SPEED 1 werden also Funktionen wie H llkurvenkontrolle und Vibrato 200 ma,}l pro Sekunde ausgef hrt; ein Jiffie entspricht nur noch 1/200 Sekunde. Die Geschwindigkei wird bei jedem PLAY auf -} 4 initiali-siert. Bei SPEED 1 kann es vorkommen, da die Musik etwas aus dem Takt gert, wenn viele Funktionen.} gleich-zeitig bearbeitet werden m ssen.- MODSyntax: MOD [Kennziffer]Moduliert alles, was auf den Kanlen 3 und 4/} gespielt wird, zusammen. Hier die verschiedenen Kennziffern:0 keine Modulation; Initialisierungs-zustand1 Ringmodu0}lation ( multiplikative Mischung )2 unharmonische ( Noise- ) Modulation3 sehr unharmonische Modulation- KWSynta1}x:KW [1.Wartezeit], [2.Wartezeit]Beispiel: KW 2,2KW steht f r Kanalwechsel, d.h. es werden abwechselnd Kanal 1 2}und 2 eingeschaltet. Zuerst wird die erste Anzahl von Jiffies gewartet, whrend 1 eingeschaltet und 2 abgeschal3}tet ist. Dann wird whrend der zweiten Wartezeit 2 eingeschaltet und 1 abgeschaltet, und so weiter. Es 4} knnen besonders interessante Effekte erzeugt werden, wenn mann KW mit SPEED 1 verwendet.- KW OFF schaltet den K5}analwechsel ab.- ECHOSyntax:ECHO [1.Tonkanal], [2.Tonkanal], [Verzgerung]Beispiel: ECHO 2,1,10Erzeugt einen 6}Echo-Effekt. Jede Tonan-weisung, jeder SET-, VIB-, und INT- Befehl, der auf dem 2. Kanal ausge-f hrt wird, wird nac7}h der angegebe-nen Verzgerung auf dem 1. Kanal wiederholt. So ist es mglich, eine Melodie mit anderen Param8}etern wie-derholen zu lassen, wenn die SET-Anweisungen f r die beiden verwende-ten Schwingungsformen vor dem EC9}HO- Befehl ausgef hrt werden.- TRACKBeispiel: TRACK 1Definiert den Anfang eines Tracks und weist ihm eine Nummer :} zu. Tracks d rfen von 1 bis 32 numeriert sein. Es gibt die Mglichkeit, verschie-dene Tracks zu defi;}nieren, Tonsequenzen, die an verschiedenen Stellen im Musikst ck stehen, aber von denen mehrere, wenn <}sie verschiedene Tonkanle verwenden, gleichzeitig abgespielt werden knnen. Sie knnen auch beliebig wiederholt,=} an- und abgeschaltet werden.Das Track-Konzept erlaubt es, ein mehrstimmiges Musikst ck Stimme f r Stimme ei>}nzugeben, oder auch eine sich immer wiederholende Begleitung nur einmal einzugeben.- TRONBeispiel: TRON 1Scha?}ltet den Track mit der angegebenen Nummer an.- TROFFBeispiel: TROFF 1Schaltet den Track mit der angegebenen Nummer ab@}.- ENDDieser Befehl markiert das Ende eines Tracks. Das Ende eines Tracks wird automatisch angenommen, wenn eine A}neue TRACK- Anweisung auftritt.Wird END nicht innerhalb eines Tracks ausgef hrt, so wird das Musikst B}ck beendet, es wird zum Editor zur ckgekehrt.- ;Das Semikolon leitet eine Bemerkung ein. Der Interpreter ignorieC}rt den darauf folgenden Text.- ?Syntax: ? [Dauer in 1/10 Se-kunde]:[Text]Beispiel:10 ? 20: HALLOGibt D}einen Text auf dem Bildschirm aus. whrend der Zeit der Textdarstel-lung kann keine Musik gespielt werden. Es stehen E} 6 Zeilen mit jeweils 20 Zeichen zur Verf gung. Das Zeichen / setzt den darauf folgenden Text an den Anfang eineF}r neuen Zeile.Es knnen nur Grobuchstaben ausgege-ben werden. Mit groen/ kleinen und normalen/inversen BuchstabenG} knnen vier verschiedene Farben erzeugt wer-den. Sollte die Textdarstel- lung zu lange dauern,kann man sie mit H}jeder Taste abbrechen.Nun zu den restlichen Direkt-Befehlen:- ENTER ( E. )Syntax: ENTER #Device:Filename.extBeispiI}el: ENTER #D:MUSIK.LSTLiest vorher mit LIST abgespei-cherte Zeilen ein. Das Musikst ck im Speicher wird nJ}icht gelscht. Dieser Befehl dient in erster Linie zum Zusammenf gen von Musikst cken oder Teilen davon.- DIRK}Beispiele: DIRDIR D2:*.*DIR *.SGibt das Directory aus. Optional kann die Bezeichnung einer anderen DisketteL}nstation und/oder ein Suchkri-terium angegeben werden.- NUMSyntax:NUM ([Zeilennummer],[Inkrement])Beispiele: NUMNUM M}100,2NUM 1000Gibt automatisch Zeilennummern vor, beginnend mit der angegebenenen Zeilennummer, zu der N}nach jeder korrekten Eingabe das angegebene Inkrement addiert wird. Die Zei-lennummernvorgabe wird abgeO}brochen, wenn eine schon bestehende Zeile gelscht werden knnte. Als Standard wird f r die erste ZeilennummeP}r die kleinste durch Zehn teilbare Zeilen-nummer nach der hchsten bisher ver-wendeten verwendet, f r das Inkre-Q}ment 10.- SIZEAuf diesen Befehl hin wird der noch freie Speicherplatz in Bytes ausge-geben.- REN Syntax:REN (R}[Zeilennummer],[Inkrement])Beispiele: RENREN 5REN 1000,10Numeriert die Zeilen eines Musik-st cks neu. Als SS}tandard werden f r die erste Zeilennummer und das Inkrement 10 genommen.- TPSyntax: TP [Anzahl Halbtne]BeT}ispiele: TP 6TP 0.7TP -12Transponiert das Musikst ck um die angegebene Anzahl von Halbtnen. Es kann jede U}beliebige Dezimalzahl verwendet werden. Deshalb eignet sich dieser Befehl auch zum Stimmen an anderen MusikinstV}rumenten. Glissandi werden nicht korrekt transponiert.- REPSyntax:REP [SCHWINGUNG],[SCHWINGUNG]oderREP [HLLKURVE],[W}HLLKURVE]Beispiel: REP SINUS,RECHTECKErsetzt jedes Auftreten der ersten Schwingung/H llkurve durch die Zweite.WenX}n hufig der REP-Befehl verwendet worden ist, kann es aus Speichar-platzgr nden ntig sein, mit dem Y}Befehl PLAY! alle Schwingungsformen und H llkurven neu einladen zu las-sen. PLAY! oder P! kann genau so wie PLAY Z}verwendet werden.Es ist vorgesehen, mehere Editorbe-fehle auf einmal einzugeben, indem man sie durch einen Schr[}gstrich "/" trennt. Sie werden dann nacheinander abgearbeitet.Beispiel:LOAD #D:MUSIK.SYN/REP SINUS, RECHT-ECK/TP\}-6/PLAYEditorbefehle knnen sogar vom Musik-st ck aus ausgef hrt werden. Es mu ihnen nur die Zeilennummer und ei]}n weiterer Schrgstrich vorangestellt werden. Sobald der Interpreter auf eine solche Zeile trifft, berreicht ^}er die Kontrolle an den Editor und lt ihn den oder die angegebenen Befehle ausf hren. Diese Funktion erff_}net zahlreiche Mglichkeiten, wie zum Beispiel den Aufruf eines Musikst ckes von einem anderen aus`}, endlose Transponierschleifen oder eine automatische Demonstration, die eine Auswahl von St cken ldt und vorspia}elt.Beispiel:100 /PLAY#D:MUSIK2.SYN100 /TP-4/PLAYMit einer speziell geschaffenen Uti-lity ist es auch mglich, b} fertige Musikst cke in selbst geschriebene Basic-Programme ein- zubauen. Und so wird's gemacht:- man ruft vom c} SOFTSYNTH-Hauptmenue den Programmteil BASIC- EINBAU auf- Nachdem sich das Utility gemeldet hat, gibt man den Namend} des gew nsch-ten Musikst cks ein und ldt es, dazu die bentigten Schwingungsformen und H llkurven- Auf der Zielde}iskette erzeugt das Utility zwei Dateien: In einer ist das Musikst ck samt Schwingungsfor-men, H llkurven und f} Interpreter enthalten, in der anderen eine kurze BASIC- Routine in geLISTetem For-mat, die f r Einladen g}und Ini-tialisierung von Musik und Interpreter sorgt.- Wenn die Dateien geschriebenen sind, initialisiert man dq}B%DOS SYSB*)DUP SYSBSAUTORUN SYSBTMENU BASbXANLEIT BASBmSOFTSYN DOCb,}KLASSIK BASB)BACEM SYNB,MOGEI SYNB2MOKLA SYNas System neu, ldt das Basicprogramm und gibt ein:ENTER "D:LOADER:LST"Daraufhin wird die Lade- und Initiali-sierunr}gsroutine, die die Zeilen 30000 und 30010 beansprucht, zum Programm hinzugef gt.- An den Anfang des eigenen Pros}-gramms stellt man den Befehl GOSUB 30000. Wenn das Programm nun gestar-tet wird, ldt es Musik und Int}terpreter in den oberen Spei-cherbereich. Nat rlich mu die Musik-datei auf der Diskette vorhanden sein. Je nach u}Lnge des Musikst cks stehen ca. 6 Kb weniger freier Speicher zur Verf gung.- abgespielt wird die Musik mit dem Bev}fehlA=USR(PLAY,n)wobei n f r die Zeilennummer steht, ab der gespielt werden soll. Abge-brochen werden kann w}die Musik mit den Tasten SELECT, OPTION oder START.Hier noch einige Daten:o Sampling-Frequenz: etwa 11 KHzo x}Quantisierung: 4 Bit pro Tonkanal (16 Werte) 0.1 Hz Frequenzgenauigkeito Frequenzbereich: 0 bis ca. 300 KHz, 6 Oktavey}no Speicherfhigkeit: bei ATARI XL/XE 19.5 Kb f r Musik- st ck, Schwingungen und H llkurven, d.h. etwa 3500 Tz}ne. bei ATARI 400/800 12.Kb, d.h. etwa 2000 Tneo 4 unabhngige Tonkanleo volle Diskettenunterst tzungo Vibrato{}o Schwebungo Ringmodulationo Glissandio Phasingo Echoo Track-Gliederungo Jede beliebige Schwingungs- |}form/H llkurveRingmodulationo Glissandio Phasingo Echoo Track-Gliederungo Jede beliebige Schwingungs-   LShPLA SAVE"D:KLASSIK.BAS"  ~}********************* * ** ACHTUNG ** KLASSIK ** } ** Juni 2006 ** ** Dieter Gretzschel ** Am Krusenick 13 B ** 12}555 Berlin ** ** Tel. 030-65261979 ** **********************}젢򢠛1 +AR@1@e70@@@70@@}@ ( (( | ( !(  "(  #(  $(  %}(   &(    '(  ^ ^  ((  o|o )(   *( . w .+( ':.:'},(  ::: -(  ':' .(  ' /(  0(   1(   2( }3-@A 4,-@@,(  5,-@@,(  6}/-@@/(LD AN OWER7'-@@'(  8'-@@ '( 9},-@@,(Dieter Gretzschel,:*-@@*(Berlin-Koepenick;%-@!@%( stellt vor:<!}-@#@ !(= F:Ad,"AU@a> (}?AdAUF 젛Pc+@%@}/0@@@I0@@@c0@@Z Aad-@@n' @}6-@&' A@x'!@6-&@' A@6-@ , A0  -@@}6@'!@6-@"&' A' @6-%@' A6-@ , A0}  A`=%2@2@@9-@@= =%29-}@@= $4-@@*(@ACHTUNG4 A4-@@*(@klassik4 A}%-@A % A@" -@@6@,72A!@3-@@7} 6 @=%29-@@= J$T堛^K +'0@@ @}9AR@KAVAhpp(hMit diesem Beitrag mchte ich auf ein sehr schnes Musik-Editor-Programm }aufmerksam machen, es heisstr&(&( S O F T S Y N T H|V(V(Kund ist von Christian Nieber aus Berlin sch}on 1985 geschrieben worden.MM(EMan kann damit Tne von allen nur denkbaren Musikinstrumenten aufSS(Kunserem ATARI} 800 XL/XE nachahmen. Es ist mglich, komplette Musikst ckeKK(CNote f r Note einzugeben, und zwar in vier unabh ngigen} Tonkan len.RR(JDiese Notenfolge kann man in ein Basic-Programm einbauen und von dort<<(4mit einem Tastendruck a}ls Melodie zu Gehr bringen.KK(CWer die Notenschrift beherrscht, kann somit regelrecht komponieren!!-@@!}!( F:Ad,"AUA`- (}AdAU--@NN(FIm vorliegenden Programm wir}d gezeigt,wie es klingt, wenn der ComputerRR(JMozart und Bach spielt. Dabei ist kritisch zu bemerken, dass}SS(Kder Geigenton und auch der Klang des Klaviers besser sein knnten. Um diesSS(Kzu erreichen, m ssten die im Editor} von SOFTSYNTH vorgegebenen H llkurvenRR(Jund Schwingungsformen berarbeitet werden. Das ist zwar mglich, jedoch}OO(Grecht aufw ndig. F r dieses Demo- Programm wurde darauf verzichtet...(&______________________________________&}HH(@Literatur zu SOFTSYNTH: ATARI-Magazin 1989, Heft 70..(&______________________________________:RR(JBe}zugsquelle zu SOFTSYNTH: ABBUC-PD-Software-Bibliothek, Nr.174DU.(&______________________________________@-@}@"U( zum Men N F:Ad,"AUAX (}AdAUb""Ȭ}lK +'0@@ @9AR@KAVAv!-@@!(M E N V( (V(H }<1> Geigenton, Mozart KV 331, Thema 1.SatzP(P(E <2> Klavier-Klang, }Mozart, Rondo alla TurcaO(O(D <3> Cembalo, J.S.Bach, Petit Prlude(( <4> Ende}%( (%( ... Bitte waehlen: .@.@@K:)@!! @I)!@R}A!-@$@!(&@H-@A "@I B"@P B"}@Q B*"@R(}'AR* 6-?:<@, A uxAA8++}6-Ba(=@$AaO@%A8x@@ D:MOGEI.SYNuZL6-?:C:$h?PhhBhEhDhI}hH V?`,<@<BT<ATq,W@Z$uxAA5++6-Ba(=@$A)O@%}A5x@@ D:MOKLA.SYNvZL6-?:C:$h?PhhBhEhDhIhH V?`,<@<BG<Aaq,W}@Z$\vxAA3++6-Ba(=@$AO@%A3x@@ D:BA}CEM.SYNfvZL6-?:C:$h?PhhBhEhDhIhH V?`,<@<BB4<Ag&,W@Z$ D:KLASSIK.BAS D:BAw SAVE#D:BACEM.SK謠L=D(l=D2 D< FP Zd n x 1( D} (   ( 1g D g g    " ,86 @ J T} ^ Dhr| 18"*1 "J1 "  1 *1 J1( EcE}Ec& 1 "0*1 ":J1( "DNX 1 Db*1g DlJ1 Dvj1 1 D 1g D 1 D} 1g "*1 " 18"*1g "j1" 1 j1D  1 l *1( l*J1l4}>Hj1ER D\fp( zj1c" (  1g Dj1 j1E j13 j1C}"g   1g Dj1 j1E j13$ .j1C"8 B L 18DVj1 `j1E jj13t ~}j1C" 8 1 Dj1 j1E j13 j1C"8 1Dj1 j1E  j13}( j1C"( 2< 1 DFj1 Pj1E Zj13d( nj1C"xP 1*1 J1g j1}DCcC 1g "j1Dc g8"g,6g@(JgT^gh}8rg|g gi! 1P%  8  g ( g  }( g & 0 :8D N 1 % Xj1c Db 1 l*1 vgj1 " 1g "*1 "j}1C " 1 *1 j1 x    } }}o h,Br3?=$:4PJgaRwĎ pԵ}]b;WR:hhEh -|DZԩL̚= Ԟ՞@ԩ`x`p}ppppGpppppAiiҥiiҥiiҥiiҢ}`w  L΍ DE ƤƥL< B  "  B H h ,  {  E$ }B  " Ď, H h B  {  E:4 L  H h  { Ů}r  EPJ T  ii)? Ï Ž 8črą JaPg x ōX }0  H h r  {  Ega P& ,Ƨ@  Ď 3L1 BƧ Ď } 3 " i (i$ , " i4 (i: B ) iJ (i}P x X " ia (ig r wLqm)n q{QKzy|8v|i)?LVnW}9b:8LvLFwFvw qL{9r:s; 8 8) ްT 8)JJJJJ |ĩ 8}0%,&)<< ?L΍╰L 8 8ʊm99:L=9Ԟ:՞L΍K 8}\ݟ?L΍h ?L΍hRWݟ]bn9W:bnL< 8hhLC # 8n} L΍RW]bL<# 8 8L{  8DLBmqyzʠ|LA' 8 8| 8mm{QKL} Le 8|0?L΍ĶƼ 80* $( 8L0@}Ȑ ɐ$Ӑ(Ԑ 8L0V䐽吽 $( 8Lm! "$,(- 8}LLL4 8; o; 8/")Ŋ)  @`8 ŦLd8i ԩԠ!pL΍}o ;ZԩLH0poh@ HT 8x4p -L3 8Z 8L! }rL@3Ď L ) |L\)Ċ) |;( 8$ĕ6 8Jv(Jv(ip, 80 8 8 }8 8 L7 8m 8JnJnip 8 8LɀI | L) | 8 8 8 8} 8 8< 8@L؎ 8m 8i$Ƙ) 8*ʘ) 8Jn؎Jn؎ipَΘ) 8 ێL旍! 8}m4 8i:ǘ) 8@˘) 8Jn!Jn!ip"Ϙ) 8 $L旍[ 8m琅J 8iPȘ) 8}V̘) 8Jn[Jn[ip\И) 8 ^L旍 8ma 8igɘ) 8m͘) 8Jn Jn }ip ј) 8 ;֕ҕ<@) 8 8) 8)@ 8)L{ 8))H 8 8)}) 8ɀĘ 6 6 8 8:nLF9W:bąť{)zy#|QK{ȹ|uȹ|\ȹ|gȘ)}?zhFL FŹLĄnܥŅwąvL< :LT!}o`ҹ oE@pppppppppppppppppppppppppppAZ:HHqu:m`:|Uzy| i)?Lyi)!}?y|| )?ʊ)?L|Ȋ|ȥr|ȥs|hh:`L~>!}  !}     !}!}h=? 3i 3Lǚhhw!}hvhh@ Ԛ 8=ԥ>հ˥IԥI`hhh ?hhe΅=Θeυ> "L因v0!ȱv0ȱv)v ž)v `ȱv!})ȱv ž)*viȩi 8==ȱ====`hhwhvhh˩x?j c@(j c˱1Ȣ!}$ͦx(˥@Ȣ(@xi `з!`˱v, ʆ@ˊ0`hh?`hhwhvh@h?v0Vȱ!}vv=ȱv>Fff>f=0e?e@8>vȥvv0)evvwПv`?`hhwhvh@h?v0Vȱ ` SAVE#D:MOKLA.SK#֠  % (  2  <g F( P Z( d ! ni! %}xi! I! i! I! ! %  ! % i! I! !%  ! %  !8i! i! I!&} i! I! ! % " !8% ,i! 6I!@ !^% J !8% Ti!^ !% h !P% ri! |I! !,%&}  !P% i! !%  !P% i! I! !,%  !P% i! !(v i! I! i! I!&} !P &i! 0I!: !(D N)!X)!Pbi!l ! vi!I!)! !P i&}!I!)!8 ! i!I!)! !P)!)!Pi!  ! i! I!*&})!4 !P >i!HI!R)!8\ ! fi!pI!z)! !P)!)!Pi! ! &}i!I!)! !P i!)!8 ! I!)!^ ! i!v$ !8v  &}  &} &}o h,Br3?=$:4P& }JgaRwĎ pԵ]b;WR:hhEh -|D& }ZԩL̚= Ԟ՞@ԩ`x`pppppGpppppAiiҥii& }ҥiiҥiiҢ`w  L΍ DE ƤƥL< B & } "  B H h ,  {  E$ B  " Ď, H h B  {& }  E:4 L  H h  { Ůr  EPJ T  ii)? &}Ï Ž 8črą JaPg x ōX 0  H h r  {  Ega &}P& ,Ƨ@  Ď 3L1 BƧ Ď  3 " i (i$ ,&} " i4 (i: B ) iJ (iP x X " ia (ig &}r wLqm)n q{QKzy|8v|i)?LVnW9b:8LvLFwFvw qL{9r:&}s; 8 8) ްT 8)JJJJJ |ĩ 8Ľ0%,&)<< ?L΍╰L&} 8 8ʊm99:L=9Ԟ:՞L΍K 8\ݟ?L΍h ?L΍hRWݟ]b&}n9W:bnL< 8hhLC # 8n L΍RW]bL<# 8 8L{  8DL&}Bmqyzʠ|LA' 8 8| 8mm{QKL Le 8|0?L΍ĶƼ 80&}* $( 8L0@Ȑ ɐ$Ӑ(Ԑ 8L0V䐽吽&} $( 8Lm! "$,(- 8LLL4 8; o; 8/")Ŋ)&}  @`8 ŦLd8i ԩԠ!pL΍o ;ZԩLH0poh@&} HT 8x4p -L3 8Z 8L! rL@3Ď L ) |L\)Ċ) |&};( 8$ĕ6 8Jv(Jv(ip, 80 8 8 8 8 L7 8m 8JnJnip&} 8 8LɀI | L) | 8 8 8 8 8 8< 8@L؎ 8m 8i$Ƙ)&} 8*ʘ) 8Jn؎Jn؎ipَΘ) 8 ێL旍! 8m4 8i:ǘ) 8@˘) 8Jn!J&}n!ip"Ϙ) 8 $L旍[ 8m琅J 8iPȘ) 8V̘) 8Jn[Jn[ip\И) 8 ^L&}旍 8ma 8igɘ) 8m͘) 8Jn Jn ip ј) 8 ;֕ҕ<@) 8&} 8) 8)@ 8)L{ 8))H 8 8)) 8ɀĘ 6 6 8 8:n& }LF9W:bąť{)zy#|QK{ȹ|uȹ|\ȹ|gȘ)?zhFL FŹLĄnܥŅwąv&!}L< :LTo`ҹ oE@ppppppppppppppppp&&}ppppppppppAZ:HHqu:m`:|Uzy| i)?Lyi)?y|| )?ʊ)?L|Ȋ|ȥr|ȥs|&'}hh:`L~>&(}     &)}  &*}&+}h=? 3i 3Lǚhhwhvhh@ Ԛ 8=ԥ>հ˥IԥI`h&,}hh ?hhe΅=Θeυ> "L因v0!ȱv0ȱv)v ž)v `ȱv)ȱv ž)*viȩi 8==ȱ=&-}===`hhwhvhh˩x?j c@(j c˱1Ȣ$ͦx(˥@Ȣ(@xi &.}`з!`˱v, ʆ@ˊ0`hh?`hhwhvh@h?v0Vȱvv=ȱv>Fff>f=0e?e@&/}8>vȥvv0)evvwПv`?`hhwhvh@h?v0Vȱvv=ȱv>Fff>f=0e?e@$.