[30096] trunk/dports/devel

source_changes at macosforge.org source_changes at macosforge.org
Fri Oct 19 09:01:25 PDT 2007


Revision: 30096
          http://trac.macosforge.org/projects/macports/changeset/30096
Author:   gwright at macports.org
Date:     2007-10-19 09:01:25 -0700 (Fri, 19 Oct 2007)

Log Message:
-----------
New port: tpasm 1.4.

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

Added: trunk/dports/devel/tpasm/Portfile
===================================================================
--- trunk/dports/devel/tpasm/Portfile	                        (rev 0)
+++ trunk/dports/devel/tpasm/Portfile	2007-10-19 16:01:25 UTC (rev 30096)
@@ -0,0 +1,43 @@
+# $Id: Portfile 22478 2007-03-02 05:16:40Z pipping at macports.org $
+
+PortSystem 1.0
+
+name		tpasm
+version		1.4
+categories	devel
+platforms	darwin
+maintainers	nomaintainer at macports.org
+description	A cross assembler for a variety of common microprocessors
+long_description	\
+		Tpasm is a command line based cross assembler for a	\
+		variety of common microprocessors and controllers,	\
+		currently supporting:					\
+									\
+			Rockwell 6502 (6502, 65c02)			\
+			Motorola 6805 (6805, 68705), 6809, 68hc11	\
+			Intel 8051 (8031, 8032, 8051, 8052, 80c390)	\
+			Atmel AVR (avt, attiny, at90, atmega series)	\
+			Core Technologies CTXP-1			\
+			Microchip PIC (12xxx, 14xxx, 16xxx, 17xxx)	\
+			Sunplus SPCxxx series				\
+			Zilog Z80 (z80, z180)
+
+homepage	http://www.sqrt.com/
+master_sites	ftp://ftp.ct0.com/pub/
+
+checksums	md5 9a1f6db0b045123eaaf58d73da372a9c
+
+extract.suffix	.tgz
+distfiles	${name}${extract.suffix}
+
+patchfiles	tpasm1.4-bitops.patch
+worksrcdir	${name}${version}
+
+use_configure	no
+
+destroot	{ xinstall -d 755 ${destroot}${prefix}/bin
+		  xinstall -d 755 ${destroot}${prefix}/share/doc/${name}
+		  xinstall -m 755 ${worksrcpath}/${name} ${destroot}${prefix}/bin/
+		  xinstall -m 644 -W ${worksrcpath} INSTALL.TXT LICENSE.TXT MANUAL.TXT README.TXT README_AVR.TXT README_PIC.TXT ${destroot}${prefix}/share/doc/${name}
+		}
+

Added: trunk/dports/devel/tpasm/files/tpasm1.4-bitops.patch
===================================================================
--- trunk/dports/devel/tpasm/files/tpasm1.4-bitops.patch	                        (rev 0)
+++ trunk/dports/devel/tpasm/files/tpasm1.4-bitops.patch	2007-10-19 16:01:25 UTC (rev 30096)
@@ -0,0 +1,511 @@
+--- 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/20071019/c209b408/attachment-0001.html


More information about the macports-changes mailing list