]> git.sur5r.net Git - cc65/blobdiff - doc/da65.sgml
Fixed _textcolor definition.
[cc65] / doc / da65.sgml
index cd9b6315b505c6cfa72b2e70ed9d44cafc7fdc3e..466b41984ad131380102c28145bd361ea194d5b3 100644 (file)
@@ -2,12 +2,13 @@
 
 <article>
 <title>da65 Users Guide
-<author>Ullrich von Bassewitz, <htmlurl url="mailto:uz@cc65.org" name="uz@cc65.org">
-<date>2003-08-08
+<author>
+<url url="mailto:uz@cc65.org" name="Ullrich von Bassewitz">,<newline>
+<url url="mailto:greg.king5@verizon.net" name="Greg King">
 
 <abstract>
-da65 is a 6502/65C02 disassembler that is able to read user supplied
-information about its input data for better results. The output is ready for
+da65 is a 6502/65C02 disassembler that is able to read user-supplied
+information about its input data, for better results. The output is ready for
 feeding into ca65, the macro assembler supplied with the cc65 C compiler.
 </abstract>
 
@@ -23,7 +24,7 @@ the cc65 C compiler and generates output that is suitable for the ca65
 macro assembler.
 
 Besides generating output for ca65, one of the design goals was that the user
-is able to feed additional information about the code into the disassembler
+is able to feed additional information about the code into the disassembler,
 for improved results. This information may include the location and size of
 tables, and their format.
 
@@ -51,18 +52,26 @@ Short options:
   -o name               Name the output file
   -v                    Increase verbosity
   -F                    Add formfeeds to the output
+  -s                    Accept line markers in the info file
   -S addr               Set the start/load address
   -V                    Print the disassembler version
 
 Long options:
+  --argument-column n   Specify argument start column
+  --comment-column n    Specify comment start column
   --comments n          Set the comment level for the output
   --cpu type            Set cpu type
   --debug-info          Add debug info to object file
   --formfeeds           Add formfeeds to the output
   --help                Help (this text)
+  --hexoffs             Use hexadecimal label offsets
   --info name           Specify an info file
+  --label-break n       Add newline if label exceeds length n
+  --mnemonic-column n   Specify mnemonic start column
   --pagelength n        Set the page length for the listing
   --start-addr addr     Set the start/load address
+  --sync-lines          Accept line markers in the info file
+  --text-column n       Specify text start column
   --verbose             Increase verbosity
   --version             Print the disassembler version
 ---------------------------------------------------------------------------
@@ -75,11 +84,24 @@ Here is a description of all the command line options:
 
 <descrip>
 
+  <label id="option--argument-column">
+  <tag><tt>--argument-column n</tt></tag>
+
+  Specifies the column where the argument for a mnemonic or pseudo instruction
+  starts.
+
+
+  <label id="option--comment-column">
+  <tag><tt>--comment-column n</tt></tag>
+
+  Specifies the column where the comment for an instruction starts.
+
+
   <label id="option--comments">
   <tag><tt>--comments n</tt></tag>
 
   Set the comment level for the output. Valid arguments are 0..4. Greater
-  values will increase the level of additional information written to the 
+  values will increase the level of additional information written to the
   output file in form of comments.
 
 
@@ -87,10 +109,18 @@ Here is a description of all the command line options:
   <tag><tt>--cpu type</tt></tag>
 
   Set the CPU type. The option takes a parameter, which may be one of
+  <itemize>
+  <item>6502
+  <item>6502x
+  <item>65sc02
+  <item>65c02
+  <item>huc6280
+  <item>4510
+  </itemize>
 
-               6502, 65SC02, 65C02
-
-  Support for the 65816 is currently not available.
+  6502x is for the NMOS 6502 with unofficial opcodes. huc6280 is the CPU of
+  the PC engine. 4510 is the CPU of the Commodore C65. Support for the 65816
+  currently is not available.
 
 
   <label id="option--formfeeds">
@@ -105,7 +135,7 @@ Here is a description of all the command line options:
   <tag><tt>-g, --debug-info</tt></tag>
 
   This option adds the <tt/.DEBUGINFO/ command to the output file, so the
