summaryrefslogtreecommitdiffstats
path: root/development/zmac/zmac.rst
diff options
context:
space:
mode:
Diffstat (limited to 'development/zmac/zmac.rst')
-rw-r--r--development/zmac/zmac.rst207
1 files changed, 207 insertions, 0 deletions
diff --git a/development/zmac/zmac.rst b/development/zmac/zmac.rst
new file mode 100644
index 0000000000..ae264d28db
--- /dev/null
+++ b/development/zmac/zmac.rst
@@ -0,0 +1,207 @@
+.. RST source for zmac(1) man page. Convert with:
+.. rst2man.py zmac.rst > zmac.1
+
+.. |version| replace:: 20221018_0.7
+.. |date| date::
+
+====
+zmac
+====
+
+--------------------------
+Z-80 macro cross-assembler
+--------------------------
+
+:Manual section: 1
+:Manual group: SlackBuilds.org
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+**zmac** [*--help*] [*--version*] [*--dep*] [*--mras*] [*--od dir*] [*--oo sfx1,sfx2*] [*--xo sfx1,sfx2*] [*--dri*] [*--rel*] [*--rel7*] [*--nmnv*] [*--z180*] [*--fcal*] [*--doc*] [*--zmac*] [*-8bcefghijJlLmnopstz*] [*filename[.z]*]
+
+DESCRIPTION
+===========
+
+zmac is a Z-80 macro cross-assembler. It has all the features you'd
+expect. It assembles the specified input file (with a '.z' extension
+if there is no pre-existing extension and the file as given doesn't
+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.
+
+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.
+
+Undocumented Z-80 instructions are supported as well as 8080 and Z-180
+(aka HD64180).
+
+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.
+
+This man page only documents the command-line options. The full documentation can be found here:
+/usr/doc/zmac-|version|/zmac.html
+
+OPTIONS
+=======
+
+Space-separated arguments in the ZMAC_ARGS environment variable are added to the
+end of the command line.
+
+
+--help Display a list of options and a terse description of what the
+ options do.
+
+--version Print zmac version name.
+
+--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.
+
+--od dir Place output files in dir instead of the default "zout"
+ subdirectory. Creates dir if necessary.
+
+--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.
+
+--xo tap,wav
+ Do not output the file type types listed by suffix.
+
+--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 '*' in first
+ column for comment lines. Accepts $-MACRO directives.
+
+--nmnv Do not interpret Z-80 or 8080 mnemonics as values in
+ expressions.
+
+--rel Output ".rel" (relocatable object file) format only. Exported
+ symbols are truncated to length 6.
+
+--rel7 Output ".rel" (relocatable object file) format only. Exported
+ symbols are truncated to length 7.
+
+--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 ` (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.
+
+--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.
+
+--dep Print all files read by include, incbin and import.
+
+--doc Print full documentation in HTML format to standard output.
+
+-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.
+
+-Dsymbol Define symbol to be 1 before assembly.
+
+--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.
+
+-8 Accept 8080 mnemonics preferentially and use 8080 instruction
+ timings. Equivalent to .8080 pseudo-op.
+
+-b Don't generate any machine code output at all.
+
+-c Don't display cycle counts in the listing.
+
+-e Omit the "error report" section in the listing.
+
+-f List instructions not assembled due to "if" expressions being
+ false. (Normally these are not shown in the listing.)
+
+-g List only the first line of equivalent hex for a source line.
+
+-h Display a list of options and a terse description of what the
+ options do. (same as --help)
+
+-i Don't list files included with include, read or import.
+
+-I dir Add dir to the end of the include file search path.
+
+-j Promote relative jumps and DJNZ to absolute equivalents as
+ needed.
+
+-J Error if an absolute jump could be replaced with a relative
+ jump.
+
+-l List to standard output.
+
+-L Generate listing no matter what. Overrides any conflicting
+ options.
+
+-m List macro expansions.
+
+-n Omit line numbers from listing.
+
+-o filename.cmd
+ Output only the named file. Multiple "-o" options can be used
+ to name a set of different files.
+
+-p Use a few linefeeds for page break in listing rather than ^L.
+
+-P Output listing for a printer with headers, multiple symbols per
+ column, etc.
+
+-s Omit the symbol table from the listing.
+
+-t Only output number of errors instead list of each one.
+
+-z Accept Z-80 mnemonics preferentially and use Z-80 instruction
+ timings. Equivalent to .z80 pseudo-op.
+
+LICENSE
+=======
+
+**CC0**
+
+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.
+
+AUTHORS
+=======
+
+Bruce Norskog originally wrote zmac in 1978.
+
+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.
+
+Extensive modifications for cycle counting, multiple output formats, ".rel"
+output, 8080 mode and older assembler compatibilty were written by George
+Phillips.
+
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+
+SEE ALSO
+========
+
+**ld80**\(1)
+
+The zmac homepage: http://48k.ca/zmac.html