Переработал набор патчей для TSX-Plus V6.01/V6.50 и собрал их в одну кучу.
Командный файл, запускаемый через IND, сам спросит все что нужно, сам определит версию и сам пропатчит.
Патчи работают на дистрибутивах для PDP-11 (вариант с поддержкой PRO/для PRO не подойдет).
При применении всех патчей проверяется контрольная сумма, так что если что не так - должно сразу быть видно.

Если в TSX-Plus V6.01 TSGEN.MAC поделен на файлы TSG1.MAC, TSGEN.MAC и TSG2.MAC (попадался такой), нужно сначала собрать файлы в один:
Код:
.COP TSG1.MAC+TSGEN.MAC+TSG2.MAC XXX.MAC

.REN XXX.MAC TSGEN
Патчи в наборе:
  • Поддержка дат после 1999 года в системе (для TSX-Plus V6.01)
  • Поддержка дат после 1999 года в FILTIM.SAV
  • Поддержка дат после 1999 года в SYSMON.SAV
  • Подержка загрузки не-RT систем командой BOOT/$STOP
  • Запрет проверки таймера для запуска на быстрых эмуляторах


V6.50:
Код:
.IND LD:TSXPAT
;
; TSX-Plus V6.01/V6.50 patcher V02.00.
; Copyright (c) 2023 by Oleg Safiullin <form@pdp-11.online>
;
* What is the name of the patch kit device [S R:1-4 D:"LD0"]:
* What is the name of the TSX-Plus kit device [S R:1-4 D:"DU2"]:
;
; DU2: Found TSX-Plus V6.50
;
; Press <ESC><RET> for more information.
;
* Fix display of dates after 1999 in FILTIM.SAV? [Y/N D:Y]:
* Fix display of dates after 1999 in SYSMON.SAV? [Y/N D:Y]:
* Allow booting of foreign systems? [Y/N D:Y]:
* Disable checking of line clock? [Y/N D:Y]:
.$@PATCH

.COPY/PREDELETE FILTIM.SAV FILTIM.OLD

.UNPROTECT FILTIM.SAV

.$@LD0:FILTIM.SIP

.R SIPP
*FILTIM.SAV/A/C
Base?    0
Offset?  50

  Base       Offset      Old  New?
   000000     000050  002440  2522
   000000     000052  000000  ^Z
Offset?  2162

  Base       Offset      Old  New?
   000000     002162  005305  4767
   000000     002164  010546  254
   000000     002166  012702  ^Z
Offset?  2250

  Base       Offset      Old  New?
   000000     002250  062705  4767
   000000     002252  000110  204
   000000     002254  004737  ^Z
Offset?  2442

  Base       Offset      Old  New?
   000000     002442  000000  42705
   000000     002444  000000  177760
   000000     002446  000000  5305
   000000     002450  000000  11646
   000000     002452  000000  10566
   000000     002454  000000  2
   000000     002456  000000  207
   000000     002460  000000  16601
   000000     002462  000000  2
   000000     002464  000000  6201
   000000     002466  000000  301
   000000     002470  000000  42701
   000000     002472  000000  177637
   000000     002474  000000  60501
   000000     002476  000000  62701
   000000     002500  000000  3664
   000000     002502  000000  5000
   000000     002504  000000  71027
   000000     002506  000000  144
   000000     002510  000000  10005
   000000     002512  000000  10146
   000000     002514  000000  4737
   000000     002516  000000  2022
   000000     002520  000000  12605
   000000     002522  000000  207
   000000     002524  000000  ^Y

Checksum? 30306
*^C

.COPY/PREDELETE SYMAIN.OBJ SYMAIN.OLD

.MACRO/OBJECT:PATCH LD0:SM65

.R PAT
*SYMAIN.NEW=SYMAIN/C:170502,PATCH
*^C

.UNPROTECT SYMAIN.OBJ

.RENAME SYMAIN.NEW SYMAIN.OBJ

.DELETE/NOQUERY PATCH.OBJ

.COPY/PREDELETE TSX2.OBJ TSX2.OLD

.MACRO/OBJECT:PATCH LD0:TK365

.R PAT
*TSX2.NEW=TSX2/C:54550,PATCH
*^C

.UNPROTECT TSX2.OBJ

.RENAME TSX2.NEW TSX2.OBJ

.DELETE/NOQUERY PATCH.OBJ

.COPY/PREDELETE TSX1.OBJ TSX1.OLD

.MACRO/OBJECT:PATCH LD0:TI65

.LIBRARY/EXTRACT TSX1 TSINIT
Global? INITGO
Global? 

.R PAT
*TSINIT.NEW=TSINIT/C:36053,PATCH
*^C

.UNPROTECT TSX1.OBJ

.LIBRARY TSX1 TSINIT/REPLACE

.DELETE/NOQUERY (PATCH,TSINIT).OBJ,TSINIT.NEW
.DELETE/NOQUERY PATCH.COM
@ <EOF>

.
V6.01:
Код:
.IND LD:TSXPAT
;
; TSX-Plus V6.01/V6.50 patcher V02.00.
; Copyright (c) 2023 by Oleg Safiullin <form@pdp-11.online>
;
* What is the name of the patch kit device [S R:1-4 D:"LD0"]:
* What is the name of the TSX-Plus kit device [S R:1-4 D:"DU2"]:
;
; DU2: Found TSX-Plus V6.01
;
; Press <ESC><RET> for more information.
;
* Add support for dates after 1999? [Y/N D:Y]:
* Fix display of dates after 1999 in FILTIM.SAV? [Y/N D:Y]:
* Fix display of dates after 1999 in SYSMON.SAV? [Y/N D:Y]:
* Allow booting of foreign systems? [Y/N D:Y]:
* Disable checking of line clock? [Y/N D:Y]:
.$@PATCH

.COPY/PREDELETE TSEM2.OBJ TSEM2.OLD

.MACRO/OBJECT:PATCH LD0:TE261

.R PAT
*TSEM2.NEW=TSEM2/C:176327,PATCH
*^C

.UNPROTECT TSEM2.OBJ

.RENAME TSEM2.NEW TSEM2.OBJ

.DELETE/NOQUERY PATCH.OBJ

.COPY/PREDELETE TSKM2A.OBJ TSKM2A.OLD

.MACRO/OBJECT:PATCH LD0:TK2A61

.R PAT
*TSKM2A.NEW=TSKM2A/C:152100,PATCH
*^C

.UNPROTECT TSKM2A.OBJ

.RENAME TSKM2A.NEW TSKM2A.OBJ

.DELETE/NOQUERY PATCH.OBJ

.COPY/PREDELETE TSX2.OBJ TSX2.OLD

.MACRO/OBJECT:PATCH PATPFX+LD0:TK361

.R PAT
*TSX2.NEW=TSX2/C:173377,PATCH
*^C

.UNPROTECT TSX2.OBJ

.RENAME TSX2.NEW TSX2.OBJ

.DELETE/NOQUERY PATCH.OBJ

.COPY/PREDELETE FILTIM.SAV FILTIM.OLD

.UNPROTECT FILTIM.SAV

.$@LD0:FILTIM.SIP

.R SIPP
*FILTIM.SAV/A/C
Base?    0
Offset?  50

  Base       Offset      Old  New?
   000000     000050  002440  2522
   000000     000052  000000  ^Z
Offset?  2162

  Base       Offset      Old  New?
   000000     002162  005305  4767
   000000     002164  010546  254
   000000     002166  012702  ^Z
Offset?  2250

  Base       Offset      Old  New?
   000000     002250  062705  4767
   000000     002252  000110  204
   000000     002254  004737  ^Z
Offset?  2442

  Base       Offset      Old  New?
   000000     002442  000000  42705
   000000     002444  000000  177760
   000000     002446  000000  5305
   000000     002450  000000  11646
   000000     002452  000000  10566
   000000     002454  000000  2
   000000     002456  000000  207
   000000     002460  000000  16601
   000000     002462  000000  2
   000000     002464  000000  6201
   000000     002466  000000  301
   000000     002470  000000  42701
   000000     002472  000000  177637
   000000     002474  000000  60501
   000000     002476  000000  62701
   000000     002500  000000  3664
   000000     002502  000000  5000
   000000     002504  000000  71027
   000000     002506  000000  144
   000000     002510  000000  10005
   000000     002512  000000  10146
   000000     002514  000000  4737
   000000     002516  000000  2022
   000000     002520  000000  12605
   000000     002522  000000  207
   000000     002524  000000  ^Y

Checksum? 30306
*^C

.COPY/PREDELETE SYSMON.OBJ SYSMON.OLD

.MACRO/OBJECT:PATCH LD0:SM61

.R PAT
*SYSMON.NEW=SYSMON/C:103243,PATCH
*^C

.UNPROTECT SYSMON.OBJ

.RENAME SYSMON.NEW SYSMON.OBJ

.DELETE/NOQUERY PATCH.OBJ

.COPY/PREDELETE TSX1.OBJ TSX1.OLD

.MACRO/OBJECT:PATCH LD0:TI61

.LIBRARY/EXTRACT TSX1 TSINIT
Global? INITGO
Global? 

.R PAT
*TSINIT.NEW=TSINIT/C:55617,PATCH
*^C

.UNPROTECT TSX1.OBJ

.LIBRARY TSX1 TSINIT/REPLACE

.DELETE/NOQUERY (PATCH,TSINIT).OBJ,TSINIT.NEW
.DELETE/NOQUERY PATCH.COM
@ <EOF>

.