I think this is not very complicated. We change task "SwitchCheckTask" (located at 0xFF830738) to its full copy, with the one exception:ROM:FF830764 LDR R1, =sub_FF8308E8we change to"LDR R1, =sub_FF8308E8_my\n"Function sub_FF8308E8_my() is full copy of original sub_FF8308E8 with the two exceptions:ROM:FF83098C BL sub_FF830E90we replace to "BL sub_FF830E90_my\n"and ROM:FF830A3C LDR R1, =sub_FF8308E8we replace to "LDR R1, =sub_FF8308E8_my\n"And sub_FF830E90 (also called platformsub_kbd_fetch_data()) is very similar to SD500 - reads from I/O ports 0xC0220204 (USB power and mode dial in SD500), 0xC0220208 (keyboard in SD500), 0xC022301C(SD card lock switch is SD500), 0xC0223024 (unknown) and stores results in some structure located at 0x117A8 (physw_status[]).We can modify these variables after call of platformsub_kbd_fetch_data() in sub_FF8308E8_my() or modify sub_FF830E90 as was done in SD500.
Maybe some stack corruption or something??I'm puzzled by the "stack pointer manipulation" that happens on "mykbd_task"... What's it's purpose?
Started by acseven General Discussion and Assistance
Started by RyeBrye « 1 2 ... 6 7 » DryOS Development
Started by hucht General Discussion and Assistance
Started by dazzy RAW Shooting and Processing
Started by Accupro « 1 2 » General Help and Assistance on using CHDK stable releases