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