.TSK с перекрытиями. Первый подход к снаряду
Ну, если говорить строго, до перекрытий в данном случая я ещё не добрался (но программа с перекрытиями), только начал раскручивать информацию о них (правое верхнее окно, там же пример автогенерации комментариев), но началась отработка показа листингов для таких программ. Пока на так называемой multi-user task.

Этот вариант поддерживается (ЕМНИП) только в M-Plus и основная мысль в их реализации - как можно сэкономить память. Секции с атрибутами RO и RW собираются в отдельные сегменты и сегмент RO как бы образует встроенную в .TSK dll библиотеку (в терминах RSX - Shared Library). Когда такая программа запускается в первый раз, операционка создаёт область памяти, в которую загружает RO сегмент, далее традиционным способом организуется задача (в Windows аналог - процесс) и часть её адресного пространства отображается на RO область (с защитой от записи). При втором и последующих запусках - область уже создана, так что нужно только создать задачу и отобразить на RO область - что позволяет ускорить запуск и сэкономить память. При этом, если завершены все экземпляры задач программы - RO область может остаться висет в памяти - если количество свободной памяти достаточно для запуска других программ (ускорение запуска нашей muliuser программы). Эта область может быть удалена из памяти - если памяти не хватает, а запущенных экземпляров multiuser программы нет, или "выгружена" - если они есть. Если планировщик выбирает multiuser задачу для выполнения, а любая её часть/части (включая RO область) выгружены - предварительно выгруженные части подгружаются. В данном случае "выгрузка" для RO части - на самом деле фикция - поскольку копия RO - при "выгрузке" она просто удаляется из памяти, а "загружена" она будет из файла программы.

Пример содержимого памяти с запущенной multiuser задачей:
Код:
RSX-11M-PLUS V4.6  BL87   (KPXX01)  256K   UP 000:00:00 2022-08-24  11:05:02
TASK=  *IDLE*                FREE=   SY0:165840.   P0:DMO
                                     VF1:1071.     P1:DMO            PARS
POOL=4592.:4746.:15.         SECPOOL=368.:512.:71%
     4592.:4746.:15.                 368.:512.:71%                  SECPOL:P
                                                                    SYSPAR:D
IN:                    D     M  TR  T  PD MV DP  .    F    F F      DRVPAR:D
10                     I     C  KC  T  UU UF WM  .    C    1 1      GEN   :D
63K                    R     R  TT  :  C: :: :T  .    S    1 1
OUT:                   1     .  N.     O      .  A    R    A A
0                      1     .   .     M      .  T    E    C C
0K                     M     .   .            .  .    S    P P
                  !========!===>]=]===)!)()=))>-----+---! <>---+
0*******16******32******48******64******80******96******112*****
E----P----P-------D---------------D----------D------------------
----------------------------------------------------------------
128*****144*****160*****176*****192*****208*****224*****240*****
-->--+   !--->-->--->-><---->--->
 P  .    A Q   S  H  L    B   R                                     ERRSEQ
 I  .    C M   Y  R  P    A   M                                     0.
 P  .    D G   S  C  0    P   D
 T  P    2 .   L  .       0   T
 0  I    0 .   O  .           0
    P      .   G  .
...AT., ...PIP - RO сегменты
PIPT0 - RW сегмент
Обработчки командых файлов ICP (задача ...AT.) в текущий момент не запущен - в памяти только RO сегмент, а ...PIP был запущен, так что виден RO сегмент (...PIP) и RW сегмент запущенной задачи (PIPT0)

- - - Добавлено - - -

Найдена (и поправлена) ошибка (на скриншоте DisAsm-а видна неправильно сформировавшаяся строка) и поправлен функционал "разрезания" строк. Поскольку была приличная переделка работы с памятью "загруженной" программы - большой этап тестирования, прежде чем двинусь с концепта дальше.

- - - Добавлено - - -

Подкорректированный вариант