Changeset 125


Ignore:
Timestamp:
04/15/07 18:54:49 (7 years ago)
Author:
GrAnd
Message:

Merged with trunk r124

Location:
branches/grand
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • branches/grand/core/conf.c

    r117 r125  
    106106    CONF_INFO( 47, conf.splash_show,            CONF_DEF_VALUE, i:1, NULL), 
    107107    CONF_INFO( 48, conf.histo_color2,           CONF_DEF_VALUE, cl:MAKE_COLOR(COLOR_RED, COLOR_WHITE), NULL), 
     108    CONF_INFO( 49, conf.zebra_draw,             CONF_DEF_VALUE, i:0, NULL), 
    108109}; 
    109110#define CONF_NUM (sizeof(conf_info)/sizeof(conf_info[0])) 
  • branches/grand/core/gui.c

    r117 r125  
    198198    {"Ignore boundary peaks",       MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX,  &conf.histo_ignore_boundary,   MENU_MINMAX(0, 32)}, 
    199199    {"Auto magnify",                MENUITEM_BOOL,      &conf.histo_auto_ajust }, 
     200    {"Draw Zebra (Top Priority)",   MENUITEM_BOOL,      &conf.zebra_draw }, 
    200201    {"<- Back",                     MENUITEM_UP }, 
    201202    {0} 
     
    620621    unsigned int m, n = 0; 
    621622    coord x; 
    622     static int flashlight = 0; 
     623    static int flashlight = 0, zebra = 0; 
    623624     
    624625    m = mode_get(); 
     
    631632        if ((!((m&MODE_SCREEN_OPENED) && (m&MODE_SCREEN_ROTATED))) || (gui_mode!=GUI_MODE_NONE /* && gui_mode!=GUI_MODE_ALT */)) { 
    632633            flashlight = 0; 
     634            draw_restore(); 
     635        } 
     636        return; 
     637    } 
     638 
     639    if (conf.zebra_draw && gui_mode==GUI_MODE_NONE && kbd_is_key_pressed(KEY_SHOOT_HALF)) { 
     640        gui_osd_draw_zebra(); 
     641        zebra = 1; 
     642    } 
     643    if (zebra) { 
     644        if (!kbd_is_key_pressed(KEY_SHOOT_HALF)) { 
     645            zebra = 0; 
    633646            draw_restore(); 
    634647        } 
     
    670683//        long v=get_file_counter(); 
    671684//      sprintf(osd_buf, "1:%03d-%04d  ", (v>>18)&0x3FF, (v>>4)&0x3FFF); 
    672         sprintf(osd_buf, "1:%8lx  ", ~physw_status[2]); 
     685//      sprintf(osd_buf, "1:%d, %08X  ", xxxx, eeee); 
     686        sprintf(osd_buf, "1:%8x  ", physw_status[0]); 
    673687        draw_txt_string(28, 10, osd_buf, conf.osd_color); 
    674688 
    675 //      sprintf(osd_buf, "2:%d, %08X  ", xxxx, eeee); 
    676         sprintf(osd_buf, "2:%8ld  ", get_tick_count()); 
     689        sprintf(osd_buf, "2:%8x  ", physw_status[1]); 
    677690        draw_txt_string(28, 11, osd_buf, conf.osd_color); 
    678691 
    679         sprintf(osd_buf, "3:%d %d ", state_expos_under, state_expos_over); 
     692        sprintf(osd_buf, "3:%8x  ", physw_status[2]); 
    680693        draw_txt_string(28, 12, osd_buf, conf.osd_color); 
    681694    } 
  • branches/grand/core/gui_osd.c

    r120 r125  
    3232static char osd_buf[40]; 
    3333static int step; 
     34static unsigned char *img_buf, *scr_buf; 
     35 
    3436 
    3537//------------------------------------------------------------------- 
     
    155157 
    156158//------------------------------------------------------------------- 
     159void gui_osd_draw_zebra() { 
     160    register unsigned int i, j; 
     161    static int timer = 0; 
     162    static char *buf = NULL; 
     163 
     164    img_buf = vid_get_viewport_fb(); 
     165    scr_buf = vid_get_bitmap_fb(); 
     166    if (!buf) buf = malloc(screen_size); 
     167 
     168    if ((++timer)&4) { 
     169        memset(scr_buf, COLOR_TRANSPARENT, screen_size*2); 
     170    } else { 
     171        for (i=0, j=1; i<screen_size; ++i, j+=3) { 
     172            buf[i]=(img_buf[j]>254)?COLOR_RED:COLOR_TRANSPARENT; 
     173        } 
     174        memcpy(scr_buf, buf, screen_size); 
     175        memcpy(scr_buf+screen_size, buf, screen_size); 
     176    } 
     177} 
     178 
     179//------------------------------------------------------------------- 
    157180void gui_osd_draw_histo() { 
    158 /* 
    159     // "zebra" 
    160     register unsigned int i; 
    161     unsigned char *img; 
    162  
    163     img=vid_get_viewport_fb(); 
    164     for (i=0;i<screen_size;++i) { 
    165         draw_pixel(i%360, i/360, (img[i*3+1]==255)?COLOR_RED:((img[i*3+1]==0)?COLOR_RED:COLOR_TRANSPARENT)); 
    166     } 
    167     return; 
    168 // */ 
    169  
    170181    switch (conf.histo_layout) { 
    171182        case OSD_HISTO_LAYOUT_Y: 
  • branches/grand/core/gui_osd.h

    r103 r125  
    2121extern void gui_osd_draw_values(); 
    2222extern void gui_osd_draw_clock(); 
     23extern void gui_osd_draw_zebra(); 
     24 
    2325//------------------------------------------------------------------- 
    2426#endif 
  • branches/grand/include/conf.h

    r117 r125  
    3838    int histo_ignore_boundary; 
    3939    int histo_layout; 
     40 
     41    int zebra_draw; 
    4042 
    4143    OSD_pos histo_pos; 
  • branches/grand/loader/s3is/resetcode/main.c

    r119 r125  
    5858        "STR     R1, [R2,#0xFC]\n" 
    5959 
     60#if 0 
    6061        "MOV     R1, #0x78\n" 
    6162        "MCR     p15, 0, R1,c1,c0\n" 
     
    7778        "ADD     R3, R3, #0x4000000C\n" 
    7879        "STR     R1, [R3]\n" 
     80#endif 
    7981 
    8082        "MOV     SP, #0x1900\n" 
  • branches/grand/platform/s3is/kbd.c

    r119 r125  
    1 #include "../generic/kbd.c" 
     1#include "lolevel.h" 
     2#include "platform.h" 
     3#include "core.h" 
     4#include "keyboard.h" 
     5 
     6typedef struct { 
     7        short grp; 
     8        short hackkey; 
     9        long canonkey; 
     10} KeyMap; 
     11 
     12 
     13static long kbd_new_state[3]; 
     14static long kbd_prev_state[3]; 
     15static long kbd_mod_state[3]; 
     16static KeyMap keymap[]; 
     17 
     18#define KEYS_MASK0 (0x00000003) 
     19#define KEYS_MASK1 (0x1d3f6000) 
     20#define KEYS_MASK2 (0x00000000) 
     21 
     22#define NEW_SS (0x2000) 
     23#define SD_READONLY_FLAG (0x20000) 
     24 
     25#ifndef MALLOCD_STACK 
     26static char kbd_stack[NEW_SS]; 
     27#endif 
     28 
     29extern void _platformsub_kbd_fetch_data(long*); 
     30long __attribute__((naked)) wrap_kbd_p1_f() ; 
     31 
     32static void __attribute__((noinline)) mykbd_task_proceed() 
     33{ 
     34    while (physw_run){ 
     35        _SleepTask(10); 
     36 
     37        if (wrap_kbd_p1_f() == 1){ // autorepeat ? 
     38            _kbd_p2_f(); 
     39        } 
     40    } 
     41} 
     42 
     43void __attribute__((naked,noinline)) 
     44mykbd_task(long ua, long ub, long uc, long ud, long ue, long uf) 
     45{ 
     46    /* WARNING 
     47     * Stack pointer manipulation performed here! 
     48     * This means (but not limited to): 
     49     *  function arguments destroyed; 
     50     *  function CAN NOT return properly; 
     51     *  MUST NOT call or use stack variables before stack 
     52     *  is setup properly; 
     53     * 
     54     */ 
     55 
     56    register int i; 
     57    register long *newstack; 
     58 
     59#ifndef MALLOCD_STACK 
     60    newstack = (void*)kbd_stack; 
     61#else 
     62    newstack = malloc(NEW_SS); 
     63#endif 
     64 
     65    for (i=0;i<NEW_SS/4;i++) 
     66        newstack[i]=0xdededede; 
     67 
     68    asm volatile ( 
     69        "MOV    SP, %0" 
     70        :: "r"(((char*)newstack)+NEW_SS) 
     71        : "memory" 
     72    ); 
     73 
     74    mykbd_task_proceed(); 
     75 
     76    /* function can be modified to restore SP here... 
     77     */ 
     78 
     79    _ExitTask(); 
     80} 
     81 
     82 
     83long __attribute__((naked,noinline)) wrap_kbd_p1_f() 
     84{ 
     85 
     86    asm volatile( 
     87                "STMFD   SP!, {R4-R7,LR}\n" 
     88                "SUB     SP, SP, #0xC\n" 
     89                "BL      my_kbd_read_keys\n" 
     90                "B       _kbd_p1_f_cont\n" 
     91    ); 
     92    return 0; // shut up the compiler 
     93} 
     94 
     95 
     96void my_kbd_read_keys() 
     97{ 
     98    kbd_prev_state[0] = kbd_new_state[0]; 
     99    kbd_prev_state[1] = kbd_new_state[1]; 
     100    kbd_prev_state[2] = kbd_new_state[2]; 
     101 
     102    _platformsub_kbd_fetch_data(kbd_new_state); 
     103 
     104    if (kbd_process() == 0){ 
     105        // leave it alone... 
     106        physw_status[0] = kbd_new_state[0]; 
     107        physw_status[1] = kbd_new_state[1]; 
     108        physw_status[2] = kbd_new_state[2]; 
     109    } else { 
     110        // override keys 
     111        physw_status[0] = (kbd_new_state[0] & (~KEYS_MASK0)) | 
     112                          (kbd_mod_state[0] & KEYS_MASK0); 
     113 
     114        physw_status[1] = (kbd_new_state[1] & (~KEYS_MASK1)) | 
     115                          (kbd_mod_state[1] & KEYS_MASK1); 
     116 
     117        physw_status[2] = (kbd_new_state[2] & (~KEYS_MASK2)) | 
     118                          (kbd_mod_state[2] & KEYS_MASK2); 
     119    } 
     120 
     121    _kbd_read_keys_r2(physw_status); 
     122    physw_status[2] = physw_status[2] & ~SD_READONLY_FLAG; 
     123 
     124} 
     125 
     126/****************/ 
     127 
     128 
     129void kbd_key_press(long key) 
     130{ 
     131    int i; 
     132    for (i=0;keymap[i].hackkey;i++){ 
     133        if (keymap[i].hackkey == key){ 
     134            kbd_mod_state[keymap[i].grp] &= ~keymap[i].canonkey; 
     135            return; 
     136        } 
     137    } 
     138} 
     139 
     140void kbd_key_release(long key) 
     141{ 
     142    int i; 
     143    for (i=0;keymap[i].hackkey;i++){ 
     144        if (keymap[i].hackkey == key){ 
     145            kbd_mod_state[keymap[i].grp] |= keymap[i].canonkey; 
     146            return; 
     147        } 
     148    } 
     149} 
     150 
     151void kbd_key_release_all() 
     152{ 
     153  kbd_mod_state[0] |= KEYS_MASK0; 
     154  kbd_mod_state[1] |= KEYS_MASK1; 
     155  kbd_mod_state[2] |= KEYS_MASK2; 
     156} 
     157 
     158long kbd_is_key_pressed(long key) 
     159{ 
     160    int i; 
     161    for (i=0;keymap[i].hackkey;i++){ 
     162        if (keymap[i].hackkey == key){ 
     163            return ((kbd_new_state[keymap[i].grp] & keymap[i].canonkey) == 0) ? 1:0; 
     164        } 
     165    } 
     166    return 0; 
     167} 
     168 
     169long kbd_is_key_clicked(long key) 
     170{ 
     171    int i; 
     172    for (i=0;keymap[i].hackkey;i++){ 
     173        if (keymap[i].hackkey == key){ 
     174            return ((kbd_prev_state[keymap[i].grp] & keymap[i].canonkey) != 0) && 
     175                    ((kbd_new_state[keymap[i].grp] & keymap[i].canonkey) == 0); 
     176        } 
     177    } 
     178    return 0; 
     179} 
     180 
     181long kbd_get_pressed_key() 
     182{ 
     183    int i; 
     184    for (i=0;keymap[i].hackkey;i++){ 
     185        if ((kbd_new_state[keymap[i].grp] & keymap[i].canonkey) == 0){ 
     186            return keymap[i].hackkey; 
     187        } 
     188    } 
     189    return 0; 
     190} 
     191 
     192long kbd_get_clicked_key() 
     193{ 
     194    int i; 
     195    for (i=0;keymap[i].hackkey;i++){ 
     196        if (((kbd_prev_state[keymap[i].grp] & keymap[i].canonkey) != 0) && 
     197            ((kbd_new_state[keymap[i].grp] & keymap[i].canonkey) == 0)){ 
     198            return keymap[i].hackkey; 
     199        } 
     200    } 
     201    return 0; 
     202} 
     203 
    2204 
    3205static KeyMap keymap[] = { 
     
    5207     * for example 
    6208     */ 
    7         { KEY_UP        , 0x00000001 }, 
    8         { KEY_DOWN      , 0x00000002 }, 
    9         { KEY_LEFT      , 0x00000008 }, 
    10         { KEY_RIGHT     , 0x00000004 }, 
    11         { KEY_SET       , 0x00000100 }, 
    12         { KEY_SHOOT_FULL, 0x00000030 }, // note 3 here! 
    13         { KEY_SHOOT_HALF, 0x00000010 }, 
    14         { KEY_ZOOM_IN   , 0x00000040 }, 
    15         { KEY_ZOOM_OUT  , 0x00000080 }, 
    16         { KEY_MENU      , 0x00000200 }, 
    17         { KEY_DISPLAY   , 0x00000400 }, 
    18         { KEY_PRINT     , 0x00001000 }, 
    19         { KEY_ERASE     , 0x00000800 }, 
    20         { 0, 0 } 
     209        { 1, KEY_UP             , 0x00020000 }, 
     210        { 1, KEY_DOWN           , 0x00080000 }, 
     211        { 1, KEY_LEFT           , 0x00010000 }, 
     212        { 1, KEY_RIGHT          , 0x00040000 }, 
     213        { 1, KEY_SET            , 0x00100000 }, 
     214        { 0, KEY_SHOOT_FULL     , 0x00000003 }, 
     215        { 0, KEY_SHOOT_HALF     , 0x00000001 }, 
     216        { 1, KEY_ZOOM_IN        , 0x10000000 }, 
     217        { 1, KEY_ZOOM_IN        , 0x08000000 }, 
     218        { 1, KEY_ZOOM_OUT       , 0x01000000 }, 
     219        { 1, KEY_ZOOM_OUT       , 0x05000000 }, 
     220        { 1, KEY_MENU           , 0x00200000 }, 
     221        { 1, KEY_DISPLAY        , 0x00002000 }, 
     222        { 1, KEY_PRINT          , 0x00004000 }, 
     223        { 1, KEY_ERASE          , 0x04000000 }, 
     224        { 0, 0, 0 } 
    21225}; 
    22226 
    23 // just use an original one 
    24 extern void platformsub_kbd_fetch_data(long*); 
    25 void kbd_fetch_data(long *dst) 
    26 { 
    27     _platformsub_kbd_fetch_data(dst); 
    28 } 
    29  
  • branches/grand/platform/s3is/shooting.c

    r119 r125  
    1 #define PARAM_FILE_COUNTER      0x2F 
     1#define PARAM_FILE_COUNTER      0x34 
    22 
    33#include "../generic/shooting.c" 
     
    2222long get_file_next_counter() 
    2323{ 
    24     return ((get_file_counter()>>4)+1)<<4; 
     24    return get_file_counter(); 
    2525} 
  • branches/grand/platform/s3is/sub/100a/stubs_entry.S

    r119 r125  
    33 
    44NSTUB(AllocateMemory, 0xff811ac4) 
    5 NSTUB(close, 0xffb54198) 
    65NSTUB(Close, 0xff8713c4) 
    76NSTUB(CreatePhysicalVram, 0xff942824) 
     
    98NSTUB(CreateTaskStrict, 0xff8226f8) 
    109NSTUB(DisableDispatch, 0xff82147c) 
    11 // Best match: 95% 
     10// Best match: 96% 
    1211NSTUB(DisplayImagePhysicalScreen, 0xff941b58) 
    1312NSTUB(EnableDispatch, 0xff821508) 
     
    1514NSTUB(ExitTask, 0xff821a18) 
    1615NSTUB(FreeMemory, 0xff811ad0) 
    17 // Best match: 84% 
     16NSTUB(GetCurrentAvValue, 0xffb0a538) 
     17// ALT: NSTUB(GetCurrentAvValue, 0xffb0c5dc) // 13/0 
     18// Best match: 83% 
     19NSTUB(GetFocusLensSubjectDistance, 0xffaf007c) 
     20// ALT: NSTUB(GetFocusLensSubjectDistance, 0xffaf007c) // 26/5 
     21// Best match: 86% 
    1822NSTUB(GetParameterData, 0xff994b68) 
    1923NSTUB(GetPropertyCase, 0xff82498c) 
    20 // Best match: 95% 
     24// Best match: 96% 
    2125NSTUB(GetSystemTime, 0xff814ee8) 
    22 // ALT: NSTUB(GetSystemTime, 0xff814ee8) // 20/1 
     26// ALT: NSTUB(GetSystemTime, 0xff814ee8) // 26/1 
     27// Best match: 68% 
     28NSTUB(GetZoomLensCurrentPoint, 0xffae8474) 
     29// ALT: NSTUB(GetZoomLensCurrentPoint, 0xffae8474) // 20/9 
     30// Best match: 51% 
     31NSTUB(GetZoomLensCurrentPosition, 0xffae8488) 
     32// ALT: NSTUB(GetZoomLensCurrentPosition, 0xffae8488) // 15/14 
     33NSTUB(IsStrobeChargeCompleted, 0xff91d8c0) 
     34NSTUB(MakeDirectory, 0xff871668) 
     35// Best match: 73% 
     36NSTUB(Mount_FileSystem, 0xff870190) 
     37// ALT: NSTUB(Mount_FileSystem, 0xff870190) // 22/8 
     38NSTUB(Open, 0xff87139c) 
     39// Best match: 89% 
     40NSTUB(PhySw_testgpio, 0xff82835c) 
     41NSTUB(ProtectFile, 0xff869730) 
     42NSTUB(Read, 0xff871458) 
     43NSTUB(RefreshPhysicalScreen, 0xff9a7b10) 
     44NSTUB(Remove, 0xff8713e4) 
     45// Best match: 86% 
     46NSTUB(SetParameterData, 0xff994a88) 
     47NSTUB(SetPropertyCase, 0xff824870) 
     48NSTUB(SleepTask, 0xff82156c) 
     49NSTUB(TakeSemaphore, 0xff821068) 
     50NSTUB(Unmount_FileSystem, 0xff870244) 
     51NSTUB(UpdateMBROnFlash, 0xff8703ec) 
     52// ERROR: VbattGet is not found! 
     53NSTUB(Write, 0xff871464) 
     54NSTUB(_log, 0xffb496c0) 
     55// ALT: NSTUB(_log, 0xffb496c0) // 27/0 
     56NSTUB(_log10, 0xffb45a60) 
     57// ALT: NSTUB(_log10, 0xffb45a60) // 27/0 
     58NSTUB(_pow, 0xffb45be8) 
     59// ALT: NSTUB(_pow, 0xffb45be8) // 25/0 
     60NSTUB(_sqrt, 0xffb47abc) 
     61// ALT: NSTUB(_sqrt, 0xffb47abc) // 24/0 
     62NSTUB(chdir, 0xffb54858) 
     63// ALT: NSTUB(chdir, 0xffb54858) // 27/0 
     64NSTUB(close, 0xffb54198) 
     65NSTUB(closedir, 0xffb51620) 
     66// ERROR: free is not found! 
    2367NSTUB(ints_disable, 0xff81dad8) 
    2468NSTUB(ints_enable, 0xff81dae4) 
     
    2670NSTUB(iosDevAdd, 0xffb553b8) 
    2771NSTUB(iosDrvInstall, 0xffb5567c) 
    28 NSTUB(IsStrobeChargeCompleted, 0xff91d8c0) 
     72NSTUB(isalpha, 0xffb4b6c4) 
     73// ALT: NSTUB(isalpha, 0xffb4b6c4) // 4/0 
     74NSTUB(isdigit, 0xffb4b6f4) 
     75// ALT: NSTUB(isdigit, 0xffb4b6f4) // 4/0 
     76NSTUB(islower, 0xffb4b724) 
     77// ALT: NSTUB(islower, 0xffb4b724) // 4/0 
     78NSTUB(isspace, 0xffb4b76c) 
     79// ALT: NSTUB(isspace, 0xffb4b76c) // 4/0 
     80NSTUB(isupper, 0xffb4b784) 
     81// ALT: NSTUB(isupper, 0xffb4b784) // 4/0 
     82NSTUB(kbd_p1_f, 0xff826d64) 
    2983NSTUB(kbd_p1_f_cont, 0xff826d70) 
    30 NSTUB(kbd_p1_f, 0xff826d64) 
    3184NSTUB(kbd_p2_f, 0xff827140) 
    32 // Best match: 60% 
    33 NSTUB(kbd_pwr_off, 0xff8293ec) 
    34 // ALT: NSTUB(kbd_pwr_off, 0xff829424) // 3/2 
    35 // ALT: NSTUB(kbd_pwr_off, 0xff82956c) // 3/2 
    36 // ALT: NSTUB(kbd_pwr_off, 0xff829588) // 3/2 
    37 // Best match: 60% 
     85// Best match: 83% 
     86NSTUB(kbd_pwr_off, 0xff82956c) 
     87// ALT: NSTUB(kbd_pwr_off, 0xff829588) // 5/1 
     88// Best match: 55% 
    3889NSTUB(kbd_pwr_on, 0xff944170) 
    39 // ALT: NSTUB(kbd_pwr_on, 0xff94419c) // 3/2 
    40 // Best match: 60% 
     90// ALT: NSTUB(kbd_pwr_on, 0xff94419c) // 5/4 
     91// Best match: 57% 
    4192NSTUB(kbd_read_keys_r2, 0xff827bf0) 
     93// Best match: 93% 
     94NSTUB(localtime, 0xffb4fe14) 
    4295NSTUB(lseek, 0xffb542dc) 
    43 NSTUB(MakeDirectory, 0xff871668) 
     96// Best match: 53% 
     97NSTUB(malloc, 0xffb571d8) 
     98// ALT: NSTUB(malloc, 0xffb571d8) // 15/13 
    4499NSTUB(memcmp, 0xffb4f1f4) 
    45100// ALT: NSTUB(memcmp, 0xffb5bdb8) // 9/0 
     
    47102NSTUB(memset, 0xffb4f2a8) 
    48103NSTUB(mkdir, 0xff8715ac) 
    49 // Best match: 85% 
    50 NSTUB(Mount_FileSystem, 0xff870190) 
    51 // ALT: NSTUB(Mount_FileSystem, 0xff870190) // 17/3 
    52104NSTUB(open, 0xffb547dc) 
    53 NSTUB(Open, 0xff87139c) 
    54 // Best match: 86% 
    55 NSTUB(PhySw_testgpio, 0xff82835c) 
    56 NSTUB(ProtectFile, 0xff869730) 
     105NSTUB(opendir, 0xffb51654) 
     106NSTUB(qsort, 0xffb4ea54) 
     107NSTUB(rand, 0xffb4ea78) 
     108// ALT: NSTUB(rand, 0xffb4ea78) // 8/0 
    57109NSTUB(read, 0xffb541f8) 
    58 NSTUB(Read, 0xff871458) 
    59 NSTUB(RefreshPhysicalScreen, 0xff9a7b10) 
    60 // Best match: 84% 
    61 NSTUB(SetParameterData, 0xff994a88) 
    62 NSTUB(SetPropertyCase, 0xff824870) 
    63 NSTUB(SleepTask, 0xff82156c) 
     110NSTUB(readdir, 0xffb515ec) 
     111NSTUB(rename, 0xffb547e4) 
     112// ALT: NSTUB(rename, 0xffb547e4) // 26/0 
     113NSTUB(rewinddir, 0xffb51614) 
     114NSTUB(srand, 0xffb4ea9c) 
     115// ALT: NSTUB(srand, 0xffb4ea9c) // 4/0 
     116NSTUB(stat, 0xffb516e8) 
     117NSTUB(strcat, 0xffb4f2c8) 
     118NSTUB(strchr, 0xffb4f2f4) 
    64119NSTUB(strcmp, 0xffb4f318) 
    65120NSTUB(strcpy, 0xffb4f4ac) 
    66121NSTUB(strlen, 0xffb4f610) 
    67 NSTUB(TakeSemaphore, 0xff821068) 
     122NSTUB(strncmp, 0xffb4f674) 
     123NSTUB(strncpy, 0xffb4f6b8) 
     124// ALT: NSTUB(strncpy, 0xffb4f6b8) // 24/0 
     125NSTUB(strrchr, 0xffb4f73c) 
     126// ALT: NSTUB(strrchr, 0xffb4f73c) // 8/0 
     127NSTUB(strtol, 0xffb4ee90) 
    68128NSTUB(taskCreateHookAdd, 0xffb5a858) 
    69129NSTUB(taskDeleteHookAdd, 0xffb5a794) 
    70 // Best match: 79% 
     130// Best match: 82% 
    71131NSTUB(taskIdListGet, 0xffb64820) 
    72132NSTUB(taskLock, 0xffb64edc) 
     
    75135NSTUB(taskSuspend, 0xffb64928) 
    76136NSTUB(taskUnlock, 0xffb64f84) 
    77 NSTUB(Unmount_FileSystem, 0xff870244) 
    78 NSTUB(UpdateMBROnFlash, 0xff8703ec) 
     137NSTUB(time, 0xffb50b60) 
     138// ALT: NSTUB(time, 0xffb50b60) // 25/0 
     139NSTUB(utime, 0xffb5177c) 
     140// ALT: NSTUB(utime, 0xffb5177c) // 26/0 
    79141NSTUB(vsprintf, 0xffb52f40) 
    80142NSTUB(write, 0xffb54268) 
    81 NSTUB(Write, 0xff871464) 
  • branches/grand/platform/s3is/sub/100a/stubs_entry_2.S

    r119 r125  
    77 
    88NHSTUB(platformsub_kbd_fetch_data, 0xFF8281C4) 
     9NHSTUB(kbd_read_keys_r2, 0xFF827BC0) 
     10 
     11NHSTUB(free, 0xFF811B48) 
     12NHSTUB(malloc, 0xFF811B3C) 
Note: See TracChangeset for help on using the changeset viewer.