Changeset 936
- Timestamp:
- 01/31/12 20:06:08 (16 months ago)
- Location:
- trunk/platform/a470
- Files:
-
- 16 edited
-
kbd.c (modified) (1 diff)
-
lib.c (modified) (1 diff)
-
notes.txt (modified) (1 diff)
-
platform_camera.h (modified) (1 diff)
-
sub/100e/boot.c (modified) (2 diffs)
-
sub/100e/capt_seq.c (modified) (3 diffs)
-
sub/100e/stubs_entry.S (modified) (1 diff)
-
sub/100e/stubs_min.S (modified) (1 diff)
-
sub/101b/boot.c (modified) (2 diffs)
-
sub/101b/capt_seq.c (modified) (3 diffs)
-
sub/101b/stubs_entry.S (modified) (1 diff)
-
sub/101b/stubs_min.S (modified) (1 diff)
-
sub/102c/boot.c (modified) (2 diffs)
-
sub/102c/capt_seq.c (modified) (3 diffs)
-
sub/102c/stubs_entry.S (modified) (1 diff)
-
sub/102c/stubs_min.S (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/platform/a470/kbd.c
r711 r936 340 340 for (i=0;keymap[i].hackkey;i++){ 341 341 if ((kbd_new_state[keymap[i].grp] & keymap[i].canonkey) == 0){ 342 if (i!=7)return keymap[i].hackkey;342 return keymap[i].hackkey; 343 343 } 344 344 } -
trunk/platform/a470/lib.c
r470 r936 33 33 34 34 int get_flash_params_count(void){ 35 return 11 4;35 return 115; 36 36 } -
trunk/platform/a470/notes.txt
r20 r936 6 6 7 7 beta port, see http://chdk.setepontos.com/index.php/topic,3368.msg31068.html#msg31068 8 supports extra long exposure (>64 sec) 8 9 9 10 TODO: 10 11 * Add (super)long exposure time12 11 * Camera colour profile etc (copypastad atm) -
trunk/platform/a470/platform_camera.h
r859 r936 59 59 // camera name 60 60 #define PARAM_CAMERA_NAME 4 // parameter number for GetParameterData 61 #define CAM_STARTUP_CRASH_FILE_OPEN_FIX 1 62 #define CAM_EXT_TV_RANGE 1 63 #define CAM_DETECT_SCREEN_ERASE 1 61 64 //#define DNG_EXT_FROM ".DPS" 62 65 //---------------------------------------------------------- -
trunk/platform/a470/sub/100e/boot.c
r14 r936 14 14 15 15 void boot(); 16 17 void taskCreateHook(int *p) { //function taken from the ixus80 port, adapted of course 18 p-=16; 19 if (p[0]==0xffc900b8) p[0]=(int)exp_drv_task; //100e ok 20 } 16 21 17 22 void boot() { //#fs … … 38 43 for(i=0;i<canon_bss_len/4;i++) 39 44 canon_bss_start[i]=0; 45 46 *(int*)0x1930=(int)taskCreateHook; //from ixus80 port 47 *(int*)0x1934=(int)taskCreateHook; //from ixus80 port (was taskCreateHook2...) 40 48 41 49 /* asm volatile ( -
trunk/platform/a470/sub/100e/capt_seq.c
r14 r936 3 3 #include "core.h" 4 4 5 static long *nrflag = (long*)0x 9F90;5 static long *nrflag = (long*)0x8888; //in sub_ffd0cae8, like in 101b 6 6 7 7 #include "../../../generic/capt_seq.c" … … 67 67 "LDR R0, [SP]\n" //+ 68 68 "LDR R1, [R0]\n" 69 70 "LDR R2, =0x1850\n" // DEBUG: Save jumptable-target ...71 "STR R1, [R2]\n" // ...to some unused space. Read and displayed in GUI in core/gui.c72 69 73 70 "CMP R1, #0x19\n" … … 279 276 ); 280 277 } //#fe 278 279 280 void __attribute__((naked,noinline)) exp_drv_task() 281 { 282 asm volatile ( 283 " STMFD SP!, {R4-R8,LR}\n" 284 " SUB SP, SP, #0x20\n" 285 " LDR R8, =0xBB8\n" 286 " LDR R7, =0x64D4\n" 287 " LDR R5, =0x3D3DC\n" 288 " MOV R0, #0\n" 289 " ADD R6, SP, #0x10\n" 290 " STR R0, [SP,#0xC]\n" 291 "loc_FFC900D8:\n" 292 " LDR R0, [R7,#0x20]\n" 293 " MOV R2, #0\n" 294 " ADD R1, SP, #0x1C\n" 295 " BL sub_FFC1763C\n" 296 " LDR R0, [SP,#0xC]\n" 297 " CMP R0, #1\n" 298 " BNE loc_FFC90120\n" 299 " LDR R0, [SP,#0x1C]\n" 300 " LDR R0, [R0]\n" 301 " CMP R0, #0x13\n" 302 " CMPNE R0, #0x14\n" 303 " CMPNE R0, #0x15\n" 304 " BEQ loc_FFC9023C\n" 305 " CMP R0, #0x27\n" 306 " BEQ loc_FFC90214\n" 307 " ADD R1, SP, #0xC\n" 308 " MOV R0, #0\n" 309 " BL sub_FFC90068\n" 310 "loc_FFC90120:\n" 311 " LDR R0, [SP,#0x1C]\n" 312 " LDR R1, [R0]\n" 313 " CMP R1, #0x2C\n" 314 " BNE loc_FFC90150\n" 315 " LDR R0, [SP,#0x1C]\n" 316 " BL sub_FFC9131C\n" 317 " LDR R0, [R7,#0x1C]\n" 318 " MOV R1, #1\n" 319 " BL sub_FFC173B8\n" 320 " BL sub_FFC0BB70\n" 321 " ADD SP, SP, #0x20\n" 322 " LDMFD SP!, {R4-R8,PC}\n" 323 "loc_FFC90150:\n" 324 " CMP R1, #0x2B\n" 325 " BNE loc_FFC9016C\n" 326 " LDR R2, [R0,#0x88]!\n" 327 " LDR R1, [R0,#4]\n" 328 " MOV R0, R1\n" 329 " BLX R2\n" 330 " B loc_FFC906A0\n" 331 "loc_FFC9016C:\n" 332 " CMP R1, #0x25\n" 333 " BNE loc_FFC901BC\n" 334 " LDR R0, [R7,#0x1C]\n" 335 " MOV R1, #0x80\n" 336 " BL sub_FFC173EC\n" 337 " LDR R0, =0xFFC8CB5C\n" 338 " MOV R1, #0x80\n" 339 " BL sub_FFD02FE0\n" 340 " LDR R0, [R7,#0x1C]\n" 341 " MOV R2, R8\n" 342 " MOV R1, #0x80\n" 343 " BL sub_FFC172F0\n" 344 " TST R0, #1\n" 345 " LDRNE R1, =0xD1B\n" 346 " BNE loc_FFC90200\n" 347 "loc_FFC901A8:\n" 348 " LDR R1, [SP,#0x1C]\n" 349 " LDR R0, [R1,#0x8C]\n" 350 " LDR R1, [R1,#0x88]\n" 351 " BLX R1\n" 352 " B loc_FFC906A0\n" 353 "loc_FFC901BC:\n" 354 " CMP R1, #0x26\n" 355 " BNE loc_FFC9020C\n" 356 " ADD R1, SP, #0xC\n" 357 " BL sub_FFC90068\n" 358 " LDR R0, [R7,#0x1C]\n" 359 " MOV R1, #0x100\n" 360 " BL sub_FFC173EC\n" 361 " LDR R0, =0xFFC8CB6C\n" 362 " MOV R1, #0x100\n" 363 " BL sub_FFD03268\n" 364 " LDR R0, [R7,#0x1C]\n" 365 " MOV R2, R8\n" 366 " MOV R1, #0x100\n" 367 " BL sub_FFC172F0\n" 368 " TST R0, #1\n" 369 " BEQ loc_FFC901A8\n" 370 " LDR R1, =0xD25\n" 371 "loc_FFC90200:\n" 372 " LDR R0, =0xFFC8D25C\n" 373 " BL sub_FFC0BDB8\n" 374 " B loc_FFC901A8\n" 375 "loc_FFC9020C:\n" 376 " CMP R1, #0x27\n" 377 " BNE loc_FFC90224\n" 378 "loc_FFC90214:\n" 379 " LDR R0, [SP,#0x1C]\n" 380 " ADD R1, SP, #0xC\n" 381 " BL sub_FFC90068\n" 382 " B loc_FFC901A8\n" 383 "loc_FFC90224:\n" 384 " CMP R1, #0x2A\n" 385 " BNE loc_FFC9023C\n" 386 " BL sub_FFC6FF10\n" 387 " BL sub_FFC70CDC\n" 388 " BL sub_FFC70760\n" 389 " B loc_FFC901A8\n" 390 "loc_FFC9023C:\n" 391 " LDR R0, [SP,#0x1C]\n" 392 " MOV R4, #1\n" 393 " LDR R1, [R0]\n" 394 " CMP R1, #0x11\n" 395 " CMPNE R1, #0x12\n" 396 " BNE loc_FFC902AC\n" 397 " LDR R1, [R0,#0x7C]\n" 398 " ADD R1, R1, R1,LSL#1\n" 399 " ADD R1, R0, R1,LSL#2\n" 400 " SUB R1, R1, #8\n" 401 " LDMIA R1, {R2-R4}\n" 402 " STMIA R6, {R2-R4}\n" 403 " BL sub_FFC8EBE8\n" 404 " LDR R0, [SP,#0x1C]\n" 405 " LDR R1, [R0,#0x7C]\n" 406 " LDR R3, [R0,#0x88]\n" 407 " LDR R2, [R0,#0x8C]\n" 408 " ADD R0, R0, #4\n" 409 " BLX R3\n" 410 " LDR R0, [SP,#0x1C]\n" 411 " BL sub_FFC916F4\n" 412 " LDR R0, [SP,#0x1C]\n" 413 " LDR R1, [R0,#0x7C]\n" 414 " LDR R3, [R0,#0x90]\n" 415 " LDR R2, [R0,#0x94]\n" 416 " ADD R0, R0, #4\n" 417 " BLX R3\n" 418 " B loc_FFC905E0\n" 419 "loc_FFC902AC:\n" 420 " CMP R1, #0x13\n" 421 " CMPNE R1, #0x14\n" 422 " CMPNE R1, #0x15\n" 423 " BNE loc_FFC90360\n" 424 " ADD R3, SP, #0xC\n" 425 " MOV R2, SP\n" 426 " ADD R1, SP, #0x10\n" 427 " BL sub_FFC8EE30\n" 428 " CMP R0, #1\n" 429 " MOV R4, R0\n" 430 " CMPNE R4, #5\n" 431 " BNE loc_FFC902FC\n" 432 " LDR R0, [SP,#0x1C]\n" 433 " MOV R2, R4\n" 434 " LDR R1, [R0,#0x7C]!\n" 435 " LDR R12, [R0,#0xC]!\n" 436 " LDR R3, [R0,#4]\n" 437 " MOV R0, SP\n" 438 " BLX R12\n" 439 " B loc_FFC90334\n" 440 "loc_FFC902FC:\n" 441 " LDR R0, [SP,#0x1C]\n" 442 " CMP R4, #2\n" 443 " LDR R3, [R0,#0x8C]\n" 444 " CMPNE R4, #6\n" 445 " BNE loc_FFC90348\n" 446 " LDR R12, [R0,#0x88]\n" 447 " MOV R0, SP\n" 448 " MOV R2, R4\n" 449 " MOV R1, #1\n" 450 " BLX R12\n" 451 " LDR R0, [SP,#0x1C]\n" 452 " MOV R2, SP\n" 453 " ADD R1, SP, #0x10\n" 454 " BL sub_FFC8FDB4\n" 455 "loc_FFC90334:\n" 456 " LDR R0, [SP,#0x1C]\n" 457 " LDR R2, [SP,#0xC]\n" 458 " MOV R1, R4\n" 459 " BL sub_FFC90008\n" 460 " B loc_FFC905E0\n" 461 "loc_FFC90348:\n" 462 " LDR R1, [R0,#0x7C]\n" 463 " LDR R12, [R0,#0x88]\n" 464 " ADD R0, R0, #4\n" 465 " MOV R2, R4\n" 466 " BLX R12\n" 467 " B loc_FFC905E0\n" 468 "loc_FFC90360:\n" 469 " CMP R1, #0x21\n" 470 " CMPNE R1, #0x22\n" 471 " BNE loc_FFC903AC\n" 472 " LDR R1, [R0,#0x7C]\n" 473 " ADD R1, R1, R1,LSL#1\n" 474 " ADD R1, R0, R1,LSL#2\n" 475 " SUB R1, R1, #8\n" 476 " LDMIA R1, {R2-R4}\n" 477 " STMIA R6, {R2-R4}\n" 478 " BL sub_FFC8E174\n" 479 " LDR R0, [SP,#0x1C]\n" 480 " LDR R1, [R0,#0x7C]\n" 481 " LDR R3, [R0,#0x88]\n" 482 " LDR R2, [R0,#0x8C]\n" 483 " ADD R0, R0, #4\n" 484 " BLX R3\n" 485 " LDR R0, [SP,#0x1C]\n" 486 " BL sub_FFC8E464\n" 487 " B loc_FFC905E0\n" 488 "loc_FFC903AC:\n" 489 " ADD R1, R0, #4\n" 490 " LDMIA R1, {R2,R3,R12}\n" 491 " STMIA R6, {R2,R3,R12}\n" 492 " LDR R1, [R0]\n" 493 " CMP R1, #0x24\n" 494 " ADDLS PC, PC, R1,LSL#2\n" 495 " B loc_FFC905C0\n" 496 "loc_FFC903C8:\n" 497 " B loc_FFC9045C\n" 498 "loc_FFC903CC:\n" 499 " B loc_FFC9045C\n" 500 "loc_FFC903D0:\n" 501 " B loc_FFC90464\n" 502 "loc_FFC903D4:\n" 503 " B loc_FFC9046C\n" 504 "loc_FFC903D8:\n" 505 " B loc_FFC9046C\n" 506 "loc_FFC903DC:\n" 507 " B loc_FFC9046C\n" 508 "loc_FFC903E0:\n" 509 " B loc_FFC9045C\n" 510 "loc_FFC903E4:\n" 511 " B loc_FFC90464\n" 512 "loc_FFC903E8:\n" 513 " B loc_FFC9046C\n" 514 "loc_FFC903EC:\n" 515 " B loc_FFC9046C\n" 516 "loc_FFC903F0:\n" 517 " B loc_FFC904C8\n" 518 "loc_FFC903F4:\n" 519 " B loc_FFC904C8\n" 520 "loc_FFC903F8:\n" 521 " B loc_FFC905B4\n" 522 "loc_FFC903FC:\n" 523 " B loc_FFC905BC\n" 524 "loc_FFC90400:\n" 525 " B loc_FFC905BC\n" 526 "loc_FFC90404:\n" 527 " B loc_FFC905BC\n" 528 "loc_FFC90408:\n" 529 " B loc_FFC905BC\n" 530 "loc_FFC9040C:\n" 531 " B loc_FFC905C0\n" 532 "loc_FFC90410:\n" 533 " B loc_FFC905C0\n" 534 "loc_FFC90414:\n" 535 " B loc_FFC905C0\n" 536 "loc_FFC90418:\n" 537 " B loc_FFC905C0\n" 538 "loc_FFC9041C:\n" 539 " B loc_FFC905C0\n" 540 "loc_FFC90420:\n" 541 " B loc_FFC90474\n" 542 "loc_FFC90424:\n" 543 " B loc_FFC9047C\n" 544 "loc_FFC90428:\n" 545 " B loc_FFC9047C\n" 546 "loc_FFC9042C:\n" 547 " B loc_FFC904D4\n" 548 "loc_FFC90430:\n" 549 " B loc_FFC904D4\n" 550 "loc_FFC90434:\n" 551 " B loc_FFC904DC\n" 552 "loc_FFC90438:\n" 553 " B loc_FFC9050C\n" 554 "loc_FFC9043C:\n" 555 " B loc_FFC9053C\n" 556 "loc_FFC90440:\n" 557 " B loc_FFC9056C\n" 558 "loc_FFC90444:\n" 559 " B loc_FFC9059C\n" 560 "loc_FFC90448:\n" 561 " B loc_FFC9059C\n" 562 "loc_FFC9044C:\n" 563 " B loc_FFC905C0\n" 564 "loc_FFC90450:\n" 565 " B loc_FFC905C0\n" 566 "loc_FFC90454:\n" 567 " B loc_FFC905A4\n" 568 "loc_FFC90458:\n" 569 " B loc_FFC905AC\n" 570 "loc_FFC9045C:\n" 571 " BL sub_FFC8D044\n" 572 " B loc_FFC905C0\n" 573 "loc_FFC90464:\n" 574 " BL sub_FFC8D2D4\n" 575 " B loc_FFC905C0\n" 576 "loc_FFC9046C:\n" 577 " BL sub_FFC8D4D8\n" 578 " B loc_FFC905C0\n" 579 "loc_FFC90474:\n" 580 " BL sub_FFC8D740\n" 581 " B loc_FFC905C0\n" 582 "loc_FFC9047C:\n" 583 " BL sub_FFC8D934\n" 584 " B loc_FFC905C0\n" 585 "loc_FFC904C8:\n" 586 " BL sub_FFC8DB9C_my\n" // -> 587 " MOV R4, #0\n" 588 " B loc_FFC905C0\n" 589 "loc_FFC904D4:\n" 590 " BL sub_FFC8DCD8\n" 591 " B loc_FFC905C0\n" 592 "loc_FFC904DC:\n" 593 " LDRH R1, [R0,#4]\n" 594 " STRH R1, [SP,#0x10]\n" 595 " LDRH R1, [R5,#2]\n" 596 " STRH R1, [SP,#0x12]\n" 597 " LDRH R1, [R5,#4]\n" 598 " STRH R1, [SP,#0x14]\n" 599 " LDRH R1, [R5,#6]\n" 600 " STRH R1, [SP,#0x16]\n" 601 " LDRH R1, [R0,#0xC]\n" 602 " STRH R1, [SP,#0x18]\n" 603 " BL sub_FFC91390\n" 604 " B loc_FFC905C0\n" 605 "loc_FFC9050C:\n" 606 " LDRH R1, [R0,#4]\n" 607 " STRH R1, [SP,#0x10]\n" 608 " LDRH R1, [R5,#2]\n" 609 " STRH R1, [SP,#0x12]\n" 610 " LDRH R1, [R5,#4]\n" 611 " STRH R1, [SP,#0x14]\n" 612 " LDRH R1, [R5,#6]\n" 613 " STRH R1, [SP,#0x16]\n" 614 " LDRH R1, [R5,#8]\n" 615 " STRH R1, [SP,#0x18]\n" 616 " BL sub_FFC91510\n" 617 " B loc_FFC905C0\n" 618 "loc_FFC9053C:\n" 619 " LDRH R1, [R5]\n" 620 " STRH R1, [SP,#0x10]\n" 621 " LDRH R1, [R0,#6]\n" 622 " STRH R1, [SP,#0x12]\n" 623 " LDRH R1, [R5,#4]\n" 624 " STRH R1, [SP,#0x14]\n" 625 " LDRH R1, [R5,#6]\n" 626 " STRH R1, [SP,#0x16]\n" 627 " LDRH R1, [R5,#8]\n" 628 " STRH R1, [SP,#0x18]\n" 629 " BL sub_FFC915BC\n" 630 " B loc_FFC905C0\n" 631 "loc_FFC9056C:\n" 632 " LDRH R1, [R5]\n" 633 " STRH R1, [SP,#0x10]\n" 634 " LDRH R1, [R5,#2]\n" 635 " STRH R1, [SP,#0x12]\n" 636 " LDRH R1, [R5,#4]\n" 637 " STRH R1, [SP,#0x14]\n" 638 " LDRH R1, [R5,#6]\n" 639 " STRH R1, [SP,#0x16]\n" 640 " LDRH R1, [R0,#0xC]\n" 641 " STRH R1, [SP,#0x18]\n" 642 " BL sub_FFC9165C\n" 643 " B loc_FFC905C0\n" 644 "loc_FFC9059C:\n" 645 " BL sub_FFC8DF4C\n" 646 " B loc_FFC905C0\n" 647 "loc_FFC905A4:\n" 648 " BL sub_FFC8E568\n" 649 " B loc_FFC905C0\n" 650 "loc_FFC905AC:\n" 651 " BL sub_FFC8E7A0\n" 652 " B loc_FFC905C0\n" 653 "loc_FFC905B4:\n" 654 " BL sub_FFC8E918\n" 655 " B loc_FFC905C0\n" 656 "loc_FFC905BC:\n" 657 " BL sub_FFC8EAB0\n" 658 "loc_FFC905C0:\n" 659 " LDR R0, [SP,#0x1C]\n" 660 " LDR R1, [R0,#0x7C]\n" 661 " LDR R3, [R0,#0x88]\n" 662 " LDR R2, [R0,#0x8C]\n" 663 " ADD R0, R0, #4\n" 664 " BLX R3\n" 665 " CMP R4, #1\n" 666 " BNE loc_FFC90628\n" 667 "loc_FFC905E0:\n" 668 " LDR R0, [SP,#0x1C]\n" 669 " MOV R2, #0xC\n" 670 " LDR R1, [R0,#0x7C]\n" 671 " ADD R1, R1, R1,LSL#1\n" 672 " ADD R0, R0, R1,LSL#2\n" 673 " SUB R4, R0, #8\n" 674 " LDR R0, =0x3D3DC\n" 675 " ADD R1, SP, #0x10\n" 676 " BL sub_FFE4E008\n" 677 " LDR R0, =0x3D3E8\n" 678 " MOV R2, #0xC\n" 679 " ADD R1, SP, #0x10\n" 680 " BL sub_FFE4E008\n" 681 " LDR R0, =0x3D3F4\n" 682 " MOV R2, #0xC\n" 683 " MOV R1, R4\n" 684 " BL sub_FFE4E008\n" 685 " B loc_FFC906A0\n" 686 "loc_FFC90628:\n" 687 " LDR R0, [SP,#0x1C]\n" 688 " LDR R0, [R0]\n" 689 " CMP R0, #0xB\n" 690 " BNE loc_FFC90670\n" 691 " MOV R3, #0\n" 692 " STR R3, [SP]\n" 693 " MOV R3, #1\n" 694 " MOV R2, #1\n" 695 " MOV R1, #1\n" 696 " MOV R0, #0\n" 697 " BL sub_FFC8CE4C\n" 698 " MOV R3, #0\n" 699 " STR R3, [SP]\n" 700 " MOV R3, #1\n" 701 " MOV R2, #1\n" 702 " MOV R1, #1\n" 703 " MOV R0, #0\n" 704 " B loc_FFC9069C\n" 705 "loc_FFC90670:\n" 706 " MOV R3, #1\n" 707 " MOV R2, #1\n" 708 " MOV R1, #1\n" 709 " MOV R0, #1\n" 710 " STR R3, [SP]\n" 711 " BL sub_FFC8CE4C\n" 712 " MOV R3, #1\n" 713 " MOV R2, #1\n" 714 " MOV R1, #1\n" 715 " MOV R0, #1\n" 716 " STR R3, [SP]\n" 717 "loc_FFC9069C:\n" 718 " BL sub_FFC8CF8C\n" 719 "loc_FFC906A0:\n" 720 " LDR R0, [SP,#0x1C]\n" 721 " BL sub_FFC9131C\n" 722 " B loc_FFC900D8\n" 723 ); 724 } 725 726 727 void __attribute__((naked,noinline)) sub_FFC8DB9C_my() 728 { 729 asm volatile ( 730 " STMFD SP!, {R4-R8,LR}\n" 731 " LDR R7, =0x64D4\n" 732 " MOV R4, R0\n" 733 " LDR R0, [R7,#0x1C]\n" 734 " MOV R1, #0x3E\n" 735 " BL sub_FFC173EC\n" 736 " LDRSH R0, [R4,#4]\n" 737 " MOV R2, #0\n" 738 " MOV R1, #0\n" 739 " BL sub_FFC8CBE0\n" 740 " MOV R6, R0\n" 741 " LDRSH R0, [R4,#6]\n" 742 " BL sub_FFC8CCEC\n" 743 " LDRSH R0, [R4,#8]\n" 744 " BL sub_FFC8CD44\n" 745 " LDRSH R0, [R4,#0xA]\n" 746 " BL sub_FFC8CD9C\n" 747 " LDRSH R0, [R4,#0xC]\n" 748 " BL sub_FFC8CDF4\n" 749 " MOV R5, R0\n" 750 " LDR R0, [R4]\n" 751 " LDR R8, =0x3D3F4\n" 752 " CMP R0, #0xB\n" 753 " MOVEQ R6, #0\n" 754 " MOVEQ R5, #0\n" 755 " BEQ loc_FFC8DC2C\n" 756 " CMP R6, #1\n" 757 " BNE loc_FFC8DC2C\n" 758 " LDRSH R0, [R4,#4]\n" 759 " LDR R1, =0xFFC8CB4C\n" 760 " MOV R2, #2\n" 761 " BL sub_FFD03134\n" 762 " STRH R0, [R4,#4]\n" 763 " MOV R0, #0\n" 764 " STR R0, [R7,#0x28]\n" 765 " B loc_FFC8DC34\n" 766 "loc_FFC8DC2C:\n" 767 " LDRH R0, [R8]\n" 768 " STRH R0, [R4,#4]\n" 769 "loc_FFC8DC34:\n" 770 " CMP R5, #1\n" 771 " LDRNEH R0, [R8,#8]\n" 772 " BNE loc_FFC8DC50\n" 773 " LDRSH R0, [R4,#0xC]\n" 774 " MOV R2, #0x20\n" 775 " LDR R1, =0xFFC8CBD0\n" 776 " BL sub_FFC9134C\n" 777 "loc_FFC8DC50:\n" 778 " STRH R0, [R4,#0xC]\n" 779 " LDRSH R0, [R4,#6]\n" 780 " BL sub_FFC6FC5C_my\n" // -> 781 " LDR PC, =0xFFC8DC5C\n" // + continue in ROM 782 /* removed to spare some bytes - 783 " LDRSH R0, [R4,#8]\n" 784 " MOV R1, #1\n" 785 " BL sub_FFC70458\n" 786 " MOV R1, #0\n" 787 " ADD R0, R4, #8\n" 788 " BL sub_FFC704E0\n" 789 " LDRSH R0, [R4,#0xE]\n" 790 " BL sub_FFC83B1C\n" 791 " LDR R4, =0xBB8\n" 792 " CMP R6, #1\n" 793 " BNE loc_FFC8DCA8\n" 794 " LDR R0, [R7,#0x1C]\n" 795 " MOV R2, R4\n" 796 " MOV R1, #2\n" 797 " BL sub_FFC172F0\n" 798 " TST R0, #1\n" 799 " LDRNE R1, =0x532\n" 800 " LDRNE R0, =0xffc8d25c\n" // "ExpDrv.c" 801 " BLNE sub_FFC0BDB8\n" 802 "loc_FFC8DCA8:\n" 803 " CMP R5, #1\n" 804 " LDMNEFD SP!, {R4-R8,PC}\n" 805 " LDR R0, [R7,#0x1C]\n" 806 " MOV R2, R4\n" 807 " MOV R1, #0x20\n" 808 " BL sub_FFC172F0\n" 809 " TST R0, #1\n" 810 " LDRNE R1, =0x537\n" 811 " LDRNE R0, =0xffc8d25c\n" // "ExpDrv.c" 812 " LDMNEFD SP!, {R4-R8,LR}\n" 813 " BNE sub_FFC0BDB8\n" 814 " LDMFD SP!, {R4-R8,PC}\n" 815 */ 816 ); 817 } 818 819 820 void __attribute__((naked,noinline)) sub_FFC6FC5C_my() 821 { 822 asm volatile ( 823 " STMFD SP!, {R4-R6,LR}\n" 824 " LDR R5, =0x5FAC\n" 825 " MOV R4, R0\n" 826 " LDR R0, [R5,#4]\n" 827 " CMP R0, #1\n" 828 " LDRNE R1, =0x16D\n" 829 " LDRNE R0, =0xffc6f9f4\n" // "Shutter.c" 830 " BLNE sub_FFC0BDB8\n" 831 " CMN R4, #0xC00\n" 832 " LDREQSH R4, [R5,#2]\n" 833 " CMN R4, #0xC00\n" 834 " LDREQ R1, =0x173\n" 835 " LDREQ R0, =0xffc6f9f4\n" // "Shutter.c" 836 " STRH R4, [R5,#2]\n" 837 " BLEQ sub_FFC0BDB8\n" 838 " MOV R0, R4\n" 839 //" BL sub_FFD68398\n" //- 840 " BL apex2us\n" //+ 841 " MOV R4, R0\n" 842 //" BL nullsub\n" //- 843 //" MOV R0, R4\n" //- 844 " BL sub_FFCA25DC\n" 845 " TST R0, #1\n" 846 " LDMNEFD SP!, {R4-R6,LR}\n" 847 " MOVNE R1, #0x178\n" 848 " LDRNE R0, =0xffc6f9f4\n" // "Shutter.c" 849 " BNE sub_FFC0BDB8\n" 850 " LDMFD SP!, {R4-R6,PC}\n" 851 ); 852 } -
trunk/platform/a470/sub/100e/stubs_entry.S
r930 r936 28 28 DEF(physw_run ,0x00001bf0) // Found @0xffc118a8 29 29 DEF(levent_table ,0xffe72ec8) // Found @0xffe72ec8 30 //DEF(FlashParamsTable ,0xffe8fc68) // Found @0xffe8fc68, ** != ** stubs_min = 0xffe961cc (0xFFE961CC) 31 //DEF(movie_status ,0x000051d8) // Found @0xffc45174, ** != ** stubs_min = 0x00005200 (0x5200) 30 DEF(FlashParamsTable ,0xffe8fc68) // Found @0xffe8fc68 31 DEF(movie_status ,0x000051d8) // Found @0xffc45174 32 32 DEF(canon_menu_active ,0x00009014) // Found @0xffd1eec4 33 //DEF(canon_shoot_menu_active ,0x000097e1) // Found @0xffd37684, ** != ** stubs_min = 0x00009768 (0x9768) 33 DEF(canon_shoot_menu_active ,0x000097e1) // Found @0xffd37684 34 34 DEF(playrec_mode ,0x00005348) // Found @0xffc4b760 35 //DEF(zoom_status ,0x0000d020) // Found @0xffde8948, ** != ** stubs_min = 0x0000d7c4 (0xD7C4) 36 //DEF(some_flag_for_af_scan ,0x0000cd9c) // Found @0xffdd73a8, ** != ** stubs_min = 0x0000cdec (0xCDEC) 37 //DEF(zoom_busy ,0x000083a4) // Found @0xffd05d3c, ** != ** stubs_min = 0x00008050 (0x8050) 35 DEF(zoom_status ,0x0000d020) // Found @0xffde8948 36 DEF(some_flag_for_af_scan ,0x0000cd9c) // Found @0xffdd73a8 37 DEF(zoom_busy ,0x000083a4) // Found @0xffd05d3c 38 38 DEF(focus_busy ,0x000082b0) // Found @0xffd018d0 39 //DEF(recreview_hold ,0x00005b3c) // Found @0xffc63e24, ** != ** stubs_min = 0x00009634 (0x9634) 39 DEF(recreview_hold ,0x00005b3c) // Found @0xffc63e24 40 40 41 41 // Values below go in 'lib.c': -
trunk/platform/a470/sub/100e/stubs_min.S
r884 r936 1 1 #include "stubs_asm.h" 2 2 3 DEF(FlashParamsTable, 0xFFE961CC) // via GetReservedClusters_Fut_9 4 DEF(movie_status, 0x5200) // 0x51C8 + 0x38 5 DEF(canon_shoot_menu_active, 0x9768) // 0x9768+1 ??BAD 6 DEF(zoom_status, 0xD7C4) 7 DEF(some_flag_for_af_scan, 0xCDEC) 8 DEF(zoom_busy, 0x8050) //0x803c+14 same as in a590 9 DEF(recreview_hold, 0x9634) // ?? found in GetAEIntegralServiceMode_6 10 DEF(led_table, 0x22AC) //Found using LEDDrv.c 3 DEF(led_table, 0x22AC) //Found using LEDDrv.c -
trunk/platform/a470/sub/101b/boot.c
r14 r936 14 14 15 15 void boot(); 16 17 void taskCreateHook(int *p) { //function taken from the ixus80 port, adapted of course 18 p-=16; 19 if (p[0]==0xffc900b8) p[0]=(int)exp_drv_task; //101b ok 20 } 16 21 17 22 //All strings changed, now to change subroutines … … 40 45 for(i=0;i<canon_bss_len/4;i++) 41 46 canon_bss_start[i]=0; 47 48 *(int*)0x1930=(int)taskCreateHook; //from ixus80 port 49 *(int*)0x1934=(int)taskCreateHook; //from ixus80 port (was taskCreateHook2...) 42 50 43 51 /* asm volatile ( -
trunk/platform/a470/sub/101b/capt_seq.c
r14 r936 3 3 #include "core.h" 4 4 5 static long *nrflag = (long*)0x 9F90;5 static long *nrflag = (long*)0x8888; //in sub_ffd0cae8 6 6 7 7 #include "../../../generic/capt_seq.c" … … 67 67 "LDR R0, [SP]\n" //+ 68 68 "LDR R1, [R0]\n" 69 70 "LDR R2, =0x1850\n" // DEBUG: Save jumptable-target ...71 "STR R1, [R2]\n" // ...to some unused space. Read and displayed in GUI in core/gui.c72 69 73 70 "CMP R1, #0x19\n" … … 279 276 ); 280 277 } //#fe 278 279 280 void __attribute__((naked,noinline)) exp_drv_task() 281 { 282 asm volatile ( 283 " STMFD SP!, {R4-R8,LR}\n" 284 " SUB SP, SP, #0x20\n" 285 " LDR R8, =0xBB8\n" 286 " LDR R7, =0x64D4\n" 287 " LDR R5, =0x3D3DC\n" 288 " MOV R0, #0\n" 289 " ADD R6, SP, #0x10\n" 290 " STR R0, [SP,#0xC]\n" 291 "loc_FFC900D8:\n" 292 " LDR R0, [R7,#0x20]\n" 293 " MOV R2, #0\n" 294 " ADD R1, SP, #0x1C\n" 295 " BL sub_FFC1763C\n" 296 " LDR R0, [SP,#0xC]\n" 297 " CMP R0, #1\n" 298 " BNE loc_FFC90120\n" 299 " LDR R0, [SP,#0x1C]\n" 300 " LDR R0, [R0]\n" 301 " CMP R0, #0x13\n" 302 " CMPNE R0, #0x14\n" 303 " CMPNE R0, #0x15\n" 304 " BEQ loc_FFC9023C\n" 305 " CMP R0, #0x27\n" 306 " BEQ loc_FFC90214\n" 307 " ADD R1, SP, #0xC\n" 308 " MOV R0, #0\n" 309 " BL sub_FFC90068\n" 310 "loc_FFC90120:\n" 311 " LDR R0, [SP,#0x1C]\n" 312 " LDR R1, [R0]\n" 313 " CMP R1, #0x2C\n" 314 " BNE loc_FFC90150\n" 315 " LDR R0, [SP,#0x1C]\n" 316 " BL sub_FFC9131C\n" 317 " LDR R0, [R7,#0x1C]\n" 318 " MOV R1, #1\n" 319 " BL sub_FFC173B8\n" 320 " BL sub_FFC0BB70\n" 321 " ADD SP, SP, #0x20\n" 322 " LDMFD SP!, {R4-R8,PC}\n" 323 "loc_FFC90150:\n" 324 " CMP R1, #0x2B\n" 325 " BNE loc_FFC9016C\n" 326 " LDR R2, [R0,#0x88]!\n" 327 " LDR R1, [R0,#4]\n" 328 " MOV R0, R1\n" 329 " BLX R2\n" 330 " B loc_FFC906A0\n" 331 "loc_FFC9016C:\n" 332 " CMP R1, #0x25\n" 333 " BNE loc_FFC901BC\n" 334 " LDR R0, [R7,#0x1C]\n" 335 " MOV R1, #0x80\n" 336 " BL sub_FFC173EC\n" 337 " LDR R0, =0xFFC8CB5C\n" 338 " MOV R1, #0x80\n" 339 " BL sub_FFD02FE0\n" 340 " LDR R0, [R7,#0x1C]\n" 341 " MOV R2, R8\n" 342 " MOV R1, #0x80\n" 343 " BL sub_FFC172F0\n" 344 " TST R0, #1\n" 345 " LDRNE R1, =0xD1B\n" 346 " BNE loc_FFC90200\n" 347 "loc_FFC901A8:\n" 348 " LDR R1, [SP,#0x1C]\n" 349 " LDR R0, [R1,#0x8C]\n" 350 " LDR R1, [R1,#0x88]\n" 351 " BLX R1\n" 352 " B loc_FFC906A0\n" 353 "loc_FFC901BC:\n" 354 " CMP R1, #0x26\n" 355 " BNE loc_FFC9020C\n" 356 " ADD R1, SP, #0xC\n" 357 " BL sub_FFC90068\n" 358 " LDR R0, [R7,#0x1C]\n" 359 " MOV R1, #0x100\n" 360 " BL sub_FFC173EC\n" 361 " LDR R0, =0xFFC8CB6C\n" 362 " MOV R1, #0x100\n" 363 " BL sub_FFD03268\n" 364 " LDR R0, [R7,#0x1C]\n" 365 " MOV R2, R8\n" 366 " MOV R1, #0x100\n" 367 " BL sub_FFC172F0\n" 368 " TST R0, #1\n" 369 " BEQ loc_FFC901A8\n" 370 " LDR R1, =0xD25\n" 371 "loc_FFC90200:\n" 372 " LDR R0, =0xFFC8D25C\n" 373 " BL sub_FFC0BDB8\n" 374 " B loc_FFC901A8\n" 375 "loc_FFC9020C:\n" 376 " CMP R1, #0x27\n" 377 " BNE loc_FFC90224\n" 378 "loc_FFC90214:\n" 379 " LDR R0, [SP,#0x1C]\n" 380 " ADD R1, SP, #0xC\n" 381 " BL sub_FFC90068\n" 382 " B loc_FFC901A8\n" 383 "loc_FFC90224:\n" 384 " CMP R1, #0x2A\n" 385 " BNE loc_FFC9023C\n" 386 " BL sub_FFC6FF10\n" 387 " BL sub_FFC70CDC\n" 388 " BL sub_FFC70760\n" 389 " B loc_FFC901A8\n" 390 "loc_FFC9023C:\n" 391 " LDR R0, [SP,#0x1C]\n" 392 " MOV R4, #1\n" 393 " LDR R1, [R0]\n" 394 " CMP R1, #0x11\n" 395 " CMPNE R1, #0x12\n" 396 " BNE loc_FFC902AC\n" 397 " LDR R1, [R0,#0x7C]\n" 398 " ADD R1, R1, R1,LSL#1\n" 399 " ADD R1, R0, R1,LSL#2\n" 400 " SUB R1, R1, #8\n" 401 " LDMIA R1, {R2-R4}\n" 402 " STMIA R6, {R2-R4}\n" 403 " BL sub_FFC8EBE8\n" 404 " LDR R0, [SP,#0x1C]\n" 405 " LDR R1, [R0,#0x7C]\n" 406 " LDR R3, [R0,#0x88]\n" 407 " LDR R2, [R0,#0x8C]\n" 408 " ADD R0, R0, #4\n" 409 " BLX R3\n" 410 " LDR R0, [SP,#0x1C]\n" 411 " BL sub_FFC916F4\n" 412 " LDR R0, [SP,#0x1C]\n" 413 " LDR R1, [R0,#0x7C]\n" 414 " LDR R3, [R0,#0x90]\n" 415 " LDR R2, [R0,#0x94]\n" 416 " ADD R0, R0, #4\n" 417 " BLX R3\n" 418 " B loc_FFC905E0\n" 419 "loc_FFC902AC:\n" 420 " CMP R1, #0x13\n" 421 " CMPNE R1, #0x14\n" 422 " CMPNE R1, #0x15\n" 423 " BNE loc_FFC90360\n" 424 " ADD R3, SP, #0xC\n" 425 " MOV R2, SP\n" 426 " ADD R1, SP, #0x10\n" 427 " BL sub_FFC8EE30\n" 428 " CMP R0, #1\n" 429 " MOV R4, R0\n" 430 " CMPNE R4, #5\n" 431 " BNE loc_FFC902FC\n" 432 " LDR R0, [SP,#0x1C]\n" 433 " MOV R2, R4\n" 434 " LDR R1, [R0,#0x7C]!\n" 435 " LDR R12, [R0,#0xC]!\n" 436 " LDR R3, [R0,#4]\n" 437 " MOV R0, SP\n" 438 " BLX R12\n" 439 " B loc_FFC90334\n" 440 "loc_FFC902FC:\n" 441 " LDR R0, [SP,#0x1C]\n" 442 " CMP R4, #2\n" 443 " LDR R3, [R0,#0x8C]\n" 444 " CMPNE R4, #6\n" 445 " BNE loc_FFC90348\n" 446 " LDR R12, [R0,#0x88]\n" 447 " MOV R0, SP\n" 448 " MOV R2, R4\n" 449 " MOV R1, #1\n" 450 " BLX R12\n" 451 " LDR R0, [SP,#0x1C]\n" 452 " MOV R2, SP\n" 453 " ADD R1, SP, #0x10\n" 454 " BL sub_FFC8FDB4\n" 455 "loc_FFC90334:\n" 456 " LDR R0, [SP,#0x1C]\n" 457 " LDR R2, [SP,#0xC]\n" 458 " MOV R1, R4\n" 459 " BL sub_FFC90008\n" 460 " B loc_FFC905E0\n" 461 "loc_FFC90348:\n" 462 " LDR R1, [R0,#0x7C]\n" 463 " LDR R12, [R0,#0x88]\n" 464 " ADD R0, R0, #4\n" 465 " MOV R2, R4\n" 466 " BLX R12\n" 467 " B loc_FFC905E0\n" 468 "loc_FFC90360:\n" 469 " CMP R1, #0x21\n" 470 " CMPNE R1, #0x22\n" 471 " BNE loc_FFC903AC\n" 472 " LDR R1, [R0,#0x7C]\n" 473 " ADD R1, R1, R1,LSL#1\n" 474 " ADD R1, R0, R1,LSL#2\n" 475 " SUB R1, R1, #8\n" 476 " LDMIA R1, {R2-R4}\n" 477 " STMIA R6, {R2-R4}\n" 478 " BL sub_FFC8E174\n" 479 " LDR R0, [SP,#0x1C]\n" 480 " LDR R1, [R0,#0x7C]\n" 481 " LDR R3, [R0,#0x88]\n" 482 " LDR R2, [R0,#0x8C]\n" 483 " ADD R0, R0, #4\n" 484 " BLX R3\n" 485 " LDR R0, [SP,#0x1C]\n" 486 " BL sub_FFC8E464\n" 487 " B loc_FFC905E0\n" 488 "loc_FFC903AC:\n" 489 " ADD R1, R0, #4\n" 490 " LDMIA R1, {R2,R3,R12}\n" 491 " STMIA R6, {R2,R3,R12}\n" 492 " LDR R1, [R0]\n" 493 " CMP R1, #0x24\n" 494 " ADDLS PC, PC, R1,LSL#2\n" 495 " B loc_FFC905C0\n" 496 "loc_FFC903C8:\n" 497 " B loc_FFC9045C\n" 498 "loc_FFC903CC:\n" 499 " B loc_FFC9045C\n" 500 "loc_FFC903D0:\n" 501 " B loc_FFC90464\n" 502 "loc_FFC903D4:\n" 503 " B loc_FFC9046C\n" 504 "loc_FFC903D8:\n" 505 " B loc_FFC9046C\n" 506 "loc_FFC903DC:\n" 507 " B loc_FFC9046C\n" 508 "loc_FFC903E0:\n" 509 " B loc_FFC9045C\n" 510 "loc_FFC903E4:\n" 511 " B loc_FFC90464\n" 512 "loc_FFC903E8:\n" 513 " B loc_FFC9046C\n" 514 "loc_FFC903EC:\n" 515 " B loc_FFC9046C\n" 516 "loc_FFC903F0:\n" 517 " B loc_FFC904C8\n" 518 "loc_FFC903F4:\n" 519 " B loc_FFC904C8\n" 520 "loc_FFC903F8:\n" 521 " B loc_FFC905B4\n" 522 "loc_FFC903FC:\n" 523 " B loc_FFC905BC\n" 524 "loc_FFC90400:\n" 525 " B loc_FFC905BC\n" 526 "loc_FFC90404:\n" 527 " B loc_FFC905BC\n" 528 "loc_FFC90408:\n" 529 " B loc_FFC905BC\n" 530 "loc_FFC9040C:\n" 531 " B loc_FFC905C0\n" 532 "loc_FFC90410:\n" 533 " B loc_FFC905C0\n" 534 "loc_FFC90414:\n" 535 " B loc_FFC905C0\n" 536 "loc_FFC90418:\n" 537 " B loc_FFC905C0\n" 538 "loc_FFC9041C:\n" 539 " B loc_FFC905C0\n" 540 "loc_FFC90420:\n" 541 " B loc_FFC90474\n" 542 "loc_FFC90424:\n" 543 " B loc_FFC9047C\n" 544 "loc_FFC90428:\n" 545 " B loc_FFC9047C\n" 546 "loc_FFC9042C:\n" 547 " B loc_FFC904D4\n" 548 "loc_FFC90430:\n" 549 " B loc_FFC904D4\n" 550 "loc_FFC90434:\n" 551 " B loc_FFC904DC\n" 552 "loc_FFC90438:\n" 553 " B loc_FFC9050C\n" 554 "loc_FFC9043C:\n" 555 " B loc_FFC9053C\n" 556 "loc_FFC90440:\n" 557 " B loc_FFC9056C\n" 558 "loc_FFC90444:\n" 559 " B loc_FFC9059C\n" 560 "loc_FFC90448:\n" 561 " B loc_FFC9059C\n" 562 "loc_FFC9044C:\n" 563 " B loc_FFC905C0\n" 564 "loc_FFC90450:\n" 565 " B loc_FFC905C0\n" 566 "loc_FFC90454:\n" 567 " B loc_FFC905A4\n" 568 "loc_FFC90458:\n" 569 " B loc_FFC905AC\n" 570 "loc_FFC9045C:\n" 571 " BL sub_FFC8D044\n" 572 " B loc_FFC905C0\n" 573 "loc_FFC90464:\n" 574 " BL sub_FFC8D2D4\n" 575 " B loc_FFC905C0\n" 576 "loc_FFC9046C:\n" 577 " BL sub_FFC8D4D8\n" 578 " B loc_FFC905C0\n" 579 "loc_FFC90474:\n" 580 " BL sub_FFC8D740\n" 581 " B loc_FFC905C0\n" 582 "loc_FFC9047C:\n" 583 " BL sub_FFC8D934\n" 584 " B loc_FFC905C0\n" 585 "loc_FFC904C8:\n" 586 " BL sub_FFC8DB9C_my\n" // -> 587 " MOV R4, #0\n" 588 " B loc_FFC905C0\n" 589 "loc_FFC904D4:\n" 590 " BL sub_FFC8DCD8\n" 591 " B loc_FFC905C0\n" 592 "loc_FFC904DC:\n" 593 " LDRH R1, [R0,#4]\n" 594 " STRH R1, [SP,#0x10]\n" 595 " LDRH R1, [R5,#2]\n" 596 " STRH R1, [SP,#0x12]\n" 597 " LDRH R1, [R5,#4]\n" 598 " STRH R1, [SP,#0x14]\n" 599 " LDRH R1, [R5,#6]\n" 600 " STRH R1, [SP,#0x16]\n" 601 " LDRH R1, [R0,#0xC]\n" 602 " STRH R1, [SP,#0x18]\n" 603 " BL sub_FFC91390\n" 604 " B loc_FFC905C0\n" 605 "loc_FFC9050C:\n" 606 " LDRH R1, [R0,#4]\n" 607 " STRH R1, [SP,#0x10]\n" 608 " LDRH R1, [R5,#2]\n" 609 " STRH R1, [SP,#0x12]\n" 610 " LDRH R1, [R5,#4]\n" 611 " STRH R1, [SP,#0x14]\n" 612 " LDRH R1, [R5,#6]\n" 613 " STRH R1, [SP,#0x16]\n" 614 " LDRH R1, [R5,#8]\n" 615 " STRH R1, [SP,#0x18]\n" 616 " BL sub_FFC91510\n" 617 " B loc_FFC905C0\n" 618 "loc_FFC9053C:\n" 619 " LDRH R1, [R5]\n" 620 " STRH R1, [SP,#0x10]\n" 621 " LDRH R1, [R0,#6]\n" 622 " STRH R1, [SP,#0x12]\n" 623 " LDRH R1, [R5,#4]\n" 624 " STRH R1, [SP,#0x14]\n" 625 " LDRH R1, [R5,#6]\n" 626 " STRH R1, [SP,#0x16]\n" 627 " LDRH R1, [R5,#8]\n" 628 " STRH R1, [SP,#0x18]\n" 629 " BL sub_FFC915BC\n" 630 " B loc_FFC905C0\n" 631 "loc_FFC9056C:\n" 632 " LDRH R1, [R5]\n" 633 " STRH R1, [SP,#0x10]\n" 634 " LDRH R1, [R5,#2]\n" 635 " STRH R1, [SP,#0x12]\n" 636 " LDRH R1, [R5,#4]\n" 637 " STRH R1, [SP,#0x14]\n" 638 " LDRH R1, [R5,#6]\n" 639 " STRH R1, [SP,#0x16]\n" 640 " LDRH R1, [R0,#0xC]\n" 641 " STRH R1, [SP,#0x18]\n" 642 " BL sub_FFC9165C\n" 643 " B loc_FFC905C0\n" 644 "loc_FFC9059C:\n" 645 " BL sub_FFC8DF4C\n" 646 " B loc_FFC905C0\n" 647 "loc_FFC905A4:\n" 648 " BL sub_FFC8E568\n" 649 " B loc_FFC905C0\n" 650 "loc_FFC905AC:\n" 651 " BL sub_FFC8E7A0\n" 652 " B loc_FFC905C0\n" 653 "loc_FFC905B4:\n" 654 " BL sub_FFC8E918\n" 655 " B loc_FFC905C0\n" 656 "loc_FFC905BC:\n" 657 " BL sub_FFC8EAB0\n" 658 "loc_FFC905C0:\n" 659 " LDR R0, [SP,#0x1C]\n" 660 " LDR R1, [R0,#0x7C]\n" 661 " LDR R3, [R0,#0x88]\n" 662 " LDR R2, [R0,#0x8C]\n" 663 " ADD R0, R0, #4\n" 664 " BLX R3\n" 665 " CMP R4, #1\n" 666 " BNE loc_FFC90628\n" 667 "loc_FFC905E0:\n" 668 " LDR R0, [SP,#0x1C]\n" 669 " MOV R2, #0xC\n" 670 " LDR R1, [R0,#0x7C]\n" 671 " ADD R1, R1, R1,LSL#1\n" 672 " ADD R0, R0, R1,LSL#2\n" 673 " SUB R4, R0, #8\n" 674 " LDR R0, =0x3D3DC\n" 675 " ADD R1, SP, #0x10\n" 676 " BL sub_FFE4E004\n" 677 " LDR R0, =0x3D3E8\n" 678 " MOV R2, #0xC\n" 679 " ADD R1, SP, #0x10\n" 680 " BL sub_FFE4E004\n" 681 " LDR R0, =0x3D3F4\n" 682 " MOV R2, #0xC\n" 683 " MOV R1, R4\n" 684 " BL sub_FFE4E004\n" 685 " B loc_FFC906A0\n" 686 "loc_FFC90628:\n" 687 " LDR R0, [SP,#0x1C]\n" 688 " LDR R0, [R0]\n" 689 " CMP R0, #0xB\n" 690 " BNE loc_FFC90670\n" 691 " MOV R3, #0\n" 692 " STR R3, [SP]\n" 693 " MOV R3, #1\n" 694 " MOV R2, #1\n" 695 " MOV R1, #1\n" 696 " MOV R0, #0\n" 697 " BL sub_FFC8CE4C\n" 698 " MOV R3, #0\n" 699 " STR R3, [SP]\n" 700 " MOV R3, #1\n" 701 " MOV R2, #1\n" 702 " MOV R1, #1\n" 703 " MOV R0, #0\n" 704 " B loc_FFC9069C\n" 705 "loc_FFC90670:\n" 706 " MOV R3, #1\n" 707 " MOV R2, #1\n" 708 " MOV R1, #1\n" 709 " MOV R0, #1\n" 710 " STR R3, [SP]\n" 711 " BL sub_FFC8CE4C\n" 712 " MOV R3, #1\n" 713 " MOV R2, #1\n" 714 " MOV R1, #1\n" 715 " MOV R0, #1\n" 716 " STR R3, [SP]\n" 717 "loc_FFC9069C:\n" 718 " BL sub_FFC8CF8C\n" 719 "loc_FFC906A0:\n" 720 " LDR R0, [SP,#0x1C]\n" 721 " BL sub_FFC9131C\n" 722 " B loc_FFC900D8\n" 723 ); 724 } 725 726 727 void __attribute__((naked,noinline)) sub_FFC8DB9C_my() 728 { 729 asm volatile ( 730 " STMFD SP!, {R4-R8,LR}\n" 731 " LDR R7, =0x64D4\n" 732 " MOV R4, R0\n" 733 " LDR R0, [R7,#0x1C]\n" 734 " MOV R1, #0x3E\n" 735 " BL sub_FFC173EC\n" 736 " LDRSH R0, [R4,#4]\n" 737 " MOV R2, #0\n" 738 " MOV R1, #0\n" 739 " BL sub_FFC8CBE0\n" 740 " MOV R6, R0\n" 741 " LDRSH R0, [R4,#6]\n" 742 " BL sub_FFC8CCEC\n" 743 " LDRSH R0, [R4,#8]\n" 744 " BL sub_FFC8CD44\n" 745 " LDRSH R0, [R4,#0xA]\n" 746 " BL sub_FFC8CD9C\n" 747 " LDRSH R0, [R4,#0xC]\n" 748 " BL sub_FFC8CDF4\n" 749 " MOV R5, R0\n" 750 " LDR R0, [R4]\n" 751 " LDR R8, =0x3D3F4\n" 752 " CMP R0, #0xB\n" 753 " MOVEQ R6, #0\n" 754 " MOVEQ R5, #0\n" 755 " BEQ loc_FFC8DC2C\n" 756 " CMP R6, #1\n" 757 " BNE loc_FFC8DC2C\n" 758 " LDRSH R0, [R4,#4]\n" 759 " LDR R1, =0xFFC8CB4C\n" 760 " MOV R2, #2\n" 761 " BL sub_FFD03134\n" 762 " STRH R0, [R4,#4]\n" 763 " MOV R0, #0\n" 764 " STR R0, [R7,#0x28]\n" 765 " B loc_FFC8DC34\n" 766 "loc_FFC8DC2C:\n" 767 " LDRH R0, [R8]\n" 768 " STRH R0, [R4,#4]\n" 769 "loc_FFC8DC34:\n" 770 " CMP R5, #1\n" 771 " LDRNEH R0, [R8,#8]\n" 772 " BNE loc_FFC8DC50\n" 773 " LDRSH R0, [R4,#0xC]\n" 774 " MOV R2, #0x20\n" 775 " LDR R1, =0xFFC8CBD0\n" 776 " BL sub_FFC9134C\n" 777 "loc_FFC8DC50:\n" 778 " STRH R0, [R4,#0xC]\n" 779 " LDRSH R0, [R4,#6]\n" 780 " BL sub_FFC6FC5C_my\n" // -> 781 " LDR PC, =0xFFC8DC5C\n" // + continue in ROM 782 /* removed to spare some bytes - 783 " LDRSH R0, [R4,#8]\n" 784 " MOV R1, #1\n" 785 " BL sub_FFC70458\n" 786 " MOV R1, #0\n" 787 " ADD R0, R4, #8\n" 788 " BL sub_FFC704E0\n" 789 " LDRSH R0, [R4,#0xE]\n" 790 " BL sub_FFC83B1C\n" 791 " LDR R4, =0xBB8\n" 792 " CMP R6, #1\n" 793 " BNE loc_FFC8DCA8\n" 794 " LDR R0, [R7,#0x1C]\n" 795 " MOV R2, R4\n" 796 " MOV R1, #2\n" 797 " BL sub_FFC172F0\n" 798 " TST R0, #1\n" 799 " LDRNE R1, =0x532\n" 800 " LDRNE R0, =0xffc8d25c\n" // "ExpDrv.c" 801 " BLNE sub_FFC0BDB8\n" 802 "loc_FFC8DCA8:\n" 803 " CMP R5, #1\n" 804 " LDMNEFD SP!, {R4-R8,PC}\n" 805 " LDR R0, [R7,#0x1C]\n" 806 " MOV R2, R4\n" 807 " MOV R1, #0x20\n" 808 " BL sub_FFC172F0\n" 809 " TST R0, #1\n" 810 " LDRNE R1, =0x537\n" 811 " LDRNE R0, =0xffc8d25c\n" // "ExpDrv.c" 812 " LDMNEFD SP!, {R4-R8,LR}\n" 813 " BNE sub_FFC0BDB8\n" 814 " LDMFD SP!, {R4-R8,PC}\n" 815 */ 816 ); 817 } 818 819 820 void __attribute__((naked,noinline)) sub_FFC6FC5C_my() 821 { 822 asm volatile ( 823 " STMFD SP!, {R4-R6,LR}\n" 824 " LDR R5, =0x5FAC\n" 825 " MOV R4, R0\n" 826 " LDR R0, [R5,#4]\n" 827 " CMP R0, #1\n" 828 " LDRNE R1, =0x16D\n" 829 " LDRNE R0, =0xFFC6F9F4\n" 830 " BLNE sub_FFC0BDB8\n" 831 " CMN R4, #0xC00\n" 832 " LDREQSH R4, [R5,#2]\n" 833 " CMN R4, #0xC00\n" 834 " LDREQ R1, =0x173\n" 835 " LDREQ R0, =0xFFC6F9F4\n" 836 " STRH R4, [R5,#2]\n" 837 " BLEQ sub_FFC0BDB8\n" 838 " MOV R0, R4\n" 839 //" BL sub_FFD68398\n" //- 840 " BL apex2us\n" //+ 841 " MOV R4, R0\n" 842 //" BL nullsub\n" 843 //" MOV R0, R4\n" 844 " BL sub_FFCA25DC\n" 845 " TST R0, #1\n" 846 " LDMNEFD SP!, {R4-R6,LR}\n" 847 " MOVNE R1, #0x178\n" 848 " LDRNE R0, =0xFFC6F9F4\n" 849 " BNE sub_FFC0BDB8\n" 850 " LDMFD SP!, {R4-R6,PC}\n" 851 ); 852 } -
trunk/platform/a470/sub/101b/stubs_entry.S
r930 r936 28 28 DEF(physw_run ,0x00001bf0) // Found @0xffc118a8 29 29 DEF(levent_table ,0xffe72ec4) // Found @0xffe72ec4 30 //DEF(FlashParamsTable ,0xffe8fc64) // Found @0xffe8fc64, ** != ** stubs_min = 0xffe961cc (0xFFE961CC) 31 //DEF(movie_status ,0x000051d8) // Found @0xffc45174, ** != ** stubs_min = 0x00005200 (0x5200) 30 DEF(FlashParamsTable ,0xffe8fc64) // Found @0xffe8fc64 31 DEF(movie_status ,0x000051d8) // Found @0xffc45174 32 32 DEF(canon_menu_active ,0x00009014) // Found @0xffd1eec4 33 //DEF(canon_shoot_menu_active ,0x000097e1) // Found @0xffd37684, ** != ** stubs_min = 0x00009718 (0x9718) 33 DEF(canon_shoot_menu_active ,0x000097e1) // Found @0xffd37684 34 34 DEF(playrec_mode ,0x00005348) // Found @0xffc4b760 35 //DEF(zoom_status ,0x0000d020) // Found @0xffde8944, ** != ** stubs_min = 0x0000d7c4 (0xD7C4) 36 //DEF(some_flag_for_af_scan ,0x0000cd9c) // Found @0xffdd73a4, ** != ** stubs_min = 0x0000cdec (0xCDEC) 37 //DEF(zoom_busy ,0x000083a4) // Found @0xffd05d3c, ** != ** stubs_min = 0x00008050 (0x8050) 35 DEF(zoom_status ,0x0000d020) // Found @0xffde8944 36 DEF(some_flag_for_af_scan ,0x0000cd9c) // Found @0xffdd73a4 37 DEF(zoom_busy ,0x000083a4) // Found @0xffd05d3c 38 38 DEF(focus_busy ,0x000082b0) // Found @0xffd018d0 39 //DEF(recreview_hold ,0x00005b3c) // Found @0xffc63e24, ** != ** stubs_min = 0x000095e4 (0x95E4) 39 DEF(recreview_hold ,0x00005b3c) // Found @0xffc63e24 40 40 41 41 // Values below go in 'lib.c': -
trunk/platform/a470/sub/101b/stubs_min.S
r884 r936 1 1 #include "stubs_asm.h" 2 2 3 DEF(FlashParamsTable, 0xFFE961CC) // via GetReservedClusters_Fut_9 4 DEF(movie_status, 0x5200) // 0x51C8 + 0x38 5 DEF(canon_shoot_menu_active, 0x9718) // from http://chdk.setepontos.com/index.php/topic,3368.msg37738.html#msg37738 6 DEF(zoom_status, 0xD7C4) 7 DEF(some_flag_for_af_scan, 0xCDEC) 8 DEF(zoom_busy, 0x8050) //0x803c+14 same as in a590 9 DEF(recreview_hold, 0x95E4) // from http://chdk.setepontos.com/index.php/topic,3368.msg37738.html#msg37738 10 DEF(led_table, 0x22AC) //Found using LEDDrv.c 3 DEF(led_table, 0x22AC) //Found using LEDDrv.c -
trunk/platform/a470/sub/102c/boot.c
r14 r936 14 14 15 15 void boot(); 16 17 void taskCreateHook(int *p) { //function taken from the ixus80 port, adapted of course 18 p-=16; 19 if (p[0]==0xffc905d4) p[0]=(int)exp_drv_task; 20 } 16 21 17 22 //All strings changed, now to change subroutines … … 40 45 for(i=0;i<canon_bss_len/4;i++) 41 46 canon_bss_start[i]=0; 47 48 *(int*)0x1930=(int)taskCreateHook; //from ixus80 port 49 *(int*)0x1934=(int)taskCreateHook; //from ixus80 port (was taskCreateHook2...) 42 50 43 51 /* asm volatile ( -
trunk/platform/a470/sub/102c/capt_seq.c
r14 r936 3 3 #include "core.h" 4 4 5 static long *nrflag = (long*)0x 9F90;5 static long *nrflag = (long*)0x88d8; //found in sub_ffd0d528 6 6 7 7 #include "../../../generic/capt_seq.c" … … 69 69 "LDR R1, [R0]\n" 70 70 71 "LDR R2, =0x1850\n" // DEBUG: Save jumptable-target ...72 "STR R1, [R2]\n" // ...to some unused space. Read and displayed in GUI in core/gui.c73 74 71 "CMP R1, #0x19\n" 75 72 "ADDLS PC, PC, R1,LSL#2\n" … … 255 252 ); 256 253 } //#fe 254 255 256 void __attribute__((naked,noinline)) exp_drv_task() 257 { 258 asm volatile ( 259 " STMFD SP!, {R4-R8,LR}\n" 260 " SUB SP, SP, #0x20\n" 261 " LDR R8, =0xBB8\n" 262 " LDR R7, =0x64FC\n" 263 " LDR R5, =0x3D41C\n" 264 " MOV R0, #0\n" 265 " ADD R6, SP, #0x10\n" 266 " STR R0, [SP,#0xC]\n" 267 "loc_FFC905F4:\n" 268 " LDR R0, [R7,#0x20]\n" 269 " MOV R2, #0\n" 270 " ADD R1, SP, #0x1C\n" 271 " BL sub_FFC1763C\n" 272 " LDR R0, [SP,#0xC]\n" 273 " CMP R0, #1\n" 274 " BNE loc_FFC9063C\n" 275 " LDR R0, [SP,#0x1C]\n" 276 " LDR R0, [R0]\n" 277 " CMP R0, #0x13\n" 278 " CMPNE R0, #0x14\n" 279 " CMPNE R0, #0x15\n" 280 " BEQ loc_FFC90758\n" 281 " CMP R0, #0x27\n" 282 " BEQ loc_FFC90730\n" 283 " ADD R1, SP, #0xC\n" 284 " MOV R0, #0\n" 285 " BL sub_FFC90584\n" 286 "loc_FFC9063C:\n" 287 " LDR R0, [SP,#0x1C]\n" 288 " LDR R1, [R0]\n" 289 " CMP R1, #0x2C\n" 290 " BNE loc_FFC9066C\n" 291 " LDR R0, [SP,#0x1C]\n" 292 " BL sub_FFC91838\n" 293 " LDR R0, [R7,#0x1C]\n" 294 " MOV R1, #1\n" 295 " BL sub_FFC173B8\n" 296 " BL sub_FFC0BB70\n" 297 " ADD SP, SP, #0x20\n" 298 " LDMFD SP!, {R4-R8,PC}\n" 299 "loc_FFC9066C:\n" 300 " CMP R1, #0x2B\n" 301 " BNE loc_FFC90688\n" 302 " LDR R2, [R0,#0x88]!\n" 303 " LDR R1, [R0,#4]\n" 304 " MOV R0, R1\n" 305 " BLX R2\n" 306 " B loc_FFC90BBC\n" 307 "loc_FFC90688:\n" 308 " CMP R1, #0x25\n" 309 " BNE loc_FFC906D8\n" 310 " LDR R0, [R7,#0x1C]\n" 311 " MOV R1, #0x80\n" 312 " BL sub_FFC173EC\n" 313 " LDR R0, =0xFFC8D078\n" 314 " MOV R1, #0x80\n" 315 " BL sub_FFD03A20\n" 316 " LDR R0, [R7,#0x1C]\n" 317 " MOV R2, R8\n" 318 " MOV R1, #0x80\n" 319 " BL sub_FFC172F0\n" 320 " TST R0, #1\n" 321 " LDRNE R1, =0xD1B\n" 322 " BNE loc_FFC9071C\n" 323 "loc_FFC906C4:\n" 324 " LDR R1, [SP,#0x1C]\n" 325 " LDR R0, [R1,#0x8C]\n" 326 " LDR R1, [R1,#0x88]\n" 327 " BLX R1\n" 328 " B loc_FFC90BBC\n" 329 "loc_FFC906D8:\n" 330 " CMP R1, #0x26\n" 331 " BNE loc_FFC90728\n" 332 " ADD R1, SP, #0xC\n" 333 " BL sub_FFC90584\n" 334 " LDR R0, [R7,#0x1C]\n" 335 " MOV R1, #0x100\n" 336 " BL sub_FFC173EC\n" 337 " LDR R0, =0xFFC8D088\n" 338 " MOV R1, #0x100\n" 339 " BL sub_FFD03CA8\n" 340 " LDR R0, [R7,#0x1C]\n" 341 " MOV R2, R8\n" 342 " MOV R1, #0x100\n" 343 " BL sub_FFC172F0\n" 344 " TST R0, #1\n" 345 " BEQ loc_FFC906C4\n" 346 " LDR R1, =0xD25\n" 347 "loc_FFC9071C:\n" 348 " LDR R0, =0xffc8d778\n" // "ExpDrv.c" 349 " BL sub_FFC0BDB8\n" 350 " B loc_FFC906C4\n" 351 "loc_FFC90728:\n" 352 " CMP R1, #0x27\n" 353 " BNE loc_FFC90740\n" 354 "loc_FFC90730:\n" 355 " LDR R0, [SP,#0x1C]\n" 356 " ADD R1, SP, #0xC\n" 357 " BL sub_FFC90584\n" 358 " B loc_FFC906C4\n" 359 "loc_FFC90740:\n" 360 " CMP R1, #0x2A\n" 361 " BNE loc_FFC90758\n" 362 " BL sub_FFC7042C\n" 363 " BL sub_FFC711F8\n" 364 " BL sub_FFC70C7C\n" 365 " B loc_FFC906C4\n" 366 "loc_FFC90758:\n" 367 " LDR R0, [SP,#0x1C]\n" 368 " MOV R4, #1\n" 369 " LDR R1, [R0]\n" 370 " CMP R1, #0x11\n" 371 " CMPNE R1, #0x12\n" 372 " BNE loc_FFC907C8\n" 373 " LDR R1, [R0,#0x7C]\n" 374 " ADD R1, R1, R1,LSL#1\n" 375 " ADD R1, R0, R1,LSL#2\n" 376 " SUB R1, R1, #8\n" 377 " LDMIA R1, {R2-R4}\n" 378 " STMIA R6, {R2-R4}\n" 379 " BL sub_FFC8F104\n" 380 " LDR R0, [SP,#0x1C]\n" 381 " LDR R1, [R0,#0x7C]\n" 382 " LDR R3, [R0,#0x88]\n" 383 " LDR R2, [R0,#0x8C]\n" 384 " ADD R0, R0, #4\n" 385 " BLX R3\n" 386 " LDR R0, [SP,#0x1C]\n" 387 " BL sub_FFC91C10\n" 388 " LDR R0, [SP,#0x1C]\n" 389 " LDR R1, [R0,#0x7C]\n" 390 " LDR R3, [R0,#0x90]\n" 391 " LDR R2, [R0,#0x94]\n" 392 " ADD R0, R0, #4\n" 393 " BLX R3\n" 394 " B loc_FFC90AFC\n" 395 "loc_FFC907C8:\n" 396 " CMP R1, #0x13\n" 397 " CMPNE R1, #0x14\n" 398 " CMPNE R1, #0x15\n" 399 " BNE loc_FFC9087C\n" 400 " ADD R3, SP, #0xC\n" 401 " MOV R2, SP\n" 402 " ADD R1, SP, #0x10\n" 403 " BL sub_FFC8F34C\n" 404 " CMP R0, #1\n" 405 " MOV R4, R0\n" 406 " CMPNE R4, #5\n" 407 " BNE loc_FFC90818\n" 408 " LDR R0, [SP,#0x1C]\n" 409 " MOV R2, R4\n" 410 " LDR R1, [R0,#0x7C]!\n" 411 " LDR R12, [R0,#0xC]!\n" 412 " LDR R3, [R0,#4]\n" 413 " MOV R0, SP\n" 414 " BLX R12\n" 415 " B loc_FFC90850\n" 416 "loc_FFC90818:\n" 417 " LDR R0, [SP,#0x1C]\n" 418 " CMP R4, #2\n" 419 " LDR R3, [R0,#0x8C]\n" 420 " CMPNE R4, #6\n" 421 " BNE loc_FFC90864\n" 422 " LDR R12, [R0,#0x88]\n" 423 " MOV R0, SP\n" 424 " MOV R2, R4\n" 425 " MOV R1, #1\n" 426 " BLX R12\n" 427 " LDR R0, [SP,#0x1C]\n" 428 " MOV R2, SP\n" 429 " ADD R1, SP, #0x10\n" 430 " BL sub_FFC902D0\n" 431 "loc_FFC90850:\n" 432 " LDR R0, [SP,#0x1C]\n" 433 " LDR R2, [SP,#0xC]\n" 434 " MOV R1, R4\n" 435 " BL sub_FFC90524\n" 436 " B loc_FFC90AFC\n" 437 "loc_FFC90864:\n" 438 " LDR R1, [R0,#0x7C]\n" 439 " LDR R12, [R0,#0x88]\n" 440 " ADD R0, R0, #4\n" 441 " MOV R2, R4\n" 442 " BLX R12\n" 443 " B loc_FFC90AFC\n" 444 "loc_FFC9087C:\n" 445 " CMP R1, #0x21\n" 446 " CMPNE R1, #0x22\n" 447 " BNE loc_FFC908C8\n" 448 " LDR R1, [R0,#0x7C]\n" 449 " ADD R1, R1, R1,LSL#1\n" 450 " ADD R1, R0, R1,LSL#2\n" 451 " SUB R1, R1, #8\n" 452 " LDMIA R1, {R2-R4}\n" 453 " STMIA R6, {R2-R4}\n" 454 " BL sub_FFC8E690\n" 455 " LDR R0, [SP,#0x1C]\n" 456 " LDR R1, [R0,#0x7C]\n" 457 " LDR R3, [R0,#0x88]\n" 458 " LDR R2, [R0,#0x8C]\n" 459 " ADD R0, R0, #4\n" 460 " BLX R3\n" 461 " LDR R0, [SP,#0x1C]\n" 462 " BL sub_FFC8E980\n" 463 " B loc_FFC90AFC\n" 464 "loc_FFC908C8:\n" 465 " ADD R1, R0, #4\n" 466 " LDMIA R1, {R2,R3,R12}\n" 467 " STMIA R6, {R2,R3,R12}\n" 468 " LDR R1, [R0]\n" 469 " CMP R1, #0x24\n" 470 " ADDLS PC, PC, R1,LSL#2\n" 471 " B loc_FFC90ADC\n" //default case 472 "loc_FFC908E4:\n" 473 " B loc_FFC90978\n" 474 "loc_FFC908E8:\n" 475 " B loc_FFC90978\n" 476 "loc_FFC908EC:\n" 477 " B loc_FFC90980\n" 478 "loc_FFC908F0:\n" 479 " B loc_FFC90988\n" 480 "loc_FFC908F4:\n" 481 " B loc_FFC90988\n" 482 "loc_FFC908F8:\n" 483 " B loc_FFC90988\n" 484 "loc_FFC908FC:\n" 485 " B loc_FFC90978\n" 486 "loc_FFC90900:\n" 487 " B loc_FFC90980\n" 488 "loc_FFC90904:\n" 489 " B loc_FFC90988\n" 490 "loc_FFC90908:\n" 491 " B loc_FFC90988\n" 492 "loc_FFC9090C:\n" 493 " B loc_FFC909E4\n" 494 "loc_FFC90910:\n" 495 " B loc_FFC909E4\n" 496 "loc_FFC90914:\n" 497 " B loc_FFC90AD0\n" 498 "loc_FFC90918:\n" 499 " B loc_FFC90AD8\n" 500 "loc_FFC9091C:\n" 501 " B loc_FFC90AD8\n" 502 "loc_FFC90920:\n" 503 " B loc_FFC90AD8\n" 504 "loc_FFC90924:\n" 505 " B loc_FFC90AD8\n" 506 "loc_FFC90928:\n" 507 " B loc_FFC90ADC\n" 508 "loc_FFC9092C:\n" 509 " B loc_FFC90ADC\n" 510 "loc_FFC90930:\n" 511 " B loc_FFC90ADC\n" 512 "loc_FFC90934:\n" 513 " B loc_FFC90ADC\n" 514 "loc_FFC90938:\n" 515 " B loc_FFC90ADC\n" 516 "loc_FFC9093C:\n" 517 " B loc_FFC90990\n" 518 "loc_FFC90940:\n" 519 " B loc_FFC90998\n" 520 "loc_FFC90944:\n" 521 " B loc_FFC90998\n" 522 "loc_FFC90948:\n" 523 " B loc_FFC909F0\n" 524 "loc_FFC9094C:\n" 525 " B loc_FFC909F0\n" 526 "loc_FFC90950:\n" 527 " B loc_FFC909F8\n" 528 "loc_FFC90954:\n" 529 " B loc_FFC90A28\n" 530 "loc_FFC90958:\n" 531 " B loc_FFC90A58\n" 532 "loc_FFC9095C:\n" 533 " B loc_FFC90A88\n" 534 "loc_FFC90960:\n" 535 " B loc_FFC90AB8\n" 536 "loc_FFC90964:\n" 537 " B loc_FFC90AB8\n" 538 "loc_FFC90968:\n" 539 " B loc_FFC90ADC\n" 540 "loc_FFC9096C:\n" 541 " B loc_FFC90ADC\n" 542 "loc_FFC90970:\n" 543 " B loc_FFC90AC0\n" 544 "loc_FFC90974:\n" 545 " B loc_FFC90AC8\n" 546 "loc_FFC90978:\n" 547 " BL sub_FFC8D560\n" //cases 0,1,6 548 " B loc_FFC90ADC\n" //default case 549 "loc_FFC90980:\n" 550 " BL sub_FFC8D7F0\n" //cases 2,7 551 " B loc_FFC90ADC\n" //default case 552 "loc_FFC90988:\n" 553 " BL sub_FFC8D9F4\n" //cases 3-5,8,9 554 " B loc_FFC90ADC\n" //default case 555 "loc_FFC90990:\n" 556 " BL sub_FFC8DC5C\n" //case 22 557 " B loc_FFC90ADC\n" //default case 558 "loc_FFC90998:\n" 559 " BL sub_FFC8DE50\n" //cases 23,24 560 " B loc_FFC90ADC\n" //default case 561 "loc_FFC909E4:\n" 562 " BL sub_FFC8E0B8_my\n" //cases 10,11 -> 563 " MOV R4, #0\n" 564 " B loc_FFC90ADC\n" //default case 565 "loc_FFC909F0:\n" 566 " BL sub_FFC8E1F4\n" //cases 25,26 567 " B loc_FFC90ADC\n" //default case 568 "loc_FFC909F8:\n" 569 " LDRH R1, [R0,#4]\n" //case 27 570 " STRH R1, [SP,#0x10]\n" 571 " LDRH R1, [R5,#2]\n" 572 " STRH R1, [SP,#0x12]\n" 573 " LDRH R1, [R5,#4]\n" 574 " STRH R1, [SP,#0x14]\n" 575 " LDRH R1, [R5,#6]\n" 576 " STRH R1, [SP,#0x16]\n" 577 " LDRH R1, [R0,#0xC]\n" 578 " STRH R1, [SP,#0x18]\n" 579 " BL sub_FFC918AC\n" 580 " B loc_FFC90ADC\n" //default case 581 "loc_FFC90A28:\n" 582 " LDRH R1, [R0,#4]\n" //case 28 583 " STRH R1, [SP,#0x10]\n" 584 " LDRH R1, [R5,#2]\n" 585 " STRH R1, [SP,#0x12]\n" 586 " LDRH R1, [R5,#4]\n" 587 " STRH R1, [SP,#0x14]\n" 588 " LDRH R1, [R5,#6]\n" 589 " STRH R1, [SP,#0x16]\n" 590 " LDRH R1, [R5,#8]\n" 591 " STRH R1, [SP,#0x18]\n" 592 " BL sub_FFC91A2C\n" 593 " B loc_FFC90ADC\n" //default case 594 "loc_FFC90A58:\n" 595 " LDRH R1, [R5]\n" //case 29 596 " STRH R1, [SP,#0x10]\n" 597 " LDRH R1, [R0,#6]\n" 598 " STRH R1, [SP,#0x12]\n" 599 " LDRH R1, [R5,#4]\n" 600 " STRH R1, [SP,#0x14]\n" 601 " LDRH R1, [R5,#6]\n" 602 " STRH R1, [SP,#0x16]\n" 603 " LDRH R1, [R5,#8]\n" 604 " STRH R1, [SP,#0x18]\n" 605 " BL sub_FFC91AD8\n" 606 " B loc_FFC90ADC\n" //default case 607 "loc_FFC90A88:\n" 608 " LDRH R1, [R5]\n" //case 30 609 " STRH R1, [SP,#0x10]\n" 610 " LDRH R1, [R5,#2]\n" 611 " STRH R1, [SP,#0x12]\n" 612 " LDRH R1, [R5,#4]\n" 613 " STRH R1, [SP,#0x14]\n" 614 " LDRH R1, [R5,#6]\n" 615 " STRH R1, [SP,#0x16]\n" 616 " LDRH R1, [R0,#0xC]\n" 617 " STRH R1, [SP,#0x18]\n" 618 " BL sub_FFC91B78\n" 619 " B loc_FFC90ADC\n" //default case 620 "loc_FFC90AB8:\n" 621 " BL sub_FFC8E468\n" //cases 31,32 622 " B loc_FFC90ADC\n" //default case 623 "loc_FFC90AC0:\n" 624 " BL sub_FFC8EA84\n" //case 35 625 " B loc_FFC90ADC\n" //default case 626 "loc_FFC90AC8:\n" 627 " BL sub_FFC8ECBC\n" //case 36 628 " B loc_FFC90ADC\n" //default case 629 "loc_FFC90AD0:\n" 630 " BL sub_FFC8EE34\n" //case 12 631 " B loc_FFC90ADC\n" //default case 632 "loc_FFC90AD8:\n" 633 " BL sub_FFC8EFCC\n" //cases 13-16 634 "loc_FFC90ADC:\n" 635 " LDR R0, [SP,#0x1C]\n" //default case 636 " LDR R1, [R0,#0x7C]\n" 637 " LDR R3, [R0,#0x88]\n" 638 " LDR R2, [R0,#0x8C]\n" 639 " ADD R0, R0, #4\n" 640 " BLX R3\n" 641 " CMP R4, #1\n" 642 " BNE loc_FFC90B44\n" 643 "loc_FFC90AFC:\n" 644 " LDR R0, [SP,#0x1C]\n" 645 " MOV R2, #0xC\n" 646 " LDR R1, [R0,#0x7C]\n" 647 " ADD R1, R1, R1,LSL#1\n" 648 " ADD R0, R0, R1,LSL#2\n" 649 " SUB R4, R0, #8\n" 650 " LDR R0, =0x3D41C\n" 651 " ADD R1, SP, #0x10\n" 652 " BL sub_FFE4EA44\n" 653 " LDR R0, =0x3D428\n" 654 " MOV R2, #0xC\n" 655 " ADD R1, SP, #0x10\n" 656 " BL sub_FFE4EA44\n" 657 " LDR R0, =0x3D434\n" 658 " MOV R2, #0xC\n" 659 " MOV R1, R4\n" 660 " BL sub_FFE4EA44\n" 661 " B loc_FFC90BBC\n" 662 "loc_FFC90B44:\n" 663 " LDR R0, [SP,#0x1C]\n" 664 " LDR R0, [R0]\n" 665 " CMP R0, #0xB\n" 666 " BNE loc_FFC90B8C\n" 667 " MOV R3, #0\n" 668 " STR R3, [SP]\n" 669 " MOV R3, #1\n" 670 " MOV R2, #1\n" 671 " MOV R1, #1\n" 672 " MOV R0, #0\n" 673 " BL sub_FFC8D368\n" 674 " MOV R3, #0\n" 675 " STR R3, [SP]\n" 676 " MOV R3, #1\n" 677 " MOV R2, #1\n" 678 " MOV R1, #1\n" 679 " MOV R0, #0\n" 680 " B loc_FFC90BB8\n" 681 "loc_FFC90B8C:\n" 682 " MOV R3, #1\n" 683 " MOV R2, #1\n" 684 " MOV R1, #1\n" 685 " MOV R0, #1\n" 686 " STR R3, [SP]\n" 687 " BL sub_FFC8D368\n" 688 " MOV R3, #1\n" 689 " MOV R2, #1\n" 690 " MOV R1, #1\n" 691 " MOV R0, #1\n" 692 " STR R3, [SP]\n" 693 "loc_FFC90BB8:\n" 694 " BL sub_FFC8D4A8\n" 695 "loc_FFC90BBC:\n" 696 " LDR R0, [SP,#0x1C]\n" 697 " BL sub_FFC91838\n" 698 " B loc_FFC905F4\n" 699 ); 700 } 701 702 703 void __attribute__((naked,noinline)) sub_FFC8E0B8_my() 704 { 705 asm volatile ( 706 " STMFD SP!, {R4-R8,LR}\n" 707 " LDR R7, =0x64FC\n" 708 " MOV R4, R0\n" 709 " LDR R0, [R7,#0x1C]\n" 710 " MOV R1, #0x3E\n" 711 " BL sub_FFC173EC\n" 712 " LDRSH R0, [R4,#4]\n" 713 " MOV R2, #0\n" 714 " MOV R1, #0\n" 715 " BL sub_FFC8D0FC\n" 716 " MOV R6, R0\n" 717 " LDRSH R0, [R4,#6]\n" 718 " BL sub_FFC8D208\n" 719 " LDRSH R0, [R4,#8]\n" 720 " BL sub_FFC8D260\n" 721 " LDRSH R0, [R4,#0xA]\n" 722 " BL sub_FFC8D2B8\n" 723 " LDRSH R0, [R4,#0xC]\n" 724 " BL sub_FFC8D310\n" 725 " MOV R5, R0\n" 726 " LDR R0, [R4]\n" 727 " LDR R8, =0x3D434\n" 728 " CMP R0, #0xB\n" 729 " MOVEQ R6, #0\n" 730 " MOVEQ R5, #0\n" 731 " BEQ loc_FFC8E148\n" 732 " CMP R6, #1\n" 733 " BNE loc_FFC8E148\n" 734 " LDRSH R0, [R4,#4]\n" 735 " LDR R1, =0xFFC8D068\n" 736 " MOV R2, #2\n" 737 " BL sub_FFD03B74\n" 738 " STRH R0, [R4,#4]\n" 739 " MOV R0, #0\n" 740 " STR R0, [R7,#0x28]\n" 741 " B loc_FFC8E150\n" 742 "loc_FFC8E148:\n" 743 " LDRH R0, [R8]\n" 744 " STRH R0, [R4,#4]\n" 745 "loc_FFC8E150:\n" 746 " CMP R5, #1\n" 747 " LDRNEH R0, [R8,#8]\n" 748 " BNE loc_FFC8E16C\n" 749 " LDRSH R0, [R4,#0xC]\n" 750 " MOV R2, #0x20\n" 751 " LDR R1, =0xFFC8D0EC\n" 752 " BL sub_FFC91868\n" 753 "loc_FFC8E16C:\n" 754 " STRH R0, [R4,#0xC]\n" 755 " LDRSH R0, [R4,#6]\n" 756 " BL sub_FFC70178_my\n" // -> 757 " LDR PC, =0xFFC8E178\n" // + continue in ROM 758 /* removed to spare some bytes - 759 " LDRSH R0, [R4,#8]\n" 760 " MOV R1, #1\n" 761 " BL sub_FFC70974\n" 762 " MOV R1, #0\n" 763 " ADD R0, R4, #8\n" 764 " BL sub_FFC709FC\n" 765 " LDRSH R0, [R4,#0xE]\n" 766 " BL sub_FFC84038\n" 767 " LDR R4, =0xBB8\n" 768 " CMP R6, #1\n" 769 " BNE loc_FFC8E1C4\n" 770 " LDR R0, [R7,#0x1C]\n" 771 " MOV R2, R4\n" 772 " MOV R1, #2\n" 773 " BL sub_FFC172F0\n" 774 " TST R0, #1\n" 775 " LDRNE R1, =0x532\n" 776 " LDRNE R0, =0xffc8d778\n" // "ExpDrv.c" 777 " BLNE sub_FFC0BDB8\n" 778 "loc_FFC8E1C4:\n" 779 " CMP R5, #1\n" 780 " LDMNEFD SP!, {R4-R8,PC}\n" 781 " LDR R0, [R7,#0x1C]\n" 782 " MOV R2, R4\n" 783 " MOV R1, #0x20\n" 784 " BL sub_FFC172F0\n" 785 " TST R0, #1\n" 786 " LDRNE R1, =0x537\n" 787 " LDRNE R0, =0xffc8d778\n" // "ExpDrv.c" 788 " LDMNEFD SP!, {R4-R8,LR}\n" 789 " BNE sub_FFC0BDB8\n" 790 " LDMFD SP!, {R4-R8,PC}\n" 791 */ 792 ); 793 } 794 795 796 void __attribute__((naked,noinline)) sub_FFC70178_my() 797 { 798 asm volatile ( 799 " STMFD SP!, {R4-R6,LR}\n" 800 " LDR R5, =0x5FD4\n" 801 " MOV R4, R0\n" 802 " LDR R0, [R5,#4]\n" 803 " CMP R0, #1\n" 804 " LDRNE R1, =0x16D\n" 805 " LDRNE R0, =0xffc6ff10\n" // "Shutter.c" 806 " BLNE sub_FFC0BDB8\n" 807 " CMN R4, #0xC00\n" 808 " LDREQSH R4, [R5,#2]\n" 809 " CMN R4, #0xC00\n" 810 " LDREQ R1, =0x173\n" 811 " LDREQ R0, =0xffc6ff10\n" // "Shutter.c" 812 " STRH R4, [R5,#2]\n" 813 " BLEQ sub_FFC0BDB8\n" 814 " MOV R0, R4\n" 815 //" BL sub_FFD68DD8\n" //- 816 " BL apex2us\n" //+ 817 " MOV R4, R0\n" 818 //" BL nullsub\n" //- 819 //" MOV R0, R4\n" //- 820 " BL sub_FFCA2AF8\n" 821 " TST R0, #1\n" 822 " LDMNEFD SP!, {R4-R6,LR}\n" 823 " MOVNE R1, #0x178\n" 824 " LDRNE R0, =0xffc6ff10\n" // "Shutter.c" 825 " BNE sub_FFC0BDB8\n" 826 " LDMFD SP!, {R4-R6,PC}\n" 827 ); 828 } -
trunk/platform/a470/sub/102c/stubs_entry.S
r930 r936 28 28 DEF(physw_run ,0x00001bf0) // Found @0xffc118a8 29 29 DEF(levent_table ,0xffe73984) // Found @0xffe73984 30 //DEF(FlashParamsTable ,0xffe90724) // Found @0xffe90724, ** != ** stubs_min = 0xffe96c8c (0xFFE96C8C) 30 DEF(FlashParamsTable ,0xffe90724) // Found @0xffe90724 31 31 DEF(movie_status ,0x00005200) // Found @0xffc45690 32 32 DEF(canon_menu_active ,0x00009064) // Found @0xffd1f904 33 //DEF(canon_shoot_menu_active ,0x00009831) // Found @0xffd380c4, ** != ** stubs_min = 0x00009768 (0x9768) 33 DEF(canon_shoot_menu_active ,0x00009831) // Found @0xffd380c4 34 34 DEF(playrec_mode ,0x00005370) // Found @0xffc4bc7c 35 //DEF(zoom_status ,0x0000d070) // Found @0xffde9384, ** != ** stubs_min = 0x0000d7c4 (0xD7C4) 35 DEF(zoom_status ,0x0000d070) // Found @0xffde9384 36 36 DEF(some_flag_for_af_scan ,0x0000cdec) // Found @0xffdd7de4 37 //DEF(zoom_busy ,0x000083d4) // Found @0xffd0677c, ** != ** stubs_min = 0x00008050 (0x8050) 37 DEF(zoom_busy ,0x000083d4) // Found @0xffd0677c 38 38 DEF(focus_busy ,0x000082e0) // Found @0xffd02310 39 //DEF(recreview_hold ,0x00005b64) // Found @0xffc64340, ** != ** stubs_min = 0x00009634 (0x9634) 39 DEF(recreview_hold ,0x00005b64) // Found @0xffc64340 40 40 41 41 // Values below go in 'lib.c': -
trunk/platform/a470/sub/102c/stubs_min.S
r884 r936 1 1 #include "stubs_asm.h" 2 2 3 DEF(FlashParamsTable, 0xFFE96C8C) // via GetReservedClusters_Fut_9 4 DEF(canon_shoot_menu_active, 0x9768) // 0x9768+1 ??BAD 5 DEF(zoom_status, 0xD7C4) 6 DEF(zoom_busy, 0x8050) //0x803c+14 same as in a590 7 DEF(led_table, 0x22AC) //Found using LEDDrv.c 8 DEF(recreview_hold, 0x9634) // ?? found in GetAEIntegralServiceMode_6 3 DEF(led_table, 0x22AC) //Found using LEDDrv.c
Note: See TracChangeset
for help on using the changeset viewer.