This is Petit FAT File System Module for mbed NXP LPC1768. The ported library from http://elm-chan.org/fsw/ff/00index_p.html made by Mr. ChaN. The connection is same as SDCard library here http://mbed.org/projects/cookbook/wiki/SDCard . If you need change a pin, You can find the definition at libpff/connect.h :)
libpff/pff.h@0:b5453be5ad07, 2010-06-01 (annotated)
- Committer:
- shintamainjp
- Date:
- Tue Jun 01 12:23:29 2010 +0000
- Revision:
- 0:b5453be5ad07
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
shintamainjp | 0:b5453be5ad07 | 1 | /*---------------------------------------------------------------------------/ |
shintamainjp | 0:b5453be5ad07 | 2 | / Petit FatFs - FAT file system module include file R0.02 (C)ChaN, 2009 |
shintamainjp | 0:b5453be5ad07 | 3 | /----------------------------------------------------------------------------/ |
shintamainjp | 0:b5453be5ad07 | 4 | / Petit FatFs module is an open source software to implement FAT file system to |
shintamainjp | 0:b5453be5ad07 | 5 | / small embedded systems. This is a free software and is opened for education, |
shintamainjp | 0:b5453be5ad07 | 6 | / research and commercial developments under license policy of following trems. |
shintamainjp | 0:b5453be5ad07 | 7 | / |
shintamainjp | 0:b5453be5ad07 | 8 | / Copyright (C) 2009, ChaN, all right reserved. |
shintamainjp | 0:b5453be5ad07 | 9 | / |
shintamainjp | 0:b5453be5ad07 | 10 | / * The Petit FatFs module is a free software and there is NO WARRANTY. |
shintamainjp | 0:b5453be5ad07 | 11 | / * No restriction on use. You can use, modify and redistribute it for |
shintamainjp | 0:b5453be5ad07 | 12 | / personal, non-profit or commercial use UNDER YOUR RESPONSIBILITY. |
shintamainjp | 0:b5453be5ad07 | 13 | / * Redistributions of source code must retain the above copyright notice. |
shintamainjp | 0:b5453be5ad07 | 14 | / |
shintamainjp | 0:b5453be5ad07 | 15 | /----------------------------------------------------------------------------*/ |
shintamainjp | 0:b5453be5ad07 | 16 | |
shintamainjp | 0:b5453be5ad07 | 17 | #include "integer.h" |
shintamainjp | 0:b5453be5ad07 | 18 | |
shintamainjp | 0:b5453be5ad07 | 19 | /*---------------------------------------------------------------------------/ |
shintamainjp | 0:b5453be5ad07 | 20 | / Petit FatFs Configuration Options |
shintamainjp | 0:b5453be5ad07 | 21 | / |
shintamainjp | 0:b5453be5ad07 | 22 | / CAUTION! Do not forget to make clean the project after any changes to |
shintamainjp | 0:b5453be5ad07 | 23 | / the configuration options. |
shintamainjp | 0:b5453be5ad07 | 24 | / |
shintamainjp | 0:b5453be5ad07 | 25 | /----------------------------------------------------------------------------*/ |
shintamainjp | 0:b5453be5ad07 | 26 | #ifndef _FATFS |
shintamainjp | 0:b5453be5ad07 | 27 | #define _FATFS |
shintamainjp | 0:b5453be5ad07 | 28 | |
shintamainjp | 0:b5453be5ad07 | 29 | #define _USE_READ 1 /* pf_read(): 0:Remove ,1:Enable */ |
shintamainjp | 0:b5453be5ad07 | 30 | |
shintamainjp | 0:b5453be5ad07 | 31 | #define _USE_DIR 1 /* pf_opendir() and pf_readdir(): 0:Remove ,1:Enable */ |
shintamainjp | 0:b5453be5ad07 | 32 | |
shintamainjp | 0:b5453be5ad07 | 33 | #define _USE_LSEEK 1 /* pf_lseek(): 0:Remove ,1:Enable */ |
shintamainjp | 0:b5453be5ad07 | 34 | |
shintamainjp | 0:b5453be5ad07 | 35 | #define _USE_WRITE 1 /* pf_write(): 0:Remove ,1:Enable */ |
shintamainjp | 0:b5453be5ad07 | 36 | |
shintamainjp | 0:b5453be5ad07 | 37 | #define _FS_FAT32 1 /* 0:Supports FAT12/16 only, 1:Enable FAT32 supprt */ |
shintamainjp | 0:b5453be5ad07 | 38 | |
shintamainjp | 0:b5453be5ad07 | 39 | |
shintamainjp | 0:b5453be5ad07 | 40 | #define _CODE_PAGE 1 |
shintamainjp | 0:b5453be5ad07 | 41 | /* Defines which code page is used for path name. Supported code pages are: |
shintamainjp | 0:b5453be5ad07 | 42 | / 932, 936, 949, 950, 437, 720, 737, 775, 850, 852, 855, 857, 858, 862, 866, |
shintamainjp | 0:b5453be5ad07 | 43 | / 874, 1250, 1251, 1252, 1253, 1254, 1255, 1257, 1258 and 1 (ASCII only). |
shintamainjp | 0:b5453be5ad07 | 44 | / SBCS configurations except for 1 requiers a case conversion table. This |
shintamainjp | 0:b5453be5ad07 | 45 | / might occupy 128 bytes on the RAM on some platforms, e.g. avr-gcc. */ |
shintamainjp | 0:b5453be5ad07 | 46 | |
shintamainjp | 0:b5453be5ad07 | 47 | |
shintamainjp | 0:b5453be5ad07 | 48 | #define _WORD_ACCESS 1 |
shintamainjp | 0:b5453be5ad07 | 49 | /* The _WORD_ACCESS option defines which access method is used to the word |
shintamainjp | 0:b5453be5ad07 | 50 | / data in the FAT structure. |
shintamainjp | 0:b5453be5ad07 | 51 | / |
shintamainjp | 0:b5453be5ad07 | 52 | / 0: Byte-by-byte access. Always compatible with all platforms. |
shintamainjp | 0:b5453be5ad07 | 53 | / 1: Word access. Do not choose this unless following condition is met. |
shintamainjp | 0:b5453be5ad07 | 54 | / |
shintamainjp | 0:b5453be5ad07 | 55 | / When the byte order on the memory is big-endian or address miss-aligned |
shintamainjp | 0:b5453be5ad07 | 56 | / word access results incorrect behavior, the _WORD_ACCESS must be set to 0. |
shintamainjp | 0:b5453be5ad07 | 57 | / If it is not the case, the value can also be set to 1 to improve the |
shintamainjp | 0:b5453be5ad07 | 58 | / performance and code efficiency. */ |
shintamainjp | 0:b5453be5ad07 | 59 | |
shintamainjp | 0:b5453be5ad07 | 60 | |
shintamainjp | 0:b5453be5ad07 | 61 | /* End of configuration options. Do not change followings without care. */ |
shintamainjp | 0:b5453be5ad07 | 62 | /*--------------------------------------------------------------------------*/ |
shintamainjp | 0:b5453be5ad07 | 63 | |
shintamainjp | 0:b5453be5ad07 | 64 | #if _FS_FAT32 |
shintamainjp | 0:b5453be5ad07 | 65 | #define CLUST DWORD |
shintamainjp | 0:b5453be5ad07 | 66 | #else |
shintamainjp | 0:b5453be5ad07 | 67 | #define CLUST WORD |
shintamainjp | 0:b5453be5ad07 | 68 | #endif |
shintamainjp | 0:b5453be5ad07 | 69 | |
shintamainjp | 0:b5453be5ad07 | 70 | |
shintamainjp | 0:b5453be5ad07 | 71 | /* File system object structure */ |
shintamainjp | 0:b5453be5ad07 | 72 | |
shintamainjp | 0:b5453be5ad07 | 73 | typedef struct _FATFS_ { |
shintamainjp | 0:b5453be5ad07 | 74 | BYTE fs_type; /* FAT sub type */ |
shintamainjp | 0:b5453be5ad07 | 75 | BYTE csize; /* Number of sectors per cluster */ |
shintamainjp | 0:b5453be5ad07 | 76 | BYTE flag; /* File status flags */ |
shintamainjp | 0:b5453be5ad07 | 77 | BYTE csect; /* File sector address in the cluster */ |
shintamainjp | 0:b5453be5ad07 | 78 | WORD n_rootdir; /* Number of root directory entries (0 on FAT32) */ |
shintamainjp | 0:b5453be5ad07 | 79 | BYTE* buf; /* Pointer to the disk access buffer */ |
shintamainjp | 0:b5453be5ad07 | 80 | CLUST max_clust; /* Maximum cluster# + 1. Number of clusters is max_clust - 2 */ |
shintamainjp | 0:b5453be5ad07 | 81 | DWORD fatbase; /* FAT start sector */ |
shintamainjp | 0:b5453be5ad07 | 82 | DWORD dirbase; /* Root directory start sector (Cluster# on FAT32) */ |
shintamainjp | 0:b5453be5ad07 | 83 | DWORD database; /* Data start sector */ |
shintamainjp | 0:b5453be5ad07 | 84 | DWORD fptr; /* File R/W pointer */ |
shintamainjp | 0:b5453be5ad07 | 85 | DWORD fsize; /* File size */ |
shintamainjp | 0:b5453be5ad07 | 86 | CLUST org_clust; /* File start cluster */ |
shintamainjp | 0:b5453be5ad07 | 87 | CLUST curr_clust; /* File current cluster */ |
shintamainjp | 0:b5453be5ad07 | 88 | DWORD dsect; /* File current data sector */ |
shintamainjp | 0:b5453be5ad07 | 89 | } FATFS; |
shintamainjp | 0:b5453be5ad07 | 90 | |
shintamainjp | 0:b5453be5ad07 | 91 | |
shintamainjp | 0:b5453be5ad07 | 92 | |
shintamainjp | 0:b5453be5ad07 | 93 | /* Directory object structure */ |
shintamainjp | 0:b5453be5ad07 | 94 | |
shintamainjp | 0:b5453be5ad07 | 95 | typedef struct _DIR_ { |
shintamainjp | 0:b5453be5ad07 | 96 | WORD index; /* Current read/write index number */ |
shintamainjp | 0:b5453be5ad07 | 97 | BYTE* fn; /* Pointer to the SFN (in/out) {file[8],ext[3],status[1]} */ |
shintamainjp | 0:b5453be5ad07 | 98 | CLUST sclust; /* Table start cluster (0:Static table) */ |
shintamainjp | 0:b5453be5ad07 | 99 | CLUST clust; /* Current cluster */ |
shintamainjp | 0:b5453be5ad07 | 100 | DWORD sect; /* Current sector */ |
shintamainjp | 0:b5453be5ad07 | 101 | } FATDIR; |
shintamainjp | 0:b5453be5ad07 | 102 | |
shintamainjp | 0:b5453be5ad07 | 103 | |
shintamainjp | 0:b5453be5ad07 | 104 | |
shintamainjp | 0:b5453be5ad07 | 105 | /* File status structure */ |
shintamainjp | 0:b5453be5ad07 | 106 | |
shintamainjp | 0:b5453be5ad07 | 107 | typedef struct _FILINFO_ { |
shintamainjp | 0:b5453be5ad07 | 108 | DWORD fsize; /* File size */ |
shintamainjp | 0:b5453be5ad07 | 109 | WORD fdate; /* Last modified date */ |
shintamainjp | 0:b5453be5ad07 | 110 | WORD ftime; /* Last modified time */ |
shintamainjp | 0:b5453be5ad07 | 111 | BYTE fattrib; /* Attribute */ |
shintamainjp | 0:b5453be5ad07 | 112 | char fname[13]; /* File name */ |
shintamainjp | 0:b5453be5ad07 | 113 | } FILINFO; |
shintamainjp | 0:b5453be5ad07 | 114 | |
shintamainjp | 0:b5453be5ad07 | 115 | |
shintamainjp | 0:b5453be5ad07 | 116 | |
shintamainjp | 0:b5453be5ad07 | 117 | /* File function return code (FRESULT) */ |
shintamainjp | 0:b5453be5ad07 | 118 | |
shintamainjp | 0:b5453be5ad07 | 119 | typedef enum { |
shintamainjp | 0:b5453be5ad07 | 120 | FR_OK = 0, /* 0 */ |
shintamainjp | 0:b5453be5ad07 | 121 | FR_DISK_ERR, /* 1 */ |
shintamainjp | 0:b5453be5ad07 | 122 | FR_NOT_READY, /* 2 */ |
shintamainjp | 0:b5453be5ad07 | 123 | FR_NO_FILE, /* 3 */ |
shintamainjp | 0:b5453be5ad07 | 124 | FR_NO_PATH, /* 4 */ |
shintamainjp | 0:b5453be5ad07 | 125 | FR_NOT_OPENED, /* 5 */ |
shintamainjp | 0:b5453be5ad07 | 126 | FR_NOT_ENABLED, /* 6 */ |
shintamainjp | 0:b5453be5ad07 | 127 | FR_NO_FILESYSTEM /* 7 */ |
shintamainjp | 0:b5453be5ad07 | 128 | } FRESULT; |
shintamainjp | 0:b5453be5ad07 | 129 | |
shintamainjp | 0:b5453be5ad07 | 130 | |
shintamainjp | 0:b5453be5ad07 | 131 | |
shintamainjp | 0:b5453be5ad07 | 132 | /*--------------------------------------------------------------*/ |
shintamainjp | 0:b5453be5ad07 | 133 | /* Petit FatFs module application interface */ |
shintamainjp | 0:b5453be5ad07 | 134 | |
shintamainjp | 0:b5453be5ad07 | 135 | FRESULT pf_mount (FATFS*); /* Mount/Unmount a logical drive */ |
shintamainjp | 0:b5453be5ad07 | 136 | FRESULT pf_open (const char*); /* Open a file */ |
shintamainjp | 0:b5453be5ad07 | 137 | FRESULT pf_read (void*, WORD, WORD*); /* Read data from the open file */ |
shintamainjp | 0:b5453be5ad07 | 138 | FRESULT pf_write (const void*, WORD, WORD*); /* Write data to the open file */ |
shintamainjp | 0:b5453be5ad07 | 139 | FRESULT pf_lseek (DWORD); /* Move file pointer of the open file */ |
shintamainjp | 0:b5453be5ad07 | 140 | FRESULT pf_opendir (FATDIR*, const char*); /* Open a directory */ |
shintamainjp | 0:b5453be5ad07 | 141 | FRESULT pf_readdir (FATDIR*, FILINFO*); /* Read a directory item from the open directory */ |
shintamainjp | 0:b5453be5ad07 | 142 | |
shintamainjp | 0:b5453be5ad07 | 143 | |
shintamainjp | 0:b5453be5ad07 | 144 | |
shintamainjp | 0:b5453be5ad07 | 145 | /*--------------------------------------------------------------*/ |
shintamainjp | 0:b5453be5ad07 | 146 | /* Flags and offset address */ |
shintamainjp | 0:b5453be5ad07 | 147 | |
shintamainjp | 0:b5453be5ad07 | 148 | /* File status flag (FATFS.flag) */ |
shintamainjp | 0:b5453be5ad07 | 149 | |
shintamainjp | 0:b5453be5ad07 | 150 | #define FA_OPENED 0x01 |
shintamainjp | 0:b5453be5ad07 | 151 | #define FA_WPRT 0x02 |
shintamainjp | 0:b5453be5ad07 | 152 | #define FA__WIP 0x40 |
shintamainjp | 0:b5453be5ad07 | 153 | |
shintamainjp | 0:b5453be5ad07 | 154 | |
shintamainjp | 0:b5453be5ad07 | 155 | /* FAT sub type (FATFS.fs_type) */ |
shintamainjp | 0:b5453be5ad07 | 156 | |
shintamainjp | 0:b5453be5ad07 | 157 | #define FS_FAT12 1 |
shintamainjp | 0:b5453be5ad07 | 158 | #define FS_FAT16 2 |
shintamainjp | 0:b5453be5ad07 | 159 | #define FS_FAT32 3 |
shintamainjp | 0:b5453be5ad07 | 160 | |
shintamainjp | 0:b5453be5ad07 | 161 | |
shintamainjp | 0:b5453be5ad07 | 162 | /* File attribute bits for directory entry */ |
shintamainjp | 0:b5453be5ad07 | 163 | |
shintamainjp | 0:b5453be5ad07 | 164 | #define AM_RDO 0x01 /* Read only */ |
shintamainjp | 0:b5453be5ad07 | 165 | #define AM_HID 0x02 /* Hidden */ |
shintamainjp | 0:b5453be5ad07 | 166 | #define AM_SYS 0x04 /* System */ |
shintamainjp | 0:b5453be5ad07 | 167 | #define AM_VOL 0x08 /* Volume label */ |
shintamainjp | 0:b5453be5ad07 | 168 | #define AM_LFN 0x0F /* LFN entry */ |
shintamainjp | 0:b5453be5ad07 | 169 | #define AM_DIR 0x10 /* Directory */ |
shintamainjp | 0:b5453be5ad07 | 170 | #define AM_ARC 0x20 /* Archive */ |
shintamainjp | 0:b5453be5ad07 | 171 | #define AM_MASK 0x3F /* Mask of defined bits */ |
shintamainjp | 0:b5453be5ad07 | 172 | |
shintamainjp | 0:b5453be5ad07 | 173 | |
shintamainjp | 0:b5453be5ad07 | 174 | /* FatFs refers the members in the FAT structures with byte offset instead |
shintamainjp | 0:b5453be5ad07 | 175 | / of structure member because there are incompatibility of the packing option |
shintamainjp | 0:b5453be5ad07 | 176 | / between various compilers. */ |
shintamainjp | 0:b5453be5ad07 | 177 | |
shintamainjp | 0:b5453be5ad07 | 178 | #define BS_jmpBoot 0 |
shintamainjp | 0:b5453be5ad07 | 179 | #define BS_OEMName 3 |
shintamainjp | 0:b5453be5ad07 | 180 | #define BPB_BytsPerSec 11 |
shintamainjp | 0:b5453be5ad07 | 181 | #define BPB_SecPerClus 13 |
shintamainjp | 0:b5453be5ad07 | 182 | #define BPB_RsvdSecCnt 14 |
shintamainjp | 0:b5453be5ad07 | 183 | #define BPB_NumFATs 16 |
shintamainjp | 0:b5453be5ad07 | 184 | #define BPB_RootEntCnt 17 |
shintamainjp | 0:b5453be5ad07 | 185 | #define BPB_TotSec16 19 |
shintamainjp | 0:b5453be5ad07 | 186 | #define BPB_Media 21 |
shintamainjp | 0:b5453be5ad07 | 187 | #define BPB_FATSz16 22 |
shintamainjp | 0:b5453be5ad07 | 188 | #define BPB_SecPerTrk 24 |
shintamainjp | 0:b5453be5ad07 | 189 | #define BPB_NumHeads 26 |
shintamainjp | 0:b5453be5ad07 | 190 | #define BPB_HiddSec 28 |
shintamainjp | 0:b5453be5ad07 | 191 | #define BPB_TotSec32 32 |
shintamainjp | 0:b5453be5ad07 | 192 | #define BS_55AA 510 |
shintamainjp | 0:b5453be5ad07 | 193 | |
shintamainjp | 0:b5453be5ad07 | 194 | #define BS_DrvNum 36 |
shintamainjp | 0:b5453be5ad07 | 195 | #define BS_BootSig 38 |
shintamainjp | 0:b5453be5ad07 | 196 | #define BS_VolID 39 |
shintamainjp | 0:b5453be5ad07 | 197 | #define BS_VolLab 43 |
shintamainjp | 0:b5453be5ad07 | 198 | #define BS_FilSysType 54 |
shintamainjp | 0:b5453be5ad07 | 199 | |
shintamainjp | 0:b5453be5ad07 | 200 | #define BPB_FATSz32 36 |
shintamainjp | 0:b5453be5ad07 | 201 | #define BPB_ExtFlags 40 |
shintamainjp | 0:b5453be5ad07 | 202 | #define BPB_FSVer 42 |
shintamainjp | 0:b5453be5ad07 | 203 | #define BPB_RootClus 44 |
shintamainjp | 0:b5453be5ad07 | 204 | #define BPB_FSInfo 48 |
shintamainjp | 0:b5453be5ad07 | 205 | #define BPB_BkBootSec 50 |
shintamainjp | 0:b5453be5ad07 | 206 | #define BS_DrvNum32 64 |
shintamainjp | 0:b5453be5ad07 | 207 | #define BS_BootSig32 66 |
shintamainjp | 0:b5453be5ad07 | 208 | #define BS_VolID32 67 |
shintamainjp | 0:b5453be5ad07 | 209 | #define BS_VolLab32 71 |
shintamainjp | 0:b5453be5ad07 | 210 | #define BS_FilSysType32 82 |
shintamainjp | 0:b5453be5ad07 | 211 | |
shintamainjp | 0:b5453be5ad07 | 212 | #define MBR_Table 446 |
shintamainjp | 0:b5453be5ad07 | 213 | |
shintamainjp | 0:b5453be5ad07 | 214 | #define DIR_Name 0 |
shintamainjp | 0:b5453be5ad07 | 215 | #define DIR_Attr 11 |
shintamainjp | 0:b5453be5ad07 | 216 | #define DIR_NTres 12 |
shintamainjp | 0:b5453be5ad07 | 217 | #define DIR_CrtTime 14 |
shintamainjp | 0:b5453be5ad07 | 218 | #define DIR_CrtDate 16 |
shintamainjp | 0:b5453be5ad07 | 219 | #define DIR_FstClusHI 20 |
shintamainjp | 0:b5453be5ad07 | 220 | #define DIR_WrtTime 22 |
shintamainjp | 0:b5453be5ad07 | 221 | #define DIR_WrtDate 24 |
shintamainjp | 0:b5453be5ad07 | 222 | #define DIR_FstClusLO 26 |
shintamainjp | 0:b5453be5ad07 | 223 | #define DIR_FileSize 28 |
shintamainjp | 0:b5453be5ad07 | 224 | |
shintamainjp | 0:b5453be5ad07 | 225 | |
shintamainjp | 0:b5453be5ad07 | 226 | |
shintamainjp | 0:b5453be5ad07 | 227 | /*--------------------------------*/ |
shintamainjp | 0:b5453be5ad07 | 228 | /* Multi-byte word access macros */ |
shintamainjp | 0:b5453be5ad07 | 229 | |
shintamainjp | 0:b5453be5ad07 | 230 | #if _WORD_ACCESS == 1 /* Enable word access to the FAT structure */ |
shintamainjp | 0:b5453be5ad07 | 231 | #define LD_WORD(ptr) (WORD)(*(WORD*)(BYTE*)(ptr)) |
shintamainjp | 0:b5453be5ad07 | 232 | #define LD_DWORD(ptr) (DWORD)(*(DWORD*)(BYTE*)(ptr)) |
shintamainjp | 0:b5453be5ad07 | 233 | #define ST_WORD(ptr,val) *(WORD*)(BYTE*)(ptr)=(WORD)(val) |
shintamainjp | 0:b5453be5ad07 | 234 | #define ST_DWORD(ptr,val) *(DWORD*)(BYTE*)(ptr)=(DWORD)(val) |
shintamainjp | 0:b5453be5ad07 | 235 | #else /* Use byte-by-byte access to the FAT structure */ |
shintamainjp | 0:b5453be5ad07 | 236 | #define LD_WORD(ptr) (WORD)(((WORD)*(BYTE*)((ptr)+1)<<8)|(WORD)*(BYTE*)(ptr)) |
shintamainjp | 0:b5453be5ad07 | 237 | #define LD_DWORD(ptr) (DWORD)(((DWORD)*(BYTE*)((ptr)+3)<<24)|((DWORD)*(BYTE*)((ptr)+2)<<16)|((WORD)*(BYTE*)((ptr)+1)<<8)|*(BYTE*)(ptr)) |
shintamainjp | 0:b5453be5ad07 | 238 | #define ST_WORD(ptr,val) *(BYTE*)(ptr)=(BYTE)(val); *(BYTE*)((ptr)+1)=(BYTE)((WORD)(val)>>8) |
shintamainjp | 0:b5453be5ad07 | 239 | #define ST_DWORD(ptr,val) *(BYTE*)(ptr)=(BYTE)(val); *(BYTE*)((ptr)+1)=(BYTE)((WORD)(val)>>8); *(BYTE*)((ptr)+2)=(BYTE)((DWORD)(val)>>16); *(BYTE*)((ptr)+3)=(BYTE)((DWORD)(val)>>24) |
shintamainjp | 0:b5453be5ad07 | 240 | #endif |
shintamainjp | 0:b5453be5ad07 | 241 | |
shintamainjp | 0:b5453be5ad07 | 242 | |
shintamainjp | 0:b5453be5ad07 | 243 | /*--------------------------------------------------------*/ |
shintamainjp | 0:b5453be5ad07 | 244 | /* DBCS code ranges and SBCS extend char conversion table */ |
shintamainjp | 0:b5453be5ad07 | 245 | |
shintamainjp | 0:b5453be5ad07 | 246 | #if _CODE_PAGE == 932 /* Japanese Shift-JIS */ |
shintamainjp | 0:b5453be5ad07 | 247 | #define _DF1S 0x81 /* DBC 1st byte range 1 start */ |
shintamainjp | 0:b5453be5ad07 | 248 | #define _DF1E 0x9F /* DBC 1st byte range 1 end */ |
shintamainjp | 0:b5453be5ad07 | 249 | #define _DF2S 0xE0 /* DBC 1st byte range 2 start */ |
shintamainjp | 0:b5453be5ad07 | 250 | #define _DF2E 0xFC /* DBC 1st byte range 2 end */ |
shintamainjp | 0:b5453be5ad07 | 251 | #define _DS1S 0x40 /* DBC 2nd byte range 1 start */ |
shintamainjp | 0:b5453be5ad07 | 252 | #define _DS1E 0x7E /* DBC 2nd byte range 1 end */ |
shintamainjp | 0:b5453be5ad07 | 253 | #define _DS2S 0x80 /* DBC 2nd byte range 2 start */ |
shintamainjp | 0:b5453be5ad07 | 254 | #define _DS2E 0xFC /* DBC 2nd byte range 2 end */ |
shintamainjp | 0:b5453be5ad07 | 255 | |
shintamainjp | 0:b5453be5ad07 | 256 | #elif _CODE_PAGE == 936 /* Simplified Chinese GBK */ |
shintamainjp | 0:b5453be5ad07 | 257 | #define _DF1S 0x81 |
shintamainjp | 0:b5453be5ad07 | 258 | #define _DF1E 0xFE |
shintamainjp | 0:b5453be5ad07 | 259 | #define _DS1S 0x40 |
shintamainjp | 0:b5453be5ad07 | 260 | #define _DS1E 0x7E |
shintamainjp | 0:b5453be5ad07 | 261 | #define _DS2S 0x80 |
shintamainjp | 0:b5453be5ad07 | 262 | #define _DS2E 0xFE |
shintamainjp | 0:b5453be5ad07 | 263 | |
shintamainjp | 0:b5453be5ad07 | 264 | #elif _CODE_PAGE == 949 /* Korean */ |
shintamainjp | 0:b5453be5ad07 | 265 | #define _DF1S 0x81 |
shintamainjp | 0:b5453be5ad07 | 266 | #define _DF1E 0xFE |
shintamainjp | 0:b5453be5ad07 | 267 | #define _DS1S 0x41 |
shintamainjp | 0:b5453be5ad07 | 268 | #define _DS1E 0x5A |
shintamainjp | 0:b5453be5ad07 | 269 | #define _DS2S 0x61 |
shintamainjp | 0:b5453be5ad07 | 270 | #define _DS2E 0x7A |
shintamainjp | 0:b5453be5ad07 | 271 | #define _DS3S 0x81 |
shintamainjp | 0:b5453be5ad07 | 272 | #define _DS3E 0xFE |
shintamainjp | 0:b5453be5ad07 | 273 | |
shintamainjp | 0:b5453be5ad07 | 274 | #elif _CODE_PAGE == 950 /* Traditional Chinese Big5 */ |
shintamainjp | 0:b5453be5ad07 | 275 | #define _DF1S 0x81 |
shintamainjp | 0:b5453be5ad07 | 276 | #define _DF1E 0xFE |
shintamainjp | 0:b5453be5ad07 | 277 | #define _DS1S 0x40 |
shintamainjp | 0:b5453be5ad07 | 278 | #define _DS1E 0x7E |
shintamainjp | 0:b5453be5ad07 | 279 | #define _DS2S 0xA1 |
shintamainjp | 0:b5453be5ad07 | 280 | #define _DS2E 0xFE |
shintamainjp | 0:b5453be5ad07 | 281 | |
shintamainjp | 0:b5453be5ad07 | 282 | #elif _CODE_PAGE == 437 /* U.S. (OEM) */ |
shintamainjp | 0:b5453be5ad07 | 283 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 284 | #define _EXCVT {0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F,0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 285 | 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0x21,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 286 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 287 | 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} |
shintamainjp | 0:b5453be5ad07 | 288 | |
shintamainjp | 0:b5453be5ad07 | 289 | #elif _CODE_PAGE == 720 /* Arabic (OEM) */ |
shintamainjp | 0:b5453be5ad07 | 290 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 291 | #define _EXCVT {0x80,0x81,0x45,0x41,0x84,0x41,0x86,0x43,0x45,0x45,0x45,0x49,0x49,0x8D,0x8E,0x8F,0x90,0x92,0x92,0x93,0x94,0x95,0x49,0x49,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 292 | 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 293 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 294 | 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} |
shintamainjp | 0:b5453be5ad07 | 295 | |
shintamainjp | 0:b5453be5ad07 | 296 | #elif _CODE_PAGE == 737 /* Greek (OEM) */ |
shintamainjp | 0:b5453be5ad07 | 297 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 298 | #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x92,0x92,0x93,0x94,0x95,0x96,0x97,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, \ |
shintamainjp | 0:b5453be5ad07 | 299 | 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0xAA,0x92,0x93,0x94,0x95,0x96,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 300 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 301 | 0x97,0xEA,0xEB,0xEC,0xE4,0xED,0xEE,0xE7,0xE8,0xF1,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} |
shintamainjp | 0:b5453be5ad07 | 302 | |
shintamainjp | 0:b5453be5ad07 | 303 | #elif _CODE_PAGE == 775 /* Baltic (OEM) */ |
shintamainjp | 0:b5453be5ad07 | 304 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 305 | #define _EXCVT {0x80,0x9A,0x91,0xA0,0x8E,0x95,0x8F,0x80,0xAD,0xED,0x8A,0x8A,0xA1,0x8D,0x8E,0x8F,0x90,0x92,0x92,0xE2,0x99,0x95,0x96,0x97,0x97,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 306 | 0xA0,0xA1,0xE0,0xA3,0xA3,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 307 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xB5,0xB6,0xB7,0xB8,0xBD,0xBE,0xC6,0xC7,0xA5,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 308 | 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE3,0xE8,0xE8,0xEA,0xEA,0xEE,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} |
shintamainjp | 0:b5453be5ad07 | 309 | |
shintamainjp | 0:b5453be5ad07 | 310 | #elif _CODE_PAGE == 850 /* Multilingual Latin 1 (OEM) */ |
shintamainjp | 0:b5453be5ad07 | 311 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 312 | #define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xB7,0x8F,0x80,0xD2,0xD3,0xD4,0xD8,0xD7,0xDE,0x8E,0x8F,0x90,0x92,0x92,0xE2,0x99,0xE3,0xEA,0xEB,0x59,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 313 | 0xB5,0xD6,0xE0,0xE9,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0x21,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 314 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 315 | 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE7,0xE7,0xE9,0xEA,0xEB,0xED,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} |
shintamainjp | 0:b5453be5ad07 | 316 | |
shintamainjp | 0:b5453be5ad07 | 317 | #elif _CODE_PAGE == 852 /* Latin 2 (OEM) */ |
shintamainjp | 0:b5453be5ad07 | 318 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 319 | #define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xDE,0x8F,0x80,0x9D,0xD3,0x8A,0x8A,0xD7,0x8D,0x8E,0x8F,0x90,0x91,0x91,0xE2,0x99,0x95,0x95,0x97,0x97,0x99,0x9A,0x9B,0x9B,0x9D,0x9E,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 320 | 0xB5,0xD6,0xE0,0xE9,0xA4,0xA4,0xA6,0xA6,0xA8,0xA8,0xAA,0x8D,0xAC,0xB8,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBD,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 321 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC6,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD1,0xD1,0xD2,0xD3,0xD2,0xD5,0xD6,0xD7,0xB7,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 322 | 0xE0,0xE1,0xE2,0xE3,0xE3,0xD5,0xE6,0xE6,0xE8,0xE9,0xE8,0xEB,0xED,0xED,0xDD,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xEB,0xFC,0xFC,0xFE,0xFF} |
shintamainjp | 0:b5453be5ad07 | 323 | |
shintamainjp | 0:b5453be5ad07 | 324 | #elif _CODE_PAGE == 855 /* Cyrillic (OEM) */ |
shintamainjp | 0:b5453be5ad07 | 325 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 326 | #define _EXCVT {0x81,0x81,0x83,0x83,0x85,0x85,0x87,0x87,0x89,0x89,0x8B,0x8B,0x8D,0x8D,0x8F,0x8F,0x91,0x91,0x93,0x93,0x95,0x95,0x97,0x97,0x99,0x99,0x9B,0x9B,0x9D,0x9D,0x9F,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 327 | 0xA1,0xA1,0xA3,0xA3,0xA5,0xA5,0xA7,0xA7,0xA9,0xA9,0xAB,0xAB,0xAD,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB6,0xB6,0xB8,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 328 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD1,0xD1,0xD3,0xD3,0xD5,0xD5,0xD7,0xD7,0xDD,0xD9,0xDA,0xDB,0xDC,0xDD,0xE0,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 329 | 0xE0,0xE2,0xE2,0xE4,0xE4,0xE6,0xE6,0xE8,0xE8,0xEA,0xEA,0xEC,0xEC,0xEE,0xEE,0xEF,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFD,0xFE,0xFF} |
shintamainjp | 0:b5453be5ad07 | 330 | |
shintamainjp | 0:b5453be5ad07 | 331 | #elif _CODE_PAGE == 857 /* Turkish (OEM) */ |
shintamainjp | 0:b5453be5ad07 | 332 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 333 | #define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xB7,0x8F,0x80,0xD2,0xD3,0xD4,0xD8,0xD7,0x98,0x8E,0x8F,0x90,0x92,0x92,0xE2,0x99,0xE3,0xEA,0xEB,0x98,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9E, \ |
shintamainjp | 0:b5453be5ad07 | 334 | 0xB5,0xD6,0xE0,0xE9,0xA5,0xA5,0xA6,0xA6,0xA8,0xA9,0xAA,0xAB,0xAC,0x21,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 335 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 336 | 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xDE,0x59,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} |
shintamainjp | 0:b5453be5ad07 | 337 | |
shintamainjp | 0:b5453be5ad07 | 338 | #elif _CODE_PAGE == 858 /* Multilingual Latin 1 + Euro (OEM) */ |
shintamainjp | 0:b5453be5ad07 | 339 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 340 | #define _EXCVT {0x80,0x9A,0x90,0xB6,0x8E,0xB7,0x8F,0x80,0xD2,0xD3,0xD4,0xD8,0xD7,0xDE,0x8E,0x8F,0x90,0x92,0x92,0xE2,0x99,0xE3,0xEA,0xEB,0x59,0x99,0x9A,0x9D,0x9C,0x9D,0x9E,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 341 | 0xB5,0xD6,0xE0,0xE9,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0x21,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 342 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD1,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 343 | 0xE0,0xE1,0xE2,0xE3,0xE5,0xE5,0xE6,0xE7,0xE7,0xE9,0xEA,0xEB,0xED,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} |
shintamainjp | 0:b5453be5ad07 | 344 | |
shintamainjp | 0:b5453be5ad07 | 345 | #elif _CODE_PAGE == 862 /* Hebrew (OEM) */ |
shintamainjp | 0:b5453be5ad07 | 346 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 347 | #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 348 | 0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0x21,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 349 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 350 | 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} |
shintamainjp | 0:b5453be5ad07 | 351 | |
shintamainjp | 0:b5453be5ad07 | 352 | #elif _CODE_PAGE == 866 /* Russian (OEM) */ |
shintamainjp | 0:b5453be5ad07 | 353 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 354 | #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 355 | 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 356 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 357 | 0x90,0x91,0x92,0x93,0x9d,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} |
shintamainjp | 0:b5453be5ad07 | 358 | |
shintamainjp | 0:b5453be5ad07 | 359 | #elif _CODE_PAGE == 874 /* Thai (OEM, Windows) */ |
shintamainjp | 0:b5453be5ad07 | 360 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 361 | #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 362 | 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 363 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 364 | 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} |
shintamainjp | 0:b5453be5ad07 | 365 | |
shintamainjp | 0:b5453be5ad07 | 366 | #elif _CODE_PAGE == 1250 /* Central Europe (Windows) */ |
shintamainjp | 0:b5453be5ad07 | 367 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 368 | #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x8D,0x8E,0x8F, \ |
shintamainjp | 0:b5453be5ad07 | 369 | 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xA3,0xB4,0xB5,0xB6,0xB7,0xB8,0xA5,0xAA,0xBB,0xBC,0xBD,0xBC,0xAF, \ |
shintamainjp | 0:b5453be5ad07 | 370 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 371 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF} |
shintamainjp | 0:b5453be5ad07 | 372 | |
shintamainjp | 0:b5453be5ad07 | 373 | #elif _CODE_PAGE == 1251 /* Cyrillic (Windows) */ |
shintamainjp | 0:b5453be5ad07 | 374 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 375 | #define _EXCVT {0x80,0x81,0x82,0x82,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x80,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x8D,0x8E,0x8F, \ |
shintamainjp | 0:b5453be5ad07 | 376 | 0xA0,0xA2,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB2,0xA5,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xA3,0xBD,0xBD,0xAF, \ |
shintamainjp | 0:b5453be5ad07 | 377 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 378 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF} |
shintamainjp | 0:b5453be5ad07 | 379 | |
shintamainjp | 0:b5453be5ad07 | 380 | #elif _CODE_PAGE == 1252 /* Latin 1 (Windows) */ |
shintamainjp | 0:b5453be5ad07 | 381 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 382 | #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0xAd,0x9B,0x8C,0x9D,0xAE,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 383 | 0xA0,0x21,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 384 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 385 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0x9F} |
shintamainjp | 0:b5453be5ad07 | 386 | |
shintamainjp | 0:b5453be5ad07 | 387 | #elif _CODE_PAGE == 1253 /* Greek (Windows) */ |
shintamainjp | 0:b5453be5ad07 | 388 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 389 | #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 390 | 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 391 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xA2,0xB8,0xB9,0xBA, \ |
shintamainjp | 0:b5453be5ad07 | 392 | 0xE0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xF2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xFB,0xBC,0xFD,0xBF,0xFF} |
shintamainjp | 0:b5453be5ad07 | 393 | |
shintamainjp | 0:b5453be5ad07 | 394 | #elif _CODE_PAGE == 1254 /* Turkish (Windows) */ |
shintamainjp | 0:b5453be5ad07 | 395 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 396 | #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x9D,0x9E,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 397 | 0xA0,0x21,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 398 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 399 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0x9F} |
shintamainjp | 0:b5453be5ad07 | 400 | |
shintamainjp | 0:b5453be5ad07 | 401 | #elif _CODE_PAGE == 1255 /* Hebrew (Windows) */ |
shintamainjp | 0:b5453be5ad07 | 402 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 403 | #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 404 | 0xA0,0x21,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 405 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 406 | 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF} |
shintamainjp | 0:b5453be5ad07 | 407 | |
shintamainjp | 0:b5453be5ad07 | 408 | #elif _CODE_PAGE == 1256 /* Arabic (Windows) */ |
shintamainjp | 0:b5453be5ad07 | 409 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 410 | #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x8C,0x9D,0x9E,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 411 | 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 412 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 413 | 0x41,0xE1,0x41,0xE3,0xE4,0xE5,0xE6,0x43,0x45,0x45,0x45,0x45,0xEC,0xED,0x49,0x49,0xF0,0xF1,0xF2,0xF3,0x4F,0xF5,0xF6,0xF7,0xF8,0x55,0xFA,0x55,0x55,0xFD,0xFE,0xFF} |
shintamainjp | 0:b5453be5ad07 | 414 | |
shintamainjp | 0:b5453be5ad07 | 415 | #elif _CODE_PAGE == 1257 /* Baltic (Windows) */ |
shintamainjp | 0:b5453be5ad07 | 416 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 417 | #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 418 | 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xBC,0xBD,0xBE,0xAF, \ |
shintamainjp | 0:b5453be5ad07 | 419 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 420 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF} |
shintamainjp | 0:b5453be5ad07 | 421 | |
shintamainjp | 0:b5453be5ad07 | 422 | #elif _CODE_PAGE == 1258 /* Vietnam (OEM, Windows) */ |
shintamainjp | 0:b5453be5ad07 | 423 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 424 | #define _EXCVT {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0xAC,0x9D,0x9E,0x9F, \ |
shintamainjp | 0:b5453be5ad07 | 425 | 0xA0,0x21,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, \ |
shintamainjp | 0:b5453be5ad07 | 426 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, \ |
shintamainjp | 0:b5453be5ad07 | 427 | 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xEC,0xCD,0xCE,0xCF,0xD0,0xD1,0xF2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xFE,0x9F} |
shintamainjp | 0:b5453be5ad07 | 428 | |
shintamainjp | 0:b5453be5ad07 | 429 | #elif _CODE_PAGE == 1 /* ASCII (for only non-LFN cfg) */ |
shintamainjp | 0:b5453be5ad07 | 430 | #define _DF1S 0 |
shintamainjp | 0:b5453be5ad07 | 431 | |
shintamainjp | 0:b5453be5ad07 | 432 | #else |
shintamainjp | 0:b5453be5ad07 | 433 | #error Unknown code page |
shintamainjp | 0:b5453be5ad07 | 434 | |
shintamainjp | 0:b5453be5ad07 | 435 | #endif |
shintamainjp | 0:b5453be5ad07 | 436 | |
shintamainjp | 0:b5453be5ad07 | 437 | |
shintamainjp | 0:b5453be5ad07 | 438 | |
shintamainjp | 0:b5453be5ad07 | 439 | /* Character code support macros */ |
shintamainjp | 0:b5453be5ad07 | 440 | |
shintamainjp | 0:b5453be5ad07 | 441 | #define IsUpper(c) (((c)>='A')&&((c)<='Z')) |
shintamainjp | 0:b5453be5ad07 | 442 | #define IsLower(c) (((c)>='a')&&((c)<='z')) |
shintamainjp | 0:b5453be5ad07 | 443 | |
shintamainjp | 0:b5453be5ad07 | 444 | #if _DF1S /* DBCS configuration */ |
shintamainjp | 0:b5453be5ad07 | 445 | |
shintamainjp | 0:b5453be5ad07 | 446 | #ifdef _DF2S /* Two 1st byte areas */ |
shintamainjp | 0:b5453be5ad07 | 447 | #define IsDBCS1(c) (((BYTE)(c) >= _DF1S && (BYTE)(c) <= _DF1E) || ((BYTE)(c) >= _DF2S && (BYTE)(c) <= _DF2E)) |
shintamainjp | 0:b5453be5ad07 | 448 | #else /* One 1st byte area */ |
shintamainjp | 0:b5453be5ad07 | 449 | #define IsDBCS1(c) ((BYTE)(c) >= _DF1S && (BYTE)(c) <= _DF1E) |
shintamainjp | 0:b5453be5ad07 | 450 | #endif |
shintamainjp | 0:b5453be5ad07 | 451 | |
shintamainjp | 0:b5453be5ad07 | 452 | #ifdef _DS3S /* Three 2nd byte areas */ |
shintamainjp | 0:b5453be5ad07 | 453 | #define IsDBCS2(c) (((BYTE)(c) >= _DS1S && (BYTE)(c) <= _DS1E) || ((BYTE)(c) >= _DS2S && (BYTE)(c) <= _DS2E) || ((BYTE)(c) >= _DS3S && (BYTE)(c) <= _DS3E)) |
shintamainjp | 0:b5453be5ad07 | 454 | #else /* Two 2nd byte areas */ |
shintamainjp | 0:b5453be5ad07 | 455 | #define IsDBCS2(c) (((BYTE)(c) >= _DS1S && (BYTE)(c) <= _DS1E) || ((BYTE)(c) >= _DS2S && (BYTE)(c) <= _DS2E)) |
shintamainjp | 0:b5453be5ad07 | 456 | #endif |
shintamainjp | 0:b5453be5ad07 | 457 | |
shintamainjp | 0:b5453be5ad07 | 458 | #else /* SBCS configuration */ |
shintamainjp | 0:b5453be5ad07 | 459 | |
shintamainjp | 0:b5453be5ad07 | 460 | #define IsDBCS1(c) 0 |
shintamainjp | 0:b5453be5ad07 | 461 | #define IsDBCS2(c) 0 |
shintamainjp | 0:b5453be5ad07 | 462 | |
shintamainjp | 0:b5453be5ad07 | 463 | #endif /* _DF1S */ |
shintamainjp | 0:b5453be5ad07 | 464 | |
shintamainjp | 0:b5453be5ad07 | 465 | |
shintamainjp | 0:b5453be5ad07 | 466 | #endif /* _FATFS */ |