acme/testing/cpus/test-m65.a

138 lines
2.8 KiB
Plaintext

;ACME 0.97
!cpu m65
!to "out-m65.o", plain
*=$1000
M65 = 1 ; make next include skip the NOP mnemonic (re-used as prefix code by M65)
!src "include-6502.a"
; !src "include-65c02.a" ; not used, because 65ce02 changes "(zp)" to "(zp), z"
!src "include-bitmanips.a"
!src "include-65ce02.a"
; this differs between 65ce02 and 4502:
map ; $5c
; this is an alias for NOP:
eom ; $ea, "end of mapping"
; "quad mode" m65 extension using NEG:NEG prefix:
; (instructions that are commented out might be re-purposed later)
;orq ($01, x) ; 01
orq $05 ; 05
aslq $05 ; 06
aslq ; 0a
orq $0d0e ; 0d
aslq $0d0e ; 0e
;orq ($11), y ; 11
orq ($12) ; 12
;orq $15, x ; 15
aslq $15, x ; 16
;orq $1919, y ; 19
inq ; 1a
;orq $1d1e, x ; 1d
aslq $1d1e, x ; 1e
;andq ($01, x) ; 21
bitq $05 ; 24
andq $05 ; 25
rolq $05 ; 26
rolq ; 2a
bitq $0d0e ; 2c
andq $0d0e ; 2d
rolq $0d0e ; 2e
;andq ($11), y ; 31
andq ($12) ; 32
;bitq $15, x ; 34
;andq $15, x ; 35
rolq $15, x ; 36
;andq $1919, y ; 39
deq ; 3a
;bitq $1d1e, x ; 3c
;andq $1d1e, x ; 3d
rolq $1d1e, x ; 3e
;eorq ($01, x) ; 41
asrq ; 43
asrq $05 ; 44
eorq $05 ; 45
lsrq $05 ; 46
lsrq ; 4a
eorq $0d0e ; 4d
lsrq $0d0e ; 4e
;eorq ($11), y ; 51
eorq ($12) ; 52
asrq $15, x ; 54
;eorq $15, x ; 55
lsrq $15, x ; 56
;eorq $1919, y ; 59
;eorq $1d1e, x ; 5d
lsrq $1d1e, x ; 5e
;adcq ($01, x) ; 61
adcq $05 ; 65
rorq $05 ; 66
rorq ; 6a
adcq $0d0e ; 6d
rorq $0d0e ; 6e
;adcq ($11), y ; 71
adcq ($12) ; 72
;adcq $15, x ; 75
rorq $15, x ; 76
;adcq $1919, y ; 79
;adcq $1d1e, x ; 7d
rorq $1d1e, x ; 7e
;stq ($01, x) ; 81
;stq ($82, s), y ; 82
stq $05 ; 85
stq $0d0e ; 8d
;stq ($11), y ; 91
stq ($12) ; 92
;stq $15, x ; 95
;stq $1919, y ; 99
;stq $1d1e, x ; 9d
;ldq ($01, x) ; a1
ldq $05 ; a5
ldq $0d0e ; ad
ldq ($11), y ; b1
ldq ($12) ; b2
ldq $15, x ; b5
ldq $1919, y ; b9
ldq $1d1e, x ; bd
;cpq ($01, x) ; c1
cpq $05 ; c5
deq $05 ; c6
cpq $0d0e ; cd
deq $0d0e ; ce
;cpq ($11), y ; d1
cpq ($12) ; d2
;cpq $15, x ; d5
deq $15, x ; d6
;cpq $1919, y ; d9
;cpq $1d1e, x ; dd
deq $1d1e, x ; de
;sbcq ($01, x) ; e1
ldq ($e2, s), y ; e2
sbcq $05 ; e5
inq $05 ; e6
sbcq $0d0e ; ed
inq $0d0e ; ee
;sbcq ($11), y ; f1
sbcq ($12) ; f2
;sbcq $15, x ; f5
inq $15, x ; f6
;sbcq $1919, y ; f9
;sbcq $1d1e, x ; fd
inq $1d1e, x ; fe
; "long mode" m65 extension using NOP prefix:
ora [$12], z ; 12
and [$12], z ; 32
eor [$12], z ; 52
adc [$12], z ; 72
sta [$12], z ; 92
lda [$12], z ; b2
cmp [$12], z ; d2
sbc [$12], z ; f2
; "quad mode" and "long mode" combined using NEG:NEG:NOP prefix:
orq [$12] ; 12
andq [$12] ; 32
eorq [$12] ; 52
adcq [$12] ; 72
stq [$12] ; 92
ldq [$12] ; b2
cpq [$12] ; d2
sbcq [$12] ; f2