source: trunk/platform/d10/sub/100a/capt_seq.c @ 937

Revision 937, 15.1 KB checked in by reyalp, 3 years ago (diff)

fix dark frame subtraction control for d10

  • Property svn:eol-style set to native
Line 
1#include "lolevel.h"
2#include "platform.h"
3#include "core.h"
4#include "conf.h"
5
6static long *nrflag = (long*)(0x64E8); // 0x64F0-8 from sub_FF934548
7
8#include "../../../generic/capt_seq.c"
9
10
11void __attribute__((naked,noinline)) sub_FF934548_my() {
12        asm volatile (
13"                STMFD   SP!, {R0-R8,LR}\n"
14"                MOV     R4, R0\n"
15"                BL      sub_FF9352A0\n" // SsShootEvent.c 60
16"                MVN     R1, #0\n"
17"                BL      sub_FF869BF4\n"
18"                LDR     R5, =0x64E8\n"
19"                LDR     R0, [R5,#0xC]\n"
20"                CMP     R0, #0\n"
21"                BNE     loc_FF934598\n"
22"                MOV     R1, #1\n"
23"                MOV     R0, #0\n"
24"                BL      sub_FF827478\n" // KernelMisc.c 31
25"                STR     R0, [R5,#0xC]\n"
26"                MOV     R3, #0\n"
27"                STR     R3, [SP]\n"
28"                LDR     R3, =0xFF934004\n" // SsCaptureSeq.c 155
29"                LDR     R0, =0xFF9347C8\n" // "ShutterSoundTask"
30"                MOV     R2, #0x400\n"
31"                MOV     R1, #0x17\n"
32"                BL      sub_FF827444\n" // KernelCreateTask
33"loc_FF934598:\n"
34"                MOV     R2, #4\n"
35"                ADD     R1, SP, #8\n"
36"                MOV     R0, #0x8A\n"
37"                BL      sub_FF871CCC\n" // GetPropertyCase
38"                TST     R0, #1\n"
39"                LDRNE   R1, =0x3AE\n"
40"                LDRNE   R0, =0xFF93429C\n" // "SsCaptureSeq.c"
41"                BLNE    sub_FF81B284\n" // DebugAssert
42"                LDR     R8, =0x1441C\n"
43"                LDR     R7, =0x14358\n"
44"                LDRSH   R1, [R8,#0xE]\n"
45"                LDR     R0, [R7,#0x8C]\n"
46"                BL      sub_FF8F68C8\n"
47"                BL      sub_FF8497D0\n" // GetCCDTemperature
48"                LDR     R3, =0x64F0\n"
49"                STRH    R0, [R4,#0x9C]\n"
50"                SUB     R2, R3, #4\n"
51"                STRD    R2, [SP]\n"
52"                MOV     R1, R0\n"
53"                LDRH    R0, [R7,#0x5C]\n"
54"                LDRSH   R2, [R8,#0xC]\n"
55"                SUB     R3, R3, #8\n"
56"                BL      sub_FF9368B4\n"
57//"                BL      wait_until_remote_button_is_released\n" // untested!
58"                BL      capt_seq_hook_set_nr\n"
59"                B       sub_FF9345F4\n" // -> continue in firmware
60        );
61}
62
63void __attribute__((naked,noinline)) sub_FF861320_my() {
64        asm volatile (
65"                STMFD   SP!, {R4-R6,LR}\n"
66"                LDR     R4, [R0,#0xC]\n"
67"                LDR     R6, =0x14358\n"
68"                LDR     R0, [R4,#8]\n"
69"                MOV     R5, #0\n"
70"                ORR     R0, R0, #1\n"
71"                STR     R0, [R4,#8]\n"
72"                LDR     R0, [R6,#0x24]\n"
73"                CMP     R0, #0\n"
74"                MOVEQ   R0, #2\n"
75"                BLEQ    sub_FF85C65C\n"
76"                BL      sub_FF861854\n"
77"                LDR     R0, [R6,#0x24]\n"
78"                CMP     R0, #0\n"
79"                BNE     loc_FF8613D0\n"
80"                MOV     R0, #0\n"
81"                BL      sub_FF935130\n"
82"                MOV     R0, R4\n"
83"                BL      sub_FF861BA4\n"
84"                MOV     R0, R4\n"
85"                BL      sub_FF933130\n"
86"                CMP     R0, #0\n"
87"                BEQ     loc_FF8613A0\n"
88"                BL      sub_FF935170\n"
89"                MOV     R0, R4\n"
90"                BL      sub_FF933214\n" // SsPrePreSeq.c 0
91"                TST     R0, #1\n"
92"                MOVNE   R2, R4\n"
93"                LDMNEFD SP!, {R4-R6,LR}\n"
94"                MOVNE   R1, #1\n"
95"                BNE     sub_FF85F284\n" // SsShootCtrl.c 0
96"                B       loc_FF8613AC\n"
97"loc_FF8613A0:\n"
98"                MOV     R0, R4\n"
99"                BL      sub_FF9331B0\n"
100"                BL      sub_FF935170\n"
101"loc_FF8613AC:\n"
102"                MOV     R0, R4\n"
103"                BL      sub_FF860A18\n"
104"                MOV     R0, R4\n"
105"                BL      sub_FF934460\n" // SsCaptureSeq.c 1
106"                BL      sub_FF934FC0\n" // SsShootLib.c 488
107"                MOV     R0, R4\n"
108"                BL      sub_FF934548_my\n" // SsCaptureSeq.c -> nr setup
109"                MOV     R5, R0\n"
110"                B       loc_FF8613E0\n"
111"loc_FF8613D0:\n"
112"                LDR     R0, =0x2AA0\n"
113"                LDR     R0, [R0,#0x10]\n"
114"                CMP     R0, #0\n"
115"                MOVNE   R5, #0x1D\n"
116"loc_FF8613E0:\n"
117"                BL      capt_seq_hook_raw_here\n"
118"                BL      sub_FF8640F4\n"
119"                BL      sub_FF86413C\n"
120"                BL      sub_FF86417C\n"
121"                MOV     R2, R4\n"
122"                MOV     R1, #1\n"
123"                MOV     R0, R5\n"
124"                BL      sub_FF85F284\n" // SsShootCtrl.c 0
125"                BL      sub_FF9347F4\n"
126"                CMP     R0, #0\n"
127"                LDRNE   R0, [R4,#8]\n"
128"                ORRNE   R0, R0, #0x2000\n"
129"                STRNE   R0, [R4,#8]\n"
130"                LDMFD   SP!, {R4-R6,PC}\n"
131    );
132}
133
134void __attribute__((naked,noinline)) task_CaptSeqTask_my() {
135        asm volatile (
136"                STMFD   SP!, {R3-R9,LR}\n"
137"                LDR     R6, =0x2AA0\n"
138"                LDR     R4, =0x14358\n"
139"                MOV     R9, #1\n"
140"                MOV     R7, #0\n"
141"loc_FF860F48:\n"
142"                LDR     R0, [R6,#4]\n"
143"                MOV     R2, #0\n"
144"                MOV     R1, SP\n"
145"                BL      sub_FF826C30\n" // KerQueue.c 0
146"                TST     R0, #1\n"
147"                BEQ     loc_FF860F74\n"
148"                LDR     R1, =0x588\n"
149"                LDR     R0, =0xFF860A98\n" // aSsshoottask_c
150"                BL      sub_FF81B284\n" // DebugAssert
151"                BL      sub_FF81B23C\n" // eventproc_export_ExitTask
152"                LDMFD   SP!, {R3-R9,PC}\n"
153"loc_FF860F74:\n"
154"                LDR     R0, [SP]\n"
155"                LDR     R1, [R0]\n"
156"                CMP     R1, #0x1E\n"
157"                ADDLS   PC, PC, R1,LSL#2\n"
158"                B       loc_FF8611FC\n"
159"                B       loc_FF861004\n"
160"                B       loc_FF861068\n"
161"                B       loc_FF8610A4\n"
162"                B       loc_FF8610B8\n"
163"                B       loc_FF8610B0\n"
164"                B       loc_FF8610C0\n"
165"                B       loc_FF8610C8\n"
166"                B       loc_FF8610D0\n"
167"                B       loc_FF861128\n"
168"                B       loc_FF861150\n"
169"                B       loc_FF861134\n"
170"                B       loc_FF861140\n"
171"                B       loc_FF861148\n"
172"                B       loc_FF861158\n"
173"                B       loc_FF861160\n"
174"                B       loc_FF861168\n"
175"                B       loc_FF861170\n"
176"                B       loc_FF861178\n"
177"                B       loc_FF861180\n"
178"                B       loc_FF861188\n"
179"                B       loc_FF861190\n"
180"                B       loc_FF861198\n"
181"                B       loc_FF8611A4\n"
182"                B       loc_FF8611AC\n"
183"                B       loc_FF8611B8\n"
184"                B       loc_FF8611C0\n"
185"                B       loc_FF8611C8\n"
186"                B       loc_FF8611D0\n"
187"                B       loc_FF8611D8\n"
188"                B       loc_FF8611E4\n"
189"                B       loc_FF861208\n"
190"loc_FF861004:\n"
191// jumptable FF860F80 entry 0
192"                BL      sub_FF861864\n" // SsPrepareSeq.c 0
193// TODO do we need the short press hack ?
194"                BL      shooting_expo_param_override\n"  // +
195"                BL      sub_FF85ED58\n"
196"                LDR     R0, [R4,#0x24]\n"
197"                CMP     R0, #0\n"
198"                BEQ     loc_FF861208\n"
199"                BL      sub_FF860774\n"
200"                MOV     R5, R0\n"
201"                LDR     R0, [R4,#0x24]\n"
202"                CMP     R0, #0\n"
203"                BEQ     loc_FF86104C\n"
204"                MOV     R0, #0xC\n"
205"                BL      sub_FF8659A4\n"
206"                TST     R0, #1\n"
207"                STRNE   R9, [R6,#0x10]\n"
208"                LDRNE   R0, [R5,#8]\n"
209"                ORRNE   R0, R0, #0x40000000\n"
210"                STRNE   R0, [R5,#8]\n"
211"                BNE     loc_FF861208\n"
212"loc_FF86104C:\n"
213"                MOV     R0, R5\n"
214"                BL      sub_FF860A18\n"
215"                MOV     R0, R5\n"
216"                BL      sub_FF934548_my\n" // SsCaptureSeq.c 0 -> nr setup (quick press)
217"                TST     R0, #1\n"
218"                STRNE   R9, [R6,#0x10]\n"
219"                B       loc_FF861208\n"
220"loc_FF861068:\n"
221// jumptable FF860F80 entry 1
222// TODO this doesn't look like entry 1 on sd990
223"                LDR     R0, [R4,#0x24]\n"
224"                CMP     R0, #0\n"
225"                BNE     loc_FF861094\n"
226"                MOV     R0, #0xC\n"
227"                BL      sub_FF8659A4\n"
228"                TST     R0, #1\n"
229"                LDRNE   R0, [SP]\n"
230"                MOVNE   R1, #1\n"
231"                LDRNE   R2, [R0,#0xC]\n"
232"                MOVNE   R0, #1\n"
233"                BNE     loc_FF861120\n"
234"loc_FF861094:\n"
235"                LDR     R0, [SP]\n"
236"                BL      sub_FF861320_my\n" // looks equivalent to sd990 sub_FF8662E0
237"loc_FF86109C:\n"
238"                STR     R7, [R4,#0x24]\n"
239"                B       loc_FF861208\n"
240"loc_FF8610A4:\n"
241// jumptable FF860F80 entry 2
242"                MOV     R0, #1\n"
243"                BL      sub_FF861A7C\n" // SsPrepareSeq.c 0
244"                B       loc_FF861208\n"
245"loc_FF8610B0:\n"
246// jumptable FF860F80 entry 4
247"                BL      sub_FF8614AC\n"
248"                B       loc_FF86109C\n"
249"loc_FF8610B8:\n"
250// jumptable FF860F80 entry 3
251"                BL      sub_FF861844\n" // SsPrepareSeq.c 4
252"                B       loc_FF86109C\n"
253"loc_FF8610C0:\n"
254// jumptable FF860F80 entry 5
255"                BL      sub_FF86184C\n"
256"                B       loc_FF861208\n"
257"loc_FF8610C8:\n"
258// jumptable FF860F80 entry 6
259"                BL      sub_FF86199C\n" // SsPrepareSeq.c 960
260"                B       loc_FF86112C\n"
261"loc_FF8610D0:\n"
262// jumptable FF860F80 entry 7
263"                LDR     R5, [R0,#0xC]\n"
264"                BL      sub_FF861854\n"
265"                MOV     R0, R5\n"
266"                BL      sub_FF93351C\n" // SsPrePreSeq.c 505
267"                TST     R0, #1\n"
268"                MOV     R8, R0\n"
269"                BNE     loc_FF861110\n"
270"                BL      sub_FF871E5C\n" // PropertyCase.c 0
271"                STR     R0, [R5,#0x18]\n"
272"                MOV     R0, R5\n"
273"                BL      sub_FF934460\n" // SsCaptureSeq.c 1
274"                MOV     R0, R5\n"
275"                BL      sub_FF934850\n" // SsCaptureSeq.c 4
276"                MOV     R8, R0\n"
277"                LDR     R0, [R5,#0x18]\n"
278"                BL      sub_FF872070\n" // PropertyCase.c 0
279"loc_FF861110:\n"
280"                BL      sub_FF861844\n" // SsPrepareSeq.c 4
281"                MOV     R2, R5\n"
282"                MOV     R1, #9\n"
283"                MOV     R0, R8\n"
284"loc_FF861120:\n"
285"                BL      sub_FF85F284\n" // SsShootCtrl.c 0
286"                B       loc_FF861208\n"
287"loc_FF861128:\n"
288// jumptable FF860F80 entry 8
289"                BL      sub_FF8619FC\n" // SsPrepareSeq.c 0
290"loc_FF86112C:\n"
291"                BL      sub_FF85ED58\n"
292"                B       loc_FF861208\n"
293"loc_FF861134:\n"
294// jumptable FF860F80 entry 10
295"                LDR     R0, [R4,#0x54]\n"
296"                BL      sub_FF861E10\n" // SsMovieRec.c 184
297"                B       loc_FF861208\n"
298"loc_FF861140:\n"
299// jumptable FF860F80 entry 11
300"                BL      sub_FF8620B8\n" // SsMovieRec.c 2
301"                B       loc_FF861208\n"
302"loc_FF861148:\n"
303// jumptable FF860F80 entry 12
304"                BL      sub_FF86214C\n" // SsMovieRec.c 43
305"                B       loc_FF861208\n"
306"loc_FF861150:\n"
307// jumptable FF860F80 entry 9
308"                BL      sub_FF861844\n" // SsPrepareSeq.c 4
309"                B       loc_FF861208\n"
310"loc_FF861158:\n"
311// jumptable FF860F80 entry 13
312"                BL      sub_FF93373C\n"
313"                B       loc_FF861208\n"
314"loc_FF861160:\n"
315// jumptable FF860F80 entry 14
316"                BL      sub_FF933924\n"
317"                B       loc_FF861208\n"
318"loc_FF861168:\n"
319// jumptable FF860F80 entry 15
320"                BL      sub_FF9339B4\n" // SsExpCompSeq.c 105
321"                B       loc_FF861208\n"
322"loc_FF861170:\n"
323// jumptable FF860F80 entry 16
324"                BL      sub_FF933A68\n"
325"                B       loc_FF861208\n"
326"loc_FF861178:\n"
327// jumptable FF860F80 entry 17
328"                MOV     R0, #0\n"
329"                B       loc_FF86119C\n"
330"loc_FF861180:\n"
331// jumptable FF860F80 entry 18
332"                BL      sub_FF933DC4\n"
333"                B       loc_FF861208\n"
334"loc_FF861188:\n"
335// jumptable FF860F80 entry 19
336"                BL      sub_FF933E54\n" // SsMFSeq.c 110
337"                B       loc_FF861208\n"
338"loc_FF861190:\n"
339// jumptable FF860F80 entry 20
340"                BL      sub_FF933F14\n" // SsMFSeq.c 177
341"                B       loc_FF861208\n"
342"loc_FF861198:\n"
343// jumptable FF860F80 entry 21
344"                MOV     R0, #1\n"
345"loc_FF86119C:\n"
346"                BL      sub_FF933C8C\n"
347"                B       loc_FF861208\n"
348"loc_FF8611A4:\n"
349// jumptable FF860F80 entry 22
350"                BL      sub_FF861BFC\n"
351"                B       loc_FF861208\n"
352"loc_FF8611AC:\n"
353// jumptable FF860F80 entry 23
354"                BL      sub_FF861C9C\n"
355"                BL      sub_FF824A48\n"
356"                B       loc_FF861208\n"
357"loc_FF8611B8:\n"
358// jumptable FF860F80 entry 24
359"                BL      sub_FF933B24\n"
360"                B       loc_FF861208\n"
361"loc_FF8611C0:\n"
362// jumptable FF860F80 entry 25
363"                BL      sub_FF933B90\n" // SsChgExpSeq.c 0
364"                B       loc_FF861208\n"
365"loc_FF8611C8:\n"
366// jumptable FF860F80 entry 26
367"                BL      sub_FF86408C\n"
368"                B       loc_FF861208\n"
369"loc_FF8611D0:\n"
370// jumptable FF860F80 entry 27
371"                BL      sub_FF8640F4\n"
372"                B       loc_FF861208\n"
373"loc_FF8611D8:\n"
374// jumptable FF860F80 entry 28
375"                BL      sub_FF864150\n"
376"                BL      sub_FF864110\n"
377"                B       loc_FF861208\n"
378"loc_FF8611E4:\n"
379// jumptable FF860F80 entry 29
380"                MOV     R0, #1\n"
381"                BL      sub_FF935130\n"
382"                LDRH    R0, [R4,#0x98]\n"
383"                CMP     R0, #4\n"
384"                BLNE    sub_FF8643BC\n" // SsLiveFunc.c 780
385"                B       loc_FF861208\n"
386"loc_FF8611FC:\n"
387// jumptable FF860F80 default entry
388"                LDR     R1, =0x6C9\n"
389"                LDR     R0, =0xFF860A98\n" // aSsshoottask_c
390"                BL      sub_FF81B284\n" // DebugAssert
391"loc_FF861208:\n"
392// jumptable FF860F80 entry 30
393"                LDR     R0, [SP]\n"
394"                LDR     R1, [R0,#4]\n"
395"                LDR     R0, [R6]\n"
396"                BL      sub_FF869BC0\n"
397"                LDR     R5, [SP]\n"
398"                LDR     R0, [R5,#8]\n"
399"                CMP     R0, #0\n"
400"                LDREQ   R1, =0x12B\n"
401"                LDREQ   R0, =0xFF860A98\n" // aSsshoottask_c
402"                BLEQ    sub_FF81B284\n" // DebugAssert
403"                STR     R7, [R5,#8]\n"
404"                B       loc_FF860F48\n"
405    );
406}
Note: See TracBrowser for help on using the repository browser.