Fast Disk V1.5 For AMIGA500/1000/2000 Written in Aztec C - V3.4a Written 1987 by: Torsten Stolpmann Wilhelm-Raabe Strasse. 26 6750 Kaiserslautern English Translation Provided by Stormin' Norman and Mark Dorn What is FastDisk? FastDisk is a Program that optimizes the at times chaotic disk structur of an Amiga Disk. Everbody knows how long it can take, until a long directory is read into memory. Fast Disk accelerates this process between 3 and 5 times. Everybody knows the noise the drive makes when trying to read the workbenck icons. FastDisk reduces the head movement to a minimun. FastDisk also accelerates the validation time and the bootprocess. FastDisk also accelerates the time of loading a program upto 50%. What does Fast Disk do? FastDisk the above by copying the disk by sectors, but the physical position on the destination disk are going to be changed. That is all! The destination disk is still a regular AmigaDOs disk, so there are NO problems with compatibility. How does FastDisk work? To understand how FastDisk works, you have to understand a little on how AmigaDos operates on a regular disk. More about this, but not sufficient, information can be found in the AMiga Dos manual. Here just the most important information. The 1760 blocks (512Bytes each) are divided into the following kriteria! 1. Bootsector 2. Rootblock 3. Directory-blocks 4. Fileheader-blocks 5. Fileextension-blocks 6. Datablocks BootSectors are always on sector 0 and 1. These are on every AmigaDos disk and are read while booting up the system.(This is only if the disk is bootable) Then there will be a program executed. FastDIsk cpies these tracks without any changes. The Rootblock (Sector 880) holds the diskname,creationdate,etc.. And the Hash chart with 72 entries with pointers for all files/direcotries that are located on the Root Directory. These entries are sorted by the Hash-Algorithmus.The file/directory name is used for this. If it as a Directory name, then the pointer points to the Directoryblock, which is etup similar as the rootblock. If it is a File entry then the pointer points to a fileheaderblock. Not all entries in the chart must be occupied. That is why a pointer of "0" is interpreted as blank entry. It is possible that there is more then one entry occupy the same place on the Hash chart. These collisions are solved in a way that the needed headerblocks are chained in a linear list by a certain pointer. The Fileheaderblocks again have another chart with also 72 entries with pointers to Datablocks that belong to the certain file. If a file needs more then 72 entries, a chain of Fileexstansionblocks is constructed. These again can have 72 entries. Also is it important to know that the Amiga Disk I/O is track Oriented. That means if the head starts to read a track, it reads all the sectors of this Track automatically and saves in ram until it read the whole track, and the read/write head leaves the track completely. This is a advantage if the physikal Positioning of the blocks on the disk is done. These are the possibilities to optimize the diskstructure. 1. The physikal order of the Files/Directories on the disk is written in the same order of the Hash chart. Because the DIR command go along the Hash chart the listing of directories is going to be accelerated. THe Validation time is shortened as well! 2. To place fileheaderblocks there are always two possibilities. A) you group all the headerblocks near the RootBlock(Which accelerates the reading or directories). Or you place all the Datablocks right behing the headerblocks. ( THe headerblocks are now all over the disk, but loading of files is going to be accelerated. For Directoryheader there are similar possibilities. For fast directories it is better to group inside the Fileheaderblocks. For Faster loading of files it is better to place Directoryheader inside the Roottrack. Usually there is enough room to place all the directoryheaders there. As you see, there are advantages and disadvantages to both mehtods. Fo that reason a little of both methods is supported by the program, depending on what you want, fast directories (Datadisks) or to load a program faster (Workbench disks). Amiga Dos works in a stradegy that combines both disadvantages described above. It tries to place the Headerblock and the first Datablock of the file behind each other near the Rootblock. This accelerates the loading of small files (System-configuration, .info files). FastDisk places the following files right behind hte headerblock: Startup-sequence System-Configuration All files with the .info ending When doesn't FastDisk work? FastDisk requires 2 disk drives, and alot of chip memory. When copying it reads all Header and Directoryblocks to Ram. If there isn't sufficient room FastDisk will fail! Otherwise you should give FastDisk as much ram as possible. FastDisk tries to save sectors that are needed later to save in the Cache. That means the more ram you give fastdisk, the faster the program will run! FastDisk assumes that you always use a standart Amigados disk. There shoudn't be any sections that are not controlled by the Amiga dos. If there are such sectors, FastDisk will not copy, excluding the bootsector. FastDisk can't copy a disk whos disk structure is corupt. Fastdisk notices these errors and suggests to run DiskDoctor. How to run FastDisk! You can use FastDisk from CLI as well as from Workbench. If it run from WB it opens its own window (a feature of Aztec 3.4a). A icon for the nessesary entries is included. Usage : FastDisk [FROM] drive [TO] drive [FASTDIR] [NOFORMAT] Defaults: FastDisk FROM df0: to df1: From and To are not nessesary to include, only if you want to reverse the program. (I.e. from df1 to df0) If you add Fastdir, FastDisk will work so you get Fast Directories. With the NOFORMAT command it won't format the Destination disk, and also accelerates the copying process, but has the disadvantage if you ever have to use Diskdoctor, there could be conflicts with older files already on the disk. In that case DiskDoctor sometimes even deletes the working files. Usage from Workbench: THese options are available from the ToolTypeicon by using the INFO command from workbench. The Tolltypes are: WINDOW = This is the definition of the window that is opened when running the file, and shouldn't be changed FROM = This is the scource drive (df0:-df3:) TO = This is the destination drive (df0:-df3:) FASTDIR = On sets it to on, off or anything else shuts it off NOFORMAT = Here should be on or off Defaults : From = df0: To = df1: Fastdir = OFF NOFORMAT = OFF