Unofficial ps2ftpd.irx module by EP & dlanor

FtpClient.c
-Changed string format to "MMM DD YYYY" format, which is based on "FTP LIST Specification". (NOTE: fixes the Unknown list format errors with most ftp clients).
-Added the possibility to change within the included sources the option for changing to "MMM DD hh:mm" format. (NOTE: read the comments in the included source file).
-Changed list string format slightly to match a known ftp list format as it was only off by two.
-Made the necessary changes for rename to be implemented.
-Changed to MS-style LIST format for testing. More compatible?
-Made slight changes to the previously used UNIX-style LIST format.
-Added the possibility to change within the included sources the option for going back to the UNIX-style LIST format.
-Changed MS-style list format slightly to show 12:00AM instead of 00:00AM, which was wrong earlier. (Note: some ftp clients will get this wrong and show 12:00PM instead so be aware).
-Reverted back to the UNIX-style LIST format, as it appears to be the most compatible overall.
-Cleaned up the source code a bit to fix an unused variable compiler warning.
-Finished the UNIX-style LIST format after many other changes were made. (Note: Now the LIST format does either "MMM DD  YYYY" or "MMM DD hh:mm" based on the days between calculation).
-Added a new uitoa function that can deal with larger sizes.

FileSystem.c
-Added a check in the scan filesystem devices function that hides all except "mc" and "pfs" directories from the ftp clients. (Note: Now modified to fix bug with some ftp clients)
-Added a fix for multiple mc directories bug, which occurs when both slots contain PS2 memory cards.
-Added "mass" as a supported filesystem device so it shows up with "mc" and "pfs" in the root device listing.
-Changed a few things in order to accommodate support for USB mass fixing a sub directory issue.
-Created a workaround to fix a "mass" listing issue do to timestamps not being able to be accessed. (Note: Hopefully this is only temporary but as of now all files/folders timestamps for "mass" show up as "1/1/1970").
-Added "hdd" as a supported filesystem device so it shows up with "mc", "pfs", and "mass" in the root device listing.
-Changed a few things to support HDD partition viewing by fixing a sub directory issue.
-Made changes to only show the same partitions that unofficial LaunchELF shows.
-Fixed issue where mc save folders, that are copy protected, showed up as files instead of folders.
-Fixed protection attributes not showing up properly with mass.
-Removed workaround for "mass" and timestamp issues since it's no longer needed do to changes to usb_mass driver.
-Fixed attributes of newly created files/dirs on hdd that matches LaunchELF's implementation.
-Made a workaround for "ps2fs: Warning: NULL buffer returned" issue that occurred when writing files to the hdd.
-Added the ability to rename files/folders for mounted hdd partitions.
-Placed printf's in the driver to show timestamps and other attributes for possible future debugging purposes that will hopefully only be temporary.
-Changed hdd partitions to show up as directories instead of files.
-Added the ability to auto-mount hdd partitions to pfs/0. (Notes: Once a partition's directory is opened, the partition is auto-mounted to pfs/0. The directory is then also changed to pfs/0. Partitions are un-mounted at hdd/0 and also just prior to being auto-mounted).
-Added the ability to read the ps2's system clock so now root and device dirs use this instead of "1/1/1970".
-Added a days between dates calculator in order to complete the UNIX-style LIST format. (Note: Now if the modified date of a file/dir is within the last 182 days the "hh:mm" format will appear in place of the "YYYY" format as it's suppose to).
-Commented out all the extra debug printf's as they are currently no longer needed.
-Fixed an issue with size so now hdd partitions and files can accurately display size in bytes.
-Fixed an issue with auto-mounting hdd partitions for those using Internet Explorer as their ftp client.
-Fixed a bug with the IOP 3.2.2 compiler by moving "int iOpened = 0" variable declaration in function FileSystem_OpenFile to the top with the other variable declarations. (Note: this fixes the crashing issue that occurred when transferring a new file to the memory card).
-Rewrote some of the auto-mount partitions code to also work with the IOP 3.2.2 compiler.
-Altered the partition filter to prevent sub partitions from also appearing in the listing.
-Changed the size value to zero for all folders including partitions in the hdd listing.
-Fixed a few issues that prevented PS1 memory cards from appearing in the listing. (Note: Files on PS1 memory cards lack timestamps so the timestamps come from the current PS2 system time).
-Modified the partition-hiding patches, so as to allow access to "__common", the partition used for memory card backups by Sony's HDD browser.
-Added a define "DEVICE_UNITS 4" to set the maximum number of device units from 16 to a variable. The variable was assigned the value four because it fits the maximum number of mounted partitions to PFS. (Ex: includes: pfs/0, pfs/1, pfs/2, and pfs/3).
-Changed procedure for evaluating devices when one was not found. Before when a device unit such as mc/0 was not found it wouldn't even look for a memory card in mc/1. Now since the number of device units was changed from 16 to 4, it’s easier to check all possible instances without penalty.
-Changed partition filter and removed the codebreaker partition from the hdd partition listing.
-Fixed a future year attribute issue with dlanor's fix.
-Updated ps2ftpd and existing source files to SVN rev 587.
-Changed "DEVICE_UNITS" from 4 to 10 for the newer USB driver.
-Altered an old workaround to allow multiple USB devices to show up properly within FTP clients.

FtpClient.h, FileSystem.h, and FtpCommands.c 
-Made the necessary changes for rename to be implemented.

FileSystem.h, imports.lst, and irx_imports.h
-Made some slight changes to read the ps2's system clock.

I have included a binary of ps2ftpd in the modules directory for the unofficial LaunchELF with all the changes noted above.

I release my changes to parts of the source in the hopes that the author of ps2ftpd may add some or all of my changes. I have included all the files that I made changes to in this folder.

Special Thanks to the following:
Jesper Svennevid (chip) for all the hard work on ps2ftpd, which I made changes to.
Daniel E. Singer for date_calc, which I used some code in ps2ftpd.
