Subversion Repositories freemyipod

Rev

Rev 253 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 253 Rev 256
Line 488... Line 488...
488
    void* bitmapdata[10];
488
    void* bitmapdata[10];
489
    uint32_t bitmapsize[10];
489
    uint32_t bitmapsize[10];
490
    uint32_t* script;
490
    uint32_t* script;
491
#define scriptb ((uint8_t*)script)
491
#define scriptb ((uint8_t*)script)
492
    uint32_t dummy;
492
    uint32_t dummy;
-
 
493
    int deleterc = 1;
493
    struct progressbar_state progressbar;
494
    struct progressbar_state progressbar;
494
    bool repartition = false;
495
    bool repartition = false;
495
    bool appleflash;
496
    bool appleflash;
496
    void* syscfgptr;
497
    void* syscfgptr;
497
    int osossize = 0;
498
    int osossize = 0;
Line 525... Line 526...
525
    displaylcd(0, 175, 0, 131, lcdbuffer, 0);
526
    displaylcd(0, 175, 0, 131, lcdbuffer, 0);
526
    backlight_set_fade(32);
527
    backlight_set_fade(32);
527
    backlight_set_brightness(177);
528
    backlight_set_brightness(177);
528
    backlight_on(true);
529
    backlight_on(true);
529
 
530
 
530
    if (*script) remove((char*)&script[1]);
531
    if (*script) deleterc = remove((char*)&script[1]);
531
    script = &script[1 + *script];
532
    script = &script[1 + *script];
532
 
533
 
533
    if (norword[0x400] == 0x53436667) appleflash = false;
534
    if (norword[0x400] == 0x53436667) appleflash = false;
534
    else if (norword[0x1000] == 0x53436667) appleflash = true;
535
    else if (norword[0x1000] == 0x53436667) appleflash = true;
535
    else panic(PANIC_KILLTHREAD, "Boot flash contents are damaged! "
536
    else panic(PANIC_KILLTHREAD, "Boot flash contents are damaged! "
Line 553... Line 554...
553
                repartition = true;
554
                repartition = true;
554
                break;
555
                break;
555
            }
556
            }
556
            else if (button == 4)
557
            else if (button == 4)
557
            {
558
            {
-
 
559
                if (deleterc)
-
 
560
                {
558
                ucl_decompress(bitmapdata[BMPIDX_CANCELLED], bitmapsize[BMPIDX_CANCELLED],
561
                    ucl_decompress(bitmapdata[BMPIDX_CANCELLED], bitmapsize[BMPIDX_CANCELLED],
559
                               bmpbuffer, &dummy);
562
                                   bmpbuffer, &dummy);
560
                memcpy(lcdbuffer, backdrop, 0xb580);
563
                    memcpy(lcdbuffer, backdrop, 0xb580);
561
                renderbmp(lcdbuffer, bmpbuffer, 176);
564
                    renderbmp(lcdbuffer, bmpbuffer, 176);
562
                displaylcd(0, 175, 0, 131, lcdbuffer, 0);
565
                    displaylcd(0, 175, 0, 131, lcdbuffer, 0);
563
                sleep(500000);
566
                    sleep(500000);
564
                button = 0;
567
                    button = 0;
565
                while (!button) wakeup_wait(&eventwakeup, TIMEOUT_BLOCK);
568
                    while (!button) wakeup_wait(&eventwakeup, TIMEOUT_BLOCK);
566
                memcpy((void*)0x2202bf00, "diskmodehotstuff\1\0\0", 20);
569
                    memcpy((void*)0x2202bf00, "diskmodehotstuff\1\0\0", 20);
-
 
570
                }
567
                shutdown(false);
571
                shutdown(false);
568
                reset();
572
                reset();
569
            }
573
            }
570
            button = 0;
574
            button = 0;
571
        }
575
        }
Line 634... Line 638...
634
            free(diaguclptr);
638
            free(diaguclptr);
635
            realloc(newptr, diaguclsize);
639
            realloc(newptr, diaguclsize);
636
            diaguclptr = newptr;
640
            diaguclptr = newptr;
637
        }
641
        }
638
        progressbar_setpos(&progressbar, 70, false);
642
        progressbar_setpos(&progressbar, 70, false);
639
        if (readfw("DNANkbso", &ososptr, &osossize)) osossize = 0;
643
        if (readfw(deleterc ? "DNANkbso" : "DNANsoso", &ososptr, &osossize)) osossize = 0;
640
        if (osossize)
644
        if (osossize)
641
        {
645
        {
642
            if (((uint8_t*)ososptr)[0x64d48] == 0x2b && ((uint8_t*)ososptr)[0x64d54] == 0x34)
646
            if (((uint8_t*)ososptr)[0x64d48] == 0x2b && ((uint8_t*)ososptr)[0x64d54] == 0x34)
643
            {
647
            {
644
                ((uint8_t*)ososptr)[0x64d48] = 0x43;
648
                ((uint8_t*)ososptr)[0x64d48] = 0x43;