0L0FunMusic(   00 00-0`/}0|0 x0   Y  Ӣ8`ll1R@.n00)0.0-0 *I0  C0 10 u0 100 0q0 080H 0(0DhC 000CDDCL0CD-003.-0`00 G00m000m00C80CD0D.0̀0(0 )0  C0/(0/)0/ / Ȍ.0DЛ0C0. E0L1MAIN ----------- FunMusicby BEWESOFT'98 Freeware!!! -----------)DOS b; Mj2FUNMUSICCOM b; >FUNMUSICDOC b 5Z8FUNMUSCZCAP b (EDOS b; XBW130 DOS _%: KSTARTUP BATb5 nen). Pokud pou()v*me BW-DOS nebo SpartaDOS, m+(eme ps*t:CLOSE #1:XIO 40,#1,4,128,"D:n*zev" V%t&inou to funguje i pro MYDOS, form*ln% spr*vn` z*pis je v&ak pod MYDOSem trochu odli&n`;CLOSE #1:XIO 39,#1,7,0,"D:n*zev" Dal&) mo(nost) je 'ist% Basicov[ @e&en). Je sice dlouh[ a pomal[, funguje v&ak s ka(d`m DOSem a pod ob%ma verzemi Basicu:10 OPEN #1,4,0,"D:n*zev":GET #1,A:GET #1,B:IF A<255 OR B<255 THEN ? "CHYBA":END20 GET #1,A:GET #1,B:PLAY=A256B:GET #1,A:GET #1,B:C=A256B30 FOR A=PLAY TO C:GET #1,B:POKE A,B:NEXT A:CLOSE #1 Existuj) samoz@ejm% i jin[ mo(nosti rychl[ a univerz*ln), s pou(it)m podprogram+ ve strojov[m kdu$, to u( ale jde nad r*mec tohoto n*vodu. Kdy( m*me hudebn) modul zaveden` v pam%ti, m+(eme pou()vat n*sleduj)c) p@)kazy:A=USRadresa,1$ ... Spu&t%n) hudbyA=USRadresa,0$ ... Zastaven) hudby Pou(it* "adresa" bude samoz@ejm% stejn*, jako p@i kompilaci. V TurboBasicu m+(eme zapsat rovnou nap@. "A000" jako v kompil*toru$, pro AtariBasic v&ak mus)me adresu p@ev[st do des)tkov[ soustavy: 7000 = 28672 8000 = 32768 9000 = 36864 A000 = 40960 B000 = 45056 Pozn*mka: Opakovan[ spu&t%n) hudby t.j. od za'*tku$ bez p@edchoz)ho zastaven) je p@)pustn[, podobn% ani opakovan[ zastaven) nen) chybou. Jestli(e chyb) parametr, hudba se zastav), p@)padn[ parametry nav)c se ignoruj). Pro pokro'ilej&) program*tory: Hudebn) modul pou()v* p@eru&en) VBI - vektor VVBLKD 224,5$ - kter[ samoz@ejm% nesm) b`t u(ivatelsk`m programem zak*zan[. Spolupr*ce s jin`mi rutinami, kter[ pou()vaj) zm)n%n` vektor, je mo(n*, pokud jsou instalov*ny p@ed spu&t%n)m hudby, a adresa se nem%n) a( do jej)ho zastaven). Jestli(e m* b`t n%jak* VBI-rutina instalov*na p@i b%()c) hudb%, mus) na sv[m konci zajistit skok na p+vodn) adresu hudba$. V tomto p@)pad% se p@i zastaven) hudby p@ehr*vac) rutina z VBI neodstran) - hudebn) modul pak nelze ni')m p@epsat! HUDBA V ASSEMBLERU Hudebn) modul je ulo(en jako norm*ln) bin*rn) segmentovan` soubor. Na za'*tku nejdeme n%kolik d+le(it`ch adres:PLAYER0 ... Rutina pro BASICPLAYER3 ... InicializacePLAYER6 ... Rutina VBIPLAYER9 ... Hlasitost 4 byte$ Nejd@)ve zavol*me inicializaci JSR PLAYER3$, p@i'em( parametr 1=Start 0=Stop$ ulo()me do registru A. Rutinu VBI je t@eba volat JSR PLAYER6$ vcelku libovoln`m zp+sobem 50x za vte@inu. Na adrese PLAYER9 najdeme v(dy moment*ln) hlasitost v&ech 'ty@ kan*l+ nem%nit!$, co( se m+(e hodit pro n%jak[ grafick[ vyj*d@en). Jinou mo(nost) je volat modul stejn%, jako z Basicu:MUSICON LDA #1 ;Parametr PHA LDA #0 ;Horn) byte$ PHA LDA #1 ;Po'et parametr+ PHA JMP PLAYER V tomto p@)pad% p@ehr*va' nainstaluje svoji vlastn) rutinu do p@eru&en) VBI.!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ6>آ 766L S2BWWP*L n~  L . . *  0 0M Ω  ,  8 9 ɛ :: :A   `   1  ,8 ɛ 驛 `إG G,  GL  MBG@ LL@,ȘUiD0 G`Dl  _  J  J`,i鍋  i`l6  M6 80   .6 .7 ݎ` ,H) hJJJJJ  ʽ0O v  )(0; : H B H v hکH(`F e   F ` ,,D JJjKgC BCDH VhɈHH) t hh` o h  o  o  | (   ʎ k o x  k @8 @ L to  ʎ l o @Pjj(**ӢΊ8DQCCQCj k  F hC ` O  FIN𠩜HL l l | ,  ` 0H h, 0H  y h`  K9CoCF ~ : t  0٩ < @ @ +  K9   JJJo c c - 0  KFREE SECTORS DOS !-E ;Lq3 h )  b@ =YdH o hL8 !"#$%&'67*I[ J@C1Dvf;6&6**; !?b f`qb{fl ~\D^{_IR\MZ+hcdef 9k%>n.p 617%=y*)3:,> ACdL?G=> ?`X)HFHF`Ж1!|S466>S") 9X`",-,0,1,)؆F( Y,LX)F ! ,֩4 !ɥF!M hU98 -ЕLo HUo hU,K CɀC MC&EC( 1ȱC9  "9 E Y,P 8M  H  hF`9L^L  +k 10  @M9 ` @T8`I;&CEC( CMC`  (Q    &  ,Cȝ`  ,9 0 `   LmOa  NZL%   L͝OD   !J* )  G$%& Ȏ  %m]  +Г, $  (#%J !)!,2!)  N$l*H7  h ΄ x` dLHjIjH) I"=7)(.  @$T'@(NQj  T'@$Q@((0! i$#( `  RT'~ j멋I` LȌ?EC LCC& l;C L C  +[C>= L?C:ȱC; :`8H C   `H$HJ)ELHNS)  #" ,H  "d!vf>h,,H  QT'|ǥE8<RQ   : ;%H) `  l"[L Cȭ C +:;  'T<$H0]C]L 0  !y"#dTH) <  _ i C + kQ _' _@B T<mE <L8H C $H0 `  J x `͉ߍ$E H**hJ`, HH  #vd>h  !|`  +#v2,   2IH) !`,S0kI  + *  ((+<'38nS`( *) ,*)?,) )I)JJE,,,L ?lF  ++j"̹ 4  +" %L hjjnI)m  gI)   M,L0  .l"[!{"]"v#"]I)   "]".!|"]" L,@L)`,IiDC`JN ,H  `$H ?  ȱ$*?_.0 :A[8nH nHͱ$/ ȱ$An$$n$(`  $:  N  "㹚#3>  ̹"  C D # 0N  0  `@)@ FHCh8  R@   *I   [p#G#@CC0w`H,H_   i 1C QCC + iZ c X Y i hh8h _ 𖠢L8inII 0Ci'FnB (EC@8~@`ȎHW@IHW W 9@CF(iL+  "[CC  +"yעՠN`n_ cZ98~L` ?'`8$N!(.!`4ƻ)H  h  +#+ <   ` -!`$  ?    !J ,,L!   ""y  |E?  "|LCC  " L HJhj m]m^  )8j`,I,   h  ],A0> 09!4) ,L ݩ0M!) Ң ?&H  ]h`,L0`+" 00 @ }0!nJ }0 NJ  цB @H- h#  BMM6E  ^T'0 -`  ]B\T'08 S cQ  QT'0ѩ ؠ`  yǠ.HL0l6L;D1:FUNMUSICNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$]V @$ՕY]no_[WwwgwwW_WWWWTDDTDDDDTDTD;&&;;&UUUU??? p\Xdtd䠤(O@D$ @*VVVVUUUU[_oՕUUUUo_[WWwwWWWWݙߟ_oDDDTDDD&;jjjjZZZZVVVV d\p<몪<VTn]Y[_oPPPUUUWWWWWPTTT@@TTT@@DDTT@@@@@TPDDDDDPT@@P@@TT@@P@@@T@@DDDTUUUUUttXTh@ 4T4 p\T\p_www_wwWww ;@@@UUUUUU떖ת%'X&XW$`WwwgwwW_WWWW_YUV;&&;;&UUUU??? p\Xdtd䠤+UUPPAAAAת( 5%%5 VWuup`\XTWWwwWWWWݙߟ_oWWW@FG;_&;jjjjZZZZVVVV d\p<몪<( % }UiUU`XTTUUU%6 X\`pPPPUUUWWWWWPTTT@@TTT@@DDTT@@TTT@@TDDTTTDDTDDTTDDTTUUUUU 4T4 p\T\p_www_wwWwwwvUVU___U}zUUyUUUU뛛ՕUUUUUooo_[UUUUUUUoUUUUUU__[VU(OX/N4a}/v4}/F3)0f3>\0~3\03l13>\0~3Z13&J223JV24(264 *3n4                &un-usicby"%7%3/&4&reeware˿xqke_ZUPKGC?<852/,*'%#!Ĺzslf`ZUPKGC?;741DzÕ[k}v0picU^ Y TROJFB>j;841'/,*'k%Q#V!vt=6 x  { V Pg9:d%{HtP/r]I6%~wpic]WRMHD@<841.˿zqke_ƻ{smgaZUŹTOwK:630-*'$" q$Rk: hE)lWB4ĺ{tmf`[UQLGC?<851.+)!!!!!!!!!!!!!!!!!!!!!!!Io oF!J sG!!!!!!!!!!!K r" p!!!!!!!!!!!!!J qtF!!!!!! st!!!!!!! stH!Kr!!!!!! u q#!!!!!IoLQ9L78L&9L2:L=L>L[>L%=LL=L5L5L;LY=@B0/DA40xxxx0 ppppp ,-.TUV|})*+QRS|}yz{)*+|},-.TUV@ABgghhijjkk@ /01WXY 234Z[\s;4``5L_H ԩЍЩ Щ16ЩЩЩOЩ Э) JJJ Э)HHЬș2 5hhh@HH$ ԍ ԎЩzЩ8Щb6H Nhhh@H ԍЅM ԩ6 ԍh@HH 76H Nhhh@HH 86hh@H ԍЩٍ6 ԩT ԍh@HH 76hh@HH 87H Nhhh@HH 7$7hh@HH 8:7hh@H\74 ԍЊHH Nhhh@HH 7r7hh@HH 87hh@H7HH >hhh@H7 ԍh@H5HH Nhhh@ ԍЍ( ԍ ԩ нн/8 ԍн38Щ` ԭ Ѝ Խ ԍЩ н,`RB2VF6ߠЩ5i(E䩘ԩЩ Ѝ Щ Щ0ЩЩЍЩ@ԩԍoЩЍЍ/ԩɢ401ԎԍԎԩ>/ԩЬ"#5555 \`55 \@ԩ/ԍЍ ЍЍЍЍ`h02^V999'999Е:٩:`      ibiX51d5Yn8^V b: {:( {:P : :p5葀`5i5iȩ(ȩ)?;JJB;*)H;HL;RhݑH x 1; 1;hn;r;JJ v;w;i(i0` 7; 7;P;葀`⍎hh$((*,0,`,,,,5i5i } $-%-;#iP`Owǩ󅀩L;55' <Ƚ<i'ɠ`&'NOvw$%LMc$%LMd5i-5i mxC) ))D(P0J< i(E)б`P(; < <ș `+ < +05I };8+ iP?, p`H (08@h0I i iPL<5i}5i ʠx(Pʈ` iO,;0x `0 <55%Ȑ0 ;` ;0 :0 ;0'L%=L< i`H)K> HpP>h0JyU>(ЖE`DDDCBBBAȠxP(Em1807ڌȌȌȌȌ}8𖩋񖩌(L>`ȌȌȌȌUߩיؙٙi(L> >`LCLFLq?LCLELELnFLD4567bcde89@U:;?``i `@@Z N ? 4@@`):JJJJ;8J>8>>>ۭ) )?$@0,@:<) )?f=D{DrD|DsD CL.D06@D6<@D06BhSE6DFPHDPF8HPGnH>JpF>rF>КF>FLZ@LZ@  H 4 ʽD A! )Lq CCLE 4 4 4L4  H ;C ;C ;C ;C A 4L?E^V^V ^V^V L40`QPQEPycFcF8怽EP`  F F FCG#8i`Q mQ e )łŃE)`28HLF28pLF28LF28\`D"'''H ;ChH A HhL4PLG\%H A HhH CChLG)J)'LG)LGiH A HhHi#i LG8# NhL4\H8P IChH A HhL4'T8PJJ]\8JJI8\ ]\ـ L4`HK NhH 4h]L4 N {@<[ NL?E 41 4 4`ŭ8PJJ]28JJI8\L_HH _Hh N` 4 NLHLHLHLqLlkHHHIrHzHHIAl }J Exit to DOS |K K OIl }J : Are you sure (Y/N) ? I)Yy Nn8 K(` }J ` N qJ 6IL8I KL ? }JAddress: $xxxx - $xxxx` }J ERROR - $XX Press any key...` }JFilename: D1:XXXXXXXXXXXXXXXXXXXXXXXX` OIk Ik mJ }J FunMusic Compiler }J  }J... Back to main screen ! }J+... Clear All }J+... Exit to DOS 6I pI9 L0 L L Lo Jo L L Ko L) L Iɛ@~2) H Kh /KL3M0: )_AGo LoЧoo J KDTL1UL:VL WLooTL TL ELoTL)TL Iɛ:~$) H ELh /KLM}ǮoTLoиo TLSLo EL qJmn N 8ITDLE @I09DTET8THTThiHiI :I0  8I0LKH 8Ih K L ILKLNLULPLPLULQLRLRLSLSLS```(𸘙`@@8'?,U"R oU S0OS 4K PLzP_VT 4LzPQN}oUONiONOOPNOO PNONONOO^i  *`0%'7* PR1VLjP(բ >P[LjPRV Sؽi8PJPSx0 JłJ łƀLO iO,V:P2P P P2P}^i `}P`it0)0,04LzP_VT, P@`8 t̊8 8 Ɗ8 ýP` $i C GgLsUU >LQ@@U' RRM^V`R HSSI KS SUШTT TQPm1  41 QP 4 ?;61Ɉx(1011LQx1 111 4@`0PPN0QNNQ` HSTUVWXY1P[ 4 ,S^ViJO 4 4RQ QP 4 ? S23"'i#i LdR8#zR 4֩ 4H 'R 4h`fީ 4R2 'R2 > ? ?1 4 4`TSPRQ QTP 4 ? SU`U S > ? ?`ZZ`(PxQ ?)S`Q ?)SQ ?)S`#8i`^(8`T8TSTSTTSSiȱiLS8WmS8W F u n M u s i c ================ By BEWESOFT INTRODUCTION FunMusic is a program for simple and easy music-playing on ATARI XL/XE computer. It allows you to play a kind of music in real-time using a joystick, or a mouse from ATARI ST (strongly recommended). FunMusic doesn't require any knowledge of music-theory (only a bit of sense). All you need is a bit of patience and this manual. Beside of this main function, you can also compile the music to be used in your own programs. But FunMusic is NOT a real music-editor. If you are able to write good songs for example in MUSIC PROTRACKER 2.4 or CHAOS MUSIC COMPOSER, then you should do so - you'll get much better results. However, if you can't compose music with the "real" music-editors, FunMusic gives you a chance to create a kind of medium-quality music easily. FunMusic is Freeware - you can make copies, give them to your friends (recommended) etc., as long as no changes are done to the program. Note: If you're a musician, you'll probably find some insufficiencies in both the program and this manual. Since my knowledge of music-theory is rather weak, I had to set some things by experimenting, and I really don't know how to call these things in correct English. FunMusic was NOT written for advanced musicians. Beside of this, also my English isn't the best... WHAT'S ON THE SCREEN Now let's look at the main screen of FunMusic. The screen is divided into several windows. All functions are done by moving the cursor (the small flashing arrow) into a window and pressing the controller's button ("click"). In the upper part of your screen you can see a large grey window, that allows you to control the basic line of your music. Another four windows are below - each of these is connected to one of the four sound-generators of your computer. In these windows you'll set the instruments, the background melodies, and also the real-time playing will be done here. The main settings are at the left edge of the screen. These do affect several things - also in the other windows. MAIN SETTINGS The main settings are the small fields at the left edge of the screen. The first of them (at the top of the column) allows you to select number of the sound-channels you want to use. When you select a number less than 4, some of the sound-channel windows will disappear. The number of voices is of course limited, but you can select from more and better instruments. The second from the top is the basic tone of the whole music. Set it where you want... It's possible to match the range of used instruments better, by changing this setting. The third setting is the tempo (9 is the fastest). If you're recording a music to be compiled, it's recommended to set a slower tempo while playing in real-time (to get a better chance to click on the single tones exactly in the right time), and then change the tempo before the compilation. The next field is a small picture of a floppy-disk. If you click on this field, the main screen will disappear, and the FunMusic Compiler will begin its work. (Look at the "Compilation" part of this manual.) The last (and largest) field at the bottom of the left column shows the configuration of controllers. You can see two joysticks (or mouses), with a symbol of the I/O connector in the middle. You can connect a joystick or ATARI ST mouse into each of the connectors (the second controller is only used in the real-time playing mode, when you've selected it for some window). When you start the program, it's configured for two joysticks. If you're using mouse(s), just connect it and move a bit - the mouse should appear into the configuration automatically. But however, if you want to change the controllers, you must change the configuration yourself. To correct the config, just click on the controller-field. In the case that you can't move the cursor (because of a bad configuration), you can also change the config by pressing numbers "1" or "2" on the keyboard. It's also possible to control FunMusic from keyboard, but this is not very comfortable - it's good just for the first tries, when you've no controller handy at the moment. You should disconnect any controllers from the first port, and set it into the joystick mode. Now you can control the cursor with the keys with arrows (or the 1200XL F-keys), and click with the RETURN key. SOUND-CHANNEL WINDOWS Each sound-generator may be used for a background voice, or for the real-time played melody. To select the mode of a channel, just click on the small field at the left end of its window. You'll see a chip for a background voice, or a face with controller-number for a real-time melody. The setting is independent for each channel. The second field from left allows you to select the instrument. At the top of this small field there is a picture of a sine-wave, followed by a number and possibly a letter above the number. The number shows the selected waveform (poly-counter) - in other words the kind of sound (clean/noisy, hard/soft etc.). The letter above this number is the mode of sound-channel's clock. (No letter = 8-bit counter, "H" = 8-bit counter with 1.79MHz clock, "D" = 16-bit counter.) All you need to do is to click here, until you hear the sound you want. You must know that the scale of possible modes is affected by the other channels - only two instruments with "H" or "D" may be selected at a time, and each "D" require one channel to be removed. (So with 4 channels you can't select any "D", with 3 channels only one "D" is possible, and with 1 or 2 channels you can select from the full scale of instruments.) Below the waveform, there is the volume-indicator. It allows you to select the volume for the channel (in four steps). At the bottom of this small instrument-field, there is another selection - you can select the instrument-type ("bell" with a stroke, or "trumpet" with soft begin), and length of the sound (larger symbol = longer sound). At the top of the largest part of a Sound-channel window, you can see a line with some colorful bars. This line shows the scale of tones possible for the selected instrument. The green bar is for the best tones, blue is for a bit worse ones, and red tones are rather bad (not exact at the right, or too noisy at the left); the tones shown as a thin line (without of colorful bars) doesn't exist for that instrument. Below the line, there is another bar (yellow) - this is the scale for playing. You can move it by clicking, and so select how high the channels will play. The yellow bar may run into the thin line a little bit, but since this reduce the scale for playing, it's not recommended. For the real-time melody, you should select the green tones; for background voices also blue tones are mostly usable, if you've selected short instrument with low volume. (The red tones are just for the worst case, if you haven't too good ear for exact tuning.) On this indicator you'll see what are these "H" and "D" modes good for: "H" moves the possible scale to higher tones, and "D" gives a greatly wide scale of green tones. Below the scale-indicator bars - in the main part of a Sound-channel window - two different things may appear. When the channel is switched into the background-voice mode, you'll see the definition of background melody for that channel. Clicking on this field, you can place tones (you'll also hear them); to remove a tone, click on it again. A channel in the real-time melody mode shows a double horizontal line with green and blue bobs. When you click into this field, the real-time playing begins. The cursor(s) appear to these line(s), and you can move it only left or right. All the background voices begin to play - the currently played tones are highlighted. Also the upper Basic line window come into life, but about this I'l2      !"#$%&'()*+,-./01l talk later. Clicking on the bobs, you can play tones of your melody. (The last played tone is indicated by a large yellow bob above the line.) The green bobs are good for long and significant tones, while the blue ones are just to run-over. At the begin of each background period, a tone is played even if you didn't click. If there are more real-time melodies, some bobs may disappear sometimes to prevent collisions between the melodies. To stop the real-time playing, you should move the cursor far away to left, and click somewhere in the Main settings area. Another way to exit from the real-time playing is to press the ESC key. BASIC LINE WINDOW The grey Basic line window looks like the sound-channel windows a bit. It does control changes of the scale for playing - just try it and you'll hear what I mean... Also this window may be switched to any of the two controllers, or into automatic mode, just like the sound-channel windows (the small field at the left end). In the automatic mode, you can define the line of your music in the same way as the background melodies (clicking in the main part of the window). After placing a point in the Basic line window, the background voices will play for a while (so you'll hear the effect of your selection - It'll play till the next click, or till the whole background-period is finished). When the Basic line window is switched to a controller, the real-time playing begins once you click here. (It'll also begin when you click on the empty field second from left - the Arrow-field - this is the way how to enter the real-time playing, when you've all channels in the background mode.) In the real-time playing mode, the Basic line window become empty (when it's switched to a controller of course), and you can select the background changes by moving your controller up/down. An arrow will appear into the second field from left, showing your command; at the begin of the next background-period, the scale will be changed (and the arrow will disappear). Your background-line will be recorded into the window, so you can later use (and edit) it in the automatic mode. COMPILATION The music played in the real-time mode is allways recorded into a memory-buffer (the capacity is 64 background-periods - that's two times over the Basic-line window - later the music isn't recorded anymore). When you like the music you've just played, you can compile it to be used in your own programs. Only whole blocks will be compiled (4 background-periods each - see the vertical lines in the Basic line window). Before the compilation, you can change the tempo. This is the only thing you can change at this point - other changes have no effect to the recorded music, and some changes even erase it (all changes that affect instruments, scales, and channel-modes). To compile your music, click to the picture of a floppy-disk at the left edge of the screen. Now the colorful main screen disappears, and a common blue text-page returns for a while. You've just entered the FunMusic Compiler. Now you must enter (from keyboard) the memory-address, where the music will work in your program (more about this later), and the filename (use the DELETE key for corrections). Then, the music will be stored into the specified file (in the form of a program-module), and the main screen of FunMusic returns. While editing the address and filename, you can hear your music - exactly the same as it'll be in your program. If you want to return to the main screen (the music isn't what you expected...), just press ESC. In the Compiler, there are also two special "hot-keys": CONTROL+X allows you to reset all settings to the default (the same effect as loading the FunMusic program again), and with CONTROL+Q you can leave FunMusic and return to DOS. Both the functions contain the well-known question "Are you sure?". MUSIC IN BASIC-PROGRAMS If you want to use the music for a program in AtariBasic or TurboBasic, you'll probably place the music-module to the upper part of memory. In the FunMusic Compiler, try to type the address $9000 ($B000 for TurboBasic), but don't press RETURN and look at the ending address shown beside. When it is lower than $A000 ($C000 for TurboBasic), everything is OK. In the case that it is not lower, try to change the address to $8000 ($A000), or even $7000 ($9000). Once the ending address is OK, remember the starting address, and continue with the compilation. (If you want to start your Basic-program again after pressing the RESET-key, without of re-loading of the music module from disk, then the ending address must be lower than $9C20 ($BC20 for TurboBasic).) In your Basic-program, you must first reserve a part of memory for the music-module. The reservation must be done again when you restart the program after RESET. It looks like this:POKE 106,x : GRAPHICS y You can select any graphics mode, but the "x" value depends on the address of the music module: $7000 -> 112 $8000 -> 128 $9000 -> 144 $A000 -> 160 $B000 -> 176 (The value must be allways a multiple of 16, otherwise you may encounter problems with displaying some graphics modes.) The next step is loading of the music module into memory. There are several ways how to do this. In the TurboBasic you should type:BLOAD "D:filename" In the AtariBasic there isn't any command like this. If you're using BW-DOS, or SpartaDOS, you can type:CLOSE #1:XIO 40,#1,4,128,"D:filename" Possibly it'll work also with MYDOS, but the correct syntax for this DOS is:CLOSE #1:XIO 39,#1,7,0,"D:filename" Another method is long and slow, but works with any DOS and both the Basic versions:10 OPEN #1,4,0,"D:filename":GET #1,A:GET #1,B:IF A<255 OR B<255 THEN ? "ERROR":END20 GET #1,A:GET #1,B:PLAY=A+256*B:GET #1,A:GET #1,B:C=A+256*B30 FOR A=PLAY TO C:GET #1,B:POKE A,B:NEXT A:CLOSE #1 There are also other methods (fast and universal, with a subroutine in machine code), but the length of this manual is limited... When you've the music-module loaded in memory, you can use the commands:A=USR(address,1) ... Start the musicA=USR(address,0) ... Stop the music The "address" is the same as you've used in the FunMusic Compiler. In TurboBasic, you can type for example "$A000" just like you did in the Compiler, but in AtariBasic you must use the decimal mode: $7000 = 28672 $8000 = 32768 $9000 = 36864 $A000 = 40960 $B000 = 45056Note: The music may be started again (that is: from its begin) without of stopping it, and also stopping the music twice isn't error. When no parameter is after the address, the music will stop; any extra parametetrs will be simply ignored.For more advanced programmers: The music-module works only when the system VBI routine isn't disabled. It uses the VVBLKD vector ($224,5). The music-module works also together with other routines installed in that vector, but you can't change the address when the music is playing (stop it first). If you want to install VBI-routines with music playing, you must allways jump to the previous address (the music) at the end of your routine. In this case, the VBI-routine of music-module will not be removed when you stop the music, so don't overwrite the module! MUSIC IN ASSEMBLER The music-module is stored as a binary file. At the begin, there are a few things for you:PLAYER+0 ... The routine for BASICPLAYER+3 ... InitializationPLAYER+6 ... VBI routinePLAYER+9 ... Volume (4 bytes) You need to call the initialization first (JSR PLAYER+3), with the parameter (1=Start 0=Stop) in the register A. The VBI routine should be called (JSR PLAYER+6) 50 times in a second. At the address PLAYER+9 you'll find the volume for all 4 channels (Read only!) - for the case that you want to create a kind of equalizer-graphics. An other way is to call the player in the same way as from B34asic:MUSICON LDA #1 ;The parameter PHA LDA #0 ;High byte PHA LDA #1 ;Number of params. PHA JMP PLAYER In this case the player will install/remove its own VBI routine.6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg F u n M u s i c ================ Autor: BEWESOFT VOD FunMusic je program, kter` umo(uje snadno hr*t jednoduchou hudbu na po')ta')ch ATARI XL/XE. Ovl*d* se pomoc) joysticku nebo my&i od ATARI ST v@ele doporu'uji$. FunMusic nevy(aduje prakticky (*dn[ znalosti hudebn) teorie jen trochu citu$. Posta') trocha trp%livosti a tento n*vod. Hudbu lze tak[ kompilovat pro pou(it) ve vlastn)ch programech. Tady ale mus)m upozornit, (e FunMusic NEN opravdov` hudebn) editor. Kdo um) komponovat dobr[ melodie nap@. v MUSIC PROTRACKERu 2.4 nebo CHAOS MUSIC COMPOSERu, m%l by se toho dr(et - dos*hne mnohem lep&)ch v`sledk+. Komu to ale s "opravdov`mi" hudebn)mi editory nejde, tomu FunMusic nab)z) jednoduchou mo(nost, jak snadno vytvo@it alespo pr+m%rn[ hudebn) d)lko. FunMusic je Freeware - program je mo(n[ libovoln% kop)rovat, p@ed*vat dal&)m osob*m doporu'uji$ atd., ov&em pouze v p+vodn) podob% beze zm%n$. Pozn*mka: Hudebn)ci mo(n* najdou jak v programu, tak i v n*vodu n%jak[ nedostatky. Moje znalosti z hudebn) teorie jsou dost slab[, tak(e musel mnohde poslou(it experiment - opravdu nev)m, jak se n%kter[ z t%ch v%c) spr*vn% naz`vaj). Program FunMusic NEBYL vytvo@en pro pokro'il[ hudebn)ky. ROZD LEN OBRAZOVKY Nejd@)ve se pod)v*me na z*kladn) obrazovku. Jak vid)me, je rozd%lena na n%kolik oken. Vid)me tak[ kurzor mal* blikaj)c) &ipka$ - ve&ker[ funkce se prov*d%j) po nastaven) tohoto kurzoru na p@)slu&n` symbol stiskem tla')tka na ovlada'i tzv. kliknut)$. Naho@e vid)me velk[ &ed[ okno, kter[ ovl*d* z*kladn) linii skladby. Pod n)m jsou dal&) 'ty@i okna, kter* odpov)daj) 'ty@em zvukov`m kan*l+m po')ta'e. Tady budeme vyb)rat n*stroje, zapisovat doprovodn[ melodie, nebo hr*t. Na lev[m okraji obrazovky jsou z*kladn) parametry, kter[ maj) vliv na mnoh[ v%ci ve v&ech oknech. ZKLADN PARAMETRY Najdeme je na lev[m okraji obrazovky v podob% n%kolika men&)ch pol)'ek. Prvn) z nich shora$ ur'uje po'et zvukov`ch kan*l+, kter[ budeme pou()vat. Zvol)me-li ')slo men&) ne( 'ty@i, n%kter* z oken zvukov`ch kan*l+ zmiz). Po'et hlas+ je pak samoz@ejm% men&), roz&)@) se ov&em nab)dka n*stroj+. Na druh[m m)st% shora je z*kladn) tn - ten a si ka(d` nastav) dle libosti... N%kdy m+(e jeho zm%na pomoci k lep&)mu vyu(it) rozsahu zvolen`ch n*stroj+. T@et)m parametrem je tempo 9 je nejrychlej&)$. P@i nahr*v*n) hudby ke kompilaci doporu'uji nejprve zvolit ni(&) tempo abychom se s jednotliv`mi tny snadn%ji strefili do rytmu$, a teprve p@ed kompilac) pak nastavit definitivn) rychlost. Dal&) pol)'ko obsahuje obr*zek diskety. Pokud na ni klikneme, z*kladn) obrazovka zmiz) a rozb%hne se kompilace viz. d*le$. Posledn) a nejv%t&)$ pole v lev[m sloupci ukazuje nastaven) ovlada'+. Vid)me zde dva joysticky p@)padn% my&i$, a mezi nimi symbol I/O konektoru. Do ka(d[ho ze vstup+ lze p@ipojit bu joystick, nebo my& od ATARI ST. Druh` ovlada' se pou()v* jen v re(imu hran), pokud je pro n%kter[ z oken zvolen. Program je po sv[m spu&t%n) nastaven na dva joysticky. M*-li b`t pou(ita my&, sta') ji prost% p@ipojit do p@)slu&n[ho vstupu, a trochu s n) pohnout - m%la by se v konfiguraci objevit automaticky. Pokud ale budeme ovlada'e m%nit, mus)me se o spr*vn[ nastaven) postarat sami. Zm%nu konfigurace provedeme jednodu&e kliknut)m na p@)slu&n[ pol)'ko, a nebo - kdy( n*m &patn[ nastaven) br*n) v manipulaci s kurzorem - stisknut)m kl*vesy "1" nebo "2" na kl*vesnici. FunMusic se d* ovl*dat tak[ pomoc) kl*vesnice, to je ale velice nepohodln[ - tato mo(nost se hod) prakticky jen na orienta'n) vyzkou&en), pokud zrovna nen) po ruce (*dn` ovlada'. Nejd@)ve odpoj)me z prvn)ho konektoru cokoliv, co by tam snad bylo p@ipojeno, a pak tento vstup nastav)me na joystick. Kurzor pak lze ovl*dat kl*vesami se &ipkami nebo "F..." z 1200XL$, kliknut) se prov*d) RETURNem. OKNA ZVUKOVCH KANL Ka(d` zvukov` kan*l m+(e b`t pou(it bu pro doprovodn` hlas, nebo pro p@)mo hranou melodii. Tento v`b%r umo(uje mal[ pol)'ko na lev[m konci ka(d[ho z oken. Pro doprovodn` hlas se tam objev) integrovan` obvod, zat)mco pro melodii uvid)me mal` obli'ej s ')slem ovlada'e. Nastaven) je nez*visl[ pro ka(d` kan*l. Druh[ pol)'ko zleva slou() k v`b%ru n*stroje. V jeho horn) '*sti vid)me malou sinusovku, vedle ')slo a nad n)m n%kdy je&t% p)smeno. )slo ozna'uje zvolenou barvu zvuku poly-')ta'$, p)smeno pak vyjad@uje re(im zvukov[ho gener*toru bez p)smena = 8-bitov` ')ta', "H" = 8-bitov` ')ta' s hodinami 1.79MHz, "D" = 16-bitov` ')ta'$. V`b%r prov*d)me jednodu&e opakovan`m kliknut)m, dokud se neozve po(adovan` zvuk. Je dobr[ v%d%t, (e nab)dku n*stroj+ ovlivuje tak[ nastaven) ostatn)ch kan*l+ - sou'asn% lze zvolit jen dva n*stroje s "H" nebo "D", a ka(d[ "D" vy(aduje vypnut) jednoho dal&)ho kan*lu. Tak(e p@i 4 kan*lech se "D" ned* pou()t v+bec, p@i 3 kan*lech m+(eme zvolit jedno "D", a p@i 1 nebo 2 kan*lech je nab)dka kompletn).$ O kousek n)(e najdeme ukazatel hlasitosti, kter` n*m umo(n) zvolit hlasitost p@)slu&n[ho kan*lu ve 'ty@ech stupn)ch$. V doln) '*sti pol)'ka se pak skr`v* je&t% jedna volba - druh n*stroje "zvon" s ]derem, nebo "trumpeta" s plynul`m za'*tkem$, a d[lka dozvuku v%t&) symbol = del&) dozvuk$. Na horn)m okraji nejv%t&) '*sti okna se nach*z) vodorovn* '*ra s barevn`mi pol)'ky. Ukazuje n*m rozsah tn+ existuj)c)ch pro zvolen` n*stroj. Zelen% se zobrazuj) nejkvalitn%j&) tny, mod@e ty o tro&i'ku hor&), a 'erven[ tny jsou sp)&e mizern[ vpravo pon%kud rozlad%n[, vlevo bru'iv[$. Tenk* '*ra odpov)d* tn+m, kter[ pro dan` n*stroj neexistuj). T%sn% pod touto 'arou je dal&) podlouhl[ pol)'ko - (lut[ - kter[ zn*zoruje rozsah zvolen` pro hran). Kliknut)m ho m+(eme posouvat, a tak zvolit jak vysoko maj) jednotliv[ kan*ly hr*t. Zvolen` rozsah m+(e m)rn% p@esahovat i na tenkou '*ru, omezuje to v&ak rozsah pro hran) je lep&) se tomu vyhnout$. Pro melodii se hod) zelen[ oblasti, doprovodn[ hlasy se v%t&inou spokoj) i s modr`mi pro n*stroj s ni(&) hlasitost) a krat&)m zvukem$; 'ervenou pou(ijeme jen v nouzi pokud nejsme moc citliv) na p@esn[ lad%n)$. Tento ukazatel n*m jasn% uk*(e, k 'emu slou() ta "z*hadn*" p)smenka "H" a "D" - "H" posunuje rozsah n*stroje nahoru, a "D" d*v* velk[ mno(stv) kvalitn)ch "zelen`ch" tn+. Pod ukazatelem rozsahu - v hlavn) '*sti okna - se mohou objevit dv% r+zn[ v%ci. Slou()-li kan*l pro doprovod_`-----------`FunMusic by`BEWESOFT'98`Freeware!!!`-----------bhqFUNMUSICCOMbFUNMUSICDOCbtZFUNMUSCZCAP$]V @$ՕY]no_[r}WwwgwwW_WWWWTDDTDDDDTDTD;&&;;&s}UUUU??? p\Xdtd䠤(O@D$ @*VVVVt}UUUU[_oՕUUUUo_[WWwwWWWu}Wݙߟ_oDDDTDDD&;jjjjZZZZVVVV dv}\p<몪<VTn]Y[_ow}PPPUUUWWWWWPTTT@@TTT@@DDTT@@@@@TPDDDDDPT@@P@@TT@@P@@@T@@DDDTx}UUUUUttXTh@ y}4T4 p\T\p_www_wwWww ;@@@UUUUUU떖ת%'X&Xz}W$`WwwgwwW_WWWW_YUV{};&&;;&UUUU??? p\Xdtd䠤+UU|}PPAAAAת( 5%%5 VWuup`\XT}}WWwwWWWWݙߟ_oWWW@FG;_&;jjjj~}ZZZZVVVV d\p<몪<( % }UiUU`XTT}UUU%6 X\`pPPPUUUWWWWWPTTT@@TTT@@DDTT@@TTT@@TDDTT}TDDTDDTTDDTTUUUUU} 4T4 p\T\p_www_wwWwwwvUV}U___U}zUUyUUUU뛛}ՕUUUUUooo_[UUUUUUUoUUUUUU__[VU(OX/N4a}/v4}/F3)0f3>\}0~3\03l13>\0~3Z13&J223JV24(264 *3n4}      }      }    &un-u}sicby"%7%3/&4&reeware˿xqke_ZUPKGC?<852/,*'%#!Ĺzslf`ZUPKGC?;741DzÕ[k}v0}picU^ Y TROJFB>j;841'/,*'k%Q#V!vt=6 x  { V Pg9:d%{H}tP/r]I6%~wpic]WRMHD@<841.˿zqke_ƻ{s}mgaZUŹTOwK:630-*'$" q$Rk: hE)lWB4}ĺ{tmf`[UQLGC?<851.+)!!!!!!!!!!!!!!!!!!!!!!!Io oF!J s}G!!!!!!!!!!!K r" p!!!!!!!!!!!!!J qtF!!!!!! st}!!!!!!! stH!Kr!!!!!! u q#!!!!!}IoLQ9L78L&9L2:L=L>L[>L%=LL=L5L5L;LY=@B0/DA40xxxx0 pppp}p ,-.TUV|})*+QRS|}yz{)*+|},-.TUV@ABgghhijjkk@ /01WXY 234Z[\s;}4``5L_H ԩЍЩ Щ16ЩЩЩOЩ Э) JJJ Э)HH}Ьș2 5hhh@HH$ ԍ ԎЩzЩ8Щb6H Nhhh@H ԍЅM ԩ6 ԍh@HH} 76H Nhhh@HH 86hh@H ԍЩٍ6 ԩT ԍh@HH 76hh@HH 87H} Nhhh@HH 7$7hh@HH 8:7hh@H\74 ԍЊHH Nhhh@HH 7r7hh@HH 87}hh@H7HH >hhh@H7 ԍh@H5HH Nhhh@ ԍЍ( ԍ ԩ нн/8 ԍн3}8Щ` ԭ Ѝ Խ ԍЩ н,`RB2VF6ߠЩ}5i(E䩘ԩЩ Ѝ Щ Щ0ЩЩЍЩ@ԩԍoЩЍЍ/ԩɢ401ԎԍԎ}ԩ>/ԩЬ"#5555 \`55 \@ԩ/ԍЍ ЍЍЍЍ`h02^V}999'999Е:٩:`   }   ibiX51d5Yn8^V b: } {:( {:P : :p5葀`5i5iȩ(ȩ)?;JJB;*)H;HL;RhݑH x 1;} 1;hn;r;JJ v;w;i(i0` 7; 7;P;葀`⍎}hh$((*,0,`,,,,5i5i } $-%-;#iP`Owǩ󅀩L;55' } <Ƚ<i'ɠ`&'NOvw$%LMc$%LMd5i-5i mxC) ))D(P0J<} i(E)б`P(; < <ș `+ < +05I };8+ iP?, }p`H (08@h0I i iPL<5i}5i ʠx(Pʈ` iO},;0x `0 <55%Ȑ0 ;` ;0 :0 ;}0'L%=L< i`H)K> HpP>h0JyU>(ЖE`DDDCBBBAȠx}P(Em1807ڌȌȌȌȌ}8𖩋񖩌(L>`ȌȌȌȌUߩי}ؙٙi(L> >`LCLFLq?LCLELELnFLD4567bcde89@U:;?``i `@@Z N ? 4@@`):JJJJ;8J>8>>>ۭ)} )?$@0,@:<) )?f=D{DrD|DsD CL.D06@D6<@D06BhSE6DF}PHDPF8HPGnH>JpF>rF>КF>FLZ@LZ@  H 4 ʽD A! )}Lq CCLE 4 4 4L4  H ;C ;C ;C ;C A 4L?E^V^V ^V^V L40`QPQ}EPycFcF8怽EP`}  F F FCG#8i`Q mQ }e )łŃE)`28HLF28pLF28LF28\`D"'''H ;ChH A }HhL4PLG\%H A HhH CChLG)J)'LG)LGiH A H}hHi#i LG8# NhL4\H8P IChH A HhL4'T8PJJ]\8JJI8\ ]\ـ L}4`HK NhH 4h]L4 N {@<[ NL?E 41 4 4`ŭ8PJJ]28JJI8\}L_HH _Hh N` 4 NLHLHLHLqLlkHHHIrHzHHIAl }J Exit to DOS |K K OIl }J : Are }you sure (Y/N) ? I)Yy Nn8 K(` }J ` N qJ 6IL8I KL ? }JAddr}ess: $xxxx - $xxxx` }J ERROR - $XX Press any key...` }JFilename: D1:XXXXXXXXXXXXXXXXXXXXXXXX` OIk Ik m}J }J FunMusic Compiler }J  }J... Back to main screen ! }J+... Clear All }J}+... Exit to DOS 6I pI9 L0 L L Lo Jo L L Ko L) L Iɛ@~2) H Kh /KL3M0: )_AG}o LoЧoo J KDTL1UL:VL WLooTL TL ELoTL)TL Iɛ:~$) H ELh /KLM}ǮoT}Loиo TLSLo EL qJmn N 8ITDLE @I09DTET8THTThiHiI :I0  8I0LK}H 8Ih K L ILKLNLULPLPLULQLRLRLSLSLS```(𸘙`@@8'}?,U"R oU S0OS 4K PLzP_VT 4LzPQN}oUONiONOOPNOO PNONON}OO^i  *`0%'7* PR1VLjP(բ >P[LjPRV Sؽi8PJPS}x0 JłJ łƀLO iO,V:P2P P P2P}^i `}P`it0)0,04Lz}P_VT, P@`8 t̊8 8 Ɗ8 ýP` $i C GgLsUU >LQ}@@U' RRM^V`R HSSI KS SUШTT TQPm1  4}1 QP 4 ?;61Ɉx(1011LQx1 111 4@`0PPN0QNNQ` H}STUVWXY1P[ 4 ,S^ViJO 4 4RQ QP 4 ? S23"'}i#i LdR8#zR 4֩ 4H 'R 4h`fީ 4R2 'R2 > ? ?1 4 }4`TSPRQ QTP 4 ? SU`U S > ? ?`ZZ`(PxQ ?)S`Q ?)S}Q ?)S`#8i`^(8`T8TSTSTTSSi}ȱiLS8WmS8W hhhh U(-$%EVFVשHhVȌNVOVEVFVEVFV$Я%ЪNVOVL\ F u n M u s i c ================ By BEWESOFT INTRODUCTION FunMusic is a} program for simple and easy music-playing on ATARI XL/XE computer. It allows you to play a kind of music in real-time using }a joystick, or a mouse from ATARI ST (strongly recommended). FunMusic doesn't require any knowledge of music-theory (only a b}it of sense). All you need is a bit of patience and this manual. Beside of this main function, you can also compile the mus}ic to be used in your own programs. But FunMusic is NOT a real music-editor. If you are able to write good songs for example }in MUSIC PROTRACKER 2.4 or CHAOS MUSIC COMPOSER, then you should do so - you'll get much better results. However, if you can'}t compose music with the "real" music-editors, FunMusic gives you a chance to create a kind of medium-quality music easily.} FunMusic is Freeware - you can make copies, give them to your friends (recommended) etc., as long as no changes are done to} the program. Note: If you're a musician, you'll probably find some insufficiencies in both the program and this manual. S}ince my knowledge of music-theory is rather weak, I had to set some things by experimenting, and I really don't know how to c}all these things in correct English. FunMusic was NOT written for advanced musicians. Beside of this, also my English isn't t}he best... WHAT'S ON THE SCREEN Now let's look at the main screen of FunMusic. The screen is divided into several} windows. All functions are done by moving the cursor (the small flashing arrow) into a window and pressing the controller's }button ("click"). In the upper part of your screen you can see a large grey window, that allows you to control the basic li}ne of your music. Another four windows are below - each of these is connected to one of the four sound-generators of your c}omputer. In these windows you'll set the instruments, the background melodies, and also the real-time playing will be done he}re. The main settings are at the left edge of the screen. These do affect several things - also in the other windows. } MAIN SETTINGS The main settings are the small fields at the left edge of the screen. The first of them (at the top of }the column) allows you to select number of the sound-channels you want to use. When you select a number less than 4, some of }the sound-channel windows will disappear. The number of voices is of course limited, but you can select from more and better }instruments. The second from the top is the basic tone of the whole music. Set it where you want... It's possible to match} the range of used instruments better, by changing this setting. The third setting is the tempo (9 is the fastest). If you}'re recording a music to be compiled, it's recommended to set a slower tempo while playing in real-time (to get a better chan}ce to click on the single tones exactly in the right time), and then change the tempo before the compilation. The next fie}ld is a small picture of a floppy-disk. If you click on this field, the main screen will disappear, and the FunMusic Compiler} will begin its work. (Look at the "Compilation" part of this manual.) The last (and largest) field at the bottom of the l}eft column shows the configuration of controllers. You can see two joysticks (or mouses), with a symbol of the I/O connector }in the middle. You can connect a joystick or ATARI ST mouse into each of the connectors (the second controller is only used i}n the real-time playing mode, when you've selected it for some window). When you start the program, it's configured for two} joysticks. If you're using mouse(s), just connect it and move a bit - the mouse should appear into the configuration automat}ically. But however, if you want to change the controllers, you must change the configuration yourself. To correct the config}, just click on the controller-field. In the case that you can't move the cursor (because of a bad configuration), you can al}so change the config by pressing numbers "1" or "2" on the keyboard. It's also possible to control FunMusic from keyboard, }but this is not very comfortable - it's good just for the first tries, when you've no controller handy at the moment. You sho}uld disconnect any controllers from the first port, and set it into the joystick mode. Now you can control the cursor with th}e keys with arrows (or the 1200XL F-keys), and click with the RETURN key. SOUND-CHANNEL WINDOWS Each sound-genera}tor may be used for a background voice, or for the real-time played melody. To select the mode of a channel, just click on th}e small field at the left end of its window. You'll see a chip for a background voice, or a face with controller-number for a} real-time melody. The setting is independent for each channel. The second field from left allows you to select the instru}ment. At the top of this small field there is a picture of a sine-wave, followed by a number and possibly a letter above the }number. The number shows the selected waveform (poly-counter) - in other words the kind of sound (clean/noisy, hard/soft etc.}). The letter above this number is the mode of sound-channel's clock. (No letter = 8-bit counter, "H" = 8-bit counter with 1.}79MHz clock, "D" = 16-bit counter.) All you need to do is to click here, until you hear the sound you want. You must know t}hat the scale of possible modes is affected by the other channels - only two instruments with "H" or "D" may be selected at a} time, and each "D" require one channel to be removed. (So with 4 channels you can't select any "D", with 3 channels only one} "D" is possible, and with 1 or 2 channels you can select from the full scale of instruments.) Below the waveform, there is} the volume-indicator. It allows you to select the volume for the channel (in four steps). At the bottom of this small inst}rument-field, there is another selection - you can select the instrument-type ("bell" with a stroke, or "trumpet" with soft b }egin), and length of the sound (larger symbol = longer sound). At the top of the largest part of a Sound-channel window, y }ou can see a line with some colorful bars. This line shows the scale of tones possible for the selected instrument. The green } bar is for the best tones, blue is for a bit worse ones, and red tones are rather bad (not exact at the right, or too noisy  }at the left); the tones shown as a thin line (without of colorful bars) doesn't exist for that instrument. Below the line,  }there is another bar (yellow) - this is the scale for playing. You can move it by clicking, and so select how high the channe}ls will play. The yellow bar may run into the thin line a little bit, but since this reduce the scale for playing, it's not r}ecommended. For the real-time melody, you should select the green tones; for background voices also blue tones are mostly usa}ble, if you've selected short instrument with low volume. (The red tones are just for the worst case, if you haven't too good} ear for exact tuning.) On this indicator you'll see what are these "H" and "D" modes good for: "H" moves the possible scal}e to higher tones, and "D" gives a greatly wide scale of green tones. Below the scale-indicator bars - in the main part of} a Sound-channel window - two different things may appear. When the channel is switched into the background-voice mode, you}'ll see the definition of background melody for that channel. Clicking on this field, you can place tones (you'll also hear t}hem); to remove a tone, click on it again. A channel in the real-time melody mode shows a double horizontal line with gree}n and blue bobs. When you click into this field, the real-time playing begins. The cursor(s) appear to these line(s), and you} can move it only left or right. All the background voices begin to play - the currently played tones are highlighted. Also t}he upper Basic line window come into life, but about this I'll talk later. Clicking on the bobs, you can play tones of your} melody. (The last played tone is indicated by a large yellow bob above the line.) The green bobs are good for long and signi}ficant tones, while the blue ones are just to run-over. At the begin of each background period, a tone is played even if you }didn't click. If there are more real-time melodies, some bobs may disappear sometimes to prevent collisions between the melod}ies. To stop the real-time playing, you should move the cursor far away to left, and click somewhere in the Main settings a}rea. Another way to exit from the real-time playing is to press the ESC key. BASIC LINE WINDOW The grey Basic lin}e window looks like the sound-channel windows a bit. It does control changes of the scale for playing - just try it and you'l}l hear what I mean... Also this window may be switched to any of the two controllers, or into automatic mode, just like the s }ound-channel windows (the small field at the left end). In the automatic mode, you can define the line of your music in the!} same way as the background melodies (clicking in the main part of the window). After placing a point in the Basic line windo"}w, the background voices will play for a while (so you'll hear the effect of your selection - It'll play till the next click,#} or till the whole background-period is finished). When the Basic line window is switched to a controller, the real-time pl$}aying begins once you click here. (It'll also begin when you click on the empty field second from left - the Arrow-field - th%}is is the way how to enter the real-time playing, when you've all channels in the background mode.) In the real-time playi&}ng mode, the Basic line window become empty (when it's switched to a controller of course), and you can select the background'} changes by moving your controller up/down. An arrow will appear into the second field from left, showing your command; at th(}e begin of the next background-period, the scale will be changed (and the arrow will disappear). Your background-line will be)} recorded into the window, so you can later use (and edit) it in the automatic mode. COMPILATION The music played*} in the real-time mode is allways recorded into a memory-buffer (the capacity is 64 background-periods - that's two times ove+}r the Basic-line window - later the music isn't recorded anymore). When you like the music you've just played, you can compil,}e it to be used in your own programs. Only whole blocks will be compiled (4 background-periods each - see the vertical lines -}in the Basic line window). Before the compilation, you can change the tempo. This is the only thing you can change at this .}point - other changes have no effect to the recorded music, and some changes even erase it (all changes that affect instrumen/}ts, scales, and channel-modes). To compile your music, click to the picture of a floppy-disk at the left edge of the scree0}n. Now the colorful main screen disappears, and a common blue text-page returns for a while. You've just entered the FunMusic1} Compiler. Now you must enter (from keyboard) the memory-address, where the music will work in your program (more about thi2}s later), and the filename (use the DELETE key for corrections). Then, the music will be stored into the specified file (in t3}he form of a program-module), and the main screen of FunMusic returns. While editing the address and filename, you can hear4} your music - exactly the same as it'll be in your program. If you want to return to the main screen (the music isn't what yo5}u expected...), just press ESC. In the Compiler, there are also two special "hot-keys": CONTROL+X allows you to reset all s6}ettings to the default (the same effect as loading the FunMusic program again), and with CONTROL+Q you can leave FunMusic an7}d return to DOS. Both the functions contain the well-known question "Are you sure?". MUSIC IN BASIC-PROGRAMS If y8}ou want to use the music for a program in AtariBasic or TurboBasic, you'll probably place the music-module to the upper part 9}of memory. In the FunMusic Compiler, try to type the address $9000 ($B000 for TurboBasic), but don't press RETURN and look :}at the ending address shown beside. When it is lower than $A000 ($C000 for TurboBasic), everything is OK. In the case that it;} is not lower, try to change the address to $8000 ($A000), or even $7000 ($9000). Once the ending address is OK, remember the<} starting address, and continue with the compilation. (If you want to start your Basic-program again after pressing the RESET=}-key, without of re-loading of the music module from disk, then the ending address must be lower than $9C20 ($BC20 for TurboB>}asic).) In your Basic-program, you must first reserve a part of memory for the music-module. The reservation must be done ?}again when you restart the program after RESET. It looks like this:POKE 106,x : GRAPHICS y You can select any graphics m@}ode, but the "x" value depends on the address of the music module: $7000 -> 112 $8000 -> 128 $9000 -> 144 $A}A000 -> 160 $B000 -> 176 (The value must be allways a multiple of 16, otherwise you may encounter problems with displB}aying some graphics modes.) The next step is loading of the music module into memory. There are several ways how to do thiC}s. In the TurboBasic you should type:BLOAD "D:filename" In the AtariBasic there isn't any command like this. If you're uD}sing BW-DOS, or SpartaDOS, you can type:CLOSE #1:XIO 40,#1,4,128,"D:filename" Possibly it'll work also with MYDOS, but tE}he correct syntax for this DOS is:CLOSE #1:XIO 39,#1,7,0,"D:filename" Another method is long and slow, but works with anF}y DOS and both the Basic versions:10 OPEN #1,4,0,"D:filename":GET #1,A:GET #1,B:IF A<255 OR B<255 THEN ? "ERROR":END20 GETG} #1,A:GET #1,B:PLAY=A+256*B:GET #1,A:GET #1,B:C=A+256*B30 FOR A=PLAY TO C:GET #1,B:POKE A,B:NEXT A:CLOSE #1 There are alsH}o other methods (fast and universal, with a subroutine in machine code), but the length of this manual is limited... When I}you've the music-module loaded in memory, you can use the commands:A=USR(address,1) ... Start the musicA=USR(address,0) ..J}. Stop the music The "address" is the same as you've used in the FunMusic Compiler. In TurboBasic, you can type for examplK}e "$A000" just like you did in the Compiler, but in AtariBasic you must use the decimal mode: $7000 = 28672 $8000 = 3276L}8 $9000 = 36864 $A000 = 40960 $B000 = 45056Note: The music may be started again (that is: from its begin) without ofM} stopping it, and also stopping the music twice isn't error. When no parameter is after the address, the music will stop; anyN} extra parametetrs will be simply ignored.For more advanced programmers: The music-module works only when the system VBI roO}utine isn't disabled. It uses the VVBLKD vector ($224,5). The music-module works also together with other routines installed P}in that vector, but you can't change the address when the music is playing (stop it first). If you want to install VBI-routQ}ines with music playing, you must allways jump to the previous address (the music) at the end of your routine. In this case, R}the VBI-routine of music-module will not be removed when you stop the music, so don't overwrite the module! MUSIC INS} ASSEMBLER The music-module is stored as a binary file. At the begin, there are a few things for you:PLAYER+0 ... The roT}utine for BASICPLAYER+3 ... InitializationPLAYER+6 ... VBI routinePLAYER+9 ... Volume (4 bytes) You need to call the iU}nitialization first (JSR PLAYER+3), with the parameter (1=Start 0=Stop) in the register A. The VBI routine should be called (V}JSR PLAYER+6) 50 times in a second. At the address PLAYER+9 you'll find the volume for all 4 channels (Read only!) - for the W}case that you want to create a kind of equalizer-graphics. An other way is to call the player in the same way as from BasiX}c:MUSICON LDA #1 ;The parameter PHA LDA #0 ;High byte PHA LDA #1 ;Number of paraY}ms. PHA JMP PLAYER In this case the player will install/remove its own VBI routine. ;Number of paral F u n M u s i c ================ Autor: BEWESOFT VOD FunMusic je program[}, kter` umo(uje snadno hr*t jednoduchou hudbu na po')ta')ch ATARI XL/XE. Ovl*d* se pomoc) joysticku nebo my&i od ATARI ST v\}@ele doporu'uji$. FunMusic nevy(aduje prakticky (*dn[ znalosti hudebn) teorie jen trochu citu$. Posta') trocha trp%livosti a]} tento n*vod. Hudbu lze tak[ kompilovat pro pou(it) ve vlastn)ch programech. Tady ale mus)m upozornit, (e FunMusic NEN opr^}avdov` hudebn) editor. Kdo um) komponovat dobr[ melodie nap@. v MUSIC PROTRACKERu 2.4 nebo CHAOS MUSIC COMPOSERu, m%l by se t_}oho dr(et - dos*hne mnohem lep&)ch v`sledk+. Komu to ale s "opravdov`mi" hudebn)mi editory nejde, tomu FunMusic nab)z) jednod`}uchou mo(nost, jak snadno vytvo@it alespo pr+m%rn[ hudebn) d)lko. FunMusic je Freeware - program je mo(n[ libovoln% kop)ra}ovat, p@ed*vat dal&)m osob*m doporu'uji$ atd., ov&em pouze v p+vodn) podob% beze zm%n$. Pozn*mka: Hudebn)ci mo(n* najdoub} jak v programu, tak i v n*vodu n%jak[ nedostatky. Moje znalosti z hudebn) teorie jsou dost slab[, tak(e musel mnohde poslou(c}it experiment - opravdu nev)m, jak se n%kter[ z t%ch v%c) spr*vn% naz`vaj). Program FunMusic NEBYL vytvo@en pro pokro'il[ hudd}ebn)ky. ROZD LEN OBRAZOVKY Nejd@)ve se pod)v*me na z*kladn) obrazovku. Jak vid)me, je rozd%lena na n%kolik oken.e} Vid)me tak[ kurzor mal* blikaj)c) &ipka$ - ve&ker[ funkce se prov*d%j) po nastaven) tohoto kurzoru na p@)slu&n` symbol stisf}kem tla')tka na ovlada'i tzv. kliknut)$. Naho@e vid)me velk[ &ed[ okno, kter[ ovl*d* z*kladn) linii skladby. Pod n)m jsou g}dal&) 'ty@i okna, kter* odpov)daj) 'ty@em zvukov`m kan*l+m po')ta'e. Tady budeme vyb)rat n*stroje, zapisovat doprovodn[ melodh}ie, nebo hr*t. Na lev[m okraji obrazovky jsou z*kladn) parametry, kter[ maj) vliv na mnoh[ v%ci ve v&ech oknech. Zi}KLADN PARAMETRY Najdeme je na lev[m okraji obrazovky v podob% n%kolika men&)ch pol)'ek. Prvn) z nich shora$ ur'uje po'ej}t zvukov`ch kan*l+, kter[ budeme pou()vat. Zvol)me-li ')slo men&) ne( 'ty@i, n%kter* z oken zvukov`ch kan*l+ zmiz). Po'et hlak}s+ je pak samoz@ejm% men&), roz&)@) se ov&em nab)dka n*stroj+. Na druh[m m)st% shora je z*kladn) tn - ten a si ka(d` nasl}tav) dle libosti... N%kdy m+(e jeho zm%na pomoci k lep&)mu vyu(it) rozsahu zvolen`ch n*stroj+. T@et)m parametrem je tempo m}9 je nejrychlej&)$. P@i nahr*v*n) hudby ke kompilaci doporu'uji nejprve zvolit ni(&) tempo abychom se s jednotliv`mi tny sn}nadn%ji strefili do rytmu$, a teprve p@ed kompilac) pak nastavit definitivn) rychlost. Dal&) pol)'ko obsahuje obr*zek disko}ety. Pokud na ni klikneme, z*kladn) obrazovka zmiz) a rozb%hne se kompilace viz. d*le$. Posledn) a nejv%t&)$ pole v lev[p}m sloupci ukazuje nastaven) ovlada'+. Vid)me zde dva joysticky p@)padn% my&i$, a mezi nimi symbol I/O konektoru. Do ka(d[hq}o ze vstup+ lze p@ipojit bu joystick, nebo my& od ATARI ST. Druh` ovlada' se pou()v* jen v re(imu hran), pokud je pro n%kterr}[ z oken zvolen. Program je po sv[m spu&t%n) nastaven na dva joysticky. M*-li b`t pou(ita my&, sta') ji prost% p@ipojit do s}p@)slu&n[ho vstupu, a trochu s n) pohnout - m%la by se v konfiguraci objevit automaticky. Pokud ale budeme ovlada'e m%nit, mut}s)me se o spr*vn[ nastaven) postarat sami. Zm%nu konfigurace provedeme jednodu&e kliknut)m na p@)slu&n[ pol)'ko, a nebo - kdyu}( n*m &patn[ nastaven) br*n) v manipulaci s kurzorem - stisknut)m kl*vesy "1" nebo "2" na kl*vesnici. FunMusic se d* ovl*dav}t tak[ pomoc) kl*vesnice, to je ale velice nepohodln[ - tato mo(nost se hod) prakticky jen na orienta'n) vyzkou&en), pokud zrw}ovna nen) po ruce (*dn` ovlada'. Nejd@)ve odpoj)me z prvn)ho konektoru cokoliv, co by tam snad bylo p@ipojeno, a pak tento vsx}tup nastav)me na joystick. Kurzor pak lze ovl*dat kl*vesami se &ipkami nebo "F..." z 1200XL$, kliknut) se prov*d) RETURNem.y} OKNA ZVUKOVCH KANL Ka(d` zvukov` kan*l m+(e b`t pou(it bu pro doprovodn` hlas, nebo pro p@)mo hranou melodii.z} Tento v`b%r umo(uje mal[ pol)'ko na lev[m konci ka(d[ho z oken. Pro doprovodn` hlas se tam objev) integrovan` obvod, zat)mc{}o pro melodii uvid)me mal` obli'ej s ')slem ovlada'e. Nastaven) je nez*visl[ pro ka(d` kan*l. Druh[ pol)'ko zleva slou() k|} v`b%ru n*stroje. V jeho horn) '*sti vid)me malou sinusovku, vedle ')slo a nad n)m n%kdy je&t% p)smeno. )slo ozna'uje zvolen}}ou barvu zvuku poly-')ta'$, p)smeno pak vyjad@uje re(im zvukov[ho gener*toru bez p)smena = 8-bitov` ')ta', "H" = 8-bitov` '~})ta' s hodinami 1.79MHz, "D" = 16-bitov` ')ta'$. V`b%r prov*d)me jednodu&e opakovan`m kliknut)m, dokud se neozve po(adovan`} zvuk. Je dobr[ v%d%t, (e nab)dku n*stroj+ ovlivuje tak[ nastaven) ostatn)ch kan*l+ - sou'asn% lze zvolit jen dva n*stroje s} "H" nebo "D", a ka(d[ "D" vy(aduje vypnut) jednoho dal&)ho kan*lu. Tak(e p@i 4 kan*lech se "D" ned* pou()t v+bec, p@i 3 kan}*lech m+(eme zvolit jedno "D", a p@i 1 nebo 2 kan*lech je nab)dka kompletn).$ O kousek n)(e najdeme ukazatel hlasitosti, kt}er` n*m umo(n) zvolit hlasitost p@)slu&n[ho kan*lu ve 'ty@ech stupn)ch$. V doln) '*sti pol)'ka se pak skr`v* je&t% jedna v}olba - druh n*stroje "zvon" s ]derem, nebo "trumpeta" s plynul`m za'*tkem$, a d[lka dozvuku v%t&) symbol = del&) dozvuk$.} Na horn)m okraji nejv%t&) '*sti okna se nach*z) vodorovn* '*ra s barevn`mi pol)'ky. Ukazuje n*m rozsah tn+ existuj)c)ch pr}o zvolen` n*stroj. Zelen% se zobrazuj) nejkvalitn%j&) tny, mod@e ty o tro&i'ku hor&), a 'erven[ tny jsou sp)&e mizern[ vpr}avo pon%kud rozlad%n[, vlevo bru'iv[$. Tenk* '*ra odpov)d* tn+m, kter[ pro dan` n*stroj neexistuj). T%sn% pod touto 'arou }je dal&) podlouhl[ pol)'ko - (lut[ - kter[ zn*zoruje rozsah zvolen` pro hran). Kliknut)m ho m+(eme posouvat, a tak zvolit ja}k vysoko maj) jednotliv[ kan*ly hr*t. Zvolen` rozsah m+(e m)rn% p@esahovat i na tenkou '*ru, omezuje to v&ak rozsah pro hran)} je lep&) se tomu vyhnout$. Pro melodii se hod) zelen[ oblasti, doprovodn[ hlasy se v%t&inou spokoj) i s modr`mi pro n*stro}j s ni(&) hlasitost) a krat&)m zvukem$; 'ervenou pou(ijeme jen v nouzi pokud nejsme moc citliv) na p@esn[ lad%n)$. Tento u}kazatel n*m jasn% uk*(e, k 'emu slou() ta "z*hadn*" p)smenka "H" a "D" - "H" posunuje rozsah n*stroje nahoru, a "D" d*v* velk}[ mno(stv) kvalitn)ch "zelen`ch" tn+. Pod ukazatelem rozsahu - v hlavn) '*sti okna - se mohou objevit dv% r+zn[ v%ci. Slo}u()-li kan*l pro doprovodn` hlas, objev) se definice doprovodn[ melodie. Kliknut)m m+(eme zapisovat nov[ tny kter[ rovnou t}ak[ sly&)me$; chceme-li tn zru&it, klikneme na n%j znovu. Kan*l pro melodii n*m uk*(e dvojitou vodorovnou '*ru se zelen`m}i a modr`mi te'kami. Pokud sem klikneme, p@ejdeme do re(imu hran). Na zm)n%n[ '*@e ev. '*r*ch, je-li p@)mo hran`ch hlas+ v)c}e$ se objev) kurzor kurzory$, kter`m lze pohybovat pouze vodorovn%. Doprovodn[ hlasy za'nou hr*t, p@i'em( pr*v% hran[ tny j}sou zv`razn%ny. Tak[ horn) okno z*kladn) linie$ o(ivne - o tom pozd%ji. Kliknut)m na jednotliv[ te'ky te m+(eme hr*t svou} melodii p@edchoz) tn n*m v(dy ukazuje v%t&) (lut* te'ka nad 'arou$. Zelen[ te'ky jsou vhodn[ pro dlouh[ a d+le(it[ tny, z}at)mco modr[ slou() jen jako p@echodov[. Na za'*tku ka(d[ho taktu program zahraje tn i v p@)pad%, (e ke kliknut) nedo&lo. Po}kud je p@)mo hran`ch melodi) v)ce, n%kter[ te'ky 'as od 'asu miz), aby tak zabr*nily koliz)m mezi melodiemi. Re(im hran) op}ust)me bu kliknut)m daleko na lev[ stran% kdesi v prostoru z*kladn)ch parametr+$, nebo stisknut)m kl*vesy ESC. OKN}O ZKLADN LINIE ed[ okno z*kladn) linie se trochu podob* okn+m zvukov`ch kan*l+. Ovl*d* zm%ny doprovodn`ch akord+ - kdo }nev), co m*m na mysli, a si to vyzkou&)... Tak[ tohle okno se d* v mal[m pol)'ku na lev[m konci p@epnout bu na n%kter` z ov}lada'+, nebo do automatick[ho re(imu. V automatick[m re(imu zapisujeme linii stejn`m zp+sobem, jako jsme jinde sestavovali }doprovodn[ melodie - kliknut)m um)st)me zna'ku, druh`m ji zru&)me. Po jej)m um)st%n) budou chvilku hr*t doprovodn[ hlasy, ab}ychom sly&eli v`sledek proveden[ volby. Potrv* to do dal&)ho kliknut), nebo do konce taktu.$ Pokud je okno p@epnut[ na n%kt}er` z ovlada'+, kliknut)m p@ejdeme do re(imu hran) stejn% tak i p@i kliknut) na druh[ pol)'ko zleva prostor pro ipku$ - ta}k p@ech*z)me do re(imu hran), jestli(e m*me v&echny kan*ly p@epnut[ na doprovodn[ hlasy$. Je-li okno z*kladn) linie v ru'n})m re(imu, na za'*tku hran) se vypr*zdn). Zm%ny doprovodu prov*d)me pohybem ovlada'e nahoru a dol+. P@i tom se ve druh[m pol)}'ku zleva objev) ipka potvrzuj)c) povel$; na za'*tku dal&)ho taktu se podle toho pozm%n) doprovod a ipka zmiz). Doprovodn*} linie se zaznamen*v* do horn)ho okna, kde ji lze pozd%ji pou()t i upravovat$ v automatick[m re(imu. KOMPILACE V}&echno, co zazn) v re(imu hran), se automaticky ukl*d* do pam%ti po')ta'e. Kapacita tohoto z*znamu je 64 takt+ - to je dvakr}*t cel[ okno z*kladn) linie - pozd%ji se ji( hudba neukl*d*.$ Pokud se n*m l)b) melodie, kterou jsme pr*v% dohr*li, m+(eme ji} zkompilovat pro pou(it) ve vlastn)ch programech. Kompiluj) se v(dy pouze cel[ bloky po 'ty@ech taktech svisl[ '*ry v horn)m} okn%$. P@ed kompilac) m+(eme p@)padn% je&t% upravit tempo. To je v tuto chv)li jedin[, co se d* zm%nit - jin[ zm%ny nemaj)} na z*znam bu (*dn` vliv, nebo ho zcela zru&) zm%ny t`kaj)c) se n*stroj+, rozsah+ a re(imu zvukov`ch kan*l+$. Kompilaci }zah*j)me kliknut)m na symbol diskety na lev[ stran%. M)sto r+znobarevn[ z*kladn) obrazovky se n*m objev) norm*ln) modr* texto}v* str*nka a rozb%hne se kompil*tor. Tady je t@eba zadat z kl*vesnice$ adresu v pam%ti, na kter[ hudebn) modul pob%() v na}&em programu viz. t[( d*le$, a n*zev souboru. Opravy prov*d)me kl*vesou DELETE.$ Melodie se ulo() do ur'en[ho souboru jako }hotov` programov` modul, a pak se vr*t) z*kladn) obrazovka FunMusic. B%hem editace adresy a n*zvu souboru po')ta' p@ehr*v* }zaznamenanou hudbu - p@esn% tak, jak bude nakonec zn)t v na&em programu. Pokud nejsme spokojeni, m+(eme se vr*tit k z*kladn) }obrazovce kl*vesou ESC. V kompil*toru m*me k dispozici je&t% dv% speci*ln) kombinace: CONTROLX vrac) v&echny parametry do }z*kladn)ho stavu jako by byl cel` program spu&t%n znovu$, a CONTROLQ slou() k opu&t%n) programu n*vrat do DOSu$. Ob% funkc}e maj) je&t% bezpe'nostn) dotaz. HUDBA V BASICu P@i pou(it) hudby v Basicov`ch programech obvykle d*v*me hudebn) }modul do horn) '*sti pam%ti. V kompil*toru proto zkus)me zadat adresu 9000 pro TurboBasic B000$, zat)m v&ak nema'k*me RETU}RN, ale zkontrolujeme koncovou adresu vedle. Pokud je ni(&) ne( A000 pro TurboBasic C000$, m+(eme b`t spokojeni. V opa'n[m} p@)pad% vyzkou&)me adresu 8000 A000$, nebo dokonce 7000 9000$. Kdy( koncov* adresa vyhovuje, zap)&eme si pou(itou po'*}te'n) adresu, a m+(eme pokra'ovat zad*n)m n*zvu atd. Pokud chceme Basicov` program po stisknut) RESETu znovu spou&t%t bez op}akovan[ho na')t*n) hudebn)ho modulu z diskety, mus) b`t koncov* adresa ni(&) ne( 9C20 pro TurboBasic BC20$.$ V Basicov[}m programu mus)me nejd@)ve vyhradit pot@ebnou '*st pam%ti pro hudebn) modul co( je t@eba opakovat v(dy po stisknut) RESETu$.} Nap@)klad takto:POKE 106,x : GRAPHICS y Grafick` re(im m+(e b`t kter`koliv, hodnota "x" ov&em z*vis) na adrese hudebn)h}o modulu: 7000 -> 112 8000 -> 128 9000 -> 144 A000 -> 160 B000 -> 176 V(dy se mus) jednat o n}*sobek &estn*cti, jinak se budou n%kter[ grafick[ re(imy zobrazovat chybn%.$ Dal&)m krokem je zaveden) hudebn)ho modulu do} pam%ti, co( lze prov[st n%kolika zp+soby. V TurboBasicu by m%l b`t pou(it p@)kaz:BLOAD "D:n*zev" V norm*ln)m AtariBasic}u takov` p@)kaz bohu(el nen). Pokud pou()v*me BW-DOS nebo SpartaDOS, m+(eme ps*t:CLOSE #1:XIO 40,#1,4,128,"D:n*zev" V%t&}inou to funguje i pro MYDOS, form*ln% spr*vn` z*pis je v&ak pod MYDOSem trochu odli&n`;CLOSE #1:XIO 39,#1,7,0,"D:n*zev" }Dal&) mo(nost) je 'ist% Basicov[ @e&en). Je sice dlouh[ a pomal[, funguje v&ak s ka(d`m DOSem a pod ob%ma verzemi Basicu:10} OPEN #1,4,0,"D:n*zev":GET #1,A:GET #1,B:IF A<255 OR B<255 THEN ? "CHYBA":END20 GET #1,A:GET #1,B:PLAY=A256B:GET #1,A:GET }#1,B:C=A256B30 FOR A=PLAY TO C:GET #1,B:POKE A,B:NEXT A:CLOSE #1 Existuj) samoz@ejm% i jin[ mo(nosti rychl[ a univerz*}ln), s pou(it)m podprogram+ ve strojov[m kdu$, to u( ale jde nad r*mec tohoto n*vodu. Kdy( m*me hudebn) modul zaveden` v }pam%ti, m+(eme pou()vat n*sleduj)c) p@)kazy:A=USRadresa,1$ ... Spu&t%n) hudbyA=USRadresa,0$ ... Zastaven) hudby Pou(i}t* "adresa" bude samoz@ejm% stejn*, jako p@i kompilaci. V TurboBasicu m+(eme zapsat rovnou nap@. "A000" jako v kompil*toru$}, pro AtariBasic v&ak mus)me adresu p@ev[st do des)tkov[ soustavy: 7000 = 28672 8000 = 32768 9000 = 36864 A000 }= 40960 B000 = 45056 Pozn*mka: Opakovan[ spu&t%n) hudby t.j. od za'*tku$ bez p@edchoz)ho zastaven) je p@)pustn[, podob}n% ani opakovan[ zastaven) nen) chybou. Jestli(e chyb) parametr, hudba se zastav), p@)padn[ parametry nav)c se ignoruj). P}ro pokro'ilej&) program*tory: Hudebn) modul pou()v* p@eru&en) VBI - vektor VVBLKD 224,5$ - kter[ samoz@ejm% nesm) b`t u(iva}telsk`m programem zak*zan[. Spolupr*ce s jin`mi rutinami, kter[ pou()vaj) zm)n%n` vektor, je mo(n*, pokud jsou instalov*ny p@}ed spu&t%n)m hudby, a adresa se nem%n) a( do jej)ho zastaven). Jestli(e m* b`t n%jak* VBI-rutina instalov*na p@i b%()c) hudb%}, mus) na sv[m konci zajistit skok na p+vodn) adresu hudba$. V tomto p@)pad% se p@i zastaven) hudby p@ehr*vac) rutina z VBI }neodstran) - hudebn) modul pak nelze ni')m p@epsat! HUDBA V ASSEMBLERU Hudebn) modul je ulo(en jako norm*ln) bin*}rn) segmentovan` soubor. Na za'*tku nejdeme n%kolik d+le(it`ch adres:PLAYER0 ... Rutina pro BASICPLAYER3 ... Inicializac}ePLAYER6 ... Rutina VBIPLAYER9 ... Hlasitost 4 byte$ Nejd@)ve zavol*me inicializaci JSR PLAYER3$, p@i'em( parametr} 1=Start 0=Stop$ ulo()me do registru A. Rutinu VBI je t@eba volat JSR PLAYER6$ vcelku libovoln`m zp+sobem 50x za vte@inu. }Na adrese PLAYER9 najdeme v(dy moment*ln) hlasitost v&ech 'ty@ kan*l+ nem%nit!$, co( se m+(e hodit pro n%jak[ grafick[ vyj*}d@en). Jinou mo(nost) je volat modul stejn%, jako z Basicu:MUSICON LDA #1 ;Parametr PHA LDA #0 ;}Horn) byte$ PHA LDA #1 ;Po'et parametr+ PHA JMP PLAYER V tomto p@)pad% p@ehr*va' na}instaluje svoji vlastn) rutinu do p@eru&en) VBI.arametr+ PHA JMP PLAYER V tomto p@)pad% p@ehr*va' na3IOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4n` hlas, objev) se definice doprovodn[ melodie. Kliknut)m m+(eme zapisovat nov[ tny kter[ rovnou tak[ sly&)me$; chceme-li tn zru&it, klikneme na n%j znovu. Kan*l pro melodii n*m uk*(e dvojitou vodorovnou '*ru se zelen`mi a modr`mi te'kami. Pokud sem klikneme, p@ejdeme do re(imu hran). Na zm)n%n[ '*@e ev. '*r*ch, je-li p@)mo hran`ch hlas+ v)ce$ se objev) kurzor kurzory$, kter`m lze pohybovat pouze vodorovn%. Doprovodn[ hlasy za'nou hr*t, p@i'em( pr*v% hran[ tny jsou zv`razn%ny. Tak[ horn) okno z*kladn) linie$ o(ivne - o tom pozd%ji. Kliknut)m na jednotliv[ te'ky te m+(eme hr*t svou melodii p@edchoz) tn n*m v(dy ukazuje v%t&) (lut* te'ka nad 'arou$. Zelen[ te'ky jsou vhodn[ pro dlouh[ a d+le(it[ tny, zat)mco modr[ slou() jen jako p@echodov[. Na za'*tku ka(d[ho taktu program zahraje tn i v p@)pad%, (e ke kliknut) nedo&lo. Pokud je p@)mo hran`ch melodi) v)ce, n%kter[ te'ky 'as od 'asu miz), aby tak zabr*nily koliz)m mezi melodiemi. Re(im hran) opust)me bu kliknut)m daleko na lev[ stran% kdesi v prostoru z*kladn)ch parametr+$, nebo stisknut)m kl*vesy ESC. OKNO ZKLADN LINIE ed[ okno z*kladn) linie se trochu podob* okn+m zvukov`ch kan*l+. Ovl*d* zm%ny doprovodn`ch akord+ - kdo nev), co m*m na mysli, a si to vyzkou&)... Tak[ tohle okno se d* v mal[m pol)'ku na lev[m konci p@epnout bu na n%kter` z ovlada'+, nebo do automatick[ho re(imu. V automatick[m re(imu zapisujeme linii stejn`m zp+sobem, jako jsme jinde sestavovali doprovodn[ melodie - kliknut)m um)st)me zna'ku, druh`m ji zru5 &)me. Po jej)m um)st%n) budou chvilku hr*t doprovodn[ hlasy, abychom sly&eli v`sledek proveden[ volby. Potrv* to do dal&)ho kliknut), nebo do konce taktu.$ Pokud je okno p@epnut[ na n%kter` z ovlada'+, kliknut)m p@ejdeme do re(imu hran) stejn% tak i p@i kliknut) na druh[ pol)'ko zleva prostor pro ipku$ - tak p@ech*z)me do re(imu hran), jestli(e m*me v&echny kan*ly p@epnut[ na doprovodn[ hlasy$. Je-li okno z*kladn) linie v ru'n)m re(imu, na za'*tku hran) se vypr*zdn). Zm%ny doprovodu prov*d)me pohybem ovlada'e nahoru a dol+. P@i tom se ve druh[m pol)'ku zleva objev) ipka potvrzuj)c) povel$; na za'*tku dal&)ho taktu se podle toho pozm%n) doprovod a ipka zmiz). Doprovodn* linie se zaznamen*v* do horn)ho okna, kde ji lze pozd%ji pou()t i upravovat$ v automatick[m re(imu. KOMPILACE V&echno, co zazn) v re(imu hran), se automaticky ukl*d* do pam%ti po')ta'e. Kapacita tohoto z*znamu je 64 takt+ - to je dvakr*t cel[ okno z*kladn) linie - pozd%ji se ji( hudba neukl*d*.$ Pokud se n*m l)b) melodie, kterou jsme pr*v% dohr*li, m+(eme ji zkompilovat pro pou(it) ve vlastn)ch programech. Kompiluj) se v(dy pouze cel[ bloky po 'ty@ech taktech svisl[ '*ry v horn)m okn%$. P@ed kompilac) m+(eme p@)padn% je&t% upravit tempo. To je v tuto chv)li jedin[, co se d* zm%nit - jin[ zm%ny nemaj) na z*znam bu (*dn` vliv, nebo ho zcela zru&) zm%ny t`kaj)c) se n*stroj+, rozsah+ a re(imu zvukov`ch kan*l+$. Kompilaci zah*j)me kliknut)m na symbol diskety na lev[ stran%. M)sto r+znobarevn[ z*kladn) obrazovky se n*m objev) norm*ln) modr* textov* str*nka a rozb%hne se kompil*tor. Tady je t@eba zadat z kl*vesnice$ adresu v pam%ti, na kter[ hudebn) modul pob%() v na&em programu viz. t[( d*le$, a n*zev souboru. Opravy prov*d)me kl*vesou DELETE.$ Melodie se ulo() do ur'en[ho souboru jako hotov` programov` modul, a pak se vr*t) z*kladn) obrazovka FunMusic. B%hem editace adresy a n*zvu souboru po')ta' p@ehr*v* zaznamenanou hudbu - p@esn% tak, jak bude nakonec zn)t v na&em programu. Pokud nejsme spokojeni, m+(eme se vr*tit k z*kladn) obrazovce kl*vesou ESC. V kompil*toru m*me k dispozici je&t% dv% speci*ln) kombinace: CONTROLX vrac) v&echny parametry do z*kladn)ho stavu jako by byl cel` program spu&t%n znovu$, a CONTROLQ slou() k opu&t%n) programu n*vrat do DOSu$. Ob% funkce maj) je&t% bezpe'nostn) dotaz. HUDBA V BASICu P@i pou(it) hudby v Basicov`ch programech obvykle d*v*me hudebn) modul do horn) '*sti pam%ti. V kompil*toru proto zkus)me zadat adresu 9000 pro TurboBasic B000$, zat)m v&ak nema'k*me RETURN, ale zkontrolujeme koncovou adresu vedle. Pokud je ni(&) ne( A000 pro TurboBasic C000$, m+(eme b`t spokojeni. V opa'n[m p@)pad% vyzkou&)me adresu 8000 A000$, nebo dokonce 7000 9000$. Kdy( koncov* adresa vyhovuje, zap)&eme si pou(itou po'*te'n) adresu, a m+(eme pokra'ovat zad*n)m n*zvu atd. Pokud chceme Basicov` program po stisknut) RESETu znovu spou&t%t bez opakovan[ho na')t*n) hudebn)ho modulu z diskety, mus) b`t koncov* adresa ni(&) ne( 9C20 pro TurboBasic BC20$.$ V Basicov[m programu mus)me nejd@)ve vyhradit pot@ebnou '*st pam%ti pro hudebn) modul co( je t@eba opakovat v(dy po stisknut) RESETu$. Nap@)klad takto:POKE 106,x : GRAPHICS y Grafick` re(im m+(e b`t kter`koliv, hodnota "x" ov&em z*vis) na adrese hudebn)ho modulu: 7000 -> 112 8000 -> 128 9000 -> 144 A000 -> 160 B000 -> 176 V(dy se mus) jednat o n*sobek &estn*cti, jinak se budou n%kter[ grafick[ re(imy zobrazovat chybn%.$ Dal&)m krokem je zaveden) hudebn)ho modulu do pam%ti, co( lze prov[st n%kolika zp+soby. V TurboBasicu by m%l b`t pou(it p@)kaz:BLOAD "D:n*zev" V norm*ln)m AtariBasicu takov` p@)kaz bohu(elIOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"57%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUU[IUOYYYYUUYYKLUYUUO&reewaveby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewaseby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIoUOրIoUUKIUOYYYYUUY]KLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&tIOUOրIOUUKIUOYYYYUUYYKLUYUUO&seewarecy&%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4IOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIGUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUOIOUOրIOUUKIUOYYYYUUYYKLUYUUO&reewareby"%7%3/&4