Попробовал в текущей разрабатываемой версии emu80 запустить с HDD, предварительно обработав cas2com - все ок
Видимо, что-то эмулируется неправильно, раз отображается нормально
Попробовал в текущей разрабатываемой версии emu80 запустить с HDD, предварительно обработав cas2com - все ок
Видимо, что-то эмулируется неправильно, раз отображается нормально
Последний раз редактировалось Pyk; 16.01.2019 в 00:30. Причина: typo
Да, в эмуляторе товарища b2m тоже работает. Надо подумать...
Вспомнил про одну выявленную несовместимость реала с эмулятором. Давно еще написал программу, которая выдавала на экран содержимое портов, отвечающих за настройки видеорежима. В эмуляторе порты читались прекрасно, а вот на реале выдавали мусор. В принципе могу уточнить какие порты на реале не читаются.
Может и здесь есть попытка чтения портов, при установке видеорежима? Тогда становится понятным, отчего в реале на экране каждый раз разная картинка и "спецэффекты".
DemoinId7, спасибо за проверку! Всего-то хотел для развлечения с минимальными усилиями портануть программу и опять вылезли особенности реала.
По картинке похоже, что знакогенератор неправильный. Программирование адреса знакогенератора я жестко пропатчил, там просто выдается в порт значение без чтения из порта.
Еще вижу, что цвета фона и изображения не прописались. DemonId7 - это версия 001 или 002? Если 002, то странно.
Наверно только третий параметр, цвет бордюра?
- - - Добавлено - - -
Обратил внимание, что некоторые символы правильные: - 8 . 9
Т.е. возможно дело не в программировании адреса знакогенератора, а в порче его содержимого на каком-то этапе.
- - - Добавлено - - -
А может дело не в адресе знакогенератора и не в его порче, а именно в цветах (которые в РУ2). В 002 они должны программироваться, хотя у меня появилось предположение, почему это не получилось.
Если 002 не программировал РУ2, то 003 просто обязан. Еще допеределал одну из графических процедур. Предыдущие варианты удалил.
Последний раз редактировалось ivagor; 17.01.2019 в 18:59. Причина: удалил вложение в связи с выкладыванием более новой версии
У меня было предположение, что на программируемость может влиять текущий режим. Похоже, что еще влияют (и очень сильно) тайминги. В своих худших проявлениях вектор и ПК8000 похожи. Надо делать тест.
Специально для screen 1 на ПК8000 (где он должен работать совсем иначе, чем на ПК8002) я COLOR не патчил. В screen 2 COLOR действует нормально, но работать в режиме редактирования в screen 2, как и на msx, нельзя, т.к. он графический.
- - - Добавлено - - -
Все, до меня дошло, можно и без знания и соблюдения таймингов уверенно программировать РУ2.
А зачем лезть в программирование РУ2? В screen 1 цвета задаются в памяти, откуда они и пересылаются обработчиком BIOS в регистры. Самим в регистры писать бесполезно, ведь их все равно перепишет обработчик BIOS.
Я когда рассматривал возможности видеорежима 1, то для ускорения применял непосредственное программирование цветов через порты, но приходилось каждое прерывание записывать единицу в память по адресу 0FDEBh, которая отвечает за обновление биосом регистров палитры.
Изначально в РУ2 я полез, чтобы ускорить и сократить процедуру инициализации. При старте я сразу запрещаю прерывания и отключаю ПЗУ и родной обработчик уже ничего никуда не перепишет. А потом стало интересно.
Суть проблемы - я не гасил изображение на время программирования РУ2. Уверен, что можно и без гашения подобрать моменты уверенного программирования (как на векторе), но у меня ПК8000 нет и надо делать интерактивный тест. Добавлю гашение и все запрограммируется.
- - - Добавлено - - -
Для того, чтобы при следующем вызове штатного обработчика прерываний он обязательно зарограммировал РУ2 нужно изменить 2 ячейки: FDBD=не 0, FDEB=0.
FDBD - это флаг обновления всех регистров, например по смене видеорежима. А FDEB - отвечает именно за палитру, хотя понятно, что без FDBD он работать не будет.
--------------
А почему бы тогда не гасить изображение, как это делается в BIOS? Это ведь не трудно и гарантия от глюков. К чему трюкачество с подбором таймингов? Это ведь не демка, а интерпритатор
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)