Provided by: 64tass_1.58.2974-1_amd64 bug

NAME

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

SYNOPSIS

       64tass [OPTION]... [SOURCES]...

DESCRIPTION

       64tass  is  cross  assembler targeting the 65xx series of micro processors. This manual is
       only describing the command line options. The many features  are  described  in  the  HTML
       manual.

OPTIONS

   Output options
       -o filename, --output filename
            Place  output  into  filename.  The  default  output filename is 'a.out', this option
            changes it. May be used multiple times. The format  is  remembered  but  section  and
            memory map file reverts to global after each file.

       --output-append filename
            Append to output file instead of overwriting it.

       --no-output
            Same as output but no file will be written.

       --map filename
            Place memory map into filename instead of displaying it.

       --map-append filename
            Append memory map to a file instead of displaying it.

       --no-map
            The memory map won't be displayed or recorded.

       --output-section sectionname
            Output this section instead of everything

       -X, --long-address
            Use  3  byte  address/length  for  CBM  and nonlinear output instead of 2 bytes. Also
            increases the size of raw output to 16 MiB.

       --cbm-prg
            Generate CBM format binaries (default).  The first 2  bytes  are  the  little  endian
            address of the first valid byte (start address). Overlapping blocks are flattened and
            uninitialized memory is filled up with zeros. Uninitialized memory before  the  first
            and  after  the  last  valid  bytes  are  not saved. Up to 64 KiB or 16 MiB with long
            address.

       -b, --nostart
            Output raw data only without start address.  Overlapping  blocks  are  flattened  and
            uninitialized  memory  is filled up with zeros. Uninitialized memory before the first
            and after the last valid bytes are not saved. Up to  64  KiB  or  16  MiB  with  long
            address.

       -f, --flat
            Flat  address  space output mode.  Overlapping blocks are flattened and uninitialized
            memory is filled up with zeros. Uninitialized memory after the last valid byte is not
            saved.  Up to 4 GiB.

       -n, --nonlinear
            Generate  nonlinear  output file.  Overlapping blocks are flattened. Blocks are saved
            in sorted order and uninitialized memory is skipped. Up to 64 KiB or 16 MiB with long
            address.

       --atari-xex
            Generate a Atari XEX output file.  Overlapping blocks are kept, continuing blocks are
            concatenated.  Saving  happens  in  the  definition  order   without   sorting,   and
            uninitialized memory is skipped in the output. Up to 64 KiB.

       --apple2
            Generate  a  Apple  II  output  file (DOS 3.3).  Overlapping blocks are flattened and
            uninitialized memory is filled up with zeros. Uninitialized memory before  the  first
            and after the last valid bytes are not saved. Up to 64 KiB.

       --intel-hex
            Use Intel HEX output file format.  Overlapping blocks are kept, data is stored in the
            definition order, and uninitialized areas are skipped. I8HEX up to 64 KiB, I32HEX  up
            to 4 GiB.

       --s-record
            Use  Motorola  S-record  output  file  format.   Overlapping blocks are kept, data is
            stored in the definition order, and uninitialized memory areas are skipped. S19 up to
            64 KiB, S28 up to 16 MiB and S37 up to 4 GiB.

   Operation options
       -a, --ascii
            Use  ASCII/Unicode  text encoding instead of raw 8-bit.  Normally no conversion takes
            place, this is for backwards compatibility with a DOS based Turbo  Assembler  editor,
            which  could  create  PETSCII  files  for  6502tass. (including control characters of
            course) Using this option will change the default 'none' and  'screen'  encodings  to
            map  'a'-'z' and 'A'-'Z' into the correct PETSCII range of $41-$5A and $C1-$DA, which
            is more suitable for an ASCII editor. It also adds predefined  petcat  style  PETSCII
            literals  to the default encodings, and enables Unicode letters in symbol names.  For
            writing sources in UTF-8/UTF-16 encodings this option is required!

       -B, --long-branch
            Automatic BXX *+5 JMP xxx. Branch  too  long  messages  can  be  annoying  sometimes,
            usually  they'll  need  to  be  rewritten  to  BXX  *+5  JMP  xxx. 64tass can do this
            automatically if this option is used. But BRA is not converted.

       -C, --case-sensitive
            Make all symbols (variables, opcodes, directives, operators,  etc.)  case  sensitive.
            Otherwise everything is case insensitive by default.

       -D label=value
            Defines  a  label  to  a value. Same syntax is allowed as in source files. Be careful
            with string quoting, the shell might eat some of the characters.

       -q, --quiet
            Suppress messages. Disables header and summary messages.

       -T, --tasm-compatible
            Enable TASM compatible operators and precedence  Switches  the  expression  evaluator
            into  compatibility mode. This enables '.', ':' and '!' operators and disables 64tass
            specific  extensions,  disables  precedence  handling  and  forces  16  bit  unsigned
            evaluation (see 'differences to original Turbo Assembler' below)

       -I path
            Specify  include search path.  If an included source or binary file can't be found in
            the directory of the source file then this path is tried. More than  one  directories
            can be specified by repeating this option. If multiple matches exist the first one is
            used.

       -M file, --dependencies file
            Specify make rule output file.  Writes a dependency rule suitable for 'make' from the
            list of files used during compilation.

       --make-phony
            Enable phony target generation for dependencies.

   Diagnostic options
       -E file, --error file
            Specify  error  output  file.   Normally compilation errors a written to the standard
            error output. It's possible to redirect them to a file or to the standard  output  by
            using '-' as the file name.

       --error-append file
            Append to error file instead of overwriting it.

       --no-error
            Do not output any errors, just count them.

       -w, --no-warn
            Suppress warnings. Disables warnings during compile. Finer grained warning control is
            available by using the -W options.

       --no-caret-diag
            Suppress displaying of faulty source line and fault position after fault messages.

       --macro-caret-diag
            Restrict source line and fault position display to macro expansions only.

       -Wall
            Enable most diagnostic warnings, except those  individually  disabled.  Or  with  the
            'no-' prefix disable all except those enabled.

       -Werror
            Make all diagnostic warnings to an error, except those individually set to a warning.

       -Werror=<name>
            Change  a  diagnostic  warning  to an error.  For example '-Werror=implied-reg' makes
            this check an error. The '-Wno-error=' variant is useful with '-Werror' to  set  some
            to warnings.

       -Walias
            Warns about alias opcodes.

       -Waltmode
            Warn  about  alternative  address  modes.  Sometimes alternative addressing modes are
            used as the fitting one is not available. For example there's no lda direct page y so
            instead data bank y is used with a warning.

       -Wbranch-page
            Warns  if a branch is crossing a page.  Page crossing branches execute with a penalty
            cycle. This option helps to locate them.

       -Wcase-symbol
            Warn if symbol letter case is used inconsistently.

       -Wimmediate
            Warns for cases where immediate addressing is more likely.   -Wimplied-reg  Warns  if
            implied  addressing  is  used  instead  of  register.  Some instructions have implied
            aliases like 'asl' for 'asl a' for compatibility reasons, but this shorthand not  the
            preferred form.

       -Wleading-zeros
            Warns  if  about leading zeros.  A leading zero could be a prefix for an octal number
            but as octals are not supported so the result will be decimal.

       -Wlong-branch
            Warns when a long branch is used.  This option gives a warning for instructions which
            were  modified  by  the  long  branch  function.   Less intrusive than disabling long
            branches and see where it fails.

       -Wmacro-prefix
            Warn about macro call without prefix.  Such macro calls can easily be mistaken to  be
            labels  if  invoked  without  parameters.  Also it's hard to notice that an unchanged
            call turned into label after the definition got renamed. This warning helps  to  find
            such calls so that prefixes can be added.

       -Wno-deprecated
            Don't  warn  about deprecated features.  Unfortunately there were some features added
            previously which shouldn't have been included. This option  disables  warnings  about
            their uses.

       -Wno-float-compare
            Don't  warn  if  floating  point  comparisons  are  only approximate.  Floating point
            numbers have a finite precision and comparing them might give unexpected results.

       -Wno-float-round
            Don't warn when floating point numbers are implicitly rounded.  A lot  of  parameters
            are  expecting integers but floating point numbers are accepted as well. The style of
            rounding used may or may not be what you wanted.

       -Wno-ignored
            Don't warn about ignored directives.

       -Wno-jmp-bug
            Don't warn about the jmp ($xxff) bug.  It's fine that the high byte is read from  the
            'wrong' address on 6502, NMOS 6502 and 65DTV02.

       -Wno-label-left
            Don't  warn about certain labels not being on left side.  You may disable this if you
            use labels which look like mistyped versions of implied addressing mode  instructions
            and you don't want to put them in the first column.

       -Wno-page
            Don't do an error for page crossing.

       -Wno-pitfalls
            Don't note on common pitfalls.  Experts don't need notes about how to fix things ;)

       -Wno-portable
            Don't warn about source portability problems.

       -Wno-size-larger
            Don't  warn  if  size  is larger due to negative offset Negative offsets add space in
            front of memory area that's out of bound. Sometimes this may be fine.

       -Wno-star-assign
            Don't warn about ignored compound multiply.

       -Wno-wrap-addr
            Don't warn about address space calculation wrap around.  If a memory location ends up
            outside of the processors address space then just wrap it around.

       -Wno-wrap-bank0
            Don't warn for bank 0 address calculation wrap around.

       -Wno-wrap-dpage
            Don't warn for direct page address calculation wrap around.

       -Wno-wrap-mem
            Don't warn for compile offset wrap around.  Continue from the beginning of image file
            once it's end was reached.

       -Wno-wrap-pbank
            Don't warn for program bank address calculation wrap around.

       -Wno-wrap-pc
            Don't warn for program counter bank crossing.  If it's data only and  the  programmer
            deals with it then this might be ok.

       -Wold-equal
            Warn  about  old  equal  operator.   The  single  '='  operator  is  only  there  for
            compatibility reasons and should be written as '==' normally.

       -Woptimize
            Warn about optimizable code.  Warns on things  that  could  be  optimized,  at  least
            according to the limited analysis done.

       -Wshadow
            Warn  about  symbol shadowing.  Checks if local variables 'shadow' other variables of
            same name in upper scopes in ambiguous ways.

       -Wstrict-bool
            Warn about implicit boolean  conversions.   Boolean  values  can  be  interpreted  as
            numeric 0/1 and other types as booleans. This is convenient but may cause mistakes.

       -Wunused
            Warn about unused constant symbols, any type.

       -Wunused-const
            Warn about unused constants.

       -Wunused-label
            Warn about unused labels.

       -Wunused-macro
            Warn about unused macros.

       -Wunused-variable
            Warn about unused variables.

   Target selection options
       --m65xx
            Standard  65xx  (default).  For writing compatible code, no extra codes.  This is the
            default.

       -c, --m65c02
            CMOS 65C02. Enables extra opcodes and addressing modes specific to this CPU.

       --m65ce02
            CSG 65CE02. Enables extra opcodes and addressing modes specific to this CPU.

       -i, --m6502
            NMOS 65xx. Enables extra illegal opcodes. Useful for demo coding for C64, disk  drive
            code, etc.

       -t, --m65dtv02
            65DTV02. Enables extra opcodes specific to DTV.

       -x, --m65816
            W65C816. Enables extra opcodes. Useful for SuperCPU projects.

       -e, --m65el02
            65EL02.  Enables  extra  opcodes,  useful RedPower CPU projects. Probably you'll need
            '--nostart' as well.

       --mr65c02
            R65C02. Enables extra opcodes and addressing modes specific to this CPU.

       --mw65c02
            W65C02. Enables extra opcodes and addressing modes specific to this CPU.

       --m4510
            CSG 4510. Enables extra opcodes and addressing modes specific to this CPU. Useful for
            C65 projects.

   Symbol listing options
       -l file, --labels=file
            List  labels into file. May be used multiple times. The format is remembered but root
            reverts to global after each file.

       --labels-append=file
            Append labels to file instead of overwriting it.

       --labels-root=<path>
            Specify the scope to list labels from.

       --normal-labels
            Lists labels in a 64tass readable format. (default)

       --export-labels
            List labels for include in  a  64tass  readable  format.  This  will  always  compile
            exported .proc/.pend blocks assuming they're needed externally.

       --vice-labels
            List labels in a VICE readable format.

       --vice-labels-numeric
            List labels in a VICE readable format, including numeric constants.

       --dump-labels
            List labels for debugging.

   Assembly listing options
       -L file, --list=file
            List  into file. Dumps source code and compiled code into file. Useful for debugging,
            it's much easier to identify the code in memory within the source files.

       --list-append=file
            Append list to file instead of overwriting it.

       -m, --no-monitor
            Don't put monitor code into listing. There won't be any monitor listing in  the  list
            file.

       -s, --no-source
            Don't  put  source  code  into listing. There won't be any source listing in the list
            file.

       --line-numbers
            This option creates a new column for showing line numbers for  easier  identification
            of source origin.

       --tab-size=number
            By  default  the listing file is using a tab size of 8 to align the disassembly. This
            can be changed to other more favorable values like 4.  Only spaces are used if  1  is
            selected.  Please  note  that this has no effect on the source code on the right hand
            side.

       --verbose-list
            Normally the assembler tries to minimize listing  output  by  omitting  'unimportant'
            lines. But sometimes it's better to just list everything including comments and empty
            lines.

   Other options
       -?, --help
            Give this help list. Prints help about command line options.

       --usage
            Give a short usage message. Prints short help about command line options.

       -V, --version
            Print program version.

EXIT STATUS

       Normally the exit status is 0 if no error occurred.

AUTHOR

       Written by Zsolt Kajtar.

REPORTING BUGS

       Online bug tracker: <https://sourceforge.net/p/tass64/bugs/>

COPYRIGHT

       Copyright  ©  2023  Zsolt  Kajtar.   License  GPLv2+:  GNU  GPL   version   2   or   later
       <http://gnu.org/licenses/gpl.html>.
       This  is free software: you are free to change and redistribute it.  There is NO WARRANTY,
       to the extent permitted by law.

SEE ALSO

       Full documentation at: <http://tass64.sourceforge.net/>