-  assembler will generate debug information when reassembling the generated
+  assembler will generate debug information when re-assembling the generated
   output.
 
 
@@ -114,6 +144,12 @@ Here is a description of all the command line options:
   Print the short option summary shown above.
 
 
+  <label id="option--hexoffs">
+  <tag><tt>--hexoffs</tt></tag>
+
+  Output label offsets in hexadecimal instead of decimal notation.
+
+
   <label id="option--info">
   <tag><tt>-i name, --info name</tt></tag>
 
@@ -126,10 +162,27 @@ Here is a description of all the command line options:
   <label id="option-o">
   <tag><tt>-o name</tt></tag>
 
-  The default output name is the name of the input file with the extension
-  replaced by ".dis". If you don't like that, you may give another name with
-  the -o option. The output file will be placed in the same directory as
-  the source file, or, if -o is given, the full path in this name is used.
+  Specify a name for an output file. The default is to use <tt/stdout/, so
+  without this switch or the corresponding <ref id="global-options"
+  name="global option"> <tt><ref id="OUTPUTNAME" name="OUTPUTNAME"></tt>,
+  the output will go to the terminal.
+
+
+  <label id="option--label-break">
+  <tag><tt>--label-break n</tt></tag>
+
+  Adds a newline if the length of a label exceeds the given length.
+  Note: If the label would run into the code in the mid column, a
+  linefeed is always inserted regardless of this setting.
+
+  This option overrides the <ref id="global-options" name="global option">
+  <tt><ref id="LABELBREAK" name="LABELBREAK"></tt>.
+
+
+  <label id="option--mnemonic-column">
+  <tag><tt>--mnemonic-column n</tt></tag>
+
+  Specifies the column where a mnemonic or pseudo instrcuction is output.
 
 
   <label id="option--pagelength">
@@ -140,7 +193,7 @@ Here is a description of all the command line options:
   name="--formfeeds"></tt> is also given, a formfeed is inserted before
   generating the page header.
 
-  A value of -1 for the page length will disable paging of the output.
+  A value of zero for the page length will disable paging of the output.
 
 
   <label id="option--start-addr">
@@ -148,9 +201,27 @@ Here is a description of all the command line options:
 
   Specify the start/load address of the binary code that is going to be
   disassembled. The given address is interpreted as an octal value if
-  preceeded with a '0' digit, as a hexadecimal value if preceeded with '0x',
-  '0X', or '$', and as a decimal value in all other cases. If no start address
-  is specified, $10000 minus the size of the input file is used.
+  preceded with a '0' digit, as a hexadecimal value if preceded
+  with '0x', '0X', or '$', and as a decimal value in all other cases. If no
+  start address is specified, $10000 minus the size of the input file is used.
+
+
+  <label id="option--sync-lines">
+  <tag><tt>-s, --sync-lines</tt></tag>
+
+  Accept line markers in the info file in the following syntax:
+<tscreen><verb>
+#line <lineno> ["<filename>"]
+# <lineno> "<filename>" [<flag>] ...
+</verb></tscreen>
+  This option is intended for preprocessing info files with "cpp" or "m4".
+
+
+  <label id="option--text-column">
+  <tag><tt>--text-column n</tt></tag>
+
+  Specifies the column where additional text is output. This additional text
+  consists of the bytes encoded in this line in text representation.
 
 
   <tag><tt>-v, --verbose</tt></tag>
@@ -182,6 +253,11 @@ disassembler may be told to recognize either the 65SC02 or 65C02 CPUs. The
 latter understands the same opcodes as the former, plus 16 additional bit
 manipulation and bit test-and-branch commands.
 
+When disassembling 4510 code, due to handling of 16-bit wide branches, da65
+can produce output that can not be re-assembled, when one or more of those
+branches point outside of the disassembled memory. This can happen when text
+or binary data is processed.
+
 While there is some code for the 65816 in the sources, it is currently
 unsupported.
 
@@ -191,7 +267,7 @@ unsupported.
 The disassembler works by creating an attribute map for the whole address
 space ($0000 - $FFFF). Initially, all attributes are cleared. Then, an
 external info file (if given) is read. Disassembly is done in several passes.
