User Tag List

Страница 118 из 224 ПерваяПервая ... 114115116117118119120121122 ... ПоследняяПоследняя
Показано с 1,171 по 1,180 из 2231

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

  1. #1171

    Регистрация
    11.02.2005
    Адрес
    【RB】
    Сообщений
    3,877
    Спасибо Благодарностей отдано 
    128
    Спасибо Благодарностей получено 
    131
    Поблагодарили
    81 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    где длина загружаемого блока задаётся завышенной (фактическая длина меньше)


    Да, например в последних модификациях «Церикопика». Там сделано в виде паузы. Загружается блок, потом вылазит заставка, а на фоне слышно, как грузятся нули.

  2. #1171
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #1172

    Регистрация
    22.06.2005
    Адрес
    Ульяновск
    Сообщений
    161
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Спасибо, очень помогло бы расписать что именно не так и как должно быть (например - вот тут делаем то-то, должно получиться то-то, а получается то-то), потому что пока кроме того, что чтото c восстановлением работает неправильно (если я правильно понял), суть проблемы не очень ясна
    Более досконально протрассировал код лоадера в деме в режиме Delays:
    1. Загружаем первую часть мегадемо - все ок!
    - CMD: #80, STATUS: #00, TRK: #03, SEC: #0A, DATA: #00, beta: #80, system: #3c (реал/эмулятор)
    2. out (#1f),0
    - CMD #00, STATUS #00, TRK #03, SEC #0A, DATA #00, beta #80, system #3c (реал)
    - CMD #00, STATUS #61, TRK #03, SEC #0A, DATA #00, beta #00, system #3c (эмулятор)
    3. out (#1f),#d0
    - CMD #d0, STATUS #80, TRK #03, SEC #0A, DATA #00, beta #00, system #3c (реал)
    - CMD #d0, STATUS #60, TRK #FE, SEC #0A, DATA #00, beta #80, system #3c (эмулятор)
    4. Далее загружаем вторую часть мегадемо
    - на реале все ок
    - на эмуле при попытке прочитать сектор операция завершается ошибкой #10 - сектор не найден! После чего лоадер виснет в бесконечном цикле...
    Последний раз редактировалось Faster; 15.04.2014 в 08:54.
    Когда на твой вопрос отвечает философ, перестаешь понимать вопрос

  4. #1173

    Регистрация
    23.03.2007
    Адрес
    г. Сухиничи, Калужская обл.
    Сообщений
    1,793
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    проверьте набор тестов (на эмуляцию загрузки TAPфайлов) - говорят на zxmak2 он не проходит целиком
    А где можно найти не битый тапок? То что здесь выложено кривое.

    типы блоков в образе ленты не соответствуют тем значениям регистра A которые на экран печатаются

    ---------- Post added at 23:40 ---------- Previous post was at 23:34 ----------

    И да еще. Под анрылом тест 6 виснет, на пентеве с эмуляцицей ленты на 6 тесте просто сброс.

    Скрытый текст

    Profi 4.02 512k
    Profi 5.04 1024k нижняя плата здесь
    Scorpion 256k+ProfROM+SMUC 1.3+SMUC 2.0+ZXMC2
    Pentagon v2.2+Z-controller+ZXMC2+NeoGS
    АТМ 7.10 1024k
    Pentagon 2.666LE
    ZX Evolution 4Mb rev B
    [свернуть]


    Извещение лички отключено, захожу редко.

  5. #1174

    Регистрация
    22.06.2005
    Адрес
    Ульяновск
    Сообщений
    161
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    при переходе в трдос у скорпиона несколько необычная процедура для вг93 выполняется, без задержек (nodelay) она зависает...
    Речь шла про это, я так понимаю?
    Когда на твой вопрос отвечает философ, перестаешь понимать вопрос

  6. #1175

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,081
    Спасибо Благодарностей отдано 
    88
    Спасибо Благодарностей получено 
    480
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Когда тестировал свой код на эмуляторах всё было хорошо, но как только загрузил игру в свой фирменный +2 — посыпалась картинка.

    Оказалось, что ни один эмулятор не поддерживает особенности работы ULA. Были большие надежды на zxmak2 и EightyOne, но увы.

    Суть проблемы: Тырканье регистра I во время прерывания. Биты 7 и 6 были использованы для флагов управления процессами. Оказалось так делать нельзя.

    Подпрограмма делает финт - инвертирует бит 3, если установлен бит 6. Потом процедуры графики, потом обратно инвертируем оба бита 6 и 3, при условии что 6 был установлен.

    Код:
    	LD A,I
    	BIT 6,A
    	RLA
    	JR Z,$+7
    	RRA	
    	XOR %00001000			; Cf=0
    	LD I,A
    	CALL C,@proc
    ; процедуры графики определяют буфер какого экрана восстановить по 3-му биту.

    Код:
    	LD A,I
    	BIT 6,A
    	JR Z,$+9
    	XOR %01001000			; Обратная инверсия бита текущего экрана и сброс 6-го бита
    	LD (PAGE+1),A
    	LD I,A
    Оказалось вот что:

    Регистр "I" в фирменном "СПЕКТРУМЕ" дополнительно участвует в формировании телевизионного сигнала. "ULA" задействует биты6 и 7 регистра "I". При каждом цикле машинных командZ-80 обращается к ячейке памяти, адресуемой регистром "I", выводя его в старшие восемь битов адресной шины, а линия запроса памяти"MREQ" активизируется. "ULA" генерирует прерывания каждый раз, когда необходимо изменить содержимое экрана. Это заставляет Z-80 запустить программу обработки прерываний, при условии, что прерывания подключены.

    Когда программа обработки прерываний выполнена, процессор возвращается в точку, в которой он был при прерывании. Если это команды считывания/записи в память между16384 (4000H) и 32767 (7FFFH), что "ULA" проверяет, просматривая две старшие линии адресной шины и линию"MREQ", то"ULA" приостанавливает микро процессор до окончания изменения экрана.

    Если старший бит регистра "I" сброшен, а бит6 активизиро ван, то"ULA" может запутаться из-за регенерации динамической памяти. Активизируется линия"MREQ", и регистр "I" помещается в старшие восемь битов адресной шины. Далее"ULA" думает, что процессор производит запись или считывание в эту область ОЗУ, и при попытке это предотвратить, "ULA" пропускает свое собственное обращение для изменения дисплея, что приводит к развалу картинки. Поэтому в регистре "I" не должно содержаться любое число от64 до127 (040H до07FH) включительно, т.e. c двумя старшими битами, установленными вышеописанным образом.
    Последний раз редактировалось drbars; 17.04.2014 в 22:50.

  7. #1176

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

    По умолчанию

    Цитата Сообщение от drbars Посмотреть сообщение
    Когда тестировал свой код на эмуляторах всё было хорошо, но как только загрузил игру в свой фирменный +2 — посыпалась картинка.

    Оказалось, что ни один эмулятор не поддерживает особенности работы ULA. Были большие надежды на zxmak2 и EightyOne, но увы.

    Оказалось вот что:
    Это называется эмуляция снега. Для этого есть ULA snow, правда эффект незначительно отличается от риала, т.к. я толком так и не понял всех деталей, где и как в точности ULA получает байт для отображения в моменты конфликта с процессором.
    У ULA на реальном спектруме есть и другие приколы. Например формирование пикселов paper и ink незначительно отличается (незначительно отличается время задержки сигнала, т.к. для ink и paper используются разные схемы), что дает возможность рисовать на риале картинки, которые в эмуляторах не видны. Т.к. пикселы что ink, что paper в эмуляторах одинаковые. Сэмулировать это на обычном дисплее непросто, нужно применять умную фильтрацию изображения
    Последний раз редактировалось ZXMAK; 18.04.2014 в 02:02.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  8. #1177

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,392
    Спасибо Благодарностей отдано 
    1,701
    Спасибо Благодарностей получено 
    2,218
    Поблагодарили
    872 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    У ULA на реальном спектруме есть и другие приколы. Например формирование пикселов paper и ink незначительно отличается (незначительно отличается время задержки сигнала, т.к. для ink и paper используются разные схемы), что дает возможность рисовать на риале картинки, которые в эмуляторах не видны. Т.к. пикселы что ink, что paper в эмуляторах одинаковые. Сэмулировать это на обычном дисплее непросто, нужно применять умную фильтрацию изображения
    Это что, значт ширина пикселей inc и paper разная? Или они смещены относительно друг-друга?

  9. #1178

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Это что, значт ширина пикселей inc и paper разная? Или они смещены относительно друг-друга?
    Разная длительность перехода с ink на paper и обратно, глазом разницу попиксельно не заметишь, но когда смотришь картинку в целом, то на определенных комбинациях заметна разница яркости. С помощью этой разницы можно узоры рисовать, которые не видны в эмуляторах.
    Т.е. когда идет чередование пикселов с цветом ink и с цветом paper, то один пиксел будет чуть уже чем другой, хотя общая сумма по длинне одинаковая. В конечном счете яркость пиксела зависит от типа цвета текущего и следующего пикселов...
    Последний раз редактировалось ZXMAK; 18.04.2014 в 02:45.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  10. #1179

    Регистрация
    28.02.2005
    Адрес
    Москва
    Сообщений
    2,245
    Спасибо Благодарностей отдано 
    995
    Спасибо Благодарностей получено 
    617
    Поблагодарили
    335 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    ...т.к. для ink и paper используются разные схемы), что дает возможность рисовать на риале картинки, которые в эмуляторах не видны.
    Вот это очень интересно! На вскидку есть какие-то примеры? хочется посмотреть на это

  11. #1180

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

    По умолчанию

    Цитата Сообщение от SoftLight Посмотреть сообщение
    Вот это очень интересно! На вскидку есть какие-то примеры? хочется посмотреть на это
    Есть небольшие демки, если не потерялись, вечером выложу
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

Страница 118 из 224 ПерваяПервая ... 114115116117118119120121122 ... ПоследняяПоследняя

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

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

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

Похожие темы

  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

Ваши права

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