
Сообщение от
hobot
по возможности добавочку .rd-шки в плагин.
Ранее я уже объяснил, почему поддержки образов DW в плагине для TC не будет никогда.
Можно, наверное, как-то пропатчить плагин, чтобы он вместо заголовка в 256 байтов начал использовать заголовок в 512 байтов.
Надо найти в плагине следующий код и в двух местах заменить 256 на 512 ( для этого там, где выделено красным - запатчить 02 вместо 01 ):
Код:
8d b0 00 0d 00 00 c7 81 c4 44 00 00 00 01 00 00 c7 41 0c 00 0c 00 00 89 51 10
Код:
83 49 28 c1 e0 09 05 00 01 00 00 89 81 e0 44 00 00 33 c0 88 81 e4 44 00 00 88
Код:
?Is_RT_11_RTD@@YA_NPAUdsk_descriptor@@@Z PROC ; Is_RT_11_RTD, COMDAT
; 3859 : pDD->nHeaderSize = 256;
00000 8b 4c 24 04 mov ecx, DWORD PTR _pDD$[esp-4]
; 3860 : pDD->uFirstDirSegOffset = 6*512;
; 3861 : pDD->pHomeBlock = (home_block_RT11*)((DWORD)pDD->pDirBuf + 512 + pDD->nHeaderSize);
00004 8b 81 fc 44 00
00 mov eax, DWORD PTR [ecx+17660]
0000a 56 push esi
0000b 8d 90 00 03 00
00 lea edx, DWORD PTR [eax+768]
; 3862 : pDD->pFirstDirSeg = (dir_seg_RT11_header*)((DWORD)pDD->pDirBuf + pDD->uFirstDirSegOffset + pDD->nHeaderSize);
00011 8d b0 00 0d 00
00 lea esi, DWORD PTR [eax+3328]
00017 c7 81 c4 44 00
00 00 01 00 00 mov DWORD PTR [ecx+17604], 256 ; 00000100H
00021 c7 41 0c 00 0c
00 00 mov DWORD PTR [ecx+12], 3072 ; 00000c00H
00028 89 51 10 mov DWORD PTR [ecx+16], edx
0002b 89 71 14 mov DWORD PTR [ecx+20], esi
; 3863 :
; 3864 : if( pDD->pFirstDirSeg->addons & 1 || pDD->pFirstDirSeg->addons > 1000 ) { return false; }
0002e 0f b7 46 06 movzx eax, WORD PTR [esi+6]
00032 a8 01 test al, 1
00034 0f 85 94 00 00
00 jne $LN1@Is_RT_11_R
0003a 66 3d e8 03 cmp ax, 1000 ; 000003e8H
0003e 0f 87 8a 00 00
00 ja $LN1@Is_RT_11_R
; 3865 :
; 3866 : pDD->nExtraBytes = pDD->pFirstDirSeg->addons;
00044 0f b7 c0 movzx eax, ax
00047 89 81 c8 44 00
00 mov DWORD PTR [ecx+17608], eax
0004d 57 push edi
; 3867 : pDD->nRecBytes = 14 + pDD->nExtraBytes;
0004e 8d 78 0e lea edi, DWORD PTR [eax+14]
; 3868 : pDD->nMaxDirSegRecs = (1024-6)/pDD->nRecBytes;
00051 b8 fa 03 00 00 mov eax, 1018 ; 000003faH
00056 99 cdq
00057 f7 ff idiv edi
00059 89 b9 cc 44 00
00 mov DWORD PTR [ecx+17612], edi
; 3869 : pDD->nMaxRecs = pDD->nMaxDirSegRecs * 31;
; 3870 : pDD->pDirSeg = pDD->pFirstDirSeg;
0005f 89 71 18 mov DWORD PTR [ecx+24], esi
; 3871 : pDD->uDSK_Offset = pDD->pDirSeg->first_block*512 + pDD->nHeaderSize;
; 3872 : pDD->uConvRecNum = -1;
; 3873 : pDD->iRecNum = -1;
; 3874 : pDD->bFragmented = false;
; 3875 : pDD->bUnusedCombined = false;
; 3876 : pDD->uFreeSpace = 0;
; 3877 : pDD->pDataBuf = 0;
; 3878 : pDD->pEncodedDataBuf = 0;
; 3879 : pDD->bInverted_HDD_Image = false;
; 3880 : pDD->nHDD_Part = 0;
; 3881 : pDD->nHDD_PartMax = -1;
; 3882 :
; 3883 : pDD->ulDirZoneSize = pDD->uDSK_Offset;
; 3884 :
; 3885 : return Is_RT_11_DSK(pDD);
00062 51 push ecx
00063 89 81 d0 44 00
00 mov DWORD PTR [ecx+17616], eax
00069 6b c0 1f imul eax, 31 ; 0000001fH
0006c 89 81 d4 44 00
00 mov DWORD PTR [ecx+17620], eax
00072 0f b7 46 08 movzx eax, WORD PTR [esi+8]
00076 83 89 dc 44 00
00 ff or DWORD PTR [ecx+17628], -1
0007d 83 89 d8 44 00
00 ff or DWORD PTR [ecx+17624], -1
00084 83 49 28 ff or DWORD PTR [ecx+40], -1
00088 c1 e0 09 shl eax, 9
0008b 05 00 01 00 00 add eax, 256 ; 00000100H
00090 89 81 e0 44 00
00 mov DWORD PTR [ecx+17632], eax
00096 33 c0 xor eax, eax
00098 88 81 e4 44 00
00 mov BYTE PTR [ecx+17636], al
0009e 88 81 12 45 00
00 mov BYTE PTR [ecx+17682], al
000a4 89 81 e8 44 00
00 mov DWORD PTR [ecx+17640], eax
000aa 89 81 08 45 00
00 mov DWORD PTR [ecx+17672], eax
000b0 89 81 0c 45 00
00 mov DWORD PTR [ecx+17676], eax
000b6 88 41 23 mov BYTE PTR [ecx+35], al
000b9 89 41 24 mov DWORD PTR [ecx+36], eax
000bc 8b 81 e0 44 00
00 mov eax, DWORD PTR [ecx+17632]
000c2 89 41 08 mov DWORD PTR [ecx+8], eax
000c5 e8 00 00 00 00 call ?Is_RT_11_DSK@@YA_NPAUdsk_descriptor@@@Z ; Is_RT_11_DSK
000ca 59 pop ecx
000cb 5f pop edi
000cc 5e pop esi
; 3886 : }
000cd c3 ret 0
...
Чтобы без проблем открывать диски с расширением .RD - надо просто добавить это расширение в список обслуживаемых плагином:
Конфигурация -> Настройка -> Модули (Plugins) -> Модули архиваторов .WCX -> Настройка -> ( ввести rd в маленьком окошке, выбрать плагин в списке и нажать OK ).