/* Remaining stuff:
*
* adr
- * bank.adr
* adr,x
- * bank.adr,x
* adr,y
* adr,s
*/
A->Expr = Expression ();
- if (Tok == TOK_DOT) {
-
- /* Expr was a bank specification: bank.adr or bank.adr,x */
- A->Bank = A->Expr;
- 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;
- }
+ if (Tok == TOK_COMMA) {
- } else {
-
- if (Tok == TOK_COMMA) {
-
- NextTok ();
- switch (Tok) {
+ NextTok ();
+ switch (Tok) {
- case TOK_X:
- A->AddrModeSet = AM_ABS_LONG_X | AM_ABS_X | AM_DIR_X;
- NextTok ();
- break;
+ case TOK_X:
+ A->AddrModeSet = AM_ABS_LONG_X | AM_ABS_X | AM_DIR_X;
+ NextTok ();
+ break;
- case TOK_Y:
- A->AddrModeSet = AM_ABS_Y | AM_DIR_Y;
- NextTok ();
- break;
+ case TOK_Y:
+ A->AddrModeSet = AM_ABS_Y | AM_DIR_Y;
+ NextTok ();
+ break;
- case TOK_S:
- A->AddrModeSet = AM_STACK_REL;
- NextTok ();
- break;
+ case TOK_S:
+ A->AddrModeSet = AM_STACK_REL;
+ NextTok ();
+ break;
- default:
- Error ("Syntax error");
+ default:
+ Error ("Syntax error");
- }
+ }
- } else {
+ } else {
- A->AddrModeSet = AM_ABS_LONG | AM_ABS | AM_DIR;
+ A->AddrModeSet = AM_ABS_LONG | AM_ABS | AM_DIR;
- }
- }
+ }
}
/* Apply addressing mode overrides */