Name : Brandon Wilson Project : msd8x Email : brandonlw@gmail.com IM : AIM - cableguy3535 Description: msd8x is a USB mass storage driver for TI-84 Plus and TI-84 Plus Silver Edition graphing calculators utilizing the host driver functionality in usb8x 0.08. This will allow USB mass storage devices such as portable flash drives to be plugged into the calculator and read/written to. msd8x will provide a Basic and assembly programming interface as well as a user-friendly GUI to read and write to the drive in the form of .8x* files. It will support reading and writing to the FAT16 file system and provide an API to reading and writing files of all types with the connected drive. msd8x will provide a complete user interface to access all contents of the FAT16-formatted USB flash drive which is connected to the TI-84 Plus/SE USB On-The-Go port. Furthermore, .8x* files such as programs and appvars (in fact all variables except Flash applications and operating systems) can be read directly from the flash drive and stored to the built-in RAM or Flash memory. Also, variables currently in the calculator's built-in memory can be sent to the flash drive and stored in the form of .8x* files. This will allow for a seamless transition between computer files and calculator files. The assembly interface to msd8x will allow simple importing/exporting of files just as the user interface allows, but it also has the potential for much more. Files of any type can be opened, created, read and written to the flash drive, but support for this may be limited. The Basic interface to msd8x will merely allow simple importing/exporting of files to and from the flash drive. The deliverables for msd8x will include the application itself, consisting of a user interface to read and write to the USB flash drive. Full FAT16 read and write support for the user interface and Basic and assembly interfaces will be complete. Future enhancements include a USB mass storage peripheral driver (allowing a TI-84 Plus/SE to plug into a computer and be detected as a FAT16 drive) and other file systems such as FAT12 and FAT32. The timeline for development of msd8x will be as follows: May 23 - research into the USB Bulk-Only Transport Protocol and Michael Vincent's current FAT16 read support will be made. June 10 - work will begin on improving Michael Vincent's FAT16 read support and fixing any current problems. June 20 - work will begin on FAT16 write support and a primitive assembly interface for testing. July 1 - the user interface to msd8x will begin and simplify FAT16 read/write support. August 1 - research and work with Basic OpenLib/ExecLib functions and Basic/assembly interface will begin. August 10 - project will be due. I am not taking summer classes nor do I have any vacations planned which could interfere with this project. Programming Experience: Ever since obtaining the TI-83 in eighth grade, I have been obsessed with TI graphing calculators and general programming. I now own a TI-84 Plus Silver Edition, TI-86, and TI-89. I know Basic for all three and am experienced in z80 assembly for the TI-84 Plus Silver Edition and TI-86. I have an extensive ticalc.org author profile of high-quality applications at http://www.ticalc.org/archives/files/authors/86/8662.html. Some of the TI-83 Plus series applications I have developed include X-Link, GroupTool, KLogger, and AddAsm. Furthermore, I have spent quite some time studying Michael Vincent's mass storage driver code and I am confident I will be able to complete FAT16 write support in the time allotted. Open Source Development Experience: Nearly all programs which I have written are freely downloadable along with source code at my website, http://www.brandonw.org/. I have never charged money for an application and I do not intend to. Biography: I currently attend East Tennessee State University. I am a senior with a major in Computer Science planning to graduate in December of this year. My personal site, http://www.brandonw.org/, is a testament to my programming abilities as well as my ticalc.org author profile (found at http://www.ticalc.org/archives/files/authors/86/8662.html). I believe I am the best candidate for creating this application because of my vast experience with the TI-84 Plus series. Previous applications which I have developed, such as GroupTool and X-Link, contained complex interfaces for dealing with TI-OS variables. I also have previous experience in dealing with low-level details of the FAT16 file system. I have more than enough experience with z80 assembly, the TI-OS and its variable formats, and the FAT16 file system to successfully complete this project on-time. It is sure to be very challenging nontheless and I am very excited to be working on such a complex interface between calculator and computer formats.