так может твоя процедура находится там где исполняемый код самой isdos ?
Вид для печати
Я так при помощи UNREAL разбирался с расксоркой ПЗУ для ATM-1.
В твоем случае, нужно знать точную ячейку ОЗУ, где будет располагаться нужный тебе CALL.
После этого по ESC выходишь в отладчик эмуля. В левом нижнем окне (где показан дизасм текущих ячеек памяти) в поле адреса вводишь нужную нам ячейку памяти и по ENTER переходим тула. Затем пробелом ставим точку останова (вторичным пробелом ее снимаем). После чего запускаем в эмуле iS-DOS. Теперь как только исполняемый код дойдет до этой ячейки, мы автоматом вывалимся в дебаггер (если по какой-то причине исполнение команды в этой ячейке произошло раньше, до установки твоего резидента, например, в процессе работы промежуточных программ при установке системы), то по ESC мы вернемся в эмуль и продолжим процесс загрузки того, что нам надо. А когда вывалимся в дебаггер снова уже на интересующей нас команде, то тогда в дебаггере можно будет посмотреть состояние стека, регистров, карты памяти и проч., чтобы оценить ситуацию, а заодно и по F7, F8 и F11 (см. встроенный хелп эмуля по F1) покомандно протрассировать дальше и увидеть, куда мы попадаем...
Как-то так...
---------- Post added at 03:21 ---------- Previous post was at 03:18 ----------
Кстати, правильно юра пишет. Один из вопросов, который возникает - а где в этот момент находится стек? (как раз дебаггер эмуля в помощь) А если, к примеру, на время работы твоей процедуры, переносить стек внутрь нее, а на выходе восстанавливать прежнее значение? Должно помочь. Впрочим, это если и поможет, то вылечит лишь следствие, а причину действительно интересно было бы узнать...
Абсолютно точно не подскажу, сейчас под рукой нет isdos. Всё должно работать, но! Все абсолютные переходы (CALL и JP) нужно в процедуре инициализации резидента перестраивать на новые адреса. Ну, и на сколько помню, линковать надо тоже как резидент.
Кажется нашёлся ответ.
Перед процедурой, добавляемой в обработчик прерывания нужно резервировать два байта.
Ну да, для ссылок цепочки.
Ребята! Хочу приобрести дискетки is-dos. Стоит ли написать Ильясову? Или это дохлый номер? И по-поводу создания "is-dos архива всея руси". Тема заглохла?
Ильясову с вероятностью в 90% дохлый номер. Хотя попытаться стоит. В любом случае, он уже заявлял официально, что коммерческое распространение завершено.
Тема всея архива не заглохла - но все ожидаем он него же остатки дискет. Можно и без него начать, но хотелось бы ориентироваться на официальный каталог искасофта для систематизации. Это пока сдерживает.
ЗЫ: А какие дискеты интересуют? А то у меня много чего исдосного есть. Могу перегнать в образы и прислать...
http://zx-pk.ru/showpost.php?p=399263&postcount=24
Дискеты были получены от Леонтьева летом 2000 года.
Ещё немного потревожу общественность.
Не вспомнит ли кто, какие версии is-dos выходили (всмысле нумерация) и как они хронологически были расположены (хотя бы примерно). Спасибо!