1
0
mirror of https://github.com/cc65/cc65.git synced 2024-09-30 08:57:49 +00:00

Remove bank.offs address spec

git-svn-id: svn://svn.cc65.org/cc65/trunk@2661 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2003-11-13 22:02:45 +00:00
parent 756de64bd5
commit 274bafe6a5

View File

@ -159,63 +159,42 @@ void GetEA (EffAddr* A)
/* Remaining stuff: /* Remaining stuff:
* *
* adr * adr
* bank.adr
* adr,x * adr,x
* bank.adr,x
* adr,y * adr,y
* adr,s * adr,s
*/ */
A->Expr = Expression (); A->Expr = Expression ();
if (Tok == TOK_DOT) { if (Tok == TOK_COMMA) {
/* Expr was a bank specification: bank.adr or bank.adr,x */ NextTok ();
A->Bank = A->Expr; switch (Tok) {
NextTok ();
A->Expr = Expression ();
if (Tok == TOK_COMMA) {
/* bank.adr,x */
NextTok ();
Consume (TOK_X, "`X' expected");
A->AddrModeSet = AM_ABS_LONG_X;
} else {
/* bank.adr */
A->AddrModeSet = AM_ABS_LONG;
}
} else { case TOK_X:
A->AddrModeSet = AM_ABS_LONG_X | AM_ABS_X | AM_DIR_X;
NextTok ();
break;
if (Tok == TOK_COMMA) { case TOK_Y:
A->AddrModeSet = AM_ABS_Y | AM_DIR_Y;
NextTok ();
break;
NextTok (); case TOK_S:
switch (Tok) { A->AddrModeSet = AM_STACK_REL;
NextTok ();
break;
case TOK_X: default:
A->AddrModeSet = AM_ABS_LONG_X | AM_ABS_X | AM_DIR_X; Error ("Syntax error");
NextTok ();
break;
case TOK_Y: }
A->AddrModeSet = AM_ABS_Y | AM_DIR_Y;
NextTok ();
break;
case TOK_S: } else {
A->AddrModeSet = AM_STACK_REL;
NextTok ();
break;
default: A->AddrModeSet = AM_ABS_LONG | AM_ABS | AM_DIR;
Error ("Syntax error");
} }
} else {
A->AddrModeSet = AM_ABS_LONG | AM_ABS | AM_DIR;
}
}
} }
/* Apply addressing mode overrides */ /* Apply addressing mode overrides */