mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00
various bugfixes
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@282 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
parent
e41da5ce07
commit
80db44425a
8 changed files with 82 additions and 109 deletions
|
@ -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)))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue