[31603] trunk/dports/devel/tpasm

gwright at macports.org gwright at macports.org
Thu Nov 29 06:07:09 PST 2007


Revision: 31603
          http://trac.macosforge.org/projects/macports/changeset/31603
Author:   gwright at macports.org
Date:     2007-11-29 06:07:05 -0800 (Thu, 29 Nov 2007)

Log Message:
-----------
Add WAI instruction to 65C02.

Modified Paths:
--------------
    trunk/dports/devel/tpasm/Portfile

Added Paths:
-----------
    trunk/dports/devel/tpasm/files/patch-6502.c

Removed Paths:
-------------
    trunk/dports/devel/tpasm/files/tpasm1.4-bitops.patch

Modified: trunk/dports/devel/tpasm/Portfile
===================================================================
--- trunk/dports/devel/tpasm/Portfile	2007-11-29 10:04:13 UTC (rev 31602)
+++ trunk/dports/devel/tpasm/Portfile	2007-11-29 14:07:05 UTC (rev 31603)
@@ -4,6 +4,7 @@
 
 name		tpasm
 version		1.4
+revision	1
 categories	devel
 platforms	darwin
 maintainers	nomaintainer
@@ -30,7 +31,7 @@
 extract.suffix	.tgz
 distfiles	${name}${extract.suffix}
 
-patchfiles	tpasm1.4-bitops.patch
+patchfiles	patch-6502.c
 worksrcdir	${name}${version}
 
 use_configure	no

