1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
|
.\"Text automatically generated by txt2man
.TH zcc 1 "01 December 2009" "" "z88 Development Kit"
.SH NAME
\fBzcc \fP- The frontend of z88dk
.SH SYSNOPIS
zcc [flags] [files to be compiled/linked]
.SH DESCRIPTION
This manual page documents briefly the z88dk tools. This manual page
was written for the Debian GNU/Linux distribution (but may be used
by others), because the original program does not have a manual page.
.RE
.PP
.RS
Please refer to the z88dk documentation in /usr/share/doc/z88dk-doc for the complete description of the system.
If /usr/share/doc/z88dk-doc not exists, please install the package z88dk-doc.
.PP
The frontend of z88dk is called zcc, it is this that you should call
if you want to do any compilations.
.PP
The files can be either C files (.c), preprocessed C \fBfiles\fP(.i),
compiled C files (.asm), optimised compiled file (.opt) or assembled
files (.obj), any combination of them can be mixed together and the
relevant processed done on them.
.PP
Processing of a file list is done on each file in turn (i.e. preprocess,
compile, optimise, assemble) at the end all files may be linked into
a single executable if desired.
.SH OPTIONS
Options to control the action of the frontend:
.TP
.B
+[file]
Name of alternate config file (must be the first argument).
.PP
.nf
.fam C
Predefined alternate configs:
abc80 ABC80
aceansi Jupiter ACE, using VT-ANSI engine
cpm CP/M
msx MSX 1
mz Sharp MZ
mzansi Sharp MZ, using VT-ANSI
nc Amstrad NC100
rex REX 6000
sam Sam Coupe
svi Spectravideo SVI
m5 SORD M5
ti82 Ti82, using ROM text routines
ti82ansi Ti82, using VT-ANSI
ti83 Ti83, using ROM text routines
ti83ansi Ti83, using VT-ANSI
ti85 Ti85, using ROM text routines
ti85ansi Ti85, using VT-ANSI
ti86 Ti86, using ROM text routines
ti86ansi Ti86, using VT-ANSI
ti8x Ti83+, using ROM text routines
[ti8xansi] Ti83+, using VT-ANSI
vz VZ / Laser 200
vzansi VZ / Laser 200, using VT-ANSI
z88 Cambridge Z88
z88ansi Cambridge Z88, using VT-ANSI
z88net Cambridge Z88 with TCP/IP
zx ZX Spectrum
zx81 ZX 81
zx81ansi ZX 81, using VT-ANSI
zxansi ZX Spectrum, using VT-ANSI
.fam T
.fi
.TP
.B
\fB-a\fP
Produce .asm (or .opt) file only
.TP
.B
\fB-c\fP
Do not link object files
.TP
.B
\fB-E\fP
Preprocess files only, leave output in .i file
.TP
.B
\fB-o\fP [file]
Specify output file for binary (default is a.bas for BASIC programs and a.bin for application binaries)
.TP
.B
\fB-On\fP
Optimize compiler output (to .opt file) n can be either 0 (none) 1,2,3, level 2 is recommended. Level 3 is suitable for large programs (includes certain lib functions to reduce size of \fBcode\fP(!))
.TP
.B
\fB-v\fP
Verbose - echo commands as they are executed
.TP
.B
\fB-vn\fP
Don't be verbose
.RE
.PP
.RS
Options to control library usage:
.TP
.B
\fB-l\fP[name]
Link in a library - supply just the name (after placing them in the correct directory).
.PP
.nf
.fam C
The 'name' are:
farz88 Z88 far support
gfx Z88 BASIC graphics lib
gfxapp Z88 application graphics lib
m Generic math routines
malloc Generic near malloc routine
mz OZ's math routines
ndos Fake file-routines, return errors only
net Z88 socket routines for ZSock
netdev Z88 socket routines for devices
p3 +3 file support library
tigray82 Ti82 graylib routines
tigray83 Ti83 graylib routines
tigray83p Ti83+ graylib routines
tigray85 Ti85 graylib routines
tigray86 Ti86 graylib routines
z88 Some Z88 application routines, like mailboxing
zxmath ZX Spectrum ROM based math routines
zxvgs ZXVGS hardware support
.fam T
.fi
.TP
.B
\fB-m\fP
Generate .map files when assembling/linking
.RE
.PP
.RS
Options to control the type code produced:
.TP
.B
\fB-unsigned\fP
Implicitly define everything as unsigned unless explicitly told otherwise.
.TP
.B
\fB-create-app\fP
Create an application image (i.e. bank 63,62 etc)
.TP
.B
\fB-make-app\fP
(App) Notify the compiler that you're trying to make an application
.TP
.B
\fB-reqpag\fP=
(App) Number of 256 byte pages required for bad application
.TP
.B
\fB-zorg\fP=
(App) Origin for a Z88 application
.TP
.B
\fB-safedata\fP=
(App) Amount of safedata required by your code
.TP
.B
\fB-defvars\fP=
(App) Where static variables should be dropped (only valid for single file compilations, but see later)
.TP
.B
\fB-expandz88\fP
(App) Expanded z88 required
\fB-no-expandz88\fP (App) Expanded z88 not required (these two flags toggle some startup code to check for an expanded machine)
.TP
.B
\fB-startup\fP=3
Produce standalone code that can be run from a set address from BASIC. Use \fB-zorg\fP= to change the address
.TP
.B
\fB-R\fP
(Use with above) produces relocatable code that can be loaded into a DIM'd BASIC array.
.TP
.B
\fB-smartpf\fP
Intelligent printf routine handling
.TP
.B
\fB-no-smartpf\fP
Turn off the intelligent printf handling
.TP
.B
\fB-make-lib\fP
Shortcut to generate .o files from library .c files
.TP
.B
\fB-stackoffset\fP
Sets the stack offset for shared libs (see package.txt for details)
.RE
.PP
.RS
Miscellaneous options:
.TP
.B
\fB-z80-verb\fP
Allow z80asm to be verbose, this tends to generate a lot
of output to the screen so may not be desired.
.TP
.B
\fB-cc\fP
Intersperse C code as comments in the assembler output, warning:
this *will* clobber some optimizations.
.TP
.B
\fB-Wall\fP
Turn on all the compiler warnings
.TP
.B
\fB-Wnone\fP
Turn off all compiler warnings
.TP
.B
\fB-Wn\fP[num]
Turn off the compiler warning [num]
.TP
.B
\fB-W\fP[num]
Turn on the compiler warning [num]
.TP
.B
\fB-asxx\fP
Cause the compiler to emit asxx compatible code
.TP
.B
\fB-Cp\fP[option]
Pass an option through to the pre-processor
.TP
.B
\fB-Ca\fP[option]
Pass an option through to the assembler
.PP
In addition, the flags, \fB-D\fP, \fB-I\fP, \fB-U\fP are passed through to the preprocessor.
.SH SEE ALSO
\fBz88dk\fP(1), \fBz88dk-zcc\fP(1), \fBz88dk-z80asm\fP(1), \fBz88dk-appmake\fP(1), \fBz88dk-copt\fP(1).
.RE
.PP
.SH AUTHOR
z88dk was written by Dominic Morris <dom@z88dk.org>, and others.
This manual page was written by Krystian Wlosek <tygrys@waw.pdi.net> using exists documentation, for the Debian GNU/Linux system.
|