-In all passes with the exception of the last one, information about the
+In all passes, with the exception of the last one, information about the
 disassembled code is gathered and added to the symbol and attribute maps. The
 last pass generates output using the information from the maps.
 
@@ -217,7 +293,7 @@ name="next section"> for more information.
 
 
 
-<sect>Info File Format<p><label id="infofile">
+<sect>Info File Format<label id="infofile"><p>
 
 The info file contains lists of specifications grouped together. Each group
 directive has an identifying token and an attribute list enclosed in curly
@@ -225,69 +301,143 @@ braces. Attributes have a name followed by a value. The syntax of the value
 depends on the type of the attribute. String attributes are places in double
 quotes, numeric attributes may be specified as decimal numbers or hexadecimal
 with a leading dollar sign. There are also attributes where the attribute
-value is a keyword, in this case the keyword is given as is (without quotes or
+value is a keyword; in this case, the keyword is given as-is (without quotes or
 anything). Each attribute is terminated by a semicolon.
 
 <tscreen><verb>
-               group-name { attribute1 attribute-value; attribute2 attribute-value; }
+        group-name { attribute1 attribute-value; attribute2 attribute-value; }
 </verb></tscreen>
 
 
-<sect1>Specifying global options<p>
+<sect1>Comments<p>
+
+Comments start with a hash mark (<tt/#/) or a double slash (<tt>//</tt>);
+and, extend from the position of the mark to the end of the current line.
+Hash marks or double slashes inside of strings will <em/not/ start a comment,
+of course.
+
+
+<sect1>Specifying global options<label id="global-options"><p>
 
 Global options may be specified in a group with the name <tt/GLOBAL/. The
 following attributes are recognized:
 
 <descrip>
 
-  <tag><tt>COMMENTS</tt></tag>
+  <tag><tt/ARGUMENTCOLUMN/</tag>
+  This attribute specifies the column in the output, where the argument for
+  an opcode or pseudo instruction starts. The corresponding command line
+  option is
+  <tt><ref id="option--argument-column" name="--argument-column"></tt>.
+
+
+  <tag><tt/COMMENTCOLUMN/</tag>
+  This attribute specifies the column in the output, where the comment starts
+  in a line. It is only used for in-line comments. The corresponding command
+  line option is
+  <tt><ref id="option--comment-column" name="--comment-column"></tt>.
 
+
+  <label id="COMMENTS">
+  <tag><tt/COMMENTS/</tag>
   This attribute may be used instead of the <tt><ref id="option--comments"
   name="--comments"></tt> option on the command line. It takes a numerical
   parameter between 0 and 4. Higher values increase the amount of information
   written to the output file in form of comments.
 
 
-  <tag><tt>CPU</tt></tag>
-
+  <tag><tt/CPU/</tag>
   This attribute may be used instead of the <tt><ref id="option--cpu"
-  name="--cpu"></tt> option on the command line. It takes a string parameter.
+  name="--cpu"></tt> option on the command line. For possible values see
+  there. The value is a string and must be enclosed in quotes.
 
 
-  <tag><tt>INPUTNAME</tt></tag>
+  <tag><tt/HEXOFFS/</tag>
+  The attribute is followed by a boolean value. If true, offsets to labels are
+  output in hex, otherwise they're output in decimal notation. The default is
+  false. The attribute may be changed on the command line using the <tt><ref
+  id="option--hexoffs" name="--hexoffs"></tt> option.
 
+
+  <tag><tt/INPUTNAME/</tag>
   The attribute is followed by a string value, which gives the name of the
   input file to read. If it is present, the disassembler does not accept an
   input file name on the command line.
 
 
-  <tag><tt>OUTPUTNAME</tt></tag>
+  <tag><tt/INPUTOFFS/</tag>
+  The attribute is followed by a numerical value that gives an offset into
+  the input file which is skipped before reading data. The attribute may be
+  used to skip headers or unwanted code sections in the input file.
+
 
+  <tag><tt/INPUTSIZE/</tag>
+  <tt/INPUTSIZE/ is followed by a numerical value that gives the amount of
+  data to read from the input file. Data beyond <tt/INPUTOFFS + INPUTSIZE/
+  is ignored.
+
+
+  <label id="LABELBREAK">
+  <tag><tt/LABELBREAK/</tag>
+  <tt/LABELBREAK/ is followed by a numerical value that specifies the label
+  length that will force a newline. To have all labels on their own lines,
+  you may set this value to zero.
+
+  See also the <tt><ref id="option--label-break" name="--label-break"></tt>
+  command line option. A <tt/LABELBREAK/ statement in the info file will
+  override any value given on the command line.
+
+
+  <tag><tt/MNEMONICCOLUMN/</tag>
+  This attribute specifies the column in the output, where the mnemonic or
+  pseudo instruction is placed. The corresponding command line option is
+  <tt><ref id="option--mnemonic-column" name="--mnemonic-column"></tt>.
+
+
+  <tag><tt/NEWLINEAFTERJMP/</tag>
+  This attribute is followed by a boolean value. When true, a newline is
+  inserted after each <tt/JMP/ instruction. The default is false.
+
+
+  <tag><tt/NEWLINEAFTERRTS/</tag>
+  This attribute is followed by a boolean value. When true, a newline is
+  inserted after each <tt/RTS/ instruction. The default is false.
+
+
+  <label id="OUTPUTNAME">
+  <tag><tt/OUTPUTNAME/</tag>
   The attribute is followed by string value, which gives the name of the
   output file to write. If it is present, specification of an output file on
   the command line using the <tt><ref id="option-o" name="-o"></tt> option is
   not allowed.
 
-  If no output name is specified, the name of the input file with the
-  extension replaced by ".dis" is used.
-
+  The default is to use <tt/stdout/ for output, so without this attribute or
+  the corresponding command line option <tt/<ref id="option-o" name="-o">/
+  the output will go to the terminal.
 
-  <tag><tt>PAGELENGTH</tt></tag>
 
+  <tag><tt/PAGELENGTH/</tag>
   This attribute may be used instead of the <tt><ref id="option--pagelength"
   name="--pagelength"></tt> option on the command line. It takes a numerical
   parameter. Using zero as page length (which is the default) means that no
   pages are generated.
 
 
-  <tag><tt>STARTADDR</tt></tag>
-
+  <tag><tt/STARTADDR/</tag>
   This attribute may be used instead of the <tt><ref id="option--start-addr"
   name="--start-addr"></tt> option on the command line. It takes a numerical
   parameter. The default for the start address is $10000 minus the size of
   the input file (this assumes that the input file is a ROM that contains the
   reset and irq vectors).
 
+
+  <tag><tt/TEXTCOLUMN/</tag>
+  This attribute specifies the column, where the data bytes are output
+  translated into ASCII text. It is only used if
+  <tt><ref id="COMMENTS" name="COMMENTS"></tt> is set to at least 4. The
+  corresponding command line option is
+  <tt><ref id="option--text-column" name="--text-column"></tt>.
+
 </descrip>
 
 
@@ -298,48 +448,50 @@ following attributes are recognized:
 
 <descrip>
 
-  <tag><tt>START</tt></tag>
-
-  This gives the start address of the range.
-
+  <tag><tt>COMMENT</tt></tag>
+  This attribute is only allowed if a label is also given. It takes a string
+  as argument. See the description of the <tt><ref id="infofile-label"
+  name="LABEL"></tt> directive for an explanation.
 
   <tag><tt>END</tt></tag>
-
   This gives the end address of the range. The end address is inclusive, that
   means, it is part of the range. Of course, it may not be smaller than the
   start address.
 
+  <tag><tt>NAME</tt></tag>
+  This is a convenience attribute. It takes a string argument and will cause
+  the disassembler to define a label for the start of the range with the
+  given name. So a separate <tt><ref id="infofile-label" name="LABEL"></tt>
+  directive is not needed.
 
-  <tag><tt>TYPE</tt></tag>
+  <tag><tt>START</tt></tag>
+  This gives the start address of the range.
 
+  <tag><tt>TYPE</tt></tag>
   This attribute specifies the type of data within the range. The attribute
   value is one of the following keywords:
 
   <descrip>
-    <tag><tt>CODE</tt></tag>
-    The range consists of code.
+    <tag><tt>ADDRTABLE</tt></tag>
+    The range consists of data and is disassembled as a table of words
+    (16 bit values). The difference to the <tt/WORDTABLE/ type is that
+    a label is defined for each entry in the table.
 
     <tag><tt>BYTETABLE</tt></tag>
     The range consists of data and is disassembled as a byte table.
 
+    <tag><tt>CODE</tt></tag>
+    The range consists of code.
+
     <tag><tt>DBYTETABLE</tt></tag>
     The range consists of data and is disassembled as a table of dbytes
     (double byte values, 16 bit values with the low byte containing the
     most significant byte of the 16 bit value).
 
-    <tag><tt>WORDTABLE</tt></tag>
-    The range consists of data and is disassembled as a table of words
-    (16 bit values).
-
     <tag><tt>DWORDTABLE</tt></tag>
     The range consists of data and is disassembled as a table of double
     words (32 bit values).
 
-    <tag><tt>ADDRTABLE</tt></tag>
-    The range consists of data and is disassembled as a table of words
-    (16 bit values). The difference to the <tt/WORDTABLE/ type is that
-    a label is defined for each entry in the table.
-
     <tag><tt>RTSTABLE</tt></tag>
     The range consists of data and is disassembled as a table of words (16 bit
     values). The values are interpreted as words that are pushed onto the
@@ -347,39 +499,139 @@ following attributes are recognized:
     <tt/address-1/ of a function, for which a label will get defined by the
     disassembler.
 
+    <tag><tt>SKIP</tt></tag>
+    The range is simply ignored when generating the output file. Please note
+    that this means that reassembling the output file will <em/not/ generate
+    the original file, not only because the missing piece in between, but also
+    because the following code will be located on wrong addresses. Output
+    generated with <tt/SKIP/ ranges will need manual rework.
+
     <tag><tt>TEXTTABLE</tt></tag>
     The range consists of readable text.
+
+    <tag><tt>WORDTABLE</tt></tag>
+    The range consists of data and is disassembled as a table of words
+    (16 bit values).
+
   </descrip>
 
 </descrip>
 
 
-<sect1>Specifying Labels<p>
+<sect1>Specifying Labels<label id="infofile-label"><p>
 
 The <tt/LABEL/ directive is used to give names for labels in the disassembled
 code. The following attributes are recognized:
 
 <descrip>
 
-  <tag><tt>NAME</tt></tag>
+  <tag><tt>ADDR</tt></tag>
+  Followed by a numerical value. Specifies the value of the label.
 
-  The attribute is followed by a string value which gives the name of the
-  label.
+  <tag><tt>COMMENT</tt></tag>
+  Attribute argument is a string. The comment will show up in a separate line
+  before the label, if the label is within code or data range, or after the
+  label if it is outside.
 
+  Example output:
 
-  <tag><tt>ADDR</tt></tag>
+<tscreen><verb>
+        foo     := $0001        ; Comment for label named "foo"
 
-  Followed by a numerical value. Specifies the value of the label.
+        ; Comment for label named "bar"
+        bar:
+</verb></tscreen>
 
+  <tag><tt>NAME</tt></tag>
+  The attribute is followed by a string value which gives the name of the
+  label. Empty names are allowed, in this case the disassembler will create
+  an unnamed label (see the assembler docs for more information about unnamed
+  labels).
 
   <tag><tt>SIZE</tt></tag>
-
-  This attribute is optional and may be used to specifiy the size of the data
+  This attribute is optional and may be used to specify the size of the data
   that follows. If a size greater than 1 is specified, the disassembler will
   create labels in the form <tt/label+offs/ for all bytes within the given
   range, where <tt/label/ is the label name given with the <tt/NAME/
   attribute, and <tt/offs/ is the offset within the data.
 
+  <tag><tt>PARAMSIZE</tt></tag>
+  This optional attribute is followed by a numerical value. It tells the
+  assembler that subroutine calls to this label are followed by
+  "inline parameters" with the given number of bytes, like this:
+
+<tscreen><verb>
+        JSR     LabelWithParamSize2
+        .byte   $00, $10
+        (return here)
+        code...
+</verb></tscreen>
+
+</descrip>
+
+
+<sect1>Specifying Segments<label id="infofile-segment"><p>
+
+The <tt/SEGMENT/ directive is used to specify a segment within the
+disassembled code. The following attributes are recognized:
+
+<descrip>
+
+  <tag><tt>START</tt></tag>
+  Followed by a numerical value. Specifies the start address of the segment.
+
+  <tag><tt>END</tt></tag>
+  Followed by a numerical value. Specifies the end address of the segment. The
+  end address is the last address that is a part of the segment.
+
+  <tag><tt>NAME</tt></tag>
+  The attribute is followed by a string value which gives the name of the
+  segment.
+</descrip>
+
+All attributes are mandatory. Segments must not overlap. The disassembler will
+change back to the (default) <tt/.code/ segment after the end of each defined
+segment. That might not be what you want. As a rule of thumb, if you're using
+segments, you should define segments for all disassembled code.
+
+
+<sect1>Specifying Assembler Includes<label id="infofile-asminc"><p>
+
+The <tt/ASMINC/ directive is used to give the names of input files containing
+symbol assignments in assembler syntax:
+
+<tscreen><verb>
+        Name = value
+        Name := value
+</verb></tscreen>
+
+The usual conventions apply for symbol names. Values may be specified as hex
+(leading &dollar;), binary (leading %) or decimal. The values may optionally
+be signed.
+
+NOTE: The include file parser is very simple. Expressions are not allowed, and
+anything but symbol assignments is flagged as an error (but see the
+<tt/IGNOREUNKNOWN/ directive below).
+
+The following attributes are recognized:
+
+<descrip>
+
+  <tag><tt>FILE</tt></tag>
+  Followed by a string value. Specifies the name of the file to read.
+
+  <tag><tt>COMMENTSTART</tt></tag>
+  The optional attribute is followed by a character constant. It specifies the
+  character that starts a comment. The default value is a semicolon. This
+  value is ignored if <tt/IGNOREUNKNOWN/ is true.
+
+  <tag><tt>IGNOREUNKNOWN</tt></tag>
+  This attribute is optional and is followed by a boolean value. It allows to
+  ignore input lines that don't have a valid syntax. This allows to read in
+  assembler include files that contain more than just symbol assignments.
+  Note: When this attribute is used, the disassembler will ignore any errors
+  in the given include file. This may have undesired side effects.
+
 </descrip>
 
 
@@ -389,64 +641,56 @@ The following is a short example for an info file that contains most of the
 directives explained above:
 
 <tscreen><verb>
+        # This is a comment. It extends to the end of the line
         GLOBAL {
-                OUTPUTNAME "kernal.s";
-                INPUTNAME  "kernal.bin";
-                STARTADDR  $E000;
-                PAGELENGTH 0;          # No paging
-                CPU        "6502";
+            OUTPUTNAME      "kernal.s";
+            INPUTNAME       "kernal.bin";
+            STARTADDR       $E000;
+            PAGELENGTH      0;                  # No paging
+            CPU             "6502";
         };
 
+        # One segment for the whole stuff
+        SEGMENT { START $E000;  END   $FFFF; NAME "kernal"; };
 
-        RANGE {        START $E612;    END   $E631; TYPE Code;      };
-        RANGE {        START $E632;    END   $E640; TYPE ByteTable; };
-        RANGE {        START $EA51;    END   $EA84; TYPE RtsTable;  };
-        RANGE { START $EC6C;   END   $ECAB; TYPE RtsTable;  };
-        RANGE {        START $ED08;    END   $ED11; TYPE AddrTable; };
+        RANGE { START $E612;    END   $E631; TYPE Code;      };
+        RANGE { START $E632;    END   $E640; TYPE ByteTable; };
+        RANGE { START $EA51;    END   $EA84; TYPE RtsTable;  };
+        RANGE { START $EC6C;    END   $ECAB; TYPE RtsTable;  };
+        RANGE { START $ED08;    END   $ED11; TYPE AddrTable; };
 
-        # Zero page variables
-        LABEL { NAME "fnadr";          ADDR  $90;   SIZE 3;    };
-        LABEL { NAME "sal";    ADDR  $93;   };
-        LABEL { NAME "sah";    ADDR  $94;   };
-        LABEL { NAME "sas";    ADDR  $95;   };
+        # Zero-page variables
+        LABEL { NAME "fnadr";   ADDR  $90;   SIZE 3;    };
+        LABEL { NAME "sal";     ADDR  $93;   };
+        LABEL { NAME "sah";     ADDR  $94;   };
+        LABEL { NAME "sas";     ADDR  $95;   };
 
         # Stack
-        LABEL { NAME "stack";          ADDR  $100;  SIZE 255;  };
+        LABEL { NAME "stack";   ADDR  $100;  SIZE 255;  };
 
         # Indirect vectors
-        LABEL { NAME "cinv";           ADDR  $300;  SIZE 2;    };      # IRQ
-        LABEL { NAME "cbinv";          ADDR  $302;  SIZE 2;    };      # BRK
-        LABEL { NAME "nminv";          ADDR  $304;  SIZE 2;    };      # NMI
+        LABEL { NAME "cinv";    ADDR  $300;  SIZE 2;    };      # IRQ
+        LABEL { NAME "cbinv";   ADDR  $302;  SIZE 2;    };      # BRK
+        LABEL { NAME "nminv";   ADDR  $304;  SIZE 2;    };      # NMI
 
         # Jump table at end of kernal ROM
-        LABEL { NAME "kscrorg";        ADDR  $FFED; };
-        LABEL { NAME "kplot";          ADDR  $FFF0; };
-        LABEL { NAME "kiobase";        ADDR  $FFF3; };
-        LABEL { NAME "kgbye";  ADDR  $FFF6; };
+        LABEL { NAME "kscrorg"; ADDR  $FFED; };
+        LABEL { NAME "kplot";   ADDR  $FFF0; };
+        LABEL { NAME "kiobase"; ADDR  $FFF3; };
+        LABEL { NAME "kgbye";   ADDR  $FFF6; };
 
         # Hardware vectors
-        LABEL { NAME "hanmi";          ADDR  $FFFA; };
-        LABEL { NAME "hares";          ADDR  $FFFC; };
-        LABEL { NAME "hairq";          ADDR  $FFFE; };
+        LABEL { NAME "hanmi";   ADDR  $FFFA; };
+        LABEL { NAME "hares";   ADDR  $FFFC; };
+        LABEL { NAME "hairq";   ADDR  $FFFE; };
 </verb></tscreen>
 
 
 
-
-
-<sect>Bugs/Feedback<p>
-
-If you have problems using the disassembler, if you find any bugs, or if
-you're doing something interesting with the assembler, I would be glad to hear
-from you. Feel free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
-name="uz@cc65.org">).
-
-
-
 <sect>Copyright<p>
 
-da65 (and all cc65 binutils) are (C) Copyright 1998-2003 Ullrich von
-Bassewitz. For usage of the binaries and/or sources the following
+da65 (and all cc65 binutils) is (C) Copyright 1998-2011, Ullrich von
+Bassewitz. For usage of the binaries and/or sources, the following
 conditions do apply:
 
 This software is provided 'as-is', without any expressed or implied
@@ -458,20 +702,16 @@ including commercial applications, and to alter it and redistribute it
 freely, subject to the following restrictions:
 
 <enum>
-<item>         The origin of this software must not be misrepresented; you must not
-               claim that you wrote the original software. If you use this software
-               in a product, an acknowledgment in the product documentation would be
-       appreciated but is not required.
-<item> Altered source versions must be plainly marked as such, and must not
-       be misrepresented as being the original software.
-<item> This notice may not be removed or altered from any source
-       distribution.
+<item>  The origin of this software must not be misrepresented; you must not
+        claim that you wrote the original software. If you use this software
+        in a product, an acknowledgment in the product documentation would be
+        appreciated but is not required.
+<item>  Altered source versions must be plainly marked as such, and must not
+        be misrepresented as being the original software.
+<item>  This notice may not be removed or altered from any source
+        distribution.
 </enum>
 
 
 
 </article>
-
-
-
-