С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Спасибо, это поможет не только VALLEY, но и ROTORS (можно не править тактовую). Правда у rotors (и еще у некоторых игрушек) есть еще проблемки отображения (пропадают спрайты), предположительно связанные с моментом прихода прерывания и быстродействием.
Последний раз редактировалось ivagor; 14.06.2018 в 10:08.
Проделал высокоинтеллектуальную работу по вбиванию чеков. В нагрузку идут правки организации внешней памяти.
Если я правильно понимаю, то emu - это эмулятор, который написан уважаемым b2m? Если так, то существует ли возможность поделиться исходным кодом? Меня интересует чисто практический интерес, для того, чтобы опыта полезного набраться.
Добавил поддержку ПК8000 в свой эмулятор.
Никогда не сталкивался с этим компьютером, интересно было познакомиться с ним.
Основную информацию по архитектуре удалось найти здесь на форуме и на сайтах XobbiMan и Mick.
Осталось немного неясных моментов, не сказывающихся вроде бы на выполнении существующих программ, чуть позже сформулирую.
Основная тема обсуждения эмулятора:
https://zx-pk.ru/threads/27488-emu80-v-4.html
Анонс последней версии в той же теме:
https://zx-pk.ru/threads/27488-emu80...l=1#post991900
Сборка последней версии под Windows:
http://emu80.org/v4beta/Emu80qt_40313.zip
Исходники (GPL v.3):
https://github.com/vpyk/emu80v4
Особенности эмуляции ПК8000 и основные моменты при работе с эмулятором для тех, кто раньше с ним не сталкивался:
Общие:
- В эмуляторе используется средняя тактовая частота 1,8 МГц, вейты не реализованы
- Чтобы увидеть бордюр, нажмите Alt-V либо соответствующую кнопку на тулбаре (показать видимую область).
Alt-R переключает режим соблюдения соотношения сторон, Alt-S - сглаживание, кнопки также есть на тулбаре.
В режиме отображения бордюра изображение слегка смещено влево по сравлению с реалом для устранения обрезания картинки справа.
- Для ускорения работы эмулятора нажмите и держите клавишу Del
- Имеется большое количество настроек отображения (масштабирование, сглаживание, скан-линии и т.д) - поэкспериментируете в настройках.
Загрузка:
- Встроенный загрузчик умеет загружать бинарные файлы (обычно загружаемые через bload) и токенизированные basic-файлы (обычно загружаемые через cload).
Загружать через Alt-F3 (с автозапуском) или Alt-L (без автозапуска) либо через соответствующие кнопки на тулбаре или пункты меню.
(Сделана также попытка поддержки загрузки файлов с автозапуском, но не всегда корректно работает почему-то).
Работает также drag'n'drop в окно эмулятора, ну и bload и cload, конечно, тоже.
- Выбор образов дисков A/B через Alt-A и Alt-B.
- Wav-файлы загружаются только через команды basic или другой прикладной программы. Можно либо выбрать wav-файл при запросе вместо cas,
либо предварительно запустить его воспроизведение с помощью Alt-W. Для записи wav-файла выберите тип файла wav в диалоге сохранения.
Кроме wav поддерживаются также сжатые файлы csw (Compressed Square Wave), работа с ними аналогична wav. Также в настройках можно задать
ускорение эмуляции при воспроизведении wav-файла.
Клавиатура:
- По умолчанию стоит "Умная" раскладка клавиатуры. Просто набираете текст в соответстви с раскладкой PC, язык также переключается системными средствами.
При необходимости можно переключить раскладку на qwerty либо йцукен.
- Джойстик пока не поддерживается
- Назначение некоторых неочевидных клавиши:
ГРАФ - F10
АЛФ - Ins
ФИКС - F8
СТОП - F12
SEL - F11
Ъ/_ - F6
СТРН - PgUp
Предложения по переназначению на другие клавиши принимаются![]()
Последний раз редактировалось Pyk; 21.12.2018 в 01:11.
Собственно, вот какие непонятные вопросы возникли по ходу реализации.
Они вроде бы не влияют на выполнение существующих программ, но хотелось бы их разобраться и учесть в следующих версиях.
1. Непонятно, отображаются ли как-то на память регистры цвета A0-BF либо они доступны только через порты?
В документации указано фиксированное смещение 400 этих регистров в буфере. Если их можно читать или писать через память, что происходит в случае, если они пересекаются с областями знакогенератора или текстового буфера?
2. Порты 92 и 93. В обсуждении пришли к выводу, что они инвертированы, мне же кажется более вероятным,
что в документации просто перепутали их местами. Так и сделал в эмуляторе, но неплохо бы проверить... Могу набросать тест при необходимости.
4. Что читается из не подключенного слота расширения? Слово состояния процессора?
5. Защелкивается ли сигнал запроса прерывания? Будет ли запрос, пришедший во время запрещенных прерываний, обработан, как только прерывания будут разрешены?
В каких существующих для ПК8000 программах вообще используются прерывания?
6. Вот здесь:
https://zx-pk.ru/threads/8376-pk8000...l=1#post967709
ivagor публиковал исправленный конфиг для эмулятора b2m, из которого следует, что при обращении к слотам расширения запись всегда происходит фактически в ОЗУ.
Либо я не понял идею, либо это не так: как хотя бы в таком случае будет происходить запись в порты контроллера НГМД?
На память регистры цвета не отображаются. Штатное пзу в screen 1 раз в 16 прерываний переписывает эту область из памяти в порты.
Во многих, например в штатном пзу.
Вопрос про курсор вниз - на какой он клавише?
И вроде все же при старте должен быть английский регистр.
- - - Добавлено - - -
Насколько я помню, в идеале запись
1) Всегда идет во внутреннее озу
2) +может параллельно идти наружу, если там есть куда писать.
Конфиг emu такое вроде не позволил сделать, поэтому ни штатный конфиг, ни мой правленый не на 100% соответствует реалу.
- - - Добавлено - - -
Насколько помню - да. По крайней мере в финальных тестах быстродействия ПК8000 этот момент я отрабатывал.
- - - Добавлено - - -
Тогда их перепутали как минимум
1) В описании портов
2) В описании оператора BASE
3) В реализации оператора BASE
Мне такие 3 перепутывания кажутся маловероятными
Последний раз редактировалось ivagor; 21.12.2018 в 07:49. Причина: исправил
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)