
Сообщение от
AFZ
Там - это где?
Выше ссылки приводились - с самого начала обсуждения TSX+.
Чтобы не искать выложил здесь. Описание отличий с PRO вариантом (вроде одно было) надо выше по теме смотреть - я не запоминал. А так все просто: монтируем TSX61P.DSK, копируем оттуда *.PAT и *.SIP, а далее:
Код:
.UNP FILTIM.SAV
.$@FILTIM.SIP
.REN (SYSMON,TSEM2,TSKM2A,TSX2).OBJ .OLD
.MAC/OB:PATCH SYSMON.PAT
.PAT SYSMON.OLD,PATCH SYSMON
.MAC/OB:PATCH TSEM2.PAT
.PAT TSEM2.OLD,PATCH TSEM2
.MAC/OB:PATCH TSKM2A.PAT
.PAT TSKM2A.OLD,PATCH TSKM2A
.MAC/OB:PATCH TSX2.PAT
.PAT TSX2.OLD,PATCH TSX2
.
И пересобираем все.
---------- Post added at 17:14 ---------- Previous post was at 16:57 ----------

Сообщение от
AFZ
Мне это будет полезно.
Вобщем-то все просто. Патч для PAT - это обычный MAC файл, обязанный включать .TITLE с названием модуля, может включать .IDENT (он будет подставлен в результат) и .PSECTы (код из существующих секций накладывается поверх аналогичных секций исходного OBJ файла. Если код в патче выходит за границы исходного PSECT, секция расширяется.
Есть к примеру исходный код:
Код:
.TITLE TEST
.IDENT /V01.00/
.PSECT CODE
START: NOP
MOV #123456,R1
Нам нужно вместо команды MOV сделать ADD. Пишем PAT файл:
Код:
.TITLE TEST
.IDENT /V01.01/
.PSECT CODE
.=.+2 ;ПРОПУСКАЕМ NOP
ADD #123456,R1 ;ПИШЕМ НУЖНУЮ КОМАНДУ
Это самый простой вариант. Если вставляемый код шире чем исходный, просто выносим его в подпрограмму:
Код:
.PSECT CODE
.=.+2
CALL PATCH ;ВЫЗЫВАЕМ ПОДПРОГРАММУ
.PSECT PATCH ;НОВАЯ СЕКЦИЯ
PATCH:
Вот вобщем-то и все. Далее просто компилим наш файл патча и накладываем командой PAT NEWOBJ=OLDOBJ,PATCH или PAT OLDOBJ,PATCH NEWOBJ. При этом как писал выше, комбинированный OBJ файл тоже можно патчить таким способом (название модуля выбирается в директиве .TITLE патча).