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 |