It seems to me that many of you are misunderstanding that some PropVars (hardware io) are actually
bitfields. To discover the pattern, you need to use hex numbers and not decimal numbers, and to look at how individual bits or groups of bits within the hex numbers change.
msl is onto the right solution:
DigicIII
language 1 PAL 0x0001 NTSC 0x0000
language 2 PAL 0x0101 NTSC 0x0100
language 3 PAL 0x0201 NTSC 0x0200
language 4 PAL 0x0301 NTSC 0x0300
language 5 PAL 0x0401 NTSC 0x0400
language 6 PAL 0x0501 NTSC 0x0500
DigicII
language 1 PAL 0x0002 NTSC 0x0001
language 2 PAL 0x0102 NTSC 0x0101
language 3 PAL 0x0202 NTSC 0x0201
language 4 PAL 0x0302 NTSC 0x0301
language 5 PAL 0x0402 NTSC 0x0401
language 6 PAL 0x0502 NTSC 0x0501
My first guess from the above information would be that the Propvar is made up of two bytes. One byte is the language, and the second byte is the Video Signal Standard (
TV Systems: A Comparison) - looks like there is more than just PAL and NTSC supported. It looks like what has happened that from Digic II to Digic III they have changed the constants.
It is possible that they have squeezed some other bits into the 16 bits with other meanings (e.g. video standard might only be 2 bits, and the other six bits out of that byte might be used for other purposes).
One way to code for this is to use bitfield structs in C.
ewavr asked:
For a710 english is 65538 = 0x10002. What this 0x10000 means?
Hmmm, I thought propcases were 16 bits, but if they are more then bit 17 (or bits 17 to 32) probably has another meaning that we have yet to discover.
Sorry if I am sayign stuff that you know already - it just seemed as though this was the underlying problem to some of your questions...