164tass(1)                         64tass 1.56                        64tass(1)
2
3
4

NAME

6       64tass - A multi pass optimizing macro assembler for the 65xx series of
7       processors
8

SYNOPSIS

10       64tass [OPTION]... [SOURCES]...
11

DESCRIPTION

13       64tass is cross assembler targeting the 65xx series  of  micro  proces‐
14       sors. This manual is only describing the command line options. The many
15       features are described in the HTML manual.
16

OPTIONS

18   Output options
19       -o filename, --output filename
20            Place  output  into  filename.  The  default  output  filename  is
21            "a.out",  this  option changes it. May be used multiple times. The
22            format is remembered but section  reverts  to  global  after  each
23            file.
24
25       --output-append filename
26            Append to output file instead of overwriting it.
27
28       --no-output
29            Same as output but no file will be written.
30
31       --output-section sectionname
32            Output this section instead of everything
33
34       -X, --long-address
35            Use  3 byte address/length for CBM and nonlinear output instead of
36            2 bytes. Also increases the size of raw output to 16 MiB.
37
38       --cbm-prg
39            Generate CBM format binaries (default).  The first 2 bytes are the
40            little  endian  address  of  the first valid byte (start address).
41            Overlapping blocks  are  flattened  and  uninitialized  memory  is
42            filled  up  with  zeros. Uninitialized memory before the first and
43            after the last valid bytes are not saved. Up to 64 KiB or  16  MiB
44            with long address.
45
46       -b, --nostart
47            Output  raw  data  only without start address.  Overlapping blocks
48            are flattened and uninitialized memory is filled  up  with  zeros.
49            Uninitialized  memory  before  the  first and after the last valid
50            bytes are not saved. Up to 64 KiB or 16 MiB with long address.
51
52       -f, --flat
53            Flat address space output mode.  Overlapping blocks are  flattened
54            and  uninitialized  memory  is filled up with zeros. Uninitialized
55            memory after the last valid byte is not saved.  Up to 4 GiB.
56
57       -n, --nonlinear
58            Generate nonlinear output file.  Overlapping blocks are flattened.
59            Blocks  are  saved  in  sorted  order  and uninitialized memory is
60            skipped. Up to 64 KiB or 16 MiB with long address.
61
62       --atari-xex
63            Generate a Atari XEX output file.  Overlapping  blocks  are  kept,
64            continuing  blocks are concatenated. Saving happens in the defini‐
65            tion order without sorting, and uninitialized memory is skipped in
66            the output. Up to 64 KiB.
67
68       --apple2
69            Generate a Apple II output file (DOS 3.3).  Overlapping blocks are
70            flattened and uninitialized memory is filled up with zeros. Unini‐
71            tialized  memory  before  the first and after the last valid bytes
72            are not saved. Up to 64 KiB.
73
74       --intel-hex
75            Use Intel HEX output file format.  Overlapping  blocks  are  kept,
76            data  is  stored  in the definition order, and uninitialized areas
77            are skipped. I8HEX up to 64 KiB, I32HEX up to 4 GiB.
78
79       --s-record
80            Use Motorola S-record output file format.  Overlapping blocks  are
81            kept,  data  is  stored in the definition order, and uninitialized
82            memory areas are skipped. S19 up to 64 KiB, S28 up to 16  MiB  and
83            S37 up to 4 GiB.
84
85   Operation options
86       -a, --ascii
87            Use ASCII/Unicode text encoding instead of raw 8-bit.  Normally no
88            conversion takes place, this is for backwards compatibility with a
89            DOS based Turbo Assembler editor, which could create PETSCII files
90            for 6502tass. (including control characters of course) Using  this
91            option  will  change  the default "none" and "screen" encodings to
92            map ´a´-´z´ and ´A´-´Z´ into the correct PETSCII range of  $41-$5A
93            and  $C1-$DA,  which is more suitable for an ASCII editor. It also
94            adds predefined petcat style PETSCII literals to the  default  en‐
95            codings, and enables Unicode letters in symbol names.  For writing
96            sources in UTF-8/UTF-16 encodings this option is required!
97
98       -B, --long-branch
99            Automatic BXX *+5 JMP xxx. Branch too long messages can be  annoy‐
100            ing sometimes, usually they'll need to be rewritten to BXX *+5 JMP
101            xxx. 64tass can do this automatically if this option is used.  But
102            BRA is not converted.
103
104       -C, --case-sensitive
105            Make all symbols (variables, opcodes, directives, operators, etc.)
106            case sensitive. Otherwise everything is case  insensitive  by  de‐
107            fault.
108
109       -D label=value
110            Defines  a  label  to a value. Same syntax is allowed as in source
111            files. Be careful with string quoting, the shell might eat some of
112            the characters.
113
114       -q, --quiet
115            Suppress messages. Disables header and summary messages.
116
117       -T, --tasm-compatible
118            Enable  TASM  compatible operators and precedence Switches the ex‐
119            pression evaluator into compatibility mode. This enables ".",  ":"
120            and  "!"  operators  and disables 64tass specific extensions, dis‐
121            ables precedence handling and forces 16  bit  unsigned  evaluation
122            (see "differences to original Turbo Assembler" below)
123
124       -I path
125            Specify include search path.  If an included source or binary file
126            can't be found in the directory of the source file then this  path
127            is  tried. More than one directories can be specified by repeating
128            this option. If multiple matches exist the first one is used.
129
130       -M file, --dependencies file
131            Specify make rule output file.  Writes a dependency rule  suitable
132            for 'make' from the list of files used during compilation.
133
134       --make-phony
135            Enable phony target generation for dependencies.
136
137   Diagnostic options
138       -E file, --error file
139            Specify  error output file.  Normally compilation errors a written
140            to the standard error output. It's possible to redirect them to  a
141            file or to the standard output by using '-' as the file name.
142
143       --error-append file
144            Append to error file instead of overwriting it.
145
146       --no-error
147            Do not output any errors, just count them.
148
149       -w, --no-warn
150            Suppress warnings. Disables warnings during compile. Finer grained
151            warning control is available by using the -W options.
152
153       --no-caret-diag
154            Suppress displaying of faulty source line and fault position after
155            fault messages.
156
157       --macro-caret-diag
158            Restrict  source  line  and fault position display to macro expan‐
159            sions only.
160
161       -Wall
162            Enable most diagnostic warnings, except  those  individually  dis‐
163            abled. Or with the 'no-' prefix disable all except those enabled.
164
165       -Werror
166            Make  all  diagnostic warnings to an error, except those individu‐
167            ally set to a warning.
168
169       -Werror=<name>
170            Change a diagnostic warning to an error.  For example "-Werror=im‐
171            plied-reg" makes this check an error. The "-Wno-error=" variant is
172            useful with "-Werror" to set some to warnings.
173
174       -Walias
175            Warns about alias opcodes.
176
177       -Waltmode
178            Warn about alternative address modes.  Sometimes  alternative  ad‐
179            dressing  modes  are used as the fitting one is not available. For
180            example there's no lda direct page y so instead  data  bank  y  is
181            used with a warning.
182
183       -Wbranch-page
184            Warns if a branch is crossing a page.  Page crossing branches exe‐
185            cute with a penalty cycle. This option helps to locate them.
186
187       -Wcase-symbol
188            Warn if symbol letter case is used inconsistently.
189
190       -Wimmediate
191            Warns for cases where immediate addressing is more likely.   -Wim‐
192            plied-reg Warns if implied addressing is used instead of register.
193            Some instructions have implied aliases like 'asl' for 'asl a'  for
194            compatibility reasons, but this shorthand not the preferred form.
195
196       -Wleading-zeros
197            Warns  if  about  leading zeros.  A leading zero could be a prefix
198            for an octal number but as octals are not supported so the  result
199            will be decimal.
200
201       -Wlong-branch
202            Warns when a long branch is used.  This option gives a warning for
203            instructions which were modified  by  the  long  branch  function.
204            Less  intrusive  than  disabling  long  branches  and see where it
205            fails.
206
207       -Wmacro-prefix
208            Warn about macro call without prefix.  Such macro calls can easily
209            be mistaken to be labels if invoked without parameters.  Also it's
210            hard to notice that an unchanged call turned into label after  the
211            definition  got  renamed. This warning helps to find such calls so
212            that prefixes can be added.
213
214       -Wno-deprecated
215            Don't warn about deprecated features.   Unfortunately  there  were
216            some features added previously which shouldn't have been included.
217            This option disables warnings about their uses.
218
219       -Wno-float-compare
220            Don't warn if floating point  comparisons  are  only  approximate.
221            Floating  point numbers have a finite precision and comparing them
222            might give unexpected results.
223
224       -Wno-float-round
225            Don't warn when floating point numbers are implicitly rounded.   A
226            lot  of  parameters are expecting integers but floating point num‐
227            bers are accepted as well. The style of rounding used may  or  may
228            not be what you wanted.
229
230       -Wno-ignored
231            Don't warn about ignored directives.
232
233       -Wno-jmp-bug
234            Don't  warn  about  the  jmp ($xxff) bug.  It's fine that the high
235            byte is read from the 'wrong'  address  on  6502,  NMOS  6502  and
236            65DTV02.
237
238       -Wno-label-left
239            Don't  warn  about certain labels not being on left side.  You may
240            disable this if you use labels which look like  mistyped  versions
241            of  implied addressing mode instructions and you don't want to put
242            them in the first column.
243
244       -Wno-page
245            Don't do an error for page crossing.
246
247       -Wno-pitfalls
248            Don't note on common pitfalls.  Experts don't need notes about how
249            to fix things ;)
250
251       -Wno-portable
252            Don't warn about source portability problems.
253
254       -Wno-size-larger
255            Don't  warn if size is larger due to negative offset Negative off‐
256            sets add space in front of memory area that's out of bound.  Some‐
257            times this may be fine.
258
259       -Wno-star-assign
260            Don't warn about ignored compound multiply.
261
262       -Wno-wrap-addr
263            Don't warn about address space calculation wrap around.  If a mem‐
264            ory location ends up outside of the processors address space  then
265            just wrap it around.
266
267       -Wno-wrap-bank0
268            Don't warn for bank 0 address calculation wrap around.
269
270       -Wno-wrap-dpage
271            Don't warn for direct page address calculation wrap around.
272
273       -Wno-wrap-mem
274            Don't  warn for compile offset wrap around.  Continue from the be‐
275            ginning of image file once it's end was reached.
276
277       -Wno-wrap-pbank
278            Don't warn for program bank address calculation wrap around.
279
280       -Wno-wrap-pc
281            Don't warn for program counter bank crossing.  If it's  data  only
282            and the programmer deals with it then this might be ok.
283
284       -Wold-equal
285            Warn  about  old  equal operator.  The single '=' operator is only
286            there for compatibility reasons and should be written as '==' nor‐
287            mally.
288
289       -Woptimize
290            Warn  about optimizable code.  Warns on things that could be opti‐
291            mized, at least according to the limited analysis done.
292
293       -Wshadow
294            Warn about symbol shadowing.  Checks if local  variables  'shadow'
295            other variables of same name in upper scopes in ambiguous ways.
296
297       -Wstrict-bool
298            Warn  about  implicit  boolean conversions.  Boolean values can be
299            interpreted as numeric 0/1 and other types as  booleans.  This  is
300            convenient but may cause mistakes.
301
302       -Wunused
303            Warn about unused constant symbols, any type.
304
305       -Wunused-const
306            Warn about unused constants.
307
308       -Wunused-label
309            Warn about unused labels.
310
311       -Wunused-macro
312            Warn about unused macros.
313
314       -Wunused-variable
315            Warn about unused variables.
316
317   Target selection options
318       --m65xx
319            Standard  65xx  (default).  For  writing compatible code, no extra
320            codes.  This is the default.
321
322       -c, --m65c02
323            CMOS 65C02. Enables extra opcodes and addressing modes specific to
324            this CPU.
325
326       --m65ce02
327            CSG 65CE02. Enables extra opcodes and addressing modes specific to
328            this CPU.
329
330       -i, --m6502
331            NMOS 65xx. Enables extra illegal opcodes. Useful for  demo  coding
332            for C64, disk drive code, etc.
333
334       -t, --m65dtv02
335            65DTV02. Enables extra opcodes specific to DTV.
336
337       -x, --m65816
338            W65C816. Enables extra opcodes. Useful for SuperCPU projects.
339
340       -e, --m65el02
341            65EL02. Enables extra opcodes, useful RedPower CPU projects. Prob‐
342            ably you'll need "--nostart" as well.
343
344       --mr65c02
345            R65C02. Enables extra opcodes and  addressing  modes  specific  to
346            this CPU.
347
348       --mw65c02
349            W65C02.  Enables  extra  opcodes  and addressing modes specific to
350            this CPU.
351
352       --m4510
353            CSG 4510. Enables extra opcodes and addressing modes  specific  to
354            this CPU. Useful for C65 projects.
355
356   Symbol listing options
357       -l file, --labels=file
358            List  labels  into file. May be used multiple times. The format is
359            remembered but root reverts to global after each file.
360
361       --labels-append=file
362            Append labels to file instead of overwriting it.
363
364       --labels-root=<path>
365            Specify the scope to list labels from.
366
367       --normal-labels
368            Lists labels in a 64tass readable format. (default)
369
370       --export-labels
371            List labels for include in a 64tass readable format. This will al‐
372            ways  compile  exported .proc/.pend blocks assuming they're needed
373            externally.
374
375       --vice-labels
376            List labels in a VICE readable format.
377
378       --vice-labels-numeric
379            List labels in a VICE  readable  format,  including  numeric  con‐
380            stants.
381
382       --dump-labels
383            List labels for debugging.
384
385   Assembly listing options
386       -L file, --list=file
387            List  into  file.  Dumps  source code and compiled code into file.
388            Useful for debugging, it's much easier to  identify  the  code  in
389            memory within the source files.
390
391       -m, --no-monitor
392            Don't  put  monitor  code into listing. There won't be any monitor
393            listing in the list file.
394
395       -s, --no-source
396            Don't put source code into listing.  There  won't  be  any  source
397            listing in the list file.
398
399       --line-numbers
400            This option creates a new column for showing line numbers for eas‐
401            ier identification of source origin.
402
403       --tab-size=number
404            By default the listing file is using a tab size of 8 to align  the
405            disassembly.  This  can  be changed to other more favorable values
406            like 4.  Only spaces are used if 1 is selected. Please  note  that
407            this has no effect on the source code on the right hand side.
408
409       --verbose-list
410            Normally  the  assembler tries to minimize listing output by omit‐
411            ting "unimportant" lines. But sometimes it's better to  just  list
412            everything including comments and empty lines.
413
414   Other options
415       -?, --help
416            Give this help list. Prints help about command line options.
417
418       --usage
419            Give  a  short usage message. Prints short help about command line
420            options.
421
422       -V, --version
423            Print program version.
424

EXIT STATUS

426       Normally the exit status is 0 if no error occured.
427

AUTHOR

429       Written by Zsolt Kajtar.
430

REPORTING BUGS

432       Online bug tracker: <https://sourceforge.net/p/tass64/bugs/>
433
435       Copyright © 2020 Zsolt Kajtar.  License GPLv2+: GNU GPL  version  2  or
436       later <http://gnu.org/licenses/gpl.html>.
437       This  is  free  software:  you  are free to change and redistribute it.
438       There is NO WARRANTY, to the extent permitted by law.
439

SEE ALSO

441       Full documentation at: <http://tass64.sourceforge.net/>
442
443
444
44564tass 1.56                       Apr 25 2021                        64tass(1)
Impressum