Date: 12-MAY-1987 12:22:43
From: SYSKERMIT%vax1.central.lancaster.ac.uk@Cs.Ucl.AC.UK
Subject: File BBCASM.ANN

65C02 Assembler 1.50
--------------------

This version is now available, and contains some extra user facilities and bug
clearances. The main ones are:

  - New command line options have been added. They are:

          -Mn     Switches to screen mode n before assembly starts
          -W      Instructs the assembler to wait after outputting an error
                  message until a key is pressed (actioned only if the listing
                  is being sent to the screen)
          -G      Instructs the Assembler not to pause at the end of assembly,
                  but restart the calling language immediately. The default
                  action is to pause unless the calling language is BASIC

  - The command line syntax has been extended, so that options can be set in
    a shorter way. Thus

          *ASSEMBLE SOURCE -B6 -L2 -W

    could be written as

          *ASSEMBLER SOURCE -B6L2W


    The "-O" flag for the object file is now optional, and the assembler will
    take the second parameter of the command as the object file name *unless*
    it begins with a "-". Thus

          *ASSEMBLE SOURCE -OBIN

    can be written

          *ASSEMBLE SOURCE BIN


  - If the assembler is fitted as the highest priority language, pressing
    CONTROL-BREAK or powering on will enter it in CLI mode. MOS commands can
    then be issued to change to another language if required.

  - A new service command *MODE n allows you to change screen mode to n even
    when in CLI mode and the BASIC MODE statement is not available.

  - The assembler will exit to the language ROM that called it, rather than
    restarting BASIC.

  - Bugs in the initialisation code have been cleared so the assembler can now
    be started from any language, and will start reliably on second processors

  - Control keys can be used to direct assembly actions while the assembly is
    under way. They are:

          f0..f3  Force list level to change to 0..3 . After pressing one of
                  these keys, LST directives are processed but not actioned.
                  CONTROL-L resets the list level to that set by the last
                  LST directive encountered.

          CTRL-Q  Outputs a report showing the number of the next line to be
                  processed

          CTRL-W  Reverses the current wait-after-error action

          CTRL-P  Reverses the current state of the list-to-printer option

          CTRL-N  Turns paged scroll mode on

          CTRL-O  Turns paged scroll mode off

          CTRL-H  Displays help information about key usage

          SPACE   Pauses assembly until a key is pressed

 - Tab handling in the listing is extended, so that they are set at every 8
   character positions in the operand and comment fields.

 - A new directive SYSCLI allows MOS commands to be issued from the source
   during assembly.

 - The strings output by DISP and similar directives can include |M or |J
   to start a new line, or |G to ring the bell.

 - New directives CASC and CSTR plant "counted strings". They are similar to 
   ASC and STR, but precede the string itself with a byte giving the length of
   the string. (On version 1.32 the ALEN directive could be used in a macro
   to do this, but control-characters and those with B7 set, selected as
   |X and ^X, would be counted as 2, rather than 1, character)

 - For symmetry, extra data planting directives have been added, so that

                DFB   and   DB    plant bytes
                DFDB  and   DDB   plant low-high words
                DFW   and   DW    plant high-low words
                DFS   and   DS    reserve space

 - A new directive DEFPARS allows defaults to be specified for macro 
   parameters.

 - *HELP ASSEMBLER gives information on command usage.

 - The opcode mnemonic CLR has been added as a synonym of STZ, for 
   compatibility with the mnemonics in the BASIC assembler.

 - The character "\" can now be used to flag the start of comment

 - Hexadecimal constants can be begun with a "&" character (in fact, they
   always could - the 1.32 User Guide was wrong!)

 - Error reporting has been enhanced, so that where appropriate the message
   will indicate the position in the line the error occurred.

 - Screen output in mode 0 now correctly uses a width of 80 bytes, rather than
   40.

 - Saved Wordwise files can be input directly as source, providing they
   contain no embedded commands. The Wordwise TAB character (shown as a right-
   arrow on screen) is accepted as a "real" TAB.

Full details of the Assembler are contained in the User Guide, which has been
expanded with much greater descriptive detail.

----------------------------------------------

From:	SYSKERMIT@UK.AC.LANCS.VAX1 "UK Kermit Distribution"
Date:	24-FEB-1987 09:32
Subj:	Update to Lancaster 65C02 Assembler

Version 1.52 of the Lancaster 65C02 Assembler is now available. This is a bug-
fix release, and contains no extra user facilities. Problems fixed are:

 - Immediate operands can be negative numbers. Thus expressions such as
                          LDA   #-1
   now work, planting, in this case, A9 FF as you would expect. The expression
   will still be rejected if loss of the most significant byte would cause a
   change of sign.

 - The 65C02-only mnemonics INA and DEA now produce the correct opcodes (Note
   that this problem was already fixed in versiin 1.5T as broadcast by BBC
   Telesoftware)

 - An EXEC file can be used to provide the replies to the QUERY directive. In
   1.50 the replies were taken as keypresses and were ignored.

 - The symbol table listing is not corrupted if SPACE is pressed while it is
   being generated

 - JSR to a zero-page address is correctly assembled. In 1.50 it was treated as
   an invalid addressing mode.

 - DS with an operand of zero now leaves a zero-length gap rather than a 64K 
   gap

 - Repeat counts > 255 in DFB, etc, now work correctly
