summaryrefslogtreecommitdiffstats
path: root/development/zmac/zmac.1
blob: 9e336443ebd93650e26f93a6e44cbc6bd5606e8c (plain)
.\" Man page generated from reStructuredText.
.
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "ZMAC" 1 "2023-05-18" "20221018_0.7" "SlackBuilds.org"
.SH NAME
zmac \- Z-80 macro cross-assembler
.\" RST source for zmac(1) man page. Convert with:
.
.\" rst2man.py zmac.rst > zmac.1
.
.SH SYNOPSIS
.sp
\fBzmac\fP [\fI\-\-help\fP] [\fI\-\-version\fP] [\fI\-\-dep\fP] [\fI\-\-mras\fP] [\fI\-\-od dir\fP] [\fI\-\-oo sfx1,sfx2\fP] [\fI\-\-xo sfx1,sfx2\fP] [\fI\-\-dri\fP] [\fI\-\-rel\fP] [\fI\-\-rel7\fP] [\fI\-\-nmnv\fP] [\fI\-\-z180\fP] [\fI\-\-fcal\fP] [\fI\-\-doc\fP] [\fI\-\-zmac\fP] [\fI\-8bcefghijJlLmnopstz\fP] [\fIfilename[.z]\fP]
.SH DESCRIPTION
.sp
zmac is a Z\-80 macro cross\-assembler. It has all the features you\(aqd
expect. It assembles the specified input file (with a \(aq.z\(aq extension
if there is no pre\-existing extension and the file as given doesn\(aqt
exist) and produces program output in many different formats. It also
produces a nicely\-formatted listing of the machine code and cycle
counts alongside the source in a ".lst" file.
.sp
To reduce clutter and command line option usage, by default all zmac
output is put into an (auto\-created) zout subdirectory. For file.z
the listing will be in zout/file.lst, the TRS\-80 executable format
in zout/file.cmd and so on. For more friendly usage in make files
and integrated development environments the \-o, \-\-oo, \-\-xo and \-\-xd
options may be used to select specific output file formats and where
they are written.
.sp
Undocumented Z\-80 instructions are supported as well as 8080 and Z\-180
(aka HD64180).
.sp
zmac strives to be a powerful assembler with expressions familiar to C
programmers while providing good backward compatibility with original
assemblers such as Edtasm, MRAS and Macro\-80.
.sp
This man page only documents the command\-line options. The full documentation can be found here:
/usr/doc/zmac\-20221018_0.7/zmac.html
.SH OPTIONS
.sp
Space\-separated arguments in the ZMAC_ARGS environment variable are added to the
end of the command line.
.INDENT 0.0
.TP
.B  \-\-help
Display a list of options and a terse description of what the
options do.
.TP
.B  \-\-version
Print zmac version name.
.TP
.B  \-\-mras
MRAS compatibility mode. Any ? in a label will be expanded to
the current module identifier as set by *mod. Operator
precedence and results are changed.
.TP
.BI \-\-od \ dir
Place output files in dir instead of the default "zout"
subdirectory. Creates dir if necessary.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-oo hex,cmd
Output only the the file types by suffix. Multiple \-\-oo
arguments may be used. "\-\-oo lst,cas" is equivalent to "\-\-oo
lst \-\-oo cas". See "Output Formats" for a list of output types
by suffix.
.TP
.B \-\-xo tap,wav
Do not output the file type types listed by suffix.
.UNINDENT
.INDENT 0.0
.TP
.B  \-\-dri
Enable compatibility with Digital Research (CP/M) assemblers:
Ignores dollar signs in constants and symbols. Silences a
warning when using Z80.LIB. Allows the use of \(aq*\(aq in first
column for comment lines. Accepts $\-MACRO directives.
.TP
.B  \-\-nmnv
Do not interpret Z\-80 or 8080 mnemonics as values in
expressions.
.TP
.B  \-\-rel
Output ".rel" (relocatable object file) format only. Exported
symbols are truncated to length 6.
.TP
.B  \-\-rel7
Output ".rel" (relocatable object file) format only. Exported
symbols are truncated to length 7.
.TP
.B  \-\-zmac
zmac compatibility mode. defl labels are undefined after each
pass. Quotes and double quotes are stripped from macro
arguments before expansion. $ is ignored in identifiers
allowing foo$bar to construct identifiers in macro expansions.
Use \(ga (backquote) instead in normal mode. Labels starting with
"." are temporary and are reset whenever a non\-temporary label
is defined (thus they may be reused). Labels starting with "_"
are local to their file thus avoid multiple definition when
brought in with include.
.TP
.B  \-\-z180
Use Z\-180 timings and extended instructions. Undocumented Z\-80
instructions will generate errors as the Z\-180 (or H64810) does
not support them. Equivalent to .z180 pseudo\-op.
.TP
.B  \-\-dep
Print all files read by include, incbin and import.
.TP
.B  \-\-doc
Print full documentation in HTML format to standard output.
.UNINDENT
.INDENT 0.0
.TP
.B \-Pk=number
Set @@k to the given numeric value before assembly. Up to 10
parameters can be set from 0 though 9. \-Pk is shorthand for
\-Pk=\-1. For example, P4=$123 effectively puts @@4 equ $123 at
the top of the first file.
.UNINDENT
.INDENT 0.0
.TP
.BI \-D\fB symbol
Define symbol to be 1 before assembly.
.TP
.B  \-\-fcal
Always treat an indentifier in the first column as a label.
zmac uses various heuristics in the case of ambiguity when a
label does not have a colon. This option turns heuristics off.
.TP
.B  \-8
Accept 8080 mnemonics preferentially and use 8080 instruction
timings. Equivalent to .8080 pseudo\-op.
.TP
.B  \-b
Don\(aqt generate any machine code output at all.
.TP
.B  \-c
Don\(aqt display cycle counts in the listing.
.TP
.B  \-e
Omit the "error report" section in the listing.
.TP
.B  \-f
List instructions not assembled due to "if" expressions being
false. (Normally these are not shown in the listing.)
.TP
.B  \-g
List only the first line of equivalent hex for a source line.
.TP
.B  \-h
Display a list of options and a terse description of what the
options do. (same as \-\-help)
.TP
.B  \-i
Don\(aqt list files included with include, read or import.
.TP
.BI \-I \ dir
Add dir to the end of the include file search path.
.TP
.B  \-j
Promote relative jumps and DJNZ to absolute equivalents as
needed.
.TP
.B  \-J
Error if an absolute jump could be replaced with a relative
jump.
.TP
.B  \-l
List to standard output.
.TP
.B  \-L
Generate listing no matter what. Overrides any conflicting
options.
.TP
.B  \-m
List macro expansions.
.TP
.B  \-n
Omit line numbers from listing.
.UNINDENT
.INDENT 0.0
.TP
.B \-o filename.cmd
Output only the named file. Multiple "\-o" options can be used
to name a set of different files.
.UNINDENT
.INDENT 0.0
.TP
.B  \-p
Use a few linefeeds for page break in listing rather than ^L.
.TP
.B  \-P
Output listing for a printer with headers, multiple symbols per
column, etc.
.TP
.B  \-s
Omit the symbol table from the listing.
.TP
.B  \-t
Only output number of errors instead list of each one.
.TP
.B  \-z
Accept Z\-80 mnemonics preferentially and use Z\-80 instruction
timings. Equivalent to .z80 pseudo\-op.
.UNINDENT
.SH LICENSE
.sp
\fBCC0\fP
.sp
To the extent possible under law, George Phillips has waived all copyright
and related or neighboring rights to zmac macro cross assembler for the Zilog
Z\-80 microprocessor. This work is published from: Canada.
.SH AUTHORS
.sp
Bruce Norskog originally wrote zmac in 1978.
.sp
Updates and bugfixes over the years by John Providenza, Colin Kelley, and more
recently by Russell Marks, Mark RISON, Chris Smith, Matthew Phillips and Tim
Mann.
.sp
Extensive modifications for cycle counting, multiple output formats, ".rel"
output, 8080 mode and older assembler compatibilty were written by George
Phillips.
.sp
This man page written for the SlackBuilds.org project
by B. Watson, and is licensed under the WTFPL.
.SH SEE ALSO
.sp
\fBld80\fP(1)
.sp
The zmac homepage: \fI\%http://48k.ca/zmac.html\fP
.\" Generated by docutils manpage writer.
.