Changeset 1251
- Timestamp:
- 07/29/11 08:25:29 (22 months ago)
- Location:
- trunk/platform/sx220hs
- Files:
-
- 12 edited
-
platform_camera.h (modified) (1 diff)
-
shooting.c (modified) (2 diffs)
-
sub/100a/boot.c (modified) (4 diffs)
-
sub/100a/capt_seq.c (modified) (4 diffs)
-
sub/100a/makefile.inc (modified) (2 diffs)
-
sub/100a/stubs_auto.S (modified) (11 diffs)
-
sub/100a/stubs_entry_2.S (modified) (10 diffs)
-
sub/101a/boot.c (modified) (4 diffs)
-
sub/101a/capt_seq.c (modified) (4 diffs)
-
sub/101a/makefile.inc (modified) (2 diffs)
-
sub/101a/stubs_auto.S (modified) (11 diffs)
-
sub/101a/stubs_entry_2.S (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/platform/sx220hs/platform_camera.h
r1237 r1251 20 20 // for information on each setting. If the default values are correct for your camera then 21 21 // don't override them again in here. 22 22 23 #define CAM_DISABLE_RAW_IN_LOW_LIGHT_MODE 1 24 #define DNG_VERT_RLE_BADPIXELS 1 23 25 #define CAM_AV_OVERRIDE_IRIS_FIX 1 // for cameras that require _MoveIrisWithAv function to override Av. 24 26 #define CAM_KEY_CLICK_DELAY 150 -
trunk/platform/sx220hs/shooting.c
r1237 r1251 138 138 n = (n>>4)&0x3FFF; 139 139 140 //n+=22; 141 return n; 140 return n; 141 } 142 143 void 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)); 142 147 } 143 148 … … 150 155 } 151 156 152 void get_target_dir_name(char *out)153 {154 //getting the dir name directly from ram @0xBECA4. @FF159918155 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 daily165 /* 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 175 157 int circle_of_confusion = 5; 176 158 -
trunk/platform/sx220hs/sub/100a/boot.c
r1230 r1251 441 441 "MOVNE R0, R5\n" 442 442 "BLNE sub_FF08F3F4\n" 443 "BL sub_FF08B1AC _my\n" //patched443 "BL sub_FF08B1AC\n" 444 444 "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"451 445 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 } 749 449 750 450 // In SX220 called RotaryEncoder FF05671C … … 819 519 //------------------ original code ------------------ 820 520 821 "LDR R0, =0x25 BC\n" //=0xFF0569E4, changing all asc_... fixed the crash when rotating the wheel521 "LDR R0, =0x25C8\n" //=0xFF0569E4, changing all asc_... fixed the crash when rotating the wheel 822 522 "LDR R0, [R0,R4,LSL#2]\n" 823 523 "BL sub_FF02BCFC\n" … … 853 553 "CMP R0, #0\n" 854 554 "BEQ loc_FF05697C\n" 855 "LDR R7, =0x25 BC\n" //=0xFF0569E4555 "LDR R7, =0x25C8\n" //=0xFF0569E4 856 556 "LDR R0, [R7,R4,LSL#2]\n" 857 557 "BL sub_FF02BCFC\n" … … 912 612 "BL sub_FF0240E0\n" 913 613 "LDR R0, [R7,#0x10]\n" 914 "LDR R7, =0x25 BC\n" //=0xFF0569E4614 "LDR R7, =0x25C8\n" //=0xFF0569E4 915 615 "STR R0, [R9,R4,LSL#2]\n" 916 616 "LDRH R1, [R11]\n" -
trunk/platform/sx220hs/sub/100a/capt_seq.c
r1230 r1251 158 158 "B loc_FF0778F0\n" 159 159 160 "loc_FF077714:\n" //160 "loc_FF077714:\n" 161 161 162 162 "BL sub_FF077F04\n" 163 164 //Commented area copied from sx210165 // 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 effect169 " LDMFD SP!, {R1-R12,LR}\n"170 " STR R0,[SP,#-4]!\n" // push return value171 " BL shooting_expo_param_override\n" // saves all regs172 173 " BL sub_FF87C4C0\n"174 175 " LDR R0,[SP],#4\n" // pop override hack176 " CMP R0, #1\n"177 " MOVEQ R0, #0\n"178 " STREQ R0, [R4,#0x24]\n" // fixes overrides behavior at short shutter press179 */180 181 182 163 "BL shooting_expo_param_override\n" // + patched 183 164 "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 197 173 "B loc_FF0778F0\n" 198 174 … … 202 178 // "BL sub_FF18D790\n" // SX220 203 179 "BL sub_FF18D790_my\n" // + patched 204 "BL capt_seq_hook_raw_here\n" //added205 180 "MOV R4, R0\n" 206 181 "MOV R2, R8\n" … … 593 568 "loc_FF18D98C:\n" 594 569 "MOV R0, R4\n" 595 "BL sub_FF3058A0 \n"570 "BL sub_FF3058A0_my\n" //patched 596 571 597 572 "loc_FF18D994:\n" … … 611 586 ); 612 587 } 588 589 void __attribute__((naked,noinline)) sub_FF3058A0_my( ) { 590 asm 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 } 613 732 614 733 ///////sx220 sub_FF0C3E54 -
trunk/platform/sx220hs/sub/100a/makefile.inc
r1230 r1251 12 12 13 13 ifdef OPT_CHDK_IN_EXMEM 14 MEMISOSTART=0x7 9067E0 # MAXRAMADDR+1 - EXMEM_HEAP_SKIP - EXMEM_BUFFER_SIZE - 32(0x20) (exmem allocates 64 bytes extra, 32 before and 32 after block allocated)14 MEMISOSTART=0x78E67E0 # MAXRAMADDR+1 - EXMEM_HEAP_SKIP - EXMEM_BUFFER_SIZE - 32(0x20) (exmem allocates 64 bytes extra, 32 before and 32 after block allocated) 15 15 else #265kb=79467E0, 512kb=79067E0, 640kb=78E67E0 16 16 MEMISOSTART=0x186AE4 # original non-exmem value … … 20 20 21 21 MAXRAMADDR=0x7FFFFFF 22 EXMEM_BUFFER_SIZE=0x 80000 # 40000=256KB, 80000=512KB, A0000=640kb, C0000=768KB, 100000=1MB22 EXMEM_BUFFER_SIZE=0xA0000 # 40000=256KB, 80000=512KB, A0000=640kb, C0000=768KB, 100000=1MB 23 23 EXMEM_HEAP_SKIP=0x679800 24 24 -
trunk/platform/sx220hs/sub/100a/stubs_auto.S
r1230 r1251 74 74 STUB(FF056AA0) 75 75 STUB(FF056ABC) 76 STUB(FF066010)77 STUB(FF069A3C)78 STUB(FF069B68)79 STUB(FF069CB4)80 STUB(FF069D44)81 STUB(FF06A138)82 STUB(FF06A1C8)83 STUB(FF06A24C)84 STUB(FF06A3E8)85 STUB(FF06A524)86 STUB(FF06A840)87 STUB(FF06A980)88 STUB(FF06A9D0)89 STUB(FF06B010)90 76 STUB(FF074BC4) 91 77 STUB(FF07531C) … … 108 94 STUB(FF0793E0) 109 95 STUB(FF079490) 96 STUB(FF07AF50) 110 97 STUB(FF07B8D8) 111 98 STUB(FF07B95C) … … 116 103 STUB(FF07D6AC) 117 104 STUB(FF07D70C) 105 STUB(FF07DB68) 118 106 STUB(FF07EFE8) 119 107 STUB(FF082520) … … 121 109 STUB(FF0826C4) 122 110 STUB(FF0826F8) 123 STUB(FF085288)124 STUB(FF0853D4)125 111 STUB(FF08A944) 126 112 STUB(FF08B180) … … 128 114 STUB(FF08F3F4) 129 115 STUB(FF091B38) 116 STUB(FF095260) 117 STUB(FF0A14C8) 130 118 STUB(FF0B048C) 131 119 STUB(FF0B071C) … … 136 124 STUB(FF0B1200) 137 125 STUB(FF0B1688) 126 STUB(FF0B8C48) 127 STUB(FF0B8C78) 138 128 STUB(FF0B9F58) 139 129 STUB(FF0BF168) … … 174 164 STUB(FF104D38) 175 165 STUB(FF112D6C) 176 STUB(FF15943C)177 STUB(FF1594D4)178 STUB(FF169D7C)179 STUB(FF16CCD8)180 166 STUB(FF17E248) 181 167 STUB(FF17E520) … … 205 191 STUB(FF18CE8C) 206 192 STUB(FF18D004) 193 STUB(FF18D0C8) 207 194 STUB(FF18D14C) 208 195 STUB(FF18D17C) 209 196 STUB(FF18D468) 197 STUB(FF18D53C) 198 STUB(FF18D5D4) 199 STUB(FF18D638) 210 200 STUB(FF18D790) 211 201 STUB(FF18D9B4) … … 215 205 STUB(FF18E1FC) 216 206 STUB(FF18E330) 207 STUB(FF18E4F0) 217 208 STUB(FF18E6BC) 218 209 STUB(FF18E788) 219 210 STUB(FF18E7C0) 211 STUB(FF24C69C) 220 212 STUB(FF2ADD10) 221 213 STUB(FF2ADDC0) … … 230 222 STUB(FF2FCDAC) 231 223 STUB(FF2FD440) 224 STUB(FF305608) 225 STUB(FF305688) 226 STUB(FF305750) 232 227 STUB(FF3058A0) 233 228 STUB(FF305C60) … … 236 231 STUB(FF3AB8A8) 237 232 STUB(FF3ABAE0) 238 STUB(FF87C4C0) -
trunk/platform/sx220hs/sub/100a/stubs_entry_2.S
r1230 r1251 1 1 #include "stubs_asm.h" 2 3 //beta34 NHSTUB(WriteSDCard,0xFF16C828) //swaped with ReadSDCard5 NHSTUB(ReadSDCard,0xFF16C62C)6 NHSTUB(strtolx,0xFF0310F0) //swapped with strtol7 NHSTUB(strtol,0xFF0312EC)8 NHSTUB(LEDDrive,0xff0557c0) //corrected9 10 //beta211 NHSTUB(GetImageFolder, 0xFF1598B8) //doesn't work12 2 13 3 # Addresses for firmware task handlers (used in taskHook) … … 17 7 DEF(task_MovieRecord,0xFF1882F0) 18 8 DEF(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 9 DEF(task_PhySw,0xff0244f0) 10 11 NHSTUB(DebugAssert ,0xff00ec88) 12 NHSTUB(GetMemInfo ,0xff00a29c) 13 NHSTUB(GiveSemaphore ,0xff02b23c) 14 NHSTUB(MakeSDCardBootable ,0xff06b04c) 15 NHSTUB(PT_MoveDigitalZoomToWide ,0xff0746e8) 16 NHSTUB(PT_MoveOpticalZoomAt ,0xff0746c0) 17 NHSTUB(ScreenLock ,0xff0ab250) 18 NHSTUB(ScreenUnlock ,0xff0ab2b4) 19 NHSTUB(err_init_task ,0xff005fd4) 20 NHSTUB(WriteSDCard,0xFF16C828) 21 NHSTUB(ReadSDCard,0xFF16C62C) 22 NHSTUB(strtolx,0xFF0310F0) 23 NHSTUB(strtol,0xFF0312EC) 24 NHSTUB(LEDDrive,0xff0557c0) 25 NHSTUB(GetImageFolder, 0xFF1598B8) 26 NHSTUB(write, 0xff00adb8) 27 NHSTUB(GetCurrentAvValue,0xFF17F15C) 28 NHSTUB(MoveIrisWithAv, 0xFF303638) 23 29 NHSTUB(_log10,0xFF3ACCB8) 24 30 NHSTUB(_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 31 NHSTUB(PutInNdFilter,0xFF36BDD4) 32 NHSTUB(PutOutNdFilter,0xFF36BE0C) 33 NHSTUB(GetKbdState, 0xFF056474) 31 34 NHSTUB(ufree,0xFF02B884) 32 33 //EXMEM34 35 NHSTUB(exmem_alloc, 0xFF085434) 35 36 /////////////////////SX220HS START//////////////////////37 36 NHSTUB(CreateTask,0xFF00E9B0) 38 37 NHSTUB(LocalTime,0xFF08446C) … … 70 69 NHSTUB(_pow,0xFF3ACE30) 71 70 NHSTUB(add_ptp_handler,0xff28aa1c) 72 NHSTUB(localtime,0xFF08446C) //2 times71 NHSTUB(localtime,0xFF08446C) 73 72 NHSTUB(memset,0xFF245BEC) 74 73 NHSTUB(memcpy,0xFF030FEC) … … 78 77 NHSTUB(time,0xff084a48) 79 78 NHSTUB(Lseek,0xFF0272A0) 80 NHSTUB(Close,0xFF027084) //sx220 something different in code. Not sure.79 NHSTUB(Close,0xFF027084) 81 80 NHSTUB(EnterToCompensationEVF,0xFF028E74) 82 81 NHSTUB(ExitFromCompensationEVF,0xFF028EB8) … … 96 95 NHSTUB(TurnOnBackLight,0xFF0A21A0) 97 96 NHSTUB(UIFS_WriteFirmInfoToFile,0xFF1A4414) 98 NHSTUB(Write,0xFF0270D8) //ok97 NHSTUB(Write,0xFF0270D8) 99 98 NHSTUB(closedir,0xFF2DD260) 100 99 NHSTUB(closefastdir,0xFF2DD260) … … 103 102 NHSTUB(kbd_pwr_on,0xFF000B24) 104 103 NHSTUB(kbd_read_keys,0xFF024960) 105 106 104 NHSTUB(qsort,0xFF359478) 107 NHSTUB(rename,0xFF026908) //small difference in code vs sx210108 NHSTUB(RenameFile_Fut, 0xff026908) //same as rename like in sx210105 NHSTUB(rename,0xFF026908) 106 NHSTUB(RenameFile_Fut, 0xff026908) 109 107 NHSTUB(strrchr,0xFF0040DC) 110 108 NHSTUB(vsprintf,0xFF010858) 111 NSTUB(readdir,0xFF2DD404) //changed from null to readfastdir 112 109 NSTUB(readdir,0xFF2DD404) 113 110 NHSTUB(openfastdir, 0xFF2DD2B0) 114 111 NHSTUB(opendir, 0xff2dd2b0) 115 116 /////////////////AUTO FOUND CHECKED//////////////////117 112 NHSTUB(AllocateMemory, 0xff3075d0) 118 113 NHSTUB(AllocateUncacheableMemory, 0xff02b844) … … 126 121 NHSTUB(GetSystemTime, 0xff307628) 127 122 NHSTUB(NewTaskShell, 0xff08a38c) 128 NHSTUB(Read, 0xff00ad58) //fixed was adb8129 NHSTUB(SetFileTimeStamp, 0xFF027410) //auto stubs was wrong here. small differences in code from sx210123 NHSTUB(Read, 0xff00ad58) 124 NHSTUB(SetFileTimeStamp, 0xFF027410) 130 125 NHSTUB(SetPropertyCase, 0xff08a828) 131 126 NHSTUB(VbattGet, 0xff023040) 132 127 NHSTUB(_sqrt, 0xff3aed14) 133 128 NHSTUB(close, 0xff00abb4) 134 NHSTUB(lseek, 0xff0272a0) //corrected auto stubs. same sa Lseek135 NHSTUB(malloc, 0xFF0041EC) //corrected auto stubs129 NHSTUB(lseek, 0xff0272a0) 130 NHSTUB(malloc, 0xFF0041EC) 136 131 NHSTUB(memcmp, 0xff0108f4) 137 132 NHSTUB(mktime_ext, 0xff0ac0c8) 138 133 NHSTUB(open, 0xff00ab04) 139 140 NHSTUB(read, 0xff00ad58) //fixed was adb8 134 NHSTUB(read, 0xff00ad58) 141 135 NHSTUB(reboot_fw_update, 0xff2e28a0) 142 136 NHSTUB(stat, 0xff0272e8) 143 NHSTUB(strcat, 0xFF0AB880) //auto stubs error.137 NHSTUB(strcat, 0xFF0AB880) 144 138 NHSTUB(strchr, 0xff0040b8) 145 139 NHSTUB(strcmp, 0xff0108b0) 146 140 NHSTUB(strcpy, 0xff010898) 147 NHSTUB(strlen, 0xFF004104) //corrected auto stubs error141 NHSTUB(strlen, 0xFF004104) 148 142 NHSTUB(kbd_p1_f, 0xFF0249DC) 149 143 NHSTUB(kbd_p1_f_cont, 0xFF0249E8) … … 157 151 NHSTUB(UnlockAF, 0xFF028C10) 158 152 NHSTUB(DoAFLock, 0xFF028BD8) 159 NHSTUB(MakeAFScan, 0xFF18B938) //ok153 NHSTUB(MakeAFScan, 0xFF18B938) 160 154 NHSTUB(ExpCtrlTool_StartContiAE, 0xFF037FE4) 161 NHSTUB(ExpCtrlTool_StopContiAE, 0xFF0380BC) //new added155 NHSTUB(ExpCtrlTool_StopContiAE, 0xFF0380BC) 162 156 NHSTUB(apex2us, 0xFF246BEC) 163 157 NHSTUB(SetScriptMode, 0xFF091610) … … 167 161 NHSTUB(rand,0xFF245D2C) 168 162 NHSTUB(srand,0xFF245D20) 169 ///////////////SX220HS END/////////////////// 163 NHSTUB(UnsetZoomForMovie, 0xFF1BB954) //not needed 170 164 171 165 //Fixed errors in compiler 172 166 STUB(FF187C10) 173 167 STUB(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 168 169 ////All pointed to NULL (nullsub_10 -> 0xFF02D4BC) 186 170 NHSTUB(Unmount_FileSystem, 0xFF02D4BC) 187 171 NHSTUB(Mount_FileSystem, 0xFF02D4BC) 188 172 NHSTUB(SetZoomActuatorSpeedPercent, 0xFF02D4BC) 189 173 NHSTUB(rewinddir, 0xFF02D4BC) 190 ///////////////NEW/////////////////191 174 NSTUB(DisableDispatch,0xFF02D4BC) 192 175 NSTUB(CreatePhysicalVram,0xFF02D4BC) … … 227 210 NSTUB(toupper,0xFF02D4BC) 228 211 NSTUB(utime,0xFF02D4BC) 229 -
trunk/platform/sx220hs/sub/101a/boot.c
r1230 r1251 453 453 "MOVNE R0, R5\n" 454 454 "BLNE sub_FF08F3F4\n" 455 "BL sub_FF08B1AC _my\n" // patched455 "BL sub_FF08B1AC\n" 456 456 "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 464 459 ); 465 460 } 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" //patched478 "BL sub_FF169D7C\n" //nullsub_100479 "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" //aMounter510 "BLNE sub_FF00EC88\n" //Assert511 "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" // patched522 "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" // patched579 "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.c663 "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 code671 672 "MOV R1, R4\n" // pointer to MBR in R1673 "BL mbr_read_dryos\n" // total sectors count in R0 before and after call674 675 // Start of DataGhost's FAT32 autodetection code676 // Policy: If there is a partition which has type W95 FAT32, use the first one of those for image storage677 // 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 thing679 // 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 with681 "MOV LR, R4\n" // Save old offset for MBR signature682 "MOV R1, #1\n" // Note the current partition number683 "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 partition688 "ADD R1, R1, #1\n" // Second partition for the loop689 "dg_sd_fat32_enter:\n"690 "LDRB R2, [R12, #0x1BE]\n" // Partition status691 "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 type696 "CMPNE R2, #0x80\n"697 "BNE dg_sd_fat32\n" // Invalid, go to next partition698 // 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 code703 "MOV R1, R0\n" //SX220 . Was not present in sx210704 "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 sx210724 // "LDRB R4, [R4,#0x1FF]\n" //remains commented as in sx200 and sx210725 "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 LR734 "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.c745 "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_c761 "BL sub_FF00EC88\n" //ASSERT762 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 772 461 773 462 // In SX220 called RotaryEncoder FF05671C … … 841 530 "labelB:\n" 842 531 //------------------ original code ------------------ 843 "LDR R0, =0x25 BC\n" //=0xFF0569E4, changing all asc_... fixed the crash when rotating the wheel532 "LDR R0, =0x25C8\n" //=0xFF0569E4, changing all asc_... fixed the crash when rotating the wheel 844 533 "LDR R0, [R0,R4,LSL#2]\n" 845 534 "BL sub_FF02BCFC\n" … … 875 564 "CMP R0, #0\n" 876 565 "BEQ loc_FF05697C\n" 877 "LDR R7, =0x25 BC\n" //=0xFF0569E4566 "LDR R7, =0x25C8\n" //=0xFF0569E4 878 567 "LDR R0, [R7,R4,LSL#2]\n" 879 568 "BL sub_FF02BCFC\n" … … 934 623 "BL sub_FF0240E0\n" 935 624 "LDR R0, [R7,#0x10]\n" 936 "LDR R7, =0x25 BC\n" //=0xFF0569E4625 "LDR R7, =0x25C8\n" //=0xFF0569E4 937 626 "STR R0, [R9,R4,LSL#2]\n" 938 627 "LDRH R1, [R11]\n" -
trunk/platform/sx220hs/sub/101a/capt_seq.c
r1230 r1251 160 160 161 161 "BL sub_FF077F04\n" 162 163 //Commented area copied from sx210164 // 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 effect168 " LDMFD SP!, {R1-R12,LR}\n"169 " STR R0,[SP,#-4]!\n" // push return value170 " BL shooting_expo_param_override\n" // saves all regs171 172 " BL sub_FF87C4C0\n"173 174 " LDR R0,[SP],#4\n" // pop override hack175 " CMP R0, #1\n"176 " MOVEQ R0, #0\n"177 " STREQ R0, [R4,#0x24]\n" // fixes overrides behavior at short shutter press178 */179 180 181 162 "BL shooting_expo_param_override\n" // + patched 182 163 "BL sub_FF074BC4\n" 183 164 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 196 171 "B loc_FF0778F0\n" 197 172 … … 201 176 // "BL sub_FF18D790\n" // SX220 202 177 "BL sub_FF18D790_my\n" // + patched 203 "BL capt_seq_hook_raw_here\n" //added204 178 "MOV R4, R0\n" 205 179 "MOV R2, R8\n" … … 591 565 "loc_FF18D98C:\n" 592 566 "MOV R0, R4\n" 593 "BL sub_FF3058B8 \n"567 "BL sub_FF3058B8_my\n" //patched 594 568 595 569 "loc_FF18D994:\n" … … 609 583 ); 610 584 } 585 586 void __attribute__((naked,noinline)) sub_FF3058B8_my( ) { 587 asm 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 } 611 729 612 730 ///////sx220 sub_FF0C3E54 -
trunk/platform/sx220hs/sub/101a/makefile.inc
r1230 r1251 12 12 13 13 ifdef OPT_CHDK_IN_EXMEM 14 MEMISOSTART=0x7 9067E0 # MAXRAMADDR+1 - EXMEM_HEAP_SKIP - EXMEM_BUFFER_SIZE - 32(0x20) (exmem allocates 64 bytes extra, 32 before and 32 after block allocated)14 MEMISOSTART=0x78E67E0 # MAXRAMADDR+1 - EXMEM_HEAP_SKIP - EXMEM_BUFFER_SIZE - 32(0x20) (exmem allocates 64 bytes extra, 32 before and 32 after block allocated) 15 15 else 16 16 MEMISOSTART=0x186AE4 # original non-exmem value … … 20 20 21 21 MAXRAMADDR=0x7FFFFFF 22 EXMEM_BUFFER_SIZE=0x 80000 # now 256KB, 80000=512KB, C0000=768KB, 100000=1MB22 EXMEM_BUFFER_SIZE=0xA0000 # now 256KB, 80000=512KB, C0000=768KB, 100000=1MB 23 23 EXMEM_HEAP_SKIP=0x679800 24 24 -
trunk/platform/sx220hs/sub/101a/stubs_auto.S
r1230 r1251 74 74 STUB(FF056ABC) 75 75 STUB(FF05BA94) 76 STUB(FF066010)77 STUB(FF069A3C)78 STUB(FF069B68)79 STUB(FF069CB4)80 STUB(FF069D44)81 STUB(FF06A138)82 STUB(FF06A1C8)83 STUB(FF06A24C)84 STUB(FF06A3E8)85 STUB(FF06A524)86 STUB(FF06A840)87 STUB(FF06A980)88 STUB(FF06A9D0)89 STUB(FF06B010)90 76 STUB(FF074BC4) 91 77 STUB(FF07531C) … … 108 94 STUB(FF0793E0) 109 95 STUB(FF079490) 96 STUB(FF07AF50) 110 97 STUB(FF07B8D8) 111 98 STUB(FF07B95C) … … 116 103 STUB(FF07D6AC) 117 104 STUB(FF07D70C) 105 STUB(FF07DB68) 118 106 STUB(FF07EFE8) 119 107 STUB(FF082520) … … 121 109 STUB(FF0826C4) 122 110 STUB(FF0826F8) 123 STUB(FF085288)124 STUB(FF0853D4)125 111 STUB(FF08A944) 126 112 STUB(FF08B180) … … 128 114 STUB(FF08F3F4) 129 115 STUB(FF091B38) 116 STUB(FF095260) 117 STUB(FF0A14C8) 130 118 STUB(FF0B048C) 131 119 STUB(FF0B071C) … … 136 124 STUB(FF0B1200) 137 125 STUB(FF0B1688) 126 STUB(FF0B8C48) 127 STUB(FF0B8C78) 138 128 STUB(FF0B9F58) 139 129 STUB(FF0BF168) … … 174 164 STUB(FF104D38) 175 165 STUB(FF112D6C) 176 STUB(FF15943C)177 STUB(FF1594D4)178 STUB(FF169D7C)179 STUB(FF16CCD8)180 166 STUB(FF17E248) 181 167 STUB(FF17E520) … … 204 190 STUB(FF18CE8C) 205 191 STUB(FF18D004) 192 STUB(FF18D0C8) 206 193 STUB(FF18D14C) 207 194 STUB(FF18D17C) 208 195 STUB(FF18D468) 196 STUB(FF18D53C) 197 STUB(FF18D5D4) 198 STUB(FF18D638) 209 199 STUB(FF18D790) 210 200 STUB(FF18D9B4) … … 214 204 STUB(FF18E1FC) 215 205 STUB(FF18E330) 206 STUB(FF18E4F0) 216 207 STUB(FF18E6BC) 217 208 STUB(FF18E788) 218 209 STUB(FF18E7C0) 210 STUB(FF24C69C) 219 211 STUB(FF2ADD10) 220 212 STUB(FF2ADDC0) … … 229 221 STUB(FF2FCDC4) 230 222 STUB(FF2FD458) 223 STUB(FF305620) 224 STUB(FF3056A0) 225 STUB(FF305768) 231 226 STUB(FF3058B8) 232 227 STUB(FF305C78) … … 235 230 STUB(FF3AB8C0) 236 231 STUB(FF3ABAF8) 237 STUB(FF87C4C0) -
trunk/platform/sx220hs/sub/101a/stubs_entry_2.S
r1230 r1251 2 2 3 3 ///SX220 HS 1.01A// 4 5 //beta36 NHSTUB(WriteSDCard,0xFF16C828) //swaped with ReadSDCard7 NHSTUB(ReadSDCard,0xFF16C62C)8 NHSTUB(strtolx,0xFF0310F0) // swapped with strtol9 NHSTUB(strtol,0xFF0312EC)10 NHSTUB(LEDDrive,0xff0557c0) //corrected11 12 //beta213 NHSTUB(GetImageFolder, 0xFF1598B8) //doesn't work14 4 15 5 # Addresses for firmware task handlers (used in taskHook) … … 19 9 DEF(task_MovieRecord,0xFF1882F0) 20 10 DEF(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 11 DEF(task_PhySw,0xff0244f0) 12 13 NHSTUB(DebugAssert ,0xff00ec88) 14 NHSTUB(ExpCtrlTool_StopContiAE ,0xff0380bc) 15 NHSTUB(GetMemInfo ,0xff00a29c) 16 NHSTUB(GiveSemaphore ,0xff02b23c) 17 NHSTUB(MakeSDCardBootable ,0xff06b04c) 18 NHSTUB(PT_MoveDigitalZoomToWide ,0xff0746e8) 19 NHSTUB(PT_MoveOpticalZoomAt ,0xff0746c0) 20 NHSTUB(ScreenLock ,0xff0ab250) 21 NHSTUB(ScreenUnlock ,0xff0ab2b4) 22 NHSTUB(err_init_task ,0xff005fd4) 23 NHSTUB(WriteSDCard,0xFF16C828) 24 NHSTUB(ReadSDCard,0xFF16C62C) 25 NHSTUB(strtolx,0xFF0310F0) 26 NHSTUB(strtol,0xFF0312EC) 27 NHSTUB(LEDDrive,0xff0557c0) 28 NHSTUB(GetImageFolder, 0xFF1598B8) 29 NHSTUB(write, 0xff00adb8) 30 NHSTUB(GetCurrentAvValue,0xFF17F15C) 31 NHSTUB(MoveIrisWithAv, 0xFF303650) //1.01A 26 32 NHSTUB(_log10,0xFF3ACCD0) //1.01A 27 33 NHSTUB(_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 34 NHSTUB(PutInNdFilter,0xFF36BDEC) //1.01A 35 NHSTUB(PutOutNdFilter,0xFF36BE24) //1.01A 36 NHSTUB(GetKbdState, 0xFF056474) 35 37 NHSTUB(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////////////////////// 38 NHSTUB(exmem_alloc, 0xFF085434) 43 39 NHSTUB(CreateTask,0xFF00E9B0) 44 40 NHSTUB(LocalTime,0xFF08446C) … … 74 70 NHSTUB(TakeSemaphore,0xff02b16c) 75 71 NHSTUB(UnlockMainPower,0xff0917d8) 76 NHSTUB(_pow,0xFF3ACE48) //1.01A //Not sure72 NHSTUB(_pow,0xFF3ACE48) //1.01A 77 73 NHSTUB(add_ptp_handler,0xff28aa1c) 78 NHSTUB(localtime,0xFF08446C) //2 times74 NHSTUB(localtime,0xFF08446C) 79 75 NHSTUB(memset,0xFF245BEC) 80 76 NHSTUB(memcpy,0xFF030FEC) … … 84 80 NHSTUB(time,0xff084a48) 85 81 NHSTUB(Lseek,0xFF0272A0) 86 NHSTUB(Close,0xFF027084) //sx220 something different in code. Not sure.82 NHSTUB(Close,0xFF027084) 87 83 NHSTUB(EnterToCompensationEVF,0xFF028E74) 88 84 NHSTUB(ExitFromCompensationEVF,0xFF028EB8) … … 96 92 NHSTUB(readfastdir,0xFF2DD404) 97 93 NHSTUB(Rec2PB,0xFF0931FC) 98 NHSTUB(RefreshPhysicalScreen,0xFF0AA058) //most probable, some differences in code94 NHSTUB(RefreshPhysicalScreen,0xFF0AA058) 99 95 NHSTUB(Remove,0xFF0271F8) 100 96 NHSTUB(SleepTask,0xFF02B4E8) … … 102 98 NHSTUB(TurnOnBackLight,0xFF0A21A0) 103 99 NHSTUB(UIFS_WriteFirmInfoToFile,0xFF1A4414) 104 NHSTUB(Write,0xFF0270D8) //Probably. not sure!!!!!!!!!!!100 NHSTUB(Write,0xFF0270D8) 105 101 NHSTUB(closedir,0xFF2DD260) 106 102 NHSTUB(closefastdir,0xFF2DD260) … … 111 107 NHSTUB(openfastdir,0xFF2DD2B0) 112 108 NHSTUB(qsort,0xFF359490) //1.01A 113 NHSTUB(rename,0xFF026908) //small difference in code vs sx210114 NHSTUB(RenameFile_Fut, 0xff026908) //same as rename like in sx210109 NHSTUB(rename,0xFF026908) 110 NHSTUB(RenameFile_Fut, 0xff026908) 115 111 NHSTUB(strrchr,0xFF0040DC) 116 112 NHSTUB(vsprintf,0xFF010858) 117 118 119 /////////////////AUTO FOUND CHECKED//////////////////120 113 NHSTUB(AllocateMemory, 0xff3075E8) //1.01A 121 114 NHSTUB(AllocateUncacheableMemory, 0xff02b844) … … 129 122 NHSTUB(GetSystemTime, 0xff307640) //1.01A 130 123 NHSTUB(NewTaskShell, 0xff08a38c) 131 NHSTUB(Read, 0xff00ad58) //fixed was adb8132 NHSTUB(SetFileTimeStamp, 0xFF027410) //auto stubs was wrong here. small differences in code from sx210124 NHSTUB(Read, 0xff00ad58) 125 NHSTUB(SetFileTimeStamp, 0xFF027410) 133 126 NHSTUB(SetPropertyCase, 0xff08a828) 134 127 NHSTUB(VbattGet, 0xff023040) 135 128 NHSTUB(_sqrt, 0xff3aed2C) //1.01A 136 129 NHSTUB(close, 0xff00abb4) 137 NHSTUB(lseek, 0xff0272a0) //corrected auto stubs. same sa Lseek138 NHSTUB(malloc, 0xFF0041EC) //corrected auto stubs130 NHSTUB(lseek, 0xff0272a0) 131 NHSTUB(malloc, 0xFF0041EC) 139 132 NHSTUB(memcmp, 0xff0108f4) 140 133 NHSTUB(mktime_ext, 0xff0ac0c8) 141 134 NHSTUB(open, 0xff00ab04) 142 135 NHSTUB(opendir, 0xff2dd2b0) 143 NHSTUB(read, 0xff00ad58) //fixed was adb8136 NHSTUB(read, 0xff00ad58) 144 137 NHSTUB(reboot_fw_update, 0xff2e28a0) 145 138 NHSTUB(stat, 0xff0272e8) 146 NHSTUB(strcat, 0xFF0AB880) //auto stubs error.139 NHSTUB(strcat, 0xFF0AB880) 147 140 NHSTUB(strchr, 0xff0040b8) 148 141 NHSTUB(strcmp, 0xff0108b0) 149 142 NHSTUB(strcpy, 0xff010898) 150 NHSTUB(strlen, 0xFF004104) //corrected auto stubs error143 NHSTUB(strlen, 0xFF004104) 151 144 NHSTUB(kbd_p1_f, 0xFF0249DC) 152 145 NHSTUB(kbd_p1_f_cont, 0xFF0249E8) … … 156 149 NHSTUB(GetDrive_FreeClusters,0xFF06AE14) 157 150 NHSTUB(GetDrive_TotalClusters,0xFF06ADEC) 158 NHSTUB(UnlockAndRefresh, 0xFF0AB2B4) // maybe //sx210 was FFA1EDDC159 NHSTUB(LockAndRefresh, 0xFF0AB250) // maybe // sx210 was FFA1ED98151 NHSTUB(UnlockAndRefresh, 0xFF0AB2B4) 152 NHSTUB(LockAndRefresh, 0xFF0AB250) 160 153 NHSTUB(UnlockAF, 0xFF028C10) 161 154 NHSTUB(DoAFLock, 0xFF028BD8) 162 NHSTUB(MakeAFScan, 0xFF18B938) //ok155 NHSTUB(MakeAFScan, 0xFF18B938) 163 156 NHSTUB(ExpCtrlTool_StartContiAE, 0xFF037FE4) 164 157 NHSTUB(apex2us, 0xFF246BEC) … … 169 162 NHSTUB(rand,0xFF245D2C) 170 163 NHSTUB(srand,0xFF245D20) 171 ///////////////SX220HS END///////////////////172 164 173 165 //Fixed errors in compiler 174 //STUB(FF000358)175 //STUB(FF025F8C)176 /*177 STUB(FF000B28)178 STUB(FF00A374)179 STUB(FF005B18)180 STUB(FF005C00)181 */182 166 STUB(FF18669C) 183 167 STUB(FF187C10) 184 168 STUB(FF18D1CC) 185 169 186 ////////////NOT FOUND////////////187 170 ////All pointed to NULL (nullsub_10 -> 0xFF02D4BC) // SX220 188 189 171 NHSTUB(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 ///////////////NEW///////////////// 172 NHSTUB(Unmount_FileSystem, 0xFF02D4BC) 173 NHSTUB(Mount_FileSystem, 0xFF02D4BC) 174 NHSTUB(SetZoomActuatorSpeedPercent, 0xFF02D4BC) 175 NHSTUB(rewinddir, 0xFF02D4BC) 198 176 NSTUB(DisableDispatch,0xFF02D4BC) 199 177 NSTUB(CreatePhysicalVram,0xFF02D4BC)
Note: See TracChangeset
for help on using the changeset viewer.