1 #ifndef ZX_UTIL_H
2 #define ZX_UTIL_H
3 
4 struct zx_common
5 {
6     char           help;
7     char          *binname;
8     char          *crtfile;
9     char          *outfile;
10     int            origin;
11     char          *banked_space;
12     char          *excluded_banks;
13     char          *excluded_sections;
14     char           clean;
15     int            main_fence;
16     char           pages;
17     FILE          *file;
18 };
19 
20 struct zx_tape
21 {
22     char          *blockname;
23     char          *merge;
24     int            patchpos;
25     int            clear_address;
26     char          *patchdata;
27     char          *screen;
28     char           audio;
29     char           ts2068;
30     char           turbo;
31     char           extreme;
32     char           fast;
33     char           dumb;
34     char           noloader;
35     char           noheader;
36     unsigned char  parity;
37     char           khz22;
38 };
39 
40 struct zx_sna
41 {
42     int            stackloc;
43     int            intstate;
44     char           force_128;
45     char           snx;
46     char           xsna;
47     FILE          *fsna;
48 };
49 
50 struct zx_bin
51 {
52     char           fullsize;
53     int            romfill;
54     char           ihex;
55     char           ipad;
56     int            recsize;
57 };
58 
59 struct zxn_nex
60 {
61     char          *screen;
62     char           nopalette;
63     char           screen_ula;
64     char           screen_lores;
65     char           screen_hires;
66     char           screen_hicol;
67     int            border;
68     int            loadbar;
69     int            loaddelay;
70     int            startdelay;
71     char           norun;
72     char           noreset;
73 };
74 
75 extern int  z88dk_ffs(int n);
76 extern void zxn_construct_page_contents(unsigned char *mem, struct memory_bank *mb, int mbsz, int fillbyte);
77 
78 extern int zx_tape(struct zx_common *zxc, struct zx_tape *zxt, struct banked_memory *memory);
79 extern int zx_plus3(struct zx_common *zxc, struct zx_tape *zxt, struct banked_memory *memory);
80 extern int zx_dot_command(struct zx_common *zxc, struct banked_memory *memory);
81 extern int zxn_dotn_command(struct zx_common *zxc, struct banked_memory *memory, int fillbyte);
82 extern int zx_sna(struct zx_common *zxc, struct zx_sna *zxs, struct banked_memory *memory, int is_zxn);
83 extern int zxn_nex(struct zx_common *zxc, struct zxn_nex *zxnex, struct banked_memory *memory, int fillbyte);
84 
85 #endif
86