m6809: Fixed compile on older OS X tools. (nw)

This commit is contained in:
Curt Coder 2013-03-05 19:54:55 +00:00
parent 2a43be4b00
commit ab4d9ca569
3 changed files with 60 additions and 42 deletions

View File

@ -46,22 +46,28 @@ private:
typedef m6809_base_device super; typedef m6809_base_device super;
// addressing modes // addressing modes
static const int ADDRESSING_MODE_REGISTER_E = 5; enum
static const int ADDRESSING_MODE_REGISTER_F = 6; {
static const int ADDRESSING_MODE_REGISTER_W = 7; ADDRESSING_MODE_REGISTER_E = 5,
static const int ADDRESSING_MODE_REGISTER_X = 8; ADDRESSING_MODE_REGISTER_F = 6,
static const int ADDRESSING_MODE_REGISTER_Y = 9; ADDRESSING_MODE_REGISTER_W = 7,
static const int ADDRESSING_MODE_REGISTER_U = 10; ADDRESSING_MODE_REGISTER_X = 8,
static const int ADDRESSING_MODE_REGISTER_S = 11; ADDRESSING_MODE_REGISTER_Y = 9,
static const int ADDRESSING_MODE_REGISTER_CC = 12; ADDRESSING_MODE_REGISTER_U = 10,
static const int ADDRESSING_MODE_REGISTER_DP = 13; ADDRESSING_MODE_REGISTER_S = 11,
static const int ADDRESSING_MODE_REGISTER_PC = 14; ADDRESSING_MODE_REGISTER_CC = 12,
static const int ADDRESSING_MODE_REGISTER_V = 15; ADDRESSING_MODE_REGISTER_DP = 13,
static const int ADDRESSING_MODE_ZERO = 16; ADDRESSING_MODE_REGISTER_PC = 14,
ADDRESSING_MODE_REGISTER_V = 15,
ADDRESSING_MODE_ZERO = 16
};
// interrupt vectors // interrupt vectors
static const UINT16 VECTOR_ILLEGAL = 0xFFF0; enum
{
VECTOR_ILLEGAL = 0xFFF0
};
// CPU registers // CPU registers
PAIR16 m_w; PAIR16 m_w;
PAIR16 m_v; PAIR16 m_v;

View File

@ -517,7 +517,7 @@ LSRD:
else else
m_cc &= ~CC_C; m_cc &= ~CC_C;
m_d.w = set_flags<UINT16>(CC_NZ, safe_shift_right<UINT16>(m_d.w, m_temp.b.l)); m_d.w = set_flags<UINT16>(CC_NZ, safe_shift_right<INT16>(m_d.w, m_temp.b.l));
} }
eat(1); eat(1);
return; return;

View File

@ -79,11 +79,14 @@ protected:
virtual void state_string_export(const device_state_entry &entry, astring &string); virtual void state_string_export(const device_state_entry &entry, astring &string);
// addressing modes // addressing modes
static const int ADDRESSING_MODE_IMMEDIATE = 0; enum
static const int ADDRESSING_MODE_EA = 1; {
static const int ADDRESSING_MODE_REGISTER_A = 2; ADDRESSING_MODE_IMMEDIATE = 0,
static const int ADDRESSING_MODE_REGISTER_B = 3; ADDRESSING_MODE_EA = 1,
static const int ADDRESSING_MODE_REGISTER_D = 4; ADDRESSING_MODE_REGISTER_A = 2,
ADDRESSING_MODE_REGISTER_B = 3,
ADDRESSING_MODE_REGISTER_D = 4
};
// register transfer // register transfer
struct exgtfr_register struct exgtfr_register
@ -93,32 +96,41 @@ protected:
}; };
// flag bits in the cc register // flag bits in the cc register
static const UINT8 CC_C = 0x01; // Carry enum
static const UINT8 CC_V = 0x02; // Overflow {
static const UINT8 CC_Z = 0x04; // Zero CC_C = 0x01, // Carry
static const UINT8 CC_N = 0x08; // Negative CC_V = 0x02, // Overflow
static const UINT8 CC_I = 0x10; // Inhibit IRQ CC_Z = 0x04, // Zero
static const UINT8 CC_H = 0x20; // Half (auxiliary) carry CC_N = 0x08, // Negative
static const UINT8 CC_F = 0x40; // Inhibit FIRQ CC_I = 0x10, // Inhibit IRQ
static const UINT8 CC_E = 0x80; // Entire state pushed CC_H = 0x20, // Half (auxiliary) carry
CC_F = 0x40, // Inhibit FIRQ
CC_E = 0x80 // Entire state pushed
};
// flag combinations // flag combinations
static const UINT8 CC_VC = CC_V | CC_C; enum
static const UINT8 CC_ZC = CC_Z | CC_C; {
static const UINT8 CC_NZ = CC_N | CC_Z; CC_VC = CC_V | CC_C,
static const UINT8 CC_NZC = CC_N | CC_Z | CC_C; CC_ZC = CC_Z | CC_C,
static const UINT8 CC_NZV = CC_N | CC_Z | CC_V; CC_NZ = CC_N | CC_Z,
static const UINT8 CC_NZVC = CC_N | CC_Z | CC_V | CC_C; CC_NZC = CC_N | CC_Z | CC_C,
static const UINT8 CC_HNZVC = CC_H | CC_N | CC_Z | CC_V | CC_C; CC_NZV = CC_N | CC_Z | CC_V,
CC_NZVC = CC_N | CC_Z | CC_V | CC_C,
CC_HNZVC = CC_H | CC_N | CC_Z | CC_V | CC_C
};
// interrupt vectors // interrupt vectors
static const UINT16 VECTOR_SWI3 = 0xFFF2; enum
static const UINT16 VECTOR_SWI2 = 0xFFF4; {
static const UINT16 VECTOR_FIRQ = 0xFFF6; VECTOR_SWI3 = 0xFFF2,
static const UINT16 VECTOR_IRQ = 0xFFF8; VECTOR_SWI2 = 0xFFF4,
static const UINT16 VECTOR_SWI = 0xFFFA; VECTOR_FIRQ = 0xFFF6,
static const UINT16 VECTOR_NMI = 0xFFFC; VECTOR_IRQ = 0xFFF8,
static const UINT16 VECTOR_RESET_FFFE = 0xFFFE; VECTOR_SWI = 0xFFFA,
VECTOR_NMI = 0xFFFC,
VECTOR_RESET_FFFE = 0xFFFE
};
// CPU registers // CPU registers
PAIR16 m_pc; // program counter PAIR16 m_pc; // program counter