various bugfixes

git-svn-id: file:///home/notaz/opt/svn/PicoDrive@282 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2007-10-27 20:04:36 +00:00
parent e41da5ce07
commit 80db44425a
8 changed files with 82 additions and 109 deletions

View file

@ -306,44 +306,38 @@ static u32 flag_I;
#define POST_IO \
// CCnt = io_cycle_counter;
#define READ_BYTE_F(A, D) \
D = m68kcontext.read_byte(A) & 0xFF;
#define READ_WORD_F(A, D) \
D = m68kcontext.read_word(A) & 0xFFFF;
#define READ_LONG_F(A, D) \
D = m68kcontext.read_long(A);
#define READSX_LONG_F READ_LONG_F
#define WRITE_LONG_F(A, D) \
m68kcontext.write_long(A, D);
#define WRITE_LONG_DEC_F(A, D) \
m68kcontext.write_word((A) + 2, (D) & 0xFFFF); \
m68kcontext.write_word((A), (D) >> 16);
#define PUSH_32_F(D) \
AREG(7) -= 4; \
m68kcontext.write_long(AREG(7), D);
#define POP_32_F(D) \
D = m68kcontext.read_long(AREG(7)); \
AREG(7) += 4;
#ifndef FAME_BIG_ENDIAN
#define READ_BYTE_F(A, D) \
D = m68kcontext.read_byte(A) & 0xFF;
#define READ_WORD_F(A, D) \
D = m68kcontext.read_word(A) & 0xFFFF;
#define READ_LONG_F(A, D) \
D = m68kcontext.read_word((A)) << 16; \
D |= m68kcontext.read_word((A) + 2) & 0xFFFF;
#define READSX_LONG_F(A, D) \
D = m68kcontext.read_word((A)) << 16; \
D |= m68kcontext.read_word((A) + 2) & 0xFFFF;
#define WRITE_LONG_F(A, D) \
m68kcontext.write_word((A), (D) >> 16); \
m68kcontext.write_word((A) + 2, (D) & 0xFFFF);
#define WRITE_LONG_DEC_F(A, D) \
m68kcontext.write_word((A), (D) >> 16); \
m68kcontext.write_word((A) + 2, (D) & 0xFFFF);
#define FETCH_LONG(A) \
(A) = PC[1] | (PC[0] << 16); \
PC += 2;
#define PUSH_32_F(D) \
AREG(7) -= 4; \
m68kcontext.write_word(AREG(7), (D) >> 16); \
m68kcontext.write_word(AREG(7) + 2, (D) & 0xFFFF);
#define POP_32_F(D) \
D = m68kcontext.read_word(AREG(7)) << 16; \
D |= m68kcontext.read_word(AREG(7) + 2) & 0xFFFF; \
AREG(7) += 4;
#define GET_SWORD \
(s16)(*PC)
@ -372,37 +366,10 @@ static u32 flag_I;
#else
#define READ_BYTE_F(A, D) \
D = m68kcontext.read_byte(A) & 0xFF;
#define READ_WORD_F(A, D) \
D = m68kcontext.read_word(A) & 0xFFFF;
#define READ_LONG_F(A, D) \
D = m68kcontext.read_long(A);
#define READSX_LONG_F(A, D) \
D = m68kcontext.read_long(A);
#define WRITE_LONG_F(A, D) \
m68kcontext.write_long(A, D);
#define WRITE_LONG_DEC_F(A, D) \
m68kcontext.write_word((A) + 2, (D) >> 16); \
m68kcontext.write_word((A), (D) & 0xFFFF);
#define FETCH_LONG(A) \
(A) = PC[0] | (PC[1] << 16); \
PC += 2;
#define PUSH_32_F(D) \
AREG(7) -= 4; \
m68kcontext.write_long(AREG(7), D);
#define POP_32_F(D) \
D = m68kcontext.read_long(AREG(7)); \
AREG(7) += 4;
#define GET_SWORD \
((s16)(((*PC & 0xFF) << 8) | (*PC >> 8)))