Add 4510 support for C65/C64DX

This commit is contained in:
Sven Oliver Moll
2016-08-29 10:45:18 +02:00
parent e52feb2b91
commit 0538184699
15 changed files with 630 additions and 82 deletions

View File

@@ -140,16 +140,27 @@ void GetEA (EffAddr* A)
} else {
/* (adr) or (adr),y */
/* (adr), (adr),y or (adr),z */
Consume (IndirectLeave, IndirectExpect);
if (CurTok.Tok == TOK_COMMA) {
/* (adr),y */
NextTok ();
Consume (TOK_Y, "`Y' expected");
A->AddrModeSet = AM65_DIR_IND_Y;
switch(CurTok.Tok) {
case TOK_Z:
if (CPU == CPU_4510) {
NextTok ();
A->AddrModeSet = AM65_DIR_IND;
}
break;
default:
Consume (TOK_Y, "`Y' expected");
A->AddrModeSet = AM65_DIR_IND_Y;
break;
}
} else {
/* (adr) */
A->AddrModeSet = AM65_ABS_IND | AM65_ABS_IND_LONG | AM65_DIR_IND;
A->AddrModeSet = (CPU == CPU_4510) ? AM65_ABS_IND
: AM65_ABS_IND | AM65_ABS_IND_LONG | AM65_DIR_IND;
}
}