Notes for verion : 2.6 : fixed the cache : cache is now functional for drives up 2/8TB ...
Notes for version : 2.5 : added USB DVD/CD support in DOS using DOSUSB.COM, some fixes.
Note about version : 2.42: fixes for partition editor,it can now dump any drive (linux/win32 or int13_drv/vfile in dos) to local hard disk
(using OS's read/write to file)
Note about version : 2.41 : updated INT13 support, updated usbebe, bug fixes ... and me :
Note about version 2.4:
- version 2.4 contains updated built-in UHCI USB controller driver !
you will now be able to setup any transaction with your usb devices !
for more info please read readme.txt file, inside fs-2.4.zip
- for now only for experts - i promise a higher level implemetation for future release -
I license my programs only if users agree to "The Universal Declaration of Human Rights"
AND ONLY for NON-CRIMINAL purposes (aka violation of laws/persons).
Code: Select all
print "Thanks to following people for their good docs ( &tutorial sources)!"
print " - Tilmann Reh - (IDE HD tutorial)"
print " - IDE ATA HardDisk Specification"
print " - Philip J. Erdelsky - ISO9660 Simplified"
print " - ISO 9660 - Wikipedia, the free encyclopedia"
print " - Joilet Spec - Microsoft"
print " - An Introduction To Programming With ATA And ATAPI"
print " - Ben Cadieux - WDE asm sources"
print " - Jack R. Ellis - XCDROM.SYS sources"
print " - Information Technology - AT Attachment Packet Interface (ATAPI)"
print " - Hale Landis - How it Works -- Partition Tables"
print " - Hsu-Ping Feng - SpfDisk : Values for operating system indicator"
print " - Robert Vandervelde - How Windows 95 Stores Long Filenames"
print " - Inbar Raz - FAT DIRs' document"
print " - Galen C. Hunt(&Gordon Chaffee) -NOTES ON THE STRUCTURE OF THE VFAT FILESYSTEM"
print " - Jozsef Hidasi - How does Windows 95 stores LONG FILENAMES"
print " - Thomas Kjoernes - File Allocation Table : How It Seems To Work, etc..."
print " - Alex Verstak - FAT/PARTITION documents"
print: pause1 "press any key to print more ...": print
print " - EXT2 Specification"
print " - Wikipedia - EXT2"
print " - EXT2 Overview"
print " - John's spec of the second extended filesystem (EXPLORE2FS)"
print " - Intel IA32/64 CPU Manuals"
print " - Christopher Giese - protected-mode demo code"
print " - Alexei A. Frounze - protected-mode tutorial"
print " - Wim Osterholt - PORTLIST.TXT"
print " - Ralph Brown - Interrupts Bible ..."
print " - FreeDOS development team - Big thanks to all programmers, of all kind !"
print " - FreeBASIC compiler team and forum member - Nothing of this would be possible without you !"
print " - NASM - NASMDOC.TXT"
print " - FASM - FASMDOC.TXT"
print " - Glaciar P. Moreno I - Set's Editor (setedit)"
print " - FbEdit"
print " - NC, SCANDISK, Win9xDEFRAG for inspiration about GUI"
print: pause1 "press any key to print more ...": print
print " - HOME.RO for free web page hosting"
print " - google for being such a good 'searcher' :))"
print " - AlphaX team members (for moral suport)"
print " - wikipedia - most needed enciclopedia (as good as MS Encarta)"
print " - all HOBIEST programmers all over the world - Thanks !"
print " - A. Einstein , ICHB & MIT - good teachers"
Code: Select all
'- my second little dog DIED - today - Monday 8, December, 2008 - between 15:00->16:30
Code: Select all
'STDNSL.SMD.STS signature
'WARNING: this program uses 686 (Pentium Pro/K6/CyrixMX2) specific instructions
'(like CMOVxx,RDTSC, etc) It will not work with 586(Pentium/K5)/486/386 processors.
'NEW network drive ! (read/write sectors over the network ! cool !)
'From version 2.31 FS is now bug free for FAT32 and ISO9660 - completly functional
'- my second little dog DIED - today - Monday 8, December, 2008 - between 15:00->16:30
'- last modified 9/feb/2011 ; 11:10 ; Nenciulesti/Buzau/Romania/Eu/Earth/OurSolarSystem/MilkyWay/KnownUniverse :)
' Gnupyright (G) 1996-2011, AlphaX (R) Team
' Programmed by Ioan M. Barboi (aka Zdupy) , Romania, EU
' e-mail : mbarboi@home.ro //or// mbarboi@yahoo.com
' personal website : http://mbarboi.home.ro
' FS's website : http://filesystemd.sourceforge.com
' Please send bug reports to my e-mail adress !
' If you have questions about IDE,PCI,PIT,PIC,KBPORT,VESA,CMOS-RTC,ATA/ATAPI,USB,V86,PM32,MBR,FAT,ISO9660, FreeBASIC, VB, ASM, ...
' or any other please email me- and I will answer you (be sure).
'
' For license please read "The Universal Declaration of Human Rights" & GPL V2...
' Special thanls : OCW.MIT.EDU and many others !
' See thanks list : C:\>FS.EXE /thanks
'FS can be compiled with FreeBASIC32 compiler (0.20b,0.21,0.21.1) for DOS32(CWSDPMI)/WINDOWS/LINUX
'To compile FS use: fbc -w 3 -arch 686 -t 20000 fs.bas '(you will need :[mem.bas] ; [easy.bas] ; [mutex.bas] ; [myenum.bas] and [FS.BAS]
'To compile FS with USBebe support : fbc -w 3 -arch 686 -t 20000 -d usbebe_lib fs.bas '(you will need [usbebe.bas] too)
'+=========================================+
'| TO INCLUDE FS.BAS IN YOUR PROGRAM USE : |
'| #define USE_FS_LIB |
'| #include "fs.bas" |
'+=========================================+
' Or easier : #include once "fs.bi"
Before you go on you should friendly know that this complex program:
1) is not a replacement for WDE(r), SPFDISK(r), FDISK(r), FORMAT(r),XCDROM(r),SCANDISK(r),CHKDSK(r),DEFRAG32(r) etc ...
2) it provides (version 2.31) support for ONLY STANDARD parallel ATA IDE HardDisks and ATAPI compatible CD-RW/DVD-RW drives
3) it has also stable built-in support for USB UHCI controllers. But for handleing USB Mass Storage Bulk-Only compatible devices it uses
3rd party driver: DOSUSB.COM(R) by Georg Potthast (see http://www.georgpotthast.de/usb/dosusb.pdf )
4) in linux in can handle drives using linux's drivers (simply : open "/dev/hda", "/dev/dvd", "/dev/sda")
5) you can damage your hard-disk if you handle it wrong ! (like any other disk-editor)
------------------------------------------------------------------
The notes below are related to an older version of FS. The newer version contains some bug fixes and some additional add-ons (like selecting which CD/DVD track to use, copying fat1 to fat2 (or 2 to 1) etc ...)
Latest release: FS-2.3 -> with framed cache (for drives up to 2TBytes)
Most stable release (no bug is known) : FS-2.299 (but no framed cache)
->Both latest releases have got cd/dvd session explorer and many bug fixes. etc ....
Well after one year of painful work and many times backing up my HD ... finnally FS is now ready for other users !
WEBPAGE: http://mbarboi.home.ro/project_fat.html
http://filesystemd.sourceforge.net/
/// or from my personal web page (see HOME SWEET HOME / FS)
http://mbarboi.home.ro
Source size (fs.bas: 730Kbytes) + additional functions (100kbytes).
Stack usage: at least 10MB (but better 30MB) - this values are for good results (can work with 1MB of stack).
Memory needed : If you want to copy big files from CD/DVD to a FAT drive , it's goot to have 128MB RAM. (improves speed a lot since is copying
~64 MB to ram at once).
The PC on which I've developed FS is a P3-450Mhz (160MB ram) (on win98 dos mode (because FreeDOS start NOT WORKING after compileing many times my source code [WHY ???].)
I've tested it on my P4(-2.5Ghz, 1gb ram) too.
It can be compiled with DOS FBC and LINUX FBC.
Win32 FBC compiling is under development since older versions of windows are using a different way of accessing harddisk (in NT4/2k/xp ... you can simple use CREATEFILE but with win98 you need to use INT 13h or VXDs ...)
New features and bug fixes:
- can handle FLASHES (FAT/EXT) using DosUSB - http://www.georgpotthast.de/usb
- can copy recursive from a Multi-Session DVD to a FAT32 drive ! (while MSCDEX/SHSUCDX/ WIN9x can't ! - THAT'S way I made this program ... I was mad WIN98se/DOS/FREEDOS can't see last DVD session ! I always had to use LINUX ! But know i'm free ! Only problem is that CACHEING is under devlopment and it takes a little longer for many small files (big files are okay ... because it uses same smart WRITE all FAT entries at once)
- can explore standard EXT2/3 (no hashing support yet - under development) ... Couldn't find the meaning of 32bit block number out of block range (for newer revisions of EXT2/3) ... When I'll find the meaning I'll include also COPY/DELETE/OTHERS.
- can do many others ... see by your self !
Samples included .
More GUI options and fixes.
It's final purpose is to create a Reactos DOS installer ( I hate installing from CD ... For each new release I have to burn new empty CD , because bootinf from MULTI-SESSION CDs not supported).
So FS should be a complete FILESYSTEM handler + exploring GUI support + defragmenter + disk check + provide access to advanced files system setting (like finding the file containing some cluster, viewing FAT linked list only for the file and modifing it as you wish)
And a second PURPOSE for it IS TO RECOVER your program sources for which you worked for years and suddenly because of some OS bug THEY ARE GONE !!! (imagine how painfull is to loss your program's SOURCE code just after adding to it the most important feature for which you worked for days !)
NOTE : Disable any DOS cacheing utility (like SMARTDRV/LBACACHE) since they keep a copy of FAT in RAM and FS doesn't tell them what FAT
entries it modified !!! (Be carefull you can get in big trouble if try inventing something :) !!)
P.S : I haven't checked well FAT16 ... but it's a little buggy because I developed FS to use FAT32, then I added FAT16 support.
But in FAT16 you can use CLUSTERS starting with 0 , while in FAT32 first cluster is 2... (this can give problems because I'm always check for a fat entry to be different from 0 (zero means free cluster ... :) )
About Georg's DOSUSB driver.... : it's preaty good you can use it to handle USB MOUSE/KEYBOARD/FLASHES/PRINTERS/ any king !
It contains also samples of how to implement drivers ....
FS uses BULK-only method ( CBW -> SCSI command -> DATA -> CSW)
It seams that this method doesn't work with some sophisticated USB mass storages .... only standard ones work (like MP3/MP4 digital players)
[/img]