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

EXIT STATUS

472       Normally the exit status is 0 if no error occurred.
473

AUTHOR

475       Written by Zsolt Kajtar.
476

REPORTING BUGS

478       Online bug tracker: <https://sourceforge.net/p/tass64/bugs/>
479
481       Copyright  ©  2023  Zsolt Kajtar.  License GPLv2+: GNU GPL version 2 or
482       later <http://gnu.org/licenses/gpl.html>.
483       This is free software: you are free  to  change  and  redistribute  it.
484       There is NO WARRANTY, to the extent permitted by law.
485

SEE ALSO

487       Full documentation at: <http://tass64.sourceforge.net/>
488
489
490
49164tass 1.59                       Sep 10 2023                        64tass(1)
Impressum