ПК-01 ЛЬВОВ

форум о ПК-01,02 "Львов"
Текущее время: 16 дек 2017, 15:52

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC + 2 часа [ Летнее время ]




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

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

Ура! Лучше через полгода, чем никогда.

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

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

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


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

Зарегистрирован: 29 мар 2012, 21:35
Сообщений: 115
Zelya писал(а):
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 + 2 часа [ Летнее время ]


Кто сейчас на форуме

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


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

Найти:
cron
Free counters!
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB