mirror of
https://github.com/MoleskiCoder/EightBitNet.git
synced 2025-01-08 00:32:57 +00:00
Synchronise HALT implementation for Intel style processors with the C++ version.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
This commit is contained in:
parent
08111f8590
commit
bc491884b0
@ -62,8 +62,6 @@ namespace EightBit
|
||||
|
||||
public ref PinLevel HALT => ref this.haltLine;
|
||||
|
||||
protected bool Halted => this.HALT.Lowered();
|
||||
|
||||
public IntelOpCodeDecoded GetDecodedOpCode(byte opCode) => this.decodedOpCodes[opCode];
|
||||
|
||||
public override void RaisePOWER()
|
||||
@ -196,17 +194,5 @@ namespace EightBit
|
||||
base.Return();
|
||||
this.MEMPTR.Word = this.PC.Word;
|
||||
}
|
||||
|
||||
protected void Halt()
|
||||
{
|
||||
--this.PC.Word;
|
||||
this.LowerHALT();
|
||||
}
|
||||
|
||||
protected void Proceed()
|
||||
{
|
||||
++this.PC.Word;
|
||||
this.RaiseHALT();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -66,7 +66,7 @@ namespace EightBit
|
||||
{
|
||||
this.HandleINT();
|
||||
}
|
||||
else if (this.Halted)
|
||||
else if (this.HALT.Lowered())
|
||||
{
|
||||
this.Execute(0); // NOP
|
||||
}
|
||||
@ -401,7 +401,7 @@ namespace EightBit
|
||||
case 1: // 8-bit loading
|
||||
if (z == 6 && y == 6)
|
||||
{
|
||||
this.Halt(); // Exception (replaces LD (HL), (HL))
|
||||
this.LowerHALT(); // Exception (replaces LD (HL), (HL))
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -86,10 +86,7 @@ namespace EightBit.GameBoy
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.Halted)
|
||||
{
|
||||
this.Proceed();
|
||||
}
|
||||
this.RaiseHALT();
|
||||
}
|
||||
}
|
||||
|
||||
@ -101,7 +98,7 @@ namespace EightBit.GameBoy
|
||||
{
|
||||
this.HandleINT();
|
||||
}
|
||||
else if (this.Halted)
|
||||
else if (this.HALT.Lowered())
|
||||
{
|
||||
this.Execute(0); // NOP
|
||||
}
|
||||
@ -557,7 +554,7 @@ namespace EightBit.GameBoy
|
||||
case 1: // 8-bit loading
|
||||
if (z == 6 && y == 6)
|
||||
{
|
||||
this.Halt(); // Exception (replaces LD (HL), (HL))
|
||||
this.LowerHALT(); // Exception (replaces LD (HL), (HL))
|
||||
}
|
||||
else
|
||||
{
|
||||
|
16
Z80/Z80.cs
16
Z80/Z80.cs
@ -214,7 +214,7 @@ namespace EightBit
|
||||
{
|
||||
this.HandleINT();
|
||||
}
|
||||
else if (this.Halted)
|
||||
else if (this.HALT.Lowered())
|
||||
{
|
||||
this.Execute(0); // NOP
|
||||
}
|
||||
@ -258,11 +258,7 @@ namespace EightBit
|
||||
protected override void HandleINT()
|
||||
{
|
||||
base.HandleINT();
|
||||
if (this.Halted)
|
||||
{
|
||||
this.Proceed();
|
||||
}
|
||||
|
||||
this.RaiseHALT();
|
||||
if (this.IFF1)
|
||||
{
|
||||
this.DisableInterrupts();
|
||||
@ -1149,7 +1145,7 @@ namespace EightBit
|
||||
}
|
||||
else
|
||||
{
|
||||
this.Halt(); // Exception (replaces LD (HL), (HL))
|
||||
this.LowerHALT(); // Exception (replaces LD (HL), (HL))
|
||||
}
|
||||
|
||||
this.Tick(4);
|
||||
@ -1396,11 +1392,7 @@ namespace EightBit
|
||||
private void HandleNMI()
|
||||
{
|
||||
this.RaiseNMI();
|
||||
if (this.Halted)
|
||||
{
|
||||
this.Proceed();
|
||||
}
|
||||
|
||||
this.RaiseHALT();
|
||||
this.IFF1 = false;
|
||||
this.Restart(0x66);
|
||||
this.Tick(13);
|
||||
|
Loading…
Reference in New Issue
Block a user