Appalm/src/6502.h

118 lines
3.1 KiB
C
Executable File

UInt32 run6502(UInt32);
void reset6502(UInt8 *, WRITEBYTE *, READBYTE *);
void setPcCheckFuncs(void);
void clrPcCheckFuncs(void);
extern UInt16 opTable6502[256];
extern union state6502_t
{
struct
{
UInt32 DATA; /* D0 */
UInt32 INST; /* D1 */
UInt32 ACC; /* D2 */
UInt32 X; /* D3 */
UInt32 Y; /* D4 */
UInt32 SP_CC; /* D5 */
UInt32 EA; /* D6 */
UInt32 PAGE; /* D7 */
UInt32 PC; /* A0 */
UInt32 OPBASE; /* A1 */
UInt32 MEMBASE;/* A2 */
UInt32 WRMEM; /* A3 */
UInt32 RDMEM; /* A4 */
UInt32 ADDR; /* A6 */
} LongRegs;
struct
{
UInt16 Filler0;
UInt16 DATA; /* D0 */
UInt16 INSTHI;
UInt16 INSTLO; /* D1 */
UInt16 Filler1;
UInt16 ACC; /* D2 */
UInt16 Filler2;
UInt16 X; /* D3 */
UInt16 Filler3;
UInt16 Y; /* D4 */
UInt16 SP;
UInt16 CC; /* D5 */
UInt16 Filler5;
UInt16 EA; /* D6 */
UInt16 Filler6;
UInt16 PAGE; /* D7 */
UInt16 Filler7;
UInt16 PC; /* A0 */
UInt16 Filler8;
UInt16 OPBASE; /* A1 */
UInt16 Filler9;
UInt16 MEMBASE;/* A2 */
UInt16 Filler10;
UInt16 WRMEM; /* A3 */
UInt16 Filler11;
UInt16 RDMEM; /* A4 */
UInt16 Filler12;
UInt16 ADDR; /* A6 */
} WordRegs;
struct
{
UInt8 Filler0;
UInt8 Filler1;
UInt8 Filler2;
UInt8 DATA; /* D0 */
UInt8 INST3;
UInt8 INST2;
UInt8 INST1;
UInt8 INST0; /* D1 */
UInt8 Filler3;
UInt8 Filler4;
UInt8 Filler5;
UInt8 ACC; /* D2 */
UInt8 Filler6;
UInt8 Filler7;
UInt8 Filler8;
UInt8 X; /* D3 */
UInt8 Filler9;
UInt8 Filler10;
UInt8 Filler11;
UInt8 Y; /* D4 */
UInt8 SPHI;
UInt8 SPLO;
UInt8 Filler14;
UInt8 CC; /* D5 */
UInt8 Filler18;
UInt8 Filler19;
UInt8 Filler20;
UInt8 EA; /* D6 */
UInt8 Filler21;
UInt8 Filler22;
UInt8 Filler23;
UInt8 PAGE; /* D7 */
UInt8 Filler24;
UInt8 Filler25;
UInt8 PCHI; /* A0 */
UInt8 PCLO; /* A0 */
UInt8 Filler26;
UInt8 Filler27;
UInt8 OPBASEHI;/* A1 */
UInt8 OPBASELO;/* A1 */
UInt8 Filler28;
UInt8 Filler29;
UInt8 MEMBASEHI;/* A2 */
UInt8 MEMBASELO;/* A2 */
UInt8 Filler30;
UInt8 Filler31;
UInt8 WRMEM; /* A3 */
UInt8 WRMEMLO; /* A3 */
UInt8 Filler32;
UInt8 Filler33;
UInt8 RDMEM; /* A4 */
UInt8 RDMEMLO; /* A4 */
UInt8 Filler34;
UInt8 Filler35;
UInt8 ADDRHI; /* A6 */
UInt8 ADDRLO; /* A6 */
} ByteRegs;
} state6502;
extern UInt8 status6502;