I don't know. Here's mine (m10, all words are hex):
17810: [CtrlSrv] JD, abb 0;
*R0: 460560
5652414d,
41e7eb00,
0,
5000004,
3c0,
1e0,
0,
*R1: 1abeb40
2000103, -> drawing type and direction
640202, -> byte2: percentage of new drawing vs old content at the same place (defaults to 100)
4c, -> never changes
1abec20, -> points after this struct
1abebdc, -> points to bitmap descriptor, inside this struct
0,
1abebf8, -> points to some coordinates, inside this struct
4,
0,
0,
e0, -> length of this struct in bytes
1,
0,
0,
ff,
0,
0,
0, -> pointer in some other JD messages
0,
43eb0000, -> destination coordinate in float
438c8000, -> destination coordinate in float
9600c8, -> destination height, width
0,
640064, -> influences pixel data interpretation
640064, -> influences pixel data interpretation
0, -> influences pixel data interpretation
0,
0, -> pointer in some other JD messages
0,
0,
20001, -> border width
3e3e3eff, -> border color
640064, -> 080008 makes grey border dark blue
640064, -> 080008 makes grey border vanish
0,
0,
200, -> crash when byte1 changed
0,
0,
2, -> crash when altered
10107, -> junk word
140000, -> y, x offset in src
7800a0, -> height, width to copy
a000a0, -> full height, width
5823cb00, -> bitmap (yuv) buffer
0, -> junk word
0, -> ? some coords
9, -> ? some coords
2d0, -> ? some coords
1d4, -> ? some coords
c0, -> junk
1, -> junk
0, -> junk
0, -> junk
ff, -> junk
0, -> junk
Which GUI elemets use this mixing?
I only hand-picked some JD structs, none of them has a value different from 0x64. Historically, Canon has been avoiding overlapping graphics as far as I can tell.
Just in case: did you call Clean_data_cache_line?
Yes, I based my function on your example.
A logged session (startup in playback mode and entering thumbnail-view) of JD structs is attached.
edit:
Added some empirical notes to some struct members.
byte0: lsb in a word, byte3: msb in a word