ПК-01 ЛЬВОВ

форум о ПК-01,02 "Львов"
Текущее время: 09 апр 2020, 15:54

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 18 сообщений ]  На страницу Пред. 1 2
Автор Сообщение
 Заголовок сообщения: Re: Эмулятор Целикова (Башкирия/EMU)
СообщениеДобавлено: 27 сен 2016, 11:32 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщения: 1009
Цитата:
Ну вот он я :) Спрашивай, чего хотел. Только не расстраивайся, если отвечу через полгода :twisted:
Ура! Лучше через полгода, чем никогда.

Я кинул в аттач Барбариана. Сначала грузится заставка, и некий лоадер, который пробует сам загрузить файл. Причем, доходя до зоны из конфига tproc[E2ED-E342], "Башкирия" обрабатывает загрузку по-своему, а "хитрый" лоадер ломается. Поэтому у меня такие вопросы:
1. Что происходит по адресам

tproc[E2ED-E342]=sp
biproc[E343-E341]=sp
Как именно читает/пишет байт "Башкирия", меняет ли значения регистров и т.д.

2. Можно ли на это как-то повлиять?


Вложения:
barb.zip [22.26 КБ]
109 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Эмулятор Целикова (Башкирия/EMU)
СообщениеДобавлено: 27 сен 2016, 13:12 
Не в сети

Зарегистрирован: 29 мар 2012, 21:35
Сообщения: 115
Цитата:
1. Что происходит по адресам

tproc[E2ED-E342]=sp
biproc[E343-E341]=sp
Как именно читает/пишет байт "Башкирия", меняет ли значения регистров и т.д.

2. Можно ли на это как-то повлиять?
1. Когда процессор доходит до адреса номер 1, то вместо выполнения команды он отрабатывает некоторые действия, соответствующие именам tproc,iproc,oproc,biproc,boproc, а затем переходит по адресу номер 2. При этом могут быть использованы или изменены регистры, для каждого случая свои, к тому-же это зависит ещё и от параметра, стоящего после знака "=".

tproc - просто пропустить часть кода
iproc - область отвечает за загрузку блока с магнитофона, обычно используются регистры BC,DE,HL для определения "куда" и "сколько"
oproc - область отвечает за запись блока на магнитофон, те же регистры
biproc - область отвечает за ввод байта с магнитофона, обычно изменяется регистр А на считанный из файла байт
boproc - область отвечает за запись байта на магнитофон, обычно используются регистры А или С

Параметр после знака "=" определяет, какие регистры использовать, т.е. в каком стиле реализована эта п/п:
rk - Radio-86RK
sp - Specialist
bk - BK0010
...

Если происходит переход внутрь процедуры, то перехвата соответственно не будет, и это может повлиять на результат.
Иногда приходится второй адрес устанавливать на недалеко стоящий RET, или несколько нужных команд (например чтобы сбрасывался флаг С, говорящий об ошибке ввода).

2. Повлиять можно только изменив конфиг, но это будет только у тебя. А у других работать не будет. Если есть основания для изменения конфига в моём архиве, который скачивает большинство, то я могу подумать на этот счёт.

Будет время, посмотрю этот Barbarian...


Вернуться к началу
 Заголовок сообщения: Re: Эмулятор Целикова (Башкирия/EMU)
СообщениеДобавлено: 27 сен 2016, 15:49 
Не в сети

Зарегистрирован: 29 мар 2012, 21:35
Сообщения: 115
Короче :) Посмотрел я этот загрузчик Barbarian-а, выяснилось, что он недочитывает заставку. Если читать из wav-ки, то проблем не будет, т.к. после заставки ищется раккорд, а затем читается сама игра. А вот с перехватом получается фигня, поиск раккорда пропускается, далее читается байт, он должен быть D0, а т.к. там не он, то происходит переход опять на поиск раккорда, но что-то там в регистрах уже не то, и поиск завершается с ошибкой. О чём бейсик честно пишет, но мы не видим. Можно потом вслепую дать команду CLS и она отработает.

Вобщем самое простое решение, обрезать заставку на 31 байт (можно ещё и длину в заголовке поправить, но она всё равно не используется). В линухе я сделал это командой: dd if=SCREEN.LVT of=BARBAR.LV0 bs=13866 count=1
Теперь после загрузки заставки эмуль снова спрашивает, чего грузить, и если выбрать игру, то она загрузится. Жмём любую клавишу (после того как внизу появятся какие-то цифры) - наслаждаемся.

Я только не понял, я вроде в эмуляторе делал автоматический выбор следующего файла .LV?, но оно не срабатывает. Загадка.

P.S. залез в исходники - не делал я для Львова такую фичу, но вроде бы пожелание такое было. Это в БК-шке имя файла берётся прямо из памяти, поэтому догрузка по имени работает.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 18 сообщений ]  На страницу Пред. 1 2

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


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

Найти:
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB