Changeset 1627
- Timestamp:
- 01/30/12 05:54:05 (16 months ago)
- Location:
- branches/release-1_0
- Files:
-
- 11 edited
-
camera_list.csv (modified) (1 diff)
-
platform/a430/kbd.c (modified) (2 diffs)
-
platform/a430/lib.c (modified) (1 diff)
-
platform/a430/main.c (modified) (2 diffs)
-
platform/a430/notes.txt (modified) (1 diff)
-
platform/a430/platform_camera.h (modified) (3 diffs)
-
platform/a430/shooting.c (modified) (3 diffs)
-
platform/a430/sub/100b/capt_seq.c (modified) (8 diffs)
-
platform/a430/sub/100b/lib.c (modified) (2 diffs)
-
platform/a430/sub/100b/stubs_min.S (modified) (1 diff)
-
platform/generic/kbd.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/release-1_0/camera_list.csv
r1617 r1627 8 8 a3300,100d,BETA,,SKIP_AUTOBUILD 9 9 a410,100f,BETA,100e, 10 a430,100b,BETA,, SKIP_AUTOBUILD10 a430,100b,BETA,, 11 11 a450,100d,,, 12 12 a460,100d,,, -
branches/release-1_0/platform/a430/kbd.c
r1376 r1627 1 #include "lolevel.h" 2 #include "platform.h" 3 #include "conf.h" 4 #include "core.h" 5 #include "keyboard.h" 1 #include "../generic/kbd.c" 6 2 7 typedef struct {8 long hackkey;9 long canonkey;10 } KeyMap;11 12 13 static long kbd_new_state[3];14 static long kbd_prev_state[3];15 static long kbd_mod_state;16 static KeyMap keymap[];17 static long last_kbd_key = 0;18 static int usb_power=0;19 static int remote_key, remote_count;20 static int shoot_counter=0;21 #define DELAY_TIMEOUT 1000022 23 #define NEW_SS (0x2000)24 #define SD_READONLY_FLAG (0x20000)25 26 #define USB_MASK 0x4000027 #define USB_REG 228 29 #ifndef MALLOCD_STACK30 static char kbd_stack[NEW_SS];31 #endif32 33 long __attribute__((naked)) wrap_kbd_p1_f() ;34 35 void wait_until_remote_button_is_released(void)36 {37 38 long x[3];39 int count1;40 int count2;41 int tick,tick2,tick3;42 int nSW;43 int prev_usb_power,cur_usb_power;44 // ------ add by Masuji SUTO (start) --------------45 static int nMode;46 // ------ add by Masuji SUTO (end) --------------47 48 asm volatile ("STMFD SP!, {R0-R11,LR}\n"); // store R0-R11 and LR in stack49 debug_led(1);50 tick = get_tick_count();51 tick2 = tick;52 static long usb_physw[3];53 if (conf.synch_enable && conf.ricoh_ca1_mode && conf.remote_enable && (!shooting_get_drive_mode()|| (shooting_get_drive_mode()==1) || ((shooting_get_drive_mode()==2) && state_shooting_progress != SHOOTING_PROGRESS_PROCESSING)))54 // if (conf.synch_enable && conf.ricoh_ca1_mode && conf.remote_enable && (!shooting_get_drive_mode()|| ((shooting_get_drive_mode()==2) && state_shooting_progress != SHOOTING_PROGRESS_PROCESSING))) // synch mode enable so wait for USB to disconnect55 {56 // ------ add by Masuji SUTO (start) --------------57 nMode=0;58 usb_physw[2] = 0; // makes sure USB bit is cleared.59 _kbd_read_keys_r2(usb_physw);60 if((usb_physw[2] & USB_MASK)==USB_MASK) nMode=1;61 // ------ add by Masuji SUTO (end) --------------62 if(conf.ricoh_ca1_mode && conf.remote_enable)63 {64 if(shooting_get_drive_mode()==1 && state_shooting_progress == SHOOTING_PROGRESS_PROCESSING){ //continuous-shooting mode65 if(conf.bracket_type>2){66 if(shoot_counter<2) shutter_int=3;67 shoot_counter--;68 }69 else{70 prev_usb_power=0;71 nSW = 0;72 do73 {74 usb_physw[2] = 0; // makes sure USB bit is cleared.75 _kbd_read_keys_r2(usb_physw);76 cur_usb_power = (usb_physw[2] & USB_MASK)==USB_MASK;77 if(cur_usb_power){78 if(!prev_usb_power){79 tick2 = get_tick_count();80 prev_usb_power=cur_usb_power;81 }82 else{83 if((int)get_tick_count()-tick2>1000) {debug_led(0);}84 }85 }86 else{87 if(prev_usb_power){88 tick3 = (int)get_tick_count()-tick2;89 if(nSW==10) {90 if(tick3>50) shutter_int=1;91 nSW=20;92 }93 if(nSW==0 && tick3>0) {94 if(tick3<50) {95 nSW=10;96 }97 else{98 if(tick3>1000) shutter_int=1;99 nSW=20;100 }101 }102 prev_usb_power=cur_usb_power;103 }104 }105 if((int)get_tick_count()-tick >= DELAY_TIMEOUT) {nSW=20;shutter_int=2;}106 }107 while(nSW<20);108 }109 } //continuous-shooting mode110 else{ // normal mode111 shoot_counter=0;112 if(conf.bracket_type>2){113 shoot_counter=(conf.bracket_type-2)*2;114 }115 do116 {117 usb_physw[2] = 0; // makes sure USB bit is cleared.118 _kbd_read_keys_r2(usb_physw);119 120 }121 122 // ------ modif by Masuji SUTO (start) --------------123 while(((((usb_physw[2] & USB_MASK)!=USB_MASK) && (nMode==0)) || (((usb_physw[2] & USB_MASK)==USB_MASK) && (nMode==1))) && ((int)get_tick_count()-tick < DELAY_TIMEOUT));124 // ------ modif by Masuji SUTO (end) --------------125 }126 }127 128 else129 {130 131 do132 {133 usb_physw[2] = 0; // makes sure USB bit is cleared.134 _kbd_read_keys_r2(usb_physw);135 136 }137 while((usb_physw[2]&USB_MASK) && ((int)get_tick_count()-tick < DELAY_TIMEOUT));138 }139 } // synch enable140 141 142 if (conf.synch_delay_enable && conf.synch_delay_value>0) // if delay is switched on and greater than 0143 {144 for (count1=0;count1<conf.synch_delay_value+(conf.synch_delay_coarse_value*1000);count1++) // wait delay_value * 0.1ms145 {146 for (count2=0;count2<1400;count2++) // delay approx. 0.1ms147 {148 }149 }150 }151 152 debug_led(0);153 154 asm volatile ("LDMFD SP!, {R0-R11,LR}\n"); // restore R0-R11 and LR from stack155 }156 157 static void __attribute__((noinline)) mykbd_task_proceed()158 {159 while (physw_run){160 _SleepTask(10);161 162 if (wrap_kbd_p1_f() == 1){ // autorepeat ?163 _kbd_p2_f();164 }165 }166 }167 168 void __attribute__((naked,noinline)) mykbd_task()169 {170 /* WARNING171 * Stack pointer manipulation performed here!172 * This means (but not limited to):173 * function arguments destroyed;174 * function CAN NOT return properly;175 * MUST NOT call or use stack variables before stack176 * is setup properly;177 *178 */179 180 register int i;181 register long *newstack;182 183 #ifndef MALLOCD_STACK184 newstack = (void*)kbd_stack;185 #else186 newstack = malloc(NEW_SS);187 #endif188 189 for (i=0;i<NEW_SS/4;i++)190 newstack[i]=0xdededede;191 192 asm volatile (193 "MOV SP, %0"194 :: "r"(((char*)newstack)+NEW_SS)195 : "memory"196 );197 198 mykbd_task_proceed();199 200 /* function can be modified to restore SP here...201 */202 203 _ExitTask();204 }205 206 207 long __attribute__((naked,noinline)) wrap_kbd_p1_f()208 {209 210 asm volatile(211 "STMFD SP!, {R4-R7,LR}\n"212 "SUB SP, SP, #0xC\n"213 "BL my_kbd_read_keys\n"214 "B _kbd_p1_f_cont\n"215 );216 return 0; // shut up the compiler217 }218 219 220 void my_kbd_read_keys()221 {222 kbd_prev_state[0] = kbd_new_state[0];223 kbd_prev_state[1] = kbd_new_state[1];224 kbd_prev_state[2] = kbd_new_state[2];225 226 // _kbd_pwr_on();227 228 kbd_fetch_data(kbd_new_state);229 230 #if 0231 if ((new_state[2] & 0x00001000 /* print button */) == 0 )232 started();233 else234 finished();235 #endif236 237 238 if (kbd_process() == 0){239 // leave it alone...240 physw_status[0] = kbd_new_state[0];241 physw_status[1] = kbd_new_state[1];242 physw_status[2] = kbd_new_state[2];243 #if 0244 kbd_mod_state = kbd_new_state[2];245 #endif246 } else {247 // override keys248 #if 0249 physw_status[2] = kbd_mod_state;250 #else251 physw_status[0] = kbd_new_state[0];252 physw_status[1] = kbd_new_state[1];253 physw_status[2] = (kbd_new_state[2] & (~0x1fff)) |254 (kbd_mod_state & 0x1fff);255 #endif256 }257 258 _kbd_read_keys_r2(physw_status);259 remote_key = (physw_status[2] & USB_MASK)==USB_MASK;260 261 if (remote_key)262 remote_count += 1;263 else if (remote_count) {264 usb_power = remote_count;265 remote_count = 0;266 }267 268 if (conf.remote_enable) {269 270 physw_status[2] = physw_status[2] & ~(SD_READONLY_FLAG | USB_MASK);271 }272 else273 physw_status[2] = physw_status[2] & ~SD_READONLY_FLAG;274 275 // _kbd_pwr_off();276 277 }278 int get_usb_power(int edge)279 {280 int x;281 282 if (edge) return remote_key;283 x = usb_power;284 usb_power = 0;285 return x;286 }287 /****************/288 289 290 void kbd_key_press(long key)291 {292 int i;293 for (i=0;keymap[i].hackkey;i++){294 if (keymap[i].hackkey == key){295 kbd_mod_state &= ~keymap[i].canonkey;296 return;297 }298 }299 }300 301 void kbd_key_release(long key)302 {303 int i;304 for (i=0;keymap[i].hackkey;i++){305 if (keymap[i].hackkey == key){306 kbd_mod_state |= keymap[i].canonkey;307 return;308 }309 }310 }311 312 void kbd_key_release_all()313 {314 kbd_mod_state |= 0x1fff;315 }316 317 long kbd_is_key_pressed(long key)318 {319 int i;320 for (i=0;keymap[i].hackkey;i++){321 if (keymap[i].hackkey == key){322 return ((kbd_new_state[2] & keymap[i].canonkey) == 0) ? 1:0;323 }324 }325 return 0;326 }327 328 long kbd_is_key_clicked(long key)329 {330 int i;331 for (i=0;keymap[i].hackkey;i++){332 if (keymap[i].hackkey == key){333 return ((kbd_prev_state[2] & keymap[i].canonkey) != 0) &&334 ((kbd_new_state[2] & keymap[i].canonkey) == 0);335 }336 }337 return 0;338 }339 340 long kbd_get_pressed_key()341 {342 int i;343 for (i=0;keymap[i].hackkey;i++){344 if ((kbd_new_state[2] & keymap[i].canonkey) == 0){345 return keymap[i].hackkey;346 }347 }348 return 0;349 }350 351 long kbd_get_clicked_key()352 {353 int i;354 for (i=0;keymap[i].hackkey;i++){355 if (((kbd_prev_state[2] & keymap[i].canonkey) != 0) &&356 ((kbd_new_state[2] & keymap[i].canonkey) == 0)){357 return keymap[i].hackkey;358 }359 }360 return 0;361 }362 363 void kbd_reset_autoclicked_key() {364 last_kbd_key = 0;365 }366 367 long kbd_get_autoclicked_key() {368 static long last_kbd_time = 0, press_count = 0;369 register long key, t;370 371 key=kbd_get_clicked_key();372 if (key) {373 last_kbd_key = key;374 press_count = 0;375 last_kbd_time = get_tick_count();376 return key;377 } else {378 if (last_kbd_key && kbd_is_key_pressed(last_kbd_key)) {379 t = get_tick_count();380 if (t-last_kbd_time>((press_count)?175:500)) {381 ++press_count;382 last_kbd_time = t;383 return last_kbd_key;384 } else {385 return 0;386 }387 } else {388 last_kbd_key = 0;389 return 0;390 }391 }392 }393 394 long kbd_use_zoom_as_mf() {395 return 0;396 }397 3 static KeyMap keymap[] = { 398 4 /* tiny bug: key order matters. see kbd_get_pressed_key() … … 407 13 { KEY_SHOOT_FULL_ONLY, 0x00000020 }, 408 14 { KEY_SHOOT_HALF, 0x00000010 }, 409 // { KEY_ZOOM_IN , 0x00000001 }, // KEY_UP/KEY_ZOOM_IN410 // { KEY_ZOOM_OUT , 0x00000002 }, // KEY_DOWN/KEY_ZOOM_OUT/KEY_ERASE411 15 { KEY_MENU , 0x00000400 }, 412 16 { KEY_DISPLAY , 0x00000200 }, 413 17 { KEY_PRINT , 0x00001000 }, // KEY_DOWN/KEY_ZOOM_OUT/KEY_ERASE 414 // { KEY_ERASE , 0x00000002 },415 // { KEY_DUMMY , 0x00001000 },416 18 { 0, 0 } 417 19 }; -
branches/release-1_0/platform/a430/lib.c
r1376 r1627 2 2 3 3 int get_flash_params_count(void){ 4 return 1 11;4 return 108; 5 5 } -
branches/release-1_0/platform/a430/main.c
r1376 r1627 11 11 } 12 12 13 static const int fl_tbl[] = {5400, 6800, 8100, 9800, 11800, 14400, 17300 };13 static const int fl_tbl[] = {5400, 6800, 8100, 9800, 11800, 14400, 17300, 21600}; //from a460 14 14 #define NUM_FL (sizeof(fl_tbl)/sizeof(fl_tbl[0])) 15 15 #define CF_EFL 70371 … … 33 33 } 34 34 35 /* static struct {36 int hackmode;37 int canonmode;38 } modemap[] = {39 { MODE_AUTO, 32768 },40 { MODE_P, 32772 },41 // { MODE_TV, 32771 },42 // { MODE_AV, 32770 },43 // { MODE_M, 32769 },44 { MODE_PORTRAIT, 16397 },45 // { MODE_NIGHT, 32782 },46 // { MODE_LANDSCAPE, 32780 },47 { MODE_VIDEO_STD, 2597 },48 // { MODE_VIDEO_SPEED, 2597 },49 { MODE_VIDEO_COMPACT, 2599 },50 // { MODE_VIDEO_MY_COLORS, 2595 },51 // { MODE_VIDEO_COLOR_ACCENT, 2594 },52 // { MODE_STITCH, 33290 },53 // { MODE_MY_COLORS, 16922 },54 // { MODE_SCN_WATER, 16405 },55 { MODE_SCN_NIGHT, 16395 },56 { MODE_SCN_CHILD, 16400 },57 { MODE_SCN_PARTY, 16401 },58 { MODE_SCN_GRASS, 16402 },59 { MODE_SCN_SNOW, 16403 },60 { MODE_SCN_BEACH, 16404 },61 { MODE_SCN_FIREWORK, 16405 }//,62 */63 35 #define MODESCNT (sizeof(modemap)/sizeof(modemap[0])) 64 65 /* int mode_get() {66 int mode, i, t=0xFF;67 68 mode = (physw_status[2] & 0x00002000)?MODE_REC:MODE_PLAY;69 // mode |= (physw_status[2] & 0x00008000)?0:MODE_SCREEN_OPENED;70 // mode |= (physw_status[2] & 0x00004000)?0:MODE_SCREEN_ROTATED;71 72 _GetPropertyCase(PROPCASE_SHOOTING_MODE, &t, 4);73 for (i=0; i<MODESCNT; ++i) {74 if (modemap[i].canonmode == t) {75 return (mode | (modemap[i].hackmode & MODE_SHOOTING_MASK));76 }77 }78 return (mode);79 }80 81 */ -
branches/release-1_0/platform/a430/notes.txt
r925 r1627 5 5 - A430 uses Propset 1 of Properties (see http://tinyurl.com/6zbv9b) 6 6 7 7 Changes: 8 2012-01-05 9 - histogram, zebra display now correct for replay mode 10 - raw numbering fixed 11 - optical data copied from A460 (same 4x zoom optics), updated 12 - modemap corrected 13 - some corrections in capt_seq.c 14 - most of kbd.c thrown out, the generic one is used 15 - usb sensing identified, working (for usb remote) -
branches/release-1_0/platform/a430/platform_camera.h
r1418 r1627 37 37 #undef CAM_HAS_IS 38 38 #define CAM_CAN_MUTE_MICROPHONE 1 39 #define CAM_AF_SCAN_DURING_VIDEO_RECORD 1 39 #define CAM_AF_SCAN_DURING_VIDEO_RECORD 1 //crashes, when used in 640x480 mode 40 40 #define CAM_EV_IN_VIDEO 1 41 41 … … 49 49 -96906, 1000000, 148194, 1000000, 191583, 1000000 50 50 51 #define CAM_CONSOLE_LOG_ENABLED 152 51 #define cam_CalibrationIlluminant1 1 // Daylight 53 52 // cropping … … 60 59 // camera name 61 60 #define PARAM_CAMERA_NAME 3 // parameter number for GetParameterData 62 #define CAM_BRACKETING 1 63 // #define CAM_MULTIPART 1 64 //---------------------------------------------------------- 65 61 #define CAM_DETECT_SCREEN_ERASE 1 -
branches/release-1_0/platform/a430/shooting.c
r1376 r1627 1 1 #define PARAM_FILE_COUNTER 0x34 2 #define PARAM_EXPOSURE_COUNTER 0x01 2 3 3 4 #include "platform.h" 4 5 5 6 const ApertureSize aperture_sizes_table[] = { 6 { 9, 292, "2.8" }, 7 { 10, 303, "3.2" }, 8 { 11, 320, "3.5" }, 9 { 12, 342, "3.5" }, 10 { 13, 367, "4.0" }, 11 { 14, 395, "4.5" }, 12 { 15, 427, "5.1" }, 13 { 16, 571, "8.0 ND" }, 14 { 17, 590, "9.0 ND" }, 15 { 18, 610, "10.0 ND" }, 16 { 19, 633, "10.0 ND" }, 17 { 20, 660, "11.0 ND" }, 18 { 21, 688, "13.0 ND" }, 19 { 22, 722, "16.0 ND" }, 20 }; 7 { 9, 288, "2.8" }, 8 { 10, 302, "3.2" }, 9 { 11, 318, "3.5" }, 10 { 12, 339, "3.5" }, 11 { 13, 363, "4.0" }, 12 { 14, 390, "4.5" }, 13 { 15, 420, "5.0" }, 14 { 16, 457, "5.8" }, 15 { 17, 449, "8.0 ND" }, 16 { 18, 466, "9.0 ND" }, 17 { 19, 485, "10.0 ND" }, 18 { 20, 510, "10.0 ND" }, 19 { 21, 536, "11.0 ND" }, 20 { 22, 565, "13.0 ND" }, 21 { 23, 597, "16.0 ND" }, 22 { 24, 635, "18.0 ND" }, 23 };// from a460, second column updated (propcase 68) 21 24 22 25 const ShutterSpeed shutter_speeds_table[] = { … … 71 74 const ISOTable iso_table[] = { 72 75 { 0, 0, "Auto", -1}, 73 { 1, 80, "80", -1},76 { 1, 64, "64", -1}, 74 77 { 2, 100, "100", -1}, 75 78 { 3, 200, "200", -1}, … … 79 82 /* 80 83 http://www.usa.canon.com/cusa/support/consumer/digital_cameras/powershot_a_series/powershot_a430#Specifications 81 Shooting Modes82 Auto; Creative: P, Av, Tv, M; Image: Portrait, Landscape, Night Scene,83 Special Scene84 (Foliage, Snow, Beach, Fireworks, Underwater, Indoor, Kids & Pets,85 Night Snapshot, Color Accent, Color Swap),86 My Colors, Stitch Assist, Movie87 Movie: 640 x 480 / 320 x 240 (30 fps/15 fps) available up to 1GB or 1 hour for each file size,88 320 x 240 (1 min. at 60 fps), 160 x 120 (3 min. at 15 fps)89 84 canon mode list FFD588D4 in 100b 90 85 */ 91 86 static const CapturemodeMap modemap[] = { 92 { MODE_M, 32769 },87 // { MODE_M, 32769 }, 93 88 { MODE_P, 32772 }, 94 89 { MODE_AUTO, 32768 }, 95 { MODE_PORTRAIT, 32781 }, 96 { MODE_NIGHT_SCENE, 32782 }, // "night scene" on dial, different from "night snapshot" under "scene" below 97 { MODE_STITCH, 33290 }, 98 { MODE_SCN_NIGHT_SNAPSHOT, 16395 }, // "night snapshot" 99 { MODE_SCN_KIDS_PETS, 16399 }, // "kids and pets" 100 { MODE_SCN_INDOOR, 16400 }, // "indoor" 101 { MODE_SCN_FOLIAGE, 16401 }, // "foliage" 102 { MODE_SCN_SNOW, 16402 }, // "snow" 103 { MODE_SCN_BEACH, 16403 }, // "beach" 104 { MODE_SCN_FIREWORK, 16404 }, // "fireworks" 105 { MODE_SCN_COLOR_ACCENT, 16920 }, // "color accent" 106 { MODE_SCN_COLOR_SWAP, 16921 }, // "color swap" 107 { MODE_VIDEO_STD, 2593 }, 108 { MODE_VIDEO_SPEED, 2594 }, // "fast frame rate" 90 { MODE_PORTRAIT, 16396 }, 91 // { MODE_NIGHT_SCENE, 32782 }, // "night scene" on dial, different from "night snapshot" under "scene" below 92 { MODE_STITCH, 33289 }, // 93 { MODE_SCN_NIGHT_SNAPSHOT, 16394 }, // "night snapshot" 94 { MODE_SCN_KIDS_PETS, 16398 }, // "kids and pets" 95 { MODE_SCN_INDOOR, 16399 }, // "indoor" 96 { MODE_SCN_FOLIAGE, 16400 }, // "foliage" 97 { MODE_SCN_SNOW, 16401 }, // "snow" 98 { MODE_SCN_BEACH, 16402 }, // "beach" 99 { MODE_SCN_FIREWORK, 16403 }, // "fireworks" 100 { MODE_SCN_COLOR_ACCENT, 33303 }, // "color accent" 101 { MODE_SCN_COLOR_SWAP, 33304 }, // "color swap" 102 { MODE_SUPER_MACRO, 33288 }, // 103 { MODE_VIDEO_STD, 3613 }, // 104 /* { MODE_VIDEO_SPEED, 2594 }, // "fast frame rate" 109 105 { MODE_VIDEO_COMPACT, 2595 }, // "compact" 110 106 { MODE_VIDEO_COLOR_ACCENT, 2591 }, // "color accent" 111 107 { MODE_VIDEO_COLOR_SWAP, 2592 }, // "color swap" 108 */ 112 109 }; 113 110 #include "../generic/shooting.c" 114 111 115 long get_file_next_counter() { 116 return get_file_counter();112 long get_file_next_counter() { //looks like this hack is needed for old vxworks 113 return ((get_file_counter()>>4)+1)<<4; 117 114 } 115 118 116 119 117 long get_target_file_num() { -
branches/release-1_0/platform/a430/sub/100b/capt_seq.c
r1376 r1627 6 6 7 7 #include "../../../generic/capt_seq.c" 8 //please note: comments ending in question marks contain the original authors' work 9 //since most of these functions is copied from the original fw, I corrected parts of the code, 10 //where (in my opinion) it shouldn't differ from the original - srsa_4c 8 11 9 12 void __attribute__((naked,noinline)) sub_FFD2C9B8_my(long p) … … 26 29 "LDR R0, [R3]\n" 27 30 "BL sub_FFC8B090\n" 28 "BL wait_until_remote_button_is_released\n" 29 "BL capt_seq_hook_set_nr\n" 30 "B sub_FFD2C9F4\n" 31 "BL wait_until_remote_button_is_released\n" // + 32 "BL capt_seq_hook_set_nr\n" // + 33 "B sub_FFD2C9F4\n" //jump to the rest 31 34 ); 32 35 } … … 73 76 74 77 "BL sub_FFD2C9B8_my\n" 75 "BL capt_seq_hook_raw_here\n" 78 "BL capt_seq_hook_raw_here\n" // + 76 79 77 80 // "BL sub_FFD483A4\n" … … 211 214 "BEQ loc_FFD29B9C\n" 212 215 "MOV R1, #0x28C\n" 213 "LDR R0, =0xFFD295 2C\n"214 "ADD R1, R1, # 3\n"216 "LDR R0, =0xFFD29530\n" // =0xffd2952c ? 217 "ADD R1, R1, #2\n" // #3 ? 215 218 "BL sub_FFC03AEC\n" 216 "BL _ExitTask\n" 217 "BL sub_FFC11620\n" 219 "BL sub_FFC11620\n" // ExitTask 218 220 "ADD SP, SP, #4\n" 219 221 "LDMFD SP!, {R4,PC}\n" … … 312 314 " LDR R12, [SP]\n" 313 315 " MOV R0, R5\n" 314 " LDR R1, [R12,#0x 40]\n"316 " LDR R1, [R12,#0x24]\n" //0x40 ? 315 317 " MOV R2, R4\n" 316 " LDR R3, [R12,#0x 50]\n"317 " MOV LR, PC\n" 318 " LDR PC, [R12,#0x 4C]\n"318 " LDR R3, [R12,#0x34]\n" //0x50 ? 319 " MOV LR, PC\n" 320 " LDR PC, [R12,#0x30]\n" //0x4C ? 319 321 " B loc_FFCDEB88\n" 320 322 "loc_FFCDEB50:\n" … … 342 344 " MOV R2, R4\n" 343 345 " ADD R0, R12, #4\n" 344 " LDR R1, [R12,#0x 40]\n"345 " LDR R3, [R12,#0x 50]\n"346 " MOV LR, PC\n" 347 " LDR PC, [R12,#0x 4C]\n"346 " LDR R1, [R12,#0x24]\n" //0x40 ? 347 " LDR R3, [R12,#0x34]\n" //0x50 ? 348 " MOV LR, PC\n" 349 " LDR PC, [R12,#0x30]\n" //0x4c ? 348 350 " B loc_FFCDED9C\n" 349 351 "loc_FFCDEBB8:\n" 350 " SUB R3, R2, #0x17\n"351 " B HI loc_FFCDEC0C\n"352 " CMP R2, #0x17\n" //SUB R3, R2, #0x17 ? 353 " BNE loc_FFCDEC0C\n" //BHI loc_FFCDEC0C ? 352 354 " LDR R1, [R12,#0x24]\n" 353 355 " ADD R1, R1, R1,LSL#1\n" … … 365 367 " LDR R2, [R3,#0x34]\n" 366 368 " MOV LR, PC\n" 367 " LDR PC, [R3,#0x 4C]\n"369 " LDR PC, [R3,#0x30]\n" //0x4c ? 368 370 " LDR R0, [SP]\n" 369 371 " BL sub_FFCDD8BC\n" … … 518 520 " LDR R12, [SP]\n" 519 521 " LDR R2, [R12]\n" 520 " CMP R2, #0x 20\n"522 " CMP R2, #0x1F\n" //0x20 ? 521 523 " BNE loc_FFCDEA08\n" 522 524 " MOV R0, R12\n" -
branches/release-1_0/platform/a430/sub/100b/lib.c
r1376 r1627 21 21 return 0x4FEED0; // ?? "CRAW BUF","WBIntegPrm.c" - 1/3" 4 MPix - (2272*1704*10/8=0x49D7C0) 22 22 } 23 24 /*25 void *vid_get_viewport_live_fb()26 {27 return (void*)0;28 }29 */30 23 31 24 void *vid_get_viewport_live_fb() // from a540 … … 54 47 void *vid_get_viewport_fb_d() 55 48 { 56 return (void*)(*(int*)0x71 964); // ?? (found in sub_FFD0F248)49 return (void*)(*(int*)0x71AB0); // @ffd0f29c 57 50 } 58 51 -
branches/release-1_0/platform/a430/sub/100b/stubs_min.S
r1376 r1627 15 15 DEF(some_flag_for_af_scan, 0x72BA0) // 0xFFD2A294 16 16 DEF(levent_table, 0xFFD3547C) 17 DEF(playrec_mode, 0x63 9C) // FFD3263817 DEF(playrec_mode, 0x638C) // @ffd32644 18 18 DEF(sys_mempart_id, 0xD648) // memFindMax 19 -
branches/release-1_0/platform/generic/kbd.c
r1262 r1627 18 18 static long kbd_new_state[3]; 19 19 static long kbd_prev_state[3]; 20 static long kbd_mod_state ;20 static long kbd_mod_state = 0xFFFFFFFF; 21 21 static KeyMap keymap[]; 22 22 static long last_kbd_key = 0; … … 34 34 #endif 35 35 36 #if defined(CAMERA_a630) || defined(CAMERA_a640) || defined(CAMERA_a610) || defined(CAMERA_a620) || defined(CAMERA_ixus800_sd700) || defined(CAMERA_ixus65_sd630) || defined(CAMERA_ixus850_sd800) || defined(CAMERA_ixus900_sd900) || defined (CAMERA_ixus70_sd1000) || defined (CAMERA_ixus950_sd850) || defined(CAMERA_a410) 36 #if defined(CAMERA_a630) || defined(CAMERA_a640) || defined(CAMERA_a610) || defined(CAMERA_a620) || defined(CAMERA_ixus800_sd700) || defined(CAMERA_ixus65_sd630) || defined(CAMERA_ixus850_sd800) || defined(CAMERA_ixus900_sd900) || defined (CAMERA_ixus70_sd1000) || defined (CAMERA_ixus950_sd850) || defined(CAMERA_a410) || defined(CAMERA_a430) 37 37 #define USB_MASK 0x8000000 38 38 #define USB_REG 1 39 39 #endif 40 40 41 #if defined(CAMERA_a 430) || defined(CAMERA_a530) || defined(CAMERA_a540)41 #if defined(CAMERA_a530) || defined(CAMERA_a540) 42 42 #define USB_MASK 0x4000 43 43 #define USB_REG 2 … … 62 62 #endif 63 63 64 #if defined(CAMERA_a610) || defined(CAMERA_a620) || defined(CAMERA_a630) || defined(CAMERA_a640) || defined(CAMERA_ixus800_sd700) || defined(CAMERA_a410) 64 #if defined(CAMERA_a610) || defined(CAMERA_a620) || defined(CAMERA_a630) || defined(CAMERA_a640) || defined(CAMERA_ixus800_sd700) || defined(CAMERA_a410) || defined(CAMERA_a430) 65 65 x = (long)*mmio1; 66 66 #endif … … 73 73 } 74 74 75 #if defined(CAMERA_a530) || defined(CAMERA_a540) || defined(CAMERA_a610) || defined(CAMERA_a620) || defined(CAMERA_a630) || defined(CAMERA_a640) || defined(CAMERA_a700)|| defined(CAMERA_a710) || defined (CAMERA_ixus800_sd700) || defined(CAMERA_a410) 75 #if defined(CAMERA_a530) || defined(CAMERA_a540) || defined(CAMERA_a610) || defined(CAMERA_a620) || defined(CAMERA_a630) || defined(CAMERA_a640) || defined(CAMERA_a700)|| defined(CAMERA_a710) || defined (CAMERA_ixus800_sd700) || defined(CAMERA_a410) || defined(CAMERA_a430) 76 76 void wait_until_remote_button_is_released(void) 77 77 {
Note: See TracChangeset
for help on using the changeset viewer.