I don't get it. This jpeg is truncated the same way as in the first tests. But there was a problem with those tests: the filewritetask hook was at the wrong place (after a conditional jump instruction), and the task manipulated the data before CHDK code could "see" it.
Your previous test included an L sized jpeg, with the following task data block:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 0A 00 00 00 00 00 00 00 B8 DE 30 00 01 03 00 00 ........¸Ţ0.....
00000010 7E DD 6D 50 00 00 20 09 00 EA 91 43 B8 DE 30 00 ~ÝmP.. ..ę‘C¸Ţ0.
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000050 00 00 00 00 41 2F 44 43 49 4D 2F 31 32 30 5F 5F ....A/DCIM/120__
00000060 5F 31 30 2F 49 4D 47 5F 31 36 36 39 2E 4A 50 47 _10/IMG_1669.JPGIn this case, the jpeg size is exactly matching the orange value above, and the whole file appears as one big chunk.
Your first tests included truncated L jpegs with uniform size: 1305088 bytes (0x13EA00), exactly the size as the example in your most recent post. Those jpegs had (possibly manipulated) data block like this:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 0A 00 00 00 00 46 00 00 4C 76 34 00 01 83 00 00 .....F..Lv4.....
00000010 05 91 60 50 00 00 20 09 00 30 92 43 00 EA 13 00 .‘`P.. ..0’C.ę..
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000050 03 00 00 00 41 2F 44 43 49 4D 2F 31 32 30 5F 5F ....A/DCIM/120__
00000060 5F 30 39 2F 49 4D 47 5F 31 36 33 32 2E 4A 50 47 _09/IMG_1632.JPG
The orange value shows the truncated size, and no other data chunks can be seen (either).
What happens if you shoot (rs) a gray jpeg as in your 04 / October / 2012, 23:20:20 post?
Or, what happens if you redo the 04 October test which creates those dmp_xxxx.bin files, but with a more complex scene like the one on your latest truncated image?
More observations:
the blue value in the dump is the exif size, the purple one is the whole file size.
edit:
... I mean the blue value is the file offset the chunk needs to be written at.
I have a feeling that to get the correct content from these new models, we'll have to track the Write() and lseek() calls...