Stop feeding Mogwai after midnight (nw)

This commit is contained in:
R. Belmont 2013-03-23 19:19:10 +00:00
parent d42b8d7529
commit e438b18443
2 changed files with 33 additions and 11 deletions

View File

@ -113,7 +113,6 @@ void m740_device::do_sbc_dt(UINT8 val)
{
UINT8 c = P & F_C ? 0 : 1;
P &= ~(F_N|F_V|F_Z|F_C);
TMP2 = read(X);
UINT16 diff = TMP2 - val - c;
UINT8 al = (TMP2 & 15) - (val & 15) - c;
if(INT8(al) < 0)
@ -130,15 +129,11 @@ void m740_device::do_sbc_dt(UINT8 val)
if(INT8(ah) < 0)
ah -= 6;
TMP2 = (ah << 4) | (al & 15);
write(X, TMP2);
}
void m740_device::do_sbc_ndt(UINT8 val)
{
UINT16 diff;
TMP2 = read(X);
diff = TMP2 - val - (P & F_C ? 0 : 1);
UINT16 diff = TMP2 - val - (P & F_C ? 0 : 1);
P &= ~(F_N|F_V|F_Z|F_C);
if(!UINT8(diff))
P |= F_Z;
@ -149,7 +144,6 @@ void m740_device::do_sbc_ndt(UINT8 val)
if(!(diff & 0xff00))
P |= F_C;
TMP2 = diff;
write(X, TMP2);
}
void m740_device::do_sbct(UINT8 val)
@ -164,7 +158,6 @@ void m740_device::do_adc_dt(UINT8 val)
{
UINT8 c = P & F_C ? 1 : 0;
P &= ~(F_N|F_V|F_Z|F_C);
TMP2 = read(X);
UINT8 al = (TMP2 & 15) + (val & 15) + c;
if(al > 9)
al += 6;
@ -180,13 +173,11 @@ void m740_device::do_adc_dt(UINT8 val)
if(ah > 15)
P |= F_C;
TMP2 = (ah << 4) | (al & 15);
write(X, TMP2);
}
void m740_device::do_adc_ndt(UINT8 val)
{
UINT16 sum;
TMP2 = read(X);
sum = TMP2 + val + (P & F_C ? 1 : 0);
P &= ~(F_N|F_V|F_Z|F_C);
if(!UINT8(sum))
@ -198,7 +189,6 @@ void m740_device::do_adc_ndt(UINT8 val)
if(sum & 0xff00)
P |= F_C;
TMP2 = sum;
write(X, TMP2);
}
void m740_device::do_adct(UINT8 val)

View File

@ -152,7 +152,9 @@ adct_aba
TMP = read_pc();
TMP = set_h(TMP, read_pc());
TMP = read(TMP);
TMP2 = read(X);
do_adct(TMP);
write(X, TMP2);
prefetch();
adct_abx
@ -163,7 +165,9 @@ adct_abx
}
TMP += X;
TMP = read(TMP);
TMP2 = read(X);
do_adct(TMP);
write(X, TMP2);
prefetch();
adct_aby
@ -174,7 +178,9 @@ adct_aby
}
TMP += Y;
TMP = read(TMP);
TMP2 = read(X);
do_adct(TMP);
write(X, TMP2);
prefetch();
adct_idx
@ -183,7 +189,9 @@ adct_idx
TMP2 += X;
TMP = read(TMP2 & 0xff);
TMP = set_h(TMP, read((TMP2+1) & 0xff));
TMP2 = read(X);
do_adct(read(TMP));
write(X, TMP2);
prefetch();
adct_idy
@ -193,25 +201,33 @@ adct_idy
if(page_changing(TMP, Y)) {
read(set_l(TMP, TMP+Y));
}
TMP2 = read(X);
do_adct(read(TMP+Y));
write(X, TMP2);
prefetch();
adct_imm
TMP = read_pc();
TMP2 = read(X);
do_adct(TMP);
write(X, TMP2);
prefetch();
adct_zpg
TMP = read_pc();
TMP = read(TMP);
TMP2 = read(X);
do_adct(TMP);
write(X, TMP2);
prefetch();
adct_zpx
TMP = read_pc();
read(TMP);
TMP = read(UINT8(TMP+X));
TMP2 = read(X);
do_adct(TMP);
write(X, TMP2);
prefetch();
andt_aba
@ -654,7 +670,9 @@ sbct_aba
TMP = read_pc();
TMP = set_h(TMP, read_pc());
TMP = read(TMP);
TMP2 = read(X);
do_sbct(TMP);
write(X, TMP2);
prefetch();
sbct_abx
@ -665,7 +683,9 @@ sbct_abx
}
TMP += X;
TMP = read(TMP);
TMP2 = read(X);
do_sbct(TMP);
write(X, TMP2);
prefetch();
sbct_aby
@ -676,7 +696,9 @@ sbct_aby
}
TMP += Y;
TMP = read(TMP);
TMP2 = read(X);
do_sbct(TMP);
write(X, TMP2);
prefetch();
sbct_idx
@ -685,7 +707,9 @@ sbct_idx
TMP2 += X;
TMP = read(TMP2 & 0xff);
TMP = set_h(TMP, read((TMP2+1) & 0xff));
TMP2 = read(X);
do_sbct(read(TMP));
write(X, TMP2);
prefetch();
sbct_idy
@ -695,24 +719,32 @@ sbct_idy
if(page_changing(TMP, Y)) {
read(set_l(TMP, TMP+Y));
}
TMP2 = read(X);
do_sbct(read(TMP+Y));
write(X, TMP2);
prefetch();
sbct_imm
TMP = read_pc();
TMP2 = read(X);
do_sbct(TMP);
write(X, TMP2);
prefetch();
sbct_zpg
TMP = read_pc();
TMP = read(TMP);
TMP2 = read(X);
do_sbct(TMP);
write(X, TMP2);
prefetch();
sbct_zpx
TMP = read_pc();
read(TMP);
TMP = read(UINT8(TMP+X));
TMP2 = read(X);
do_sbct(TMP);
write(X, TMP2);
prefetch();