Welcome

AS6500 Assembler

ACKNOWLEDGMENT 


   Thanks  to  Marko  Makela  for his contribution of the AS6500
cross assembler.  

        Marko Makela
        Sillitie 10 A
        01480 Vantaa
        Finland
        Internet: Marko.Makela@Helsinki.Fi
        EARN/BitNet: msmakela@finuh

   Several  additions and modifications were made to his code to
support the following families of 6500 processors:  

        (1)     650X and 651X processor family
        (2)     65F11 and 65F12 processor family
        (3)     65C00/21 and 65C29 processor family
        (4)     65C02, 65C102, and 65C112 processor family

   The  instruction  syntax of this cross assembler contains two
peculiarities:  (1) the addressing indirection is denoted by the
square  brackets  []  and (2) the `bbrx' and `bbsx' instructions
are written `bbr0 memory,label'.  

.enabl and .dsabl Directives 


   Format:  

        .enabl (arg1, arg2, ...) 
        .dsabl (arg1, arg2, ...) 

where:  arg1, arg2, ...    represent one or more
                           of the following options

        autodpcnst   Automatic Direct Paging For Constants
        autodpsmbl   Automatic Direct Paging For Symbols


   autodpcnst:   controls  whether constants within the range of
0x0000-0x00FF (paging region) or external are automatically  as-
sembled  as  paged  variables.   The  paging area must have been
specified for this  option  to  take  effect.   The  default  is
enabled.  

   autodpsmbl:   controls  whether  symbols  within the range of
0x0000-0x00FF (paging region) or external are automatically  as-
sembled  as  paged  variables.   The  paging area must have been
specified for this  option  to  take  effect.   The  default  is
enabled.  


.dpgbl Directive 


   Format:  

        .dpgbl arg1, arg2, ...  

            Where the arguments are labels or
            symbols with values that are in the
            0x0000-0x00FF direct page.  If the
            page area has not been specified
            then the arguments are defined as
            being in the current area.

6500 REGISTER SET 

The following is a list of the 6500 registers used by AS6500:  

        a       -       8-bit accumulator
        x,y     -       index registers


6500 INSTRUCTION SET 


   The  following  tables  list all 6500 family mnemonics recog-
nized by the AS6500 assembler.  The designation [] refers  to  a
required addressing mode argument.  The following list specifies
the format for each addressing mode supported by AS6500:  

        #data           immediate data
                        byte or word data

        *dir            direct page addressing
                        (see .setdp directive)
                        0 <= dir <= 255 

        offset,x        indexed addressing
        offset,y        indexed addressing
                        address = (offset + (x or y))

        [offset,x]      pre-indexed indirect addressing
                        0 <= offset <= 255
                        address = contents of location
                            (offset + (x or y)) mod 256

        [offset],y      post-indexed indirect addressing
                        address = contents of location at offset
                            plus the value of the y register

        [address]       indirect addressing

        ext             extended addressing

        label           branch label

        address,label   direct page memory location
                        branch label
                        bbrx and bbsx instruction addressing

The  terms data, dir, offset, address, ext, and label may all be
expressions.  

   Note  that  not all addressing modes are valid with every in-
struction, refer to the 65xx technical data for valid modes.  


Processor Specific Directives 


   The  AS6500  cross  assembler has four (4) processor specific
assembler directives which  define  the  target  65xx  processor
family:  

        .r6500          Core 650X and 651X family (default)
        .r65f11         Core plus 65F11 and 65F12
        .r65c00         Core plus 65C00/21 and 65C29
        .r65c02         Core plus 65C02, 65C102, and 65C112


65xx Core Inherent Instructions 

        brk                     clc
        cld                     cli
        clv                     dex
        dey                     inx
        iny                     nop
        pha                     php
        pla                     plp
        rti                     rts
        sec                     sed
        sei                     tax
        tay                     tsx
        txa                     txs
        tya


65xx Core Branch Instructions 

        bcc     label           bhs     label
        bcs     label           blo     label
        beq     label           bmi     label
        bne     label           bpl     label
        bvc     label           bvs     label


65xx Core Single Operand Instructions 

        asl     []
        dec     []
        inc     []
        lsr     []
        rol     []
        ror     []


65xx Core Double Operand Instructions 

        adc     []
        and     []
        bit     []
        cmp     []
        eor     []
        lda     []
        ora     []
        sbc     []
        sta     []


65xx Core Jump and Jump to Subroutine Instructions 

        jmp     []              jsr     []


65xx Core Miscellaneous X and Y Register Instructions 

        cpx     []
        cpy     []
        ldx     []
        stx     []
        ldy     []
        sty     []


65F11 and 65F12 Specific Instructions 

        bbr0    [],label                bbr1    [],label
        bbr2    [],label                bbr3    [],label
        bbr4    [],label                bbr5    [],label
        bbr6    [],label                bbr7    [],label

        bbs0    [],label                bbs1    [],label
        bbs2    [],label                bbs3    [],label
        bbs4    [],label                bbs5    [],label
        bbs6    [],label                bbs7    [],label

        rmb0    []                      rmb1    []
        rmb2    []                      rmb3    []
        rmb4    []                      rmb5    []
        rmb6    []                      rmb7    []

        smb0    []                      smb1    []
        smb2    []                      smb3    []
        smb4    []                      smb5    []
        smb6    []                      smb7    []


65C00/21 and 65C29 Specific Instructions 

        bbr0    [],label                bbr1    [],label
        bbr2    [],label                bbr3    [],label
        bbr4    [],label                bbr5    [],label
        bbr6    [],label                bbr7    [],label

        bbs0    [],label                bbs1    [],label
        bbs2    [],label                bbs3    [],label
        bbs4    [],label                bbs5    [],label
        bbs6    [],label                bbs7    [],label

        bra     label

        phx                             phy
        plx                             ply

        rmb0    []                      rmb1    []
        rmb2    []                      rmb3    []
        rmb4    []                      rmb5    []
        rmb6    []                      rmb7    []

        smb0    []                      smb1    []
        smb2    []                      smb3    []
        smb4    []                      smb5    []
        smb6    []                      smb7    []


65C02, 65C102, and 65C112 Specific Instructions 

        bbr0    [],label                bbr1    [],label
        bbr2    [],label                bbr3    [],label
        bbr4    [],label                bbr5    [],label
        bbr6    [],label                bbr7    [],label

        bbs0    [],label                bbs1    [],label
        bbs2    [],label                bbs3    [],label
        bbs4    [],label                bbs5    [],label
        bbs6    [],label                bbs7    [],label

        bra     label

        phx                             phy
        plx                             ply

        rmb0    []                      rmb1    []
        rmb2    []                      rmb3    []
        rmb4    []                      rmb5    []
        rmb6    []                      rmb7    []

        smb0    []                      smb1    []
        smb2    []                      smb3    []
        smb4    []                      smb5    []
        smb6    []                      smb7    []

        stz     []
        trb     []
        tsb     []

   Additional  addressing  modes for the following core instruc-
tions are also available with the 65C02, 65C102, and 65C112 pro-
cessors.  

        adc     []                      and     []
        cmp     []                      eor     []
        lda     []                      ora     []
        sbc     []                      sta     []

        bit     []                      jmp     []

        dec                             inc

Go to the Documentation Index

... Exit the ASxxxx Documentation

... Home Page

Last Updated: September 2023