PC-01 Lviv

It is currently 19 Mar 2024, 09:49

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 18 posts ]  Go to page Previous 1 2
Author Message
PostPosted: 27 Sep 2016, 11:32 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
Quote:
Ну вот он я :) Спрашивай, чего хотел. Только не расстраивайся, если отвечу через полгода :twisted:
Ура! Лучше через полгода, чем никогда.

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

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

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


Attachments:
barb.zip [22.26 KiB]
Downloaded 876 times
Top
   
PostPosted: 27 Sep 2016, 13:12 
Offline

Joined: 29 Mar 2012, 21:35
Posts: 115
Quote:
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...


Top
   
PostPosted: 27 Sep 2016, 15:49 
Offline

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

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

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

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 18 posts ]  Go to page Previous 1 2

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
cron
Powered by phpBB® Forum Software © phpBB Limited