!lm12
!rm75
Funny Opcode Names in the 6801 Manual......Bob Sander-Cederlof

Paul Lundgren (of Microcomp, Inc. in Newtown, CT) brought some interesting facts to my attention today.  When I implemented my 6801 Cross Assemblers, I used what was at the time the latest documentatin available.  Paul had some printed two years later, and there were some differences.

For some reason, the Motorola 6801 Reference Manual changes the name of the ASL and ASLD opcodes to LSL and LSLD.  There is no difference in operation, just a difference in spelling.  The S-C Cross Assembler only recognizes the ASL and ASLD spellings.  The opcode tables are near the end of the assembler, so you can easily find these entries to change them if you feel strongly about it.

The Motorola book also lists alias names for the BCC and BCS opcodes.  In the 6801 (or other 68xx chips), carry clear means the last test was greater or equal, so the alias name is BHS (Branch if High or Same).  Carry set means the test was smaller, so the alias is BLO.  Note that the meaning of carry after a comparison in the 68xx chips is exactly the opposite of carry in the 6502!

Here are some macros to use for BHS and BLO:

!lm+5
       .MA BHS
       BCC ]1
       .EM

       .MA BLO
       BCS ]1
       .EM
!lm-5

Some assemblers for the 6502 have two alias opcodes for BCC and BCS.  For example, LISA has BLT for BCC (Branch if Less Than), and BGE for BCS (Branch if Greater than or Equal).  [ I didn't do this in the S-C Assemblers because the meaning depends on whether the values tested are considered to be signed or unsigned. ]

Here are two macros to implement BLT and BGE in the 6502 version of the S-C Macro Assembler:

!lm+5
       .MA BLT
       BCC ]1
       .EM

       .MA BGE
       BCS ]1
       .EM
!lm-5
