
Я озадачился этой зодачей довольно давно, и со временем стал склоняться
к мысли, что совсем строго её не решить, но вдруг у кого-то есть иное мнение...
Собственно, сам вопрос возник, когда я читал статью в одном из номеров
журала "Радиолюбитель" - "Пишем перемещаемые программы".
В двух словах речь там шла о том, что программу для 580ВМ80 можно сделать
перемещаемой, если ввести в её структуру таблицу, по сути, "релокейшинов",
фактически как в ЕХЕ файлах ДОС, и при старте программы корректировать
адреса переходов.
Вот в связи с этим и сформировался вопрос:
если программа загружена, получает управление и при этом
- операционная система неизвестна;
- карта распределения памяти неизвестна;
- наличие стандартных функций или вызовов также неизвестно
существует ли возможность определить текущий адрес точки в памяти,
в которой программой получено управление?
На мой взгляд, для Z80 эту задачу решить можно благодаря относительным переходам, а для 580ВМ80 - я затруднился.