Making the debug change I see this...
Status with no buttons pressed - camera in playback mode.
MEM: 0x47b21dd2
PS1: 0x?004200 << ? alternates rapidly between 6 and 7 with no buttons pressed
(I assume we actually have 0x0?004200 - i.e. 64 bits)
PS2: 0x3f3?49c2 << ? alternates rapidly between 1 and 3 with no buttons pressed
PS3: 0x2ffe
PS2: and PS3: Seem to contain the key matrix I/O bits.
PS2: Bits
PS2: ------C2 - No switches set - playback mode
PS2: ------C1 - Video mode
PS3: ------C3 - Shoot mode
PS3: Bits
PS3: 2FFE - No switches set
PS3: --DE - Dpad - Up (ISO)
PS3: --BE - Dpad - Down (Continuous shoot/Self Timer)
PS3: --7E - Dpad - Left (Macro/Landscape)
PS3: 2E-- - Dpad - Right (Flash)
PS3: 2D-- - Func/Set
PS3: --F8 - Shoot Full
PS3: --F? - Shoot Full Only - (inferred).
PS3: --FC - Shoot Half
PS3: --F6 - Focus Lever Right
PS3: --EE - Focus Lever Left
PS3: 2B-- - Menu
PS3: 27-- - Display
PS3: 0F-- - Print
I'm unsure about the <ALT> key, since it blanks the display, pressing <HALF_SHOOT> at the same time gives the above result but if I fix the above, the <Display> key should function correctly and we then fix the <ALT> if necessary.This appears to match with what is in the kbd.c file ( platform/ixusw_sd430/kbd.c ) - (sound of head scratching)
{KEY_UP , 0x00000020 },
{KEY_DOWN , 0x00000040 },
{KEY_LEFT , 0x00000080 },
{KEY_RIGHT , 0x00000100 },
{KEY_SET , 0x00000200 },
{KEY_SHOOT_FULL, 0x00000006 },
{KEY_SHOOT_FULL_ONLY, 0x00000004 },
{KEY_SHOOT_HALF, 0x00000002 },
{KEY_ZOOM_IN , 0x00000008 },
{KEY_ZOOM_OUT, 0x00000010 },
{KEY_MENU , 0x00000400 },
{KEY_DISPLAY , 0x00000800 },
{KEY_PRINT , 0x00002000 },
{ 0, 0 }