aboutsummaryrefslogtreecommitdiffstats
path: root/3rdparty/fatfs-0.10b/doc
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/fatfs-0.10b/doc')
-rw-r--r--3rdparty/fatfs-0.10b/doc/00index_e.html118
-rw-r--r--3rdparty/fatfs-0.10b/doc/00index_j.html118
-rw-r--r--3rdparty/fatfs-0.10b/doc/css_e.css65
-rw-r--r--3rdparty/fatfs-0.10b/doc/css_j.css68
-rw-r--r--3rdparty/fatfs-0.10b/doc/css_p.css1
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/appnote.html275
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/chdir.html81
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/chdrive.html60
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/chmod.html89
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/close.html66
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/closedir.html64
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/dinit.html46
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/dioctl.html90
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/dread.html71
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/dstat.html48
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/dwrite.html76
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/eof.html62
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/error.html62
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/fattime.html57
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/fdisk.html97
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/filename.html78
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/forward.html139
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/getcwd.html70
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/getfree.html95
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/getlabel.html82
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/gets.html65
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/lseek.html129
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/mkdir.html80
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/mkfs.html73
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/mount.html83
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/open.html173
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/opendir.html75
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/printf.html93
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/putc.html62
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/puts.html62
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/rc.html87
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/read.html74
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/readdir.html125
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/rename.html85
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/sdir.html40
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/setlabel.html89
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/sfatfs.html54
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/sfile.html49
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/sfileinfo.html70
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/size.html62
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/stat.html74
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/sync.html66
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/tell.html62
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/truncate.html66
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/unlink.html75
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/utime.html99
-rw-r--r--3rdparty/fatfs-0.10b/doc/en/write.html74
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/app1.c43
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/app2.c70
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/app3.c106
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/app4.c318
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/f1.pngbin0 -> 1414 bytes
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/f2.pngbin0 -> 1458 bytes
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/f3.pngbin0 -> 1039 bytes
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/f4.pngbin0 -> 2335 bytes
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/f5.pngbin0 -> 2479 bytes
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/f6.pngbin0 -> 1436 bytes
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/f7.pngbin0 -> 11388 bytes
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/funcs.pngbin0 -> 14357 bytes
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/layers.pngbin0 -> 2401 bytes
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/layers3.pngbin0 -> 2379 bytes
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/modules.pngbin0 -> 7932 bytes
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/rwtest.pngbin0 -> 19068 bytes
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/rwtest2.pngbin0 -> 8153 bytes
-rw-r--r--3rdparty/fatfs-0.10b/doc/img/rwtest3.pngbin0 -> 3011 bytes
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/appnote.html282
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/chdir.html81
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/chdrive.html61
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/chmod.html83
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/close.html66
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/closedir.html64
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/dinit.html46
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/dioctl.html95
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/dread.html71
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/dstat.html48
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/dwrite.html76
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/eof.html62
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/error.html62
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/fattime.html57
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/fdisk.html97
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/filename.html76
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/forward.html140
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/getcwd.html70
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/getfree.html95
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/getlabel.html82
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/gets.html65
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/lseek.html129
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/mkdir.html80
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/mkfs.html73
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/mount.html82
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/open.html171
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/opendir.html76
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/printf.html93
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/putc.html62
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/puts.html62
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/rc.html85
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/read.html75
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/readdir.html126
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/rename.html82
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/sdir.html40
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/setlabel.html89
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/sfatfs.html55
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/sfile.html48
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/sfileinfo.html70
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/size.html62
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/stat.html74
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/sync.html66
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/tell.html62
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/truncate.html67
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/unlink.html74
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/utime.html99
-rw-r--r--3rdparty/fatfs-0.10b/doc/ja/write.html75
-rw-r--r--3rdparty/fatfs-0.10b/doc/updates.txt146
118 files changed, 8763 insertions, 0 deletions
diff --git a/3rdparty/fatfs-0.10b/doc/00index_e.html b/3rdparty/fatfs-0.10b/doc/00index_e.html
new file mode 100644
index 00000000..99ec2a7f
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/00index_e.html
@@ -0,0 +1,118 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<meta http-equiv="cache-control" content="no-cache">
+<meta name="description" content="Open source FAT file system module for embedded projects">
+<link rel="alternate" hreflang="ja" title="Japanese version" href="00index_j.html">
+<link rel="stylesheet" href="css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - Generic FAT File System Module</title>
+</head>
+
+<body>
+<h1>FatFs - Generic FAT File System Module</h1>
+<hr>
+
+<div class="abst">
+<img src="img/layers.png" class="rset" width="245" height="255" alt="layer">
+<p>FatFs is a generic FAT file system module for small embedded systems. The FatFs is written in compliance with ANSI C and completely separated from the disk I/O layer. Therefore it is independent of hardware architecture. It can be incorporated into small microcontrollers with limited resource, such as AVR, 8051, PIC, ARM, Z80, 68k and etc. Also Petit FatFs module for tiny microcontrollers is available <a href="http://elm-chan.org/fsw/ff/00index_p.html">here</a>.</p>
+
+<h4>Features</h4>
+<ul>
+ <li>Windows compatible FAT file system.</li>
+ <li>Platform independent. Easy to port.</li>
+ <li>Very small footprint for code and work area.</li>
+ <li>Various configuration options:
+ <ul>
+ <li>Multiple volumes (physical drives and partitions).</li>
+ <li>Multiple ANSI/OEM code pages including DBCS.</li>
+ <li>Long file name support in ANSI/OEM or Unicode.</li>
+ <li>RTOS support.</li>
+ <li>Multiple sector size support.</li>
+ <li>Read-only, minimized API, I/O buffer and etc...</li>
+ </ul>
+ </li>
+</ul>
+</div>
+
+
+<div class="para">
+<h3>Application Interface</h3>
+<p>FatFs module provides following functions to the applications. In other words, this list describes what FatFs can do to access the FAT volumes.</p>
+<ul>
+ <li><a href="en/mount.html">f_mount</a> - Register/Unregister a work area</li>
+ <li><a href="en/open.html">f_open</a> - Open/Create a file</li>
+ <li><a href="en/close.html">f_close</a> - Close an open file</li>
+ <li><a href="en/read.html">f_read</a> - Read file</li>
+ <li><a href="en/write.html">f_write</a> - Write file</li>
+ <li><a href="en/lseek.html">f_lseek</a> - Move read/write pointer, Expand file size</li>
+ <li><a href="en/truncate.html">f_truncate</a> - Truncate file size</li>
+ <li><a href="en/sync.html">f_sync</a> - Flush cached data</li>
+ <li><a href="en/forward.html">f_forward</a> - Forward file data to the stream</li>
+ <li><a href="en/stat.html">f_stat</a> - Check existance of a file or sub-directory</li>
+ <li><a href="en/opendir.html">f_opendir</a> - Open a directory</li>
+ <li><a href="en/closedir.html">f_closedir</a> - Close an open directory</li>
+ <li><a href="en/readdir.html">f_readdir</a> - Read a directory item</li>
+ <li><a href="en/mkdir.html">f_mkdir</a> - Create a sub-directory</li>
+ <li><a href="en/unlink.html">f_unlink</a> - Remove a file or sub-directory</li>
+ <li><a href="en/chmod.html">f_chmod</a> - Change attribute</li>
+ <li><a href="en/utime.html">f_utime</a> - Change timestamp</li>
+ <li><a href="en/rename.html">f_rename</a> - Rename/Move a file or sub-directory</li>
+ <li><a href="en/chdir.html">f_chdir</a> - Change current directory</li>
+ <li><a href="en/chdrive.html">f_chdrive</a> - Change current drive</li>
+ <li><a href="en/getcwd.html">f_getcwd</a> - Retrieve the current directory</li>
+ <li><a href="en/getfree.html">f_getfree</a> - Get free space on the volume</li>
+ <li><a href="en/getlabel.html">f_getlabel</a> - Get volume label</li>
+ <li><a href="en/setlabel.html">f_setlabel</a> - Set volume label</li>
+ <li><a href="en/mkfs.html">f_mkfs</a> - Create a file system on the drive</li>
+ <li><a href="en/fdisk.html">f_fdisk</a> - Divide a physical drive</li>
+ <li><a href="en/gets.html">f_gets</a> - Read a string</li>
+ <li><a href="en/putc.html">f_putc</a> - Write a character</li>
+ <li><a href="en/puts.html">f_puts</a> - Write a string</li>
+ <li><a href="en/printf.html">f_printf</a> - Write a formatted string</li>
+ <li><a href="en/tell.html">f_tell</a> - Get current read/write pointer</li>
+ <li><a href="en/eof.html">f_eof</a> - Test for end-of-file on a file</li>
+ <li><a href="en/size.html">f_size</a> - Get size of a file</li>
+ <li><a href="en/error.html">f_error</a> - Test for an error on a file</li>
+</ul>
+</div>
+
+
+<div class="para">
+<h3>Device Control Interface</h3>
+<p>Since the FatFs module is a file system driver, it is completely separated from physical devices, such as memory card, harddisk and any type of storage devices. The low level device control module is not a part of FatFs module. FatFs accesses the storage device via a simple interface described below. These functions are provided by implementer. Sample implementations for some platforms are also available in the downloads.</p>
+<ul>
+ <li><a href="en/dstat.html">disk_status</a> - Get device status</li>
+ <li><a href="en/dinit.html">disk_initialize</a> - Initialize device</li>
+ <li><a href="en/dread.html">disk_read</a> - Read sector(s)</li>
+ <li><a href="en/dwrite.html">disk_write</a> - Write sector(s)</li>
+ <li><a href="en/dioctl.html">disk_ioctl</a> - Control device dependent features</li>
+ <li><a href="en/fattime.html">get_fattime</a> - Get current time</li>
+</ul>
+</div>
+
+
+<div class="para">
+<h3>Resources</h3>
+<p>The FatFs module is a free software opened for education, research and development. You can use, modify and/or redistribute it for personal projects or commercial products without any restriction under your responsibility. For further information, refer to the application note.</p>
+<ul>
+ <li><a href="http://elm-chan.org/fsw/ff/bd/"><em>FatFs User Forum</em></a>↗</li>
+ <li>Read first: <a href="en/appnote.html">FatFs module application note</a></li>
+ <li>Latest Information: <a href="http://elm-chan.org/fsw/ff/00index_e.html">http://elm-chan.org/fsw/ff/00index_e.html</a>↗</li>
+ <li><a href="http://nemuisan.blog.bai.ne.jp/">Nemuisan's Blog</a>↗ (Well written implementations for STM32F/SDIO and LPC2300/MCI)</li>
+ <li><a href="http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/arm_memcards/index.html">ARM-Projects by Martin THOMAS</a>↗ (Examples for LPC2000, AT91SAM and STM32)</li>
+ <li><a href="http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx">FAT32 Specification by Microsoft</a>↗ (The reference document on FAT file system)</li>
+ <li><a href="http://elm-chan.org/docs/fat.html">The basics of FAT file system [ja]</a>↗</li>
+ <li><a href="http://elm-chan.org/docs/mmc/mmc_e.html">How to Use MMC/SDC</a>↗</li>
+ <li><a href="img/rwtest.png">Benchmark 1</a> (ATmega64/9.2MHz with MMC via SPI, HDD/CFC via GPIO)</li>
+ <li><a href="img/rwtest2.png">Benchmark 2</a> (LPC2368/72MHz with MMC via MCI)</li>
+ <li><a href="http://members.jcom.home.ne.jp/felm/fd.mp4">Demo movie of an application</a> (this project is in ffsample.zip/lpc23xx)</li>
+</ul>
+</div>
+
+
+<hr>
+<p class="foot"><a href="../../fsw_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/00index_j.html b/3rdparty/fatfs-0.10b/doc/00index_j.html
new file mode 100644
index 00000000..da94847d
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/00index_j.html
@@ -0,0 +1,118 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<meta http-equiv="cache-control" content="no-cache">
+<meta name="description" content="組ã¿è¾¼ã¿ã‚·ã‚¹ãƒ†ãƒ å‘ã‘汎用FATファイル・システム">
+<link rel="start" title="Site Top" href="../../index_j.html">
+<link rel="up" title="Freewares" href="../../fsw.html">
+<link rel="alternate" hreflang="en" title="英文" href="00index_e.html">
+<link rel="stylesheet" href="css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs 汎用FATファイルシステム・モジュール</title>
+</head>
+
+<body>
+<h1>FatFs 汎用FATファイルシステム・モジュール</h1>
+<hr>
+
+<div class="abst">
+<img src="img/layers.png" class="rset" width="245" height="255" alt="layer">
+<p>FatFsã¯å°è¦æ¨¡ãªçµ„ã¿è¾¼ã¿ã‚·ã‚¹ãƒ†ãƒ å‘ã‘ã®æ±Žç”¨FATファイルシステム・モジュールã§ã™ã€‚ANSI C準拠ã§ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ãƒ»ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã«ã¯ä¾å­˜ã—ãªã„ã®ã§ã€å¿…è¦ãªãƒ¯ãƒ¼ã‚¯ãƒ»ã‚¨ãƒªã‚¢ãŒç¢ºä¿ã§ãã‚Œã°ã€8051, PIC, AVR, SH, Z80, 68k, H8, ARMãªã©å®‰ä¾¡ãªãƒžã‚¤ã‚³ãƒ³ã§ã‚‚使用å¯èƒ½ã§ã™ã€‚FatFsをシュリンクã—ãŸ<a href="http://elm-chan.org/fsw/ff/00index_p.html">ã·ã¡FatFs</a>↗もã‚ã‚Šã¾ã™ã€‚</p>
+<h4>FatFsモジュールã®ç‰¹å¾´</h4>
+<ul>
+ <li>Windowsäº’æ› FATファイル・システム</li>
+ <li>プラットフォームéžä¾å­˜</li>
+ <li>コンパクトãªã‚³ãƒ¼ãƒ‰ã¨RAM使用é‡</li>
+ <li>多ãã®æ§‹æˆã‚ªãƒ—ション:
+ <ul>
+ <li>複数ã®ãƒœãƒªãƒ¥ãƒ¼ãƒ (物ç†ãƒ‰ãƒ©ã‚¤ãƒ–・区画)</li>
+ <li>DBCSã‚’å«ã‚€è¤‡æ•°ã®ANSI/OEMコード・ページ</li>
+ <li>é•·ã„ファイルå(LFN) (Unicode APIã‚‚é¸æŠžå¯)</li>
+ <li>マルãƒã‚¿ã‚¹ã‚¯é–¢é€£</li>
+ <li>マルãƒãƒ»ã‚»ã‚¯ã‚¿ãƒ»ã‚µã‚¤ã‚º</li>
+ <li>リード・オンリー構æˆã€ä¸€éƒ¨APIã®å‰Šé™¤ã€ãƒãƒƒãƒ•ã‚¡æ§‹æˆã€ãã®ä»–…</li>
+ </ul>
+ </li>
+</ul>
+</div>
+
+
+<div class="para">
+<h3>上ä½ãƒ¬ã‚¤ãƒ¤ãƒ»ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹</h3>
+<p>FatFsモジュールã¯ã€ã‚¢ãƒ—リケーション・レイヤã«å¯¾ã—ã€æ¬¡ã®ãƒ•ã‚¡ã‚¤ãƒ«æ“作関数(API)ã‚’æä¾›ã—ã¾ã™ã€‚ã¤ã¾ã‚Šã€ã“ã®ãƒªã‚¹ãƒˆã¯FatFsã«ã§ãã‚‹ã“ã¨ã‚’シンプルã«ç¤ºã—ã¦ã„ã¾ã™ã€‚</p>
+<ul>
+ <li><a href="ja/mount.html">f_mount</a> - ワークエリアã®ç™»éŒ²ãƒ»æŠ¹æ¶ˆ</li>
+ <li><a href="ja/open.html">f_open</a> - ファイルã®ã‚ªãƒ¼ãƒ—ン・作æˆ</li>
+ <li><a href="ja/close.html">f_close</a> - ファイルã®ã‚¯ãƒ­ãƒ¼ã‚º</li>
+ <li><a href="ja/read.html">f_read</a> - ファイルã®èª­ã¿å‡ºã—</li>
+ <li><a href="ja/write.html">f_write</a> - ファイルã®æ›¸ãè¾¼ã¿</li>
+ <li><a href="ja/lseek.html">f_lseek</a> - リード/ライト・ãƒã‚¤ãƒ³ã‚¿ã®ç§»å‹•, ファイルã®æ‹¡å¼µ</li>
+ <li><a href="ja/truncate.html">f_truncate</a> - ファイル・サイズã®åˆ‡ã‚Šè©°ã‚</li>
+ <li><a href="ja/sync.html">f_sync</a> - キャッシュã•ã‚ŒãŸãƒ‡ãƒ¼ã‚¿ã®ãƒ•ãƒ©ãƒƒã‚·ãƒ¥</li>
+ <li><a href="ja/forward.html">f_forward</a> - ファイル・データをストリーム関数ã«è»¢é€</li>
+ <li><a href="ja/stat.html">f_stat</a> - ファイル/サブ・ディレクトリã®å­˜åœ¨ãƒã‚§ãƒƒã‚¯ã¨æƒ…å ±ã®å–å¾—</li>
+ <li><a href="ja/opendir.html">f_opendir</a> - ディレクトリã®ã‚ªãƒ¼ãƒ—ン</li>
+ <li><a href="ja/closedir.html">f_closedir</a> - ディレクトリã®ã‚¯ãƒ­ãƒ¼ã‚º</li>
+ <li><a href="ja/readdir.html">f_readdir</a> - ディレクトリã®èª­ã¿å‡ºã—</li>
+ <li><a href="ja/mkdir.html">f_mkdir</a> - サブ・ディレクトリã®ä½œæˆ</li>
+ <li><a href="ja/unlink.html">f_unlink</a> - ファイル/サブ・ディレクトリã®å‰Šé™¤</li>
+ <li><a href="ja/chmod.html">f_chmod</a> - ファイル/サブ・ディレクトリã®å±žæ€§ã®å¤‰æ›´</li>
+ <li><a href="ja/utime.html">f_utime</a> - ファイル/サブ・ディレクトリã®ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã®å¤‰æ›´</li>
+ <li><a href="ja/rename.html">f_rename</a> - ファイル/サブ・ディレクトリã®åå‰ã®å¤‰æ›´ãƒ»ç§»å‹•</li>
+ <li><a href="ja/chdir.html">f_chdir</a> - カレント・ディレクトリã®å¤‰æ›´</li>
+ <li><a href="ja/chdrive.html">f_chdrive</a> - カレント・ドライブã®å¤‰æ›´</li>
+ <li><a href="ja/getcwd.html">f_getcwd</a> - カレント・ディレクトリã®å–å¾—</li>
+ <li><a href="ja/getfree.html">f_getfree</a> - ボリューム空ã領域ã®å–å¾—</li>
+ <li><a href="ja/getlabel.html">f_getlabel</a> - ボリューム・ラベルã®å–å¾—</li>
+ <li><a href="ja/setlabel.html">f_setlabel</a> - ボリューム・ラベルã®è¨­å®š</li>
+ <li><a href="ja/mkfs.html">f_mkfs</a> - è«–ç†ãƒ‰ãƒ©ã‚¤ãƒ–ã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆ</li>
+ <li><a href="ja/fdisk.html">f_fdisk</a> - 物ç†ãƒ‰ãƒ©ã‚¤ãƒ–ã®åˆ†å‰²</li>
+ <li><a href="ja/gets.html">f_gets</a> - 文字列ã®èª­ã¿å‡ºã—</li>
+ <li><a href="ja/putc.html">f_putc</a> - 文字ã®æ›¸ãè¾¼ã¿</li>
+ <li><a href="ja/puts.html">f_puts</a> - 文字列ã®æ›¸ãè¾¼ã¿</li>
+ <li><a href="ja/printf.html">f_printf</a> - 書å¼åŒ–文字列ã®æ›¸ãè¾¼ã¿</li>
+ <li><a href="ja/tell.html">f_tell</a> - ç¾åœ¨ã®ãƒªãƒ¼ãƒ‰/ライト・ãƒã‚¤ãƒ³ã‚¿ã®å–å¾—</li>
+ <li><a href="ja/eof.html">f_eof</a> - ファイル終端ã®æœ‰ç„¡ã®å–å¾—</li>
+ <li><a href="ja/size.html">f_size</a> - ファイル・サイズã®å–å¾—</li>
+ <li><a href="ja/error.html">f_error</a> - ファイルã®ã‚¨ãƒ©ãƒ¼ã®æœ‰ç„¡ã®å–å¾—</li>
+</ul>
+</div>
+
+
+<div class="para">
+<h3>下ä½ãƒ¬ã‚¤ãƒ¤ãƒ»ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹</h3>
+<p>FatFsモジュールã¯ã€å˜ãªã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ã‚·ã‚¹ãƒ†ãƒ ãƒ»ãƒ¬ã‚¤ãƒ¤ãªã®ã§ã€ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ãƒ»ãƒ‡ãƒã‚¤ã‚¹åˆ¶å¾¡ãƒ¬ã‚¤ãƒ¤ã¯å«ã¾ã‚Œã¾ã›ã‚“。使用ã™ã‚‹ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã«å¯¾å¿œã—ãŸåˆ¶å¾¡é–¢æ•°ã¯ã€ãƒ¦ãƒ¼ã‚¶ã«ã‚ˆã£ã¦æä¾›ã•ã‚Œã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚FatFsモジュールã¯ã€ä¸‹ä½ãƒ¬ã‚¤ãƒ¤ã«å¯¾ã—å°‘ãªãã¨ã‚‚次ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ã‚’è¦æ±‚ã—ã¾ã™ã€‚OS関連機能を有効ã«ã—ãŸã¨ãã¯ã€ã“ã‚Œã«åŠ ãˆã¦ãƒ—ロセス/メモリ関連関数も必è¦ã«ãªã‚Šã¾ã™ã€‚サンプル・プロジェクトã«ä¸‹ä½ãƒ¬ã‚¤ãƒ¤ã®å®Ÿè£…例を示ã—ã¾ã™ã€‚</p>
+<ul>
+ <li><a href="ja/dstat.html">disk_status</a> - デãƒã‚¤ã‚¹ã®çŠ¶æ…‹å–å¾—</li>
+ <li><a href="ja/dinit.html">disk_initialize</a> - デãƒã‚¤ã‚¹ã®åˆæœŸåŒ–</li>
+ <li><a href="ja/dread.html">disk_read</a> - データã®èª­ã¿å‡ºã—</li>
+ <li><a href="ja/dwrite.html">disk_write</a> - データã®æ›¸ãè¾¼ã¿</li>
+ <li><a href="ja/dioctl.html">disk_ioctl</a> - ãã®ä»–ã®ãƒ‡ãƒã‚¤ã‚¹åˆ¶å¾¡</li>
+ <li><a href="ja/fattime.html">get_fattime</a> - 日付・時刻ã®å–å¾—</li>
+</ul>
+</div>
+
+
+<div class="para">
+<h3>資料</h3>
+<p>FatFsモジュールã¯ãƒ•ãƒªãƒ¼ãƒ»ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¨ã—ã¦æ•™è‚²ãƒ»ç ”究・開発用ã«å…¬é–‹ã—ã¦ã„ã¾ã™ã€‚ã©ã®ã‚ˆã†ãªåˆ©ç”¨ç›®çš„(個人利用ã‹ã‚‰å•†ç”¨ã¾ã§ï¼‰ã§ã‚‚使用・改変・é…布ã«ã¤ã„ã¦ä¸€åˆ‡ã®åˆ¶é™ã¯ã‚ã‚Šã¾ã›ã‚“ãŒã€å…¨ã¦åˆ©ç”¨è€…ã®è²¬ä»»ã®ä¸‹ã§ã®åˆ©ç”¨ã¨ã—ã¾ã™ã€‚詳ã—ãã¯ã‚¢ãƒ—リケーション・ノートをå‚ç…§ã—ã¦ãã ã•ã„。</p>
+<ul>
+ <li><a href="http://elm-chan.org/fsw/ff/bd/"><em>FatFsユーザ・フォーラム</em></a>↗</li>
+ <li>最åˆã«èª­ã‚: <a href="ja/appnote.html">FatFsモジュール・アプリケーション・ノート</a></li>
+ <li>最新版: <a href="http://elm-chan.org/fsw/ff/00index_j.html">http://elm-chan.org/fsw/ff/00index_j.html</a>↗</li>
+ <li><a href="http://nemuisan.blog.bai.ne.jp/">ã­ã‚€ã„ã•ã‚“ã®ã¶ã‚ã</a>↗ (Well written implementations for STM32F/SDIO and LPC2300/MCI)</li>
+ <li><a href="http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/arm_memcards/index.html">ARM-Projects by Martin THOMAS</a>↗ (Examples for LPC2000, AT91SAM and STM32)</li>
+ <li><a href="http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx">FATファイル・システム仕様書 by Microsoft</a>↗ (The reference document on FAT file system)</li>
+ <li><a href="http://elm-chan.org/docs/fat.html">FATファイル・システム概è¦</a>↗ (↑を読むãŸã‚ã®ã‚¬ã‚¤ãƒ‰)</li>
+ <li><a href="http://elm-chan.org/docs/mmc/mmc.html">MMCã®ä½¿ã„ã‹ãŸ</a>↗</li>
+ <li><a href="img/rwtest.png">パフォーマンス・テスト1</a> (ATmega64/9.2MHz with MMC via SPI, HDD/CFC via GPIO)</li>
+ <li><a href="img/rwtest2.png">パフォーマンス・テスト2</a> (LPC2368/72MHz with MMC via MCI)</li>
+</ul>
+</div>
+
+
+<hr>
+<p class="foot"><a href="../../fsw.html">戻る</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/css_e.css b/3rdparty/fatfs-0.10b/doc/css_e.css
new file mode 100644
index 00000000..1b544eb6
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/css_e.css
@@ -0,0 +1,65 @@
+* {margin: 0; padding: 0; border-width: 0;}
+body {margin: 8px; background-color: #e0ffff; font-color: black; font-family: serif; line-height: 133%; max-width: 1024px;}
+a:link {color: blue;}
+a:visited {color: darkmagenta;}
+a:hover {background-color: #a0ffff;}
+a:active {color: darkmagenta; overflow: hidden; outline:none; position: relative; top: 1px; left: 1px;}
+abbr {border-width: 1px;}
+
+p {margin: 0 0 0.3em 1em;}
+i {margin: 0 0.3em 0 0;}
+b {margin: 0 0.1em;}
+em {font-style: normal; font-weight: bold; margin: 0 0.1em;}
+strong {}
+pre {border: 1px dashed gray; margin: 0.5em 1em; padding: 0.5em; line-height: 1.2em; font-size: 85%; font-family: "Consolas", "Courier New", monospace; background-color: white;}
+pre span.c {color: green;}
+pre span.k {color: blue;}
+pre span.arg {font-style: italic;}
+tt {margin: 0 0.2em; font-size: 0.85em; font-family: "Consolas", "Courier New", monospace; }
+tt.arg {font-style: italic;}
+ol {margin: 0.5em 2.5em;}
+ul {margin: 0.5em 2em;}
+dl {margin: 0.5em 1em;}
+dd {margin: 0 2em;}
+dt {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace;}
+dl.par dt {margin: 0.5em 0 0 0 ; font-style: italic; }
+dl.ret dt {margin: 0.5em 0 0 0 ; font-size: 0.85em; font-family: "Consolas", "Courier New", monospace;}
+hr {border-width: 1px; margin: 1em;}
+div.abst {font-family: sans-serif;}
+div.para {clear: both; font-family: serif;}
+div.ret a {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace; }
+.equ {text-indent: 0; margin: 1em 2em 1em;}
+.indent {margin-left: 2em;}
+.rset {float: right; margin: 0.3em 0 0.5em 0.5em;}
+.lset {float: left; margin: 0.3em 0.5em 0.5em 0.5em;}
+ul.flat li {list-style-type: none; margin: 0;}
+a.imglnk img {border: 1px solid;}
+.iequ {white-space: nowrap; font-weight: bold;}
+.clr {clear: both;}
+.it {font-style: italic;}
+.mfd {font-size: 0.7em; padding: 0 1px; border: 1px solid; white-space : nowrap}
+.ral {text-align: right; }
+.lal {text-align: left; }
+.cal {text-align: center; }
+
+h1 {line-height: 1em; font-size: 2em; font-family: sans-serif; padding: 0.3em 0 0.3em;}
+p.hdd {float: right; text-align: right; margin-top: 0.5em;}
+hr.hds {clear: both; margin-bottom: 1em;}
+
+h2 {font-size: 2em; font-family: sans-serif; background-color: #d8d8FF; padding: 0.5em 0.5em; margin: 0 0 0.5em;}
+h3 {font-size: 1.5em; font-family: sans-serif; margin: 1.5em 0 0.5em;}
+h4 {font-size: 1.2em; font-family: sans-serif; margin: 1em 0 0.2em;}
+h5 {font-size: 1em; font-family: sans-serif; margin: 0.5em 0 0em;}
+small {font-size: 80%;}
+.indent {margin-left: 2em;}
+
+/* Tables */
+table {margin: 0.5em 1em; border-collapse: collapse; border: 2px solid black; }
+th {background-color: white; border-style: solid; border-width: 1px 1px 2px; border-color: black; padding: 0 3px; vertical-align: top; white-space: nowrap;}
+td {background-color: white; border: 1px solid black; padding: 0 3px; vertical-align: top; line-height: 1.3em;}
+table.lst td:first-child {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace;}
+table.lst2 td {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace;}
+table caption {font-family: sans-serif; font-weight: bold;}
+tr.lst3 td { border-width: 2px 1px 1px; }
+
+p.foot {clear: both; text-indent: 0; margin: 1em 0.5em 1em;}
diff --git a/3rdparty/fatfs-0.10b/doc/css_j.css b/3rdparty/fatfs-0.10b/doc/css_j.css
new file mode 100644
index 00000000..35164201
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/css_j.css
@@ -0,0 +1,68 @@
+@charset "Shift_JIS";
+/* Common style sheet for Tech Notes */
+
+* {margin: 0; padding: 0; border-width: 0;}
+body {margin: 8px; background-color: #e0ffff; font-color: black; font-family:"‚l‚r ‚o–¾’©", serif; line-height: 150%; letter-spacing: 1px; max-width: 1024px;}
+a:link {color: blue;}
+a:visited {color: darkmagenta;}
+a:hover {background-color: #a0ffff;}
+a:active {color: darkmagenta; overflow: hidden; outline:none; position: relative; top: 1px; left: 1px;}
+abbr {border-width: 1px;}
+
+p {text-indent: 1em; margin: 0 0 0.3em 0.5em;}
+i {margin: 0 0.3em 0 0;}
+b {margin: 0 0.1em;}
+em {font-style: normal; font-weight: bold; margin: 0 0.1em;}
+strong {}
+pre {border: 1px dashed gray; margin: 0.5em 1em; padding: 0.5em; line-height: 1.2em; letter-spacing: 0; font-size: 0.85em; font-family: "Consolas", "Courier New", "‚l‚r ƒSƒVƒbƒN", monospace; background-color: white;}
+pre span.c {color: green;}
+pre span.k {color: blue;}
+pre span.arg {font-style: italic;}
+tt {margin: 0 0.2em; letter-spacing: 0; font-size: 0.85em; font-family: "Consolas", "Courier New", "‚l‚r ƒSƒVƒbƒN", monospace;}
+tt.arg {font-style: italic;}
+ol {margin: 0.5em 2.5em;}
+ul {margin: 0.5em 2em;}
+dl {margin: 0.5em 1em;}
+dd {margin: 0em 2em;}
+dt {font-size: 0.85em; font-family: "Consolas", "Courier New", "‚l‚r ƒSƒVƒbƒN", monospace;}
+dl.par dt {margin: 0.5em 0 0 0 ; font-style: italic; letter-spacing: 0;}
+dl.ret dt {margin: 0.5em 0 0 0 ; font-size: 0.85em; font-family: "Consolas", "Courier New", "‚l‚r ƒSƒVƒbƒN", monospace; letter-spacing: 0; }
+hr {border-width: 1px; margin: 1em;}
+div.abst {font-family: "‚l‚r ‚oƒSƒVƒbƒN",sans-serif;}
+div.para {clear: both; font-family: "‚l‚r ‚o–¾’©",serif;}
+div.ret a {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace; }
+.equ {text-indent: 0; margin: 1em 2em 1em;}
+.indent {margin-left: 2em;}
+.rset {float: right; margin: 0.3em 0 0.5em 0.5em;}
+.lset {float: left; margin: 0.3em 0.5em 0.5em 0.5em;}
+ul.flat li {list-style-type: none; margin: 0;}
+a.imglnk img {border: 1px solid;}
+.iequ {white-space: nowrap; font-weight: bold;}
+.clr {clear: both;}
+.it {font-style: italic;}
+.mfd {font-size: 0.7em; padding: 0 1px; border: 1px solid; white-space : nowrap}
+.ral {text-align: right; }
+.lal {text-align: left; }
+.cal {text-align: center; }
+
+h1 {line-height: 1em; font-size: 2em; font-family: sans-serif; padding: 0.3em 0 0.3em;}
+p.hdd {float: right; text-align: right; margin-top: 0.5em;}
+hr.hds {clear: both; margin-bottom: 1em;}
+
+h2 {font-size: 2em; font-family: "‚l‚r ‚oƒSƒVƒbƒN",sans-serif; background-color: #d8d8FF; padding: 0.5em 0.5em; margin: 0 0 0.5em;}
+h3 {font-size: 1.5em; font-family: "‚l‚r ‚oƒSƒVƒbƒN",sans-serif; margin: 1.5em 0 0.5em;}
+h4 {font-size: 1.2em; font-family: "‚l‚r ‚oƒSƒVƒbƒN",sans-serif; margin: 1em 0 0.2em;}
+h5 {font-size: 1em; font-family: "‚l‚r ‚oƒSƒVƒbƒN",sans-serif; margin: 0.5em 0 0em;}
+small {font-size: 80%;}
+.indent {margin-left: 2em;}
+
+/* Tables */
+table {margin: 0.5em 1em; border-collapse: collapse; border: 2px solid black; letter-spacing: 0;}
+th {background-color: white; border-style: solid; border-width: 1px 1px 2px; border-color: black; padding: 0 3px; vertical-align: top;}
+td {background-color: white; border: 1px solid black; padding: 0 3px; vertical-align: top; line-height: 1.3em;}
+table.lst td:first-child {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace; white-space: nowrap;}
+table.lst2 td {font-size: 0.85em; font-family: "Consolas", "Courier New", monospace; white-space: nowrap;}
+table caption {font-family: sans-serif; font-weight: bold;}
+tr.lst3 td {border-width: 2px 1px 1px; }
+
+p.foot {clear: both; text-indent: 0; margin: 1em 0.5em 1em;}
diff --git a/3rdparty/fatfs-0.10b/doc/css_p.css b/3rdparty/fatfs-0.10b/doc/css_p.css
new file mode 100644
index 00000000..bc7b5b09
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/css_p.css
@@ -0,0 +1 @@
+body {margin: 8px; background-color: #ffecf0; font-color: black; font-family: serif; line-height: 133%; max-width: 1024px;}
diff --git a/3rdparty/fatfs-0.10b/doc/en/appnote.html b/3rdparty/fatfs-0.10b/doc/en/appnote.html
new file mode 100644
index 00000000..f7974e23
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/appnote.html
@@ -0,0 +1,275 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/appnote.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs Module Application Note</title>
+</head>
+
+<body>
+<h1>FatFs Module Application Note</h1>
+<ol class="toc">
+<li><a href="#port">How to Port</a></li>
+<li><a href="#limits">Limits</a></li>
+<li><a href="#memory">Memory Usage</a></li>
+<li><a href="#reduce">Module Size Reduction</a></li>
+<li><a href="#lfn">Long File Name</a></li>
+<li><a href="#unicode">Unicode API</a></li>
+<li><a href="#reentrant">Re-entrancy</a></li>
+<li><a href="#dup">Duplicated File Access</a></li>
+<li><a href="#fs1">Performance Effective File Access</a></li>
+<li><a href="#fs2">Considerations on Flash Memory Media</a></li>
+<li><a href="#critical">Critical Section</a></li>
+<li><a href="#fs3">Extended Use of FatFs API</a></li>
+<li><a href="#license">About FatFs License</a></li>
+</ol>
+<hr>
+
+<div class="para" id="port">
+<h3>How to Port</h3>
+
+<h4>Basic considerations</h4>
+<p>The FatFs module is assuming following conditions on portability.</p>
+<ul>
+<li>ANSI C<br>
+The FatFs module is a middleware written in ANSI C (C89). There is no platform dependence, so long as the compiler is in compliance with ANSI C.</li>
+<li>Size of integer types<br>
+The FatFs module assumes that size of char/short/long are 8/16/32 bit and int is 16 or 32 bit. These correspondence are defined in <tt>integer.h</tt>. This will not be a problem on most compilers. When any conflict with existing definitions is occured, you must resolve it with care.</li>
+</ul>
+
+<h4>System organizations</h4>
+<p>The dependency diagram shown below is a typical configuration of the embedded system with FatFs module.</p>
+<p><img src="../img/modules.png" width="580" height="280" alt="dependency diagram"></p>
+<p>(a) If a working disk module with FatFs API is provided, no additional function is needed. (b) To attach existing disk drivers with different API, glue functions are needed to translate the APIs between FatFs and the drivers.</p>
+<p><img src="../img/funcs.png" width="680" height="430" alt="functional diagram"></p>
+
+<h4>Which function is required?</h4>
+<p>You need to provide only low level disk I/O functions that required by FatFs module and nothing else. If a working disk module for the target is already existing, you need to write only glue functions to attach it to the FatFs module. If not, you need to port any other disk module or write it from scratch. Most of defined functions are not that always required. For example, disk write function is not required in read-only configuration. Following table shows which function is required depends on configuration options.</p>
+<table class="lst2">
+<tr><th>Function</th><th>Required when:</th><th>Note</th></tr>
+<tr><td>disk_status<br>disk_initialize<br>disk_read</td><td>Always</td><td rowspan="5">Disk I/O functions.<br>Samples available in ffsample.zip.<br>There are many implementations on the web.</td></tr>
+<tr><td>disk_write<br>get_fattime<br>disk_ioctl (CTRL_SYNC)</td><td>_FS_READONLY == 0</td></tr>
+<tr><td>disk_ioctl (GET_SECTOR_COUNT)<br>disk_ioctl (GET_BLOCK_SIZE)</td><td>_USE_MKFS == 1</td></tr>
+<tr><td>disk_ioctl (GET_SECTOR_SIZE)</td><td>_MAX_SS != _MIN_SS</td></tr>
+<tr><td>disk_ioctl (CTRL_ERASE_SECTOR)</td><td>_USE_ERASE == 1</td></tr>
+<tr><td>ff_convert<br>ff_wtoupper</td><td>_USE_LFN &gt;= 1</td><td>Unicode support functions.<br>Available in option/unicode.c.</td></tr>
+<tr><td>ff_cre_syncobj<br>ff_del_syncobj<br>ff_req_grant<br>ff_rel_grant</td><td>_FS_REENTRANT == 1</td><td rowspan="2">O/S dependent functions.<br>Samples available in option/syscall.c.</td></tr>
+<tr><td>ff_mem_alloc<br>ff_mem_free</td><td>_USE_LFN == 3</td></tr>
+</table>
+</div>
+
+<div class="para" id="limits">
+<h3>Limits</h3>
+<ul>
+<li>FAT sub-types: FAT12, FAT16 and FAT32.</li>
+<li>Number of open files: Unlimited, depends on available memory.</li>
+<li>Number of volumes: Upto 10.</li>
+<li>File size: Depends on the FAT specs. (upto 4G-1 bytes)</li>
+<li>Volume size: Depends on the FAT specs. (upto 2T bytes at 512 bytes/sector)</li>
+<li>Cluster size: Depends on the FAT specs. (upto 64K bytes at 512 bytes/sector)</li>
+<li>Sector size: Depends on the FAT specs. (512, 1024, 2048 and 4096 bytes)</li>
+</ul>
+</div>
+
+<div class="para" id="memory">
+<h3>Memory Usage</h3>
+<table class="lst2">
+<tr><th></th><th>ARM7<small><br>32bit</small></th><th>ARM7<small><br>Thumb</small></th><th>CM3<small><br>Thumb-2</small></th><th>AVR</th><th>H8/300H</th><th>PIC24</th><th>RL78</th><th>V850ES</th><th>SH-2A</th><th>RX600</th><th>IA-32</th></tr>
+<tr class="cal"> <td>Compiler</td><td>GCC</td><td>GCC</td><td>GCC</td><td>GCC</td><td>CH38</td><td>C30</td><td>CC78K0R</td><td>CA850</td><td>SHC</td><td>RXC</td><td>VC6</td></tr>
+<tr class="cal"> <td>_WORD_ACCESS</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>1</td><td>1</td></tr>
+<!-- ARM Thumb CM3 AVR H8 PIC24 RL78 V850ES SH-2A RX600 IA-32 -->
+<tr class="lst3 ral"><td class="cal">text (Full, R/W)</td><td>10675</td><td>7171</td><td>6617</td><td>13355</td><td>10940</td><td>11722</td><td>13262</td><td>8113</td><td>9048</td><td>6032</td><td>7952</td></tr>
+<tr class="ral"> <td class="cal">text (Min, R/W)</td> <td>6727</td><td>4631</td><td>4331</td> <td>8569</td> <td>7262</td> <td>7720</td> <td>9088</td><td>5287</td><td>5800</td><td>3948</td><td>5183</td></tr>
+<tr class="ral"> <td class="cal">text (Full, R/O)</td> <td>4731</td><td>3147</td><td>2889</td> <td>6235</td> <td>5170</td> <td>5497</td> <td>6482</td><td>3833</td><td>3972</td><td>2862</td><td>3719</td></tr>
+<tr class="ral"> <td class="cal">text (Min, R/O)</td> <td>3559</td><td>2485</td><td>2295</td> <td>4575</td> <td>4064</td> <td>4240</td> <td>5019</td><td>2993</td><td>3104</td><td>2214</td><td>2889</td></tr>
+<tr class="ral"> <td class="cal">bss</td><td>V*4 + 2</td><td>V*4 + 2</td><td>V*4 + 2</td><td>V*2 + 2</td><td>V*4 + 2</td><td>V*2 + 2</td><td>V*2 + 2</td><td>V*4 + 2</td><td>V*4 + 2</td><td>V*4 + 2</td><td>V*4 + 2</td></tr>
+<tr class="ral"> <td class="cal">Work area<br>(_FS_TINY == 0)</td><td>V*560<br>+ F*550</td><td>V*560<br>+ F*550</td><td>V*560<br>+ F*550</td><td>V*560<br>+ F*544</td><td>V*560<br>+ F*550</td><td>V*560<br>+ F*544</td><td>V*560<br>+ F*544</td><td>V*560<br>+ F*544</td><td>V*560<br>+ F*550</td><td>V*560<br>+ F*550</td><td>V*560<br>+ F*550</td></tr>
+<tr class="ral"> <td class="cal">Work area<br>(_FS_TINY == 1)</td><td>V*560<br>+ F*36</td><td>V*560<br>+ F*36</td><td>V*560<br>+ F*36</td><td>V*560<br>+ F*32</td><td>V*560<br>+ F*36</td><td>V*560<br>+ F*32</td><td>V*560<br>+ F*32</td><td>V*560<br>+ F*36</td><td>V*560<br>+ F*36</td><td>V*560<br>+ F*36</td><td>V*560<br>+ F*36</td></tr>
+</table>
+<p>These are the memory usage on some target systems with following condition. The memory sizes are in unit of byte, <em>V</em> denotes number of volumes and <em>F</em> denotes number of open files. All samples are optimezed in code size.</p>
+<pre>
+FatFs R0.10a options:
+_FS_READONLY 0 (R/W) or 1 (R/O)
+_FS_MINIMIZE 0 (Full function) or 3 (Minimized function)
+_USE_STRFUNC 0 (Disable string functions)
+_USE_MKFS 0 (Disable f_mkfs function)
+_USE_FORWARD 0 (Disable f_forward function)
+_USE_FASTSEEK 0 (Disable fast seek feature)
+_CODE_PAGE 932 (Japanese Shift-JIS)
+_USE_LFN 0 (Disable LFN feature)
+_MAX_SS 512 (Fixed sector size)
+_FS_RPATH 0 (Disable relative path feature)
+_FS_LABEL 0 (Disable volume label functions)
+_VOLUMES V (Number of logical drives to be used)
+_MULTI_PARTITION 0 (Single partition per drive)
+_FS_REENTRANT 0 (Disable thread safe)
+_FS_LOCK 0 (Disable file lock control)
+</pre>
+</div>
+
+<div class="para" id="reduce">
+<h3>Module Size Reduction</h3>
+<p>Follwing table shows which API function is removed by configuration options for the module size reduction.</p>
+<table class="lst2">
+<tr><td rowspan="2">Function</td><td colspan="4">_FS_MINIMIZE</td><td colspan="2">_FS_READONLY</td><td colspan="2">_USE_STRFUNC</td><td colspan="3">_FS_RPATH</td><td colspan="2">_FS_LABEL</td><td colspan="2">_USE_MKFS</td><td colspan="2">_USE_FORWARD</td><td colspan="2">_MULTI_PARTITION</td></tr>
+<tr><td>0</td><td>1</td><td>2</td><td>3</td><td>0</td><td>1</td><td>0&nbsp;&nbsp;</td><td>1/2</td><td>0</td><td>1</td><td>2</td><td>0</td><td>1</td><td>0</td><td>1</td><td>0</td><td>1</td><td>0</td><td>1</td></tr>
+<tr class="lst3"><td>f_mount</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_open</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_close</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_read</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_write</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_sync</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_lseek</td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_opendir</td><td></td><td></td><td>x</td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_closedir</td><td></td><td></td><td>x</td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_readdir</td><td></td><td></td><td>x</td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_stat</td><td></td><td>x</td><td>x</td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_getfree</td><td></td><td>x</td><td>x</td><td>x</td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_truncate</td><td></td><td>x</td><td>x</td><td>x</td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_unlink</td><td></td><td>x</td><td>x</td><td>x</td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_mkdir</td><td></td><td>x</td><td>x</td><td>x</td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_chmod</td><td></td><td>x</td><td>x</td><td>x</td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_utime</td><td></td><td>x</td><td>x</td><td>x</td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_rename</td><td></td><td>x</td><td>x</td><td>x</td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_chdir</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_chdrive</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_getcwd</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>x</td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_getlabel</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_setlabel</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_forward</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td></tr>
+<tr><td>f_mkfs</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_fdisk</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td>x</td><td></td></tr>
+<tr><td>f_putc</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_puts</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_printf</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_gets</td><td></td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+</table>
+</div>
+
+<div class="para" id="lfn">
+<h3>Long File Name</h3>
+<p>FatFs module supports LFN (long file name). The two different file names, SFN (short file name) and LFN, of a file is transparent on the API except for <tt>f_readdir()</tt> function. The LFN feature is disabled by default. To enable it, set <tt>_USE_LFN</tt> to 1, 2 or 3, and add <tt>option/unicode.c</tt> to the project. The LFN feature requiers a certain working buffer in addition. The buffer size can be configured by <tt>_MAX_LFN</tt> according to the available memory. The length of an LFN will reach up to 255 characters, so that the <tt>_MAX_LFN</tt> should be set to 255 for full featured LFN operation. If the size of working buffer is insufficient for the input file name, the file function fails with <tt>FR_INVALID_NAME</tt>. When enable the LFN feature with re-entrant configuration, <tt>_USE_LFN</tt> must be set to 2 or 3. In this case, the file function allocates the working buffer on the stack or heap. The working buffer occupies <tt>(_MAX_LFN + 1) * 2</tt> bytes.</p>
+<table class="lst2 rset">
+<caption>LFN cfg on ARM7TDMI</caption>
+<tr><th>Code page</th><th>Program size</th></tr>
+<tr><td>SBCS</td><td>+3.7K</td></tr>
+<tr><td>932(Shift-JIS)</td><td>+62K</td></tr>
+<tr><td>936(GBK)</td><td>+177K</td></tr>
+<tr><td>949(Korean)</td><td>+139K</td></tr>
+<tr><td>950(Big5)</td><td>+111K</td></tr>
+</table>
+<p>When the LFN feature is enabled, the module size will be increased depends on the selected code page. Right table shows how many bytes increased when LFN feature is enabled with some code pages. Especially, in the CJK region, tens of thousands of characters are being used. Unfortunately, it requires a huge OEM-Unicode bidirectional conversion table and the module size will be drastically increased that shown in the table. As the result, the FatFs with LFN feature with those code pages will not able to be implemented to most 8-bit microcontrollers.</p>
+<p>Note that the LFN feature on the FAT file system is a patent of Microsoft Corporation. This is not the case on FAT32 but most FAT32 drivers come with the LFN feature. FatFs can swich the LFN feature off by configuration option. When enable LFN feature on the commercial products, a license from Microsoft may be required depends on the final destination.</p>
+</div>
+
+<div class="para" id="unicode">
+<h3>Unicode API</h3>
+<p>By default, FatFs uses ANSI/OEM code set on the API under LFN configuration. FatFs can also switch the character encoding to Unicode on the API by <tt>_LFN_UNICODE</tt> option. This means that the FatFs supports the True-LFN feature. For more information, refer to the description in the <a href="filename.html">file name</a>.</p>
+</div>
+
+<div class="para" id="reentrant">
+<h3>Re-entrancy</h3>
+<p>The file operations to the different volume is always re-entrant and can work simultaneously. The file operations to the same volume is not re-entrant but it can also be configured to thread-safe by <tt>_FS_REENTRANT</tt> option. In this case, also the OS dependent synchronization object control functions, <tt>ff_cre_syncobj(), ff_del_syncobj(), ff_req_grant() and ff_rel_grant()</tt> must be added to the project. There are some examples in the <tt>option/syscall.c</tt>.</p>
+<p>When a file function is called while the volume is in use by any other task, the file function is suspended until that task leaves the file function. If wait time exceeded a period defined by <tt>_TIMEOUT</tt>, the file function will abort with <tt>FR_TIMEOUT</tt>. The timeout feature might not be supported by some RTOS.</p>
+<p>There is an exception for <tt>f_mount(), f_mkfs(), f_fdisk()</tt> function. These functions are not re-entrant to the same volume or corresponding physical drive. When use these functions, all other tasks must unmount the volume and avoid to access the volume.</p>
+<p>Note that this section describes on the re-entrancy of the FatFs module itself but also the low level disk I/O layer will need to be re-entrant.</p>
+</div>
+
+<div class="para" id="dup">
+<h3>Duplicated File Access</h3>
+<p>FatFs module does not support the read/write collision control of duplicated open to a file. The duplicated open is permitted only when each of open method to a file is read mode. The duplicated open with one or more write mode to a file is always prohibited, and also open file must not be renamed and deleted. A violation of these rules can cause data colluption.</p>
+<p>The file lock control can also be available by <tt>_FS_LOCK</tt> option. The value defines the number of open objects to manage simultaneously. In this case, if any open, rename or remove that violating the file shareing rule that described above is attempted, the file function will fail with <tt>FR_LOCKED</tt>. If number of open objects, files and sub-directories, gets larger than <tt>_FS_LOCK</tt>, the <tt>f_open(), f_optndir()</tt> function will fail with <tt>FR_TOO_MANY_OPEN_FILES</tt>.</p>
+</div>
+
+<div class="para" id="fs1">
+<h3>Performance Effective File Access</h3>
+<p>For good read/write throughput on the small embedded systems with limited size of memory, application programmer should consider what process is done in the FatFs module. The file data on the volume is transferred in following sequence by <tt>f_read()</tt> function.</p>
+<p>Figure 1. Sector misaligned read (short)<br>
+<img src="../img/f1.png" width="490" height="110" alt="">
+</p>
+<p>Figure 2. Sector misaligned read (long)<br>
+<img src="../img/f2.png" width="490" height="140" alt="">
+</p>
+<p>Figure 3. Fully sector aligned read<br>
+<img src="../img/f3.png" width="490" height="119" alt="">
+</p>
+<p>The file I/O buffer is a sector buffer to read/write a partial data on the sector. The sector buffer is either file private sector buffer on each file object or shared sector buffer in the file system object. The buffer configuration option <tt>_FS_TINY</tt> determins which sector buffer is used for the file data transfer. When tiny buffer (1) is selected, data memory consumption is reduced 512 bytes each file object. In this case, FatFs module uses only a sector buffer in the file system object for file data transfer and FAT/directory access. The disadvantage of the tiny buffer configuration is: the FAT data cached in the sector buffer will be lost by file data transfer and it must be reloaded at every cluster boundary. However it will be suitable for most application from view point of the decent performance and low memory comsumption.</p>
+<p>Figure 1 shows that a partial sector, sector misaligned part of the file, is transferred via the file I/O buffer. At long data transfer shown in Figure 2, middle of transfer data that covers one or more sector is transferred to the application buffer directly. Figure 3 shows that the case of entier transfer data is aligned to the sector boundary. In this case, file I/O buffer is not used. On the direct transfer, the maximum extent of sectors are read with <tt>disk_read()</tt> function at a time but the multiple sector transfer is divided at cluster boundary even if it is contiguous.</p>
+<p>Therefore taking effort to sector aligned read/write accesss eliminates buffered data transfer and the read/write performance will be improved. Besides the effect, cached FAT data will not be flushed by file data transfer at the tiny configuration, so that it can achieve same performance as non-tiny configuration with small memory footprint.</p>
+</div>
+
+<div class="para" id="fs2">
+<h3>Considerations on Flash Memory Media</h3>
+<p>To maximize the write performance of flash memory media, such as SDC, CFC and U Disk, it must be controlled in consideration of its characteristitcs.</p>
+<h4>Using Mutiple-Sector Write</h4>
+<div class="rset">
+Figure 6. Comparison between Multiple/Single Sector Write<br>
+<img src="../img/f6.png" width="630" height="148" alt="fig.6">
+</div>
+<p>The write throughput of the flash memory media becomes the worst at single sector write transaction. The write throughput increases as the number of sectors per a write transaction. This effect more appers at faster interface speed and the performance ratio often becomes grater than ten. <a href="../img/rwtest2.png">This graph</a> is clearly explaining how fast is multiple block write (W:16K, 32 sectors) than single block write (W:100, 1 sector), and also larger card tends to be slow at single block write. The number of write transactions also affects the life time of the flash memory media. Therefore the application program should write the data in large block as possible. The ideal write chunk size and alighment is size of sector, and size of cluster is the best. Of course all layers between the application and the storage device must have consideration on multiple sector write, however most of open-source disk drivers lack it. Do not split a multiple sector write request into single sector write transactions or the write throughput gets poor. Note that FatFs module and its sample disk drivers supprt multiple sector read/write feature. </p>
+<h4>Forcing Memory Erase</h4>
+<p>When remove a file with <tt>f_remove()</tt> function, the data clusters occupied by the file are marked 'free' on the FAT. But the data sectors containing the file data are not that applied any process, so that the file data left occupies a part of the flash memory array as 'live block'. If the file data is forced erased on removing the file, those data blocks will be turned in to the free block pool. This may skip internal block erase operation to the data block on next write operation. As the result the write performance might be improved. FatFs can manage this feature by setting <tt>_USE_ERASE</tt> to 1. Note that this is an expectation of internal process of the flash memory storage and not that always effective. Also <tt>f_remove()</tt> function will take a time when remove a large file. Most applications will not need this feature.</p>
+</div>
+
+<div class="para" id="critical">
+<h3>Critical Section</h3>
+<p>If a write operation to the FAT volume is interrupted due to any accidental failure, such as sudden blackout, incorrect disk removal and unrecoverable disk error, the FAT structure on the volume can be broken. Following images shows the critical section of the FatFs module.</p>
+<div class="lset">
+Figure 4. Long critical section<br>
+<img src="../img/f4.png" width="320" height="436" alt="fig.4">
+</div>
+<div class="lset">
+Figure 5. Minimized critical section<br>
+<img src="../img/f5.png" width="320" height="436" alt="fig.5">
+</div>
+<br class="clr">
+<p>An interruption in the red section can cause a cross link; as a result, the object being changed can be lost. If an interruption in the yellow section is occured, there is one or more possibility listed below.</p>
+<ul>
+<li>The file data being rewrited is collapsed.</li>
+<li>The file being appended returns initial state.</li>
+<li>The file created as new is gone.</li>
+<li>The file created as new or overwritten remains but no content.</li>
+<li>Efficiency of disk use gets worse due to lost clusters.</li>
+</ul>
+<p>Each case does not affect the files that not opened in write mode. To minimize risk of data loss, the critical section can be minimized by minimizing the time that file is opened in write mode or using <tt>f_sync()</tt> function as shown in Figure 5.</p>
+</div>
+
+<div class="para" id="fs3">
+<h3>Extended Use of FatFs API</h3>
+<p>These are examples of extended use of FatFs APIs. New item will be added whenever a useful code is found.</p>
+<ol>
+<li><a href="../img/app1.c">Open or create a file for append</a></li>
+<li><a href="../img/app2.c">Empty a directory</a></li>
+<li><a href="../img/app3.c">Allocate contiguous area to the file</a></li>
+<li><a href="../img/app4.c">Function/Compatible checker for low level disk I/O module</a></li>
+<li><a href="../img/mkfatimg.zip">FAT image creator</a></li>
+</ol>
+</div>
+
+<div class="para" id="license">
+<h3>About FatFs License</h3>
+<p>FatFs has being developped as a personal project of author, ChaN. It is free from the code anyone else wrote. Following code block shows a copy of the FatFs license document that included in the source files.</p>
+<pre>/*----------------------------------------------------------------------------/
+/ FatFs - FAT file system module R0.10b (C)ChaN, 2014
+/-----------------------------------------------------------------------------/
+/ FatFs module is a generic FAT file system module for small embedded systems.
+/ This is a free software that opened for education, research and commercial
+/ developments under license policy of following trems.
+/
+/ Copyright (C) 2014, ChaN, all right reserved.
+/
+/ * The FatFs module is a free software and there is NO WARRANTY.
+/ * No restriction on use. You can use, modify and redistribute it for
+/ personal, non-profit or commercial products UNDER YOUR RESPONSIBILITY.
+/ * Redistributions of source code must retain the above copyright notice.
+/
+/-----------------------------------------------------------------------------/</pre>
+<p>Therefore FatFs license is one of the BSD-style licenses but there is a significant feature. Because FatFs is for embedded projects, the conditions of redistributions in binary form, such as embedded code, hex file, binary library or any forms without source code, are not specified in order to extend usability for commercial products. The documentation of the distributions need not include about FatFs and its license document, and it may also. This is equivalent to the BSD 1-Clause License. Of course FatFs is compatible with the projects under GNU GPL. When redistribute the FatFs with any modification or branch it as a folk, the license can also be changed to GNU GPL or BSD-style license.</p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/chdir.html b/3rdparty/fatfs-0.10b/doc/en/chdir.html
new file mode 100644
index 00000000..64317707
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/chdir.html
@@ -0,0 +1,81 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/chdir.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_chdir</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_chdir</h2>
+<p>The f_chdir function changes the current directory of a drive.</p>
+<pre>
+FRESULT f_chdir (
+ const TCHAR* <span class="arg">path</span> <span class="c">/* [IN] Path name */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>Pointer to the null-terminated string that specifies a <a href="filename.html">directory</a> to go.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_chdir()</tt> function changes the current directory of the logical drive. The current directory of a drive is initialized to the root directory when the drive is auto-mounted. Note that the current directory is retained in the each file system object so that it also affects other tasks that using the volume.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_RPATH >= 1</tt>.</p>
+</div>
+
+
+<div class="para use">
+<h4>Example</h4>
+<pre>
+ <span class="c">/* Change current direcoty of the current drive (dir1 under root dir) */</span>
+ f_chdir("/dir1");
+
+ <span class="c">/* Change current direcoty of drive 2 (parent dir) */</span>
+ f_chdir("2:..");
+</pre>
+</div>
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="chdrive.html">f_chdrive</a>, <a href="getcwd.html">f_getcwd</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/chdrive.html b/3rdparty/fatfs-0.10b/doc/en/chdrive.html
new file mode 100644
index 00000000..fdc15774
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/chdrive.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/chdrive.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_chdrive</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_chdrive</h2>
+<p>The f_chdrive function changes the current drive.</p>
+<pre>
+FRESULT f_chdrive (
+ const TCHAR* <span class="arg">path</span> <span class="c">/* [IN] Logical drive number */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>Specifies the <a href="filename.html">logical drive number</a> to be set as the current drive.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_chdrive()</tt> function changes the current drive. The initial value of the current drive number is 0. Note that the current drive is retained in a static variable so that it also affects other tasks that using the file functions.</p>
+</div>
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_RPATH >= 1</tt> and <tt>_VOLUMES >= 2</tt>.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="chdir.html">f_chdir</a>, <a href="getcwd.html">f_getcwd</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/chmod.html b/3rdparty/fatfs-0.10b/doc/en/chmod.html
new file mode 100644
index 00000000..755ff318
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/chmod.html
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/chmod.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_chmod</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_chmod</h2>
+<p>The f_chmod function changes the attribute of a file or sub-directory.</p>
+<pre>
+FRESULT f_chmod (
+ const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] Object name */</span>
+ BYTE <span class="arg">attr</span>, <span class="c">/* [IN] Attribute flags */</span>
+ BYTE <span class="arg">mask</span> <span class="c">/* [IN] Attribute masks */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>Pointer to the null-terminated string that specifies an <a href="filename.html">object</a> to be changed</dd>
+<dt>attr</dt>
+<dd>Attribute flags to be set in one or more combination of the following flags. The specified flags are set and others are cleard.<br>
+<table class="lst">
+<tr><th>Attribute</th><th>Description</th></tr>
+<tr><td>AM_RDO</td><td>Read only</td></tr>
+<tr><td>AM_ARC</td><td>Archive</td></tr>
+<tr><td>AM_SYS</td><td>System</td></tr>
+<tr><td>AM_HID</td><td>Hidden</td></tr>
+</table>
+</dd>
+<dt>mask</dt>
+<dd>Attribute mask that specifies which attribute is changed. The specified attributes are set or cleard and others are left unchanged.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ok">FR_NO_FILE</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_chmod()</tt> function changes the attribute of a file or sub-directory.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_READONLY == 0</tt> and <tt>_FS_MINIMIZE == 0</tt>.</p>
+</div>
+
+
+<div class="para use">
+<h4>Example</h4>
+<pre>
+ <span class="c">/* Set read-only flag, clear archive flag and others are left unchanged. */</span>
+ f_chmod("file.txt", AR_RDO, AR_RDO | AR_ARC);
+</pre>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/close.html b/3rdparty/fatfs-0.10b/doc/en/close.html
new file mode 100644
index 00000000..0746700b
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/close.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/close.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_close</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_close</h2>
+<p>The f_close function closes an open file.</p>
+<pre>
+FRESULT f_close (
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] Pointer to the file object */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameter</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>Pointer to the open file object structure to be closed.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_close()</tt> function closes an open file object. If any data has been written to the file, the cached information of the file is written back to the volume. After the function succeeded, the file object is no longer valid and it can be discarded.</p>
+<p>Note that if the file object is in read-only mode and <tt>_FS_LOCK</tt> option is not enabled, the file object can also be discarded without this process. However this is not recommended for future compatibility.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Always available.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="read.html">f_read</a>, <a href="write.html">f_write</a>, <a href="sync.html">f_sync</a>, <a href="sfile.html">FIL</a>, <a href="sfatfs.html">FATFS</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/closedir.html b/3rdparty/fatfs-0.10b/doc/en/closedir.html
new file mode 100644
index 00000000..05ef6f69
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/closedir.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/close.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_closedir</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_closedir</h2>
+<p>The f_closedir function closes an open directory.</p>
+<pre>
+FRESULT f_closedir (
+ DIR* <span class="arg">dp</span> <span class="c">/* [IN] Pointer to the directory object */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameter</h4>
+<dl class="par">
+<dt>dp</dt>
+<dd>Pointer to the open directory object structure to be closed.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_closedir()</tt> function closes an open directory object. After the function succeeded, the directory object is no longer valid and it can be discarded.</p>
+<p>Note that the directory object can also be discarded without this process if <tt>_FS_LOCK</tt> option is not enabled. However this is not recommended for future compatibility.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_MINIMIZE &lt;= 1</tt>.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="opendir.html">f_opendir</a>, <a href="readdir.html">f_readdir</a>, <a href="sdir.html">DIR</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/dinit.html b/3rdparty/fatfs-0.10b/doc/en/dinit.html
new file mode 100644
index 00000000..4675dd9b
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/dinit.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/dinit.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - disk_initialize</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>disk_initialize</h2>
+<p>The disk_initialize function initializes the storage device.</p>
+<pre>
+DSTATUS disk_initialize (
+ BYTE <span class="arg">pdrv</span> <span class="c">/* [IN] Physical drive number */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameter</h4>
+<dl class="par">
+<dt>pdrv</dt>
+<dd>Physical drive number to identify the target device.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>This function returns a disk status as the result. For details of the disk status, refer to the <a href="dstat.html">disk_status()</a> function.</p>
+</div>
+
+<div class="para desc">
+<h4>Description</h4>
+<p>This function initializes a storage device and put it ready to generic read/write data. When the function succeeded, <tt>STA_NOINIT</tt> flag in the return value is cleared.</p>
+<p><em>Application program MUST NOT call this function, or FAT structure on the volume can be broken. To re-initialize the file system, use <tt>f_mount()</tt> function instead.</em> This function is called at volume mount process by FatFs module to manage the media change.</p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/dioctl.html b/3rdparty/fatfs-0.10b/doc/en/dioctl.html
new file mode 100644
index 00000000..fec70c8b
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/dioctl.html
@@ -0,0 +1,90 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/dioctl.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - disk_ioctl</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>disk_ioctl</h2>
+<p>The disk_ioctl function cntrols device specific features and miscellaneous functions other than generic read/write.</p>
+<pre>
+DRESULT disk_ioctl (
+ BYTE <span class="arg">pdrv</span>, <span class="c">/* [IN] Drive number */</span>
+ BYTE <span class="arg">cmd</span>, <span class="c">/* [IN] Control command code */</span>
+ void* <span class="arg">buff</span> <span class="c">/* [I/O] Parameter and data buffer */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>pdrv</dt>
+<dd>Physical drive number to identify the target device.</dd>
+<dt>cmd</dt>
+<dd>Command code.</dd>
+<dt>buff</dt>
+<dd>Pointer to the parameter depends on the command code. Do not care if no parameter to be passed.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Value</h4>
+<dl class="ret">
+<dt>RES_OK (0)</dt>
+<dd>The function succeeded.</dd>
+<dt>RES_ERROR</dt>
+<dd>An error occured.</dd>
+<dt>RES_PARERR</dt>
+<dd>The command code or parameter is invalid.</dd>
+<dt>RES_NOTRDY</dt>
+<dd>The device has not been initialized.</dd>
+</dl>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The FatFs module requires only five device independent commands described below.</p>
+<table class="lst">
+<caption>Standard ioctl command used by FatFs</caption>
+<tr><th>Command</th><th>Description</th></tr>
+<tr><td>CTRL_SYNC</td><td>Make sure that the device has finished pending write process. If the disk I/O module has a write back cache, the dirty buffers must be written back to the media immediately. Nothing to do for this command if each write operation to the media is completed within the <tt>disk_write()</tt> function. Required at <tt>_FS_READONLY == 0</tt>.</td></tr>
+<tr><td>GET_SECTOR_COUNT</td><td>Returns number of available sectors on the drive into the <tt>DWORD</tt> variable pointed by <tt class="arg">buff</tt>. This command is used by only <tt>f_mkfs()</tt> and <tt>f_fdisk()</tt> function to determine the volume/partition size to be created. Required at <tt>_USE_MKFS == 1</tt> or <tt>_MULTI_PARTITION == 1</tt>.</td></tr>
+<tr><td>GET_SECTOR_SIZE</td><td>Returns sector size of the media into the <tt>WORD</tt> variable pointed by <tt class="arg">buff</tt>. Valid return values of this command are 512, 1024, 2048 or 4096. This command is required at variable sector size configuration, <tt>_MAX_SS &gt; _MIN_SS</tt>. Never used at fixed sector size configuration, <tt>_MAX_SS == _MIN_SS</tt>, and it must work at that sector size.</td></tr>
+<tr><td>GET_BLOCK_SIZE</td><td>Returns erase block size of the flash memory in unit of sector into the <tt>DWORD</tt> variable pointed by <tt class="arg">buff</tt>. The allowable value is from 1 to 32768 in power of 2. Return 1 if the erase block size is unknown or disk media. This command is used by only <tt>f_mkfs()</tt> function and it attempts to align data area to the erase block boundary. Required at <tt>_USE_MKFS == 1</tt>.</td></tr>
+<tr><td>CTRL_ERASE_SECTOR</td><td>Informs device that the data on the block of sectors specified by a <tt>DWORD</tt> array {&lt;start sector&gt;, &lt;end sector&gt;} pointed by <tt class="arg">buff</tt> is no longer needed and may be erased. The device would force erased the memory block. This is a command similar to Trim command of ATA device. When this feature is not supported or not a flash memory media, nothing to do for this command. The FatFs does not check the result code and the file function is not affected even if the sectors ware not erased well. This command is called on removing a cluster chain and <tt>f_mkfs()</tt> function. Required at <tt>_USE_ERASE == 1</tt>.</td></tr>
+</table>
+
+<p>FatFs never uses any device dependent command and user defined command. Following table shows an example of non-standard commands usable for some applications.</p>
+<table class="lst">
+<caption>Example of optional ioctl command</caption>
+<tr><th>Command</th><th>Description</th></tr>
+<tr><td>CTRL_FORMAT</td><td>Create a physical format on the media. If <tt class="arg">buff</tt> is not null, it is pointer to the call-back function for progress notification.</td></tr>
+<tr><td>CTRL_POWER_IDLE</td><td>Put the device idle state. <tt>STA_NOINIT</tt> in status flag may not be set if the device would go active state by generic read/write function.</td></tr>
+<tr><td>CTRL_POWER_OFF</td><td>Put the device off state. Shut-down the power to the device and deinitialize the device interface if needed. <tt>STA_NOINIT</tt> in status flag must be set. The device goes active state by <tt>disk_initialize()</tt> function.</td></tr>
+<tr><td>CTRL_LOCK</td><td>Lock media eject mechanism.</td></tr>
+<tr><td>CTRL_UNLOCK</td><td>Unlock media eject mechanism.</td></tr>
+<tr><td>CTRL_EJECT</td><td>Eject media cartridge. <tt>STA_NOINIT</tt> and <tt>STA_NODISK</tt> in status flag are set after the function succeeded.</td></tr>
+<tr><td>MMC_GET_TYPE</td><td>Get card type. The type flags, bit0:MMCv3, bit1:SDv1, bit2:SDv2+ and bit3:LBA, is stored to a BYTE variable pointed by <tt class="arg">buff</tt>. (MMC/SDC specific command)</td></tr>
+<tr><td>MMC_GET_CSD</td><td>Get CSD register into a 16-byte buffer pointed by <tt class="arg">buff</tt>. (MMC/SDC specific command)</td></tr>
+<tr><td>MMC_GET_CID</td><td>Get CID register into a 16-byte buffer pointed by <tt class="arg">buff</tt>. (MMC/SDC specific command)</td></tr>
+<tr><td>MMC_GET_OCR</td><td>Get OCR register into a 4-byte buffer pointed by <tt class="arg">buff</tt>. (MMC/SDC specific command)</td></tr>
+<tr><td>MMC_GET_SDSTAT</td><td>Get SDSTATUS register into a 64-byte buffer pointed by <tt class="arg">buff</tt>. (SDC specific command)</td></tr>
+<tr><td>ATA_GET_REV</td><td>Get the revision string into a 16-byte buffer pointed by <tt class="arg">buff</tt>. (ATA/CFC specific command)</td></tr>
+<tr><td>ATA_GET_MODEL</td><td>Get the model string into a 40-byte buffer pointed by <tt class="arg">buff</tt>. (ATA/CFC specific command)</td></tr>
+<tr><td>ATA_GET_SN</td><td>Get the serial number string into a 20-byte buffer pointed by <tt class="arg">buff</tt>. (ATA/CFC specific command)</td></tr>
+</table>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/dread.html b/3rdparty/fatfs-0.10b/doc/en/dread.html
new file mode 100644
index 00000000..3f9bc039
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/dread.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/dread.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - disk_read</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>disk_read</h2>
+<p>The disk_read function reads sector(s) from the storage device.</p>
+<pre>
+DRESULT disk_read (
+ BYTE <span class="arg">pdrv</span>, <span class="c">/* [IN] Physical drive number */</span>
+ BYTE* <span class="arg">buff</span>, <span class="c">/* [OUT] Pointer to the read data buffer */</span>
+ DWORD <span class="arg">sector</span>, <span class="c">/* [IN] Start sector number */</span>
+ UINT <span class="arg">count</span> <span class="c">/* [IN] Number of sectros to read */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>pdrv</dt>
+<dd>Physical drive number to identify the target device.</dd>
+<dt>buff</dt>
+<dd>Pointer to the <em>byte array</em> to store the read data.</dd>
+<dt>sector</dt>
+<dd>Start sector number in logical block address (LBA).</dd>
+<dt>count</dt>
+<dd>Number of sectors to read. FatFs specifis it in range of from 1 to 128.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Value</h4>
+<dl class="ret">
+<dt>RES_OK (0)</dt>
+<dd>The function succeeded.</dd>
+<dt>RES_ERROR</dt>
+<dd>Any hard error occured during the read operation and could not recover it.</dd>
+<dt>RES_PARERR</dt>
+<dd>Invalid parameter.</dd>
+<dt>RES_NOTRDY</dt>
+<dd>The device has not been initialized.</dd>
+</dl>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The memory address specified by <tt class="arg">buff</tt> is not that always aligned to word boundary because the type of argument is defined as <tt>BYTE*</tt>. The misaligned read/write request can occure at <a href="appnote.html#fs1">direct transfer</a>. If the bus architecture, especially DMA controller, does not allow misaligned memory access, it should be solved in this function. There are some workarounds described below to avoid this issue.</p>
+<ul>
+<li>Convert word transfer to byte transfer in this function. - Recommended.</li>
+<li>For <tt>f_read()</tt>, avoid long read request that includes a whole of sector. - Direct transfer will never occure.</li>
+<li>For <tt>f_read(fp, buff, btr, &amp;br)</tt>, make sure that <tt>(((UINT)buff &amp; 3) == (f_tell(fp) &amp; 3))</tt> is true. - Word aligned direct transfer is guaranteed.</li>
+</ul>
+<p>Generally, a multiple sector transfer request must not be split into single sector transactions to the storage device, or you will not get good read throughput.</p>
+</div>
+
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/dstat.html b/3rdparty/fatfs-0.10b/doc/en/dstat.html
new file mode 100644
index 00000000..d2b0242b
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/dstat.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/dstat.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - disk_status</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>disk_status</h2>
+<p>The disk_status function returns the current disk status.</p>
+<pre>
+DSTATUS disk_status (
+ BYTE <span class="arg">pdrv</span> <span class="c">/* [IN] Physical drive number */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameter</h4>
+<dl class="par">
+<dt>pdrv</dt>
+<dd>Physical drive number to identify the target device.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>The disk status is returned in combination of following flags. FatFs refers only <tt>STA_NOINIT</tt> and <tt>STA_PROTECT</tt>.</p>
+<dl class="ret">
+<dt>STA_NOINIT</dt>
+<dd>Indicates that the device is not initialized. This flag is set on system reset, media removal or failure of <tt>disk_initialize()</tt> function. It is cleared on <tt>disk_initialize()</tt> function succeeded. Media change that occurs asynchronously must be captured and reflect it to the status flags, or auto-mount feature will not work correctly. When media change detection feature is not supported, application program needs to de-initialize the file system object with <tt>f_mount()</tt> function after the media change.</dd>
+<dt>STA_NODISK</dt>
+<dd>Indicates that no medium in the drive. This is always cleared on fixed disk drive. Note that FatFs does not refer this flag.</dd>
+<dt>STA_PROTECT</dt>
+<dd>Indicates that the medium is write protected. This is always cleared on the drives without write protect feature. Not valid while no medium in the drive.</dd>
+</dl>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/dwrite.html b/3rdparty/fatfs-0.10b/doc/en/dwrite.html
new file mode 100644
index 00000000..616acf68
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/dwrite.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/dwrite.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - disk_write</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>disk_write</h2>
+<p>The disk_write writes sector(s) to the storage device.</p>
+<pre>
+DRESULT disk_write (
+ BYTE <span class="arg">drv</span>, <span class="c">/* [IN] Physical drive number */</span>
+ const BYTE* <span class="arg">buff</span>, <span class="c">/* [IN] Pointer to the data to be written */</span>
+ DWORD <span class="arg">sector</span>, <span class="c">/* [IN] Sector number to write from */</span>
+ UINT <span class="arg">count</span> <span class="c">/* [IN] Number of sectors to write */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>pdrv</dt>
+<dd>Physical drive number to identify the target device.</dd>
+<dt>buff</dt>
+<dd>Pointer to the <em>byte array</em> to be written. The size of data to be written is sector size * <tt class="arg">count</tt> bytes.</dd>
+<dt>sector</dt>
+<dd>Start sector number in logical block address (LBA).</dd>
+<dt>count</dt>
+<dd>Number of sectors to write. FatFs specifis it in range of from 1 to 128.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<dl class="ret">
+<dt>RES_OK (0)</dt>
+<dd>The function succeeded.</dd>
+<dt>RES_ERROR</dt>
+<dd>Any hard error occured during the write operation and could not recover it.</dd>
+<dt>RES_WRPRT</dt>
+<dd>The medium is write protected.</dd>
+<dt>RES_PARERR</dt>
+<dd>Invalid parameter.</dd>
+<dt>RES_NOTRDY</dt>
+<dd>The device has not been initialized.</dd>
+</dl>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The specified memory address is not that always aligned to word boundary because the type of pointer is defined as <tt>BYTE*</tt>. For more information, refer to the description of <a href="dread.html"><tt>disk_read()</tt></a> function.</p>
+<p>Generally, a multiple sector transfer request must not be split into single sector transactions to the storage device, or you will never get good write throughput.</p>
+<p>FatFs expects delayed write feature of the disk functions. The write operation to the media need not to be completed due to write operation is in progress or only stored it into the cache buffer when return from this function. But data on the <tt class="arg">buff</tt> is invalid after return from this function. The write completion request is done by <tt>CTRL_SYNC</tt> command of <tt><a href="dioctl.html">disk_ioctl()</a></tt> function. Therefore, if delayed write feature is implemented, the write throughput may be improved.</p>
+<p><em>Application program MUST NOT call this function, or FAT structure on the volume can be collapsed.</em></p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>This function is not needed when <tt>_FS_READONLY == 1</tt>.</p>
+</div>
+
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/eof.html b/3rdparty/fatfs-0.10b/doc/en/eof.html
new file mode 100644
index 00000000..9501b094
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/eof.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/eof.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_eof</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_eof</h2>
+<p>The f_eof function tests for end-of-file on a file.</p>
+<pre>
+int f_eof (
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] File object */</span>
+);
+</pre>
+</div>
+
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>Pointer to the open file object structure.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>The <tt>f_eof()</tt> function returns a non-zero value if the read/write pointer has reached end of the file; otherwise it returns a zero.</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>In this revision, this function is implemented as a macro.</p>
+<pre>
+<span class="k">#define</span> f_eof(fp) (((fp)->fptr) == ((fp)->fsize) ? 1 : 0)
+</pre>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Always available.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="lseek.html">f_lseek</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/error.html b/3rdparty/fatfs-0.10b/doc/en/error.html
new file mode 100644
index 00000000..2a875189
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/error.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/error.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_error</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_error</h2>
+<p>The f_error tests for an error on a file.</p>
+<pre>
+int f_error (
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] File object */</span>
+);
+</pre>
+</div>
+
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>Pointer to the open file object structure.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>Returns a non-zero value if a hard error has occured; otherwise it returns a zero.</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>In this revision, this function is implemented as a macro.</p>
+<pre>
+<span class="k">#define</span> f_error(fp) (((fp)->flag & FA__ERROR) ? 1 : 0)
+</pre>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Always available.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/fattime.html b/3rdparty/fatfs-0.10b/doc/en/fattime.html
new file mode 100644
index 00000000..1736e87f
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/fattime.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/fattime.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - get_fattime</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>get_fattime</h2>
+<p>The get_fattime function gets current time.</p>
+<pre>
+DWORD get_fattime (void);
+</pre>
+</div>
+
+
+<div class="para ret">
+<h4>Return Value</h4>
+<p>Currnet time is returned with packed into a <tt>DWORD</tt> value. The bit field is as follows:</p>
+<dl class="ret">
+<dt>bit31:25</dt>
+<dd>Year origin from the 1980 (0..127)</dd>
+<dt>bit24:21</dt>
+<dd>Month (1..12)</dd>
+<dt>bit20:16</dt>
+<dd>Day of the month(1..31)</dd>
+<dt>bit15:11</dt>
+<dd>Hour (0..23)</dd>
+<dt>bit10:5</dt>
+<dd>Minute (0..59)</dd>
+<dt>bit4:0</dt>
+<dd>Second / 2 (0..29)</dd>
+</dl>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>get_fattime()</tt> function shall return any valid time even if the system does not support a real time clock. If a zero is returned, the file will not have a valid timestamp.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>This function is not needed when <tt>_FS_READONLY == 1</tt>.</p>
+</div>
+
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/fdisk.html b/3rdparty/fatfs-0.10b/doc/en/fdisk.html
new file mode 100644
index 00000000..40e5e4b3
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/fdisk.html
@@ -0,0 +1,97 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/fdisk.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_fdisk</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_fdisk</h2>
+<p>The f_fdisk fucntion divides a physical drive.</p>
+<pre>
+FRESULT f_fdisk (
+ BYTE <span class="arg">pdrv</span>, <span class="c">/* [IN] Physical drive number */</span>
+ const DWORD <span class="arg">part[]</span>, <span class="c">/* [IN] Partition size */</span>
+ void* <span class="arg">work</span> <span class="c">/* [IN] Work area */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>pdrv</dt>
+<dd>Specifies the <em>physical drive</em> to be divided.</dd>
+<dt>part[]</dt>
+<dd>Partition map table. It must have four items.</dd>
+<dt>work</dt>
+<dd>Pointer to the function work area. The size must be at least <tt>_MAX_SS</tt> bytes.</dd>
+</dl>
+</div>
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#ip">FR_INVALID_PARAMETER</a>
+</p>
+</div>
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_fdisk()</tt> function creates a partition table into the MBR of the physical drive. The partitioning rule is in generic FDISK format, so that it can create upto four primary partitions. Logical volumes in the extended partition is not supported. The <tt class="arg">part[]</tt> with four items specifies how to divide the physical drive. The first item specifies the size of first primary partition and fourth item specifies the fourth primary partition. If the value is less than or equal to 100, it specifies percentage of the partition in the entire disk space. If it is larger than 100, it specifies the partition size in unit of sector.</p>
+</div>
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_READOLNY == 0</tt>, <tt>_USE_MKFS == 1</tt> and <tt>_MULTI_PARTITION == 1</tt>.</p>
+</div>
+
+<div class="para use">
+<h4>Example</h4>
+<pre>
+ <span class="c">/* Volume management table defined by user (required when _MULTI_PARTITION == 1) */</span>
+
+ PARTITION VolToPart[] = {
+ {0, 1}, <span class="c">/* Logical drive 0 ==> Physical drive 0, 1st partition */</span>
+ {0, 2}, <span class="c">/* Logical drive 1 ==> Physical drive 0, 2nd partition */</span>
+ {1, 0} <span class="c">/* Logical drive 2 ==> Physical drive 1, auto detection */</span>
+ };
+</pre>
+<pre>
+ <span class="c">/* Initialize a brand-new disk drive mapped to physical drive 0 */</span>
+
+ FATFS fs;
+ DWORD plist[] = {50, 50, 0, 0}; <span class="c">/* Divide drive into two partitions */</span>
+ BYTE work[_MAX_SS];
+
+ f_fdisk(0, plist, work); <span class="c">/* Divide physical drive 0 */</span>
+
+ f_mount(&amp;fs, "0:", 0); <span class="c">/* Register work area to the logical drive 0 */</span>
+ f_mkfs("0:", 0, 0); <span class="c">/* Create FAT volume on the logical drive 0. 2nd argument is ignored. */</span>
+ f_mount(0, "0:", 0); <span class="c">/* Unregister work area from the logical drive 0 */</span>
+
+ f_mount(&amp;fs, "1:", 0); <span class="c">/* Register a work area to the logical drive 1 */</span>
+ f_mkfs("1:", 0, 0); <span class="c">/* Create FAT volume on the logical drive 1. 2nd argument is ignored. */</span>
+ f_mount(0, "1:", 0); <span class="c">/* Unregister work area from the logical drive 1 */</span>
+
+</pre>
+</div>
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><a href="filename.html#vol">Volume management</a>, <a href="mkfs.html"><tt>f_mkfs</tt></a></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/filename.html b/3rdparty/fatfs-0.10b/doc/en/filename.html
new file mode 100644
index 00000000..22c87988
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/filename.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/filename.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - Path Names</title>
+</head>
+
+<body>
+<h1>Path Names</h1>
+
+<div class="para" id="nam">
+<h3>Format of the path names</h3>
+<p>The format of path name on the FatFs module is similer to the filename specs of DOS/Windos as follows:</p>
+<pre>"[<em>drive</em>:][/]<em>directory</em>/<em>file</em>"</pre>
+<p>The FatFs module supports long file name (LFN) and 8.3 format file name (SFN). The LFN can be used when LFN feature is enabled (<tt>_USE_LFN &gt; 0</tt>). The sub directories are separated with a \ or / in the same way as DOS/Windows API. Duplicated separators are skipped and ignored. Only a difference is that the logical drive is specified in a numeral with a colon. When drive number is omitted, the drive number is assumed as <em>default drive</em> (drive 0 or current drive).</p>
+<p>Control characters (<tt>'\0'</tt> to <tt>'\x1F'</tt>) are recognized as end of the path name. Leading/embedded spaces in the path name are valid as a part of the name at LFN configuration but they are recognized as end of the path name at non-LFN configuration. Trailing spaces and dots are ignored.</p>
+<p>In default configuration (<tt>_FS_RPATH == 0</tt>), it does not have a concept of current directory like OS oriented file system. All objects on the volume are always specified in full path name that follows from the root directory. Dot directory names are not allowed. Heading separator is ignored and it can be exist or omitted. The default drive is fixed to drive 0.</p>
+<p>When relative path feature is enabled (<tt>_FS_RPATH == 1</tt>), specified path is followed from the root directory if a heading separator is exist. If not, it is followed from the current directory of the drive set with <a href="chdir.html">f_chdir</a> function. Dot names are also allowed for the path name. The default drive is the current drive set with <a href="chdrive.html">f_chdrive</a> function.</p>
+<table class="lst2">
+<tr><td>Path name</td><td>_FS_RPATH == 0</td><td>_FS_RPATH == 1</td></tr>
+<tr class="lst3"><td>file.txt</td><td>A file in the root directory of the drive 0</td><td>A file in the current directory of the current drive</td></tr>
+<tr><td>/file.txt</td><td>A file in the root directory of the drive 0</td><td>A file in the root directory of the current drive</td></tr>
+<tr><td></td><td>The root directory of the drive 0</td><td>The current directory of the current drive</td></tr>
+<tr><td>/</td><td>The root directory of the drive 0</td><td>The root directory of the current drive</td></tr>
+<tr><td>2:</td><td>The root directory of the drive 2</td><td>The current directory of the drive 2</td></tr>
+<tr><td>2:/</td><td>The root directory of the drive 2</td><td>The root directory of the drive 2</td></tr>
+<tr><td>2:file.txt</td><td>A file in the root directory of the drive 2</td><td>A file in the current directory of the drive 2</td></tr>
+<tr><td>../file.txt</td><td>Invalid name</td><td>A file in the parent directory</td></tr>
+<tr><td>.</td><td>Invalid name</td><td>This directory</td></tr>
+<tr><td>..</td><td>Invalid name</td><td>Parent directory of the current directory</td></tr>
+<tr><td>dir1/..</td><td>Invalid name</td><td>The current directory</td></tr>
+<tr><td>/..</td><td>Invalid name</td><td>The root directory (sticks the top level)</td></tr>
+</table>
+<p>When option <tt>_STR_VOLUME_ID</tt> is specified, also pre-defined strings can be used as drive identifier in the path name instead of a numeral.</p>
+</div>
+
+<p><br></p>
+<div class="para" id="uni">
+<h3>Unicode API</h3>
+<p>The path names are input/output in either ANSI/OEM code (SBCS/DBCS) or Unicode depends on the configuration options. The type of arguments which specify the file names are defined as <tt>TCHAR</tt>. It is an alias of <tt>char</tt> in default. The code set used to the file name string is ANSI/OEM specifid by <tt>_CODE_PAGE</tt>. When <tt>_LFN_UNICODE</tt> is set to 1, the type of the <tt>TCHAR</tt> is switched to <tt>WCHAR</tt> to support Unicode (UTF-16 encoding). In this case, the LFN feature is fully supported and the Unicode specific characters, such as âœâ˜ªâœ¡â˜¸â˜­, can also be used for the path name. It also affects data types and encoding of the string I/O functions. To define literal strings, <tt>_T(s)</tt> and <tt>_TEXT(s)</tt> macro are available to select either ANSI/OEM or Unicode automatically. The code shown below is an example to define the literal strings.</p>
+<pre>
+ f_open(fp, "filename.txt", FA_READ); <span class="c">/* ANSI/OEM string */</span>
+ f_open(fp, L"filename.txt", FA_READ); <span class="c">/* Unicode string */</span>
+ f_open(fp, _T("filename.txt"), FA_READ); <span class="c">/* Changed by configuration */</span>
+</pre>
+</div>
+
+<p><br></p>
+<div class="para" id="vol">
+<h3>Volume Management</h3>
+<p>The FatFs module needs dynamic work area called <em>file system object</em> for each volume (logical drive). It is registered to the FatFs module by <tt>f_mount()</tt> function. By default, each logical drive is bound to the physical drive with the same drive number and an FAT volume on the drive is serched by auto detect feature. It loads boot sectors and checks it if it is an FAT boot sector in order of sector 0 as SFD format, 1st partition, 2nd partition, 3rd partition and 4th partition as FDISK format.</p>
+<p>When <tt>_MULTI_PARTITION == 1</tt> is specified by configuration option, each individual logical drive is bound to the partition on the physical drive specified by volume management table. The volume management table must be defined by user to resolve relationship between logical drives and partitions. Following code is an example of a volume management table.</p>
+<pre>
+Example: Logical drive 0-2 are tied to three pri-partitions on the physical drive 0 (fixed disk)
+ Logical drive 3 is tied to an FAT volume on the physical drive 1 (removable disk)
+
+PARTITION VolToPart[] = {
+ {0, 1}, <span class="c">/* Logical drive 0 ==> Physical drive 0, 1st partition */</span>
+ {0, 2}, <span class="c">/* Logical drive 1 ==> Physical drive 0, 2nd partition */</span>
+ {0, 3}, <span class="c">/* Logical drive 2 ==> Physical drive 0, 3rd partition */</span>
+ {1, 0} <span class="c">/* Logical drive 3 ==> Physical drive 1 (auto detection) */</span>
+};
+
+<img src="../img/f7.png" width="828" height="288" alt="relationship between logical drive and physical drive">
+</pre>
+<p>There are some considerations on using <tt>_MULTI_PARTITION</tt> configuration.</p>
+<ul>
+<li>Only four primary partitions can be specified. Logical partition is not supported.</li>
+<li>The physical drive that has two or more mounted partitions must be non-removable. Media change while a system operation is prohibited.</li>
+</ul>
+</div>
+
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/forward.html b/3rdparty/fatfs-0.10b/doc/en/forward.html
new file mode 100644
index 00000000..68b84e63
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/forward.html
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/forward.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_forward</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_forward</h2>
+<p>The f_forward function reads the file data and forward it to the data streaming device.</p>
+<pre>
+FRESULT f_forward (
+ FIL* <span class="arg">fp</span>, <span class="c">/* [IN] File object */</span>
+ UINT (*<span class="arg">func</span>)(const BYTE*,UINT), <span class="c">/* [IN] Data streaming function */</span>
+ UINT <span class="arg">btf</span>, <span class="c">/* [IN] Number of bytes to forward */</span>
+ UINT* <span class="arg">bf</span> <span class="c">/* [OUT] Number of bytes forwarded */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>Pointer to the open file object.</dd>
+<dt>func</dt>
+<dd>Pointer to the user-defined data streaming function. For details, refer to the sample code.</dd>
+<dt>btf</dt>
+<dd>Number of bytes to forward in range of <tt>UINT</tt>.</dd>
+<dt>bf</dt>
+<dd>Pointer to the <tt>UINT</tt> variable to return number of bytes forwarded.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_forward()</tt> function reads the data from the file and forward it to the outgoing stream without data buffer. This is suitable for small memory system because it does not require any data buffer at application module. The file pointer of the file object increases in number of bytes forwarded. In case of <tt class="arg">*bf</tt> is less than <tt class="arg">btf</tt> without error, it means the requested bytes could not be transferred due to end of file or stream goes busy during data transfer.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_USE_FORWARD == 1</tt> and <tt>_FS_TINY == 1</tt>.</p>
+</div>
+
+
+<div class="para use">
+<h4>Example (Audio playback)</h4>
+<pre>
+<span class="c">/*------------------------------------------------------------------------*/</span>
+<span class="c">/* Sample code of data transfer function to be called back from f_forward */</span>
+<span class="c">/*------------------------------------------------------------------------*/</span>
+
+UINT out_stream ( <span class="c">/* Returns number of bytes sent or stream status */</span>
+ const BYTE *p, <span class="c">/* Pointer to the data block to be sent */</span>
+ UINT btf <span class="c">/* &gt;0: Transfer call (Number of bytes to be sent). 0: Sense call */</span>
+)
+{
+ UINT cnt = 0;
+
+
+ if (btf == 0) { <span class="c">/* Sense call */</span>
+ <span class="c">/* Return stream status (0: Busy, 1: Ready) */</span>
+ <span class="c">/* When once it returned ready to sense call, it must accept a byte at least */</span>
+ <span class="c">/* at subsequent transfer call, or f_forward will fail with FR_INT_ERR. */</span>
+ if (FIFO_READY) cnt = 1;
+ }
+ else { <span class="c">/* Transfer call */</span>
+ do { <span class="c">/* Repeat while there is any data to be sent and the stream is ready */</span>
+ FIFO_PORT = *p++;
+ cnt++;
+ } while (cnt &lt; btf &amp;&amp; FIFO_READY);
+ }
+
+ return cnt;
+}
+
+
+<span class="c">/*------------------------------------------------------------------------*/</span>
+<span class="c">/* Sample code using f_forward function */</span>
+<span class="c">/*------------------------------------------------------------------------*/</span>
+
+FRESULT play_file (
+ char *fn <span class="c">/* Pointer to the audio file name to be played */</span>
+)
+{
+ FRESULT rc;
+ FIL fil;
+ UINT dmy;
+
+ <span class="c">/* Open the audio file in read only mode */</span>
+ rc = f_open(&amp;fil, fn, FA_READ);
+ if (rc) return rc;
+
+ <span class="c">/* Repeat until the file pointer reaches end of the file */</span>
+ while (rc == FR_OK &amp;&amp; fil.fptr &lt; fil.fsize) {
+
+ <span class="c">/* any other processes... */</span>
+
+ <span class="c">/* Fill output stream periodicaly or on-demand */</span>
+ rc = f_forward(&amp;fil, out_stream, 1000, &amp;dmy);
+ }
+
+ <span class="c">/* Close the file and return */</span>
+ f_close(&amp;fil);
+ return rc;
+}
+</pre>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="gets.html">fgets</a>, <a href="write.html">f_write</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/getcwd.html b/3rdparty/fatfs-0.10b/doc/en/getcwd.html
new file mode 100644
index 00000000..34848b7b
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/getcwd.html
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/getcwd.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_getcwd</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_getcwd</h2>
+<p>The f_getcwd function retrieves the current directory.</p>
+<pre>
+FRESULT f_getcwd (
+ TCHAR* <span class="arg">buff</span>, <span class="c">/* [OUT] Buffer to return path name */</span>
+ UINT <span class="arg">len</span> <span class="c">/* [IN] The length of the buffer */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>buff</dt>
+<dd>Pointer to the buffer to receive the current directory string.</dd>
+<dt>len</dt>
+<dd>Size of the buffer in unit of TCHAR.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_getcwd()</tt> function retrieves full path name of the current directory of the current drive. When <tt>_VOLUMES</tt> is larger than 1, a logical drive number is added to top of the path name.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_RPATH == 2</tt>.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="chdrive.html">f_chdrive</a>, <a href="chdir.html">f_chdir</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/getfree.html b/3rdparty/fatfs-0.10b/doc/en/getfree.html
new file mode 100644
index 00000000..9f169b07
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/getfree.html
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/getfree.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_getfree</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_getfree</h2>
+<p>The f_getfree function gets number of the free clusters on the volume.</p>
+<pre>
+FRESULT f_getfree (
+ const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] Logical drive number */</span>
+ DWORD* <span class="arg">nclst</span>, <span class="c">/* [OUT] Number of free clusters */</span>
+ FATFS** <span class="arg">fatfs</span> <span class="c">/* [OUT] Corresponding file system object */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>Pinter to the null-terminated string that specifies the <a href="filename.html">logical drive</a>. A null-string means the default drive.</dd>
+<dt>nclst</dt>
+<dd>Pointer to the <tt>DWORD</tt> variable to store number of free clusters.</dd>
+<dt>fatfs</dt>
+<dd>Pointer to pointer that to store a pointer to the corresponding file system object.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Descriptions</h4>
+<p>The <tt>f_getfree()</tt> function gets number of free clusters on the volume. The member <tt>csize</tt> in the file system object indicates number of sectors per cluster, so that the free space in unit of sector can be calcurated with this information. When FSINFO structure on the FAT32 volume is not in sync, this function can return an incorrect free cluster count. To avoid this problem, FatFs can be forced full FAT scan by <tt>_FS_NOFSINFO</tt> option.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_READONLY == 0</tt> and <tt>_FS_MINIMIZE == 0</tt>.</p>
+</div>
+
+
+<div class="para use">
+<h4>Example</h4>
+<pre>
+ FATFS *fs;
+ DWORD fre_clust, fre_sect, tot_sect;
+
+
+ <span class="c">/* Get volume information and free clusters of drive 1 */</span>
+ res = f_getfree("1:", &amp;fre_clust, &amp;fs);
+ if (res) die(res);
+
+ <span class="c">/* Get total sectors and free sectors */</span>
+ tot_sect = (fs->n_fatent - 2) * fs->csize;
+ fre_sect = fre_clust * fs->csize;
+
+ <span class="c">/* Print the free space (assuming 512 bytes/sector) */</span>
+ printf("%10lu KiB total drive space.\n%10lu KiB available.\n",
+ tot_sect / 2, fre_sect / 2);
+</pre>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="sfatfs.html">FATFS</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/getlabel.html b/3rdparty/fatfs-0.10b/doc/en/getlabel.html
new file mode 100644
index 00000000..81b27368
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/getlabel.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/getlabel.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_getlabel</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_getlabel</h2>
+<p>The f_getlabel function returns volume label and volume serial number of a drive.</p>
+<pre>
+FRESULT f_getlabel (
+ const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] Drive number */</span>
+ TCHAR* <span class="arg">label</span>, <span class="c">/* [OUT] Volume label */</span>
+ DWORD* <span class="arg">vsn</span> <span class="c">/* [OUT] Volume serial number */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>Pointer to the null-terminated string that specifies the <a href="filename.html">logical drive</a>. Null-string specifies the default drive.</dd>
+<dt>label</dt>
+<dd>Pointer to the buffer to store the volume label. The buffer size must be at least 12 items. If the volume has no label, a null-string will be returned. Set null pointer if this information is not needed.</dd>
+<dt>vsn</dt>
+<dd>Pointer to the <tt>DWORD</tt> variable to store the volume serial number. Set null pointer if this information is not needed.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_USE_LABEL == 1</tt>.</p>
+</div>
+
+
+<div class="para use">
+<h4>Example</h4>
+<pre>
+ char str[12];
+
+ <span class="c">/* Get volume label of the default drive */</span>
+ f_getlabel("", str, 0);
+
+ <span class="c">/* Get volume label of the drive 2 */</span>
+ f_getlabel("2:", str, 0);
+</pre>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<tt><a href="setlabel.html">f_setlabel</a></tt>
+</div>
+
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/gets.html b/3rdparty/fatfs-0.10b/doc/en/gets.html
new file mode 100644
index 00000000..f4474a62
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/gets.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/gets.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_gets</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_gets</h2>
+<p>The f_gets reads a string from the file.</p>
+<pre>
+TCHAR* f_gets (
+ TCHAR* <span class="arg">buff</span>, <span class="c">/* [OUT] Read buffer */</span>
+ int <span class="arg">len</span>, <span class="c">/* [IN] Size of the read buffer */</span>
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] File object */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>buff</dt>
+<dd>Pointer to read buffer to store the read string.</dd>
+<dt>len</dt>
+<dd>Size of the read buffer in unit of character.</dd>
+<dt>fp</dt>
+<dd>Pointer to the open file object structure.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>When the function succeeded, <tt class="arg">buff</tt> will be returuned.</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_gets()</tt> function is a wrapper function of <a href="read.html"><tt>f_read()</tt></a> function. The read operation continues until a <tt>'\n'</tt> is stored, reached end of the file or the buffer is filled with <tt>len - 1</tt> characters. The read string is terminated with a <tt>'\0'</tt>. When no character to read or any error occured during read operation, it returns a null pointer. The status of EOF and error can be examined with <tt>f_eof()</tt> and <tt>f_error()</tt> macros.</p>
+<p>When FatFs is configured to Unicode API (<tt>_LFN_UNICODE == 1</tt>), data types on the srting fuctions, <tt>f_putc()</tt>, <tt>f_puts()</tt>, <tt>f_printf()</tt> and <tt>f_gets()</tt>, is also switched to Unicode. The character encoding on the file to be read/written via those functions is selected by <tt>_STRF_ENCODE</tt> option.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_USE_STRFUNC</tt> is 1 or 2. When it is set to 2, <tt>'\r'</tt>s contained in the file are stripped out.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="read.html">f_read</a>, <a href="putc.html">f_putc</a>, <a href="puts.html">f_puts</a>, <a href="printf.html">f_printf</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/lseek.html b/3rdparty/fatfs-0.10b/doc/en/lseek.html
new file mode 100644
index 00000000..fa59aa9d
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/lseek.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/lseek.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_lseek</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_lseek</h2>
+<p>The f_lseek function moves the file read/write pointer of an open file object. It can also be used to expand the file size (cluster pre-allocation). </p>
+
+<pre>
+FRESULT f_lseek (
+ FIL* <span class="arg">fp</span>, <span class="c">/* [IN] File object */</span>
+ DWORD <span class="arg">ofs</span> <span class="c">/* [IN] File read/write pointer */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>Pointer to the open file object.</dd>
+<dt>ofs</dt>
+<dd>Byte offset from top of the file.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_lseek()</tt> function moves the file read/write pointer of an open file. The offset can be specified in only origin from top of the file. When an offset beyond the file size is specified at write mode, the file size is expanded to the specified offset. The file data in the expanded area is undefined because no data is written to the file. This is suitable to pre-allocate a cluster chain quickly, for fast write operation. After the <tt>f_lseek()</tt> function succeeded, the current read/write pointer should be checked in order to make sure the read/write pointer has been moved correctry. In case of the current read/write pointer is not the expected value, either of followings has been occured.</p>
+<ul>
+<li>End of file. The specified <tt class="arg">ofs</tt> was clipped at end of the file because the file has been opened in read-only mode.</li>
+<li>Disk full. There is insufficient free space on the volume to expand the file.</li>
+</ul>
+<p>Fast seek feature is enabled when <tt>_USE_FASTSEEK</tt> is set to 1 and the member <tt>cltbl</tt> in the file object is not NULL. This feature enables fast backward/long seek operations without FAT access by using CLMT (cluster link map table). The fast seek feature is also applied to <tt>f_read()/f_write()</tt> function, however, the file size cannot be expanded by <tt>f_write()/f_lseek()</tt> function.</p>
+<p>The CLMT must be created in the user defined <tt>DWORD</tt> array prior to use the fast seek feature. To create the CLMT, set address of the <tt>DWORD</tt> array to the member <tt>cltbl</tt> in the file object, set the array size in unit of items into the first item and call the <tt>f_lseek()</tt> function with <tt class="arg">ofs</tt><tt> = CREATE_LINKMAP</tt>. After the function succeeded and CLMT is created, no FAT access is occured at subsequent <tt>f_read()/f_write()/f_lseek()</tt> function to the file. If the function failed with <tt>FR_NOT_ENOUGH_CORE</tt>, the given array size is insufficient for the file and number of items required is returned into the first item of the array. The required array size is (number of fragments + 1) * 2 items. For example, when the file is fragmented in 5, 12 items will be required for the CLMT.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_MINIMIZE &lt;= 2</tt>.</p>
+</div>
+
+
+<div class="para use">
+<h4>Example</h4>
+<pre>
+ <span class="c">/* Open file */</span>
+ fp = malloc(sizeof (FIL));
+ res = f_open(fp, "file.dat", FA_READ|FA_WRITE);
+ if (res) ...
+
+ <span class="c">/* Move to offset of 5000 from top of the file */</span>
+ res = f_lseek(fp, 5000);
+
+ <span class="c">/* Move to end of the file to append data */</span>
+ res = f_lseek(fp, f_size(fp));
+
+ <span class="c">/* Forward 3000 bytes */</span>
+ res = f_lseek(fp, f_tell(fp) + 3000);
+
+ <span class="c">/* Rewind 2000 bytes (take care on wraparound) */</span>
+ res = f_lseek(fp, f_tell(fp) - 2000);
+</pre>
+<pre>
+<span class="c">/* Cluster pre-allocation (to prevent buffer overrun on streaming write) */</span>
+
+ res = f_open(fp, recfile, FA_CREATE_NEW | FA_WRITE); <span class="c">/* Create a file */</span>
+
+ res = f_lseek(fp, PRE_SIZE); <span class="c">/* Expand file size (cluster pre-allocation) */</span>
+ if (res || f_tell(fp) != PRE_SIZE) ... <span class="c">/* Check if the file has been expanded */</span>
+
+ res = f_lseek(fp, DATA_START); <span class="c">/* Record data stream WITHOUT cluster allocation delay */</span>
+ ... <span class="c">/* DATA_START and write block size should be aligned to sector boundary */</span>
+
+ res = f_truncate(fp); <span class="c">/* Truncate unused area */</span>
+ res = f_lseek(fp, 0); <span class="c">/* Put file header */</span>
+ ...
+
+ res = f_close(fp);
+</pre>
+<pre>
+<span class="c">/* Using fast seek feature */</span>
+
+ DWORD clmt[SZ_TBL]; <span class="c">/* Cluster link map table buffer */</span>
+
+ res = f_lseek(fp, ofs1); <span class="c">/* This is normal seek (cltbl is nulled on file open) */</span>
+
+ fp-&gt;cltbl = clmt; <span class="c">/* Enable fast seek feature (cltbl != NULL) */</span>
+ clmt[0] = SZ_TBL; <span class="c">/* Set table size */</span>
+ res = f_lseek(fp, CREATE_LINKMAP); <span class="c">/* Create CLMT */</span>
+ ...
+
+ res = f_lseek(fp, ofs2); <span class="c">/* This is fast seek */</span>
+</pre>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="truncate.html">f_truncate</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/mkdir.html b/3rdparty/fatfs-0.10b/doc/en/mkdir.html
new file mode 100644
index 00000000..34f83e86
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/mkdir.html
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/mkdir.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_mkdir</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_mkdir</h2>
+<p>The f_mkdir function creates a new directory.</p>
+<pre>
+FRESULT f_mkdir (
+ const TCHAR* <span class="arg">path</span> <span class="c">/* [IN] Directory name */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameter</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>Pointer to the null-terminated string that specifies the <a href="filename.html">directory name</a> to create. </dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Value</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#de">FR_DENIED</a>,
+<a href="rc.html#ex">FR_EXIST</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>This function creates a new directory.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_READONLY == 0</tt> and <tt>_FS_MINIMIZE == 0</tt>.</p>
+</div>
+
+
+<div class="para use">
+<h4>Example</h4>
+<pre>
+ res = f_mkdir("sub1");
+ if (res) die(res);
+ res = f_mkdir("sub1/sub2");
+ if (res) die(res);
+ res = f_mkdir("sub1/sub2/sub3");
+ if (res) die(res);
+</pre>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/mkfs.html b/3rdparty/fatfs-0.10b/doc/en/mkfs.html
new file mode 100644
index 00000000..58e63750
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/mkfs.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/mkfs.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_mkfs</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_mkfs</h2>
+<p>The f_mkfs fucntion creates an FAT file system on the logical drive.</p>
+<pre>
+FRESULT f_mkfs (
+ const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] Logical drive number */</span>
+ BYTE <span class="arg">sfd</span>, <span class="c">/* [IN] Partitioning rule */</span>
+ UINT <span class="arg">au</span> <span class="c">/* [IN] Size of the allocation unit */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>Pinter to the null-terminated string that specifies the <a href="filename.html">logical drive</a> to be formatted. If there is no drive number, it means the default drive.</dd>
+<dt>sfd</dt>
+<dd>Specifies partitioning rule (FDISK(0) or SFD(1)). This argument will be ignored on some case.</dd>
+<dt>au</dt>
+<dd>Specifies size of the allocation unit (cluter) in unit of byte. The value must be sector size * n (n is 1 to 128 and power of 2). When a zero is given, the cluster size is determined depends on the volume size.</dd>
+</dl>
+</div>
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ma">FR_MKFS_ABORTED</a>,
+<a href="rc.html#ip">FR_INVALID_PARAMETER</a>
+</p>
+</div>
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_mkfs()</tt> function creates an FAT volume on the logical drive. When FDISK format is specified, a primary partition occupies the entire disk space is created and then an FAT volume is created on the partition. When SFD format is specified, the FAT volume starts from the first sector of the physical drive.</p>
+<p>If the logical drive has been bound to any partition (1-4) by multiple partition feature (<tt>_MULTI_PARTITION</tt>), the FAT volume is created into the specified partition. In this case, the second argument <tt class="arg">sfd</tt> is ignored. The physical drive must have been partitioned with <tt>f_fdisk()</tt> function or any other partitioning tool prior to use this function.</p>
+<p>Note that there are two partitioning rules, FDISK and SFD. The FDISK partitioning is usually used for harddisk, MMC, SDC, CFC and U Disk. It can divide a physical drive into one or more partitions with a partition table on the MBR. However Windows does not support multiple partition on the removable media. The SFD is non-partitioned method. The FAT volume starts from the first sector on the physical drive without partition table. It is usually used for floppy disk, Microdrive, optical disk and super-floppy media.</p>
+<p>The FAT sub-type, FAT12/FAT16/FAT32, is determined by number of clusters on the volume and nothing else, according to the FAT specification issued by Microsoft. Thus which FAT sub-type is selected, is depends on the volume size and the specified cluster size. The cluster size affects performance of the file system and large cluster increases the performance.</p>
+<p>When the number of clusters gets near the FAT sub-type boundaries, the function can fail with <tt>FR_MKFS_ABORTED</tt>.</p>
+</div>
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_READOLNY == 0</tt> and <tt>_USE_MKFS == 1</tt>.</p>
+</div>
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="filename.html#vol">Volume management</a>, <a href="fdisk.html">f_fdisk</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/mount.html b/3rdparty/fatfs-0.10b/doc/en/mount.html
new file mode 100644
index 00000000..f96b2fe4
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/mount.html
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/mount.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_mount</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_mount</h2>
+<p>The f_mount fucntion registers/unregisters file system object to the FatFs module.</p>
+<pre>
+FRESULT f_mount (
+ FATFS* <span class="arg">fs</span>, <span class="c">/* [IN] File system object */</span>
+ const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] Logical drive number */</span>
+ BYTE <span class="arg">opt</span> <span class="c">/* [IN] Initialization option */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>fs</dt>
+<dd>Pointer to the new file system object to be registered. Null pointer unregisters the registered file system object.</dd>
+<dt>path</dt>
+<dd>Pointer to the null-terminated string that specifies the <a href="filename.html">logical drive</a>. The string with no drive number means the default drive.</dd>
+<dt>opt</dt>
+<dd>Initialization option. 0: Do not mount now (to be mounted later), 1: Force mounted the volume to check if the FAT volume is available.</dd>
+</dl>
+</div>
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_mount()</tt> function registers/unregisters a file system object used for the logical drive to the FatFs module as follows:</p>
+<ol>
+<li>Determines the logical drive which specified by <tt class="arg">path</tt>.</li>
+<li>Clears and unregisters the regsitered work area of the drive.</li>
+<li>Clears and registers the new work area to the drive if <tt class="arg">fs</tt> is not NULL.</li>
+<li>Performs volume mount process to the drive if forced mount is specified.</li>
+</ol>
+<p>The file system object is the work area needed for each logical drive. It must be given to the logical drive with this function prior to use any other file functions except for <tt>f_fdisk()</tt> function. To unregister a work area, specify a NULL to the <tt class="arg">fs</tt>, and then the work area can be discarded.</p>
+<p>If forced mount is not specified, this function always succeeds regardless of the physical drive status due to delayed mount feature. It only clears (de-initializes) the given work area and registers its address to the internal table. No activity of the physical drive in this function. It can also be used to force de-initialized the registered work area of a logical drive. The volume mount processes, initialize the corresponding physical drive, find the FAT volume in it and initialize the work area, is performed in the subsequent file access functions when either or both of following condition is true.</p>
+<ul>
+<li>File system object is not initialized. It is cleared by <tt>f_mount()</tt>.</li>
+<li>Physical drive is not initialized. It is de-initialized by system reset or media removal.</li>
+</ul>
+<p>If the function with forced mount failed, it means that the file system object is registered but the volume is currently not available. Mount process will also be attempted in subsequent file access functions.</p>
+<p>If implementation of the disk I/O layer lacks media change detection, application program needs to perform a <tt>f_mount()</tt> after each media change to force cleared the file system object.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Always available.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="open.html">f_open</a></tt>, <tt><a href="sfatfs.html">FATFS</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/open.html b/3rdparty/fatfs-0.10b/doc/en/open.html
new file mode 100644
index 00000000..8fb30a35
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/open.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/open.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_open</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_open</h2>
+<p>The f_open function creates a <em>file object</em> to be used to access the file.</p>
+<pre>
+FRESULT f_open (
+ FIL* <span class="arg">fp</span>, <span class="c">/* [OUT] Pointer to the file object structure */</span>
+ const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] File name */</span>
+ BYTE <span class="arg">mode</span> <span class="c">/* [IN] Mode flags */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>Pointer to the blank file object structure to be created.</dd>
+<dt>path</dt>
+<dd>Pointer to a null-terminated string that specifies the <a href="filename.html">file name</a> to open or create.</dd>
+<dt>mode</dt>
+<dd>Mode flags that specifies the type of access and open method for the file. It is specified by a combination of following flags.<br>
+<table class="lst">
+<tr><th>Value</th><th>Description</th></tr>
+<tr><td>FA_READ</td><td>Specifies read access to the object. Data can be read from the file. Combine with <tt>FA_WRITE</tt> for read-write access.</td></tr>
+<tr><td>FA_WRITE</td><td>Specifies write access to the object. Data can be written to the file. Combine with <tt>FA_READ</tt> for read-write access.</td></tr>
+<tr><td>FA_OPEN_EXISTING</td><td>Opens the file. The function fails if the file is not existing. (Default)</td></tr>
+<tr><td>FA_OPEN_ALWAYS</td><td>Opens the file if it is existing. If not, a new file is created.<br>
+To append data to the file, use <a href="lseek.html"><tt>f_lseek()</tt></a> function after file open in this method.</td></tr>
+<tr><td>FA_CREATE_NEW</td><td>Creates a new file. The function fails with <tt>FR_EXIST</tt> if the file is existing.</td></tr>
+<tr><td>FA_CREATE_ALWAYS</td><td>Creates a new file. If the file is existing, it will be truncated and overwritten.</td></tr>
+</table>
+</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ok">FR_NO_FILE</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#de">FR_DENIED</a>,
+<a href="rc.html#ex">FR_EXIST</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#lo">FR_LOCKED</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>,
+<a href="rc.html#tf">FR_TOO_MANY_OPEN_FILES</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>After <tt>f_open()</tt> function succeeded, the file object is valid. The file object is used for subsequent read/write functions to identify the file. To close an open file, use <a href="close.html"><tt>f_close()</tt></a> function. If the file is modified and not closed properly, the file data will be collapsed.</p>
+<p>If duplicated file open is needed, read <a href="appnote.html#dup">here</a> carefully. However duplicated open of a file with write mode flag is always prohibited.</p>
+<p>Before using any file function, a work area (file system object) must be registered to the logical drive with <a href="mount.html"><tt>f_mount()</tt></a> function. All API functions except for <a href="fdisk.html"><tt>f_fdisk()</tt></a> function can work after this procedure.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Always available. The mode flags, <tt>FA_WRITE, FA_CREATE_ALWAYS, FA_CREATE_NEW and FA_OPEN_ALWAYS</tt>, are not available when <tt>_FS_READONLY == 1</tt>.</p>
+</div>
+
+
+<div class="para use">
+<h4>Example</h4>
+<pre>
+<span class="c">/* Read a text file and display it */</span>
+
+FATFS FatFs; <span class="c">/* Work area (file system object) for logical drive */</span>
+
+int main (void)
+{
+ FIL fil; <span class="c">/* File object */</span>
+ char line[82]; <span class="c">/* Line buffer */</span>
+ FRESULT fr; <span class="c">/* FatFs return code */</span>
+
+
+ <span class="c">/* Register work area to the default drive */</span>
+ f_mount(&amp;FatFs, "", 0);
+
+ <span class="c">/* Open a text file */</span>
+ fr = f_open(&amp;fil, "message.txt", FA_READ);
+ if (fr) return (int)fr;
+
+ <span class="c">/* Read all lines and display it */</span>
+ while (f_gets(line, sizeof line, &amp;fil))
+ printf(line);
+
+ <span class="c">/* Close the file */</span>
+ f_close(&amp;fil);
+
+ return 0;
+}
+</pre>
+<pre>
+<span class="c">/* Copy a file "file.bin" on the drive 1 to drive 0 */</span>
+
+int main (void)
+{
+ FATFS fs[2]; <span class="c">/* Work area (file system object) for logical drives */</span>
+ FIL fsrc, fdst; <span class="c">/* File objects */</span>
+ BYTE buffer[4096]; <span class="c">/* File copy buffer */</span>
+ FRESULT fr; <span class="c">/* FatFs function common result code */</span>
+ UINT br, bw; <span class="c">/* File read/write count */</span>
+
+
+ <span class="c">/* Register work area for each logical drive */</span>
+ f_mount(&amp;fs[0], "0:", 0);
+ f_mount(&amp;fs[1], "1:", 0);
+
+ <span class="c">/* Open source file on the drive 1 */</span>
+ fr = f_open(&amp;fsrc, "1:file.bin", FA_OPEN_EXISTING | FA_READ);
+ if (fr) return (int)fr;
+
+ <span class="c">/* Create destination file on the drive 0 */</span>
+ fr = f_open(&amp;fdst, "0:file.bin", FA_CREATE_ALWAYS | FA_WRITE);
+ if (fr) return (int)fr;
+
+ <span class="c">/* Copy source to destination */</span>
+ for (;;) {
+ fr = f_read(&amp;fsrc, buffer, sizeof buffer, &amp;br); <span class="c">/* Read a chunk of source file */</span>
+ if (fr || br == 0) break; <span class="c">/* error or eof */</span>
+ fr = f_write(&amp;fdst, buffer, br, &amp;bw); <span class="c">/* Write it to the destination file */</span>
+ if (fr || bw &lt; br) break; <span class="c">/* error or disk full */</span>
+ }
+
+ <span class="c">/* Close open files */</span>
+ f_close(&amp;fsrc);
+ f_close(&amp;fdst);
+
+ <span class="c">/* Unregister work area prior to discard it */</span>
+ f_mount(NULL, "0:", 0);
+ f_mount(NULL, "1:", 0);
+
+ return (int)fr;
+}
+</pre>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="read.html">f_read</a>, <a href="write.html">f_write</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a>, <a href="sfatfs.html">FATFS</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/opendir.html b/3rdparty/fatfs-0.10b/doc/en/opendir.html
new file mode 100644
index 00000000..77442ef9
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/opendir.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/opendir.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_opendir</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_opendir</h2>
+<p>The f_opendir function opens a directory.</p>
+<pre>
+FRESULT f_opendir (
+ DIR* <span class="arg">dp</span>, <span class="c">/* [OUT] Pointer to the directory object structure */</span>
+ const TCHAR* <span class="arg">path</span> <span class="c">/* [IN] Directory name */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>dp</dt>
+<dd>Pointer to the blank directory object to create a new one.</dd>
+<dt>path</dt>
+<dd>Pinter to the null-terminated string that specifies the <a href="filename.html">directory name</a> to be opened.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>,
+<a href="rc.html#tf">FR_TOO_MANY_OPEN_FILES</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_opendir()</tt> function opens an exsisting directory and creates a directory object for subsequent <tt>f_readdir()</tt> function.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_MINIMIZE &lt;= 1</tt>.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="readdir.html">f_readdir</a>, <a href="closedir.html">f_closedir</a>, <a href="sdir.html">DIR</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/printf.html b/3rdparty/fatfs-0.10b/doc/en/printf.html
new file mode 100644
index 00000000..96a84b81
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/printf.html
@@ -0,0 +1,93 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/printf.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_printf</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_printf</h2>
+<p>The f_printf function writes formatted string to the file.</p>
+<pre>
+int f_printf (
+ FIL* <span class="arg">fp</span>, <span class="c">/* [IN] File object */</span>
+ const TCHAR* <span class="arg">fmt</span>, <span class="c">/* [IN] Format stirng */</span>
+ ...
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>Pointer to the open file object structure.</dd>
+<dt>fmt</dt>
+<dd>Pointer to the null terminated format string. The terminator charactor will not be written.</dd>
+<dt>...</dt>
+<dd>Optional arguments...</dd>
+
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>When the function succeeded, it returns number of characters written. When the function failed due to disk full or any error, an <tt>EOF (-1)</tt> will be returned.</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_printf()</tt> is a wrapper function of <a href="write.html"><tt>f_write()</tt></a>. The format control directive is a sub-set of standard library shown as follos:</p>
+<ul>
+<li>Type: <tt>c C s S d D u U x X b B</tt></li>
+<li>Size: <tt>l L</tt></li>
+<li>Flag: <tt>0 -</tt></li>
+</ul>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_READONLY == 0</tt> and <tt>_USE_STRFUNC</tt> is 1 or 2. When it is set to 2, <tt>'\n'</tt>s contained in the output are converted to <tt>'\r'+'\n'</tt>.</p>
+<p>When FatFs is configured to Unicode API (<tt>_LFN_UNICODE == 1</tt>), data types on the srting fuctions, <tt>f_putc()</tt>, <tt>f_puts()</tt>, <tt>f_printf()</tt> and <tt>f_gets()</tt>, is also switched to Unicode. The character encoding on the file to be read/written via those functions is selected by <tt>_STRF_ENCODE</tt> option.</p>
+</div>
+
+
+<div class="para use">
+<h4>Example</h4>
+<pre>
+ f_printf(&amp;fil, "%d", 1234); <span class="c">/* "1234" */</span>
+ f_printf(&amp;fil, "%6d,%3d%%", -200, 5); <span class="c">/* " -200, 5%" */</span>
+ f_printf(&amp;fil, "%ld", 12345L); <span class="c">/* "12345" */</span>
+ f_printf(&amp;fil, "%06d", 25); <span class="c">/* "000025" */</span>
+ f_printf(&amp;fil, "%06d", -25); <span class="c">/* "000-25" */</span>
+ f_printf(&amp;fil, "%-6d", 25); <span class="c">/* "25 " */</span>
+ f_printf(&amp;fil, "%u", -1); <span class="c">/* "65535" or "4294967295" */</span>
+ f_printf(&amp;fil, "%04x", 0xAB3); <span class="c">/* "0ab3" */</span>
+ f_printf(&amp;fil, "%08LX", 0x123ABCL); <span class="c">/* "00123ABC" */</span>
+ f_printf(&amp;fil, "%016b", 0x550F); <span class="c">/* "0101010100001111" */</span>
+ f_printf(&amp;fil, "%s", "String"); <span class="c">/* "String" */</span>
+ f_printf(&amp;fil, "%8s", "abc"); <span class="c">/* " abc" */</span>
+ f_printf(&amp;fil, "%-8s", "abc"); <span class="c">/* "abc " */</span>
+ f_printf(&amp;fil, "%c", 'a'); <span class="c">/* "a" */</span>
+ f_printf(&amp;fil, "%f", 10.0); <span class="c">/* f_printf lacks floating point support */</span>
+</pre>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="putc.html">f_putc</a>, <a href="puts.html">f_puts</a>, <a href="gets.html">f_gets</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/putc.html b/3rdparty/fatfs-0.10b/doc/en/putc.html
new file mode 100644
index 00000000..797c6a37
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/putc.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/putc.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_putc</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_putc</h2>
+<p>The f_putc funciton puts a character to the file.</p>
+<pre>
+int f_putc (
+ TCHAR <span class="arg">chr</span>, <span class="c">/* [IN] A character to put */</span>
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] File object */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>chr</dt>
+<dd>A character to be put.</dd>
+<dt>fp</dt>
+<dd>Pointer to the open file object structuer.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>When the character was written successfuly, it returns number of characters written. When the function failed due to disk full or any error, an <tt>EOF (-1)</tt> will be returned.</p>
+<p>When FatFs is configured to Unicode API (<tt>_LFN_UNICODE == 1</tt>), character encoding on the string fuctions, <tt>f_putc()</tt>, <tt>f_puts()</tt>, <tt>f_printf()</tt> and <tt>f_gets()</tt>, is also switched to Unicode. The character encoding on the file to be read/written via those functions is selected by <tt>_STRF_ENCODE</tt> option.</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_putc()</tt> function is a wrapper function of <a href="write.html"><tt>f_write()</tt></a> function.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_READONLY == 0</tt> and <tt>_USE_STRFUNC</tt> is 1 or 2. When it is set to 2, a <tt>'\n'</tt> is converted to <tt>'\r'+'\n'</tt>.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="puts.html">f_puts</a>, <a href="printf.html">f_printf</a>, <a href="gets.html">f_gets</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/puts.html b/3rdparty/fatfs-0.10b/doc/en/puts.html
new file mode 100644
index 00000000..6550b576
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/puts.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/puts.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_puts</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_puts</h2>
+<p>The f_puts function writes a string to the file.</p>
+<pre>
+int f_puts (
+ const TCHAR* <span class="arg">str</span>, <span class="c">/* [IN] String */</span>
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] File object */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>str</dt>
+<dd>Pointer to the null terminated string to be written. The terminator character will not be written.</dd>
+<dt>fp</dt>
+<dd>Pointer to the open file object structure.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Value</h4>
+<p>When the function succeeded, it returns number of characters written. When the write operation is aborted due to disk full or any error, an <tt>EOF (-1)</tt> will be returned.</p>
+<p>When FatFs is configured to Unicode API (<tt>_LFN_UNICODE == 1</tt>), character encoding on the srting fuctions, <tt>f_putc()</tt>, <tt>f_puts()</tt>, <tt>f_printf()</tt> and <tt>f_gets()</tt>, is also switched to Unicode. The character encoding on the file to be read/written via those functions is selected by <tt>_STRF_ENCODE</tt> option.</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_puts()</tt> function is a wrapper function of <a href="write.html"><tt>f_write()</tt></a> function.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_READONLY == 0</tt> and <tt>_USE_STRFUNC</tt> is 1 or 2. When it is set to 2, <tt>'\n'</tt>s contained in the string are converted to <tt>'\r'+'\n'</tt>.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="putc.html">f_putc</a>, <a href="printf.html">f_printf</a>, <a href="gets.html">f_gets</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/rc.html b/3rdparty/fatfs-0.10b/doc/en/rc.html
new file mode 100644
index 00000000..86c066eb
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/rc.html
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/rc.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - Return Codes</title>
+</head>
+
+<body>
+<h1>Return Code of the File Functions</h1>
+<p>On the FatFs API, most of file functions return common result code as enum type <tt>FRESULT</tt>. When a function succeeded, it returns zero, otherwise returns non-zero value that indicates type of error.</p>
+
+<dl class="ret">
+<dt id="ok">FR_OK (0)</dt>
+<dd>The function succeeded.</dd>
+<dt id="de">FR_DISK_ERR</dt>
+<dd>An unrecoverable hard error occured in the lower layer, <tt>disk_read()</tt>, <tt>disk_write()</tt> or <tt>disk_ioctl()</tt> function.<br>Note that if once this error occured at any operation to an open file, the file object is aborted and all operations to the file except for close will be rejected.</dd>
+<dt id="ie">FR_INT_ERR</dt>
+<dd>Assertion failed. An insanity is detected in the internal process. One of the following possibilities is suspected.
+<ul>
+<li>Work area (file system object, file object or etc...) is broken by stack overflow or any other application. This is the reason in most case.</li>
+<li>There is any error of the FAT structure on the volume.</li>
+</ul>
+Note that if once this error occured at any operation to an open file, the file object is aborted and all operations to the file except for close will be rejected.
+</dd>
+<dt id="nr">FR_NOT_READY</dt>
+<dd>The disk drive cannot work due to incorrect medium removal or <tt>disk_initialize()</tt> function failed.</dd>
+<dt id="nf">FR_NO_FILE</dt>
+<dd>Could not find the file.</dd>
+<dt id="np">FR_NO_PATH</dt>
+<dd>Could not find the path.</dd>
+<dt id="in">FR_INVALID_NAME</dt>
+<dd>The given string is invalid as the <a href="filename.html">path name</a>.</dd>
+<dt id="dn">FR_DENIED</dt>
+<dd>The required access was denied due to one of the following reasons:
+<ul>
+<li>Write mode open against the read-only file.</li>
+<li>Deleting the read-only file or directory.</li>
+<li>Deleting the non-empty directory or current directory.</li>
+<li>Reading the file opened without <tt>FA_READ</tt> flag.</li>
+<li>Any modification to the file opened without <tt>FA_WRITE</tt> flag.</li>
+<li>Could not create the file or directory due to the directory table is full.</li>
+<li>Could not create the directory due to the volume is full.</li>
+</ul>
+</dd>
+<dt id="ex">FR_EXIST</dt>
+<dd>Name collision. Any object that has the same name is already existing.</dd>
+<dt id="io">FR_INVALID_OBJECT</dt>
+<dd>The file/directory object structure is invalid or a null pointer is given. All open objects of the logical drive are invalidated by the voulme mount process.</dd>
+<dt id="wp">FR_WRITE_PROTECTED</dt>
+<dd>Any write mode action against the write-protected media.</dd>
+<dt id="id">FR_INVALID_DRIVE</dt>
+<dd>Invalid drive number is specified in the path name. A null pointer is given as the path name. (Related option: <tt>_VOLUMES</tt>)</dd>
+<dt id="ne">FR_NOT_ENABLED</dt>
+<dd>Work area for the logical drive has not been registered by <tt>f_mount()</tt> function.</dd>
+<dt id="ns">FR_NO_FILESYSTEM</dt>
+<dd>There is no valid FAT volume on the drive.</dd>
+<dt id="ma">FR_MKFS_ABORTED</dt>
+<dd>The <tt>f_mkfs()</tt> function aborted before start in format due to a reason as follows:
+<ul>
+<li>The disk/partition size is too small.</li>
+<li>Not allowable cluster size for this disk. This can occure when number of clusters gets near the boundaries of FAT sub-types.</li>
+<li>There is no partition related to the logical drive. (Related option: <tt>_MULTI_PARTITION</tt>)</li>
+</ul>
+</dd>
+<dt id="tm">FR_TIMEOUT</dt>
+<dd>The function was canceled due to a timeout of <a href="appnote.html#reentrant">thread-safe control</a>. (Related option: <tt>_TIMEOUT</tt>)</dd>
+<dt id="lo">FR_LOCKED</dt>
+<dd>The operation to the object was rejected by <a href="appnote.html#dup">file sharing control</a>. (Related option: <tt>_FS_LOCK</tt>)</dd>
+<dt id="nc">FR_NOT_ENOUGH_CORE</dt>
+<dd>Not enough memory for the operation. There is one of the following reasons:
+<ul>
+<li>Could not allocate a memory for LFN working buffer. (Related option: <tt>_USE_LFN</tt>)</li>
+<li>Size of the given CLMT buffer is insufficient for the file fragments.</li>
+</ul>
+</dd>
+<dt id="tf">FR_TOO_MANY_OPEN_FILES</dt>
+<dd>Number of open objects has been reached maximum value and no more object can be opened. (Related option: <tt>_FS_LOCK</tt>)</dd>
+<dt id="ip">FR_INVALID_PARAMETER</dt>
+<dd>The given parameter is invalid or there is any inconsistent.</dd>
+</dl>
+
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/read.html b/3rdparty/fatfs-0.10b/doc/en/read.html
new file mode 100644
index 00000000..348bada6
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/read.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/read.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_read</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_read</h2>
+<p>The f_read function reads data from a file.</p>
+<pre>
+FRESULT f_read (
+ FIL* <span class="arg">fp</span>, <span class="c">/* [IN] File object */</span>
+ void* <span class="arg">buff</span>, <span class="c">/* [OUT] Buffer to store read data */</span>
+ UINT <span class="arg">btr</span>, <span class="c">/* [IN] Number of bytes to read */</span>
+ UINT* <span class="arg">br</span> <span class="c">/* [OUT] Number of bytes read */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>Pointer to the open file object.</dd>
+<dt>buff</dt>
+<dd>Pointer to the buffer to store read data.</dd>
+<dt>btr</dt>
+<dd>Number of bytes to read in range of <tt>UINT</tt> type.</dd>
+<dt>br</dt>
+<dd>Pointer to the <tt>UINT</tt> variable to return number of bytes read. The value is always valid after the function call regardless of the result.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The file read/write pointer of the file object advances number of bytes read. After the function succeeded, <tt class="arg">*br</tt> should be checked to detect end of the file. In case of <tt class="arg">*br</tt> is less than <tt class="arg">btr</tt>, it means the read/write pointer reached end of the file during read operation.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Always available.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="gets.html">fgets</a>, <a href="write.html">f_write</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/readdir.html b/3rdparty/fatfs-0.10b/doc/en/readdir.html
new file mode 100644
index 00000000..32c221ba
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/readdir.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/readdir.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_readdir</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_readdir</h2>
+<p>The f_readdir function reads directory entries.</p>
+<pre>
+FRESULT f_readdir (
+ DIR* <span class="arg">dp</span>, <span class="c">/* [IN] Directory object */</span>
+ FILINFO* <span class="arg">fno</span> <span class="c">/* [OUT] File information structure */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>dp</dt>
+<dd>Pointer to the open directory object.</dd>
+<dt>fno</dt>
+<dd>Pointer to the file information structure to store the read item.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_readdir()</tt> function reads directory items, file and directory, in sequence. All items in the directory can be read by calling <tt>f_readdir()</tt> function repeatedly. When relative path feature is enabled (<tt>_FS_RPATH &gt;= 1</tt>), dot entries ("." and "..") are not filtered out and they will appear in the read items. When all directory items have been read and no item to read, a null string is returned into the <tt>fname[]</tt> without any error. When a null pointer is given to the <tt class="arg">fno</tt>, the read index of the directory object is rewinded.</p>
+<p>When LFN feature is enabled, <tt>lfname</tt> and <tt>lfsize</tt> in the file information structure must be initialized with valid value prior to use it. The <tt>lfname</tt> is a pointer to the LFN read buffer. The <tt>lfsize</tt> is size of the LFN read buffer in unit of <tt>TCHAR</tt>. If the LFN is not needed, set a null pointer to the <tt>lfname</tt> and the LFN is not returned. A null string will be returned into the LFN read buffer in case of following conditions.</p>
+<ul>
+<li>The directory item has no LFN information.</li>
+<li>Either the size of read buffer or LFN working buffer is insufficient for the LFN.</li>
+<li>The LFN contains any Unicode character that cannot be converted to OEM code. (not the case at Unicode API cfg.)</li>
+</ul>
+<p>When the directory item has no LFN information, lower case characters can be contained in the <tt>fname[]</tt>.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_MINIMIZE &lt;= 1</tt>.</p>
+</div>
+
+
+<div class="para use">
+<h4>Sample Code</h4>
+<pre>
+FRESULT scan_files (
+ char* path <span class="c">/* Start node to be scanned (also used as work area) */</span>
+)
+{
+ FRESULT res;
+ FILINFO fno;
+ DIR dir;
+ int i;
+ char *fn; <span class="c">/* This function is assuming non-Unicode cfg. */</span>
+<span class="k">#if</span> _USE_LFN
+ static char lfn[_MAX_LFN + 1]; <span class="c">/* Buffer to store the LFN */</span>
+ fno.lfname = lfn;
+ fno.lfsize = sizeof lfn;
+<span class="k">#endif</span>
+
+
+ res = f_opendir(&amp;dir, path); <span class="c">/* Open the directory */</span>
+ if (res == FR_OK) {
+ i = strlen(path);
+ for (;;) {
+ res = f_readdir(&amp;dir, &amp;fno); <span class="c">/* Read a directory item */</span>
+ if (res != FR_OK || fno.fname[0] == 0) break; <span class="c">/* Break on error or end of dir */</span>
+ if (fno.fname[0] == '.') continue; <span class="c">/* Ignore dot entry */</span>
+<span class="k">#if</span> _USE_LFN
+ fn = *fno.lfname ? fno.lfname : fno.fname;
+<span class="k">#else</span>
+ fn = fno.fname;
+<span class="k">#endif</span>
+ if (fno.fattrib &amp; AM_DIR) { <span class="c">/* It is a directory */</span>
+ sprintf(&amp;path[i], "/%s", fn);
+ res = scan_files(path);
+ if (res != FR_OK) break;
+ path[i] = 0;
+ } else { <span class="c">/* It is a file. */</span>
+ printf("%s/%s\n", path, fn);
+ }
+ }
+ f_closedir(&amp;dir)
+ }
+
+ return res;
+}
+</pre>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="opendir.html">f_opendir</a>, <a href="closedir.html">f_closedir</a>, <a href="stat.html">f_stat</a>, <a href="sfileinfo.html">FILINFO</a>, <a href="sdir.html">DIR</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/rename.html b/3rdparty/fatfs-0.10b/doc/en/rename.html
new file mode 100644
index 00000000..e6f05232
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/rename.html
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/rename.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_rename</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_rename</h2>
+<p>Renames a file or sub-directory.</p>
+<pre>
+FRESULT f_rename (
+ const TCHAR* <span class="arg">old_name</span>, <span class="c">/* [IN] Old object name */</span>
+ const TCHAR* <span class="arg">new_name</span> <span class="c">/* [IN] New object name */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>old_name</dt>
+<dd>Pointer to a null-terminated string that specifies an existing <a href="filename.html">file or sub-directory</a> to be renamed.</dd>
+<dt>new_name</dt>
+<dd>Pointer to a null-terminated string that specifies the new object name. The drive number specified in this string is ignored and one determined by <tt class="arg">old_name</tt> is used instead.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ok">FR_NO_FILE</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#de">FR_DENIED</a>,
+<a href="rc.html#ex">FR_EXIST</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#lo">FR_LOCKED</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>Renames a file or sub-directory and can also move it to other directory within the same logical drive. <em>Do not rename open objects</em> or directry table can be broken.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_READONLY == 0</tt> and <tt>_FS_MINIMIZE == 0</tt>.</p>
+</div>
+
+
+<div class="para use">
+<h4>Example</h4>
+<pre>
+ <span class="c">/* Rename an object */</span>
+ f_rename("oldname.txt", "newname.txt");
+
+ <span class="c">/* Rename and move an object to other directory */</span>
+ f_rename("oldname.txt", "dir1/newname.txt");
+</pre>
+</div>
+
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/sdir.html b/3rdparty/fatfs-0.10b/doc/en/sdir.html
new file mode 100644
index 00000000..785d0982
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/sdir.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/sdir.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - DIR</title>
+</head>
+
+<body>
+
+<div class="para">
+<h2>DIR</h2>
+<p>The <tt>DIR</tt> structure is used for the work area to read a directory by <tt>f_oepndir()/f_readdir()</tt> function. Application program must not modify any member in this structure.</p>
+<pre>
+<span class="k">typedef</span> <span class="k">struct</span> {
+ FATFS* fs; <span class="c">/* Pointer to the owner file system object */</span>
+ WORD id; <span class="c">/* Owner file system mount ID */</span>
+ WORD index; <span class="c">/* Index of directory entry to start to search next */</span>
+ DWORD sclust; <span class="c">/* Table start cluster (0:Root directory) */</span>
+ DWORD clust; <span class="c">/* Current cluster */</span>
+ DWORD sect; <span class="c">/* Current sector */</span>
+ BYTE* dir; <span class="c">/* Pointer to the current SFN entry in the win[] */</span>
+ BYTE* fn; <span class="c">/* Pointer to the SFN buffer (in/out) {file[8],ext[3],status[1]} */</span>
+<span class="k">#if</span> _FS_LOCK
+ UINT lockid; <span class="c">/* Sub-directory lock ID (0:Root directory) */</span>
+<span class="k">#endif</span>
+<span class="k">#if</span> _USE_LFN
+ WCHAR* lfn; <span class="c">/* Pointer to the LFN buffer (in/out) */</span>
+ WORD lfn_idx; <span class="c">/* Index of the LFN entris (0xFFFF:No LFN) */</span>
+<span class="k">#endif</span>
+} DIR;
+</pre>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/setlabel.html b/3rdparty/fatfs-0.10b/doc/en/setlabel.html
new file mode 100644
index 00000000..a8ac977a
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/setlabel.html
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/setlabel.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_setlabel</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_setlabel</h2>
+<p>The f_setlabel function sets/removes the label of a volume.</p>
+<pre>
+FRESULT f_setlabel (
+ const TCHAR* <span class="arg">label</span> <span class="c">/* [IN] Volume label to be set */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>label</dt>
+<dd>Pointer to the null-terminated string that specifies the volume label to be set.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>When the string has a drive number, the volume label will be set to the volume specified by the drive number. If not, the label will be set to the default drive. If the given string is a null-string, the volume label on the volume will be removed. The format of the volume label is similar to the short file name but there are some differences shown below:</p>
+<ul>
+<li>11 bytes or less in length as local character code. LFN extention is not applied to the volume label.</li>
+<li>Cannot contain period.</li>
+<li>Can contain spaces anywhere in the volume label. Trailing spaces are truncated off.</li>
+</ul>
+</div>
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_READONLY == 0</tt> and <tt>_USE_LABEL == 1</tt>.</p>
+</div>
+
+
+<div class="para use">
+<h4>Example</h4>
+<pre>
+ <span class="c">/* Set volume label to the default drive */</span>
+ f_setlabel("DATA DISK");
+
+ <span class="c">/* Set volume label to the drive 2 */</span>
+ f_setlabel("2:DISK 3 OF 4");
+
+ <span class="c">/* Remove volume label of the drive 2 */</span>
+ f_setlabel("2:");
+</pre>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<tt><a href="getlabel.html">f_getlabel</a></tt>
+</div>
+
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/sfatfs.html b/3rdparty/fatfs-0.10b/doc/en/sfatfs.html
new file mode 100644
index 00000000..d81e84b2
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/sfatfs.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/sfatfs.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - FATFS</title>
+</head>
+
+<body>
+
+<div class="para">
+<h2>FATFS</h2>
+<p>The <tt>FATFS</tt> structure (file system object) holds dynamic work area of individual logical drives. It is given by application program and registerd/unregisterd to the FatFs module with <tt>f_mount()</tt> function. Initialization is done on first API call after <tt>f_mount()</tt> function or media change. Application program must not modify any member in this structure.</p>
+<pre>
+<span class="k">typedef</span> <span class="k">struct</span> {
+ BYTE fs_type; <span class="c">/* FAT sub-type (0:Not mounted) */</span>
+ BYTE drv; <span class="c">/* Physical drive number */</span>
+ BYTE csize; <span class="c">/* Sectors per cluster (1,2,4,...,128) */</span>
+ BYTE n_fats; <span class="c">/* Number of FAT copies (1,2) */</span>
+ BYTE wflag; <span class="c">/* win[] flag (b0:win[] is dirty) */</span>
+ BYTE fsi_flag; <span class="c">/* FSINFO flags (b7:Disabled, b0:Dirty) */</span>
+ WORD id; <span class="c">/* File system mount ID */</span>
+ WORD n_rootdir; <span class="c">/* Number of root directory entries (FAT12/16) */</span>
+<span class="k">#if</span> _MAX_SS != _MIN_SS
+ WORD ssize; <span class="c">/* Sector size (512,1024,2048 or 4096) */</span>
+<span class="k">#endif</span>
+<span class="k">#if</span> _FS_REENTRANT
+ _SYNC_t sobj; <span class="c">/* Identifier of sync object */</span>
+<span class="k">#endif</span>
+<span class="k">#if</span> !_FS_READONLY
+ DWORD last_clust; <span class="c">/* FSINFO: Last allocated cluster */</span>
+ DWORD free_clust; <span class="c">/* FSINFO: Number of free clusters */</span>
+<span class="k">#endif</span>
+<span class="k">#if</span> _FS_RPATH
+ DWORD cdir; <span class="c">/* Current directory start cluster (0:root) */</span>
+<span class="k">#endif</span>
+ DWORD n_fatent; <span class="c">/* Number of FAT entries (== Number of clusters + 2) */</span>
+ DWORD fsize; <span class="c">/* Sectors per FAT */</span>
+ DWORD volbase; <span class="c">/* Volume start sector */</span>
+ DWORD fatbase; <span class="c">/* FAT area start sector */</span>
+ DWORD dirbase; <span class="c">/* Root directory area start sector (FAT32: Cluster#) */</span>
+ DWORD database; <span class="c">/* Data area start sector */</span>
+ DWORD winsect; <span class="c">/* Current sector appearing in the win[] */</span>
+ BYTE win[_MAX_SS]; <span class="c">/* Disk access window for directory, FAT (and file data at tiny cfg) */</span>
+} FATFS;
+</pre>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/sfile.html b/3rdparty/fatfs-0.10b/doc/en/sfile.html
new file mode 100644
index 00000000..930573e8
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/sfile.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/sfile.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - FIL</title>
+</head>
+
+<body>
+
+<div class="para">
+<h2>FIL</h2>
+<p>The <tt>FIL</tt> structure (file object) holds state of an open file. It is created by <tt>f_open()</tt> function and discarded by <tt>f_close()</tt> function. Application program must not modify any member in this structure except for <tt>cltbl</tt>. Note that a sector buffer is defined in this structure at non-tiny configuration, so that the <tt>FIL</tt> structures should not be defined as auto variable.</p>
+
+<pre>
+<span class="k">typedef</span> <span class="k">struct</span> {
+ FATFS* fs; <span class="c">/* Pointer to the owner file system object */</span>
+ WORD id; <span class="c">/* Owner file system mount ID */</span>
+ BYTE flag; <span class="c">/* File object status flags */</span>
+ BYTE err; <span class="c">/* Abort flag (error code) */</span>
+ DWORD fptr; <span class="c">/* File read/write pointer (Byte offset origin from top of the file) */</span>
+ DWORD fsize; <span class="c">/* File size in unit of byte */</span>
+ DWORD sclust; <span class="c">/* File start cluster */</span>
+ DWORD clust; <span class="c">/* Current cluster */</span>
+ DWORD dsect; <span class="c">/* Current data sector */</span>
+<span class="k">#if</span> !_FS_READONLY
+ DWORD dir_sect; <span class="c">/* Sector containing the directory entry */</span>
+ BYTE* dir_ptr; <span class="c">/* Ponter to the directory entry in the window */</span>
+<span class="k">#endif</span>
+<span class="k">#if</span> _USE_FASTSEEK
+ DWORD* cltbl; <span class="c">/* Pointer to the cluster link map table (Nulled on file open) */</span>
+<span class="k">#endif</span>
+<span class="k">#if</span> _FS_LOCK
+ UINT lockid; <span class="c">/* Fle lock ID */</span>
+<span class="k">#endif</span>
+<span class="k">#if</span> !_FS_TINY
+ BYTE buf[_MAX_SS]; <span class="c">/* File private data transfer buffer */</span>
+<span class="k">#endif</span>
+} FIL;
+</pre>
+
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/sfileinfo.html b/3rdparty/fatfs-0.10b/doc/en/sfileinfo.html
new file mode 100644
index 00000000..a862a813
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/sfileinfo.html
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/sfileinfo.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - FILINFO</title>
+</head>
+
+<body>
+
+<div class="para">
+<h2>FILINFO</h2>
+<p>The <tt>FILINFO</tt> structure holds a file information returned by <tt>f_readdir()</tt> and <tt>f_stat()</tt> function.</p>
+<pre>
+<span class="k">typedef struct</span> {
+ DWORD fsize; <span class="c">/* File size */</span>
+ WORD fdate; <span class="c">/* Last modified date */</span>
+ WORD ftime; <span class="c">/* Last modified time */</span>
+ BYTE fattrib; <span class="c">/* Attribute */</span>
+ TCHAR fname[13]; <span class="c">/* Short file name (8.3 format) */</span>
+<span class="k">#if</span> _USE_LFN
+ TCHAR* lfname; <span class="c">/* Pointer to the LFN buffer */</span>
+ int lfsize; <span class="c">/* Size of the LFN buffer in unit of TCHAR */</span>
+<span class="k">#endif</span>
+} FILINFO;
+</pre>
+</div>
+
+<h4>Members</h4>
+<dl>
+<dt>fsize</dt>
+<dd>Indicates size of the file in unit of byte. Always zero for directories.</dd>
+<dt>fdate</dt>
+<dd>Indicates the date that the file was modified or the directory was created.<br>
+<dl>
+<dt>bit15:9</dt>
+<dd>Year origin from 1980 (0..127)</dd>
+<dt>bit8:5</dt>
+<dd>Month (1..12)</dd>
+<dt>bit4:0</dt>
+<dd>Day (1..31)</dd>
+</dl>
+</dd>
+<dt>ftime</dt>
+<dd>Indicates the time that the file was modified or the directory was created.<br>
+<dl>
+<dt>bit15:11</dt>
+<dd>Hour (0..23)</dd>
+<dt>bit10:5</dt>
+<dd>Minute (0..59)</dd>
+<dt>bit4:0</dt>
+<dd>Second / 2 (0..29)</dd>
+</dl>
+</dd>
+<dt>fattrib</dt>
+<dd>Indicates the file/directory attribute in combination of <tt>AM_DIR</tt>, <tt>AM_RDO</tt>, <tt>AM_HID</tt>, <tt>AM_SYS</tt> and <tt>AM_ARC</tt>.</dd>
+<dt>fname[]</dt>
+<dd>Indicates the file/directory name in 8.3 format null-terminated string. It is always returnd with upper case in non-LFN configuration but it can be returned with lower case in LFN configuration.</dd>
+<dt>lfname</dt>
+<dd>Pointer to the LFN buffer to store the read LFN. This member must be initialized by application prior to use this structure. Set null pointer if LFN is not needed. Not available in non-LFN configuration.</dd>
+<dt>lfsize</dt>
+<dd>Size of the LFN buffer in unit of TCHAR. This member must be initialized by application prior to use this structure. Not available in non-LFN configuration.</dd>
+</dl>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/size.html b/3rdparty/fatfs-0.10b/doc/en/size.html
new file mode 100644
index 00000000..f297d20c
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/size.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/size.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_size</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_size</h2>
+<p>The f_size function gets the size of a file.</p>
+<pre>
+DWORD f_size (
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] File object */</span>
+);
+</pre>
+</div>
+
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>Pointer to the open file object structure.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>Returns the size of the file in unit of byte.</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>In this revision, the <tt>f_size()</tt> function is implemented as a macro.</p>
+<pre>
+<span class="k">#define</span> f_size(fp) ((fp)->fsize)
+</pre>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Always available.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="lseek.html">f_lseek</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/stat.html b/3rdparty/fatfs-0.10b/doc/en/stat.html
new file mode 100644
index 00000000..fb0d94a1
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/stat.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/stat.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_stat</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_stat</h2>
+<p>The f_stat function checks the existence of a file or sub-directory.</p>
+<pre>
+FRESULT f_stat (
+ const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] Object name */</span>
+ FILINFO* <span class="arg">fno</span> <span class="c">/* [OUT] FILINFO structure */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>Pointer to the null-terminated string that specifies the <a href="filename.html">object</a> to get its information.</dd>
+<dt>fno</dt>
+<dd>Pointer to the blank <tt>FILINFO</tt> structure to store the information of the object. Set null pointer if it is not needed.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ok">FR_NO_FILE</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_stat()</tt> function checks the existence of a file or sub-directory. If not exist, the function returns with <tt>FR_NO_FILE</tt>. If exist, the function returns with <tt>FR_OK</tt> and the informations of the object, file size, timestamp, attribute and SFN, are stored to the file information structure. For details of the file information, refer to the <tt>FILINFO</tt> structure and <a href="readdir.html"><tt>f_readdir()</tt></a> function.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_MINIMIZE == 0</tt>.</p>
+</div>
+
+
+<div class="para ref">
+<h4>References</h4>
+<p><tt><a href="opendir.html">f_opendir</a>, <a href="readdir.html">f_readdir</a>, <a href="sfileinfo.html">FILINFO</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/sync.html b/3rdparty/fatfs-0.10b/doc/en/sync.html
new file mode 100644
index 00000000..09bab3d9
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/sync.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/sync.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_sync</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_sync</h2>
+<p>The f_sync function flushes the cached information of a writing file.</p>
+<pre>
+FRESULT f_sync (
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] File object */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameter</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>Pointer to the open file object to be flushed.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_sync()</tt> function performs the same process as <tt>f_close()</tt> function but the file is left opened and can continue read/write/seek operations to the file. This is suitable for the applications that open files for a long time in write mode, such as data logger. Performing <tt>f_sync()</tt> function of periodic or immediataly after <tt>f_write()</tt> function can minimize the risk of data loss due to a sudden blackout or an unintentional media removal. For more information, refer to <a href="appnote.html#critical">application note</a>.</p>
+<p>However there is no sense in <tt>f_sync()</tt> function immediataly before <tt>f_close()</tt> function because it performs <tt>f_sync()</tt> function in it. In other words, the differnce between those functions is that the file object is invalidated or not.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_READONLY == 0</tt>.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="close.html">f_close</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/tell.html b/3rdparty/fatfs-0.10b/doc/en/tell.html
new file mode 100644
index 00000000..2ad86ae9
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/tell.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/tell.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_tell</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_tell</h2>
+<p>The f_tell function gets the current read/write pointer of a file.</p>
+<pre>
+DWORD f_tell (
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] File object */</span>
+);
+</pre>
+</div>
+
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>Pointer to the open file object structure.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>Returns current read/write pointer of the file.</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>In this revision, the <tt>f_tell()</tt> function is implemented as a macro.</p>
+<pre>
+<span class="k">#define</span> f_tell(fp) ((fp)->fptr)
+</pre>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Always available.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="lseek.html">f_lseek</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/truncate.html b/3rdparty/fatfs-0.10b/doc/en/truncate.html
new file mode 100644
index 00000000..eb0989ec
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/truncate.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/truncate.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_truncate</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_truncate</h2>
+<p>The f_truncate function truncates the file size.</p>
+<pre>
+FRESULT f_truncate (
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] File object */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameter</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>Pointer to the open file object to be truncated.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_truncate()</tt> function truncates the file size to the current file read/write pointer. This function has no effect if the file read/write pointer is already pointing end of the file.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_READONLY == 0</tt> and <tt>_FS_MINIMIZE == 0</tt>.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="lseek.html">f_lseek</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/unlink.html b/3rdparty/fatfs-0.10b/doc/en/unlink.html
new file mode 100644
index 00000000..deb96b98
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/unlink.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/unlink.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_unlink</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_unlink</h2>
+<p>The f_unlink function removes a file or sub-directory.</p>
+<pre>
+FRESULT f_unlink (
+ const TCHAR* <span class="arg">path</span> <span class="c">/* [IN] Object name */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameter</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>Pointer to the null-terminated string that specifies an <a href="filename.html">object</a> to be removed.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ok">FR_NO_FILE</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#de">FR_DENIED</a>,
+<a href="rc.html#ex">FR_EXIST</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#lo">FR_LOCKED</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>
+If condition of the object to be removed is applicable to the following terms, the function will be rejected.<ul>
+<li>The file/sub-directory must not have read-only attribute (<tt>AM_RDO</tt>), or the function will be rejected with <tt>FR_DENIED</tt>.</li>
+<li>The sub-directory must be empty and must not be current directory, or the function will be rejected with <tt>FR_DENIED</tt>.</li>
+<li>The file/sub-directory must not be opened, or the <em>FAT volume can be collapsed</em>. It can be rejected with <tt>FR_LOCKED</tt> when <a href="appnote.html#dup">file lock feature</a> is enabled.</li>
+</ul>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_READONLY == 0</tt> and <tt>_FS_MINIMIZE == 0</tt>.</p>
+</div>
+
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/utime.html b/3rdparty/fatfs-0.10b/doc/en/utime.html
new file mode 100644
index 00000000..2174a05d
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/utime.html
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/utime.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_utime</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_utime</h2>
+<p>The f_utime function changes the timestamp of a file or sub-directory.</p>
+<pre>
+FRESULT f_utime (
+ const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] Object name */</span>
+ const FILINFO* <span class="arg">fno</span> <span class="c">/* [IN] Time and data to be set */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>Pointer to the null-terminated string that specifies an <a href="filename.html">object</a> to be changed.</dd>
+<dt>fno</dt>
+<dd>Pointer to the file information structure that has a timestamp to be set in member fdate and ftime. Do not care any other members.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ok">FR_NO_FILE</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The <tt>f_utime()</tt> function changes the timestamp of a file or sub-directory</p>
+</div>
+
+
+<div class="para use">
+<h4>Example</h4>
+<pre>
+FRESULT set_timestamp (
+ char *obj, <span class="c">/* Pointer to the file name */</span>
+ int year,
+ int month,
+ int mday,
+ int hour,
+ int min,
+ int sec
+)
+{
+ FILINFO fno;
+
+ fno.fdate = (WORD)(((year - 1980) * 512U) | month * 32U | mday);
+ fno.ftime = (WORD)(hour * 2048U | min * 32U | sec / 2U);
+
+ return f_utime(obj, &amp;fno);
+}
+</pre>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_READONLY == 0</tt> and <tt>_FS_MINIMIZE == 0</tt>.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="stat.html">f_stat</a>, <a href="sfileinfo.html">FILINFO</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/en/write.html b/3rdparty/fatfs-0.10b/doc/en/write.html
new file mode 100644
index 00000000..a12af694
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/en/write.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="ja" title="Japanese" href="../ja/write.html">
+<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_write</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_write</h2>
+<p>The f_write writes data to a file.</p>
+<pre>
+FRESULT f_write (
+ FIL* <span class="arg">fp</span>, <span class="c">/* [IN] Pointer to the file object structure */</span>
+ const void* <span class="arg">buff</span>, <span class="c">/* [IN] Pointer to the data to be written */</span>
+ UINT <span class="arg">btw</span>, <span class="c">/* [IN] Number of bytes to write */</span>
+ UINT* <span class="arg">bw</span> <span class="c">/* [OUT] Pointer to the variable to return number of bytes written */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>Parameters</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>Pointer to the open file object structure.</dd>
+<dt>buff</dt>
+<dd>Pointer to the data to be written.</dd>
+<dt>btw</dt>
+<dd>Specifies number of bytes to write in range of <tt>UINT</tt> type.</dd>
+<dt>bw</dt>
+<dd>Pointer to the <tt>UINT</tt> variable to return the number of bytes written. The value is always valid after the function call regardless of the result.</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>Return Values</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>Description</h4>
+<p>The read/write pointer of the file object advances number of bytes written. After the function succeeded, <tt class="arg">*bw</tt> should be checked to detect the disk full. In case of <tt class="arg">*bw</tt> is less than <tt class="arg">btw</tt>, it means the volume got full during the write operation. The function can take a time when the volume is full or close to full.</p>
+</div>
+
+
+<div class="para comp">
+<h4>QuickInfo</h4>
+<p>Available when <tt>_FS_READONLY == 0</tt>.</p>
+</div>
+
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="read.html">f_read</a>, <a href="putc.html">fputc</a>, <a href="puts.html">fputs</a>, <a href="printf.html">fprintf</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_e.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/img/app1.c b/3rdparty/fatfs-0.10b/doc/img/app1.c
new file mode 100644
index 00000000..b3ff7fd7
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/app1.c
@@ -0,0 +1,43 @@
+/*------------------------------------------------------------/
+/ Open or create a file in append mode
+/------------------------------------------------------------*/
+
+FRESULT open_append (
+ FIL* fp, /* [OUT] File object to create */
+ const char* path /* [IN] File name to be opened */
+)
+{
+ FRESULT fr;
+
+ /* Opens an existing file. If not exist, creates a new file. */
+ fr = f_open(fp, path, FA_WRITE | FA_OPEN_ALWAYS);
+ if (fr == FR_OK) {
+ /* Seek to end of the file to append data */
+ fr = f_lseek(fp, f_size(fp));
+ if (fr != FR_OK)
+ f_close(fp);
+ }
+ return fr;
+}
+
+
+int main (void)
+{
+ FRESULT fr;
+ FATFS fs;
+ FIL fil;
+
+ /* Open or create a log file and ready to append */
+ f_mount(&fs, "", 0);
+ fr = open_append(&fil, "logfile.txt");
+ if (fr != FR_OK) return 1;
+
+ /* Append a line */
+ f_printf(&fil, "%02u/%02u/%u, %2u:%02u\n", Mday, Mon, Year, Hour, Min);
+
+ /* Close the file */
+ f_close(&fil);
+
+ return 0;
+}
+
diff --git a/3rdparty/fatfs-0.10b/doc/img/app2.c b/3rdparty/fatfs-0.10b/doc/img/app2.c
new file mode 100644
index 00000000..b1ecd785
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/app2.c
@@ -0,0 +1,70 @@
+/*------------------------------------------------------------/
+/ Remove all contents of a directory
+/ This function works regardless of _FS_RPATH.
+/------------------------------------------------------------*/
+
+
+FRESULT empty_directory (
+ char* path /* Working buffer filled with start directory */
+)
+{
+ UINT i, j;
+ FRESULT fr;
+ DIR dir;
+ FILINFO fno;
+
+#if _USE_LFN
+ fno.lfname = 0; /* Disable LFN output */
+#endif
+ fr = f_opendir(&dir, path);
+ if (fr == FR_OK) {
+ for (i = 0; path[i]; i++) ;
+ path[i++] = '/';
+ for (;;) {
+ fr = f_readdir(&dir, &fno);
+ if (fr != FR_OK || !fno.fname[0]) break;
+ if (_FS_RPATH && fno.fname[0] == '.') continue;
+ j = 0;
+ do
+ path[i+j] = fno.fname[j];
+ while (fno.fname[j++]);
+ if (fno.fattrib & AM_DIR) {
+ fr = empty_directory(path);
+ if (fr != FR_OK) break;
+ }
+ fr = f_unlink(path);
+ if (fr != FR_OK) break;
+ }
+ path[--i] = '\0';
+ closedir(&dir);
+ }
+
+ return fr;
+}
+
+
+
+int main (void)
+{
+ FRESULT fr;
+ FATFS fs;
+ char buff[64]; /* Working buffer */
+
+
+
+ f_mount(&fs, "", 0);
+
+ strcpy(buff, "/"); /* Directory to be emptied */
+ fr = empty_directory(buff);
+
+ if (fr) {
+ printf("Function failed. (%u)\n", fr);
+ return fr;
+ } else {
+ printf("All contents in the %s are successfully removed.\n", buff);
+ return 0;
+ }
+}
+
+
+
diff --git a/3rdparty/fatfs-0.10b/doc/img/app3.c b/3rdparty/fatfs-0.10b/doc/img/app3.c
new file mode 100644
index 00000000..32b14237
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/app3.c
@@ -0,0 +1,106 @@
+/*----------------------------------------------------------------------/
+/ Allocate a contiguous area to the file
+/-----------------------------------------------------------------------/
+/ This function checks if the file is contiguous with desired size.
+/ If not, a block of contiguous sectors is allocated to the file.
+/ If the file has been opened without FA_WRITE flag, it only checks if
+/ the file is contiguous and returns the resulut. */
+
+#if _FATFS != 8051 /* Check if R0.10b */
+#error This function may not be compatible with this revision of FatFs module.
+#endif
+
+/* Declarations of FatFs internal functions accessible from applications.
+/ This is intended to be used for disk checking/fixing or dirty hacks :-) */
+DWORD clust2sect (FATFS* fs, DWORD clst);
+DWORD get_fat (FATFS* fs, DWORD clst);
+FRESULT put_fat (FATFS* fs, DWORD clst, DWORD val);
+
+
+DWORD allocate_contiguous_clusters ( /* Returns the first sector in LBA (0:error or not contiguous) */
+ FIL* fp, /* Pointer to the open file object */
+ DWORD len /* Number of bytes to allocate */
+)
+{
+ DWORD csz, tcl, ncl, ccl, cl;
+
+
+ if (f_lseek(fp, 0) || !len) /* Check if the given parameters are valid */
+ return 0;
+ csz = 512UL * fp->fs->csize; /* Cluster size in unit of byte (assuming 512 bytes/sector) */
+ tcl = (len + csz - 1) / csz; /* Total number of clusters required */
+ len = tcl * csz; /* Round-up file size to the cluster boundary */
+
+ /* Check if the existing cluster chain is contiguous */
+ if (len == fp->fsize) {
+ ncl = 0; ccl = fp->sclust;
+ do {
+ cl = get_fat(fp->fs, ccl); /* Get the cluster status */
+ if (cl + 1 < 3) return 0; /* Hard error? */
+ if (cl != ccl + 1 &&; cl < fp->fs->n_fatent) break; /* Not contiguous? */
+ ccl = cl;
+ } while (++ncl < tcl);
+ if (ncl == tcl) /* Is the file contiguous? */
+ return clust2sect(fp->fs, fp->sclust); /* Return file start sector */
+ }
+#if _FS_READONLY
+ return 0;
+#else
+ if (f_truncate(fp)) return 0; /* Remove the existing chain */
+
+ /* Find a free contiguous area */
+ ccl = cl = 2; ncl = 0;
+ do {
+ if (cl >= fp->fs->n_fatent) return 0; /* No contiguous area is found. */
+ if (get_fat(fp->fs, cl)) { /* Encounterd a cluster in use */
+ do { /* Skip the block of used clusters */
+ cl++;
+ if (cl >= fp->fs->n_fatent) return 0; /* No contiguous area is found. */
+ } while (get_fat(fp->fs, cl));
+ ccl = cl; ncl = 0;
+ }
+ cl++; ncl++;
+ } while (ncl < tcl);
+
+ /* Create a contiguous cluster chain */
+ fp->fs->last_clust = ccl - 1;
+ if (f_lseek(fp, len)) return 0;
+
+ return clust2sect(fp->fs, fp->sclust); /* Return file start sector */
+#endif
+}
+
+
+int main (void)
+{
+ FRESULT fr;
+ DRESULT dr;
+ FATFS fs;
+ FIL fil;
+ DWORD org;
+
+
+ /* Open or create a file */
+ f_mount(&fs, "", 0);
+ fr = f_open(&fil, "swapfile.sys", FA_READ | FA_WRITE | FA_OPEN_ALWAYS);
+ if (fr) return 1;
+
+ /* Check if the file is 64MB in size and occupies a contiguous area.
+ / If not, a contiguous area will be re-allocated to the file. */
+ org = allocate_contiguous_clusters(&fil, 0x4000000);
+ if (!org) {
+ printf("Function failed due to any error or insufficient contiguous area.\n");
+ f_close(&fil);
+ return 1;
+ }
+
+ /* Now you can read/write the file with disk functions bypassing the file system layer. */
+
+ dr = disk_write(fil.fs->drv, Buff, org, 1024); /* Write 512KiB from top of the file */
+
+ ...
+
+ f_close(&fil);
+ return 0;
+}
+
diff --git a/3rdparty/fatfs-0.10b/doc/img/app4.c b/3rdparty/fatfs-0.10b/doc/img/app4.c
new file mode 100644
index 00000000..6ddebd90
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/app4.c
@@ -0,0 +1,318 @@
+/*----------------------------------------------------------------------/
+/ Low level disk I/O module function checker
+/-----------------------------------------------------------------------/
+/ WARNING: The data on the target drive will be lost!
+*/
+
+#include <stdio.h>
+#include <string.h>
+#include "ff.h"
+#include "diskio.h"
+
+
+static
+DWORD pn (
+ DWORD pns
+)
+{
+ static DWORD lfsr;
+ UINT n;
+
+
+ if (pns) {
+ lfsr = pns;
+ for (n = 0; n < 32; n++) pn(0);
+ }
+ if (lfsr & 1) {
+ lfsr >>= 1;
+ lfsr ^= 0x80200003;
+ } else {
+ lfsr >>= 1;
+ }
+ return lfsr;
+}
+
+
+int test_diskio (
+ BYTE pdrv, /* Physical drive number to be checked (all data on the drive will be lost) */
+ UINT ncyc, /* Number of test cycles */
+ DWORD* buff, /* Pointer to the working buffer */
+ UINT sz_buff /* Size of the working buffer in unit of byte */
+)
+{
+ UINT n, cc, ns;
+ DWORD sz_drv, lba, lba2, pns = 1;
+ WORD sz_sect, sz_eblk;
+ BYTE *pbuff = (BYTE*)buff;
+ DSTATUS ds;
+ DRESULT dr;
+
+
+
+ printf("test_diskio(%u, %u, 0x%08X, 0x%08X)\n", pdrv, ncyc, (UINT)buff, sz_buff);
+
+ if (sz_buff < _MAX_SS + 4) {
+ printf("Insufficient work area to test.\n");
+ return 1;
+ }
+
+ for (cc = 1; cc <= ncyc; cc++) {
+ printf("**** Test cycle %u of %u start ****\n", cc, ncyc);
+
+ /* Initialization */
+ printf(" disk_initalize(%u)", pdrv);
+ ds = disk_initialize(pdrv);
+ if (ds & STA_NOINIT) {
+ printf(" - failed.\n");
+ return 2;
+ } else {
+ printf(" - ok.\n");
+ }
+
+ /* Get drive size */
+ printf("**** Get drive size ****\n");
+ printf(" disk_ioctl(%u, GET_SECTOR_COUNT, 0x%08X)", pdrv, (UINT)&sz_drv);
+ sz_drv = 0;
+ dr = disk_ioctl(pdrv, GET_SECTOR_COUNT, &sz_drv);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ return 3;
+ }
+ if (sz_drv < 128) {
+ printf("Failed: Insufficient drive size to test.\n");
+ return 4;
+ }
+ printf(" Number of sectors on the drive %u is %lu.\n", pdrv, sz_drv);
+
+#if _MAX_SS != _MIN_SS
+ /* Get sector size */
+ printf("**** Get sector size ****\n");
+ printf(" disk_ioctl(%u, GET_SECTOR_SIZE, 0x%X)", pdrv, (UINT)&sz_sect);
+ sz_sect = 0;
+ dr = disk_ioctl(pdrv, GET_SECTOR_SIZE, &sz_sect);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ return 5;
+ }
+ printf(" Size of sector is %u bytes.\n", sz_sect);
+#else
+ sz_sect = _MAX_SS;
+#endif
+
+ /* Get erase block size */
+ printf("**** Get block size ****\n");
+ printf(" disk_ioctl(%u, GET_BLOCK_SIZE, 0x%X)", pdrv, (UINT)&sz_eblk);
+ sz_eblk = 0;
+ dr = disk_ioctl(pdrv, GET_BLOCK_SIZE, &sz_eblk);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ }
+ if (dr == RES_OK || sz_eblk >= 2) {
+ printf(" Size of the erase block is %u sectors.\n", sz_eblk);
+ } else {
+ printf(" Size of the erase block is unknown.\n");
+ }
+
+ /* Single sector write test */
+ printf("**** Single sector write test 1 ****\n");
+ lba = 0;
+ for (n = 0, pn(pns); n < sz_sect; n++) pbuff[n] = (BYTE)pn(0);
+ printf(" disk_write(%u, 0x%X, %lu, 1)", pdrv, (UINT)pbuff, lba);
+ dr = disk_write(pdrv, pbuff, lba, 1);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ return 6;
+ }
+ printf(" disk_ioctl(%u, CTRL_SYNC, NULL)", pdrv);
+ dr = disk_ioctl(pdrv, CTRL_SYNC, 0);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ return 7;
+ }
+ memset(pbuff, 0, sz_sect);
+ printf(" disk_read(%u, 0x%X, %lu, 1)", pdrv, (UINT)pbuff, lba);
+ dr = disk_read(pdrv, pbuff, lba, 1);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ return 8;
+ }
+ for (n = 0, pn(pns); n < sz_sect && pbuff[n] == (BYTE)pn(0); n++) ;
+ if (n == sz_sect) {
+ printf(" Data matched.\n");
+ } else {
+ printf("Failed: Read data differs from the data written.\n");
+ return 10;
+ }
+ pns++;
+
+ /* Multiple sector write test */
+ printf("**** Multiple sector write test ****\n");
+ lba = 1; ns = sz_buff / sz_sect;
+ if (ns > 4) ns = 4;
+ for (n = 0, pn(pns); n < (UINT)(sz_sect * ns); n++) pbuff[n] = (BYTE)pn(0);
+ printf(" disk_write(%u, 0x%X, %lu, %u)", pdrv, (UINT)pbuff, lba, ns);
+ dr = disk_write(pdrv, pbuff, lba, ns);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ return 11;
+ }
+ printf(" disk_ioctl(%u, CTRL_SYNC, NULL)", pdrv);
+ dr = disk_ioctl(pdrv, CTRL_SYNC, 0);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ return 12;
+ }
+ memset(pbuff, 0, sz_sect * ns);
+ printf(" disk_read(%u, 0x%X, %lu, %u)", pdrv, (UINT)pbuff, lba, ns);
+ dr = disk_read(pdrv, pbuff, lba, ns);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ return 13;
+ }
+ for (n = 0, pn(pns); n < (UINT)(sz_sect * ns) && pbuff[n] == (BYTE)pn(0); n++) ;
+ if (n == (UINT)(sz_sect * ns)) {
+ printf(" Data matched.\n");
+ } else {
+ printf("Failed: Read data differs from the data written.\n");
+ return 14;
+ }
+ pns++;
+
+ /* Single sector write test (misaligned memory address) */
+ printf("**** Single sector write test 2 ****\n");
+ lba = 5;
+ for (n = 0, pn(pns); n < sz_sect; n++) pbuff[n+3] = (BYTE)pn(0);
+ printf(" disk_write(%u, 0x%X, %lu, 1)", pdrv, (UINT)(pbuff+3), lba);
+ dr = disk_write(pdrv, pbuff+3, lba, 1);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ return 15;
+ }
+ printf(" disk_ioctl(%u, CTRL_SYNC, NULL)", pdrv);
+ dr = disk_ioctl(pdrv, CTRL_SYNC, 0);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ return 16;
+ }
+ memset(pbuff+5, 0, sz_sect);
+ printf(" disk_read(%u, 0x%X, %lu, 1)", pdrv, (UINT)(pbuff+5), lba);
+ dr = disk_read(pdrv, pbuff+5, lba, 1);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ return 17;
+ }
+ for (n = 0, pn(pns); n < sz_sect && pbuff[n+5] == (BYTE)pn(0); n++) ;
+ if (n == sz_sect) {
+ printf(" Data matched.\n");
+ } else {
+ printf("Failed: Read data differs from the data written.\n");
+ return 18;
+ }
+ pns++;
+
+ /* 4GB barrier test */
+ printf("**** 4GB barrier test ****\n");
+ if (sz_drv >= 128 + 0x80000000 / (sz_sect / 2)) {
+ lba = 6; lba2 = lba + 0x80000000 / (sz_sect / 2);
+ for (n = 0, pn(pns); n < (UINT)(sz_sect * 2); n++) pbuff[n] = (BYTE)pn(0);
+ printf(" disk_write(%u, 0x%X, %lu, 1)", pdrv, (UINT)pbuff, lba);
+ dr = disk_write(pdrv, pbuff, lba, 1);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ return 19;
+ }
+ printf(" disk_write(%u, 0x%X, %lu, 1)", pdrv, (UINT)(pbuff+sz_sect), lba2);
+ dr = disk_write(pdrv, pbuff+sz_sect, lba2, 1);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ return 20;
+ }
+ printf(" disk_ioctl(%u, CTRL_SYNC, NULL)", pdrv);
+ dr = disk_ioctl(pdrv, CTRL_SYNC, 0);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ return 21;
+ }
+ memset(pbuff, 0, sz_sect * 2);
+ printf(" disk_read(%u, 0x%X, %lu, 1)", pdrv, (UINT)pbuff, lba);
+ dr = disk_read(pdrv, pbuff, lba, 1);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ return 22;
+ }
+ printf(" disk_read(%u, 0x%X, %lu, 1)", pdrv, (UINT)(pbuff+sz_sect), lba2);
+ dr = disk_read(pdrv, pbuff+sz_sect, lba2, 1);
+ if (dr == RES_OK) {
+ printf(" - ok.\n");
+ } else {
+ printf(" - failed.\n");
+ return 23;
+ }
+ for (n = 0, pn(pns); pbuff[n] == (BYTE)pn(0) && n < (UINT)(sz_sect * 2); n++) ;
+ if (n == (UINT)(sz_sect * 2)) {
+ printf(" Data matched.\n");
+ } else {
+ printf("Failed: Read data differs from the data written.\n");
+ return 24;
+ }
+ } else {
+ printf(" Test skipped.\n");
+ }
+ pns++;
+
+ printf("**** Test cycle %u of %u completed ****\n\n", cc, ncyc);
+ }
+
+ return 0;
+}
+
+
+
+int main (int argc, char* argv[])
+{
+ int rc;
+ DWORD buff[512]; /* 2048 byte working buffer */
+
+ /* Check function/compatibility of the physical drive #0 */
+ rc = test_diskio(0, 1, buff, sizeof buff);
+ if (res) {
+ printf("Sorry the function/compatibility test failed.\nFatFs will not work on this disk driver.\n");
+ } else {
+ printf("Congratulations! The disk I/O layer works well.\n");
+ }
+
+ return rc;
+}
+
diff --git a/3rdparty/fatfs-0.10b/doc/img/f1.png b/3rdparty/fatfs-0.10b/doc/img/f1.png
new file mode 100644
index 00000000..5191700f
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/f1.png
Binary files differ
diff --git a/3rdparty/fatfs-0.10b/doc/img/f2.png b/3rdparty/fatfs-0.10b/doc/img/f2.png
new file mode 100644
index 00000000..8ef0ec24
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/f2.png
Binary files differ
diff --git a/3rdparty/fatfs-0.10b/doc/img/f3.png b/3rdparty/fatfs-0.10b/doc/img/f3.png
new file mode 100644
index 00000000..9111bfc9
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/f3.png
Binary files differ
diff --git a/3rdparty/fatfs-0.10b/doc/img/f4.png b/3rdparty/fatfs-0.10b/doc/img/f4.png
new file mode 100644
index 00000000..f9a6b464
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/f4.png
Binary files differ
diff --git a/3rdparty/fatfs-0.10b/doc/img/f5.png b/3rdparty/fatfs-0.10b/doc/img/f5.png
new file mode 100644
index 00000000..b110b291
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/f5.png
Binary files differ
diff --git a/3rdparty/fatfs-0.10b/doc/img/f6.png b/3rdparty/fatfs-0.10b/doc/img/f6.png
new file mode 100644
index 00000000..a7b0d71e
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/f6.png
Binary files differ
diff --git a/3rdparty/fatfs-0.10b/doc/img/f7.png b/3rdparty/fatfs-0.10b/doc/img/f7.png
new file mode 100644
index 00000000..392e8b89
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/f7.png
Binary files differ
diff --git a/3rdparty/fatfs-0.10b/doc/img/funcs.png b/3rdparty/fatfs-0.10b/doc/img/funcs.png
new file mode 100644
index 00000000..03e7d6d1
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/funcs.png
Binary files differ
diff --git a/3rdparty/fatfs-0.10b/doc/img/layers.png b/3rdparty/fatfs-0.10b/doc/img/layers.png
new file mode 100644
index 00000000..d485d6b6
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/layers.png
Binary files differ
diff --git a/3rdparty/fatfs-0.10b/doc/img/layers3.png b/3rdparty/fatfs-0.10b/doc/img/layers3.png
new file mode 100644
index 00000000..ac439b0b
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/layers3.png
Binary files differ
diff --git a/3rdparty/fatfs-0.10b/doc/img/modules.png b/3rdparty/fatfs-0.10b/doc/img/modules.png
new file mode 100644
index 00000000..ef4c78cb
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/modules.png
Binary files differ
diff --git a/3rdparty/fatfs-0.10b/doc/img/rwtest.png b/3rdparty/fatfs-0.10b/doc/img/rwtest.png
new file mode 100644
index 00000000..a34bf062
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/rwtest.png
Binary files differ
diff --git a/3rdparty/fatfs-0.10b/doc/img/rwtest2.png b/3rdparty/fatfs-0.10b/doc/img/rwtest2.png
new file mode 100644
index 00000000..41a8c1f5
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/rwtest2.png
Binary files differ
diff --git a/3rdparty/fatfs-0.10b/doc/img/rwtest3.png b/3rdparty/fatfs-0.10b/doc/img/rwtest3.png
new file mode 100644
index 00000000..cbaa3d11
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/img/rwtest3.png
Binary files differ
diff --git a/3rdparty/fatfs-0.10b/doc/ja/appnote.html b/3rdparty/fatfs-0.10b/doc/ja/appnote.html
new file mode 100644
index 00000000..b30c713f
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/appnote.html
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/appnote.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFsモジュール アプリケーション・ノート</title>
+</head>
+
+<body>
+<h1>FatFsモジュール アプリケーション・ノート</h1>
+<ol class="toc">
+<li><a href="#port">ãƒãƒ¼ãƒ†ã‚£ãƒ³ã‚°ã®éš›ã«é…æ…®ã™ã¹ãã“ã¨</a></li>
+<li><a href="#limits">é™ç•Œå€¤</a></li>
+<li><a href="#memory">メモリ使用é‡</a></li>
+<li><a href="#reduce">モジュール・サイズã®ç¸®å°</a></li>
+<li><a href="#lfn">é•·ã„ファイルå</a></li>
+<li><a href="#jap">日本語ファイルåã®å¤§æ–‡å­—変æ›</a></li>
+<li><a href="#unicode">Unicode入出力ã¸ã®å¯¾å¿œ</a></li>
+<li><a href="#reentrant">リエントランシー</a></li>
+<li><a href="#dup">多é‡ãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ã‚¢ã‚¯ã‚»ã‚¹</a></li>
+<li><a href="#fs1">効率的ãªãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ã‚¢ã‚¯ã‚»ã‚¹</a></li>
+<li><a href="#fs2">フラッシュ・メモリã®ç‰¹æ€§ã¸ã®é…æ…®</a></li>
+<li><a href="#critical">クリãƒã‚«ãƒ«ãƒ»ã‚»ã‚¯ã‚·ãƒ§ãƒ³</a></li>
+<li><a href="#fs3">APIã®æ‹¡å¼µçš„使用例</a></li>
+<li><a href="#license">FatFsã®ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã«ã¤ã„ã¦</a></li>
+</ol>
+<hr>
+
+<div class="para" id="port">
+<h3>ãƒãƒ¼ãƒ†ã‚£ãƒ³ã‚°ã®éš›ã«é…æ…®ã™ã¹ãã“ã¨</h3>
+
+<h4>移æ¤ã®éš›ã®å‰ææ¡ä»¶</h4>
+<p>FatFsモジュールã¯ç§»æ¤æ€§ã«é–¢ã—ã¦æ¬¡ã®ç‚¹ã‚’å‰æã¨ã—ã¦ã„ã¾ã™ã€‚</p>
+<ul>
+<li>処ç†ç³»ã¯ANSI C準拠ã§ã‚ã‚‹ã“ã¨ã€‚<br>
+FatFsモジュールã¯ANSI C(C89)準拠ã§è¨˜è¿°ã•ã‚Œã¦ã„ã‚‹ã®ã§ã€æ™®é€šã®Cコンパイラãªã‚‰ç‰¹ã«å‡¦ç†ç³»ä¾å­˜ã«ãªã‚‹ç‚¹ã¯ã‚ã‚Šã¾ã›ã‚“。</li>
+<li>char/short/longã®ã‚µã‚¤ã‚ºã¯ã€ãã‚Œãžã‚Œ8/16/32ビットã§ã€intã¯16ã¾ãŸã¯32ビットã§ã‚ã‚‹ã“ã¨ã€‚<br>
+ã“ã‚Œã«ã¤ã„ã¦ã‚‚ã€ã¾ã£ã¨ã†ãªå‡¦ç†ç³»ãªã‚‰å•é¡Œãªã„ã¯ãšã§ã™ã€‚FatFsモジュールã§ä½¿ç”¨ã•ã‚Œã‚‹ã‚µã‚¤ã‚ºã‚’明示ã™ã‚‹æ•´æ•°åž‹ãŒ integer.h 内ã§å®šç¾©ã•ã‚Œã¦ã„ã¾ã™ãŒã€æ—¢å­˜ã®å®šç¾©ã¨è¡çªã—ãŸå ´åˆã¯ãƒ¦ãƒ¼ã‚¶ã«ã‚ˆã£ã¦è§£æ±ºã•ã‚Œãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。</li>
+</ul>
+
+<h4>システム構æˆ</h4>
+<p>下ã«ç¤ºã™ä¾å­˜é–¢ä¿‚図ã¯ã€FatFsモジュール利用ã®çµ„ã¿è¾¼ã¿ã‚·ã‚¹ãƒ†ãƒ ã«ãŠã‘る代表的ãªæ§‹æˆã‚’示ã—ã¾ã™ã€‚</p>
+<p><img src="../img/modules.png" width="580" height="280" alt="システム構æˆå›³"></p>
+<p>(a) FatFs用ã«æ›¸ã‹ã‚ŒãŸãƒ‡ã‚£ã‚¹ã‚¯ãƒ»ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã‚ã‚‹å ´åˆã¯ã€ãã®ã¾ã¾è¿½åŠ ã™ã‚‹ã ã‘ã§ã™ã€‚ (b) ã—ã‹ã—ã€å¤šãã®æ—¢å­˜ã®ãƒ‡ã‚£ã‚¹ã‚¯ãƒ»ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯ãã®APIã‚’FatFsã«åˆã‚ã›ã‚‹ãŸã‚ã€ã‚°ãƒ«ãƒ¼é–¢æ•°ãŒå¿…è¦ã«ãªã‚‹ã§ã—ょã†ã€‚</p>
+<p><img src="../img/funcs.png" width="680" height="430" alt="functional diagram"></p>
+
+<h4>ユーザã®ä½œæˆã™ã‚‹é–¢æ•°</h4>
+<p>å¿…è¦ãªã®ã¯FatFsモジュールã®è¦æ±‚ã™ã‚‹ãƒ‡ã‚£ã‚¹ã‚¯é–¢æ•°ã‚’用æ„ã™ã‚‹ã“ã¨ã ã‘ã§ã€ãれ以外ã«ã™ã‚‹ã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“。既ã«å‹•ä½œã—ã¦ã„るディスク・モジュールãŒã‚ã‚‹ãªã‚‰ã€ãã®APIã‚’FatFsã«åˆã‚ã›ã‚‹ã‹ã‚°ãƒ«ãƒ¼é–¢æ•°ã‚’介ã—ã¦ã¤ãªãã ã‘ã§æ¸ˆã¿ã¾ã™ãŒã€ç„¡ã„å ´åˆã¯ã»ã‹ã‹ã‚‰ç§»æ¤ã™ã‚‹ã‹æœ€åˆã‹ã‚‰æ›¸ãã‹ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚定義ã•ã‚Œã¦ã„ã‚‹å…¨ã¦ã®é–¢æ•°ãŒå¸¸ã«å¿…è¦ãªã‚ã‘ã§ã¯ã‚ã‚Šã¾ã›ã‚“。例ãˆã°ã€ãƒªãƒ¼ãƒ‰ãƒ»ã‚ªãƒ³ãƒªãƒ¼æ§‹æˆã§ã¯æ›¸ãè¾¼ã¿ç³»é–¢æ•°ã¯å¿…è¦ã‚ã‚Šã¾ã›ã‚“。次ã®è¡¨ã«æ§‹æˆã‚ªãƒ—ションã¨è¦æ±‚ã•ã‚Œã‚‹é–¢æ•°ã®å¯¾å¿œã‚’示ã—ã¾ã™ã€‚</p>
+<table class="lst2">
+<tr><th>å¿…è¦ãªé–¢æ•°</th><th>å¿…è¦ã¨ãªã‚‹æ¡ä»¶</th><th>備考</th></tr>
+<tr><td>disk_status<br>disk_initialize<br>disk_read</td><td>常時</td><td rowspan="5">ffsample.zip (サンプル)<br>ãã®ä»–web上ã«å¤šæ•°</td></tr>
+<tr><td>disk_write<br>get_fattime<br>disk_ioctl (CTRL_SYNC)</td><td>_FS_READONLY == 0</td></tr>
+<tr><td>disk_ioctl (GET_SECTOR_COUNT)<br>disk_ioctl (GET_BLOCK_SIZE)</td><td>_USE_MKFS == 1</td></tr>
+<tr><td>disk_ioctl (GET_SECTOR_SIZE)</td><td>_MAX_SS != _MIN_SS</td></tr>
+<tr><td>disk_ioctl (CTRL_ERASE_SECTOR)</td><td>_USE_ERASE == 1</td></tr>
+<tr><td>ff_convert<br>ff_wtoupper</td><td>_USE_LFN &gt;= 1</td><td>option/unicode.c</td></tr>
+<tr><td>ff_cre_syncobj<br>ff_rel_grant<br>ff_req_grant<br>ff_del_syncobj</td><td>_FS_REENTRANT == 1</td><td rowspan="2">option/syscall.c (サンプル)</td></tr>
+<tr><td>ff_mem_alloc<br>ff_mem_free</td><td>_USE_LFN == 3</td></tr>
+</table>
+</div>
+
+<div class="para" id="limits">
+<h3>é™ç•Œå€¤</h3>
+<ul>
+<li>FATタイプ: FAT12, FAT16, FAT32。</li>
+<li>åŒæ™‚オープン・ファイル数: 無制é™ã€‚(利用å¯èƒ½ãƒ¡ãƒ¢ãƒªã«ã‚ˆã‚‹)</li>
+<li>ボリューム数: 最大 10。</li>
+<li>ファイル・サイズ: FATè¦æ ¼ã«ä¾å­˜ã€‚(最大 4G-1ãƒã‚¤ãƒˆ)</li>
+<li>ボリューム・サイズ: FATè¦æ ¼ã«ä¾å­˜ã€‚(最大 2Tãƒã‚¤ãƒˆ(512ãƒã‚¤ãƒˆ/セクタ時))</li>
+<li>クラスタ・サイズ: FATè¦æ ¼ã«ä¾å­˜ã€‚(最大 64Kãƒã‚¤ãƒˆ(512ãƒã‚¤ãƒˆ/セクタ時))</li>
+<li>セクタ・サイズ: FATè¦æ ¼ã«ä¾å­˜ã€‚(512~4096ãƒã‚¤ãƒˆ)</li>
+</ul>
+</div>
+
+<div class="para" id="memory">
+<h3>メモリ使用é‡</h3>
+<p>次ã®è¡¨ã«ã„ãã¤ã‹ã®ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã«ãŠã‘るメモリ使用é‡ã®ä¾‹ã‚’示ã—ã¾ã™ã€‚テスト時ã®æ§‹æˆã‚ªãƒ—ションã¯ãã®ä¸‹ã®é€šã‚Šã§ã™ã€‚数値ã®å˜ä½ã¯ãƒã‚¤ãƒˆã§ã€<em>V</em>ã¯ãƒœãƒªãƒ¥ãƒ¼ãƒ æ•°ã€<em>F</em>ã¯åŒæ™‚オープン・ファイル数を示ã—ã¾ã™ã€‚コンパイラã®æœ€é©åŒ–オプションã¯ã‚³ãƒ¼ãƒ‰ãƒ»ã‚µã‚¤ã‚ºã¨ã—ã¦ã„ã¾ã™ã€‚</p>
+<table class="lst2">
+<tr><th></th><th>ARM7<small><br>32bit</small></th><th>ARM7<small><br>Thumb</small></th><th>CM3<small><br>Thumb-2</small></th><th>AVR</th><th>H8/300H</th><th>PIC24</th><th>RL78</th><th>V850ES</th><th>SH-2A</th><th>RX600</th><th>IA-32</th></tr>
+<tr class="cal"> <td>Compiler</td><td>GCC</td><td>GCC</td><td>GCC</td><td>GCC</td><td>CH38</td><td>C30</td><td>CC78K0R</td><td>CA850</td><td>SHC</td><td>RXC</td><td>VC6</td></tr>
+<tr class="cal"> <td>_WORD_ACCESS</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>1</td><td>1</td></tr>
+<!-- ARM Thumb CM3 AVR H8 PIC24 RL78 V850ES SH-2A RX600 IA-32 -->
+<tr class="lst3 ral"><td class="cal">text (Full, R/W)</td><td>10675</td><td>7171</td><td>6617</td><td>13355</td><td>10940</td><td>11722</td><td>13262</td><td>8113</td><td>9048</td><td>6032</td><td>7952</td></tr>
+<tr class="ral"> <td class="cal">text (Min, R/W)</td> <td>6727</td><td>4631</td><td>4331</td> <td>8569</td> <td>7262</td> <td>7720</td> <td>9088</td><td>5287</td><td>5800</td><td>3948</td><td>5183</td></tr>
+<tr class="ral"> <td class="cal">text (Full, R/O)</td> <td>4731</td><td>3147</td><td>2889</td> <td>6235</td> <td>5170</td> <td>5497</td> <td>6482</td><td>3833</td><td>3972</td><td>2862</td><td>3719</td></tr>
+<tr class="ral"> <td class="cal">text (Min, R/O)</td> <td>3559</td><td>2485</td><td>2295</td> <td>4575</td> <td>4064</td> <td>4240</td> <td>5019</td><td>2993</td><td>3104</td><td>2214</td><td>2889</td></tr>
+<tr class="ral"> <td class="cal">bss</td><td>V*4 + 2</td><td>V*4 + 2</td><td>V*4 + 2</td><td>V*2 + 2</td><td>V*4 + 2</td><td>V*2 + 2</td><td>V*2 + 2</td><td>V*4 + 2</td><td>V*4 + 2</td><td>V*4 + 2</td><td>V*4 + 2</td></tr>
+<tr class="ral"> <td class="cal">Work area<br>(_FS_TINY == 0)</td><td>V*560<br>+ F*550</td><td>V*560<br>+ F*550</td><td>V*560<br>+ F*550</td><td>V*560<br>+ F*544</td><td>V*560<br>+ F*550</td><td>V*560<br>+ F*544</td><td>V*560<br>+ F*544</td><td>V*560<br>+ F*544</td><td>V*560<br>+ F*550</td><td>V*560<br>+ F*550</td><td>V*560<br>+ F*550</td></tr>
+<tr class="ral"> <td class="cal">Work area<br>(_FS_TINY == 1)</td><td>V*560<br>+ F*36</td><td>V*560<br>+ F*36</td><td>V*560<br>+ F*36</td><td>V*560<br>+ F*32</td><td>V*560<br>+ F*36</td><td>V*560<br>+ F*32</td><td>V*560<br>+ F*32</td><td>V*560<br>+ F*36</td><td>V*560<br>+ F*36</td><td>V*560<br>+ F*36</td><td>V*560<br>+ F*36</td></tr>
+</table>
+<pre>
+FatFs R0.10a options:
+_FS_READONLY 0 (R/W) or 1 (R/O)
+_FS_MINIMIZE 0 (Full function) or 3 (Minimized function)
+_USE_STRFUNC 0 (Disable string functions)
+_USE_MKFS 0 (Disable f_mkfs function)
+_USE_FORWARD 0 (Disable f_forward function)
+_USE_FASTSEEK 0 (Disable fast seek feature)
+_CODE_PAGE 932 (Japanese Shift-JIS)
+_USE_LFN 0 (Disable LFN feature)
+_MAX_SS 512 (Fixed sector size)
+_FS_RPATH 0 (Disable relative path feature)
+_FS_LABEL 0 (Disable volume label functions)
+_VOLUMES V (Number of logical drives to be used)
+_MULTI_PARTITION 0 (Single partition per drive)
+_FS_REENTRANT 0 (Disable thread safe)
+_FS_LOCK 0 (Disable file lock control)
+</pre>
+</div>
+
+<div class="para" id="reduce">
+<h3>モジュール・サイズã®ç¸®å°</h3>
+<p>次ã®è¡¨ã¯æ§‹æˆã‚ªãƒ—ションã®è¨­å®šå€¤ã«ã‚ˆã‚Šã©ã®æ©Ÿèƒ½ãŒå‰Šé™¤ã•ã‚Œã‚‹ã‹ã‚’示ã—ã¾ã™ã€‚</p>
+<table class="lst2">
+<tr><td rowspan="2">Function</td><td colspan="4">_FS_MINIMIZE</td><td colspan="2">_FS_READONLY</td><td colspan="2">_USE_STRFUNC</td><td colspan="3">_FS_RPATH</td><td colspan="2">_FS_LABEL</td><td colspan="2">_USE_MKFS</td><td colspan="2">_USE_FORWARD</td><td colspan="2">_MULTI_PARTITION</td></tr>
+<tr><td>0</td><td>1</td><td>2</td><td>3</td><td>0</td><td>1</td><td>0&nbsp;&nbsp;</td><td>1/2</td><td>0</td><td>1</td><td>2</td><td>0</td><td>1</td><td>0</td><td>1</td><td>0</td><td>1</td><td>0/1</td><td>2</td></tr>
+<tr class="lst3"><td>f_mount</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_open</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_close</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_read</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_write</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_sync</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_lseek</td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_opendir</td><td></td><td></td><td>x</td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_closedir</td><td></td><td></td><td>x</td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_readdir</td><td></td><td></td><td>x</td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_stat</td><td></td><td>x</td><td>x</td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_getfree</td><td></td><td>x</td><td>x</td><td>x</td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_truncate</td><td></td><td>x</td><td>x</td><td>x</td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_unlink</td><td></td><td>x</td><td>x</td><td>x</td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_mkdir</td><td></td><td>x</td><td>x</td><td>x</td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_chmod</td><td></td><td>x</td><td>x</td><td>x</td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_utime</td><td></td><td>x</td><td>x</td><td>x</td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_rename</td><td></td><td>x</td><td>x</td><td>x</td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_chdir</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_chdrive</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_getcwd</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>x</td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_getlabel</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_setlabel</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_forward</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td></tr>
+<tr><td>f_mkfs</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_fdisk</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td>x</td><td></td></tr>
+<tr><td>f_putc</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_puts</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_printf</td><td></td><td></td><td></td><td></td><td></td><td>x</td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td>f_gets</td><td></td><td></td><td></td><td></td><td></td><td></td><td>x</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+</table>
+</div>
+
+<div class="para" id="lfn">
+<h3>é•·ã„ファイルå</h3>
+<p>FatFsモジュールã¯ã€é•·ã„ファイルå(LFN)をサãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ファイルã«ä»˜ã‘られãŸ2ã¤ã®ç•°ãªã‚‹åå‰(短ã„ファルåã¨é•·ã„ファイルå)ã¯ã€<tt>f_readdir()</tt>を除ãファイルæ“作関数ã«ãŠã„ã¦é€éŽã§ã™ã€‚デフォルト構æˆã§ã¯ã€LFN機能ã¯OFFã«ãªã£ã¦ã„ã¾ã™ã€‚LFN機能を有効ã«ã™ã‚‹ã«ã¯ã€<tt>_USE_LFN</tt>ã‚’1,2ã¾ãŸã¯3ã«è¨­å®šã—ã€<tt>option/unicode.c</tt>をプロジェクトã«è¿½åŠ ã—ã¾ã™ã€‚LFN機能ã¯ã€åŠ ãˆã¦ã‚る程度ã®ãƒ¯ãƒ¼ã‚¯ãƒ»ã‚¨ãƒªã‚¢(LFNæ“作ãƒãƒƒãƒ•ã‚¡)ã‚’å¿…è¦ã¨ã—ã¾ã™ã€‚ãƒãƒƒãƒ•ã‚¡é•·ã¯ä½¿ç”¨ã§ãるメモリã«å¿œã˜ã¦<tt>_MAX_LFN</tt>オプションã§æ§‹æˆã•ã‚Œã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚LFNã®é•·ã•ã¯æœ€å¤§255文字ã«é”ã™ã‚‹ã®ã§ã€LFN完全対応ã®ãŸã‚ã«ã¯<tt>_MAX_LFN</tt>ã¯255ã«è¨­å®šã•ã‚Œã‚‹ã¹ãã§ã™ã€‚与ãˆã‚‰ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«åã«å¯¾ã—ã¦ãƒãƒƒãƒ•ã‚¡é•·ãŒä¸è¶³ã—ãŸå ´åˆã€ãƒ•ã‚¡ã‚¤ãƒ«é–¢æ•°ã¯<tt>FR_INVALID_NAME</tt>ã§å¤±æ•—ã—ã¾ã™ã€‚</p>
+<p>ファイル関数ã«å†å…¥ã‚’è¡Œã†æ¡ä»¶ã®ä¸‹ã§LFN機能を使用ã™ã‚‹å ´åˆã¯ã€<tt>_USE_LFN</tt>ã¯2ã¾ãŸã¯3ã«è¨­å®šã•ã‚Œãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。ã“ã®å ´åˆã€ãƒ•ã‚¡ã‚¤ãƒ«é–¢æ•°ã¯ãƒ¯ãƒ¼ã‚¯ãƒ»ã‚¨ãƒªã‚¢ã‚’å‹•çš„ã«ç¢ºä¿(スタックã¾ãŸã¯ãƒ’ープ)ã—ã¾ã™ã€‚ãƒãƒƒãƒ•ã‚¡ãƒ»ã‚µã‚¤ã‚ºã¯ã€<tt>(_MAX_LFN + 1) * 2</tt>ãƒã‚¤ãƒˆã«ãªã‚‹ã®ã§ã€ã‚¹ã‚¿ãƒƒã‚¯ç­‰ã®ã‚µã‚¤ã‚ºã¯ãれを考慮ã—ãŸå分ãªã‚µã‚¤ã‚ºã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。</p>
+<table class="lst2 rset">
+<caption>LFN cfg on ARM7</caption>
+<tr><th>コードページ</th><th>コードサイズ[bytes]</th></tr>
+<tr><td>SBCS</td><td>+3721</td></tr>
+<tr><td>932(Shift-JIS)</td><td>+62609</td></tr>
+<tr><td>936(GBK)</td><td>+177797</td></tr>
+<tr><td>949(Korean)</td><td>+139857</td></tr>
+<tr><td>950(Big5)</td><td>+111497</td></tr>
+</table>
+<p>LFN機能ã®ä¸Šæ‰‹ãªä½¿ã„æ–¹ã¯ã€ãれを使ã‚ãªã„ã¨ã„ã†ã“ã¨ã§ã™ã€‚実際ã€çµ„ã¿è¾¼ã¿ç”¨é€”ã§ã¯LFN機能ãŒã©ã†ã—ã¦ã‚‚å¿…è¦ã«ãªã‚‹ã¨ã„ã†ã“ã¨ã¯ã»ã¨ã‚“ã©ç„¡ã„ã¯ãšã§ã™ã€‚LFNを有効ã«ã™ã‚‹ã¨ã€é¸æŠžã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ãƒ»ãƒšãƒ¼ã‚¸ã«å¿œã˜ã¦ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãƒ»ã‚µã‚¤ã‚ºãŒå¢—大ã•ã‚Œã¾ã™ã€‚å³ã®è¡¨ã«å„コード・ページã«ãŠã‘ã‚‹LFNを有効ã«ã—ãŸã¨ãã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãƒ»ã‚µã‚¤ã‚ºã®é•ã„を示ã—ã¾ã™ã€‚特ã«ã€CJK地域ã§ã¯æ•°ä¸‡ã®æ–‡å­—ãŒä½¿ã‚ã‚Œã¦ã„ã¾ã™ãŒã€ä¸å¹¸ãªã“ã¨ã«ãã‚Œã¯å·¨å¤§ãªOEMï¼Unicode相互変æ›ãƒ†ãƒ¼ãƒ–ルをè¦æ±‚ã—ã€ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãƒ»ã‚µã‚¤ã‚ºã¯åŠ‡çš„ã«å¢—大ã•ã‚Œã¾ã™ã€‚ãã®çµæžœã€ãれらã®ã‚³ãƒ¼ãƒ‰ãƒ»ãƒšãƒ¼ã‚¸ã«ãŠã„ã¦LFNを有効ã«ã—ãŸFatFsモジュールã¯ã€AVRã‚’å«ã‚€æ®†ã©ã®8ビット・マイコンã«ã‚¤ãƒ³ãƒ—リメントã•ã‚Œã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。</p>
+<p>LFN機能ã®ãƒãƒ¼ãƒ‰ãƒ«ã¯ãã‚Œã ã‘ã§ã¯ã‚ã‚Šã¾ã›ã‚“。マイクロソフト社ã¯FATファイル・システムã«ã¤ã„ã¦ã„ãã¤ã‹ã®ç‰¹è¨±ã‚’ä¿æœ‰ã—ã¦ã„ã¾ã™ã€‚ã„ãšã‚Œã‚‚LFN機能ã®å®Ÿè£…ã«é–¢ã™ã‚‹ã‚‚ã®ã§ã€ãã®åˆ©ç”¨ã«å¯¾ã—ã¦$0.25/unitã®ãƒ©ã‚¤ã‚»ãƒ³ã‚¹æ–™ã‚’è¦æ±‚ã—ã¦ã„ã¾ã™ã€‚ã“ã®ãŸã‚ã€å•†ç”¨è£½å“ã§LFN機能を利用ã™ã‚‹ã¨ãã¯ã€æœ€çµ‚仕å‘地ã«ã‚ˆã£ã¦ã¯ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ãŒå¿…è¦ã«ãªã‚Šã¾ã™ã€‚最近ã®FAT32ドライãƒã®å¤šãã¯LFN機能をå«ã‚“ã§ã„ã‚‹ãŸã‚ã€ãれらã®ä½¿ç”¨ã«å½“ãŸã£ã¦ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ãŒå¿…è¦ã«ãªã‚Šã¾ã™ãŒã€FatFsã§ã¯LFN機能を構æˆã‚ªãƒ—ションã§ä»»æ„ã«ON/OFFã§ãã‚‹ãŸã‚ã€ç„¡åŠ¹ã«ã—ã¦ãƒ©ã‚¤ã‚»ãƒ³ã‚¹å•é¡Œã‚’回é¿ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚</p>
+</div>
+
+<div class="para" id="jap">
+<h3>日本語ファイルåã®å¤§æ–‡å­—変æ›</h3>
+<p>CP932(Shift_JIS)ã§ã‹ã¤éžLFN構æˆã®ã¨ãã¯ã€æ‹¡å¼µæ–‡å­—ã®å°æ–‡å­—(2ãƒã‚¤ãƒˆè‹±å­—・キリル文字・ギリシャ文字)ã«å¯¾ã—ã¦å¤§æ–‡å­—変æ›ã‚’è¡Œã‚ãšã€å°æ–‡å­—ã®ã¾ã¾SFNエントリã«è¨˜éŒ²ãƒ»æ¤œç´¢ã•ã‚Œã¾ã™(日本語MSDOS仕様)。ã“ã®ãŸã‚ã€éžLFN構æˆã§å…¨è§’å°æ–‡å­—ã‚’å«ã‚€ãƒ•ã‚¡ã‚¤ãƒ«ã‚’作æˆã™ã‚‹ã¨ã€NTç³»Windowsã§ãã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é–‹ã‘ãªããªã‚Šã¾ã™ã€‚LFN構æˆã§ã¯å¤§æ–‡å­—変æ›ã‚’è¡Œã„ã¾ã™(NTç³»Windows仕様)。</p>
+</div>
+
+<div class="para" id="unicode">
+<h3>Unicode入出力ã¸ã®å¯¾å¿œ</h3>
+<p>FatFs API上ã«ãŠã‘るファイルåç­‰ã®æ–‡å­—列データã®å…¥å‡ºåŠ›ã¯ã€ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ã¯ANSI/OEMコードã§è¡Œã‚ã‚Œã¾ã™ãŒã€ã“れをUnicode(UTF-16)ã«åˆ‡ã‚Šæ›¿ãˆã‚‹ã“ã¨ã‚‚ã§ãã¾ã™(<tt>_LFN_UNICODE</tt>オプションã§è¨­å®š)。ã¤ã¾ã‚Šã€ã“ã‚Œã¯FatFsãŒLFN機能ã«å®Œå…¨å¯¾å¿œã—ã¦ã„ã‚‹ã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚Unicodeã®ãƒ•ã‚¡ã‚¤ãƒ«åã«é–¢ã™ã‚‹è©³ç´°ã¯ã€<a href="filename.html">ファイルå</a>ã‚’å‚ç…§ã—ã¦ãã ã•ã„。</p>
+</div>
+
+<div class="para" id="reentrant">
+<h3>リエントランシー</h3>
+<p>互ã„ã«ç•°ãªã‚‹ãƒœãƒªãƒ¥ãƒ¼ãƒ ã«å¯¾ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«æ“作ã¯ãƒªã‚¨ãƒ³ãƒˆãƒ©ãƒ³ãƒˆã§ã€å¸¸ã«åŒæ™‚平行ã«å‹•ä½œã§ãã¾ã™ã€‚åŒã˜ãƒœãƒªãƒ¥ãƒ¼ãƒ ã«å¯¾ã—ã¦ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ã¯ãƒªã‚¨ãƒ³ãƒˆãƒ©ãƒ³ãƒˆã§ã¯ã‚ã‚Šã¾ã›ã‚“ãŒã€<tt>_FS_REENTRANT</tt>オプションã§ãƒªã‚¨ãƒ³ãƒˆãƒ©ãƒ³ãƒˆ(スレッド・セーフ)ã«ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã™ã€‚ã“ã®å ´åˆã€OSä¾å­˜ã®åŒæœŸã‚ªãƒ–ジェクトæ“作関数<tt>ff_cre_syncobj(), ff_del_syncobj(), ff_req_grant(), ff_rel_grant()</tt>ã‚‚ã¾ãŸãƒ—ロジェクトã«è¿½åŠ ã•ã‚Œãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。サンプル・コードã¨è§£èª¬ã¯<tt>option/syncobj.c</tt>ã«ã‚ã‚Šã¾ã™ã€‚</p>
+<p>ã“ã®å ´åˆã€ã‚るタスクãŒãƒœãƒªãƒ¥ãƒ¼ãƒ ã‚’使用中ã«ä»–ã®ã‚¿ã‚¹ã‚¯ã‹ã‚‰ãã®ãƒœãƒªãƒ¥ãƒ¼ãƒ ã«å¯¾ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«é–¢æ•°ãŒå‘¼ã³å‡ºã•ã‚Œã‚‹ã¨ã€ãã®ã‚¢ã‚¯ã‚»ã‚¹ã¯å…ˆã®ã‚¿ã‚¹ã‚¯ãŒãƒ•ã‚¡ã‚¤ãƒ«é–¢æ•°ã‚’抜ã‘ã‚‹ã¾ã§ãƒ–ロックã•ã‚Œã¾ã™ã€‚ã‚‚ã—ã€å¾…ã¡æ™‚é–“ãŒ<tt>_TIMEOUT</tt>ã§æŒ‡å®šã•ã‚ŒãŸæœŸé–“を越ã™ã¨ã€ãã®é–¢æ•°ã¯<tt>FR_TIMEOUT</tt>ã§ã‚¢ãƒœãƒ¼ãƒˆã—ã¾ã™ã€‚ã„ãã¤ã‹ã®RTOSã§ã¯ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆæ©Ÿèƒ½ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œãªã„ã‹ã‚‚知れã¾ã›ã‚“。</p>
+<p>ã²ã¨ã¤ã®ä¾‹å¤–ãŒ<tt>f_mount(), f_mkfs(), f_fdisk()</tt>ã«ã‚ã‚Šã¾ã™ã€‚ã“れらã®é–¢æ•°ã¯åŒã˜ãƒœãƒªãƒ¥ãƒ¼ãƒ (ã¾ãŸã¯é–¢é€£ã™ã‚‹ç‰©ç†ãƒ‰ãƒ©ã‚¤ãƒ–)ã«å¯¾ã—ã¦ãƒªã‚¨ãƒ³ãƒˆãƒ©ãƒ³ãƒˆã§ã¯ã‚ã‚Šã¾ã›ã‚“。ã“れらã®é–¢æ•°ã‚’使用ã™ã‚‹ã¨ãã¯ã€ã‚¢ãƒ—リケーション・レベルã§æŽ’他制御ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。</p>
+<p>注: ã“ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã¯FatFsモジュールãれ自体ã®ãƒªã‚¨ãƒ³ãƒˆãƒ©ãƒ³ã‚·ãƒ¼ã«ã¤ã„ã¦èª¬æ˜Žã—ã¦ã„ã¾ã™ã€‚ãã®ä¸‹ä½ã®ãƒ‡ã‚£ã‚¹ã‚¯I/Oモジュールã®ãƒªã‚¨ãƒ³ãƒˆãƒ©ãƒ³ã‚·ãƒ¼ã«é–¢ã—ã¦ã¯ä½•ã®å‰æã‚‚ã‚ã‚Šã¾ã›ã‚“。</p>
+</div>
+
+<div class="para" id="dup">
+<h3>多é‡ãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ã‚¢ã‚¯ã‚»ã‚¹</h3>
+<p>FatFsモジュールã§ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ã¯å¤šé‡ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡æ©Ÿèƒ½ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“。ファイルã«å¯¾ã™ã‚‹å¤šé‡ã‚¢ã‚¯ã‚»ã‚¹ã¯ã€ãã®ã‚¢ã‚¯ã‚»ã‚¹ãƒ»ãƒ¢ãƒ¼ãƒ‰ã«ã‚ˆã£ã¦åˆ¶é™ã•ã‚Œã¾ã™ã€‚一ã¤ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«å¯¾ã™ã‚‹å¤šé‡ã‚ªãƒ¼ãƒ—ンã¯ã€ãれらãŒå…¨ã¦ãƒªãƒ¼ãƒ‰ãƒ»ãƒ¢ãƒ¼ãƒ‰ã®ã¨ãã«é™ã£ã¦è¨±å¯ã•ã‚Œã¾ã™ã€‚書ãè¾¼ã¿ãƒ¢ãƒ¼ãƒ‰ã‚’å«ã‚€å¤šé‡ã‚ªãƒ¼ãƒ—ンã€ã¾ãŸé–‹ã‹ã‚Œã¦ã„るファイルã«å¯¾ã™ã‚‹ãƒªãƒãƒ¼ãƒ ã‚„削除を行ã£ã¦ã¯ãªã‚Šã¾ã›ã‚“。ã•ã‚‚ãªã„ã¨ã€ãã®ãƒœãƒªãƒ¥ãƒ¼ãƒ ã®FAT構造ãŒç ´å£Šã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚</p>
+<p><tt>_FS_LOCK</tt>ã«1以上ã®å€¤(値ã¯åŒæ™‚ã«ç®¡ç†ã§ãるファイル数)をセットã™ã‚‹ã“ã¨ã§å¤šé‡ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡æ©Ÿèƒ½ãŒæœ‰åŠ¹ã«ãªã‚Šã€ãƒ•ã‚¡ã‚¤ãƒ«å˜ä½ã®ã‚¢ã‚¯ã‚»ã‚¹åˆ¶å¾¡ã‚’自動ã§è¡Œã†ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ã“ã®å ´åˆã€ä¸Šè¨˜ã®ãƒ«ãƒ¼ãƒ«ã‚’ç ´ã£ãŸã‚ªãƒ¼ãƒ—ン・リãƒãƒ¼ãƒ ãƒ»å‰Šé™¤ã‚’試ã¿ã‚‹ã¨ã€ãã®é–¢æ•°ã¯<tt>FR_LOCKED</tt>ã§å¤±æ•—ã—ã¾ã™ã€‚ã¾ãŸã€<tt>_FS_LOCK</tt>を越ãˆã‚‹æ•°ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚„サブ・ディレクトリをåŒæ™‚ã«ã‚ªãƒ¼ãƒ—ンã—よã†ã¨ã™ã‚‹ã¨ã€<tt>FR_TOO_MANY_OPEN_FILES</tt>ã§å¤±æ•—ã—ã¾ã™ã€‚</p>
+</div>
+
+<div class="para" id="fs1">
+<h3>効率的ãªãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ã‚¢ã‚¯ã‚»ã‚¹</h3>
+<p>å°è¦æ¨¡ãªçµ„込システムã§ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®èª­ã¿æ›¸ãã«ãŠã‘る効率ã®è‰¯ã„アクセスã®ãŸã‚ã€ã‚¢ãƒ—リケーション・プログラマã¯FatFsモジュールã®ä¸­ã§ã©ã®ã‚ˆã†ãªå‡¦ç†ãŒè¡Œã‚ã‚Œã¦ã„ã‚‹ã‹è€ƒæ…®ã™ã¹ãã§ã™ã€‚ストレージ上ã®ãƒ‡ãƒ¼ã‚¿ã¯<tt>f_read()</tt>ã«ã‚ˆã‚Šæ¬¡ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã§è»¢é€ã•ã‚Œã¾ã™ã€‚</p>
+<p>図1. セクタ・ミスアラインド・リード (ショート)<br>
+<img src="../img/f1.png" width="490" height="110" alt="fig.1">
+</p>
+<p>図2. セクタ・ミスアラインド・リード (ロング)<br>
+<img src="../img/f2.png" width="490" height="140" alt="fig.2">
+</p>
+<p>図3. セクタ・アラインド・リード<br>
+<img src="../img/f3.png" width="490" height="119" alt="fig.3">
+</p>
+<p>ファイルI/Oãƒãƒƒãƒ•ã‚¡ã¯ã‚»ã‚¯ã‚¿ã®ä¸€éƒ¨ã®ãƒ‡ãƒ¼ã‚¿ã‚’読ã¿æ›¸ãã™ã‚‹ãŸã‚ã®ã‚»ã‚¯ã‚¿ãƒ»ãƒãƒƒãƒ•ã‚¡ã‚’æ„味ã—ã¾ã™ã€‚セクタ・ãƒãƒƒãƒ•ã‚¡ã¯ã€ãã‚Œãžã‚Œã®ãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ã‚ªãƒ–ジェクト内ã®ãƒ—ライベート・セクタ・ãƒãƒƒãƒ•ã‚¡ã¾ãŸã¯ãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ã‚·ã‚¹ãƒ†ãƒ ãƒ»ã‚ªãƒ–ジェクト内ã®å…±æœ‰ã‚»ã‚¯ã‚¿ãƒ»ãƒãƒƒãƒ•ã‚¡ã®ã©ã¡ã‚‰ã‹ã§ã™ã€‚ãƒãƒƒãƒ•ã‚¡æ§‹æˆã‚ªãƒ—ションã®<tt>_FS_TINY</tt>ã¯ã€ãƒ‡ãƒ¼ã‚¿è»¢é€ã«ã©ã¡ã‚‰ã‚’使ã†ã‹ã‚’決定ã—ã¾ã™ã€‚タイニー・ãƒãƒƒãƒ•ã‚¡(1)ãŒé¸æŠžã•ã‚Œã‚‹ã¨ãƒ‡ãƒ¼ã‚¿ãƒ»ãƒ¡ãƒ¢ãƒªã®æ¶ˆè²»ã¯ãã‚Œãžã‚Œã®ãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ã‚ªãƒ–ジェクトã§512ãƒã‚¤ãƒˆæ¸›å°‘ã•ã‚Œã¾ã™ã€‚ã“ã®å ´åˆã€FatFsモジュールã¯ãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ãƒ‡ãƒ¼ã‚¿ã®è»¢é€ã¨FAT/ディレクトリ・アクセスã«ãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ã‚·ã‚¹ãƒ†ãƒ ãƒ»ã‚ªãƒ–ジェクト内ã®ã‚»ã‚¯ã‚¿ãƒ»ãƒãƒƒãƒ•ã‚¡ã ã‘を使用ã—ã¾ã™ã€‚タイニー・ãƒãƒƒãƒ•ã‚¡ã®æ¬ ç‚¹ã¯ã€ã‚»ã‚¯ã‚¿ãƒ»ãƒãƒƒãƒ•ã‚¡ã«ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã•ã‚ŒãŸFATデータãŒãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ãƒ‡ãƒ¼ã‚¿ã®è»¢é€ã«ã‚ˆã‚Šå¤±ã‚ã‚Œã€ã‚¯ãƒ©ã‚¹ã‚¿å¢ƒç•Œã®æ¯Žã«ãƒªãƒ­ãƒ¼ãƒ‰ã•ã‚Œãªã‘ã‚Œã°ãªã‚‰ãªã„ã“ã¨ã§ã™ã€‚ã§ã‚‚ã€æ‚ªããªã„性能ã¨å°‘ãªã„メモリ消費ã®è¦–点ã‹ã‚‰å¤šãã®ã‚¢ãƒ—リケーションã«é©ã™ã‚‹ã§ã—ょã†ã€‚</p>
+<p>図1ã¯ã‚»ã‚¯ã‚¿ã®ä¸€éƒ¨ã®ãƒ‡ãƒ¼ã‚¿ãŒãƒ•ã‚¡ã‚¤ãƒ«I/Oãƒãƒƒãƒ•ã‚¡ã‚’経由ã§è»¢é€ã•ã‚Œã‚‹ã“ã¨ã‚’示ã—ã¾ã™ã€‚図2ã«ç¤ºã•ã‚Œã‚‹é•·ã„データã®è»¢é€ã§ã¯ã€è»¢é€ãƒ‡ãƒ¼ã‚¿ã®ä¸­é–“ã®1セクタã¾ãŸã¯ãれ以上ã®ã‚»ã‚¯ã‚¿ã«ã¾ãŸãŒã‚‹è»¢é€ãƒ‡ãƒ¼ã‚¿ãŒã‚¢ãƒ—リケーション・ãƒãƒƒãƒ•ã‚¡ã«ç›´æŽ¥è»¢é€ã•ã‚Œã¦ã„ã¾ã™ã€‚図3ã¯è»¢é€ãƒ‡ãƒ¼ã‚¿å…¨ä½“ãŒã‚»ã‚¯ã‚¿å¢ƒç•Œã«ã‚¢ãƒ©ã‚¤ãƒ¡ãƒ³ãƒˆã•ã‚Œã¦ã„ã‚‹å ´åˆã‚’示ã—ã¦ã„ã¾ã™ã€‚ã“ã®å ´åˆã€ãƒ•ã‚¡ã‚¤ãƒ«I/Oãƒãƒƒãƒ•ã‚¡ã¯ä½¿ç”¨ã•ã‚Œã¾ã›ã‚“。直接転é€ã«ãŠã„ã¦ã¯æœ€å¤§ã®ç¯„囲ã®ã‚»ã‚¯ã‚¿ãŒ<tt>disk_read()</tt>ã§ä¸€åº¦ã«èª­ã¿è¾¼ã¾ã‚Œã¾ã™ãŒã€ã‚¯ãƒ©ã‚¹ã‚¿å¢ƒç•Œã‚’越ãˆã‚‹ãƒžãƒ«ãƒãƒ»ã‚»ã‚¯ã‚¿è»¢é€ã¯ãã‚ŒãŒéš£æŽ¥ã§ã‚ã£ã¦ã‚‚è¡Œã‚ã‚Œã¾ã›ã‚“。</p>
+<p>ã“ã®ã‚ˆã†ã«ã€ã‚»ã‚¯ã‚¿ã«ã‚¢ãƒ©ã‚¤ãƒ¡ãƒ³ãƒˆã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã®èª­ã¿æ›¸ãã¸ã®é…æ…®ã¯ãƒãƒƒãƒ•ã‚¡çµŒç”±ã®ãƒ‡ãƒ¼ã‚¿è»¢é€ã‚’é¿ã‘ã€èª­ã¿æ›¸ã性能ã¯æ”¹å–„ã•ã‚Œã‚‹ã§ã—ょã†ã€‚ãã®åŠ¹æžœã«åŠ ãˆã€ã‚¿ã‚¤ãƒ‹ãƒ¼æ§‹æˆã§ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã•ã‚ŒãŸFATデータãŒãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ãƒ‡ãƒ¼ã‚¿ã®è»¢é€ã«ã‚ˆã‚Šãƒ•ãƒ©ãƒƒã‚·ãƒ¥ã•ã‚Œãšã€éžã‚¿ã‚¤ãƒ‹ãƒ¼æ§‹æˆã¨åŒã˜æ€§èƒ½ã‚’å°ã•ãªãƒ¡ãƒ¢ãƒªãƒ»ãƒ•ãƒƒãƒˆãƒ—リントã§é”æˆã§ãã¾ã™ã€‚</p>
+</div>
+
+<div class="para" id="fs2">
+<h3>フラッシュ・メモリã®ç‰¹æ€§ã¸ã®é…æ…®</h3>
+<p>HDDãªã©ã®ãƒ‡ã‚£ã‚¹ã‚¯ãƒ»ãƒ¡ãƒ‡ã‚£ã‚¢ã¨ã¯ç•°ãªã‚Šã€SDCã‚„CFCãªã©ã®ãƒ•ãƒ©ãƒƒã‚·ãƒ¥ãƒ»ãƒ¡ãƒ¢ãƒªãƒ»ãƒ¡ãƒ‡ã‚£ã‚¢ã®æ€§èƒ½ã‚’引ã出ã™ã«ã¯ã€ãã®ç‰¹æ€§ã‚’æ„è­˜ã—ãŸåˆ¶å¾¡ãŒå¿…è¦ã«ãªã‚Šã¾ã™ã€‚</p>
+<h4>マルãƒãƒ»ã‚»ã‚¯ã‚¿æ›¸ãè¾¼ã¿</h4>
+<div class="rset">
+図6. マルãƒ/シングル・セクタ・ライトã®æ¯”較<br>
+<img src="../img/f6.png" width="630" height="148" alt="fig.6">
+</div>
+<p>フラッシュ・メモリ・メディアã®æ›¸ãè¾¼ã¿é€Ÿåº¦ã¯ã‚·ãƒ³ã‚°ãƒ«ãƒ»ã‚»ã‚¯ã‚¿æ›¸ãè¾¼ã¿ã®æ™‚ã«æœ€ã‚‚低ã„ã‚‚ã®ã«ãªã‚Šã€ä¸€å›žã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã§è»¢é€ã•ã‚Œã‚‹ã‚»ã‚¯ã‚¿æ•°ãŒå¤§ãããªã‚‹ã»ã©æ›¸ãè¾¼ã¿é€Ÿåº¦ã¯å‘上ã—ã¾ã™ã€‚ã“ã®åŠ¹æžœã¯ãƒã‚¹é€Ÿåº¦ãŒé«˜é€Ÿã«ãªã‚‹ã»ã©é¡•è‘—ã§ã€10å€ä»¥ä¸Šã®å·®ãŒç¾ã‚Œã‚‹ã“ã¨ã‚‚çã—ãã‚ã‚Šã¾ã›ã‚“。<a href="../img/rwtest2.png">テストçµæžœ</a>ã¯ã€ãƒžãƒ«ãƒãƒ»ã‚»ã‚¯ã‚¿æ›¸ãè¾¼ã¿(W:16K, 32 sectors)ãŒã‚·ãƒ³ã‚°ãƒ«ãƒ»ã‚»ã‚¯ã‚¿æ›¸ãè¾¼ã¿(W:100, 1 sector)よりã©ã®ç¨‹åº¦é€Ÿã„ã‹ã‚’明確ã«ç¤ºã—ã¦ã„ã¾ã™ã€‚大容é‡ãƒ¡ãƒ‡ã‚£ã‚¢ã»ã©ã‚·ãƒ³ã‚°ãƒ«ãƒ»ã‚»ã‚¯ã‚¿æ›¸ãè¾¼ã¿ãŒé…ããªã‚‹ç‚¹ã‚‚ã¾ãŸé‡è¦ã§ã™ã€‚書ãè¾¼ã¿ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã®å›žæ•°ã¯ã¾ãŸã€ãƒ¡ãƒ‡ã‚£ã‚¢ã®å¯¿å‘½ã«ã‚‚影響ã—ã¦ãã¾ã™ã€‚ã“ã®ãŸã‚ã€ã‚¢ãƒ—リケーションã¯ãªã‚‹ã¹ã大ããªãƒ–ロック(クラスタ・サイズã¾ãŸã¯2ã®ç´¯ä¹—セクタ境界ã«ã‚¢ãƒ©ã‚¤ãƒ¡ãƒ³ãƒˆã—ãŸ)ã§èª­ã¿æ›¸ãã‚’è¡Œã†å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ã‚‚ã¡ã‚ã‚“ã€ã‚¢ãƒ—リケーションã‹ã‚‰ãƒ¡ãƒ‡ã‚£ã‚¢ã«è‡³ã‚‹å…¨ã¦ã®ãƒ¬ã‚¤ãƒ¤ãŒãƒžãƒ«ãƒãƒ»ã‚»ã‚¯ã‚¿è»¢é€ã«å¯¾å¿œã—ã¦ã„ãªã„ã¨æ„味ãŒã‚ã‚Šã¾ã›ã‚“。残念ãªãŒã‚‰ã€æ—¢å­˜ã®ã‚ªãƒ¼ãƒ—ン・ソースã®ãƒ‰ãƒ©ã‚¤ãƒã®å¤šãã¯ãƒžãƒ«ãƒãƒ»ã‚»ã‚¯ã‚¿è»¢é€ã«æœªå¯¾å¿œã§ã™ã€‚ãªãŠã€FatFsモジュールãŠã‚ˆã³ã‚µãƒ³ãƒ—ル・ドライãƒã¯ãƒžãƒ«ãƒãƒ»ã‚»ã‚¯ã‚¿è»¢é€ã«å¯¾å¿œã—ã¦ã„ã¾ã™ã€‚</p>
+<h4>明示的ãªãƒ¡ãƒ¢ãƒªæ¶ˆåŽ»</h4>
+<p>通常ã®ãƒ•ã‚¡ã‚¤ãƒ«æ¶ˆåŽ»ã§ã¯ã€è¨˜éŒ²ã•ã‚ŒãŸãƒ‡ãƒ¼ã‚¿ã«å¯¾ã—ã¦ä½•ã‚‰ã‹ã®åˆ¶å¾¡ãŒè¡Œã‚れるã‚ã‘ã§ã¯ãªãã€å˜ã«FAT上ã«æœªä½¿ç”¨ã‚¯ãƒ©ã‚¹ã‚¿ã¨ã—ã¦è¨˜éŒ²ã•ã‚Œã¦ã„ã‚‹ã ã‘ã§ã™ã€‚ã“ã®ãŸã‚ã€ãƒ•ã‚¡ã‚¤ãƒ«ãŒæ¶ˆåŽ»ã•ã‚ŒãŸã‚ã¨ã‚‚ãれらã¯æœ‰åŠ¹ãªãƒ¡ãƒ¢ãƒªãƒ»ãƒ–ロックã¨ã—ã¦ãƒ•ãƒ©ãƒƒã‚·ãƒ¥ãƒ»ãƒ¡ãƒ¢ãƒªä¸Šã«æ®‹ã‚Šã¾ã™ã€‚ãã“ã§ã€ãƒ•ã‚¡ã‚¤ãƒ«ã‚’消去ã™ã‚‹ã¨ãã€å æœ‰ã—ã¦ã„ãŸãƒ‡ãƒ¼ã‚¿ãƒ»ã‚»ã‚¯ã‚¿ã‚’明示的ã«æ¶ˆåŽ»(ã¤ã¾ã‚Šæœªä½¿ç”¨ãƒ–ロックã«ã™ã‚‹)ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€ãƒ¡ãƒ‡ã‚£ã‚¢å†…ã®ç©ºãブロックを増やã™ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã‚Œã«ã‚ˆã‚Šã€æ¬¡ã«ãã®ãƒ–ロックã«æ›¸ã込むã¨ãã®æ¶ˆåŽ»å‹•ä½œãŒç„¡ããªã‚Šã€æ›¸ãè¾¼ã¿æ€§èƒ½ãŒå‘上ã™ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚ã¾ãŸã€ã‚¦ã‚§ã‚¢ãƒ¬ãƒ™ãƒªãƒ³ã‚°ã«ä½¿ãˆã‚‹ãƒ–ロックãŒå¢—ãˆã€ãƒ¡ãƒ‡ã‚£ã‚¢ã®è€ä¹…性もå‘上ã™ã‚‹ã‹ã‚‚知れã¾ã›ã‚“。ã“ã®æ©Ÿèƒ½ã‚’有効ã«ã™ã‚‹ã«ã¯ã€æ§‹æˆã‚ªãƒ—ションã®<tt>_USE_ERASE</tt>ã«1を設定ã—ã¾ã™ã€‚ã“ã‚Œã¯ãƒ•ãƒ©ãƒƒã‚·ãƒ¥ãƒ»ãƒ¡ãƒ¢ãƒªãƒ»ãƒ¡ãƒ‡ã‚£ã‚¢ã®å†…部動作ã«æœŸå¾…ã—ãŸåˆ¶å¾¡ãªã®ã§ã€åŠ¹æžœãŒã‚ã‚‹ã¨ã¯é™ã‚Šã¾ã›ã‚“。ã¾ãŸã€ãƒ•ã‚¡ã‚¤ãƒ«æ¶ˆåŽ»ã®æ™‚é–“ãŒå»¶ã³ã‚‹ã“ã¨ã‚‚考慮ã«å…¥ã‚Œã‚‹ã¹ãã§ã™ã€‚</p>
+</div>
+
+<div class="para" id="critical">
+<h3>クリãƒã‚«ãƒ«ãƒ»ã‚»ã‚¯ã‚·ãƒ§ãƒ³</h3>
+<p>ストレージ上ã®FAT構造をæ“作ã—ã¦ã„る途中ã§ã€åœé›»ã€ä¸æ­£ãªãƒ¡ãƒ‡ã‚£ã‚¢ã®å–り外ã—ã€å›žå¾©ä¸èƒ½ãªãƒ‡ãƒ¼ã‚¿ãƒ»ã‚¨ãƒ©ãƒ¼ç­‰ã®éšœå®³ãŒç™ºç”Ÿã™ã‚‹ã¨ã€å‡¦ç†ãŒä¸­é€”åŠç«¯ãªçŠ¶æ…‹ã§ä¸­æ–­ã•ã‚Œã€ãã®çµæžœã¨ã—ã¦FATボリュームã®æ§‹é€ ãŒç ´å£Šã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚次ã«FatFsモジュールã«ãŠã‘るクリãƒã‚«ãƒ«ãƒ»ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã¨ã€ãã®é–“ã®éšœå®³ã«ã‚ˆã‚Šèµ·ãã†ã‚‹ã‚¨ãƒ©ãƒ¼ã®çŠ¶æ…‹ã‚’示ã—ã¾ã™ã€‚</p>
+<div class="lset">
+図4. é•·ã„クリãƒã‚«ãƒ«ãƒ»ã‚»ã‚¯ã‚·ãƒ§ãƒ³<br>
+<img src="../img/f4.png" width="320" height="436" alt="fig.4">
+</div>
+<div class="lset">
+図5. 最å°åŒ–ã—ãŸã‚¯ãƒªãƒã‚«ãƒ«ãƒ»ã‚»ã‚¯ã‚·ãƒ§ãƒ³<br>
+<img src="../img/f5.png" width="320" height="436" alt="fig.5">
+</div>
+<br class="clr">
+<p>赤ã§ç¤ºã—ãŸã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’実行中ã«éšœå®³ãŒç™ºç”Ÿã—ãŸå ´åˆã€ã‚¯ãƒ­ã‚¹ãƒ»ãƒªãƒ³ã‚¯ãŒç™ºç”Ÿã—ã¦æ“作対象ã®ãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒå¤±ã‚れるå¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚黄色ã§ç¤ºã—ãŸã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’実行中ã«éšœå®³ãŒç™ºç”Ÿã—ãŸå ´åˆã€ã¤ãŽã®ã†ã¡ã„ãšã‚Œã‹ã¾ãŸã¯è¤‡æ•°ã®çµæžœãŒç”Ÿã˜ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚</p>
+<ul>
+<li>書ãæ›ãˆä¸­ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒ‡ãƒ¼ã‚¿ãŒç ´å£Šã•ã‚Œã‚‹ã€‚</li>
+<li>追記中ã®ãƒ•ã‚¡ã‚¤ãƒ«ãŒã‚ªãƒ¼ãƒ—ンå‰ã®çŠ¶æ…‹ã«æˆ»ã‚‹ã€‚</li>
+<li>æ–°è¦ã«ä½œæˆã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ãŒæ¶ˆãˆã‚‹ã€‚</li>
+<li>æ–°è¦ã¾ãŸã¯ä¸Šæ›¸ãã§ä½œæˆã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã®é•·ã•ãŒã‚¼ãƒ­ã«ãªã£ã¦æ®‹ã‚‹ã€‚</li>
+<li>ロストãƒã‚§ãƒ¼ãƒ³ã®ç™ºç”Ÿã«ã‚ˆã‚Šãƒœãƒªãƒ¥ãƒ¼ãƒ ã®åˆ©ç”¨åŠ¹çŽ‡ãŒæ‚ªåŒ–ã™ã‚‹ã€‚</li>
+</ul>
+<p>ã„ãšã‚Œã‚‚書ãè¾¼ã¿ä¸­ã‚„æ“作ã®å¯¾è±¡ã§ãªã„ファイルã«ã¯å½±éŸ¿ã¯ã‚ã‚Šã¾ã›ã‚“。ã“れらã®ã‚¯ãƒªãƒã‚«ãƒ«ãƒ»ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã¯ã€ãƒ•ã‚¡ã‚¤ãƒ«ã‚’書ãè¾¼ã¿ãƒ¢ãƒ¼ãƒ‰ã§é–‹ã„ã¦ã„る時間を最å°é™ã«ã™ã‚‹ã‹ã€<tt>f_sync()</tt>ã‚’é©å®œä½¿ç”¨ã™ã‚‹ã“ã¨ã§å›³5ã®ã‚ˆã†ã«ãƒªã‚¹ã‚¯ã‚’最å°åŒ–ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚</p>
+</div>
+
+<div class="para" id="fs3">
+<h3>APIã®æ‹¡å¼µçš„使用例</h3>
+<p>FatFs APIã®æ‹¡å¼µçš„使用例ã§ã™ã€‚有用ãªã‚³ãƒ¼ãƒ‰ãŒã‚ã£ãŸå ´åˆã¯ã€éšæ™‚追加ã—ã¦ã„ãã¾ã™ã€‚。</p>
+<ol>
+<li><a href="../img/app1.c">追記モードã§ã®ã‚ªãƒ¼ãƒ—ン/æ–°è¦ä½œæˆ</a></li>
+<li><a href="../img/app2.c">ディレクトリを空ã«ã™ã‚‹</a></li>
+<li><a href="../img/app3.c">ファイルã«é€£ç¶šé ˜åŸŸã‚’割り当ã¦ã‚‹</a></li>
+<li><a href="../img/app4.c">ディスクI/Oモジュールã®æ©Ÿèƒ½/互æ›æ€§ãƒã‚§ãƒƒã‚«ãƒ¼</a></li>
+<li><a href="../img/mkfatimg.zip">FATイメージ作æˆãƒ„ール</a></li>
+</ol>
+</div>
+
+<div class="para" id="license">
+<h3>FatFsã®ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã«ã¤ã„ã¦</h3>
+<p>ソース・ファイルã®ãƒ˜ãƒƒãƒ€ã«ãƒ©ã‚¤ã‚»ãƒ³ã‚¹æ¡ä»¶ãŒè¨˜è¿°ã•ã‚Œã¦ã„ã‚‹ã®ã§ã€åˆ©ç”¨ã®éš›ã¯ãã‚Œã«å¾“ã†ã“ã¨ã€‚英語を読ã‚ãªã„æ–¹ã®ãŸã‚ã«ä»¥ä¸‹ã«æ—¥æœ¬èªžè¨³ã‚’示ã—ã¦ãŠãã¾ã™ã€‚</p>
+<pre>/*----------------------------------------------------------------------------/
+/ FatFs - FAT file system module R0.10b (C)ChaN, 2014
+/-----------------------------------------------------------------------------/
+/ FatFsモジュールã¯ã€å°è¦æ¨¡ãªçµ„ã¿è¾¼ã¿ã‚·ã‚¹ãƒ†ãƒ å‘ã‘ã®æ±Žç”¨FATファイルシステム・
+/ モジュールã§ã™ã€‚ã“ã‚Œã¯ãƒ•ãƒªãƒ¼ãƒ»ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¨ã—ã¦ã€æ•™è‚²ãƒ»ç ”究・開発ã®ãŸã‚ã«
+/ 以下ã®ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ãƒ»ãƒãƒªã‚·ãƒ¼ã®ä¸‹ã§å…¬é–‹ã•ã‚Œã¦ã„ã¾ã™ã€‚
+/
+/ Copyright (C) 2014, ChaN, all right reserved.
+/
+/ * FatFsモジュールã¯ãƒ•ãƒªãƒ¼ãƒ»ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã§ã‚ã‚Šã€ã¾ãŸ<em>ç„¡ä¿è¨¼ã§ã™</em>。
+/ * 用途ã«åˆ¶é™ã¯ã‚ã‚Šã¾ã›ã‚“。<em>ã‚ãªãŸã®è²¬ä»»ã®ä¸‹ã«ãŠã„ã¦</em>ã€å€‹äººçš„・éžå–¶åˆ©çš„ãª
+/ ã‚‚ã®ã‹ã‚‰å•†ç”¨è£½å“ã®é–‹ç™ºã«åŠã¶ç›®çš„ã«ä½¿ç”¨ãƒ»æ”¹å¤‰ãƒ»å†é…布ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
+/ * ソース・コードをå†é…布ã™ã‚‹ã¨ãã¯ã€ä¸Šè¨˜ã®è‘—作権表示をä¿æŒã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。
+/
+/-----------------------------------------------------------------------------/</pre>
+<p>è¦ã™ã‚‹ã«FatFsã¯ã‚¿ãƒ€ã§è‡ªç”±ã«ä½¿ãˆã‚‹ã¨ã„ã†ã“ã¨ã§ã™ã€‚ソース・コードをå†é…布ã™ã‚‹ã¨ãã¯ã€ã“ã®ãƒ–ロックをãã®ã¾ã¾ä¿æŒã—ã¦ãŠãã“ã¨ã€‚ã“ã®ã‚ˆã†ã«FatFsã¯BSDライクãªãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã¨ã—ã¦ã„ã¾ã™ãŒã€ä¸€ã¤å¤§ããªé•ã„ãŒã‚ã‚Šã¾ã™ã€‚特ã«çµ„ã¿è¾¼ã¿ç”¨é€”ã§ã®åˆ©ç”¨ä¾¡å€¤ã‚’高ã‚ã‚‹ãŸã‚ã€ãƒã‚¤ãƒŠãƒªå½¢å¼(ソース・コードをå«ã¾ãªã„å½¢å¼å…¨ã¦)ã§ã®å†é…布ã«ã¤ã„ã¦ã¯ã€æ¡ä»¶ã¯è¨­ã‘ã¦ã„ã¾ã›ã‚“。ãã®å ´åˆã¯ã€FatFsãŠã‚ˆã³ãã®ãƒ©ã‚¤ã‚»ãƒ³ã‚¹æ–‡æ›¸ã«ã¤ã„ã¦ã¯ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã«æ˜Žè¨˜ã—ã¦ã‚‚ã—ãªãã¦ã‚‚ã‹ã¾ã„ã¾ã›ã‚“。ã“ã‚Œã¯ã€ä¸€æ¡é …BSDライセンスã¨ç­‰ä¾¡ã¨ã„ã†ã“ã¨ã§ã™ã€‚ã‚‚ã¡ã‚ã‚“GNU GPLプロジェクトã¨ã‚‚共存å¯èƒ½ã§ã™ã€‚何らã‹ã®å¤‰æ›´ã‚’加ãˆã¦å†é…布ã™ã‚‹éš›ã¯ã€çŸ›ç›¾ã—ãªã„ä»–ã®ãƒ©ã‚¤ã‚»ãƒ³ã‚¹(GNU GPLや修正BSDライセンスãªã©)ã«å¤‰æ›´ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚</p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">戻る</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/chdir.html b/3rdparty/fatfs-0.10b/doc/ja/chdir.html
new file mode 100644
index 00000000..f12f0c53
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/chdir.html
@@ -0,0 +1,81 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/chdir.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_chdir</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_chdir</h2>
+<p>ƒJƒŒƒ“ƒgEƒfƒBƒŒƒNƒgƒŠ‚ð•ÏX‚µ‚Ü‚·B</p>
+<pre>
+FRESULT f_chdir (
+ const TCHAR* <span class="arg">path</span> <span class="c">/* [IN] ƒfƒBƒŒƒNƒgƒŠ–¼‚ւ̃|ƒCƒ“ƒ^ */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>ˆÚ“®‘Îۂ̃fƒBƒŒƒNƒgƒŠ‚Ì<a href="filename.html">ƒpƒX–¼</a>‚ðŽ¦‚·ƒkƒ‹•¶Žš<tt>'\0'</tt>I’[‚Ì•¶Žš—ñ‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ok">FR_NO_FILE</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>Šeƒ{ƒŠƒ…[ƒ€‚̃JƒŒƒ“ƒgEƒfƒBƒŒƒNƒgƒŠ‚ð•ÏX‚µ‚Ü‚·BƒJƒŒƒ“ƒgEƒfƒBƒŒƒNƒgƒŠ‚ÍA‚»‚̃{ƒŠƒ…[ƒ€‚̃}ƒEƒ“ƒg“®ì‚ªs‚í‚ꂽ‚Æ‚«Aƒ‹[ƒgEƒfƒBƒŒƒNƒgƒŠ‚ɉŠúݒ肳‚ê‚Ü‚·BƒJƒŒƒ“ƒgEƒfƒBƒŒƒNƒgƒŠ‚ÍAƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚É•ÛŽ‚³‚ê‚邽‚ßA‚»‚̃{ƒŠƒ…[ƒ€‚ðŽg—p‚·‚é‘S‚Ẵ^ƒXƒN‚ɑ΂µ‚ĉe‹¿‚ð—^‚¦‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_RPATH == 1</tt>‚Ì‚Æ‚«‚ÉŽg—p‰Â”\‚Æ‚È‚è‚Ü‚·B</p>
+</div>
+
+
+<div class="para exa">
+<h4>Žg—p—á</h4>
+<pre>
+ <span class="c">/* ƒJƒŒƒ“ƒgEƒhƒ‰ƒCƒu‚̃JƒŒƒ“ƒgEƒfƒBƒŒƒNƒgƒŠ‚ð•ÏX (ƒ‹[ƒg‰º‚Ìdir1‚Ö) */</span>
+ f_chdir("/dir1");
+
+ <span class="c">/* ƒhƒ‰ƒCƒu2‚̃JƒŒƒ“ƒgEƒfƒBƒŒƒNƒgƒŠ‚ð•ÏX (eƒfƒBƒŒƒNƒgƒŠ‚Ö) */</span>
+ f_chdir("2:..");
+</pre>
+</div>
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="chdrive.html">f_chdrive</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/chdrive.html b/3rdparty/fatfs-0.10b/doc/ja/chdrive.html
new file mode 100644
index 00000000..32caf34b
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/chdrive.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/chdrive.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_chdrive</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_chdrive</h2>
+<p>ƒJƒŒƒ“ƒgEƒhƒ‰ƒCƒu‚ð•ÏX‚µ‚Ü‚·B</p>
+<pre>
+FRESULT f_chdrive (
+ const TCHAR* <span class="arg">path</span> <span class="c">/* [IN] ‘ÎÛƒhƒ‰ƒCƒu‚ðŽw’肵‚Ü‚· */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>ƒJƒŒƒ“ƒgEƒhƒ‰ƒCƒu‚ÉÝ’è‚·‚é<a href="filename.html">˜_—ƒhƒ‰ƒCƒu”Ô†</a>‚ðŽw’è‚·‚éƒpƒX–¼‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>ƒJƒŒƒ“ƒgEƒhƒ‰ƒCƒu‚ð•ÏX‚µ‚Ü‚·BƒVƒXƒeƒ€‹N“®Žž‚̉Šú’l‚̓hƒ‰ƒCƒu0‚Å‚·B‚±‚ÌÝ’è‚ÍFatFsƒ‚ƒWƒ…[ƒ‹‚ÌÓI•Ï”‚É‹L˜^‚³‚ê‚邽‚ßA‘S‚Ẵ^ƒXƒN‚ɑ΂µ‚ĉe‹¿‚ð—^‚¦‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_RPATH == 1</tt>‚ÅAŠŽ‚Â<tt>_VOLUMES &gt; 1</tt>‚Ì‚Æ‚«‚ÉŽg—p‰Â”\‚Æ‚È‚è‚Ü‚·B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="chdir.html">f_chdir</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/chmod.html b/3rdparty/fatfs-0.10b/doc/ja/chmod.html
new file mode 100644
index 00000000..ee7b012d
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/chmod.html
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/chmod.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_chmod</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_chmod</h2>
+<p>ƒtƒ@ƒCƒ‹‚Ü‚½‚̓TƒuEƒfƒBƒŒƒNƒgƒŠ‚Ì‘®«‚ð•ÏX‚µ‚Ü‚·B</p>
+<pre>
+FRESULT f_chmod (
+ const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] ƒIƒuƒWƒFƒNƒg–¼‚ւ̃|ƒCƒ“ƒ^ */</span>
+ BYTE <span class="arg">attr</span>, <span class="c">/* [IN] Ý’è’l */</span>
+ BYTE <span class="arg">mask</span> <span class="c">/* [IN] •ÏXƒ}ƒXƒN */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>‘®«•ÏX‘Îۂ̃IƒuƒWƒFƒNƒg‚Ì<a href="filename.html">ƒpƒX–¼</a>‚ðŽ¦‚·ƒkƒ‹•¶Žš<tt>'\0'</tt>I’[‚Ì•¶Žš—ñ‚ðŽw’肵‚Ü‚·B</dd>
+<dt>attr</dt>
+<dd>Ý’è‚·‚é‘®«BŽw’è‰Â”\‚È‘®«‚ÍŽŸ‚Ì’Ê‚è‚ÅA‚±‚ê‚ç‚Ì‘g‚݇‚킹‚ÅŽw’肵‚Ü‚·BŽw’肳‚ê‚È‚©‚Á‚½‘®«‚͉𜂳‚ê‚Ü‚·B<br>
+<table class="lst">
+<tr><th>’l</th><th>ˆÓ–¡</th></tr>
+<tr><td>AM_RDO</td><td>ƒŠ[ƒhEƒIƒ“ƒŠ[</td></tr>
+<tr><td>AM_ARC</td><td>ƒA[ƒJƒCƒu</td></tr>
+<tr><td>AM_SYS</td><td>ƒVƒXƒeƒ€</td></tr>
+<tr><td>AM_HID</td><td>ƒqƒhƒDƒ“</td></tr>
+</table>
+</dd>
+<dt>mask</dt>
+<dd>•ÏX‚·‚é‘®«‚̃}ƒXƒNBŽw’肵‚½‘®«‚ªÝ’è‚Ü‚½‚͉𜂳‚êAŽw’肳‚ê‚È‚©‚Á‚½‘®«‚Íó‘Ô‚ª•ÛŽ‚³‚ê‚Ü‚·B<tt class="arg">attr</tt>‚Æ“¯‚¶’l‚ðŽg‚¢‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ok">FR_NO_FILE</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#lo">FR_LOCKED</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_READONLY == 0</tt>‚ÅAŠŽ‚Â<tt>_FS_MINIMIZE == 0</tt>‚Ì‚Æ‚«Žg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para use">
+<h4>Žg—p—á</h4>
+<pre>
+ <span class="c">/* ƒŠ[ƒhƒIƒ“ƒŠ[‚ðƒZƒbƒgAƒA[ƒJƒCƒu‚ðƒNƒŠƒAA‚»‚Ì‘¼‚Í•ÏX‚µ‚È‚¢ */</span>
+ f_chmod("file.txt", AM_RDO, AM_RDO | AM_ARC);
+</pre>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/close.html b/3rdparty/fatfs-0.10b/doc/ja/close.html
new file mode 100644
index 00000000..968dd53b
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/close.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/close.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_close</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_close</h2>
+<p>ƒtƒ@ƒCƒ‹‚ð•Â‚¶‚Ü‚·B</p>
+<pre>
+FRESULT f_close (
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg‚ւ̃|ƒCƒ“ƒ^ */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>•Â‚¶‚悤‚Æ‚·‚éƒtƒ@ƒCƒ‹‚̃tƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>ƒtƒ@ƒCƒ‹‚ð•Â‚¶‚Ü‚·B‰½‚ç‚©‚Ì‘‚«ž‚Ý‚Ìs‚í‚ꂽƒtƒ@ƒCƒ‹‚Ìê‡AƒLƒƒƒbƒVƒ…‚³‚ꂽó‘Ô(ƒŠ[ƒh/ƒ‰ƒCƒgEƒoƒbƒtƒ@ã‚̃f[ƒ^A•ÏX‚³‚ꂽFAT‚âƒfƒBƒŒƒNƒgƒŠ€–Ú)‚̓fƒBƒXƒN‚É‘‚«–ß‚³‚ê‚Ü‚·BŠÖ”‚ª³íI—¹‚·‚é‚ÆA‚»‚̃tƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg‚Í–³Œø‚É‚È‚èA‚»‚̃ƒ‚ƒŠ‚à‰ð•ú‚Å‚«‚Ü‚·B</p>
+<p>ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg‚ª“Ç‚Ýo‚µê—pƒ‚[ƒh‚ÅA<tt>_FS_LOCK</tt>ƒIƒvƒVƒ‡ƒ“‚ª‘I‘ð‚³‚ê‚Ä‚¢‚È‚¢ê‡‚ÍAƒtƒ@ƒCƒ‹‚ð•Â‚¶‚¸‚Ƀtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg‚ð”jŠü‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·B‚µ‚©‚µA‚±‚ê‚Í«—ˆ‚̌݊·«‚Ì“_‚Å„§‚Í‚³‚ê‚Ü‚¹‚ñB</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p>‘S‚Ä‚Ì\¬‚ÅŽg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<tt><a href="open.html">f_open</a>, <a href="read.html">f_read</a>, <a href="write.html">f_write</a>, <a href="sync.html">f_sync</a>, <a href="sfile.html">FIL</a>, <a href="sfatfs.html">FATFS</a></tt>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/closedir.html b/3rdparty/fatfs-0.10b/doc/ja/closedir.html
new file mode 100644
index 00000000..7ab96072
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/closedir.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/close.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_closedir</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_closedir</h2>
+<p>ƒfƒBƒŒƒNƒgƒŠ‚ð•Â‚¶‚Ü‚·B</p>
+<pre>
+FRESULT f_closedir (
+ DIR* <span class="arg">dp</span> <span class="c">/* [IN] ƒfƒBƒŒƒNƒgƒŠEƒIƒuƒWƒFƒNƒg‚ւ̃|ƒCƒ“ƒ^ */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>dp</dt>
+<dd>•Â‚¶‚悤‚Æ‚·‚éƒfƒBƒŒƒNƒgƒŠ‚̃fƒBƒŒƒNƒgƒŠEƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>ƒfƒBƒŒƒNƒgƒŠ‚ð•Â‚¶‚Ü‚·BŠÖ”‚ª³íI—¹‚·‚é‚ÆA‚»‚̃fƒBƒŒƒNƒgƒŠEƒIƒuƒWƒFƒNƒg‚Í–³Œø‚É‚È‚èA‚»‚̃ƒ‚ƒŠ‚à‰ð•ú‚Å‚«‚Ü‚·B</p>
+<p><tt>_FS_LOCK</tt>ƒIƒvƒVƒ‡ƒ“‚ª‘I‘ð‚³‚ê‚Ä‚¢‚È‚¢ê‡‚ÍA‚±‚̈—‚ðs‚킸‚ɃfƒBƒŒƒNƒgƒŠEƒIƒuƒWƒFƒNƒg‚ð”jŠü‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·B‚µ‚©‚µA‚±‚ê‚Í«—ˆ‚̌݊·«‚Ì“_‚Å„§‚Í‚³‚ê‚Ü‚¹‚ñB</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_MINIMIZE &lt;= 1</tt>‚Ì‚Æ‚«Žg—p‰Â”\‚É‚È‚è‚Ü‚·B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<tt><a href="opendir.html">f_opendir</a>, <a href="readdir.html">f_readdir</a>, <a href="sdir.html">DIR</a></tt>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/dinit.html b/3rdparty/fatfs-0.10b/doc/ja/dinit.html
new file mode 100644
index 00000000..fd247a07
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/dinit.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/dinit.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - disk_initialize</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>disk_initialize</h2>
+<p>ƒXƒgƒŒ[ƒWEƒfƒoƒCƒX‚ð‰Šú‰»‚µ‚Ü‚·B</p>
+<pre>
+DSTATUS disk_initialize (
+ BYTE <span class="arg">pdrv</span> <span class="c">/* [IN] •¨—ƒhƒ‰ƒCƒu”Ô† */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>pdrv</dt>
+<dd>‘Îۂ̃fƒoƒCƒX‚ðŽ¦‚·•¨—ƒhƒ‰ƒCƒu”Ô†(0-9)‚ªŽw’肳‚ê‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>‚±‚ÌŠÖ”‚Í–ß‚è’l‚Æ‚µ‚ăfƒBƒXƒNEƒXƒe[ƒ^ƒX‚ð•Ô‚µ‚Ü‚·BƒfƒBƒXƒNEƒXƒe[ƒ^ƒX‚ÌÚׂɊւµ‚Ä‚Í<tt><a href="dstat.html">disk_status()</a></tt>‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B</p>
+</div>
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>ƒXƒgƒŒ[ƒWEƒfƒoƒCƒX‚ð‰Šú‰»‚µAƒf[ƒ^‚Ì“Ç‚Ý‘‚«‚È‚Ç‘S‚Ä‚Ì“®ì‚ª‰Â”\‚Èó‘Ô‚É‚µ‚Ü‚·BŠÖ”‚ª¬Œ÷‚·‚é‚ÆA–ß‚è’l‚Ì<tt>STA_NOINIT</tt>ƒtƒ‰ƒO‚ªƒNƒŠƒA‚³‚ê‚Ü‚·B</p>
+<p><em>ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚©‚ç‚Í‚±‚ÌŠÖ”‚ðŒÄ‚Ño‚µ‚Ä‚Í‚È‚è‚Ü‚¹‚ñB‚³‚à‚È‚¢‚ÆAFATƒ{ƒŠƒ…[ƒ€‚ª”j‰ó‚³‚ê‚é‰Â”\«‚ª‚ ‚è‚Ü‚·BƒGƒ‰[“™‚É‚æ‚èĉŠú‰»‚ª•K—v‚È‚Æ‚«‚ÍA<tt>f_mount()</tt>‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B</em>FatFsƒ‚ƒWƒ…[ƒ‹‚ÍAŽ©“®ƒ}ƒEƒ“ƒg“®ì‚É‚æ‚èA•K—v‚ɉž‚¶‚Ä‚±‚ÌŠÖ”‚ðŒÄ‚Ño‚µ‚Ü‚·B</p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/dioctl.html b/3rdparty/fatfs-0.10b/doc/ja/dioctl.html
new file mode 100644
index 00000000..d1d3eef4
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/dioctl.html
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/dioctl.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - disk_ioctl</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>disk_ioctl</h2>
+<p>ˆê”Ê“I‚ȃf[ƒ^“Ç‚Ý‘‚«ˆÈŠO‚̃XƒgƒŒ[ƒWEƒfƒoƒCƒXŽ©‘̂ɑ΂·‚é—lX‚ȧŒä‚ðs‚¢‚Ü‚·B</p>
+<pre>
+DRESULT disk_ioctl (
+ BYTE <span class="arg">pdrv</span>, <span class="c">/* [IN] •¨—ƒhƒ‰ƒCƒu”Ô† */</span>
+ BYTE <span class="arg">cmd</span>, <span class="c">/* [IN] §ŒäƒRƒ}ƒ“ƒh */</span>
+ void* <span class="arg">buff</span> <span class="c">/* [I/O] ƒf[ƒ^Žó‚¯“n‚µƒoƒbƒtƒ@ */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>pdrv</dt>
+<dd>‘Îۂ̃fƒoƒCƒX‚ðŽ¦‚·•¨—ƒhƒ‰ƒCƒu”Ô†(0-9)‚ªŽw’肳‚ê‚Ü‚·B</dd>
+<dt>cmd</dt>
+<dd>§ŒäƒRƒ}ƒ“ƒhEƒR[ƒh‚ªŽw’肳‚ê‚Ü‚·B</dd>
+<dt>buff</dt>
+<dd>§ŒäƒRƒ}ƒ“ƒh‚Ɉˑ¶‚µ‚½ƒpƒ‰ƒ[ƒ^‚ðŽöŽó‚·‚éƒoƒbƒtƒ@‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ªŽw’肳‚ê‚Ü‚·Bƒpƒ‰ƒ[ƒ^‚ÌŽöŽó‚Ì‚È‚¢ƒRƒ}ƒ“ƒh‚ÌꇂÍA’l‚ɈӖ¡‚Í‚ ‚è‚Ü‚¹‚ñB</dd>
+</dl>
+</div>
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<dl class="ret">
+<dt>RES_OK (0)</dt>
+<dd>³íI—¹B</dd>
+<dt>RES_ERROR</dt>
+<dd>‰½‚ç‚©‚̃Gƒ‰[‚ª”­¶‚µ‚½B</dd>
+<dt>RES_PARERR</dt>
+<dd>ƒRƒ}ƒ“ƒh‚ª•s³B</dd>
+<dt>RES_NOTRDY</dt>
+<dd>ƒhƒ‰ƒCƒu‚ª“®ì‰Â”\ó‘Ô‚Å‚Í‚È‚¢A‚Ü‚½‚͉Šú‰»‚³‚ê‚Ä‚¢‚È‚¢B</dd>
+</dl>
+</div>
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>ƒXƒgƒŒ[ƒWEƒfƒoƒCƒX‚ÌŽí—Þ‚É‚æ‚èƒTƒ|[ƒg‚³‚ê‚éƒRƒ}ƒ“ƒh‚͈قȂè‚Ü‚·‚ªAFatFsƒ‚ƒWƒ…[ƒ‹Ž©‘Ì‚ÍAŽŸ‚̔ėpƒRƒ}ƒ“ƒh‚Ì‚ÝŽg—p‚µA“Á’è‚̃fƒoƒCƒX‚Ɉˑ¶‚µ‚½§Œä‚Ís‚¢‚Ü‚¹‚ñB</p>
+<table class="lst">
+<caption>•W€ioctlƒRƒ}ƒ“ƒh</caption>
+<tr><th>ƒRƒ}ƒ“ƒh</th><th>‰ðà</th></tr>
+<tr><td>CTRL_SYNC</td><td>ƒXƒgƒŒ[ƒWEƒfƒoƒCƒX‚̃f[ƒ^‘‚«ž‚݈—‚ðŠ®—¹‚³‚¹‚Ü‚·Bƒ‰ƒCƒgEƒoƒbƒNEƒLƒƒƒbƒVƒ…‚È‚Ç‚ª‘¶Ý‚·‚éꇂÍA‘‚«ž‚Ü‚ê‚Ä‚¢‚È‚¢ƒf[ƒ^‚𑦎ž‘‚«ž‚Ý‚Ü‚·BƒƒfƒBƒAã‚Ö‚Ì‘‚«ž‚Ý‚ª‚»‚ꂼ‚ê<tt>disk_write()</tt>‚Ì“à‚ÅŠ®—¹‚·‚éꇂÍA‚±‚̃Rƒ}ƒ“ƒh‚ɑ΂µ‚Ä‚·‚邱‚Æ‚Í‚ ‚è‚Ü‚¹‚ñB</td></tr>
+<tr><td>GET_SECTOR_COUNT</td><td><tt class="arg">buff</tt>‚ÌŽw‚·<tt>DWORD</tt>Œ^•Ï”‚Ƀhƒ‰ƒCƒuã‚Ì‘ƒZƒNƒ^”‚ð•Ô‚µ‚Ü‚·B<tt>f_mkfs()</tt>‚¨‚æ‚Ñ<tt>f_fdisk()</tt>“à‚©‚çŒÄ‚Ño‚³‚êA쬂·‚éƒ{ƒŠƒ…[ƒ€‚̃TƒCƒY‚ðŒˆ’è‚·‚邽‚ß‚ÉŽg—p‚³‚ê‚Ü‚·B</td></tr>
+<tr><td>GET_SECTOR_SIZE</td><td><tt class="arg">buff</tt>‚ÌŽw‚·<tt>WORD</tt>Œ^•Ï”‚Ƀhƒ‰ƒCƒu‚̃ZƒNƒ^EƒTƒCƒY‚ð•Ô‚µ‚Ü‚·B—LŒø’l‚Í512A1024A2048‚Ü‚½‚Í4096‚Å‚·BƒZƒNƒ^EƒTƒCƒYŒÅ’è\¬(<tt>_MAX_SS ==_MIN_SS</tt>)‚Ì‚Æ‚«‚Í‚±‚̃Rƒ}ƒ“ƒh‚ÍŽg‚í‚ê‚邱‚Æ‚Í‚È‚­Aí‚É‚»‚̃ZƒNƒ^EƒTƒCƒY‚Å“®ì‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB</td></tr>
+<tr><td>GET_BLOCK_SIZE</td><td><tt class="arg">buff</tt>‚ÌŽw‚·<tt>DWORD</tt>Œ^•Ï”‚Ƀtƒ‰ƒbƒVƒ…Eƒƒ‚ƒŠ‚ÌÁ‹ŽƒuƒƒbƒNEƒTƒCƒY(ƒZƒNƒ^’PˆÊ)‚ð•Ô‚µ‚Ü‚·B1‚©‚ç32768‚͈̔͂Å2‚Ì—Ýæ‚Ì’l‚Å‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB•s–¾‚Èꇂ܂½‚̓tƒ‰ƒbƒVƒ…Eƒƒ‚ƒŠˆÈŠO‚̃ƒfƒBƒA‚Å‚Í1‚ð•Ô‚µ‚Ü‚·B<tt>f_mkfs()</tt>“à‚Å‚Ì‚ÝŽg—p‚³‚êAƒ{ƒŠƒ…[ƒ€‚̃f[ƒ^—̈æ‚Í‚±‚Ì‹«ŠE‚ɃAƒ‰ƒCƒƒ“ƒg‚³‚ê‚Ü‚·B</td></tr>
+<tr><td>CTRL_ERASE_SECTOR</td><td>ƒtƒ‰ƒbƒVƒ…Eƒƒ‚ƒŠã‚̗̈æ‚Ì–¾Ž¦“IÁ‹ŽB<tt class="arg">buff</tt>‚ÌŽw‚·<tt>DWORD</tt>Œ^”z—ñ‚É‚ÍÁ‹Ž‚·‚é—̈æ {ŠJŽnƒZƒNƒ^,I—¹ƒZƒNƒ^} ‚ðŽw’肵‚ČĂÑo‚³‚ê‚Ü‚·B<tt>_USE_ERASE</tt>‚ª1‚Ì‚Æ‚«AƒNƒ‰ƒXƒ^‚ª‰ð•ú‚³‚ê‚é‚Æ‚«‚ɌĂÑo‚³‚ê‚Ü‚·B‚±‚ê‚ÍAATAƒRƒ}ƒ“ƒhEƒZƒbƒg‚ÌTrimƒRƒ}ƒ“ƒh‚Æ“™‰¿‚ÅA‚±‚Ì‹@”\‚ðƒTƒ|[ƒg‚µ‚È‚¢ê‡‚͉½‚à‚·‚é•K—v‚Í‚ ‚è‚Ü‚¹‚ñB‚Ü‚½A–ß‚è’l‚̓`ƒFƒbƒN‚³‚ꂸAÁ‹Ž‚ªŠ®‘S‚És‚í‚ê‚È‚©‚Á‚½‚Æ‚µ‚Ä‚àFatFs‚Ì“®ì‚ɂ͉e‹¿‚ ‚è‚Ü‚¹‚ñB</td></tr>
+</table>
+
+<p>FatFsŽ©‘̂̓fƒoƒCƒXˆË‘¶ƒRƒ}ƒ“ƒh‚⃆[ƒU’è‹`ƒRƒ}ƒ“ƒh‚͈êØŽg—p‚µ‚Ü‚¹‚ñ‚ªAƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚©‚牽‚ç‚©‚̃fƒoƒCƒX§Œä‚ªs‚¦‚é‚Æ•Ö—˜‚È‚±‚Æ‚ª‚ ‚è‚Ü‚·BƒAƒvƒŠƒP[ƒVƒ‡ƒ“ã‚Å•W€ˆÈŠO‚̧Œä‚ª•K—v‚È‚Æ‚«‚ÍA•K—v‚ɉž‚¶‚ă†[ƒU’è‹`ƒRƒ}ƒ“ƒh‚ð’ljÁ‚µ‚Ä—˜—p‚·‚é‚Æ‚æ‚¢‚Å‚µ‚傤BŽŸ‚ɃRƒ}ƒ“ƒh‚Ì—á‚ðŽ¦‚µ‚Ü‚·B</p>
+<table class="lst">
+<caption>ƒ†[ƒU’è‹`ioctlƒRƒ}ƒ“ƒh‚Ì—á</caption>
+<tr><th>ƒRƒ}ƒ“ƒh</th><th>‰ðà</th></tr>
+<tr><td>CTRL_FORMAT</td><td>ƒƒfƒBƒA‚Ì•¨—ƒtƒH[ƒ}ƒbƒg‚ðs‚¢‚Ü‚·B<tt class="arg">buff</tt>‚ÍNULL‚Å‚È‚¢‚Æ‚«Ais•\Ž¦‚Ì‚½‚߂̃R[ƒ‹ƒoƒbƒNŠÖ”‚̃AƒhƒŒƒX‚ðŽ¦‚µ‚Ü‚·B</td></tr>
+<tr><td>CTRL_POWER_IDLE</td><td>ƒfƒoƒCƒX‚ðƒAƒCƒhƒ‹ó‘Ô‚É‚µ‚Ü‚·B’Êí‚Ì“Ç‚Ý‘‚«—v‹‚ŃAƒNƒeƒBƒuó‘Ô‚É–ß‚é‚È‚çA<tt>STA_NOINIT</tt>ƒtƒ‰ƒO‚ðƒZƒbƒg‚·‚é•K—v‚Í‚ ‚è‚Ü‚¹‚ñB</td></tr>
+<tr><td>CTRL_POWER_OFF</td><td>ƒfƒoƒCƒX‚ðƒVƒƒƒbƒgƒ_ƒEƒ“ó‘Ô‚É‚µ‚Ü‚·B<tt>STA_NOINIT</tt>‚̓Zƒbƒg‚³‚ê‚Ü‚·BƒfƒoƒCƒX‚Í<tt>disk_initialize()</tt>‚ŃAƒNƒeƒBƒuó‘Ô‚É–ß‚è‚Ü‚·B</td></tr>
+<tr><td>CTRL_LOCK</td><td>ƒ†[ƒU‚É‚æ‚郃fƒBƒA‚ÌŽæ‚èo‚µ‚ð‹ÖŽ~‚µ‚Ü‚·B</td></tr>
+<tr><td>CTRL_UNLOCK</td><td>ƒ†[ƒU‚É‚æ‚郃fƒBƒA‚ÌŽæ‚èo‚µ‚ð‹–‰Â‚µ‚Ü‚·B</td></tr>
+<tr><td>CTRL_EJECT</td><td>ƒƒfƒBƒA‚ð”ro‚µ‚Ü‚·BŠ®—¹ŒãA<tt>STA_NOINIT</tt>‚Æ<tt>STA_NODISK</tt>ƒtƒ‰ƒO‚̓Zƒbƒg‚³‚ê‚Ü‚·B</td></tr>
+<tr><td>MMC_GET_TYPE</td><td>ƒJ[ƒhEƒ^ƒCƒv‚ðŽ¦‚·ƒtƒ‰ƒO(b0:MMCv3, b1:SDv1, b2:SDv2+, b3:LBA)‚ð<tt class="arg">buff</tt>‚ÌŽ¦‚·<tt>BYTE</tt>•Ï”‚É“Ç‚Ýo‚µ‚Ü‚·B(MMC/SDƒJ[ƒhê—p)</td></tr>
+<tr><td>MMC_GET_CSD</td><td>CSDƒŒƒWƒXƒ^‚Ì“à—e‚ð<tt class="arg">buff</tt>‚ÌŽ¦‚·16ƒoƒCƒg‚̃oƒbƒtƒ@‚É“Ç‚Ýo‚µ‚Ü‚·B(MMC/SDƒJ[ƒhê—p)</td></tr>
+<tr><td>MMC_GET_CID</td><td>CIDƒŒƒWƒXƒ^‚Ì“à—e‚ð<tt class="arg">buff</tt>‚ÌŽ¦‚·16ƒoƒCƒg‚̃oƒbƒtƒ@‚É“Ç‚Ýo‚µ‚Ü‚·B(MMC/SDƒJ[ƒhê—p)</td></tr>
+<tr><td>MMC_GET_OCR</td><td>OCRƒŒƒWƒXƒ^‚Ì“à—e‚ð<tt class="arg">buff</tt>‚ÌŽ¦‚·4ƒoƒCƒg‚̃oƒbƒtƒ@‚É“Ç‚Ýo‚µ‚Ü‚·B(MMC/SDƒJ[ƒhê—p)</td></tr>
+<tr><td>MMC_GET_SDSTAT</td><td>SD STATUSƒŒƒWƒXƒ^‚Ì“à—e‚ð<tt class="arg">buff</tt>‚ÌŽ¦‚·64ƒoƒCƒg‚̃oƒbƒtƒ@‚É“Ç‚Ýo‚µ‚Ü‚·B(SDƒJ[ƒhê—p)</td></tr>
+<tr><td>ATA_GET_REV</td><td>ƒŠƒrƒWƒ‡ƒ“EƒR[ƒh‚ð<tt class="arg">buff</tt>‚ÌŽ¦‚·16ƒoƒCƒg‚̃oƒbƒtƒ@‚É“Ç‚Ýo‚µ‚Ü‚·B(ATA/CFƒJ[ƒhê—p)</td></tr>
+<tr><td>ATA_GET_MODEL</td><td>ƒ‚ƒfƒ‹EƒR[ƒh‚ð<tt class="arg">buff</tt>‚ÌŽ¦‚·40ƒoƒCƒg‚̃oƒbƒtƒ@‚É“Ç‚Ýo‚µ‚Ü‚·B(ATA/CFƒJ[ƒhê—p)</td></tr>
+<tr><td>ATA_GET_SN</td><td>ƒVƒŠƒAƒ‹”Ô†‚ð<tt class="arg">buff</tt>‚ÌŽ¦‚·20ƒoƒCƒg‚̃oƒbƒtƒ@‚É“Ç‚Ýo‚µ‚Ü‚·B(ATA/CFƒJ[ƒhê—p)</td></tr>
+</table>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p>ƒŠ[ƒhEƒIƒ“ƒŠ[\¬‚ÅA‚©‚ƒZƒNƒ^EƒTƒCƒYŒÅ’è\¬‚Ì‚Æ‚«‚ÍA‚±‚ÌŠÖ”‚Í•K—v‚Æ‚³‚ê‚Ü‚¹‚ñB</p>
+</div>
+
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/dread.html b/3rdparty/fatfs-0.10b/doc/ja/dread.html
new file mode 100644
index 00000000..89ffab47
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/dread.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/dread.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - disk_read</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>disk_read</h2>
+<p>ƒXƒgƒŒ[ƒWEƒfƒoƒCƒX‚©‚çƒf[ƒ^‚ð“Ç‚Ýo‚µ‚Ü‚·B</p>
+<pre>
+DRESULT disk_read (
+ BYTE <span class="arg">pdrv</span>, <span class="c">/* [IN] •¨—ƒhƒ‰ƒCƒu”Ô† */</span>
+ BYTE* <span class="arg">buff</span>, <span class="c">/* [OUT] “Ç‚Ýo‚µƒoƒbƒtƒ@‚ւ̃|ƒCƒ“ƒ^ */</span>
+ DWORD <span class="arg">sector</span>, <span class="c">/* [IN] “Ç‚Ýo‚µŠJŽnƒZƒNƒ^”Ô† */</span>
+ UINT <span class="arg">count</span> <span class="c">/* [IN] “Ç‚Ýo‚·ƒZƒNƒ^” */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>pdrv</dt>
+<dd>‘Îۂ̃fƒoƒCƒX‚ðŽ¦‚·•¨—ƒhƒ‰ƒCƒu”Ô†(0-9)‚ªŽw’肳‚ê‚Ü‚·B</dd>
+<dt>buff</dt>
+<dd>ƒXƒgƒŒ[ƒWEƒfƒoƒCƒX‚©‚ç“Ç‚Ýo‚µ‚½ƒf[ƒ^‚ðŠi”[‚·‚é<em>ƒoƒCƒg”z—ñ</em>‚ªŽw’肳‚ê‚Ü‚·B</dd>
+<dt>sector</dt>
+<dd>“Ç‚Ýo‚µ‚ðŠJŽn‚·‚éƒZƒNƒ^”Ô†BLBA‚ÅŽw’肳‚ê‚Ü‚·B</dd>
+<dt>count</dt>
+<dd>“Ç‚Ýo‚·ƒZƒNƒ^”BFatFs‚©‚ç‚̌ĂÑo‚µ‚Å‚Í1`128‚͈̔͂ɌÀ‚ç‚ê‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<dl class="ret">
+<dt>RES_OK (0)</dt>
+<dd>³íI—¹B</dd>
+<dt>RES_ERROR</dt>
+<dd>“Ç‚Ýž‚Ý’†‚ɃGƒ‰[‚ª”­¶‚µA‚»‚̉ñ•œ‚É‚àŽ¸”s‚µ‚½B</dd>
+<dt>RES_PARERR</dt>
+<dd>ƒpƒ‰ƒ[ƒ^‚ª•s³B</dd>
+<dt>RES_NOTRDY</dt>
+<dd>ƒhƒ‰ƒCƒu‚ª“®ì‰Â”\ó‘Ô‚Å‚Í‚È‚¢i‰Šú‰»‚³‚ê‚Ä‚¢‚È‚¢jB</dd>
+</dl>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p><tt class="arg">buff</tt>‚Í<tt>BYTE</tt>Œ^‚È‚Ì‚ÅAŽw’肳‚ê‚éƒAƒhƒŒƒX‚Í<em>í‚Ƀ[ƒhEƒAƒ‰ƒCƒƒ“ƒg‚³‚ê‚Ä‚¢‚é‚Æ‚ÍŒÀ‚è‚Ü‚¹‚ñ</em>B”ñƒAƒ‰ƒCƒƒ“ƒgEƒAƒhƒŒƒX‚Ö‚Ì“]‘—‚ÍA<a href="appnote.html#fs1">’¼Ú“]‘—</a>‚É‚¨‚¢‚Ä”­¶‚·‚邱‚Æ‚ª‚ ‚è‚Ü‚·B‚à‚µ‚àAƒn[ƒhƒEƒFƒAã‚̧–ñ‚Å‚»‚̂悤‚È“]‘—‚ª•s‰Â”\‚È‚Æ‚«‚ÍA‚±‚ÌŠÖ”“à‚Å“ñ’i“]‘—‚·‚é‚È‚Ç‚µ‚Ä‰ðŒˆ‚·‚é‚©A‚Ü‚½‚Í•Ê‚Ì•û–@‚őΉž‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñBŽŸ‚É‚¢‚­‚‚©‚̑Ήž•û–@‚ðŽ¦‚µ‚Ü‚·(‚¢‚¸‚ê‚©ˆê‚‚ÅOK)B</p>
+<ul>
+<li>‚±‚ÌŠÖ”“à‚Å‰ðŒˆ‚·‚é - „§</li>
+<li><tt>f_read()</tt>‚É‚¨‚¢‚ÄAƒZƒNƒ^‘S‘Ì‚ðŠÜ‚Þ“]‘—‚ð”ð‚¯‚é - ’¼Ú“]‘—‚ª”­¶‚µ‚È‚¢</li>
+<li><tt>f_read(fp, buff, btr, &amp;br)</tt>‚É‚¨‚¢‚ÄA<tt>(((UINT)buff &amp; 3) == (f_tell(fp) &amp; 3))</tt>‚ð–ž‘«‚³‚¹‚é - <tt class="arg">buff</tt>‚̃[ƒhEƒAƒ‰ƒCƒƒ“ƒg‚ª•ÛØ‚³‚ê‚é</li>
+</ul>
+<p>ˆê”Ê“I‚ÉA•¡”ƒZƒNƒ^‚Ì“]‘——v‹‚ÍAƒXƒgƒŒ[ƒWEƒfƒoƒCƒX‚ɑ΂µ‚ĉ”\‚ÈŒÀ‚èƒ}ƒ‹ƒ`EƒZƒNƒ^“]‘—‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB•¡”‚̃Vƒ“ƒOƒ‹EƒZƒNƒ^“Ç‚Ýo‚µ‚É•ª‰ð‚³‚ꂽê‡AƒXƒ‹[ƒvƒbƒg‚ª’ቺ‚·‚邱‚Æ‚ª‚ ‚è‚Ü‚·B</p>
+</div>
+
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/dstat.html b/3rdparty/fatfs-0.10b/doc/ja/dstat.html
new file mode 100644
index 00000000..7e338599
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/dstat.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/dstat.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - disk_status</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>disk_status</h2>
+<p>ƒXƒgƒŒ[ƒWEƒfƒoƒCƒX‚Ìó‘Ô‚ðŽæ“¾‚µ‚Ü‚·B</p>
+<pre>
+DSTATUS disk_status (
+ BYTE <span class="arg">pdrv</span> <span class="c">/* [IN] •¨—ƒhƒ‰ƒCƒu”Ô† */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>pdrv</dt>
+<dd>‘Îۂ̃fƒoƒCƒX‚ðŽ¦‚·•¨—ƒhƒ‰ƒCƒu”Ô†(0-9)‚ªŽw’肳‚ê‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>ƒXƒgƒŒ[ƒWEƒfƒoƒCƒX‚Ìó‘Ô‚ðŽŸ‚Ìƒtƒ‰ƒO‚Ì‘g‚݇‚킹’l‚Å•Ô‚µ‚Ü‚·B</p>
+<dl class="ret">
+<dt>STA_NOINIT</dt>
+<dd>ƒfƒoƒCƒX‚ª‰Šú‰»‚³‚ê‚Ä‚¢‚È‚¢‚±‚Æ‚ðŽ¦‚·ƒtƒ‰ƒOBƒVƒXƒeƒ€EƒŠƒZƒbƒg‚⃃fƒBƒA‚ÌŽæ‚èŠO‚µ“™‚ŃZƒbƒg‚³‚êA<tt>disk_initialize()</tt>‚̳íI—¹‚ŃNƒŠƒAAŽ¸”s‚ŃZƒbƒg‚³‚ê‚Ü‚·BƒƒfƒBƒAŒðŠ·‚Í”ñ“¯Šú‚É”­¶‚·‚éƒCƒxƒ“ƒg‚È‚Ì‚ÅA‰ß‹Ž‚ɃƒfƒBƒAŒðŠ·‚ª‚ ‚Á‚½ê‡‚à‚±‚̃tƒ‰ƒO‚É”½‰f‚³‚¹‚é•K—v‚ª‚ ‚è‚Ü‚·BFatFsƒ‚ƒWƒ…[ƒ‹‚ÍA‚±‚̃tƒ‰ƒO‚ðŽQÆ‚µ‚ÄŽ©“®ƒ}ƒEƒ“ƒg“®ì‚ðs‚¤‚©‚Ç‚¤‚©‚ð”»’f‚µ‚Ü‚·B</dd>
+<dt>STA_NODISK</dt>
+<dd>ƒƒfƒBƒA‚ª‘¶Ý‚µ‚È‚¢‚±‚Æ‚ðŽ¦‚·ƒtƒ‰ƒOBƒƒfƒBƒA‚ªŽæ‚èŠO‚³‚ê‚Ä‚¢‚éŠÔ‚̓Zƒbƒg‚³‚êAƒZƒbƒg‚³‚ê‚Ä‚¢‚éŠÔ‚̓NƒŠƒA‚³‚ê‚Ü‚·BŒÅ’èƒfƒBƒXƒN‚Å‚Íí‚ɃNƒŠƒA‚µ‚Ü‚·B‚È‚¨A‚±‚̃tƒ‰ƒO‚ÍFatFsƒ‚ƒWƒ…[ƒ‹‚Å‚ÍŽQÆ‚³‚ê‚Ü‚¹‚ñB</dd>
+<dt>STA_PROTECT</dt>
+<dd>ƒƒfƒBƒA‚ªƒ‰ƒCƒgEƒvƒƒeƒNƒg‚³‚ê‚Ä‚¢‚邱‚Æ‚ðŽ¦‚·ƒtƒ‰ƒOBƒ‰ƒCƒgEƒvƒƒeƒNƒg‹@”\‚ðƒTƒ|[ƒg‚µ‚È‚¢‚Æ‚«‚ÍAí‚ɃNƒŠƒA‚µ‚Ü‚·BƒŠ[ƒhEƒIƒ“ƒŠ\¬‚Å‚ÍŽQÆ‚³‚ê‚Ü‚¹‚ñB</dd>
+</dl>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/dwrite.html b/3rdparty/fatfs-0.10b/doc/ja/dwrite.html
new file mode 100644
index 00000000..dae5091f
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/dwrite.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/dwrite.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - disk_write</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>disk_write</h2>
+<p>ƒXƒgƒŒ[ƒWEƒfƒoƒCƒX‚Ƀf[ƒ^‚ð‘‚«ž‚Ý‚Ü‚·B</p>
+<pre>
+DRESULT disk_write (
+ BYTE <span class="arg">pdrv</span>, <span class="c">/* [IN] •¨—ƒhƒ‰ƒCƒu”Ô† */</span>
+ const BYTE* <span class="arg">buff</span>, <span class="c">/* [IN] ‘‚«ž‚Þƒf[ƒ^‚ւ̃|ƒCƒ“ƒ^ */</span>
+ DWORD <span class="arg">sector</span>, <span class="c">/* [IN] ‘‚«ž‚ÝŠJŽnƒZƒNƒ^”Ô† */</span>
+ UINT <span class="arg">count</span> <span class="c">/* [IN] ‘‚«ž‚ÞƒZƒNƒ^” */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>pdrv</dt>
+<dd>‘Îۂ̃fƒoƒCƒX‚ðŽ¦‚·•¨—ƒhƒ‰ƒCƒu”Ô†(0-9)‚ªŽw’肳‚ê‚Ü‚·B</dd>
+<dt>buff</dt>
+<dd>ƒXƒgƒŒ[ƒWEƒfƒoƒCƒX‚É‘‚«ž‚ÞƒZƒNƒ^Eƒf[ƒ^‚ªŠi”[‚³‚ꂽ<em>ƒoƒCƒg”z—ñ</em>‚ªŽw’肳‚ê‚Ü‚·BƒoƒCƒg”‚ÍAƒZƒNƒ^EƒTƒCƒY*<tt class="arg">count</tt>‚Æ‚È‚è‚Ü‚·B</dd>
+<dt>sector</dt>
+<dd>‘‚«ž‚Ý‚ðŠJŽn‚·‚éƒZƒNƒ^”Ô†BLBA‚ÅŽw’肳‚ê‚Ü‚·B</dd>
+<dt>count</dt>
+<dd>‘‚«ž‚ÞƒZƒNƒ^”BFatFs‚©‚ç‚̌ĂÑo‚µ‚Å‚Í1`128‚͈̔͂ɌÀ‚ç‚ê‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<dl class="ret">
+<dt>RES_OK (0)</dt>
+<dd>³íI—¹B</dd>
+<dt>RES_ERROR</dt>
+<dd>‘‚«ž‚Ý’†‚ɃGƒ‰[‚ª”­¶‚µA‚»‚̉ñ•œ‚É‚àŽ¸”s‚µ‚½B</dd>
+<dt>RES_WRPRT</dt>
+<dd>ƒƒfƒBƒA‚ª‘‚«ž‚Ý‹ÖŽ~ó‘ÔB</dd>
+<dt>RES_PARERR</dt>
+<dd>ƒpƒ‰ƒ[ƒ^‚ª•s³B</dd>
+<dt>RES_NOTRDY</dt>
+<dd>ƒfƒoƒCƒX‚ª“®ì‰Â”\ó‘Ô‚Å‚Í‚È‚¢i‰Šú‰»‚³‚ê‚Ä‚¢‚È‚¢jB</dd>
+</dl>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p><tt class="arg">buff</tt>‚ÉŽw’肳‚ê‚éƒAƒhƒŒƒX‚Í<em>í‚Ƀ[ƒhEƒAƒ‰ƒCƒƒ“ƒg‚³‚ê‚Ä‚¢‚é‚Æ‚ÍŒÀ‚è‚Ü‚¹‚ñ</em>BÚׂÍA<a href="dread.html"><tt>disk_read()</tt></a>‚̉ðà‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B</p>
+<p>ˆê”Ê“I‚ÉA•¡”ƒZƒNƒ^‚Ì“]‘——v‹‚ÍAƒfƒoƒCƒX‚ɑ΂µ‚ĉ”\‚ÈŒÀ‚èƒ}ƒ‹ƒ`EƒZƒNƒ^“]‘—‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB•¡”‚̃Vƒ“ƒOƒ‹EƒZƒNƒ^‘‚«ž‚Ý‚É•ª‰ð‚³‚ꂽê‡AƒXƒ‹[ƒvƒbƒg‚ª’˜‚µ‚­’ቺ‚·‚邱‚Æ‚ª‚ ‚è‚Ü‚·B</p>
+<p>FatFs‚̓fƒBƒXƒNŠÖ”‚ª’x‰„‘‚«ž‚Ý‹@”\‚ðŽ‚‚±‚Æ‚à‘z’肵‚Ä‚¢‚Ü‚·B‚±‚ÌŠÖ”‚©‚ç–ß‚é‚Æ‚«AƒfƒoƒCƒX‚ª‘‚«ž‚Ý’†‚Æ‚©ƒLƒƒƒbƒVƒ…‚É‘‚«ž‚܂ꂽ‚¾‚¯‚È‚ÇA•K‚¸‚µ‚àƒf[ƒ^‚Ì‘‚«ž‚Ý‚ªŠ®—¹‚µ‚Ä‚¢‚é•K—v‚Í‚ ‚è‚Ü‚¹‚ñB‚½‚¾‚µA<tt class="arg">buff</tt>‚̃f[ƒ^‚ÍA‚±‚ÌŠÖ”‚©‚ç–ß‚é‚Æ–³Œø‚Æ‚È‚è‚Ü‚·B‘‚«ž‚ÝŠ®—¹‚Ì—v‹‚ÍA<tt><a href="dioctl.html">disk_ioctl()</a></tt>‚Ì<tt>CTRL_SYNC</tt>ƒRƒ}ƒ“ƒh‚É‚æ‚Á‚Äs‚í‚ê‚Ü‚·B‚±‚̂悤‚È’x‰„‘‚«ž‚Ý‹@”\‚ªŽÀ‘•‚³‚ꂽê‡AƒXƒ‹[ƒvƒbƒg‚ð‚³‚ç‚ÉŒüコ‚¹‚邱‚Æ‚ª‚Å‚«‚Ü‚·B</p>
+<p><em>ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚©‚ç‚Í‚±‚ÌŠÖ”‚ðŒÄ‚Ño‚µ‚Ä‚Í‚È‚è‚Ü‚¹‚ñB‚³‚à‚È‚¢‚ÆAFATƒ{ƒŠƒ…[ƒ€‚ª”j‰ó‚³‚ê‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B</em></p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p>ƒŠ[ƒhEƒIƒ“ƒŠ[\¬(<tt>_FS_READONLY == 1</tt>)‚Å‚Í‚±‚ÌŠÖ”‚Í•K—v‚Æ‚³‚ê‚Ü‚¹‚ñB</p>
+</div>
+
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/eof.html b/3rdparty/fatfs-0.10b/doc/ja/eof.html
new file mode 100644
index 00000000..3a840545
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/eof.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/eof.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_eof</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_eof</h2>
+<p>ƒŠ[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚ªƒtƒ@ƒCƒ‹I’[‚É’B‚µ‚Ä‚¢‚é‚©‚Ç‚¤‚©’²‚ׂ܂·B.</p>
+<pre>
+int f_eof (
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg */</span>
+);
+</pre>
+</div>
+
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>ƒŠ[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚ªƒtƒ@ƒCƒ‹I’[‚É‚ ‚è“Ç‚Ýo‚·ƒf[ƒ^‚ª‚È‚¢ê‡‚ÍA0ˆÈŠO‚Ì’l‚ð•Ô‚µ‚Ü‚·B‚»‚êˆÈŠO‚ÌŽž‚Í0‚ð•Ô‚µ‚Ü‚·B</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>f_eofŠÖ”‚ÍAŒ»ƒŠƒrƒWƒ‡ƒ“‚ł̓}ƒNƒ‚Æ‚µ‚ÄŽÀ‘•‚³‚ê‚Ä‚¢‚Ü‚·B</p>
+<pre>
+<span class="k">#define</span> f_eof(fp) (((fp)->fptr) == ((fp)->fsize) ? 1 : 0)
+</pre>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p>í‚ÉŽg—p‰Â”\B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="lseek.html">f_lseek</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/error.html b/3rdparty/fatfs-0.10b/doc/ja/error.html
new file mode 100644
index 00000000..227a7000
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/error.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/error.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_error</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_error</h2>
+<p>ƒGƒ‰[”­¶‚Ì—L–³‚𒲂ׂ܂·B</p>
+<pre>
+int f_error (
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg */</span>
+);
+</pre>
+</div>
+
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>ƒtƒ@ƒCƒ‹‚ª‘€ì’†‚̃Gƒ‰[‚É‚æ‚Á‚Ĉ—‚ª’†’f‚³‚ê‚Ä‚¢‚éꇂÍA0ˆÈŠO‚Ì’l‚ð•Ô‚µ‚Ü‚·B‚»‚êˆÈŠO‚ÌŽž‚Í0‚ð•Ô‚µ‚Ü‚·B</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>f_errorŠÖ”‚ÍAŒ»ƒŠƒrƒWƒ‡ƒ“‚ł̓}ƒNƒ‚Æ‚µ‚ÄŽÀ‘•‚³‚ê‚Ä‚¢‚Ü‚·B</p>
+<pre>
+<span class="k">#define</span> f_error(fp) (((fp)->flag & FA__ERROR) ? 1 : 0)
+</pre>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p>í‚ÉŽg—p‰Â”\B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/fattime.html b/3rdparty/fatfs-0.10b/doc/ja/fattime.html
new file mode 100644
index 00000000..d9fa28c6
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/fattime.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/fattime.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - get_fattime</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>get_fattime</h2>
+<p>Œ»ÝŽž‚ðŽæ“¾‚µ‚Ü‚·B</p>
+<pre>
+DWORD get_fattime (void);
+</pre>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>Œ»Ý‚̃[ƒJƒ‹Eƒ^ƒCƒ€‚ð<tt>DWORD</tt>’l‚ɃpƒbƒN‚µ‚Ä•Ô‚µ‚Ü‚·BƒrƒbƒgEƒtƒB[ƒ‹ƒh‚ÍŽŸ‚ÉŽ¦‚·‚悤‚É‚È‚è‚Ü‚·B</p>
+<dl>
+<dt>bit31:25</dt>
+<dd>1980”N‚ð‹N“_‚Æ‚µ‚½”N‚ð 0..127 ‚ŃZƒbƒgB</dd>
+<dt>bit24:21</dt>
+<dd>ŒŽ‚ð 1..12 ‚Ì’l‚ŃZƒbƒgB</dd>
+<dt>bit20:16</dt>
+<dd>“ú‚ð 1..31 ‚Ì’l‚ŃZƒbƒgB</dd>
+<dt>bit15:11</dt>
+<dd>Žž‚ð 0..23 ‚Ì’l‚ŃZƒbƒgB</dd>
+<dt>bit10:5</dt>
+<dd>•ª‚ð 0..59 ‚Ì’l‚ŃZƒbƒgB</dd>
+<dt>bit4:0</dt>
+<dd>•b/2‚ð 0..29 ‚Ì’l‚ŃZƒbƒg</dd>
+</dl>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>RTC‚ðƒTƒ|[ƒg‚µ‚È‚¢ƒVƒXƒeƒ€‚Å‚àAƒ_ƒ~[‚Æ‚µ‚ĉ½‚ç‚©‚Ì“ú•t‚Æ‚µ‚Ä—LŒø‚È’l‚ð•Ô‚·‚ׂ«‚Å‚·B0‚È‚Ç‚ð•Ô‚µ‚½ê‡A‚»‚̃tƒ@ƒCƒ‹‚̃^ƒCƒ€ƒXƒ^ƒ“ƒv‚Í–³Œø‚É‚È‚è‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p>ƒŠ[ƒhEƒIƒ“ƒŠ[\¬(<tt>_FS_READONLY == 1</tt>)‚Å‚Í‚±‚ÌŠÖ”‚Í•K—v‚Æ‚³‚ê‚Ü‚¹‚ñB</p>
+</div>
+
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/fdisk.html b/3rdparty/fatfs-0.10b/doc/ja/fdisk.html
new file mode 100644
index 00000000..0138803d
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/fdisk.html
@@ -0,0 +1,97 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/fdisk.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_fdisk</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_fdisk</h2>
+<p>•¨—ƒhƒ‰ƒCƒu‚𕪊„‚µ‚Ü‚·B</p>
+<pre>
+FRESULT f_fdisk (
+ BYTE <span class="arg">pdrv</span>, <span class="c">/* [IN] •¨—ƒhƒ‰ƒCƒu”Ô† */</span>
+ const DWORD <span class="arg">part[]</span>, <span class="c">/* [IN] ‹æ‰æƒ}ƒbƒvEƒe[ƒuƒ‹ */</span>
+ void* <span class="arg">work</span> <span class="c">/* [-] ƒ[ƒNƒGƒŠƒA */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>pdrv</dt>
+<dd>•ªŠ„‚·‚é<em>•¨—ƒhƒ‰ƒCƒu</em>‚̃hƒ‰ƒCƒu”Ô†‚ðŽw’肵‚Ü‚·B</dd>
+<dt>part[]</dt>
+<dd>‹æ‰æƒ}ƒbƒvEƒe[ƒuƒ‹‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+<dt>work</dt>
+<dd>ƒ[ƒNƒGƒŠƒA‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·BƒTƒCƒY‚Í<tt>_MAX_SS</tt>ƒoƒCƒg•K—v‚Å‚·B</dd>
+</dl>
+</div>
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#ip">FR_INVALID_PARAMETER</a>
+</p>
+</div>
+
+<div class="para desc">
+<h4>à–¾</h4>
+<p>‚±‚ÌŠÖ”‚ÍAŽw’肳‚ꂽ•¨—ƒhƒ‰ƒCƒu‚ÌMBR‚É‹æ‰æƒe[ƒuƒ‹‚ð쬂µ‚Ü‚·B‹æ‰æ•ª‚¯‚͈ê”Ê“I‚ÈFDISKŒ`Ž®‚Ås‚¤‚½‚ßAÅ‘å4‚‚̊î–{‹æ‰æ‚ð쬂·‚邱‚Æ‚ª‚Å‚«‚Ü‚·BŠg’£‹æ‰æ‚ɂ͑Ήž‚µ‚Ä‚¢‚Ü‚¹‚ñB‹æ‰æƒ}ƒbƒvƒe[ƒuƒ‹<tt class="arg">part[]</tt>‚ɂ̓hƒ‰ƒCƒu‚ð‚ǂ̂悤‚É•ªŠ„‚·‚é‚©Žw’肵‚Ä“n‚µ‚Ü‚·B‚±‚Ì”z—ñ‚Í4‚‚̀–Ú‚©‚笂èA擪‚Ì€–Ú‚ª1”Ô–Ú‚ÌAÅŒã‚Ì€–Ú‚ª4”Ô–Ú‚Ì‹æ‰æ‚̃TƒCƒY‚ðŽ¦‚µ‚Ü‚·B’l‚ª100ˆÈ‰º‚Ìê‡Aƒhƒ‰ƒCƒu‚Ì‘—e—ʂɑ΂·‚銄‡‚ðƒp[ƒZƒ“ƒg’PˆÊ‚ÅŽw’肵‚Ü‚·B100‚ð’´‚¦‚é’l‚Ìꇂ̓ZƒNƒ^”‚Ì’¼ÚŽw’è‚É‚È‚è‚Ü‚·B</p>
+</div>
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_READOLNY == 0</tt> ‚Å <tt>_USE_MKFS == 1</tt> ‚Å <tt>_MULTI_PARTITION == 1</tt> ‚Ì‚Æ‚«Žg—p‰Â”\‚Å‚·B</p>
+</div>
+
+<div class="para use">
+<h4>Žg—p—á</h4>
+<pre>
+ <span class="c">/* ƒ†[ƒU’è‹`‚̃{ƒŠƒ…[ƒ€ŠÇ—ƒe[ƒuƒ‹ (_MULTI_PARTITION == 1 ‚Ì‚Æ‚«•K—v) */</span>
+
+ PARTITION VolToPart[] = {
+ {0, 1}, <span class="c">/* ˜_—ƒhƒ‰ƒCƒu 0 ==> •¨—ƒhƒ‰ƒCƒu 0, ‘æ1‹æ‰æ */</span>
+ {0, 2}, <span class="c">/* ˜_—ƒhƒ‰ƒCƒu 1 ==> •¨—ƒhƒ‰ƒCƒu 0, ‘æ2‹æ‰æ */</span>
+ {1, 0} <span class="c">/* ˜_—ƒhƒ‰ƒCƒu 2 ==> •¨—ƒhƒ‰ƒCƒu 1, Ž©“®ŒŸo */</span>
+ };
+</pre>
+<pre>
+ <span class="c">/* V‚µ‚¢•¨—ƒhƒ‰ƒCƒu(0)‚̉Šú‰» */</span>
+
+ FATFS fs;
+ DWORD plist[] = {50, 50, 0, 0}; <span class="c">/* 2•ªŠ„ */</span>
+ BYTE work[_MAX_SS];
+
+ f_fdisk(0, plist, work); <span class="c">/* •¨—ƒhƒ‰ƒCƒu 0 ‚Ì•ªŠ„ */</span>
+
+ f_mount(&amp;fs "0:", 0);
+ f_mkfs("0:", 0, 0); <span class="c">/* ˜_—ƒhƒ‰ƒCƒu 0 ‚̃tƒH[ƒ}ƒbƒg. ‘æ“ñˆø”‚Í–³Ž‹‚³‚ê‚é. */</span>
+ f_mount(0, "0:", 0);
+
+ f_mount(&amp;fs, "1:", 0);
+ f_mkfs("1:", 0, 0); <span class="c">/* ˜_—ƒhƒ‰ƒCƒu 0 ‚̃tƒH[ƒ}ƒbƒg. ‘æ“ñˆø”‚Í–³Ž‹‚³‚ê‚é. */</span>
+ f_mount(0, "1:", 0);
+
+</pre>
+</div>
+
+<div class="para ref">
+<h4>See Also</h4>
+<p><tt><a href="filename.html#vol">Volume management</a>, <a href="mkfs.html">f_mkfs</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/filename.html b/3rdparty/fatfs-0.10b/doc/ja/filename.html
new file mode 100644
index 00000000..5feff512
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/filename.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/filename.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - パスåã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆ</title>
+</head>
+
+<body>
+<h1>パスåã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆ</h1>
+<div class="para" id="nam">
+<h3>ファイル・ディレクトリå</h3>
+<p>FatFsモジュールã§ã®ãƒ•ã‚¡ã‚¤ãƒ«ã€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€ãƒ‰ãƒ©ã‚¤ãƒ–ã®æŒ‡å®šæ–¹æ³•ã¯DOS/Windows APIã¨ã»ã¼åŒã˜ã§ã™ã€‚パスåã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã¯æ¬¡ã®é€šã‚Šã§ã™ã€‚</p>
+<pre>"[è«–ç†ãƒ‰ãƒ©ã‚¤ãƒ–番å·:][/]ディレクトリå/ファイルå"</pre>
+<p>FatFsモジュールã¯é•·ã„ファイルå(LFN)ãŠã‚ˆã³8.3å½¢å¼ãƒ•ã‚¡ã‚¤ãƒ«å(SFN)ã«å¯¾å¿œã—ã¦ã„ã¾ã™ã€‚LFNã¯ã€(<tt>_USE_LFN &gt; 0</tt>)ã®ã¨ã使用å¯èƒ½ã«ãªã‚Šã¾ã™ã€‚ディレクトリ・セパレータã«ã¯DOS/Windows APIã¨åŒã˜ã<tt>'/'</tt>ã¨<tt>'\'</tt>を使用ã—ã¾ã™ã€‚連続ã—ãŸã‚»ãƒ‘レータã¯ç„¡è¦–ã•ã‚Œ1個ã¨ã—ã¦æ‰±ã‚ã‚Œã¾ã™ã€‚唯一ã®é•ã„ã¯ã€è«–ç†ãƒ‰ãƒ©ã‚¤ãƒ–ã®æŒ‡å®šã ã‘ã§ã™ã€‚è«–ç†ãƒ‰ãƒ©ã‚¤ãƒ–番å·ã¯ã€<tt>'0'</tt>~<tt>'9'</tt>ã®ä¸€æ–‡å­—ã®æ•°å­—ã¨ã‚³ãƒ­ãƒ³ã§æŒ‡å®šã—ã€çœç•¥ã—ãŸå ´åˆã¯<em>デフォルト・ドライブ</em>(0ã¾ãŸã¯ã‚«ãƒ¬ãƒ³ãƒˆãƒ»ãƒ‰ãƒ©ã‚¤ãƒ–)ãŒé¸æŠžã•ã‚Œã¾ã™ã€‚</p>
+<p>ヌル文字や制御文字(<tt>'\0'</tt>~<tt>'\x1F'</tt>)ã¯ã€ãƒ‘スåã®çµ‚端ã¨ã—ã¦èªè­˜ã•ã‚Œã¾ã™ã€‚パスåã«å…ˆè¡Œã‚ã‚‹ã„ã¯ä¸­ã«å«ã¾ã‚Œã‚‹ã‚¹ãƒšãƒ¼ã‚¹ã¯ã€LFN構æˆã§ã¯åå‰ã®ä¸€éƒ¨ã¨ã—ã¦æœ‰åŠ¹ã§ã™ãŒã€éžLFN構æˆã§ã¯ã‚¹ãƒšãƒ¼ã‚¹ã¯ãƒ‘スåã®çµ‚端ã¨ã—ã¦èªè­˜ã•ã‚Œã¾ã™ã€‚</p>
+<p>標準構æˆ(<tt>_FS_RPATH == 0</tt>)ã®ã¨ãã¯ã€å…¨ã¦ã®ã‚ªãƒ–ジェクトãŒãƒ«ãƒ¼ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‹ã‚‰è¾¿ã‚‹çµ¶å¯¾ãƒ‘スã§æŒ‡å®šã•ã‚Œã¾ã™ã€‚OS指å‘ãªã‚«ãƒ¬ãƒ³ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¨ã„ã†æ¦‚念ã¯ç„¡ãã€ã¾ãŸãƒ‰ãƒƒãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª(&quot;.&quot;ã‚„&quot;..&quot;)ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“。パスå先頭ã®ã‚»ãƒ‘レータã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚デフォルト・ドライブ番å·ã¯å¸¸ã«0ã«ãªã‚Šã¾ã™ã€‚</p>
+<p>相対パスを有効(<tt>_FS_RPATH == 1</tt>)ã«ã—ãŸã¨ãã¯ã€å…ˆè¡Œã™ã‚‹ã‚»ãƒ‘レータã®æœ‰ç„¡ã«ã‚ˆã£ã¦æ¤œç´¢é–‹å§‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒå¤‰ã‚ã‚Šã€ã‚»ãƒ‘レータãŒã‚ã‚‹å ´åˆã¯ãƒ«ãƒ¼ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‹ã‚‰ã€ç„¡ã„å ´åˆã¯<a href="chdir.html"><tt>f_chdir()</tt></a>ã§è¨­å®šã•ã‚Œã‚‹ã‚«ãƒ¬ãƒ³ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‹ã‚‰ã«ãªã‚Šã¾ã™ã€‚ã¾ãŸãƒ‘スåã«ãƒ‰ãƒƒãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒä½¿ç”¨ã§ãã¾ã™ã€‚デフォルト・ドライブ番å·ã¯<a href="chdrive.html"><tt>f_chdrive()</tt></a>ã§è¨­å®šã•ã‚ŒãŸå€¤ã¨ãªã‚Šã¾ã™ã€‚</p>
+<table class="lst2">
+<tr><td>パスåã®ä¾‹</td><td>_FS_RPATH == 0</td><td>_FS_RPATH == 1</td></tr>
+<tr class="lst3"><td>file.txt</td><td>ドライブ0ã®ãƒ«ãƒ¼ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªä¸‹ã®ãƒ•ã‚¡ã‚¤ãƒ«</td><td>カレント・ドライブã®ã‚«ãƒ¬ãƒ³ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªä¸‹ã®ãƒ•ã‚¡ã‚¤ãƒ«</td></tr>
+<tr><td>/file.txt</td><td>ドライブ0ã®ãƒ«ãƒ¼ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªä¸‹ã®ãƒ•ã‚¡ã‚¤ãƒ«</td><td>カレント・ドライブã®ãƒ«ãƒ¼ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªä¸‹ã®ãƒ•ã‚¡ã‚¤ãƒ«</td></tr>
+<tr><td></td><td>ドライブ0ã®ãƒ«ãƒ¼ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª</td><td>カレント・ドライブã®ã‚«ãƒ¬ãƒ³ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª</td></tr>
+<tr><td>2:</td><td>ドライブ2ã®ãƒ«ãƒ¼ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª</td><td>ドライブ2ã®ã‚«ãƒ¬ãƒ³ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª</td></tr>
+<tr><td>2:file1.txt</td><td>ドライブ2ã®ãƒ«ãƒ¼ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªä¸‹ã®ãƒ•ã‚¡ã‚¤ãƒ«</td><td>ドライブ2ã®ã‚«ãƒ¬ãƒ³ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªä¸‹ã®ãƒ•ã‚¡ã‚¤ãƒ«</td></tr>
+<tr><td>2:/</td><td>ドライブ2ã®ãƒ«ãƒ¼ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª</td><td>ドライブ2ã®ãƒ«ãƒ¼ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª</td></tr>
+<tr><td>../file.txt</td><td>無効</td><td>親ディレクトリ下ã®ãƒ•ã‚¡ã‚¤ãƒ«</td></tr>
+<tr><td>.</td><td>無効</td><td>ã“ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª</td></tr>
+<tr><td>..</td><td>無効</td><td>カレント・ディレクトリã®è¦ªãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª</td></tr>
+<tr><td>dir1/..</td><td>無効</td><td>カレント・ディレクトリ</td></tr>
+<tr><td>/..</td><td>無効</td><td>ルート・ディレクトリ(ãã®ä¸Šã¯è¾¿ã‚Œãªã„)</td></tr>
+</table>
+<p>ã¾ãŸã€<tt>_STR_VOLUME_ID</tt>オプションを有効ã«ã™ã‚‹ã“ã¨ã§ãƒ‰ãƒ©ã‚¤ãƒ–番å·ã®è­˜åˆ¥ã«ã¯æ•°å­—ã®ã»ã‹ã€ä»»æ„ã®æ–‡å­—列を使用ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã«ãªã‚Šã¾ã™ã€‚</p>
+</div>
+
+<p><br></p>
+<div class="para" id="uni">
+<h3>Unicode API</h3>
+<p>ファイル関数ã®å…¥å‡ºåŠ›ã®ã†ã¡ãƒ•ã‚¡ã‚¤ãƒ«åやパスåを指定ã™ã‚‹å¼•æ•°ã®åž‹ã¯ã€<tt>TCHAR</tt>ã§å®šç¾©ã•ã‚Œã¦ã„ã¾ã™ãŒã€ã“ã‚Œã¯é€šå¸¸ã¯<tt>char</tt>ã®ã‚¨ãƒªã‚¢ã‚¹ã«ãªã£ã¦ã„ã¾ã™ã€‚ãã—ã¦ã€<tt>_CODE_PAGE</tt>ã§æŒ‡å®šã•ã‚Œã‚‹ANSI/OEMコード(SBCSã¾ãŸã¯DBCS)ã®æ–‡å­—列ã¨ã—ã¦æ‰±ã‚ã‚Œã¾ã™ã€‚ファイルå入出力をUnicodeã¨ã™ã‚‹æ§‹æˆ(<tt>_LFN_UNICODE == 1</tt>)ã«ã—ãŸã¨ãã¯ã€<tt>TCHAR</tt>ã¯ãƒ¯ã‚¤ãƒ‰æ–‡å­—(<tt>WCHAR, unsigned short</tt>)ã«åˆ‡ã‚Šæ›¿ã‚ã‚Šã€ãƒ‘スåã®å…¥å‡ºåŠ›ã«Unicodeを使用ã™ã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚ã“ã‚Œã«ã‚ˆã‚ŠLFNè¦æ ¼ã«å®Œå…¨å¯¾å¿œã¨ãªã‚Šã€ANSI/OEMコードã«ãªã„文字(ãŸã¨ãˆã° âœâ˜ªâœ¡â˜¸â˜­ãªã©)も使用ã§ãã¾ã™ã€‚ã“ã®è¨­å®šã¯æ–‡å­—列入出力関数ã®ãƒ‡ãƒ¼ã‚¿åž‹ã¨ãƒ•ã‚¡ã‚¤ãƒ«ä¸Šã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã«ã‚‚影響を与ãˆã¾ã™ã€‚リテラル文字列を定義ã™ã‚‹ã¨ãã€æ¬¡ã«ç¤ºã™ã‚ˆã†ã«<tt>_T(s)</tt>ãŠã‚ˆã³<tt>_TEXT(s)</tt>マクロを使ã£ã¦ANSI/OEMã¨Unicodeを自動切り替ãˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚</p>
+<pre>
+ f_open(fp, "filename.txt", FA_READ); <span class="c">/* ANSI/OEM専用コード */</span>
+ f_open(fp, L"filename.txt", FA_READ); <span class="c">/* Unicode専用コード */</span>
+ f_open(fp, _T("filename.txt"), FA_READ); <span class="c">/* 両用コード(自動切り替ãˆ) */</span>
+</pre>
+</div>
+
+<p><br></p>
+<div class="para" id="vol">
+<h3>ボリューム管ç†</h3>
+<p>デフォルトã®æ§‹æˆã§ã¯ã€ãã‚Œãžã‚Œã®è«–ç†ãƒ‰ãƒ©ã‚¤ãƒ–ã¯åŒã˜ç•ªå·ã®ç‰©ç†ãƒ‰ãƒ©ã‚¤ãƒ–ã«1:1ã§çµã³ã¤ã‘られã¦ã„ã¦ã€è‡ªå‹•æ¤œå‡ºæ©Ÿèƒ½ã«ã‚ˆã‚Šãã®ç‰©ç†ãƒ‰ãƒ©ã‚¤ãƒ–上ã®ä¸€ã¤ã®FATボリュームãŒãƒžã‚¦ãƒ³ãƒˆã•ã‚Œã¾ã™ã€‚FATボリュームã®æ¤œå‡ºã¯ã€ã‚»ã‚¯ã‚¿0ã€ç¬¬ä¸€åŒºç”»ï½žç¬¬å››åŒºç”»ã®é †ã«è¡Œã‚ã‚Œã¾ã™ã€‚</p>
+<p><tt>_MULTI_PARTITION</tt>ã«1を指定ã™ã‚‹ã¨ã€ãã‚Œãžã‚Œã®è«–ç†ãƒ‰ãƒ©ã‚¤ãƒ–ã«å¯¾ã—ã¦å€‹åˆ¥ã«ç‰©ç†ãƒ‰ãƒ©ã‚¤ãƒ–番å·ã¨åŒºç”»ã‚’指定ã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚ã“ã®æ§‹æˆã§ã¯ã€è«–ç†ãƒ‰ãƒ©ã‚¤ãƒ–ã¨åŒºç”»ã®å¯¾å¿œã‚’解決ã™ã‚‹ãŸã‚ã®ãƒ†ãƒ¼ãƒ–ルを次ã«ç¤ºã™ã‚ˆã†ã«å®šç¾©ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚</p>
+<pre>
+例:è«–ç†ãƒ‰ãƒ©ã‚¤ãƒ–0~2を物ç†ãƒ‰ãƒ©ã‚¤ãƒ–0(éžãƒªãƒ ãƒ¼ãƒãƒ–ル)ã®3ã¤ã®åŸºæœ¬åŒºç”»ã«å‰²ã‚Šå½“ã¦ã€
+ è«–ç†ãƒ‰ãƒ©ã‚¤ãƒ–3を物ç†ãƒ‰ãƒ©ã‚¤ãƒ–1(リムーãƒãƒ–ル)ã«å‰²ã‚Šå½“ã¦ã‚‹å ´åˆã€‚
+
+PARTITION VolToPart[] = {
+ {0, 1}, <span class="c">/* è«–ç†ãƒ‰ãƒ©ã‚¤ãƒ– 0 ==> 物ç†ãƒ‰ãƒ©ã‚¤ãƒ– 0, 第1区画 */</span>
+ {0, 2}, <span class="c">/* è«–ç†ãƒ‰ãƒ©ã‚¤ãƒ– 1 ==> 物ç†ãƒ‰ãƒ©ã‚¤ãƒ– 0, 第2区画 */</span>
+ {0, 3}, <span class="c">/* è«–ç†ãƒ‰ãƒ©ã‚¤ãƒ– 2 ==> 物ç†ãƒ‰ãƒ©ã‚¤ãƒ– 0, 第3区画 */</span>
+ {1, 0} <span class="c">/* è«–ç†ãƒ‰ãƒ©ã‚¤ãƒ– 3 ==> 物ç†ãƒ‰ãƒ©ã‚¤ãƒ– 1, 自動検出 */</span>
+};
+
+<img src="../img/f7.png" width="828" height="288" alt="è«–ç†ãƒ‰ãƒ©ã‚¤ãƒ–ã¨ç‰©ç†ãƒ‰ãƒ©ã‚¤ãƒ–ã®é–¢ä¿‚">
+</pre>
+<p>複数区画指定を使用ã™ã‚‹å ´åˆã€æ¬¡ã®ç‚¹ã«æ³¨æ„ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。
+<ul>
+<li>マウントå¯èƒ½ãªåŒºç”»ã¯åŸºæœ¬åŒºç”»ã®ã¿ã§ã€æ‹¡å¼µåŒºç”»å†…ã«ã¯å¯¾å¿œã—ãªã„。</li>
+<li>複数ã®ãƒžã‚¦ãƒ³ãƒˆã•ã‚ŒãŸåŒºç”»ã‚’æŒã¤ç‰©ç†ãƒ‰ãƒ©ã‚¤ãƒ–ã¯ã€éžãƒªãƒ ãƒ¼ãƒãƒ–ルã§ãªã‘ã‚Œã°ãªã‚‰ãšã€ã‚·ã‚¹ãƒ†ãƒ å‹•ä½œä¸­ã®ãƒ¡ãƒ‡ã‚£ã‚¢äº¤æ›ã¯ç¦æ­¢ã€‚</li>
+</ul>
+</div>
+
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/forward.html b/3rdparty/fatfs-0.10b/doc/ja/forward.html
new file mode 100644
index 00000000..a5191c5a
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/forward.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/forward.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_forward</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_forward</h2>
+<p>ƒtƒ@ƒCƒ‹‚©‚çƒf[ƒ^‚ð“Ç‚Ýo‚µA‘—MƒXƒgƒŠ[ƒ€‚É’¼Ú“]‘—‚µ‚Ü‚·B</p>
+<pre>
+FRESULT f_forward (
+ FIL* <span class="arg">fp</span>, <span class="c">/* [IN] ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘Ì */</span>
+ UINT (*<span class="arg">func</span>)(const BYTE*,UINT), <span class="c">/* [IN] ƒf[ƒ^“]‘—ŠÖ” */</span>
+ UINT <span class="arg">btf</span>, <span class="c">/* [IN] “]‘—‚·‚éƒoƒCƒg” */</span>
+ UINT* <span class="arg">bf</span> <span class="c">/* [OUT] “]‘—‚³‚ꂽƒoƒCƒg” */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+<dt>func</dt>
+<dd>ƒf[ƒ^‚ð“n‚·ƒ†[ƒU’è‹`ŠÖ”‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B‚±‚ÌŠÖ”‚ÌŽd—l‚̓Tƒ“ƒvƒ‹‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B</dd>
+<dt>btf</dt>
+<dd>“]‘—‚·‚éƒoƒCƒg”(0`UINT‚ÌÅ‘å’l)‚ðŽw’肵‚Ü‚·B</dd>
+<dt>bf</dt>
+<dd>ŽÀÛ‚É“]‘—‚³‚ꂽƒoƒCƒg”‚ðŠi”[‚·‚é•Ï”‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#de">FR_DENIED</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>ƒtƒ@ƒCƒ‹‚̃f[ƒ^‚ðƒoƒbƒtƒ@‚É“Ç‚Ýo‚³‚¸‚É‘—MƒXƒgƒŠ[ƒ€‚É’¼Ú“]‘—‚µ‚Ü‚·BƒAƒvƒŠƒP[ƒVƒ‡ƒ“‘¤‚Ńf[ƒ^Eƒoƒbƒtƒ@‚ð•K—v‚Æ‚µ‚È‚¢‚Ì‚ÅAƒƒ‚ƒŠ‚ÌŒÀ‚ç‚ꂽŠÂ‹«‚Å—LŒø‚Å‚·BƒŠ[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚Í“]‘—‚³‚ꂽƒoƒCƒg”‚¾‚¯i‚Ý‚Ü‚·BŽw’肳‚ꂽƒoƒCƒg”‚Ì“]‘—’†‚Ƀtƒ@ƒCƒ‹‚ÌI’[‚É’B‚µ‚½ê‡‚â‘—MƒXƒgƒŠ[ƒ€‚ªƒrƒW[‚É‚È‚Á‚½ê‡A<tt class="arg">*bf</tt>‚Í<tt class="arg">btf</tt>‚æ‚è‚ଂ³‚­‚È‚è‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_USE_FORWARD == 1</tt>‚ÅAŠŽ‚Â<tt>_FS_TINY == 1</tt>‚Ì‚Æ‚«‚ÉŽg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para use">
+<h4>Žg—p—áiƒI[ƒfƒBƒIĶj</h4>
+<pre>
+<span class="c">/*-----------------------------------------------------------------------*/</span>
+<span class="c">/* f_forwardŠÖ”‚©‚çŒÄ‚΂ê‚éƒf[ƒ^‘—MŠÖ”‚Ì—á */</span>
+<span class="c">/*-----------------------------------------------------------------------*/</span>
+
+UINT out_stream ( <span class="c">/* –ß‚è’l: “]‘—‚³‚ꂽƒoƒCƒg”‚Ü‚½‚̓XƒgƒŠ[ƒ€‚Ìó‘Ô */</span>
+ const BYTE *p, <span class="c">/* “]‘—‚·‚éƒf[ƒ^‚ðŽw‚·ƒ|ƒCƒ“ƒ^ */</span>
+ UINT btf <span class="c">/* &gt;0: “]‘—‚ðs‚¤(ƒoƒCƒg”). 0: ƒXƒgƒŠ[ƒ€‚Ìó‘Ԃ𒲂ׂé */</span>
+)
+{
+ UINT cnt = 0;
+
+
+ if (btf == 0) { <span class="c">/* ƒZƒ“ƒX—v‹ */</span>
+ <span class="c">/* ƒXƒgƒŠ[ƒ€‚Ìó‘Ô‚ð•Ô‚· (0: ƒrƒW[, 1: ƒŒƒfƒB) */</span>
+ <span class="c">/* ˆê’UAƒŒƒfƒB‚ð•Ô‚µ‚½‚çA‘±‚­“]‘——v‹‚Å­‚È‚­‚Æ‚à1ƒoƒCƒg‚Í */</span>
+ <span class="c">/* “]‘—‚³‚ê‚È‚¢‚Æ f_forwardŠÖ”‚Í FR_INT_ERR ‚Æ‚È‚éB */</span>
+ if (FIFO_READY) cnt = 1;
+ }
+ else { <span class="c">/* “]‘——v‹ */</span>
+ do { <span class="c">/* ‘S‚ẴoƒCƒg‚ð“]‘—‚·‚é‚©AƒXƒgƒŠ[ƒ€‚ªƒrƒW[‚É‚È‚é‚Ü‚ÅŒJ‚è•Ô‚· */</span>
+ FIFO_PORT = *p++;
+ cnt++;
+ } while (cnt &lt; btf &amp;&amp; FIFO_READY);
+ }
+
+ return cnt;
+}
+
+
+<span class="c">/*-----------------------------------------------------------------------*/</span>
+<span class="c">/* f_forwardŠÖ”‚ÌŽg—p—á */</span>
+<span class="c">/*-----------------------------------------------------------------------*/</span>
+
+FRESULT play_file (
+ char *fn <span class="c">/* Ķ‚·‚éƒI[ƒfƒBƒIEƒtƒ@ƒCƒ‹–¼‚ðŽw‚·ƒ|ƒCƒ“ƒ^ */</span>
+)
+{
+ FRESULT rc;
+ FIL fil;
+ UINT dmy;
+
+ <span class="c">/* ƒtƒ@ƒCƒ‹‚ð“Ç‚Ýo‚µƒ‚[ƒh‚ÅŠJ‚­ */</span>
+ rc = f_open(&amp;fil, fn, FA_READ);
+ if (rc) return rc;
+
+ <span class="c">/* ‘S‚Ẵf[ƒ^‚ª“]‘—‚³‚ê‚é‚©ƒGƒ‰[‚ª”­¶‚·‚é‚Ü‚Å‘±‚¯‚é */</span>
+ while (rc == FR_OK &amp;&amp; fil.fptr &lt; fil.fsize) {
+
+ <span class="c">/* ‚Ù‚©‚̈—... */</span>
+
+ <span class="c">/* ’èŠú“I‚Ü‚½‚Í—v‹‚ɉž‚¶‚ăf[ƒ^‚ðƒXƒgƒŠ[ƒ€‚É‘—o‚·‚é */</span>
+ rc = f_forward(&amp;fil, out_stream, 1000, &amp;dmy);
+ }
+
+ <span class="c">/* ƒtƒ@ƒCƒ‹‚ð•Â‚¶‚Ä–ß‚é */</span>
+ f_close(&amp;fil);
+ return rc;
+}
+</pre>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="gets.html">fgets</a>, <a href="write.html">f_write</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/getcwd.html b/3rdparty/fatfs-0.10b/doc/ja/getcwd.html
new file mode 100644
index 00000000..13242809
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/getcwd.html
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/getcwd.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_getcwd</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_getcwd</h2>
+<p>ƒJƒŒƒ“ƒgEƒfƒBƒŒƒNƒgƒŠ‚𓾂܂·B</p>
+<pre>
+FRESULT f_getcwd (
+ TCHAR* <span class="arg">buff</span>, <span class="c">/* [OUT] ƒoƒbƒtƒ@ */</span>
+ UINT <span class="arg">len</span> <span class="c">/* [IN] ƒoƒbƒtƒ@EƒTƒCƒY */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>buff</dt>
+<dd>ƒJƒŒƒ“ƒgEƒfƒBƒŒƒNƒgƒŠ‚̃pƒX–¼•¶Žš—ñ‚ðŠi”[‚·‚éƒoƒbƒtƒ@</dd>
+<dt>len</dt>
+<dd><tt>TCHAR</tt>’PˆÊ‚̃oƒbƒtƒ@EƒTƒCƒY</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>ƒJƒŒƒ“ƒgEƒhƒ‰ƒCƒu‚̃JƒŒƒ“ƒgEƒfƒBƒŒƒNƒgƒŠ‚̃tƒ‹EƒpƒX•¶Žš—ñ‚ðŽæ“¾‚µ‚Ü‚·B<tt>_VOLUMES</tt>‚ª2ˆÈã‚Ì‚Æ‚«‚ÍA˜_—ƒhƒ‰ƒCƒu”Ô†‚Ì•t‰Á‚³‚ꂽƒpƒX–¼‚Æ‚È‚è‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_RPATH == 2</tt>‚Ì‚Æ‚«Žg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="chdrive.html">f_chdrive</a>, <a href="chdir.html">f_chdir</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/getfree.html b/3rdparty/fatfs-0.10b/doc/ja/getfree.html
new file mode 100644
index 00000000..5235ce3b
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/getfree.html
@@ -0,0 +1,95 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/getfree.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_getfree</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_getfree</h2>
+<p>ƒ{ƒŠƒ…[ƒ€ã‚̋󂫗̈æ‚̃TƒCƒY‚ðŽæ“¾‚µ‚Ü‚·B</p>
+<pre>
+FRESULT f_getfree (
+ const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] ‘ÎÛƒhƒ‰ƒCƒu‚ðŽw’肵‚Ü‚· */</span>
+ DWORD* <span class="arg">nclst</span>, <span class="c">/* [OUT] ‹ó‚«ƒNƒ‰ƒXƒ^”‚ðŠi”[‚·‚é•Ï”‚ւ̃|ƒCƒ“ƒ^ */</span>
+ FATFS** <span class="arg">fatfs</span> <span class="c">/* [OUT] ƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ւ̃|ƒCƒ“ƒ^ */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>’²‚ׂé‘Îۂ̘_—ƒhƒ‰ƒCƒu‚ðŽ¦‚·<a href="filename.html">ƒpƒX–¼</a>‚ðŽ¦‚·ƒkƒ‹•¶Žš<tt>'\0'</tt>I’[‚Ì•¶Žš—ñ‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·Bƒkƒ‹•¶Žš—ñ‚̓JƒŒƒ“ƒgEƒhƒ‰ƒCƒu‚ðˆÓ–¡‚µ‚Ü‚·B</dd>
+<dt>nclst</dt>
+<dd>‹ó‚«ƒNƒ‰ƒXƒ^”‚ðŠi”[‚·‚é<tt>DWORD</tt>Œ^•Ï”‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+<dt>fatfs</dt>
+<dd>‘ÎÛƒhƒ‰ƒCƒu‚̃tƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ª•Ô‚³‚ê‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>˜_—ƒhƒ‰ƒCƒuã‚̋󂫗̈æ‚̃TƒCƒY‚ðƒNƒ‰ƒXƒ^’PˆÊ‚Ŏ擾‚µ‚Ü‚·B•Ô‚³‚ꂽƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚Ì<tt>csize</tt>ƒƒ“ƒo‚ªƒNƒ‰ƒXƒ^‚ ‚½‚è‚̃ZƒNƒ^”‚ðŽ¦‚µ‚Ä‚¢‚é‚Ì‚ÅA‚±‚ê‚ðŒ³‚ÉƒZƒNƒ^’PˆÊ‚̋󂫃TƒCƒY‚ªŒvŽZ‚Å‚«‚Ü‚·BFAT32ƒ{ƒŠƒ…[ƒ€‚É‚¨‚¢‚Ä‚ÍAFSINFO‚Ìî•ñ‚ªŽÀۂ̋󂫃Nƒ‰ƒXƒ^”‚Æ“¯Šú‚µ‚Ä‚¢‚È‚¢ê‡A•s³Šm‚È’l‚ð•Ô‚·‰Â”\«‚ª‚ ‚è‚Ü‚·B‚±‚Ì–â‘è‚ð”ð‚¯‚é‚½‚ßA<tt>_FS_NOFSINFO</tt>ƒIƒvƒVƒ‡ƒ“‚Ń}ƒEƒ“ƒgŒã‚̉‰ñ‚Í•K‚¸ƒtƒ‹FATƒXƒLƒƒƒ“‚ð‚·‚é‚悤‚É\¬‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_READONLY == 0</tt>‚ÅAŠŽ‚Â<tt>_FS_MINIMIZE == 0</tt>‚Ì‚Æ‚«Žg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para use">
+<h4>Žg—p—á</h4>
+<pre>
+ FATFS *fs;
+ DWORD fre_clust, fre_sect, tot_sect;
+
+
+ <span class="c">/* ƒhƒ‰ƒCƒu1‚̃{ƒŠƒ…[ƒ€î•ñ‚Ƌ󂫃Nƒ‰ƒXƒ^”‚𓾂é */</span>
+ res = f_getfree("1:", &amp;fre_clust, &amp;fs);
+ if (res) die(res);
+
+ <span class="c">/* ‘SƒZƒNƒ^”‚Ƌ󂫃ZƒNƒ^”‚ðŒvŽZ */</span>
+ tot_sect = (fs->n_fatent - 2) * fs->csize;
+ fre_sect = fre_clust * fs->csize;
+
+ <span class="c">/* ƒ{ƒŠƒ…[ƒ€‘S‘̂̃TƒCƒY‚Ƌ󂫂̃TƒCƒY‚ð•\Ž¦ (512ƒoƒCƒg/ƒZƒNƒ^‚Ɖ¼’è) */</span>
+ printf("%10lu KiB total drive space.\n%10lu KiB available.\n",
+ tot_sect / 2, fre_sect / 2);
+</pre>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<tt><a href="sfatfs.html">FATFS</a></tt>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/getlabel.html b/3rdparty/fatfs-0.10b/doc/ja/getlabel.html
new file mode 100644
index 00000000..0bebbd41
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/getlabel.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/getlabel.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_getlabel</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_getlabel</h2>
+<p>ƒ{ƒŠƒ…[ƒ€Eƒ‰ƒxƒ‹‚ðŽæ“¾‚µ‚Ü‚·B</p>
+<pre>
+FRESULT f_getlabel (
+ const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] ‘ÎÛƒhƒ‰ƒCƒu */</span>
+ TCHAR* <span class="arg">label</span>, <span class="c">/* [OUT] ƒ{ƒŠƒ…[ƒ€–¼‚ðŠi”[‚·‚éƒoƒbƒtƒ@ */</span>
+ DWORD* <span class="arg">vsn</span> <span class="c">/* [OUT] ƒ{ƒŠƒ…[ƒ€EƒVƒŠƒAƒ‹”Ô†‚ðŠi”[‚·‚é•Ï” */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>‘ÎÛ‚Æ‚È‚é˜_—ƒhƒ‰ƒCƒu‚Ì<a href="filename.html">ƒpƒX–¼</a>‚ðŽ¦‚·ƒkƒ‹•¶Žš<tt>'\0'</tt>I’[‚Ì•¶Žš—ñ‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·Bƒkƒ‹•¶Žš—ñ‚ÌꇂÍAƒfƒtƒHƒ‹ƒgEƒhƒ‰ƒCƒu‚ðŽw’肵‚½‚±‚Æ‚É‚È‚è‚Ü‚·B</dd>
+<dt>label</dt>
+<dd>ƒ{ƒŠƒ…[ƒ€–¼‚ðŠi”[‚·‚é”z—ñ‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B­‚È‚­‚Æ‚à12—v‘f‚̃TƒCƒY‚ª•K—v‚Å‚·Bƒ{ƒŠƒ…[ƒ€–¼‚ª‚È‚¢ê‡‚̓kƒ‹•¶Žš—ñ‚ª•Ô‚³‚ê‚Ü‚·B‚±‚Ìî•ñ‚ª•s—v‚È‚Æ‚«‚̓kƒ‹Eƒ|ƒCƒ“ƒ^‚ðŽw’肵‚Ä‚­‚¾‚³‚¢B</dd>
+<dt>vsn</dt>
+<dd>ƒ{ƒŠƒ…[ƒ€EƒVƒŠƒAƒ‹”Ô†‚ðŠi”[‚·‚é<tt>DWORD</tt>Œ^•Ï”‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B‚±‚Ìî•ñ‚ª•s—v‚È‚Æ‚«‚̓kƒ‹Eƒ|ƒCƒ“ƒ^‚ðŽw’肵‚Ä‚­‚¾‚³‚¢B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_USE_LABEL == 1</tt>‚Ì‚Æ‚«‚ÉŽg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para use">
+<h4>Žg—p—á</h4>
+<pre>
+ char str[12];
+
+ <span class="c">/* ƒfƒtƒHƒ‹ƒgEƒhƒ‰ƒCƒu‚̃{ƒŠƒ…[ƒ€–¼‚𓾂é */</span>
+ f_getlabel("", str, 0);
+
+ <span class="c">/* ƒhƒ‰ƒCƒu2‚̃{ƒŠƒ…[ƒ€–¼‚𓾂é */</span>
+ f_getlabel("2:", str, 0);
+</pre>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<tt><a href="setlabel.html">f_setlabel</a></tt>
+</div>
+
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/gets.html b/3rdparty/fatfs-0.10b/doc/ja/gets.html
new file mode 100644
index 00000000..1efa125b
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/gets.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/gets.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_gets</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_gets</h2>
+<p>ƒtƒ@ƒCƒ‹‚©‚當Žš—ñ‚ð“Ç‚Ýo‚µ‚Ü‚·B</p>
+<pre>
+TCHAR* f_gets (
+ TCHAR* <span class="arg">buff</span>, <span class="c">/* [OUT] ƒoƒbƒtƒ@ */</span>
+ int <span class="arg">len</span>, <span class="c">/* [IN] ƒoƒbƒtƒ@‚̃TƒCƒY */</span>
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>buff</dt>
+<dd>•¶Žš—ñ‚ð“Ç‚Ýo‚·ƒoƒbƒtƒ@‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+<dt>len</dt>
+<dd>ƒoƒbƒtƒ@‚̃TƒCƒY‚ð—v‘f”‚ÅŽw’肵‚Ü‚·B</dd>
+<dt>fp</dt>
+<dd>ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>ŠÖ”‚ª¬Œ÷‚·‚é‚Æ<tt class="arg">buff</tt>‚ª•Ô‚³‚ê‚Ü‚·B</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>‚±‚ÌŠÖ”‚Í<a href="read.html"><tt>f_read()</tt></a>‚̃‰ƒbƒp[ŠÖ”‚Å‚·B“Ç‚Ýo‚µ“®ì‚ÍAʼn‚Ì<tt>'\n'</tt>‚ð“Ç‚Ýž‚Þ‚©Aƒtƒ@ƒCƒ‹I’[‚É’B‚·‚é‚©A<tt class="arg">len</tt> - 1•¶Žš‚ð“Ç‚Ýo‚·‚Ü‚Å‘±‚«‚Ü‚·B“Ç‚Ýž‚܂ꂽ•¶Žš—ñ‚ÌI’[‚É‚Í<tt>'\0'</tt>‚ª•t‰Á‚³‚ê‚Ü‚·BŠù‚Ƀtƒ@ƒCƒ‹I’[‚Å1•¶Žš‚à“Ç‚Ýž‚Ü‚ê‚È‚©‚Á‚½‚Æ‚«A‚Ü‚½‚͉½‚ç‚©‚̃Gƒ‰[‚ª”­¶‚µ‚½‚Æ‚«‚ÍŠÖ”‚ÍŽ¸”s‚µƒkƒ‹Eƒ|ƒCƒ“ƒ^‚ð•Ô‚µ‚Ü‚·Bƒtƒ@ƒCƒ‹I’[‚©ƒGƒ‰[‚©‚Í<tt>f_eof()</tt>,<tt>f_error()</tt>ƒ}ƒNƒ‚Å’²‚ׂç‚ê‚Ü‚·B</p>
+<p>Unicode API\¬(<tt>_LFN_UNICODE == 1</tt>)‚ª‘I‘ð‚³‚ê‚Ä‚¢‚é‚Æ‚«‚ÍA<tt class="arg">buff</tt>‚ÍUTF-16•¶Žš—ñ‚É‚È‚è‚Ü‚·‚ªAƒtƒ@ƒCƒ‹ã‚̃Gƒ“ƒR[ƒh‚ÍA<tt>_STRF_ENCODE</tt>ƒIƒvƒVƒ‡ƒ“‚Å‘I‘ð‚Å‚«‚Ü‚·B‚»‚êˆÈŠO‚ÌŽž‚Í–³•ÏŠ·(1ƒoƒCƒg/1•¶Žš)‚Å“Ç‚Ýo‚µ‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_USE_STRFUNC</tt>‚ª1‚Ü‚½‚Í2‚Ì‚Æ‚«Žg—p‰Â”\‚Å‚·B2‚Ì‚Æ‚«‚ÍAƒtƒ@ƒCƒ‹‚ÉŠÜ‚Ü‚ê‚é<tt>'\r'</tt>‚ªŽæ‚蜂©‚ê‚ăoƒbƒtƒ@‚É“Ç‚Ýž‚Ü‚ê‚Ü‚·B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="read.html">f_read</a>, <a href="putc.html">f_putc</a>, <a href="puts.html">f_puts</a>, <a href="printf.html">f_printf</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/lseek.html b/3rdparty/fatfs-0.10b/doc/ja/lseek.html
new file mode 100644
index 00000000..b9a6aa30
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/lseek.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/lseek.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_lseek</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_lseek</h2>
+<p>ƒtƒ@ƒCƒ‹‚̃Š[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚ðˆÚ“®‚µ‚Ü‚·B‚Ü‚½A‚‘¬ƒV[ƒN‹@”\Žg—pŽž‚É‚ÍCLMT(Œãq)‚Ì쬂ɂàŽg—p‚µ‚Ü‚·B</p>
+<pre>
+FRESULT f_lseek (
+ FIL* <span class="arg">fp</span>, <span class="c">/* [IN] ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^ */</span>
+ DWORD <span class="arg">ofs</span> <span class="c">/* [IN] ˆÚ“®æƒIƒtƒZƒbƒg */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>‘ÎÛ‚Æ‚È‚éƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+<dt>ofs</dt>
+<dd>ˆÚ“®æ‚̃IƒtƒZƒbƒg(ƒŠ[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^)’lBƒtƒ@ƒCƒ‹æ“ª‚©‚ç‚̃IƒtƒZƒbƒg‚ðƒoƒCƒg’PˆÊ‚ÅŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>ƒtƒ@ƒCƒ‹‚̃Š[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^(ŽŸ‚É“Ç‚Ýo‚µE‘‚«ž‚Ý‚³‚ê‚éƒoƒCƒg‚̃IƒtƒZƒbƒg)‚ðˆÚ“®‚µ‚Ü‚·BƒIƒtƒZƒbƒg‚ÌŒ´“_‚̓tƒ@ƒCƒ‹æ“ª‚Å‚·B‘‚«ž‚݃‚[ƒh‚Ńtƒ@ƒCƒ‹EƒTƒCƒY‚æ‚è‘å‚«‚È’l‚ðŽw’è‚·‚é‚ÆA‚»‚±‚܂Ńtƒ@ƒCƒ‹EƒTƒCƒY‚ªŠg’£‚³‚êAŠg’£‚³‚ꂽ•”•ª‚̃f[ƒ^‚Í–¢’è‹`‚Æ‚È‚è‚Ü‚·Bƒf[ƒ^‚ð’x‰„–³‚­‚‘¬‚É‘‚«ž‚Ý‚½‚¢‚Æ‚«‚ÍA—\‚ß‚±‚ÌŠÖ”‚Å•K—v‚ȃTƒCƒY‚܂Ńtƒ@ƒCƒ‹EƒTƒCƒY‚ðŠg’£‚µ‚Ä‚¨‚­‚Æ—Ç‚¢‚Å‚µ‚傤B<tt>f_lseek()</tt>‚ª³íI—¹‚µ‚½‚ ‚Æ‚ÍAƒŠ[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚ª³‚µ‚­ˆÚ“®‚µ‚½‚©ƒ`ƒFƒbƒN‚·‚é‚ׂ«‚Å‚·BƒŠ[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚ªŽw’è‚æ‚謂³‚¢‚Æ‚«‚ÍAŽŸ‚ÌŒ´ˆö‚ªl‚¦‚ç‚ê‚Ü‚·B</p>
+<ul>
+<li>”ñ‘‚«ž‚݃‚[ƒh‚Ü‚½‚Í‚‘¬ƒV[ƒNEƒ‚[ƒh‚Ì‚½‚ßAƒtƒ@ƒCƒ‹EƒTƒCƒY‚ŃNƒŠƒbƒv‚³‚ꂽB</li>
+<li>ƒtƒ@ƒCƒ‹Šg’£’†‚ɃfƒBƒXƒN‚ª–ž”t‚É‚È‚Á‚½B</li>
+</ul>
+<p><tt>_USE_FASTSEEK</tt>‚ª1‚ÅAŠŽ‚ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg‚Ì<tt>cltbl</tt>ƒƒ“ƒo‚ªNULLˆÈŠO(<tt>f_open()</tt>‚ÅNULL‚Éݒ肳‚ê‚é)‚Ì‚Æ‚«A‚‘¬ƒV[ƒNEƒ‚[ƒh‚É‚È‚è‚Ü‚·B‚±‚ê‚̓tƒ@ƒCƒ‹‚̃Nƒ‰ƒXƒ^”z’uî•ñ(CLMT)‚ðƒƒ‚ƒŠã‚É•ÛŽ‚µ‚Ä‚¨‚­‚±‚Æ‚É‚æ‚èAFAT‚ɃAƒNƒZƒX‚·‚邱‚Æ‚È‚­Œã•ûƒV[ƒN‚⃃“ƒOEƒV[ƒN‚ð‚‘¬‚És‚¤‹@”\‚Å‚·B‚‘¬ƒV[ƒNEƒ‚[ƒh‚ÍA<tt>f_read()/f_wtite()</tt>‚Ì“®ì‚É‚à“K—p‚³‚ê‚Ü‚·B‚‘¬ƒV[ƒNEƒ‚[ƒh‚Å‚Í<tt>f_wtite()/f_lseek()</tt>‚É‚æ‚éƒtƒ@ƒCƒ‹EƒTƒCƒY‚ÌŠg’£‚Í‚Å‚«‚Ü‚¹‚ñB</p>
+<p>‚‘¬ƒV[ƒN“®ì‚ðs‚¤‘O‚ÉACLMT‚ð쬂µ‚Ä‚¨‚­•K—v‚ª‚ ‚è‚Ü‚·B‚±‚ê‚ð쬂·‚é‚É‚ÍA‚Ü‚¸CLMTŠi”[ƒoƒbƒtƒ@(<tt>DWORD</tt>Œ^”z—ñ)‚ð€”õ‚µA<tt>cltbl</tt>ƒƒ“ƒo‚É‚»‚̃|ƒCƒ“ƒ^‚ðƒZƒbƒg‚µ‚Ü‚·B‚»‚µ‚ÄA”z—ñ‚Ì擪—v‘f‚É‚»‚Ì”z—ñ‚̃TƒCƒY(—v‘f”)‚ð“ü‚êA<tt>f_lseek()</tt>‚ð<tt class="arg">ofs</tt>‚É<tt>CREATE_LINKMAP</tt>‚ðŽw’肵‚ČĂÑo‚µ‚Ü‚·BŠÖ”‚ª¬Œ÷‚·‚é‚ÆCLMT‚ªì¬‚³‚êAˆÈ~‚Ì<tt>f_read()/f_write()/f_lseek()</tt>‚Å‚ÍFAT‚ւ̃AƒNƒZƒX‚Í”­¶‚µ‚Ü‚¹‚ñB<tt>FR_NOT_ENOUGH_CORE</tt>‚ÅŽ¸”s‚µ‚½‚Æ‚«‚Í”z—ñƒTƒCƒY‚ª•s‘«‚ÅA擪—v‘f‚É‚ÍŽÀÛ‚É•K—v‚Æ‚È‚é—v‘f”‚ª•Ô‚³‚ê‚Ü‚·B•K—v‚È—v‘f”‚ÍA(ƒtƒ@ƒCƒ‹‚Ì•ªŠ„” + 1) * 2 ‚Å‚·B‚½‚Æ‚¦‚ÎAƒtƒ@ƒCƒ‹‚ª5‚‚̃tƒ‰ƒOƒƒ“ƒg‚É•ª’f‚³‚ê‚Ä‚¢‚é‚Æ‚«‚É•K—v‚È—v‘f”‚ÍA12‚Æ‚È‚è‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_MINIMIZE &lt; 3</tt>‚Ì‚Æ‚«Žg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para use">
+<h4>Žg—p—á</h4>
+<pre>
+ <span class="c">/* ƒtƒ@ƒCƒ‹‚ðŠJ‚­ */</span>
+ fp = malloc(sizeof (FIL));
+ res = f_open(fp, "file.dat", FA_READ|FA_WRITE);
+ if (res) ...
+
+ <span class="c">/* ƒtƒ@ƒCƒ‹EƒIƒtƒZƒbƒg5000‚ÖˆÚ“® */</span>
+ res = f_lseek(fp, 5000);
+
+ <span class="c">/* ƒtƒ@ƒCƒ‹I’[‚ÖˆÚ“®(ƒtƒ@ƒCƒ‹’Ç‹L‚Ì€”õ) */</span>
+ res = f_lseek(fp, f_size(fp));
+
+ <span class="c">/* 3000ƒoƒCƒgi‚ß‚é */</span>
+ res = f_lseek(fp, f_tell(fp) + 3000);
+
+ <span class="c">/* 2000ƒoƒCƒg–ß‚· (ƒ‰ƒbƒvƒAƒ‰ƒEƒ“ƒh‚É’ˆÓ) */</span>
+ res = f_lseek(fp, f_tell(fp) - 2000);
+</pre>
+<pre>
+<span class="c">/* ƒNƒ‰ƒXƒ^æsŠ„‚è“–‚Ä (ƒXƒgƒŠ[ƒ~ƒ“ƒOEƒ‰ƒCƒgŽž‚̃oƒbƒtƒ@EƒI[ƒo[ƒ‰ƒ“–hŽ~) */</span>
+
+ res = f_open(fp, "record.wav", FA_CREATE_NEW | FA_WRITE); <span class="c">/* ƒtƒ@ƒCƒ‹ì¬ */</span>
+
+ res = f_lseek(fp, MAX_SIZE); <span class="c">/* \•ª‚ȃNƒ‰ƒXƒ^‚ÌæsŠ„‚è“–‚Ä */</span>
+ if (res || f_tell(fp) != PRE_SIZE) ... <span class="c">/* ³‚µ‚­ƒtƒ@ƒCƒ‹‚ªŠg’£‚³‚ꂽ‚©ƒ`ƒFƒbƒN */</span>
+
+ res = f_lseek(fp, DATA_START); <span class="c">/* ƒf[ƒ^EƒXƒgƒŠ[ƒ€‚Ì‹L˜^(ƒAƒƒP[ƒVƒ‡ƒ“ƒfƒBƒŒƒC–³‚µ) */</span>
+ ...
+
+ res = f_truncate(fp); <span class="c">/* •s—v—̈æ‚ÌØ‚èŽÌ‚Ä */</span>
+ res = f_lseek(fp, 0); <span class="c">/* ƒwƒbƒ_‚Ì‹L˜^ */</span>
+ ...
+
+ res = f_close(fp);
+</pre>
+<pre>
+<span class="c">/* ‚‘¬ƒV[ƒN‹@”\‚ðŽg‚¤ */</span>
+
+ DWORD clmt[SZ_TBL]; <span class="c">/* ƒŠƒ“ƒNEƒ}ƒbƒvEƒe[ƒuƒ‹Ši”[ƒoƒbƒtƒ@ */</span>
+
+ res = f_lseek(fp, ofs1); <span class="c">/* ’ÊíƒV[ƒN (ƒI[ƒvƒ“ŽžAcltbl‚ÍNULL‚ɉŠú‰»‚³‚ê‚é) */</span>
+
+ fp-&gt;cltbl = clmt; <span class="c">/* ‚‘¬ƒV[ƒN‹@”\‚Ì—LŒø‰» */</span>
+ clmt[0] = SZ_TBL; <span class="c">/* 擪—v‘f‚É”z—ñ—v‘f”‚ðƒZƒbƒg */</span>
+ res = f_lseek(fp, CREATE_LINKMAP); <span class="c">/* CLMT‚Ìì¬ */</span>
+ ...
+
+ res = f_lseek(fp, ofs2); <span class="c">/* ˆÈ~Af_read/f_write/f_lseek‚ÅFATƒAƒNƒZƒX‚Í”­¶‚µ‚È‚¢ */</span>
+</pre>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/mkdir.html b/3rdparty/fatfs-0.10b/doc/ja/mkdir.html
new file mode 100644
index 00000000..a0f71580
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/mkdir.html
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/mkdir.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_mkdir</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_mkdir</h2>
+<p>ƒfƒBƒŒƒNƒgƒŠ‚ð쬂µ‚Ü‚·B</p>
+<pre>
+FRESULT f_mkdir (
+ const TCHAR* <span class="arg">path</span> <span class="c">/* [IN] 쬂·‚éƒfƒBƒŒƒNƒgƒŠ–¼‚ւ̃|ƒCƒ“ƒ^ */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>쬂·‚éƒfƒBƒŒƒNƒgƒŠ‚Ì<a href="filename.html">ƒpƒX–¼</a>‚ðŽ¦‚·ƒkƒ‹•¶Žš<tt>'\0'</tt>I’[‚Ì•¶Žš—ñ‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#de">FR_DENIED</a>,
+<a href="rc.html#ex">FR_EXIST</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>‹ó‚̃fƒBƒŒƒNƒgƒŠ‚ð쬂µ‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_READONLY == 0</tt>‚ÅAŠŽ‚Â<tt>_FS_MINIMIZE == 0</tt>‚Ì‚Æ‚«Žg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para use">
+<h4>Žg—p—á</h4>
+<pre>
+ res = f_mkdir("sub1");
+ if (res) die(res);
+ res = f_mkdir("sub1/sub2");
+ if (res) die(res);
+ res = f_mkdir("sub1/sub2/sub3");
+ if (res) die(res);
+</pre>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/mkfs.html b/3rdparty/fatfs-0.10b/doc/ja/mkfs.html
new file mode 100644
index 00000000..9a7465f9
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/mkfs.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/mkfs.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_mkfs</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_mkfs</h2>
+<p>˜_—ƒhƒ‰ƒCƒuã‚ÉFATƒ{ƒŠƒ…[ƒ€‚ðì¬(ƒtƒH[ƒ}ƒbƒg)‚µ‚Ü‚·B</p>
+<pre>
+FRESULT f_mkfs (
+ const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] ˜_—ƒhƒ‰ƒCƒu”Ô† */</span>
+ BYTE <span class="arg">sfd</span>, <span class="c">/* [IN] ‹æ‰æ쬕û–@ */</span>
+ UINT <span class="arg">au</span> <span class="c">/* [IN] ƒNƒ‰ƒXEƒ^ƒTƒCƒY */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>ƒtƒH[ƒ}ƒbƒg‘Îۂ̘_—ƒhƒ‰ƒCƒu‚ðŽ¦‚·<a href="filename.html">ƒpƒX–¼</a>‚ðŽ¦‚·ƒkƒ‹•¶Žš<tt>'\0'</tt>I’[‚Ì•¶Žš—ñ‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·Bƒhƒ‰ƒCƒu”Ô†‚ðŠÜ‚Ü‚È‚¢ê‡‚ÍAƒJƒŒƒ“ƒgEƒhƒ‰ƒCƒu‚ðˆÓ–¡‚µ‚Ü‚·B</dd>
+<dt>sfd</dt>
+<dd>ƒp[ƒe[ƒVƒ‡ƒ“Œ`Ž®B(0(FDISK) ‚Ü‚½‚Í 1(SFD))</dd>
+<dt>au</dt>
+<dd>ƒNƒ‰ƒXƒ^EƒTƒCƒY‚ðƒoƒCƒg’PˆÊ‚ÅŽw’肵‚Ü‚·B’l‚Í‘ÎÛƒhƒ‰ƒCƒu‚̃ZƒNƒ^EƒTƒCƒY‚Ìn”{(n = 1`128‚ÅA2‚Ì—Ýæ)‚Å‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB0‚È‚Ç‚Ì–³Œø’l‚ðŽw’肵‚½ê‡Aƒ{ƒŠƒ…[ƒ€‚̃TƒCƒY‚ɉž‚¶‚½ƒfƒtƒHƒ‹ƒg‚̃Nƒ‰ƒXƒ^EƒTƒCƒY‚ª‘I‘ð‚³‚ê‚Ü‚·B</dd>
+</dl>
+</div>
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ma">FR_MKFS_ABORTED</a>,
+<a href="rc.html#ip">FR_INVALID_PARAMETER</a>
+</p>
+</div>
+
+<div class="para desc">
+<h4>à–¾</h4>
+<p>•¨—ƒhƒ‰ƒCƒuã‚ÉFATƒ{ƒŠƒ…[ƒ€‚ð쬂µ‚Ü‚·BFDISKŒ`Ž®‚ªŽw’肳‚ꂽꇂÍA•¨—ƒhƒ‰ƒCƒu‘S‘Ì‚ðè‚ß‚éŠî–{‹æ‰æ(ƒp[ƒe[ƒVƒ‡ƒ“)‚ªì¬‚³‚êA‚»‚Ì’†‚ÉFATƒ{ƒŠƒ…[ƒ€‚ªì¬‚³‚ê‚Ü‚·BSFDŒ`Ž®‚Å‚ÍAFATƒ{ƒŠƒ…[ƒ€‚ª•¨—ƒhƒ‰ƒCƒu‚Ì擪ƒZƒNƒ^‚©‚çƒxƒ^‚Å쬂³‚ê‚Ü‚·B</p>
+<p>ƒtƒH[ƒ}ƒbƒg‚·‚é˜_—ƒhƒ‰ƒCƒu‚ªƒ}ƒ‹ƒ`Eƒp[ƒe[ƒVƒ‡ƒ“‹@”\(<tt>_MULTI_PARTITION</tt>)‚É‚æ‚Á‚Ä“Á’è‚Ì‹æ‰æ(1`4)‚ÉŒ‹‚Ñ•t‚¯‚ç‚ê‚Ä‚¢‚éꇂÍA‚»‚Ì‹æ‰æ‚Ì’†‚ÉFATƒ{ƒŠƒ…[ƒ€‚ªì¬‚³‚ê‚Ü‚·B<tt class="arg">sfd</tt>‚Í–³Ž‹‚³‚êA‚Ü‚½‘Ήž‚·‚镨—ƒhƒ‰ƒCƒu‚Í‚±‚ê‚Éæ—§‚¿A<tt>f_fdisk()</tt>‚Ü‚½‚Í‘¼‚̃c[ƒ‹‚Å“KØ‚É‹æ‰æݒ肳‚ê‚Ä‚¢‚é•K—v‚ª‚ ‚è‚Ü‚·B</p>
+<p>ƒp[ƒe[ƒVƒ‡ƒ“Œ`Ž®‚É‚ÍAFDISKŒ`Ž®‚ÆSFDŒ`Ž®‚Ì“ñ’Ê‚è‚ ‚è‚Ü‚·BFDISKŒ`Ž®‚ÍAƒn[ƒhƒfƒBƒXƒNAMMCASDCACFCAU Disk‚È‚Ç‚Å•W€“I‚ÉŽg—p‚³‚ê‚Ü‚·BFDISKŒ`Ž®‚ł͈ê‘ä‚Ì•¨—ƒhƒ‰ƒCƒuã‚Ɉê‚‚܂½‚Í•¡”‚Ì‹æ‰æ‚ð쬂·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B‹æ‰æŠÇ—î•ñ‚ÍMBR(•¨—ƒhƒ‰ƒCƒu‚Ì擪ƒZƒNƒ^)‚É‹L˜^‚³‚ê‚Ü‚·BSFDŒ`Ž®‚Í’P‚ɉ½‚Ì•ªŠ„‚às‚í‚È‚¢Œ`Ž®‚ÅAƒ{ƒŠƒ…[ƒ€‚Í•¨—ƒhƒ‰ƒCƒu‚Ì擪ƒZƒNƒ^‚©‚çŠJŽn‚µ‚Ü‚·BSFDŒ`Ž®‚ÍAƒtƒƒbƒs[EƒfƒBƒXƒNAƒ}ƒCƒNƒƒhƒ‰ƒCƒuAŒõŠwƒfƒBƒXƒNA‚¨‚æ‚Ñ‚»‚Ì‘¼ƒX[ƒp[Eƒtƒƒbƒs[EƒƒfƒBƒA‚Å•W€“I‚ÉŽg—p‚³‚ê‚Ä‚¢‚Ü‚·B</p>
+<p>FATƒ^ƒCƒv(FAT12/FAT16/FAT32)‚ÍA‚»‚̃{ƒŠƒ…[ƒ€ã‚Ì<em>ƒNƒ‰ƒXƒ^”‚É‚æ‚Á‚Ä‚Ì‚ÝŒˆ’è</em>‚³‚ê‚錈‚Ü‚è[FATŽd—l‘‚æ‚è]‚É‚È‚Á‚Ä‚¢‚ÄA‚»‚êˆÈŠO‚Ì—vˆö‚Í‚ ‚è‚Ü‚¹‚ñB‚µ‚½‚ª‚Á‚ÄA‚Ç‚ÌFATƒ^ƒCƒv‚É‚È‚é‚©‚̓{ƒŠƒ…[ƒ€EƒTƒCƒY‚ƃNƒ‰ƒXƒ^EƒTƒCƒY‚Ɉˑ¶‚µ‚Ü‚·BƒNƒ‰ƒXƒ^EƒTƒCƒY‚Í‘å‚«‚­‚·‚é‚Ù‚Ç«”\‚ªã‚ª‚è‚Ü‚·B</p>
+<p>ƒNƒ‰ƒXƒ^”‚ªFATƒ^ƒCƒv‚Ì‹«ŠE‚É‹ß‚­‚È‚é‚Æ‚«‚ÍA<tt>FR_MKFS_ABORTED</tt>‚ÅŠÖ”‚ªŽ¸”s‚·‚é‰Â”\«‚ª‚ ‚è‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_READONLY == 0</tt>‚ÅAŠŽ‚Â<tt>_USE_MKFS == 1</tt>‚Ì‚Æ‚«Žg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="filename.html#vol">ƒ{ƒŠƒ…[ƒ€ŠÇ—</a>, <a href="fdisk.html">f_fdisk</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/mount.html b/3rdparty/fatfs-0.10b/doc/ja/mount.html
new file mode 100644
index 00000000..0a9bc4eb
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/mount.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/mount.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_mount</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_mount</h2>
+<p>˜_—ƒhƒ‰ƒCƒu‚Ƀtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚ð“o˜^E–•Á‚µ‚Ü‚·B</p>
+<pre>
+FRESULT f_mount (
+ FATFS* <span class="arg">fs</span>, <span class="c">/* [IN] ƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg */</span>
+ const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] ˜_—ƒhƒ‰ƒCƒu”Ô† */</span>
+ BYTE <span class="arg">opt</span> <span class="c">/* [IN] ƒIƒvƒVƒ‡ƒ“ */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>fs</dt>
+<dd>“o˜^‚·‚éƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚ւ̃|ƒCƒ“ƒ^B</dd>
+<dt>path</dt>
+<dd>‘ÎÛ‚Æ‚È‚é˜_—ƒhƒ‰ƒCƒu‚Ì<a href="filename.html">ƒpƒX–¼</a>‚ðŽ¦‚·ƒkƒ‹•¶Žš'\0'I’[‚Ì•¶Žš—ñ‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·Bƒhƒ‰ƒCƒu”Ô†‚ðŠÜ‚Ü‚È‚¢ê‡‚ÍAƒfƒtƒHƒ‹ƒgEƒhƒ‰ƒCƒu‚ðŽw’肵‚½‚±‚Æ‚É‚È‚è‚Ü‚·B</dd>
+<dt>opt</dt>
+<dd>ƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚Ì“o˜^‚Æ“¯Žž‚Ƀ}ƒEƒ“ƒg“®ì‚ðs‚¤‚©‚Ç‚¤‚©‚ðŽw’è‚·‚éƒtƒ‰ƒOB“o˜^–•Á‚Ì‚Æ‚«‚͈Ӗ¡‚ðŽ‚¿‚Ü‚¹‚ñB</dd>
+</dl>
+</div>
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>FatFsƒ‚ƒWƒ…[ƒ‹‚Å‚ÍA‚»‚ꂼ‚ê‚̘_—ƒhƒ‰ƒCƒu‚É<em>ƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg</em>‚Æ‚¢‚¤ƒ[ƒNEƒGƒŠƒA‚ª•K—v‚Å‚·B‚±‚ÌŠÖ”‚͘_—ƒhƒ‰ƒCƒu‚Ƀtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚ð“o˜^‚µ‚½‚è–•Á‚µ‚½‚肵‚Ü‚·B‰½‚ç‚©‚̃tƒ@ƒCƒ‹ŠÖ”‚ðŽg—p‚·‚é‘O‚ÉA‚±‚ÌŠÖ”‚Å‚»‚̘_—ƒhƒ‰ƒCƒu‚̃tƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚ð—^‚¦‚Ä‚¨‚©‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB<tt class="arg">fs</tt>‚Ƀkƒ‹Eƒ|ƒCƒ“ƒ^‚ðŽw’è‚·‚é‚ÆA‚»‚̘_—ƒhƒ‰ƒCƒu‚̃tƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚Ì“o˜^‚Í–•Á‚³‚ê‚邾‚¯‚Å‚·B“o˜^–•Á‚³‚ꂽƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚̃ƒ‚ƒŠ‚͉ð•ú‚Å‚«‚Ü‚·B‘€ì‘Îۂ̘_—ƒhƒ‰ƒCƒuã‚ÉŠJ‚©‚ê‚Ä‚¢‚éƒtƒ@ƒCƒ‹‚âƒfƒBƒŒƒNƒgƒŠ‚ª‚ ‚Á‚½ê‡A‚»‚ê‚ç‚Í‘S‚Ä–³Œø‚É‚È‚è‚Ü‚·B‚±‚ÌŠÖ”‚Ì“à•”ˆ—‚ÍŽŸ‚̂悤‚ȇ‚És‚í‚ê‚Ü‚·B</p>
+<ol>
+<li>‘Îۂ̘_—ƒhƒ‰ƒCƒu‚ð<tt class="arg">path</tt>‚©‚瓾‚éB</li>
+<li>Šù‚É“o˜^‚³‚ê‚Ä‚¢‚éƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚̓NƒŠƒA‚µA“o˜^‚ð‰ðœ‚·‚éB</li>
+<li><tt class="arg">fs</tt>‚ª—LŒø‚ȃ|ƒCƒ“ƒ^‚Ì‚Æ‚«‚ÍA‚»‚̃tƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚ðƒNƒŠƒA‚µ“o˜^‚·‚éB</li>
+<li>ƒ}ƒEƒ“ƒg“®ì‚ªŽw’肳‚ê‚Ä‚¢‚é‚Æ‚«‚ÍA‚»‚ê‚ðŽÀs‚·‚éB</li>
+</ol>
+<p><tt class="arg">opt</tt>‚É0‚ðŽw’è‚·‚é‚ÆAƒ}ƒEƒ“ƒg“®ì(•¨—ƒhƒ‰ƒCƒu‚̉Šú‰»AFATƒ{ƒŠƒ…[ƒ€‚ÌŒŸõABPB‚ð‰ðÍ‚µƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚ð‰Šú‰»)‚Ís‚í‚ꂸAŠÖ”‚Í•¨—ƒhƒ‰ƒCƒu‚Ìó‘Ô‚ÉŠÖ‚í‚炸í‚ɬŒ÷‚µ‚Ü‚·BŠÖ”“à‚ł͉ºˆÊƒŒƒCƒ„‚ւ̃AƒNƒZƒX‚Í”­¶‚¹‚¸AŽw’肳‚ꂽƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚ðƒNƒŠƒA(–³Œø‰»)‚µA‚»‚̃AƒhƒŒƒX‚ð“à•””z—ñ‚É“o˜^‚·‚邾‚¯‚Å‚·B’P‚É“o˜^ς݂̃tƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚ðƒNƒŠƒA‚·‚é–Ú“I‚É‚àŽg‚¦‚Ü‚·B‚»‚µ‚ÄA‘±‚¢‚ă{ƒŠƒ…[ƒ€‚ւ̃AƒNƒZƒX‚ªs‚í‚ꂽ‚Æ‚«ŽŸ‚Ì‚¤‚¿‚¢‚¸‚ê‚©‚Å‚à^‚ÌꇂÍAŽÀۂ̃}ƒEƒ“ƒg“®ì‚ªs‚í‚ê‚Ü‚·B</p>
+<ul>
+<li>ƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚ªƒNƒŠƒA(–³Œø)ó‘Ô(<tt>f_mount()</tt>‚ÌŽÀs‚É‚æ‚é)</li>
+<li>•¨—ƒhƒ‰ƒCƒu‚ª–¢‰Šú‰»ó‘Ô(ƒVƒXƒeƒ€EƒŠƒZƒbƒg‚⃃fƒBƒA‚ÌŒðŠ·‚É‚æ‚é)</li>
+</ul>
+<p><tt class="arg">opt</tt>‚É1‚ðŽw’è‚·‚é‚ÆA“o˜^‚É‘±‚¢‚ă}ƒEƒ“ƒg“®ì‚ªs‚í‚ê‚Ü‚·Bƒ}ƒEƒ“ƒg‚ÉŽ¸”s‚·‚é‚ƑΉž‚·‚éƒGƒ‰[‚ð•Ô‚µ‚Ü‚·‚ªA“o˜^‚Í—LŒø‚È‚Ì‚Å‘±‚­ƒ{ƒŠƒ…[ƒ€‚ւ̃AƒNƒZƒX‚ÅĂу}ƒEƒ“ƒg“®ì‚ªŽÀs‚³‚ê‚Ü‚·B<p>
+<p>‰ºˆÊƒŒƒCƒ„‚ÌŽÀ‘•ãƒƒfƒBƒAŒðŠ·‚ÌŒŸo‚ªƒTƒ|[ƒg‚³‚ê‚È‚¢(<tt>disk_status()</tt>‚É”½‰f‚³‚ê‚È‚¢)‚Æ‚«‚ÍAƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚̓ƒfƒBƒAŒðŠ·‚̌ケ‚ÌŠÖ”‚Ńtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚𖾎¦“I‚ɃNƒŠƒA‚µ‚Äă}ƒEƒ“ƒg‚ª³í‚És‚¦‚é‚悤‚É‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p>‘S‚Ä‚Ì\¬‚ÅŽg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="open.html">f_open</a></tt>, <tt><a href="sfatfs.html">FATFS</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/open.html b/3rdparty/fatfs-0.10b/doc/ja/open.html
new file mode 100644
index 00000000..8ee3b2bc
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/open.html
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/open.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_open</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_open</h2>
+<p>ƒtƒ@ƒCƒ‹‚ðƒI[ƒvƒ“‚Ü‚½‚Í쬂µ‚Ü‚·B</p>
+<pre>
+FRESULT f_open (
+ FIL* <span class="arg">fp</span>, <span class="c">/* [OUT] ‹ó‚̃tƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^ */</span>
+ const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] ƒtƒ@ƒCƒ‹–¼‚ւ̃|ƒCƒ“ƒ^ */</span>
+ BYTE <span class="arg">mode</span> <span class="c">/* [IN] ƒ‚[ƒhƒtƒ‰ƒO */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>V‚µ‚­ì¬‚·‚éƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·BˆÈ~A‚»‚̃tƒ@ƒCƒ‹‚ð•Â‚¶‚é‚Ü‚Å‚±‚̃tƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg‚ðŽg—p‚µ‚ătƒ@ƒCƒ‹‘€ì‚ð‚µ‚Ü‚·B</dd>
+<dt>path</dt>
+<dd>ŠJ‚­ƒtƒ@ƒCƒ‹‚Ì<a href="filename.html">ƒtƒ@ƒCƒ‹–¼</a>‚ðŽ¦‚·ƒkƒ‹•¶Žš<tt>'\0'</tt>I’[‚Ì•¶Žš—ñ‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+<dt>mode</dt>
+<dd>ƒtƒ@ƒCƒ‹‚̃AƒNƒZƒX•û–@‚âƒI[ƒvƒ“•û–@‚ðŒˆ‚ß‚éƒtƒ‰ƒO‚Å‚·B‚±‚̃pƒ‰ƒ[ƒ^‚É‚ÍŽŸ‚Ì‘g‚݇‚킹‚ðŽw’肵‚Ü‚·B<br>
+<table class="lst">
+<tr><th>’l</th><th>ˆÓ–¡</th></tr>
+<tr><td>FA_READ</td><td>“Ç‚Ýo‚µƒ‚[ƒh‚ÅŠJ‚«‚Ü‚·B“Ç‚Ý‘‚«‚·‚éꇂÍ<tt>FA_WRITE</tt>‚Æ‹¤‚ÉŽw’肵‚Ü‚·B</td></tr>
+<tr><td>FA_WRITE</td><td>‘‚«ž‚݃‚[ƒh‚ÅŠJ‚«‚Ü‚·B“Ç‚Ý‘‚«‚·‚éꇂÍ<tt>FA_READ</tt>‚Æ‹¤‚ÉŽw’肵‚Ü‚·B</td></tr>
+<tr><td>FA_OPEN_EXISTING</td><td>Šù‘¶‚̃tƒ@ƒCƒ‹‚ðŠJ‚«‚Ü‚·Bƒtƒ@ƒCƒ‹‚ª–³‚¢‚Æ‚«‚̓Gƒ‰[‚É‚È‚è‚Ü‚·B(ƒfƒtƒHƒ‹ƒg)</td></tr>
+<tr><td>FA_OPEN_ALWAYS</td><td>Šù‘¶‚̃tƒ@ƒCƒ‹‚ðŠJ‚«‚Ü‚·Bƒtƒ@ƒCƒ‹‚ª–³‚¢‚Æ‚«‚̓tƒ@ƒCƒ‹‚ð쬂µ‚Ü‚·B’Ç‹L‚ÌꇂÍA‚±‚Ì•û–@‚ŃI[ƒvƒ“‚µ‚½ŒãA<a href="lseek.html"><tt>f_lseek()</tt></a>‚Ńtƒ@ƒCƒ‹‚ÌÅŒã”ö‚Ɉړ®‚µ‚Ä‚­‚¾‚³‚¢B</td></tr>
+<tr><td>FA_CREATE_NEW</td><td>ƒtƒ@ƒCƒ‹‚ð쬂µ‚Ü‚·B“¯–¼‚̃tƒ@ƒCƒ‹‚ª‚ ‚éꇂÍA<tt>FR_EXIST</tt>‚ÅŽ¸”s‚µ‚Ü‚·B</td></tr>
+<tr><td>FA_CREATE_ALWAYS</td><td>ƒtƒ@ƒCƒ‹‚ð쬂µ‚Ü‚·B“¯–¼‚̃tƒ@ƒCƒ‹‚ª‚ ‚éꇂÍAƒTƒCƒY‚ð0‚É‚µ‚Ä‚©‚çŠJ‚«‚Ü‚·B</td></tr>
+</table>
+</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ok">FR_NO_FILE</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#de">FR_DENIED</a>,
+<a href="rc.html#ex">FR_EXIST</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#lo">FR_LOCKED</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>,
+<a href="rc.html#tf">FR_TOO_MANY_OPEN_FILES</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>Šù‘¶‚̃tƒ@ƒCƒ‹‚ðŠJ‚¢‚½‚èAV‚µ‚¢ƒtƒ@ƒCƒ‹‚ð쬂µ‚Ü‚·BŠÖ”‚ª¬Œ÷‚·‚é‚ƃtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg‚ªì¬‚³‚êAˆÈ~‚»‚̃tƒ@ƒCƒ‹‚ɑ΂·‚éƒAƒNƒZƒX‚ÉŽg—p‚µ‚Ü‚·Bƒtƒ@ƒCƒ‹‚ð•Â‚¶‚é‚Æ‚«‚ÍA<a href="close.html"><tt>f_close()</tt></a>‚ðŽg—p‚µ‚Ü‚·B‰½‚ç‚©‚Ì•ÏX‚ªs‚í‚ꂽƒtƒ@ƒCƒ‹‚ª‚»‚̌㳂µ‚­•Â‚¶‚ç‚ê‚È‚©‚Á‚½ê‡A‚»‚̃tƒ@ƒCƒ‹‚ª”j‘¹‚·‚éꇂª‚ ‚è‚Ü‚·B</p>
+<p>Šù‚ÉŠJ‚©‚ê‚Ä‚¢‚éƒtƒ@ƒCƒ‹‚ðŠJ‚­•K—v‚ª‚ ‚éꇂÍA<a href="appnote.html#dup">‘½dƒAƒNƒZƒX§Œä</a>‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B‚µ‚©‚µAˆê‚‚̃tƒ@ƒCƒ‹‚ɑ΂·‚é‘‚«ž‚݃‚[ƒh‚ðŠÜ‚Þd•¡ƒI[ƒvƒ“‚Íí‚É‹ÖŽ~‚Å‚·B</p>
+<p>ƒtƒ@ƒCƒ‹EƒAƒNƒZƒX‚ðŠJŽn‚·‚é‘O‚ÉA<a href="mount.html"><tt>f_mount()</tt></a>‚ðŽg‚Á‚Ä‚»‚ꂼ‚ê‚̘_—ƒhƒ‰ƒCƒu‚Ƀ[ƒNEƒGƒŠƒA(ƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg)‚ð—^‚¦‚é•K—v‚ª‚ ‚è‚Ü‚·B‚±‚̉Šú‰»‚ÌŒãA‚»‚̘_—ƒhƒ‰ƒCƒu‚ɑ΂µ‚Ä‘S‚Ẵtƒ@ƒCƒ‹ŠÖ”‚ªŽg‚¦‚é‚悤‚É‚È‚è‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p>‘S‚Ä‚Ì\¬‚ÅŽg—p‰Â”\‚Å‚·B<tt>_FS_READONLY == 1</tt>‚Ì‚Æ‚«‚ÍA<tt>FA_WRITE, FA_CREATE_ALWAYS, FA_CREATE_NEW, FA_OPEN_ALWAYS</tt>‚ÌŠeƒtƒ‰ƒO‚̓Tƒ|[ƒg‚³‚ê‚Ü‚¹‚ñB</p>
+</div>
+
+
+<div class="para use">
+<h4>Žg—p—á</h4>
+<pre>
+<span class="c">/* ƒeƒLƒXƒgƒtƒ@ƒCƒ‹‚ð“Ç‚Ýo‚µ‚Ä•\Ž¦ */</span>
+
+FATFS FatFs; <span class="c">/* ˜_—ƒhƒ‰ƒCƒu‚̃[ƒNEƒGƒŠƒA(ƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg) */</span>
+
+int main (void)
+{
+ FIL fil; <span class="c">/* ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg */</span>
+ char line[82]; <span class="c">/* sƒoƒbƒtƒ@ */</span>
+ FRESULT fr; <span class="c">/* –ß‚è’l */</span>
+
+
+ <span class="c">/* ƒfƒtƒHƒ‹ƒgEƒhƒ‰ƒCƒu‚Ƀ[ƒNƒGƒŠƒA‚ð—^‚¦‚é */</span>
+ f_mount(&amp;FatFs, "", 0);
+
+ <span class="c">/* ƒeƒLƒXƒgEƒtƒ@ƒCƒ‹‚ðŠJ‚­ */</span>
+ fr = f_open(&amp;fil, "message.txt", FA_READ);
+ if (fr) return (int)fr;
+
+ <span class="c">/* 1s‚¸‚“ǂÝo‚µ‚Ä•\Ž¦ */</span>
+ while (f_gets(line, sizeof line, &amp;fil))
+ printf(line);
+
+ <span class="c">/* ƒtƒ@ƒCƒ‹‚ð•Â‚¶‚é */</span>
+ f_close(&amp;fil);
+
+ return 0;
+}
+</pre>
+<pre>
+<span class="c">/* ƒhƒ‰ƒCƒu1‚̃tƒ@ƒCƒ‹ "file.bin" ‚ðƒhƒ‰ƒCƒu0‚ÖƒRƒs[ */</span>
+
+int main (void)
+{
+ FATFS fs[2]; <span class="c">/* ˜_—ƒhƒ‰ƒCƒu‚̃[ƒNƒGƒŠƒA(ƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg) */</span>
+ FIL fsrc, fdst; <span class="c">/* ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg */</span>
+ BYTE buffer[4096]; <span class="c">/* File copy buffer */</span>
+ FRESULT fr; <span class="c">/* FatFs function common result code */</span>
+ UINT br, bw; <span class="c">/* File R/W count */</span>
+
+ <span class="c">/* ƒhƒ‰ƒCƒu0,1‚Ƀ[ƒNEƒGƒŠƒA‚ð—^‚¦‚é */</span>
+ f_mount(&amp;fs[0], "0:", 0);
+ f_mount(&amp;fs[1], "1:", 0);
+
+ <span class="c">/* ƒhƒ‰ƒCƒu1‚̃Rƒs[Œ³ƒtƒ@ƒCƒ‹‚ðŠJ‚­ */</span>
+ res = f_open(&amp;fsrc, "1:file.dat", FA_OPEN_EXISTING | FA_READ);
+ if (fr) return (int)fr;
+
+ <span class="c">/* ƒhƒ‰ƒCƒu0‚ɃRƒs[æƒtƒ@ƒCƒ‹‚ð쬂·‚é */</span>
+ res = f_open(&amp;fdst, "0:file.dat", FA_CREATE_ALWAYS | FA_WRITE);
+ if (fr) return (int)fr;
+
+ <span class="c">/* ƒRƒs[Œ³‚©‚çƒRƒs[æ‚Ƀf[ƒ^“]‘—‚·‚é */</span>
+ for (;;) {
+ res = f_read(&amp;fsrc, buffer, sizeof buffer, &amp;br); <span class="c">/* ƒRƒs[Œ³‚©‚ç‚©‚ç“Ç‚Ýo‚· */</span>
+ if (res || br == 0) break; <span class="c">/* ƒGƒ‰[‚©ƒtƒ@ƒCƒ‹I’[ */</span>
+ res = f_write(&amp;fdst, buffer, br, &amp;bw); <span class="c">/* ‚»‚ê‚ðƒRƒs[æ‚É‘‚«ž‚Þ */</span>
+ if (res || bw &lt; br) break; <span class="c">/* ƒGƒ‰[‚©ƒfƒBƒXƒN–ž”t */</span>
+ }
+
+ <span class="c">/* ‘S‚Ẵtƒ@ƒCƒ‹‚ð•Â‚¶‚é */</span>
+ f_close(&amp;fsrc);
+ f_close(&amp;fdst);
+
+ <span class="c">/* ƒ[ƒNEƒGƒŠƒA‚ðŠJ•ú‚·‚é */</span>
+ f_mount(NULL, "0:", 0);
+ f_mount(NULL, "1:", 0);
+
+ return (int)fr;
+}
+</pre>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="read.html">f_read</a>, <a href="write.html">f_write</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a>, <a href="sfatfs.html">FATFS</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/opendir.html b/3rdparty/fatfs-0.10b/doc/ja/opendir.html
new file mode 100644
index 00000000..88aa62ea
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/opendir.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/opendir.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_opendir</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_opendir</h2>
+<p>ƒfƒBƒŒƒNƒgƒŠ‚ðŠJ‚«‚Ü‚·B</p>
+<pre>
+FRESULT f_opendir (
+ DIR* <span class="arg">dp</span>, <span class="c">/* [OUT] ƒfƒBƒŒƒNƒgƒŠEƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^ */</span>
+ const TCHAR* <span class="arg">path</span> <span class="c">/* [IN] ƒfƒBƒŒƒNƒgƒŠ–¼‚ւ̃|ƒCƒ“ƒ^ */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>dp</dt>
+<dd>‹ó‚̃fƒBƒŒƒNƒgƒŠEƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+<dt>path</dt>
+<dd>ƒI[ƒvƒ“‚·‚éƒfƒBƒŒƒNƒgƒŠ‚Ì<a href="filename.html">ƒpƒX–¼</a>‚ðŽ¦‚·ƒkƒ‹•¶Žš<tt>'\0'</tt>I’[‚Ì•¶Žš—ñ‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>,
+<a href="rc.html#tf">FR_TOO_MANY_OPEN_FILES</a>
+</p>
+
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>ƒfƒBƒŒƒNƒgƒŠ‚ðŠJ‚«‚Ü‚·B³íI—¹‚µ‚½‚çA쬂³‚ꂽ<tt>DIR</tt>\‘¢‘Ì‚ðŽg‚Á‚Ä‚±‚̃fƒBƒŒƒNƒgƒŠ‚Ì€–Ú‚ð‡ŽŸ“Ç‚Ýo‚¹‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_MINIMIZE &lt;= 1</tt>‚Ì‚Æ‚«Žg—p‰Â”\‚É‚È‚è‚Ü‚·B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="readdir.html">f_readdir</a>, <a href="closedir.html">f_closedir</a>, <a href="sdir.html">DIR</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/printf.html b/3rdparty/fatfs-0.10b/doc/ja/printf.html
new file mode 100644
index 00000000..0250f657
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/printf.html
@@ -0,0 +1,93 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/printf.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_printf</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_printf</h2>
+<p>ƒtƒ@ƒCƒ‹‚É‘Ž®‰»•¶Žš—ñ‚ð‘‚«ž‚Ý‚Ü‚·B</p>
+<pre>
+int f_printf (
+ FIL* <span class="arg">fp</span>, <span class="c">/* [IN] ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg */</span>
+ const TCHAR* <span class="arg">fmt</span>, <span class="c">/* [IN] ‘Ž®§Œä•¶Žš—ñ */</span>
+ ...
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+<dt>fmt</dt>
+<dd>ƒkƒ‹•¶Žš<tt>'\0'</tt>I’[‚Ì‘Ž®§Œä•¶Žš—ñ‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·Bƒkƒ‹•¶Žš‚Í‘‚«ž‚Ü‚ê‚Ü‚¹‚ñB</dd>
+<dt>...</dt>
+<dd>ƒIƒvƒVƒ‡ƒ“‚̈ø”B</dd>
+
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>•¶Žš—ñ‚ª³í‚É‘‚«ž‚Ü‚ê‚é‚ÆA‘‚«ž‚܂ꂽ•¶Žš”‚ª•Ô‚³‚ê‚Ü‚·BƒfƒBƒXƒN‚ª–ž”t‚Ü‚½‚Í‚»‚Ì‘¼ƒGƒ‰[‚É‚æ‚è³í‚É‘‚«ž‚Ü‚ê‚È‚©‚Á‚½‚Æ‚«‚ÍAŠÖ”‚ÍŽ¸”s‚µ<tt>EOF (-1)</tt>‚ª•Ô‚³‚ê‚Ü‚·B</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>‚±‚ÌŠÖ”‚ÍA<a href="putc.html"><tt>f_putc()</tt></a>‚¨‚æ‚Ñ<a href="puts.html"><tt>f_puts()</tt></a>‚̃‰ƒbƒp[ŠÖ”‚Å‚·B‘Ž®§Œä‹@”\‚ÍC•W€ƒ‰ƒCƒuƒ‰ƒŠ‚̃TƒuƒZƒbƒg‚Æ‚È‚Á‚Ä‚¢‚ÄA‘Ž®§Œä•¶Žš‚ÍŽŸ‚ÉŽ¦‚·‚à‚Ì‚ªŽg—p‰Â”\‚Å‚·B</p>
+<ul>
+<li>ƒ^ƒCƒv: <tt>c C s S d D u U x X b B</tt></li>
+<li>¸“xŽw’è: <tt>l L</tt></li>
+<li>ƒtƒ‰ƒO: <tt>0 -</tt></li>
+</ul>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_READONLY == 0</tt>‚ÅAŠŽ‚Â<tt>_USE_STRFUNC</tt>‚ª1‚Ü‚½‚Í2‚Ì‚Æ‚«Žg—p‰Â”\‚É‚È‚è‚Ü‚·B2‚ÌŽž‚ÍAo—Í‚ÉŠÜ‚Ü‚ê‚é<tt>'\n'</tt>‚ª<tt>'\r'+'\n'</tt>‚É“WŠJ‚³‚ê‚ătƒ@ƒCƒ‹‚É‘‚«ž‚Ü‚ê‚Ü‚·B</p>
+<p>API‚ÉUnicode‚ª‘I‘ð(<tt>_LFN_UNICODE</tt>‚ª1)‚³‚ê‚Ä‚¢‚é‚Æ‚«‚ÍA<tt class="arg">fmt</tt>‚ÍUnicode•¶Žš—ñ‚É‚È‚è‚Ü‚·‚ªAƒtƒ@ƒCƒ‹ã‚̃Gƒ“ƒR[ƒh‚ÍA<tt>_STRF_ENCODE</tt>ƒIƒvƒVƒ‡ƒ“‚Å‘I‘ð‚Å‚«‚Ü‚·B‚»‚êˆÈŠO‚ÌŽž‚Í–³•ÏŠ·(1ƒoƒCƒg/1•¶Žš)‚Å‘‚«ž‚Ý‚Ü‚·B</p>
+</div>
+
+
+<div class="para use">
+<h4>Žg—p—á</h4>
+<pre>
+ f_printf(&amp;fil, "%d", 1234); <span class="c">/* "1234" */</span>
+ f_printf(&amp;fil, "%6d,%3d%%", -200, 5); <span class="c">/* " -200, 5%" */</span>
+ f_printf(&amp;fil, "%ld", 12345L); <span class="c">/* "12345" */</span>
+ f_printf(&amp;fil, "%06d", 25); <span class="c">/* "000025" */</span>
+ f_printf(&amp;fil, "%06d", -25); <span class="c">/* "000-25" */</span>
+ f_printf(&amp;fil, "%-6d", 25); <span class="c">/* "25 " */</span>
+ f_printf(&amp;fil, "%u", -1); <span class="c">/* "65535" or "4294967295" */</span>
+ f_printf(&amp;fil, "%04x", 0xAB3); <span class="c">/* "0ab3" */</span>
+ f_printf(&amp;fil, "%08LX", 0x123ABCL); <span class="c">/* "00123ABC" */</span>
+ f_printf(&amp;fil, "%016b", 0x550F); <span class="c">/* "0101010100001111" */</span>
+ f_printf(&amp;fil, "%s", "String"); <span class="c">/* "String" */</span>
+ f_printf(&amp;fil, "%8s", "abc"); <span class="c">/* " abc" */</span>
+ f_printf(&amp;fil, "%-8s", "abc"); <span class="c">/* "abc " */</span>
+ f_printf(&amp;fil, "%c", 'a'); <span class="c">/* "a" */</span>
+ f_printf(&amp;fil, "%f", 10.0); <span class="c">/* •‚“®¬”“_‚Í–¢ƒTƒ|[ƒg */</span>
+</pre>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="putc.html">f_putc</a>, <a href="puts.html">f_puts</a>, <a href="gets.html">f_gets</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/putc.html b/3rdparty/fatfs-0.10b/doc/ja/putc.html
new file mode 100644
index 00000000..d9e2a374
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/putc.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/putc.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_putc</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_putc</h2>
+<p>ƒtƒ@ƒCƒ‹‚É•¶Žš‚ð‘‚«ž‚Ý‚Ü‚·B</p>
+<pre>
+int f_putc (
+ TCHAR <span class="arg">chr</span>, <span class="c">/* [IN] ‘‚«ž‚Þ•¶Žš */</span>
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>chr</dt>
+<dd>‘‚«ž‚Þ•¶Žš‚ðŽw’肵‚Ü‚·B</dd>
+<dt>fp</dt>
+<dd>ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>•¶Žš‚ª³í‚É‘‚«ž‚Ü‚ê‚é‚Æ‘‚«ž‚ñ‚¾•¶Žš”‚ª•Ô‚³‚ê‚Ü‚·BƒfƒBƒXƒN‚ª–ž”t‚Ü‚½‚̓Gƒ‰[‚É‚æ‚è‘‚«ž‚Ü‚ê‚È‚©‚Á‚½‚Æ‚«‚Í<tt>EOF (-1)</tt>‚ª•Ô‚³‚ê‚Ü‚·B</p>
+<p>API‚ÉUnicode‚ª‘I‘ð(<tt>_LFN_UNICODE</tt>‚ª1)‚³‚ê‚Ä‚¢‚é‚Æ‚«‚ÍA<tt class="arg">chr</tt>‚ÍUTF-16•¶Žš‚É‚È‚è‚Ü‚·‚ªAƒtƒ@ƒCƒ‹ã‚̃Gƒ“ƒR[ƒh‚ÍA<tt>_STRF_ENCODE</tt>ƒIƒvƒVƒ‡ƒ“‚Å‘I‘ð‚Å‚«‚Ü‚·B‚»‚êˆÈŠO‚ÌŽž‚Í–³•ÏŠ·(1ƒoƒCƒg/1•¶Žš)‚Å‘‚«ž‚Ý‚Ü‚·B</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>1•¶Žš‚ðƒtƒ@ƒCƒ‹‚É‘‚«ž‚Ý‚Ü‚·B‚±‚ÌŠÖ”‚Í<a href="write.html"><tt>f_write()</tt></a>‚̃‰ƒbƒp[ŠÖ”‚Å‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_READONLY == 0</tt>‚ÅAŠŽ‚Â<tt>_USE_STRFUNC</tt>‚ª 1‚Ü‚½‚Í 2‚Ì‚Æ‚«Žg—p‰Â”\‚Å‚·B2‚ðŽw’è‚·‚é‚ÆA<tt>'\n'</tt>‚Í<tt>'\r'+'\n'</tt>‚É“WŠJ‚³‚ê‚ătƒ@ƒCƒ‹‚É‘‚«ž‚Ü‚ê‚Ü‚·B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="puts.html">f_puts</a>, <a href="printf.html">f_printf</a>, <a href="gets.html">f_gets</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/puts.html b/3rdparty/fatfs-0.10b/doc/ja/puts.html
new file mode 100644
index 00000000..6f5c463c
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/puts.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/puts.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_puts</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_puts</h2>
+<p>ƒtƒ@ƒCƒ‹‚É•¶Žš—ñ‚ð‘‚«ž‚Ý‚Ü‚·B</p>
+<pre>
+int f_puts (
+ const TCHAR* <span class="arg">str</span>, <span class="c">/* [IN] ‘‚«ž‚Þ•¶Žš—ñ */</span>
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>str</dt>
+<dd>‘‚«ž‚Þƒkƒ‹•¶Žš<tt>'\0'</tt>I’[‚Ì•¶Žš—ñ‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·Bƒkƒ‹•¶Žš‚Í‘‚«ž‚Ü‚ê‚Ü‚¹‚ñB</dd>
+<dt>fp</dt>
+<dd>ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>•¶Žš—ñ‚ª³í‚É‘‚«ž‚Ü‚ê‚é‚ÆA‘‚«ž‚܂ꂽ•¶Žš”‚ª•Ô‚³‚ê‚Ü‚·BƒfƒBƒXƒN‚ª–ž”t‚Ü‚½‚̓Gƒ‰[‚É‚æ‚è‘‚«ž‚Ý‚ª’†’f‚³‚ꂽ‚Æ‚«‚Í<tt>EOF (-1)</tt>‚ª•Ô‚³‚ê‚Ü‚·B</p>
+<p>API‚ÉUnicode‚ª‘I‘ð(<tt>_LFN_UNICODE</tt>‚ª1)‚³‚ê‚Ä‚¢‚é‚Æ‚«‚ÍA<tt class="arg">str</tt>‚ÍUTF-16•¶Žš—ñ‚É‚È‚è‚Ü‚·‚ªAƒtƒ@ƒCƒ‹ã‚̃Gƒ“ƒR[ƒh‚ÍA<tt>_STRF_ENCODE</tt>ƒIƒvƒVƒ‡ƒ“‚Å‘I‘ð‚Å‚«‚Ü‚·B‚»‚êˆÈŠO‚ÌŽž‚Í–³•ÏŠ·(1ƒoƒCƒg/1•¶Žš)‚Å‘‚«ž‚Ý‚Ü‚·B</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>•¶Žš—ñ‚ðƒtƒ@ƒCƒ‹‚É‘‚«ž‚Ý‚Ü‚·B‚±‚ÌŠÖ”‚Í<a href="write.html"><tt>f_write()</tt></a>‚̃‰ƒbƒp[ŠÖ”‚Å‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_READONLY == 0</tt>‚ÅAŠŽ‚Â<tt>_USE_STRFUNC</tt>‚ª1‚Ü‚½‚Í2‚Ì‚Æ‚«Žg—p‰Â”\‚Å‚·B2‚ðŽw’è‚·‚é‚ÆA•¶Žš—ñ‚ÉŠÜ‚Ü‚ê‚é<tt>'\n'</tt>‚Í<tt>'\r'+'\n'<tt>‚É“WŠJ‚³‚ê‚ătƒ@ƒCƒ‹‚É‘‚«ž‚Ü‚ê‚Ü‚·B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="putc.html">f_putc</a>, <a href="printf.html">f_printf</a>, <a href="gets.html">f_gets</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/rc.html b/3rdparty/fatfs-0.10b/doc/ja/rc.html
new file mode 100644
index 00000000..1f1140f9
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/rc.html
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/rc.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - 戻り値</title>
+</head>
+
+<body>
+<h1>ファイル関数ã®æˆ»ã‚Šå€¤</h1>
+<p>FatFsã®APIã§ã¯ã€ä¸€éƒ¨ã®é–¢æ•°ã‚’除ãçµæžœã«å¿œã˜ãŸå…±é€šã®ãƒªã‚¶ãƒ«ãƒˆãƒ»ã‚³ãƒ¼ãƒ‰(FRESULTåž‹(enum))ã‚’è¿”ã—ã¾ã™ã€‚関数ãŒæˆåŠŸã—ãŸå ´åˆã¯0ã‚’è¿”ã—ã¾ã™ã€‚失敗ã—ãŸå ´åˆã¯0以外ã®å€¤ã‚’è¿”ã—ã€å€¤ã¯ã‚¨ãƒ©ãƒ¼ã®ç¨®é¡žã‚’示ã—ã¾ã™ã€‚</p>
+
+<dl class="ret">
+<dt id="ok">FR_OK (0)</dt>
+<dd>関数ã¯æˆåŠŸã—ãŸã€‚</dd>
+<dt id="de">FR_DISK_ERR</dt>
+<dd>下ä½ãƒ¬ã‚¤ãƒ¤(<tt>disk_read(), disk_write(), disk_ioctl()</tt>関数)ã§å›žå¾©ä¸èƒ½ãªã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸã€‚<br>※開ã‹ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã®æ“作ã«ãŠã„ã¦ã“ã®ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã™ã‚‹ã¨ã€ãã®ãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ã‚ªãƒ–ジェクトã¯ã‚¢ãƒœãƒ¼ãƒˆçŠ¶æ…‹ã¨ãªã‚Šã€ã‚¯ãƒ­ãƒ¼ã‚ºä»¥å¤–ã®ã®æ“作ãŒã§ããªããªã‚Šã¾ã™ã€‚</dd>
+<dt id="ie">FR_INT_ERR</dt>
+<dd>内部処ç†ã®å¥å…¨æ€§ã«ç•°å¸¸ãŒæ¤œå‡ºã•ã‚ŒãŸã€‚原因ã¨ã—ã¦ã¯æ¬¡ã®ã‚ˆã†ãªã“ã¨ãŒè€ƒãˆã‚‰ã‚Œã¾ã™ã€‚
+<ul>
+<li>ボリューム上ã®FAT構造ã«ã‚¨ãƒ©ãƒ¼ãŒã‚る。</li>
+<li>スタックä¸è¶³ã‚„ä¸æ­£ãªãƒ¡ãƒ¢ãƒªæ“作等ã«ã‚ˆã‚‹ãƒ¯ãƒ¼ã‚¯ãƒ»ã‚¨ãƒªã‚¢ã®ç ´å£Šã€‚多ãã¯ã“ã‚ŒãŒåŽŸå› ã€‚</li>
+</ul>
+※開ã‹ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã®æ“作ã«ãŠã„ã¦ã“ã®ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã™ã‚‹ã¨ã€ãã®ãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ã‚ªãƒ–ジェクトã¯ã‚¢ãƒœãƒ¼ãƒˆçŠ¶æ…‹ã¨ãªã‚Šã€ã‚¯ãƒ­ãƒ¼ã‚ºä»¥å¤–ã®æ“作ãŒã§ããªããªã‚Šã¾ã™ã€‚</dd>
+<dt id="nr">FR_NOT_READY</dt>
+<dd>物ç†ãƒ‰ãƒ©ã‚¤ãƒ–ãŒå‹•ä½œå¯èƒ½ãªçŠ¶æ…‹ã«ãªã„。ã¾ãŸã¯ã€ãƒ‰ãƒ©ã‚¤ãƒ–ã®åˆæœŸåŒ–ã«å¤±æ•—ã—ãŸã€‚</dd>
+<dt id="nf">FR_NO_FILE</dt>
+<dd>指定ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ãŒè¦‹ã¤ã‹ã‚‰ãªã‹ã£ãŸã€‚</dd>
+<dt id="np">FR_NO_PATH</dt>
+<dd>指定ã•ã‚ŒãŸãƒ‘スãŒè¦‹ã¤ã‹ã‚‰ãªã‹ã£ãŸã€‚</dd>
+<dt id="in">FR_INVALID_NAME</dt>
+<dd>指定ã•ã‚ŒãŸæ–‡å­—列ãŒ<a href="filename.html">パスåã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆ</a>ã¨ã—ã¦ç„¡åŠ¹ã€‚</dd>
+<dt id="dn">FR_DENIED</dt>
+<dd>ãã®ã‚ªãƒ–ジェクトã«å¯¾ã™ã‚‹æ“作ã®æ‹’å¦ã€‚原因ã¨ã—ã¦ã¯æ¬¡ã®ã‚ˆã†ãªã“ã¨ãŒè€ƒãˆã‚‰ã‚Œã¾ã™ã€‚
+<ul>
+<li>書ãè¾¼ã¿ç¦æ­¢å±žæ€§(<tt>AM_RDO</tt>)ã‚’æŒã¤ãƒ•ã‚¡ã‚¤ãƒ«ã‚’書ãè¾¼ã¿ãƒ¢ãƒ¼ãƒ‰ã§é–‹ã“ã†ã¨ã—ãŸã€‚</li>
+<li>書ãè¾¼ã¿ç¦æ­¢å±žæ€§ã‚’æŒã¤ãƒ•ã‚¡ã‚¤ãƒ«ã‚„ディレクトリを削除ã—よã†ã¨ã—ãŸã€‚</li>
+<li>空ã§ãªã„ディレクトリã¾ãŸã¯ã‚«ãƒ¬ãƒ³ãƒˆãƒ»ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’削除ã—よã†ã¨ã—ãŸã€‚</li>
+<li><tt>FA_READ</tt>フラグを付ã‘ãšã«é–‹ã„ãŸãƒ•ã‚¡ã‚¤ãƒ«ã«å¯¾ã—ã¦èª­ã¿å‡ºã—ã‚’è¡Œã£ãŸã€‚</li>
+<li><tt>FA_WRITE</tt>フラグを付ã‘ãšã«é–‹ã„ãŸãƒ•ã‚¡ã‚¤ãƒ«ã«å¯¾ã—ã¦æ›¸ãè¾¼ã¿ã¾ãŸã¯ãã‚Œã«é¡žã™ã‚‹æ“作を行ã£ãŸã€‚</li>
+<li>ボリュームã¾ãŸã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ»ãƒ†ãƒ¼ãƒ–ルãŒæº€æ¯ã§ãƒ•ã‚¡ã‚¤ãƒ«ã‚„ディレクトリを作æˆã§ããªã‹ã£ãŸã€‚</li>
+</ul>
+</dd>
+<dt id="ex">FR_EXIST</dt>
+<dd>æ–°ã—ã作æˆã—よã†ã¨ã—ãŸã‚ªãƒ–ジェクトã¨åŒã˜åå‰ã®ã‚ªãƒ–ジェクトãŒæ—¢ã«å­˜åœ¨ã™ã‚‹ã€‚</dd>
+<dt id="io">FR_INVALID_OBJECT</dt>
+<dd>指定ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ãƒ»ã‚ªãƒ–ジェクトやディレクトリ・オブジェクトãŒç„¡åŠ¹(オープンã•ã‚Œã¦ã„ãªã„ã€æ—¢ã«é–‰ã˜ã‚‰ã‚ŒãŸã€ç ´æã—ã¦ã„ã‚‹ãªã©)ã€ã¾ãŸã¯ãƒŒãƒ«ãƒ»ãƒã‚¤ãƒ³ã‚¿ãŒæ¸¡ã•ã‚ŒãŸã€‚ã¾ãŸã€é–‹ã‹ã‚ŒãŸã¾ã¾ã®ã‚ªãƒ–ジェクトã¯ã€ãã‚Œã®å±žã™ã‚‹ãƒœãƒªãƒ¥ãƒ¼ãƒ ã®ãƒžã‚¦ãƒ³ãƒˆå‹•ä½œã«ã‚ˆã‚Šç„¡åŠ¹ã¨ãªã‚Šã¾ã™ã€‚</dd>
+<dt id="wp">FR_WRITE_PROTECTED</dt>
+<dd>物ç†ãƒ‰ãƒ©ã‚¤ãƒ–ãŒæ›¸ãè¾¼ã¿ç¦æ­¢çŠ¶æ…‹ã®ã¨ãã€æ›¸ãè¾¼ã¿ã‚’ä¼´ã†æ“作を行ãŠã†ã¨ã—ãŸã€‚</dd>
+<dt id="id">FR_INVALID_DRIVE</dt>
+<dd>パスå中ã«æŒ‡å®šã•ã‚ŒãŸãƒ‰ãƒ©ã‚¤ãƒ–番å·ãŒç„¡åŠ¹ã€ã¾ãŸã¯ãƒ‘スåã«ãƒŒãƒ«ãƒ»ãƒã‚¤ãƒ³ã‚¿ãŒæ¸¡ã•ã‚ŒãŸã€‚(関連オプション: <tt>_VOLUMES</tt>)</dd>
+<dt id="ne">FR_NOT_ENABLED</dt>
+<dd>ãã®ãƒœãƒªãƒ¥ãƒ¼ãƒ ã®æ“作ã«å¿…è¦ãªãƒ¯ãƒ¼ã‚¯ãƒ»ã‚¨ãƒªã‚¢(ファイル・システム・オブジェクト構造体)ãŒä¸Žãˆã‚‰ã‚Œã¦ã„ãªã„。</dd>
+<dt id="ns">FR_NO_FILESYSTEM</dt>
+<dd>物ç†ãƒ‰ãƒ©ã‚¤ãƒ–上ã«æœ‰åŠ¹ãªFATボリュームãŒè¦‹ã¤ã‹ã‚‰ãªã‹ã£ãŸã€‚</dd>
+<dt id="ma">FR_MKFS_ABORTED</dt>
+<dd><tt>f_mkfs()</tt>ã®å‡¦ç†ãŒé–‹å§‹å‰ã«ä¸­æ–­ã•ã‚ŒãŸã€‚原因ã¨ã—ã¦ã¯æ¬¡ã®ã‚ˆã†ãªã“ã¨ãŒè€ƒãˆã‚‰ã‚Œã¾ã™ã€‚
+<ul>
+<li>ボリュームãŒå°ã•ã™ãŽã‚‹ã€‚</li>
+<li>FATタイプã®è¨ˆç®—ã«çŸ›ç›¾ãŒè¦‹ã¤ã‹ã£ãŸã€‚クラスタ数ãŒFATタイプã®å¢ƒç•Œä»˜è¿‘ã«ãªã‚‹ã¨ãã«ç™ºç”Ÿã™ã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚</li>
+<li>ãã®è«–ç†ãƒ‰ãƒ©ã‚¤ãƒ–ã«å¯¾å¿œã™ã‚‹åŒºç”»ãŒè¦‹ã¤ã‹ã‚‰ãªã‹ã£ãŸã€‚(関連オプション: <tt>_MULTI_PARTITION</tt>)</li>
+</ul>
+</dd>
+<dt id="tm">FR_TIMEOUT</dt>
+<dd><a href="appnote.html#reentrant">å†å…¥åˆ¶å¾¡</a>ã«ã‚ˆã‚‹å¾…ã¡æ™‚é–“ãŒå®šç¾©ã•ã‚ŒãŸæ™‚間を越ãˆãŸãŸã‚ã€é–¢æ•°ã¯å®Ÿè¡Œã•ã‚Œãªã‹ã£ãŸã€‚(関連オプション: <tt>_TIMEOUT</tt>)</dd>
+<dt id="lo">FR_LOCKED</dt>
+<dd><a href="appnote.html#dup">多é‡ã‚¢ã‚¯ã‚»ã‚¹æŽ’他機能</a>ã«ã‚ˆã‚Šã€ãã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚„ディレクトリã«å¯¾ã—ã¦è¡ŒãŠã†ã¨ã—ãŸã‚¢ã‚¯ã‚»ã‚¹ãŒæ‹’å¦ã•ã‚ŒãŸã€‚(関連オプション: <tt>_FS_LOCK</tt>)</dd>
+<dt id="nc">FR_NOT_ENOUGH_CORE</dt>
+<dd>メモリä¸è¶³ã«ã‚ˆã‚‹å¤±æ•—。原因ã¨ã—ã¦ã¯æ¬¡ã®ã‚ˆã†ãªã“ã¨ãŒè€ƒãˆã‚‰ã‚Œã¾ã™ã€‚
+<ul>
+<li>LFNæ“作ãƒãƒƒãƒ•ã‚¡ã®å‹•çš„確ä¿ã«å¤±æ•—ã—ãŸã€‚(関連オプション: <tt>_USE_LFN</tt>)</li>
+<li>与ãˆã‚‰ã‚ŒãŸé…列ã®ã‚µã‚¤ã‚ºãŒå®Ÿéš›ã«å¿…è¦ãªã‚µã‚¤ã‚ºã«å¯¾ã—ã¦ä¸è¶³ã—ã¦ã„る。</li>
+</ul>
+</dd>
+<dt id="tf">FR_TOO_MANY_OPEN_FILES</dt>
+<dd>åŒæ™‚オープンå¯èƒ½ãªãƒ•ã‚¡ã‚¤ãƒ«æ•°ã‚’越ãˆã¦ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é–‹ã“ã†ã¨ã—ãŸã€‚(関連オプション: <tt>_FS_LOCK</tt>)</dd>
+<dt id="ip">FR_INVALID_PARAMETER</dt>
+<dd>与ãˆã‚‰ã‚ŒãŸãƒ‘ラメータãŒç„¡åŠ¹ã¾ãŸã¯çŸ›ç›¾ã—ã¦ã„る。</dd>
+</dl>
+
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/read.html b/3rdparty/fatfs-0.10b/doc/ja/read.html
new file mode 100644
index 00000000..94b8d1e3
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/read.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/read.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_read</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_read</h2>
+<p>ƒtƒ@ƒCƒ‹‚©‚çƒf[ƒ^‚ð“Ç‚Ýo‚µ‚Ü‚·B</p>
+<pre>
+FRESULT f_read (
+ FIL* <span class="arg">fp</span>, <span class="c">/* [IN] ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘Ì */</span>
+ void* <span class="arg">buff</span>, <span class="c">/* [OUT] “Ç‚Ýo‚µ‚½ƒf[ƒ^‚ðŠi”[‚·‚éƒoƒbƒtƒ@ */</span>
+ UINT <span class="arg">btr</span>, <span class="c">/* [IN] “Ç‚Ýo‚·ƒoƒCƒg” */</span>
+ UINT* <span class="arg">br</span> <span class="c">/* [OUT] “Ç‚Ýo‚³‚ꂽƒoƒCƒg” */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+<dt>buff</dt>
+<dd>“Ç‚Ýo‚µ‚½ƒf[ƒ^‚ðŠi”[‚·‚éƒoƒbƒtƒ@‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+<dt>btr</dt>
+<dd>“Ç‚Ýo‚·ƒoƒCƒg”(0`<tt>UINT</tt>Œ^‚ÌÅ‘å’l)‚ðŽw’肵‚Ü‚·B</dd>
+<dt>br</dt>
+<dd>ŽÀÛ‚É“Ç‚Ýo‚³‚ꂽƒoƒCƒg”‚ðŠi”[‚·‚é•Ï”‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B–ß‚è’l‚ÍŠÖ”‚̬”Û‚É‚©‚©‚í‚炸í‚É—LŒø‚Å‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#de">FR_DENIED</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>“Ç‚Ýž‚ÝŠJŽnˆÊ’u‚ÍAŒ»Ý‚̃Š[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚©‚ç‚É‚È‚è‚Ü‚·BƒŠ[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚Í“Ç‚Ýž‚܂ꂽƒoƒCƒg”‚¾‚¯i‚Ý‚Ü‚·BŠÖ”‚ª³íI—¹‚µ‚½Œã‚ÍA<tt class="arg">*br</tt>‚Ì’l‚ðƒ`ƒFƒbƒN‚·‚ׂ«‚Å‚·B<tt class="arg">*br</tt>‚ª<tt class="arg">btr</tt>‚æ‚è‚ଂ³‚¢‚Æ‚«‚ÍA“Ç‚Ýž‚Ý’†‚Ƀtƒ@ƒCƒ‹‚ÌI’[‚É’B‚µ‚½‚±‚Æ‚ðŽ¦‚µ‚Ä‚¢‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p>‘S‚Ä‚Ì\¬‚ÅŽg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="gets.html">fgets</a>, <a href="write.html">f_write</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/readdir.html b/3rdparty/fatfs-0.10b/doc/ja/readdir.html
new file mode 100644
index 00000000..d516b355
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/readdir.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/readdir.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_readdir</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_readdir</h2>
+<p>ƒfƒBƒŒƒNƒgƒŠ€–Ú‚ð“Ç‚Ýo‚µ‚Ü‚·B</p>
+<pre>
+FRESULT f_readdir (
+ DIR* <span class="arg">dp</span>, <span class="c">/* [IN] ƒfƒBƒŒƒNƒgƒŠEƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^ */</span>
+ FILINFO* <span class="arg">fno</span> <span class="c">/* [OUT] ƒtƒ@ƒCƒ‹î•ñ\‘¢‘̂ւ̃|ƒCƒ“ƒ^ */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>dp</dt>
+<dd>—LŒø‚ȃfƒBƒŒƒNƒgƒŠEƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+<dt>fno</dt>
+<dd>“Ç‚Ýo‚µ‚½ƒfƒBƒŒƒNƒgƒŠ€–Ú‚ðŠi”[‚·‚éƒtƒ@ƒCƒ‹î•ñ\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>ƒfƒBƒŒƒNƒgƒŠ‚Ì€–Ú(ƒtƒ@ƒCƒ‹‚ƃfƒBƒŒƒNƒgƒŠ)‚ð‡ŽŸ“Ç‚Ýo‚µ‚Ü‚·B‚±‚ÌŠÖ”‚ðŒJ‚è•Ô‚µŽÀs‚·‚邱‚Æ‚É‚æ‚è‚»‚̃fƒBƒŒƒNƒgƒŠ‚Ì‘S‚Ä‚Ì€–Ú‚ð“Ç‚Ýo‚·‚±‚Æ‚ª‚Å‚«‚Ü‚·B“¾‚ç‚ê‚éƒtƒ@ƒCƒ‹î•ñ‚ÌÚׂɂ‚¢‚Ä‚Í <tt>FILINFO</tt>\‘¢‘Ì‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B‘S‚Ä‚Ì€–Ú‚ª“Ç‚Ýo‚³‚êA“Ç‚Ýo‚·€–Ú‚ª‚à‚¤–³‚¢‚Æ‚«‚ÍA<tt>fname[]</tt>ƒƒ“ƒo‚Ƀkƒ‹•¶Žš—ñ‚ª•Ô‚³‚ê‚Ü‚·B<tt class="arg">fno</tt>‚Ƀkƒ‹Eƒ|ƒCƒ“ƒ^‚ðŽw’è‚·‚é‚ÆA‚»‚̃fƒBƒŒƒNƒgƒŠ‚̃Š[ƒhEƒCƒ“ƒfƒbƒNƒX‚ð擪‚ÉŠª‚«–ß‚µ‚Ü‚·B‚Ü‚½A‚±‚ÌŠÖ”‚ÍŽŸ‚ÉŽ¦‚·‚悤‚ÉŠÖ˜A‚·‚é\¬ƒIƒvƒVƒ‡ƒ“‚É‚æ‚蓮삪•Ï‚í‚è‚Ü‚·B</p>
+<p>ƒhƒbƒgEƒGƒ“ƒgƒŠ("."A"..")‚ÍA‘Š‘΃pƒX‚ª—LŒø‚È‚Æ‚«(<tt>_FS_RPATH &gt;= 1</tt>)‚É‚Ì‚Ýo—Í‚ÉŒ»‚ê‚Ü‚·B</p>
+<p>LFN‹@”\‚ª—LŒø‚ÈŽž‚ÍA‚±‚ÌŠÖ”‚̌ĂÑo‚µ‚Éæ—§‚Á‚Ä<tt>FILINFO</tt>\‘¢‘Ì‚Ì<tt>lfname</tt>‚Æ<tt>lfsize</tt>‚ª—LŒø‚È’l‚ʼnŠú‰»‚³‚ê‚Ä‚¢‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB<tt>lfname</tt>‚ÍLFN‚ðŠi”[‚·‚éƒoƒbƒtƒ@‚ÅA<tt>lfsize</tt>‚Í‚»‚̃oƒbƒtƒ@‚Ì—v‘f”‚Å‚·BLFN‚ð“Ç‚Ýo‚·•K—v‚ª‚È‚¢‚Æ‚«‚ÍA<tt>lfname</tt>‚Ƀkƒ‹Eƒ|ƒCƒ“ƒ^‚ðƒZƒbƒg‚µ‚Ä‚­‚¾‚³‚¢BŽŸ‚ÌðŒ‚Ɉê‚‚łàŠY“–‚·‚éꇂÍALFNŠi”[ƒoƒbƒtƒ@‚Ƀkƒ‹•¶Žš—ñ‚ª•Ô‚³‚ê‚Ü‚·B</p>
+<ul>
+<li>ƒfƒBƒŒƒNƒgƒŠ€–Ú‚ÉLFNî•ñ‚ª‘¶Ý‚µ‚È‚¢B</li>
+<li>LFN‚Ì’·‚³‚ɑ΂µ‚ÄLFNŠi”[ƒoƒbƒtƒ@‚Ü‚½‚ÍLFN‘€ìƒoƒbƒtƒ@‚̃TƒCƒY‚ª•s\•ªB</li>
+<li>LFN‚ÉŒ»Ý‚ÌOEMƒR[ƒh‚É‘¶Ý‚µ‚È‚¢•¶Žš‚ªŠÜ‚Ü‚ê‚Ä‚¢‚éB(”ñUnicode\¬‚Ì‚Æ‚«)</li>
+</ul>
+<p>‚Ü‚½AƒfƒBƒŒƒNƒgƒŠ€–Ú‚ÉLFNî•ñ‚ª‘¶Ý‚µ‚È‚¢ê‡‚ÍA<tt>fname[]</tt>‚ɉp¬•¶Žš‚ªŠÜ‚Ü‚ê‚éꇂª‚ ‚è‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_MINIMIZE &lt;= 1</tt>‚Ì‚Æ‚«‚ÉŽg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para use">
+<h4>Žg—p—á</h4>
+<pre>
+FRESULT scan_files (
+ char* path <span class="c">/* ŠJŽnƒm[ƒh (ƒ[ƒNƒGƒŠƒA‚Æ‚µ‚Ä‚àŽg—p) */</span>
+)
+{
+ FRESULT res;
+ FILINFO fno;
+ DIR dir;
+ int i;
+ char *fn; <span class="c">/* ”ñUnicode\¬‚ð‘z’è */</span>
+<span class="k">#if</span> _USE_LFN
+ static char lfn[_MAX_LFN + 1];
+ fno.lfname = lfn;
+ fno.lfsize = sizeof lfn;
+<span class="k">#endif</span>
+
+
+ res = f_opendir(&amp;dir, path); <span class="c">/* ƒfƒBƒŒƒNƒgƒŠ‚ðŠJ‚­ */</span>
+ if (res == FR_OK) {
+ i = strlen(path);
+ for (;;) {
+ res = f_readdir(&amp;dir, &amp;fno); <span class="c">/* ƒfƒBƒŒƒNƒgƒŠ€–Ú‚ð1ŒÂ“Ç‚Ýo‚· */</span>
+ if (res != FR_OK || fno.fname[0] == 0) break; <span class="c">/* ƒGƒ‰[‚Ü‚½‚Í€–Ú–³‚µ‚Ì‚Æ‚«‚Í”²‚¯‚é */</span>
+ if (fno.fname[0] == '.') continue; <span class="c">/* ƒhƒbƒgƒGƒ“ƒgƒŠ‚Í–³Ž‹ */</span>
+<span class="k">#if</span> _USE_LFN
+ fn = *fno.lfname ? fno.lfname : fno.fname;
+<span class="k">#else</span>
+ fn = fno.fname;
+<span class="k">#endif</span>
+ if (fno.fattrib &amp; AM_DIR) { <span class="c">/* ƒfƒBƒŒƒNƒgƒŠ */</span>
+ sprintf(&amp;path[i], "/%s", fn);
+ res = scan_files(path);
+ if (res != FR_OK) break;
+ path[i] = 0;
+ } else { <span class="c">/* ƒtƒ@ƒCƒ‹ */</span>
+ printf("%s/%s\n", path, fn);
+ }
+ }
+ f_closedir(&amp;dir);
+ }
+
+ return res;
+}
+</pre>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="opendir.html">f_opendir</a>, <a href="closedir.html">f_closedir</a>, <a href="stat.html">f_stat</a>, <a href="sfileinfo.html">FILINFO</a>, <a href="sdir.html">DIR</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/rename.html b/3rdparty/fatfs-0.10b/doc/ja/rename.html
new file mode 100644
index 00000000..54d1762e
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/rename.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/rename.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_rename</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_rename</h2>
+<p>ƒtƒ@ƒCƒ‹‚Ü‚½‚̓TƒuEƒfƒBƒŒƒNƒgƒŠ‚Ì–¼‘O‚Ì•ÏX‚Ü‚½‚͈ړ®‚µ‚Ü‚·B</p>
+<pre>
+FRESULT f_rename (
+ const TCHAR* <span class="arg">old_name</span>, <span class="c">/* [IN] ŒÃ‚¢ƒIƒuƒWƒFƒNƒg–¼ */</span>
+ const TCHAR* <span class="arg">new_name</span> <span class="c">/* [IN] V‚µ‚¢ƒIƒuƒWƒFƒNƒg–¼ */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>old_name</dt>
+<dd>•ÏX‘Îۂ̃tƒ@ƒCƒ‹‚Ü‚½‚̓TƒuEƒfƒBƒŒƒNƒgƒŠ‚Ì<a href="filename.html">ƒpƒX–¼</a>‚ðŽ¦‚·ƒkƒ‹•¶Žš<tt>'\0'</tt>I’[‚Ì•¶Žš—ñ‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+<dt>new_name</dt>
+<dd>V‚µ‚¢ƒpƒX–¼‚ðŽ¦‚·ƒkƒ‹•¶Žš<tt>'\0'</tt>I’[‚Ì•¶Žš—ñ‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·BŠù‚É‘¶Ý‚·‚éƒIƒuƒWƒFƒNƒg‚Æ“¯‚¶–¼‘O‚ÍŽg‚¦‚Ü‚¹‚ñB‚Ü‚½Aƒhƒ‰ƒCƒu”Ô†‚ÍŽw’肵‚Ä‚à–³Ž‹‚³‚êA<tt class="arg">old_name</tt>‚ÅŒˆ‚ß‚ç‚ꂽ˜_—ƒhƒ‰ƒCƒuã‚̃IƒuƒWƒFƒNƒg‚Æ‚µ‚Ĉµ‚í‚ê‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ok">FR_NO_FILE</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#ex">FR_EXIST</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#lo">FR_LOCKED</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>ƒtƒ@ƒCƒ‹‚Ü‚½‚̓TƒuEƒfƒBƒŒƒNƒgƒŠ‚Ì–¼‘O‚ð•ÏX‚µ‚Ü‚·B‚Ü‚½A“¯Žž‚ɕʂ̃fƒBƒŒƒNƒgƒŠ‚ւ̈ړ®‚à‰Â”\‚Å‚·‚ªAˆÙ‚È‚éƒhƒ‰ƒCƒu‚ւ̈ړ®‚Í‚Å‚«‚Ü‚¹‚ñB<em>ŠJ‚©‚ê‚Ä‚¢‚éƒIƒuƒWƒFƒNƒg‚ɑ΂µ‚ÄŽg—p‚µ‚Ä‚Í‚È‚è‚Ü‚¹‚ñ</em>B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_READONLY == 0</tt>‚ÅAŠŽ‚Â<tt>_FS_MINIMIZE == 0</tt>‚Ì‚Æ‚«‚ÉŽg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para use">
+<h4>Žg—p—á</h4>
+<pre>
+ <span class="c">/* ƒtƒ@ƒCƒ‹‚Ü‚½‚̓TƒuƒfƒBƒŒƒNƒgƒŠ‚Ì–¼‘O‚ð•ÏX‚·‚é */</span>
+ f_rename("oldname.txt", "newname.txt");
+
+ <span class="c">/* ƒtƒ@ƒCƒ‹‚Ü‚½‚̓TƒuƒfƒBƒŒƒNƒgƒŠ‚Ì–¼‘O‚Ì•ÏX‚ƕʂ̃fƒBƒŒƒNƒgƒŠ‚ւ̈ړ® */</span>
+ f_rename("oldname.txt", "dir1/newname.txt");
+</pre>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/sdir.html b/3rdparty/fatfs-0.10b/doc/ja/sdir.html
new file mode 100644
index 00000000..d305f23d
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/sdir.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/sdir.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - DIR</title>
+</head>
+
+<body>
+
+<div class="para">
+<h2>DIR</h2>
+<p><tt>DIR</tt>\‘¢‘Ì‚ÍA<tt>f_opendir(), f_readdir()</tt>‚̃[ƒNEƒGƒŠƒA‚Æ‚µ‚ÄŽg—p‚³‚ê‚Ü‚·BƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ÍA‚±‚Ì\‘¢‘̂̃ƒ“ƒo‚ð‘‚«Š·‚¦‚Ä‚Í‚È‚è‚Ü‚¹‚ñB</p>
+<pre>
+<span class="k">typedef</span> <span class="k">struct</span> {
+ FATFS* fs; <span class="c">/* eƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚ւ̃|ƒCƒ“ƒ^ */</span>
+ WORD id; <span class="c">/* eƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚̃}ƒEƒ“ƒgID */</span>
+ WORD index; <span class="c">/* ŽŸ‚ÉŒŸõŠJŽn‚·‚éƒfƒBƒŒƒNƒgƒŠEƒCƒ“ƒfƒbƒNƒX”Ô† */</span>
+ DWORD sclust; <span class="c">/* ƒe[ƒuƒ‹ŠJŽnƒNƒ‰ƒXƒ^ (0:ƒ‹[ƒg) */</span>
+ DWORD clust; <span class="c">/* Œ»Ý‚̃Nƒ‰ƒXƒ^”Ô† */</span>
+ DWORD sect; <span class="c">/* Œ»Ý‚̃ZƒNƒ^”Ô† */</span>
+ BYTE* dir; <span class="c">/* Œ»Ý‚ÌSFNƒGƒ“ƒgƒŠ‚ւ̃|ƒCƒ“ƒ^ */</span>
+ BYTE* fn; <span class="c">/* SFNƒoƒbƒtƒ@‚ւ̃|ƒCƒ“ƒ^ (in/out) {file[8],ext[3],status[1]} */</span>
+<span class="k">#if</span> _FS_LOCK
+ UINT lockid; <span class="c">/* ƒƒbƒNID */</span>
+<span class="k">#endif</span>
+<span class="k">#if</span> _USE_LFN
+ WCHAR* lfn; <span class="c">/* LFNƒoƒbƒtƒ@‚ւ̃|ƒCƒ“ƒ^ (in/out) */</span>
+ WORD lfn_idx; <span class="c">/* LFNƒGƒ“ƒgƒŠ‚Ì擪ƒCƒ“ƒfƒbƒNƒX (0xFFFF:–³Œø) */</span>
+<span class="k">#endif</span>
+} DIR;
+</pre>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/setlabel.html b/3rdparty/fatfs-0.10b/doc/ja/setlabel.html
new file mode 100644
index 00000000..fa0e4921
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/setlabel.html
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/setlabel.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_setlabel</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_setlabel</h2>
+<p>ƒ{ƒŠƒ…[ƒ€‚Ƀ{ƒŠƒ…[ƒ€Eƒ‰ƒxƒ‹‚ðݒ肵‚Ü‚·B</p>
+<pre>
+FRESULT f_setlabel (
+ const TCHAR* <span class="arg">label</span> <span class="c">/* [IN] Ý’è‚·‚éƒ{ƒŠƒ…[ƒ€Eƒ‰ƒxƒ‹‚ւ̃|ƒCƒ“ƒ^ */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>label</dt>
+<dd>Ý’è‚·‚éƒ{ƒŠƒ…[ƒ€Eƒ‰ƒxƒ‹‚ðŽ¦‚·ƒkƒ‹•¶Žš<tt>'\0'</tt>I’[‚Ì•¶Žš—ñ‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>•¶Žš—ñ‚Ì擪‚Ƀhƒ‰ƒCƒu”Ô†‚ðŠÜ‚ÞꇂÍA‚»‚̘_—ƒhƒ‰ƒCƒu‚ɑ΂µ‚Äݒ肳‚ê‚Ü‚·BŠÜ‚Ü‚È‚¢ê‡‚ÍAƒfƒtƒHƒ‹ƒgEƒhƒ‰ƒCƒu‚Éݒ肳‚ê‚Ü‚·Bƒ{ƒŠƒ…[ƒ€Eƒ‰ƒxƒ‹‚ð휂·‚é‚Æ‚«‚ÍAƒkƒ‹•¶Žš—ñ‚ðŽw’肵‚Ü‚·Bƒ{ƒŠƒ…[ƒ€Eƒ‰ƒxƒ‹‚̃tƒH[ƒ}ƒbƒg‚ÍAƒtƒ@ƒCƒ‹–¼(SFN)‚Æ‚Ù‚Ú“¯‚¶‚Å‚·‚ªAŽŸ‚Ì“_‚ªˆÙ‚È‚è‚Ü‚·B</p>
+<ul>
+<li>ƒ[ƒJƒ‹•¶ŽšƒR[ƒhŠ·ŽZ‚Å11ƒoƒCƒgˆÈ‰ºBLFNŠg’£‚Í“K—p‚³‚ê‚Ü‚¹‚ñB</li>
+<li>ƒsƒŠƒIƒh‚ðŠÜ‚Þ‚±‚Æ‚Í‚Å‚«‚È‚¢B</li>
+<li>”CˆÓ‚̈ʒu‚ɃXƒy[ƒX‚ð’u‚­‚±‚Æ‚ª‚Å‚«‚éB‚½‚¾‚µAÅŒã”ö‚Æ‚È‚éƒXƒy[ƒX‚Íœ‹Ž‚³‚ê‚éB</li>
+</ul>
+</div>
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_READONLY == 0</tt>‚ÅAŠŽ‚Â<tt>_USE_LABEL == 1</tt>‚Ì‚Æ‚«‚ÉŽg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para use">
+<h4>Žg—p—á</h4>
+<pre>
+ <span class="c">/* ƒfƒtƒHƒ‹ƒgEƒhƒ‰ƒCƒu‚Ƀ{ƒŠƒ…[ƒ€Eƒ‰ƒxƒ‹‚ðÝ’è */</span>
+ f_setlabel("DATA DISK");
+
+ <span class="c">/* ƒhƒ‰ƒCƒu2‚Ƀ{ƒŠƒ…[ƒ€Eƒ‰ƒxƒ‹‚ðÝ’è */</span>
+ f_setlabel("2:DISK 3 OF 4");
+
+ <span class="c">/* ƒhƒ‰ƒCƒu2‚̃{ƒŠƒ…[ƒ€Eƒ‰ƒxƒ‹‚ðíœ */</span>
+ f_setlabel("2:");
+</pre>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<tt><a href="getlabel.html">f_getlabel</a></tt>
+</div>
+
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/sfatfs.html b/3rdparty/fatfs-0.10b/doc/ja/sfatfs.html
new file mode 100644
index 00000000..0c9fa573
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/sfatfs.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/sfatfs.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - FATFS</title>
+</head>
+
+<body>
+
+<div class="para">
+<h2>FATFS</h2>
+<p><tt>FATFS</tt>\‘¢‘Ì(ƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg)‚ÍAŒÂX‚̘_—ƒhƒ‰ƒCƒu‚̃_ƒCƒiƒ~ƒbƒNEƒ[ƒNEƒGƒŠƒA‚ð•ÛŽ‚µA<tt>f_mount()</tt>‚ÅFatFsƒ‚ƒWƒ…[ƒ‹‚É“o˜^‚³‚ê‚Ü‚·B‰Šú‰»‚ªs‚í‚ê‚éƒ^ƒCƒ~ƒ“ƒO‚ÍA<tt>f_mount()</tt>(‹­§ƒ}ƒEƒ“ƒgŽw’è)‚ÌŽÀs‚Ü‚½‚̓ƒfƒBƒAŒðŠ·‚ÌŒã‚Ìʼn‚̃tƒ@ƒCƒ‹EƒAƒNƒZƒX‚ÌŽž‚Å‚·BƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ÍA‚±‚Ì\‘¢‘̂̃ƒ“ƒo‚ð‘‚«Š·‚¦‚Ä‚Í‚È‚è‚Ü‚¹‚ñB</p>
+
+<pre>
+<span class="k">typedef</span> <span class="k">struct</span> {
+ BYTE fs_type; <span class="c">/* FATƒ^ƒCƒv */</span>
+ BYTE drv; <span class="c">/* •¨—ƒhƒ‰ƒCƒu”Ô† */</span>
+ BYTE csize; <span class="c">/* ƒNƒ‰ƒXƒ^“–‚½‚è‚̃ZƒNƒ^” (1,2,4,8,...,128)*/</span>
+ BYTE n_fats; <span class="c">/* FAT‚Ì‘½d‰»” (1,2) */</span>
+ BYTE wflag; <span class="c">/* win[]ƒ_[ƒeƒBEƒtƒ‰ƒO */</span>
+ BYTE fsi_flag; <span class="c">/* FSINFOƒtƒ‰ƒO (b7:Disabled, b0:Dirty)*/</span>
+ WORD id; <span class="c">/* ƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€Eƒ}ƒEƒ“ƒgID */</span>
+ WORD n_rootdir; <span class="c">/* ƒ‹[ƒgEƒfƒBƒŒƒNƒgƒŠ‚̃Gƒ“ƒgƒŠ” (FAT12/16) */</span>
+<span class="k">#if</span> _MAX_SS != _MIN_SS
+ WORD ssize; <span class="c">/* ƒZƒNƒ^EƒTƒCƒY (512, 1024, 2048 or 4096) */</span>
+<span class="k">#endif</span>
+<span class="k">#if</span> _FS_REENTRANT
+ _SYNC_t sobj; <span class="c">/* “¯ŠúƒIƒuƒWƒFƒNƒgID */</span>
+<span class="k">#endif</span>
+<span class="k">#if</span> !_FS_READONLY
+ DWORD last_clust; <span class="c">/* FSINFO: ÅŒã‚ÉŠ„‚è“–‚Ä‚ç‚ꂽƒNƒ‰ƒXƒ^”Ô† */</span>
+ DWORD free_clust; <span class="c">/* FSINFO: ‹ó‚«ƒNƒ‰ƒXƒ^” */</span>
+<span class="k">#endif</span>
+<span class="k">#if</span> _FS_RPATH
+ DWORD cdir; <span class="c">/* ƒJƒŒƒ“ƒgEƒfƒBƒŒƒNƒgƒŠ‚̃Nƒ‰ƒXƒ^ (0:ƒ‹[ƒg) */</span>
+<span class="k">#endif</span>
+ DWORD n_fatent; <span class="c">/* FATƒGƒ“ƒgƒŠ” (‘ƒNƒ‰ƒXƒ^” + 2) */</span>
+ DWORD fsize; <span class="c">/* FAT 1ŒÂ‚̃ZƒNƒ^” */</span>
+ DWORD volbase; <span class="c">/* ƒ{ƒŠƒ…[ƒ€ŠJŽnƒZƒNƒ^ */</span>
+ DWORD fatbase; <span class="c">/* FAT—̈æŠJŽnƒZƒNƒ^ */</span>
+ DWORD dirbase; <span class="c">/* ƒ‹[ƒgEƒfƒBƒŒƒNƒgƒŠ—̈æŠJŽnƒZƒNƒ^(ƒNƒ‰ƒXƒ^) */</span>
+ DWORD database; <span class="c">/* ƒf[ƒ^—̈æŠJŽnƒZƒNƒ^ */</span>
+ DWORD winsect; <span class="c">/* win[]‚ÉŒ»‚ê‚Ä‚¢‚éƒZƒNƒ^”Ô† */</span>
+ BYTE win[_MAX_SS]; <span class="c">/* ƒfƒBƒXƒNEƒAƒNƒZƒXEƒEƒBƒ“ƒhƒE */</span>
+} FATFS;
+</pre>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/sfile.html b/3rdparty/fatfs-0.10b/doc/ja/sfile.html
new file mode 100644
index 00000000..21290443
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/sfile.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/sfile.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - FIL</title>
+</head>
+
+<body>
+
+<div class="para">
+<h2>FIL</h2>
+<p><tt>FIL</tt>\‘¢‘Ì(ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg)‚ÍA<tt>f_open()</tt>‚ʼnŠú‰»‚³‚êAˆÈŒã‚»‚̃tƒ@ƒCƒ‹‚Ìó‘Ô‚ð•ÛŽ‚µ‚Ü‚·B‚Ü‚½A<tt>f_close()</tt>‚Ńtƒ@ƒCƒ‹‚ª•Â‚¶‚ç‚ê‚é‚Æ–³Œø‰»‚³‚ê‚Ü‚·BƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ÍA‚±‚Ì\‘¢‘̂̃ƒ“ƒo‚ð‘‚«Š·‚¦‚Ä‚Í‚È‚è‚Ü‚¹‚ñ(<tt>cltbl</tt>‚Í—áŠO)B”ñƒ^ƒCƒj[\¬‚Å‚ÍA“à•”‚ɃZƒNƒ^Eƒoƒbƒtƒ@‚ªŠm•Û‚³‚ê‚é‚Ì‚ÅAè—LƒTƒCƒY‚É’ˆÓ‚ª•K—v‚Å‚·B</p>
+
+<pre>
+<span class="k">typedef</span> <span class="k">struct</span> {
+ FATFS* fs; <span class="c">/* eƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚ւ̃|ƒCƒ“ƒ^ */</span>
+ WORD id; <span class="c">/* eƒtƒ@ƒCƒ‹EƒVƒXƒeƒ€EƒIƒuƒWƒFƒNƒg‚̃}ƒEƒ“ƒgID */</span>
+ BYTE flag; <span class="c">/* ƒtƒ@ƒCƒ‹EƒXƒe[ƒ^ƒXEƒtƒ‰ƒO */</span>
+ BYTE err; <span class="c">/* ƒGƒ‰[’†’fƒtƒ‰ƒO */</span>
+ DWORD fptr; <span class="c">/* ƒtƒ@ƒCƒ‹“Ç‚Ý‘‚«ƒ|ƒCƒ“ƒ^ (ƒtƒ@ƒCƒ‹æ“ª‚©‚ç‚̃oƒCƒgEƒIƒtƒZƒbƒg) */</span>
+ DWORD fsize; <span class="c">/* ƒtƒ@ƒCƒ‹EƒTƒCƒY(ƒoƒCƒg’PˆÊ) */</span>
+ DWORD sclust; <span class="c">/* ƒtƒ@ƒCƒ‹ŠJŽnƒNƒ‰ƒXƒ^”Ô† (0:Š„‚è“–‚Ä–³‚µ) */</span>
+ DWORD clust; <span class="c">/* Œ»Ý‚̃Nƒ‰ƒXƒ^ */</span>
+ DWORD dsect; <span class="c">/* Œ»Ý‚̃f[ƒ^EƒZƒNƒ^ */</span>
+<span class="k">#if</span> !_FS_READONLY
+ DWORD dir_sect; <span class="c">/* ‚±‚̃tƒ@ƒCƒ‹‚̃fƒBƒŒƒNƒgƒŠEƒGƒ“ƒgƒŠ‚Ì‚ ‚éƒZƒNƒ^ */</span>
+ BYTE* dir_ptr; <span class="c">/* ‚±‚̃tƒ@ƒCƒ‹‚̃fƒBƒŒƒNƒgƒŠ‚ւ̃|ƒCƒ“ƒ^ */</span>
+<span class="k">#endif</span>
+<span class="k">#if</span> _USE_FASTSEEK
+ DWORD* cltbl; <span class="c">/* ƒtƒ@ƒCƒ‹‚̃Nƒ‰ƒXƒ^EƒŠƒ“ƒNî•ñ‚ւ̃|ƒCƒ“ƒ^ (ƒI[ƒvƒ“Žž‚ÉNULL‚ªƒZƒbƒg‚³‚ê‚é) */</span>
+<span class="k">#endif</span>
+<span class="k">#if</span> _FS_LOCK
+ UINT lockid; <span class="c">/* ƒtƒ@ƒCƒ‹EƒƒbƒNID */</span>
+<span class="k">#endif</span>
+<span class="k">#if</span> !_FS_TINY
+ BYTE buf[_MAX_SS]; <span class="c">/* ƒtƒ@ƒCƒ‹Eƒvƒ‰ƒCƒx[ƒgEƒf[ƒ^“]‘—ƒoƒbƒtƒ@ */</span>
+<span class="k">#endif</span>
+} FIL;
+</pre>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/sfileinfo.html b/3rdparty/fatfs-0.10b/doc/ja/sfileinfo.html
new file mode 100644
index 00000000..a4b1fe2d
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/sfileinfo.html
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/sfileinfo.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - FILINFO</title>
+</head>
+
+<body>
+
+<div class="para">
+<h2>FILINFO</h2>
+<p><tt>FILINFO</tt>\‘¢‘Ì‚ÍA<tt>f_stat(), f_readdir()</tt>‚Å•Ô‚³‚ê‚éƒtƒ@ƒCƒ‹î•ñ‚ð•ÛŽ‚µ‚Ü‚·B</p>
+<pre>
+<span class="k">typedef</span> <span class="k">struct</span> {
+ DWORD fsize; <span class="c">/* ƒtƒ@ƒCƒ‹EƒTƒCƒY */</span>
+ WORD fdate; <span class="c">/* ÅŒã‚ÉXV‚³‚ꂽ“ú•t */</span>
+ WORD ftime; <span class="c">/* ÅŒã‚ÉXV‚³‚ꂽŽž */</span>
+ BYTE fattrib; <span class="c">/* ƒAƒgƒŠƒrƒ…[ƒg */</span>
+ TCHAR fname[13]; <span class="c">/* ’Z‚¢ƒtƒ@ƒCƒ‹–¼ (8.3ƒtƒH[ƒ}ƒbƒg) */</span>
+<span class="k">#if</span> _USE_LFN
+ TCHAR* lfname; <span class="c">/* ’·‚¢ƒtƒ@ƒCƒ‹–¼‚̃oƒbƒtƒ@‚ւ̃|ƒCƒ“ƒ^ */</span>
+ int lfsize; <span class="c">/* ’·‚¢ƒtƒ@ƒCƒ‹–¼‚̃oƒbƒtƒ@‚̃TƒCƒY [•¶Žš”] */</span>
+<span class="k">#endif</span>
+} FILINFO;
+</pre>
+</div>
+
+<h4>ƒƒ“ƒo</h4>
+<dl>
+<dt>fsize</dt>
+<dd>ƒtƒ@ƒCƒ‹‚̃oƒCƒg’PˆÊ‚̃TƒCƒY‚ªŠi”[‚³‚ê‚Ü‚·BƒfƒBƒŒƒNƒgƒŠ‚ÌꇂÍí‚É0‚Å‚·B</dd>
+<dt>fdate</dt>
+<dd>ƒtƒ@ƒCƒ‹‚Ì•ÏX‚³‚ꂽ“ú•tA‚Ü‚½‚̓fƒBƒŒƒNƒgƒŠ‚Ì쬂³‚ꂽ“ú•t‚ªŠi”[‚³‚ê‚Ü‚·B<br>
+<dl>
+<dt>bit15:9</dt>
+<dd>1980”N‚ð‹N“_‚Æ‚µ‚½”N‚ª 0..127 ‚Å“ü‚è‚Ü‚·B</dd>
+<dt>bit8:5</dt>
+<dd>ŒŽ‚ª 1..12 ‚Ì’l‚Å“ü‚è‚Ü‚·B</dd>
+<dt>bit4:0</dt>
+<dd>“ú‚ª 1..31 ‚Ì’l‚Å“ü‚è‚Ü‚·B</dd>
+</dl>
+</dd>
+<dt>ftime</dt>
+<dd>ƒtƒ@ƒCƒ‹‚Ì•ÏX‚³‚ꂽŽžA‚Ü‚½‚̓fƒBƒŒƒNƒgƒŠ‚Ì쬂³‚ꂽŽž‚ªŠi”[‚³‚ê‚Ü‚·B<br>
+<dl>
+<dt>bit15:11</dt>
+<dd>Žž‚ª 0..23 ‚Ì’l‚Å“ü‚è‚Ü‚·B</dd>
+<dt>bit10:5</dt>
+<dd>•ª‚ª 0..59 ‚Ì’l‚Å“ü‚è‚Ü‚·B</dd>
+<dt>bit4:0</dt>
+<dd>•b/2‚ª 0..29 ‚Ì’l‚Å“ü‚è‚Ü‚·B</dd>
+</dl>
+</dd>
+<dt>fattrib</dt>
+<dd>‘®«ƒtƒ‰ƒO‚ªŠi”[‚³‚ê‚Ü‚·Bƒtƒ‰ƒO‚Í<tt>AM_DIR, AM_RDO, AM_HID, AM_SYS, AM_ARC</tt>‚Ì‘g‚݇‚킹‚Æ‚È‚è‚Ü‚·B</dd>
+<dt>fname[]</dt>
+<dd>8.3Œ`Ž®‚Ì–¼‘O‚ª<tt>'\0'</tt>‚ÅI‚í‚镶Žš—ñ‚Æ‚µ‚ÄŠi”[‚³‚ê‚Ü‚·B”ñLFN\¬‚Ì‚Æ‚«‚ÍAí‚ɑ啶Žš‚Å•Ô‚³‚ê‚Ü‚·BLFN\¬‚Ì‚Æ‚«‚Í’Z‚¢–¼‘O‚ª•Ô‚³‚ê‚Ü‚·‚ªAASCII‰pŽš‚ª¬•¶Žš‚É‚È‚éꇂª‚ ‚è‚Ü‚·B</dd>
+<dt>lfname</dt>
+<dd>•Ô‚³‚ê‚é’·‚¢ƒtƒ@ƒCƒ‹–¼‚ðŠi”[‚·‚éƒoƒbƒtƒ@‚ւ̃|ƒCƒ“ƒ^B‚±‚Ì\‘¢‘Ì‚ðŽg—p‚·‚é‘O‚ɃAƒvƒŠƒP[ƒVƒ‡ƒ“‚É‚æ‚艊ú‰»‚³‚ê‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB‚±‚̃ƒ“ƒo‚ÉNULL‚ªÝ’肳‚ê‚é‚ÆLFN‚Í•Ô‚³‚ê‚Ü‚¹‚ñB”ñLFN\¬‚Ì‚Æ‚«‚Í‚±‚̃ƒ“ƒo‚Í‘¶Ý‚µ‚Ü‚¹‚ñB</dd>
+<dt>lfsize</dt>
+<dd>’·‚¢ƒtƒ@ƒCƒ‹–¼‚ðŠi”[‚·‚éƒoƒbƒtƒ@‚̃TƒCƒY(—v‘f”)B‚±‚Ì\‘¢‘Ì‚ðŽg—p‚·‚é‘O‚ɃAƒvƒŠƒP[ƒVƒ‡ƒ“‚É‚æ‚艊ú‰»‚³‚ê‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB”ñLFN\¬‚Ì‚Æ‚«‚Í‚±‚̃ƒ“ƒo‚Í‘¶Ý‚µ‚Ü‚¹‚ñB</dd>
+</dl>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/size.html b/3rdparty/fatfs-0.10b/doc/ja/size.html
new file mode 100644
index 00000000..959bc468
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/size.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/size.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_size</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_size</h2>
+<p>ƒtƒ@ƒCƒ‹‚̃TƒCƒY‚ðŽæ“¾‚µ‚Ü‚·B</p>
+<pre>
+DWORD f_size (
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg */</span>
+);
+</pre>
+</div>
+
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>ƒoƒCƒg’PˆÊ‚̃tƒ@ƒCƒ‹EƒTƒCƒY‚ª•Ô‚è‚Ü‚·B</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>f_sizeŠÖ”‚ÍAŒ»ƒŠƒrƒWƒ‡ƒ“‚ł̓}ƒNƒ‚Æ‚µ‚ÄŽÀ‘•‚³‚ê‚Ä‚¢‚Ü‚·B</p>
+<pre>
+<span class="k">#define</span> f_size(fp) ((fp)->fsize)
+</pre>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p>í‚ÉŽg—p‰Â”\B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="lseek.html">f_lseek</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/stat.html b/3rdparty/fatfs-0.10b/doc/ja/stat.html
new file mode 100644
index 00000000..2a88bbf6
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/stat.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/stat.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_stat</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_stat</h2>
+<p>ƒtƒ@ƒCƒ‹‚Ü‚½‚̓TƒuEƒfƒBƒŒƒNƒgƒŠ‚Ì‘¶Ý‚𒲂×A‚Ü‚½‚»‚Ìî•ñ‚ðŽæ“¾‚µ‚Ü‚·B</p>
+<pre>
+FRESULT f_stat (
+ const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] ƒIƒuƒWƒFƒNƒg–¼‚ւ̃|ƒCƒ“ƒ^ */</span>
+ FILINFO* <span class="arg">fno</span> <span class="c">/* [OUT] ƒtƒ@ƒCƒ‹î•ñ\‘¢‘̂ւ̃|ƒCƒ“ƒ^ */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>ƒ`ƒFƒbƒN‚·‚éƒIƒuƒWƒFƒNƒg–¼‚ðŽ¦‚·ƒkƒ‹•¶Žš<tt>'\0'</tt>I’[‚Ì•¶Žš—ñ‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+<dt>fno</dt>
+<dd>ƒIƒuƒWƒFƒNƒg‚ª‘¶Ý‚µ‚½‚Æ‚«‚É‚»‚Ìî•ñ‚ðŠi”[‚·‚éƒtƒ@ƒCƒ‹î•ñ\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B‚±‚Ìî•ñ‚ª•s—v‚È‚Æ‚«‚̓kƒ‹Eƒ|ƒCƒ“ƒ^‚ðŽw’肵‚Ä‚­‚¾‚³‚¢B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ok">FR_NO_FILE</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>Žw’肳‚ꂽƒtƒ@ƒCƒ‹‚Ü‚½‚̓TƒuEƒfƒBƒŒƒNƒgƒŠ‚Ì‘¶Ý‚𒲂ׂ܂·B‘¶Ý‚µ‚È‚¢ê‡‚ÍA<tt>FR_NO_FILE</tt>‚ª‹A‚è‚Ü‚·B‘¶Ý‚·‚éꇂÍ<tt>FR_OK</tt>‚ª‹A‚èAƒtƒ@ƒCƒ‹î•ñ\‘¢‘Ì‚É‚»‚êŠÖ‚·‚éî•ñ(ƒTƒCƒYAƒ^ƒCƒ€ƒXƒ^ƒ“ƒvA‘®«‚¨‚æ‚Ñ’Z‚¢ƒtƒ@ƒCƒ‹–¼)‚ªƒXƒgƒA‚³‚ê‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_MINIMIZE == 0</tt>‚Ì‚Æ‚«‚ÉŽg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="opendir.html">f_opendir</a>, <a href="readdir.html">f_readdir</a>, <a href="sfileinfo.html">FILINFO</a>, <a href="sdir.html">DIR</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/sync.html b/3rdparty/fatfs-0.10b/doc/ja/sync.html
new file mode 100644
index 00000000..34403275
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/sync.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/sync.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_sync</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_sync</h2>
+<p>‘‚«ž‚Ý’†‚̃tƒ@ƒCƒ‹‚̃LƒƒƒbƒVƒ…‚³‚ꂽî•ñ‚ðƒtƒ‰ƒbƒVƒ…‚µ‚Ü‚·B</p>
+<pre>
+FRESULT f_sync (
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^ */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>sync‚·‚éƒtƒ@ƒCƒ‹‚̃tƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>‚±‚ÌŠÖ”‚Í<tt>f_close()</tt>‚Æ“¯‚¶ˆ—‚ðŽÀs‚µ‚Ü‚·‚ªAƒtƒ@ƒCƒ‹‚͈ø‚«‘±‚«ŠJ‚©‚ꂽ‚Ü‚Ü‚É‚È‚èA“Ç‚Ý‘‚«‚ð‘±s‚Å‚«‚Ü‚·BƒƒMƒ“ƒO‚È‚ÇA‘‚«ž‚݃‚[ƒh‚Å’·ŽžŠÔƒtƒ@ƒCƒ‹‚ªŠJ‚©‚ê‚Ä‚¢‚éƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚É‚¨‚¢‚ÄA’èŠú“I‚Ü‚½‚Í‹æØ‚è‚Ì—Ç‚¢‚Æ‚±‚ë‚Å‚±‚ÌŠÖ”‚ðŽg—p‚·‚邱‚Æ‚É‚æ‚èA•sˆÓ‚Ì“dŒ¹’f‚⃃fƒBƒA‚ÌŽæ‚èŠO‚µ‚É‚æ‚莸‚í‚ê‚éƒf[ƒ^‚ðŬ‚É‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B‚±‚Ì”wŒi‚ɂ‚¢‚Ä‚ÍA<a href="appnote.html#critical">ƒAƒvƒŠƒP[ƒVƒ‡ƒ“Eƒm[ƒg</a>‚àŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B</p>
+<p>ŽÀÛ‚Ì‚Æ‚±‚ëA<tt>f_close()</tt>“à‚Å‚Í‚±‚ÌŠÖ”‚ðŒÄ‚Ño‚µ‚½Œãƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg‚𖳌ø‰»‚µ‚Ä‚¢‚邾‚¯‚È‚Ì‚ÅA<tt>f_close()</tt>’¼‘O‚É<tt>f_sync()</tt>‚ð’u‚­‚±‚Æ‚Í–³ˆÓ–¡‚Å‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_READONLY == 0</tt>‚Ì‚Æ‚«‚ÉŽg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="close.html">f_close</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/tell.html b/3rdparty/fatfs-0.10b/doc/ja/tell.html
new file mode 100644
index 00000000..c39505e0
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/tell.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_e.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/tell.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_tell</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_tell</h2>
+<p>Œ»Ý‚̃Š[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚ðŽæ“¾‚µ‚Ü‚·B</p>
+<pre>
+DWORD f_tell (
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg */</span>
+);
+</pre>
+</div>
+
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>Œ»Ý‚̃Š[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^(ƒtƒ@ƒCƒ‹æ“ª‚©‚ç‚̃oƒCƒg’PˆÊ‚̃IƒtƒZƒbƒg)‚ª•Ô‚è‚Ü‚·B</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>f_tellŠÖ”‚ÍAŒ»ƒŠƒrƒWƒ‡ƒ“‚ł̓}ƒNƒ‚Æ‚µ‚ÄŽÀ‘•‚³‚ê‚Ä‚¢‚Ü‚·B</p>
+<pre>
+<span class="k">#define</span> f_tell(fp) ((fp)->fptr)
+</pre>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p>í‚ÉŽg—p‰Â”\B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="lseek.html">f_lseek</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/truncate.html b/3rdparty/fatfs-0.10b/doc/ja/truncate.html
new file mode 100644
index 00000000..23ed35ea
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/truncate.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/truncate.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_truncate</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_truncate</h2>
+<p>ƒtƒ@ƒCƒ‹’·‚ðØ‚è‹l‚ß‚Ü‚·B</p>
+<pre>
+FRESULT f_truncate (
+ FIL* <span class="arg">fp</span> <span class="c">/* [IN] ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg‚ւ̃|ƒCƒ“ƒ^ */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>Ø‚è‹l‚ß‘ÎÛƒtƒ@ƒCƒ‹‚̃tƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg‚ւ̃|ƒCƒ“ƒ^</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#de">FR_DENIED</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>ƒtƒ@ƒCƒ‹‚Ì’·‚³‚ªŒ»Ý‚̃Š[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚ÉØ‚è‹l‚ß‚ç‚ê‚Ü‚·BƒŠ[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚ªŠù‚Ƀtƒ@ƒCƒ‹‚ÌI’[‚ðŽw‚µ‚Ä‚¢‚é‚Æ‚«‚ÍA‚±‚ÌŠÖ”‚͉½‚ÌŒø‰Ê‚àŽ‚¿‚Ü‚¹‚ñB</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_READONLY == 0</tt>‚ÅAŠŽ‚Â<tt>_FS_MINIMIZE == 0</tt>‚Ì‚Æ‚«‚ÉŽg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="lseek.html">f_lseek</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+
+<p class="foot"><a href="../00index_j.html">Return</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/unlink.html b/3rdparty/fatfs-0.10b/doc/ja/unlink.html
new file mode 100644
index 00000000..ac38552f
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/unlink.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/unlink.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_unlink</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_unlink</h2>
+<p>ƒtƒ@ƒCƒ‹‚Ü‚½‚̓TƒuEƒfƒBƒŒƒNƒgƒŠ‚ð휂µ‚Ü‚·B</p>
+<pre>
+FRESULT f_unlink (
+ const TCHAR* <span class="arg">path</span> <span class="c">/* [IN] ƒIƒuƒWƒFƒNƒg–¼‚ւ̃|ƒCƒ“ƒ^ */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>휑ÎÛ‚Ì<a href="filename.html">ƒpƒX–¼</a>‚ðŽ¦‚·ƒkƒ‹•¶Žš<tt>'\0'</tt>I’[‚Ì•¶Žš—ñ‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ok">FR_NO_FILE</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#de">FR_DENIED</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#lo">FR_LOCKED</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>휑Îۂ̃IƒuƒWƒFƒNƒg‚ªŽŸ‚ÌðŒ‚É“–‚Ä‚Í‚Ü‚éê‡A‚»‚̃AƒNƒZƒX‚Í‹‘”Û‚³‚êŠÖ”‚ÍŽ¸”s‚µ‚Ü‚·B
+<ul>
+<li>ƒŠ[ƒhEƒIƒ“ƒŠ[‘®«(<tt>AM_RDO</tt>)‚ðŽ‚Á‚Ä‚¢‚éꇂÍA‹‘”Û(<tt>FR_DENIED</tt>)‚³‚ê‚éB</li>
+<li>‹ó‚Å‚È‚¢ƒTƒuEƒfƒBƒŒƒNƒgƒŠ‚Ü‚½‚̓JƒŒƒ“ƒgEƒfƒBƒŒƒNƒgƒŠ‚Å‚ ‚éꇂÍA‹‘”Û(<tt>FR_DENIED</tt>)‚³‚ê‚éB</li>
+<li>ŠJ‚©‚ê‚Ä‚¢‚éƒtƒ@ƒCƒ‹‚Ü‚½‚̓TƒuEƒfƒBƒŒƒNƒgƒŠ‚Å‚ ‚éꇂÍA<a href="appnote.html#dup">‘½dƒAƒNƒZƒX§Œä</a>‚ª—LŒø‚È‚çˆÀ‘S‚É‹‘”Û(<tt>FR_LOCKED</tt>)‚³‚ê‚Ü‚·‚ªA‚»‚¤‚Å‚È‚¢‚Æ‚«‚Í•s³‚È‘€ì‚Æ‚È‚èA<em>FAT\‘¢‚ª”j‰ó‚³‚ê‚é‰Â”\«</em>‚ª‚ ‚è‚Ü‚·B</li>
+</ul>
+</p>
+</div>
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_READONLY == 0</tt>‚ÅAŠŽ‚Â<tt>_FS_MINIMIZE == 0</tt>‚Ì‚Æ‚«‚ÉŽg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/utime.html b/3rdparty/fatfs-0.10b/doc/ja/utime.html
new file mode 100644
index 00000000..8bccf652
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/utime.html
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/utime.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_utime</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_utime</h2>
+<p>ƒtƒ@ƒCƒ‹‚Ü‚½‚̓TƒuEƒfƒBƒŒƒNƒgƒŠ‚̃^ƒCƒ€ƒXƒ^ƒ“ƒv‚ð•ÏX‚µ‚Ü‚·B</p>
+<pre>
+FRESULT f_utime (
+ const TCHAR* <span class="arg">path</span>, <span class="c">/* [IN] ƒIƒuƒWƒFƒNƒg–¼‚ւ̃|ƒCƒ“ƒ^ */</span>
+ const FILINFO* <span class="arg">fno</span> <span class="c">/* [IN] Ý’è‚·‚é“ú•t */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>path</dt>
+<dd>•ÏX‘Îۂ̃IƒuƒWƒFƒNƒg‚Ì<a href="filename.html">ƒpƒX–¼</a>‚ðŽ¦‚·ƒkƒ‹•¶Žš<tt>'\0'</tt>I’[‚Ì•¶Žš—ñ‚ðŽw’肵‚Ü‚·B</dd>
+<dt>fno</dt>
+<dd>Ý’è‚·‚é“ú•t‚ÆŽžŠÔ‚ð<tt>fdate</tt>‚Æ<tt>ftime</tt>ƒƒ“ƒo‚Éݒ肳‚ꂽ<tt>FILINFO</tt>\‘¢‘̂ւ̃|ƒCƒ“ƒ^B‘¼‚̃ƒ“ƒo‚Í‚±‚ÌŠÖ”‚ł͈Ӗ¡‚ðŽ‚¿‚Ü‚¹‚ñB</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#ok">FR_NO_FILE</a>,
+<a href="rc.html#np">FR_NO_PATH</a>,
+<a href="rc.html#in">FR_INVALID_NAME</a>,
+<a href="rc.html#wp">FR_WRITE_PROTECTED</a>,
+<a href="rc.html#id">FR_INVALID_DRIVE</a>,
+<a href="rc.html#ne">FR_NOT_ENABLED</a>,
+<a href="rc.html#ns">FR_NO_FILESYSTEM</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>,
+<a href="rc.html#nc">FR_NOT_ENOUGH_CORE</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>ƒIƒuƒWƒFƒNƒg‚̃^ƒCƒ€ƒXƒ^ƒ“ƒv‚ð•ÏX‚µ‚Ü‚·B</p>
+</div>
+
+
+<div class="para use">
+<h4>Žg—p—á</h4>
+<pre>
+FRESULT set_timestamp (
+ char *obj, <span class="c">/* ƒtƒ@ƒCƒ‹–¼‚ւ̃|ƒCƒ“ƒ^ */</span>
+ int year,
+ int month,
+ int mday,
+ int hour,
+ int min,
+ int sec
+)
+{
+ FILINFO fno;
+
+ fno.fdate = (WORD)(((year - 1980) * 512U) | month * 32U | mday);
+ fno.ftime = (WORD)(hour * 2048U | min * 32U | sec / 2U);
+
+ return f_utime(obj, &amp;fno);
+}
+</pre>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_READONLY == 0</tt>‚ÅAŠŽ‚Â<tt>_FS_MINIMIZE == 0</tt>‚Ì‚Æ‚«‚ÉŽg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="stat.html">f_stat</a>, <a href="sfileinfo.html">FILINFO</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/ja/write.html b/3rdparty/fatfs-0.10b/doc/ja/write.html
new file mode 100644
index 00000000..9156571d
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/ja/write.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="ja">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="up" title="FatFs" href="../00index_j.html">
+<link rel="alternate" hreflang="en" title="English" href="../en/write.html">
+<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
+<title>FatFs - f_write</title>
+</head>
+
+<body>
+
+<div class="para func">
+<h2>f_write</h2>
+<p>ƒtƒ@ƒCƒ‹‚Ƀf[ƒ^‚ð‘‚«ž‚Ý‚Ü‚·B</p>
+<pre>
+FRESULT f_write (
+ FIL* <span class="arg">fp</span>, <span class="c">/* [IN] ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg */</span>
+ const void* <span class="arg">buff</span>, <span class="c">/* [IN] ‘‚«ž‚݃f[ƒ^ */</span>
+ UINT <span class="arg">btw</span>, <span class="c">/* [IN] ‘‚«ž‚ÞƒoƒCƒg” */</span>
+ UINT* <span class="arg">bw</span> <span class="c">/* [OUT] ‘‚«ž‚܂ꂽƒoƒCƒg” */</span>
+);
+</pre>
+</div>
+
+<div class="para arg">
+<h4>ˆø”</h4>
+<dl class="par">
+<dt>fp</dt>
+<dd>ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+<dt>buff</dt>
+<dd>‘‚«ž‚Þƒf[ƒ^‚ðŠi”[‚µ‚½ƒoƒbƒtƒ@‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B</dd>
+<dt>btw</dt>
+<dd>‘‚«ž‚ÞƒoƒCƒg”(0`<tt>UINT</tt>Œ^‚ÌÅ‘å’l)‚ðŽw’肵‚Ü‚·B</dd>
+<dt>bw</dt>
+<dd>‘‚«ž‚܂ꂽƒoƒCƒg”‚ðŠi”[‚·‚é•Ï”‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B–ß‚è’l‚ÍŠÖ”‚̬”Û‚É‚©‚©‚í‚炸í‚É—LŒø‚Å‚·B</dd>
+</dl>
+</div>
+
+
+<div class="para ret">
+<h4>–ß‚è’l</h4>
+<p>
+<a href="rc.html#ok">FR_OK</a>,
+<a href="rc.html#de">FR_DISK_ERR</a>,
+<a href="rc.html#ie">FR_INT_ERR</a>,
+<a href="rc.html#nr">FR_NOT_READY</a>,
+<a href="rc.html#de">FR_DENIED</a>,
+<a href="rc.html#io">FR_INVALID_OBJECT</a>,
+<a href="rc.html#tm">FR_TIMEOUT</a>
+</p>
+</div>
+
+
+<div class="para desc">
+<h4>‰ðà</h4>
+<p>‘‚«ž‚ÝŠJŽnˆÊ’u‚ÍAƒŠ[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚̈ʒu‚©‚ç‚É‚È‚è‚Ü‚·BƒŠ[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚ÍŽÀÛ‚É‘‚«ž‚܂ꂽƒoƒCƒg”‚¾‚¯i‚Ý‚Ü‚·BŠÖ”‚ª³íI—¹‚µ‚½ŒãA—v‹‚µ‚½ƒoƒCƒg”‚ª‘‚«ž‚܂ꂽ‚©‚Ç‚¤‚©<tt class="arg">*bw</tt>‚ðƒ`ƒFƒbƒN‚·‚ׂ«‚Å‚·B<tt class="arg">*bw</tt>‚ª<tt class="arg">btw</tt>‚æ‚謂³‚¢‚Æ‚«‚ÍAƒfƒBƒXƒNEƒtƒ‹‚ðˆÓ–¡‚µ‚Ü‚·BƒfƒBƒXƒNEƒtƒ‹‚ª”­¶‚µ‚Ä‚¢‚é‚Æ‚«‚Ü‚½‚Í‚»‚ê‚É‹ß‚¢‚Æ‚«‚ÍA§Œä‚ª‹A‚é‚Ü‚ÅŽžŠÔ‚ª‚©‚©‚éꇂª‚ ‚è‚Ü‚·B</p>
+</div>
+
+
+<div class="para comp">
+<h4>‘Ήžî•ñ</h4>
+<p><tt>_FS_READONLY == 0</tt>‚Ì‚Æ‚«‚ÉŽg—p‰Â”\‚Å‚·B</p>
+</div>
+
+
+<div class="para ref">
+<h4>ŽQÆ</h4>
+<p><tt><a href="open.html">f_open</a>, <a href="read.html">f_read</a>, <a href="putc.html">fputc</a>, <a href="puts.html">fputs</a>, <a href="printf.html">fprintf</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a></tt></p>
+</div>
+
+<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
+</body>
+</html>
diff --git a/3rdparty/fatfs-0.10b/doc/updates.txt b/3rdparty/fatfs-0.10b/doc/updates.txt
new file mode 100644
index 00000000..a86c01cb
--- /dev/null
+++ b/3rdparty/fatfs-0.10b/doc/updates.txt
@@ -0,0 +1,146 @@
+R0.10b, May 19, 2014
+ Fixed a hard error in the disk I/O layer can collapse the directory entry.
+ Fixed LFN entry is not deleted on delete/rename an object with its lossy converted SFN.
+
+R0.10a, Jan 15, 2014
+ Added arbitrary strings as drive number in the path name. (_STR_VOLUME_ID)
+ Added an option for minimum sector size. (_MIN_SS)
+ 2nd argument of f_rename() can have a drive number and it will be ignored.
+ Fixed f_mount() with forced mount fails when drive number is larger than 0.
+ Fixed f_close() invalidates the file object without volume lock.
+ Fixed volume lock is left acquired after return from f_closedir().
+ Fixed creation of a directory entry with LFN fails on too many SFN collisions.
+
+R0.10, Oct 02, 2013
+ Added an option for character encoding on the file. (_STRF_ENCODE)
+ Added f_closedir().
+ Added forced full FAT scan option for f_getfree(). (_FS_NOFSINFO)
+ Added forced mount feature with changes of f_mount().
+ Improved behavior of volume auto detection.
+ Improved write throughput of f_puts() and f_printf().
+ Changed argument of f_chdrive(), f_mkfs(), disk_read() and disk_write().
+ Fixed f_write() can be truncated when the file size is close to 4GB.
+ Fixed f_open(), f_mkdir() and f_setlabel() can return incorrect result code on error.
+
+R0.09b, Jan 24, 2013
+ Added f_getlabel() and f_setlabel(). (_USE_LABEL = 1)
+
+R0.09a, Aug 27, 2012
+ Fixed assertion failure due to OS/2 EA on FAT12/16 volume.
+ Changed file functions reject null object pointer to avoid crash.
+ Changed option name _FS_SHARE to _FS_LOCK.
+
+R0.09, Sep 06, 2011
+ f_mkfs() supports multiple partition to complete the multiple partition feature.
+ Added f_fdisk(). (_MULTI_PARTITION = 2)
+
+R0.08b, Jan 15, 2011
+ Fast seek feature is also applied to f_read() and f_write().
+ f_lseek() reports required table size on creating CLMP.
+ Extended format syntax of f_printf().
+ Ignores duplicated directory separators in given path names.
+
+R0.08a, Aug 16, 2010
+ Added f_getcwd(). (_FS_RPATH = 2)
+ Added sector erase feature. (_USE_ERASE)
+ Moved file lock semaphore table from fs object to the bss.
+ Fixed a wrong directory entry is created on non-LFN cfg when the given name contains ';'.
+ Fixed f_mkfs() creates wrong FAT32 volume.
+
+R0.08, May 15, 2010
+ Added a memory configuration option. (_USE_LFN)
+ Added file lock feature. (_FS_SHARE)
+ Added fast seek feature. (_USE_FASTSEEK)
+ Changed some types on the API, XCHAR->TCHAR.
+ Changed fname member in the FILINFO structure on Unicode cfg.
+ String functions support UTF-8 encoding files on Unicode cfg.
+
+R0.07e, Nov 3, 2009
+ Separated out configuration options from ff.h to ffconf.h.
+ Added a configuration option, _LFN_UNICODE.
+ Fixed f_unlink() fails to remove a sub-dir on _FS_RPATH.
+ Fixed name matching error on the 13 char boundary.
+ Changed f_readdir() to return the SFN with always upper case on non-LFN cfg.
+
+R0.07c, Jun 21, 2009
+ Fixed f_unlink() may return FR_OK on error.
+ Fixed wrong cache control in f_lseek().
+ Added relative path feature.
+ Added f_chdir().
+ Added f_chdrive().
+ Added proper case conversion to extended characters.
+
+R0.07a, Apr 14, 2009
+ Separated out OS dependent code on re-entrant configuration.
+ Added multiple sector size support.
+
+R0.07, Apr 01, 2009
+ Merged Tiny-FatFs into FatFs as a buffer configuration option.
+ Added long file name support.
+ Added multiple code page support.
+ Added re-entrancy for multitask operation.
+ Added auto cluster size selection to f_mkfs().
+ Added rewind option to f_readdir().
+ Changed result code of critical errors.
+ Renamed string functions to avoid name collision.
+
+R0.06, Apr 01, 2008
+ Added f_forward. (Tiny-FatFs)
+ Added string functions: fgets, fputc, fputs and fprintf.
+ Improved performance of f_lseek on moving to the same or following cluster.
+
+R0.05a, Feb 03, 2008
+ Added f_truncate.
+ Added f_utime.
+ Fixed off by one error at FAT sub-type determination.
+ Fixed btr in f_read can be mistruncated.
+ Fixed cached sector is left not flushed when create and close without write.
+
+R0.05, Aug 26, 2007
+ Changed arguments of f_read, f_write.
+ Changed arguments of f_mkfs. (FatFs)
+ Fixed f_mkfs on FAT32 creates incorrect FSInfo. (FatFs)
+ Fixed f_mkdir on FAT32 creates incorrect directory. (FatFs)
+
+R0.04b, May 05, 2007
+ Added _USE_NTFLAG option.
+ Added FSInfo support.
+ Fixed some problems corresponds to FAT32. (Tiny-FatFs)
+ Fixed DBCS name can result FR_INVALID_NAME.
+ Fixed short seek (<= csize) collapses the file object.
+
+R0.04a, Apr 01, 2007
+ Supported multiple partitions on a plysical drive. (FatFs)
+ Added minimization level 3.
+ Added a capability of extending file size to f_lseek.
+ Fixed an endian sensitive code in f_mkfs. (FatFs)
+ Fixed a problem corresponds to FAT32 support. (Tiny-FatFs)
+
+R0.04, Feb 04, 2007
+ Supported multiple drive system. (FatFs)
+ Changed some APIs for multiple drive system.
+ Added f_mkfs. (FatFs)
+ Added _USE_FAT32 option. (Tiny-FatFs)
+
+R0.03a, Dec 11, 2006
+ Improved cluster scan algolithm to write files fast.
+ Fixed f_mkdir creates incorrect directory on FAT32.
+
+R0.03, Sep 22, 2006
+ Added f_rename.
+ Changed option _FS_MINIMUM to _FS_MINIMIZE.
+
+R0.02a, Jun 10, 2006
+ Added a configuration option _FS_MINIMUM.
+
+R0.02, Jun 01, 2006
+ Added FAT12.
+ Removed unbuffered mode.
+ Fixed a problem on small (<32M) patition.
+
+R0.01, Apr 29, 2006
+ First release
+
+R0.00, Feb 26, 2006
+ Prototype (not released)
+