Хочу еще раз коснуться вопроса создания релоцируемых программ.Сообщение от fk0
Как известно ассемблеры M80, RMAC (CP/M-80) и кросс ассемблер
MA80 в результате копиляции исходника создают файл с расшире-
нием REL - перемещаемый обьектный код, формат которого разра-
ботан фирмой Microsoft.
Для создания исполняемого обьектного кода производится сборка
(линковка) отдельных модулей программы с помощью линковщика
L80 (CP/M-80) или кросс-линковщика MLINK.
Эти линковщики расчитаны на создание исполняемых модулей для
запуска программ под управлением CP/M-80, тоесть по умолчанию
расчитанных на их загрузку и запуск с адреса 100h (начало TPA).
Начиная с 1979 года фирма Digital Reserch начала поставки
операционной системы MP/M - Multi-Programming Monitor Control
Program.
В этой системе, в отличии от CP/M-80, предполагалась возможность
запуска программ с произвольного адреса и поэтому наряду с
файлами COM, которые загружались и запускались с адреса 100h,
были добавлены файлы PRL - Page Relocatable Programs.
В структуре этих файлов присутствует заголовок длиной в два
логических сектора (256 байт), исполняемый код и третий блок,
который содержит битовую таблицу признаков смещения - таблица релокации.
Для создания файла с такой структурой, фирма Digital Research
разработала линковщик LINK80. Эта программа из REL-файлов
создает PRL-файл, который можно загрузить в произвольный
адрес памяти Z80 (с дискретом в 100h), настроить все адреса
в соответствии с таблицей смещений и запустить на исполнение.
В MP/M использовались такие PRL файлы нескольких модификаций:
1) PRL - Page Relocatable Program.
2) SPR - System PRL.
3) RSP - Resident System Process.
4) RSX - Resident System Extensions.
LINK80 также позволяет создавать OVL (оверлейные) файлы,
которые имеют PRL заголовок, но являются не перемещаемыми.
Этот линковщик очень часто присутствовал на системных дисках
CP/M-80, но поскольку синтаксис его командной строки сильно
отличался от L80, то он практически не использовался.
Кому интересно, описание этого линковщика есть на:
http://www.retroarchive.org/cpm/archive/unofficial/