added support for undocumented NOPs

This commit is contained in:
mrdudz
2014-11-19 23:20:46 +01:00
parent cf82bfaf37
commit 044aee7f8d
5 changed files with 44 additions and 32 deletions

View File

@@ -262,7 +262,7 @@ static const struct {
{ "LDX", 0x080030C, 0xa2, 1, PutAll }, { "LDX", 0x080030C, 0xa2, 1, PutAll },
{ "LDY", 0x080006C, 0xa0, 1, PutAll }, { "LDY", 0x080006C, 0xa0, 1, PutAll },
{ "LSR", 0x000006F, 0x42, 1, PutAll }, { "LSR", 0x000006F, 0x42, 1, PutAll },
{ "NOP", 0x0000001, 0xea, 0, PutAll }, { "NOP", 0x080006D, 0x00, 10, PutAll }, /* X */
{ "ORA", 0x080A26C, 0x00, 0, PutAll }, { "ORA", 0x080A26C, 0x00, 0, PutAll },
{ "PHA", 0x0000001, 0x48, 0, PutAll }, { "PHA", 0x0000001, 0x48, 0, PutAll },
{ "PHP", 0x0000001, 0x08, 0, PutAll }, { "PHP", 0x0000001, 0x08, 0, PutAll },
@@ -790,7 +790,7 @@ const InsTable* InsTab = (const InsTable*) &InsTab6502;
/* Table to build the effective 65xx opcode from a base opcode and an /* Table to build the effective 65xx opcode from a base opcode and an
** addressing mode. (The value in the table is ORed with the base opcode) ** addressing mode. (The value in the table is ORed with the base opcode)
*/ */
static unsigned char EATab[10][AM65I_COUNT] = { static unsigned char EATab[11][AM65I_COUNT] = {
{ /* Table 0 */ { /* Table 0 */
0x00, 0x00, 0x05, 0x0D, 0x0F, 0x15, 0x1D, 0x1F, 0x00, 0x00, 0x05, 0x0D, 0x0F, 0x15, 0x1D, 0x1F,
0x00, 0x19, 0x12, 0x00, 0x07, 0x11, 0x17, 0x01, 0x00, 0x19, 0x12, 0x00, 0x07, 0x11, 0x17, 0x01,
@@ -851,6 +851,12 @@ static unsigned char EATab[10][AM65I_COUNT] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00 0x00, 0x00, 0x00
}, },
{ /* Table 10 (NOPs) */
0xea, 0x00, 0x04, 0x0c, 0x00, 0x14, 0x1c, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0x00, 0x00, 0x00
},
}; };
/* Table to build the effective SWEET16 opcode from a base opcode and an /* Table to build the effective SWEET16 opcode from a base opcode and an

View File

@@ -1,2 +1,4 @@
chkillegal.bin chkillegal.bin
chklegal.bin chklegal.bin
legal.o
illegal.o

View File

@@ -1,3 +1,5 @@
.setcpu "6502X"
brk ; 00 brk ; 00
ora ($12,x) ; 01 12 ora ($12,x) ; 01 12
jam ; 02 jam ; 02

View File

@@ -63,7 +63,6 @@
lax ($12),y ; b3 12 lax ($12),y ; b3 12
lax $12,y ; b7 12 lax $12,y ; b7 12
anc #$12 ; 0b 12 anc #$12 ; 0b 12
;anc #$12 ; 2b 12 ;anc #$12 ; 2b 12
@@ -73,34 +72,34 @@
axs #$12 ; cb 12 axs #$12 ; cb 12
; nop $12 ; 04 12 nop $1234 ; 0c 34 12
; nop $1234 ; 0c 34 12 nop $1234,x ; 1c 34 12
; nop $1234,x ; 1c 34 12 nop $12 ; 04 12
; nop $1234,x ; 3c 34 12 nop $12,x ; 14 12
; nop $1234,x ; 5c 34 12 nop #$12 ; 80 12
; nop $1234,x ; 7c 34 12 ;nop $1234,x ; 3c 34 12
; nop $1234,x ; dc 34 12 ;nop $1234,x ; 5c 34 12
; nop $1234,x ; fc 34 12 ;nop $1234,x ; 7c 34 12
; nop $12 ; 44 12 ;nop $1234,x ; dc 34 12
; nop $12 ; 64 12 ;nop $1234,x ; fc 34 12
; nop #$12 ; 80 12 ;nop $12 ; 44 12
; nop #$12 ; 82 12 ;nop $12 ; 64 12
; nop #$12 ; 89 12 ;nop #$12 ; 82 12
; nop #$12 ; c2 12 ;nop #$12 ; 89 12
; nop #$12 ; e2 12 ;nop #$12 ; c2 12
; nop $12,x ; 14 12 ;nop #$12 ; e2 12
; nop $12,x ; 34 12 ;nop $12,x ; 34 12
; nop $12,x ; 54 12 ;nop $12,x ; 54 12
; nop $12,x ; 74 12 ;nop $12,x ; 74 12
; nop $12,x ; d4 12 ;nop $12,x ; d4 12
; nop $12,x ; f4 12 ;nop $12,x ; f4 12
; nop ; 1a ;nop ; 1a
; nop ; 3a ;nop ; 3a
; nop ; 5a ;nop ; 5a
; nop ; 7a ;nop ; 7a
; nop ; da ;nop ; da
; jam ; 02 jam ; 02
;jam ; 12 ;jam ; 12
;jam ; 22 ;jam ; 22
;jam ; 32 ;jam ; 32
@@ -115,7 +114,7 @@
;sbc #$12 ; eb 12 ;sbc #$12 ; eb 12
; and the so-called "unstable" ones: ; the so-called "unstable" ones:
sha ($12),y ; 93 12 sha ($12),y ; 93 12
sha $1234,y ; 9f 34 12 sha $1234,y ; 9f 34 12
@@ -126,7 +125,7 @@
shs $1234,y ; 9b 34 12 shs $1234,y ; 9b 34 12
las $1234,y ; bb 34 12 las $1234,y ; bb 34 12
; the two "highly unstable" ones: ; the two so-called "highly unstable" ones:
; lax #$12 ; ab 12 ; lax #$12 ; ab 12

View File

@@ -1,3 +1,6 @@
.setcpu "6502"
adc $1234 ; 6d 34 12 adc $1234 ; 6d 34 12
adc $1234,x ; 7d 34 12 adc $1234,x ; 7d 34 12
adc $1234,y ; 79 34 12 adc $1234,y ; 79 34 12