Changeset 837
- Timestamp:
- 11/13/09 03:04:58 (4 years ago)
- Location:
- trunk
- Files:
-
- 13 edited
-
include/camera.h (modified) (1 diff)
-
platform/g9/sub/100d/boot.c (modified) (3 diffs)
-
platform/g9/sub/100d/capt_seq.c (modified) (1 diff)
-
platform/g9/sub/100d/stubs_auto.S (modified) (4 diffs)
-
platform/g9/sub/100d/stubs_entry_2.S (modified) (1 diff)
-
platform/g9/sub/100g/boot.c (modified) (3 diffs)
-
platform/g9/sub/100g/capt_seq.c (modified) (1 diff)
-
platform/g9/sub/100g/stubs_auto.S (modified) (4 diffs)
-
platform/g9/sub/100g/stubs_entry_2.S (modified) (1 diff)
-
platform/g9/sub/100i/boot.c (modified) (2 diffs)
-
platform/g9/sub/100i/capt_seq.c (modified) (1 diff)
-
platform/g9/sub/100i/stubs_auto.S (modified) (4 diffs)
-
platform/g9/sub/100i/stubs_entry_2.S (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/camera.h
r834 r837 148 148 #define CAM_BRACKETING 1 149 149 #define CAM_MULTIPART 1 150 #define CAM_EXT_TV_RANGE 1 150 151 //========================================================== 151 152 // A-series -
trunk/platform/g9/sub/100d/boot.c
r707 r837 15 15 void CreateTask_PhySw(); 16 16 void CreateTask_spytask(); 17 18 void taskCreateHook(int *p) { 19 p-=16; 20 // TODO can save some memory by hooking other tasks this way 21 // if (p[0]==0x) p[0]=(int)capt_seq_task; 22 // if (p[0]==0x) p[0]=(int)movie_record_task; 23 // if (p[0]==0x) p[0]=(int)init_file_modules_task; 24 if (p[0]==0xFF8B8B90) p[0]=(int)exp_drv_task; 25 } 26 27 void taskCreateHook2(int *p) { 28 p-=16; 29 // if (p[0]==0x) p[0]=(int)init_file_modules_task; 30 if (p[0]==0xFF8B8B90) p[0]=(int)exp_drv_task; 31 } 17 32 18 33 /* … … 91 106 92 107 93 // Code taken from VxWorks CHDK. Changes CPU speed?108 // Code taken from VxWorks CHDK. turns caches on 94 109 asm volatile ( 95 110 "MRC p15, 0, R0,c1,c0\n" … … 117 132 :::"r0"); 118 133 */ 134 135 *(int*)0x1930=(int)taskCreateHook; 136 *(int*)0x1934=(int)taskCreateHook2; 119 137 120 138 // jump to init-sequence that follows the data-copy-routine -
trunk/platform/g9/sub/100d/capt_seq.c
r647 r837 450 450 ); 451 451 } 452 452 453 454 void __attribute__((naked,noinline)) exp_drv_task(){ 455 asm volatile( 456 " STMFD SP!, {R4-R8,LR}\n" 457 " SUB SP, SP, #0x20\n" 458 " LDR R8, =0xBB8\n" 459 " LDR R7, =0x7270\n" 460 " LDR R5, =0x462E8\n" 461 " MOV R0, #0\n" 462 " ADD R6, SP, #0x10\n" 463 " STR R0, [SP,#0xC]\n" 464 "loc_FF8B8BB0:\n" 465 " LDR R0, [R7,#0x20]\n" 466 " MOV R2, #0\n" 467 " ADD R1, SP, #0x1C\n" 468 " BL sub_FF829FB0\n" // KerQueue.c 0 469 " LDR R0, [SP,#0xC]\n" 470 " CMP R0, #1\n" 471 " BNE loc_FF8B8BF8\n" 472 " LDR R0, [SP,#0x1C]\n" 473 " LDR R0, [R0]\n" 474 " CMP R0, #0x13\n" 475 " CMPNE R0, #0x14\n" 476 " CMPNE R0, #0x15\n" 477 " BEQ loc_FF8B8D78\n" 478 " CMP R0, #0x26\n" 479 " BEQ loc_FF8B8CE4\n" 480 " ADD R1, SP, #0xC\n" 481 " MOV R0, #0\n" 482 " BL sub_FF8B8B40\n" // ExpDrv.c 512 483 "loc_FF8B8BF8:\n" 484 " LDR R0, [SP,#0x1C]\n" 485 " LDR R1, [R0]\n" 486 " CMP R1, #0x2B\n" 487 " BNE loc_FF8B8C28\n" 488 " LDR R0, [SP,#0x1C]\n" 489 " BL sub_FF8B9E70\n" // ExpDrv.c 0 490 " LDR R0, [R7,#0x1C]\n" 491 " MOV R1, #1\n" 492 " BL sub_FF829D2C\n" 493 " BL sub_FF81BD80\n" 494 " ADD SP, SP, #0x20\n" 495 " LDMFD SP!, {R4-R8,PC}\n" 496 "loc_FF8B8C28:\n" 497 " CMP R1, #0x2A\n" 498 " BNE loc_FF8B8C44\n" 499 " LDR R2, [R0,#0x88]!\n" 500 " LDR R1, [R0,#4]\n" 501 " MOV R0, R1\n" 502 " BLX R2\n" 503 " B loc_FF8B91DC\n" 504 "loc_FF8B8C44:\n" 505 " CMP R1, #0x24\n" 506 " BNE loc_FF8B8C94\n" 507 " LDR R0, [R7,#0x1C]\n" 508 " MOV R1, #0x80\n" 509 " BL sub_FF829D60\n" 510 " LDR R0, =0xFF8B562C\n" 511 " MOV R1, #0x80\n" 512 " BL sub_FF93626C\n" // IrisController.c 104 done 513 " LDR R0, [R7,#0x1C]\n" 514 " MOV R2, R8\n" 515 " MOV R1, #0x80\n" 516 " BL sub_FF829C64\n" // KerFlag.c 0 517 " TST R0, #1\n" 518 " LDRNE R1, =0xD07\n" 519 " BNE loc_FF8B8D54\n" 520 "loc_FF8B8C80:\n" 521 " LDR R1, [SP,#0x1C]\n" 522 " LDR R0, [R1,#0x8C]\n" 523 " LDR R1, [R1,#0x88]\n" 524 " BLX R1\n" 525 " B loc_FF8B91DC\n" 526 "loc_FF8B8C94:\n" 527 " CMP R1, #0x25\n" 528 " BNE loc_FF8B8CDC\n" 529 " ADD R1, SP, #0xC\n" 530 " BL sub_FF8B8B40\n" // ExpDrv.c 512 531 " LDR R0, [R7,#0x1C]\n" 532 " MOV R1, #0x100\n" 533 " BL sub_FF829D60\n" 534 " MOV R1, #0x100\n" 535 " LDR R0, =0xFF8B563C\n" 536 " BL sub_FF936A2C\n" // IrisController.c 0 done 537 " LDR R0, [R7,#0x1C]\n" 538 " MOV R2, R8\n" 539 " MOV R1, #0x100\n" 540 " BL sub_FF829C64\n" // KerFlag.c 0 541 " TST R0, #1\n" 542 " BEQ loc_FF8B8C80\n" 543 " LDR R1, =0xD11\n" 544 " B loc_FF8B8D54\n" 545 "loc_FF8B8CDC:\n" 546 " CMP R1, #0x26\n" 547 " BNE loc_FF8B8CF4\n" 548 "loc_FF8B8CE4:\n" 549 " LDR R0, [SP,#0x1C]\n" 550 " ADD R1, SP, #0xC\n" 551 " BL sub_FF8B8B40\n" // ExpDrv.c 512 552 " B loc_FF8B8C80\n" 553 "loc_FF8B8CF4:\n" 554 " CMP R1, #0x27\n" 555 " CMPNE R1, #0x28\n" 556 " BNE loc_FF8B8D60\n" 557 " ADD R1, SP, #0xC\n" 558 " BL sub_FF8B8B40\n" // ExpDrv.c 512 559 " LDR R4, [SP,#0x1C]\n" 560 " LDR R0, [R7,#0x1C]\n" 561 " MOV R1, #0x40\n" 562 " BL sub_FF829D60\n" 563 " LDR R0, [R4]\n" 564 " MOV R1, #0x40\n" 565 " CMP R0, #0x27\n" 566 " LDR R0, =0xFF8B56A0\n" 567 " BNE loc_FF8B8D34\n" 568 " BL sub_FF93630C\n" // IrisController.c 125 done 569 " B loc_FF8B8D38\n" 570 "loc_FF8B8D34:\n" 571 " BL sub_FF936398\n" // IrisController.c 143 done 572 "loc_FF8B8D38:\n" 573 " LDR R0, [R7,#0x1C]\n" 574 " MOV R2, R8\n" 575 " MOV R1, #0x40\n" 576 " BL sub_FF829C64\n" // KerFlag.c 0 577 " TST R0, #1\n" 578 " BEQ loc_FF8B8C80\n" 579 " LDR R1, =0xD1F\n" 580 "loc_FF8B8D54:\n" 581 " LDR R0, =0xFF8B5D3C\n" 582 " BL sub_FF81BFC8\n" 583 " B loc_FF8B8C80\n" 584 "loc_FF8B8D60:\n" 585 " CMP R1, #0x29\n" 586 " BNE loc_FF8B8D78\n" 587 " BL sub_FF897664\n" // Shutter.c 2 588 " BL sub_FF8983E4\n" // ImgPixel.c 292 589 " BL sub_FF897EA4\n" // ImgGain.c 0 590 " B loc_FF8B8C80\n" 591 "loc_FF8B8D78:\n" 592 " LDR R0, [SP,#0x1C]\n" 593 " MOV R4, #1\n" 594 " LDR R1, [R0]\n" 595 " CMP R1, #0x11\n" 596 " CMPNE R1, #0x12\n" 597 " BNE loc_FF8B8DE8\n" 598 " LDR R1, [R0,#0x7C]\n" 599 " ADD R1, R1, R1,LSL#1\n" 600 " ADD R1, R0, R1,LSL#2\n" 601 " SUB R1, R1, #8\n" 602 " LDMIA R1, {R2-R4}\n" 603 " STMIA R6, {R2-R4}\n" 604 " BL sub_FF8B76BC\n" // ExpDrv.c 2 605 " LDR R0, [SP,#0x1C]\n" 606 " LDR R1, [R0,#0x7C]\n" 607 " LDR R3, [R0,#0x88]\n" 608 " LDR R2, [R0,#0x8C]\n" 609 " ADD R0, R0, #4\n" 610 " BLX R3\n" 611 " LDR R0, [SP,#0x1C]\n" 612 " BL sub_FF8BA244\n" // ExpDrv.c 4 613 " LDR R0, [SP,#0x1C]\n" 614 " LDR R1, [R0,#0x7C]\n" 615 " LDR R3, [R0,#0x90]\n" 616 " LDR R2, [R0,#0x94]\n" 617 " ADD R0, R0, #4\n" 618 " BLX R3\n" 619 " B loc_FF8B911C\n" 620 "loc_FF8B8DE8:\n" 621 " CMP R1, #0x13\n" 622 " CMPNE R1, #0x14\n" 623 " CMPNE R1, #0x15\n" 624 " BNE loc_FF8B8E9C\n" 625 " ADD R3, SP, #0xC\n" 626 " MOV R2, SP\n" 627 " ADD R1, SP, #0x10\n" 628 " BL sub_FF8B7904\n" // ExpDrv.c 4 629 " CMP R0, #1\n" 630 " MOV R4, R0\n" 631 " CMPNE R4, #5\n" 632 " BNE loc_FF8B8E38\n" 633 " LDR R0, [SP,#0x1C]\n" 634 " MOV R2, R4\n" 635 " LDR R1, [R0,#0x7C]!\n" 636 " LDR R12, [R0,#0xC]!\n" 637 " LDR R3, [R0,#4]\n" 638 " MOV R0, SP\n" 639 " BLX R12\n" 640 " B loc_FF8B8E70\n" 641 "loc_FF8B8E38:\n" 642 " LDR R0, [SP,#0x1C]\n" 643 " CMP R4, #2\n" 644 " LDR R3, [R0,#0x8C]\n" 645 " CMPNE R4, #6\n" 646 " BNE loc_FF8B8E84\n" 647 " LDR R12, [R0,#0x88]\n" 648 " MOV R0, SP\n" 649 " MOV R2, R4\n" 650 " MOV R1, #1\n" 651 " BLX R12\n" 652 " LDR R0, [SP,#0x1C]\n" 653 " MOV R2, SP\n" 654 " ADD R1, SP, #0x10\n" 655 " BL sub_FF8B888C\n" // ExpDrv.c 4 656 "loc_FF8B8E70:\n" 657 " LDR R0, [SP,#0x1C]\n" 658 " LDR R2, [SP,#0xC]\n" 659 " MOV R1, R4\n" 660 " BL sub_FF8B8AE0\n" // ExpDrv.c 2 661 " B loc_FF8B911C\n" 662 "loc_FF8B8E84:\n" 663 " LDR R1, [R0,#0x7C]\n" 664 " LDR R12, [R0,#0x88]\n" 665 " ADD R0, R0, #4\n" 666 " MOV R2, R4\n" 667 " BLX R12\n" 668 " B loc_FF8B911C\n" 669 "loc_FF8B8E9C:\n" 670 " CMP R1, #0x20\n" 671 " CMPNE R1, #0x21\n" 672 " BNE loc_FF8B8EE8\n" 673 " LDR R1, [R0,#0x7C]\n" 674 " ADD R1, R1, R1,LSL#1\n" 675 " ADD R1, R0, R1,LSL#2\n" 676 " SUB R1, R1, #8\n" 677 " LDMIA R1, {R2-R4}\n" 678 " STMIA R6, {R2-R4}\n" 679 " BL sub_FF8B6C40\n" // ExpDrv.c 4 680 " LDR R0, [SP,#0x1C]\n" 681 " LDR R1, [R0,#0x7C]\n" 682 " LDR R3, [R0,#0x88]\n" 683 " LDR R2, [R0,#0x8C]\n" 684 " ADD R0, R0, #4\n" 685 " BLX R3\n" 686 " LDR R0, [SP,#0x1C]\n" 687 " BL sub_FF8B6F3C\n" // ExpDrv.c 4 688 " B loc_FF8B911C\n" 689 "loc_FF8B8EE8:\n" 690 " ADD R1, R0, #4\n" 691 " LDMIA R1, {R2,R3,R12}\n" 692 " STMIA R6, {R2,R3,R12}\n" 693 " LDR R1, [R0]\n" 694 " CMP R1, #0x23\n" 695 " ADDLS PC, PC, R1,LSL#2\n" 696 " B loc_FF8B90FC\n" 697 " B loc_FF8B8F94\n" 698 " B loc_FF8B8F94\n" 699 " B loc_FF8B8FE4\n" 700 " B loc_FF8B8FEC\n" 701 " B loc_FF8B8FEC\n" 702 " B loc_FF8B8FEC\n" 703 " B loc_FF8B8F94\n" 704 " B loc_FF8B8FE4\n" 705 " B loc_FF8B8FEC\n" 706 " B loc_FF8B8FEC\n" 707 " B loc_FF8B9004\n" 708 " B loc_FF8B9004\n" 709 " B loc_FF8B90F0\n" 710 " B loc_FF8B90F8\n" 711 " B loc_FF8B90F8\n" 712 " B loc_FF8B90F8\n" 713 " B loc_FF8B90F8\n" 714 " B loc_FF8B90FC\n" 715 " B loc_FF8B90FC\n" 716 " B loc_FF8B90FC\n" 717 " B loc_FF8B90FC\n" 718 " B loc_FF8B90FC\n" 719 " B loc_FF8B8FF4\n" 720 " B loc_FF8B8FFC\n" 721 " B loc_FF8B8FFC\n" 722 " B loc_FF8B9010\n" 723 " B loc_FF8B9018\n" 724 " B loc_FF8B9048\n" 725 " B loc_FF8B9078\n" 726 " B loc_FF8B90A8\n" 727 " B loc_FF8B90D8\n" 728 " B loc_FF8B90D8\n" 729 " B loc_FF8B90FC\n" 730 " B loc_FF8B90FC\n" 731 " B loc_FF8B90E0\n" 732 " B loc_FF8B90E8\n" 733 "loc_FF8B8F94:\n" 734 // jumptable FF8B8EFC entries 0,1,6 735 " BL sub_FF8B5B24\n" // ExpDrv.c 2 736 " B loc_FF8B90FC\n" 737 "loc_FF8B8FE4:\n" 738 // jumptable FF8B8EFC entries 2,7 739 " BL sub_FF8B5DAC\n" // ExpDrv.c 4 740 " B loc_FF8B90FC\n" 741 "loc_FF8B8FEC:\n" 742 // jumptable FF8B8EFC entries 3-5,8,9 743 " BL sub_FF8B5FB0\n" // ExpDrv.c 940 744 " B loc_FF8B90FC\n" 745 "loc_FF8B8FF4:\n" 746 // jumptable FF8B8EFC entry 22 747 " BL sub_FF8B6218\n" // ExpDrv.c 1072 748 " B loc_FF8B90FC\n" 749 "loc_FF8B8FFC:\n" 750 // jumptable FF8B8EFC entries 23,24 751 " BL sub_FF8B640C\n" // ExpDrv.c 4 752 " B loc_FF8B90FC\n" 753 "loc_FF8B9004:\n" 754 // jumptable FF8B8EFC entries 10,11 755 " BL sub_FF8B6670_my\n" // ExpDrv.c 2 -> 756 " MOV R4, #0\n" 757 " B loc_FF8B90FC\n" 758 "loc_FF8B9010:\n" 759 // jumptable FF8B8EFC entry 25 760 " BL sub_FF8B67AC\n" // ExpDrv.c 4 761 " B loc_FF8B90FC\n" 762 "loc_FF8B9018:\n" 763 // jumptable FF8B8EFC entry 26 764 " LDRH R1, [R0,#4]\n" 765 " STRH R1, [SP,#0x10]\n" 766 " LDRH R1, [R5,#2]\n" 767 " STRH R1, [SP,#0x12]\n" 768 " LDRH R1, [R5,#4]\n" 769 " STRH R1, [SP,#0x14]\n" 770 " LDRH R1, [R5,#6]\n" 771 " STRH R1, [SP,#0x16]\n" 772 " LDRH R1, [R0,#0xC]\n" 773 " STRH R1, [SP,#0x18]\n" 774 " BL sub_FF8B9EE4\n" // ExpDrv.c 2 775 " B loc_FF8B90FC\n" 776 "loc_FF8B9048:\n" 777 // jumptable FF8B8EFC entry 27 778 " LDRH R1, [R0,#4]\n" 779 " STRH R1, [SP,#0x10]\n" 780 " LDRH R1, [R5,#2]\n" 781 " STRH R1, [SP,#0x12]\n" 782 " LDRH R1, [R5,#4]\n" 783 " STRH R1, [SP,#0x14]\n" 784 " LDRH R1, [R5,#6]\n" 785 " STRH R1, [SP,#0x16]\n" 786 " LDRH R1, [R5,#8]\n" 787 " STRH R1, [SP,#0x18]\n" 788 " BL sub_FF8BA060\n" // ExpDrv.c 2 789 " B loc_FF8B90FC\n" 790 "loc_FF8B9078:\n" 791 // jumptable FF8B8EFC entry 28 792 " LDRH R1, [R5]\n" 793 " STRH R1, [SP,#0x10]\n" 794 " LDRH R1, [R0,#6]\n" 795 " STRH R1, [SP,#0x12]\n" 796 " LDRH R1, [R5,#4]\n" 797 " STRH R1, [SP,#0x14]\n" 798 " LDRH R1, [R5,#6]\n" 799 " STRH R1, [SP,#0x16]\n" 800 " LDRH R1, [R5,#8]\n" 801 " STRH R1, [SP,#0x18]\n" 802 " BL sub_FF8BA10C\n" // ExpDrv.c 1552 803 " B loc_FF8B90FC\n" 804 "loc_FF8B90A8:\n" 805 // jumptable FF8B8EFC entry 29 806 " LDRH R1, [R5]\n" 807 " STRH R1, [SP,#0x10]\n" 808 " LDRH R1, [R5,#2]\n" 809 " STRH R1, [SP,#0x12]\n" 810 " LDRH R1, [R5,#4]\n" 811 " STRH R1, [SP,#0x14]\n" 812 " LDRH R1, [R5,#6]\n" 813 " STRH R1, [SP,#0x16]\n" 814 " LDRH R1, [R0,#0xC]\n" 815 " STRH R1, [SP,#0x18]\n" 816 " BL sub_FF8BA1AC\n" // ExpDrv.c 32 817 " B loc_FF8B90FC\n" 818 "loc_FF8B90D8:\n" 819 // jumptable FF8B8EFC entries 30,31 820 " BL sub_FF8B6A04\n" // ExpDrv.c 4 821 " B loc_FF8B90FC\n" 822 "loc_FF8B90E0:\n" 823 // jumptable FF8B8EFC entry 34 824 " BL sub_FF8B7040\n" // ExpDrv.c 4 825 " B loc_FF8B90FC\n" 826 "loc_FF8B90E8:\n" 827 // jumptable FF8B8EFC entry 35 828 " BL sub_FF8B7274\n" // ExpDrv.c 4 829 " B loc_FF8B90FC\n" 830 "loc_FF8B90F0:\n" 831 // jumptable FF8B8EFC entry 12 832 " BL sub_FF8B73EC\n" // ExpDrv.c 2 833 " B loc_FF8B90FC\n" 834 "loc_FF8B90F8:\n" 835 // jumptable FF8B8EFC entries 13-16 836 " BL sub_FF8B7584\n" // ExpDrv.c 128 837 "loc_FF8B90FC:\n" 838 // jumptable FF8B8EFC default entry 839 // jumptable FF8B8EFC entries 17-21,32,33 840 " LDR R0, [SP,#0x1C]\n" 841 " LDR R1, [R0,#0x7C]\n" 842 " LDR R3, [R0,#0x88]\n" 843 " LDR R2, [R0,#0x8C]\n" 844 " ADD R0, R0, #4\n" 845 " BLX R3\n" 846 " CMP R4, #1\n" 847 " BNE loc_FF8B9164\n" 848 "loc_FF8B911C:\n" 849 " LDR R0, [SP,#0x1C]\n" 850 " MOV R2, #0xC\n" 851 " LDR R1, [R0,#0x7C]\n" 852 " ADD R1, R1, R1,LSL#1\n" 853 " ADD R0, R0, R1,LSL#2\n" 854 " SUB R4, R0, #8\n" 855 " LDR R0, =0x462E8\n" 856 " ADD R1, SP, #0x10\n" 857 " BL sub_FFABD12C\n" // done 858 " LDR R0, =0x462F4\n" 859 " MOV R2, #0xC\n" 860 " ADD R1, SP, #0x10\n" 861 " BL sub_FFABD12C\n" // done 862 " LDR R0, =0x46300\n" 863 " MOV R2, #0xC\n" 864 " MOV R1, R4\n" 865 " BL sub_FFABD12C\n" // done 866 " B loc_FF8B91DC\n" 867 "loc_FF8B9164:\n" 868 " LDR R0, [SP,#0x1C]\n" 869 " LDR R0, [R0]\n" 870 " CMP R0, #0xB\n" 871 " BNE loc_FF8B91AC\n" 872 " MOV R3, #0\n" 873 " STR R3, [SP]\n" 874 " MOV R3, #1\n" 875 " MOV R2, #1\n" 876 " MOV R1, #1\n" 877 " MOV R0, #0\n" 878 " BL sub_FF8B592C\n" 879 " MOV R3, #0\n" 880 " STR R3, [SP]\n" 881 " MOV R3, #1\n" 882 " MOV R2, #1\n" 883 " MOV R1, #1\n" 884 " MOV R0, #0\n" 885 " B loc_FF8B91D8\n" 886 "loc_FF8B91AC:\n" 887 " MOV R3, #1\n" 888 " MOV R2, #1\n" 889 " MOV R1, #1\n" 890 " MOV R0, #1\n" 891 " STR R3, [SP]\n" 892 " BL sub_FF8B592C\n" 893 " MOV R3, #1\n" 894 " MOV R2, #1\n" 895 " MOV R1, #1\n" 896 " MOV R0, #1\n" 897 " STR R3, [SP]\n" 898 "loc_FF8B91D8:\n" 899 " BL sub_FF8B5A6C\n" 900 "loc_FF8B91DC:\n" 901 " LDR R0, [SP,#0x1C]\n" 902 " BL sub_FF8B9E70\n" // ExpDrv.c 0 903 " B loc_FF8B8BB0\n" 904 ); 905 } 906 907 void __attribute__((naked,noinline)) sub_FF8B6670_my(){ // 908 asm volatile( 909 " STMFD SP!, {R4-R8,LR}\n" 910 " LDR R7, =0x7270\n" 911 " MOV R4, R0\n" 912 " LDR R0, [R7,#0x1C]\n" 913 " MOV R1, #0x3E\n" 914 " BL sub_FF829D60\n" 915 " LDRSH R0, [R4,#4]\n" 916 " MOV R2, #0\n" 917 " MOV R1, #0\n" 918 " BL sub_FF8B56C0\n" 919 " MOV R6, R0\n" 920 " LDRSH R0, [R4,#6]\n" 921 " BL sub_FF8B57CC\n" 922 " LDRSH R0, [R4,#8]\n" 923 " BL sub_FF8B5824\n" 924 " LDRSH R0, [R4,#0xA]\n" 925 " BL sub_FF8B587C\n" 926 " LDRSH R0, [R4,#0xC]\n" 927 " BL sub_FF8B58D4\n" 928 " MOV R5, R0\n" 929 " LDR R0, [R4]\n" 930 " LDR R8, =0x46300\n" 931 " CMP R0, #0xB\n" 932 " MOVEQ R6, #0\n" 933 " MOVEQ R5, #0\n" 934 " BEQ loc_FF8B6700\n" 935 " CMP R6, #1\n" 936 " BNE loc_FF8B6700\n" 937 " LDRSH R0, [R4,#4]\n" 938 " LDR R1, =0xFF8B561C\n" 939 " MOV R2, #2\n" 940 " BL sub_FF9364E0\n" // IrisController.c 168 done 941 " STRH R0, [R4,#4]\n" 942 " MOV R0, #0\n" 943 " STR R0, [R7,#0x28]\n" 944 " B loc_FF8B6708\n" 945 "loc_FF8B6700:\n" 946 " LDRH R0, [R8]\n" 947 " STRH R0, [R4,#4]\n" 948 "loc_FF8B6708:\n" 949 " CMP R5, #1\n" 950 " LDRNEH R0, [R8,#8]\n" 951 " BNE loc_FF8B6724\n" 952 " LDRSH R0, [R4,#0xC]\n" 953 " LDR R1, =0xFF8B56B0\n" 954 " MOV R2, #0x20\n" 955 " BL sub_FF8B9EA0\n" 956 "loc_FF8B6724:\n" 957 " STRH R0, [R4,#0xC]\n" 958 " LDRSH R0, [R4,#6]\n" 959 " BL sub_FF897408_my\n" // Shutter.c 364 -> 960 " LDRSH R0, [R4,#8]\n" 961 " MOV R1, #1\n" 962 " BL sub_FF897B9C\n" // ImgGain.c 0 963 " MOV R1, #0\n" 964 " ADD R0, R4, #8\n" 965 " BL sub_FF897C24\n" // ImgGain.c 0 966 " LDRSH R0, [R4,#0xE]\n" 967 " BL sub_FF8ACA40\n" // BrtCrct.c 552 968 " LDR R4, =0xBB8\n" 969 " CMP R6, #1\n" 970 " BNE loc_FF8B677C\n" 971 " LDR R0, [R7,#0x1C]\n" 972 " MOV R2, R4\n" 973 " MOV R1, #2\n" 974 " BL sub_FF829C64\n" // KerFlag.c 0 975 " TST R0, #1\n" 976 " LDRNE R1, =0x527\n" 977 " LDRNE R0, =0xFF8B5D3C\n" // "expdrv.c" 978 " BLNE sub_FF81BFC8\n" 979 "loc_FF8B677C:\n" 980 " CMP R5, #1\n" 981 " LDMNEFD SP!, {R4-R8,PC}\n" 982 " LDR R0, [R7,#0x1C]\n" 983 " MOV R2, R4\n" 984 " MOV R1, #0x20\n" 985 " BL sub_FF829C64\n" // KerFlag.c 0 986 " TST R0, #1\n" 987 " LDRNE R1, =0x52C\n" 988 " LDRNE R0, =0xFF8B5D3C\n" 989 " LDMNEFD SP!, {R4-R8,LR}\n" 990 " BNE sub_FF81BFC8\n" 991 " LDMFD SP!, {R4-R8,PC}\n" 992 993 ); 994 } 995 996 void __attribute__((naked,noinline)) sub_FF897408_my(){ // Shutter.c 364 997 asm volatile( 998 " STMFD SP!, {R4-R6,LR}\n" 999 " LDR R5, =0x6C38\n" 1000 " MOV R4, R0\n" 1001 " LDR R0, [R5,#4]\n" 1002 " CMP R0, #1\n" 1003 " MOVNE R1, #0x16C\n" 1004 " LDRNE R0, =0xFF8971A0\n" // "shutter.c" 1005 " BLNE sub_FF81BFC8\n" 1006 " CMN R4, #0xC00\n" 1007 " LDREQSH R4, [R5,#2]\n" 1008 " CMN R4, #0xC00\n" 1009 " LDREQ R1, =0x172\n" 1010 " LDREQ R0, =0xFF8971A0\n" // "shutter.c" 1011 " STRH R4, [R5,#2]\n" 1012 " BLEQ sub_FF81BFC8\n" 1013 " MOV R0, R4\n" 1014 //" BL sub_FF9BF02C\n" // - 1015 " BL apex2us\n" // + 1016 " MOV R4, R0\n" 1017 //" BL nullsub_143\n" 1018 " MOV R0, R4\n" 1019 " BL sub_FF8CF8C0\n" 1020 " TST R0, #1\n" 1021 " LDRNE R1, =0x177\n" 1022 " LDMNEFD SP!, {R4-R6,LR}\n" 1023 " LDRNE R0, =0xFF8971A0\n" // "shutter.c" 1024 " BNE sub_FF81BFC8\n" 1025 " LDMFD SP!, {R4-R6,PC}\n" 1026 ); 1027 } -
trunk/platform/g9/sub/100d/stubs_auto.S
r586 r837 52 52 STUB(FF8298FC) 53 53 STUB(FF8299CC) 54 STUB(FF829C64) 54 55 STUB(FF829D2C) 55 56 STUB(FF829D60) … … 304 305 STUB(FF894488) 305 306 STUB(FF895AD0) 307 STUB(FF897408) 308 STUB(FF897664) 309 STUB(FF897B9C) 310 STUB(FF897C24) 311 STUB(FF897EA4) 312 STUB(FF8983E4) 313 STUB(FF8ACA40) 314 STUB(FF8B56C0) 315 STUB(FF8B57CC) 316 STUB(FF8B5824) 317 STUB(FF8B587C) 318 STUB(FF8B58D4) 319 STUB(FF8B592C) 320 STUB(FF8B5A6C) 321 STUB(FF8B5B24) 322 STUB(FF8B5DAC) 323 STUB(FF8B5FB0) 324 STUB(FF8B6218) 325 STUB(FF8B640C) 326 STUB(FF8B6670) 327 STUB(FF8B67AC) 328 STUB(FF8B6A04) 329 STUB(FF8B6C40) 330 STUB(FF8B6F3C) 331 STUB(FF8B7040) 332 STUB(FF8B7274) 333 STUB(FF8B73EC) 334 STUB(FF8B7584) 335 STUB(FF8B76BC) 336 STUB(FF8B7904) 337 STUB(FF8B888C) 338 STUB(FF8B8AE0) 339 STUB(FF8B8B40) 340 STUB(FF8B9E70) 341 STUB(FF8B9EA0) 342 STUB(FF8B9EE4) 343 STUB(FF8BA060) 344 STUB(FF8BA10C) 345 STUB(FF8BA1AC) 346 STUB(FF8BA244) 306 347 STUB(FF8BD498) 348 STUB(FF8CF8C0) 307 349 STUB(FF8FBD68) 308 350 STUB(FF8FBE2C) … … 313 355 STUB(FF9188E4) 314 356 STUB(FF929040) 357 STUB(FF93626C) 358 STUB(FF93630C) 359 STUB(FF936398) 360 STUB(FF9364E0) 361 STUB(FF936A2C) 315 362 STUB(FF93EFD0) 316 363 STUB(FF93F040) … … 421 468 STUB(FF9BDB74) 422 469 STUB(FF9BDBE8) 470 STUB(FF9BF02C) 471 STUB(FFABD12C) 423 472 STUB(FFABD388) 424 473 STUB(FFABEC38) -
trunk/platform/g9/sub/100d/stubs_entry_2.S
r826 r837 208 208 NHSTUB(UnlockAF, 0xff827638) 209 209 NHSTUB(SetScriptMode, 0xFF872F78) // "SetScriptMode" 210 NHSTUB(apex2us, 0xFF9BF02C) // from sub_FF897408 via exp_drv_task -
trunk/platform/g9/sub/100g/boot.c
r707 r837 15 15 void CreateTask_PhySw(); 16 16 void CreateTask_spytask(); 17 18 void taskCreateHook(int *p) { 19 p-=16; 20 // TODO can save some memory by hooking other tasks this way 21 // if (p[0]==0x) p[0]=(int)capt_seq_task; 22 // if (p[0]==0x) p[0]=(int)movie_record_task; 23 // if (p[0]==0x) p[0]=(int)init_file_modules_task; 24 if (p[0]==0xFF8B8B90) p[0]=(int)exp_drv_task; 25 } 26 27 void taskCreateHook2(int *p) { 28 p-=16; 29 // if (p[0]==0x) p[0]=(int)init_file_modules_task; 30 if (p[0]==0xFF8B8B90) p[0]=(int)exp_drv_task; 31 } 17 32 18 33 /* … … 90 105 91 106 92 // Code taken from VxWorks CHDK. Changes CPU speed?107 // Code taken from VxWorks CHDK. turns caches on 93 108 asm volatile ( 94 109 "MRC p15, 0, R0,c1,c0\n" … … 115 130 :::"r0"); 116 131 */ 132 133 *(int*)0x1930=(int)taskCreateHook; 134 *(int*)0x1934=(int)taskCreateHook2; 117 135 118 136 // jump to init-sequence that follows the data-copy-routine -
trunk/platform/g9/sub/100g/capt_seq.c
r647 r837 450 450 ); 451 451 } 452 452 453 void __attribute__((naked,noinline)) exp_drv_task(){ 454 asm volatile( 455 " STMFD SP!, {R4-R8,LR}\n" 456 " SUB SP, SP, #0x20\n" 457 " LDR R8, =0xBB8\n" 458 " LDR R7, =0x7270\n" 459 " LDR R5, =0x462E8\n" 460 " MOV R0, #0\n" 461 " ADD R6, SP, #0x10\n" 462 " STR R0, [SP,#0xC]\n" 463 "loc_FF8B8BB0:\n" 464 " LDR R0, [R7,#0x20]\n" 465 " MOV R2, #0\n" 466 " ADD R1, SP, #0x1C\n" 467 " BL sub_FF829FB0\n" // KerQueue.c 0 468 " LDR R0, [SP,#0xC]\n" 469 " CMP R0, #1\n" 470 " BNE loc_FF8B8BF8\n" 471 " LDR R0, [SP,#0x1C]\n" 472 " LDR R0, [R0]\n" 473 " CMP R0, #0x13\n" 474 " CMPNE R0, #0x14\n" 475 " CMPNE R0, #0x15\n" 476 " BEQ loc_FF8B8D78\n" 477 " CMP R0, #0x26\n" 478 " BEQ loc_FF8B8CE4\n" 479 " ADD R1, SP, #0xC\n" 480 " MOV R0, #0\n" 481 " BL sub_FF8B8B40\n" // ExpDrv.c 512 482 "loc_FF8B8BF8:\n" 483 " LDR R0, [SP,#0x1C]\n" 484 " LDR R1, [R0]\n" 485 " CMP R1, #0x2B\n" 486 " BNE loc_FF8B8C28\n" 487 " LDR R0, [SP,#0x1C]\n" 488 " BL sub_FF8B9E70\n" // ExpDrv.c 0 489 " LDR R0, [R7,#0x1C]\n" 490 " MOV R1, #1\n" 491 " BL sub_FF829D2C\n" 492 " BL sub_FF81BD80\n" 493 " ADD SP, SP, #0x20\n" 494 " LDMFD SP!, {R4-R8,PC}\n" 495 "loc_FF8B8C28:\n" 496 " CMP R1, #0x2A\n" 497 " BNE loc_FF8B8C44\n" 498 " LDR R2, [R0,#0x88]!\n" 499 " LDR R1, [R0,#4]\n" 500 " MOV R0, R1\n" 501 " BLX R2\n" 502 " B loc_FF8B91DC\n" 503 "loc_FF8B8C44:\n" 504 " CMP R1, #0x24\n" 505 " BNE loc_FF8B8C94\n" 506 " LDR R0, [R7,#0x1C]\n" 507 " MOV R1, #0x80\n" 508 " BL sub_FF829D60\n" 509 " LDR R0, =0xFF8B562C\n" 510 " MOV R1, #0x80\n" 511 " BL sub_FF9362DC\n" // IrisController.c 104 512 " LDR R0, [R7,#0x1C]\n" 513 " MOV R2, R8\n" 514 " MOV R1, #0x80\n" 515 " BL sub_FF829C64\n" // KerFlag.c 0 516 " TST R0, #1\n" 517 " LDRNE R1, =0xD07\n" 518 " BNE loc_FF8B8D54\n" 519 "loc_FF8B8C80:\n" 520 " LDR R1, [SP,#0x1C]\n" 521 " LDR R0, [R1,#0x8C]\n" 522 " LDR R1, [R1,#0x88]\n" 523 " BLX R1\n" 524 " B loc_FF8B91DC\n" 525 "loc_FF8B8C94:\n" 526 " CMP R1, #0x25\n" 527 " BNE loc_FF8B8CDC\n" 528 " ADD R1, SP, #0xC\n" 529 " BL sub_FF8B8B40\n" // ExpDrv.c 512 530 " LDR R0, [R7,#0x1C]\n" 531 " MOV R1, #0x100\n" 532 " BL sub_FF829D60\n" 533 " MOV R1, #0x100\n" 534 " LDR R0, =0xFF8B563C\n" 535 " BL sub_FF936A9C\n" // IrisController.c 0 536 " LDR R0, [R7,#0x1C]\n" 537 " MOV R2, R8\n" 538 " MOV R1, #0x100\n" 539 " BL sub_FF829C64\n" // KerFlag.c 0 540 " TST R0, #1\n" 541 " BEQ loc_FF8B8C80\n" 542 " LDR R1, =0xD11\n" 543 " B loc_FF8B8D54\n" 544 "loc_FF8B8CDC:\n" 545 " CMP R1, #0x26\n" 546 " BNE loc_FF8B8CF4\n" 547 "loc_FF8B8CE4:\n" 548 " LDR R0, [SP,#0x1C]\n" 549 " ADD R1, SP, #0xC\n" 550 " BL sub_FF8B8B40\n" // ExpDrv.c 512 551 " B loc_FF8B8C80\n" 552 "loc_FF8B8CF4:\n" 553 " CMP R1, #0x27\n" 554 " CMPNE R1, #0x28\n" 555 " BNE loc_FF8B8D60\n" 556 " ADD R1, SP, #0xC\n" 557 " BL sub_FF8B8B40\n" // ExpDrv.c 512 558 " LDR R4, [SP,#0x1C]\n" 559 " LDR R0, [R7,#0x1C]\n" 560 " MOV R1, #0x40\n" 561 " BL sub_FF829D60\n" 562 " LDR R0, [R4]\n" 563 " MOV R1, #0x40\n" 564 " CMP R0, #0x27\n" 565 " LDR R0, =0xFF8B56A0\n" 566 " BNE loc_FF8B8D34\n" 567 " BL sub_FF93637C\n" // IrisController.c 125 568 " B loc_FF8B8D38\n" 569 "loc_FF8B8D34:\n" 570 " BL sub_FF936408\n" // IrisController.c 143 571 "loc_FF8B8D38:\n" 572 " LDR R0, [R7,#0x1C]\n" 573 " MOV R2, R8\n" 574 " MOV R1, #0x40\n" 575 " BL sub_FF829C64\n" // KerFlag.c 0 576 " TST R0, #1\n" 577 " BEQ loc_FF8B8C80\n" 578 " LDR R1, =0xD1F\n" 579 "loc_FF8B8D54:\n" 580 " LDR R0, =0xFF8B5D3C\n" 581 " BL sub_FF81BFC8\n" 582 " B loc_FF8B8C80\n" 583 "loc_FF8B8D60:\n" 584 " CMP R1, #0x29\n" 585 " BNE loc_FF8B8D78\n" 586 " BL sub_FF897664\n" // Shutter.c 2 587 " BL sub_FF8983E4\n" // ImgPixel.c 292 588 " BL sub_FF897EA4\n" // ImgGain.c 0 589 " B loc_FF8B8C80\n" 590 "loc_FF8B8D78:\n" 591 " LDR R0, [SP,#0x1C]\n" 592 " MOV R4, #1\n" 593 " LDR R1, [R0]\n" 594 " CMP R1, #0x11\n" 595 " CMPNE R1, #0x12\n" 596 " BNE loc_FF8B8DE8\n" 597 " LDR R1, [R0,#0x7C]\n" 598 " ADD R1, R1, R1,LSL#1\n" 599 " ADD R1, R0, R1,LSL#2\n" 600 " SUB R1, R1, #8\n" 601 " LDMIA R1, {R2-R4}\n" 602 " STMIA R6, {R2-R4}\n" 603 " BL sub_FF8B76BC\n" // ExpDrv.c 2 604 " LDR R0, [SP,#0x1C]\n" 605 " LDR R1, [R0,#0x7C]\n" 606 " LDR R3, [R0,#0x88]\n" 607 " LDR R2, [R0,#0x8C]\n" 608 " ADD R0, R0, #4\n" 609 " BLX R3\n" 610 " LDR R0, [SP,#0x1C]\n" 611 " BL sub_FF8BA244\n" // ExpDrv.c 4 612 " LDR R0, [SP,#0x1C]\n" 613 " LDR R1, [R0,#0x7C]\n" 614 " LDR R3, [R0,#0x90]\n" 615 " LDR R2, [R0,#0x94]\n" 616 " ADD R0, R0, #4\n" 617 " BLX R3\n" 618 " B loc_FF8B911C\n" 619 "loc_FF8B8DE8:\n" 620 " CMP R1, #0x13\n" 621 " CMPNE R1, #0x14\n" 622 " CMPNE R1, #0x15\n" 623 " BNE loc_FF8B8E9C\n" 624 " ADD R3, SP, #0xC\n" 625 " MOV R2, SP\n" 626 " ADD R1, SP, #0x10\n" 627 " BL sub_FF8B7904\n" // ExpDrv.c 4 628 " CMP R0, #1\n" 629 " MOV R4, R0\n" 630 " CMPNE R4, #5\n" 631 " BNE loc_FF8B8E38\n" 632 " LDR R0, [SP,#0x1C]\n" 633 " MOV R2, R4\n" 634 " LDR R1, [R0,#0x7C]!\n" 635 " LDR R12, [R0,#0xC]!\n" 636 " LDR R3, [R0,#4]\n" 637 " MOV R0, SP\n" 638 " BLX R12\n" 639 " B loc_FF8B8E70\n" 640 "loc_FF8B8E38:\n" 641 " LDR R0, [SP,#0x1C]\n" 642 " CMP R4, #2\n" 643 " LDR R3, [R0,#0x8C]\n" 644 " CMPNE R4, #6\n" 645 " BNE loc_FF8B8E84\n" 646 " LDR R12, [R0,#0x88]\n" 647 " MOV R0, SP\n" 648 " MOV R2, R4\n" 649 " MOV R1, #1\n" 650 " BLX R12\n" 651 " LDR R0, [SP,#0x1C]\n" 652 " MOV R2, SP\n" 653 " ADD R1, SP, #0x10\n" 654 " BL sub_FF8B888C\n" // ExpDrv.c 4 655 "loc_FF8B8E70:\n" 656 " LDR R0, [SP,#0x1C]\n" 657 " LDR R2, [SP,#0xC]\n" 658 " MOV R1, R4\n" 659 " BL sub_FF8B8AE0\n" // ExpDrv.c 2 660 " B loc_FF8B911C\n" 661 "loc_FF8B8E84:\n" 662 " LDR R1, [R0,#0x7C]\n" 663 " LDR R12, [R0,#0x88]\n" 664 " ADD R0, R0, #4\n" 665 " MOV R2, R4\n" 666 " BLX R12\n" 667 " B loc_FF8B911C\n" 668 "loc_FF8B8E9C:\n" 669 " CMP R1, #0x20\n" 670 " CMPNE R1, #0x21\n" 671 " BNE loc_FF8B8EE8\n" 672 " LDR R1, [R0,#0x7C]\n" 673 " ADD R1, R1, R1,LSL#1\n" 674 " ADD R1, R0, R1,LSL#2\n" 675 " SUB R1, R1, #8\n" 676 " LDMIA R1, {R2-R4}\n" 677 " STMIA R6, {R2-R4}\n" 678 " BL sub_FF8B6C40\n" // ExpDrv.c 4 679 " LDR R0, [SP,#0x1C]\n" 680 " LDR R1, [R0,#0x7C]\n" 681 " LDR R3, [R0,#0x88]\n" 682 " LDR R2, [R0,#0x8C]\n" 683 " ADD R0, R0, #4\n" 684 " BLX R3\n" 685 " LDR R0, [SP,#0x1C]\n" 686 " BL sub_FF8B6F3C\n" // ExpDrv.c 4 687 " B loc_FF8B911C\n" 688 "loc_FF8B8EE8:\n" 689 " ADD R1, R0, #4\n" 690 " LDMIA R1, {R2,R3,R12}\n" 691 " STMIA R6, {R2,R3,R12}\n" 692 " LDR R1, [R0]\n" 693 " CMP R1, #0x23\n" 694 " ADDLS PC, PC, R1,LSL#2\n" 695 " B loc_FF8B90FC\n" 696 " B loc_FF8B8F94\n" 697 " B loc_FF8B8F94\n" 698 " B loc_FF8B8FE4\n" 699 " B loc_FF8B8FEC\n" 700 " B loc_FF8B8FEC\n" 701 " B loc_FF8B8FEC\n" 702 " B loc_FF8B8F94\n" 703 " B loc_FF8B8FE4\n" 704 " B loc_FF8B8FEC\n" 705 " B loc_FF8B8FEC\n" 706 " B loc_FF8B9004\n" 707 " B loc_FF8B9004\n" 708 " B loc_FF8B90F0\n" 709 " B loc_FF8B90F8\n" 710 " B loc_FF8B90F8\n" 711 " B loc_FF8B90F8\n" 712 " B loc_FF8B90F8\n" 713 " B loc_FF8B90FC\n" 714 " B loc_FF8B90FC\n" 715 " B loc_FF8B90FC\n" 716 " B loc_FF8B90FC\n" 717 " B loc_FF8B90FC\n" 718 " B loc_FF8B8FF4\n" 719 " B loc_FF8B8FFC\n" 720 " B loc_FF8B8FFC\n" 721 " B loc_FF8B9010\n" 722 " B loc_FF8B9018\n" 723 " B loc_FF8B9048\n" 724 " B loc_FF8B9078\n" 725 " B loc_FF8B90A8\n" 726 " B loc_FF8B90D8\n" 727 " B loc_FF8B90D8\n" 728 " B loc_FF8B90FC\n" 729 " B loc_FF8B90FC\n" 730 " B loc_FF8B90E0\n" 731 " B loc_FF8B90E8\n" 732 "loc_FF8B8F94:\n" 733 // jumptable FF8B8EFC entries 0,1,6 734 " BL sub_FF8B5B24\n" // ExpDrv.c 2 735 " B loc_FF8B90FC\n" 736 "loc_FF8B8FE4:\n" 737 // jumptable FF8B8EFC entries 2,7 738 " BL sub_FF8B5DAC\n" // ExpDrv.c 4 739 " B loc_FF8B90FC\n" 740 "loc_FF8B8FEC:\n" 741 // jumptable FF8B8EFC entries 3-5,8,9 742 " BL sub_FF8B5FB0\n" // ExpDrv.c 940 743 " B loc_FF8B90FC\n" 744 "loc_FF8B8FF4:\n" 745 // jumptable FF8B8EFC entry 22 746 " BL sub_FF8B6218\n" // ExpDrv.c 1072 747 " B loc_FF8B90FC\n" 748 "loc_FF8B8FFC:\n" 749 // jumptable FF8B8EFC entries 23,24 750 " BL sub_FF8B640C\n" // ExpDrv.c 4 751 " B loc_FF8B90FC\n" 752 "loc_FF8B9004:\n" 753 // jumptable FF8B8EFC entries 10,11 754 " BL sub_FF8B6670_my\n" // ExpDrv.c 2 -> 755 " MOV R4, #0\n" 756 " B loc_FF8B90FC\n" 757 "loc_FF8B9010:\n" 758 // jumptable FF8B8EFC entry 25 759 " BL sub_FF8B67AC\n" // ExpDrv.c 4 760 " B loc_FF8B90FC\n" 761 "loc_FF8B9018:\n" 762 // jumptable FF8B8EFC entry 26 763 " LDRH R1, [R0,#4]\n" 764 " STRH R1, [SP,#0x10]\n" 765 " LDRH R1, [R5,#2]\n" 766 " STRH R1, [SP,#0x12]\n" 767 " LDRH R1, [R5,#4]\n" 768 " STRH R1, [SP,#0x14]\n" 769 " LDRH R1, [R5,#6]\n" 770 " STRH R1, [SP,#0x16]\n" 771 " LDRH R1, [R0,#0xC]\n" 772 " STRH R1, [SP,#0x18]\n" 773 " BL sub_FF8B9EE4\n" // ExpDrv.c 2 774 " B loc_FF8B90FC\n" 775 "loc_FF8B9048:\n" 776 // jumptable FF8B8EFC entry 27 777 " LDRH R1, [R0,#4]\n" 778 " STRH R1, [SP,#0x10]\n" 779 " LDRH R1, [R5,#2]\n" 780 " STRH R1, [SP,#0x12]\n" 781 " LDRH R1, [R5,#4]\n" 782 " STRH R1, [SP,#0x14]\n" 783 " LDRH R1, [R5,#6]\n" 784 " STRH R1, [SP,#0x16]\n" 785 " LDRH R1, [R5,#8]\n" 786 " STRH R1, [SP,#0x18]\n" 787 " BL sub_FF8BA060\n" // ExpDrv.c 2 788 " B loc_FF8B90FC\n" 789 "loc_FF8B9078:\n" 790 // jumptable FF8B8EFC entry 28 791 " LDRH R1, [R5]\n" 792 " STRH R1, [SP,#0x10]\n" 793 " LDRH R1, [R0,#6]\n" 794 " STRH R1, [SP,#0x12]\n" 795 " LDRH R1, [R5,#4]\n" 796 " STRH R1, [SP,#0x14]\n" 797 " LDRH R1, [R5,#6]\n" 798 " STRH R1, [SP,#0x16]\n" 799 " LDRH R1, [R5,#8]\n" 800 " STRH R1, [SP,#0x18]\n" 801 " BL sub_FF8BA10C\n" // ExpDrv.c 1552 802 " B loc_FF8B90FC\n" 803 "loc_FF8B90A8:\n" 804 // jumptable FF8B8EFC entry 29 805 " LDRH R1, [R5]\n" 806 " STRH R1, [SP,#0x10]\n" 807 " LDRH R1, [R5,#2]\n" 808 " STRH R1, [SP,#0x12]\n" 809 " LDRH R1, [R5,#4]\n" 810 " STRH R1, [SP,#0x14]\n" 811 " LDRH R1, [R5,#6]\n" 812 " STRH R1, [SP,#0x16]\n" 813 " LDRH R1, [R0,#0xC]\n" 814 " STRH R1, [SP,#0x18]\n" 815 " BL sub_FF8BA1AC\n" // ExpDrv.c 32 816 " B loc_FF8B90FC\n" 817 "loc_FF8B90D8:\n" 818 // jumptable FF8B8EFC entries 30,31 819 " BL sub_FF8B6A04\n" // ExpDrv.c 4 820 " B loc_FF8B90FC\n" 821 "loc_FF8B90E0:\n" 822 // jumptable FF8B8EFC entry 34 823 " BL sub_FF8B7040\n" // ExpDrv.c 4 824 " B loc_FF8B90FC\n" 825 "loc_FF8B90E8:\n" 826 // jumptable FF8B8EFC entry 35 827 " BL sub_FF8B7274\n" // ExpDrv.c 4 828 " B loc_FF8B90FC\n" 829 "loc_FF8B90F0:\n" 830 // jumptable FF8B8EFC entry 12 831 " BL sub_FF8B73EC\n" // ExpDrv.c 2 832 " B loc_FF8B90FC\n" 833 "loc_FF8B90F8:\n" 834 // jumptable FF8B8EFC entries 13-16 835 " BL sub_FF8B7584\n" // ExpDrv.c 128 836 "loc_FF8B90FC:\n" 837 // jumptable FF8B8EFC default entry 838 // jumptable FF8B8EFC entries 17-21,32,33 839 " LDR R0, [SP,#0x1C]\n" 840 " LDR R1, [R0,#0x7C]\n" 841 " LDR R3, [R0,#0x88]\n" 842 " LDR R2, [R0,#0x8C]\n" 843 " ADD R0, R0, #4\n" 844 " BLX R3\n" 845 " CMP R4, #1\n" 846 " BNE loc_FF8B9164\n" 847 "loc_FF8B911C:\n" 848 " LDR R0, [SP,#0x1C]\n" 849 " MOV R2, #0xC\n" 850 " LDR R1, [R0,#0x7C]\n" 851 " ADD R1, R1, R1,LSL#1\n" 852 " ADD R0, R0, R1,LSL#2\n" 853 " SUB R4, R0, #8\n" 854 " LDR R0, =0x462E8\n" 855 " ADD R1, SP, #0x10\n" 856 " BL sub_FFABD19C\n" 857 " LDR R0, =0x462F4\n" 858 " MOV R2, #0xC\n" 859 " ADD R1, SP, #0x10\n" 860 " BL sub_FFABD19C\n" 861 " LDR R0, =0x46300\n" 862 " MOV R2, #0xC\n" 863 " MOV R1, R4\n" 864 " BL sub_FFABD19C\n" 865 " B loc_FF8B91DC\n" 866 "loc_FF8B9164:\n" 867 " LDR R0, [SP,#0x1C]\n" 868 " LDR R0, [R0]\n" 869 " CMP R0, #0xB\n" 870 " BNE loc_FF8B91AC\n" 871 " MOV R3, #0\n" 872 " STR R3, [SP]\n" 873 " MOV R3, #1\n" 874 " MOV R2, #1\n" 875 " MOV R1, #1\n" 876 " MOV R0, #0\n" 877 " BL sub_FF8B592C\n" 878 " MOV R3, #0\n" 879 " STR R3, [SP]\n" 880 " MOV R3, #1\n" 881 " MOV R2, #1\n" 882 " MOV R1, #1\n" 883 " MOV R0, #0\n" 884 " B loc_FF8B91D8\n" 885 "loc_FF8B91AC:\n" 886 " MOV R3, #1\n" 887 " MOV R2, #1\n" 888 " MOV R1, #1\n" 889 " MOV R0, #1\n" 890 " STR R3, [SP]\n" 891 " BL sub_FF8B592C\n" 892 " MOV R3, #1\n" 893 " MOV R2, #1\n" 894 " MOV R1, #1\n" 895 " MOV R0, #1\n" 896 " STR R3, [SP]\n" 897 "loc_FF8B91D8:\n" 898 " BL sub_FF8B5A6C\n" 899 "loc_FF8B91DC:\n" 900 " LDR R0, [SP,#0x1C]\n" 901 " BL sub_FF8B9E70\n" // ExpDrv.c 0 902 " B loc_FF8B8BB0\n" 903 ); 904 } 905 906 void __attribute__((naked,noinline)) sub_FF8B6670_my(){ // 907 asm volatile( 908 " STMFD SP!, {R4-R8,LR}\n" 909 " LDR R7, =0x7270\n" 910 " MOV R4, R0\n" 911 " LDR R0, [R7,#0x1C]\n" 912 " MOV R1, #0x3E\n" 913 " BL sub_FF829D60\n" 914 " LDRSH R0, [R4,#4]\n" 915 " MOV R2, #0\n" 916 " MOV R1, #0\n" 917 " BL sub_FF8B56C0\n" 918 " MOV R6, R0\n" 919 " LDRSH R0, [R4,#6]\n" 920 " BL sub_FF8B57CC\n" 921 " LDRSH R0, [R4,#8]\n" 922 " BL sub_FF8B5824\n" 923 " LDRSH R0, [R4,#0xA]\n" 924 " BL sub_FF8B587C\n" 925 " LDRSH R0, [R4,#0xC]\n" 926 " BL sub_FF8B58D4\n" 927 " MOV R5, R0\n" 928 " LDR R0, [R4]\n" 929 " LDR R8, =0x46300\n" 930 " CMP R0, #0xB\n" 931 " MOVEQ R6, #0\n" 932 " MOVEQ R5, #0\n" 933 " BEQ loc_FF8B6700\n" 934 " CMP R6, #1\n" 935 " BNE loc_FF8B6700\n" 936 " LDRSH R0, [R4,#4]\n" 937 " LDR R1, =0xFF8B561C\n" 938 " MOV R2, #2\n" 939 " BL sub_FF936550\n" // IrisController.c 168 940 " STRH R0, [R4,#4]\n" 941 " MOV R0, #0\n" 942 " STR R0, [R7,#0x28]\n" 943 " B loc_FF8B6708\n" 944 "loc_FF8B6700:\n" 945 " LDRH R0, [R8]\n" 946 " STRH R0, [R4,#4]\n" 947 "loc_FF8B6708:\n" 948 " CMP R5, #1\n" 949 " LDRNEH R0, [R8,#8]\n" 950 " BNE loc_FF8B6724\n" 951 " LDRSH R0, [R4,#0xC]\n" 952 " LDR R1, =0xFF8B56B0\n" 953 " MOV R2, #0x20\n" 954 " BL sub_FF8B9EA0\n" 955 "loc_FF8B6724:\n" 956 " STRH R0, [R4,#0xC]\n" 957 " LDRSH R0, [R4,#6]\n" 958 " BL sub_FF897408_my\n" // Shutter.c 364 -> 959 " LDRSH R0, [R4,#8]\n" 960 " MOV R1, #1\n" 961 " BL sub_FF897B9C\n" // ImgGain.c 0 962 " MOV R1, #0\n" 963 " ADD R0, R4, #8\n" 964 " BL sub_FF897C24\n" // ImgGain.c 0 965 " LDRSH R0, [R4,#0xE]\n" 966 " BL sub_FF8ACA40\n" // BrtCrct.c 552 967 " LDR R4, =0xBB8\n" 968 " CMP R6, #1\n" 969 " BNE loc_FF8B677C\n" 970 " LDR R0, [R7,#0x1C]\n" 971 " MOV R2, R4\n" 972 " MOV R1, #2\n" 973 " BL sub_FF829C64\n" // KerFlag.c 0 974 " TST R0, #1\n" 975 " LDRNE R1, =0x527\n" 976 " LDRNE R0, =0xFF8B5D3C\n" // "expdrv.c" 977 " BLNE sub_FF81BFC8\n" 978 "loc_FF8B677C:\n" 979 " CMP R5, #1\n" 980 " LDMNEFD SP!, {R4-R8,PC}\n" 981 " LDR R0, [R7,#0x1C]\n" 982 " MOV R2, R4\n" 983 " MOV R1, #0x20\n" 984 " BL sub_FF829C64\n" // KerFlag.c 0 985 " TST R0, #1\n" 986 " LDRNE R1, =0x52C\n" 987 " LDRNE R0, =0xFF8B5D3C\n" 988 " LDMNEFD SP!, {R4-R8,LR}\n" 989 " BNE sub_FF81BFC8\n" 990 " LDMFD SP!, {R4-R8,PC}\n" 991 992 ); 993 } 994 995 void __attribute__((naked,noinline)) sub_FF897408_my(){ // Shutter.c 364 996 asm volatile( 997 " STMFD SP!, {R4-R6,LR}\n" 998 " LDR R5, =0x6C38\n" 999 " MOV R4, R0\n" 1000 " LDR R0, [R5,#4]\n" 1001 " CMP R0, #1\n" 1002 " MOVNE R1, #0x16C\n" 1003 " LDRNE R0, =0xFF8971A0\n" // "shutter.c" 1004 " BLNE sub_FF81BFC8\n" 1005 " CMN R4, #0xC00\n" 1006 " LDREQSH R4, [R5,#2]\n" 1007 " CMN R4, #0xC00\n" 1008 " LDREQ R1, =0x172\n" 1009 " LDREQ R0, =0xFF8971A0\n" // "shutter.c" 1010 " STRH R4, [R5,#2]\n" 1011 " BLEQ sub_FF81BFC8\n" 1012 " MOV R0, R4\n" 1013 //" BL sub_FF9BF09C\n" // - 1014 " BL apex2us\n" // + 1015 " MOV R4, R0\n" 1016 //" BL nullsub_143\n" 1017 " MOV R0, R4\n" 1018 " BL sub_FF8CF8C0\n" 1019 " TST R0, #1\n" 1020 " LDRNE R1, =0x177\n" 1021 " LDMNEFD SP!, {R4-R6,LR}\n" 1022 " LDRNE R0, =0xFF8971A0\n" // "shutter.c" 1023 " BNE sub_FF81BFC8\n" 1024 " LDMFD SP!, {R4-R6,PC}\n" 1025 ); 1026 } -
trunk/platform/g9/sub/100g/stubs_auto.S
r576 r837 52 52 STUB(FF8298FC) 53 53 STUB(FF8299CC) 54 STUB(FF829C64) 54 55 STUB(FF829D2C) 55 56 STUB(FF829D60) … … 304 305 STUB(FF894488) 305 306 STUB(FF895AD0) 307 STUB(FF897408) 308 STUB(FF897664) 309 STUB(FF897B9C) 310 STUB(FF897C24) 311 STUB(FF897EA4) 312 STUB(FF8983E4) 313 STUB(FF8ACA40) 314 STUB(FF8B56C0) 315 STUB(FF8B57CC) 316 STUB(FF8B5824) 317 STUB(FF8B587C) 318 STUB(FF8B58D4) 319 STUB(FF8B592C) 320 STUB(FF8B5A6C) 321 STUB(FF8B5B24) 322 STUB(FF8B5DAC) 323 STUB(FF8B5FB0) 324 STUB(FF8B6218) 325 STUB(FF8B640C) 326 STUB(FF8B6670) 327 STUB(FF8B67AC) 328 STUB(FF8B6A04) 329 STUB(FF8B6C40) 330 STUB(FF8B6F3C) 331 STUB(FF8B7040) 332 STUB(FF8B7274) 333 STUB(FF8B73EC) 334 STUB(FF8B7584) 335 STUB(FF8B76BC) 336 STUB(FF8B7904) 337 STUB(FF8B888C) 338 STUB(FF8B8AE0) 339 STUB(FF8B8B40) 340 STUB(FF8B9E70) 341 STUB(FF8B9EA0) 342 STUB(FF8B9EE4) 343 STUB(FF8BA060) 344 STUB(FF8BA10C) 345 STUB(FF8BA1AC) 346 STUB(FF8BA244) 306 347 STUB(FF8BD498) 348 STUB(FF8CF8C0) 307 349 STUB(FF8FBD68) 308 350 STUB(FF8FBE2C) … … 313 355 STUB(FF918954) 314 356 STUB(FF9290B0) 357 STUB(FF9362DC) 358 STUB(FF93637C) 359 STUB(FF936408) 360 STUB(FF936550) 361 STUB(FF936A9C) 315 362 STUB(FF93F040) 316 363 STUB(FF9400CC) … … 419 466 STUB(FF9BDBE4) 420 467 STUB(FF9BDC58) 468 STUB(FF9BF09C) 469 STUB(FFABD19C) 421 470 STUB(FFABD3F8) 422 471 STUB(FFABECA8) -
trunk/platform/g9/sub/100g/stubs_entry_2.S
r826 r837 202 202 NHSTUB(UnlockAF, 0xff827638) 203 203 NHSTUB(SetScriptMode, 0xFF872F78) // "SetScriptMode" 204 204 NHSTUB(apex2us, 0xFF9BF09C) // from exp_drv_task -
trunk/platform/g9/sub/100i/boot.c
r821 r837 20 20 if (p[0]==0xFF85D4C0) p[0]=(int)movie_record_task; 21 21 if (p[0]==0xFF877284) p[0]=(int)init_file_modules_task; 22 if (p[0]==0xFF8B8B90) p[0]=(int)exp_drv_task; 22 23 } 23 24 … … 25 26 p-=16; 26 27 if (p[0]==0xFF877284) p[0]=(int)init_file_modules_task; 28 if (p[0]==0xFF8B8B90) p[0]=(int)exp_drv_task; 27 29 } 28 30 -
trunk/platform/g9/sub/100i/capt_seq.c
r821 r837 432 432 ); 433 433 } 434 435 void __attribute__((naked,noinline)) exp_drv_task(){ 436 asm volatile( 437 " STMFD SP!, {R4-R8,LR}\n" 438 " SUB SP, SP, #0x20\n" 439 " LDR R8, =0xBB8\n" 440 " LDR R7, =0x7270\n" 441 " LDR R5, =0x462E8\n" 442 " MOV R0, #0\n" 443 " ADD R6, SP, #0x10\n" 444 " STR R0, [SP,#0xC]\n" 445 "loc_FF8B8BB0:\n" 446 " LDR R0, [R7,#0x20]\n" 447 " MOV R2, #0\n" 448 " ADD R1, SP, #0x1C\n" 449 " BL sub_FF829FB0\n" // KerQueue.c 0 450 " LDR R0, [SP,#0xC]\n" 451 " CMP R0, #1\n" 452 " BNE loc_FF8B8BF8\n" 453 " LDR R0, [SP,#0x1C]\n" 454 " LDR R0, [R0]\n" 455 " CMP R0, #0x13\n" 456 " CMPNE R0, #0x14\n" 457 " CMPNE R0, #0x15\n" 458 " BEQ loc_FF8B8D78\n" 459 " CMP R0, #0x26\n" 460 " BEQ loc_FF8B8CE4\n" 461 " ADD R1, SP, #0xC\n" 462 " MOV R0, #0\n" 463 " BL sub_FF8B8B40\n" // ExpDrv.c 512 464 "loc_FF8B8BF8:\n" 465 " LDR R0, [SP,#0x1C]\n" 466 " LDR R1, [R0]\n" 467 " CMP R1, #0x2B\n" 468 " BNE loc_FF8B8C28\n" 469 " LDR R0, [SP,#0x1C]\n" 470 " BL sub_FF8B9E70\n" // ExpDrv.c 0 471 " LDR R0, [R7,#0x1C]\n" 472 " MOV R1, #1\n" 473 " BL sub_FF829D2C\n" 474 " BL sub_FF81BD80\n" 475 " ADD SP, SP, #0x20\n" 476 " LDMFD SP!, {R4-R8,PC}\n" 477 "loc_FF8B8C28:\n" 478 " CMP R1, #0x2A\n" 479 " BNE loc_FF8B8C44\n" 480 " LDR R2, [R0,#0x88]!\n" 481 " LDR R1, [R0,#4]\n" 482 " MOV R0, R1\n" 483 " BLX R2\n" 484 " B loc_FF8B91DC\n" 485 "loc_FF8B8C44:\n" 486 " CMP R1, #0x24\n" 487 " BNE loc_FF8B8C94\n" 488 " LDR R0, [R7,#0x1C]\n" 489 " MOV R1, #0x80\n" 490 " BL sub_FF829D60\n" 491 " LDR R0, =0xFF8B562C\n" 492 " MOV R1, #0x80\n" 493 " BL sub_FF9362E8\n" // IrisController.c 104 done 494 " LDR R0, [R7,#0x1C]\n" 495 " MOV R2, R8\n" 496 " MOV R1, #0x80\n" 497 " BL sub_FF829C64\n" // KerFlag.c 0 498 " TST R0, #1\n" 499 " LDRNE R1, =0xD07\n" 500 " BNE loc_FF8B8D54\n" 501 "loc_FF8B8C80:\n" 502 " LDR R1, [SP,#0x1C]\n" 503 " LDR R0, [R1,#0x8C]\n" 504 " LDR R1, [R1,#0x88]\n" 505 " BLX R1\n" 506 " B loc_FF8B91DC\n" 507 "loc_FF8B8C94:\n" 508 " CMP R1, #0x25\n" 509 " BNE loc_FF8B8CDC\n" 510 " ADD R1, SP, #0xC\n" 511 " BL sub_FF8B8B40\n" // ExpDrv.c 512 512 " LDR R0, [R7,#0x1C]\n" 513 " MOV R1, #0x100\n" 514 " BL sub_FF829D60\n" 515 " MOV R1, #0x100\n" 516 " LDR R0, =0xFF8B563C\n" 517 " BL sub_FF936AA8\n" // IrisController.c 0 done 518 " LDR R0, [R7,#0x1C]\n" 519 " MOV R2, R8\n" 520 " MOV R1, #0x100\n" 521 " BL sub_FF829C64\n" // KerFlag.c 0 522 " TST R0, #1\n" 523 " BEQ loc_FF8B8C80\n" 524 " LDR R1, =0xD11\n" 525 " B loc_FF8B8D54\n" 526 "loc_FF8B8CDC:\n" 527 " CMP R1, #0x26\n" 528 " BNE loc_FF8B8CF4\n" 529 "loc_FF8B8CE4:\n" 530 " LDR R0, [SP,#0x1C]\n" 531 " ADD R1, SP, #0xC\n" 532 " BL sub_FF8B8B40\n" // ExpDrv.c 512 533 " B loc_FF8B8C80\n" 534 "loc_FF8B8CF4:\n" 535 " CMP R1, #0x27\n" 536 " CMPNE R1, #0x28\n" 537 " BNE loc_FF8B8D60\n" 538 " ADD R1, SP, #0xC\n" 539 " BL sub_FF8B8B40\n" // ExpDrv.c 512 540 " LDR R4, [SP,#0x1C]\n" 541 " LDR R0, [R7,#0x1C]\n" 542 " MOV R1, #0x40\n" 543 " BL sub_FF829D60\n" 544 " LDR R0, [R4]\n" 545 " MOV R1, #0x40\n" 546 " CMP R0, #0x27\n" 547 " LDR R0, =0xFF8B56A0\n" 548 " BNE loc_FF8B8D34\n" 549 " BL sub_FF936388\n" // IrisController.c 125 done 550 " B loc_FF8B8D38\n" 551 "loc_FF8B8D34:\n" 552 " BL sub_FF936414\n" // IrisController.c 143 done 553 "loc_FF8B8D38:\n" 554 " LDR R0, [R7,#0x1C]\n" 555 " MOV R2, R8\n" 556 " MOV R1, #0x40\n" 557 " BL sub_FF829C64\n" // KerFlag.c 0 558 " TST R0, #1\n" 559 " BEQ loc_FF8B8C80\n" 560 " LDR R1, =0xD1F\n" 561 "loc_FF8B8D54:\n" 562 " LDR R0, =0xFF8B5D3C\n" 563 " BL sub_FF81BFC8\n" 564 " B loc_FF8B8C80\n" 565 "loc_FF8B8D60:\n" 566 " CMP R1, #0x29\n" 567 " BNE loc_FF8B8D78\n" 568 " BL sub_FF897664\n" // Shutter.c 2 569 " BL sub_FF8983E4\n" // ImgPixel.c 292 570 " BL sub_FF897EA4\n" // ImgGain.c 0 571 " B loc_FF8B8C80\n" 572 "loc_FF8B8D78:\n" 573 " LDR R0, [SP,#0x1C]\n" 574 " MOV R4, #1\n" 575 " LDR R1, [R0]\n" 576 " CMP R1, #0x11\n" 577 " CMPNE R1, #0x12\n" 578 " BNE loc_FF8B8DE8\n" 579 " LDR R1, [R0,#0x7C]\n" 580 " ADD R1, R1, R1,LSL#1\n" 581 " ADD R1, R0, R1,LSL#2\n" 582 " SUB R1, R1, #8\n" 583 " LDMIA R1, {R2-R4}\n" 584 " STMIA R6, {R2-R4}\n" 585 " BL sub_FF8B76BC\n" // ExpDrv.c 2 586 " LDR R0, [SP,#0x1C]\n" 587 " LDR R1, [R0,#0x7C]\n" 588 " LDR R3, [R0,#0x88]\n" 589 " LDR R2, [R0,#0x8C]\n" 590 " ADD R0, R0, #4\n" 591 " BLX R3\n" 592 " LDR R0, [SP,#0x1C]\n" 593 " BL sub_FF8BA244\n" // ExpDrv.c 4 594 " LDR R0, [SP,#0x1C]\n" 595 " LDR R1, [R0,#0x7C]\n" 596 " LDR R3, [R0,#0x90]\n" 597 " LDR R2, [R0,#0x94]\n" 598 " ADD R0, R0, #4\n" 599 " BLX R3\n" 600 " B loc_FF8B911C\n" 601 "loc_FF8B8DE8:\n" 602 " CMP R1, #0x13\n" 603 " CMPNE R1, #0x14\n" 604 " CMPNE R1, #0x15\n" 605 " BNE loc_FF8B8E9C\n" 606 " ADD R3, SP, #0xC\n" 607 " MOV R2, SP\n" 608 " ADD R1, SP, #0x10\n" 609 " BL sub_FF8B7904\n" // ExpDrv.c 4 610 " CMP R0, #1\n" 611 " MOV R4, R0\n" 612 " CMPNE R4, #5\n" 613 " BNE loc_FF8B8E38\n" 614 " LDR R0, [SP,#0x1C]\n" 615 " MOV R2, R4\n" 616 " LDR R1, [R0,#0x7C]!\n" 617 " LDR R12, [R0,#0xC]!\n" 618 " LDR R3, [R0,#4]\n" 619 " MOV R0, SP\n" 620 " BLX R12\n" 621 " B loc_FF8B8E70\n" 622 "loc_FF8B8E38:\n" 623 " LDR R0, [SP,#0x1C]\n" 624 " CMP R4, #2\n" 625 " LDR R3, [R0,#0x8C]\n" 626 " CMPNE R4, #6\n" 627 " BNE loc_FF8B8E84\n" 628 " LDR R12, [R0,#0x88]\n" 629 " MOV R0, SP\n" 630 " MOV R2, R4\n" 631 " MOV R1, #1\n" 632 " BLX R12\n" 633 " LDR R0, [SP,#0x1C]\n" 634 " MOV R2, SP\n" 635 " ADD R1, SP, #0x10\n" 636 " BL sub_FF8B888C\n" // ExpDrv.c 4 637 "loc_FF8B8E70:\n" 638 " LDR R0, [SP,#0x1C]\n" 639 " LDR R2, [SP,#0xC]\n" 640 " MOV R1, R4\n" 641 " BL sub_FF8B8AE0\n" // ExpDrv.c 2 642 " B loc_FF8B911C\n" 643 "loc_FF8B8E84:\n" 644 " LDR R1, [R0,#0x7C]\n" 645 " LDR R12, [R0,#0x88]\n" 646 " ADD R0, R0, #4\n" 647 " MOV R2, R4\n" 648 " BLX R12\n" 649 " B loc_FF8B911C\n" 650 "loc_FF8B8E9C:\n" 651 " CMP R1, #0x20\n" 652 " CMPNE R1, #0x21\n" 653 " BNE loc_FF8B8EE8\n" 654 " LDR R1, [R0,#0x7C]\n" 655 " ADD R1, R1, R1,LSL#1\n" 656 " ADD R1, R0, R1,LSL#2\n" 657 " SUB R1, R1, #8\n" 658 " LDMIA R1, {R2-R4}\n" 659 " STMIA R6, {R2-R4}\n" 660 " BL sub_FF8B6C40\n" // ExpDrv.c 4 661 " LDR R0, [SP,#0x1C]\n" 662 " LDR R1, [R0,#0x7C]\n" 663 " LDR R3, [R0,#0x88]\n" 664 " LDR R2, [R0,#0x8C]\n" 665 " ADD R0, R0, #4\n" 666 " BLX R3\n" 667 " LDR R0, [SP,#0x1C]\n" 668 " BL sub_FF8B6F3C\n" // ExpDrv.c 4 669 " B loc_FF8B911C\n" 670 "loc_FF8B8EE8:\n" 671 " ADD R1, R0, #4\n" 672 " LDMIA R1, {R2,R3,R12}\n" 673 " STMIA R6, {R2,R3,R12}\n" 674 " LDR R1, [R0]\n" 675 " CMP R1, #0x23\n" 676 " ADDLS PC, PC, R1,LSL#2\n" 677 " B loc_FF8B90FC\n" 678 " B loc_FF8B8F94\n" 679 " B loc_FF8B8F94\n" 680 " B loc_FF8B8FE4\n" 681 " B loc_FF8B8FEC\n" 682 " B loc_FF8B8FEC\n" 683 " B loc_FF8B8FEC\n" 684 " B loc_FF8B8F94\n" 685 " B loc_FF8B8FE4\n" 686 " B loc_FF8B8FEC\n" 687 " B loc_FF8B8FEC\n" 688 " B loc_FF8B9004\n" 689 " B loc_FF8B9004\n" 690 " B loc_FF8B90F0\n" 691 " B loc_FF8B90F8\n" 692 " B loc_FF8B90F8\n" 693 " B loc_FF8B90F8\n" 694 " B loc_FF8B90F8\n" 695 " B loc_FF8B90FC\n" 696 " B loc_FF8B90FC\n" 697 " B loc_FF8B90FC\n" 698 " B loc_FF8B90FC\n" 699 " B loc_FF8B90FC\n" 700 " B loc_FF8B8FF4\n" 701 " B loc_FF8B8FFC\n" 702 " B loc_FF8B8FFC\n" 703 " B loc_FF8B9010\n" 704 " B loc_FF8B9018\n" 705 " B loc_FF8B9048\n" 706 " B loc_FF8B9078\n" 707 " B loc_FF8B90A8\n" 708 " B loc_FF8B90D8\n" 709 " B loc_FF8B90D8\n" 710 " B loc_FF8B90FC\n" 711 " B loc_FF8B90FC\n" 712 " B loc_FF8B90E0\n" 713 " B loc_FF8B90E8\n" 714 "loc_FF8B8F94:\n" 715 // jumptable FF8B8EFC entries 0,1,6 716 " BL sub_FF8B5B24\n" // ExpDrv.c 2 717 " B loc_FF8B90FC\n" 718 "loc_FF8B8FE4:\n" 719 // jumptable FF8B8EFC entries 2,7 720 " BL sub_FF8B5DAC\n" // ExpDrv.c 4 721 " B loc_FF8B90FC\n" 722 "loc_FF8B8FEC:\n" 723 // jumptable FF8B8EFC entries 3-5,8,9 724 " BL sub_FF8B5FB0\n" // ExpDrv.c 940 725 " B loc_FF8B90FC\n" 726 "loc_FF8B8FF4:\n" 727 // jumptable FF8B8EFC entry 22 728 " BL sub_FF8B6218\n" // ExpDrv.c 1072 729 " B loc_FF8B90FC\n" 730 "loc_FF8B8FFC:\n" 731 // jumptable FF8B8EFC entries 23,24 732 " BL sub_FF8B640C\n" // ExpDrv.c 4 733 " B loc_FF8B90FC\n" 734 "loc_FF8B9004:\n" 735 // jumptable FF8B8EFC entries 10,11 736 " BL sub_FF8B6670_my\n" // ExpDrv.c 2 -> 737 " MOV R4, #0\n" 738 " B loc_FF8B90FC\n" 739 "loc_FF8B9010:\n" 740 // jumptable FF8B8EFC entry 25 741 " BL sub_FF8B67AC\n" // ExpDrv.c 4 742 " B loc_FF8B90FC\n" 743 "loc_FF8B9018:\n" 744 // jumptable FF8B8EFC entry 26 745 " LDRH R1, [R0,#4]\n" 746 " STRH R1, [SP,#0x10]\n" 747 " LDRH R1, [R5,#2]\n" 748 " STRH R1, [SP,#0x12]\n" 749 " LDRH R1, [R5,#4]\n" 750 " STRH R1, [SP,#0x14]\n" 751 " LDRH R1, [R5,#6]\n" 752 " STRH R1, [SP,#0x16]\n" 753 " LDRH R1, [R0,#0xC]\n" 754 " STRH R1, [SP,#0x18]\n" 755 " BL sub_FF8B9EE4\n" // ExpDrv.c 2 756 " B loc_FF8B90FC\n" 757 "loc_FF8B9048:\n" 758 // jumptable FF8B8EFC entry 27 759 " LDRH R1, [R0,#4]\n" 760 " STRH R1, [SP,#0x10]\n" 761 " LDRH R1, [R5,#2]\n" 762 " STRH R1, [SP,#0x12]\n" 763 " LDRH R1, [R5,#4]\n" 764 " STRH R1, [SP,#0x14]\n" 765 " LDRH R1, [R5,#6]\n" 766 " STRH R1, [SP,#0x16]\n" 767 " LDRH R1, [R5,#8]\n" 768 " STRH R1, [SP,#0x18]\n" 769 " BL sub_FF8BA060\n" // ExpDrv.c 2 770 " B loc_FF8B90FC\n" 771 "loc_FF8B9078:\n" 772 // jumptable FF8B8EFC entry 28 773 " LDRH R1, [R5]\n" 774 " STRH R1, [SP,#0x10]\n" 775 " LDRH R1, [R0,#6]\n" 776 " STRH R1, [SP,#0x12]\n" 777 " LDRH R1, [R5,#4]\n" 778 " STRH R1, [SP,#0x14]\n" 779 " LDRH R1, [R5,#6]\n" 780 " STRH R1, [SP,#0x16]\n" 781 " LDRH R1, [R5,#8]\n" 782 " STRH R1, [SP,#0x18]\n" 783 " BL sub_FF8BA10C\n" // ExpDrv.c 1552 784 " B loc_FF8B90FC\n" 785 "loc_FF8B90A8:\n" 786 // jumptable FF8B8EFC entry 29 787 " LDRH R1, [R5]\n" 788 " STRH R1, [SP,#0x10]\n" 789 " LDRH R1, [R5,#2]\n" 790 " STRH R1, [SP,#0x12]\n" 791 " LDRH R1, [R5,#4]\n" 792 " STRH R1, [SP,#0x14]\n" 793 " LDRH R1, [R5,#6]\n" 794 " STRH R1, [SP,#0x16]\n" 795 " LDRH R1, [R0,#0xC]\n" 796 " STRH R1, [SP,#0x18]\n" 797 " BL sub_FF8BA1AC\n" // ExpDrv.c 32 798 " B loc_FF8B90FC\n" 799 "loc_FF8B90D8:\n" 800 // jumptable FF8B8EFC entries 30,31 801 " BL sub_FF8B6A04\n" // ExpDrv.c 4 802 " B loc_FF8B90FC\n" 803 "loc_FF8B90E0:\n" 804 // jumptable FF8B8EFC entry 34 805 " BL sub_FF8B7040\n" // ExpDrv.c 4 806 " B loc_FF8B90FC\n" 807 "loc_FF8B90E8:\n" 808 // jumptable FF8B8EFC entry 35 809 " BL sub_FF8B7274\n" // ExpDrv.c 4 810 " B loc_FF8B90FC\n" 811 "loc_FF8B90F0:\n" 812 // jumptable FF8B8EFC entry 12 813 " BL sub_FF8B73EC\n" // ExpDrv.c 2 814 " B loc_FF8B90FC\n" 815 "loc_FF8B90F8:\n" 816 // jumptable FF8B8EFC entries 13-16 817 " BL sub_FF8B7584\n" // ExpDrv.c 128 818 "loc_FF8B90FC:\n" 819 // jumptable FF8B8EFC default entry 820 // jumptable FF8B8EFC entries 17-21,32,33 821 " LDR R0, [SP,#0x1C]\n" 822 " LDR R1, [R0,#0x7C]\n" 823 " LDR R3, [R0,#0x88]\n" 824 " LDR R2, [R0,#0x8C]\n" 825 " ADD R0, R0, #4\n" 826 " BLX R3\n" 827 " CMP R4, #1\n" 828 " BNE loc_FF8B9164\n" 829 "loc_FF8B911C:\n" 830 " LDR R0, [SP,#0x1C]\n" 831 " MOV R2, #0xC\n" 832 " LDR R1, [R0,#0x7C]\n" 833 " ADD R1, R1, R1,LSL#1\n" 834 " ADD R0, R0, R1,LSL#2\n" 835 " SUB R4, R0, #8\n" 836 " LDR R0, =0x462E8\n" 837 " ADD R1, SP, #0x10\n" 838 " BL sub_FFABD1C4\n" //done 839 " LDR R0, =0x462F4\n" 840 " MOV R2, #0xC\n" 841 " ADD R1, SP, #0x10\n" 842 " BL sub_FFABD1C4\n" //done 843 " LDR R0, =0x46300\n" 844 " MOV R2, #0xC\n" 845 " MOV R1, R4\n" 846 " BL sub_FFABD1C4\n" //done 847 " B loc_FF8B91DC\n" 848 "loc_FF8B9164:\n" 849 " LDR R0, [SP,#0x1C]\n" 850 " LDR R0, [R0]\n" 851 " CMP R0, #0xB\n" 852 " BNE loc_FF8B91AC\n" 853 " MOV R3, #0\n" 854 " STR R3, [SP]\n" 855 " MOV R3, #1\n" 856 " MOV R2, #1\n" 857 " MOV R1, #1\n" 858 " MOV R0, #0\n" 859 " BL sub_FF8B592C\n" 860 " MOV R3, #0\n" 861 " STR R3, [SP]\n" 862 " MOV R3, #1\n" 863 " MOV R2, #1\n" 864 " MOV R1, #1\n" 865 " MOV R0, #0\n" 866 " B loc_FF8B91D8\n" 867 "loc_FF8B91AC:\n" 868 " MOV R3, #1\n" 869 " MOV R2, #1\n" 870 " MOV R1, #1\n" 871 " MOV R0, #1\n" 872 " STR R3, [SP]\n" 873 " BL sub_FF8B592C\n" 874 " MOV R3, #1\n" 875 " MOV R2, #1\n" 876 " MOV R1, #1\n" 877 " MOV R0, #1\n" 878 " STR R3, [SP]\n" 879 "loc_FF8B91D8:\n" 880 " BL sub_FF8B5A6C\n" 881 "loc_FF8B91DC:\n" 882 " LDR R0, [SP,#0x1C]\n" 883 " BL sub_FF8B9E70\n" // ExpDrv.c 0 884 " B loc_FF8B8BB0\n" 885 ); 886 } 887 888 void __attribute__((naked,noinline)) sub_FF8B6670_my(){ // 889 asm volatile( 890 " STMFD SP!, {R4-R8,LR}\n" 891 " LDR R7, =0x7270\n" 892 " MOV R4, R0\n" 893 " LDR R0, [R7,#0x1C]\n" 894 " MOV R1, #0x3E\n" 895 " BL sub_FF829D60\n" 896 " LDRSH R0, [R4,#4]\n" 897 " MOV R2, #0\n" 898 " MOV R1, #0\n" 899 " BL sub_FF8B56C0\n" 900 " MOV R6, R0\n" 901 " LDRSH R0, [R4,#6]\n" 902 " BL sub_FF8B57CC\n" 903 " LDRSH R0, [R4,#8]\n" 904 " BL sub_FF8B5824\n" 905 " LDRSH R0, [R4,#0xA]\n" 906 " BL sub_FF8B587C\n" 907 " LDRSH R0, [R4,#0xC]\n" 908 " BL sub_FF8B58D4\n" 909 " MOV R5, R0\n" 910 " LDR R0, [R4]\n" 911 " LDR R8, =0x46300\n" 912 " CMP R0, #0xB\n" 913 " MOVEQ R6, #0\n" 914 " MOVEQ R5, #0\n" 915 " BEQ loc_FF8B6700\n" 916 " CMP R6, #1\n" 917 " BNE loc_FF8B6700\n" 918 " LDRSH R0, [R4,#4]\n" 919 " LDR R1, =0xFF8B561C\n" 920 " MOV R2, #2\n" 921 " BL sub_FF93655C\n" // IrisController.c 168 done 922 " STRH R0, [R4,#4]\n" 923 " MOV R0, #0\n" 924 " STR R0, [R7,#0x28]\n" 925 " B loc_FF8B6708\n" 926 "loc_FF8B6700:\n" 927 " LDRH R0, [R8]\n" 928 " STRH R0, [R4,#4]\n" 929 "loc_FF8B6708:\n" 930 " CMP R5, #1\n" 931 " LDRNEH R0, [R8,#8]\n" 932 " BNE loc_FF8B6724\n" 933 " LDRSH R0, [R4,#0xC]\n" 934 " LDR R1, =0xFF8B56B0\n" 935 " MOV R2, #0x20\n" 936 " BL sub_FF8B9EA0\n" 937 "loc_FF8B6724:\n" 938 " STRH R0, [R4,#0xC]\n" 939 " LDRSH R0, [R4,#6]\n" 940 " BL sub_FF897408_my\n" // Shutter.c 364 -> 941 " LDRSH R0, [R4,#8]\n" 942 " MOV R1, #1\n" 943 " BL sub_FF897B9C\n" // ImgGain.c 0 944 " MOV R1, #0\n" 945 " ADD R0, R4, #8\n" 946 " BL sub_FF897C24\n" // ImgGain.c 0 947 " LDRSH R0, [R4,#0xE]\n" 948 " BL sub_FF8ACA40\n" // BrtCrct.c 552 949 " LDR R4, =0xBB8\n" 950 " CMP R6, #1\n" 951 " BNE loc_FF8B677C\n" 952 " LDR R0, [R7,#0x1C]\n" 953 " MOV R2, R4\n" 954 " MOV R1, #2\n" 955 " BL sub_FF829C64\n" // KerFlag.c 0 956 " TST R0, #1\n" 957 " LDRNE R1, =0x527\n" 958 " LDRNE R0, =0xFF8B5D3C\n" // "expdrv.c" 959 " BLNE sub_FF81BFC8\n" 960 "loc_FF8B677C:\n" 961 " CMP R5, #1\n" 962 " LDMNEFD SP!, {R4-R8,PC}\n" 963 " LDR R0, [R7,#0x1C]\n" 964 " MOV R2, R4\n" 965 " MOV R1, #0x20\n" 966 " BL sub_FF829C64\n" // KerFlag.c 0 967 " TST R0, #1\n" 968 " LDRNE R1, =0x52C\n" 969 " LDRNE R0, =0xFF8B5D3C\n" 970 " LDMNEFD SP!, {R4-R8,LR}\n" 971 " BNE sub_FF81BFC8\n" 972 " LDMFD SP!, {R4-R8,PC}\n" 973 974 ); 975 } 976 977 void __attribute__((naked,noinline)) sub_FF897408_my(){ // Shutter.c 364 978 asm volatile( 979 " STMFD SP!, {R4-R6,LR}\n" 980 " LDR R5, =0x6C38\n" 981 " MOV R4, R0\n" 982 " LDR R0, [R5,#4]\n" 983 " CMP R0, #1\n" 984 " MOVNE R1, #0x16C\n" 985 " LDRNE R0, =0xFF8971A0\n" // "shutter.c" 986 " BLNE sub_FF81BFC8\n" 987 " CMN R4, #0xC00\n" 988 " LDREQSH R4, [R5,#2]\n" 989 " CMN R4, #0xC00\n" 990 " LDREQ R1, =0x172\n" 991 " LDREQ R0, =0xFF8971A0\n" // "shutter.c" 992 " STRH R4, [R5,#2]\n" 993 " BLEQ sub_FF81BFC8\n" 994 " MOV R0, R4\n" 995 //" BL sub_FF9BF0C4\n" // - 996 " BL apex2us\n" // + 997 " MOV R4, R0\n" 998 //" BL nullsub_143\n" 999 " MOV R0, R4\n" 1000 " BL sub_FF8CF8C0\n" 1001 " TST R0, #1\n" 1002 " LDRNE R1, =0x177\n" 1003 " LDMNEFD SP!, {R4-R6,LR}\n" 1004 " LDRNE R0, =0xFF8971A0\n" // "shutter.c" 1005 " BNE sub_FF81BFC8\n" 1006 " LDMFD SP!, {R4-R6,PC}\n" 1007 ); 1008 } 1009 -
trunk/platform/g9/sub/100i/stubs_auto.S
r821 r837 33 33 STUB(FF82629C) 34 34 STUB(FF8299CC) 35 STUB(FF829C64) 35 36 STUB(FF829D2C) 36 37 STUB(FF829D60) … … 88 89 STUB(FF87FD60) 89 90 STUB(FF87FD70) 91 STUB(FF897408) 92 STUB(FF897664) 93 STUB(FF897B9C) 94 STUB(FF897C24) 95 STUB(FF897EA4) 96 STUB(FF8983E4) 97 STUB(FF8ACA40) 98 STUB(FF8B56C0) 99 STUB(FF8B57CC) 100 STUB(FF8B5824) 101 STUB(FF8B587C) 102 STUB(FF8B58D4) 103 STUB(FF8B592C) 104 STUB(FF8B5A6C) 105 STUB(FF8B5B24) 106 STUB(FF8B5DAC) 107 STUB(FF8B5FB0) 108 STUB(FF8B6218) 109 STUB(FF8B640C) 110 STUB(FF8B6670) 111 STUB(FF8B67AC) 112 STUB(FF8B6A04) 113 STUB(FF8B6C40) 114 STUB(FF8B6F3C) 115 STUB(FF8B7040) 116 STUB(FF8B7274) 117 STUB(FF8B73EC) 118 STUB(FF8B7584) 119 STUB(FF8B76BC) 120 STUB(FF8B7904) 121 STUB(FF8B888C) 122 STUB(FF8B8AE0) 123 STUB(FF8B8B40) 124 STUB(FF8B9E70) 125 STUB(FF8B9EA0) 126 STUB(FF8B9EE4) 127 STUB(FF8BA060) 128 STUB(FF8BA10C) 129 STUB(FF8BA1AC) 130 STUB(FF8BA244) 131 STUB(FF8CF8C0) 90 132 STUB(FF8FBD68) 91 133 STUB(FF8FBE2C) … … 94 136 STUB(FF918508) 95 137 STUB(FF9290BC) 138 STUB(FF9362E8) 139 STUB(FF936388) 140 STUB(FF936414) 141 STUB(FF93655C) 142 STUB(FF936AA8) 96 143 STUB(FF93F04C) 97 144 STUB(FF940D14) … … 137 184 STUB(FF94553C) 138 185 STUB(FF957C54) 186 STUB(FF9BF0C4) 187 STUB(FFABD1C4) 139 188 STUB(FFABD420) 140 189 STUB(FFABECD0) -
trunk/platform/g9/sub/100i/stubs_entry_2.S
r826 r837 21 21 NHSTUB(WriteSDCard, 0xFF928D00) 22 22 NHSTUB(SetScriptMode, 0xFF872F78) // "SetScriptMode" 23 NHSTUB(apex2us, 0xFF9BF0C4) // from sub_FF897408 via exp_drv_task
Note: See TracChangeset
for help on using the changeset viewer.