Цитата Сообщение от Hacker VBI Посмотреть сообщение
http://zxmak2.codeplex.com/SourceCon...w/22900#391359
Я вижу, что это связано с обращениями к памяти до #8000, и всё.
В общем, расположение кода лучше с #8000.
нет, не только, вот 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 (причем в зависимости от замапленой страницы)