User Tag List

Показано с 1 по 10 из 45

Тема: ZXMAK.NET 2 alpha небольшой ремикс :)

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #21

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    после оптимизации кода процессора под новую модель с BusManager, результат таков: падение производительности на новой модели составило 23%. Решил оставить, т.к. уж больно удобная модель получилась

    Как выяснилось, львиную долю дополнительного времени съедает подписка Beta Disk Interface на ReadMemoryM1. Кода в обработчиках фактически нет, но при подписке на ReadMemory производительность сразу проседает на 15%. Вот код обработчиков:
    Код:
            public void BusInit(IBusManager bmgr)
            {
                bmgr.AddListenerReadMemoryM1(0xFF00, 0x3D00, readMem3D00_M1);
                bmgr.AddListenerReadMemoryM1(0xC000, 0x4000, readMemRam);
                bmgr.AddListenerReadMemoryM1(0xC000, 0x8000, readMemRam);
                bmgr.AddListenerReadMemoryM1(0xC000, 0xC000, readMemRam);
    
                bmgr.AddListenerWritePort(0x8002, 0x0000, writePort7FFD);
    
                bmgr.AddListenerWritePort(0x00E3, 0x0003, writePortCMD);
                bmgr.AddListenerWritePort(0x00E3, 0x0023, writePortTRK);
                bmgr.AddListenerWritePort(0x00E3, 0x0043, writePortSEC);
                bmgr.AddListenerWritePort(0x00E3, 0x0063, writePortDATA);
                bmgr.AddListenerWritePort(0x00E3, 0x00E3, writePortBETA);
    
                bmgr.AddListenerReadPort(0x00E3, 0x0003, readPortCMD);
                bmgr.AddListenerReadPort(0x00E3, 0x0023, readPortTRK);
                bmgr.AddListenerReadPort(0x00E3, 0x0043, readPortSEC);
                bmgr.AddListenerReadPort(0x00E3, 0x0063, readPortDATA);
                bmgr.AddListenerReadPort(0x00E3, 0x00E3, readPortBETA);
    
                bmgr.AddListenerReset(busReset);
            }
    
            private void busReset(long cpuTact)
            {
                m_selTrdos = false;
                m_lock = false;
                writePort7FFD(cpuTact, 0x7FFD, 0);
            }
    
            #region RDMEM
    
            private void readMem3D00_M1(long cpuTact, ushort addr, ref byte value)
            {
                if (m_romPage == 1)
                    m_selTrdos = true;
            }
    
            private void readMemRam(long cpuTact, ushort addr, ref byte value)
            {
                m_selTrdos = false;
            }
    
            #endregion
    обнаруженые недостатки на примере бета диск интерфейса:
    - из девайса бета диска приходится мониторить чтение памяти чтобы отловить вход в TRDOS для разрешения обработки портов (сами ROM переключаются в девайсе Memory);
    - из девайса бета диска приходится мониторить RESET и запись в порт 7FFD на предмет битов LOCK и ROM, чтобы блокировать вход в TRDOS из 128K ROM
    Последний раз редактировалось ZXMAK; 10.09.2011 в 16:36.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. EmuZGL alpha preview
    от Vladimir Kladov в разделе Эмуляторы
    Ответов: 207
    Последнее: 09.10.2011, 03:34
  2. Retro-X [Alpha 6]
    от riskej в разделе Софт
    Ответов: 14
    Последнее: 20.10.2008, 02:46
  3. Ответов: 8
    Последнее: 29.10.2007, 15:47
  4. MEMos alpha demo
    от jim в разделе Софт
    Ответов: 11
    Последнее: 16.09.2007, 14:18
  5. Это ремикс???
    от newart в разделе Музыка
    Ответов: 9
    Последнее: 09.02.2005, 15:38

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •