- break;
-
- case OP65_JVC:
- break;
-
- case OP65_JVS:
- break;
-
- case OP65_LDA:
- if (CE_IsConstImm (E)) {
- Out->RegA = (unsigned char) E->Num;
- } else if (E->AM == AM65_ZP) {
- switch (GetKnownReg (E->Use & REG_ZP, In)) {
- case REG_TMP1:
- Out->RegA = In->Tmp1;
- break;
- case REG_PTR1_LO:
- Out->RegA = In->Ptr1Lo;
- break;
- case REG_PTR1_HI:
- Out->RegA = In->Ptr1Hi;
- break;
- case REG_SREG_LO:
- Out->RegA = In->SRegLo;
- break;
- case REG_SREG_HI:
- Out->RegA = In->SRegHi;
- break;
- default:
- Out->RegA = UNKNOWN_REGVAL;
- break;
- }
- } else {
- /* A is now unknown */
- Out->RegA = UNKNOWN_REGVAL;
- }
- break;
-
- case OP65_LDX:
- if (CE_IsConstImm (E)) {
- Out->RegX = (unsigned char) E->Num;
- } else if (E->AM == AM65_ZP) {
- switch (GetKnownReg (E->Use & REG_ZP, In)) {
- case REG_TMP1:
- Out->RegX = In->Tmp1;
- break;
- case REG_PTR1_LO:
- Out->RegX = In->Ptr1Lo;
- break;
- case REG_PTR1_HI:
- Out->RegX = In->Ptr1Hi;
- break;
- case REG_SREG_LO:
- Out->RegX = In->SRegLo;
- break;
- case REG_SREG_HI:
- Out->RegX = In->SRegHi;
- break;
- default:
- Out->RegX = UNKNOWN_REGVAL;
- break;
- }
- } else {
- /* X is now unknown */
- Out->RegX = UNKNOWN_REGVAL;
- }
- break;
-
- case OP65_LDY:
- if (CE_IsConstImm (E)) {
- Out->RegY = (unsigned char) E->Num;
- } else if (E->AM == AM65_ZP) {
- switch (GetKnownReg (E->Use & REG_ZP, In)) {
- case REG_TMP1:
- Out->RegY = In->Tmp1;
- break;
- case REG_PTR1_LO:
- Out->RegY = In->Ptr1Lo;
- break;
- case REG_PTR1_HI:
- Out->RegY = In->Ptr1Hi;
- break;
- case REG_SREG_LO:
- Out->RegY = In->SRegLo;
- break;
- case REG_SREG_HI:
- Out->RegY = In->SRegHi;
- break;
- default:
- Out->RegY = UNKNOWN_REGVAL;
- break;
- }
- } else {
- /* Y is now unknown */
- Out->RegY = UNKNOWN_REGVAL;
- }
- break;
-
- case OP65_LSR:
- if (E->AM == AM65_ACC && RegValIsKnown (In->RegA)) {
- Out->RegA = (In->RegA >> 1) & 0xFF;
- } else if (E->AM == AM65_ZP) {
- switch (GetKnownReg (E->Chg & REG_ZP, In)) {
- case REG_TMP1:
- Out->Tmp1 = (In->Tmp1 >> 1) & 0xFF;
- break;
- case REG_PTR1_LO:
- Out->Ptr1Lo = (In->Ptr1Lo >> 1) & 0xFF;
- break;
- case REG_PTR1_HI:
- Out->Ptr1Hi = (In->Ptr1Hi >> 1) & 0xFF;
- break;
- case REG_SREG_LO:
- Out->SRegLo = (In->SRegLo >> 1) & 0xFF;
- break;
- case REG_SREG_HI:
- Out->SRegHi = (In->SRegHi >> 1) & 0xFF;
- break;
- }
- } else if (E->AM == AM65_ZPX) {
+ break;
+
+ case OP65_JVC:
+ break;
+
+ case OP65_JVS:
+ break;
+
+ case OP65_LDA:
+ if (CE_IsConstImm (E)) {
+ Out->RegA = (unsigned char) E->Num;
+ } else if (E->AM == AM65_ZP) {
+ switch (GetKnownReg (E->Use & REG_ZP, In)) {
+ case REG_TMP1:
+ Out->RegA = In->Tmp1;
+ break;
+ case REG_PTR1_LO:
+ Out->RegA = In->Ptr1Lo;
+ break;
+ case REG_PTR1_HI:
+ Out->RegA = In->Ptr1Hi;
+ break;
+ case REG_SREG_LO:
+ Out->RegA = In->SRegLo;
+ break;
+ case REG_SREG_HI:
+ Out->RegA = In->SRegHi;
+ break;
+ default:
+ Out->RegA = UNKNOWN_REGVAL;
+ break;
+ }
+ } else {
+ /* A is now unknown */
+ Out->RegA = UNKNOWN_REGVAL;
+ }
+ break;
+
+ case OP65_LDX:
+ if (CE_IsConstImm (E)) {
+ Out->RegX = (unsigned char) E->Num;
+ } else if (E->AM == AM65_ZP) {
+ switch (GetKnownReg (E->Use & REG_ZP, In)) {
+ case REG_TMP1:
+ Out->RegX = In->Tmp1;
+ break;
+ case REG_PTR1_LO:
+ Out->RegX = In->Ptr1Lo;
+ break;
+ case REG_PTR1_HI:
+ Out->RegX = In->Ptr1Hi;
+ break;
+ case REG_SREG_LO:
+ Out->RegX = In->SRegLo;
+ break;
+ case REG_SREG_HI:
+ Out->RegX = In->SRegHi;
+ break;
+ default:
+ Out->RegX = UNKNOWN_REGVAL;
+ break;
+ }
+ } else {
+ /* X is now unknown */
+ Out->RegX = UNKNOWN_REGVAL;
+ }
+ break;
+
+ case OP65_LDY:
+ if (CE_IsConstImm (E)) {
+ Out->RegY = (unsigned char) E->Num;
+ } else if (E->AM == AM65_ZP) {
+ switch (GetKnownReg (E->Use & REG_ZP, In)) {
+ case REG_TMP1:
+ Out->RegY = In->Tmp1;
+ break;
+ case REG_PTR1_LO:
+ Out->RegY = In->Ptr1Lo;
+ break;
+ case REG_PTR1_HI:
+ Out->RegY = In->Ptr1Hi;
+ break;
+ case REG_SREG_LO:
+ Out->RegY = In->SRegLo;
+ break;
+ case REG_SREG_HI:
+ Out->RegY = In->SRegHi;
+ break;
+ default:
+ Out->RegY = UNKNOWN_REGVAL;
+ break;
+ }
+ } else {
+ /* Y is now unknown */
+ Out->RegY = UNKNOWN_REGVAL;
+ }
+ break;
+
+ case OP65_LSR:
+ if (E->AM == AM65_ACC && RegValIsKnown (In->RegA)) {
+ Out->RegA = (In->RegA >> 1) & 0xFF;
+ } else if (E->AM == AM65_ZP) {
+ switch (GetKnownReg (E->Chg & REG_ZP, In)) {
+ case REG_TMP1:
+ Out->Tmp1 = (In->Tmp1 >> 1) & 0xFF;
+ break;
+ case REG_PTR1_LO:
+ Out->Ptr1Lo = (In->Ptr1Lo >> 1) & 0xFF;
+ break;
+ case REG_PTR1_HI:
+ Out->Ptr1Hi = (In->Ptr1Hi >> 1) & 0xFF;
+ break;
+ case REG_SREG_LO:
+ Out->SRegLo = (In->SRegLo >> 1) & 0xFF;
+ break;
+ case REG_SREG_HI:
+ Out->SRegHi = (In->SRegHi >> 1) & 0xFF;
+ break;
+ }
+ } else if (E->AM == AM65_ZPX) {