📄 smf_uni.c
字号:
/**********
*
* smf_uni.c: SmartMedia File System FAT part
*
* Portable File System designed for SmartMedia
*
* Created by Kim Hyung Gi (03/00) - kimhg@mmrnd.sec.samsung.co.kr
* Samsung Electronics, M/M R&D Center, Visual Communication Group
*
**********
* This file is adopted from EsWin Hangul source code
**********
* KSC5601 -> Unicode 2.0 mapping table, compressed for the 94*94 codeset.
* Generated based on KSC5601.txt at ftp://ftp.unicode.org/Public/MAPPINGS/EASTASIA/KSC
* Unlike kuten-table, needed offset is 33 (0x21) instead of
* 32 for 7-bit portion of each byte. i.e., a Unicode
* codepoint for KSC's codepoint (n, m) would be found at
* index (n-33)*94+m-33.
**********/
#include "smf_fat.h"
#define MAX_UNICODE_TABLE_INDEX 8742 //sizeof(tabksc5601/tabksc5601[0] - 1)
extern unsigned short tabksc5601[];
unsigned short* p_unicode_table = tabksc5601;
unsigned short sm_ConvertCharToUnicode( unsigned char byte1, unsigned char byte2)
{
int tab_idx = ((int)byte1 - 0x00a1) * 94 + (int)byte2 - 0x00a1;
unsigned short code_ucs2;
if ((tab_idx >= 0) && (tab_idx < MAX_UNICODE_TABLE_INDEX))
{
code_ucs2 = p_unicode_table[tab_idx];
if (code_ucs2 != -1)
return (unsigned short)code_ucs2;
}
return 0;
}
int sm_ConvertStrToUnicode(unsigned short *des, unsigned char *src, int len)
{
unsigned short *org;
int count = 0;
org = des;
if(len == 0)
len = SM_STRLEN((char*)src) + 1;
while (len > 0)
{
if (*src & 0x80)
{
*des = sm_ConvertCharToUnicode(*src, *(src+1));
des++;
src += 2;
len -= 2;
}
else
{
*des = 0 ;
*des = *src ;
des++;
src++;
len--;
}
if(++count >= (MAX_FILE_NAME_LEN>>1))
{
*des = 0;
des++;
break;
}
}
return (des - org);
}
unsigned short tabksc5601[] = {
/* KSC 5601 -> Unicode mapping table; max codepoint = 0x7d7e */
0x3000,0x3001,0x3002,0x00B7,0x2025,0x2026,0x00A8,
0x3003,0x00AD,0x2015,0x2225,0xFF3C,0x223C,0x2018,0x2019,
0x201C,0x201D,0x3014,0x3015,0x3008,0x3009,0x300A,0x300B,
0x300C,0x300D,0x300E,0x300F,0x3010,0x3011,0x00B1,0x00D7,
0x00F7,0x2260,0x2264,0x2265,0x221E,0x2234,0x00B0,0x2032,
0x2033,0x2103,0x212B,0xFFE0,0xFFE1,0xFFE5,0x2642,0x2640,
0x2220,0x22A5,0x2312,0x2202,0x2207,0x2261,0x2252,0x00A7,
0x203B,0x2606,0x2605,0x25CB,0x25CF,0x25CE,0x25C7,0x25C6,
0x25A1,0x25A0,0x25B3,0x25B2,0x25BD,0x25BC,0x2192,0x2190,
0x2191,0x2193,0x2194,0x3013,0x226A,0x226B,0x221A,0x223D,
0x221D,0x2235,0x222B,0x222C,0x2208,0x220B,0x2286,0x2287,
0x2282,0x2283,0x222A,0x2229,0x2227,0x2228,0xFFE2,
0x21D2,0x21D4,0x2200,0x2203,0x00B4,0xFF5E,0x02C7,
0x02D8,0x02DD,0x02DA,0x02D9,0x00B8,0x02DB,0x00A1,0x00BF,
0x02D0,0x222E,0x2211,0x220F,0x00A4,0x2109,0x2030,0x25C1,
0x25C0,0x25B7,0x25B6,0x2664,0x2660,0x2661,0x2665,0x2667,
0x2663,0x2299,0x25C8,0x25A3,0x25D0,0x25D1,0x2592,0x25A4,
0x25A5,0x25A8,0x25A7,0x25A6,0x25A9,0x2668,0x260F,0x260E,
0x261C,0x261E,0x00B6,0x2020,0x2021,0x2195,0x2197,0x2199,
0x2196,0x2198,0x266D,0x2669,0x266A,0x266C,0x327F,0x321C,
0x2116,0x33C7,0x2122,0x33C2,0x33D8,0x2121,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xFF01,0xFF02,0xFF03,0xFF04,0xFF05,0xFF06,0xFF07,
0xFF08,0xFF09,0xFF0A,0xFF0B,0xFF0C,0xFF0D,0xFF0E,0xFF0F,
0xFF10,0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17,
0xFF18,0xFF19,0xFF1A,0xFF1B,0xFF1C,0xFF1D,0xFF1E,0xFF1F,
0xFF20,0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,
0xFF28,0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,
0xFF30,0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,
0xFF38,0xFF39,0xFF3A,0xFF3B,0xFFE6,0xFF3D,0xFF3E,0xFF3F,
0xFF40,0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47,
0xFF48,0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F,
0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0xFF57,
0xFF58,0xFF59,0xFF5A,0xFF5B,0xFF5C,0xFF5D,0xFFE3,
0x3131,0x3132,0x3133,0x3134,0x3135,0x3136,0x3137,
0x3138,0x3139,0x313A,0x313B,0x313C,0x313D,0x313E,0x313F,
0x3140,0x3141,0x3142,0x3143,0x3144,0x3145,0x3146,0x3147,
0x3148,0x3149,0x314A,0x314B,0x314C,0x314D,0x314E,0x314F,
0x3150,0x3151,0x3152,0x3153,0x3154,0x3155,0x3156,0x3157,
0x3158,0x3159,0x315A,0x315B,0x315C,0x315D,0x315E,0x315F,
0x3160,0x3161,0x3162,0x3163,0x3164,0x3165,0x3166,0x3167,
0x3168,0x3169,0x316A,0x316B,0x316C,0x316D,0x316E,0x316F,
0x3170,0x3171,0x3172,0x3173,0x3174,0x3175,0x3176,0x3177,
0x3178,0x3179,0x317A,0x317B,0x317C,0x317D,0x317E,0x317F,
0x3180,0x3181,0x3182,0x3183,0x3184,0x3185,0x3186,0x3187,
0x3188,0x3189,0x318A,0x318B,0x318C,0x318D,0x318E,
0x2170,0x2171,0x2172,0x2173,0x2174,0x2175,0x2176,
0x2177,0x2178,0x2179,0xffff,0xffff,0xffff,0xffff,0xffff,
0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,0x2167,
0x2168,0x2169,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,
0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,
0x03A0,0x03A1,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,
0x03A9,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,
0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,
0x03C0,0x03C1,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,
0x03C9,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0x2500,0x2502,0x250C,0x2510,0x2518,0x2514,0x251C,
0x252C,0x2524,0x2534,0x253C,0x2501,0x2503,0x250F,0x2513,
0x251B,0x2517,0x2523,0x2533,0x252B,0x253B,0x254B,0x2520,
0x252F,0x2528,0x2537,0x253F,0x251D,0x2530,0x2525,0x2538,
0x2542,0x2512,0x2511,0x251A,0x2519,0x2516,0x2515,0x250E,
0x250D,0x251E,0x251F,0x2521,0x2522,0x2526,0x2527,0x2529,
0x252A,0x252D,0x252E,0x2531,0x2532,0x2535,0x2536,0x2539,
0x253A,0x253D,0x253E,0x2540,0x2541,0x2543,0x2544,0x2545,
0x2546,0x2547,0x2548,0x2549,0x254A,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0x3395,0x3396,0x3397,0x2113,0x3398,0x33C4,0x33A3,
0x33A4,0x33A5,0x33A6,0x3399,0x339A,0x339B,0x339C,0x339D,
0x339E,0x339F,0x33A0,0x33A1,0x33A2,0x33CA,0x338D,0x338E,
0x338F,0x33CF,0x3388,0x3389,0x33C8,0x33A7,0x33A8,0x33B0,
0x33B1,0x33B2,0x33B3,0x33B4,0x33B5,0x33B6,0x33B7,0x33B8,
0x33B9,0x3380,0x3381,0x3382,0x3383,0x3384,0x33BA,0x33BB,
0x33BC,0x33BD,0x33BE,0x33BF,0x3390,0x3391,0x3392,0x3393,
0x3394,0x2126,0x33C0,0x33C1,0x338A,0x338B,0x338C,0x33D6,
0x33C5,0x33AD,0x33AE,0x33AF,0x33DB,0x33A9,0x33AA,0x33AB,
0x33AC,0x33DD,0x33D0,0x33D3,0x33C3,0x33C9,0x33DC,0x33C6,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0x00C6,0x00D0,0x00AA,0x0126,0xffff,0x0132,0xffff,
0x013F,0x0141,0x00D8,0x0152,0x00BA,0x00DE,0x0166,0x014A,
0xffff,0x3260,0x3261,0x3262,0x3263,0x3264,0x3265,0x3266,
0x3267,0x3268,0x3269,0x326A,0x326B,0x326C,0x326D,0x326E,
0x326F,0x3270,0x3271,0x3272,0x3273,0x3274,0x3275,0x3276,
0x3277,0x3278,0x3279,0x327A,0x327B,0x24D0,0x24D1,0x24D2,
0x24D3,0x24D4,0x24D5,0x24D6,0x24D7,0x24D8,0x24D9,0x24DA,
0x24DB,0x24DC,0x24DD,0x24DE,0x24DF,0x24E0,0x24E1,0x24E2,
0x24E3,0x24E4,0x24E5,0x24E6,0x24E7,0x24E8,0x24E9,0x2460,
0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,
0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x00BD,0x2153,
0x2154,0x00BC,0x00BE,0x215B,0x215C,0x215D,0x215E,
0x00E6,0x0111,0x00F0,0x0127,0x0131,0x0133,0x0138,
0x0140,0x0142,0x00F8,0x0153,0x00DF,0x00FE,0x0167,0x014B,
0x0149,0x3200,0x3201,0x3202,0x3203,0x3204,0x3205,0x3206,
0x3207,0x3208,0x3209,0x320A,0x320B,0x320C,0x320D,0x320E,
0x320F,0x3210,0x3211,0x3212,0x3213,0x3214,0x3215,0x3216,
0x3217,0x3218,0x3219,0x321A,0x321B,0x249C,0x249D,0x249E,
0x249F,0x24A0,0x24A1,0x24A2,0x24A3,0x24A4,0x24A5,0x24A6,
0x24A7,0x24A8,0x24A9,0x24AA,0x24AB,0x24AC,0x24AD,0x24AE,
0x24AF,0x24B0,0x24B1,0x24B2,0x24B3,0x24B4,0x24B5,0x2474,
0x2475,0x2476,0x2477,0x2478,0x2479,0x247A,0x247B,0x247C,
0x247D,0x247E,0x247F,0x2480,0x2481,0x2482,0x00B9,0x00B2,
0x00B3,0x2074,0x207F,0x2081,0x2082,0x2083,0x2084,
0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047,
0x3048,0x3049,0x304A,0x304B,0x304C,0x304D,0x304E,0x304F,
0x3050,0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057,
0x3058,0x3059,0x305A,0x305B,0x305C,0x305D,0x305E,0x305F,
0x3060,0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067,
0x3068,0x3069,0x306A,0x306B,0x306C,0x306D,0x306E,0x306F,
0x3070,0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077,
0x3078,0x3079,0x307A,0x307B,0x307C,0x307D,0x307E,0x307F,
0x3080,0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087,
0x3088,0x3089,0x308A,0x308B,0x308C,0x308D,0x308E,0x308F,
0x3090,0x3091,0x3092,0x3093,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7,
0x30A8,0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF,
0x30B0,0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7,
0x30B8,0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF,
0x30C0,0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7,
0x30C8,0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF,
0x30D0,0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7,
0x30D8,0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF,
0x30E0,0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,0x30E7,
0x30E8,0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,0x30EE,0x30EF,
0x30F0,0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0401,
0x0416,0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,
0x041E,0x041F,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,
0x0426,0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,
0x042E,0x042F,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451,
0x0436,0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,
0x043E,0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,
0x0446,0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,
0x044E,0x044F,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -