1 #include "stubs_asm.h" 2 3 // BEWARE: thumb functions NEED the thumb bit in the below list 4 5 #define NULL_SUB 0xfc02041d // bx lr 6 #define RET1 0xfc02042b // mov r0, #1 ; bx lr 7 #define RET0 0xfc02041f // mov r0, #0 ; bx lr 8 9 NHSTUB(Feof_Fut, 0xfc2d7e91) // sx700v100d from CreateJumptable, after Fgets and Fseek @fc45bdce 10 11 NHSTUB(Fflush_Fut, 0xfc2d7eb9) // sx700v100d Found directly after Feof_Fut in ROM 12 13 NHSTUB(SetFileTimeStamp, 0xfc308225) // sx700v100d from ref to 0x12cea600 @0xfc308238, similar to sx280hs search '^; stat ' 14 15 NHSTUB(SetFileAttributes, 0xfc30826d) // sx700v100d function following SetFileTimeStamp in ROM 16 17 NHSTUB(RenameFile_Fut, 0xfc2d7c41) // sx700v100d +0xfc from 100e address 18 19 NHSTUB(MakeSDCardBootable, 0xfc307ebb) // sx700v100d in function before ref to "SCRIPT" @0xfc307a4e -- Search for SCRIPT from the end, then search back for b.w 20 21 22 NHSTUB(GetFocusLensSubjectDistanceFromLens, 0xfc2dd03d) // call at 0xfc2bd154 via SetISFocusLensDistance_FW 23 24 NHSTUB(GetImageFolder, 0xfc2e08d5) // sx700v100d -- based on ref to fc2e1278 (ref "%s/%3d%s") -> sub_fc3e6a7e, which refs "___%02d" and "_%02d%02d" 25 26 NHSTUB(apex2us, 0xfc31375f) // sx700v100e Shutter.c asserts @ fc1499d0 for line 0x16e, same as 100e fw 27 28 NHSTUB(GetDrive_TotalClusters, 0xfc307aad) // sx700v100d found function immediately before GetDrive_FreeClusters in ROM 29 30 NHSTUB(LogCameraEvent, 0xfc306c97) // sx700v100d debugging, from func csv 31 32 NHSTUB(CancelHPTimer, 0xfc1361c1) //sx700v100d At fc0e3fa2, following LcdSequence, TakeSemaphoreStrictly calls similar to g7x fc0cd6b0 33 34 NHSTUB(get_dial_hw_position, 0xfc364d11) // sx700v100d kbd_p1_f_cont->fc06e0ce->fc06be36, 4 for jogdial 35 36 37 // required because DryOS >=54 functions assert on unitialized event flag, sem etc 38 // see https://chdk.setepontos.com/index.php?topic=12516.0 39 NHSTUB(init_focus_eventflag, 0xfc45d5f7) // sx700v100d InitializeAdjustmentSystem->fc40e254->fc45d5f6 event flag matches MoveFocusLensToDistance 40 41 NHSTUB(init_nd_eventflag, 0xfc45d701) //0xfc45d591// sx700v100d InitializeAdjustmentSystem->fc40e254->fc45d700 event flag matches PutInNdFilter 42 43 NHSTUB(CreateBinarySemaphoreStrictly, 0x010c5b6b) // from csv // sx700v100e 44 45 // unused 46 //NHSTUB(captseq_raw_addr_init, NULL_SUB) //100e was 0xfc12fedf // sx700v100e (via sx60hs) via func fc07b6ba hooked in preshoot case, similar to g7x 47 48 NHSTUB(EnterToCompensationEVF, 0xfc25c275) // sx700v100d search for "ExpOn" 49 50 NHSTUB(ExitFromCompensationEVF, 0xfc25c2af) // sx700v100d search for "ExpOff" 51 52 NHSTUB(ExpCtrlTool_StartContiAE, 0xfc24d425) // sx700v100d search for "ExpCtrl.c" followed by "StartContiAE" 53 54 NHSTUB(ExpCtrlTool_StopContiAE, 0xfc24d505) // sx700v100d search for "ExpCtrl.c" followed by "StopContiAE" 55 56 NHSTUB(Restart, 0xfc0a6eed) // sx700v100d one of the calls to StopRedirectUART_FW 57 58 NHSTUB(SetParameterData, 0xfc0bbe2f) // sx700v100d same as PTM_BackupUIProperty_FW 59 60 NHSTUB(WriteSDCard ,0xfc0e857d) // sx700v100d above the first occurance of the string "Mounter.c" 61 62 NHSTUB(reboot_fw_update ,0xfc370cb1) // sx700v100d look for "FirmUpgrade.c" 63 64 // not implemented 65 NHSTUB(UnsetZoomForMovie,NULL_SUB) 66 NHSTUB(SetZoomActuatorSpeedPercent, NULL_SUB) 67 68 69 // From stubs_entry.S 70 71 //NHSTUB(RefreshPhysicalScreen ,0x00000000) // 0 == 0x00000000 72 //NHSTUB(UnsetZoomForMovie ,0x00000000) // 0 == 0x00000000