mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 07:17:45 -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)))
|
||||
|
||||
|
|
|
@ -8167,7 +8167,7 @@ OPCODE(0x2100)
|
|||
adr = AREG((Opcode >> 9) & 7) - 4;
|
||||
AREG((Opcode >> 9) & 7) = adr;
|
||||
PRE_IO
|
||||
WRITE_LONG_F(adr, res)
|
||||
WRITE_LONG_DEC_F(adr, res)
|
||||
POST_IO
|
||||
RET(12)
|
||||
}
|
||||
|
@ -8350,7 +8350,7 @@ OPCODE(0x2108)
|
|||
adr = AREG((Opcode >> 9) & 7) - 4;
|
||||
AREG((Opcode >> 9) & 7) = adr;
|
||||
PRE_IO
|
||||
WRITE_LONG_F(adr, res)
|
||||
WRITE_LONG_DEC_F(adr, res)
|
||||
POST_IO
|
||||
RET(12)
|
||||
}
|
||||
|
@ -8539,7 +8539,7 @@ OPCODE(0x2110)
|
|||
flag_N = res >> 24;
|
||||
adr = AREG((Opcode >> 9) & 7) - 4;
|
||||
AREG((Opcode >> 9) & 7) = adr;
|
||||
WRITE_LONG_F(adr, res)
|
||||
WRITE_LONG_DEC_F(adr, res)
|
||||
POST_IO
|
||||
RET(20)
|
||||
}
|
||||
|
@ -8738,7 +8738,7 @@ OPCODE(0x2118)
|
|||
flag_N = res >> 24;
|
||||
adr = AREG((Opcode >> 9) & 7) - 4;
|
||||
AREG((Opcode >> 9) & 7) = adr;
|
||||
WRITE_LONG_F(adr, res)
|
||||
WRITE_LONG_DEC_F(adr, res)
|
||||
POST_IO
|
||||
RET(20)
|
||||
}
|
||||
|
@ -8943,7 +8943,7 @@ OPCODE(0x2120)
|
|||
flag_N = res >> 24;
|
||||
adr = AREG((Opcode >> 9) & 7) - 4;
|
||||
AREG((Opcode >> 9) & 7) = adr;
|
||||
WRITE_LONG_F(adr, res)
|
||||
WRITE_LONG_DEC_F(adr, res)
|
||||
POST_IO
|
||||
RET(22)
|
||||
}
|
||||
|
@ -9148,7 +9148,7 @@ OPCODE(0x2128)
|
|||
flag_N = res >> 24;
|
||||
adr = AREG((Opcode >> 9) & 7) - 4;
|
||||
AREG((Opcode >> 9) & 7) = adr;
|
||||
WRITE_LONG_F(adr, res)
|
||||
WRITE_LONG_DEC_F(adr, res)
|
||||
POST_IO
|
||||
RET(24)
|
||||
}
|
||||
|
@ -9353,7 +9353,7 @@ OPCODE(0x2130)
|
|||
flag_N = res >> 24;
|
||||
adr = AREG((Opcode >> 9) & 7) - 4;
|
||||
AREG((Opcode >> 9) & 7) = adr;
|
||||
WRITE_LONG_F(adr, res)
|
||||
WRITE_LONG_DEC_F(adr, res)
|
||||
POST_IO
|
||||
RET(26)
|
||||
}
|
||||
|
@ -9554,7 +9554,7 @@ OPCODE(0x2138)
|
|||
flag_N = res >> 24;
|
||||
adr = AREG((Opcode >> 9) & 7) - 4;
|
||||
AREG((Opcode >> 9) & 7) = adr;
|
||||
WRITE_LONG_F(adr, res)
|
||||
WRITE_LONG_DEC_F(adr, res)
|
||||
POST_IO
|
||||
RET(24)
|
||||
}
|
||||
|
@ -9749,7 +9749,7 @@ OPCODE(0x2139)
|
|||
flag_N = res >> 24;
|
||||
adr = AREG((Opcode >> 9) & 7) - 4;
|
||||
AREG((Opcode >> 9) & 7) = adr;
|
||||
WRITE_LONG_F(adr, res)
|
||||
WRITE_LONG_DEC_F(adr, res)
|
||||
POST_IO
|
||||
RET(28)
|
||||
}
|
||||
|
@ -9948,7 +9948,7 @@ OPCODE(0x213A)
|
|||
flag_N = res >> 24;
|
||||
adr = AREG((Opcode >> 9) & 7) - 4;
|
||||
AREG((Opcode >> 9) & 7) = adr;
|
||||
WRITE_LONG_F(adr, res)
|
||||
WRITE_LONG_DEC_F(adr, res)
|
||||
POST_IO
|
||||
RET(24)
|
||||
}
|
||||
|
@ -10153,7 +10153,7 @@ OPCODE(0x213B)
|
|||
flag_N = res >> 24;
|
||||
adr = AREG((Opcode >> 9) & 7) - 4;
|
||||
AREG((Opcode >> 9) & 7) = adr;
|
||||
WRITE_LONG_F(adr, res)
|
||||
WRITE_LONG_DEC_F(adr, res)
|
||||
POST_IO
|
||||
RET(26)
|
||||
}
|
||||
|
@ -10348,7 +10348,7 @@ OPCODE(0x213C)
|
|||
adr = AREG((Opcode >> 9) & 7) - 4;
|
||||
AREG((Opcode >> 9) & 7) = adr;
|
||||
PRE_IO
|
||||
WRITE_LONG_F(adr, res)
|
||||
WRITE_LONG_DEC_F(adr, res)
|
||||
POST_IO
|
||||
RET(20)
|
||||
}
|
||||
|
@ -10541,7 +10541,7 @@ OPCODE(0x211F)
|
|||
flag_N = res >> 24;
|
||||
adr = AREG((Opcode >> 9) & 7) - 4;
|
||||
AREG((Opcode >> 9) & 7) = adr;
|
||||
WRITE_LONG_F(adr, res)
|
||||
WRITE_LONG_DEC_F(adr, res)
|
||||
POST_IO
|
||||
RET(20)
|
||||
}
|
||||
|
@ -10746,7 +10746,7 @@ OPCODE(0x2127)
|
|||
flag_N = res >> 24;
|
||||
adr = AREG((Opcode >> 9) & 7) - 4;
|
||||
AREG((Opcode >> 9) & 7) = adr;
|
||||
WRITE_LONG_F(adr, res)
|
||||
WRITE_LONG_DEC_F(adr, res)
|
||||
POST_IO
|
||||
RET(22)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue