Переработал набор патчей для 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 <[email protected]>
;
* 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 <[email protected]>
;
* 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>
.