1 // !!! THIS FILE IS GENERATED. DO NOT EDIT. !!! 2 #include "stubs_asm.h" 3 4 // Camera info: 5 // DRYOS R39 (DRYOS version 2.3, release #0039) 6 // Firmware Ver GM1.00B // Found @ 0xffc5fdec, "GM1.00B" @ 0xffc5fdf9 7 // Firmware build timestamp: Jun 5 2009 17:09:33 8 // Canon PowerShot SX120 IS 9 10 // Values for makefile.inc 11 // DIGIC = 40# DIGIC 4 12 // PLATFORMOSVER = 39 13 // PLATFORMID = 12768# (0x31e0) Found @ 0xfffe0130 14 // MAXRAMADDR = 0x03ffffff 15 // MEMISOSTART = 0x0010a6ac 16 // KEYSYS = d4# Found @ 0xffff1d0c 17 // NEED_ENCODED_DISKBOOT = 3# Found @ 0xffff1d1c 18 // ARAM_HEAP_START = 0x34e000# Found @ 0xffd20e2c 19 // ARAM_HEAP_SIZE = 0x32000# Found @ 0xffd20dec 20 21 // Detected address ranges: 22 // ROM 0xffc00000 - 0xffffffff (4194304 bytes) 23 // RAM data 0x00001900 - 0x0000bcc4 copied from 0xfff06d78 ( 41924 bytes) 24 25 // Stubs below should be checked. Stub not matched 100%, or difference found to current 'stubs_entry_2.S' 26 // Name Address Rule % Comp to stubs_entry_2.S 27 //NHSTUB(GetDrive_ClusterSize ,0xffc4591c) // 5 *** != 0xffc45918 28 //NHSTUB(GetDrive_FreeClusters ,0xffc4597c) // 5 *** != 0xffc45978 29 //NHSTUB(GetDrive_TotalClusters ,0xffc45600) // 3 *** != 0xffc45948 30 // ALT: NHSTUB(GetDrive_TotalClusters, 0xffc45880) // 3 12/0 31 // ALT: NHSTUB(GetDrive_TotalClusters, 0xffc458ac) // 3 12/0 32 //NHSTUB(RefreshPhysicalScreen ,0xffd90b78) //104 *** != 0xffd9098c 33 //NHSTUB(ScreenUnlock ,0xffd9098c) //117 *** != 0xffd90b78 34 //NHSTUB(SetScriptMode ,0xffc65c00) //120 *** != 0xffc63b40 35 //NHSTUB(kbd_pwr_off ,0xffc36f50) // 2 64% *** != 0xffc36f60 36 NHSTUB(kbd_pwr_on ,0xffc36f10) // 2 82% 37 //NHSTUB(stat ,0xffc13ae0) //109 *** != 0xffc13a9c 38 39 // Check of modemap from 'platform/CAMERA/shooting.c': 40 // Firmware modemap table found @ffe1dae4 -> ffeec334 41 // Current modemap entry not found in firmware - MODE_VIDEO_COMPACT 2602 42 43 // Values below can be overridden in 'stubs_min.S': 44 DEF(physw_status ,0x0000d148) // Found @0xffc119cc 45 DEF(physw_run ,0x00001bec) // Found @0xffc1163c 46 DEF(physw_sleep_delay ,0x00001bea) // Found @0xffc1163c 47 DEF(levent_table ,0xffeb9d1c) // Found @0xffeb9d1c 48 DEF(FlashParamsTable ,0xffeec518) // Found @0xffeec518 49 DEF(movie_status ,0x000061d8) // Found @0xffd1429c 50 DEF(full_screen_refresh ,0x0000829c) // Found @0xffd8ea50 51 DEF(canon_menu_active ,0x00002e8c) // Found @0xffc61838 52 DEF(canon_shoot_menu_active ,0x000072d5) // Found @0xffd4d33c 53 DEF(playrec_mode ,0x00002bcc) // Found @0xffc542ac 54 DEF(zoom_status ,0x0000a4d4) // Found @0xffe1f314 55 DEF(some_flag_for_af_scan ,0x000066ac) // Found @0xffd16e3c 56 // focus_len_table contains zoom focus lengths for use in 'get_focal_length' (main.c). 57 // each entry contains 3 int value(s), the first is the zoom focus length. 58 // there are 23 entries in the table - set NUM_FL to 23 59 DEF(focus_len_table ,0xfffe328c) // Found @0xfffe328c 60 DEF(zoom_busy ,0x00006108) // Found @0xffd10868 61 DEF(focus_busy ,0x00005ffc) // Found @0xffd0b93c 62 //DEF(recreview_hold ,0x000037c0) // Found @0xffc6ed0c, ** != ** stubs_min = 0x00006f34 (0x6E84+0xB0) 63 // Palette colour tables found @ 0xffecb874 64 DEF(active_palette_buffer ,0x000082a4) // Found @0xffd8e98c 65 DEF(palette_buffer_ptr ,0x000082b0) // Found @0xffd8e674 66 // Offset from start of palette_buffer to color data = 8 (Found @0xffe4ad74) 67 // Camera appears to have only 1 RAW buffer @ 0x414ef7e0 (Found @0xffe687a8) 68 DEF(fileio_semaphore ,0x000028c4) // Found @0xffc43ec4 69 DEF(exmem_alloc_table ,0x00014110) // Found @0xffc5b278 70 DEF(exmem_types_table ,0xfff08154) // Found @0x00002cdc 71 DEF_CONST(exmem_type_count ,0x00000012) 72 DEF(imager_active ,0x00001f0c) // Found @0xffc245cc (0x1f08 + 4) 73 DEF_CONST(uiprop_count ,0x0000006e) // Found @0xffd38dec 74 DEF(cameracon_state ,0x000033a8) // Found @0xffc67314 75 76 // Values below go in 'lib.c': 77 //void *vid_get_bitmap_fb() { return (void*)0x403f1000; } // Found @0xffc32730 78 //void *vid_get_viewport_fb() { return (void*)0x40768620; } // Found @0xffe660b4 79 DEF(viewport_fb_d ,0x0000295c) // Found 0x2904 (@0xffc470bc) + 0x58 (@0xffc470e8) 80 //void *vid_get_viewport_fb_d() { return (void*)(*(int*)(0x2904+0x58)); } // Found @0xffc470bc & 0xffc470e8 81 DEF(jpeg_count_str ,0x00052c6c) // Found @0xffd83d88 82 //char *camera_jpeg_count_str() { return (char*)0x00052c6c; } // Found @0xffd83d88 83 //int get_flash_params_count(void) { return 0x84; } // Found @0xffd39830 84 85 // Bitmap masks and physw_status index values for SD_READONLY and USB power flags (for kbd.c). 86 //#define SD_READONLY_FLAG 0x00020000 // Found @0xffe9a70c, levent 0x90a 87 //#define SD_READONLY_IDX 2 88 //#define USB_MASK 0x00040000 // Found @0xffe9a718, levent 0x902 89 //#define USB_IDX 2 90 //#define BATTCOVER_FLAG 0x00080000 // Found @0xffe9a604, levent 0x905 91 //#define BATTCOVER_IDX 1 92 //#define ANALOG_AV_FLAG 0x00008000 // Found @0xffe9a5f8, levent 0x900 (non-inverted logic) 93 //#define ANALOG_AV_IDX 1 94 95 // Keymap values for kbd.c. Additional keys may be present, only common values included here. 96 //static KeyMap keymap[] = { 97 // { 2, KEY_SHOOT_FULL ,0x0000000c }, // Found @0xffe9a664, levent 0x01 98 // { 2, KEY_SHOOT_FULL_ONLY ,0x00000008 }, // Found @0xffe9a664, levent 0x01 99 // { 2, KEY_SHOOT_HALF ,0x00000004 }, // Found @0xffe9a658, levent 0x00 100 // { 2, KEY_ZOOM_IN ,0x00000010 }, // Found @0xffe9a670, levent 0x02 101 // { 2, KEY_ZOOM_OUT ,0x00000020 }, // Found @0xffe9a67c, levent 0x03 102 // { 2, KEY_POWER ,0x00000040 }, // Found @0xffe9a688, levent 0x600 (uses inverted logic in physw_status) 103 // { 2, KEY_PLAYBACK ,0x00000080 }, // Found @0xffe9a694, levent 0x601 (uses inverted logic in physw_status) 104 // { 2, KEY_UP ,0x00000100 }, // Found @0xffe9a6a0, levent 0x04 105 // { 2, KEY_DOWN ,0x00000200 }, // Found @0xffe9a6ac, levent 0x05 106 // { 2, KEY_RIGHT ,0x00000400 }, // Found @0xffe9a6b8, levent 0x07 107 // { 2, KEY_LEFT ,0x00000800 }, // Found @0xffe9a6c4, levent 0x06 108 // { 2, KEY_SET ,0x00001000 }, // Found @0xffe9a6d0, levent 0x08 109 // { 2, KEY_MENU ,0x00002000 }, // Found @0xffe9a6dc, levent 0x09 110 // { 2, KEY_DISPLAY ,0x00004000 }, // Found @0xffe9a6e8, levent 0x0a 111 // { 0, 0, 0 } 112 //}; 113 114 // Values below go in 'platform_camera.h': 115 //#define CAM_DRYOS 1 116 //#define CAM_DRYOS_2_3_R39 1 // Defined for cameras with DryOS version R39 or higher 117 //#define CAM_RAW_ROWPIX 3728 // Found @0xffce4274 118 //#define CAM_RAW_ROWS 2778 // Found @0xffce427c 119 //#undef CAM_UNCACHED_BIT 120 //#define CAM_UNCACHED_BIT 0x40000000 // Found @0xffc170b0 121 //#define CAM_DATE_FOLDER_NAMING 0x100 // Found @0xffdef5d0 (pass as 3rd param to GetImageFolder) 122 //#define PARAM_CAMERA_NAME 4 // Found @0xffeee7d0 123 124 // Below goes in 'filewrite.c' or 'platform_camera.h': 125 //#define MAX_CHUNKS_FOR_FWT 4 // Found @0xffdfa7ac 126 127 // Known propcases 128 // // PROPCASE_AFSTEP 13 129 // #define PROPCASE_FOCUS_STATE 18 130 // #define PROPCASE_AV 23 131 // #define PROPCASE_BV 34 132 // // PROPCASE_DELTA_DIGITALGAIN 77 133 // #define PROPCASE_DELTA_SV 79 134 // // PROPCASE_DELTA_ND 80 135 // #define PROPCASE_EV_CORRECTION_2 209 136 // #define PROPCASE_ORIENTATION_SENSOR 221 137 // #define PROPCASE_SV_MARKET 248 138 // // PROPCASE_SVFIX 249 139 // #define PROPCASE_TV 264 140 // Guessed propset: 3 141 142 // Misc stuff 143 DEF(ctypes, 0xffe9450e) 144 145 // EXMEM types: 146 // EXMEM_RAMDISK 0 147 // EXMEM_COM 1 148 // EXMEM_FORMATTER 2 149 // EXMEM_SHADING 3 150 // EXMEM_FAMODE 4 151 // EXMEM_FIRMUP 5 152 // EXMEM_FIRMUP_VRAM 6 153 // EXMEM_FIRMUP_INFLATE 7 154 // EXMEM_DVLPWORK 8 155 // EXMEM_EVF 9 156 // EXMEM_SCRIPT 10 157 // EXMEM_FILESTORE 11 158 // EXMEM_MOVIE_REC 12 159 // EXMEM_MOVIE_PLY 13 160 // EXMEM_WIDE 14 161 // EXMEM_NARROW 15 162 // EXMEM_CRAW_REC 16 163 // EXMEM_PCEVF 17 164 165 // ISR flag: 0x1960, pointer to current task's control block: 0x195c 166 // pointer to TCB area: 0x19e4, found @ 0xffc05558 167 168 // LED table init @ 0xffcc7c64 169 // LED #1: 0xc0220014, offset 0x4 170 // LED #2: 0xc022000c, offset 0x244 171 // LED #3: 0xc0220010, offset 0x44 172 173 // For capt_seq.c 174 DEF(_nrflag,0x6690) // Found @ ffd18ed8 (0x6698) & ffd18ef8 (-0x08) 175 //static long *nrflag = (long*)(0x6698-0x08); // Found @ ffd18ed8 & ffd18ef4 176 177 // Stubs below matched 100%. 178 // Name Address Comp to stubs_entry_2.S 179 NHSTUB(AllocateUncacheableMemory ,0xffc1706c) //112 180 NHSTUB(Close ,0xffc13890) //120 181 NHSTUB(CreateBinarySemaphore ,0xffc1684c) //115 182 NHSTUB(CreateTask ,0xffc0ad70) //120 183 NHSTUB(DebugAssert ,0xffc0b048) //107 184 NHSTUB(DeleteDirectory_Fut ,0xffc13220) //116 185 NHSTUB(DeleteFile_Fut ,0xffc1313c) //112 186 NHSTUB(DeleteSemaphore ,0xffc1690c) //120 187 NHSTUB(DoAELock ,0xffc153c4) //120 188 NHSTUB(DoAFLock ,0xffc1516c) //120 189 NHSTUB(EnterToCompensationEVF ,0xffc152bc) //104 190 NHSTUB(ExecuteEventProcedure ,0xffc5cf90) //104 191 NHSTUB(ExitFromCompensationEVF ,0xffc15300) //104 192 NHSTUB(ExitTask ,0xffc0b000) //120 193 NHSTUB(ExpCtrlTool_StartContiAE ,0xffc1fb10) //104 194 NHSTUB(ExpCtrlTool_StopContiAE ,0xffc1fbe8) //104 195 NHSTUB(Fclose_Fut ,0xffc132b8) //120 196 NHSTUB(Feof_Fut ,0xffc134a4) // 1 197 NHSTUB(Fflush_Fut ,0xffc134e0) // 1 198 NHSTUB(Fgets_Fut ,0xffc1340c) // 1 199 NHSTUB(Fopen_Fut ,0xffc13278) //120 200 NHSTUB(Fread_Fut ,0xffc13364) //120 201 NHSTUB(FreeUncacheableMemory ,0xffc170ac) //112 202 NHSTUB(Fseek_Fut ,0xffc13458) //120 203 NHSTUB(Fwrite_Fut ,0xffc133b8) //120 204 NHSTUB(GetBatteryTemperature ,0xffc394d8) //102 205 NHSTUB(GetCCDTemperature ,0xffc39464) //102 206 NHSTUB(GetCurrentAvValue ,0xffd0e010) //120 207 NHSTUB(GetCurrentShutterSpeed ,0xffc76bf4) //120 208 NHSTUB(GetUsableMaxAv ,0xffe607bc) //120 209 NHSTUB(GetUsableMinAv ,0xffe607a4) //120 210 NHSTUB(GetFocusLensSubjectDistance ,0xffd0c5f0) //102 211 NHSTUB(GetFocusLensSubjectDistanceFromLens ,0xffd0ca40) // 3 212 NHSTUB(GetImageFolder ,0xffcec100) //122 213 NHSTUB(GetKbdState ,0xffc36edc) //109 214 NHSTUB(GetMemInfo ,0xffc08d8c) //115 215 NHSTUB(GetOpticalTemperature ,0xffc39550) //120 216 NHSTUB(GetParameterData ,0xffd397f0) //101 217 NHSTUB(GetPropertyCase ,0xffc60ce0) //102 218 NHSTUB(GetSystemTime ,0xffe14348) //120 219 NHSTUB(GetVRAMHPixelsSize ,0xffc29984) //120 220 NHSTUB(GetVRAMVPixelsSize ,0xffc29990) //120 221 NHSTUB(GetZoomLensCurrentPoint ,0xffd10bdc) //120 222 NHSTUB(GetZoomLensCurrentPosition ,0xffe0d1e4) //102 223 NHSTUB(GiveSemaphore ,0xffc16a88) //120 224 NHSTUB(IsStrobeChargeCompleted ,0xffc900b0) //102 225 NHSTUB(LEDDrive ,0xffc36434) //120 226 NHSTUB(LocalTime ,0xffc5ac40) //115 227 NHSTUB(LockMainPower ,0xffc65e60) //120 228 NHSTUB(MakeDirectory_Fut ,0xffc131b0) //116 229 NHSTUB(MoveFocusLensToDistance ,0xffe62adc) //102 230 NHSTUB(MoveIrisWithAv ,0xffe1237c) //120 231 NHSTUB(MoveZoomLensWithPoint ,0xffe129c8) //120 232 NHSTUB(MoveOpticalZoomAt ,0xffc14b14) //109 233 NHSTUB(Open ,0xffc13868) //120 234 NHSTUB(PB2Rec ,0xffc678e0) //104 235 NHSTUB(PT_MoveDigitalZoomToWide ,0xffc4cf48) //120 236 NHSTUB(PT_MoveOpticalZoomAt ,0xffc4cf20) //120 237 NHSTUB(PT_PlaySound ,0xffc55fb8) //102 238 NHSTUB(PostLogicalEventForNotPowerType ,0xffc63d5c) //120 239 NHSTUB(PostLogicalEventToUI ,0xffc63da8) //120 240 NHSTUB(PutInNdFilter ,0xffe60828) //102 241 NHSTUB(PutOutNdFilter ,0xffe60860) //102 242 NHSTUB(Read ,0xffc09894) //120 243 NHSTUB(ReadFastDir ,0xffdfed14) // 1 244 NHSTUB(Rec2PB ,0xffc68cdc) //104 245 NHSTUB(RenameFile_Fut ,0xffc130e8) // 1 246 NHSTUB(Restart ,0xffc187c0) //122 247 NHSTUB(ScreenLock ,0xffd9094c) //117 248 NHSTUB(SetAE_ShutterSpeed ,0xffe652c4) //102 249 NHSTUB(SetAutoShutdownTime ,0xffc65ed4) //120 250 NHSTUB(SetCurrentCaptureModeType ,0xffc6c288) //120 251 NHSTUB(SetDate ,0xffe66d00) //120 252 NHSTUB(SetFileAttributes ,0xffc13bbc) // 1 253 NHSTUB(SetFileTimeStamp ,0xffc13b6c) // 1 254 NHSTUB(SetLogicalEventActive ,0xffc65bb0) //120 255 NHSTUB(SetParameterData ,0xffd39760) //101 256 NHSTUB(SetPropertyCase ,0xffc60be4) //102 257 NHSTUB(SleepTask ,0xffc16cf0) //120 258 NHSTUB(TakeSemaphore ,0xffc169b8) //120 259 NHSTUB(TurnOffBackLight ,0xffc71424) //104 260 NHSTUB(TurnOnBackLight ,0xffc7140c) //104 261 NHSTUB(TurnOnDisplay ,0xffc3291c) //120 262 NHSTUB(TurnOffDisplay ,0xffc3292c) //120 263 NHSTUB(UIFS_WriteFirmInfoToFile ,0xffd2b640) //120 264 NHSTUB(UnlockAE ,0xffc153e8) //120 265 NHSTUB(UnlockAF ,0xffc151a4) //120 266 NHSTUB(UnlockMainPower ,0xffc65db4) //120 267 NHSTUB(UnsetZoomForMovie ,0xffd3fd2c) //104 268 NHSTUB(UpdateMBROnFlash ,0xffc45758) //105 269 NHSTUB(VbattGet ,0xffc10314) //120 270 NHSTUB(Write ,0xffc1393c) //120 271 NHSTUB(WriteSDCard ,0xffcfff68) //108 272 NHSTUB(_log ,0xffe92070) //111 273 NHSTUB(_log10 ,0xffe90fb4) //112 274 NHSTUB(_pow ,0xffe91124) //121 275 NHSTUB(_sqrt ,0xffe933d8) // 1 276 NHSTUB(add_ptp_handler ,0xffdd0ac4) //121 277 NHSTUB(apex2us ,0xffd91ac4) //121 278 NHSTUB(close ,0xffc096ac) //109 279 NHSTUB(err_init_task ,0xffc04c44) //111 280 NHSTUB(exmem_alloc ,0xffc5b874) //103 281 NHSTUB(exmem_ualloc ,0xffc5b6c8) //103 282 NHSTUB(exmem_ufree ,0xffc5b814) //103 283 NHSTUB(free ,0xffc0379c) //112 284 NHSTUB(get_current_deltasv ,0xffc77738) //122 285 NHSTUB(GetCurrentDriveBaseSvValue ,0xffc7cc98) //123 286 NHSTUB(kbd_p1_f ,0xffc11a50) //109 287 NHSTUB(kbd_p1_f_cont ,0xffc11a5c) //109 288 NHSTUB(kbd_p2_f ,0xffc11308) //109 289 NHSTUB(kbd_read_keys ,0xffc119cc) //109 290 NHSTUB(kbd_read_keys_r2 ,0xffc36858) //109 291 NHSTUB(lseek ,0xffc139d0) //120 292 NHSTUB(malloc ,0xffc03740) //112 293 NHSTUB(memcmp ,0xffc0cbbc) //120 294 NHSTUB(memcpy ,0xffc75854) //120 295 NHSTUB(memset ,0xffd90cf4) //120 296 NHSTUB(mkdir ,0xffc13c34) //109 297 NHSTUB(mktime_ext ,0xffc760c0) // 1 298 NHSTUB(open ,0xffc095fc) //109 299 NHSTUB(OpenFastDir ,0xffdfec80) // 1 300 NHSTUB(closedir ,0xffdfede4) // 1 301 NHSTUB(qsort ,0xffe4ef08) // 1 302 NHSTUB(rand ,0xffc0ccc4) //121 303 NHSTUB(realloc ,0xffd90d70) //115 304 NHSTUB(reboot_fw_update ,0xffe027fc) //106 305 NHSTUB(set_control_event ,0xffc65804) //111 306 NHSTUB(srand ,0xffc0ccb8) //122 307 NHSTUB(strcat ,0xffc75668) // 1 308 NHSTUB(strchr ,0xffc756f0) // 1 309 NHSTUB(strcmp ,0xffc0cb54) //120 310 NHSTUB(strcpy ,0xffc0cb3c) //120 311 NHSTUB(strftime ,0xffc75ac8) // 1 312 NHSTUB(strlen ,0xffc0cb98) //120 313 NHSTUB(strncmp ,0xffc756a4) // 1 314 NHSTUB(strncpy ,0xffc1c5b0) // 1 315 NHSTUB(strrchr ,0xffd90ccc) // 1 316 NHSTUB(strtol ,0xffc1c7e8) //101 317 NHSTUB(strtolx ,0xffc1c5ec) //109 318 DEF(task_CaptSeq ,0xffc4f640) //120 319 DEF(task_DvlpSeqTask ,0xffc50c1c) //120 320 DEF(task_ExpDrv ,0xffc86e80) //120 321 DEF(task_FileWrite ,0xffdfa744) //120 322 DEF(task_InitFileModules ,0xffc696ac) //120 323 DEF(task_MovieRecord ,0xffd144f0) //120 324 DEF(task_PhySw ,0xffc11638) //120 325 DEF(task_RotaryEncoder ,0xffc37070) //120 326 NHSTUB(time ,0xffc5aaf4) //109 327 NHSTUB(vsprintf ,0xffc0cb00) //115 328 NHSTUB(EngDrvRead ,0xffc1287c) //102 329 NHSTUB(PTM_GetCurrentItem ,0xffc6687c) //105 330 NHSTUB(DisableISDriveError ,0xffe131e4) //120 331 NHSTUB(CancelHPTimer ,0xffc5c678) //119 332 NHSTUB(SetHPTimerAfterNow ,0xffc5c570) //119 333 NHSTUB(PT_MFOn ,0xffc4cfd8) //120 334 NHSTUB(PT_MFOff ,0xffc4cfe8) //120 335 NHSTUB(GetAdChValue ,0xffc33f98) //120 336 NHSTUB(get_ptp_buf_size ,0xffcb2410) //122 337 NHSTUB(get_ptp_file_buf ,0xffdd2454) //121 338 NHSTUB(SetVideoOutType ,0xffe65ab0) //109 339 NHSTUB(GetVideoOutType ,0xffe65a14) //120