root/platform/ixus1000_sd4500/sub/100f/capt_seq.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. capt_seq_task
  2. sub_FF98ADD8_my
  3. sub_FFAE37D0_my
  4. sub_FFAE3308_my
  5. sub_FF98AB6C_my
  6. exp_drv_task
  7. sub_FF8C9AD0_my
  8. sub_FF8BA3A4_my

   1 #include "lolevel.h"
   2 #include "platform.h"
   3 #include "core.h"
   4 #include "conf.h"
   5 
   6 static long *nrflag = (long*)0xDDA8;  // -> ASM1989 11.06.2010 found at FFAE3478 in s95:FFAF9528  in sx210: FF972F10
   7 
   8 #include "../../../generic/capt_seq.c"
   9 
  10 //ASM1989 Started  :FF883630   in sx210: FF87EB90
  11 void __attribute__((naked,noinline)) capt_seq_task() {
  12  asm volatile (
  13                  "STMFD   SP!, {R3-R7,LR}\n"
  14                  "LDR     R7, =0x3474\n"                // In sx200 was: 0x2B78
  15                  "LDR     R4, =0x3C5E4\n"               // In sx200 was: 0x15448
  16                  "MOV     R6, #0\n"
  17 "loc_FF883640:\n"
  18                  "LDR     R0, [R7,#4]\n"
  19                  "MOV     R2, #0\n"
  20                  "MOV     R1, SP\n"
  21                  "BL      sub_FF83AE20\n"
  22                  "TST     R0, #1\n"
  23                  "BEQ     loc_FF88366C\n"
  24                  "LDR     R1, =0x43F\n"
  25                  "LDR     R0, =0xFF88319C\n"  //aSsshoottask_c
  26                  "BL      sub_FF81EB78\n"               //DebugAssert
  27                  "BL      sub_FF81EB30\n"               //eventproc_export_ExitTask
  28                  "LDMFD   SP!, {R3-R7,PC}\n"
  29 
  30 "loc_FF88366C:\n"
  31                  "LDR     R0, [SP]\n"
  32                  "LDR     R1, [R0]\n"
  33                  "CMP     R1, #0x1F\n"
  34                  "ADDLS   PC, PC, R1,LSL#2\n"
  35                  "B       loc_FF883868\n"
  36 
  37 "loc_FF883680:\n"
  38                 "B      loc_FF883700\n"
  39 "loc_FF883684:\n"
  40                 "B      loc_FF883718\n"
  41 "loc_FF883688:\n"
  42                 "B      loc_FF883730\n"
  43 "loc_FF88368C:\n"
  44                 "B      loc_FF883744\n"
  45 "loc_FF883690:\n"
  46                 "B      loc_FF88373C\n"
  47 "loc_FF883694:\n"
  48                 "B      loc_FF883750\n"
  49 "loc_FF883698:\n"
  50                 "B      loc_FF883758\n"
  51 "loc_FF88369C:\n"
  52                 "B      loc_FF883760\n"
  53 "loc_FF8836A0:\n"
  54                 "B      loc_FF88376C\n"
  55 "loc_FF8836A4:\n"
  56                 "B      loc_FF883794\n"
  57 "loc_FF8836A8:\n"
  58                 "B      loc_FF883778\n"
  59 "loc_FF8836AC:\n"
  60                 "B      loc_FF883784\n"
  61 "loc_FF8836B0:\n"
  62                 "B      loc_FF88378C\n"
  63 "loc_FF8836B4:\n"
  64                 "B      loc_FF88379C\n"
  65 "loc_FF8836B8:\n"
  66                 "B      loc_FF8837A4\n"
  67 "loc_FF8836BC:\n"
  68                 "B      loc_FF8837AC\n"
  69 "loc_FF8836C0:\n"
  70                 "B      loc_FF8837B4\n"
  71 "loc_FF8836C4:\n"
  72                 "B      loc_FF8837BC\n"
  73 "loc_FF8836C8:\n"
  74                 "B      loc_FF8837C8\n"
  75 "loc_FF8836CC:\n"
  76                 "B      loc_FF8837D0\n"
  77 "loc_FF8836D0:\n"
  78                 "B      loc_FF8837D8\n"
  79 "loc_FF8836D4:\n"
  80                 "B      loc_FF8837E0\n"
  81 "loc_FF8836D8:\n"
  82                 "B      loc_FF8837E8\n"
  83 "loc_FF8836DC:\n"
  84                 "B      loc_FF8837F4\n"
  85 "loc_FF8836E0:\n"
  86                 "B      loc_FF8837FC\n"
  87 "loc_FF8836E4:\n"
  88                 "B      loc_FF883804\n"
  89 "loc_FF8836E8:\n"
  90                 "B      loc_FF88380C\n"
  91 "loc_FF8836EC:\n"
  92                 "B      loc_FF883814\n"
  93 "loc_FF8836F0:\n"
  94                 "B      loc_FF88381C\n"
  95 "loc_FF8836F4:\n"
  96                 "B      loc_FF883824\n"
  97 "loc_FF8836F8:\n"
  98                 "B      loc_FF883830\n"
  99 "loc_FF8836FC:\n"
 100                 "B      loc_FF883874\n"
 101 "loc_FF883700:\n"
 102         "BL      sub_FF883D88\n"
 103 
 104 
 105                  "BL      shooting_expo_param_override\n"  // +
 106                  "BL      sub_FF880F24\n"
 107 
 108 // copied over from SX10 don't know if we need it yet
 109  //  this code added to avoid some incorrect behavior if overrides are used.
 110  //  but it can cause some unexpected side effects. In this case, remove this code!
 111 
 112                  "MOV     R0, #0\n"
 113                  "STR     R0, [R4,#0x24]\n"  // fixes overrides  behavior at short shutter press
 114  //  end of my code
 115                  "LDR     R0, [R4,#0x24]\n"
 116                  "CMP     R0, #0\n"
 117 
 118 //TIL HERE ixus1000 then changes a lot !!!
 119 
 120     //100D
 121         //"BLNE    sub_FF98ADD4\n"  // This is a potential my sub  like the FF972EFC but starting some line earlier
 122         //100F
 123     // "BLNE    sub_FF98ADD8\n"  // This is a potential my sub  like the FF972EFC but starting some line earlier
 124          "BLNE    sub_FF98ADD8_my\n"  // This is a potential my sub  like the FF972EFC but starting some line earlier
 125                                                 //---------------->
 126 //     "BL      capt_seq_hook_raw_here\n"      // +
 127 //Here no raw is developed
 128         "B       loc_FF883874\n"
 129 "loc_FF883718:\n"
 130         "LDRH    R1, [R4]\n"
 131         "SUB     R12, R1, #0x8200\n"
 132         "SUBS    R12, R12, #0x2E\n"
 133         "LDRNE   R0, [R0,#0xC]\n"
 134         // Needs patch too
 135         //"BLNE    sub_FF98AB6C\n"  // 100 D was 68
 136         "BLNE    sub_FF98AB6C_my\n"  // 100 D was 68
 137                                                         //---------------->
 138 //Testing this was enabled erlier as1989
 139 //Here the raw is developed without green?
 140 //     "BL      capt_seq_hook_raw_here\n"      // +
 141 
 142         "B       loc_FF883874\n"
 143 "loc_FF883730:\n"
 144         "MOV     R0, #1\n"
 145         "BL      sub_FF884044\n"
 146         "B       loc_FF883874\n"
 147 "loc_FF88373C:\n"
 148         "BL      sub_FF883A28\n"
 149         "B       loc_FF883748\n"
 150 "loc_FF883744:\n"
 151         "BL      sub_FF883D68\n"
 152 "loc_FF883748:\n"
 153         "STR     R6, [R4,#0x24]\n"
 154         "B       loc_FF883874\n"
 155 "loc_FF883750:\n"
 156         "BL      sub_FF883D70\n"
 157         "B       loc_FF883874\n"
 158 
 159 "loc_FF883758:\n"
 160         "BL      sub_FF883F48\n"
 161         "B       loc_FF883770\n"
 162 "loc_FF883760:\n"
 163         "LDR     R0, [R0,#0xC]\n"
 164         "BL      sub_FF98AE38\n"   // 100D was 34
 165         "B       loc_FF883874\n"
 166 "loc_FF88376C:\n"
 167         "BL      sub_FF883FB4\n"
 168 "loc_FF883770:\n"
 169         "BL      sub_FF880F24\n"
 170         "B       loc_FF883874\n"
 171 "loc_FF883778:\n"
 172         "LDR     R0, [R4,#0x54]\n"
 173         "BL      sub_FF8846B0\n"
 174         "B       loc_FF883874\n"
 175 "loc_FF883784:\n"
 176         "BL      sub_FF884A4C\n"
 177         "B       loc_FF883874\n"
 178 "loc_FF88378C:\n"
 179         "BL      sub_FF884AB0\n"
 180         "B       loc_FF883874\n"
 181 "loc_FF883794:\n"
 182         "BL      sub_FF883D68\n"
 183         "B       loc_FF883874\n"
 184 "loc_FF88379C:\n"
 185         "BL      sub_FF98A1B8\n"  //100D was B4
 186         "B       loc_FF883874\n"
 187 "loc_FF8837A4:\n"
 188         "BL      sub_FF98A3C4\n"  //100D was C0
 189         "B       loc_FF883874\n"
 190 "loc_FF8837AC:\n"
 191         "BL      sub_FF98A468\n" //100D was 64
 192         "B       loc_FF883874\n"
 193 "loc_FF8837B4:\n"
 194         "BL      sub_FF98A538\n"  //100D was 34
 195         "B       loc_FF883874\n"
 196 "loc_FF8837BC:\n"
 197         "MOV     R0, #0\n"
 198         "BL      sub_FF98A798\n" //100D was 94
 199         "B       loc_FF883874\n"
 200 "loc_FF8837C8:\n"
 201         "BL      sub_FF98A8F4\n" //100D was F0
 202         "B       loc_FF883874\n"
 203 "loc_FF8837D0:\n"
 204         "BL      sub_FF98A998\n"  //100D was 94
 205         "B       loc_FF883874\n"
 206 "loc_FF8837D8:\n"
 207         "BL      sub_FF98AA78\n"  //100D was 74
 208         "B       loc_FF883874\n"
 209 "loc_FF8837E0:\n"
 210         "BL      sub_FF88422C\n"
 211         "B       loc_FF883874\n"
 212 "loc_FF8837E8:\n"
 213         "BL      sub_FF8842D8\n"
 214         "BL      sub_FF98BAF8\n"   //100D was F4
 215         "B       loc_FF883874\n"
 216 "loc_FF8837F4:\n"
 217         "BL      sub_FF98A604\n"  //100D was 00
 218         "B       loc_FF883874\n"
 219 "loc_FF8837FC:\n"
 220         "BL      sub_FF98A66C\n"  //100D was 68
 221         "B       loc_FF883874\n"
 222 "loc_FF883804:\n"
 223         "BL      sub_FF98BBC8\n"  //100D was C4
 224         "B       loc_FF883874\n"
 225 "loc_FF88380C:\n"
 226         "BL      sub_FF838C50\n"
 227         "B       loc_FF883874\n"
 228 "loc_FF883814:\n"
 229         "BL      sub_FF886DEC\n"
 230         "B       loc_FF883874\n"
 231 "loc_FF88381C:\n"
 232         "BL      sub_FF886E74\n"
 233         "B       loc_FF883874\n"
 234 "loc_FF883824:\n"
 235         "BL      sub_FF886ED0\n"
 236         "BL      sub_FF886E90\n"
 237         "B       loc_FF883874\n"
 238 "loc_FF883830:\n"
 239         "MOV     R0, #1\n"
 240         "BL      sub_FF98B634\n"  //100D was 30
 241         "MOV     R0, #1\n"
 242         "BL      sub_FF98B764\n"   //100D was 60
 243         "LDRH    R0, [R4,#0x94]\n"
 244         "CMP     R0, #4\n"
 245         "LDRNEH  R0, [R4]\n"
 246         "SUBNE   R12, R0, #0x8200\n"
 247         "SUBNES  R12, R12, #0x2A\n"
 248         "BNE     loc_FF883874\n"
 249         "BL      sub_FF886E74\n"
 250         "BL      sub_FF8873E0\n"
 251         "BL      sub_FF8872F0\n"
 252         "B       loc_FF883874\n"
 253 "loc_FF883868:\n"
 254         "LDR     R1, =0x591\n"
 255         "LDR     R0, =0xFF88319C\n"  //aSsshoottask_c
 256         "BL      sub_FF81EB78\n"   //DebugAssert
 257 "loc_FF883874:\n"
 258         "LDR     R0, [SP]\n"
 259         "LDR     R1, [R0,#4]\n"
 260         "LDR     R0, [R7]\n"
 261         "BL      sub_FF88DB8C\n"
 262         "LDR     R5, [SP]\n"
 263         "LDR     R0, [R5,#8]\n"
 264         "CMP     R0, #0\n"
 265         "LDREQ   R1, =0x115\n"
 266         "LDREQ   R0, =0xFF88319C\n"  //aSsshoottask_c "ADREQ   R0, aSsshoottask_c ; "SsShootTask.c
 267         "BLEQ    sub_FF81EB78\n"   //DebugAssert
 268         "STR     R6, [R5,#8]\n"
 269         "B       loc_FF883640\n"
 270 
 271 
 272 
 273 // looks like the nr stuff is sub_FFAE3304
 274 
 275         );
 276 }               // ASM 1989  Done 11.11.10
 277 
 278 
 279 // For the 1st raw stuff
 280 void __attribute__((naked,noinline)) sub_FF98ADD8_my() {
 281         asm volatile (
 282                 "STMFD   SP!, {R4-R6,LR}\n"
 283                 "BL      sub_FF882E6C\n"
 284                 "MOV     R4, R0\n"
 285                 "LDR     R0, =0x3C5E4\n"
 286                 "LDR     R5, =0x7C94\n"
 287                 "LDR     R0, [R0,#0x24]\n"
 288                 "MOV     R6, #1\n"
 289                 "CMP     R0, #0\n"
 290                 "BEQ     loc_FF98AE1C\n"
 291                 "MOV     R0, #0xC\n"
 292                 "BL      sub_FF88896C\n"
 293                 "TST     R0, #1\n"
 294                 "STRNE   R6, [R5]\n"
 295                 "LDRNE   R0, [R4,#8]\n"
 296                 "ORRNE   R0, R0, #0x40000000\n"
 297                 "STRNE   R0, [R4,#8]\n"
 298                 "LDMNEFD SP!, {R4-R6,PC}\n"
 299 "loc_FF98AE1C:\n"
 300                 "MOV     R0, R4\n"
 301                 "BL      sub_FFAE2D0C\n"
 302                 "MOV     R0, R4\n"
 303                 //"BL      sub_FFAE37D0\n"
 304                 "BL      sub_FFAE37D0_my\n"
 305                         //---------------->
 306 //testing it was enabled eriler asm1989
 307 //No raw file if here
 308 //              "BL      capt_seq_hook_raw_here\n"              // added
 309                 "TST     R0, #1\n"
 310                 "TST     R0, #1\n"
 311                 "STRNE   R6, [R5]\n"
 312                 "LDMFD   SP!, {R4-R6,PC}\n"
 313         );
 314 }
 315 
 316 //First BL for the nr stuff
 317 void __attribute__((naked,noinline)) sub_FFAE37D0_my() {
 318         asm volatile (
 319                 "STMFD   SP!, {R2-R8,LR}\n"
 320                 "MOV     R6, R0\n"
 321                 "BL      sub_FF98B928\n"
 322                 //"MOVL    R1, 0xFFFFFFFF\n"
 323                 "MVN     R1, #0 \n"
 324                 "BL      sub_FF88DBC0\n"
 325                 "LDR     R0, =0xFFAE2F48\n"
 326                 "MOV     R1, R6\n"
 327                 "BL      sub_FF8C25A4\n"
 328                 "MOV     R0, R6\n"
 329                 "BL      sub_FFAE2E10\n"
 330                 "MOV     R0, R6\n"
 331 //              "BL      sub_FFAE3308\n"
 332                 "BL      sub_FFAE3308_my\n"
 333 //              "B       sub_FFAE3800\n"  // continue func in firmware needs to be tested
 334 "               MOV     R4, R0\n"
 335 "               LDR     R1, =0xDDB8\n"
 336 "               MOV     R0, #0x8A\n"
 337 "               MOV     R2, #4\n"
 338 "               BL      sub_FF895DBC\n" //GetPropertyCase
 339 "               TST     R0, #1\n"
 340 "               LDRNE   R1, =0x1F6\n"
 341 "               LDRNE   R0, =0xFFAE39B4\n" // aSsstandardcaptureseq_c
 342 "               BLNE    sub_FF81EB78\n" //DebugAssert
 343 "               BL      sub_FF886534\n" //__SsImgCtrl.c__0
 344 "               MOV     R0, R4\n"
 345 "               CMP     R0, #7\n"
 346 "               MOV     R4, #0\n"
 347 "               MOV     R5, #3\n"
 348 "               ADDLS   PC, PC, R0,LSL#2\n"
 349 "               B       loc_FFAE391C\n"
 350 "loc_FFAE3840:\n"
 351 "               B       loc_FFAE391C\n"
 352 "loc_FFAE3844:\n"
 353 "               B       loc_FFAE3860\n"
 354 "loc_FFAE3848:\n"
 355 "               B       loc_FFAE3870\n"
 356 "loc_FFAE384C:\n"
 357 "               B       loc_FFAE3894\n"
 358 "loc_FFAE3850:\n"
 359 "               B       loc_FFAE38B0\n"
 360 "loc_FFAE3854:\n"
 361 "               B       loc_FFAE38CC\n"
 362 "loc_FFAE3858:\n"
 363 "               B       loc_FFAE38DC\n"
 364 "loc_FFAE385C:\n"
 365 "               B       loc_FFAE38FC\n"
 366 "loc_FFAE3860:\n"
 367 "               MOV     R0, #1\n"
 368 "               BL      sub_FF8C25D4\n"
 369 "               STR     R4, [SP,#0x4]\n"  //20+var_1C
 370 "               B       loc_FFAE390C\n"
 371 "loc_FFAE3870:\n"
 372 "               MOV     R0, #1\n"
 373 "               BL      sub_FF8C25D4\n"
 374 "               MOV     R0, #1\n"
 375 "               STR     R0, [SP,#0x4]\n" //20+var_1C
 376 "               MOV     R0, R6\n"
 377 "               ADD     R1, SP, #0x4\n" //20+var_1C
 378 "               BL      sub_FFAE3A9C\n"
 379 "loc_FFAE388C:\n"
 380 "               MOV     R7, R0\n"
 381 "               B       loc_FFAE3928\n"
 382 "loc_FFAE3894:\n"
 383 "               MOV     R0, #1\n"
 384 "               BL      sub_FF8C25D4\n"
 385 "               ADD     R1, SP, #0x4\n" //20+var_1C
 386 "               MOV     R0, R6\n"
 387 "               STR     R4, [SP,#0x4]\n" //20+var_1C
 388 "               BL      sub_FFAE360C\n" //__SsStandardCaptureSeq.c__7 ; LOCATION: SsStandardCaptureSeq.c:7
 389 "               B       loc_FFAE388C\n"
 390 "loc_FFAE38B0:\n"
 391 "               MOV     R0, #1\n"
 392 "               BL      sub_FF8C25D4\n"
 393 "               ADD     R1, SP, #0x4\n"  //20+var_1C
 394 "               MOV     R0, R6\n"
 395 "               STR     R5, [SP,#0x4]\n" //20+var_1C
 396 "               BL      sub_FFAE3B54\n"
 397 "               B       loc_FFAE388C\n"
 398 "loc_FFAE38CC:\n"
 399 "               MOV     R0, #1\n"
 400 "               BL      sub_FF8C25D4\n"
 401 "               STR     R5, [SP,#0x4]\n"  //20+var_1C
 402 "               B       loc_FFAE38EC\n"
 403 "loc_FFAE38DC:\n"
 404 "               MOV     R0, #0\n"
 405 "               BL      sub_FF8C25D4\n"
 406 "               MOV     R0, #5\n"
 407 "               STR     R0, [SP,#0x4]\n"   //20+var_1C
 408 "loc_FFAE38EC:\n"
 409 "               ADD     R1, SP, #0x4\n"   //20+var_1C
 410 "               MOV     R0, R6\n"
 411 "               BL      sub_FFAE372C\n"
 412 "               B       loc_FFAE388C\n"
 413 "loc_FFAE38FC:\n"
 414 "               MOV     R0, #0\n"
 415 "               BL      sub_FF8C25D4\n"
 416 "               MOV     R0, #4\n"
 417 "               STR     R0, [SP,#0x4]\n"   //20+var_1C
 418 "loc_FFAE390C:\n"
 419 "               ADD     R1, SP, #0x4\n"    //20+var_1C
 420 "               MOV     R0, R6\n"
 421 "               BL      sub_FFAE3590\n"
 422 "               B       loc_FFAE388C\n"
 423 "loc_FFAE391C:\n"
 424 "               MOV     R1, #0x22C\n"
 425 "               LDR     R0, =0xFFAE39B4\n" //aSsstandardcaptureseq_c
 426 "               BL      sub_FF81EB78\n"  //DebugAssert
 427 "loc_FFAE3928:\n"
 428 "               TST     R7, #1\n"
 429 "               MOVNE   R0, R7\n"
 430 "               BNE     locret_FFAE3994\n"
 431 "               MOV     R1, #0\n"
 432 "               LDR     R0, =0xFFAE3500\n"  //nullsub_402
 433 "               BL      sub_FF8C25A4\n"
 434 "               LDR     R0, =0x3C5E4\n"
 435 "               LDRH    R0, [R0]\n"
 436 "               SUB     R12, R0, #0x8000\n"
 437 "               SUBS    R12, R12, #0x20C\n"
 438 
 439 "               BLEQ    sub_FF8ABA3C\n"
 440 
 441 "               BL      capt_seq_hook_raw_here\n"               // added
 442 
 443 "               MOV     R0, R6\n"
 444 "               BL      sub_FFAE33B0\n"
 445 "               BL      sub_FF98B928\n"
 446 "               MOV     R3, #0x244\n"
 447 "               STR     R3, [SP]\n"
 448 "               LDR     R2, =0x3A98\n"
 449 "               LDR     R3,  =0xFFAE39B4\n" //aSsstandardcaptureseq_c
 450 "               MOV     R1, #4\n"
 451 "               BL      sub_FF888CF4\n"
 452 //-TESTed down here with the same results
 453 "               CMP     R0, #0\n"
 454 "               MOVNE   R1, #0x244\n"
 455 "               LDRNE   R0,  =0xFFAE39B4\n" //aSsstandardcaptureseq_c
 456 "               BLNE    sub_FF81EB78\n"  //DebugAssert
 457 "               LDRH    R0, [SP,#0x4]\n" //20+var_1C
 458 "               STRH    R0, [R6,#0x14]\n"
 459 "               MOV     R0, #0\n"
 460 "locret_FFAE3994:\n"
 461 "               LDMFD   SP!, {R2-R8,PC}\n"
 462 
 463 
 464                         );
 465 }
 466 
 467 
 468 
 469 //OLD STUFF
 470 
 471 //NR stuff goes here needs to be tested
 472 void __attribute__((naked,noinline)) sub_FFAE3308_my() {
 473         asm volatile (
 474                                 "STMFD   SP!, {R0-R8,LR}\n"
 475                                 "MOV     R4, R0\n"
 476                                 "MOV     R0, #0\n"
 477                                 "MOV     R7, #1\n"
 478                                 "LDR     R5, =0x3C6B4\n"
 479                                 "STR     R7, [SP,#0x8]\n"
 480                                 "STR     R0, [SP,#0xC]\n"
 481                                 "LDR     R6, =0x3C5E4\n"
 482                                 "LDR     R3, [R5]\n"
 483                                 "LDRSH   R2, [R5,#0xC]\n"
 484                                 "LDRSH   R1, [R5,#0xE]\n"
 485                                 "LDR     R0, [R6,#0x88]\n"
 486                                 "BL      sub_FF944FC8\n"
 487                                 "BL      sub_FF8682FC\n"                        //GetCCDTemperature
 488                                 "LDR     R2, =0xDDB0\n"
 489                                 "ADD     R3, SP, #0xC\n"
 490                                 "STRH    R0, [R4,#0xAC]\n"
 491                                 "STRD    R2, [SP]\n"
 492                                 "MOV     R1, R0\n"
 493                                 "LDRH    R0, [R6,#0x5C]\n"
 494                                 "LDRSH   R2, [R5,#0xC]\n"
 495                                 "ADD     R3, SP, #0x8\n"
 496                                 "BL      sub_FF98D56C\n"  //NRTable.c
 497                                 //TESTing enable latter!
 498                                 //                 "BL      wait_until_remote_button_is_released\n"
 499                  "BL      capt_seq_hook_set_nr\n"
 500                  "B       sub_FFAE3364\n"                             // continue function in firmware
 501                         );
 502 }
 503 
 504 // For the 2nd raw stuff
 505 void __attribute__((naked,noinline)) sub_FF98AB6C_my() {
 506         asm volatile (
 507                         "STMFD   SP!, {R3-R7,LR}\n"
 508                         "LDR     R5, =0x3C5E4\n"
 509                         "MOV     R4, R0\n"
 510                         "LDR     R0, [R5,#0x24]\n"
 511                         "LDR     R6, =0x820C\n"
 512                         "CMP     R0, #0\n"
 513                         "MOV     R7, #0\n"
 514                         "BNE     loc_FF98AC18\n"
 515                         "LDR     R0, [R5,#0xB8]\n"
 516                         "CMP     R0, #1\n"
 517                         "BNE     loc_FF98ABF4\n"
 518                         "LDRH    R0, [R5]\n"
 519                         "CMP     R0, R6\n"
 520                         "LDRNEH  R0, [R5,#0x92]\n"
 521                         "CMPNE   R0, #3\n"
 522                         "LDRNE   R0, [R4,#0xC]\n"
 523                         "CMPNE   R0, #1\n"
 524                         "BLS     loc_FF98ABC8\n"
 525                         "BL      sub_FF833020\n"
 526                         "TST     R0, #1\n"
 527                         "BEQ     loc_FF98AC18\n"
 528                         "BL      sub_FF8889CC\n"
 529                         "B       loc_FF98AC04\n"
 530 "loc_FF98ABC8:\n"
 531                         "MOV     R0, #0xC\n"
 532                         "BL      sub_FF88896C\n"
 533                         "TST     R0, #1\n"
 534                         "BEQ     loc_FF98AC18\n"
 535                         "MOV     R2, R4\n"
 536                         "MOV     R1, #1\n"
 537                         "MOV     R0, #1\n"
 538                         "BL      sub_FF8818E8\n"
 539                         "BL      sub_FF98B4BC\n"
 540                         "BL      sub_FF881610\n"
 541                         "LDMFD   SP!, {R3-R7,PC}\n"
 542 "loc_FF98ABF4:\n"
 543                         "MOV     R0, #0xC\n"
 544                         "BL      sub_FF88896C\n"
 545                         "TST     R0, #1\n"
 546                         "BEQ     loc_FF98AC18\n"
 547 "loc_FF98AC04:\n"
 548                         "MOV     R2, R4\n"
 549                         "MOV     R1, #1\n"
 550                         "MOV     R0, #1\n"
 551                         "BL      sub_FF8818E8\n"
 552                         "LDMFD   SP!, {R3-R7,PC}\n"
 553 "loc_FF98AC18:\n"
 554                         "LDR     R0, [R4,#8]\n"
 555                         "ORR     R0, R0, #1\n"
 556                         "STR     R0, [R4,#8]\n"
 557                         "LDRH    R0, [R5]\n"
 558                         "CMP     R0, R6\n"
 559                         "BEQ     loc_FF98ACA4\n"
 560                         "LDRH    R0, [R5,#0x92]\n"
 561                         "CMP     R0, #3\n"
 562                         "BEQ     loc_FF98ACEC\n"
 563                         "LDR     R0, [R4,#0xC]\n"
 564                         "CMP     R0, #1\n"
 565                         "BLS     loc_FF98ACB0\n"
 566                         "LDRH    R0, [R5,#0x90]\n"
 567                         "CMP     R0, #0\n"
 568                         "BNE     loc_FF98ACEC\n"
 569                         "LDRH    R0, [R5,#0x8C]\n"
 570                         "CMP     R0, #2\n"
 571                         "BNE     loc_FF98ACBC\n"
 572                         "BL      sub_FF88439C\n"
 573                         "LDRH    R0, [R5]\n"
 574                         "CMP     R0, R6\n"
 575                         "BEQ     loc_FF98ACA4\n"
 576                         "LDRH    R0, [R5,#0x92]\n"
 577                         "CMP     R0, #3\n"
 578                         "BEQ     loc_FF98ACEC\n"
 579                         "LDR     R0, [R4,#0xC]\n"
 580                         "CMP     R0, #1\n"
 581                         "BLS     loc_FF98ACB0\n"
 582                         "LDRH    R0, [R5,#0x90]\n"
 583                         "CMP     R0, #0\n"
 584                         "BNE     loc_FF98ACEC\n"
 585                         "LDRH    R0, [R5,#0x8C]\n"
 586                         "CMP     R0, #2\n"
 587                         "BEQ     loc_FF98ACE8\n"
 588                         "B       loc_FF98ACBC\n"
 589 "loc_FF98ACA4:\n"
 590                         "LDRH    R0, [R5,#0x92]\n"
 591                         "CMP     R0, #3\n"
 592                         "BEQ     loc_FF98ACEC\n"
 593 "loc_FF98ACB0:\n"
 594                         "LDRH    R0, [R5,#0x90]\n"
 595                         "CMP     R0, #0\n"
 596                         "BNE     loc_FF98ACEC\n"
 597 "loc_FF98ACBC:\n"
 598                         "LDRH    R0, [R5,#0x8C]\n"
 599                         "CMP     R0, #1\n"
 600                         "BNE     loc_FF98ACEC\n"
 601                         "LDRH    R0, [R5]\n"
 602                         "CMP     R0, R6\n"
 603                         "LDRNE   R0, [R4,#0xC]\n"
 604                         "CMPNE   R0, #1\n"
 605                         "BLS     loc_FF98ACEC\n"
 606                         "LDR     R0, [R4,#0x10]\n"
 607                         "CMP     R0, #1\n"
 608                         "BNE     loc_FF98ACEC\n"
 609 "loc_FF98ACE8:\n"
 610                         "BL      sub_FF98BC00\n"
 611 "loc_FF98ACEC:\n"
 612                         "BL      sub_FF98BBC8\n"
 613                         "BL      sub_FF883D78\n"
 614                         "LDR     R0, [R5,#0x24]\n"
 615                         "CMP     R0, #0\n"
 616                         "BNE     loc_FF98ADB8\n"
 617                         "MOV     R0, R4\n"
 618                         "BL      sub_FFAE2D84\n"
 619                         "TST     R0, #1\n"
 620                         "LDMNEFD SP!, {R3-R7,PC}\n"
 621                         "MOV     R0, R4\n"
 622                         "BL      sub_FFAE3220\n"
 623                         "BL      sub_FF98B3FC\n"
 624                         "LDR     R0, [R5,#0xB8]\n"
 625                         "CMP     R0, #1\n"
 626                         "BNE     loc_FF98AD44\n"
 627 
 628 //TESTING SX30 CODE:
 629                          "BL      wait_until_remote_button_is_released\n"
 630              "BL      capt_seq_hook_set_nr\n"                     // +
 631 
 632                         "LDRH    R0, [R5]\n"
 633                         "CMP     R0, R6\n"
 634                         "LDRNEH  R0, [R5,#0x92]\n"
 635                         "CMPNE   R0, #3\n"
 636                         "LDRNE   R0, [R4,#0xC]\n"
 637                         "CMPNE   R0, #1\n"
 638                         "BHI     loc_FF98AD4C\n"
 639 "loc_FF98AD44:\n"
 640                         "MOV     R0, #2\n"
 641                         "BL      sub_FF87F4A4\n"
 642 "loc_FF98AD4C:\n"
 643                         "LDRH    R0, [R5]\n"
 644                         "SUB     R12, R0, #0x8200\n"
 645                         "SUBS    R12, R12, #0x2D\n"
 646                         "BNE     loc_FF98ADA8\n"
 647                         "MOV     R5, #1\n"
 648                         "MOV     R2, #2\n"
 649                         "ADD     R0, R2, #0x15C\n"
 650                         "MOV     R1, SP\n"
 651                         "STR     R5, [SP]\n"
 652                         "BL      sub_FF895DBC\n"  //GetPropertyCase
 653                         "TST     R0, #1\n"
 654                         "MOVNE   R1, #0xC3\n"
 655                         "LDRNE   R0, =0xFF98AEFC \n"            //ADRNE   R0, aSscaptureseq_c ;
 656                         "BLNE    sub_FF81EB78\n"        //DebugAssert
 657                         "LDRH    R0, [SP]\n"
 658                         "CMP     R0, #1\n"
 659                         "BLS     loc_FF98ADA0\n"
 660                         "MOV     R0, R4\n"
 661                         "STR     R5, [R4,#0xE4]\n"
 662                         "BL      sub_FFAE3CE0\n"        //_SsGISCaptureSeq.c
 663                         "B       loc_FF98ADB0\n"
 664 "loc_FF98ADA0:\n"
 665                         "MOV     R0, #0\n"
 666                         "STR     R0, [R4,#0xE4]\n"
 667 "loc_FF98ADA8:\n"
 668                         "MOV     R0, R4\n"
 669                         //"BL      sub_FFAE37D0\n"
 670                     "BL      sub_FFAE37D0_my\n"
 671                                         //---------------->
 672 //ASM1989 testing
 673 //Raw is developed but with no green in it.
 674 //                      "BL      capt_seq_hook_raw_here\n"              // added
 675 "loc_FF98ADB0:\n"
 676                         "MOV     R7, R0\n"
 677                         "B       loc_FF98ADC8\n"
 678 "loc_FF98ADB8:\n"
 679                         "LDR     R0, =0x7C94\n"
 680                         "LDR     R0, [R0]\n"
 681                         "CMP     R0, #0\n"
 682                         "MOVNE   R7, #0x1D\n"
 683 "loc_FF98ADC8:\n"
 684                         "MOV     R1, R7\n"
 685                         "MOV     R0, R4\n"
 686                         "BL      sub_FFAE2ED8\n"
 687                         "LDMFD   SP!, {R3-R7,PC}\n"
 688                                         );
 689 }
 690 
 691 //--------------------------- apexus stuff-------------------
 692 
 693 void __attribute__((naked,noinline)) exp_drv_task() {
 694         asm volatile(
 695 "               STMFD   SP!, {R4-R8,LR}\n"
 696 "               SUB     SP, SP, #0x20\n"
 697 "               LDR     R8, =0xBB8\n"
 698 "               LDR     R7, =0x4C6C\n"
 699 "               LDR     R5, =0x58054\n"
 700 "               MOV     R0, #0\n"
 701 "               ADD     R6, SP, #0x10\n"
 702 "               STR     R0, [SP,#0xC]\n"
 703 "loc_FF8CCAA8:\n"
 704 "               LDR     R0, [R7,#0x20]\n"
 705 "               MOV     R2, #0\n"
 706 "               ADD     R1, SP, #0x1C\n"
 707 "               BL      sub_FF83AE20\n"  //__KerQueue.c__0 ; LOCATION: KerQueue.c:0
 708 "               LDR     R0, [SP,#0xC]\n"
 709 "               CMP     R0, #1\n"
 710 "               BNE     loc_FF8CCAF4\n"
 711 "               LDR     R0, [SP,#0x1C]\n"
 712 "               LDR     R0, [R0]\n"
 713 "               CMP     R0, #0x14\n"
 714 "               CMPNE   R0, #0x15\n"
 715 "               CMPNE   R0, #0x16\n"
 716 "               CMPNE   R0, #0x17\n"
 717 "               BEQ     loc_FF8CCC58\n"
 718 "               CMP     R0, #0x29\n"
 719 "               BEQ     loc_FF8CCBE0\n"
 720 "               ADD     R1, SP, #0xC\n"
 721 "               MOV     R0, #0\n"
 722 "               BL      sub_FF8CCA38\n"  //__ExpDrv.c__512 ; LOCATION: ExpDrv.c:512
 723 "loc_FF8CCAF4:\n"
 724 "               LDR     R0, [SP,#0x1C]\n"
 725 "               LDR     R1, [R0]\n"
 726 "               CMP     R1, #0x2F\n"
 727 "               BNE     loc_FF8CCB24\n"
 728 "               LDR     R0, [SP,#0x1C]\n"
 729 "               BL      sub_FF8CDE38\n"  //__ExpDrv.c__0 ; LOCATION: ExpDrv.c:0
 730 "               LDR     R0, [R7,#0x1C]\n"
 731 "               MOV     R1, #1\n"
 732 "               BL      sub_FF88DB8C\n"
 733 "               BL      sub_FF81EB30\n" //ExitTask      ; LOCATION: KerTask.c:0
 734 "               ADD     SP, SP, #0x20\n"
 735 "               LDMFD   SP!, {R4-R8,PC}\n"
 736 "loc_FF8CCB24:\n"
 737 "               CMP     R1, #0x2E\n"
 738 "               BNE     loc_FF8CCB40\n"
 739 "               LDR     R2, [R0,#0x8C]!\n"
 740 "               LDR     R1, [R0,#4]\n"
 741 "               MOV     R0, R1\n"
 742 "               BLX     R2\n"
 743 "               B       loc_FF8CD120\n"
 744 "loc_FF8CCB40:\n"
 745 "               CMP     R1, #0x27\n"
 746 "               BNE     loc_FF8CCB90\n"
 747 "               LDR     R0, [R7,#0x1C]\n"
 748 "               MOV     R1, #0x80\n"
 749 "               BL      sub_FF88DBC0\n"
 750 "               LDR     R0, =0xFF8C8848\n"
 751 "               MOV     R1, #0x80\n"
 752 "               BL      sub_FF974434\n"  //__IrisController.c__116 ; LOCATION: IrisController.c:116
 753 "               LDR     R0, [R7,#0x1C]\n"
 754 "               MOV     R2, R8\n"
 755 "               MOV     R1, #0x80\n"
 756 "               BL      sub_FF88DACC\n"  //__KerFlag.c__0 ; LOCATION:   KerFlag.c:0
 757 "               TST     R0, #1\n"
 758 "               LDRNE   R1, =0x1089\n"
 759 "               BNE     loc_FF8CCC4C\n"
 760 "loc_FF8CCB7C:\n"
 761 "               LDR     R1, [SP,#0x1C]\n"
 762 "               LDR     R0, [R1,#0x90]\n"
 763 "               LDR     R1, [R1,#0x8C]\n"
 764 "               BLX     R1\n"
 765 "               B       loc_FF8CD120\n"
 766 "loc_FF8CCB90:\n"
 767 "               CMP     R1, #0x28\n"
 768 "               BNE     loc_FF8CCBD8\n"
 769 "               ADD     R1, SP, #0xC\n"
 770 "               BL      sub_FF8CCA38\n"  //__ExpDrv.c__512 ; LOCATION: ExpDrv.c:512
 771 "               LDR     R0, [R7,#0x1C]\n"
 772 "               MOV     R1, #0x100\n"
 773 "               BL      sub_FF88DBC0\n"
 774 "               LDR     R0, =0xFF8C8858\n"
 775 "               MOV     R1, #0x100\n"
 776 "               BL      sub_FF974DC4\n"  //__IrisController.c__0 ; LOCATION: IrisController.c:0
 777 "               LDR     R0, [R7,#0x1C]\n"
 778 "               MOV     R2, R8\n"
 779 "               MOV     R1, #0x100\n"
 780 "               BL      sub_FF88DACC\n"  //__KerFlag.c__0 ; LOCATION:   KerFlag.c:0
 781 "               TST     R0, #1\n"
 782 "               BEQ     loc_FF8CCB7C\n"
 783 "               LDR     R1, =0x1093\n"
 784 "               B       loc_FF8CCC4C\n"
 785 "loc_FF8CCBD8:\n"
 786 "               CMP     R1, #0x29\n"
 787 "               BNE     loc_FF8CCBF0\n"
 788 "loc_FF8CCBE0:\n"
 789 "               LDR     R0, [SP,#0x1C]\n"
 790 "               ADD     R1, SP, #0xC\n"
 791 "               BL      sub_FF8CCA38\n" //__ExpDrv.c__512 ; LOCATION: ExpDrv.c:512
 792 "               B       loc_FF8CCB7C\n"
 793 "loc_FF8CCBF0:\n"
 794 "               CMP     R1, #0x2C\n"
 795 "               BNE     loc_FF8CCC08\n"
 796 "               BL      sub_FF8BA634\n"  //__Shutter.c__2 ; LOCATION:   Shutter.c:2
 797 "               BL      sub_FF8BB250\n"  // __ImgPixel.c__272 ; LOCATION: ImgPixel.c:272
 798 "               BL      sub_FF8BADBC\n"  //__ImgGain.c__0 ; LOCATION:   ImgGain.c:0
 799 "               B       loc_FF8CCB7C\n"
 800 "loc_FF8CCC08:\n"
 801 "               CMP     R1, #0x2D\n"
 802 "               BNE     loc_FF8CCC58\n"
 803 "               LDR     R0, [R7,#0x1C]\n"
 804 "               MOV     R1, #4\n"
 805 "               BL      sub_FF88DBC0\n"
 806 "               LDR     R1, =0xFF8C8878\n"
 807 "               LDR     R0, =0xFFFFF400\n"
 808 "               MOV     R2, #4\n"
 809 "               BL      sub_FF8BA0B0\n"
 810 "               BL      sub_FF8BA338\n"  //__Shutter.c__0 ; LOCATION:   Shutter.c:0
 811 "               LDR     R0, [R7,#0x1C]\n"
 812 "               MOV     R2, R8\n"
 813 "               MOV     R1, #4\n"
 814 "               BL      sub_FF88D9E8\n"  // __KerFlag.c__0 ; LOCATION:  KerFlag.c:0
 815 "               TST     R0, #1\n"
 816 "               BEQ     loc_FF8CCB7C\n"
 817 "               LDR     R1, =0x10BB\n"
 818 "loc_FF8CCC4C:\n"
 819 "               LDR     R0, =0xFF8C8F48\n"  //aExpdrv_c
 820 "               BL      sub_FF81EB78\n"  //DebugAssert
 821 "               B       loc_FF8CCB7C\n"
 822 "loc_FF8CCC58:\n"
 823 "               LDR     R0, [SP,#0x1C]\n"
 824 "               MOV     R4, #1\n"
 825 "               LDR     R1, [R0]\n"
 826 "               CMP     R1, #0x12\n"
 827 "               CMPNE   R1, #0x13\n"
 828 "               BNE     loc_FF8CCCC8\n"
 829 "               LDR     R1, [R0,#0x7C]\n"
 830 "               ADD     R1, R1, R1,LSL#1\n"
 831 "               ADD     R1, R0, R1,LSL#2\n"
 832 "               SUB     R1, R1, #8\n"
 833 "               LDMIA   R1, {R2-R4}\n"
 834 "               STMIA   R6, {R2-R4}\n"
 835 "               BL      sub_FF8CB1C0\n"  // __ExpDrv.c__2 ; LOCATION: ExpDrv.c:2
 836 "               LDR     R0, [SP,#0x1C]\n"
 837 "               LDR     R1, [R0,#0x7C]\n"
 838 "               LDR     R3, [R0,#0x8C]\n"
 839 "               LDR     R2, [R0,#0x90]\n"
 840 "               ADD     R0, R0, #4\n"
 841 "               BLX     R3\n"
 842 "               LDR     R0, [SP,#0x1C]\n"
 843 "               BL      sub_FF8CE240\n"  //__ExpDrv.c__0 ; LOCATION: ExpDrv.c:0
 844 "               LDR     R0, [SP,#0x1C]\n"
 845 "               LDR     R1, [R0,#0x7C]\n"
 846 "               LDR     R3, [R0,#0x94]\n"
 847 "               LDR     R2, [R0,#0x98]\n"
 848 "               ADD     R0, R0, #4\n"
 849 "               BLX     R3\n"
 850 "               B       loc_FF8CD05C\n"
 851 "loc_FF8CCCC8:\n"
 852 "               CMP     R1, #0x14\n"
 853 "               CMPNE   R1, #0x15\n"
 854 "               CMPNE   R1, #0x16\n"
 855 "               CMPNE   R1, #0x17\n"
 856 "               BNE     loc_FF8CCD80\n"
 857 "               ADD     R3, SP, #0xC\n"
 858 "               MOV     R2, SP\n"
 859 "               ADD     R1, SP, #0x10\n"
 860 "               BL      sub_FF8CB42C\n"   // __ExpDrv.c__3168 ; LOCATION: ExpDrv.c:3168
 861 "               CMP     R0, #1\n"
 862 "               MOV     R4, R0\n"
 863 "               CMPNE   R4, #5\n"
 864 "               BNE     loc_FF8CCD1C\n"
 865 "               LDR     R0, [SP,#0x1C]\n"
 866 "               MOV     R2, R4\n"
 867 "               LDR     R1, [R0,#0x7C]!\n"
 868 "               LDR     R12, [R0,#0x10]!\n"
 869 "               LDR     R3, [R0,#4]\n"
 870 "               MOV     R0, SP\n"
 871 "               BLX     R12\n"
 872 "               B       loc_FF8CCD54\n"
 873 "loc_FF8CCD1C:\n"
 874 "               LDR     R0, [SP,#0x1C]\n"
 875 "               CMP     R4, #2\n"
 876 "               LDR     R3, [R0,#0x90]\n"
 877 "               CMPNE   R4, #6\n"
 878 "               BNE     loc_FF8CCD68\n"
 879 "               LDR     R12, [R0,#0x8C]\n"
 880 "               MOV     R0, SP\n"
 881 "               MOV     R2, R4\n"
 882 "               MOV     R1, #1\n"
 883 "               BLX     R12\n"
 884 "               LDR     R0, [SP,#0x1C]\n"
 885 "               MOV     R2, SP\n"
 886 "               ADD     R1, SP, #0x10\n"
 887 "               BL      sub_FF8CC784\n"  // __ExpDrv.c__0 ; LOCATION: ExpDrv.c:0
 888 "loc_FF8CCD54:\n"
 889 "               LDR     R0, [SP,#0x1C]\n"
 890 "               LDR     R2, [SP,#0xC]\n"
 891 "               MOV     R1, R4\n"
 892 "               BL      sub_FF8CC9D8\n"  // __ExpDrv.c__2 ; LOCATION: ExpDrv.c:2
 893 "               B       loc_FF8CD05C\n"
 894 "loc_FF8CCD68:\n"
 895 "               LDR     R1, [R0,#0x7C]\n"
 896 "               LDR     R12, [R0,#0x8C]\n"
 897 "               ADD     R0, R0, #4\n"
 898 "               MOV     R2, R4\n"
 899 "               BLX     R12\n"
 900 "               B       loc_FF8CD05C\n"
 901 "loc_FF8CCD80:\n"
 902 "               CMP     R1, #0x23\n"
 903 "               CMPNE   R1, #0x24\n"
 904 "               BNE     loc_FF8CCDCC\n"
 905 "               LDR     R1, [R0,#0x7C]\n"
 906 "               ADD     R1, R1, R1,LSL#1\n"
 907 "               ADD     R1, R0, R1,LSL#2\n"
 908 "               SUB     R1, R1, #8\n"
 909 "               LDMIA   R1, {R2-R4}\n"
 910 "               STMIA   R6, {R2-R4}\n"
 911 "               BL      sub_FF8CA234\n"  // __ExpDrv.c__2064 ;  LOCATION: ExpDrv.c:2064
 912 "               LDR     R0, [SP,#0x1C]\n"
 913 "               LDR     R1, [R0,#0x7C]\n"
 914 "               LDR     R3, [R0,#0x8C]\n"
 915 "               LDR     R2, [R0,#0x90]\n"
 916 "               ADD     R0, R0, #4\n"
 917 "               BLX     R3\n"
 918 "               LDR     R0, [SP,#0x1C]\n"
 919 "               BL      sub_FF8CA680\n"  // __ExpDrv.c__0 ; LOCATION: ExpDrv.c:0
 920 "               B       loc_FF8CD05C\n"
 921 "loc_FF8CCDCC:\n"
 922 "               ADD     R1, R0, #4\n"
 923 "               LDMIA   R1, {R2,R3,R12}\n"
 924 "               STMIA   R6, {R2,R3,R12}\n"
 925 "               LDR     R1, [R0]\n"
 926 "               CMP     R1, #0x26\n"
 927 "               ADDLS   PC, PC, R1,LSL#2\n"
 928 "               B       loc_FF8CD03C\n"
 929 "loc_FF8CCDE8:\n"
 930 "               B       loc_FF8CCE84\n"
 931 "loc_FF8CCDEC:\n"
 932 "               B       loc_FF8CCE84\n"
 933 "loc_FF8CCDF0:\n"
 934 "               B       loc_FF8CCE8C\n"
 935 "loc_FF8CCDF4:\n"
 936 "               B       loc_FF8CCE94\n"
 937 "loc_FF8CCDF8:\n"
 938 "               B       loc_FF8CCE94\n"
 939 "loc_FF8CCDFC:\n"
 940 "               B       loc_FF8CCE94\n"
 941 "loc_FF8CCE00:\n"
 942 "               B       loc_FF8CCE84\n"
 943 "loc_FF8CCE04:\n"
 944 "               B       loc_FF8CCE8C\n"
 945 "loc_FF8CCE08:\n"
 946 "               B       loc_FF8CCE94\n"
 947 "loc_FF8CCE0C:\n"
 948 "               B       loc_FF8CCE94\n"
 949 "loc_FF8CCE10:\n"
 950 "               B       loc_FF8CCEAC\n"
 951 "loc_FF8CCE14:\n"
 952 "               B       loc_FF8CCEAC\n"
 953 "loc_FF8CCE18:\n"
 954 "               B       loc_FF8CD028\n"
 955 "loc_FF8CCE1C:\n"
 956 "               B       loc_FF8CD030\n"
 957 "loc_FF8CCE20:\n"
 958 "               B       loc_FF8CD030\n"
 959 "loc_FF8CCE24:\n"
 960 "               B       loc_FF8CD030\n"
 961 "loc_FF8CCE28:\n"
 962 "               B       loc_FF8CD030\n"
 963 "loc_FF8CCE2C:\n"
 964 "               B       loc_FF8CD038\n"
 965 "loc_FF8CCE30:\n"
 966 "               B       loc_FF8CD03C\n"
 967 "loc_FF8CCE34:\n"
 968 "               B       loc_FF8CD03C\n"
 969 "loc_FF8CCE38:\n"
 970 "               B       loc_FF8CD03C\n"
 971 "loc_FF8CCE3C:\n"
 972 "               B       loc_FF8CD03C\n"
 973 "loc_FF8CCE40:\n"
 974 "               B       loc_FF8CD03C\n"
 975 "loc_FF8CCE44:\n"
 976 "               B       loc_FF8CD03C\n"
 977 "loc_FF8CCE48:\n"
 978 "               B       loc_FF8CCE9C\n"
 979 "loc_FF8CCE4C:\n"
 980 "               B       loc_FF8CCEA4\n"
 981 "loc_FF8CCE50:\n"
 982 "               B       loc_FF8CCEA4\n"
 983 "loc_FF8CCE54:\n"
 984 "               B       loc_FF8CCEB8\n"
 985 "loc_FF8CCE58:\n"
 986 "               B       loc_FF8CCEB8\n"
 987 "loc_FF8CCE5C:\n"
 988 "               B       loc_FF8CCEC0\n"
 989 "loc_FF8CCE60:\n"
 990 "               B       loc_FF8CCEF8\n"
 991 "loc_FF8CCE64:\n"
 992 "               B       loc_FF8CCFA0\n"
 993 "loc_FF8CCE68:\n"
 994 "               B       loc_FF8CCFD8\n"
 995 "loc_FF8CCE6C:\n"
 996 "               B       loc_FF8CD010\n"
 997 "loc_FF8CCE70:\n"
 998 "               B       loc_FF8CD010\n"
 999 "loc_FF8CCE74:\n"
1000 "               B       loc_FF8CD03C\n"
1001 "loc_FF8CCE78:\n"
1002 "               B       loc_FF8CD03C\n"
1003 "loc_FF8CCE7C:\n"
1004 "               B       loc_FF8CD018\n"
1005 "loc_FF8CCE80:\n"
1006 "               B       loc_FF8CD020\n"
1007 "loc_FF8CCE84:\n"
1008 "               BL      sub_FF8C8D88\n" //__ExpDrv.c__0
1009 "               B       loc_FF8CD03C\n"
1010 "loc_FF8CCE8C:\n"
1011 "               BL      sub_FF8C9078\n"  //__ExpDrv.c__0
1012 "               B       loc_FF8CD03C\n"
1013 "loc_FF8CCE94:\n"
1014 "               BL      sub_FF8C92E0\n"  //__ExpDrv.c__9
1015 "               B       loc_FF8CD03C\n"
1016 "loc_FF8CCE9C:\n"
1017 "               BL      sub_FF8C9594\n"  //__ExpDrv.c__2
1018 "               B       loc_FF8CD03C\n"
1019 "loc_FF8CCEA4:\n"
1020 "               BL      sub_FF8C97AC\n" //__ExpDrv.c__0
1021 "               B       loc_FF8CD03C\n"
1022 "loc_FF8CCEAC:\n"
1023 //"             BL      sub_FF8C9AD0\n"   // the one to override------------------------------
1024 "               BL      sub_FF8C9AD0_my\n"   // first step for apexus
1025                                                         //----------------------->
1026 "               MOV     R4, #0\n"
1027 "               B       loc_FF8CD03C\n"
1028 "loc_FF8CCEB8:\n"
1029 "               BL      sub_FF8C9C18\n"
1030 "               B       loc_FF8CD03C\n"
1031 "loc_FF8CCEC0:\n"
1032 "               LDRH    R1, [R0,#4]\n"
1033 "               STRH    R1, [SP,#0x10]\n"
1034 "               LDRH    R1, [R5,#2]\n"
1035 "               STRH    R1, [SP,#0x12]\n"
1036 "               LDRH    R1, [R5,#4]\n"
1037 "               STRH    R1, [SP,#0x14]\n"
1038 "               LDRH    R1, [R5,#6]\n"
1039 "               STRH    R1, [SP,#0x16]\n"
1040 "               LDRH    R1, [R0,#0xC]\n"
1041 "               STRH    R1, [SP,#0x18]\n"
1042 "               LDRH    R1, [R5,#0xA]\n"
1043 "               STRH    R1, [SP,#0x1A]\n"
1044 "               BL      sub_FF8CDF38\n"
1045 "               B       loc_FF8CD03C\n"
1046 "loc_FF8CCEF8:\n"
1047 "               LDRH    R1, [R0,#4]\n"
1048 "               STRH    R1, [SP,#0x10]\n"
1049 "               LDRH    R1, [R5,#2]\n"
1050 "               STRH    R1, [SP,#0x12]\n"
1051 "               LDRH    R1, [R5,#4]\n"
1052 "               STRH    R1, [SP,#0x14]\n"
1053 "               LDRH    R1, [R5,#6]\n"
1054 "               STRH    R1, [SP,#0x16]\n"
1055 "               LDRH    R1, [R0,#8]\n"
1056 "               STRH    R1, [SP,#0x18]\n"
1057 "               LDRH    R1, [R5,#0xA]\n"
1058 "               STRH    R1, [SP,#0x1A]\n"
1059 "               BL      sub_FF8CE040\n"
1060 "               B       loc_FF8CD03C\n"
1061 
1062 
1063 "loc_FF8CCFA0:\n"
1064 "       LDRH    R1, [R5]\n"
1065 "               STRH    R1, [SP,#0x10]\n"
1066 "               LDRH    R1, [R5,#6]\n"
1067 "               STRH    R1, [SP,#0x12]\n"
1068 "               LDRH    R1, [R5,#4]\n"
1069 "               STRH    R1, [SP,#0x14]\n"
1070 "               LDRH    R1, [R5,#6]\n"
1071 "               STRH    R1, [SP,#0x16]\n"
1072 "               LDRH    R1, [R0,#8]\n"
1073 "               STRH    R1, [SP,#0x18]\n"
1074 "               LDRH    R1, [R5,#0xA]\n"
1075 "               STRH    R1, [SP,#0x1A]\n"
1076 "               BL      sub_FF8CE0F4\n"
1077 "               B       loc_FF8CD03C\n"
1078 "loc_FF8CCFD8:\n"
1079 "       LDRH    R1, [R5]\n"
1080 "               STRH    R1, [SP,#0x10]\n"
1081 "               LDRH    R1, [R5,#2]\n"
1082 "               STRH    R1, [SP,#0x12]\n"
1083 "               LDRH    R1, [R5,#4]\n"
1084 "               STRH    R1, [SP,#0x14]\n"
1085 "               LDRH    R1, [R5,#6]\n"
1086 "               STRH    R1, [SP,#0x16]\n"
1087 "               LDRH    R1, [R0,#0xC]\n"
1088 "               STRH    R1, [SP,#0x18]\n"
1089 "               LDRH    R1, [R5,#0xA]\n"
1090 "               STRH    R1, [SP,#0x1A]\n"
1091 "               BL      sub_FF8CE19C\n"
1092 "               B       loc_FF8CD03C\n"
1093 
1094 "loc_FF8CD010:\n"
1095 "               BL      sub_FF8CA00C\n"
1096 "               B       loc_FF8CD03C\n"
1097 "loc_FF8CD018:\n"
1098 "               BL      sub_FF8CA784\n"
1099 "               B       loc_FF8CD03C\n"
1100 "loc_FF8CD020:\n"
1101 "               BL      sub_FF8CAA20\n"
1102 "               B       loc_FF8CD03C\n"
1103 "loc_FF8CD028:\n"
1104 "               BL      sub_FF8CAC00\n"
1105 "               B       loc_FF8CD03C\n"
1106 "loc_FF8CD030:\n"
1107 "               BL      sub_FF8CADBC\n"
1108 "               B       loc_FF8CD03C\n"
1109 "loc_FF8CD038:\n"
1110 "               BL      sub_FF8CAFB8\n"
1111 "loc_FF8CD03C:\n"
1112 "               LDR     R0, [SP,#0x1C]\n"
1113 "               LDR     R1, [R0,#0x7C]\n"
1114 "               LDR     R3, [R0,#0x8C]\n"
1115 "               LDR     R2, [R0,#0x90]\n"
1116 "               ADD     R0, R0, #4\n"
1117 "               BLX     R3\n"
1118 "               CMP     R4, #1\n"
1119 "               BNE     loc_FF8CD0A4\n"
1120 "loc_FF8CD05C:\n"
1121 "               LDR     R0, [SP,#0x1C]\n"
1122 "               MOV     R2, #0xC\n"
1123 "               LDR     R1, [R0,#0x7C]\n"
1124 "               ADD     R1, R1, R1,LSL#1\n"
1125 "               ADD     R0, R0, R1,LSL#2\n"
1126 "               SUB     R4, R0, #8\n"
1127 "               LDR     R0, =0x58054\n"
1128 "               ADD     R1, SP, #0x10\n"
1129 "               BL      sub_FFB872F4\n"
1130 "               LDR     R0, =0x58060\n"
1131 "               MOV     R2, #0xC\n"
1132 "               ADD     R1, SP, #0x10\n"
1133 "               BL      sub_FFB872F4\n"
1134 "               LDR     R0, =0x5806C\n"
1135 "               MOV     R2, #0xC\n"
1136 "               MOV     R1, R4\n"
1137 "               BL      sub_FFB872F4\n"
1138 "               B       loc_FF8CD120\n"
1139 "loc_FF8CD0A4:\n"
1140 "               LDR     R0, [SP,#0x1C]\n"
1141 "               MOV     R3, #1\n"
1142 "               LDR     R0, [R0]\n"
1143 "               CMP     R0, #0xB\n"
1144 "               BNE     loc_FF8CD0EC\n"
1145 "               MOV     R2, #0\n"
1146 "               STRD    R2, [SP]\n"
1147 "               MOV     R2, #1\n"
1148 "               MOV     R1, #1\n"
1149 "               MOV     R0, #0\n"
1150 "               BL      sub_FF8C8B68\n"
1151 "               MOV     R3, #1\n"
1152 "               MOV     R2, #0\n"
1153 "               STRD    R2, [SP]\n"
1154 "               MOV     R2, #1\n"
1155 "               MOV     R1, #1\n"
1156 "               MOV     R0, #0\n"
1157 "               B       loc_FF8CD11C\n"
1158 "loc_FF8CD0EC:\n"
1159 "               MOV     R2, #1\n"
1160 "               STRD    R2, [SP]\n"
1161 "               MOV     R3, #1\n"
1162 "               MOV     R1, #1\n"
1163 "               MOV     R0, #1\n"
1164 "               BL      sub_FF8C8B68\n"
1165 "               MOV     R3, #1\n"
1166 "               MOV     R2, #1\n"
1167 "               MOV     R1, #1\n"
1168 "               MOV     R0, #1\n"
1169 "               STR     R3, [SP]\n"
1170 "               STR     R3, [SP,#4]\n"
1171 "loc_FF8CD11C:\n"
1172 "               BL      sub_FF8C8CD0\n"
1173 "loc_FF8CD120:\n"
1174 "               LDR     R0, [SP,#0x1C]\n"
1175 "               BL      sub_FF8CDE38\n"
1176 "               B       loc_FF8CCAA8\n"
1177                                         );
1178 }
1179 
1180 void __attribute__((naked,noinline)) sub_FF8C9AD0_my() {
1181         asm volatile (
1182 "               STMFD   SP!, {R4-R8,LR}\n"
1183 "               LDR     R7, =0x4C6C\n"
1184 "               MOV     R4, R0\n"
1185 "               LDR     R0, [R7,#0x1C]\n"
1186 "               MOV     R1, #0x3E\n"
1187 "               BL      sub_FF88DBC0\n"
1188 "               LDRSH   R0, [R4,#4]\n"
1189 "               MOV     R2, #0\n"
1190 "               MOV     R1, #0\n"
1191 "               BL      sub_FF8C88CC\n"
1192 "               MOV     R5, R0\n"
1193 "               LDRSH   R0, [R4,#6]\n"
1194 "               BL      sub_FF8C89DC\n"
1195 "               LDRSH   R0, [R4,#8]\n"
1196 "               BL      sub_FF8C8A34\n"
1197 "               LDRSH   R0, [R4,#0xA]\n"
1198 "               BL      sub_FF8C8A8C\n"
1199 "               LDRSH   R0, [R4,#0xC]\n"
1200 "               MOV     R1, #0\n"
1201 "               BL      sub_FF8C8AE4\n"
1202 "               MOV     R6, R0\n"
1203 "               LDRSH   R0, [R4,#0xE]\n"
1204 "               BL      sub_FF8CDED8\n"
1205 "               LDR     R0, [R4]\n"
1206 "               LDR     R8, =0x5806C\n"
1207 "               CMP     R0, #0xB\n"
1208 "               MOVEQ   R5, #0\n"
1209 "               MOVEQ   R6, #0\n"
1210 "               BEQ     loc_FF8C9B6C\n"
1211 "               CMP     R5, #1\n"
1212 "               BNE     loc_FF8C9B6C\n"
1213 "               LDRSH   R0, [R4,#4]\n"
1214 "               LDR     R1, =0xFF8C8838\n"
1215 "               MOV     R2, #2\n"
1216 "               BL      sub_FF974780\n"  //__IrisController.c__190 ; LOCATION: IrisController.c:190
1217 "               STRH    R0, [R4,#4]\n"
1218 "               MOV     R0, #0\n"
1219 "               STR     R0, [R7,#0x28]\n"
1220 "               B       loc_FF8C9B74\n"
1221 "loc_FF8C9B6C:\n"
1222 "               LDRH    R0, [R8]\n"
1223 "               STRH    R0, [R4,#4]\n"
1224 "loc_FF8C9B74:\n"
1225 "               CMP     R6, #1\n"
1226 "               LDRNEH  R0, [R8,#8]\n"
1227 "               BNE     loc_FF8C9B90\n"
1228 "               LDRSH   R0, [R4,#0xC]\n"
1229 "               LDR     R1, =0xFF8C88BC\n"
1230 "               MOV     R2, #0x20\n"
1231 "               BL      sub_FF8CDEF4\n"
1232 "loc_FF8C9B90:\n"
1233 "               STRH    R0, [R4,#0xC]\n"
1234 "               LDRSH   R0, [R4,#6]\n"
1235 //"             BL      sub_FF8BA3A4\n"  // last step __Shutter.c__0 ; LOCATION:        Shutter.c:0
1236 "               BL      sub_FF8BA3A4_my\n"
1237                 //------------------------>
1238 "B      sub_FF8C9B9C\n" // Continue function in firmware
1239 
1240 /*
1241 "               LDRSH   R0, [R4,#8]\n"
1242 "               MOV     R1, #1\n"
1243 "               BL      _sub_FF8BAB04__ImgGain.c__0 ; LOCATION: ImgGain.c:0\n"
1244 "               MOV     R1, #0\n"
1245 "               ADD     R0, R4, #8\n"
1246 "               BL      _sub_FF8BAB8C__ImgGain.c__352 ; LOCATION: ImgGain.c:352\n"
1247 "               LDRSH   R0, [R4,#0xE]\n"
1248 "               BL      _sub_FF8C37D0__BrtCrct.c__0 ; LOCATION: BrtCrct.c:0\n"
1249 "               LDR     R4, =0xBB8\n"
1250 "               CMP     R5, #1\n"
1251 "               BNE     loc_FF8C9BE8\n"
1252 "               LDR     R0, [R7,#0x1C]\n"
1253 "               MOV     R2, R4\n"
1254 "               MOV     R1, #2\n"
1255 "               BL      _sub_FF88DACC__KerFlag.c__0 ; LOCATION: KerFlag.c:0\n"
1256 "               TST     R0, #1\n"
1257 "               LDRNE   R1, =0x61E\n"
1258 "               ADRNE   R0, aExpdrv_c   ; "ExpDrv.c"\n"
1259 "               BLNE    DebugAssert\n"
1260 "\n"
1261 "loc_FF8C9BE8                           ; CODE XREF: _sub_FF8C9AD0__ExpDrv.c__2+F4j\n"
1262 "               CMP     R6, #1\n"
1263 "               LDMNEFD SP!, {R4-R8,PC}\n"
1264 "               LDR     R0, [R7,#0x1C]\n"
1265 "               MOV     R2, R4\n"
1266 "               MOV     R1, #0x20\n"
1267 "               BL      _sub_FF88DACC__KerFlag.c__0 ; LOCATION: KerFlag.c:0\n"
1268 "               TST     R0, #1\n"
1269 "               LDRNE   R1, =0x623\n"
1270 "               LDRNE   R0, =aExpdrv_c\n"
1271 "               LDMNEFD SP!, {R4-R8,LR}\n"
1272 "               BNE     DebugAssert\n"
1273 "               LDMFD   SP!, {R4-R8,PC}\n"
1274 */
1275 
1276                                 );
1277 }
1278 
1279 
1280 
1281 void __attribute__((naked,noinline)) sub_FF8BA3A4_my() {
1282         asm volatile (
1283 "               STMFD   SP!, {R4-R6,LR}\n"
1284 "               LDR     R5, =0x4934\n"
1285 "               MOV     R4, R0\n"
1286 "               LDR     R0, [R5,#4]\n"
1287 "               CMP     R0, #1\n"
1288 "               LDRNE   R1, =0x146\n"
1289 "               LDRNE   R0, =0xFF8BA1A8\n"  //  Shutter.c
1290 "               BLNE    sub_FF81EB78\n"  //DebugAssert
1291 "               CMN     R4, #0xC00\n"
1292 "               LDREQSH R4, [R5,#2]\n"
1293 "               CMN     R4, #0xC00\n"
1294 "               MOVEQ   R1, #0x14C\n"
1295 "               LDREQ   R0, =0xFF8BA1A8\n"  //  Shutter.c
1296 "               STRH    R4, [R5,#2]\n"
1297 "               BLEQ    sub_FF81EB78\n"  //DebugAssert
1298 "               MOV     R0, R4\n"
1299 "               BL      apex2us\n"  //++
1300 "               MOV     R4, R0\n"
1301 "               BL      sub_FF90667C\n"  //nullsub_68
1302 "               MOV     R0, R4\n"
1303 "               BL      sub_FF910AF8\n"
1304 "               TST     R0, #1\n"
1305 "               LDRNE   R1, =0x151\n"
1306 "               LDMNEFD SP!, {R4-R6,LR}\n"
1307 "               LDRNE   R0, =0xFF8BA1A8\n"  //  Shutter.c
1308 "               BNE     sub_FF81EB78\n"  //DebugAssert
1309 "               LDMFD   SP!, {R4-R6,PC}\n"
1310 
1311                                 );
1312 }

/* [<][>][^][v][top][bottom][index][help] */