Index: /trunk/include/keyboard.h
===================================================================
--- /trunk/include/keyboard.h	(revision 459)
+++ /trunk/include/keyboard.h	(revision 460)
@@ -23,5 +23,6 @@
 #define KEY_EXPO_CORR	20     //G-series
 #define KEY_MICROPHONE	21
-#define KEY_DUMMY	22     //dummy key for pressing to disable energy saving in alt mode
+#define KEY_FACE        22  //SX100IS
+#define KEY_DUMMY	23     //dummy key for pressing to disable energy saving in alt mode
 
 
Index: /trunk/include/camera.h
===================================================================
--- /trunk/include/camera.h	(revision 459)
+++ /trunk/include/camera.h	(revision 460)
@@ -552,4 +552,6 @@
     #define CAM_CAN_MUTE_MICROPHONE     1
     #define CAM_AF_SCAN_DURING_VIDEO_RECORD 1
+    #define CAM_ADJUSTABLE_ALT_BUTTON   1
+    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1
 
 //----------------------------------------------------------
Index: /trunk/platform/sx100is/kbd.c
===================================================================
--- /trunk/platform/sx100is/kbd.c	(revision 459)
+++ /trunk/platform/sx100is/kbd.c	(revision 460)
@@ -18,5 +18,4 @@
 static long last_kbd_key = 0;
 static long alt_mode_key_mask = 0x10000000;
-static int alt_mode_led=0;
 static int usb_power=0;
 static int remote_key, remote_count;
@@ -24,5 +23,5 @@
 
 #define KEYS_MASK0 (0x0000000C)
-#define KEYS_MASK1 (0x171F0300)
+#define KEYS_MASK1 (0x1F1F0300)
 #define KEYS_MASK2 (0x00000000)
 
@@ -51,4 +50,5 @@
 	{ 1, KEY_ERASE    , 0x01000000 },
 	{ 1, KEY_LEFT     , 0x00040000 },
+	{ 1, KEY_FACE     , 0x08000000 },
 
 	{ 0, KEY_SHOOT_FULL, 0x0000000C }, 
Index: /trunk/platform/sx100is/sub/100c/makefile.inc
===================================================================
--- /trunk/platform/sx100is/sub/100c/makefile.inc	(revision 459)
+++ /trunk/platform/sx100is/sub/100c/makefile.inc	(revision 460)
@@ -8,5 +8,4 @@
 MEMISOSTART=0x9F498
 MEMISOSIZE=0x40000
-//MEMISOSIZE=0x50000
 ROMBASEADDR=0xffc00000
 
Index: /trunk/platform/sx100is/sub/100c/movie_rec.c
===================================================================
--- /trunk/platform/sx100is/sub/100c/movie_rec.c	(revision 459)
+++ /trunk/platform/sx100is/sub/100c/movie_rec.c	(revision 460)
@@ -1959,3 +1959,3 @@
 
 long CompressionRateTable[]={0x60, 0x5D, 0x5A, 0x57, 0x54, 0x51, 0x4D, 0x48, 0x42, 0x3B, 0x32, 0x29, 0x22, 0x1D, 0x17, 0x14, 0x10, 0xE, 0xB, 9, 7, 6, 5, 4, 3, 2, 1};
-                                                     	
+                	
Index: /trunk/core/kbd.c
===================================================================
--- /trunk/core/kbd.c	(revision 459)
+++ /trunk/core/kbd.c	(revision 460)
@@ -432,6 +432,7 @@
     { KEY_EXPO_CORR,    "expo_corr"  },
     { KEY_MICROPHONE,   "fe"         },
+    { KEY_FACE,         "face"       },
     { 0xFF,             "remote"     },
-	{ 0xFFFF,           "no_key"     },
+    { 0xFFFF,           "no_key"     },
 };
 
Index: /trunk/core/gui.c
===================================================================
--- /trunk/core/gui.c	(revision 459)
+++ /trunk/core/gui.c	(revision 460)
@@ -67,4 +67,15 @@
  #define SHORTCUT_SET_HYPERFOCAL      KEY_DOWN
 
+#elif defined(CAMERA_sx100is)
+//Alt mode
+ #define SHORTCUT_TOGGLE_RAW          KEY_ERASE
+//Half press shoot button    
+ #define SHORTCUT_TOGGLE_HISTO        KEY_UP
+ #define SHORTCUT_TOGGLE_ZEBRA        KEY_DOWN
+ #define SHORTCUT_TOGGLE_OSD          KEY_RIGHT
+//Alt mode & Manual mode  
+ #define SHORTCUT_SET_INFINITY        KEY_UP
+ #define SHORTCUT_SET_HYPERFOCAL      KEY_DOWN
+
 #else
 
@@ -988,4 +999,7 @@
     static const char* names[]={ "Print", "ISO"};
     static const int keys[]={ KEY_PRINT, KEY_ISO };
+#elif defined(CAMERA_sx100is)
+    static const char* names[]={ "Print", "Face"};
+    static const int keys[]={ KEY_PRINT, KEY_FACE };
 #else
     #error camera alt-buttons not defined
