source: trunk/platform/ixus900_sd900/sub/100c/stubs_min.S @ 959

Revision 959, 11.8 KB checked in by reyalp, 3 years ago (diff)

ixus900_sd900 port by pixeldoc http://chdk.kernreaktor.org/mantis/view.php?id=347

  • Property svn:eol-style set to native
Line 
1#include "stubs_asm.h"
2
3// This stuff is mostly memory (RAM) related
4// some things are based on quietschi's port to SD1000
5
6/******************* physw_status & physw_run
7ROM:FF827EFC sub_FF827EFC                            ; CODE XREF: ROM:FF827EF4
8ROM:FF827EFC                 LDR     R3, =0xFBA0     ; <--- ### physw_status ###
9ROM:FF827F00                 LDR     R0, [R3,R4,LSL#2]
10ROM:FF827F04                 LDMFD   SP!, {R4,PC}
11ROM:FF827F04 ; End of function sub_FF827EFC
12ROM:FF827F08 off_FF827F08    DCD aPhysw_c            ; DATA XREF: ROM:FF827EF0 "PhySw.c"
13ROM:FF827F0C dword_FF827F0C  DCD 0xFBA0              ; DATA XREF: sub_FF827EFC
14ROM:FF827F10 PhySw_task                              ; DATA XREF: ROM:off_FF827ED4
15ROM:FF827F10                 STMFD   SP!, {R4,LR}
16ROM:FF827F14                 LDR     R2, =0x1FDC     ; <--- ### physw_run ###
17ROM:FF827F18                 LDR     R3, [R2]
18ROM:FF827F1C                 CMP     R3, #0
19ROM:FF827F20                 BEQ     loc_FF827F4C
20ROM:FF827F24                 MOV     R4, R2
21*******************/
22DEF(physw_status, 0xFBA0)   // ROM:FF827F0C search function "PhySw_task" #
23DEF(physw_run, 0x1FDC)   // ROM:FF827F54 look one function above function "PhySw_task" #
24
25
26/******************* zoom_busy
27ROM:FFAF04C4 dword_FFAF04C4  DCD 0xAB18              ; DATA XREF: sub_FFAF04B4
28ROM:FFAF04C8 aZoomlens       DCB "ZoomLens",0        ; DATA XREF: ROM:off_FFAF0578
29ROM:FFAF04D4 sub_FFAF04D4                            ; CODE XREF: sub_FFAE9F90+18
30ROM:FFAF04D4                 STMFD   SP!, {R4-R7,LR}
31ROM:FFAF04D8                 LDR     R7, =0xAB1C
32ROM:FFAF04DC                 LDR     R5, [R7]
33ROM:FFAF04E0                 CMP     R5, #0
34ROM:FFAF04E4                 LDR     R6, =0x823E8
35ROM:FFAF04E8                 LDMNEFD SP!, {R4-R7,PC}
36ROM:FFAF04EC                 BL      RegisterEventProcedureForLcdDrv
37ROM:FFAF04F0                 MOV     R1, #1
38ROM:FFAF04F4                 MOV     R0, R5
39ROM:FFAF04F8                 BL      CreateBinarySemaphoreStrictly ; LOCATION: StrictWrapper.c:61
40ROM:FFAF04FC                 LDR     R3, =0x823E4
41ROM:FFAF0500                 LDR     R12, =0x823C0   ; <--- ### zoom_busy_0 ###
42ROM:FFAF0504                 LDR     R4, =0x823BC
43ROM:FFAF0508                 STR     R0, [R3]
44ROM:FFAF050C                 MOV     R2, #0x10
45ROM:FFAF0510                 STR     R5, [R12]
46ROM:FFAF0514                 MOV     R1, #0xA
47ROM:FFAF0518                 LDR     R0, =aZoomlens
48ROM:FFAF051C                 STR     R5, [R4]
49ROM:FFAF0520                 BL      sub_FFAEA214
50ROM:FFAF0524                 STR     R0, [R6]
51ROM:FFAF0528                 BL      taskcreate_ZoomEvent
52*******************/
53DEF(zoom_busy, 0x823C0)   // ROM:FFAF0500 search above string "ZoomLens" #
54
55
56DEF(focus_busy, 0x82E18)   // ROM:FFB00A90 search below string "FocusLensController" #
57
58
59/******************* playrec_mode
60ROM:FF991D80 ; LOCATION: StartupTask.c:360
61ROM:FF991D80 task_SsStartupTask                      ; DATA XREF: ROM:off_FF991C44
62ROM:FF991D80                 STMFD   SP!, {R4-R6,LR}
63ROM:FF991D84                 BL      unknown_libname_449 ; "Canon A-Series Firmware"  ; <--- ### follow this call, look at ROM:FF99CD0C ###
64ROM:FF991D88                 CMP     R0, #1
65ROM:FF991D8C                 BEQ     loc_FF991DA0
66ROM:FF991D90                 MOV     R1, #0x168
67ROM:FF991D94                 LDR     R0, =aStartuptask_c
68ROM:FF991D98                 ADD     R1, R1, #1
69ROM:FF991D9C                 BL      DebugAssert
70ROM:FF991DA0 loc_FF991DA0                            ; CODE XREF: task_SsStartupTask+C
71ROM:FF991DA0                 LDR     R6, =0x76B14
72ROM:FF991DA4                 MOV     R1, #0x10
73ROM:FF991DA8                 LDR     R0, [R6]
74ROM:FF991DAC                 MOV     R2, #0
75ROM:FF991DB0                 BL      unknown_libname_22 ; "Canon A-Series Firmware"
76ROM:FF991DB4                 ANDS    R4, R0, #1
77ROM:FF991DB8                 BEQ     loc_FF991DD0
78ROM:FF991DBC                 MOV     R1, #0x17C
79ROM:FF991DC0                 LDR     R0, =aStartuptask_c
80ROM:FF991DC4                 ADD     R1, R1, #2
81ROM:FF991DC8                 BL      DebugAssert
82ROM:FF991DCC                 B       loc_FF991EB0
83ROM:FF99CD0C unknown_libname_449                     ; CODE XREF: ROM:FF98ED98
84ROM:FF99CD0C                 LDR     R3, =0x6F6C     ; <--- ### playrec_mode ##
85ROM:FF99CD10                 LDR     R0, [R3]
86ROM:FF99CD14                 RET
87*******************/
88DEF(playrec_mode, 0x6F6C)   // ROM:FF99CD0C look at function unknown_libname_449 #
89
90
91/******************* FlashParamsTable
92ROM:FF9AE938 _sub_FF9AE938__ParameterManager.c__148  ; CODE XREF: GetParameterData+A4
93ROM:FF9AE938                 MOV     R0, R0,LSL#16
94ROM:FF9AE93C                 MOV     R3, R3,LSL#16
95ROM:FF9AE940                 MOV     R0, R0,LSR#16
96ROM:FF9AE944                 STMFD   SP!, {R4-R8,LR}
97ROM:FF9AE948                 MOV     R7, R2
98ROM:FF9AE94C                 MOV     R8, R1
99ROM:FF9AE950                 MOV     R4, R3,ASR#16
100ROM:FF9AE954                 BL      _sub_FF9AB204__PropertyTable.c__4928 ; follow call for FlashParamsTable
101ROM:FF9AE958                 MOV     R5, R0
102ROM:FF9AE95C                 LDRH    R3, [R5,#4]
103ROM:FF9AE960                 BIC     R3, R3, #3
104ROM:FF9AE964                 MOV     R3, R3,LSL#16
105ROM:FF9AE968                 LDR     R2, =0x7BAB8
106ROM:FF9AE96C                 MOV     R3, R3,LSR#16
107ROM:FF9AE970                 ADD     R3, R3, R2
108ROM:FF9AE974                 CMP     R7, #0
109ROM:FF9AE978                 LDR     R0, =aParametermanager_c
110ROM:FF9AE97C                 MOV     R1, #0x94
111ROM:FF9AE980                 ADD     R6, R3, #5
112ROM:FF9AE984                 BNE     loc_FF9AE98C
113ROM:FF9AE988                 BL      DebugAssert
114ROM:FF9B0A18 _sub_FF9B0A18__PropertyTable.c__4928    ; CODE XREF: sub_FF9B3FB8+18
115ROM:FF9B0A18                 STMFD   SP!, {R4,LR}
116ROM:FF9B0A1C                 MOV     R4, R0
117ROM:FF9B0A20                 MOV     R1, #0x1340
118ROM:FF9B0A24                 CMP     R4, #0x6D
119ROM:FF9B0A28                 ADD     R1, R1, #0x1E
120ROM:FF9B0A2C                 LDR     R0, =aPropertytable_c
121ROM:FF9B0A30                 BLS     loc_FF9B0A38
122ROM:FF9B0A34                 BL      DebugAssert
123ROM:FF9B0A38 loc_FF9B0A38                            ; CODE XREF: _sub_FF9B0A18__PropertyTable.c__4928+18
124ROM:FF9B0A38                 LDR     R3, =off_FF9B0860 ; FlashParamsTable
125ROM:FF9B0A3C                 LDR     R0, [R3,R4,LSL#2]
126ROM:FF9B0A40                 LDMFD   SP!, {R4,PC}
127ROM:FF9B0A40 ; End of function _sub_FF9B0A18__PropertyTable.c__4928
128*******************/
129DEF(FlashParamsTable, 0xFF9AB04C)   // ROM:FF9AB224 #
130
131
132/******************* canon_menu_active
133ROM:FFA536DC eventproc_StartRecModeMenu              ; CODE XREF: sub_FF9DAA88+28
134ROM:FFA536DC                 STMFD   SP!, {R4-R7,LR}
135ROM:FFA536E0                 LDR     R5, =0x9278     ; <--- ### canon_menu_active ###
136ROM:FFA536E4                 LDR     R2, =0x9274     ; <--- canon_menu_active2
137ROM:FFA536E8                 LDR     R3, [R5]
138ROM:FFA536EC                 CMP     R3, R2
139ROM:FFA536F0                 MOV     R7, #0x840
140ROM:FFA536F4                 LDMNEFD SP!, {R4-R7,PC}
141ROM:FFA536F8                 BL      sub_FFA535A4
142ROM:FFA536FC                 MOVL    R0, 0xFFFFFFFF
143ROM:FFA53700                 BL      sub_FF9A5798
144ROM:FFA53704                 BL      eventproc_export_LockPhysicalScreen
145ROM:FFA53708                 BL      sub_FF9F3E34
146ROM:FFA5370C                 BL      eventproc_export_IsEnableRefreshPhysicalScreen
147ROM:FFA53710                 MOV     R6, R0
148ROM:FFA53714                 CMP     R6, #1
149ROM:FFA53718                 BNE     loc_FFA53720
150ROM:FFA5371C                 BL      eventproc_export_DisableRefreshPhysicalScreen
151ROM:FFA53720 loc_FFA53720                            ; CODE XREF: eventproc_StartRecModeMenu+3C
152*******************/
153DEF(canon_menu_active,0x9278)   // ROM:FFA536E0 look for function "eventproc_StartRecModeMenu" #
154
155
156/******************* canon_shoot_menu_active
157ROM:FF9EF87C taskcreate_DSITask                      ; CODE XREF: sub_FF9DA020+3C
158ROM:FF9EF87C var_10          = -0x10
159ROM:FF9EF87C                 STMFD   SP!, {R4,R5,LR}
160ROM:FF9EF880                 LDR     R5, =0x809C     ; <--- ### canon_shoot_menu_active ###
161ROM:FF9EF884                 LDR     R4, [R5]
162ROM:FF9EF888                 SUB     SP, SP, #4
163ROM:FF9EF88C                 CMP     R4, #0
164ROM:FF9EF890                 MOV     R1, #0xA
165ROM:FF9EF894                 MOV     R0, R4
166ROM:FF9EF898                 BNE     loc_FF9EF8E0
167ROM:FF9EF89C                 BL      CreateMessageQueueStrictly ; LOCATION: StrictWrapper.c:37
168ROM:FF9EF8A0                 MOV     R1, #0x19
169ROM:FF9EF8A4                 STR     R0, [R5,#8]
170ROM:FF9EF8A8                 LDR     R3, =task_DSITask
171ROM:FF9EF8AC                 LDR     R0, =aDsitask
172ROM:FF9EF8B0                 MOV     R2, #0x1000
173ROM:FF9EF8B4                 STR     R4, [SP]
174ROM:FF9EF8B8                 BL      CreateTaskStrictly ; LOCATION: StrictWrapper.c:25
175ROM:FF9EF8BC                 MOV     R3, R0
176ROM:FF9EF8C0                 TST     R3, #1
177ROM:FF9EF8C4                 MOV     R1, #0xF9
178ROM:FF9EF8C8                 LDR     R0, =aDsitask_c
179ROM:FF9EF8CC                 STR     R3, [R5,#4]
180ROM:FF9EF8D0                 BEQ     loc_FF9EF8D8
181ROM:FF9EF8D4                 BL      DebugAssert
182*******************/
183DEF(canon_shoot_menu_active,0x8099)   // ROM:FF9EF880 in taskcreate_DSITask() , LDR R5, =0x809C; then 0x809C - 0x4 + 0x1 = 0x8099 (quietschi's prescription, SD1000) #
184
185
186/******************* recreview_hold
187ROM:FF9E1F14 sub_FF9E1F14                            ; CODE XREF: sub_FF9E20C0-11C
188ROM:FF9E1F14 var_D           = -0xD
189ROM:FF9E1F14                 STMFD   SP!, {R4,R5,LR}
190ROM:FF9E1F18                 LDR     R3, =0x7EB4     ; <--- ### recreview_hold ###
191ROM:FF9E1F1C                 SUB     SP, SP, #4
192ROM:FF9E1F20                 LDRH    R12, [R3]
193ROM:FF9E1F24                 MOV     R5, #0
194ROM:FF9E1F28                 MOV     R3, R0,LSL#16
195ROM:FF9E1F2C                 CMP     R12, #0
196ROM:FF9E1F30                 MOV     R0, #0x4000
197ROM:FF9E1F34                 ADD     R1, SP, #0x10+var_D
198ROM:FF9E1F38                 MOV     R2, #1
199ROM:FF9E1F3C                 ADD     R0, R0, #0xE
200ROM:FF9E1F40                 MOV     R4, R3,ASR#16
201ROM:FF9E1F44                 STRB    R5, [SP,#0x10+var_D]
202ROM:FF9E1F48                 BEQ     loc_FF9E1F80
203ROM:FF9E1F4C                 BL      eventproc_export_PTM_RestoreUIProperty ; LOCATION: BootParam.c:316
204*******************/
205DEF(recreview_hold, 0x7EB0)   // ROM:FF9E1F18 after function string "AR:Snd:0x%04x", LDR R3, =0x7EB4; then 0x7EB4 - 0x4 = 0x7EB0 (quietschi's prescription, SD1000)
206
207
208//DEF(zoom_status, 0x7DB0)   // from SD800 ROM:FF9EAADC ?
209DEF(zoom_status, 0x7F70)
210
211
212//DEF(movie_status, 0x8BC00)   // from SD800 ROM:FF98BE98 ?
213DEF(movie_status, 0x76410)
214
215
216//DEF(some_flag_for_af_scan, 0x6AE0)   // from SD800 ROM:FF99923C or ROM:FF99B358 ?
217DEF(some_flag_for_af_scan, 0x6B8C)   // ??? ROM:FF992F68 or ROM:FF99524C
218
219
220// DEF(some_f_for_dng, 0x9A68)   // ??? from SD800 ROM:FFAB182C ?
221//DEF(some_f_for_dng, 0x9CD4)   // ??? ROM:FFAB1180
222DEF(some_f_for_dng, 0x9C84)   // ??? ROM:FFAB1184
223
224//DEF(second_ext_for_dng, 0x9A8C)   // from SD800 (0x9A8C does not exist in SD800 -> wrong?)
225//DEF(second_ext_for_dng, 0x9CD4)   // ??? ROM:FFAB1180
226DEF(second_ext_for_dng, 0x9CA8)   // ??? some_f_for_dng + 0x24
227
228// Key values for 'Feather' on joystic
229// Could be retrieved from 'PhySW' Task function
230DEF(touch_keys_angle, 0x429F4)
231
232// Semaphore address to disable Feather processing
233DEF(touch_keys_sema, 0x9C2C)  // 0x9C10 + 0x1C
234
235// ROM:FF8286DC eventproc_ShowPhySwStatus()
236DEF(NotifyMask, 0x0000FB70)
237DEF(SwitchMask, 0x0000FB80)
238DEF(InvertData, 0x0000FB90)
239// This is the real name for 'physw_status'
240DEF(GpioStatus, 0x0000FBA0)
241DEF(SwitchStatus, 0x0000FBB0)
242
243// Logical Event Table
244DEF(levent_table,0xFF9A1124)   // search for "DCD aPressrightbutton" and look above
Note: See TracBrowser for help on using the repository browser.