
Сообщение от
Hacker VBI
нет, не только, вот ULA от Spectrum128:
Код:
protected override void WriteMem4000(ushort addr, byte value)
{
contendMemory();
base.WriteMem4000(addr, value);
}
protected override void WriteMemC000(ushort addr, byte value)
{
if ((m_pageC000 & 1) != 0)
contendMemory();
base.WriteMemC000(addr, value);
}
protected void ReadMem4000(ushort addr, ref byte value)
{
contendMemory();
}
protected void ReadMemC000(ushort addr, ref byte value)
{
if ((m_pageC000 & 1) != 0)
contendMemory();
}
#region The same as 48
private void WritePortAll(ushort addr, byte value, ref bool iorqge)
{
contendPortEarly(addr);
contendPortLate(addr);
if ((addr & 0x0001) == 0)
{
int frameTact = (int)((CPU.Tact - 2) % FrameTactCount);
UpdateState(frameTact);
PortFE = value;
}
}
private void ReadPortAll(ushort addr, ref byte value, ref bool iorqge)
{
contendPortEarly(addr);
contendPortLate(addr);
int frameTact = (int)((CPU.Tact - 1) % FrameTactCount);
base.ReadPortFF(frameTact, ref value);
}
тут есть и обращение к портам и к области #4000 и к #C000 (причем в зависимости от замапленой страницы)