More conversions from 'enum' to 'enum class' and 'constexpr'.

This commit is contained in:
Stephen Anthony 2019-04-13 21:35:29 -02:30
parent 53b6a2ef89
commit 535fffdc46
10 changed files with 381 additions and 388 deletions

View File

@ -415,27 +415,27 @@ bool PhysicalKeyboardHandler::handleAltEvent(StellaKey key, StellaMod mod, bool
break; break;
case KBDK_1: // Alt-1 turns off NTSC filtering case KBDK_1: // Alt-1 turns off NTSC filtering
myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::PRESET_OFF); myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::Preset::OFF);
break; break;
case KBDK_2: // Alt-2 turns on 'rgb' NTSC filtering case KBDK_2: // Alt-2 turns on 'rgb' NTSC filtering
myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::PRESET_RGB); myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::Preset::RGB);
break; break;
case KBDK_3: // Alt-3 turns on 'svideo' NTSC filtering case KBDK_3: // Alt-3 turns on 'svideo' NTSC filtering
myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::PRESET_SVIDEO); myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::Preset::SVIDEO);
break; break;
case KBDK_4: // Alt-4 turns on 'composite' NTSC filtering case KBDK_4: // Alt-4 turns on 'composite' NTSC filtering
myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::PRESET_COMPOSITE); myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::Preset::COMPOSITE);
break; break;
case KBDK_5: // Alt-5 turns on 'bad' NTSC filtering case KBDK_5: // Alt-5 turns on 'bad' NTSC filtering
myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::PRESET_BAD); myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::Preset::BAD);
break; break;
case KBDK_6: // Alt-6 turns on 'custom' NTSC filtering case KBDK_6: // Alt-6 turns on 'custom' NTSC filtering
myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::PRESET_CUSTOM); myOSystem.frameBuffer().tiaSurface().setNTSC(NTSCFilter::Preset::CUSTOM);
break; break;
case KBDK_7: // Alt-7 changes scanline intensity for NTSC filtering case KBDK_7: // Alt-7 changes scanline intensity for NTSC filtering

View File

@ -152,10 +152,6 @@ class StateManager
RewindManager& rewindManager() const { return *myRewindManager; } RewindManager& rewindManager() const { return *myRewindManager; }
private: private:
enum {
kVersion = 001
};
// The parent OSystem object // The parent OSystem object
OSystem& myOSystem; OSystem& myOSystem;

View File

