The DLIST has a 10-byte header. Your donor has 0x1762 records whereas your patient has 0x9B93. Each record has a length of 0xA bytes.
Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
donor
00000000 44 4C 49 53 54 20 20 20 62 17 DLIST b.
number of records -----
00000000 44 4C 49 53 54 20 20 20 93 9B DLIST “›
patient
The data area is the range from 0x0A to 0x1FDFF. There is a copy of the DLIST at 0x1FE00. Empty records are padded with 0x00. There is no third copy as there is in the SLIST module.
Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 00 00 9A 00 4F 12
00000010 1F 41 10 90 00 00 BE 00 27 53 1F 41 10 90 00 00
00000020 C0 00 F3 50 1F 41 10 90 00 00 EF 00 27 12 1F 41
........
0000E9C0 02 00 D3 0F F8 00 F0 F0 00 00 02 00 D3 0F F9 00
0000E9D0 F0 F0 00 00 02 00 D3 0F FA 00 F0 F0 00 00 00 00
0000E9E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000E9F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
........
0001FDE0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0001FDF0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0001FE00 44 4C 49 53 54 20 20 20 62 17 00 00 9A 00 4F 12 DLIST b...š.O.
0001FE10 1F 41 10 90 00 00 BE 00 27 53 1F 41 10 90 00 00
If we cut off the header, the data look like this:
Code:
Offset(h) 00 02 04 06 08
Head Cyl Sec ? ?
---- ---- ---- ---- ----
00000000 0000 9A00 4F12 1F41 1090
0000000A 0000 BE00 2753 1F41 1090
00000014 0000 C000 F350 1F41 1090
0000001E 0000 EF00 2712 1F41 1090
........
00008002 0000 C1F7 6214 1F41 1090
0000800C 0000 2CF8 7A04 1F41 1090
00008016 0100 9202 F830 1F41 1090
00008020 0100 AE05 0753 F0F0 0000
........
0000E9C0 0200 D30F F900 F0F0 0000
0000E9CA 0200 D30F FA00 F0F0 0000
0000E9D4 0000 0000 0000 0000 0000
Since the DLIST records occupy the range from 0xA to 0x1FDFF, then it can accommodate a maximum of 0x32FF records.
(0x1fe00 - 0xa) / 0xa = 0x32FF
The header of your patient's DLIST is reporting 0x9B93 records, ie a size of 0x613C8.
(0xa x 0x9b93) + 0xa = 0x613C8
Therefore the DLIST has overflowed its allotted space, ie it is corrupt.
Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
000613B0 64 2B 37 26 F0 F0 00 00 00 00 64 2B 38 26 F0 F0
000613C0 00 00 00 00 65 2B 3F 25 F0 F0 00 00 00 00 65 2B
000613D0 40 25 1F 41 10 90 00 00 65 2B 41 25 F0 F0 00 00
AISI, if you wish to clear (?) the DLIST, then you would fill it with 0x00 and write two headers, the first at 0x0 and the second at 0x1FE00
Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 44 4C 49 53 54 20 20 20 00 00 00 00 00 00 00 00 DLIST ........
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
........
0001FE00 44 4C 49 53 54 20 20 20 00 00 00 00 00 00 00 00 DLIST ........
0001FE10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................