Added: trunk/dports/devel/tpasm/files/patch-6502.c
===================================================================
--- trunk/dports/devel/tpasm/files/patch-6502.c	                        (rev 0)
+++ trunk/dports/devel/tpasm/files/patch-6502.c	2007-11-29 14:07:05 UTC (rev 31603)
@@ -0,0 +1,512 @@
+--- processors/6502.c.sav	2007-11-29 08:56:32.000000000 -0500
++++ processors/6502.c	2007-11-29 08:58:43.000000000 -0500
+@@ -28,39 +28,41 @@
+ 
+ // enumerated addressing modes
+ 
+-#define	OT_IMPLIED				0								// no operands
+-#define	OT_IMMEDIATE			1								// #xx
+-#define	OT_ZP					2								// xx
+-#define	OT_ZP_OFF_X				3								// xx,X
+-#define	OT_ZP_OFF_Y				4								// xx,Y
++#define	OT_IMPLIED		0								// no operands
++#define	OT_IMMEDIATE		1								// #xx
++#define	OT_ZP			2								// xx
++#define	OT_ZP_OFF_X		3								// xx,X
++#define	OT_ZP_OFF_Y		4								// xx,Y
+ #define	OT_ZP_INDIRECT_OFF_X	5								// (xx,X)
+ #define	OT_ZP_INDIRECT_OFF_Y	6								// (xx),Y
+-#define	OT_ZP_INDIRECT			7								// (xx)
+-#define	OT_EXTENDED				8								// xxxx
+-#define	OT_EXTENDED_OFF_X		9								// xxxx,X
+-#define	OT_EXTENDED_OFF_Y		10								// xxxx,Y
++#define	OT_ZP_INDIRECT		7								// (xx)
++#define	OT_EXTENDED		8								// xxxx
++#define	OT_EXTENDED_OFF_X	9								// xxxx,X
++#define	OT_EXTENDED_OFF_Y	10								// xxxx,Y
+ #define	OT_EXTENDED_INDIRECT	11								// (xxxx)
+-#define	OT_RELATIVE				12								// one byte relative offset
+-#define	OT_IMPLIED_2			13								// two-byte implied opcode (second byte is ignored)
++#define	OT_RELATIVE		12								// one byte relative offset
++#define	OT_IMPLIED_2		13								// two-byte implied opcode (second byte is ignored)
++#define OT_ZP_RELATIVE		14								// xx, relative offset
+ 
+-#define	OT_NUM					OT_IMPLIED_2+1					// number of addressing modes
++#define	OT_NUM					OT_ZP_RELATIVE+1					// number of addressing modes
+ 
+ // masks for the various addressing modes
+ 
+-#define	M_IMPLIED				(1<<OT_IMPLIED)
+-#define	M_IMMEDIATE				(1<<OT_IMMEDIATE)
+-#define	M_ZP					(1<<OT_ZP)
+-#define	M_ZP_OFF_X				(1<<OT_ZP_OFF_X)
+-#define	M_ZP_OFF_Y				(1<<OT_ZP_OFF_Y)
++#define	M_IMPLIED			(1<<OT_IMPLIED)
++#define	M_IMMEDIATE			(1<<OT_IMMEDIATE)
++#define	M_ZP				(1<<OT_ZP)
++#define	M_ZP_OFF_X			(1<<OT_ZP_OFF_X)
++#define	M_ZP_OFF_Y			(1<<OT_ZP_OFF_Y)
+ #define	M_ZP_INDIRECT_OFF_X		(1<<OT_ZP_INDIRECT_OFF_X)
+ #define	M_ZP_INDIRECT_OFF_Y		(1<<OT_ZP_INDIRECT_OFF_Y)
+ #define	M_ZP_INDIRECT			(1<<OT_ZP_INDIRECT)
+-#define	M_EXTENDED				(1<<OT_EXTENDED)
++#define	M_EXTENDED			(1<<OT_EXTENDED)
+ #define	M_EXTENDED_OFF_X		(1<<OT_EXTENDED_OFF_X)
+ #define	M_EXTENDED_OFF_Y		(1<<OT_EXTENDED_OFF_Y)
+ #define	M_EXTENDED_INDIRECT		(1<<OT_EXTENDED_INDIRECT)
+-#define	M_RELATIVE				(1<<OT_RELATIVE)
+-#define	M_IMPLIED_2				(1<<OT_IMPLIED_2)
++#define	M_RELATIVE			(1<<OT_RELATIVE)
++#define	M_IMPLIED_2			(1<<OT_IMPLIED_2)
++#define M_ZP_RELATIVE			(1<<OT_ZP_RELATIVE)
+ 
+ struct OPCODE
+ {
+@@ -94,141 +96,174 @@
+ 
+ // This macro creates the typeFlags and baseOpcode list. For each non-white entry in the baseOpcode
+ // list, a bit is set in typeFlags.
+-#define OP_ENTRY(a,b,c,d,e,f,g,h,i,j,k,l,m,n) OP_FLAG(a,M_IMPLIED)|OP_FLAG(b,M_IMMEDIATE)|OP_FLAG(c,M_ZP)|OP_FLAG(d,M_ZP_OFF_X)|OP_FLAG(e,M_ZP_OFF_Y)|OP_FLAG(f,M_ZP_INDIRECT_OFF_X)|OP_FLAG(g,M_ZP_INDIRECT_OFF_Y)|OP_FLAG(h,M_ZP_INDIRECT)|OP_FLAG(i,M_EXTENDED)|OP_FLAG(j,M_EXTENDED_OFF_X)|OP_FLAG(k,M_EXTENDED_OFF_Y)|OP_FLAG(l,M_EXTENDED_INDIRECT)|OP_FLAG(m,M_RELATIVE)|OP_FLAG(n,M_IMPLIED_2),{OP_VAL(a),OP_VAL(b),OP_VAL(c),OP_VAL(d),OP_VAL(e),OP_VAL(f),OP_VAL(g),OP_VAL(h),OP_VAL(i),OP_VAL(j),OP_VAL(k),OP_VAL(l),OP_VAL(m),OP_VAL(n)}
++#define OP_ENTRY(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) OP_FLAG(a,M_IMPLIED)|OP_FLAG(b,M_IMMEDIATE)|OP_FLAG(c,M_ZP)|OP_FLAG(d,M_ZP_OFF_X)|OP_FLAG(e,M_ZP_OFF_Y)|OP_FLAG(f,M_ZP_INDIRECT_OFF_X)|OP_FLAG(g,M_ZP_INDIRECT_OFF_Y)|OP_FLAG(h,M_ZP_INDIRECT)|OP_FLAG(i,M_EXTENDED)|OP_FLAG(j,M_EXTENDED_OFF_X)|OP_FLAG(k,M_EXTENDED_OFF_Y)|OP_FLAG(l,M_EXTENDED_INDIRECT)|OP_FLAG(m,M_RELATIVE)|OP_FLAG(n,M_IMPLIED_2)|OP_FLAG(o,M_ZP_RELATIVE),{OP_VAL(a),OP_VAL(b),OP_VAL(c),OP_VAL(d),OP_VAL(e),OP_VAL(f),OP_VAL(g),OP_VAL(h),OP_VAL(i),OP_VAL(j),OP_VAL(k),OP_VAL(l),OP_VAL(m),OP_VAL(n),OP_VAL(o)}
+ 
+ static OPCODE
+ 	opcodes6502[]=
+ 	{
+-//							 imp  imm  zp   zpx  zpy  indx indy (zp) ext  extx exty (ext) rel impl2
+-		{"adc",		OP_ENTRY(    ,0x69,0x65,0x75,    ,0x61,0x71,    ,0x6D,0x7D,0x79,    ,    ,    )},
+-		{"and",		OP_ENTRY(    ,0x29,0x25,0x35,    ,0x21,0x31,    ,0x2D,0x3D,0x39,    ,    ,    )},
+-		{"asl",		OP_ENTRY(0x0A,    ,0x06,0x16,    ,    ,    ,    ,0x0E,0x1E,    ,    ,    ,    )},
+-		{"bcc",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x90,    )},
+-		{"bcs",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xB0,    )},
+-		{"beq",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xF0,    )},
+-		{"bit",		OP_ENTRY(    ,    ,0x24,    ,    ,    ,    ,    ,0x2C,    ,    ,    ,    ,    )},
+-		{"bmi",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x30,    )},
+-		{"bne",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xD0,    )},
+-		{"bpl",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x10,    )},
+-		{"brk",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x00)},
+-		{"bvc",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x50,    )},
+-		{"bvs",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x70,    )},
+-		{"clc",		OP_ENTRY(0x18,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"cld",		OP_ENTRY(0xD8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"cli",		OP_ENTRY(0x58,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"clv",		OP_ENTRY(0xB8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"cmp",		OP_ENTRY(    ,0xC9,0xC5,0xD5,    ,0xC1,0xD1,    ,0xCD,0xDD,0xD9,    ,    ,    )},
+-		{"cpx",		OP_ENTRY(    ,0xE0,0xE4,    ,    ,    ,    ,    ,0xEC,    ,    ,    ,    ,    )},
+-		{"cpy",		OP_ENTRY(    ,0xC0,0xC4,    ,    ,    ,    ,    ,0xCC,    ,    ,    ,    ,    )},
+-		{"dec",		OP_ENTRY(    ,    ,0xC6,0xD6,    ,    ,    ,    ,0xCE,0xDE,    ,    ,    ,    )},
+-		{"dex",		OP_ENTRY(0xCA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"dey",		OP_ENTRY(0x88,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"eor",		OP_ENTRY(    ,0x49,0x45,0x55,    ,0x41,0x51,    ,0x4D,0x5D,0x59,    ,    ,    )},
+-		{"inc",		OP_ENTRY(    ,    ,0xE6,0xF6,    ,    ,    ,    ,0xEE,0xFE,    ,    ,    ,    )},
+-		{"inx",		OP_ENTRY(0xE8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"iny",		OP_ENTRY(0xC8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"jmp",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,0x4C,    ,    ,0x6C,    ,    )},
+-		{"jsr",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,0x20,    ,    ,    ,    ,    )},
+-		{"lda",		OP_ENTRY(    ,0xA9,0xA5,0xB5,    ,0xA1,0xB1,    ,0xAD,0xBD,0xB9,    ,    ,    )},
+-		{"ldx",		OP_ENTRY(    ,0xA2,0xA6,    ,0xB6,    ,    ,    ,0xAE,    ,0xBE,    ,    ,    )},
+-		{"ldy",		OP_ENTRY(    ,0xA0,0xA4,0xB4,    ,    ,    ,    ,0xAC,0xBC,    ,    ,    ,    )},
+-		{"lsr",		OP_ENTRY(0x4A,    ,0x46,0x56,    ,    ,    ,    ,0x4E,0x5E,    ,    ,    ,    )},
+-		{"nop",		OP_ENTRY(0xEA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"ora",		OP_ENTRY(    ,0x09,0x05,0x15,    ,0x01,0x11,    ,0x0D,0x1D,0x19,    ,    ,    )},
+-		{"pha",		OP_ENTRY(0x48,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"php",		OP_ENTRY(0x08,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"pla",		OP_ENTRY(0x68,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"plp",		OP_ENTRY(0x28,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"rol",		OP_ENTRY(0x2A,    ,0x26,0x36,    ,    ,    ,    ,0x2E,0x3E,    ,    ,    ,    )},
+-		{"ror",		OP_ENTRY(0x6A,    ,0x66,0x76,    ,    ,    ,    ,0x6E,0x7E,    ,    ,    ,    )},
+-		{"rti",		OP_ENTRY(0x40,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"rts",		OP_ENTRY(0x60,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"sbc",		OP_ENTRY(    ,0xE9,0xE5,0xF5,    ,0xE1,0xF1,    ,0xED,0xFD,0xF9,    ,    ,    )},
+-		{"sec",		OP_ENTRY(0x38,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"sed",		OP_ENTRY(0xF8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"sei",		OP_ENTRY(0x78,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"sta",		OP_ENTRY(    ,    ,0x85,0x95,    ,0x81,0x91,    ,0x8D,0x9D,0x99,    ,    ,    )},
+-		{"stx",		OP_ENTRY(    ,    ,0x86,    ,0x96,    ,    ,    ,0x8E,    ,    ,    ,    ,    )},
+-		{"sty",		OP_ENTRY(    ,    ,0x84,0x94,    ,    ,    ,    ,0x8C,    ,    ,    ,    ,    )},
+-		{"tax",		OP_ENTRY(0xAA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"tay",		OP_ENTRY(0xA8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"tsx",		OP_ENTRY(0xBA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"txa",		OP_ENTRY(0x8A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"txs",		OP_ENTRY(0x9A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"tya",		OP_ENTRY(0x98,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++//					 imp  imm  zp   zpx  zpy  indx indy (zp) ext  extx exty (ext) rel impl2 zpr
++		{"adc",		OP_ENTRY(    ,0x69,0x65,0x75,    ,0x61,0x71,    ,0x6D,0x7D,0x79,    ,    ,    ,    )},
++		{"and",		OP_ENTRY(    ,0x29,0x25,0x35,    ,0x21,0x31,    ,0x2D,0x3D,0x39,    ,    ,    ,    )},
++		{"asl",		OP_ENTRY(0x0A,    ,0x06,0x16,    ,    ,    ,    ,0x0E,0x1E,    ,    ,    ,    ,    )},
++		{"bcc",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x90,    ,    )},
++		{"bcs",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xB0,    ,    )},
++		{"beq",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xF0,    ,    )},
++		{"bit",		OP_ENTRY(    ,    ,0x24,    ,    ,    ,    ,    ,0x2C,    ,    ,    ,    ,    ,    )},
++		{"bmi",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x30,    ,    )},
++		{"bne",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xD0,    ,    )},
++		{"bpl",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x10,    ,    )},
++		{"brk",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x00,    )},
++		{"bvc",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x50,    ,    )},
++		{"bvs",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x70,    ,    )},
++		{"clc",		OP_ENTRY(0x18,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"cld",		OP_ENTRY(0xD8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"cli",		OP_ENTRY(0x58,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"clv",		OP_ENTRY(0xB8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"cmp",		OP_ENTRY(    ,0xC9,0xC5,0xD5,    ,0xC1,0xD1,    ,0xCD,0xDD,0xD9,    ,    ,    ,    )},
++		{"cpx",		OP_ENTRY(    ,0xE0,0xE4,    ,    ,    ,    ,    ,0xEC,    ,    ,    ,    ,    ,    )},
++		{"cpy",		OP_ENTRY(    ,0xC0,0xC4,    ,    ,    ,    ,    ,0xCC,    ,    ,    ,    ,    ,    )},
++		{"dec",		OP_ENTRY(    ,    ,0xC6,0xD6,    ,    ,    ,    ,0xCE,0xDE,    ,    ,    ,    ,    )},
++		{"dex",		OP_ENTRY(0xCA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"dey",		OP_ENTRY(0x88,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"eor",		OP_ENTRY(    ,0x49,0x45,0x55,    ,0x41,0x51,    ,0x4D,0x5D,0x59,    ,    ,    ,    )},
++		{"inc",		OP_ENTRY(    ,    ,0xE6,0xF6,    ,    ,    ,    ,0xEE,0xFE,    ,    ,    ,    ,    )},
++		{"inx",		OP_ENTRY(0xE8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"iny",		OP_ENTRY(0xC8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"jmp",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,0x4C,    ,    ,0x6C,    ,    ,    )},
++		{"jsr",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,0x20,    ,    ,    ,    ,    ,    )},
++		{"lda",		OP_ENTRY(    ,0xA9,0xA5,0xB5,    ,0xA1,0xB1,    ,0xAD,0xBD,0xB9,    ,    ,    ,    )},
++		{"ldx",		OP_ENTRY(    ,0xA2,0xA6,    ,0xB6,    ,    ,    ,0xAE,    ,0xBE,    ,    ,    ,    )},
++		{"ldy",		OP_ENTRY(    ,0xA0,0xA4,0xB4,    ,    ,    ,    ,0xAC,0xBC,    ,    ,    ,    ,    )},
++		{"lsr",		OP_ENTRY(0x4A,    ,0x46,0x56,    ,    ,    ,    ,0x4E,0x5E,    ,    ,    ,    ,    )},
++		{"nop",		OP_ENTRY(0xEA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"ora",		OP_ENTRY(    ,0x09,0x05,0x15,    ,0x01,0x11,    ,0x0D,0x1D,0x19,    ,    ,    ,    )},
++		{"pha",		OP_ENTRY(0x48,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"php",		OP_ENTRY(0x08,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"pla",		OP_ENTRY(0x68,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"plp",		OP_ENTRY(0x28,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"rol",		OP_ENTRY(0x2A,    ,0x26,0x36,    ,    ,    ,    ,0x2E,0x3E,    ,    ,    ,    ,    )},
++		{"ror",		OP_ENTRY(0x6A,    ,0x66,0x76,    ,    ,    ,    ,0x6E,0x7E,    ,    ,    ,    ,    )},
++		{"rti",		OP_ENTRY(0x40,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"rts",		OP_ENTRY(0x60,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"sbc",		OP_ENTRY(    ,0xE9,0xE5,0xF5,    ,0xE1,0xF1,    ,0xED,0xFD,0xF9,    ,    ,    ,    )},
++		{"sec",		OP_ENTRY(0x38,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"sed",		OP_ENTRY(0xF8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"sei",		OP_ENTRY(0x78,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"sta",		OP_ENTRY(    ,    ,0x85,0x95,    ,0x81,0x91,    ,0x8D,0x9D,0x99,    ,    ,    ,    )},
++		{"stx",		OP_ENTRY(    ,    ,0x86,    ,0x96,    ,    ,    ,0x8E,    ,    ,    ,    ,    ,    )},
++		{"sty",		OP_ENTRY(    ,    ,0x84,0x94,    ,    ,    ,    ,0x8C,    ,    ,    ,    ,    ,    )},
++		{"tax",		OP_ENTRY(0xAA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"tay",		OP_ENTRY(0xA8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"tsx",		OP_ENTRY(0xBA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"txa",		OP_ENTRY(0x8A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"txs",		OP_ENTRY(0x9A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"tya",		OP_ENTRY(0x98,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+ 	};
+ 
+ // opcodes for the 65C02
+ static OPCODE
+ 	opcodes65C02[]=
+ 	{
+-//							 imp  imm  zp   zpx  zpy  indx indy (zp) ext  extx exty indw rel  impl2
+-		{"adc",		OP_ENTRY(    ,0x69,0x65,0x75,    ,0x61,0x71,0x72,0x6D,0x7D,0x79,    ,    ,    )},
+-		{"and",		OP_ENTRY(    ,0x29,0x25,0x35,    ,0x21,0x31,0x32,0x2D,0x3D,0x39,    ,    ,    )},
+-		{"asl",		OP_ENTRY(0x0A,    ,0x06,0x16,    ,    ,    ,    ,0x0E,0x1E,    ,    ,    ,    )},
+-		{"bcc",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x90,    )},
+-		{"bcs",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xB0,    )},
+-		{"beq",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xF0,    )},
+-		{"bit",		OP_ENTRY(    ,0x89,0x24,0x34,    ,    ,    ,    ,0x2C,0x3C,    ,    ,    ,    )},
+-		{"bmi",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x30,    )},
+-		{"bne",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xD0,    )},
+-		{"bpl",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x10,    )},
+-		{"bra",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x80,    )},
+-		{"brk",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x00)},
+-		{"bvc",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x50,    )},
+-		{"bvs",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x70,    )},
+-		{"clc",		OP_ENTRY(0x18,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"cld",		OP_ENTRY(0xD8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"cli",		OP_ENTRY(0x58,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"clv",		OP_ENTRY(0xB8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"cmp",		OP_ENTRY(    ,0xC9,0xC5,0xD5,    ,0xC1,0xD1,0xD2,0xCD,0xDD,0xD9,    ,    ,    )},
+-		{"cpx",		OP_ENTRY(    ,0xE0,0xE4,    ,    ,    ,    ,    ,0xEC,    ,    ,    ,    ,    )},
+-		{"cpy",		OP_ENTRY(    ,0xC0,0xC4,    ,    ,    ,    ,    ,0xCC,    ,    ,    ,    ,    )},
+-		{"dea",		OP_ENTRY(0x3A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"dec",		OP_ENTRY(    ,    ,0xC6,0xD6,    ,    ,    ,    ,0xCE,0xDE,    ,    ,    ,    )},
+-		{"dex",		OP_ENTRY(0xCA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"dey",		OP_ENTRY(0x88,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"eor",		OP_ENTRY(    ,0x49,0x45,0x55,    ,0x41,0x51,0x52,0x4D,0x5D,0x59,    ,    ,    )},
+-		{"ina",		OP_ENTRY(0x1A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"inc",		OP_ENTRY(    ,    ,0xE6,0xF6,    ,    ,    ,    ,0xEE,0xFE,    ,    ,    ,    )},
+-		{"inx",		OP_ENTRY(0xE8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"iny",		OP_ENTRY(0xC8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"jmp",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,0x4C,0x7C,    ,0x6C,    ,    )},
+-		{"jsr",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,0x20,    ,    ,    ,    ,    )},
+-		{"lda",		OP_ENTRY(    ,0xA9,0xA5,0xB5,    ,0xA1,0xB1,0xB2,0xAD,0xBD,0xB9,    ,    ,    )},
+-		{"ldx",		OP_ENTRY(    ,0xA2,0xA6,    ,0xB6,    ,    ,    ,0xAE,    ,0xBE,    ,    ,    )},
+-		{"ldy",		OP_ENTRY(    ,0xA0,0xA4,0xB4,    ,    ,    ,    ,0xAC,0xBC,    ,    ,    ,    )},
+-		{"lsr",		OP_ENTRY(0x4A,    ,0x46,0x56,    ,    ,    ,    ,0x4E,0x5E,    ,    ,    ,    )},
+-		{"nop",		OP_ENTRY(0xEA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"ora",		OP_ENTRY(    ,0x09,0x05,0x15,    ,0x01,0x11,0x12,0x0D,0x1D,0x19,    ,    ,    )},
+-		{"pha",		OP_ENTRY(0x48,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"php",		OP_ENTRY(0x08,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"phx",		OP_ENTRY(0xDA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"phy",		OP_ENTRY(0x5A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"pla",		OP_ENTRY(0x68,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"plp",		OP_ENTRY(0x28,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"plx",		OP_ENTRY(0xFA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"ply",		OP_ENTRY(0x7A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"rol",		OP_ENTRY(0x2A,    ,0x26,0x36,    ,    ,    ,    ,0x2E,0x3E,    ,    ,    ,    )},
+-		{"ror",		OP_ENTRY(0x6A,    ,0x66,0x76,    ,    ,    ,    ,0x6E,0x7E,    ,    ,    ,    )},
+-		{"rti",		OP_ENTRY(0x40,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"rts",		OP_ENTRY(0x60,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"sbc",		OP_ENTRY(    ,0xE9,0xE5,0xF5,    ,0xE1,0xF1,0xF2,0xED,0xFD,0xF9,    ,    ,    )},
+-		{"sec",		OP_ENTRY(0x38,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"sed",		OP_ENTRY(0xF8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"sei",		OP_ENTRY(0x78,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"sta",		OP_ENTRY(    ,    ,0x85,0x95,    ,0x81,0x91,0x92,0x8D,0x9D,0x99,    ,    ,    )},
+-		{"stx",		OP_ENTRY(    ,    ,0x86,    ,0x96,    ,    ,    ,0x8E,    ,    ,    ,    ,    )},
+-		{"sty",		OP_ENTRY(    ,    ,0x84,0x94,    ,    ,    ,    ,0x8C,    ,    ,    ,    ,    )},
+-		{"stz",		OP_ENTRY(    ,    ,0x64,0x74,    ,    ,    ,    ,0x9C,0x9E,    ,    ,    ,    )},
+-		{"tax",		OP_ENTRY(0xAA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"tay",		OP_ENTRY(0xA8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"trb",		OP_ENTRY(    ,    ,0x14,    ,    ,    ,    ,    ,0x1C,    ,    ,    ,    ,    )},
+-		{"tsb",		OP_ENTRY(    ,    ,0x04,    ,    ,    ,    ,    ,0x0C,    ,    ,    ,    ,    )},
+-		{"tsx",		OP_ENTRY(0xBA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"txa",		OP_ENTRY(0x8A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"txs",		OP_ENTRY(0x9A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+-		{"tya",		OP_ENTRY(0x98,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++//					 imp  imm  zp   zpx  zpy  indx indy (zp) ext  extx exty indw rel  impl2 zpr
++		{"adc",		OP_ENTRY(    ,0x69,0x65,0x75,    ,0x61,0x71,0x72,0x6D,0x7D,0x79,    ,    ,    ,    )},
++		{"and",		OP_ENTRY(    ,0x29,0x25,0x35,    ,0x21,0x31,0x32,0x2D,0x3D,0x39,    ,    ,    ,    )},
++		{"asl",		OP_ENTRY(0x0A,    ,0x06,0x16,    ,    ,    ,    ,0x0E,0x1E,    ,    ,    ,    ,    )},
++		{"bbr0",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x0f)},
++		{"bbr1",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x1f)},
++		{"bbr2",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x2f)},
++		{"bbr3",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x3f)},
++		{"bbr4",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x4f)},
++		{"bbr5",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x5f)},
++		{"bbr6",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x6f)},
++		{"bbr7",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x7f)},
++		{"bbs0",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x8f)},
++		{"bbs1",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x9f)},
++		{"bbs2",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xaf)},
++		{"bbs3",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xbf)},
++		{"bbs4",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xcf)},
++		{"bbs5",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xdf)},
++		{"bbs6",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xef)},
++		{"bbs7",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xff)},
++		{"bcc",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x90,    ,    )},
++		{"bcs",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xB0,    ,    )},
++		{"beq",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xF0,    ,    )},
++		{"bit",		OP_ENTRY(    ,0x89,0x24,0x34,    ,    ,    ,    ,0x2C,0x3C,    ,    ,    ,    ,    )},
++		{"bmi",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x30,    ,    )},
++		{"bne",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xD0,    ,    )},
++		{"bpl",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x10,    ,    )},
++		{"bra",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x80,    ,    )},
++		{"brk",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x00,    )},
++		{"bvc",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x50,    ,    )},
++		{"bvs",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x70,    ,    )},
++		{"clc",		OP_ENTRY(0x18,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"cld",		OP_ENTRY(0xD8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"cli",		OP_ENTRY(0x58,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"clv",		OP_ENTRY(0xB8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"cmp",		OP_ENTRY(    ,0xC9,0xC5,0xD5,    ,0xC1,0xD1,0xD2,0xCD,0xDD,0xD9,    ,    ,    ,    )},
++		{"cpx",		OP_ENTRY(    ,0xE0,0xE4,    ,    ,    ,    ,    ,0xEC,    ,    ,    ,    ,    ,    )},
++		{"cpy",		OP_ENTRY(    ,0xC0,0xC4,    ,    ,    ,    ,    ,0xCC,    ,    ,    ,    ,    ,    )},
++		{"dea",		OP_ENTRY(0x3A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"dec",		OP_ENTRY(    ,    ,0xC6,0xD6,    ,    ,    ,    ,0xCE,0xDE,    ,    ,    ,    ,    )},
++		{"dex",		OP_ENTRY(0xCA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"dey",		OP_ENTRY(0x88,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"eor",		OP_ENTRY(    ,0x49,0x45,0x55,    ,0x41,0x51,0x52,0x4D,0x5D,0x59,    ,    ,    ,    )},
++		{"ina",		OP_ENTRY(0x1A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"inc",		OP_ENTRY(    ,    ,0xE6,0xF6,    ,    ,    ,    ,0xEE,0xFE,    ,    ,    ,    ,    )},
++		{"inx",		OP_ENTRY(0xE8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"iny",		OP_ENTRY(0xC8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"jmp",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,0x4C,0x7C,    ,0x6C,    ,    ,    )},
++		{"jsr",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,0x20,    ,    ,    ,    ,    ,    )},
++		{"lda",		OP_ENTRY(    ,0xA9,0xA5,0xB5,    ,0xA1,0xB1,0xB2,0xAD,0xBD,0xB9,    ,    ,    ,    )},
++		{"ldx",		OP_ENTRY(    ,0xA2,0xA6,    ,0xB6,    ,    ,    ,0xAE,    ,0xBE,    ,    ,    ,    )},
++		{"ldy",		OP_ENTRY(    ,0xA0,0xA4,0xB4,    ,    ,    ,    ,0xAC,0xBC,    ,    ,    ,    ,    )},
++		{"lsr",		OP_ENTRY(0x4A,    ,0x46,0x56,    ,    ,    ,    ,0x4E,0x5E,    ,    ,    ,    ,    )},
++		{"nop",		OP_ENTRY(0xEA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"ora",		OP_ENTRY(    ,0x09,0x05,0x15,    ,0x01,0x11,0x12,0x0D,0x1D,0x19,    ,    ,    ,    )},
++		{"pha",		OP_ENTRY(0x48,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"php",		OP_ENTRY(0x08,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"phx",		OP_ENTRY(0xDA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"phy",		OP_ENTRY(0x5A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"pla",		OP_ENTRY(0x68,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"plp",		OP_ENTRY(0x28,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"plx",		OP_ENTRY(0xFA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"ply",		OP_ENTRY(0x7A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"rmb0",	OP_ENTRY(    ,    ,0x07,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"rmb1",	OP_ENTRY(    ,    ,0x17,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"rmb2",	OP_ENTRY(    ,    ,0x27,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"rmb3",	OP_ENTRY(    ,    ,0x37,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"rmb4",	OP_ENTRY(    ,    ,0x47,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"rmb5",	OP_ENTRY(    ,    ,0x57,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"rmb6",	OP_ENTRY(    ,    ,0x67,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"rmb7",	OP_ENTRY(    ,    ,0x77,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"rol",		OP_ENTRY(0x2A,    ,0x26,0x36,    ,    ,    ,    ,0x2E,0x3E,    ,    ,    ,    ,    )},
++		{"ror",		OP_ENTRY(0x6A,    ,0x66,0x76,    ,    ,    ,    ,0x6E,0x7E,    ,    ,    ,    ,    )},
++		{"rti",		OP_ENTRY(0x40,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"rts",		OP_ENTRY(0x60,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"sbc",		OP_ENTRY(    ,0xE9,0xE5,0xF5,    ,0xE1,0xF1,0xF2,0xED,0xFD,0xF9,    ,    ,    ,    )},
++		{"sec",		OP_ENTRY(0x38,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"sed",		OP_ENTRY(0xF8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"sei",		OP_ENTRY(0x78,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"smb0",	OP_ENTRY(    ,    ,0x87,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"smb1",	OP_ENTRY(    ,    ,0x97,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"smb2",	OP_ENTRY(    ,    ,0xa7,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"smb3",	OP_ENTRY(    ,    ,0xb7,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"smb4",	OP_ENTRY(    ,    ,0xc7,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"smb5",	OP_ENTRY(    ,    ,0xd7,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"smb6",	OP_ENTRY(    ,    ,0xe7,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"smb7",	OP_ENTRY(    ,    ,0xf7,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"sta",		OP_ENTRY(    ,    ,0x85,0x95,    ,0x81,0x91,0x92,0x8D,0x9D,0x99,    ,    ,    ,    )},
++		{"stx",		OP_ENTRY(    ,    ,0x86,    ,0x96,    ,    ,    ,0x8E,    ,    ,    ,    ,    ,    )},
++		{"sty",		OP_ENTRY(    ,    ,0x84,0x94,    ,    ,    ,    ,0x8C,    ,    ,    ,    ,    ,    )},
++		{"stz",		OP_ENTRY(    ,    ,0x64,0x74,    ,    ,    ,    ,0x9C,0x9E,    ,    ,    ,    ,    )},
++		{"tax",		OP_ENTRY(0xAA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"tay",		OP_ENTRY(0xA8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"trb",		OP_ENTRY(    ,    ,0x14,    ,    ,    ,    ,    ,0x1C,    ,    ,    ,    ,    ,    )},
++		{"tsb",		OP_ENTRY(    ,    ,0x04,    ,    ,    ,    ,    ,0x0C,    ,    ,    ,    ,    ,    )},
++		{"tsx",		OP_ENTRY(0xBA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"txa",		OP_ENTRY(0x8A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"txs",		OP_ENTRY(0x9A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"tya",		OP_ENTRY(0x98,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
++		{"wai",		OP_ENTRY(0xCB,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
+ 
+ // bbr, bbs, rmb, smb should be added some day
+ //	BBR	#n,zp,addr	branch to addr if bit n of location zp is clear
+@@ -236,7 +271,7 @@
+ //	RMB	#n,zp		clear bit n of location zp
+ //	SMB	#n,zp		set bit n of location zp
+ 
+-//These might be written differently in some assemblers (n=0..7):
++//These might be written differently in some assemblers (n=0..7):`
+ 
+ //	BBRn	zp,addr
+ //	BBSn	zp,addr
+@@ -291,15 +326,16 @@
+ enum
+ {
+ 	POT_IMMEDIATE,
+-	POT_VALUE,					// extended, zero page, or relative	xxxx or xx
+-	POT_VALUE_OFF_X,			// extended, or zero page			xxxx,X or xx,X
+-	POT_VALUE_OFF_Y,			// extended							xxxx,Y
+-	POT_INDIRECT,				// extended or zero page			(xxxx) or (xx)
+-	POT_ZP_INDIRECT_OFF_X,		// zero page						(xx,X)
+-	POT_ZP_INDIRECT_OFF_Y,		// zero page						(xx),Y
++	POT_VALUE,			// extended, zero page, or relative	xxxx or xx
++	POT_VALUE_OFF_X,		// extended, or zero page		xxxx,X or xx,X
++	POT_VALUE_OFF_Y,		// extended				xxxx,Y
++	POT_INDIRECT,			// extended or zero page		(xxxx) or (xx)
++	POT_ZP_INDIRECT_OFF_X,		// zero page				(xx,X)
++	POT_ZP_INDIRECT_OFF_Y,		// zero page				(xx),Y
++	POT_ZP_RELATIVE,		// zero page, relative offset		xx, xx
+ };
+ 
+-static bool ParseValueOperand(const char *line,unsigned int *lineIndex,unsigned int *type,int *value,bool *unresolved)
++static bool ParseValueOperand(const char *line,unsigned int *lineIndex,unsigned int *type,int *value,int *value2, bool *unresolved, bool *unresolved2)
+ // parse the operand as a value with a possible offset
+ {
+ 	if(ParseExpression(line,lineIndex,value,unresolved))
+@@ -327,6 +363,14 @@
+ 					return(true);
+ 				}
+ 			}
++			else if (ParseExpression(line, lineIndex, value2, unresolved2))
++			{
++				if (ParseComment(line, lineIndex))
++				{
++					*type=POT_ZP_RELATIVE;
++					return(true);
++				}
++			}
+ 		}
+ 	}
+ 	return(false);
+@@ -368,7 +412,7 @@
+ 	return(false);
+ }
+ 
+-static bool ParseOperand(const char *line,unsigned int *lineIndex,unsigned int *type,int *value,bool *unresolved)
++static bool ParseOperand(const char *line,unsigned int *lineIndex,unsigned int *type,int *value,int *value2, bool *unresolved, bool *unresolved2)
+ // Try to parse an operand and determine its type
+ // return true if the parsing succeeds
+ {
+@@ -414,12 +458,12 @@
+ 			else
+ 			{
+ 				*lineIndex=startIndex;					// value does not look indirect, so try direct approach
+-				return(ParseValueOperand(line,lineIndex,type,value,unresolved));
++				return(ParseValueOperand(line,lineIndex,type,value,value2,unresolved,unresolved2));
+ 			}
+ 		}
+ 		else
+ 		{
+-			return(ParseValueOperand(line,lineIndex,type,value,unresolved));
++			return(ParseValueOperand(line,lineIndex,type,value,value2,unresolved,unresolved2));
+ 		}
+ 	}
+ 	return(false);
+@@ -883,6 +927,44 @@
+ 	return(!fail);
+ }
+ 
++static bool HandleZeroPageRelative(OPCODE *opcode,int value,int value2, bool unresolved,bool unresolved2,LISTING_RECORD *listingRecord)
++// deal with zero page relative mode output only
++{
++	bool
++		fail;
++	unsigned int
++		offset;
++
++	fail=false;
++	if(opcode->typeMask&M_ZP_RELATIVE)
++	{
++		CheckUnsignedByteRange(value,true,true);
++		if(GenerateByte(opcode->baseOpcode[OT_ZP_RELATIVE],listingRecord))
++		{
++			fail=!GenerateByte(value,listingRecord);
++			offset=0;
++			
++			if(!unresolved2&&currentSegment)
++			{
++				offset=value2-(currentSegment->currentPC+currentSegment->codeGenOffset)-1;
++				Check8RelativeRange(offset,true,true);
++			}
++			fail=!GenerateByte(offset,listingRecord);
++		}
++		else
++		{
++			fail=true;
++		}
++
++	}
++	else
++	{
++		ReportBadOperands();
++	}
++	return(!fail);
++}
++
++
+ static OPCODE *MatchOpcode(const char *string)
+ // match opcodes for this processor, return NULL if none matched
+ {
+@@ -909,9 +991,9 @@
+ 	unsigned int
+ 		elementType;
+ 	int
+-		value;
++		value, value2;
+ 	bool
+-		unresolved;
++		unresolved, unresolved2;
+ 
+ 	result=true;					// no hard failure yet
+ 	*success=false;					// no match yet
+@@ -924,7 +1006,7 @@
+ 			*success=true;
+ 			if(!ParseComment(line,lineIndex))
+ 			{
+-				if(ParseOperand(line,lineIndex,&elementType,&value,&unresolved))
++				if(ParseOperand(line,lineIndex,&elementType,&value,&value2,&unresolved,&unresolved2))
+ 				{
+ 					switch(elementType)
+ 					{
+@@ -949,6 +1031,9 @@
+ 						case POT_ZP_INDIRECT_OFF_Y:
+ 							result=HandleIndirectOffY(opcode,value,unresolved,listingRecord);
+ 							break;
++					        case POT_ZP_RELATIVE:
++						        result=HandleZeroPageRelative(opcode,value,value2,unresolved,unresolved2,listingRecord);
++						        break;
+ 					}
+ 				}
+ 				else

Deleted: trunk/dports/devel/tpasm/files/tpasm1.4-bitops.patch
===================================================================
--- trunk/dports/devel/tpasm/files/tpasm1.4-bitops.patch	2007-11-29 10:04:13 UTC (rev 31602)
+++ trunk/dports/devel/tpasm/files/tpasm1.4-bitops.patch	2007-11-29 14:07:05 UTC (rev 31603)
@@ -1,511 +0,0 @@
---- processors/6502.c.sav	2006-08-12 18:31:48.000000000 -0400
-+++ processors/6502.c		2007-09-20 06:47:51.000000000 -0400
-@@ -28,39 +28,41 @@
- 
- // enumerated addressing modes
- 
--#define	OT_IMPLIED				0								// no operands
--#define	OT_IMMEDIATE			1								// #xx
--#define	OT_ZP					2								// xx
--#define	OT_ZP_OFF_X				3								// xx,X
--#define	OT_ZP_OFF_Y				4								// xx,Y
-+#define	OT_IMPLIED		0								// no operands
-+#define	OT_IMMEDIATE		1								// #xx
-+#define	OT_ZP			2								// xx
-+#define	OT_ZP_OFF_X		3								// xx,X
-+#define	OT_ZP_OFF_Y		4								// xx,Y
- #define	OT_ZP_INDIRECT_OFF_X	5								// (xx,X)
- #define	OT_ZP_INDIRECT_OFF_Y	6								// (xx),Y
--#define	OT_ZP_INDIRECT			7								// (xx)
--#define	OT_EXTENDED				8								// xxxx
--#define	OT_EXTENDED_OFF_X		9								// xxxx,X
--#define	OT_EXTENDED_OFF_Y		10								// xxxx,Y
-+#define	OT_ZP_INDIRECT		7								// (xx)
-+#define	OT_EXTENDED		8								// xxxx
-+#define	OT_EXTENDED_OFF_X	9								// xxxx,X
-+#define	OT_EXTENDED_OFF_Y	10								// xxxx,Y
- #define	OT_EXTENDED_INDIRECT	11								// (xxxx)
--#define	OT_RELATIVE				12								// one byte relative offset
--#define	OT_IMPLIED_2			13								// two-byte implied opcode (second byte is ignored)
-+#define	OT_RELATIVE		12								// one byte relative offset
-+#define	OT_IMPLIED_2		13								// two-byte implied opcode (second byte is ignored)
-+#define OT_ZP_RELATIVE		14								// xx, relative offset
- 
--#define	OT_NUM					OT_IMPLIED_2+1					// number of addressing modes
-+#define	OT_NUM					OT_ZP_RELATIVE+1					// number of addressing modes
- 
- // masks for the various addressing modes
- 
--#define	M_IMPLIED				(1<<OT_IMPLIED)
--#define	M_IMMEDIATE				(1<<OT_IMMEDIATE)
--#define	M_ZP					(1<<OT_ZP)
--#define	M_ZP_OFF_X				(1<<OT_ZP_OFF_X)
--#define	M_ZP_OFF_Y				(1<<OT_ZP_OFF_Y)
-+#define	M_IMPLIED			(1<<OT_IMPLIED)
-+#define	M_IMMEDIATE			(1<<OT_IMMEDIATE)
-+#define	M_ZP				(1<<OT_ZP)
-+#define	M_ZP_OFF_X			(1<<OT_ZP_OFF_X)
-+#define	M_ZP_OFF_Y			(1<<OT_ZP_OFF_Y)
- #define	M_ZP_INDIRECT_OFF_X		(1<<OT_ZP_INDIRECT_OFF_X)
- #define	M_ZP_INDIRECT_OFF_Y		(1<<OT_ZP_INDIRECT_OFF_Y)
- #define	M_ZP_INDIRECT			(1<<OT_ZP_INDIRECT)
--#define	M_EXTENDED				(1<<OT_EXTENDED)
-+#define	M_EXTENDED			(1<<OT_EXTENDED)
- #define	M_EXTENDED_OFF_X		(1<<OT_EXTENDED_OFF_X)
- #define	M_EXTENDED_OFF_Y		(1<<OT_EXTENDED_OFF_Y)
- #define	M_EXTENDED_INDIRECT		(1<<OT_EXTENDED_INDIRECT)
--#define	M_RELATIVE				(1<<OT_RELATIVE)
--#define	M_IMPLIED_2				(1<<OT_IMPLIED_2)
-+#define	M_RELATIVE			(1<<OT_RELATIVE)
-+#define	M_IMPLIED_2			(1<<OT_IMPLIED_2)
-+#define M_ZP_RELATIVE			(1<<OT_ZP_RELATIVE)
- 
- struct OPCODE
- {
-@@ -94,141 +96,173 @@
- 
- // This macro creates the typeFlags and baseOpcode list. For each non-white entry in the baseOpcode
- // list, a bit is set in typeFlags.
--#define OP_ENTRY(a,b,c,d,e,f,g,h,i,j,k,l,m,n) OP_FLAG(a,M_IMPLIED)|OP_FLAG(b,M_IMMEDIATE)|OP_FLAG(c,M_ZP)|OP_FLAG(d,M_ZP_OFF_X)|OP_FLAG(e,M_ZP_OFF_Y)|OP_FLAG(f,M_ZP_INDIRECT_OFF_X)|OP_FLAG(g,M_ZP_INDIRECT_OFF_Y)|OP_FLAG(h,M_ZP_INDIRECT)|OP_FLAG(i,M_EXTENDED)|OP_FLAG(j,M_EXTENDED_OFF_X)|OP_FLAG(k,M_EXTENDED_OFF_Y)|OP_FLAG(l,M_EXTENDED_INDIRECT)|OP_FLAG(m,M_RELATIVE)|OP_FLAG(n,M_IMPLIED_2),{OP_VAL(a),OP_VAL(b),OP_VAL(c),OP_VAL(d),OP_VAL(e),OP_VAL(f),OP_VAL(g),OP_VAL(h),OP_VAL(i),OP_VAL(j),OP_VAL(k),OP_VAL(l),OP_VAL(m),OP_VAL(n)}
-+#define OP_ENTRY(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) OP_FLAG(a,M_IMPLIED)|OP_FLAG(b,M_IMMEDIATE)|OP_FLAG(c,M_ZP)|OP_FLAG(d,M_ZP_OFF_X)|OP_FLAG(e,M_ZP_OFF_Y)|OP_FLAG(f,M_ZP_INDIRECT_OFF_X)|OP_FLAG(g,M_ZP_INDIRECT_OFF_Y)|OP_FLAG(h,M_ZP_INDIRECT)|OP_FLAG(i,M_EXTENDED)|OP_FLAG(j,M_EXTENDED_OFF_X)|OP_FLAG(k,M_EXTENDED_OFF_Y)|OP_FLAG(l,M_EXTENDED_INDIRECT)|OP_FLAG(m,M_RELATIVE)|OP_FLAG(n,M_IMPLIED_2)|OP_FLAG(o,M_ZP_RELATIVE),{OP_VAL(a),OP_VAL(b),OP_VAL(c),OP_VAL(d),OP_VAL(e),OP_VAL(f),OP_VAL(g),OP_VAL(h),OP_VAL(i),OP_VAL(j),OP_VAL(k),OP_VAL(l),OP_VAL(m),OP_VAL(n),OP_VAL(o)}
- 
- static OPCODE
- 	opcodes6502[]=
- 	{
--//							 imp  imm  zp   zpx  zpy  indx indy (zp) ext  extx exty (ext) rel impl2
--		{"adc",		OP_ENTRY(    ,0x69,0x65,0x75,    ,0x61,0x71,    ,0x6D,0x7D,0x79,    ,    ,    )},
--		{"and",		OP_ENTRY(    ,0x29,0x25,0x35,    ,0x21,0x31,    ,0x2D,0x3D,0x39,    ,    ,    )},
--		{"asl",		OP_ENTRY(0x0A,    ,0x06,0x16,    ,    ,    ,    ,0x0E,0x1E,    ,    ,    ,    )},
--		{"bcc",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x90,    )},
--		{"bcs",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xB0,    )},
--		{"beq",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xF0,    )},
--		{"bit",		OP_ENTRY(    ,    ,0x24,    ,    ,    ,    ,    ,0x2C,    ,    ,    ,    ,    )},
--		{"bmi",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x30,    )},
--		{"bne",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xD0,    )},
--		{"bpl",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x10,    )},
--		{"brk",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x00)},
--		{"bvc",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x50,    )},
--		{"bvs",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x70,    )},
--		{"clc",		OP_ENTRY(0x18,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"cld",		OP_ENTRY(0xD8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"cli",		OP_ENTRY(0x58,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"clv",		OP_ENTRY(0xB8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"cmp",		OP_ENTRY(    ,0xC9,0xC5,0xD5,    ,0xC1,0xD1,    ,0xCD,0xDD,0xD9,    ,    ,    )},
--		{"cpx",		OP_ENTRY(    ,0xE0,0xE4,    ,    ,    ,    ,    ,0xEC,    ,    ,    ,    ,    )},
--		{"cpy",		OP_ENTRY(    ,0xC0,0xC4,    ,    ,    ,    ,    ,0xCC,    ,    ,    ,    ,    )},
--		{"dec",		OP_ENTRY(    ,    ,0xC6,0xD6,    ,    ,    ,    ,0xCE,0xDE,    ,    ,    ,    )},
--		{"dex",		OP_ENTRY(0xCA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"dey",		OP_ENTRY(0x88,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"eor",		OP_ENTRY(    ,0x49,0x45,0x55,    ,0x41,0x51,    ,0x4D,0x5D,0x59,    ,    ,    )},
--		{"inc",		OP_ENTRY(    ,    ,0xE6,0xF6,    ,    ,    ,    ,0xEE,0xFE,    ,    ,    ,    )},
--		{"inx",		OP_ENTRY(0xE8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"iny",		OP_ENTRY(0xC8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"jmp",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,0x4C,    ,    ,0x6C,    ,    )},
--		{"jsr",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,0x20,    ,    ,    ,    ,    )},
--		{"lda",		OP_ENTRY(    ,0xA9,0xA5,0xB5,    ,0xA1,0xB1,    ,0xAD,0xBD,0xB9,    ,    ,    )},
--		{"ldx",		OP_ENTRY(    ,0xA2,0xA6,    ,0xB6,    ,    ,    ,0xAE,    ,0xBE,    ,    ,    )},
--		{"ldy",		OP_ENTRY(    ,0xA0,0xA4,0xB4,    ,    ,    ,    ,0xAC,0xBC,    ,    ,    ,    )},
--		{"lsr",		OP_ENTRY(0x4A,    ,0x46,0x56,    ,    ,    ,    ,0x4E,0x5E,    ,    ,    ,    )},
--		{"nop",		OP_ENTRY(0xEA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"ora",		OP_ENTRY(    ,0x09,0x05,0x15,    ,0x01,0x11,    ,0x0D,0x1D,0x19,    ,    ,    )},
--		{"pha",		OP_ENTRY(0x48,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"php",		OP_ENTRY(0x08,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"pla",		OP_ENTRY(0x68,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"plp",		OP_ENTRY(0x28,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"rol",		OP_ENTRY(0x2A,    ,0x26,0x36,    ,    ,    ,    ,0x2E,0x3E,    ,    ,    ,    )},
--		{"ror",		OP_ENTRY(0x6A,    ,0x66,0x76,    ,    ,    ,    ,0x6E,0x7E,    ,    ,    ,    )},
--		{"rti",		OP_ENTRY(0x40,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"rts",		OP_ENTRY(0x60,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"sbc",		OP_ENTRY(    ,0xE9,0xE5,0xF5,    ,0xE1,0xF1,    ,0xED,0xFD,0xF9,    ,    ,    )},
--		{"sec",		OP_ENTRY(0x38,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"sed",		OP_ENTRY(0xF8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"sei",		OP_ENTRY(0x78,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"sta",		OP_ENTRY(    ,    ,0x85,0x95,    ,0x81,0x91,    ,0x8D,0x9D,0x99,    ,    ,    )},
--		{"stx",		OP_ENTRY(    ,    ,0x86,    ,0x96,    ,    ,    ,0x8E,    ,    ,    ,    ,    )},
--		{"sty",		OP_ENTRY(    ,    ,0x84,0x94,    ,    ,    ,    ,0x8C,    ,    ,    ,    ,    )},
--		{"tax",		OP_ENTRY(0xAA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"tay",		OP_ENTRY(0xA8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"tsx",		OP_ENTRY(0xBA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"txa",		OP_ENTRY(0x8A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"txs",		OP_ENTRY(0x9A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"tya",		OP_ENTRY(0x98,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+//					 imp  imm  zp   zpx  zpy  indx indy (zp) ext  extx exty (ext) rel impl2 zpr
-+		{"adc",		OP_ENTRY(    ,0x69,0x65,0x75,    ,0x61,0x71,    ,0x6D,0x7D,0x79,    ,    ,    ,    )},
-+		{"and",		OP_ENTRY(    ,0x29,0x25,0x35,    ,0x21,0x31,    ,0x2D,0x3D,0x39,    ,    ,    ,    )},
-+		{"asl",		OP_ENTRY(0x0A,    ,0x06,0x16,    ,    ,    ,    ,0x0E,0x1E,    ,    ,    ,    ,    )},
-+		{"bcc",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x90,    ,    )},
-+		{"bcs",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xB0,    ,    )},
-+		{"beq",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xF0,    ,    )},
-+		{"bit",		OP_ENTRY(    ,    ,0x24,    ,    ,    ,    ,    ,0x2C,    ,    ,    ,    ,    ,    )},
-+		{"bmi",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x30,    ,    )},
-+		{"bne",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xD0,    ,    )},
-+		{"bpl",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x10,    ,    )},
-+		{"brk",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x00,    )},
-+		{"bvc",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x50,    ,    )},
-+		{"bvs",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x70,    ,    )},
-+		{"clc",		OP_ENTRY(0x18,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"cld",		OP_ENTRY(0xD8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"cli",		OP_ENTRY(0x58,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"clv",		OP_ENTRY(0xB8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"cmp",		OP_ENTRY(    ,0xC9,0xC5,0xD5,    ,0xC1,0xD1,    ,0xCD,0xDD,0xD9,    ,    ,    ,    )},
-+		{"cpx",		OP_ENTRY(    ,0xE0,0xE4,    ,    ,    ,    ,    ,0xEC,    ,    ,    ,    ,    ,    )},
-+		{"cpy",		OP_ENTRY(    ,0xC0,0xC4,    ,    ,    ,    ,    ,0xCC,    ,    ,    ,    ,    ,    )},
-+		{"dec",		OP_ENTRY(    ,    ,0xC6,0xD6,    ,    ,    ,    ,0xCE,0xDE,    ,    ,    ,    ,    )},
-+		{"dex",		OP_ENTRY(0xCA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"dey",		OP_ENTRY(0x88,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"eor",		OP_ENTRY(    ,0x49,0x45,0x55,    ,0x41,0x51,    ,0x4D,0x5D,0x59,    ,    ,    ,    )},
-+		{"inc",		OP_ENTRY(    ,    ,0xE6,0xF6,    ,    ,    ,    ,0xEE,0xFE,    ,    ,    ,    ,    )},
-+		{"inx",		OP_ENTRY(0xE8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"iny",		OP_ENTRY(0xC8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"jmp",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,0x4C,    ,    ,0x6C,    ,    ,    )},
-+		{"jsr",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,0x20,    ,    ,    ,    ,    ,    )},
-+		{"lda",		OP_ENTRY(    ,0xA9,0xA5,0xB5,    ,0xA1,0xB1,    ,0xAD,0xBD,0xB9,    ,    ,    ,    )},
-+		{"ldx",		OP_ENTRY(    ,0xA2,0xA6,    ,0xB6,    ,    ,    ,0xAE,    ,0xBE,    ,    ,    ,    )},
-+		{"ldy",		OP_ENTRY(    ,0xA0,0xA4,0xB4,    ,    ,    ,    ,0xAC,0xBC,    ,    ,    ,    ,    )},
-+		{"lsr",		OP_ENTRY(0x4A,    ,0x46,0x56,    ,    ,    ,    ,0x4E,0x5E,    ,    ,    ,    ,    )},
-+		{"nop",		OP_ENTRY(0xEA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"ora",		OP_ENTRY(    ,0x09,0x05,0x15,    ,0x01,0x11,    ,0x0D,0x1D,0x19,    ,    ,    ,    )},
-+		{"pha",		OP_ENTRY(0x48,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"php",		OP_ENTRY(0x08,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"pla",		OP_ENTRY(0x68,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"plp",		OP_ENTRY(0x28,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"rol",		OP_ENTRY(0x2A,    ,0x26,0x36,    ,    ,    ,    ,0x2E,0x3E,    ,    ,    ,    ,    )},
-+		{"ror",		OP_ENTRY(0x6A,    ,0x66,0x76,    ,    ,    ,    ,0x6E,0x7E,    ,    ,    ,    ,    )},
-+		{"rti",		OP_ENTRY(0x40,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"rts",		OP_ENTRY(0x60,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"sbc",		OP_ENTRY(    ,0xE9,0xE5,0xF5,    ,0xE1,0xF1,    ,0xED,0xFD,0xF9,    ,    ,    ,    )},
-+		{"sec",		OP_ENTRY(0x38,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"sed",		OP_ENTRY(0xF8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"sei",		OP_ENTRY(0x78,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"sta",		OP_ENTRY(    ,    ,0x85,0x95,    ,0x81,0x91,    ,0x8D,0x9D,0x99,    ,    ,    ,    )},
-+		{"stx",		OP_ENTRY(    ,    ,0x86,    ,0x96,    ,    ,    ,0x8E,    ,    ,    ,    ,    ,    )},
-+		{"sty",		OP_ENTRY(    ,    ,0x84,0x94,    ,    ,    ,    ,0x8C,    ,    ,    ,    ,    ,    )},
-+		{"tax",		OP_ENTRY(0xAA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"tay",		OP_ENTRY(0xA8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"tsx",		OP_ENTRY(0xBA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"txa",		OP_ENTRY(0x8A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"txs",		OP_ENTRY(0x9A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"tya",		OP_ENTRY(0x98,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
- 	};
- 
- // opcodes for the 65C02
- static OPCODE
- 	opcodes65C02[]=
- 	{
--//							 imp  imm  zp   zpx  zpy  indx indy (zp) ext  extx exty indw rel  impl2
--		{"adc",		OP_ENTRY(    ,0x69,0x65,0x75,    ,0x61,0x71,0x72,0x6D,0x7D,0x79,    ,    ,    )},
--		{"and",		OP_ENTRY(    ,0x29,0x25,0x35,    ,0x21,0x31,0x32,0x2D,0x3D,0x39,    ,    ,    )},
--		{"asl",		OP_ENTRY(0x0A,    ,0x06,0x16,    ,    ,    ,    ,0x0E,0x1E,    ,    ,    ,    )},
--		{"bcc",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x90,    )},
--		{"bcs",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xB0,    )},
--		{"beq",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xF0,    )},
--		{"bit",		OP_ENTRY(    ,0x89,0x24,0x34,    ,    ,    ,    ,0x2C,0x3C,    ,    ,    ,    )},
--		{"bmi",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x30,    )},
--		{"bne",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xD0,    )},
--		{"bpl",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x10,    )},
--		{"bra",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x80,    )},
--		{"brk",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x00)},
--		{"bvc",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x50,    )},
--		{"bvs",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x70,    )},
--		{"clc",		OP_ENTRY(0x18,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"cld",		OP_ENTRY(0xD8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"cli",		OP_ENTRY(0x58,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"clv",		OP_ENTRY(0xB8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"cmp",		OP_ENTRY(    ,0xC9,0xC5,0xD5,    ,0xC1,0xD1,0xD2,0xCD,0xDD,0xD9,    ,    ,    )},
--		{"cpx",		OP_ENTRY(    ,0xE0,0xE4,    ,    ,    ,    ,    ,0xEC,    ,    ,    ,    ,    )},
--		{"cpy",		OP_ENTRY(    ,0xC0,0xC4,    ,    ,    ,    ,    ,0xCC,    ,    ,    ,    ,    )},
--		{"dea",		OP_ENTRY(0x3A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"dec",		OP_ENTRY(    ,    ,0xC6,0xD6,    ,    ,    ,    ,0xCE,0xDE,    ,    ,    ,    )},
--		{"dex",		OP_ENTRY(0xCA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"dey",		OP_ENTRY(0x88,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"eor",		OP_ENTRY(    ,0x49,0x45,0x55,    ,0x41,0x51,0x52,0x4D,0x5D,0x59,    ,    ,    )},
--		{"ina",		OP_ENTRY(0x1A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"inc",		OP_ENTRY(    ,    ,0xE6,0xF6,    ,    ,    ,    ,0xEE,0xFE,    ,    ,    ,    )},
--		{"inx",		OP_ENTRY(0xE8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"iny",		OP_ENTRY(0xC8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"jmp",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,0x4C,0x7C,    ,0x6C,    ,    )},
--		{"jsr",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,0x20,    ,    ,    ,    ,    )},
--		{"lda",		OP_ENTRY(    ,0xA9,0xA5,0xB5,    ,0xA1,0xB1,0xB2,0xAD,0xBD,0xB9,    ,    ,    )},
--		{"ldx",		OP_ENTRY(    ,0xA2,0xA6,    ,0xB6,    ,    ,    ,0xAE,    ,0xBE,    ,    ,    )},
--		{"ldy",		OP_ENTRY(    ,0xA0,0xA4,0xB4,    ,    ,    ,    ,0xAC,0xBC,    ,    ,    ,    )},
--		{"lsr",		OP_ENTRY(0x4A,    ,0x46,0x56,    ,    ,    ,    ,0x4E,0x5E,    ,    ,    ,    )},
--		{"nop",		OP_ENTRY(0xEA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"ora",		OP_ENTRY(    ,0x09,0x05,0x15,    ,0x01,0x11,0x12,0x0D,0x1D,0x19,    ,    ,    )},
--		{"pha",		OP_ENTRY(0x48,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"php",		OP_ENTRY(0x08,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"phx",		OP_ENTRY(0xDA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"phy",		OP_ENTRY(0x5A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"pla",		OP_ENTRY(0x68,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"plp",		OP_ENTRY(0x28,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"plx",		OP_ENTRY(0xFA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"ply",		OP_ENTRY(0x7A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"rol",		OP_ENTRY(0x2A,    ,0x26,0x36,    ,    ,    ,    ,0x2E,0x3E,    ,    ,    ,    )},
--		{"ror",		OP_ENTRY(0x6A,    ,0x66,0x76,    ,    ,    ,    ,0x6E,0x7E,    ,    ,    ,    )},
--		{"rti",		OP_ENTRY(0x40,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"rts",		OP_ENTRY(0x60,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"sbc",		OP_ENTRY(    ,0xE9,0xE5,0xF5,    ,0xE1,0xF1,0xF2,0xED,0xFD,0xF9,    ,    ,    )},
--		{"sec",		OP_ENTRY(0x38,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"sed",		OP_ENTRY(0xF8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"sei",		OP_ENTRY(0x78,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"sta",		OP_ENTRY(    ,    ,0x85,0x95,    ,0x81,0x91,0x92,0x8D,0x9D,0x99,    ,    ,    )},
--		{"stx",		OP_ENTRY(    ,    ,0x86,    ,0x96,    ,    ,    ,0x8E,    ,    ,    ,    ,    )},
--		{"sty",		OP_ENTRY(    ,    ,0x84,0x94,    ,    ,    ,    ,0x8C,    ,    ,    ,    ,    )},
--		{"stz",		OP_ENTRY(    ,    ,0x64,0x74,    ,    ,    ,    ,0x9C,0x9E,    ,    ,    ,    )},
--		{"tax",		OP_ENTRY(0xAA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"tay",		OP_ENTRY(0xA8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"trb",		OP_ENTRY(    ,    ,0x14,    ,    ,    ,    ,    ,0x1C,    ,    ,    ,    ,    )},
--		{"tsb",		OP_ENTRY(    ,    ,0x04,    ,    ,    ,    ,    ,0x0C,    ,    ,    ,    ,    )},
--		{"tsx",		OP_ENTRY(0xBA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"txa",		OP_ENTRY(0x8A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"txs",		OP_ENTRY(0x9A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
--		{"tya",		OP_ENTRY(0x98,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+//					 imp  imm  zp   zpx  zpy  indx indy (zp) ext  extx exty indw rel  impl2 zpr
-+		{"adc",		OP_ENTRY(    ,0x69,0x65,0x75,    ,0x61,0x71,0x72,0x6D,0x7D,0x79,    ,    ,    ,    )},
-+		{"and",		OP_ENTRY(    ,0x29,0x25,0x35,    ,0x21,0x31,0x32,0x2D,0x3D,0x39,    ,    ,    ,    )},
-+		{"asl",		OP_ENTRY(0x0A,    ,0x06,0x16,    ,    ,    ,    ,0x0E,0x1E,    ,    ,    ,    ,    )},
-+		{"bbr0",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x0f)},
-+		{"bbr1",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x1f)},
-+		{"bbr2",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x2f)},
-+		{"bbr3",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x3f)},
-+		{"bbr4",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x4f)},
-+		{"bbr5",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x5f)},
-+		{"bbr6",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x6f)},
-+		{"bbr7",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x7f)},
-+		{"bbs0",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x8f)},
-+		{"bbs1",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x9f)},
-+		{"bbs2",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xaf)},
-+		{"bbs3",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xbf)},
-+		{"bbs4",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xcf)},
-+		{"bbs5",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xdf)},
-+		{"bbs6",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xef)},
-+		{"bbs7",	OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xff)},
-+		{"bcc",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x90,    ,    )},
-+		{"bcs",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xB0,    ,    )},
-+		{"beq",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xF0,    ,    )},
-+		{"bit",		OP_ENTRY(    ,0x89,0x24,0x34,    ,    ,    ,    ,0x2C,0x3C,    ,    ,    ,    ,    )},
-+		{"bmi",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x30,    ,    )},
-+		{"bne",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0xD0,    ,    )},
-+		{"bpl",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x10,    ,    )},
-+		{"bra",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x80,    ,    )},
-+		{"brk",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x00,    )},
-+		{"bvc",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x50,    ,    )},
-+		{"bvs",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,0x70,    ,    )},
-+		{"clc",		OP_ENTRY(0x18,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"cld",		OP_ENTRY(0xD8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"cli",		OP_ENTRY(0x58,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"clv",		OP_ENTRY(0xB8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"cmp",		OP_ENTRY(    ,0xC9,0xC5,0xD5,    ,0xC1,0xD1,0xD2,0xCD,0xDD,0xD9,    ,    ,    ,    )},
-+		{"cpx",		OP_ENTRY(    ,0xE0,0xE4,    ,    ,    ,    ,    ,0xEC,    ,    ,    ,    ,    ,    )},
-+		{"cpy",		OP_ENTRY(    ,0xC0,0xC4,    ,    ,    ,    ,    ,0xCC,    ,    ,    ,    ,    ,    )},
-+		{"dea",		OP_ENTRY(0x3A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"dec",		OP_ENTRY(    ,    ,0xC6,0xD6,    ,    ,    ,    ,0xCE,0xDE,    ,    ,    ,    ,    )},
-+		{"dex",		OP_ENTRY(0xCA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"dey",		OP_ENTRY(0x88,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"eor",		OP_ENTRY(    ,0x49,0x45,0x55,    ,0x41,0x51,0x52,0x4D,0x5D,0x59,    ,    ,    ,    )},
-+		{"ina",		OP_ENTRY(0x1A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"inc",		OP_ENTRY(    ,    ,0xE6,0xF6,    ,    ,    ,    ,0xEE,0xFE,    ,    ,    ,    ,    )},
-+		{"inx",		OP_ENTRY(0xE8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"iny",		OP_ENTRY(0xC8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"jmp",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,0x4C,0x7C,    ,0x6C,    ,    ,    )},
-+		{"jsr",		OP_ENTRY(    ,    ,    ,    ,    ,    ,    ,    ,0x20,    ,    ,    ,    ,    ,    )},
-+		{"lda",		OP_ENTRY(    ,0xA9,0xA5,0xB5,    ,0xA1,0xB1,0xB2,0xAD,0xBD,0xB9,    ,    ,    ,    )},
-+		{"ldx",		OP_ENTRY(    ,0xA2,0xA6,    ,0xB6,    ,    ,    ,0xAE,    ,0xBE,    ,    ,    ,    )},
-+		{"ldy",		OP_ENTRY(    ,0xA0,0xA4,0xB4,    ,    ,    ,    ,0xAC,0xBC,    ,    ,    ,    ,    )},
-+		{"lsr",		OP_ENTRY(0x4A,    ,0x46,0x56,    ,    ,    ,    ,0x4E,0x5E,    ,    ,    ,    ,    )},
-+		{"nop",		OP_ENTRY(0xEA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"ora",		OP_ENTRY(    ,0x09,0x05,0x15,    ,0x01,0x11,0x12,0x0D,0x1D,0x19,    ,    ,    ,    )},
-+		{"pha",		OP_ENTRY(0x48,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"php",		OP_ENTRY(0x08,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"phx",		OP_ENTRY(0xDA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"phy",		OP_ENTRY(0x5A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"pla",		OP_ENTRY(0x68,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"plp",		OP_ENTRY(0x28,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"plx",		OP_ENTRY(0xFA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"ply",		OP_ENTRY(0x7A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"rmb0",	OP_ENTRY(    ,    ,0x07,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"rmb1",	OP_ENTRY(    ,    ,0x17,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"rmb2",	OP_ENTRY(    ,    ,0x27,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"rmb3",	OP_ENTRY(    ,    ,0x37,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"rmb4",	OP_ENTRY(    ,    ,0x47,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"rmb5",	OP_ENTRY(    ,    ,0x57,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"rmb6",	OP_ENTRY(    ,    ,0x67,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"rmb7",	OP_ENTRY(    ,    ,0x77,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"rol",		OP_ENTRY(0x2A,    ,0x26,0x36,    ,    ,    ,    ,0x2E,0x3E,    ,    ,    ,    ,    )},
-+		{"ror",		OP_ENTRY(0x6A,    ,0x66,0x76,    ,    ,    ,    ,0x6E,0x7E,    ,    ,    ,    ,    )},
-+		{"rti",		OP_ENTRY(0x40,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"rts",		OP_ENTRY(0x60,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"sbc",		OP_ENTRY(    ,0xE9,0xE5,0xF5,    ,0xE1,0xF1,0xF2,0xED,0xFD,0xF9,    ,    ,    ,    )},
-+		{"sec",		OP_ENTRY(0x38,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"sed",		OP_ENTRY(0xF8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"sei",		OP_ENTRY(0x78,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"smb0",	OP_ENTRY(    ,    ,0x87,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"smb1",	OP_ENTRY(    ,    ,0x97,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"smb2",	OP_ENTRY(    ,    ,0xa7,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"smb3",	OP_ENTRY(    ,    ,0xb7,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"smb4",	OP_ENTRY(    ,    ,0xc7,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"smb5",	OP_ENTRY(    ,    ,0xd7,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"smb6",	OP_ENTRY(    ,    ,0xe7,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"smb7",	OP_ENTRY(    ,    ,0xf7,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"sta",		OP_ENTRY(    ,    ,0x85,0x95,    ,0x81,0x91,0x92,0x8D,0x9D,0x99,    ,    ,    ,    )},
-+		{"stx",		OP_ENTRY(    ,    ,0x86,    ,0x96,    ,    ,    ,0x8E,    ,    ,    ,    ,    ,    )},
-+		{"sty",		OP_ENTRY(    ,    ,0x84,0x94,    ,    ,    ,    ,0x8C,    ,    ,    ,    ,    ,    )},
-+		{"stz",		OP_ENTRY(    ,    ,0x64,0x74,    ,    ,    ,    ,0x9C,0x9E,    ,    ,    ,    ,    )},
-+		{"tax",		OP_ENTRY(0xAA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"tay",		OP_ENTRY(0xA8,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"trb",		OP_ENTRY(    ,    ,0x14,    ,    ,    ,    ,    ,0x1C,    ,    ,    ,    ,    ,    )},
-+		{"tsb",		OP_ENTRY(    ,    ,0x04,    ,    ,    ,    ,    ,0x0C,    ,    ,    ,    ,    ,    )},
-+		{"tsx",		OP_ENTRY(0xBA,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"txa",		OP_ENTRY(0x8A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"txs",		OP_ENTRY(0x9A,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
-+		{"tya",		OP_ENTRY(0x98,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    ,    )},
- 
- // bbr, bbs, rmb, smb should be added some day
- //	BBR	#n,zp,addr	branch to addr if bit n of location zp is clear
-@@ -236,7 +270,7 @@
- //	RMB	#n,zp		clear bit n of location zp
- //	SMB	#n,zp		set bit n of location zp
- 
--//These might be written differently in some assemblers (n=0..7):
-+//These might be written differently in some assemblers (n=0..7):`
- 
- //	BBRn	zp,addr
- //	BBSn	zp,addr
-@@ -291,15 +325,16 @@
- enum
- {
- 	POT_IMMEDIATE,
--	POT_VALUE,					// extended, zero page, or relative	xxxx or xx
--	POT_VALUE_OFF_X,			// extended, or zero page			xxxx,X or xx,X
--	POT_VALUE_OFF_Y,			// extended							xxxx,Y
--	POT_INDIRECT,				// extended or zero page			(xxxx) or (xx)
--	POT_ZP_INDIRECT_OFF_X,		// zero page						(xx,X)
--	POT_ZP_INDIRECT_OFF_Y,		// zero page						(xx),Y
-+	POT_VALUE,			// extended, zero page, or relative	xxxx or xx
-+	POT_VALUE_OFF_X,		// extended, or zero page		xxxx,X or xx,X
-+	POT_VALUE_OFF_Y,		// extended				xxxx,Y
-+	POT_INDIRECT,			// extended or zero page		(xxxx) or (xx)
-+	POT_ZP_INDIRECT_OFF_X,		// zero page				(xx,X)
-+	POT_ZP_INDIRECT_OFF_Y,		// zero page				(xx),Y
-+	POT_ZP_RELATIVE,		// zero page, relative offset		xx, xx
- };
- 
--static bool ParseValueOperand(const char *line,unsigned int *lineIndex,unsigned int *type,int *value,bool *unresolved)
-+static bool ParseValueOperand(const char *line,unsigned int *lineIndex,unsigned int *type,int *value,int *value2, bool *unresolved, bool *unresolved2)
- // parse the operand as a value with a possible offset
- {
- 	if(ParseExpression(line,lineIndex,value,unresolved))
-@@ -327,6 +362,14 @@
- 					return(true);
- 				}
- 			}
-+			else if (ParseExpression(line, lineIndex, value2, unresolved2))
-+			{
-+				if (ParseComment(line, lineIndex))
-+				{
-+					*type=POT_ZP_RELATIVE;
-+					return(true);
-+				}
-+			}
- 		}
- 	}
- 	return(false);
-@@ -368,7 +411,7 @@
- 	return(false);
- }
- 
--static bool ParseOperand(const char *line,unsigned int *lineIndex,unsigned int *type,int *value,bool *unresolved)
-+static bool ParseOperand(const char *line,unsigned int *lineIndex,unsigned int *type,int *value,int *value2, bool *unresolved, bool *unresolved2)
- // Try to parse an operand and determine its type
- // return true if the parsing succeeds
- {
-@@ -414,12 +457,12 @@
- 			else
- 			{
- 				*lineIndex=startIndex;					// value does not look indirect, so try direct approach
--				return(ParseValueOperand(line,lineIndex,type,value,unresolved));
-+				return(ParseValueOperand(line,lineIndex,type,value,value2,unresolved,unresolved2));
- 			}
- 		}
- 		else
- 		{
--			return(ParseValueOperand(line,lineIndex,type,value,unresolved));
-+			return(ParseValueOperand(line,lineIndex,type,value,value2,unresolved,unresolved2));
- 		}
- 	}
- 	return(false);
-@@ -883,6 +926,44 @@
- 	return(!fail);
- }
- 
-+static bool HandleZeroPageRelative(OPCODE *opcode,int value,int value2, bool unresolved,bool unresolved2,LISTING_RECORD *listingRecord)
-+// deal with zero page relative mode output only
-+{
-+	bool
-+		fail;
-+	unsigned int
-+		offset;
-+
-+	fail=false;
-+	if(opcode->typeMask&M_ZP_RELATIVE)
-+	{
-+		CheckUnsignedByteRange(value,true,true);
-+		if(GenerateByte(opcode->baseOpcode[OT_ZP_RELATIVE],listingRecord))
-+		{
-+			fail=!GenerateByte(value,listingRecord);
-+			offset=0;
-+			
-+			if(!unresolved2&&currentSegment)
-+			{
-+				offset=value2-(currentSegment->currentPC+currentSegment->codeGenOffset)-1;
-+				Check8RelativeRange(offset,true,true);
-+			}
-+			fail=!GenerateByte(offset,listingRecord);
-+		}
-+		else
-+		{
-+			fail=true;
-+		}
-+
-+	}
-+	else
-+	{
-+		ReportBadOperands();
-+	}
-+	return(!fail);
-+}
-+
-+
- static OPCODE *MatchOpcode(const char *string)
- // match opcodes for this processor, return NULL if none matched
- {
-@@ -909,9 +990,9 @@
- 	unsigned int
- 		elementType;
- 	int
--		value;
-+		value, value2;
- 	bool
--		unresolved;
-+		unresolved, unresolved2;
- 
- 	result=true;					// no hard failure yet
- 	*success=false;					// no match yet
-@@ -924,7 +1005,7 @@
- 			*success=true;
- 			if(!ParseComment(line,lineIndex))
- 			{
--				if(ParseOperand(line,lineIndex,&elementType,&value,&unresolved))
-+				if(ParseOperand(line,lineIndex,&elementType,&value,&value2,&unresolved,&unresolved2))
- 				{
- 					switch(elementType)
- 					{
-@@ -949,6 +1030,9 @@
- 						case POT_ZP_INDIRECT_OFF_Y:
- 							result=HandleIndirectOffY(opcode,value,unresolved,listingRecord);
- 							break;
-+					        case POT_ZP_RELATIVE:
-+						        result=HandleZeroPageRelative(opcode,value,value2,unresolved,unresolved2,listingRecord);
-+						        break;
- 					}
- 				}
- 				else

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20071129/e41573d5/attachment-0001.html


More information about the macports-changes mailing list