User Tag List

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

Тема: ZXMAK2 - Виртуальная машина ZX Spectrum

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

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

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

    По умолчанию

    Цитата Сообщение от palsw Посмотреть сообщение
    наверное баян,но все же
    к сожалению ничего по бластеру не нашел.
    Разбирался в чем причина. Похоже весь вопрос в том что читается из порта #FE. Точно понять логику по фрагменту ADHL сложно, судя по AHDL за этот бит похоже отвечает CBL_IND, а на нем чтото очень хитрое накручено:

    Код:
    CBL_IND			= CBL_CNT7 xor CBL_WA7;
    
    --	CBL_WR			= DFF((DCPP[] == B"10001000"),CLK42,,) & !/IOWR; -- 88
    
    	CBL_WR	= (DFF((DCPP[] == B"10001000"),CLK42,,) & !/IOWR) or
    		  (DFF((DECODE.PAGE[7..0] == B"11111101"),CLK42,(CBL_INT_ENA & ACC.ACC_DIR1),) &
    	  		!DFF((DECODE.MC_WRITE or DECODE.CAS),CLK42,,/RESET));
    
    
    	CBL_WAE			= CBL_MODE16 & DFF(!CBL_WAE,!CBL_WR,,CBL_INT);
    
    	CBL_WA[].clk	= !CBL_WR;
    	CBL_WA[].ena	= !CBL_WAE;
    
    	CBL_WA[7].clrn	= CBL_MODE & CBL_INT_ENA & (CBL_INT or !CBL_CNT7);
    	CBL_WA[7].prn	= (CBL_INT or CBL_CNT7);
    
    	CBL_WA[6..0].clrn	= CBL_MODE & CBL_INT_ENA & CBL_INT;
    
    	CBL_WA[].d		= CBL_WA[] + 1;
    дебажил код плеера. Вся загвоздка в том, что он начинает писать в бластер следующие 128 байт, только если по прерыванию из статуса бластера в порте #FE прочиталась 1. Т.к. по документации на этот флаг, он отражает какая половинка буффера бластера сейчас проигрывается, плеер с такой логикой просто не может работать, но работает. AHDL только подтверждает, что логика этого бита не простая.

    Может ктото знает почему плеер на каждую половину буффера ожидает в порте #FE единичку?

    Пробовал разные догадки, но они не подтвердились. Максимум что удалось добиться - звук играет с формальным соответствием документации, но в прерывании костыль - подставлять в #FE состояние INT. Частота, скорость при этом нормальные, но слышно постоянное потрескивание от сбоя синхронизации...

    Также, не получилось добиться нормальной работы прерываний от бластера, сразу после сборса. При этом в порт 4e пишется #FF, т.е. частота 109 кГц с прервываниями. Но спринтер от такого режима начинает себя неадекватно вести - курсор в навигаторе бешенно мерцает, задержек на детектирование винчестеров нет - система без задержек за секунду в навигатор грузится... Пока приходится блокировать прерывания в таком режиме...
    Последний раз редактировалось ZXMAK; 25.06.2015 в 00:39.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

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

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

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

Похожие темы

  1. Ответов: 7
    Последнее: 06.04.2012, 21:37
  2. Машина Тьюринга для Z80
    от ZXMAK в разделе Эмуляторы
    Ответов: 4
    Последнее: 15.08.2011, 03:26
  3. Продвинутая Мелко Машина 1
    от Black_Cat в разделе Зарубежные компьютеры
    Ответов: 74
    Последнее: 03.03.2009, 09:05
  4. Что за машина такая??? Commodore 128...
    от ILoveSpeccy в разделе Commodore 16/64/128
    Ответов: 5
    Последнее: 31.10.2007, 10:25
  5. Java-машина
    от Error404 в разделе Программирование
    Ответов: 2
    Последнее: 15.01.2007, 15:11

Ваши права

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