Rev Author Line No. Line
193 miho 1 // Tento soubor definuje vse potrebne pro ulozeni skladeb do pameti programu.
2 // Dale definuje pislusna makra pro snadne definice. Tyto definice jsou voleny
3 // zamerne tak, aby mohl byt pouzit stejny soubor s definici skladby jak
4 // pro vlozeni primo do firmwaru v dobe prekladu tak i k dodatecnemu nahrani
5 // skladby pres seriovou linku.
6  
7 // Definice hranic pameti pro ulozeni pisnicek
8 #define STARTMEM 0x600 // Zde zacina pametoa oblast pro pisnicky
9 #define ENDMEM 0x7ff // Zde konci pametova oblast pro pisnicky
10  
11 // Definice konstant pro kodovani dat
12 #define ENDOFDATA 0x3FFF // Priznak konce pisnicek (prazdna pamet)
13 #define DATABEGIN 0x2000 // Kod zacatku skladby
14 #define MASKBEGIN 0x3800
15 #define DATATEMPO 0x2800 // Kod pro nastaveni tempa
16 #define MASKTEMPO 0x3800
17 #define DATAPAUSE 0x3000 // Kod pro nastaveni mezery mezi notami
18 #define MASKPAUSE 0x3800
19 #define MASKNOTE 0x2000 // Nejvissi bit 0 urcuje, ze jde o notu
20  
21 // Pseudomakra pro jednoduchy zapis skladeb do zdrojaku jazyka C
22 #define BEGIN DATABEGIN+ // Zacatek pisnicky + posunuti oktav
23 #define TEMPO DATATEMPO+ // Delka nejskratsi noty v ms
24 #define PAUSE DATAPAUSE+ // Delka mezery mezi notami
25 #define END // Konec skladby, zde nic neznamena
26  
27 // Pseudomakra pro zapis not, zapisuje se cislo oktavy, nota, delka noty
28 #define C *16 + SOUND_C + 128 *
29 #define Cis *16 + SOUND_Cis + 128 *
30 #define D *16 + SOUND_D + 128 *
31 #define Dis *16 + SOUND_Dis + 128 *
32 #define E *16 + SOUND_E + 128 *
33 #define F *16 + SOUND_F + 128 *
34 #define Fis *16 + SOUND_Fis + 128 *
35 #define G *16 + SOUND_G + 128 *
36 #define Gis *16 + SOUND_Gis + 128 *
37 #define A *16 + SOUND_A + 128 *
38 #define Ais *16 + SOUND_Ais + 128 *
39 #define H *16 + SOUND_H + 128 *
40 #define Space SOUND_Space + 128 *
41  
42 // Pametova oblast
43 #ORG 0x600,0x7FF {} // Vyhrazeni oblasti pameti pro ulozeni pisnicek
44 #ROM 0x600 = { // Naplneni oblasti pameti daty
45  
46 // Pisnicky jako soucast firwaru se vkladaji sem
47 // Museji mit stejny format jako uvedene priklady aby zafungovaly makra
48 #include "Skladby\TheFinalSoundDown.txt"
49 #include "Skladby\BednaOdWhisky.txt"
50 #include "Skladby\KdyzMeBaliZaVojacka.txt"
51 #include "Skladby\Medvedi.txt"
52  
53 // Koncova znacka a konec oblasti pro skladby
54 ENDOFDATA
55 }
56  
57 // Zruseni definic maker pro definici skladeb
58 // V dalsim programu uz nebudou potreba
59 #undef BEGIN
60 #undef TEMPO
61 #undef PAUSE
62 #undef END
63 #undef C
64 #undef Cis
65 #undef D
66 #undef Dis
67 #undef E
68 #undef F
69 #undef Fis
70 #undef G
71 #undef Gis
72 #undef A
73 #undef Ais
74 #undef H
75 #undef Space