@ -48,10 +48,7 @@
class AtariNTSC class AtariNTSC
{ {
public: public:
enum { static constexpr uInt32 palette_size = 256, entry_size = 2 * 14;
palette_size = 256,
entry_size = 2 * 14,
};
// By default, threading is turned off // By default, threading is turned off
AtariNTSC() { enableThreading(false); } AtariNTSC() { enableThreading(false); }
@ -132,7 +129,7 @@ class AtariNTSC
uInt32 getRGBPhosphor(const uInt32 c, const uInt32 cp) const; uInt32 getRGBPhosphor(const uInt32 c, const uInt32 cp) const;
private: private:
enum { static constexpr Int32
PIXEL_in_chunk = 2, // number of input pixels read per chunk PIXEL_in_chunk = 2, // number of input pixels read per chunk
PIXEL_out_chunk = 7, // number of output pixels generated per chunk PIXEL_out_chunk = 7, // number of output pixels generated per chunk
NTSC_black = 0, // palette index for black NTSC_black = 0, // palette index for black
@ -155,7 +152,7 @@ class AtariNTSC
std_decoder_hue = 0, std_decoder_hue = 0,
ext_decoder_hue = std_decoder_hue + 15 ext_decoder_hue = std_decoder_hue + 15
}; ;
#define artifacts_mid 1.5f #define artifacts_mid 1.5f
#define artifacts_max 2.5f #define artifacts_max 2.5f

View File

@ -26,7 +26,7 @@ constexpr uInt32 scaleTo100(double x) { return uInt32(50*(x+1.0)); }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NTSCFilter::NTSCFilter() NTSCFilter::NTSCFilter()
: mySetup(AtariNTSC::TV_Composite), : mySetup(AtariNTSC::TV_Composite),
myPreset(PRESET_OFF), myPreset(Preset::OFF),
myCurrentAdjustable(0) myCurrentAdjustable(0)
{ {
} }
@ -38,23 +38,23 @@ string NTSCFilter::setPreset(Preset preset)
string msg = "disabled"; string msg = "disabled";
switch(myPreset) switch(myPreset)
{ {
case PRESET_COMPOSITE: case Preset::COMPOSITE:
mySetup = AtariNTSC::TV_Composite; mySetup = AtariNTSC::TV_Composite;
msg = "COMPOSITE"; msg = "COMPOSITE";
break; break;
case PRESET_SVIDEO: case Preset::SVIDEO:
mySetup = AtariNTSC::TV_SVideo; mySetup = AtariNTSC::TV_SVideo;
msg = "S-VIDEO"; msg = "S-VIDEO";
break; break;
case PRESET_RGB: case Preset::RGB:
mySetup = AtariNTSC::TV_RGB; mySetup = AtariNTSC::TV_RGB;
msg = "RGB"; msg = "RGB";
break; break;
case PRESET_BAD: case Preset::BAD:
mySetup = AtariNTSC::TV_Bad; mySetup = AtariNTSC::TV_Bad;
msg = "BAD ADJUST"; msg = "BAD ADJUST";
break; break;
case PRESET_CUSTOM: case Preset::CUSTOM:
mySetup = myCustomSetup; mySetup = myCustomSetup;
msg = "CUSTOM"; msg = "CUSTOM";
break; break;
@ -70,11 +70,11 @@ string NTSCFilter::getPreset() const
{ {
switch(myPreset) switch(myPreset)
{ {
case PRESET_COMPOSITE: return "COMPOSITE"; case Preset::COMPOSITE: return "COMPOSITE";
case PRESET_SVIDEO: return "S-VIDEO"; case Preset::SVIDEO: return "S-VIDEO";
case PRESET_RGB: return "RGB"; case Preset::RGB: return "RGB";
case PRESET_BAD: return "BAD ADJUST"; case Preset::BAD: return "BAD ADJUST";
case PRESET_CUSTOM: return "CUSTOM"; case Preset::CUSTOM: return "CUSTOM";
default: return "Disabled"; default: return "Disabled";
} }
} }
@ -82,7 +82,7 @@ string NTSCFilter::getPreset() const
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
string NTSCFilter::setNextAdjustable() string NTSCFilter::setNextAdjustable()
{ {
if(myPreset != PRESET_CUSTOM) if(myPreset != Preset::CUSTOM)
return "'Custom' TV mode not selected"; return "'Custom' TV mode not selected";
myCurrentAdjustable = (myCurrentAdjustable + 1) % 10; myCurrentAdjustable = (myCurrentAdjustable + 1) % 10;
@ -96,7 +96,7 @@ string NTSCFilter::setNextAdjustable()
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
string NTSCFilter::setPreviousAdjustable() string NTSCFilter::setPreviousAdjustable()
{ {
if(myPreset != PRESET_CUSTOM) if(myPreset != Preset::CUSTOM)
return "'Custom' TV mode not selected"; return "'Custom' TV mode not selected";
if(myCurrentAdjustable == 0) myCurrentAdjustable = 9; if(myCurrentAdjustable == 0) myCurrentAdjustable = 9;
@ -111,7 +111,7 @@ string NTSCFilter::setPreviousAdjustable()
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
string NTSCFilter::increaseAdjustable() string NTSCFilter::increaseAdjustable()
{ {
if(myPreset != PRESET_CUSTOM) if(myPreset != Preset::CUSTOM)
return "'Custom' TV mode not selected"; return "'Custom' TV mode not selected";
uInt32 newval = scaleTo100(*ourCustomAdjustables[myCurrentAdjustable].value); uInt32 newval = scaleTo100(*ourCustomAdjustables[myCurrentAdjustable].value);
@ -129,7 +129,7 @@ string NTSCFilter::increaseAdjustable()
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
string NTSCFilter::decreaseAdjustable() string NTSCFilter::decreaseAdjustable()
{ {
if(myPreset != PRESET_CUSTOM) if(myPreset != Preset::CUSTOM)
return "'Custom' TV mode not selected"; return "'Custom' TV mode not selected";
uInt32 newval = scaleTo100(*ourCustomAdjustables[myCurrentAdjustable].value); uInt32 newval = scaleTo100(*ourCustomAdjustables[myCurrentAdjustable].value);
@ -182,15 +182,15 @@ void NTSCFilter::getAdjustables(Adjustable& adjustable, Preset preset) const
{ {
switch(preset) switch(preset)
{ {
case PRESET_COMPOSITE: case Preset::COMPOSITE:
convertToAdjustable(adjustable, AtariNTSC::TV_Composite); break; convertToAdjustable(adjustable, AtariNTSC::TV_Composite); break;
case PRESET_SVIDEO: case Preset::SVIDEO:
convertToAdjustable(adjustable, AtariNTSC::TV_SVideo); break; convertToAdjustable(adjustable, AtariNTSC::TV_SVideo); break;
case PRESET_RGB: case Preset::RGB:
convertToAdjustable(adjustable, AtariNTSC::TV_RGB); break; convertToAdjustable(adjustable, AtariNTSC::TV_RGB); break;
case PRESET_BAD: case Preset::BAD:
convertToAdjustable(adjustable, AtariNTSC::TV_Bad); break; convertToAdjustable(adjustable, AtariNTSC::TV_Bad); break;
case PRESET_CUSTOM: case Preset::CUSTOM:
convertToAdjustable(adjustable, myCustomSetup); break; convertToAdjustable(adjustable, myCustomSetup); break;
default: default:
break; break;

View File

@ -38,13 +38,13 @@ class NTSCFilter
public: public:
// Set one of the available preset adjustments (Composite, S-Video, RGB, etc) // Set one of the available preset adjustments (Composite, S-Video, RGB, etc)
enum Preset { enum class Preset {
PRESET_OFF, OFF,
PRESET_COMPOSITE, COMPOSITE,
PRESET_SVIDEO, SVIDEO,
PRESET_RGB, RGB,
PRESET_BAD, BAD,
PRESET_CUSTOM CUSTOM
}; };
/* Normally used in conjunction with custom mode, contains all /* Normally used in conjunction with custom mode, contains all

View File

@ -230,12 +230,12 @@ FIX_LAST:
// Add operand(s) for PC values outside the app data range // Add operand(s) for PC values outside the app data range
if (myPC >= myAppData.end) { if (myPC >= myAppData.end) {
switch (addrMode) { switch (addrMode) {
case ABSOLUTE: case AddressingMode::ABSOLUTE:
case ABSOLUTE_X: case AddressingMode::ABSOLUTE_X:
case ABSOLUTE_Y: case AddressingMode::ABSOLUTE_Y:
case INDIRECT_X: case AddressingMode::INDIRECT_X:
case INDIRECT_Y: case AddressingMode::INDIRECT_Y:
case ABS_INDIRECT: case AddressingMode::ABS_INDIRECT:
{ {
if (pass == 3) { if (pass == 3) {
/* Line information is already printed; append .byte since last /* Line information is already printed; append .byte since last
@ -263,11 +263,11 @@ FIX_LAST:
return; return;
} }
case ZERO_PAGE: case AddressingMode::ZERO_PAGE:
case IMMEDIATE: case AddressingMode::IMMEDIATE:
case ZERO_PAGE_X: case AddressingMode::ZERO_PAGE_X:
case ZERO_PAGE_Y: case AddressingMode::ZERO_PAGE_Y:
case RELATIVE: case AddressingMode::RELATIVE:
{ {
if (pass == 3) { if (pass == 3) {
/* Line information is already printed, but we can remove the /* Line information is already printed, but we can remove the
@ -291,14 +291,14 @@ FIX_LAST:
ad = d1 = 0; // not WSYNC by default! ad = d1 = 0; // not WSYNC by default!
/* Version 2.1 added the extensions to mnemonics */ /* Version 2.1 added the extensions to mnemonics */
switch (addrMode) { switch (addrMode) {
case ACCUMULATOR: case AddressingMode::ACCUMULATOR:
{ {
if (pass == 3 && mySettings.aFlag) if (pass == 3 && mySettings.aFlag)
nextLine << " A"; nextLine << " A";
break; break;
} }
case ABSOLUTE: case AddressingMode::ABSOLUTE:
{ {
ad = Debugger::debugger().dpeek(myPC + myOffset); myPC += 2; ad = Debugger::debugger().dpeek(myPC + myOffset); myPC += 2;
labelFound = mark(ad, CartDebug::REFERENCED); labelFound = mark(ad, CartDebug::REFERENCED);
@ -328,7 +328,7 @@ FIX_LAST:
break; break;
} }
case ZERO_PAGE: case AddressingMode::ZERO_PAGE:
{ {
d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC; d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC;
labelFound = mark(d1, CartDebug::REFERENCED); labelFound = mark(d1, CartDebug::REFERENCED);
@ -340,7 +340,7 @@ FIX_LAST:
break; break;
} }
case IMMEDIATE: case AddressingMode::IMMEDIATE:
{ {
d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC; d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC;
if (pass == 3) { if (pass == 3) {
@ -350,7 +350,7 @@ FIX_LAST:
break; break;
} }
case ABSOLUTE_X: case AddressingMode::ABSOLUTE_X:
{ {
ad = Debugger::debugger().dpeek(myPC + myOffset); myPC += 2; ad = Debugger::debugger().dpeek(myPC + myOffset); myPC += 2;
labelFound = mark(ad, CartDebug::REFERENCED); labelFound = mark(ad, CartDebug::REFERENCED);
@ -389,7 +389,7 @@ FIX_LAST:
break; break;
} }
case ABSOLUTE_Y: case AddressingMode::ABSOLUTE_Y:
{ {
ad = Debugger::debugger().dpeek(myPC + myOffset); myPC += 2; ad = Debugger::debugger().dpeek(myPC + myOffset); myPC += 2;
labelFound = mark(ad, CartDebug::REFERENCED); labelFound = mark(ad, CartDebug::REFERENCED);
@ -428,7 +428,7 @@ FIX_LAST:
break; break;
} }
case INDIRECT_X: case AddressingMode::INDIRECT_X:
{ {
d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC; d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC;
if (pass == 3) { if (pass == 3) {
@ -441,7 +441,7 @@ FIX_LAST:
break; break;
} }
case INDIRECT_Y: case AddressingMode::INDIRECT_Y:
{ {
d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC; d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC;
if (pass == 3) { if (pass == 3) {
@ -454,7 +454,7 @@ FIX_LAST:
break; break;
} }
case ZERO_PAGE_X: case AddressingMode::ZERO_PAGE_X:
{ {
d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC; d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC;
labelFound = mark(d1, CartDebug::REFERENCED); labelFound = mark(d1, CartDebug::REFERENCED);
@ -467,7 +467,7 @@ FIX_LAST:
break; break;
} }
case ZERO_PAGE_Y: case AddressingMode::ZERO_PAGE_Y:
{ {
d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC; d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC;
labelFound = mark(d1, CartDebug::REFERENCED); labelFound = mark(d1, CartDebug::REFERENCED);
@ -480,7 +480,7 @@ FIX_LAST:
break; break;
} }
case RELATIVE: case AddressingMode::RELATIVE:
{ {
// SA - 04-06-2010: there seemed to be a bug in distella, // SA - 04-06-2010: there seemed to be a bug in distella,
// where wraparound occurred on a 32-bit int, and subsequent // where wraparound occurred on a 32-bit int, and subsequent
@ -501,7 +501,7 @@ FIX_LAST:
break; break;
} }
case ABS_INDIRECT: case AddressingMode::ABS_INDIRECT:
{ {
ad = Debugger::debugger().dpeek(myPC + myOffset); myPC += 2; ad = Debugger::debugger().dpeek(myPC + myOffset); myPC += 2;
labelFound = mark(ad, CartDebug::REFERENCED); labelFound = mark(ad, CartDebug::REFERENCED);
@ -542,10 +542,10 @@ FIX_LAST:
// A complete line of disassembly (text, cycle count, and bytes) // A complete line of disassembly (text, cycle count, and bytes)
myDisasmBuf << nextLine.str() << "'" myDisasmBuf << nextLine.str() << "'"
<< ";" << std::dec << int(ourLookup[opcode].cycles) << ";" << std::dec << int(ourLookup[opcode].cycles)
<< (addrMode == RELATIVE ? (ad & 0xf00) != ((myPC + myOffset) & 0xf00) ? "/3!" : "/3 " : " "); << (addrMode == AddressingMode::RELATIVE ? (ad & 0xf00) != ((myPC + myOffset) & 0xf00) ? "/3!" : "/3 " : " ");
if ((opcode == 0x40 || opcode == 0x60 || opcode == 0x4c || opcode == 0x00 // code block end if ((opcode == 0x40 || opcode == 0x60 || opcode == 0x4c || opcode == 0x00 // code block end
|| checkBit(myPC, CartDebug::REFERENCED) // referenced address || checkBit(myPC, CartDebug::REFERENCED) // referenced address
|| (ourLookup[opcode].rw_mode == WRITE && d1 == WSYNC)) // strobe WSYNC || (ourLookup[opcode].rw_mode == RWMode::WRITE && d1 == WSYNC)) // strobe WSYNC
&& cycles > 0) { && cycles > 0) {
// output cycles for previous code block // output cycles for previous code block
myDisasmBuf << "'= " << std::setw(3) << std::setfill(' ') << std::dec << cycles; myDisasmBuf << "'= " << std::setw(3) << std::setfill(' ') << std::dec << cycles;
@ -701,20 +701,20 @@ void DiStella::disasmFromAddress(uInt32 distart)
// Add operand(s) for PC values outside the app data range // Add operand(s) for PC values outside the app data range
if (myPC >= myAppData.end) { if (myPC >= myAppData.end) {
switch (addrMode) { switch (addrMode) {
case ABSOLUTE: case AddressingMode::ABSOLUTE:
case ABSOLUTE_X: case AddressingMode::ABSOLUTE_X:
case ABSOLUTE_Y: case AddressingMode::ABSOLUTE_Y:
case INDIRECT_X: case AddressingMode::INDIRECT_X:
case INDIRECT_Y: case AddressingMode::INDIRECT_Y:
case ABS_INDIRECT: case AddressingMode::ABS_INDIRECT:
myPCEnd = myAppData.end + myOffset; myPCEnd = myAppData.end + myOffset;
return; return;
case ZERO_PAGE: case AddressingMode::ZERO_PAGE:
case IMMEDIATE: case AddressingMode::IMMEDIATE:
case ZERO_PAGE_X: case AddressingMode::ZERO_PAGE_X:
case ZERO_PAGE_Y: case AddressingMode::ZERO_PAGE_Y:
case RELATIVE: case AddressingMode::RELATIVE:
if (myPC > myAppData.end) { if (myPC > myAppData.end) {
++myPC; ++myPC;
myPCEnd = myAppData.end + myOffset; myPCEnd = myAppData.end + myOffset;
@ -729,11 +729,11 @@ void DiStella::disasmFromAddress(uInt32 distart)
// Add operand(s) // Add operand(s)
switch (addrMode) { switch (addrMode) {
case ABSOLUTE: case AddressingMode::ABSOLUTE:
ad = Debugger::debugger().dpeek(myPC + myOffset); myPC += 2; ad = Debugger::debugger().dpeek(myPC + myOffset); myPC += 2;
mark(ad, CartDebug::REFERENCED); mark(ad, CartDebug::REFERENCED);
// handle JMP/JSR // handle JMP/JSR
if (ourLookup[opcode].source == M_ADDR) { if (ourLookup[opcode].source == AccessMode::ADDR) {
// do NOT use flags set by debugger, else known CODE will not analyzed statically. // do NOT use flags set by debugger, else known CODE will not analyzed statically.
if (!checkBit(ad & myAppData.end, CartDebug::CODE, false)) { if (!checkBit(ad & myAppData.end, CartDebug::CODE, false)) {
if (ad > 0xfff) if (ad > 0xfff)
@ -744,44 +744,44 @@ void DiStella::disasmFromAddress(uInt32 distart)
mark(ad, CartDebug::DATA); mark(ad, CartDebug::DATA);
break; break;
case ZERO_PAGE: case AddressingMode::ZERO_PAGE:
d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC; d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC;
mark(d1, CartDebug::REFERENCED); mark(d1, CartDebug::REFERENCED);
break; break;
case IMMEDIATE: case AddressingMode::IMMEDIATE:
++myPC; ++myPC;
break; break;
case ABSOLUTE_X: case AddressingMode::ABSOLUTE_X:
ad = Debugger::debugger().dpeek(myPC + myOffset); myPC += 2; ad = Debugger::debugger().dpeek(myPC + myOffset); myPC += 2;
mark(ad, CartDebug::REFERENCED); mark(ad, CartDebug::REFERENCED);
break; break;
case ABSOLUTE_Y: case AddressingMode::ABSOLUTE_Y:
ad = Debugger::debugger().dpeek(myPC + myOffset); myPC += 2; ad = Debugger::debugger().dpeek(myPC + myOffset); myPC += 2;
mark(ad, CartDebug::REFERENCED); mark(ad, CartDebug::REFERENCED);
break; break;
case INDIRECT_X: case AddressingMode::INDIRECT_X:
++myPC; ++myPC;
break; break;
case INDIRECT_Y: case AddressingMode::INDIRECT_Y:
++myPC; ++myPC;
break; break;
case ZERO_PAGE_X: case AddressingMode::ZERO_PAGE_X:
d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC; d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC;
mark(d1, CartDebug::REFERENCED); mark(d1, CartDebug::REFERENCED);
break; break;
case ZERO_PAGE_Y: case AddressingMode::ZERO_PAGE_Y:
d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC; d1 = Debugger::debugger().peek(myPC + myOffset); ++myPC;
mark(d1, CartDebug::REFERENCED); mark(d1, CartDebug::REFERENCED);
break; break;
case RELATIVE: case AddressingMode::RELATIVE:
// SA - 04-06-2010: there seemed to be a bug in distella, // SA - 04-06-2010: there seemed to be a bug in distella,
// where wraparound occurred on a 32-bit int, and subsequent // where wraparound occurred on a 32-bit int, and subsequent
// indexing into the labels array caused a crash // indexing into the labels array caused a crash
@ -795,7 +795,7 @@ void DiStella::disasmFromAddress(uInt32 distart)
} }
break; break;
case ABS_INDIRECT: case AddressingMode::ABS_INDIRECT:
ad = Debugger::debugger().dpeek(myPC + myOffset); myPC += 2; ad = Debugger::debugger().dpeek(myPC + myOffset); myPC += 2;
mark(ad, CartDebug::REFERENCED); mark(ad, CartDebug::REFERENCED);
break; break;
@ -1134,327 +1134,327 @@ DiStella::Settings DiStella::settings = {
const DiStella::Instruction_tag DiStella::ourLookup[256] = { const DiStella::Instruction_tag DiStella::ourLookup[256] = {
/**** Positive ****/ /**** Positive ****/
/* 00 */{"brk", IMPLIED, M_NONE, NONE, 7, 1}, /* Pseudo Absolute */ /* 00 */{"brk", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 7, 1}, /* Pseudo Absolute */
/* 01 */{"ora", INDIRECT_X, M_INDX, READ, 6, 2}, /* (Indirect,X) */ /* 01 */{"ora", AddressingMode::INDIRECT_X, AccessMode::INDX, RWMode::READ, 6, 2}, /* (Indirect,X) */
/* 02 */{".JAM",IMPLIED, M_NONE, NONE, 0, 1}, /* TILT */ /* 02 */{".JAM",AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 0, 1}, /* TILT */
/* 03 */{"SLO", INDIRECT_X, M_INDX, WRITE, 8, 2}, /* 03 */{"SLO", AddressingMode::INDIRECT_X, AccessMode::INDX, RWMode::WRITE, 8, 2},
/* 04 */{"NOP", ZERO_PAGE, M_NONE, NONE, 3, 2}, /* 04 */{"NOP", AddressingMode::ZERO_PAGE, AccessMode::NONE, RWMode::NONE, 3, 2},
/* 05 */{"ora", ZERO_PAGE, M_ZERO, READ, 3, 2}, /* Zeropage */ /* 05 */{"ora", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::READ, 3, 2}, /* Zeropage */
/* 06 */{"asl", ZERO_PAGE, M_ZERO, WRITE, 5, 2}, /* Zeropage */ /* 06 */{"asl", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::WRITE, 5, 2}, /* Zeropage */
/* 07 */{"SLO", ZERO_PAGE, M_ZERO, WRITE, 5, 2}, /* 07 */{"SLO", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::WRITE, 5, 2},
/* 08 */{"php", IMPLIED, M_SR, NONE, 3, 1}, /* 08 */{"php", AddressingMode::IMPLIED, AccessMode::SR, RWMode::NONE, 3, 1},
/* 09 */{"ora", IMMEDIATE, M_IMM, READ, 2, 2}, /* Immediate */ /* 09 */{"ora", AddressingMode::IMMEDIATE, AccessMode::IMM, RWMode::READ, 2, 2}, /* Immediate */
/* 0a */{"asl", ACCUMULATOR, M_AC, WRITE, 2, 1}, /* Accumulator */ /* 0a */{"asl", AddressingMode::ACCUMULATOR, AccessMode::AC, RWMode::WRITE, 2, 1}, /* Accumulator */
/* 0b */{"ANC", IMMEDIATE, M_ACIM, READ, 2, 2}, /* 0b */{"ANC", AddressingMode::IMMEDIATE, AccessMode::ACIM, RWMode::READ, 2, 2},
/* 0c */{"NOP", ABSOLUTE, M_NONE, NONE, 4, 3}, /* 0c */{"NOP", AddressingMode::ABSOLUTE, AccessMode::NONE, RWMode::NONE, 4, 3},
/* 0d */{"ora", ABSOLUTE, M_ABS, READ, 4, 3}, /* Absolute */ /* 0d */{"ora", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::READ, 4, 3}, /* Absolute */
/* 0e */{"asl", ABSOLUTE, M_ABS, WRITE, 6, 3}, /* Absolute */ /* 0e */{"asl", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::WRITE, 6, 3}, /* Absolute */
/* 0f */{"SLO", ABSOLUTE, M_ABS, WRITE, 6, 3}, /* 0f */{"SLO", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::WRITE, 6, 3},
/* 10 */{"bpl", RELATIVE, M_REL, READ, 2, 2}, /* 10 */{"bpl", AddressingMode::RELATIVE, AccessMode::REL, RWMode::READ, 2, 2},
/* 11 */{"ora", INDIRECT_Y, M_INDY, READ, 5, 2}, /* (Indirect),Y */ /* 11 */{"ora", AddressingMode::INDIRECT_Y, AccessMode::INDY, RWMode::READ, 5, 2}, /* (Indirect),Y */
/* 12 */{".JAM",IMPLIED, M_NONE, NONE, 0, 1}, /* TILT */ /* 12 */{".JAM",AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 0, 1}, /* TILT */
/* 13 */{"SLO", INDIRECT_Y, M_INDY, WRITE, 8, 2}, /* 13 */{"SLO", AddressingMode::INDIRECT_Y, AccessMode::INDY, RWMode::WRITE, 8, 2},
/* 14 */{"NOP", ZERO_PAGE_X, M_NONE, NONE, 4, 2}, /* 14 */{"NOP", AddressingMode::ZERO_PAGE_X, AccessMode::NONE, RWMode::NONE, 4, 2},
/* 15 */{"ora", ZERO_PAGE_X, M_ZERX, READ, 4, 2}, /* Zeropage,X */ /* 15 */{"ora", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::READ, 4, 2}, /* Zeropage,X */
/* 16 */{"asl", ZERO_PAGE_X, M_ZERX, WRITE, 6, 2}, /* Zeropage,X */ /* 16 */{"asl", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::WRITE, 6, 2}, /* Zeropage,X */
/* 17 */{"SLO", ZERO_PAGE_X, M_ZERX, WRITE, 6, 2}, /* 17 */{"SLO", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::WRITE, 6, 2},
/* 18 */{"clc", IMPLIED, M_NONE, NONE, 2, 1}, /* 18 */{"clc", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 2, 1},
/* 19 */{"ora", ABSOLUTE_Y, M_ABSY, READ, 4, 3}, /* Absolute,Y */ /* 19 */{"ora", AddressingMode::ABSOLUTE_Y, AccessMode::ABSY, RWMode::READ, 4, 3}, /* Absolute,Y */
/* 1a */{"NOP", IMPLIED, M_NONE, NONE, 2, 1}, /* 1a */{"NOP", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 2, 1},
/* 1b */{"SLO", ABSOLUTE_Y, M_ABSY, WRITE, 7, 3}, /* 1b */{"SLO", AddressingMode::ABSOLUTE_Y, AccessMode::ABSY, RWMode::WRITE, 7, 3},
/* 1c */{"NOP", ABSOLUTE_X, M_NONE, NONE, 4, 3}, /* 1c */{"NOP", AddressingMode::ABSOLUTE_X, AccessMode::NONE, RWMode::NONE, 4, 3},
/* 1d */{"ora", ABSOLUTE_X, M_ABSX, READ, 4, 3}, /* Absolute,X */ /* 1d */{"ora", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::READ, 4, 3}, /* Absolute,X */
/* 1e */{"asl", ABSOLUTE_X, M_ABSX, WRITE, 7, 3}, /* Absolute,X */ /* 1e */{"asl", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::WRITE, 7, 3}, /* Absolute,X */
/* 1f */{"SLO", ABSOLUTE_X, M_ABSX, WRITE, 7, 3}, /* 1f */{"SLO", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::WRITE, 7, 3},
/* 20 */{"jsr", ABSOLUTE, M_ADDR, READ, 6, 3}, /* 20 */{"jsr", AddressingMode::ABSOLUTE, AccessMode::ADDR, RWMode::READ, 6, 3},
/* 21 */{"and", INDIRECT_X, M_INDX, READ, 6, 2}, /* (Indirect ,X) */ /* 21 */{"and", AddressingMode::INDIRECT_X, AccessMode::INDX, RWMode::READ, 6, 2}, /* (Indirect ,X) */
/* 22 */{".JAM",IMPLIED, M_NONE, NONE, 0, 1}, /* TILT */ /* 22 */{".JAM",AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 0, 1}, /* TILT */
/* 23 */{"RLA", INDIRECT_X, M_INDX, WRITE, 8, 2}, /* 23 */{"RLA", AddressingMode::INDIRECT_X, AccessMode::INDX, RWMode::WRITE, 8, 2},
/* 24 */{"bit", ZERO_PAGE, M_ZERO, READ, 3, 2}, /* Zeropage */ /* 24 */{"bit", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::READ, 3, 2}, /* Zeropage */
/* 25 */{"and", ZERO_PAGE, M_ZERO, READ, 3, 2}, /* Zeropage */ /* 25 */{"and", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::READ, 3, 2}, /* Zeropage */
/* 26 */{"rol", ZERO_PAGE, M_ZERO, WRITE, 5, 2}, /* Zeropage */ /* 26 */{"rol", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::WRITE, 5, 2}, /* Zeropage */
/* 27 */{"RLA", ZERO_PAGE, M_ZERO, WRITE, 5, 2}, /* 27 */{"RLA", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::WRITE, 5, 2},
/* 28 */{"plp", IMPLIED, M_NONE, NONE, 4, 1}, /* 28 */{"plp", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 4, 1},
/* 29 */{"and", IMMEDIATE, M_IMM, READ, 2, 2}, /* Immediate */ /* 29 */{"and", AddressingMode::IMMEDIATE, AccessMode::IMM, RWMode::READ, 2, 2}, /* Immediate */
/* 2a */{"rol", ACCUMULATOR, M_AC, WRITE, 2, 1}, /* Accumulator */ /* 2a */{"rol", AddressingMode::ACCUMULATOR, AccessMode::AC, RWMode::WRITE, 2, 1}, /* Accumulator */
/* 2b */{"ANC", IMMEDIATE, M_ACIM, READ, 2, 2}, /* 2b */{"ANC", AddressingMode::IMMEDIATE, AccessMode::ACIM, RWMode::READ, 2, 2},
/* 2c */{"bit", ABSOLUTE, M_ABS, READ, 4, 3}, /* Absolute */ /* 2c */{"bit", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::READ, 4, 3}, /* Absolute */
/* 2d */{"and", ABSOLUTE, M_ABS, READ, 4, 3}, /* Absolute */ /* 2d */{"and", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::READ, 4, 3}, /* Absolute */
/* 2e */{"rol", ABSOLUTE, M_ABS, WRITE, 6, 3}, /* Absolute */ /* 2e */{"rol", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::WRITE, 6, 3}, /* Absolute */
/* 2f */{"RLA", ABSOLUTE, M_ABS, WRITE, 6, 3}, /* 2f */{"RLA", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::WRITE, 6, 3},
/* 30 */{"bmi", RELATIVE, M_REL, READ, 2, 2}, /* 30 */{"bmi", AddressingMode::RELATIVE, AccessMode::REL, RWMode::READ, 2, 2},
/* 31 */{"and", INDIRECT_Y, M_INDY, READ, 5, 2}, /* (Indirect),Y */ /* 31 */{"and", AddressingMode::INDIRECT_Y, AccessMode::INDY, RWMode::READ, 5, 2}, /* (Indirect),Y */
/* 32 */{".JAM",IMPLIED, M_NONE, NONE, 0, 1}, /* TILT */ /* 32 */{".JAM",AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 0, 1}, /* TILT */
/* 33 */{"RLA", INDIRECT_Y, M_INDY, WRITE, 8, 2}, /* 33 */{"RLA", AddressingMode::INDIRECT_Y, AccessMode::INDY, RWMode::WRITE, 8, 2},
/* 34 */{"NOP", ZERO_PAGE_X, M_NONE, NONE, 4, 2}, /* 34 */{"NOP", AddressingMode::ZERO_PAGE_X, AccessMode::NONE, RWMode::NONE, 4, 2},
/* 35 */{"and", ZERO_PAGE_X, M_ZERX, READ, 4, 2}, /* Zeropage,X */ /* 35 */{"and", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::READ, 4, 2}, /* Zeropage,X */
/* 36 */{"rol", ZERO_PAGE_X, M_ZERX, WRITE, 6, 2}, /* Zeropage,X */ /* 36 */{"rol", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::WRITE, 6, 2}, /* Zeropage,X */
/* 37 */{"RLA", ZERO_PAGE_X, M_ZERX, WRITE, 6, 2}, /* 37 */{"RLA", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::WRITE, 6, 2},
/* 38 */{"sec", IMPLIED, M_NONE, NONE, 2, 1}, /* 38 */{"sec", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 2, 1},
/* 39 */{"and", ABSOLUTE_Y, M_ABSY, READ, 4, 3}, /* Absolute,Y */ /* 39 */{"and", AddressingMode::ABSOLUTE_Y, AccessMode::ABSY, RWMode::READ, 4, 3}, /* Absolute,Y */
/* 3a */{"NOP", IMPLIED, M_NONE, NONE, 2, 1}, /* 3a */{"NOP", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 2, 1},
/* 3b */{"RLA", ABSOLUTE_Y, M_ABSY, WRITE, 7, 3}, /* 3b */{"RLA", AddressingMode::ABSOLUTE_Y, AccessMode::ABSY, RWMode::WRITE, 7, 3},
/* 3c */{"NOP", ABSOLUTE_X, M_NONE, NONE, 4, 3}, /* 3c */{"NOP", AddressingMode::ABSOLUTE_X, AccessMode::NONE, RWMode::NONE, 4, 3},
/* 3d */{"and", ABSOLUTE_X, M_ABSX, READ, 4, 3}, /* Absolute,X */ /* 3d */{"and", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::READ, 4, 3}, /* Absolute,X */
/* 3e */{"rol", ABSOLUTE_X, M_ABSX, WRITE, 7, 3}, /* Absolute,X */ /* 3e */{"rol", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::WRITE, 7, 3}, /* Absolute,X */
/* 3f */{"RLA", ABSOLUTE_X, M_ABSX, WRITE, 7, 3}, /* 3f */{"RLA", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::WRITE, 7, 3},
/* 40 */{"rti", IMPLIED, M_NONE, NONE, 6, 1}, /* 40 */{"rti", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 6, 1},
/* 41 */{"eor", INDIRECT_X, M_INDX, READ, 6, 2}, /* (Indirect,X) */ /* 41 */{"eor", AddressingMode::INDIRECT_X, AccessMode::INDX, RWMode::READ, 6, 2}, /* (Indirect,X) */
/* 42 */{".JAM",IMPLIED, M_NONE, NONE, 0, 1}, /* TILT */ /* 42 */{".JAM",AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 0, 1}, /* TILT */
/* 43 */{"SRE", INDIRECT_X, M_INDX, WRITE, 8, 2}, /* 43 */{"SRE", AddressingMode::INDIRECT_X, AccessMode::INDX, RWMode::WRITE, 8, 2},
/* 44 */{"NOP", ZERO_PAGE, M_NONE, NONE, 3, 2}, /* 44 */{"NOP", AddressingMode::ZERO_PAGE, AccessMode::NONE, RWMode::NONE, 3, 2},
/* 45 */{"eor", ZERO_PAGE, M_ZERO, READ, 3, 2}, /* Zeropage */ /* 45 */{"eor", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::READ, 3, 2}, /* Zeropage */
/* 46 */{"lsr", ZERO_PAGE, M_ZERO, WRITE, 5, 2}, /* Zeropage */ /* 46 */{"lsr", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::WRITE, 5, 2}, /* Zeropage */
/* 47 */{"SRE", ZERO_PAGE, M_ZERO, WRITE, 5, 2}, /* 47 */{"SRE", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::WRITE, 5, 2},
/* 48 */{"pha", IMPLIED, M_AC, NONE, 3, 1}, /* 48 */{"pha", AddressingMode::IMPLIED, AccessMode::AC, RWMode::NONE, 3, 1},
/* 49 */{"eor", IMMEDIATE, M_IMM, READ, 2, 2}, /* Immediate */ /* 49 */{"eor", AddressingMode::IMMEDIATE, AccessMode::IMM, RWMode::READ, 2, 2}, /* Immediate */
/* 4a */{"lsr", ACCUMULATOR, M_AC, WRITE, 2, 1}, /* Accumulator */ /* 4a */{"lsr", AddressingMode::ACCUMULATOR, AccessMode::AC, RWMode::WRITE, 2, 1}, /* Accumulator */
/* 4b */{"ASR", IMMEDIATE, M_ACIM, READ, 2, 2}, /* (AC & IMM) >>1 */ /* 4b */{"ASR", AddressingMode::IMMEDIATE, AccessMode::ACIM, RWMode::READ, 2, 2}, /* (AC & IMM) >>1 */
/* 4c */{"jmp", ABSOLUTE, M_ADDR, READ, 3, 3}, /* Absolute */ /* 4c */{"jmp", AddressingMode::ABSOLUTE, AccessMode::ADDR, RWMode::READ, 3, 3}, /* Absolute */
/* 4d */{"eor", ABSOLUTE, M_ABS, READ, 4, 3}, /* Absolute */ /* 4d */{"eor", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::READ, 4, 3}, /* Absolute */
/* 4e */{"lsr", ABSOLUTE, M_ABS, WRITE, 6, 3}, /* Absolute */ /* 4e */{"lsr", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::WRITE, 6, 3}, /* Absolute */
/* 4f */{"SRE", ABSOLUTE, M_ABS, WRITE, 6, 3}, /* 4f */{"SRE", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::WRITE, 6, 3},
/* 50 */{"bvc", RELATIVE, M_REL, READ, 2, 2}, /* 50 */{"bvc", AddressingMode::RELATIVE, AccessMode::REL, RWMode::READ, 2, 2},
/* 51 */{"eor", INDIRECT_Y, M_INDY, READ, 5, 2}, /* (Indirect),Y */ /* 51 */{"eor", AddressingMode::INDIRECT_Y, AccessMode::INDY, RWMode::READ, 5, 2}, /* (Indirect),Y */
/* 52 */{".JAM",IMPLIED, M_NONE, NONE, 0, 1}, /* TILT */ /* 52 */{".JAM",AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 0, 1}, /* TILT */
/* 53 */{"SRE", INDIRECT_Y, M_INDY, WRITE, 8, 2}, /* 53 */{"SRE", AddressingMode::INDIRECT_Y, AccessMode::INDY, RWMode::WRITE, 8, 2},
/* 54 */{"NOP", ZERO_PAGE_X, M_NONE, NONE, 4, 2}, /* 54 */{"NOP", AddressingMode::ZERO_PAGE_X, AccessMode::NONE, RWMode::NONE, 4, 2},
/* 55 */{"eor", ZERO_PAGE_X, M_ZERX, READ, 4, 2}, /* Zeropage,X */ /* 55 */{"eor", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::READ, 4, 2}, /* Zeropage,X */
/* 56 */{"lsr", ZERO_PAGE_X, M_ZERX, WRITE, 6, 2}, /* Zeropage,X */ /* 56 */{"lsr", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::WRITE, 6, 2}, /* Zeropage,X */
/* 57 */{"SRE", ZERO_PAGE_X, M_ZERX, WRITE, 6, 2}, /* 57 */{"SRE", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::WRITE, 6, 2},
/* 58 */{"cli", IMPLIED, M_NONE, NONE, 2, 1}, /* 58 */{"cli", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 2, 1},
/* 59 */{"eor", ABSOLUTE_Y, M_ABSY, READ, 4, 3}, /* Absolute,Y */ /* 59 */{"eor", AddressingMode::ABSOLUTE_Y, AccessMode::ABSY, RWMode::READ, 4, 3}, /* Absolute,Y */
/* 5a */{"NOP", IMPLIED, M_NONE, NONE, 2, 1}, /* 5a */{"NOP", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 2, 1},
/* 5b */{"SRE", ABSOLUTE_Y, M_ABSY, WRITE, 7, 3}, /* 5b */{"SRE", AddressingMode::ABSOLUTE_Y, AccessMode::ABSY, RWMode::WRITE, 7, 3},
/* 5c */{"NOP", ABSOLUTE_X, M_NONE, NONE, 4, 3}, /* 5c */{"NOP", AddressingMode::ABSOLUTE_X, AccessMode::NONE, RWMode::NONE, 4, 3},
/* 5d */{"eor", ABSOLUTE_X, M_ABSX, READ, 4, 3}, /* Absolute,X */ /* 5d */{"eor", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::READ, 4, 3}, /* Absolute,X */
/* 5e */{"lsr", ABSOLUTE_X, M_ABSX, WRITE, 7, 3}, /* Absolute,X */ /* 5e */{"lsr", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::WRITE, 7, 3}, /* Absolute,X */
/* 5f */{"SRE", ABSOLUTE_X, M_ABSX, WRITE, 7, 3}, /* 5f */{"SRE", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::WRITE, 7, 3},
/* 60 */{"rts", IMPLIED, M_NONE, NONE, 6, 1}, /* 60 */{"rts", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 6, 1},
/* 61 */{"adc", INDIRECT_X, M_INDX, READ, 6, 2}, /* (Indirect,X) */ /* 61 */{"adc", AddressingMode::INDIRECT_X, AccessMode::INDX, RWMode::READ, 6, 2}, /* (Indirect,X) */
/* 62 */{".JAM",IMPLIED, M_NONE, NONE, 0, 1}, /* TILT */ /* 62 */{".JAM",AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 0, 1}, /* TILT */
/* 63 */{"RRA", INDIRECT_X, M_INDX, WRITE, 8, 2}, /* 63 */{"RRA", AddressingMode::INDIRECT_X, AccessMode::INDX, RWMode::WRITE, 8, 2},
/* 64 */{"NOP", ZERO_PAGE, M_NONE, NONE, 3, 2}, /* 64 */{"NOP", AddressingMode::ZERO_PAGE, AccessMode::NONE, RWMode::NONE, 3, 2},
/* 65 */{"adc", ZERO_PAGE, M_ZERO, READ, 3, 2}, /* Zeropage */ /* 65 */{"adc", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::READ, 3, 2}, /* Zeropage */
/* 66 */{"ror", ZERO_PAGE, M_ZERO, WRITE, 5, 2}, /* Zeropage */ /* 66 */{"ror", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::WRITE, 5, 2}, /* Zeropage */
/* 67 */{"RRA", ZERO_PAGE, M_ZERO, WRITE, 5, 2}, /* 67 */{"RRA", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::WRITE, 5, 2},
/* 68 */{"pla", IMPLIED, M_NONE, NONE, 4, 1}, /* 68 */{"pla", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 4, 1},
/* 69 */{"adc", IMMEDIATE, M_IMM, READ, 2, 2}, /* Immediate */ /* 69 */{"adc", AddressingMode::IMMEDIATE, AccessMode::IMM, RWMode::READ, 2, 2}, /* Immediate */
/* 6a */{"ror", ACCUMULATOR, M_AC, WRITE, 2, 1}, /* Accumulator */ /* 6a */{"ror", AddressingMode::ACCUMULATOR, AccessMode::AC, RWMode::WRITE, 2, 1}, /* Accumulator */
/* 6b */{"ARR", IMMEDIATE, M_ACIM, READ, 2, 2}, /* ARR isn't typo */ /* 6b */{"ARR", AddressingMode::IMMEDIATE, AccessMode::ACIM, RWMode::READ, 2, 2}, /* ARR isn't typo */
/* 6c */{"jmp", ABS_INDIRECT,M_AIND, READ, 5, 3}, /* Indirect */ /* 6c */{"jmp", AddressingMode::ABS_INDIRECT,AccessMode::AIND, RWMode::READ, 5, 3}, /* Indirect */
/* 6d */{"adc", ABSOLUTE, M_ABS, READ, 4, 3}, /* Absolute */ /* 6d */{"adc", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::READ, 4, 3}, /* Absolute */
/* 6e */{"ror", ABSOLUTE, M_ABS, WRITE, 6, 3}, /* Absolute */ /* 6e */{"ror", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::WRITE, 6, 3}, /* Absolute */
/* 6f */{"RRA", ABSOLUTE, M_ABS, WRITE, 6, 3}, /* 6f */{"RRA", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::WRITE, 6, 3},
/* 70 */{"bvs", RELATIVE, M_REL, READ, 2, 2}, /* 70 */{"bvs", AddressingMode::RELATIVE, AccessMode::REL, RWMode::READ, 2, 2},
/* 71 */{"adc", INDIRECT_Y, M_INDY, READ, 5, 2}, /* (Indirect),Y */ /* 71 */{"adc", AddressingMode::INDIRECT_Y, AccessMode::INDY, RWMode::READ, 5, 2}, /* (Indirect),Y */
/* 72 */{".JAM",IMPLIED, M_NONE, NONE, 0, 1}, /* TILT relative? */ /* 72 */{".JAM",AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 0, 1}, /* TILT relative? */
/* 73 */{"RRA", INDIRECT_Y, M_INDY, WRITE, 8, 2}, /* 73 */{"RRA", AddressingMode::INDIRECT_Y, AccessMode::INDY, RWMode::WRITE, 8, 2},
/* 74 */{"NOP", ZERO_PAGE_X, M_NONE, NONE, 4, 2}, /* 74 */{"NOP", AddressingMode::ZERO_PAGE_X, AccessMode::NONE, RWMode::NONE, 4, 2},
/* 75 */{"adc", ZERO_PAGE_X, M_ZERX, READ, 4, 2}, /* Zeropage,X */ /* 75 */{"adc", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::READ, 4, 2}, /* Zeropage,X */
/* 76 */{"ror", ZERO_PAGE_X, M_ZERX, WRITE, 6, 2}, /* Zeropage,X */ /* 76 */{"ror", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::WRITE, 6, 2}, /* Zeropage,X */
/* 77 */{"RRA", ZERO_PAGE_X, M_ZERX, WRITE, 6, 2}, /* 77 */{"RRA", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::WRITE, 6, 2},
/* 78 */{"sei", IMPLIED, M_NONE, NONE, 2, 1}, /* 78 */{"sei", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 2, 1},
/* 79 */{"adc", ABSOLUTE_Y, M_ABSY, READ, 4, 3}, /* Absolute,Y */ /* 79 */{"adc", AddressingMode::ABSOLUTE_Y, AccessMode::ABSY, RWMode::READ, 4, 3}, /* Absolute,Y */
/* 7a */{"NOP", IMPLIED, M_NONE, NONE, 2, 1}, /* 7a */{"NOP", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 2, 1},
/* 7b */{"RRA", ABSOLUTE_Y, M_ABSY, WRITE, 7, 3}, /* 7b */{"RRA", AddressingMode::ABSOLUTE_Y, AccessMode::ABSY, RWMode::WRITE, 7, 3},
/* 7c */{"NOP", ABSOLUTE_X, M_NONE, NONE, 4, 3}, /* 7c */{"NOP", AddressingMode::ABSOLUTE_X, AccessMode::NONE, RWMode::NONE, 4, 3},
/* 7d */{"adc", ABSOLUTE_X, M_ABSX, READ, 4, 3}, /* Absolute,X */ /* 7d */{"adc", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::READ, 4, 3}, /* Absolute,X */
/* 7e */{"ror", ABSOLUTE_X, M_ABSX, WRITE, 7, 3}, /* Absolute,X */ /* 7e */{"ror", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::WRITE, 7, 3}, /* Absolute,X */
/* 7f */{"RRA", ABSOLUTE_X, M_ABSX, WRITE, 7, 3}, /* 7f */{"RRA", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::WRITE, 7, 3},
/**** Negative ****/ /**** Negative ****/
/* 80 */{"NOP", IMMEDIATE, M_NONE, NONE, 2, 2}, /* 80 */{"NOP", AddressingMode::IMMEDIATE, AccessMode::NONE, RWMode::NONE, 2, 2},
/* 81 */{"sta", INDIRECT_X, M_AC, WRITE, 6, 2}, /* (Indirect,X) */ /* 81 */{"sta", AddressingMode::INDIRECT_X, AccessMode::AC, RWMode::WRITE, 6, 2}, /* (Indirect,X) */
/* 82 */{"NOP", IMMEDIATE, M_NONE, NONE, 2, 2}, /* 82 */{"NOP", AddressingMode::IMMEDIATE, AccessMode::NONE, RWMode::NONE, 2, 2},
/* 83 */{"SAX", INDIRECT_X, M_ANXR, WRITE, 6, 2}, /* 83 */{"SAX", AddressingMode::INDIRECT_X, AccessMode::ANXR, RWMode::WRITE, 6, 2},
/* 84 */{"sty", ZERO_PAGE, M_YR, WRITE, 3, 2}, /* Zeropage */ /* 84 */{"sty", AddressingMode::ZERO_PAGE, AccessMode::YR, RWMode::WRITE, 3, 2}, /* Zeropage */
/* 85 */{"sta", ZERO_PAGE, M_AC, WRITE, 3, 2}, /* Zeropage */ /* 85 */{"sta", AddressingMode::ZERO_PAGE, AccessMode::AC, RWMode::WRITE, 3, 2}, /* Zeropage */
/* 86 */{"stx", ZERO_PAGE, M_XR, WRITE, 3, 2}, /* Zeropage */ /* 86 */{"stx", AddressingMode::ZERO_PAGE, AccessMode::XR, RWMode::WRITE, 3, 2}, /* Zeropage */
/* 87 */{"SAX", ZERO_PAGE, M_ANXR, WRITE, 3, 2}, /* 87 */{"SAX", AddressingMode::ZERO_PAGE, AccessMode::ANXR, RWMode::WRITE, 3, 2},
/* 88 */{"dey", IMPLIED, M_YR, NONE, 2, 1}, /* 88 */{"dey", AddressingMode::IMPLIED, AccessMode::YR, RWMode::NONE, 2, 1},
/* 89 */{"NOP", IMMEDIATE, M_NONE, NONE, 2, 2}, /* 89 */{"NOP", AddressingMode::IMMEDIATE, AccessMode::NONE, RWMode::NONE, 2, 2},
/* 8a */{"txa", IMPLIED, M_XR, NONE, 2, 1}, /* 8a */{"txa", AddressingMode::IMPLIED, AccessMode::XR, RWMode::NONE, 2, 1},
/**** very abnormal: usually AC = AC | #$EE & XR & #$oper ****/ /**** very abnormal: usually AC = AC | #$EE & XR & #$oper ****/
/* 8b */{"ANE", IMMEDIATE, M_AXIM, READ, 2, 2}, /* 8b */{"ANE", AddressingMode::IMMEDIATE, AccessMode::AXIM, RWMode::READ, 2, 2},
/* 8c */{"sty", ABSOLUTE, M_YR, WRITE, 4, 3}, /* Absolute */ /* 8c */{"sty", AddressingMode::ABSOLUTE, AccessMode::YR, RWMode::WRITE, 4, 3}, /* Absolute */
/* 8d */{"sta", ABSOLUTE, M_AC, WRITE, 4, 3}, /* Absolute */ /* 8d */{"sta", AddressingMode::ABSOLUTE, AccessMode::AC, RWMode::WRITE, 4, 3}, /* Absolute */
/* 8e */{"stx", ABSOLUTE, M_XR, WRITE, 4, 3}, /* Absolute */ /* 8e */{"stx", AddressingMode::ABSOLUTE, AccessMode::XR, RWMode::WRITE, 4, 3}, /* Absolute */
/* 8f */{"SAX", ABSOLUTE, M_ANXR, WRITE, 4, 3}, /* 8f */{"SAX", AddressingMode::ABSOLUTE, AccessMode::ANXR, RWMode::WRITE, 4, 3},
/* 90 */{"bcc", RELATIVE, M_REL, READ, 2, 2}, /* 90 */{"bcc", AddressingMode::RELATIVE, AccessMode::REL, RWMode::READ, 2, 2},
/* 91 */{"sta", INDIRECT_Y, M_AC, WRITE, 6, 2}, /* (Indirect),Y */ /* 91 */{"sta", AddressingMode::INDIRECT_Y, AccessMode::AC, RWMode::WRITE, 6, 2}, /* (Indirect),Y */
/* 92 */{".JAM",IMPLIED, M_NONE, NONE, 0, 1}, /* TILT relative? */ /* 92 */{".JAM",AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 0, 1}, /* TILT relative? */
/* 93 */{"SHA", INDIRECT_Y, M_ANXR, WRITE, 6, 2}, /* 93 */{"SHA", AddressingMode::INDIRECT_Y, AccessMode::ANXR, RWMode::WRITE, 6, 2},
/* 94 */{"sty", ZERO_PAGE_X, M_YR, WRITE, 4, 2}, /* Zeropage,X */ /* 94 */{"sty", AddressingMode::ZERO_PAGE_X, AccessMode::YR, RWMode::WRITE, 4, 2}, /* Zeropage,X */
/* 95 */{"sta", ZERO_PAGE_X, M_AC, WRITE, 4, 2}, /* Zeropage,X */ /* 95 */{"sta", AddressingMode::ZERO_PAGE_X, AccessMode::AC, RWMode::WRITE, 4, 2}, /* Zeropage,X */
/* 96 */{"stx", ZERO_PAGE_Y, M_XR, WRITE, 4, 2}, /* Zeropage,Y */ /* 96 */{"stx", AddressingMode::ZERO_PAGE_Y, AccessMode::XR, RWMode::WRITE, 4, 2}, /* Zeropage,Y */
/* 97 */{"SAX", ZERO_PAGE_Y, M_ANXR, WRITE, 4, 2}, /* 97 */{"SAX", AddressingMode::ZERO_PAGE_Y, AccessMode::ANXR, RWMode::WRITE, 4, 2},
/* 98 */{"tya", IMPLIED, M_YR, NONE, 2, 1}, /* 98 */{"tya", AddressingMode::IMPLIED, AccessMode::YR, RWMode::NONE, 2, 1},
/* 99 */{"sta", ABSOLUTE_Y, M_AC, WRITE, 5, 3}, /* Absolute,Y */ /* 99 */{"sta", AddressingMode::ABSOLUTE_Y, AccessMode::AC, RWMode::WRITE, 5, 3}, /* Absolute,Y */
/* 9a */{"txs", IMPLIED, M_XR, NONE, 2, 1}, /* 9a */{"txs", AddressingMode::IMPLIED, AccessMode::XR, RWMode::NONE, 2, 1},
/*** This is very mysterious command ... */ /*** This is very mysterious command ... */
/* 9b */{"SHS", ABSOLUTE_Y, M_ANXR, WRITE, 5, 3}, /* 9b */{"SHS", AddressingMode::ABSOLUTE_Y, AccessMode::ANXR, RWMode::WRITE, 5, 3},
/* 9c */{"SHY", ABSOLUTE_X, M_YR, WRITE, 5, 3}, /* 9c */{"SHY", AddressingMode::ABSOLUTE_X, AccessMode::YR, RWMode::WRITE, 5, 3},
/* 9d */{"sta", ABSOLUTE_X, M_AC, WRITE, 5, 3}, /* Absolute,X */ /* 9d */{"sta", AddressingMode::ABSOLUTE_X, AccessMode::AC, RWMode::WRITE, 5, 3}, /* Absolute,X */
/* 9e */{"SHX", ABSOLUTE_Y, M_XR , WRITE, 5, 3}, /* 9e */{"SHX", AddressingMode::ABSOLUTE_Y, AccessMode::XR , RWMode::WRITE, 5, 3},
/* 9f */{"SHA", ABSOLUTE_Y, M_ANXR, WRITE, 5, 3}, /* 9f */{"SHA", AddressingMode::ABSOLUTE_Y, AccessMode::ANXR, RWMode::WRITE, 5, 3},
/* a0 */{"ldy", IMMEDIATE, M_IMM, READ, 2, 2}, /* Immediate */ /* a0 */{"ldy", AddressingMode::IMMEDIATE, AccessMode::IMM, RWMode::READ, 2, 2}, /* Immediate */
/* a1 */{"lda", INDIRECT_X, M_INDX, READ, 6, 2}, /* (indirect,X) */ /* a1 */{"lda", AddressingMode::INDIRECT_X, AccessMode::INDX, RWMode::READ, 6, 2}, /* (indirect,X) */
/* a2 */{"ldx", IMMEDIATE, M_IMM, READ, 2, 2}, /* Immediate */ /* a2 */{"ldx", AddressingMode::IMMEDIATE, AccessMode::IMM, RWMode::READ, 2, 2}, /* Immediate */
/* a3 */{"LAX", INDIRECT_X, M_INDX, READ, 6, 2}, /* (indirect,X) */ /* a3 */{"LAX", AddressingMode::INDIRECT_X, AccessMode::INDX, RWMode::READ, 6, 2}, /* (indirect,X) */
/* a4 */{"ldy", ZERO_PAGE, M_ZERO, READ, 3, 2}, /* Zeropage */ /* a4 */{"ldy", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::READ, 3, 2}, /* Zeropage */
/* a5 */{"lda", ZERO_PAGE, M_ZERO, READ, 3, 2}, /* Zeropage */ /* a5 */{"lda", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::READ, 3, 2}, /* Zeropage */
/* a6 */{"ldx", ZERO_PAGE, M_ZERO, READ, 3, 2}, /* Zeropage */ /* a6 */{"ldx", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::READ, 3, 2}, /* Zeropage */
/* a7 */{"LAX", ZERO_PAGE, M_ZERO, READ, 3, 2}, /* a7 */{"LAX", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::READ, 3, 2},
/* a8 */{"tay", IMPLIED, M_AC, NONE, 2, 1}, /* a8 */{"tay", AddressingMode::IMPLIED, AccessMode::AC, RWMode::NONE, 2, 1},
/* a9 */{"lda", IMMEDIATE, M_IMM, READ, 2, 2}, /* Immediate */ /* a9 */{"lda", AddressingMode::IMMEDIATE, AccessMode::IMM, RWMode::READ, 2, 2}, /* Immediate */
/* aa */{"tax", IMPLIED, M_AC, NONE, 2, 1}, /* aa */{"tax", AddressingMode::IMPLIED, AccessMode::AC, RWMode::NONE, 2, 1},
/* ab */{"LXA", IMMEDIATE, M_ACIM, READ, 2, 2}, /* LXA isn't a typo */ /* ab */{"LXA", AddressingMode::IMMEDIATE, AccessMode::ACIM, RWMode::READ, 2, 2}, /* LXA isn't a typo */
/* ac */{"ldy", ABSOLUTE, M_ABS, READ, 4, 3}, /* Absolute */ /* ac */{"ldy", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::READ, 4, 3}, /* Absolute */
/* ad */{"lda", ABSOLUTE, M_ABS, READ, 4, 3}, /* Absolute */ /* ad */{"lda", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::READ, 4, 3}, /* Absolute */
/* ae */{"ldx", ABSOLUTE, M_ABS, READ, 4, 3}, /* Absolute */ /* ae */{"ldx", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::READ, 4, 3}, /* Absolute */
/* af */{"LAX", ABSOLUTE, M_ABS, READ, 4, 3}, /* af */{"LAX", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::READ, 4, 3},
/* b0 */{"bcs", RELATIVE, M_REL, READ, 2, 2}, /* b0 */{"bcs", AddressingMode::RELATIVE, AccessMode::REL, RWMode::READ, 2, 2},
/* b1 */{"lda", INDIRECT_Y, M_INDY, READ, 5, 2}, /* (indirect),Y */ /* b1 */{"lda", AddressingMode::INDIRECT_Y, AccessMode::INDY, RWMode::READ, 5, 2}, /* (indirect),Y */
/* b2 */{".JAM",IMPLIED, M_NONE, NONE, 0, 1}, /* TILT */ /* b2 */{".JAM",AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 0, 1}, /* TILT */
/* b3 */{"LAX", INDIRECT_Y, M_INDY, READ, 5, 2}, /* b3 */{"LAX", AddressingMode::INDIRECT_Y, AccessMode::INDY, RWMode::READ, 5, 2},
/* b4 */{"ldy", ZERO_PAGE_X, M_ZERX, READ, 4, 2}, /* Zeropage,X */ /* b4 */{"ldy", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::READ, 4, 2}, /* Zeropage,X */
/* b5 */{"lda", ZERO_PAGE_X, M_ZERX, READ, 4, 2}, /* Zeropage,X */ /* b5 */{"lda", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::READ, 4, 2}, /* Zeropage,X */
/* b6 */{"ldx", ZERO_PAGE_Y, M_ZERY, READ, 4, 2}, /* Zeropage,Y */ /* b6 */{"ldx", AddressingMode::ZERO_PAGE_Y, AccessMode::ZERY, RWMode::READ, 4, 2}, /* Zeropage,Y */
/* b7 */{"LAX", ZERO_PAGE_Y, M_ZERY, READ, 4, 2}, /* b7 */{"LAX", AddressingMode::ZERO_PAGE_Y, AccessMode::ZERY, RWMode::READ, 4, 2},
/* b8 */{"clv", IMPLIED, M_NONE, NONE, 2, 1}, /* b8 */{"clv", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 2, 1},
/* b9 */{"lda", ABSOLUTE_Y, M_ABSY, READ, 4, 3}, /* Absolute,Y */ /* b9 */{"lda", AddressingMode::ABSOLUTE_Y, AccessMode::ABSY, RWMode::READ, 4, 3}, /* Absolute,Y */
/* ba */{"tsx", IMPLIED, M_SP, NONE, 2, 1}, /* ba */{"tsx", AddressingMode::IMPLIED, AccessMode::SP, RWMode::NONE, 2, 1},
/* bb */{"LAS", ABSOLUTE_Y, M_SABY, READ, 4, 3}, /* bb */{"LAS", AddressingMode::ABSOLUTE_Y, AccessMode::SABY, RWMode::READ, 4, 3},
/* bc */{"ldy", ABSOLUTE_X, M_ABSX, READ, 4, 3}, /* Absolute,X */ /* bc */{"ldy", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::READ, 4, 3}, /* Absolute,X */
/* bd */{"lda", ABSOLUTE_X, M_ABSX, READ, 4, 3}, /* Absolute,X */ /* bd */{"lda", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::READ, 4, 3}, /* Absolute,X */
/* be */{"ldx", ABSOLUTE_Y, M_ABSY, READ, 4, 3}, /* Absolute,Y */ /* be */{"ldx", AddressingMode::ABSOLUTE_Y, AccessMode::ABSY, RWMode::READ, 4, 3}, /* Absolute,Y */
/* bf */{"LAX", ABSOLUTE_Y, M_ABSY, READ, 4, 3}, /* bf */{"LAX", AddressingMode::ABSOLUTE_Y, AccessMode::ABSY, RWMode::READ, 4, 3},
/* c0 */{"cpy", IMMEDIATE, M_IMM, READ, 2, 2}, /* Immediate */ /* c0 */{"cpy", AddressingMode::IMMEDIATE, AccessMode::IMM, RWMode::READ, 2, 2}, /* Immediate */
/* c1 */{"cmp", INDIRECT_X, M_INDX, READ, 6, 2}, /* (Indirect,X) */ /* c1 */{"cmp", AddressingMode::INDIRECT_X, AccessMode::INDX, RWMode::READ, 6, 2}, /* (Indirect,X) */
/* c2 */{"NOP", IMMEDIATE, M_NONE, NONE, 2, 2}, /* occasional TILT */ /* c2 */{"NOP", AddressingMode::IMMEDIATE, AccessMode::NONE, RWMode::NONE, 2, 2}, /* occasional TILT */
/* c3 */{"DCP", INDIRECT_X, M_INDX, WRITE, 8, 2}, /* c3 */{"DCP", AddressingMode::INDIRECT_X, AccessMode::INDX, RWMode::WRITE, 8, 2},
/* c4 */{"cpy", ZERO_PAGE, M_ZERO, READ, 3, 2}, /* Zeropage */ /* c4 */{"cpy", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::READ, 3, 2}, /* Zeropage */
/* c5 */{"cmp", ZERO_PAGE, M_ZERO, READ, 3, 2}, /* Zeropage */ /* c5 */{"cmp", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::READ, 3, 2}, /* Zeropage */
/* c6 */{"dec", ZERO_PAGE, M_ZERO, WRITE, 5, 2}, /* Zeropage */ /* c6 */{"dec", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::WRITE, 5, 2}, /* Zeropage */
/* c7 */{"DCP", ZERO_PAGE, M_ZERO, WRITE, 5, 2}, /* c7 */{"DCP", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::WRITE, 5, 2},
/* c8 */{"iny", IMPLIED, M_YR, NONE, 2, 1}, /* c8 */{"iny", AddressingMode::IMPLIED, AccessMode::YR, RWMode::NONE, 2, 1},
/* c9 */{"cmp", IMMEDIATE, M_IMM, READ, 2, 2}, /* Immediate */ /* c9 */{"cmp", AddressingMode::IMMEDIATE, AccessMode::IMM, RWMode::READ, 2, 2}, /* Immediate */
/* ca */{"dex", IMPLIED, M_XR, NONE, 2, 1}, /* ca */{"dex", AddressingMode::IMPLIED, AccessMode::XR, RWMode::NONE, 2, 1},
/* cb */{"SBX", IMMEDIATE, M_IMM, READ, 2, 2}, /* cb */{"SBX", AddressingMode::IMMEDIATE, AccessMode::IMM, RWMode::READ, 2, 2},
/* cc */{"cpy", ABSOLUTE, M_ABS, READ, 4, 3}, /* Absolute */ /* cc */{"cpy", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::READ, 4, 3}, /* Absolute */
/* cd */{"cmp", ABSOLUTE, M_ABS, READ, 4, 3}, /* Absolute */ /* cd */{"cmp", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::READ, 4, 3}, /* Absolute */
/* ce */{"dec", ABSOLUTE, M_ABS, WRITE, 6, 3}, /* Absolute */ /* ce */{"dec", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::WRITE, 6, 3}, /* Absolute */
/* cf */{"DCP", ABSOLUTE, M_ABS, WRITE, 6, 3}, /* cf */{"DCP", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::WRITE, 6, 3},
/* d0 */{"bne", RELATIVE, M_REL, READ, 2, 2}, /* d0 */{"bne", AddressingMode::RELATIVE, AccessMode::REL, RWMode::READ, 2, 2},
/* d1 */{"cmp", INDIRECT_Y, M_INDY, READ, 5, 2}, /* (Indirect),Y */ /* d1 */{"cmp", AddressingMode::INDIRECT_Y, AccessMode::INDY, RWMode::READ, 5, 2}, /* (Indirect),Y */
/* d2 */{".JAM",IMPLIED, M_NONE, NONE, 0, 1}, /* TILT */ /* d2 */{".JAM",AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 0, 1}, /* TILT */
/* d3 */{"DCP", INDIRECT_Y, M_INDY, WRITE, 8, 2}, /* d3 */{"DCP", AddressingMode::INDIRECT_Y, AccessMode::INDY, RWMode::WRITE, 8, 2},
/* d4 */{"NOP", ZERO_PAGE_X, M_NONE, NONE, 4, 2}, /* d4 */{"NOP", AddressingMode::ZERO_PAGE_X, AccessMode::NONE, RWMode::NONE, 4, 2},
/* d5 */{"cmp", ZERO_PAGE_X, M_ZERX, READ, 4, 2}, /* Zeropage,X */ /* d5 */{"cmp", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::READ, 4, 2}, /* Zeropage,X */
/* d6 */{"dec", ZERO_PAGE_X, M_ZERX, WRITE, 6, 2}, /* Zeropage,X */ /* d6 */{"dec", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::WRITE, 6, 2}, /* Zeropage,X */
/* d7 */{"DCP", ZERO_PAGE_X, M_ZERX, WRITE, 6, 2}, /* d7 */{"DCP", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::WRITE, 6, 2},
/* d8 */{"cld", IMPLIED, M_NONE, NONE, 2, 1}, /* d8 */{"cld", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 2, 1},
/* d9 */{"cmp", ABSOLUTE_Y, M_ABSY, READ, 4, 3}, /* Absolute,Y */ /* d9 */{"cmp", AddressingMode::ABSOLUTE_Y, AccessMode::ABSY, RWMode::READ, 4, 3}, /* Absolute,Y */
/* da */{"NOP", IMPLIED, M_NONE, NONE, 2, 1}, /* da */{"NOP", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 2, 1},
/* db */{"DCP", ABSOLUTE_Y, M_ABSY, WRITE, 7, 3}, /* db */{"DCP", AddressingMode::ABSOLUTE_Y, AccessMode::ABSY, RWMode::WRITE, 7, 3},
/* dc */{"NOP", ABSOLUTE_X, M_NONE, NONE, 4, 3}, /* dc */{"NOP", AddressingMode::ABSOLUTE_X, AccessMode::NONE, RWMode::NONE, 4, 3},
/* dd */{"cmp", ABSOLUTE_X, M_ABSX, READ, 4, 3}, /* Absolute,X */ /* dd */{"cmp", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::READ, 4, 3}, /* Absolute,X */
/* de */{"dec", ABSOLUTE_X, M_ABSX, WRITE, 7, 3}, /* Absolute,X */ /* de */{"dec", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::WRITE, 7, 3}, /* Absolute,X */
/* df */{"DCP", ABSOLUTE_X, M_ABSX, WRITE, 7, 3}, /* df */{"DCP", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::WRITE, 7, 3},
/* e0 */{"cpx", IMMEDIATE, M_IMM, READ, 2, 2}, /* Immediate */ /* e0 */{"cpx", AddressingMode::IMMEDIATE, AccessMode::IMM, RWMode::READ, 2, 2}, /* Immediate */
/* e1 */{"sbc", INDIRECT_X, M_INDX, READ, 6, 2}, /* (Indirect,X) */ /* e1 */{"sbc", AddressingMode::INDIRECT_X, AccessMode::INDX, RWMode::READ, 6, 2}, /* (Indirect,X) */
/* e2 */{"NOP", IMMEDIATE, M_NONE, NONE, 2, 2}, /* e2 */{"NOP", AddressingMode::IMMEDIATE, AccessMode::NONE, RWMode::NONE, 2, 2},
/* e3 */{"ISB", INDIRECT_X, M_INDX, WRITE, 8, 2}, /* e3 */{"ISB", AddressingMode::INDIRECT_X, AccessMode::INDX, RWMode::WRITE, 8, 2},
/* e4 */{"cpx", ZERO_PAGE, M_ZERO, READ, 3, 2}, /* Zeropage */ /* e4 */{"cpx", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::READ, 3, 2}, /* Zeropage */
/* e5 */{"sbc", ZERO_PAGE, M_ZERO, READ, 3, 2}, /* Zeropage */ /* e5 */{"sbc", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::READ, 3, 2}, /* Zeropage */
/* e6 */{"inc", ZERO_PAGE, M_ZERO, WRITE, 5, 2}, /* Zeropage */ /* e6 */{"inc", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::WRITE, 5, 2}, /* Zeropage */
/* e7 */{"ISB", ZERO_PAGE, M_ZERO, WRITE, 5, 2}, /* e7 */{"ISB", AddressingMode::ZERO_PAGE, AccessMode::ZERO, RWMode::WRITE, 5, 2},
/* e8 */{"inx", IMPLIED, M_XR, NONE, 2, 1}, /* e8 */{"inx", AddressingMode::IMPLIED, AccessMode::XR, RWMode::NONE, 2, 1},
/* e9 */{"sbc", IMMEDIATE, M_IMM, READ, 2, 2}, /* Immediate */ /* e9 */{"sbc", AddressingMode::IMMEDIATE, AccessMode::IMM, RWMode::READ, 2, 2}, /* Immediate */
/* ea */{"nop", IMPLIED, M_NONE, NONE, 2, 1}, /* ea */{"nop", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 2, 1},
/* eb */{"SBC", IMMEDIATE, M_IMM, READ, 2, 2}, /* same as e9 */ /* eb */{"SBC", AddressingMode::IMMEDIATE, AccessMode::IMM, RWMode::READ, 2, 2}, /* same as e9 */
/* ec */{"cpx", ABSOLUTE, M_ABS, READ, 4, 3}, /* Absolute */ /* ec */{"cpx", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::READ, 4, 3}, /* Absolute */
/* ed */{"sbc", ABSOLUTE, M_ABS, READ, 4, 3}, /* Absolute */ /* ed */{"sbc", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::READ, 4, 3}, /* Absolute */
/* ee */{"inc", ABSOLUTE, M_ABS, WRITE, 6, 3}, /* Absolute */ /* ee */{"inc", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::WRITE, 6, 3}, /* Absolute */
/* ef */{"ISB", ABSOLUTE, M_ABS, WRITE, 6, 3}, /* ef */{"ISB", AddressingMode::ABSOLUTE, AccessMode::ABS, RWMode::WRITE, 6, 3},
/* f0 */{"beq", RELATIVE, M_REL, READ, 2, 2}, /* f0 */{"beq", AddressingMode::RELATIVE, AccessMode::REL, RWMode::READ, 2, 2},
/* f1 */{"sbc", INDIRECT_Y, M_INDY, READ, 5, 2}, /* (Indirect),Y */ /* f1 */{"sbc", AddressingMode::INDIRECT_Y, AccessMode::INDY, RWMode::READ, 5, 2}, /* (Indirect),Y */
/* f2 */{".JAM",IMPLIED, M_NONE, NONE, 0, 1}, /* TILT */ /* f2 */{".JAM",AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 0, 1}, /* TILT */
/* f3 */{"ISB", INDIRECT_Y, M_INDY, WRITE, 8, 2}, /* f3 */{"ISB", AddressingMode::INDIRECT_Y, AccessMode::INDY, RWMode::WRITE, 8, 2},
/* f4 */{"NOP", ZERO_PAGE_X, M_NONE, NONE, 4, 2}, /* f4 */{"NOP", AddressingMode::ZERO_PAGE_X, AccessMode::NONE, RWMode::NONE, 4, 2},
/* f5 */{"sbc", ZERO_PAGE_X, M_ZERX, READ, 4, 2}, /* Zeropage,X */ /* f5 */{"sbc", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::READ, 4, 2}, /* Zeropage,X */
/* f6 */{"inc", ZERO_PAGE_X, M_ZERX, WRITE, 6, 2}, /* Zeropage,X */ /* f6 */{"inc", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::WRITE, 6, 2}, /* Zeropage,X */
/* f7 */{"ISB", ZERO_PAGE_X, M_ZERX, WRITE, 6, 2}, /* f7 */{"ISB", AddressingMode::ZERO_PAGE_X, AccessMode::ZERX, RWMode::WRITE, 6, 2},
/* f8 */{"sed", IMPLIED, M_NONE, NONE, 2, 1}, /* f8 */{"sed", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 2, 1},
/* f9 */{"sbc", ABSOLUTE_Y, M_ABSY, READ, 4, 3}, /* Absolute,Y */ /* f9 */{"sbc", AddressingMode::ABSOLUTE_Y, AccessMode::ABSY, RWMode::READ, 4, 3}, /* Absolute,Y */
/* fa */{"NOP", IMPLIED, M_NONE, NONE, 2, 1}, /* fa */{"NOP", AddressingMode::IMPLIED, AccessMode::NONE, RWMode::NONE, 2, 1},
/* fb */{"ISB", ABSOLUTE_Y, M_ABSY, WRITE, 7, 3}, /* fb */{"ISB", AddressingMode::ABSOLUTE_Y, AccessMode::ABSY, RWMode::WRITE, 7, 3},
/* fc */{"NOP" ,ABSOLUTE_X, M_NONE, NONE, 4, 3}, /* fc */{"NOP" ,AddressingMode::ABSOLUTE_X, AccessMode::NONE, RWMode::NONE, 4, 3},
/* fd */{"sbc", ABSOLUTE_X, M_ABSX, READ, 4, 3}, /* Absolute,X */ /* fd */{"sbc", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::READ, 4, 3}, /* Absolute,X */
/* fe */{"inc", ABSOLUTE_X, M_ABSX, WRITE, 7, 3}, /* Absolute,X */ /* fe */{"inc", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::WRITE, 7, 3}, /* Absolute,X */
/* ff */{"ISB", ABSOLUTE_X, M_ABSX, WRITE, 7, 3} /* ff */{"ISB", AddressingMode::ABSOLUTE_X, AccessMode::ABSX, RWMode::WRITE, 7, 3}
}; };

View File

@ -101,10 +101,10 @@ class DiStella
} }
inline void labelA12Low(stringstream& buf, uInt8 op, uInt16 addr, int labfound) inline void labelA12Low(stringstream& buf, uInt8 op, uInt16 addr, int labfound)
{ {
myDbg.getLabel(buf, addr, ourLookup[op].rw_mode == READ, 2); myDbg.getLabel(buf, addr, ourLookup[op].rw_mode == RWMode::READ, 2);
if (labfound == 2) if (labfound == 2)
{ {
if(ourLookup[op].rw_mode == READ) if(ourLookup[op].rw_mode == RWMode::READ)
myReserved.TIARead[addr & 0x0F] = true; myReserved.TIARead[addr & 0x0F] = true;
else else
myReserved.TIAWrite[addr & 0x3F] = true; myReserved.TIAWrite[addr & 0x3F] = true;
@ -141,7 +141,7 @@ class DiStella
/** /**
Enumeration of the 6502 addressing modes Enumeration of the 6502 addressing modes
*/ */
enum AddressingMode enum class AddressingMode : uInt8
{ {
IMPLIED, ACCUMULATOR, IMMEDIATE, IMPLIED, ACCUMULATOR, IMMEDIATE,
ZERO_PAGE, ZERO_PAGE_X, ZERO_PAGE_Y, ZERO_PAGE, ZERO_PAGE_X, ZERO_PAGE_Y,
@ -153,31 +153,31 @@ class DiStella
/** /**
Enumeration of the 6502 access modes Enumeration of the 6502 access modes
*/ */
enum AccessMode enum class AccessMode : uInt8
{ {
M_NONE, M_AC, M_XR, M_YR, M_SP, M_SR, M_PC, M_IMM, M_ZERO, M_ZERX, M_ZERY, NONE, AC, XR, YR, SP, SR, PC, IMM, ZERO, ZERX, ZERY,
M_ABS, M_ABSX, M_ABSY, M_AIND, M_INDX, M_INDY, M_REL, M_FC, M_FD, M_FI, ABS, ABSX, ABSY, AIND, INDX, INDY, REL, FC, FD, FI,
M_FV, M_ADDR, M_, FV, ADDR,
M_ACIM, /* Source: AC & IMMED (bus collision) */ ACIM, /* Source: AC & IMMED (bus collision) */
M_ANXR, /* Source: AC & XR (bus collision) */ ANXR, /* Source: AC & XR (bus collision) */
M_AXIM, /* Source: (AC | #EE) & XR & IMMED (bus collision) */ AXIM, /* Source: (AC | #EE) & XR & IMMED (bus collision) */
M_ACNC, /* Dest: M_AC and Carry = Negative */ ACNC, /* Dest: AC and Carry = Negative */
M_ACXR, /* Dest: M_AC, M_XR */ ACXR, /* Dest: AC, XR */
M_SABY, /* Source: (ABS_Y & SP) (bus collision) */ SABY, /* Source: (ABS_Y & SP) (bus collision) */
M_ACXS, /* Dest: M_AC, M_XR, M_SP */ ACXS, /* Dest: AC, XR, SP */
M_STH0, /* Dest: Store (src & Addr_Hi+1) to (Addr +0x100) */ STH0, /* Dest: Store (src & Addr_Hi+1) to (Addr +0x100) */
M_STH1, STH1,
M_STH2, STH2,
M_STH3 STH3
}; };
/** /**
Enumeration of the 6502 read/write mode Enumeration of the 6502 read/write mode
(if the opcode is reading or writing its operand) (if the opcode is reading or writing its operand)
*/ */
enum ReadWriteMode enum class RWMode : uInt8
{ {
READ, WRITE, NONE READ, WRITE, NONE
}; };
@ -186,7 +186,7 @@ class DiStella
const char* const mnemonic; const char* const mnemonic;
AddressingMode addr_mode; AddressingMode addr_mode;
AccessMode source; AccessMode source;
ReadWriteMode rw_mode; RWMode rw_mode;
uInt8 cycles; uInt8 cycles;
uInt8 bytes; uInt8 bytes;
}; };

View File

@ -164,7 +164,7 @@ uInt32 TIASurface::mapIndexedPixel(uInt8 indexedColor, uInt8 shift)
void TIASurface::setNTSC(NTSCFilter::Preset preset, bool show) void TIASurface::setNTSC(NTSCFilter::Preset preset, bool show)
{ {
ostringstream buf; ostringstream buf;
if(preset == NTSCFilter::PRESET_OFF) if(preset == NTSCFilter::Preset::OFF)
{ {
enableNTSC(false); enableNTSC(false);
buf << "TV filtering disabled"; buf << "TV filtering disabled";

View File

@ -100,11 +100,11 @@ void StellaSettingsDialog::addVideoOptions(WidgetArray& wid, int& xpos, int& ypo
// TV Mode // TV Mode
items.clear(); items.clear();
VarList::push_back(items, "Disabled", NTSCFilter::PRESET_OFF); VarList::push_back(items, "Disabled", static_cast<uInt32>(NTSCFilter::Preset::OFF));
VarList::push_back(items, "RGB", NTSCFilter::PRESET_RGB); VarList::push_back(items, "RGB", static_cast<uInt32>(NTSCFilter::Preset::RGB));
VarList::push_back(items, "S-Video", NTSCFilter::PRESET_SVIDEO); VarList::push_back(items, "S-Video", static_cast<uInt32>(NTSCFilter::Preset::SVIDEO));
VarList::push_back(items, "Composite", NTSCFilter::PRESET_COMPOSITE); VarList::push_back(items, "Composite", static_cast<uInt32>(NTSCFilter::Preset::COMPOSITE));
VarList::push_back(items, "Bad adjust", NTSCFilter::PRESET_BAD); VarList::push_back(items, "Bad adjust", static_cast<uInt32>(NTSCFilter::Preset::BAD));
int lwidth = font.getStringWidth("TV mode "); int lwidth = font.getStringWidth("TV mode ");
int pwidth = font.getStringWidth("Bad adjust"); int pwidth = font.getStringWidth("Bad adjust");

View File

@ -228,12 +228,12 @@ VideoDialog::VideoDialog(OSystem& osystem, DialogContainer& parent,
// TV Mode // TV Mode
items.clear(); items.clear();
VarList::push_back(items, "Disabled", NTSCFilter::PRESET_OFF); VarList::push_back(items, "Disabled", static_cast<uInt32>(NTSCFilter::Preset::OFF));
VarList::push_back(items, "RGB", NTSCFilter::PRESET_RGB); VarList::push_back(items, "RGB", static_cast<uInt32>(NTSCFilter::Preset::RGB));
VarList::push_back(items, "S-Video", NTSCFilter::PRESET_SVIDEO); VarList::push_back(items, "S-Video", static_cast<uInt32>(NTSCFilter::Preset::SVIDEO));
VarList::push_back(items, "Composite", NTSCFilter::PRESET_COMPOSITE); VarList::push_back(items, "Composite", static_cast<uInt32>(NTSCFilter::Preset::COMPOSITE));
VarList::push_back(items, "Bad adjust", NTSCFilter::PRESET_BAD); VarList::push_back(items, "Bad adjust", static_cast<uInt32>(NTSCFilter::Preset::BAD));
VarList::push_back(items, "Custom", NTSCFilter::PRESET_CUSTOM); VarList::push_back(items, "Custom", static_cast<uInt32>(NTSCFilter::Preset::CUSTOM));
lwidth = font.getStringWidth("TV Mode "); lwidth = font.getStringWidth("TV Mode ");
pwidth = font.getStringWidth("Bad adjust"); pwidth = font.getStringWidth("Bad adjust");
myTVMode = myTVMode =
@ -385,7 +385,7 @@ void VideoDialog::loadConfig()
handleTVModeChange(NTSCFilter::Preset(preset)); handleTVModeChange(NTSCFilter::Preset(preset));
// TV Custom adjustables // TV Custom adjustables
loadTVAdjustables(NTSCFilter::PRESET_CUSTOM); loadTVAdjustables(NTSCFilter::Preset::CUSTOM);
// TV phosphor mode // TV phosphor mode
myTVPhosphor->setState(instance().settings().getString("tv.phosphor") == "always"); myTVPhosphor->setState(instance().settings().getString("tv.phosphor") == "always");
@ -522,9 +522,9 @@ void VideoDialog::setDefaults()
myTVScanIntense->setValue(25); myTVScanIntense->setValue(25);
// Make sure that mutually-exclusive items are not enabled at the same time // Make sure that mutually-exclusive items are not enabled at the same time
handleTVModeChange(NTSCFilter::PRESET_OFF); handleTVModeChange(NTSCFilter::Preset::OFF);
handlePhosphorChange(); handlePhosphorChange();
loadTVAdjustables(NTSCFilter::PRESET_CUSTOM); loadTVAdjustables(NTSCFilter::Preset::CUSTOM);
break; break;
} }
} }
@ -533,7 +533,7 @@ void VideoDialog::setDefaults()
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void VideoDialog::handleTVModeChange(NTSCFilter::Preset preset) void VideoDialog::handleTVModeChange(NTSCFilter::Preset preset)
{ {
bool enable = preset == NTSCFilter::PRESET_CUSTOM; bool enable = preset == NTSCFilter::Preset::CUSTOM;
myTVSharp->setEnabled(enable); myTVSharp->setEnabled(enable);
myTVHue->setEnabled(enable); myTVHue->setEnabled(enable);
@ -599,15 +599,15 @@ void VideoDialog::handleCommand(CommandSender* sender, int cmd,
handleTVModeChange(NTSCFilter::Preset(myTVMode->getSelectedTag().toInt())); handleTVModeChange(NTSCFilter::Preset(myTVMode->getSelectedTag().toInt()));
break; break;
case kCloneCompositeCmd: loadTVAdjustables(NTSCFilter::PRESET_COMPOSITE); case kCloneCompositeCmd: loadTVAdjustables(NTSCFilter::Preset::COMPOSITE);
break; break;
case kCloneSvideoCmd: loadTVAdjustables(NTSCFilter::PRESET_SVIDEO); case kCloneSvideoCmd: loadTVAdjustables(NTSCFilter::Preset::SVIDEO);
break; break;
case kCloneRGBCmd: loadTVAdjustables(NTSCFilter::PRESET_RGB); case kCloneRGBCmd: loadTVAdjustables(NTSCFilter::Preset::RGB);
break; break;
case kCloneBadCmd: loadTVAdjustables(NTSCFilter::PRESET_BAD); case kCloneBadCmd: loadTVAdjustables(NTSCFilter::Preset::BAD);
break; break;
case kCloneCustomCmd: loadTVAdjustables(NTSCFilter::PRESET_CUSTOM); case kCloneCustomCmd: loadTVAdjustables(NTSCFilter::Preset::CUSTOM);
break; break;
case kScanlinesChanged: case kScanlinesChanged: