mirror of
https://github.com/digital-jellyfish/Virtu.git
synced 2024-10-31 19:04:45 +00:00
Modified memory interaction with NoSlotClock; pass internal ROM addresses $C3XX or $C8XX-$CFXX.
--HG-- extra : convert_revision : svn%3Affd33b8c-2492-42e0-bdc5-587b920b7d6d/trunk%4051018
This commit is contained in:
parent
f67d464dc5
commit
8d302f35e9
@ -5,4 +5,4 @@
|
|||||||
<Word>Alloc</Word>
|
<Word>Alloc</Word>
|
||||||
</Recognized>
|
</Recognized>
|
||||||
</Words>
|
</Words>
|
||||||
</Dictionary>
|
</Dictionary>
|
||||||
|
@ -21,4 +21,4 @@
|
|||||||
<Word>UpRight</Word>
|
<Word>UpRight</Word>
|
||||||
</Unrecognized>
|
</Unrecognized>
|
||||||
</Words>
|
</Words>
|
||||||
</Dictionary>
|
</Dictionary>
|
||||||
|
@ -356,7 +356,7 @@ private int ReadIoRegionC3C3(int address)
|
|||||||
{
|
{
|
||||||
SetRomC8CF(true); // $C3XX sets IntC8Rom; inhibits I/O Strobe' [5-28, 7-21]
|
SetRomC8CF(true); // $C3XX sets IntC8Rom; inhibits I/O Strobe' [5-28, 7-21]
|
||||||
}
|
}
|
||||||
return _noSlotClock.Read(address, (IsRomC1CFInternal || !IsRomC3C3External) ? _romInternalRegionC1CF[address - 0xC100] : Machine.Slot3.ReadIoRegionC1C7(address));
|
return (IsRomC1CFInternal || !IsRomC3C3External) ? _noSlotClock.Read(address, _romInternalRegionC1CF[address - 0xC100]) : Machine.Slot3.ReadIoRegionC1C7(address);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int ReadIoRegionC8CF(int address)
|
private int ReadIoRegionC8CF(int address)
|
||||||
@ -365,7 +365,7 @@ private int ReadIoRegionC8CF(int address)
|
|||||||
{
|
{
|
||||||
SetRomC8CF(false); // $CFFF resets IntC8Rom [5-28, 7-21]
|
SetRomC8CF(false); // $CFFF resets IntC8Rom [5-28, 7-21]
|
||||||
}
|
}
|
||||||
return (IsRomC1CFInternal || IsRomC8CFInternal) ? _romInternalRegionC1CF[address - 0xC100] : Machine.Slots[_slotRegionC8CF].ReadIoRegionC8CF(address);
|
return (IsRomC1CFInternal || IsRomC8CFInternal) ? _noSlotClock.Read(address, _romInternalRegionC1CF[address - 0xC100]) : Machine.Slots[_slotRegionC8CF].ReadIoRegionC8CF(address);
|
||||||
}
|
}
|
||||||
|
|
||||||
[SuppressMessage("Microsoft.Usage", "CA2233:OperationsShouldNotOverflow", MessageId = "address-512")]
|
[SuppressMessage("Microsoft.Usage", "CA2233:OperationsShouldNotOverflow", MessageId = "address-512")]
|
||||||
@ -548,11 +548,14 @@ private void WriteIoRegionC3C3(int address, byte data)
|
|||||||
{
|
{
|
||||||
SetRomC8CF(true); // $C3XX sets IntC8Rom; inhibits I/O Strobe' [5-28, 7-21]
|
SetRomC8CF(true); // $C3XX sets IntC8Rom; inhibits I/O Strobe' [5-28, 7-21]
|
||||||
}
|
}
|
||||||
else if (!IsRomC1CFInternal)
|
if (IsRomC1CFInternal || !IsRomC3C3External)
|
||||||
|
{
|
||||||
|
_noSlotClock.Write(address);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
Machine.Slot3.WriteIoRegionC1C7(address, data);
|
Machine.Slot3.WriteIoRegionC1C7(address, data);
|
||||||
}
|
}
|
||||||
_noSlotClock.Write(address);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WriteIoRegionC8CF(int address, byte data)
|
private void WriteIoRegionC8CF(int address, byte data)
|
||||||
@ -561,7 +564,11 @@ private void WriteIoRegionC8CF(int address, byte data)
|
|||||||
{
|
{
|
||||||
SetRomC8CF(false); // $CFFF resets IntC8Rom [5-28, 7-21]
|
SetRomC8CF(false); // $CFFF resets IntC8Rom [5-28, 7-21]
|
||||||
}
|
}
|
||||||
if (!IsRomC1CFInternal && !IsRomC8CFInternal)
|
if (IsRomC1CFInternal || IsRomC8CFInternal)
|
||||||
|
{
|
||||||
|
_noSlotClock.Write(address);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
Machine.Slots[_slotRegionC8CF].WriteIoRegionC8CF(address, data);
|
Machine.Slots[_slotRegionC8CF].WriteIoRegionC8CF(address, data);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user