164tass(1) 64tass 1.59 64tass(1)
2
3
4
6 64tass - A multi pass optimizing macro assembler for the 65xx series of
7 processors
8
10 64tass [OPTION]... [SOURCES]...
11
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
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
472 Normally the exit status is 0 if no error occurred.
473
475 Written by Zsolt Kajtar.
476
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
487 Full documentation at: <http://tass64.sourceforge.net/>
488
489
490
49164tass 1.59 Sep 10 2023 64tass(1)