Scroll to navigation

zcc(1) z88 Development Kit zcc(1)

NAME

zcc - The frontend of z88dk

SYSNOPIS

zcc [flags] [files to be compiled/linked]

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.

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.

The frontend of z88dk is called zcc, it is this that you should call if you want to do any compilations.

The files can be either C files (.c), preprocessed C files(.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.

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.

OPTIONS

Options to control the action of the frontend:

+[file]
Name of alternate config file (must be the first argument).


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
Produce .asm (or .opt) file only
Do not link object files
Preprocess files only, leave output in .i file
Specify output file for binary (default is a.bas for BASIC programs and a.bin for application binaries)
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 code(!))
Verbose - echo commands as they are executed
Don't be verbose

Options to control library usage:
Link in a library - supply just the name (after placing them in the correct directory).


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
Generate .map files when assembling/linking

Options to control the type code produced:
Implicitly define everything as unsigned unless explicitly told otherwise.
Create an application image (i.e. bank 63,62 etc)
(App) Notify the compiler that you're trying to make an application
(App) Number of 256 byte pages required for bad application
(App) Origin for a Z88 application
(App) Amount of safedata required by your code
(App) Where static variables should be dropped (only valid for single file compilations, but see later)
(App) Expanded z88 required -no-expandz88 (App) Expanded z88 not required (these two flags toggle some startup code to check for an expanded machine)
Produce standalone code that can be run from a set address from BASIC. Use -zorg= to change the address
(Use with above) produces relocatable code that can be loaded into a DIM'd BASIC array.
Intelligent printf routine handling
Turn off the intelligent printf handling
Shortcut to generate .o files from library .c files
Sets the stack offset for shared libs (see package.txt for details)

Miscellaneous options:
Allow z80asm to be verbose, this tends to generate a lot of output to the screen so may not be desired.
Intersperse C code as comments in the assembler output, warning: this *will* clobber some optimizations.
Turn on all the compiler warnings
Turn off all compiler warnings
Turn off the compiler warning [num]
Turn on the compiler warning [num]
Cause the compiler to emit asxx compatible code
Pass an option through to the pre-processor
Pass an option through to the assembler

In addition, the flags, -D, -I, -U are passed through to the preprocessor.

SEE ALSO

z88dk(1), z88dk-zcc(1), z88dk-z80asm(1), z88dk-appmake(1), z88dk-copt(1).

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.

01 December 2009