Changeset 720


Ignore:
Timestamp:
07/29/11 09:49:29 (22 months ago)
Author:
msl
Message:

Aktualisierung auf Rev. 1251 offizieller Trunk

  • Betrifft SX220

+ Neue Definition in platform_camera.h zum Abschalten RAW im LOW-Light-Betrieb
+ Neue Definition in platform_camera.h fuer komprimierte badpixel.bin
+ Entfernung Multipartionsteil aus boot.c, da Boot-Faehigkeit für FAT32 besteht.
+ Fix fuer kurz gedrueckten Ausloeser
+ Erweiterung EXMEM wegen mehr Speicherbedarf badpixel.bin und Lua-Skripte
+ stubs_entry_2.S aufgeraeumt.

Location:
trunk/platform/sx220hs
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/platform/sx220hs/platform_camera.h

    r708 r720  
    2121// don't override them again in here. 
    2222 
     23    #define CAM_DISABLE_RAW_IN_LOW_LIGHT_MODE   1 
     24    #define DNG_VERT_RLE_BADPIXELS          1 
    2325    #define CAM_AV_OVERRIDE_IRIS_FIX        1   // for cameras that require _MoveIrisWithAv function to override Av. 
    2426    #define CAM_KEY_CLICK_DELAY             150 
  • trunk/platform/sx220hs/shooting.c

    r708 r720  
    138138    n = (n>>4)&0x3FFF; 
    139139 
    140     //n+=22; 
    141         return n; 
     140    return n; 
     141} 
     142 
     143void get_target_dir_name(char *out) 
     144{        
     145        extern void _GetImageFolder(char*,int,int,int); 
     146        _GetImageFolder(out,get_file_next_counter(),0x400,time(NULL)); 
    142147} 
    143148 
     
    150155} 
    151156 
    152 void get_target_dir_name(char *out) 
    153 {        
    154         //getting the dir name directly from ram @0xBECA4. @FF159918 
    155         char str[14]; 
    156         strncpy(str, (char*)((int*)(0xBECA4)), 14); 
    157         sprintf(out, "A%s", str); 
    158          
    159         //SX220 crashes on GetImageFolder (Mounter.c assert) 
    160 /*      extern void _GetImageFolder(char*,int,int,int); 
    161         out[0] = 'A'; 
    162         _GetImageFolder(out+1,get_file_next_counter(),0x400,time(NULL));*/ 
    163          
    164         //this one worked only for monthly, not for daily 
    165 /*      int month; 
    166         struct tm *ttm; 
    167         unsigned long t; 
    168         t = time(NULL); 
    169         ttm = localtime(&t); 
    170         month = ttm->tm_mon + 1; 
    171         sprintf(out, "A/DCIM/%03d___%02d", get_target_dir_num(), month);*/ 
    172  
    173 } 
    174  
    175157int circle_of_confusion = 5; 
    176158 
  • trunk/platform/sx220hs/sub/100a/boot.c

    r702 r720  
    441441                 "MOVNE   R0, R5\n" 
    442442                 "BLNE    sub_FF08F3F4\n" 
    443                  "BL      sub_FF08B1AC_my\n"                     //patched 
     443                 "BL      sub_FF08B1AC\n" 
    444444                 "BL      core_spytask_can_start\n"      //added CHDK: Set "it's-safe-to-start"-Flag for spytask 
    445                                  "CMP     R4, #0\n" 
    446                  "LDMNEFD SP!, {R4-R6,PC}\n" 
    447                  "MOV     R0, R5\n" 
    448                  "LDMFD   SP!, {R4-R6,LR}\n" 
    449                  "MOV     R1, #0\n" 
    450                                  "B       sub_FF08F3F4\n" 
    451445                                  
    452  ); 
    453 } 
    454  
    455 void __attribute__((naked,noinline)) sub_FF08B1AC_my() { 
    456   
    457  asm volatile( 
    458                  "STMFD   SP!, {R4,LR}\n" 
    459                  "MOV     R0, #3\n" 
    460                  "BL      sub_FF06A9D0_my\n"           //patched 
    461                  "BL      sub_FF169D7C\n"              //nullsub_100 
    462                  "LDR     R4, =0x4268\n" 
    463                  "LDR     R0, [R4,#4]\n" 
    464                  "CMP     R0, #0\n" 
    465                  "BNE     loc_FF08B1E4\n" 
    466                  "BL      sub_FF069B68\n" 
    467                  "BL      sub_FF15943C\n" 
    468                  "BL      sub_FF069B68\n" 
    469                  "BL      sub_FF066010\n" 
    470                  "BL      sub_FF069A3C\n" 
    471                  "BL      sub_FF1594D4\n" 
    472  "loc_FF08B1E4:\n" 
    473                  "MOV     R0, #1\n" 
    474                  "STR     R0, [R4]\n" 
    475                  "LDMFD   SP!, {R4,PC}\n" 
    476  ); 
    477 } 
    478  
    479  
    480 void __attribute__((naked,noinline)) sub_FF06A9D0_my() { 
    481   
    482  asm volatile( 
    483                  "STMFD   SP!, {R4-R10,LR}\n" 
    484                  "MOV     R6, R0\n" 
    485                  "BL      sub_FF06A980\n" 
    486                  "LDR     R1, =0x3C5A0\n" 
    487                  "MOV     R5, R0\n" 
    488                  "ADD     R4, R1, R0,LSL#7\n" 
    489                  "LDR     R0, [R4,#0x6C]\n" 
    490                  "TST     R0, #4\n" 
    491                  "LDRNE   R1, =0x9C4\n" 
    492                  "LDRNE   R0, =0xFF06A3C4\n"  //aMounter 
    493                  "BLNE    sub_FF00EC88\n"     //Assert 
    494                  "MOV     R1, R6\n" 
    495                  "MOV     R0, R5\n" 
    496                  "BL      sub_FF06A138\n" 
    497                  "LDR     R0, [R4,#0x38]\n" 
    498                  "BL      sub_FF06B010\n" 
    499                  "CMP     R0, #0\n" 
    500                  "STREQ   R0, [R4,#0x6C]\n" 
    501                  "MOV     R0, R5\n" 
    502                  "BL      sub_FF06A1C8\n" 
    503                  "MOV     R0, R5\n" 
    504                  "BL      sub_FF06A524_my\n"  //patched 
    505                  "MOV     R9, R0\n" 
    506                  "MOV     R0, R5\n" 
    507                  "BL      sub_FF06A840\n" 
    508                  "LDR     R2, =0x3C620\n" 
    509                  "LDR     R6, [R4,#0x3C]\n" 
    510                  "ADD     R1, R5, R5,LSL#4\n" 
    511                  "LDR     R8, [R4,#0x38]\n" 
    512                  "LDR     R7, [R2,R1,LSL#2]\n" 
    513                  "CMP     R6, #0\n" 
    514                  "AND     R9, R9, R0\n" 
    515                  "MOV     R5, #0\n" 
    516                  "MOVEQ   R0, #0x80000001\n" 
    517                  "BEQ     loc_FF06AAA0\n" 
    518                  "MOV     R0, R8\n" 
    519                  "BL      sub_FF069CB4\n" 
    520                  "CMP     R0, #0\n" 
    521                  "MOVNE   R5, #4\n" 
    522                  "MOV     R0, R8\n" 
    523                  "BL      sub_FF16CCD8\n" 
    524                  "CMP     R0, #0\n" 
    525                  "CMPNE   R7, #2\n" 
    526                  "BICNE   R5, R5, #4\n" 
    527                  "CMP     R6, #5\n" 
    528                  "ORRNE   R0, R5, #1\n" 
    529                  "BICEQ   R0, R5, #1\n" 
    530                  "CMP     R9, #0\n" 
    531                  "BICEQ   R0, R0, #2\n" 
    532                  "ORREQ   R0, R0, #0x80000000\n" 
    533                  "BICNE   R0, R0, #0x80000000\n" 
    534                  "ORRNE   R0, R0, #2\n" 
    535  
    536  "loc_FF06AAA0:\n" 
    537                  "STR     R0, [R4,#0x40]\n" 
    538                  "LDMFD   SP!, {R4-R10,PC}\n" 
    539  
    540  ); 
    541 } 
    542  
    543 void __attribute__((naked,noinline)) sub_FF06A524_my() { 
    544  
    545  asm volatile( 
    546                  "STMFD   SP!, {R4-R6,LR}\n" 
    547                  "MOV     R5, R0\n" 
    548                  "LDR     R0, =0x3C5A0\n" 
    549                  "ADD     R4, R0, R5,LSL#7\n" 
    550                  "LDR     R0, [R4,#0x6C]\n" 
    551                  "TST     R0, #2\n" 
    552                  "MOVNE   R0, #1\n" 
    553                  "LDMNEFD SP!, {R4-R6,PC}\n" 
    554                  "LDR     R0, [R4,#0x38]\n" 
    555                  "MOV     R1, R5\n" 
    556                //  "BL      sub_FF06A24C\n"    
    557                                  "BL      sub_FF06A24C_my\n"  //patched 
    558                  "CMP     R0, #0\n" 
    559                  "LDRNE   R0, [R4,#0x38]\n" 
    560                  "MOVNE   R1, R5\n" 
    561                  "BLNE    sub_FF06A3E8\n" 
    562                  "LDR     R2, =0x3C620\n" 
    563                  "ADD     R1, R5, R5,LSL#4\n" 
    564                  "LDR     R1, [R2,R1,LSL#2]\n" 
    565                  "CMP     R1, #4\n" 
    566                  "BEQ     loc_FF06A584\n" 
    567                  "CMP     R0, #0\n" 
    568                  "LDMEQFD SP!, {R4-R6,PC}\n" 
    569                  "MOV     R0, R5\n" 
    570                  "BL      sub_FF069D44\n" 
    571  "loc_FF06A584:\n" 
    572                  "CMP     R0, #0\n" 
    573                  "LDRNE   R1, [R4,#0x6C]\n" 
    574                  "ORRNE   R1, R1, #2\n" 
    575                  "STRNE   R1, [R4,#0x6C]\n" 
    576                  "LDMFD   SP!, {R4-R6,PC}\n" 
    577  
    578         ); 
    579   
    580 } 
    581  
    582 void __attribute__((naked,noinline)) sub_FF06A24C_my() { 
    583  
    584  asm volatile( 
    585                                  "STMFD   SP!, {R4-R10,LR}\n" 
    586                                  "MOV     R9, R0\n" 
    587                  "LDR     R0, =0x3C5A0\n" 
    588                  "MOV     R6, #0\n" 
    589                  "ADD     R5, R0, R1,LSL#7\n" 
    590                  "LDR     R0, [R5,#0x3C]\n" 
    591                  "MOV     R7, R6\n" 
    592                  "CMP     R0, #7\n" 
    593                  "MOV     R8, R6\n" 
    594                                  "ADDCC   PC, PC, R0,LSL#2\n"   
    595                                  "B       loc_FF06A3A4\n" 
    596  
    597  "loc_FF06A278:\n" 
    598                  "B       loc_FF06A2AC\n" 
    599  
    600  "loc_FF06A27C:\n" 
    601                  "B       loc_FF06A294\n" 
    602  
    603  "loc_FF06A280:\n" 
    604                  "B       loc_FF06A294\n" 
    605  
    606  "loc_FF06A284:\n" 
    607                  "B       loc_FF06A294\n" 
    608  
    609  "loc_FF06A288:\n" 
    610                  "B       loc_FF06A294\n" 
    611  
    612  "loc_FF06A28C:\n" 
    613                  "B       loc_FF06A39C\n" 
    614  
    615  "loc_FF06A290:\n" 
    616                  "B       loc_FF06A294\n" 
    617  
    618  "loc_FF06A294:\n" 
    619                                  "MOV     R2, #0\n" 
    620                  "MOV     R1, #0x200\n" 
    621                  "MOV     R0, #2\n" 
    622                  "BL      sub_FF085288\n" 
    623                  "MOVS    R4, R0\n" 
    624                  "BNE     loc_FF06A2B4\n" 
    625  
    626  "loc_FF06A2AC:\n" 
    627                  "MOV     R0, #0\n" 
    628                  "LDMFD   SP!, {R4-R10,PC}\n" 
    629  
    630  "loc_FF06A2B4:\n" 
    631                  "LDR     R12, [R5,#0x50]\n" 
    632                  "MOV     R3, R4\n" 
    633                  "MOV     R2, #1\n" 
    634                  "MOV     R1, #0\n" 
    635                  "MOV     R0, R9\n" 
    636                  "BLX     R12\n" 
    637                  "CMP     R0, #1\n" 
    638                  "BNE     loc_FF06A2E0\n" 
    639                  "MOV     R0, #2\n" 
    640                  "BL      sub_FF0853D4\n"       ///ExMemMan.c 
    641                  "B       loc_FF06A2AC\n" 
    642  
    643  "loc_FF06A2E0:\n" 
    644                  "LDR     R1, [R5,#0x64]\n" 
    645                  "MOV     R0, R9\n" 
    646                  "BLX     R1\n" 
    647                                   
    648                 //Allready inserted code 
    649  
    650                                 "MOV   R1, R4\n"           //  pointer to MBR in R1 
    651                                 "BL    mbr_read_dryos\n"   //  total sectors count in R0 before and after call 
    652  
    653                                 // Start of DataGhost's FAT32 autodetection code 
    654                                 // Policy: If there is a partition which has type W95 FAT32, use the first one of those for image storage 
    655                                 // According to the code below, we can use R1, R2, R3 and R12. 
    656                                 // LR wasn't really used anywhere but for storing a part of the partition signature. This is the only thing 
    657                                 // that won't work with an offset, but since we can load from LR+offset into LR, we can use this to do that :) 
    658                                 "MOV     R12, R4\n"                    // Copy the MBR start address so we have something to work with 
    659                                 "MOV     LR, R4\n"                     // Save old offset for MBR signature 
    660                                 "MOV     R1, #1\n"                     // Note the current partition number 
    661                                 "B       dg_sd_fat32_enter\n"          // We actually need to check the first partition as well, no increments yet! 
    662      "dg_sd_fat32:\n" 
    663                                 "CMP     R1, #4\n"                     // Did we already see the 4th partition? 
    664                                 "BEQ     dg_sd_fat32_end\n"            // Yes, break. We didn't find anything, so don't change anything. 
    665                                 "ADD     R12, R12, #0x10\n"            // Second partition 
    666                                 "ADD     R1, R1, #1\n"                 // Second partition for the loop 
    667      "dg_sd_fat32_enter:\n" 
    668                                 "LDRB    R2, [R12, #0x1BE]\n"          // Partition status 
    669                                 "LDRB    R3, [R12, #0x1C2]\n"          // Partition type (FAT32 = 0xB) 
    670                                 "CMP     R3, #0xB\n"                   // Is this a FAT32 partition? 
    671                                 "CMPNE   R3, #0xC\n"                   // Not 0xB, is it 0xC (FAT32 LBA) then? 
    672                                 "BNE     dg_sd_fat32\n"                // No, it isn't. Loop again. 
    673                                 "CMP     R2, #0x00\n"                  // It is, check the validity of the partition type 
    674                                 "CMPNE   R2, #0x80\n" 
    675                                 "BNE     dg_sd_fat32\n"                // Invalid, go to next partition 
    676                                                  // This partition is valid, it's the first one, bingo! 
    677                                 "MOV     R4, R12\n"                    // Move the new MBR offset for the partition detection. 
    678  
    679      "dg_sd_fat32_end:\n" 
    680                                 // End of DataGhost's FAT32 autodetection code 
    681                  "MOV     R1, R0\n"       //SX220 . Was not present in sx210 
    682                                  "LDRB    R0, [R4,#0x1C9]\n" 
    683                  "LDRB    R2, [R4,#0x1C8]\n" 
    684                  "LDRB    R12, [R4,#0x1CC]\n" 
    685                  "MOV     R0, R0,LSL#24\n" 
    686                  "ORR     R0, R0, R2,LSL#16\n" 
    687                  "LDRB    R2, [R4,#0x1C7]\n" 
    688                  "LDRB    R3, [R4,#0x1BE]\n" 
    689                  "ORR     R0, R0, R2,LSL#8\n" 
    690                  "LDRB    R2, [R4,#0x1C6]\n" 
    691                  "CMP     R3, #0\n" 
    692                  "CMPNE   R3, #0x80\n" 
    693                  "ORR     R0, R0, R2\n" 
    694                  "LDRB    R2, [R4,#0x1CD]\n" 
    695                  "MOV     R2, R2,LSL#24\n" 
    696                  "ORR     R2, R2, R12,LSL#16\n" 
    697                  "LDRB    R12, [R4,#0x1CB]\n" 
    698                  "ORR     R2, R2, R12,LSL#8\n" 
    699                  "LDRB    R12, [R4,#0x1CA]\n" 
    700                  "ORR     R2, R2, R12\n" 
    701            //      "LDRB    R12, [R4,#0x1FE]\n"     //remains commented as in sx200 and sx210 
    702            //      "LDRB    R4, [R4,#0x1FF]\n"      //remains commented as in sx200 and sx210 
    703                  "LDRB    R12, [LR,#0x1FE]\n"           // + First MBR signature byte (0x55), LR is original offset. 
    704                  "LDRB    LR, [LR,#0x1FF]\n"            // + Last MBR signature byte (0xAA), LR is original offset. 
    705                              "BNE     loc_FF06A370\n" 
    706                  "CMP     R1, R0\n" 
    707                  "BCC     loc_FF06A370\n" 
    708                  "ADD     R3, R0, R2\n" 
    709                  "CMP     R3, R1\n" 
    710                  "CMPLS   R12, #0x55\n" 
    711                  "CMPEQ   LR, #0xAA\n"                          // + R4 to LR 
    712                  "MOVEQ   R6, R0\n" 
    713                  "MOVEQ   R7, R2\n" 
    714                  "MOVEQ   R4, #1\n" 
    715                  "BEQ     loc_FF06A374\n" 
    716  
    717  "loc_FF06A370:\n" 
    718                  "MOV     R4, R8\n" 
    719  
    720  "loc_FF06A374:\n" 
    721                                  "MOV     R0, #2\n" 
    722                  "BL      sub_FF0853D4\n"               //ExMemMan.c 
    723                  "CMP     R4, #0\n" 
    724                  "BNE     loc_FF06A3B0\n" 
    725                  "LDR     R1, [R5,#0x64]\n" 
    726                  "MOV     R6, #0\n" 
    727                  "MOV     R0, R9\n" 
    728                  "BLX     R1\n" 
    729                  "MOV     R7, R0\n" 
    730                  "B       loc_FF06A3B0\n" 
    731  
    732  "loc_FF06A39C:\n" 
    733                  "MOV     R7, #0x40\n" 
    734                  "B       loc_FF06A3B0\n" 
    735  
    736  "loc_FF06A3A4:\n" 
    737                  "LDR     R1, =0x623\n" 
    738                  "LDR     R0, =0xFF06A3C4\n"    //"Mounter.c" aMounter_c 
    739                  "BL      sub_FF00EC88\n"       //ASSERT 
    740  
    741  "loc_FF06A3B0:\n" 
    742                  "ADD     R1, R5, #0x44\n" 
    743                  "STMIA   R1, {R6-R8}\n" 
    744                  "MOV     R0, #1\n" 
    745                  "LDMFD   SP!, {R4-R10,PC}\n" 
    746  
    747  ); 
    748 } 
     446                                 "B               sub_FF095260\n"                                //continue in firmware 
     447         ); 
     448}                         
    749449 
    750450// In SX220 called RotaryEncoder FF05671C 
     
    819519 //------------------  original code ------------------ 
    820520                         
    821                                  "LDR     R0, =0x25BC\n"                //=0xFF0569E4, changing all asc_... fixed the crash when rotating the wheel 
     521                                 "LDR     R0, =0x25C8\n"                //=0xFF0569E4, changing all asc_... fixed the crash when rotating the wheel 
    822522                 "LDR     R0, [R0,R4,LSL#2]\n" 
    823523                 "BL      sub_FF02BCFC\n" 
     
    853553                 "CMP     R0, #0\n" 
    854554                 "BEQ     loc_FF05697C\n" 
    855                  "LDR     R7, =0x25BC\n"   //=0xFF0569E4 
     555                 "LDR     R7, =0x25C8\n"   //=0xFF0569E4 
    856556                 "LDR     R0, [R7,R4,LSL#2]\n" 
    857557                 "BL      sub_FF02BCFC\n" 
     
    912612                 "BL      sub_FF0240E0\n" 
    913613                 "LDR     R0, [R7,#0x10]\n" 
    914                  "LDR     R7, =0x25BC\n"                //=0xFF0569E4 
     614                 "LDR     R7, =0x25C8\n"                //=0xFF0569E4 
    915615                 "STR     R0, [R9,R4,LSL#2]\n" 
    916616                 "LDRH    R1, [R11]\n" 
  • trunk/platform/sx220hs/sub/100a/capt_seq.c

    r702 r720  
    158158                 "B       loc_FF0778F0\n" 
    159159 
    160  "loc_FF077714:\n"                            // 
     160 "loc_FF077714:\n" 
    161161                                         
    162162                 "BL      sub_FF077F04\n" 
    163                   
    164 //Commented area copied from sx210 
    165 // TESTING DOSNT DO BAD NEITHER GOOD  LIKE IN SD1200 but seems to dont work too!!! 
    166 /* 
    167 "    STMFD   SP!, {R1-R12,LR}\n" 
    168 "    BL      captseq_hack_override_active\n" // returns 1 if tv or sv override in effect 
    169 "    LDMFD   SP!, {R1-R12,LR}\n" 
    170 "    STR     R0,[SP,#-4]!\n" // push return value 
    171 "    BL      shooting_expo_param_override\n" // saves all regs 
    172  
    173 "                BL      sub_FF87C4C0\n" 
    174  
    175 "    LDR     R0,[SP],#4\n" // pop override hack 
    176 "    CMP     R0, #1\n" 
    177 "    MOVEQ   R0, #0\n" 
    178 "    STREQ   R0, [R4,#0x24]\n"  // fixes overrides behavior at short shutter press 
    179 */                                
    180  
    181  
    182163                                 "BL      shooting_expo_param_override\n"  // + patched                  
    183164                                 "BL      sub_FF074BC4\n" 
    184   
    185   
    186  //SX220 Funnel:  
    187  //  copied over from SX10 don't know if we need it yet 
    188  //  this code added to avoid some incorrect behavior if overrides are used. 
    189  //  but it can cause some unexpected side effects. In this case, remove this code! 
    190  //              "MOV     R0, #0\n" 
    191  //              "STR     R0, [R4,#0x24]\n"  // fixes overrides  behavior at short shutter press 
    192  //  end of my code 
    193  
    194                                  "LDR     R0, [R5,#0x28]\n" 
    195                  "CMP     R0, #0\n" 
    196                  "BLNE    sub_FF18D9B4\n" 
     165                                  
     166                                 "MOV     R0, #0\n"                                                     // added 
     167                                 "STR     R0, [R5,#0x28]\n"                                     // added, fixes overrides  behavior at short shutter press (from SX30) 
     168 
     169//                               "LDR     R0, [R5,#0x28]\n"                                     // above two lines make this code redundant 
     170//                               "CMP     R0, #0\n"                                                     // above two lines make this code redundant 
     171//                               "BLNE    sub_FF18D9B4\n"                                       // above two lines make this code redundant 
     172 
    197173                 "B       loc_FF0778F0\n" 
    198174 
     
    202178                                 // "BL      sub_FF18D790\n"    // SX220 
    203179                                 "BL      sub_FF18D790_my\n"   // + patched 
    204                                  "BL      capt_seq_hook_raw_here\n"     //added                                   
    205180                                 "MOV     R4, R0\n" 
    206181                 "MOV     R2, R8\n" 
     
    593568 "loc_FF18D98C:\n"                            
    594569                 "MOV     R0, R4\n" 
    595                  "BL      sub_FF3058A0\n" 
     570                 "BL      sub_FF3058A0_my\n"            //patched 
    596571                                  
    597572 "loc_FF18D994:\n"                           
     
    611586                        ); 
    612587}  
     588 
     589void __attribute__((naked,noinline)) sub_FF3058A0_my(  ) { 
     590asm volatile ( 
     591"       STMFD   SP!, {R3-R7,LR} \n"                 
     592"       MOV     R4, R0 \n"                            
     593"       BL      sub_FF18E4F0 \n"                       
     594"       MVN     R1, #0 \n"                            
     595"       BL      sub_FF0826F8 \n"                       
     596"       LDR     R0, =0xFF18D1CC \n"                   
     597"       MOV     R1, R4 \n"                            
     598"       BL      sub_FF0B8C48 \n"                       
     599"       MOV     R0, R4 \n"                            
     600"       BL      sub_FF18D0C8 \n"                       
     601"       MOV     R0, R4 \n"                            
     602"       BL      sub_FF18D53C \n"                       
     603"       MOV     R6, R0 \n"                            
     604"       LDR     R1, =0xEF48 \n"                       
     605"       MOV     R2, #4 \n"                            
     606"       MOV     R0, #0x8A \n"                         
     607"       BL      sub_FF08A944 \n"                       
     608"       TST     R0, #1 \n"                            
     609"       LDRNE   R1, =0x21E \n"                      
     610"       LDRNE   R0, =0xFF305AB0 \n"                 
     611"       BLNE    sub_FF00EC88 \n"                     
     612"       BL      sub_FF07AF50 \n"                       
     613"       CMP     R6, #0xA \n"                          
     614"       MOV     R5, #1 \n"                            
     615"       MOV     R7, #0 \n"                            
     616"       ADDCC   PC, PC, R6, LSL #2 \n"              
     617"       B       loc_FF3059D0 \n"                        
     618"       B       loc_FF3059D0 \n"                        
     619"       B       loc_FF305934 \n"                        
     620"       B       loc_FF305944 \n"                        
     621"       B       loc_FF305960 \n"                        
     622"       B       loc_FF305970 \n"                        
     623"       B       loc_FF30599C \n"                        
     624"       B       loc_FF3059D0 \n"                        
     625"       B       loc_FF3059D0 \n"                        
     626"       B       loc_FF3059D0 \n"                        
     627"       B       loc_FF3059B4 \n"                        
     628"loc_FF305934:\n" 
     629"       MOV     R0, #1 \n"                            
     630"       BL      sub_FF0B8C78 \n"                       
     631"       STRH    R7, [R4, #0x10] \n"                  
     632"       B       loc_FF3059C4 \n"                        
     633"loc_FF305944:\n" 
     634"       MOV     R0, #1 \n"                            
     635"       BL      sub_FF0B8C78 \n"                       
     636"       MOV     R0, R4 \n"                            
     637"       STRH    R5, [R4, #0x10] \n"                  
     638"       BL      sub_FF305688 \n"                       
     639"loc_FF305958:\n" 
     640"       MOV     R5, R0 \n"                            
     641"       B       loc_FF3059E0 \n"                        
     642"loc_FF305960:\n" 
     643"       MOV     R0, #1 \n"                            
     644"       BL      sub_FF0B8C78 \n"                       
     645"       MOV     R0, #1 \n"                            
     646"       B       loc_FF30597C \n"                        
     647"loc_FF305970:\n" 
     648"       MOV     R0, #1 \n"                            
     649"       BL      sub_FF0B8C78 \n"                       
     650"       MOV     R0, #2 \n"                            
     651"loc_FF30597C:\n" 
     652"       BL      sub_FF24C69C \n"                       
     653"       MOV     R0, R4 \n"                            
     654"       STRH    R5, [R4, #0x10] \n"                  
     655"       BL      sub_FF305688 \n"                       
     656"       MOV     R5, R0 \n"                            
     657"       MOV     R0, #0 \n"                            
     658"       BL      sub_FF24C69C \n"                       
     659"       B       loc_FF3059E0 \n"                        
     660"loc_FF30599C:\n" 
     661"       MOV     R0, #1 \n"                            
     662"       BL      sub_FF0B8C78 \n"                       
     663"       MOV     R0, R4 \n"                            
     664"       STRH    R7, [R4, #0x10] \n"                  
     665"       BL      sub_FF305750 \n"                       
     666"       B       loc_FF305958 \n"                        
     667"loc_FF3059B4:\n" 
     668"       MOV     R0, #0 \n"                            
     669"       BL      sub_FF0B8C78 \n"                       
     670"       MOV     R0, #4 \n"                            
     671"       STRH    R0, [R4, #0x10] \n"                  
     672"loc_FF3059C4:\n" 
     673"       MOV     R0, R4 \n"                            
     674"       BL      sub_FF305608 \n"                       
     675"       B       loc_FF305958 \n"                        
     676"loc_FF3059D0:\n" 
     677"       MOV     R1, #0x264 \n"                        
     678"       LDR     R0, =0xFF305AB0 \n"                   
     679"       BL      sub_FF00EC88 \n"                       
     680"       MOV     R5, #0x1D \n"                         
     681"loc_FF3059E0:\n" 
     682"       TST     R5, #1 \n"                            
     683"       MOVNE   R0, R5 \n"                          
     684"       BNE     loc_FF305A84 \n"                      
     685"       LDR     R5, =0xEF44 \n"                       
     686"       LDR     R0, [R5] \n"                          
     687"       CMP     R0, #0 \n"                            
     688"       BNE     loc_FF305A10 \n"                      
     689"       LDRH    R0, [R4, #0x10] \n"                  
     690"       CMP     R0, #1 \n"                            
     691"       CMPNE   R0, #3 \n"                          
     692"       CMPNE   R0, #5 \n"                          
     693"       BEQ     loc_FF305A24 \n"                      
     694"loc_FF305A10:\n" 
     695"       LDR     R0, =0x3EB1C \n"                      
     696"       LDRH    R0, [R0] \n"                         
     697"       SUB     R1, R0, #0x4000 \n"                   
     698"       SUBS    R1, R1, #0x20C \n"                   
     699"       BLEQ    sub_FF0A14C8 \n"                     
     700"loc_FF305A24:\n" 
     701"       MOV     R0, R4 \n"                            
     702"       BL      sub_FF18D638 \n"                       
     703"       MOV     R0, R4 \n"                            
     704"       BL      sub_FF18D5D4 \n"                       
     705"       BL      capt_seq_hook_raw_here\n"     //added 
     706"       LDR     R0, [R5] \n"                          
     707"       CMP     R0, #0 \n"                            
     708"       BNE     loc_FF305A54 \n"                      
     709"       LDRH    R0, [R4, #0x10] \n"                  
     710"       CMP     R0, #1 \n"                            
     711"       CMPNE   R0, #3 \n"                          
     712"       CMPNE   R0, #5 \n"                          
     713"       BEQ     loc_FF305A80 \n"                      
     714"loc_FF305A54:\n" 
     715"       BL      sub_FF18E4F0 \n"                       
     716"       LDR     R4, =0x27E \n"                        
     717"       LDR     R2, =0x3A98 \n"                       
     718"       LDR     R3, =0xFF305AB0 \n"                   
     719"       MOV     R1, #4 \n"                            
     720"       STR     R4, [SP] \n"                          
     721"       BL      sub_FF07DB68 \n"                       
     722"       CMP     R0, #0 \n"                            
     723"       MOVNE   R1, R4 \n"                          
     724"       LDRNE   R0, =0xFF305AB0 \n"                 
     725"       BLNE    sub_FF00EC88 \n"                     
     726"loc_FF305A80:\n" 
     727"       MOV     R0, #0 \n"                            
     728"loc_FF305A84:\n" 
     729"       LDMFD   SP!, {R3-R7,PC} \n"                 
     730        ); 
     731} 
    613732 
    614733///////sx220 sub_FF0C3E54 
  • trunk/platform/sx220hs/sub/100a/makefile.inc

    r702 r720  
    1212 
    1313ifdef OPT_CHDK_IN_EXMEM 
    14 MEMISOSTART=0x79067E0  # MAXRAMADDR+1 - EXMEM_HEAP_SKIP - EXMEM_BUFFER_SIZE - 32(0x20) (exmem allocates 64 bytes extra, 32 before and 32 after block allocated) 
     14MEMISOSTART=0x78E67E0  # MAXRAMADDR+1 - EXMEM_HEAP_SKIP - EXMEM_BUFFER_SIZE - 32(0x20) (exmem allocates 64 bytes extra, 32 before and 32 after block allocated) 
    1515else                                    #265kb=79467E0, 512kb=79067E0, 640kb=78E67E0 
    1616MEMISOSTART=0x186AE4   # original non-exmem value 
     
    2020 
    2121MAXRAMADDR=0x7FFFFFF 
    22 EXMEM_BUFFER_SIZE=0x80000  # 40000=256KB, 80000=512KB, A0000=640kb, C0000=768KB, 100000=1MB  
     22EXMEM_BUFFER_SIZE=0xA0000  # 40000=256KB, 80000=512KB, A0000=640kb, C0000=768KB, 100000=1MB  
    2323EXMEM_HEAP_SKIP=0x679800 
    2424 
  • trunk/platform/sx220hs/sub/100a/stubs_entry_2.S

    r702 r720  
    11#include "stubs_asm.h" 
    2  
    3 //beta3 
    4 NHSTUB(WriteSDCard,0xFF16C828)  //swaped with ReadSDCard 
    5 NHSTUB(ReadSDCard,0xFF16C62C) 
    6 NHSTUB(strtolx,0xFF0310F0)      //swapped with strtol 
    7 NHSTUB(strtol,0xFF0312EC)        
    8 NHSTUB(LEDDrive,0xff0557c0)     //corrected 
    9  
    10 //beta2 
    11 NHSTUB(GetImageFolder, 0xFF1598B8)      //doesn't work 
    122 
    133# Addresses for firmware task handlers (used in taskHook) 
     
    177DEF(task_MovieRecord,0xFF1882F0) 
    188DEF(task_ExpDrv,0xFF0C3E54) 
    19  
    20 NHSTUB(write, 0xff00adb8)                        //changed. was same as Write and worked. 
    21 NHSTUB(GetCurrentAvValue,0xFF17F15C) //changed was FF0B05D4 
    22 NHSTUB(MoveIrisWithAv, 0xFF303638)   //added like g12. should fix avbracketing, change in generic/shooting.c 
     9DEF(task_PhySw,0xff0244f0) 
     10 
     11NHSTUB(DebugAssert                             ,0xff00ec88) 
     12NHSTUB(GetMemInfo                              ,0xff00a29c) 
     13NHSTUB(GiveSemaphore                           ,0xff02b23c) 
     14NHSTUB(MakeSDCardBootable                      ,0xff06b04c) 
     15NHSTUB(PT_MoveDigitalZoomToWide                ,0xff0746e8) 
     16NHSTUB(PT_MoveOpticalZoomAt                    ,0xff0746c0) 
     17NHSTUB(ScreenLock                              ,0xff0ab250) 
     18NHSTUB(ScreenUnlock                            ,0xff0ab2b4) 
     19NHSTUB(err_init_task                           ,0xff005fd4) 
     20NHSTUB(WriteSDCard,0xFF16C828) 
     21NHSTUB(ReadSDCard,0xFF16C62C) 
     22NHSTUB(strtolx,0xFF0310F0) 
     23NHSTUB(strtol,0xFF0312EC)        
     24NHSTUB(LEDDrive,0xff0557c0) 
     25NHSTUB(GetImageFolder, 0xFF1598B8) 
     26NHSTUB(write, 0xff00adb8) 
     27NHSTUB(GetCurrentAvValue,0xFF17F15C) 
     28NHSTUB(MoveIrisWithAv, 0xFF303638) 
    2329NHSTUB(_log10,0xFF3ACCB8) 
    2430NHSTUB(_log,0xFF3AC778) 
    25  
    26 //beta1 
    27 NHSTUB(PutInNdFilter,0xFF36BDD4)  // NDfilter works 
    28 NHSTUB(PutOutNdFilter,0xFF36BE0C) // NDfilter works 
    29 NHSTUB(GetKbdState, 0xFF056474)   // in kbd.c 
    30  
     31NHSTUB(PutInNdFilter,0xFF36BDD4) 
     32NHSTUB(PutOutNdFilter,0xFF36BE0C) 
     33NHSTUB(GetKbdState, 0xFF056474) 
    3134NHSTUB(ufree,0xFF02B884) 
    32  
    33 //EXMEM 
    3435NHSTUB(exmem_alloc, 0xFF085434) 
    35  
    36 /////////////////////SX220HS  START////////////////////// 
    3736NHSTUB(CreateTask,0xFF00E9B0) 
    3837NHSTUB(LocalTime,0xFF08446C) 
     
    7069NHSTUB(_pow,0xFF3ACE30)           
    7170NHSTUB(add_ptp_handler,0xff28aa1c) 
    72 NHSTUB(localtime,0xFF08446C)  //2 times 
     71NHSTUB(localtime,0xFF08446C) 
    7372NHSTUB(memset,0xFF245BEC) 
    7473NHSTUB(memcpy,0xFF030FEC) 
     
    7877NHSTUB(time,0xff084a48) 
    7978NHSTUB(Lseek,0xFF0272A0) 
    80 NHSTUB(Close,0xFF027084)  //sx220 something different in code. Not sure. 
     79NHSTUB(Close,0xFF027084) 
    8180NHSTUB(EnterToCompensationEVF,0xFF028E74) 
    8281NHSTUB(ExitFromCompensationEVF,0xFF028EB8) 
     
    9695NHSTUB(TurnOnBackLight,0xFF0A21A0) 
    9796NHSTUB(UIFS_WriteFirmInfoToFile,0xFF1A4414) 
    98 NHSTUB(Write,0xFF0270D8)  //ok 
     97NHSTUB(Write,0xFF0270D8) 
    9998NHSTUB(closedir,0xFF2DD260) 
    10099NHSTUB(closefastdir,0xFF2DD260) 
     
    103102NHSTUB(kbd_pwr_on,0xFF000B24) 
    104103NHSTUB(kbd_read_keys,0xFF024960) 
    105  
    106104NHSTUB(qsort,0xFF359478) 
    107 NHSTUB(rename,0xFF026908)    //small difference in code vs sx210 
    108 NHSTUB(RenameFile_Fut, 0xff026908)  //same as rename like in sx210 
     105NHSTUB(rename,0xFF026908) 
     106NHSTUB(RenameFile_Fut, 0xff026908) 
    109107NHSTUB(strrchr,0xFF0040DC) 
    110108NHSTUB(vsprintf,0xFF010858) 
    111 NSTUB(readdir,0xFF2DD404) //changed from null to readfastdir 
    112  
     109NSTUB(readdir,0xFF2DD404) 
    113110NHSTUB(openfastdir, 0xFF2DD2B0) 
    114111NHSTUB(opendir, 0xff2dd2b0) 
    115  
    116 /////////////////AUTO FOUND CHECKED////////////////// 
    117112NHSTUB(AllocateMemory, 0xff3075d0) 
    118113NHSTUB(AllocateUncacheableMemory, 0xff02b844) 
     
    126121NHSTUB(GetSystemTime, 0xff307628) 
    127122NHSTUB(NewTaskShell, 0xff08a38c) 
    128 NHSTUB(Read, 0xff00ad58) //fixed was adb8 
    129 NHSTUB(SetFileTimeStamp, 0xFF027410)   //auto stubs was wrong here. small differences in code from sx210 
     123NHSTUB(Read, 0xff00ad58) 
     124NHSTUB(SetFileTimeStamp, 0xFF027410) 
    130125NHSTUB(SetPropertyCase, 0xff08a828) 
    131126NHSTUB(VbattGet, 0xff023040) 
    132127NHSTUB(_sqrt, 0xff3aed14) 
    133128NHSTUB(close, 0xff00abb4) 
    134 NHSTUB(lseek, 0xff0272a0)  //corrected auto stubs. same sa Lseek 
    135 NHSTUB(malloc, 0xFF0041EC)  //corrected auto stubs 
     129NHSTUB(lseek, 0xff0272a0) 
     130NHSTUB(malloc, 0xFF0041EC) 
    136131NHSTUB(memcmp, 0xff0108f4) 
    137132NHSTUB(mktime_ext, 0xff0ac0c8) 
    138133NHSTUB(open, 0xff00ab04) 
    139  
    140 NHSTUB(read, 0xff00ad58)  //fixed was adb8 
     134NHSTUB(read, 0xff00ad58) 
    141135NHSTUB(reboot_fw_update, 0xff2e28a0) 
    142136NHSTUB(stat, 0xff0272e8) 
    143 NHSTUB(strcat, 0xFF0AB880)  //auto stubs error. 
     137NHSTUB(strcat, 0xFF0AB880) 
    144138NHSTUB(strchr, 0xff0040b8) 
    145139NHSTUB(strcmp, 0xff0108b0) 
    146140NHSTUB(strcpy, 0xff010898) 
    147 NHSTUB(strlen, 0xFF004104) //corrected auto stubs error 
     141NHSTUB(strlen, 0xFF004104) 
    148142NHSTUB(kbd_p1_f, 0xFF0249DC) 
    149143NHSTUB(kbd_p1_f_cont, 0xFF0249E8) 
     
    157151NHSTUB(UnlockAF, 0xFF028C10) 
    158152NHSTUB(DoAFLock, 0xFF028BD8) 
    159 NHSTUB(MakeAFScan, 0xFF18B938)   //ok 
     153NHSTUB(MakeAFScan, 0xFF18B938) 
    160154NHSTUB(ExpCtrlTool_StartContiAE, 0xFF037FE4) 
    161 NHSTUB(ExpCtrlTool_StopContiAE, 0xFF0380BC)  //new added 
     155NHSTUB(ExpCtrlTool_StopContiAE, 0xFF0380BC) 
    162156NHSTUB(apex2us, 0xFF246BEC) 
    163157NHSTUB(SetScriptMode, 0xFF091610) 
     
    167161NHSTUB(rand,0xFF245D2C) 
    168162NHSTUB(srand,0xFF245D20) 
    169 ///////////////SX220HS  END/////////////////// 
     163NHSTUB(UnsetZoomForMovie, 0xFF1BB954) //not needed 
     164 
     165NHSTUB(SetFileAttributes, 0xFF02D4BC) 
    170166 
    171167//Fixed errors in compiler 
    172168STUB(FF187C10) 
    173169STUB(FF18D1CC) 
    174 /* 
    175 STUB(FF000B28) 
    176 STUB(FF00A374) 
    177 STUB(FF005B18) 
    178 STUB(FF005C00) 
    179 STUB(FF18669C) 
    180  
    181 */ 
    182 NHSTUB(UnsetZoomForMovie, 0xFF1BB954) //not needed 
    183  
    184 ////////////NOT FOUND//////////// 
    185 ////All pointed to NULL (nullsub_10 -> 0xFF02D4BC)   // SX220 
     170 
     171////All pointed to NULL (nullsub_10 -> 0xFF02D4BC) 
    186172NHSTUB(Unmount_FileSystem, 0xFF02D4BC) 
    187173NHSTUB(Mount_FileSystem, 0xFF02D4BC) 
    188174NHSTUB(SetZoomActuatorSpeedPercent, 0xFF02D4BC) 
    189175NHSTUB(rewinddir, 0xFF02D4BC) 
    190 NHSTUB(SetFileAttributes, 0xFF02D4BC) 
    191 ///////////////NEW///////////////// 
    192176NSTUB(DisableDispatch,0xFF02D4BC) 
    193177NSTUB(CreatePhysicalVram,0xFF02D4BC) 
     
    228212NSTUB(toupper,0xFF02D4BC) 
    229213NSTUB(utime,0xFF02D4BC) 
    230  
  • trunk/platform/sx220hs/sub/101a/boot.c

    r702 r720  
    453453                 "MOVNE   R0, R5\n" 
    454454                 "BLNE    sub_FF08F3F4\n" 
    455                  "BL      sub_FF08B1AC_my\n"              // patched 
     455                 "BL      sub_FF08B1AC\n" 
    456456                 "BL      core_spytask_can_start\n"   //added CHDK: Set "it's-safe-to-start"-Flag for spytask 
    457                                  "CMP     R4, #0\n" 
    458                  "LDMNEFD SP!, {R4-R6,PC}\n" 
    459                  "MOV     R0, R5\n" 
    460                  "LDMFD   SP!, {R4-R6,LR}\n" 
    461                  "MOV     R1, #0\n" 
    462                                  "B       sub_FF08F3F4\n" 
    463                                   
     457 
     458                                 "B               sub_FF095260\n"                                //continue in firmware 
    464459 ); 
    465460} 
    466  
    467  
    468  
    469  
    470  
    471  
    472 void __attribute__((naked,noinline)) sub_FF08B1AC_my() { 
    473   
    474  asm volatile( 
    475                  "STMFD   SP!, {R4,LR}\n" 
    476                  "MOV     R0, #3\n" 
    477                  "BL      sub_FF06A9D0_my\n"           //patched 
    478                  "BL      sub_FF169D7C\n"              //nullsub_100 
    479                  "LDR     R4, =0x4268\n" 
    480                  "LDR     R0, [R4,#4]\n" 
    481                  "CMP     R0, #0\n" 
    482                  "BNE     loc_FF08B1E4\n" 
    483                  "BL      sub_FF069B68\n" 
    484                  "BL      sub_FF15943C\n" 
    485                  "BL      sub_FF069B68\n" 
    486                  "BL      sub_FF066010\n" 
    487                  "BL      sub_FF069A3C\n" 
    488                  "BL      sub_FF1594D4\n" 
    489  "loc_FF08B1E4:\n" 
    490                  "MOV     R0, #1\n" 
    491                  "STR     R0, [R4]\n" 
    492                  "LDMFD   SP!, {R4,PC}\n" 
    493  ); 
    494 } 
    495  
    496  
    497 void __attribute__((naked,noinline)) sub_FF06A9D0_my() { 
    498   
    499  asm volatile( 
    500                  "STMFD   SP!, {R4-R10,LR}\n" 
    501                  "MOV     R6, R0\n" 
    502                  "BL      sub_FF06A980\n" 
    503                  "LDR     R1, =0x3C5A0\n" 
    504                  "MOV     R5, R0\n" 
    505                  "ADD     R4, R1, R0,LSL#7\n" 
    506                  "LDR     R0, [R4,#0x6C]\n" 
    507                  "TST     R0, #4\n" 
    508                  "LDRNE   R1, =0x9C4\n" 
    509                  "LDRNE   R0, =0xFF06A3C4\n"  //aMounter 
    510                  "BLNE    sub_FF00EC88\n"     //Assert 
    511                  "MOV     R1, R6\n" 
    512                  "MOV     R0, R5\n" 
    513                  "BL      sub_FF06A138\n" 
    514                  "LDR     R0, [R4,#0x38]\n" 
    515                  "BL      sub_FF06B010\n" 
    516                  "CMP     R0, #0\n" 
    517                  "STREQ   R0, [R4,#0x6C]\n" 
    518                  "MOV     R0, R5\n" 
    519                  "BL      sub_FF06A1C8\n" 
    520                  "MOV     R0, R5\n" 
    521                  "BL      sub_FF06A524_my\n"  // patched 
    522                  "MOV     R9, R0\n" 
    523                  "MOV     R0, R5\n" 
    524                  "BL      sub_FF06A840\n" 
    525                  "LDR     R2, =0x3C620\n" 
    526                  "LDR     R6, [R4,#0x3C]\n" 
    527                  "ADD     R1, R5, R5,LSL#4\n" 
    528                  "LDR     R8, [R4,#0x38]\n" 
    529                  "LDR     R7, [R2,R1,LSL#2]\n" 
    530                  "CMP     R6, #0\n" 
    531                  "AND     R9, R9, R0\n" 
    532                  "MOV     R5, #0\n" 
    533                  "MOVEQ   R0, #0x80000001\n" 
    534                  "BEQ     loc_FF06AAA0\n" 
    535                  "MOV     R0, R8\n" 
    536                  "BL      sub_FF069CB4\n" 
    537                  "CMP     R0, #0\n" 
    538                  "MOVNE   R5, #4\n" 
    539                  "MOV     R0, R8\n" 
    540                  "BL      sub_FF16CCD8\n" 
    541                  "CMP     R0, #0\n" 
    542                  "CMPNE   R7, #2\n" 
    543                  "BICNE   R5, R5, #4\n" 
    544                  "CMP     R6, #5\n" 
    545                  "ORRNE   R0, R5, #1\n" 
    546                  "BICEQ   R0, R5, #1\n" 
    547                  "CMP     R9, #0\n" 
    548                  "BICEQ   R0, R0, #2\n" 
    549                  "ORREQ   R0, R0, #0x80000000\n" 
    550                  "BICNE   R0, R0, #0x80000000\n" 
    551                  "ORRNE   R0, R0, #2\n" 
    552  
    553  "loc_FF06AAA0:\n" 
    554                  "STR     R0, [R4,#0x40]\n" 
    555                  "LDMFD   SP!, {R4-R10,PC}\n" 
    556  
    557  ); 
    558 } 
    559  
    560  
    561  
    562  
    563  
    564 void __attribute__((naked,noinline)) sub_FF06A524_my() { 
    565  
    566  asm volatile( 
    567                  "STMFD   SP!, {R4-R6,LR}\n" 
    568                  "MOV     R5, R0\n" 
    569                  "LDR     R0, =0x3C5A0\n" 
    570                  "ADD     R4, R0, R5,LSL#7\n" 
    571                  "LDR     R0, [R4,#0x6C]\n" 
    572                  "TST     R0, #2\n" 
    573                  "MOVNE   R0, #1\n" 
    574                  "LDMNEFD SP!, {R4-R6,PC}\n" 
    575                  "LDR     R0, [R4,#0x38]\n" 
    576                  "MOV     R1, R5\n" 
    577                //  "BL      sub_FF06A24C\n" 
    578                                  "BL      sub_FF06A24C_my\n"  // patched 
    579                  "CMP     R0, #0\n" 
    580                  "LDRNE   R0, [R4,#0x38]\n" 
    581                  "MOVNE   R1, R5\n" 
    582                  "BLNE    sub_FF06A3E8\n" 
    583                  "LDR     R2, =0x3C620\n" 
    584                  "ADD     R1, R5, R5,LSL#4\n" 
    585                  "LDR     R1, [R2,R1,LSL#2]\n" 
    586                  "CMP     R1, #4\n" 
    587                  "BEQ     loc_FF06A584\n" 
    588                  "CMP     R0, #0\n" 
    589                  "LDMEQFD SP!, {R4-R6,PC}\n" 
    590                  "MOV     R0, R5\n" 
    591                  "BL      sub_FF069D44\n" 
    592  "loc_FF06A584:\n" 
    593                  "CMP     R0, #0\n" 
    594                  "LDRNE   R1, [R4,#0x6C]\n" 
    595                  "ORRNE   R1, R1, #2\n" 
    596                  "STRNE   R1, [R4,#0x6C]\n" 
    597                  "LDMFD   SP!, {R4-R6,PC}\n" 
    598  
    599  ); 
    600  
    601   
    602 } 
    603  
    604 void __attribute__((naked,noinline)) sub_FF06A24C_my() { 
    605  
    606  asm volatile( 
    607                                  "STMFD   SP!, {R4-R10,LR}\n" 
    608                                  "MOV     R9, R0\n" 
    609                  "LDR     R0, =0x3C5A0\n" 
    610                  "MOV     R6, #0\n" 
    611                  "ADD     R5, R0, R1,LSL#7\n" 
    612                  "LDR     R0, [R5,#0x3C]\n" 
    613                  "MOV     R7, R6\n" 
    614                  "CMP     R0, #7\n" 
    615                  "MOV     R8, R6\n" 
    616                                  "ADDCC   PC, PC, R0,LSL#2\n"   
    617                                  "B       loc_FF06A3A4\n" 
    618  
    619  "loc_FF06A278:\n" 
    620                  "B       loc_FF06A2AC\n" 
    621  
    622  "loc_FF06A27C:\n" 
    623                  "B       loc_FF06A294\n" 
    624  
    625  "loc_FF06A280:\n" 
    626                  "B       loc_FF06A294\n" 
    627  
    628  "loc_FF06A284:\n" 
    629                  "B       loc_FF06A294\n" 
    630  
    631  "loc_FF06A288:\n" 
    632                  "B       loc_FF06A294\n" 
    633  
    634  "loc_FF06A28C:\n" 
    635                  "B       loc_FF06A39C\n" 
    636  
    637  "loc_FF06A290:\n" 
    638                  "B       loc_FF06A294\n" 
    639  
    640  "loc_FF06A294:\n" 
    641                                  "MOV     R2, #0\n" 
    642                  "MOV     R1, #0x200\n" 
    643                  "MOV     R0, #2\n" 
    644                  "BL      sub_FF085288\n" 
    645                  "MOVS    R4, R0\n" 
    646                  "BNE     loc_FF06A2B4\n" 
    647  
    648  "loc_FF06A2AC:\n" 
    649                  "MOV     R0, #0\n" 
    650                  "LDMFD   SP!, {R4-R10,PC}\n" 
    651  
    652  "loc_FF06A2B4:\n" 
    653                  "LDR     R12, [R5,#0x50]\n" 
    654                  "MOV     R3, R4\n" 
    655                  "MOV     R2, #1\n" 
    656                  "MOV     R1, #0\n" 
    657                  "MOV     R0, R9\n" 
    658                  "BLX     R12\n" 
    659                  "CMP     R0, #1\n" 
    660                  "BNE     loc_FF06A2E0\n" 
    661                  "MOV     R0, #2\n" 
    662                  "BL      sub_FF0853D4\n"       ///ExMemMan.c 
    663                  "B       loc_FF06A2AC\n" 
    664  
    665  "loc_FF06A2E0:\n" 
    666                  "LDR     R1, [R5,#0x64]\n" 
    667                  "MOV     R0, R9\n" 
    668                  "BLX     R1\n" 
    669                                   
    670                 //Allready inserted code 
    671  
    672                                 "MOV   R1, R4\n"           //  pointer to MBR in R1 
    673                                 "BL    mbr_read_dryos\n"   //  total sectors count in R0 before and after call 
    674  
    675                                 // Start of DataGhost's FAT32 autodetection code 
    676                                 // Policy: If there is a partition which has type W95 FAT32, use the first one of those for image storage 
    677                                 // According to the code below, we can use R1, R2, R3 and R12. 
    678                                 // LR wasn't really used anywhere but for storing a part of the partition signature. This is the only thing 
    679                                 // that won't work with an offset, but since we can load from LR+offset into LR, we can use this to do that :) 
    680                                 "MOV     R12, R4\n"                    // Copy the MBR start address so we have something to work with 
    681                                 "MOV     LR, R4\n"                     // Save old offset for MBR signature 
    682                                 "MOV     R1, #1\n"                     // Note the current partition number 
    683                                 "B       dg_sd_fat32_enter\n"          // We actually need to check the first partition as well, no increments yet! 
    684      "dg_sd_fat32:\n" 
    685                                 "CMP     R1, #4\n"                     // Did we already see the 4th partition? 
    686                                 "BEQ     dg_sd_fat32_end\n"            // Yes, break. We didn't find anything, so don't change anything. 
    687                                 "ADD     R12, R12, #0x10\n"            // Second partition 
    688                                 "ADD     R1, R1, #1\n"                 // Second partition for the loop 
    689      "dg_sd_fat32_enter:\n" 
    690                                 "LDRB    R2, [R12, #0x1BE]\n"          // Partition status 
    691                                 "LDRB    R3, [R12, #0x1C2]\n"          // Partition type (FAT32 = 0xB) 
    692                                 "CMP     R3, #0xB\n"                   // Is this a FAT32 partition? 
    693                                 "CMPNE   R3, #0xC\n"                   // Not 0xB, is it 0xC (FAT32 LBA) then? 
    694                                 "BNE     dg_sd_fat32\n"                // No, it isn't. Loop again. 
    695                                 "CMP     R2, #0x00\n"                  // It is, check the validity of the partition type 
    696                                 "CMPNE   R2, #0x80\n" 
    697                                 "BNE     dg_sd_fat32\n"                // Invalid, go to next partition 
    698                                                  // This partition is valid, it's the first one, bingo! 
    699                                 "MOV     R4, R12\n"                    // Move the new MBR offset for the partition detection. 
    700  
    701      "dg_sd_fat32_end:\n" 
    702                                 // End of DataGhost's FAT32 autodetection code 
    703                  "MOV     R1, R0\n"       //SX220 . Was not present in sx210 
    704                                  "LDRB    R0, [R4,#0x1C9]\n" 
    705                  "LDRB    R2, [R4,#0x1C8]\n" 
    706                  "LDRB    R12, [R4,#0x1CC]\n" 
    707                  "MOV     R0, R0,LSL#24\n" 
    708                  "ORR     R0, R0, R2,LSL#16\n" 
    709                  "LDRB    R2, [R4,#0x1C7]\n" 
    710                  "LDRB    R3, [R4,#0x1BE]\n" 
    711                  "ORR     R0, R0, R2,LSL#8\n" 
    712                  "LDRB    R2, [R4,#0x1C6]\n" 
    713                  "CMP     R3, #0\n" 
    714                  "CMPNE   R3, #0x80\n" 
    715                  "ORR     R0, R0, R2\n" 
    716                  "LDRB    R2, [R4,#0x1CD]\n" 
    717                  "MOV     R2, R2,LSL#24\n" 
    718                  "ORR     R2, R2, R12,LSL#16\n" 
    719                  "LDRB    R12, [R4,#0x1CB]\n" 
    720                  "ORR     R2, R2, R12,LSL#8\n" 
    721                  "LDRB    R12, [R4,#0x1CA]\n" 
    722                  "ORR     R2, R2, R12\n" 
    723            //      "LDRB    R12, [R4,#0x1FE]\n"     //remains commented as in sx200 and sx210 
    724            //      "LDRB    R4, [R4,#0x1FF]\n"      //remains commented as in sx200 and sx210 
    725                  "LDRB    R12, [LR,#0x1FE]\n"           // + First MBR signature byte (0x55), LR is original offset. 
    726                  "LDRB    LR, [LR,#0x1FF]\n"            // + Last MBR signature byte (0xAA), LR is original offset. 
    727                              "BNE     loc_FF06A370\n" 
    728                  "CMP     R1, R0\n" 
    729                  "BCC     loc_FF06A370\n" 
    730                  "ADD     R3, R0, R2\n" 
    731                  "CMP     R3, R1\n" 
    732                  "CMPLS   R12, #0x55\n" 
    733                  "CMPEQ   LR, #0xAA\n"  // + R4 to LR 
    734                  "MOVEQ   R6, R0\n" 
    735                  "MOVEQ   R7, R2\n" 
    736                  "MOVEQ   R4, #1\n" 
    737                  "BEQ     loc_FF06A374\n" 
    738  
    739  "loc_FF06A370:\n" 
    740                  "MOV     R4, R8\n" 
    741  
    742  "loc_FF06A374:\n" 
    743                                  "MOV     R0, #2\n" 
    744                  "BL      sub_FF0853D4\n"               //ExMemMan.c 
    745                  "CMP     R4, #0\n" 
    746                  "BNE     loc_FF06A3B0\n" 
    747                  "LDR     R1, [R5,#0x64]\n" 
    748                  "MOV     R6, #0\n" 
    749                  "MOV     R0, R9\n" 
    750                  "BLX     R1\n" 
    751                  "MOV     R7, R0\n" 
    752                  "B       loc_FF06A3B0\n" 
    753  
    754  "loc_FF06A39C:\n" 
    755                  "MOV     R7, #0x40\n" 
    756                  "B       loc_FF06A3B0\n" 
    757  
    758  "loc_FF06A3A4:\n" 
    759                  "LDR     R1, =0x623\n" 
    760                  "LDR     R0, =0xFF06A3C4\n"    //"Mounter.c" aMounter_c 
    761                  "BL      sub_FF00EC88\n"       //ASSERT 
    762  
    763  "loc_FF06A3B0:\n" 
    764                  "ADD     R1, R5, #0x44\n" 
    765                  "STMIA   R1, {R6-R8}\n" 
    766                  "MOV     R0, #1\n" 
    767                  "LDMFD   SP!, {R4-R10,PC}\n" 
    768  
    769  ); 
    770 } 
    771  
    772461 
    773462// In SX220 called RotaryEncoder FF05671C 
     
    841530 "labelB:\n" 
    842531 //------------------  original code ------------------ 
    843                          "LDR     R0, =0x25BC\n"                //=0xFF0569E4, changing all asc_... fixed the crash when rotating the wheel 
     532                         "LDR     R0, =0x25C8\n"                //=0xFF0569E4, changing all asc_... fixed the crash when rotating the wheel 
    844533                 "LDR     R0, [R0,R4,LSL#2]\n" 
    845534                 "BL      sub_FF02BCFC\n" 
     
    875564                 "CMP     R0, #0\n" 
    876565                 "BEQ     loc_FF05697C\n" 
    877                  "LDR     R7, =0x25BC\n"                        //=0xFF0569E4 
     566                 "LDR     R7, =0x25C8\n"                        //=0xFF0569E4 
    878567                 "LDR     R0, [R7,R4,LSL#2]\n" 
    879568                 "BL      sub_FF02BCFC\n" 
     
    934623                 "BL      sub_FF0240E0\n" 
    935624                 "LDR     R0, [R7,#0x10]\n" 
    936                  "LDR     R7, =0x25BC\n"                //=0xFF0569E4 
     625                 "LDR     R7, =0x25C8\n"                //=0xFF0569E4 
    937626                 "STR     R0, [R9,R4,LSL#2]\n" 
    938627                 "LDRH    R1, [R11]\n" 
  • trunk/platform/sx220hs/sub/101a/capt_seq.c

    r702 r720  
    160160                                         
    161161                 "BL      sub_FF077F04\n" 
    162                   
    163 //Commented area copied from sx210 
    164 // TESTING DOSNT DO BAD NEITHER GOOD  LIKE IN SD1200 but seems to dont work too!!! 
    165 /* 
    166 "    STMFD   SP!, {R1-R12,LR}\n" 
    167 "    BL      captseq_hack_override_active\n" // returns 1 if tv or sv override in effect 
    168 "    LDMFD   SP!, {R1-R12,LR}\n" 
    169 "    STR     R0,[SP,#-4]!\n" // push return value 
    170 "    BL      shooting_expo_param_override\n" // saves all regs 
    171  
    172 "                BL      sub_FF87C4C0\n" 
    173  
    174 "    LDR     R0,[SP],#4\n" // pop override hack 
    175 "    CMP     R0, #1\n" 
    176 "    MOVEQ   R0, #0\n" 
    177 "    STREQ   R0, [R4,#0x24]\n"  // fixes overrides behavior at short shutter press 
    178 */                                
    179  
    180  
    181162                                 "BL      shooting_expo_param_override\n"  // + patched                  
    182163                                 "BL      sub_FF074BC4\n" 
    183164  
    184   
    185  //SX220 Funnel:  
    186  //  copied over from SX10 don't know if we need it yet 
    187  //  this code added to avoid some incorrect behavior if overrides are used. 
    188  //  but it can cause some unexpected side effects. In this case, remove this code! 
    189  //              "MOV     R0, #0\n" 
    190  //              "STR     R0, [R4,#0x24]\n"  // fixes overrides  behavior at short shutter press 
    191  //  end of my code 
    192  
    193                                  "LDR     R0, [R5,#0x28]\n" 
    194                  "CMP     R0, #0\n" 
    195                  "BLNE    sub_FF18D9B4\n" 
     165                                 "MOV     R0, #0\n"                                                     // added 
     166                                 "STR     R0, [R5,#0x28]\n"                                     // added, fixes overrides  behavior at short shutter press (from SX30) 
     167  
     168//                               "LDR     R0, [R5,#0x28]\n"                                     // above two lines make this code redundant 
     169//               "CMP     R0, #0\n"                                                     // above two lines make this code redundant 
     170//               "BLNE    sub_FF18D9B4\n"                                       // above two lines make this code redundant 
    196171                 "B       loc_FF0778F0\n" 
    197172 
     
    201176                // "BL      sub_FF18D790\n"    // SX220 
    202177                                 "BL      sub_FF18D790_my\n"   // + patched 
    203                                  "BL      capt_seq_hook_raw_here\n"    //added                            
    204178                                 "MOV     R4, R0\n" 
    205179                 "MOV     R2, R8\n" 
     
    591565 "loc_FF18D98C:\n"                            
    592566                 "MOV     R0, R4\n" 
    593                  "BL      sub_FF3058B8\n" 
     567                 "BL      sub_FF3058B8_my\n"            //patched 
    594568                         
    595569 "loc_FF18D994:\n"                           
     
    609583                        ); 
    610584}  
     585 
     586void __attribute__((naked,noinline)) sub_FF3058B8_my(  ) { 
     587asm volatile ( 
     588"       STMFD   SP!, {R3-R7,LR} \n"                 
     589"       MOV     R4, R0 \n"                            
     590"       BL      sub_FF18E4F0 \n"                       
     591"       MVN     R1, #0 \n"                            
     592"       BL      sub_FF0826F8 \n"                       
     593"       LDR     R0, =0xFF18D1CC \n"                   
     594"       MOV     R1, R4 \n"                            
     595"       BL      sub_FF0B8C48 \n"                       
     596"       MOV     R0, R4 \n"                            
     597"       BL      sub_FF18D0C8 \n"                       
     598"       MOV     R0, R4 \n"                            
     599"       BL      sub_FF18D53C \n"                       
     600"       MOV     R6, R0 \n"                            
     601"       LDR     R1, =0xEF48 \n"                       
     602"       MOV     R2, #4 \n"                            
     603"       MOV     R0, #0x8A \n"                         
     604"       BL      sub_FF08A944 \n"                       
     605"       TST     R0, #1 \n"                            
     606"       LDRNE   R1, =0x21E \n"                      
     607"       LDRNE   R0, =0xFF305AC8 \n"                 
     608"       BLNE    sub_FF00EC88 \n"                     
     609"       BL      sub_FF07AF50 \n"                       
     610"       CMP     R6, #0xA \n"                          
     611"       MOV     R5, #1 \n"                            
     612"       MOV     R7, #0 \n"                            
     613"       ADDCC   PC, PC, R6, LSL #2 \n"              
     614"       B       loc_FF3059E8 \n"                        
     615"       B       loc_FF3059E8 \n"                        
     616"       B       loc_FF30594C \n"                        
     617"       B       loc_FF30595C \n"                        
     618"       B       loc_FF305978 \n"                        
     619"       B       loc_FF305988 \n"                        
     620"       B       loc_FF3059B4 \n"                        
     621"       B       loc_FF3059E8 \n"                        
     622"       B       loc_FF3059E8 \n"                        
     623"       B       loc_FF3059E8 \n"                        
     624"       B       loc_FF3059CC \n"                        
     625"loc_FF30594C:\n" 
     626"       MOV     R0, #1 \n"                            
     627"       BL      sub_FF0B8C78 \n"                       
     628"       STRH    R7, [R4, #0x10] \n"                  
     629"       B       loc_FF3059DC \n"                        
     630"loc_FF30595C:\n" 
     631"       MOV     R0, #1 \n"                            
     632"       BL      sub_FF0B8C78 \n"                       
     633"       MOV     R0, R4 \n"                            
     634"       STRH    R5, [R4, #0x10] \n"                  
     635"       BL      sub_FF3056A0 \n"                       
     636"loc_FF305970:\n" 
     637"       MOV     R5, R0 \n"                            
     638"       B       loc_FF3059F8 \n"                        
     639"loc_FF305978:\n" 
     640"       MOV     R0, #1 \n"                            
     641"       BL      sub_FF0B8C78 \n"                       
     642"       MOV     R0, #1 \n"                            
     643"       B       loc_FF305994 \n"                        
     644"loc_FF305988:\n" 
     645"       MOV     R0, #1 \n"                            
     646"       BL      sub_FF0B8C78 \n"                       
     647"       MOV     R0, #2 \n"                            
     648"loc_FF305994:\n" 
     649"       BL      sub_FF24C69C \n"                       
     650"       MOV     R0, R4 \n"                            
     651"       STRH    R5, [R4, #0x10] \n"                  
     652"       BL      sub_FF3056A0 \n"                       
     653"       MOV     R5, R0 \n"                            
     654"       MOV     R0, #0 \n"                            
     655"       BL      sub_FF24C69C \n"                       
     656"       B       loc_FF3059F8 \n"                        
     657"loc_FF3059B4:\n" 
     658"       MOV     R0, #1 \n"                            
     659"       BL      sub_FF0B8C78 \n"                       
     660"       MOV     R0, R4 \n"                            
     661"       STRH    R7, [R4, #0x10] \n"                  
     662"       BL      sub_FF305768 \n"                       
     663"       B       loc_FF305970 \n"                        
     664"loc_FF3059CC:\n" 
     665"       MOV     R0, #0 \n"                            
     666"       BL      sub_FF0B8C78 \n"                       
     667"       MOV     R0, #4 \n"                            
     668"       STRH    R0, [R4, #0x10] \n"                  
     669"loc_FF3059DC:\n" 
     670"       MOV     R0, R4 \n"                            
     671"       BL      sub_FF305620 \n"                       
     672"       B       loc_FF305970 \n"                        
     673"loc_FF3059E8:\n" 
     674"       MOV     R1, #0x264 \n"                        
     675"       LDR     R0, =0xFF305AC8 \n"                   
     676"       BL      sub_FF00EC88 \n"                       
     677"       MOV     R5, #0x1D \n"                         
     678"loc_FF3059F8:\n" 
     679"       TST     R5, #1 \n"                            
     680"       MOVNE   R0, R5 \n"                          
     681"       BNE     loc_FF305A9C \n"                      
     682"       LDR     R5, =0xEF44 \n"                       
     683"       LDR     R0, [R5] \n"                          
     684"       CMP     R0, #0 \n"                            
     685"       BNE     loc_FF305A28 \n"                      
     686"       LDRH    R0, [R4, #0x10] \n"                  
     687"       CMP     R0, #1 \n"                            
     688"       CMPNE   R0, #3 \n"                          
     689"       CMPNE   R0, #5 \n"                          
     690"       BEQ     loc_FF305A3C \n"                      
     691"loc_FF305A28:\n" 
     692"       LDR     R0, =0x3EB1C \n"                      
     693"       LDRH    R0, [R0] \n"                         
     694"       SUB     R1, R0, #0x4000 \n"                   
     695"       SUBS    R1, R1, #0x20C \n"                   
     696"       BLEQ    sub_FF0A14C8 \n"                     
     697"loc_FF305A3C:\n" 
     698"       MOV     R0, R4 \n"                            
     699"       BL      sub_FF18D638 \n"                       
     700"       MOV     R0, R4 \n"                            
     701"       BL      sub_FF18D5D4 \n"                       
     702"       BL      capt_seq_hook_raw_here\n"    //added                              
     703"       LDR     R0, [R5] \n"                          
     704"       CMP     R0, #0 \n"                            
     705"       BNE     loc_FF305A6C \n"                      
     706"       LDRH    R0, [R4, #0x10] \n"                  
     707"       CMP     R0, #1 \n"                            
     708"       CMPNE   R0, #3 \n"                          
     709"       CMPNE   R0, #5 \n"                          
     710"       BEQ     loc_FF305A98 \n"                      
     711"loc_FF305A6C:\n" 
     712"       BL      sub_FF18E4F0 \n"                       
     713"       LDR     R4, =0x27E \n"                        
     714"       LDR     R2, =0x3A98 \n"                       
     715"       LDR     R3, =0xFF305AC8 \n"                   
     716"       MOV     R1, #4 \n"                            
     717"       STR     R4, [SP] \n"                          
     718"       BL      sub_FF07DB68 \n"                       
     719"       CMP     R0, #0 \n"                            
     720"       MOVNE   R1, R4 \n"                          
     721"       LDRNE   R0, =0xFF305AC8 \n"                 
     722"       BLNE    sub_FF00EC88 \n"                     
     723"loc_FF305A98:\n" 
     724"       MOV     R0, #0 \n"                            
     725"loc_FF305A9C:\n" 
     726"       LDMFD   SP!, {R3-R7,PC} \n"                 
     727        ); 
     728} 
    611729 
    612730///////sx220 sub_FF0C3E54 
  • trunk/platform/sx220hs/sub/101a/makefile.inc

    r702 r720  
    1212 
    1313ifdef OPT_CHDK_IN_EXMEM 
    14 MEMISOSTART=0x79067E0   # MAXRAMADDR+1 - EXMEM_HEAP_SKIP - EXMEM_BUFFER_SIZE - 32(0x20) (exmem allocates 64 bytes extra, 32 before and 32 after block allocated) 
     14MEMISOSTART=0x78E67E0   # MAXRAMADDR+1 - EXMEM_HEAP_SKIP - EXMEM_BUFFER_SIZE - 32(0x20) (exmem allocates 64 bytes extra, 32 before and 32 after block allocated) 
    1515else 
    1616MEMISOSTART=0x186AE4   # original non-exmem value 
     
    2020 
    2121MAXRAMADDR=0x7FFFFFF 
    22 EXMEM_BUFFER_SIZE=0x80000  # now 256KB, 80000=512KB, C0000=768KB, 100000=1MB 
     22EXMEM_BUFFER_SIZE=0xA0000  # now 256KB, 80000=512KB, C0000=768KB, 100000=1MB 
    2323EXMEM_HEAP_SKIP=0x679800 
    2424 
  • trunk/platform/sx220hs/sub/101a/stubs_entry_2.S

    r702 r720  
    22 
    33///SX220 HS 1.01A// 
    4  
    5 //beta3 
    6 NHSTUB(WriteSDCard,0xFF16C828)  //swaped with ReadSDCard 
    7 NHSTUB(ReadSDCard,0xFF16C62C) 
    8 NHSTUB(strtolx,0xFF0310F0)      // swapped with strtol 
    9 NHSTUB(strtol,0xFF0312EC)        
    10 NHSTUB(LEDDrive,0xff0557c0)     //corrected 
    11  
    12 //beta2 
    13 NHSTUB(GetImageFolder, 0xFF1598B8)  //doesn't work 
    144 
    155# Addresses for firmware task handlers (used in taskHook) 
     
    199DEF(task_MovieRecord,0xFF1882F0) 
    2010DEF(task_ExpDrv,0xFF0C3E54) 
    21  
    22 NHSTUB(write, 0xff00adb8)  //changed. was same as Write and worked. 
    23 NHSTUB(GetCurrentAvValue,0xFF17F15C) //changed was FF0B05D4 
    24  
    25 NHSTUB(MoveIrisWithAv, 0xFF303650)  //1.01A //should fix avbracketing, change in generic/shooting.c 
     11DEF(task_PhySw,0xff0244f0) 
     12 
     13NHSTUB(DebugAssert                             ,0xff00ec88) 
     14NHSTUB(ExpCtrlTool_StopContiAE                 ,0xff0380bc) 
     15NHSTUB(GetMemInfo                              ,0xff00a29c) 
     16NHSTUB(GiveSemaphore                           ,0xff02b23c) 
     17NHSTUB(MakeSDCardBootable                      ,0xff06b04c) 
     18NHSTUB(PT_MoveDigitalZoomToWide                ,0xff0746e8) 
     19NHSTUB(PT_MoveOpticalZoomAt                    ,0xff0746c0) 
     20NHSTUB(ScreenLock                              ,0xff0ab250) 
     21NHSTUB(ScreenUnlock                            ,0xff0ab2b4) 
     22NHSTUB(err_init_task                           ,0xff005fd4) 
     23NHSTUB(WriteSDCard,0xFF16C828) 
     24NHSTUB(ReadSDCard,0xFF16C62C) 
     25NHSTUB(strtolx,0xFF0310F0) 
     26NHSTUB(strtol,0xFF0312EC)        
     27NHSTUB(LEDDrive,0xff0557c0) 
     28NHSTUB(GetImageFolder, 0xFF1598B8) 
     29NHSTUB(write, 0xff00adb8) 
     30NHSTUB(GetCurrentAvValue,0xFF17F15C) 
     31NHSTUB(MoveIrisWithAv, 0xFF303650)  //1.01A 
    2632NHSTUB(_log10,0xFF3ACCD0)  //1.01A 
    2733NHSTUB(_log,0xFF3AC790)  //1.01A 
    28  
    29 ///beta1 
    30 NHSTUB(PutInNdFilter,0xFF36BDEC) //1.01A //testing NDfilter works 
    31 NHSTUB(PutOutNdFilter,0xFF36BE24) //1.01A //testing NDfilter works 
    32 NHSTUB(GetKbdState, 0xFF056474) //testing in kbd.c 
    33  
    34  
     34NHSTUB(PutInNdFilter,0xFF36BDEC) //1.01A 
     35NHSTUB(PutOutNdFilter,0xFF36BE24) //1.01A 
     36NHSTUB(GetKbdState, 0xFF056474) 
    3537NHSTUB(ufree,0xFF02B884) 
    36  
    37 //NEW - EXMEM testing 
    38 NHSTUB(exmem_alloc, 0xFF085434) //1st , 2nd FF08549C, AllocUncacheable FF085288 
    39 // 
    40  
    41 //4/2011 Funnel 
    42 /////////////////////SX220HS  START////////////////////// 
     38NHSTUB(exmem_alloc, 0xFF085434) 
    4339NHSTUB(CreateTask,0xFF00E9B0) 
    4440NHSTUB(LocalTime,0xFF08446C) 
     
    7470NHSTUB(TakeSemaphore,0xff02b16c) 
    7571NHSTUB(UnlockMainPower,0xff0917d8) 
    76 NHSTUB(_pow,0xFF3ACE48) //1.01A                 //Not sure 
     72NHSTUB(_pow,0xFF3ACE48)                         //1.01A 
    7773NHSTUB(add_ptp_handler,0xff28aa1c) 
    78 NHSTUB(localtime,0xFF08446C)  //2 times 
     74NHSTUB(localtime,0xFF08446C) 
    7975NHSTUB(memset,0xFF245BEC) 
    8076NHSTUB(memcpy,0xFF030FEC) 
     
    8480NHSTUB(time,0xff084a48) 
    8581NHSTUB(Lseek,0xFF0272A0) 
    86 NHSTUB(Close,0xFF027084)  //sx220 something different in code. Not sure. 
     82NHSTUB(Close,0xFF027084) 
    8783NHSTUB(EnterToCompensationEVF,0xFF028E74) 
    8884NHSTUB(ExitFromCompensationEVF,0xFF028EB8) 
     
    9692NHSTUB(readfastdir,0xFF2DD404) 
    9793NHSTUB(Rec2PB,0xFF0931FC) 
    98 NHSTUB(RefreshPhysicalScreen,0xFF0AA058)  //most probable, some differences in code 
     94NHSTUB(RefreshPhysicalScreen,0xFF0AA058) 
    9995NHSTUB(Remove,0xFF0271F8) 
    10096NHSTUB(SleepTask,0xFF02B4E8) 
     
    10298NHSTUB(TurnOnBackLight,0xFF0A21A0) 
    10399NHSTUB(UIFS_WriteFirmInfoToFile,0xFF1A4414) 
    104 NHSTUB(Write,0xFF0270D8)  //Probably. not sure!!!!!!!!!!! 
     100NHSTUB(Write,0xFF0270D8) 
    105101NHSTUB(closedir,0xFF2DD260) 
    106102NHSTUB(closefastdir,0xFF2DD260) 
     
    111107NHSTUB(openfastdir,0xFF2DD2B0) 
    112108NHSTUB(qsort,0xFF359490)  //1.01A 
    113 NHSTUB(rename,0xFF026908)    //small difference in code vs sx210 
    114 NHSTUB(RenameFile_Fut, 0xff026908)  //same as rename like in sx210 
     109NHSTUB(rename,0xFF026908) 
     110NHSTUB(RenameFile_Fut, 0xff026908) 
    115111NHSTUB(strrchr,0xFF0040DC) 
    116112NHSTUB(vsprintf,0xFF010858) 
    117  
    118  
    119 /////////////////AUTO FOUND CHECKED////////////////// 
    120113NHSTUB(AllocateMemory, 0xff3075E8) //1.01A 
    121114NHSTUB(AllocateUncacheableMemory, 0xff02b844) 
     
    129122NHSTUB(GetSystemTime, 0xff307640) //1.01A 
    130123NHSTUB(NewTaskShell, 0xff08a38c) 
    131 NHSTUB(Read, 0xff00ad58)  //fixed was adb8 
    132 NHSTUB(SetFileTimeStamp, 0xFF027410)   //auto stubs was wrong here. small differences in code from sx210 
     124NHSTUB(Read, 0xff00ad58) 
     125NHSTUB(SetFileTimeStamp, 0xFF027410) 
    133126NHSTUB(SetPropertyCase, 0xff08a828) 
    134127NHSTUB(VbattGet, 0xff023040) 
    135128NHSTUB(_sqrt, 0xff3aed2C)  //1.01A 
    136129NHSTUB(close, 0xff00abb4) 
    137 NHSTUB(lseek, 0xff0272a0)  //corrected auto stubs. same sa Lseek 
    138 NHSTUB(malloc, 0xFF0041EC)  //corrected auto stubs 
     130NHSTUB(lseek, 0xff0272a0) 
     131NHSTUB(malloc, 0xFF0041EC) 
    139132NHSTUB(memcmp, 0xff0108f4) 
    140133NHSTUB(mktime_ext, 0xff0ac0c8) 
    141134NHSTUB(open, 0xff00ab04) 
    142135NHSTUB(opendir, 0xff2dd2b0) 
    143 NHSTUB(read, 0xff00ad58)  //fixed was adb8 
     136NHSTUB(read, 0xff00ad58) 
    144137NHSTUB(reboot_fw_update, 0xff2e28a0) 
    145138NHSTUB(stat, 0xff0272e8) 
    146 NHSTUB(strcat, 0xFF0AB880)  //auto stubs error. 
     139NHSTUB(strcat, 0xFF0AB880) 
    147140NHSTUB(strchr, 0xff0040b8) 
    148141NHSTUB(strcmp, 0xff0108b0) 
    149142NHSTUB(strcpy, 0xff010898) 
    150 NHSTUB(strlen, 0xFF004104) //corrected auto stubs error 
     143NHSTUB(strlen, 0xFF004104) 
    151144NHSTUB(kbd_p1_f, 0xFF0249DC) 
    152145NHSTUB(kbd_p1_f_cont, 0xFF0249E8) 
     
    156149NHSTUB(GetDrive_FreeClusters,0xFF06AE14) 
    157150NHSTUB(GetDrive_TotalClusters,0xFF06ADEC) 
    158 NHSTUB(UnlockAndRefresh, 0xFF0AB2B4)   // maybe    //sx210 was FFA1EDDC 
    159 NHSTUB(LockAndRefresh, 0xFF0AB250)    // maybe // sx210 was FFA1ED98 
     151NHSTUB(UnlockAndRefresh, 0xFF0AB2B4) 
     152NHSTUB(LockAndRefresh, 0xFF0AB250) 
    160153NHSTUB(UnlockAF, 0xFF028C10) 
    161154NHSTUB(DoAFLock, 0xFF028BD8) 
    162 NHSTUB(MakeAFScan, 0xFF18B938)   //ok 
     155NHSTUB(MakeAFScan, 0xFF18B938) 
    163156NHSTUB(ExpCtrlTool_StartContiAE, 0xFF037FE4) 
    164157NHSTUB(apex2us, 0xFF246BEC) 
     
    169162NHSTUB(rand,0xFF245D2C) 
    170163NHSTUB(srand,0xFF245D20) 
    171 ///////////////SX220HS  END/////////////////// 
     164 
     165NHSTUB(SetFileAttributes, 0xFF02D4BC) 
    172166 
    173167//Fixed errors in compiler 
    174 //STUB(FF000358) 
    175 //STUB(FF025F8C) 
    176 /* 
    177 STUB(FF000B28) 
    178 STUB(FF00A374) 
    179 STUB(FF005B18) 
    180 STUB(FF005C00) 
    181 */ 
    182168STUB(FF18669C) 
    183169STUB(FF187C10) 
    184170STUB(FF18D1CC) 
    185171 
    186 ////////////NOT FOUND//////////// 
    187172////All pointed to NULL (nullsub_10 -> 0xFF02D4BC)   // SX220 
    188  
    189173NHSTUB(UnsetZoomForMovie, 0xFF02D4BC)  
    190 //NHSTUB(ftell, 0xFF02D4BC)  
    191   
    192 NHSTUB(Unmount_FileSystem, 0xFF02D4BC)            //  ??????????????????? 
    193 NHSTUB(Mount_FileSystem, 0xFF02D4BC)              //  ??????????????????? 
    194 NHSTUB(SetZoomActuatorSpeedPercent, 0xFF02D4BC)   //  ???????????????????   
    195 NHSTUB(rewinddir, 0xFF02D4BC)                     //  ??????????????????? 
    196  
    197 NHSTUB(SetFileAttributes, 0xFF02D4BC) 
    198 ///////////////NEW///////////////// 
     174NHSTUB(Unmount_FileSystem, 0xFF02D4BC) 
     175NHSTUB(Mount_FileSystem, 0xFF02D4BC) 
     176NHSTUB(SetZoomActuatorSpeedPercent, 0xFF02D4BC) 
     177NHSTUB(rewinddir, 0xFF02D4BC) 
    199178NSTUB(DisableDispatch,0xFF02D4BC) 
    200179NSTUB(CreatePhysicalVram,0xFF02D4BC) 
Note: See TracChangeset for help on using the changeset viewer.