1 #ifndef GRELOC_H
2 #define GRELOC_H
3 
4 #define FORMAT_SID 0
5 #define FORMAT_PRG 1
6 #define FORMAT_BIN 2
7 
8 #define PLAYER_BUFFERED 8
9 #define PLAYER_SOUNDEFFECTS 16
10 #define PLAYER_VOLUME 32
11 #define PLAYER_AUTHORINFO 64
12 #define PLAYER_ZPGHOSTREGS 128
13 #define PLAYER_NOOPTIMIZATION 256
14 #define PLAYER_FULLBUFFERED 512
15 
16 #define MAX_OPTIONS 7
17 
18 #define TYPE_NONE 0
19 #define TYPE_OVERFLOW 1
20 #define TYPE_JUMP 2
21 
22 #define CAUSE_NONE 0
23 #define CAUSE_PATTERN 1
24 #define CAUSE_INSTRUMENT 2
25 #define CAUSE_WAVECMD 3
26 
27 #define MAX_BYTES_PER_ROW 16
28 
29 #ifndef GRELOC_C
30 extern unsigned char pattused[MAX_PATT];
31 extern unsigned char instrused[MAX_INSTR];
32 extern unsigned char tableused[MAX_TABLES][MAX_TABLELEN+1];
33 extern unsigned char pattmap[MAX_PATT];
34 extern unsigned char instrmap[MAX_INSTR];
35 extern unsigned char tablemap[MAX_TABLES][MAX_TABLELEN+1];
36 extern int tableerror;
37 #endif
38 
39 void relocator(void);
40 int testoverlap(int area1start, int area1size, int area2start, int area2size);
41 int packpattern(unsigned char *dest, unsigned char *src, int rows);
42 unsigned char swapnybbles(unsigned char n);
43 void findtableduplicates(int num);
44 int isusedandselfcontained(int num, int start);
45 void calcspeedtest(unsigned char pos);
46 
47 int insertfile(char *name);
48 void inserttext(const char *text);
49 void insertdefine(const char *name, int value);
50 void insertlabel(const char *name);
51 void insertbyte(unsigned char byte);
52 void insertbytes(const unsigned char *bytes, int size);
53 void insertaddrlo(const char *name);
54 void insertaddrhi(const char *name);
55 
56 #endif
57