mirror of
https://github.com/trudnai/Steve2.git
synced 2024-10-05 21:54:57 +00:00
- Speed optimizations
- Carry Flag bugfix
This commit is contained in:
parent
08327ef0a4
commit
f2e5b49a6e
@ -56,7 +56,7 @@ static inline void set_flags_Z( const uint8_t test ) {
|
||||
dbgPrintf("%c", m6502.flags.Z ? 'Z' : 'z');
|
||||
}
|
||||
|
||||
static inline void set_flags_C( const int test ) {
|
||||
static inline void set_flags_C( const int16_t test ) {
|
||||
m6502.flags.C = test >= 0;
|
||||
dbgPrintf("%c", m6502.flags.C ? 'C' : 'c');
|
||||
}
|
||||
@ -76,7 +76,7 @@ static inline void set_flags_NVZ( const uint8_t test ) {
|
||||
set_flags_V(test);
|
||||
}
|
||||
|
||||
static inline void set_flags_NZC( const int test ) {
|
||||
static inline void set_flags_NZC( const int16_t test ) {
|
||||
set_flags_NZ(test);
|
||||
set_flags_C(test);
|
||||
}
|
||||
|
@ -31,7 +31,11 @@
|
||||
**/
|
||||
static inline void ADC( uint8_t imm ) {
|
||||
dbgPrintf("ADC(%02X) A:%02X + %02X ", imm, m6502.A, imm);
|
||||
set_flags_NZCV( m6502.A += imm + m6502.flags.C );
|
||||
|
||||
int16_t tmp;
|
||||
set_flags_NVZ( m6502.A = tmp = (int16_t)m6502.A + imm + m6502.flags.C );
|
||||
m6502.flags.C = tmp > 0xFF;
|
||||
|
||||
dbgPrintf("-> A:%02X ", m6502.A);
|
||||
}
|
||||
|
||||
|
@ -49,7 +49,7 @@ static inline void BIT( uint8_t imm ) {
|
||||
**/
|
||||
static inline void CMP( uint8_t imm ) {
|
||||
dbgPrintf("CMP(%02X) ", imm);
|
||||
set_flags_NZC( (int)m6502.A - imm );
|
||||
set_flags_NZC( (int16_t)m6502.A - imm );
|
||||
}
|
||||
|
||||
/**
|
||||
@ -66,7 +66,7 @@ static inline void CMP( uint8_t imm ) {
|
||||
**/
|
||||
static inline void CPX( uint8_t imm ) {
|
||||
dbgPrintf("CPX(%02X) ", imm);
|
||||
set_flags_NZC( (int)m6502.X - imm );
|
||||
set_flags_NZC( (int16_t)m6502.X - imm );
|
||||
}
|
||||
|
||||
/**
|
||||
@ -83,7 +83,7 @@ static inline void CPX( uint8_t imm ) {
|
||||
**/
|
||||
static inline void CPY( uint8_t imm ) {
|
||||
dbgPrintf("CPY(%02X) ", imm);
|
||||
set_flags_NZC( (int)m6502.Y - imm );
|
||||
set_flags_NZC( (int16_t)m6502.Y - imm );
|
||||
}
|
||||
|
||||
#endif // __6502_INSTR_COMPARE_TEST_H__
|
||||
|
@ -33,7 +33,7 @@ static inline void INC( uint8_t * dst ) {
|
||||
INX Increment Index X by One
|
||||
|
||||
X + 1 -> X N Z C I D V
|
||||
+ + - - - -
|
||||
+ + - - - -
|
||||
|
||||
addressing assembler opc bytes cyles
|
||||
--------------------------------------------
|
||||
@ -49,7 +49,7 @@ static inline void INX() {
|
||||
INY Increment Index Y by One
|
||||
|
||||
Y + 1 -> Y N Z C I D V
|
||||
+ + - - - -
|
||||
+ + - - - -
|
||||
|
||||
addressing assembler opc bytes cyles
|
||||
--------------------------------------------
|
||||
|
@ -28,7 +28,7 @@ static inline void BRK() {
|
||||
NOP No Operation
|
||||
|
||||
--- N Z C I D V
|
||||
- - - - - -
|
||||
- - - - - -
|
||||
|
||||
addressing assembler opc bytes cyles
|
||||
--------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user