Нужен некий непереключаемый сегмент. В Орионе он есть - аппаратно не переключаются верхние 4к, в которых 3к ПЗУ+порты (ненужные в-общем то) и только 1 к испольуется для обеспечения связи страниц. На другой железке с независимыми страницами (например эхотаге), ничто не мешает диспетчером 16к проинициализировать 64к-страницы - записать в верхний 1к одинаковый для всех страниц код обеспечения связи страниц, а уже затем при помощи процедур, размещенных в этих 1К, переключать страницы по 64к имея оставшиеся 63к под процесс.
Вот про это то я и не уверен. Не припоминаю никаких опций компилятора или процедур в библиотеках, регулирующих связывание этапа выполнения. Компилятор тупо собирает большой выполняемый файл и все. На CP/M подругому в те времена еще не было придумано нигде. Были слабые попытки реализовать оверлеи, но пользоваться оверлеями было очень неудобно, т.к. там совсем другой подход.
А про заглушку я не понял.Обычную библиотеку, состоящую из набора jmp (или "dispatcher16k_on(); call(_func); dispatcher16k_off(); ret" ) собрать не проблема для любого компилятора. Имена функций в ней будут какие пропишешь, хотя бы и аналоги libc. Или имелось в виду что-то другое?





Обычную библиотеку, состоящую из набора jmp (или "dispatcher16k_on(); call(_func); dispatcher16k_off(); ret" ) собрать не проблема для любого компилятора. Имена функций в ней будут какие пропишешь, хотя бы и аналоги libc. Или имелось в виду что-то другое?
Ответить с цитированием