Будет небесполезна помощь знатоков esxdos. У кого-нибудь получилось из dot command вызывать $0562, процедуру загрузки с ленты из штатного ПЗУ? Это, вообще, теоретически возможно? И, если получилось, поделитесь примером кода.
Детали: есть существующий код (C, z88dk) который хочется иметь в виде dot command для esxdos. Сделали вызов как положено через RST $18 + DW $0562, но всё падает при попытке чтения с ленты. Как отлаживать на железе я пока не в курсе, а вот при трассировке в FUSE получается так, что сразу после корректного перехода в 48k ПЗУ DivMMC подставляется обратно и, по сути, начинается выполнение случайного кода. Последствия предсказуемые, всё падает. Несколько смущает то, что в $3DFD вместо ожидаемого $C9 (RET) оказывается какой-то мусор и оттуда случайный код и начинается. Но причина это или следствие, моих знаний недостаточно пока для понимания.
Попробовал «заходить» в ПЗУ 48 не по адресу $0562, который перехватывается esxdos’ом, а позже (скопировав код от $0562 до точки входа себе в проект), но там почему-то быстро происходит такой-же переход обратно в DivMMC ПЗУ. Поздно было, не отследил, откуда выбрасывает обратно в DivMMC, следующий заход уже на выходных.
И, нет, TAP файл не подключён, все эксперименты для чистоты делаются на свежезагруженном компьютере/эмуляторе. Интересно, что если использовать RST $18, то падает сразу, а если наплевать на esxdos и дёргать $0562 напрямую (который, получается, где-то в ПЗУ DivMMC), то там почему-то попытка что-то загрузить есть, но после пилотного тона падает. Судя по коду в ПЗУ DivMMC, оно и без RST $18 должно выкидывать на $0564 в 48k ПЗУ, если там TAP файл не подключён. Или я ошибаюсь?
P.S. кто по-англицки читает, тот мог видеть такой же вопрос на SC. Это вопрос примерно про один и тот же кусок кода, просто он спрашивает в англоязычном месте, а я тут.


Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 


