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