Jamaica 10 ch11 Illegal Op-codes

From C64 Diskmag Wiki
Jump to: navigation, search
illegal op-codes                   tjost
----------------------------------------
we are now going to reveal the deepest
secrets of 6510 coding. this is not a
chapter for beginners, but i hope that
someone can find a use for it.

if you find this chapter interesting,
but not satisfying then you should
contact me (my addy should be in the
addy chapters) for more information
about illegal op-codes or just any
code-related talk.

and now lets roll.....



      code addressing   name b c
       --------------------------
        02 implied      hlt  1 -
        03 (zeropage,x) slo  2 8
        04 zeropage     nop  2 3
        07 zeropage     slo  2 5
        0b #immediate   ana  2 2
        0c absolute     nop  3 4
        0f absolute     slo  3 6
        12 implied      hlt  1 -
        13 (zeropage),y slo  2 8
        14 zeropage,x   nop  2 4
        17 zeropage,x   slo  2 6
        1a implied      nop  1 2
        1b absolute,y   slo  3 7
        1c absolute,x   nop  3 4*
        1f absolute,x   slo  3 7
        22 implied      hlt  1 -
        23 (zeropage,x) rla  2 8
        27 zeropage     rla  2 5
        2b #immediate   anb  2 2
        2f absolute     rla  3 6
        32 implied      hlt  1 -
        33 (zeropage),y rla  2 8
        34 zeropage,x   nop  2 4
        37 zeropage,x   rla  2 6
        3a implied      nop  1 2
        3b absolute,y   rla  3 7
        3c absolute,x   nop  3 4*
        3f absolute,x   rla  3 7
        42 implied      hlt  1 -
        43 (zeropage,x) sre  2 8
        44 zeropage     nop  2 3
        47 zeropage     sre  2 5
        4b #immediate   ram  2 2
        4f absolute     sre  3 6
        52 implied      hlt  1 -
        53 (zeropage),y sre  2 8
        54 zeropage,x   nop  2 4
        57 zeropage,x   sre  2 6
        5a implied      nop  1 2
        5b absolute,y   sre  3 6
        5c absolute,x   nop  3 4*
        5f absoulte,x   sre  3 7
        62 implied      hlt  1 -
        63 (zeropage,x) rra  2 8
        64 zeropage     nop  2 3
        67 zeropage     rra  2 5
        6b #immediate   rbm  2 2
        6f absoulte     rra  3 6
        72 implied      hlt  1 -
        73 (zeropage),y rra  2 8
        74 zeropage,x   nop  2 4
        77 zeropage,x   rra  2 6
        7a implied      nop  1 2
        7b absolute,y   rra  3 7
        7c absolute,x   nop  3 4*
        7f absolute,x   rra  3 7
        80 #immediate   nop  2 2
        82 #immediate   nop  2 2
        83 (zeropage,x) aax  2 6
        87 zeropage     aax  2 3
        89 #immediate   nop  2 2
        8b #immediate   axm  2 2
        8f absolute     aax  3 4
        92 implied      hlt  1 -
        93 (zeropage),y tea  2 6
        97 zeropage,y   aax  2 4
        9b absolute,y   axs  3 5
        9c absolute,x   tey  3 5
        9e absolute,y   tex  3 5
        9f absolute,y   tea  3 5
        a3 (zeropage,x) lax  2 6
        a7 zeropage     lax  2 3
        ab #immediate   lax  2 2
        af absolute     lax  3 4
        b2 implied      hlt  1 -
        b3 (zeropage),y lax  2 5*
        b7 zeropage,y   lax  2 4
        bb absolute,y   las  3 4*
        bf absolute,y   lax  3 4*
        c2 #immediate   nop  2 2
        c3 (zeropage,x) dcp  2 8
        c7 zeropage     dcp  2 5
        cb #immediate   xma  2 2
        cf absolute     dcp  3 6
        d2 implied      hlt  1 -
        d3 (zeropage),y dcp  2 8
        d4 zeropage,x   nop  2 4
        d7 zeropage,x   dcp  2 6
        da implied      nop  1 2
        db absolute,y   dcp  3 7
        dc absolute,x   nop  3 4*
        df absolute,x   dcp  3 7
        e2 #immediate   nop  2 2
        e3 (zeropage,x) isb  2 8
        e7 zeropage     isb  2 5
        eb #immediate   sbc  2 2
        ef absolute     isb  3 6
        f2 implied      hlt  1 -
        f3 (zeropage),y isb  2 8
        f4 zeropage,x   nop  2 4
        f7 zeropage,x   isb  2 6
        fa implied      nop  1 2
        fb absolute,y   isb  3 7
        fc absolute,x   nop  3 4*
        ff absolute,x   isb  3 7

and here's the description of what the
instruction does.


name flags description
------------------------
aax        m = a and x
ana  nzc   asl #(a and m), and m
anb  nzc   rol #(a and m), and m
axm  nz    a = (x and m) and (a or #$ee)
axs        m = a and x and #>m+$100
dcp  nzc   dec m, cmp m
hlt  -     total halt
isb  nvzc  inc m, sbc m
las  nz    lda (sp and m), tax, txs
lax  nz    lda m, tax
ram  nzc   and m, lsr a
rbm  nzc   and n, ror a
rla  nzc   rol m, and m
rra  nvzc  ror m, adc m
slo  nzc   asl m, ora m
sre  nzc   lsr m, eor m
tea        m = a and x and #>m+$100
tex        m = x and #>m+$100
tey        m = y and #>m+$100
xma  nzc   x = (a and x) - m

notes:
a = accumulator     x  = x-register
y = y-register      sp = stackpointer
m = byte in memory

addressing is the addressing mode for
that op-code.

name is the instructions mnemonic name.

b is the amount of bytes that the
instruction occupies in memory.

c is the amount of cycles the
instruction will take to execute where
* means add one cycle if page boundary
crossed.

flags is what flags the instruction
will affect while executing.

description briefly shows what each
instruction does.

well, that's it for this short
introduction into the hidden worlds of
the 6510....




          signed : TJOST / JAM
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox