mirror of
https://github.com/holub/mame
synced 2025-06-07 05:13:46 +03:00
m740: Fix cycle timings for CLB/SEB ($zz), BBC/BBS (all modes) & RRF
This commit is contained in:
parent
d8ece59cc7
commit
05e1ead028
@ -43,6 +43,7 @@ seb_bac
|
|||||||
clb_biz
|
clb_biz
|
||||||
TMP = read_pc();
|
TMP = read_pc();
|
||||||
TMP2 = read(TMP);
|
TMP2 = read(TMP);
|
||||||
|
read(TMP);
|
||||||
TMP2 = do_clb(TMP2, (IR>>5) & 7);
|
TMP2 = do_clb(TMP2, (IR>>5) & 7);
|
||||||
write(TMP, TMP2);
|
write(TMP, TMP2);
|
||||||
prefetch();
|
prefetch();
|
||||||
@ -50,6 +51,7 @@ clb_biz
|
|||||||
seb_biz
|
seb_biz
|
||||||
TMP = read_pc();
|
TMP = read_pc();
|
||||||
TMP2 = read(TMP);
|
TMP2 = read(TMP);
|
||||||
|
read(TMP);
|
||||||
TMP2 = do_seb(TMP2, (IR>>5) & 7);
|
TMP2 = do_seb(TMP2, (IR>>5) & 7);
|
||||||
write(TMP, TMP2);
|
write(TMP, TMP2);
|
||||||
prefetch();
|
prefetch();
|
||||||
@ -57,42 +59,68 @@ seb_biz
|
|||||||
bbc_bzr
|
bbc_bzr
|
||||||
TMP = read_pc();
|
TMP = read_pc();
|
||||||
TMP2 = read(TMP);
|
TMP2 = read(TMP);
|
||||||
TMP = read_pc();
|
|
||||||
read_pc_noinc();
|
read_pc_noinc();
|
||||||
if(!(TMP2 & (1 << ((IR>>5) & 7)))) {
|
if(!(TMP2 & (1 << ((IR>>5) & 7)))) {
|
||||||
|
TMP = read_pc_noinc();
|
||||||
|
read_arg(set_l(PC, PC+1));
|
||||||
|
PC++;
|
||||||
|
read_arg(set_l(PC, PC+int8_t(TMP)));
|
||||||
PC += int8_t(TMP);
|
PC += int8_t(TMP);
|
||||||
|
} else {
|
||||||
|
read_pc();
|
||||||
}
|
}
|
||||||
prefetch();
|
prefetch();
|
||||||
|
|
||||||
bbs_bzr
|
bbs_bzr
|
||||||
TMP = read_pc();
|
TMP = read_pc();
|
||||||
TMP2 = read(TMP);
|
TMP2 = read(TMP);
|
||||||
TMP = read_pc();
|
|
||||||
read_pc_noinc();
|
read_pc_noinc();
|
||||||
if(TMP2 & (1 << ((IR>>5) & 7))) {
|
if(TMP2 & (1 << ((IR>>5) & 7))) {
|
||||||
|
TMP = read_pc_noinc();
|
||||||
|
read_arg(set_l(PC, PC+1));
|
||||||
|
PC++;
|
||||||
|
read_arg(set_l(PC, PC+int8_t(TMP)));
|
||||||
PC += int8_t(TMP);
|
PC += int8_t(TMP);
|
||||||
|
} else {
|
||||||
|
read_pc();
|
||||||
}
|
}
|
||||||
prefetch();
|
prefetch();
|
||||||
|
|
||||||
bbc_bar
|
bbc_bar
|
||||||
TMP = read_pc();
|
read_pc_noinc();
|
||||||
read_pc_noinc();
|
read_pc_noinc();
|
||||||
if(!(A & (1 << ((IR>>5) & 7)))) {
|
if(!(A & (1 << ((IR>>5) & 7)))) {
|
||||||
|
TMP = read_pc_noinc();
|
||||||
|
read_arg(set_l(PC, PC+1));
|
||||||
|
PC++;
|
||||||
|
read_arg(set_l(PC, PC+int8_t(TMP)));
|
||||||
PC += int8_t(TMP);
|
PC += int8_t(TMP);
|
||||||
|
} else {
|
||||||
|
read_pc();
|
||||||
}
|
}
|
||||||
prefetch();
|
prefetch();
|
||||||
|
|
||||||
bbs_bar
|
bbs_bar
|
||||||
TMP = read_pc();
|
read_pc_noinc();
|
||||||
read_pc_noinc();
|
read_pc_noinc();
|
||||||
if(A & (1 << ((IR>>5) & 7))) {
|
if(A & (1 << ((IR>>5) & 7))) {
|
||||||
|
TMP = read_pc_noinc();
|
||||||
|
read_arg(set_l(PC, PC+1));
|
||||||
|
PC++;
|
||||||
|
read_arg(set_l(PC, PC+int8_t(TMP)));
|
||||||
PC += int8_t(TMP);
|
PC += int8_t(TMP);
|
||||||
|
} else {
|
||||||
|
read_pc();
|
||||||
}
|
}
|
||||||
prefetch();
|
prefetch();
|
||||||
|
|
||||||
rrf_zpg
|
rrf_zpg
|
||||||
TMP = read_pc();
|
TMP = read_pc();
|
||||||
TMP2 = read(TMP);
|
TMP2 = read(TMP);
|
||||||
|
read(TMP);
|
||||||
|
read(TMP);
|
||||||
|
read(TMP);
|
||||||
|
read(TMP);
|
||||||
TMP2 = do_rrf(TMP2);
|
TMP2 = do_rrf(TMP2);
|
||||||
write(TMP, TMP2);
|
write(TMP, TMP2);
|
||||||
prefetch();
|
prefetch();
|
||||||
|
Loading…
Reference in New Issue
Block a user