root/platform/sx210is/sub/100c/capt_seq.c

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

DEFINITIONS

This source file includes following definitions.
  1. capt_seq_task
  2. sub_FF87E4E8_my
  3. sub_FF972EFC_my
  4. exp_drv_task
  5. sub_FF8C1D70_my
  6. sub_FF8B3AB8_my
  7. sub_FF972E14_my

   1 #include "lolevel.h"
   2 #include "platform.h"
   3 #include "core.h"
   4 #include "conf.h"
   5 
   6 static long *nrflag = (long*)0x75B0;  // -> ASM1989 08.21.2010 found at FF972F10
   7 
   8 
   9 
  10 #include "../../../generic/capt_seq.c"
  11 
  12 //ASM1989 Started  :FF87EB90
  13 void __attribute__((naked,noinline)) capt_seq_task() {
  14  asm volatile (
  15                  "STMFD   SP!, {R3-R9,LR}\n"
  16 
  17 
  18 
  19                  "LDR     R6, =0x32B4\n"                // In sx200 was: 0x2B78
  20                  "LDR     R4, =0x3A5AC\n"               // In sx200 was: 0x15448
  21                  "MOV     R9, #1\n"
  22                  "MOV     R7, #0\n"
  23 "loc_FF87EBA4:\n"
  24                  "LDR     R0, [R6,#4]\n"
  25                  "MOV     R2, #0\n"
  26                  "MOV     R1, SP\n"
  27                  "BL      sub_FF839B88\n"
  28                  "TST     R0, #1\n"
  29                  "BEQ     loc_FF87EBD0\n"
  30                  "LDR     R1, =0x5BE\n"         // In sx200 was:0x588
  31                  "LDR     R0, =0xFF87E3B8\n"  //aSsshoottask_c
  32                  "BL      sub_FF81EB14\n"               //DebugAssert
  33                  "BL      sub_FF81EACC\n"               //eventproc_export_ExitTask
  34                  "LDMFD   SP!, {R3-R9,PC}\n"
  35 
  36 "loc_FF87EBD0:\n"
  37                  "LDR     R0, [SP]\n"
  38                  "LDR     R1, [R0]\n"
  39                  "CMP     R1, #0x21\n"          // In sx200 was:0x20
  40                  "ADDLS   PC, PC, R1,LSL#2\n"
  41                  "B       loc_FF87EE9C\n"
  42 "loc_FF87EBE4:\n"
  43                  "B       loc_FF87EC6C\n"
  44 "loc_FF87EBE8:\n"
  45                  "B       loc_FF87ECD0\n"
  46 "loc_FF87EBEC:\n"
  47                  "B       loc_FF87ED0C\n"
  48 "loc_FF87EBF0:\n"
  49                  "B       loc_FF87ED20\n"
  50 "loc_FF87EBF4:\n"
  51                  "B       loc_FF87ED18\n"
  52 "loc_FF87EBF8:\n"
  53                  "B       loc_FF87ED28\n"
  54 "loc_FF87EBFC:\n"
  55                  "B       loc_FF87ED30\n"
  56 "loc_FF87EC00:\n"
  57                  "B       loc_FF87ED38\n"
  58 "loc_FF87EC04:\n"
  59                  "B       loc_FF87ED90\n"
  60 "loc_FF87EC08:\n"
  61                  "B       loc_FF87EDB8\n"
  62 "loc_FF87EC0C:\n"
  63                  "B       loc_FF87ED9C\n"
  64 "loc_FF87EC10:\n"
  65                  "B       loc_FF87EDA8\n"
  66 "loc_FF87EC14:\n"
  67                  "B       loc_FF87EDB0\n"
  68 "loc_FF87EC18:\n"
  69                  "B       loc_FF87EDC0\n"
  70 "loc_FF87EC1C:\n"
  71                  "B       loc_FF87EDC8\n"
  72 "loc_FF87EC20:\n"
  73                  "B       loc_FF87EDD0\n"
  74 "loc_FF87EC24:\n"
  75                  "B       loc_FF87EDD8\n"
  76 "loc_FF87EC28:\n"
  77                  "B       loc_FF87EDE0\n"
  78 "loc_FF87EC2C:\n"
  79                  "B       loc_FF87EDE8\n"
  80 "loc_FF87EC30:\n"
  81                  "B       loc_FF87EDF0\n"
  82 "loc_FF87EC34:\n"
  83                  "B       loc_FF87EDF8\n"
  84 "loc_FF87EC38:\n"
  85                  "B       loc_FF87EE00\n"
  86 "loc_FF87EC3C:\n"
  87                  "B       loc_FF87EE08\n"
  88 "loc_FF87EC40:\n"
  89                  "B       loc_FF87EE14\n"
  90 "loc_FF87EC44:\n"
  91                  "B       loc_FF87EE1C\n"
  92 "loc_FF87EC48:\n"
  93                  "B       loc_FF87EE28\n"
  94 "loc_FF87EC4C:\n"
  95                  "B       loc_FF87EE30\n"
  96 "loc_FF87EC50:\n"
  97                  "B       loc_FF87EE38\n"
  98 "loc_FF87EC54:\n"
  99                  "B       loc_FF87EE40\n"
 100 "loc_FF87EC58:\n"
 101                  "B       loc_FF87EE48\n"
 102 "loc_FF87EC5C:\n"
 103                  "B       loc_FF87EE50\n"
 104 "loc_FF87EC60:\n"
 105                  "B       loc_FF87EE58\n"
 106 "loc_FF87EC64:\n"
 107                  "B       loc_FF87EE64\n"
 108 "loc_FF87EC68:\n"                                                       //New in sx210
 109                  "B       loc_FF87EEA8\n"
 110 "loc_FF87EC6C:\n"
 111                  "BL      sub_FF87F4C4\n"
 112 
 113 
 114                // "B      sub_FF87EC70\n"    DEBUG  TESTING GO BACK TO REAL CODE!!!
 115 
 116 // TESTING DOSNT DO BAD NEITHER GOOD  LIKE IN SD1200 but seems to dont work too!!!
 117 /*
 118 "    STMFD   SP!, {R1-R12,LR}\n"
 119 "    BL      captseq_hack_override_active\n" // returns 1 if tv or sv override in effect
 120 "    LDMFD   SP!, {R1-R12,LR}\n"
 121 "    STR     R0,[SP,#-4]!\n" // push return value
 122 "    BL      shooting_expo_param_override\n" // saves all regs
 123 
 124 "                BL      sub_FF87C4C0\n"
 125 
 126 "    LDR     R0,[SP],#4\n" // pop override hack
 127 "    CMP     R0, #1\n"
 128 "    MOVEQ   R0, #0\n"
 129 "    STREQ   R0, [R4,#0x24]\n"  // fixes overrides behavior at short shutter press
 130 */
 131 
 132 
 133 
 134 
 135                  "BL      shooting_expo_param_override\n"  // +
 136                  "BL      sub_FF87C4C0\n"
 137 
 138 // copied over from SX10 don't know if we need it yet
 139  //  this code added to avoid some incorrect behavior if overrides are used.
 140  //  but it can cause some unexpected side effects. In this case, remove this code!
 141 
 142                  "MOV     R0, #0\n"
 143                  "STR     R0, [R4,#0x24]\n"  // fixes overrides  behavior at short shutter press
 144 
 145 
 146 
 147 
 148  //  end of my code
 149                  "LDR     R0, [R4,#0x24]\n"
 150                  "CMP     R0, #0\n"
 151                  "BEQ     loc_FF87EEA8\n"
 152                  "BL      sub_FF87E090\n"
 153                  "MOV     R5, R0\n"
 154                  "LDR     R0, [R4,#0x24]\n"
 155                  "CMP     R0, #0\n"
 156                  "BEQ     loc_FF87ECB4\n"
 157                  "MOV     R0, #0xC\n"
 158                  "BL      sub_FF883D9C\n"
 159                  "TST     R0, #1\n"
 160                  "STRNE   R9, [R6,#0x10]\n"
 161                  "LDRNE   R0, [R5,#8]\n"
 162                  "ORRNE   R0, R0, #0x40000000\n"
 163                  "STRNE   R0, [R5,#8]\n"
 164                  "BNE     loc_FF87EEA8\n"
 165 "loc_FF87ECB4:\n"
 166                  "MOV     R0, R5\n"
 167                  "BL      sub_FF87E470\n"
 168                  "MOV     R0, R5\n"
 169 
 170 
 171                  "BL      sub_FF972EFC_my\n"      // ASM1989 Done 03.09.10 In sx200 was: sub_FF93D388_my
 172 //                 "BL      sub_FF972EFC\n"       ASM1989 Done 03.09.10 In sx200 was: sub_FF93D388_my
 173 //TESTING OVERRIDES 18.09.10
 174 //In sd1200 its not my ????
 175 //                  "BL      sub_FF972EFC\n"
 176                                                          // ------------------>
 177 //in sd1200 its not here
 178                  "BL      capt_seq_hook_raw_here\n"      // +
 179 
 180 
 181                  "TST     R0, #1\n"
 182                  "STRNE   R9, [R6,#0x10]\n"
 183                  "B       loc_FF87EEA8\n"
 184 "loc_FF87ECD0:\n"
 185                  "LDR     R0, [R4,#0x24]\n"
 186                  "CMP     R0, #0\n"
 187                  "BNE     loc_FF87ECFC\n"
 188                  "MOV     R0, #0xC\n"
 189                  "BL      sub_FF883D9C\n"
 190                  "TST     R0, #1\n"
 191                  "LDRNE   R0, [SP]\n"
 192                  "MOVNE   R1, #1\n"
 193                  "LDRNE   R2, [R0,#0xC]\n"
 194                  "MOVNE   R0, #1\n"
 195                  "BNE     loc_FF87ED88\n"
 196 "loc_FF87ECFC:\n"
 197                  "LDR     R0, [SP]\n"
 198                  "BL      sub_FF87E4E8_my\n"       // ASM1989 Done 03.09.10 In sx200 was: sub_FF862C18_my
 199           //       "BL      sub_FF87E4E8\n"        ASM1989 Done 03.09.10 In sx200 was: sub_FF862C18_my
 200                                            // ----------------->
 201 "loc_FF87ED04:\n"
 202                  "STR     R7, [R4,#0x24]\n"
 203                  "B       loc_FF87EEA8\n"
 204 "loc_FF87ED0C:\n"                // IN sx20 there is another extra bl here
 205                  "MOV     R0, #1\n"
 206                  "BL      sub_FF87F768\n"               //LOCATION: SsPrepareSeq.c:0
 207                  "B       loc_FF87EEA8\n"
 208 "loc_FF87ED18:\n"
 209                  "BL      sub_FF87F15C\n"
 210                  "B       loc_FF87ED04\n"
 211 "loc_FF87ED20:\n"
 212 // last call after shot, also called switching from play->shoot
 213                  "BL      sub_FF87F4A4\n"
 214                  "B       loc_FF87ED04\n"
 215 "loc_FF87ED28:\n"
 216                  "BL      sub_FF87F4AC\n"
 217                  "B       loc_FF87EEA8\n"
 218 "loc_FF87ED30:\n"
 219                  "BL      sub_FF87F678\n"               //SsPrepareSeq.c__0
 220                  "B       loc_FF87ED94\n"
 221 "loc_FF87ED38:\n"
 222                  "LDR     R5, [R0,#0xC]\n"
 223                  "BL      sub_FF87F4B4\n"
 224                  "MOV     R0, R5\n"
 225                  "BL      sub_FF971D04\n"
 226                  "TST     R0, #1\n"
 227                  "MOV     R8, R0\n"
 228                  "BNE     loc_FF87ED78\n"
 229                  "BL      sub_FF891200\n"
 230 
 231 
 232 
 233                  "STR     R0, [R5,#0x18]\n"
 234                  "MOV     R0, R5\n"
 235                  "BL      sub_FF972E14\n"    // Flash and ISO Seams to crash here??
 236                  "MOV     R0, R5\n"
 237                  "BL      sub_FF9731AC\n"
 238                  "MOV     R8, R0\n"
 239                  "LDR     R0, [R5,#0x18]\n"
 240                  "BL      sub_FF891438\n"
 241 "loc_FF87ED78:\n"
 242                  "BL      sub_FF87F4A4\n"
 243                  "MOV     R2, R5\n"
 244                  "MOV     R1, #9\n"
 245                  "MOV     R0, R8\n"
 246 "loc_FF87ED88:\n"
 247                  "BL      sub_FF87CB20\n"
 248                  "B       loc_FF87EEA8\n"
 249 "loc_FF87ED90:\n"
 250 // movie mode half press ?
 251                  "BL      sub_FF87F6E0\n"
 252 "loc_FF87ED94:\n"
 253                  "BL      sub_FF87C4C0\n"
 254                  "B       loc_FF87EEA8\n"
 255 "loc_FF87ED9C:\n"
 256                  "LDR     R0, [R4,#0x54]\n"
 257                  "BL      sub_FF87FD30\n"
 258                  "B       loc_FF87EEA8\n"
 259 "loc_FF87EDA8:\n"
 260                  "BL      sub_FF87FFE8\n"
 261                  "B       loc_FF87EEA8\n"
 262 "loc_FF87EDB0:\n"
 263                  "BL      sub_FF880080\n"
 264                  "B       loc_FF87EEA8\n"
 265 "loc_FF87EDB8:\n"
 266                  "BL      sub_FF87F4A4\n"
 267                  "B       loc_FF87EEA8\n"
 268 "loc_FF87EDC0:\n"
 269                  "BL      sub_FF971F20\n"
 270                  "B       loc_FF87EEA8\n"
 271 "loc_FF87EDC8:\n"
 272                  "BL      sub_FF972134\n"
 273                  "B       loc_FF87EEA8\n"
 274 "loc_FF87EDD0:\n"
 275                  "BL      sub_FF9721BC\n"
 276                  "B       loc_FF87EEA8\n"
 277 "loc_FF87EDD8:\n"
 278                  "BL      sub_FF9722AC\n"
 279                  "B       loc_FF87EEA8\n"
 280 "loc_FF87EDE0:\n"                                                       //new sx210
 281                  "BL      sub_FF97237C\n"
 282                  "B       loc_FF87EEA8\n"
 283 "loc_FF87EDE8:\n"
 284                  "MOV     R0, #0\n"
 285                  "B       loc_FF87EE0C\n"
 286 "loc_FF87EDF0:\n"
 287                  "BL      sub_FF9727E8\n"
 288                  "B       loc_FF87EEA8\n"
 289 "loc_FF87EDF8:\n"
 290                  "BL      sub_FF972884\n"
 291                  "B       loc_FF87EEA8\n"
 292 "loc_FF87EE00:\n"
 293                  "BL      sub_FF972964\n"
 294                  "B       loc_FF87EEA8\n"
 295 "loc_FF87EE08:\n"
 296                  "MOV     R0, #1\n"
 297 "loc_FF87EE0C:\n"
 298                  "BL      sub_FF972698\n"
 299                  "B       loc_FF87EEA8\n"
 300 "loc_FF87EE14:\n"
 301                  "BL      sub_FF87F920\n"
 302                  "B       loc_FF87EEA8\n"
 303 "loc_FF87EE1C:\n"
 304                  "BL      sub_FF87F9C8\n"
 305                  "BL      sub_FF87EFD4\n"
 306                  "B       loc_FF87EEA8\n"
 307 "loc_FF87EE28:\n"
 308                  "BL      sub_FF9724F8\n"
 309                  "B       loc_FF87EEA8\n"
 310 "loc_FF87EE30:\n"
 311                  "BL      sub_FF9725C8\n"
 312                  "B       loc_FF87EEA8\n"
 313 "loc_FF87EE38:\n"
 314                  "BL      sub_FF87E348\n"
 315                  "B       loc_FF87EEA8\n"
 316 "loc_FF87EE40:\n"
 317                  "BL      sub_FF837804\n"
 318                  "B       loc_FF87EEA8\n"
 319 "loc_FF87EE48:\n"
 320                  "BL      sub_FF882220\n"
 321                  "B       loc_FF87EEA8\n"
 322 "loc_FF87EE50:\n"
 323                  "BL      sub_FF8822A8\n"
 324                  "B       loc_FF87EEA8\n"
 325 "loc_FF87EE58:\n"
 326 // iso change
 327                  "BL      sub_FF882304\n"
 328                  "BL      sub_FF8822C4\n"
 329                  "B       loc_FF87EEA8\n"
 330 "loc_FF87EE64:\n"                                                       //diferent than sx200 & sx20
 331                  "MOV     R0, #1\n"
 332                  "BL      sub_FF973B6C\n"
 333                  "MOV     R0, #1\n"
 334                  "BL      sub_FF973CA0\n"
 335                  "LDRH    R0, [R4,#0x9C]\n"
 336                  "CMP     R0, #4\n"
 337                  "LDRNEH  R0, [R4]\n"
 338                  "SUBNE   R12, R0, #0x8200\n"
 339                  "SUBNES  R12, R12, #0x2A\n"
 340                  "BNE     loc_FF87EEA8\n"
 341                  "BL      sub_FF8822A8\n"
 342                  "BL      sub_FF882820\n"  //Error in function order call
 343                  "BL      sub_FF882728\n"
 344                  "B       loc_FF87EEA8\n"
 345 
 346 "loc_FF87EE9C:\n"
 347                  "LDR     R1, =0x724\n"                 //in sx200 was: 0x6C9
 348                  "LDR     R0, =0xFF87E3B8\n"            //aSsshoottask_c ; "SsShootTask.c"
 349                  "BL      sub_FF81EB14\n"               //DebugAssert
 350 "loc_FF87EEA8:\n"
 351                  "LDR     R0, [SP]\n"
 352                  "LDR     R1, [R0,#4]\n"
 353                  "LDR     R0, [R6]\n"
 354                  "BL      sub_FF888E00\n"
 355                  "LDR     R5, [SP]\n"
 356                  "LDR     R0, [R5,#8]\n"
 357                  "CMP     R0, #0\n"
 358                  "LDREQ   R1, =0x132\n"         // in sx200: 0x12B
 359                  "LDREQ   R0, =0xFF87E3B8\n"            //aSsshoottask_c ; "SsShootTask.c"
 360                  "BLEQ    sub_FF81EB14\n"               //DebugAssert
 361                  "STR     R7, [R5,#8]\n"
 362                  "B       loc_FF87EBA4\n"
 363         );
 364 }               // ASM 1989  Done 03.09.10
 365 
 366 
 367 
 368 //"BL      sub_FF87E4E8_my\n"        ASM1989 Done 03.09.10 In sx200 was: sub_FF862C18_my
 369 void __attribute__((naked,noinline)) sub_FF87E4E8_my(){
 370  asm volatile(
 371                  "STMFD   SP!, {R3-R9,LR}\n"
 372                  "LDR     R4, [R0,#0xC]\n"
 373                  "LDR     R5, =0x3A5AC\n"               //Sx200:0x15448
 374                  "LDR     R0, [R4,#8]\n"
 375                  "LDR     R6, =0x420C\n"                //Sx200:0x420A
 376                  "ORR     R0, R0, #1\n"
 377                  "STR     R0, [R4,#8]\n"
 378                  "LDRH    R0, [R5]\n"
 379                  "LDR     R8, =0x32B4\n"                //Sx200:0x2B78
 380                  "MOV     R7, #0\n"
 381                  "CMP     R0, R6\n"
 382                  "BEQ     loc_FF87E58C\n"
 383                  "LDRH    R0, [R5,#0x9A]\n"             //Sx200:0x96
 384                  "CMP     R0, #3\n"
 385                  "BEQ     loc_FF87E5EC\n"
 386                  "LDR     R0, [R4,#0xC]\n"
 387                  "CMP     R0, #1\n"
 388                  "BLS     loc_FF87E598\n"
 389                  "LDRH    R0, [R5,#0x98]\n"     //Sx200:0x94
 390                  "CMP     R0, #0\n"
 391                  "BNE     loc_FF87E5EC\n"
 392                  "LDRH    R0, [R5,#0x94]\n"     //Sx200:0x90
 393                  "CMP     R0, #2\n"
 394                  "BNE     loc_FF87E5A4\n"
 395                  "BL      sub_FF87FA78\n"
 396                  "LDRH    R0, [R5]\n"
 397                  "CMP     R0, R6\n"
 398                  "BEQ     loc_FF87E58C\n"
 399                  "LDRH    R0, [R5,#0x9A]\n"
 400                  "CMP     R0, #3\n"
 401                  "BEQ     loc_FF87E5EC\n"
 402                  "LDR     R0, [R4,#0xC]\n"
 403                  "CMP     R0, #1\n"
 404                  "BLS     loc_FF87E598\n"
 405                  "LDRH    R0, [R5,#0x98]\n"
 406                  "CMP     R0, #0\n"
 407                  "BNE     loc_FF87E5EC\n"
 408                  "LDRH    R0, [R5,#0x94]\n"
 409                  "CMP     R0, #2\n"
 410                  "BEQ     loc_FF87E5D0\n"
 411                  "B       loc_FF87E5A4\n"
 412 "loc_FF87E58C:\n"
 413                  "LDRH    R0, [R5,#0x9A]\n"
 414                  "CMP     R0, #3\n"
 415                  "BEQ     loc_FF87E5EC\n"
 416 "loc_FF87E598:\n"
 417                  "LDRH    R0, [R5,#0x98]\n"
 418                  "CMP     R0, #0\n"
 419                  "BNE     loc_FF87E5EC\n"
 420 "loc_FF87E5A4:\n"
 421                  "LDRH    R0, [R5,#0x94]\n"
 422                  "CMP     R0, #1\n"
 423                  "BNE     loc_FF87E5EC\n"
 424                  "LDRH    R0, [R5]\n"
 425                  "CMP     R0, R6\n"
 426                  "LDRNE   R0, [R4,#0xC]\n"
 427                  "CMPNE   R0, #1\n"
 428                  "BLS     loc_FF87E5EC\n"
 429                  "LDR     R0, [R4,#0x10]\n"
 430                  "CMP     R0, #1\n"
 431                  "BNE     loc_FF87E5EC\n"
 432 "loc_FF87E5D0:\n"
 433                  "LDR     R3, =0x277\n"                 //SX200 :0x262
 434                  "LDR     R2, =0xEA60\n"        //SX200 :0xEA60
 435                  "STR     R3, [SP]\n"
 436                  "LDR     R0, [R8]\n"
 437                  "LDR     R3, =0xFF87E3B8\n"            //aSsshoottask_c ; "SsShootTask.c"
 438                  "MOV     R1, #0x40000000\n"
 439                  "BL      sub_FF884110\n"
 440 "loc_FF87E5EC:\n"
 441                  "BL      sub_FF87E348\n"
 442                  "LDR     R0, [R5,#0x24]\n"
 443                  "CMP     R0, #0\n"
 444                  "MOVEQ   R0, #2\n"
 445                  "BLEQ    sub_FF87AAA8\n"
 446                  "BL      sub_FF87F4B4\n"
 447                  "LDR     R0, [R5,#0x24]\n"
 448                  "CMP     R0, #0\n"
 449                  "BNE     loc_FF87E69C\n"
 450                  "MOV     R0, #0\n"
 451                  "BL      sub_FF973B6C\n"
 452                  "MOV     R0, #0\n"                     //New sx210
 453                  "BL      sub_FF973CA0\n"
 454                  "MOV     R0, R4\n"
 455                  "BL      sub_FF87F8A8\n"
 456                  "MOV     R0, R4\n"
 457                  "BL      sub_FF971900\n"
 458                  "CMP     R0, #0\n"
 459                  "BEQ     loc_FF87E664\n"
 460                  "BL      sub_FF973BAC\n"
 461                  "BL      sub_FF973CE4\n"               //New sx210
 462                  "BL      sub_FF973D34\n"               //New sx210
 463                  "MOV     R0, R4\n"
 464                  "BL      sub_FF971A2C\n"               //LOCATION: SsPrePreSeq.c:0
 465                  "TST     R0, #1\n"
 466                  "MOVNE   R2, R4\n"
 467                  "LDMNEFD SP!, {R3-R9,LR}\n"
 468                  "MOVNE   R1, #1\n"
 469                  "BNE     sub_FF87CB20\n"       //LOCATION: SsPrePreSeq.c:0
 470                  "B       loc_FF87E678\n"
 471 "loc_FF87E664:\n"
 472                  "MOV     R0, R4\n"
 473                  "BL      sub_FF9719A4\n"
 474                  "BL      sub_FF973BAC\n"
 475                  "BL      sub_FF973CE4\n"       //New sx210
 476                  "BL      sub_FF973D34\n"       //New sx210
 477 
 478 "loc_FF87E678:\n"
 479                  "MOV     R0, R4\n"
 480                  "BL      sub_FF87E470\n"
 481                  "MOV     R0, R4\n"
 482 
 483 
 484 
 485 
 486 
 487 
 488 
 489                  // FLASH AND ISO CRASH HERE !!
 490                  "BL      sub_FF972E14\n"               //; LOCATION: SsCaptureSeq.c:1
 491                //  "BL      sub_FF972E14_my\n"          //; LOCATION: SsCaptureSeq.c:1
 492                                                                                 //ASM1989 Testing ISO--->
 493 
 494                  //TESTING SOUND!!!
 495                                  //                                             "STMFD   SP!, {R3-R9,LR}\n"
 496                                  //                                                                     "MOV     R0, #1\n"
 497                                  //                                                                      "LDR     R1, =0x400D\n"
 498                                  //                                               "BL      sub_FF885CD0\n"
 499                                  //                "LDMFD   SP!, {R3-R9,PC}\n"
 500                                  ""
 501 //Set Led for ever
 502                                  /*ASM_SAFE(
 503                                  "MOV     R0, #1\n"
 504                                  "MOV     R1, #0\n"
 505                                  "BL      sub_FF860FF8\n"
 506                                  )*/
 507 
 508 //BeepDrive for ever
 509 /*
 510 ASM_SAFE(
 511                                  "MOV     R0, #1\n"
 512                                  "MOV     R1, #3\n"
 513                                  "BL      sub_FF96EAD8\n"
 514                                         "MOV     R1, #4\n"
 515                                  "BL      sub_FF96EAD8\n"
 516                                  "MOV     R1, #3\n"
 517                                  "BL      sub_FF96EAD8\n"
 518                                  "MOV     R1, #4\n"
 519                                  "BL      sub_FF96EAD8\n"
 520 
 521 )*/
 522 
 523 
 524 
 525 
 526                  "BL      sub_FF973948\n"               // LOCATION: SsShootLib.c:4096
 527                  "MOV     R0, R4\n"
 528 // TL HERE DOSNT CRASH
 529 
 530                  "BL      sub_FF972EFC_my\n"      //ASM1989 03.09.10 old sx200:   sub_FF93D388_my               SsCaptureSeq.c:1012
 531                                                   //----------->
 532 //"BL      sub_FF972EFC\n"  // TESTING DONT USE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 533 
 534 
 535                  "MOV     R7, R0\n"    //R5,R0 in sd980 ?
 536                 "BL      capt_seq_hook_raw_here\n"      // +
 537 
 538 
 539                  "B       loc_FF87E6A8\n"
 540 "loc_FF87E69C:\n"
 541                  "LDR     R0, [R8,#0x10]\n"
 542                  "CMP     R0, #0\n"
 543                  "MOVNE   R7, #0x1D\n"
 544 "loc_FF87E6A8:\n"
 545                  "BL      sub_FF8822A8\n"
 546                  "BL      sub_FF8822F0\n"
 547                  "BL      sub_FF882330\n"
 548                  "MOV     R2, R4\n"
 549                  "MOV     R1, #1\n"
 550                  "MOV     R0, R7\n"
 551                  "BL      sub_FF87CB20\n"                       // LOCATION: SsShootCtrl.c:0
 552                  "BL      sub_FF973160\n"
 553                  "CMP     R0, #0\n"
 554                  "LDRNE   R0, [R4,#8]\n"
 555                  "ORRNE   R0, R0, #0x2000\n"
 556                  "STRNE   R0, [R4,#8]\n"
 557                  "LDRH    R0, [R5,#0x9A]\n"
 558                  "CMP     R0, #3\n"
 559                  "BEQ     locret_FF87E700\n"
 560                  "LDRH    R0, [R5,#0x98]\n"
 561                  "CMP     R0, #0\n"
 562                  "LDREQH  R0, [R5,#0x94]\n"
 563                  "CMPEQ   R0, #2\n"
 564                  "MOVEQ   R0, R4\n"
 565                  "LDMEQFD SP!, {R3-R9,LR}\n"
 566                  "BEQ     sub_FF87FACC\n"
 567 "locret_FF87E700:\n"
 568                  "LDMFD   SP!, {R3-R9,PC}\n"
 569  );
 570 }// Finished 09.03.2010 ASM1989
 571 
 572 //sub_FF972EFC_my\n"       In sx200 was: sub_FF93D388_my
 573 //ASM1989 DONE
 574 void __attribute__((naked,noinline)) sub_FF972EFC_my(){
 575  asm volatile(
 576                  "STMFD   SP!, {R0-R8,LR}\n"
 577                  "MOV     R4, R0\n"
 578                  "BL      sub_FF973E70\n"
 579                  "LDR     R1, =0xFFFFFFFF\n"            //used the sx20 code,  in sx200:"MVN     R1, #0\n"
 580                  "BL      sub_FF888E34\n"
 581                  "LDR     R5, =0x75B0\n"                                //SX200 : 0x6AD8
 582                  "LDR     R0, [R5,#0xC]\n"
 583                  "CMP     R0, #0\n"
 584                  "BNE     loc_FF972F4C\n"
 585                  "MOV     R1, #1\n"
 586                  "MOV     R0, #0\n"
 587                  "BL      sub_FF83A3D0\n"
 588                  "STR     R0, [R5,#0xC]\n"
 589                  "MOV     R3, #0\n"
 590                  "STR     R3, [SP]\n"
 591                  "LDR     R3, =0xFF972A5C\n"
 592                  "LDR     R0, =0xFF973138\n"        //"ShutterSoundTask"
 593                  "MOV     R2, #0x400\n"
 594                  "MOV     R1, #0x17\n"
 595                  "BL      sub_FF83A39C\n"                       //KernelCreateTask
 596 "loc_FF972F4C:\n"
 597                  "MOV     R2, #4\n"
 598                  "ADD     R1, SP, #8\n"
 599                  "MOV     R0, #0x8A\n"
 600                  "BL      sub_FF891070\n"                       //PT_GetPropertyCaseString
 601                  "TST     R0, #1\n"
 602                  //DEBUGIN 09.09.10 Detected some registry diferences, what do they do??
 603                  "MOVNE   R1, #0x3F4\n"                         //SX200:0x3AE
 604                  "LDRNE   R0, =0xFF972CF4\n"            //aSscaptureseq_c ; "SsCaptureSeq.c"
 605                  "BLNE    sub_FF81EB14\n"                       //DebugAssert
 606                  "LDR     R6, =0x3A678\n"                       //SX200:0x1550C
 607                  "LDR     R7, =0x3A5AC\n"                       //SX200:0x15448
 608                  "LDR     R3, [R6]\n"  //missing
 609                  "LDRSH   R2, [R6,#0xC]\n"                      //New sx210
 610                  "LDRSH   R1, [R6,#0xE]\n"
 611                  "LDR     R0, [R7,#0x90]\n"             //SX200:0x8C
 612                  "BL      sub_FF93938C\n"
 613                  "BL      sub_FF866E94\n"               //LOCATION: Thermometer.c:0
 614                  "LDR     R3, =0x75B8\n"                //SX200:0x6AE0
 615                  "STRH    R0, [R4,#0xA4]\n"             //SX200:0x9C
 616                  "SUB     R2, R3, #4\n"
 617                  "STRD    R2, [SP]\n"
 618                  "MOV     R1, R0\n"
 619                  "LDRH    R0, [R7,#0x5C]\n"
 620                  "LDRSH   R2, [R6,#0xC]\n"
 621                  //END DEBUGIN 09.09.10 Detected some registry diferences
 622                  "SUB     R3, R3, #8\n"
 623                  "BL      sub_FF975A14\n"
 624 //TESTing enable latter!
 625 //                 "BL      wait_until_remote_button_is_released\n"
 626                  "BL      capt_seq_hook_set_nr\n"                     // +
 627                  "B       sub_FF972FB0\n"                             // continue function in firmware
 628 
 629 
 630 
 631                  //Testing New order, but no change, maybe that why overrides dont work??
 632 /*                 "LDR     R0, [R4,#0x1C]\n"
 633                  "CMP     R0, #0\n"
 634                  "MOVNE   R0, #1\n"
 635                  "STRNE   R0, [R5]\n"
 636                  "LDR     R0, [R5]\n"
 637                  "MOV     R1, R0,LSL#16\n"
 638                  "LDRH    R0, [R7,#0x5C]\n"
 639                  "MOV     R1, R1,LSR#16\n"
 640                  "BL      sub_FF975B70\n"
 641                  "BL      wait_until_remote_button_is_released\n"
 642                  "BL      capt_seq_hook_set_nr\n"                     // +
 643                  "B       sub_FF972FD4\n"                             // continue function in firmware
 644 */
 645 
 646 /*
 647                  "BL      wait_until_remote_button_is_released\n"
 648                  "BL      capt_seq_hook_set_nr\n"                     // +
 649                  "B       sub_FF972FB0\n"                             // continue function in firmware
 650                  */
 651 
 652  );
 653 } // Finished 09.03.2010 ASM1989
 654 
 655 
 656 
 657 // copied from FF8C475C     in sx200 was:FF8A2214
 658 /*
 659 ***********************************************************
 660 */
 661 
 662 void __attribute__((naked,noinline)) exp_drv_task(){
 663  asm volatile(
 664                 "STMFD   SP!, {R4-R8,LR}\n"
 665                 "SUB     SP, SP, #0x20\n"
 666                 "LDR     R8, =0xBB8\n"
 667                 "LDR     R7, =0x4B08\n"                 //in sx200 was: 0x41F4
 668                 "LDR     R5, =0x43B90\n"                //in sx200 was: 0x1A1B0
 669                 "MOV     R0, #0\n"
 670                 "ADD     R6, SP, #0x10\n"
 671                 "STR     R0, [SP,#0xC]\n"
 672 "loc_FF8C477C:\n"
 673                 "LDR     R0, [R7,#0x20]\n"
 674                 "MOV     R2, #0\n"
 675                 "ADD     R1, SP, #0x1C\n"
 676                 "BL      sub_FF839B88\n"
 677                 "LDR     R0, [SP,#0xC]\n"
 678                 "CMP     R0, #1\n"
 679                 "BNE     loc_FF8C47C8\n"
 680                 "LDR     R0, [SP,#0x1C]\n"
 681                 "LDR     R0, [R0]\n"
 682                 "CMP     R0, #0x14\n"                   //in sx200 was:13,14,15,16
 683                 "CMPNE   R0, #0x15\n"
 684                 "CMPNE   R0, #0x16\n"
 685                 "CMPNE   R0, #0x17\n"
 686                 "BEQ     loc_FF8C492C\n"
 687                 "CMP     R0, #0x29\n"                   //sx200: 28
 688                 "BEQ     loc_FF8C48B4\n"
 689                 "ADD     R1, SP, #0xC\n"
 690                 "MOV     R0, #0\n"
 691                 "BL      sub_FF8C470C\n"
 692 "loc_FF8C47C8:\n"
 693                 "LDR     R0, [SP,#0x1C]\n"
 694                 "LDR     R1, [R0]\n"
 695                 "CMP     R1, #0x2F\n"           //sx200: 2D
 696                 "BNE     loc_FF8C47F8\n"
 697                 "LDR     R0, [SP,#0x1C]\n"
 698                 "BL      sub_FF8C5AE0\n"
 699                 "LDR     R0, [R7,#0x1C]\n"
 700                 "MOV     R1, #1\n"
 701                 "BL      sub_FF888E00\n"
 702                 "BL      sub_FF81EACC\n"                // eventproc_export_ExitTask
 703                 "ADD     SP, SP, #0x20\n"
 704                 "LDMFD   SP!, {R4-R8,PC}\n"
 705 "loc_FF8C47F8:\n"
 706                 "CMP     R1, #0x2E\n"           //sx200: 2C
 707                 "BNE     loc_FF8C4814\n"
 708                 "LDR     R2, [R0,#0x8C]!\n"     //sx200: 88
 709                 "LDR     R1, [R0,#4]\n"
 710                 "MOV     R0, R1\n"
 711                 "BLX     R2\n"
 712                 "B       loc_FF8C4D60\n"
 713 "loc_FF8C4814:\n"
 714                 "CMP     R1, #0x27\n"           //sx200: 26
 715                 "BNE     loc_FF8C4864\n"
 716                 "LDR     R0, [R7,#0x1C]\n"
 717                 "MOV     R1, #0x80\n"
 718                 "BL      sub_FF888E34\n"
 719                 "LDR     R0, =0xFF8C0CA0\n"
 720                 "MOV     R1, #0x80\n"
 721                 "BL      sub_FF965340\n"
 722                 "LDR     R0, [R7,#0x1C]\n"
 723                 "MOV     R2, R8\n"
 724                 "MOV     R1, #0x80\n"
 725                 "BL      sub_FF888D40\n"
 726                 "TST     R0, #1\n"
 727                 "LDRNE   R1, =0xEE1\n"          //sx200:DD2
 728                 "BNE     loc_FF8C4920\n"
 729 "loc_FF8C4850:\n"
 730                 "LDR     R1, [SP,#0x1C]\n"
 731                 "LDR     R0, [R1,#0x90]\n"              //sx200: 8C
 732                 "LDR     R1, [R1,#0x8C]\n"              //sx200: 88
 733                 "BLX     R1\n"
 734                 "B       loc_FF8C4D60\n"
 735 "loc_FF8C4864:\n"
 736                 "CMP     R1, #0x28\n"                   //Sx200:27
 737                 "BNE     loc_FF8C48AC\n"
 738                 "ADD     R1, SP, #0xC\n"
 739                 "BL      sub_FF8C470C\n"
 740                 "LDR     R0, [R7,#0x1C]\n"
 741                 "MOV     R1, #0x100\n"
 742                 "BL      sub_FF888E34\n"
 743                 "LDR     R0, =0xFF8C0CB0\n"
 744                 "MOV     R1, #0x100\n"
 745                 "BL      sub_FF965FE4\n"
 746                 "LDR     R0, [R7,#0x1C]\n"
 747                 "MOV     R2, R8\n"
 748                 "MOV     R1, #0x100\n"
 749                 "BL      sub_FF888D40\n"
 750                 "TST     R0, #1\n"
 751                 "BEQ     loc_FF8C4850\n"
 752                 "LDR     R1, =0xEEB\n"                  //sx200: DDC
 753                 "B       loc_FF8C4920\n"                //new sx210
 754 
 755 //Not existing in sx210
 756 /*
 757 "loc_FF8A2360:\n"
 758                 "LDR     R0, =0xFF89F134\n"
 759                 "BL      sub_FF81B284\n"
 760                 "B       loc_FF8A2308\n"*/
 761 
 762 
 763 "loc_FF8C48AC:\n"
 764                 "CMP     R1, #0x29\n"           //sx200: 28
 765                 "BNE     loc_FF8C48C4\n"
 766 "loc_FF8C48B4:\n"
 767                 "LDR     R0, [SP,#0x1C]\n"
 768                 "ADD     R1, SP, #0xC\n"
 769                 "BL      sub_FF8C470C\n"
 770                 "B       loc_FF8C4850\n"
 771 "loc_FF8C48C4:\n"
 772                 "CMP     R1, #0x2C\n"           //sx200: 2B
 773                 "BNE     loc_FF8C48DC\n"
 774                 "BL      sub_FF8B3D48\n"
 775                 "BL      sub_FF8B4968\n"
 776                 "BL      sub_FF8B44CC\n"
 777                 "B       loc_FF8C4850\n"
 778 //New sx210 code
 779 "loc_FF8C48DC:\n"
 780                                 "CMP     R1, #0x2D\n"
 781                                 "BNE     loc_FF8C492C\n"
 782                                 "LDR     R0, [R7,#0x1C]\n"
 783                                 "MOV     R1, #4\n"
 784                                 "BL      sub_FF888E34\n"
 785                                 "LDR     R1, =0xFF8C0CD0\n"
 786                                 "LDR     R0, =0xFFFFF400\n"
 787                                 "MOV     R2, #4\n"
 788                                 "BL      sub_FF8B37C4\n"
 789                                 "BL      sub_FF8B3A4C\n"                //LOCATION: Shutter.c:0
 790                                 "LDR     R0, [R7,#0x1C]\n"
 791                                 "MOV     R2, R8\n"
 792                                 "MOV     R1, #4\n"
 793                                 "BL      sub_FF888C5C\n"
 794                                 "TST     R0, #1\n"
 795                                 "BEQ     loc_FF8C4850\n"
 796                                 "LDR     R1, =0xF13\n"
 797 "loc_FF8C4920:\n"
 798                                 "LDR     R0, =0xFF8C1310\n"             // aExpdrv_c
 799                                 "BL      sub_FF81EB14\n"                //DebugAssert
 800                                 "B       loc_FF8C4850\n"
 801  //end new sx210 code
 802 "loc_FF8C492C:\n"
 803                 "LDR     R0, [SP,#0x1C]\n"
 804                 "MOV     R4, #1\n"
 805                 "LDR     R1, [R0]\n"
 806                 "CMP     R1, #0x12\n"                   //sx200: 11
 807                 "CMPNE   R1, #0x13\n"                           //sx200: 12
 808                 "BNE     loc_FF8C499C\n"
 809                 "LDR     R1, [R0,#0x7C]\n"
 810                 "ADD     R1, R1, R1,LSL#1\n"
 811                 "ADD     R1, R0, R1,LSL#2\n"
 812                 "SUB     R1, R1, #8\n"
 813                 "LDMIA   R1, {R2-R4}\n"
 814                 "STMIA   R6, {R2-R4}\n"
 815                 "BL      sub_FF8C30F4\n"
 816                 "LDR     R0, [SP,#0x1C]\n"
 817                 "LDR     R1, [R0,#0x7C]\n"
 818                 "LDR     R3, [R0,#0x8C]\n"              //88
 819                 "LDR     R2, [R0,#0x90]\n"              //8C
 820                 "ADD     R0, R0, #4\n"
 821                 "BLX     R3\n"
 822                 "LDR     R0, [SP,#0x1C]\n"
 823                 "BL      sub_FF8C5E9C\n"
 824                 "LDR     R0, [SP,#0x1C]\n"
 825                 "LDR     R1, [R0,#0x7C]\n"
 826                 "LDR     R3, [R0,#0x94]\n"              //90
 827                 "LDR     R2, [R0,#0x98]\n"              //94
 828                 "ADD     R0, R0, #4\n"
 829                 "BLX     R3\n"
 830                 "B       loc_FF8C4CA0\n"
 831 "loc_FF8C499C:\n"
 832                 "CMP     R1, #0x14\n"           //13,14,15,16
 833                 "CMPNE   R1, #0x15\n"
 834                 "CMPNE   R1, #0x16\n"
 835                 "CMPNE   R1, #0x17\n"
 836                 "BNE     loc_FF8C4A54\n"
 837                 "ADD     R3, SP, #0xC\n"
 838                 "MOV     R2, SP\n"
 839                 "ADD     R1, SP, #0x10\n"
 840                 "BL      sub_FF8C3348\n"
 841                 "CMP     R0, #1\n"
 842                 "MOV     R4, R0\n"
 843                 "CMPNE   R4, #5\n"
 844                 "BNE     loc_FF8C49F0\n"
 845                 "LDR     R0, [SP,#0x1C]\n"
 846                 "MOV     R2, R4\n"
 847                 "LDR     R1, [R0,#0x7C]!\n"
 848                 "LDR     R12, [R0,#0x10]!\n"            //0xC
 849                 "LDR     R3, [R0,#4]\n"
 850                 "MOV     R0, SP\n"
 851                 "BLX     R12\n"
 852                 "B       loc_FF8C4A28\n"
 853 "loc_FF8C49F0:\n"
 854                 "LDR     R0, [SP,#0x1C]\n"
 855                 "CMP     R4, #2\n"
 856                 "LDR     R3, [R0,#0x90]\n"              //8C
 857                 "CMPNE   R4, #6\n"
 858                 "BNE     loc_FF8C4A3C\n"
 859                 "LDR     R12, [R0,#0x8C]\n"             //88
 860                 "MOV     R0, SP\n"
 861                 "MOV     R2, R4\n"
 862                 "MOV     R1, #1\n"
 863                 "BLX     R12\n"
 864                 "LDR     R0, [SP,#0x1C]\n"
 865                 "MOV     R2, SP\n"
 866                 "ADD     R1, SP, #0x10\n"
 867                 "BL      sub_FF8C4458\n"
 868 "loc_FF8C4A28:\n"
 869                 "LDR     R0, [SP,#0x1C]\n"
 870                 "LDR     R2, [SP,#0xC]\n"
 871                 "MOV     R1, R4\n"
 872                 "BL      sub_FF8C46AC\n"
 873                 "B       loc_FF8C4CA0\n"
 874 "loc_FF8C4A3C:\n"
 875                 "LDR     R1, [R0,#0x7C]\n"
 876                 "LDR     R12, [R0,#0x8C]\n"             //88
 877                 "ADD     R0, R0, #4\n"
 878                 "MOV     R2, R4\n"
 879                 "BLX     R12\n"
 880                 "B       loc_FF8C4CA0\n"
 881 "loc_FF8C4A54:\n"
 882                 "CMP     R1, #0x23\n"                   //22,23
 883                 "CMPNE   R1, #0x24\n"
 884                 "BNE     loc_FF8C4AA0\n"
 885                 "LDR     R1, [R0,#0x7C]\n"
 886                 "ADD     R1, R1, R1,LSL#1\n"
 887                 "ADD     R1, R0, R1,LSL#2\n"
 888                 "SUB     R1, R1, #8\n"
 889                 "LDMIA   R1, {R2-R4}\n"
 890                 "STMIA   R6, {R2-R4}\n"
 891                 "BL      sub_FF8C23C8\n"
 892                 "LDR     R0, [SP,#0x1C]\n"
 893                 "LDR     R1, [R0,#0x7C]\n"
 894                 "LDR     R3, [R0,#0x8C]\n"              //88
 895                 "LDR     R2, [R0,#0x90]\n"              //8C
 896                 "ADD     R0, R0, #4\n"
 897                 "BLX     R3\n"
 898                 "LDR     R0, [SP,#0x1C]\n"
 899                 "BL      sub_FF8C26C8\n"
 900                 "B       loc_FF8C4CA0\n"
 901 "loc_FF8C4AA0:\n"
 902                 "ADD     R1, R0, #4\n"
 903                 "LDMIA   R1, {R2,R3,R12}\n"
 904                 "STMIA   R6, {R2,R3,R12}\n"
 905                 "LDR     R1, [R0]\n"
 906                 "CMP     R1, #0x26\n"           //sx200: 25
 907                 "ADDLS   PC, PC, R1,LSL#2\n"
 908                 "B       loc_FF8C4C80\n"
 909 "loc_FF8C4ABC:\n"
 910                 "B       loc_FF8C4B58\n"
 911 "loc_FF8C4AC0:\n"
 912                 "B       loc_FF8C4B58\n"
 913 "loc_FF8C4AC4:\n"
 914                 "B       loc_FF8C4B60\n"
 915 "loc_FF8C4AC8:\n"
 916                 "B       loc_FF8C4B68\n"
 917 "loc_FF8C4ACC:\n"
 918                 "B       loc_FF8C4B68\n"
 919 "loc_FF8C4AD0:\n"
 920                 "B       loc_FF8C4B68\n"
 921 "loc_FF8C4AD4:\n"
 922                 "B       loc_FF8C4B58\n"
 923 "loc_FF8C4AD8:\n"
 924                 "B       loc_FF8C4B60\n"
 925 "loc_FF8C4ADC:\n"
 926                 "B       loc_FF8C4B68\n"
 927 "loc_FF8C4AE0:\n"
 928                 "B       loc_FF8C4B68\n"
 929 "loc_FF8C4AE4:\n"
 930                 "B       loc_FF8C4B80\n"
 931 "loc_FF8C4AE8:\n"
 932                 "B       loc_FF8C4B80\n"
 933 "loc_FF8C4AEC:\n"
 934                 "B       loc_FF8C4C6C\n"
 935 "loc_FF8C4AF0:\n"
 936                 "B       loc_FF8C4C74\n"
 937 "loc_FF8C4AF4:\n"
 938                 "B       loc_FF8C4C74\n"
 939 "loc_FF8C4AF8:\n"
 940                 "B       loc_FF8C4C74\n"
 941 "loc_FF8C4AFC:\n"
 942                 "B       loc_FF8C4C74\n"
 943 "loc_FF8C4B00:\n"
 944                 "B       loc_FF8C4C7C\n"
 945 "loc_FF8C4B04:\n"
 946                 "B       loc_FF8C4C80\n"
 947 "loc_FF8C4B08:\n"
 948                 "B       loc_FF8C4C80\n"
 949 "loc_FF8C4B0C:\n"
 950                 "B       loc_FF8C4C80\n"
 951 "loc_FF8C4B10:\n"
 952                 "B       loc_FF8C4C80\n"
 953 "loc_FF8C4B14:\n"
 954                 "B       loc_FF8C4C80\n"
 955 "loc_FF8C4B18:\n"
 956                 "B       loc_FF8C4C80\n"
 957 "loc_FF8C4B1C:\n"
 958                 "B       loc_FF8C4B70\n"
 959 "loc_FF8C4B20:\n"
 960                 "B       loc_FF8C4B78\n"
 961 "loc_FF8C4B24:\n"
 962                 "B       loc_FF8C4B78\n"
 963 "loc_FF8C4B28:\n"
 964                 "B       loc_FF8C4B8C\n"
 965 "loc_FF8C4B2C:\n"
 966                 "B       loc_FF8C4B8C\n"
 967 "loc_FF8C4B30:\n"
 968                 "B       loc_FF8C4B94\n"
 969 "loc_FF8C4B34:\n"
 970                 "B       loc_FF8C4BC4\n"
 971 "loc_FF8C4B38:\n"
 972                 "B       loc_FF8C4BF4\n"
 973 "loc_FF8C4B3C:\n"
 974                 "B       loc_FF8C4C24\n"
 975 "loc_FF8C4B40:\n"
 976                 "B       loc_FF8C4C54\n"
 977 "loc_FF8C4B44:\n"
 978                 "B       loc_FF8C4C54\n"
 979 "loc_FF8C4B48:\n"
 980                 "B       loc_FF8C4C80\n"
 981 "loc_FF8C4B4C:\n"
 982                 "B       loc_FF8C4C80\n"
 983 "loc_FF8C4B50:\n"
 984                 "B       loc_FF8C4C5C\n"
 985 //new sx210 vs 200
 986 "loc_FF8C4B54:\n"
 987                 "B       loc_FF8C4C64\n"
 988 //end new sx210
 989 
 990 "loc_FF8C4B58:\n"
 991                 "BL      sub_FF8C11B8\n"
 992                 "B       loc_FF8C4C80\n"
 993 "loc_FF8C4B60:\n"
 994                 "BL      sub_FF8C143C\n"
 995                 "B       loc_FF8C4C80\n"
 996 "loc_FF8C4B68:\n"
 997                 "BL      sub_FF8C1644\n"
 998                 "B       loc_FF8C4C80\n"
 999 "loc_FF8C4B70:\n"
1000                 "BL      sub_FF8C18BC\n"
1001                 "B       loc_FF8C4C80\n"
1002 "loc_FF8C4B78:\n"
1003                 "BL      sub_FF8C1AB4\n"
1004                 "B       loc_FF8C4C80\n"
1005 "loc_FF8C4B80:\n"
1006 
1007 
1008                 "BL      sub_FF8C1D70_my\n"     //ASM1989 In sx200 was:sub_FF89FB44_my
1009                                                 //---------------->
1010 //                "BL      sub_FF8C1D70\n"
1011 
1012                 "MOV     R4, #0\n"
1013                 "B       loc_FF8C4C80\n"
1014 
1015 "loc_FF8C4B8C:\n"
1016                 "BL      sub_FF8C1EB0\n"
1017                 "B       loc_FF8C4C80\n"
1018 "loc_FF8C4B94:\n"
1019                 "LDRH    R1, [R0,#4]\n"
1020                 "STRH    R1, [SP,#0x10]\n"
1021                 "LDRH    R1, [R5,#2]\n"
1022                 "STRH    R1, [SP,#0x12]\n"
1023                 "LDRH    R1, [R5,#4]\n"
1024                 "STRH    R1, [SP,#0x14]\n"
1025                 "LDRH    R1, [R5,#6]\n"
1026                 "STRH    R1, [SP,#0x16]\n"
1027                 "LDRH    R1, [R0,#0xC]\n"
1028                 "STRH    R1, [SP,#0x18]\n"
1029                 "BL      sub_FF8C5B54\n"
1030                 "B       loc_FF8C4C80\n"
1031 "loc_FF8C4BC4:\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, [R5,#8]\n"
1041                 "STRH    R1, [SP,#0x18]\n"
1042                 "BL      sub_FF8C5CB4\n"
1043                 "B       loc_FF8C4C80\n"
1044 "loc_FF8C4BF4:\n"
1045                 "LDRH    R1, [R5]\n"
1046                 "STRH    R1, [SP,#0x10]\n"
1047                 "LDRH    R1, [R0,#6]\n"
1048                 "STRH    R1, [SP,#0x12]\n"
1049                 "LDRH    R1, [R5,#4]\n"
1050                 "STRH    R1, [SP,#0x14]\n"
1051                 "LDRH    R1, [R5,#6]\n"
1052                 "STRH    R1, [SP,#0x16]\n"
1053                 "LDRH    R1, [R5,#8]\n"
1054                 "STRH    R1, [SP,#0x18]\n"
1055                 "BL      sub_FF8C5D60\n"
1056                 "B       loc_FF8C4C80\n"
1057 "loc_FF8C4C24:\n"
1058                 "LDRH    R1, [R5]\n"
1059                 "STRH    R1, [SP,#0x10]\n"
1060                 "LDRH    R1, [R5,#2]\n"
1061                 "STRH    R1, [SP,#0x12]\n"
1062                 "LDRH    R1, [R5,#4]\n"
1063                 "STRH    R1, [SP,#0x14]\n"
1064                 "LDRH    R1, [R5,#6]\n"
1065                 "STRH    R1, [SP,#0x16]\n"
1066                 "LDRH    R1, [R0,#0xC]\n"
1067                 "STRH    R1, [SP,#0x18]\n"
1068                 "BL      sub_FF8C5E00\n"
1069                 "B       loc_FF8C4C80\n"
1070 "loc_FF8C4C54:\n"
1071                 "BL      sub_FF8C2204\n"
1072                 "B       loc_FF8C4C80\n"
1073 "loc_FF8C4C5C:\n"
1074                 "BL      sub_FF8C27CC\n"
1075                 "B       loc_FF8C4C80\n"
1076 "loc_FF8C4C64:\n"
1077                 "BL      sub_FF8C2A08\n"
1078                 "B       loc_FF8C4C80\n"
1079 "loc_FF8C4C6C:\n"
1080                 "BL      sub_FF8C2B84\n"
1081                 "B       loc_FF8C4C80\n"
1082 
1083 //new in sx210
1084 "loc_FF8C4C74:\n"
1085                 "BL      sub_FF8C2D20\n"
1086                 "B       loc_FF8C4C80\n"
1087 //end new
1088 
1089 "loc_FF8C4C7C:\n"
1090                 "BL      sub_FF8C2E84\n"
1091 "loc_FF8C4C80:\n"
1092                 "LDR     R0, [SP,#0x1C]\n"
1093                 "LDR     R1, [R0,#0x7C]\n"
1094                 "LDR     R3, [R0,#0x8C]\n"
1095                 "LDR     R2, [R0,#0x90]\n"
1096                 "ADD     R0, R0, #4\n"
1097                 "BLX     R3\n"
1098                 "CMP     R4, #1\n"
1099                 "BNE     loc_FF8C4CE8\n"
1100 "loc_FF8C4CA0:\n"
1101                 "LDR     R0, [SP,#0x1C]\n"
1102                 "MOV     R2, #0xC\n"
1103                 "LDR     R1, [R0,#0x7C]\n"
1104                 "ADD     R1, R1, R1,LSL#1\n"
1105                 "ADD     R0, R0, R1,LSL#2\n"
1106                 "SUB     R4, R0, #8\n"
1107                 "LDR     R0, =0x43B90\n"                //sx200: 0x1A1B0
1108                 "ADD     R1, SP, #0x10\n"
1109                 "BL      sub_FFB5F82C\n"
1110                 "LDR     R0, =0x43B9C\n"                        //sx200: 0x1A1BC
1111                 "MOV     R2, #0xC\n"
1112                 "ADD     R1, SP, #0x10\n"
1113                 "BL      sub_FFB5F82C\n"
1114                 "LDR     R0, =0x43BA8\n"                                //sx200: 0x1A1C8
1115                 "MOV     R2, #0xC\n"
1116                 "MOV     R1, R4\n"
1117                 "BL      sub_FFB5F82C\n"
1118                 "B       loc_FF8C4D60\n"
1119 "loc_FF8C4CE8:\n"
1120                 "LDR     R0, [SP,#0x1C]\n"
1121                 "LDR     R0, [R0]\n"
1122                 "CMP     R0, #0xB\n"
1123                 "BNE     loc_FF8C4D30\n"
1124                 "MOV     R3, #0\n"
1125                 "STR     R3, [SP]\n"
1126                 "MOV     R3, #1\n"
1127                 "MOV     R2, #1\n"
1128                 "MOV     R1, #1\n"
1129                 "MOV     R0, #0\n"
1130                 "BL      sub_FF8C0FC0\n"
1131                 "MOV     R3, #0\n"
1132                 "STR     R3, [SP]\n"
1133                 "MOV     R3, #1\n"
1134                 "MOV     R2, #1\n"
1135                 "MOV     R1, #1\n"
1136                 "MOV     R0, #0\n"
1137                 "B       loc_FF8C4D5C\n"
1138 "loc_FF8C4D30:\n"
1139                 "MOV     R3, #1\n"
1140                 "MOV     R2, #1\n"
1141                 "MOV     R1, #1\n"
1142                 "MOV     R0, #1\n"
1143                 "STR     R3, [SP]\n"
1144                 "BL      sub_FF8C0FC0\n"
1145                 "MOV     R3, #1\n"
1146                 "MOV     R2, #1\n"
1147                 "MOV     R1, #1\n"
1148                 "MOV     R0, #1\n"
1149                 "STR     R3, [SP]\n"
1150 "loc_FF8C4D5C:\n"
1151                 "BL      sub_FF8C1100\n"
1152 "loc_FF8C4D60:\n"
1153                 "LDR     R0, [SP,#0x1C]\n"
1154                 "BL      sub_FF8C5AE0\n"
1155                 "B       loc_FF8C477C\n"
1156  );
1157 } //ASM1989 09.04.10 done
1158 
1159 
1160 void __attribute__((naked,noinline)) sub_FF8C1D70_my(){ // ASM1989 In sx200 was:sub_FF89FB44_my
1161  asm volatile(
1162                  "STMFD   SP!, {R4-R8,LR}\n"
1163                  "LDR     R7, =0x4B08\n"                        //in sx200 was: 0x41F4
1164                  "MOV     R4, R0\n"
1165                  "LDR     R0, [R7,#0x1C]\n"
1166                  "MOV     R1, #0x3E\n"
1167                  "BL      sub_FF888E34\n"
1168                  "LDRSH   R0, [R4,#4]\n"
1169                  "MOV     R2, #0\n"
1170                  "MOV     R1, #0\n"
1171                  "BL      sub_FF8C0D24\n"
1172                  "MOV     R6, R0\n"
1173                  "LDRSH   R0, [R4,#6]\n"
1174                  "BL      sub_FF8C0E34\n"
1175                  "LDRSH   R0, [R4,#8]\n"
1176                  "BL      sub_FF8C0E8C\n"
1177                  "LDRSH   R0, [R4,#0xA]\n"
1178                  "BL      sub_FF8C0EE4\n"
1179                  "LDRSH   R0, [R4,#0xC]\n"
1180                  "MOV     R1, #0\n"                             // new in sx210
1181                  "BL      sub_FF8C0F3C\n"
1182                  "MOV     R5, R0\n"
1183                  "LDR     R0, [R4]\n"
1184                  "LDR     R8, =0x43BA8\n"               //in sx200 was: 0x1A1C8
1185                  "CMP     R0, #0xB\n"
1186                  "MOVEQ   R6, #0\n"
1187                  "MOVEQ   R5, #0\n"
1188                  "BEQ     loc_FF8C1E04\n"
1189                  "CMP     R6, #1\n"
1190                  "BNE     loc_FF8C1E04\n"
1191                  "LDRSH   R0, [R4,#4]\n"
1192                  "LDR     R1, =0xFF8C0C90\n"
1193                  "MOV     R2, #2\n"
1194                  "BL      sub_FF965618\n"
1195                  "STRH    R0, [R4,#4]\n"
1196                  "MOV     R0, #0\n"
1197                  "STR     R0, [R7,#0x28]\n"
1198                  "B       loc_FF8C1E0C\n"
1199  "loc_FF8C1E04:\n"
1200                  "LDRH    R0, [R8]\n"
1201                  "STRH    R0, [R4,#4]\n"
1202  "loc_FF8C1E0C:\n"
1203                  "CMP     R5, #1\n"
1204                  "LDRNEH  R0, [R8,#8]\n"
1205                  "BNE     loc_FF8C1E28\n"
1206                  "LDRSH   R0, [R4,#0xC]\n"
1207                  "LDR     R1, =0xFF8C0D14\n"
1208                  "MOV     R2, #0x20\n"
1209                  "BL      sub_FF8C5B10\n"
1210  "loc_FF8C1E28:\n"
1211                  "STRH    R0, [R4,#0xC]\n"
1212                  "LDRSH   R0, [R4,#6]\n"
1213 
1214                  "BL      sub_FF8B3AB8_my\n"  //ASM1989 in sx200 was:sub_FF89141C_my
1215                                   //------------------>
1216 //                 "BL      sub_FF8B3AB8\n"
1217 
1218                  "LDRSH   R0, [R4,#8]\n"
1219                  "MOV     R1, #1\n"
1220                  "BL      sub_FF8B4214\n"
1221                  "MOV     R1, #0\n"
1222                  "ADD     R0, R4, #8\n"
1223                  "BL      sub_FF8B429C\n"
1224                  "LDRSH   R0, [R4,#0xE]\n"
1225                  "BL      sub_FF8BBF28\n"
1226                  "LDR     R4, =0xBB8\n"
1227                  "CMP     R6, #1\n"
1228                  "BNE     loc_FF8C1E80\n"
1229                  "LDR     R0, [R7,#0x1C]\n"
1230                  "MOV     R2, R4\n"
1231                  "MOV     R1, #2\n"
1232                  "BL      sub_FF888D40\n"
1233                  "TST     R0, #1\n"
1234                  "LDRNE   R1, =0x5A7\n"                         //in sx200: 0x583
1235                  "LDRNE   R0, =0xFF8C1310\n"            //aExpdrv_c   ; "ExpDrv.c"
1236                  "BLNE    sub_FF81EB14\n"                       //DebugAssert
1237  "loc_FF8C1E80:\n"
1238                  "CMP     R5, #1\n"
1239                  "LDMNEFD SP!, {R4-R8,PC}\n"
1240                  "LDR     R0, [R7,#0x1C]\n"
1241                  "MOV     R2, R4\n"
1242                  "MOV     R1, #0x20\n"
1243                  "BL      sub_FF888D40\n"
1244                  "TST     R0, #1\n"
1245                  "LDRNE   R1, =0x5AC\n"                 //in sx200:0x588
1246                  "LDRNE   R0, =0xFF8C1310\n"            //aExpdrv_c   ; "ExpDrv.c"
1247                  "LDMNEFD SP!, {R4-R8,LR}\n"
1248                  "BNE     sub_FF81EB14\n"                       //DebugAsser
1249                  "LDMFD   SP!, {R4-R8,PC}\n"
1250  );
1251 }  //Done asm1989 09.04.10
1252 
1253 
1254 void __attribute__((naked,noinline)) sub_FF8B3AB8_my(){ // ASM1989 in sx200 was:sub_FF89141C_my
1255  asm volatile(
1256                  "STMFD   SP!, {R4-R6,LR}\n"
1257                  "LDR     R5, =0x47FC\n"                        //in sx200:0x3EF0
1258                  "MOV     R4, R0\n"
1259                  "LDR     R0, [R5,#4]\n"
1260                  "CMP     R0, #1\n"
1261                  "LDRNE   R1, =0x146\n"                 //in sx200:140
1262                  "LDRNE   R0, =0xFF8B38BC\n"    //aShutter_c  ; "Shutter.c"
1263                  "BLNE    sub_FF81EB14\n"               //DebugAssert
1264                  "CMN     R4, #0xC00\n"
1265                  "LDREQSH R4, [R5,#2]\n"
1266                  "CMN     R4, #0xC00\n"
1267                  "MOVEQ   R1, #0x14C\n"                 //in sx200:146
1268                  "LDREQ   R0, =0xFF8B38BC\n"    //aShutter_c  ; "Shutter.c"
1269                  "STRH    R4, [R5,#2]\n"
1270                  "BLEQ    sub_FF81EB14\n"               //DebugAssert
1271                  "MOV     R0, R4\n"
1272 
1273 //                 "BL      sub_FFA2260C\n"    // in sx200:FF9D8170       9.9.10 REMOVE LATER when apesux is set !!!
1274                  "BL      apex2us\n"
1275 // +
1276                 "MOV     R4, R0\n"
1277 
1278 //                        "BL      sub_FF8F9AF4\n"         //     nullsub_72       REMOVE LATER when apesux is set !!!
1279             //     "BL      nullsub_72\n"
1280                  "MOV     R0, R4\n"
1281                  "BL      sub_FF904E1C\n"
1282                  "TST     R0, #1\n"
1283                  "LDRNE   R1, =0x151\n"                 //in sx200:14B
1284                  "LDMNEFD SP!, {R4-R6,LR}\n"
1285                  "LDRNE   R0, =0xFF8B38BC\n"    //aShutter_c  ; "Shutter.c"
1286                  "BNE     sub_FF81EB14\n"               //DebugAssert
1287                  "LDMFD   SP!, {R4-R6,PC}\n"
1288  );
1289 }   //Done asm1989 09.04.10
1290 
1291 //Trying to fix the ISO and Flash Crash incomplete fails maybe due to fault code!!
1292 void __attribute__((naked,noinline)) sub_FF972E14_my(){
1293  asm volatile(
1294                 "STMFD  SP!, {R3-R7,LR}\n"
1295                 "LDR    R4, =0x3A678\n"
1296                 "LDR    R1, [R0,#8]\n"
1297                 "LDR    R2, [R4]\n"
1298                 "LDR    R7, =0x420C\n"
1299                 "LDR    R6, =0x3A5AC\n"
1300                 "LDR    R5, =0x75D4\n"
1301                 "CMP    R2, #0\n"
1302                 "BEQ    loc_FF972E98\n"
1303                 "ORR    R1, R1, #0x20\n"
1304                 "STR    R1, [R0,#8]\n"
1305                 "LDR    R0, [R0,#0x18]\n"
1306                 "LDR    R1, =0xF973234\n"
1307                 "MOV    R2, #2\n"
1308                 "BL     sub_FF8DC748\n"                 //MainFlash.c
1309 
1310 "               LDR     R0, [R4,#0x14]\n"
1311 "               CMP     R0, #0\n"
1312 "               BNE     loc_FF972E6C\n"
1313 "               LDRH    R0, [R6]\n"
1314 "               CMP     R0, R7\n"
1315 "               MOVNE   R0, #5\n"
1316 "               STRNE   R0, [R5]\n"
1317 "loc_FF972E6C:\n"
1318 "               BL      sub_FF973E70\n"
1319 "               LDR     R3, =0x3C1\n"
1320 "               LDR     R2, =0x3A98\n"
1321 "               STR     R3, [SP]\n"
1322 "               LDR     R3, =0xFF972CF4\n"  //aSscaptureseq_c
1323 "               MOV     R1, #2\n"
1324 "               BL      sub_FF884110\n"
1325 "               TST     R0, #1\n"
1326 "               BEQ     locret_FF972EF8\n"
1327 "               LDR     R1, =0x3C2\n"
1328 "               B       loc_FF972EF0\n"
1329 "loc_FF972E98:\n"
1330 "               ORR     R1, R1, #0x10\n"
1331 "               STR     R1, [R0,#8]\n"
1332 "               LDR     R0, =0xFF973234\n"
1333 "               MOV     R1, #1\n"
1334 "               BL      sub_FF847894\n"  //ExpCtrl_FixExposure
1335 "               LDR     R0, [R4,#0x10]\n"
1336 "               CMP     R0, #0\n"
1337 "               BNE     loc_FF972EC8\n"
1338 "               LDRH    R0, [R6]\n"
1339 "               CMP     R0, R7\n"
1340 "               MOVNE   R0, #2\n"
1341 "               STRNE   R0, [R5]\n"
1342 "loc_FF972EC8:\n"
1343 "               BL      sub_FF973E70\n"
1344 "               LDR     R3, =0x3D2\n"
1345 "               LDR     R2, =0xEA60\n"
1346 "               STR     R3, [SP]\n"
1347 "               LDR     R3, =0xFF972CF4\n"   //aSscaptureseq_c
1348 "               MOV     R1, #1\n"
1349 "               BL      sub_FF884110\n"
1350 "               TST     R0, #1\n"
1351 "               BEQ     locret_FF972EF8\n"
1352 "               LDR     R1, =0x3D3\n"
1353 "loc_FF972EF0:\n"
1354 "               LDR     R3, =0xFF972CF4\n" //aSscaptureseq_c
1355 "               BL      sub_FF81EB14\n"  //DebugAssert
1356 "locret_FF972EF8:\n"
1357 "               LDMFD   SP!, {R3-R7,PC}\n"
1358 
1359 
1360  );
1361 }   //Done asm1989 09.04.10
1362 
1363 
1364 
1365 
1366 //Set Led for ever
1367                                  /*ASM_SAFE(
1368                                  "MOV     R0, #1\n"
1369                                  "MOV     R1, #0\n"
1370                                  "BL      sub_FF860FF8\n"
1371                                  )*/
1372 
1373 //BeepDrive for ever
1374 /*
1375 ASM_SAFE(
1376                                  "MOV     R0, #1\n"
1377                                  "MOV     R1, #3\n"
1378                                  "BL      sub_FF96EAD8\n"
1379                                         "MOV     R1, #4\n"
1380                                  "BL      sub_FF96EAD8\n"
1381                                  "MOV     R1, #3\n"
1382                                  "BL      sub_FF96EAD8\n"
1383                                  "MOV     R1, #4\n"
1384                                  "BL      sub_FF96EAD8\n"
1385 
1386 )*/

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