documentation. Last revision: Tuesday 5th May 2009
The last release (20090504) is now fully compatible with the Apple IIgs.
I) PRESENTING FASTDSK
FASTDSK is a program for the
Apple II computer.
It runs under the ProDOS operating system and provides the means for
quick disk image creation from physical 5 1/4 inch diskettes.
The physical diskettes must be in the Apple II standard format, namely
35 tracks with 16 sectors per track.
FASTDSK makes it possible to
store the contents of your Apple II
diskettes in the form of files with 143360 bytes (=140k) per side.
These files have the traditional extension .DSK.
Once the disk images are transferred onto a modern machine, you will be
to continue using the copied data thanks to the Apple II emulators.
There are currently several possible methods for creating .DSK disk
Some require you to connect the Apple II to a PC or MAC and to use
software to transfer disks between the two (like ADT,
FASTDSK is not designed to
communicate directly with another machine.
Instead, it more closely resembles the DSK2FILE
During execution, it directly creates the .DSK image on a removable
connected to the Apple II. This removable drive can then be read and
manipulated on a recent computer with programs like the famous CiderPress from FaddenSoft.
This method considerably reduces the amount of time of spent creating
because it is not dependent on slow communication through a
SSC expansion card with a serial cable.
FASTDSK is very specialized.
It only allows for the transfer in one direction: from an Apple II
diskette to a .DSK disk image file.
BUT ... it has the following advantages
(in comparison to DSK2FILE):
- It reads an Apple II diskette very fast. Reading
is performed in only one pass if you have 256k or more of memory, or in
2 passes if
you only have 128k. In comparison, DSK2FILE
does it in ... 35 passes (it works track
by track) without ever trying to use the available RAM. If you have a
RAM card, you can use as much
as it supports!!
time saving means that you will have almost no time to wait while the
.DSK image is created. You insert a diskette, press a key, and the
diskette is read at the speed of light. By the time you have taken out
the diskette to insert another (or to flip it if it is doubles sided), FASTDSK will have backed
up the image onto your ProDOS drive. You will
be able to
copy diskettes without having to twiddle your thumbs as is the case
with DSK2FILE. If you have
many diskettes to copy, you will definately appreciate the increase in
are no longer required to specify the name for each disk image to be
created. By defining the characteristics of a standard name, FASTDSK
takes care of this mundane task by incrementing the
sides and numbers of disk images. No other program within this category
has this facility.
makes it possible to keep track of the work carried out during disk
image creation. If you want, it will generate a log file indicating
each .DSK image
created and whether the process completed without error or if any bad
were found (by listing which sectors failed). It is a new
feature not seen before, which lets you know afterwards if the .DSK
has been copied successfully or if it is likely to contain errors.
- Apple IIe 6502, enhanced 65c02 IIe, platinum IIe, Apple //c
or //c +, or compatible.
- At least a 128k RAM card (to be inserted in slot 3) like
the Chat Mauve cards, IIe
video 7 enhancer, or the Apple
branded cards) or RAM cards with 256k (recommended)
(to be inserted in slot 3 too) similar to the RamWorks family cards
manufactured by Applied Engineering
(RamWorks, RamWorks II, RamWorks III, with piggyback, or
compatible bank switching cards like the Super Expander E).
- One 5.25" disk drive compatible with the disk II, duodisk,
unidisk or compatible drive (half-size, ...)
- SCSI Hard disk (Iomega Zip, Syquest
readers, ...), CFFA card by Richard Dreyer, or 3.5" disk drive.
- CiderPress by Andy McFadden.
- SCSI card to connect the hard disk from the Apple II, or
compact flash card reader recognized by CiderPress.
Notes: FASTDSK does not
function on certain old models of the Franklin Ace 500, nor on a Mac
with a IIe emulation board.
The disk image containing FASTDSK
If this is not the case with the version in your possession, here is
the procedure to follow.
FASTDSK consists of 3 files:
To start, you must launch the system program FASTDSK.SYSTEM.
This executable can be started from within a program selector like the
one included in ProDOS accessed by typing BYE.
You can also execute it from within BASIC.SYSTEM by typing:
It is also possible for you to provide the volume name and one or more
if FASTDSK cannot be found
in the current directory. To do that, type in the full path as follows:
- /volume/directory_1/ ... /directory_n/FASTDSK.SYSTEM or -
directory_1/ ... /directory_n/FASTDSK.SYSTEM
When FASTDSK is started, the
memory size available to the program appears in the upper lefthand
corner of the screen.
If 128k of memory is available, then the diskette will be read using 2
passes, but if 256k is available then FASTDSK
will run at its optimal speed and will read the diskette using only 1
Here is a screen shot of FASTDSK
running with 256k and 128k
To identify each new version, I did not use a version number but
instead used the programs release date. This date can be seen in the
title, to the right of FASTDSK.
In the preceding examples, the version is 20061130.
Always use the latest version to ensure that you are running with the
most number of bug fixes.
You will have noticed that FASTDSK
has an "old-style" look in 40 columns, resembling the well-known disk
copy software: LOCKSMITH FAST COPY.
This is quite understandable, as this program was the reference used
for performing a fast copy. FASTDSK
holds a great speed advantage when compared to its competitor DSK2FILE.
You are now at the main menu.
FASTDSK always informs you of
which keys can be used by indicating them at the bottom of the screen.
The first thing to do is to configure FASTDSK
by typing the letter C on your keyboard.
There are several settings available for modification. Navigate through
the configuration options using the UP and DOWN
keys and press RETURN to
modify an option.
- You must select a folder in which to store the disk images
that FASTDSK will create.
Hit RETURN and FASTDSK
will allow you to traverse volumes and folders using the keys
mentioned. An example of navigating on a hard disk:
The current name is indicated using inverse video. The list can scroll
if it exceeds the size of the display window.
When you are on the folder of your choice, press RETURN on
If you want to further reconsider your folder selection, type ESC
If you wish to revert to using the folder previously selected or want
to immediately stop folder selection, type Q
By hitting Return your selection will be made and you will return to
the configuration menu. The selected folder will now be displayed (in
following example: /FASTDSK/TMP).
Do not forget that if you choose
the root folder of a drive, then you are limited to 51
.DSK files at this level (enforced by ProDOS). If you want to store
more, you should simply create a sub-directory (which does not have
- The option USE STD NAME can have 2 possible values:
"Y" means that FASTDSK
will use a standard name that you must specify the characteristics
of, and "N" means that you want to manually specify the name for each
side of a diskette when creating disk images.
If you type "Y", FASTDSK
automatically name the .DSK images using a format of the form
Here is an explanation of this format:
C and D are used to indicate the category and the detail (subcategory)
identifying the diskette. For example you can use values C=G for Game
and D=R for RPG if the diskettes you are copying are role
playing games. You are free to choose whatever you want.
NNNNN refers to the number used by FASTDSK
to represent the first
example if your series of role playing games is to start at 1, then
and S identifies the side of the diskette (there are only 2 possible
values for S: S=F for Front, and B=Back for the back if your
diskette is double sided).
If you chose USES STD NAME = "Y" with the example mentioned, the 1st
disk image created will be:
GR00001F.DSK, followed by GR00001B.DSK, followed by
GR00002F.DSK, etc ...
- By specifying the TRACE LOG option with "Y", you tell FASTDSK to log the results of disk
image creation in a text file .
This log file is always called FASTDSK.LOG and is created in the same
folder as where you write your .DSK images.
If this folder does not yet contain a log file, FASTDSK
will create it.
Within the log file you will find the name of each .DSK image and the
creation: either an OK status if no errors were detected, or a BAD
status along with a list of tracks/sectors in which errors were
the event of any problems.
An example of a log files contents after the creation of 3 disk images:
If you wish to clear the log, then you simply remove this
file (DELETE command under BASIC.SYSTEM or by using a tool like ShrinkIt 3.4 for example).
Of course by creating a log file means that FASTDSK
takes a little
longer to create disk images and also uses more disk space on your
storage drive. But the impact is fairly minimal.
assumes that the disk controller card is in slot 6. But
you are able to choose the drive number to use if you have 2 of them.
To do that, press RETURN on the READ S6 D? option to switch between 1
following address field marker options enable you to change the start
end fields addresses used by FASTDSK
to read each diskette. Use these options only if you know what you are
By changing these values you might be able to create .DSK images of
diskettes using light copy protection. Please note however, the .DSK
images created will not work very well if the programs control these
fields. In such
cases, it will be necessary for you to modify the created .DSK image so
the read routine uses standard markers.
There is however, a type of
copy protection in which this option will not help you. If the nibbles
used as markers are exchanged with those of the decoding table of 6-2,
you will be able to create a .DSK image, but the contents of the file
completely erroneous and unusable. You would need to be
able to modify the nibbles table but this would exceed the goals that I
had set myself. This program does not have ability
to make cracks. Instead, crack your diskette beforehand so that it is
a format with standard markers, then use FASTDSK.
last option specifies how you wish to handle the data on a sector whose
checksum failed. If you answer "Y" (default value), a checksum error in
a sector will make the corresponding sector in the .DSK image be filled
with zeros and the sector is labelled bad (character "*").
If you answer "N", then FASTDSK
leaves what it
read as-is and will display a "C" in inverse video on the failed
sector. Sometimes, that can return services but this is not systematic.
To leave the configuration menu, press ESC.
will then ask you if you wish to save the configuration in file
FASTDSK.CONF. This is useful if you want to use the same configuration
the next time that you launch FASTDSK.
If you answer "N", then you will have to return to the configuration
menu the next time you run FASTDSK.
II.4) Disk image
Select option G from the main menu to begin image creation.
If no image folder has been defined in the configuration settings, then
you will receive the following error message:
FASTDSK requires you to
insert the source diskette into the configured drive and to press a key
If you have selected to use automatic file naming (STD NAME = "Y") then
you may wish to modify the name by using the + and - keys.
This may be necessary if, for example, you are imaging a diskette that
one side and FASTDSK has
named the image
as if you will be reading from the Back side
(after having created a .DSK for the Front side).
In this case, to skip to the next diskette and set the correct image
name (GR00002F.DSK), simply press the + key:
The SPACE key enables you to begin the imaging process.
It should be
noted that you need 283 free ProDOS blocks to save a .DSK image. A disk
space check is performed prior to imaging each
diskette. A diskette is not read if there is not enough disk space
An example of the error message indicating that the REQuired disk space
is not available:
The name of an image file should not already exist in the output
folder. If the file does already exist,
regardless of whether you are in automatic or manual mode, you will be
asked whether it is OK to remove the existing file of the same name.
If you answer Yes, the existing file will be deleted. If you answer No,
the program will again ask you to name the image if in
manual mode (by displaying the previous value), or by giving you the
option to use + and - to change the standard
name if in automatic mode.
If everything is OK, FASTDSK
will graph the progress and status
on the display, with sectors appearing vertically and tracks
horizontally (tracks line). A "." character indicates a successful read.
a number from 1 to 9 is displayed within a sector, it means that the
had to retry several times before reading the indicated sector
This is of no major significance with final result (apart from taking
longer to read the track); this number is displayed for information
purposes only. Beyond 10 attempts, the sector is declared dead.
Any characters appearing in inverse text indicates an anomaly.
If you store the .DSK image in the root folder of a ProDOS drive, you
not exceed a total of 51 file names. If you do, you will generate the
message "CAN'T CREATE TARGET FILE".
Note as of Jan 08 2007: At present, I have tested my program
approximately 500 diskettes.
I noticed that imaging some diskettes that had not been used for a very
long time, a lot of errors are reported on the first read (friction
within the disc, ...?). By re-imaging them
a second time (or more if necessary), the error count may decrease.
Therefore it can not hurt to try the same disk a number of times until
a satisfactory read has occurred.
I also managed to succeed in
creating .dsk images for diskettes which I thought were dead: for
example, a game disk booted
on the Apple II crashes, but the disk
image (of the same disk) functions correctly. In fact, it turns out
that a softwares drive routines are much more demanding than my program
with regards to the maximum number of tolerated errors. FASTDSK makes 10 attempts at reading
a sector before giving up, whereas a game will crash if a sector cannot
be read using fewer attempts.
Selecting Q from the main menu will quit from FASTDSK.
If you are using automatic naming for disk images (USE STD NAME = "Y")
and you press Q to leave the program, FASTDSK
will ask to you whether you want to save the configuration if you have
more .DSK images to create.
The intention is to make the current values of NNNNN and S available
the next time you launch FASTDSK.
There are 2 special options in the main menu that have not been
- Ctrl-B gives you info on the memory banks used and the
softswitch BankSelector of the RAM card (if you have more than 128k).
Here are examples running FASTDSK
256k and 128k respectively:
- Ctrl-F displays the number of blocks free on the
destination ProDOS drive, as well as the total number of blocks.
Here is an example where only a small amount of free space remains on a
III) TECHNICAL INFORMATION
Presentation of the sources and the objects
FASTDSK was written with the Merlin assembler 8
2.58 under ProDOS.
FASTDSK.SYSTEM is comprised of the following source files:
includes of FASTDSK
FASTDSK.SYS.S executable program
QSREADP.S routine for
loading ProDOS objects into main memory
QSPRINT.S routine for
displaying messages in 80 columns
MLIQUIT.S routine for
calling Quit MLI
WAITKEY.S routine for
waiting for a key in an specified list
To build the FASTDSK.SYSTEM object, you need to type the following from
the command line of the Merlin
editor: LINK $2000 "LNK.FD.SYS".
The object LNK.FD.SYS referred to in this command must be built
beforehand by assembling the source LNK.FD.SYS.S.
FASTDSK.CONF contains the configuration datas of FASTDSK.
To build this object, all that is required is to assemble the source
FASTDSK is the main program. It uses the following source files:
includes of FASTDSK
FASTDSK.S main program
MLIQUIT.S routine for
calling Quit MLI
WRITE40C.S routine for displaying in
WAITKEY.S routine for
waiting for a key in an specified list
CONFIG.S routine for
DIR.SEL.S routine for volume
and directory selection
SUPER.INPUT.S routine for controlling input
FASTLOAD.S routine for loading a
diskette into memory
RDSECDTA.S routine for low level disk
To build the FASTDSK object, you need to type the following from the
command line of the Merlin
editor: LINK $8E00 "LNK.FASTDSK".
The object LNK.FASTDSK referred to in this command must be built
beforehand by assembling the source LNK.FASTDSK.S.
Main memory used by the launcher:
FASTDSK.SYSTEM loads the configuration and launches FASTDSK. Once
FASTDSK has been loaded, the memory the launcher occupied is freed.
During diskette imaging, the memory used depends on the RAM capacity of
********** If 128k:
Auxiliary memory :
Auxiliary memory :
********** If 256k:
Auxiliary memory (bank 0
1st aux. bank (after bank 0)
: 2nd aux. bank (after bank 0)
- If you had a ProDOS driver loaded for your AE RamWorks II
or III or compatible card, it is deactivated. Moreover, FASTDSK manages memory on its own and
removes any possible ramdisk drivers for drives 1 and 2 of slot 3.
you wish to recreate physical diskettes from disk images, you will need
to use another program. This is a specialised program, that works in
opposite direction as FASTDSK:
by Mark Percival.
- FASTDSK and DISKMAKER8 are both written in
assembler and are actively supported by their respective authors.
(Contrary to DSK2FILE
written by Ron Kneusel in the
language - QFORTH-
which is far from widespread and almost unmaintainable - I know this
because I corrected a bug that was preventing the creation of
disk images for 3.5 inch diskettes).
- FASTDSK cannot
handle diskettes that are copy protected.
To do that, try to create the image using another file format (.NIB)
using tools like SST (Saltine Super Transcopy).
- The sector order of the .DSK images created is that of DOS
(However, this does not prevent you from creating .DSK disk images of
your ProDOS diskettes).
in the data fields of your diskettes must be coded according to the
6-2 method. I specify for the
vicious ones which has fun to store
information there in coding 4-4.
the routine FASTLOAD.S, all the untreated sectors of a track are
as bad after the successive read of 32 address fields for
sectors which were already treated. This is a rule which is applied to
avoid a neverending loop if one or more sectors can't be found at all.
- In the routine FASTLOAD.S, a track is regarded as
unreadable if no address field headers could be found after reading
the routine RDSECDTA.S, a sector is regarded as being bad if the data
field headers have not been found after reading $20 nibbles after the
- There is no control on the checksum and the address field
Only the 1st nibble of the data field trailer is controlled (this is
the same as what ProDOS does).
IV) THANKS AND LINKS
Many thanks to the following people or companies:
- Glen Bredon *RIP* (Merlin 8 and driver ramdisk
- Apple Computer Inc
(ProDOS 2.0.3 selector called by Quit MLI, and fast data field
read + postnibblizing routine on the fly).
- Arnaud and Felipe de Caurs for testing FASTDSK on several platforms.
- Christophe (for
the gift of his great collection of Apple II diskettes).
- Mike Stephens
(translation of FASTDSK
Documentation into English).
Last release compatible with both Apple IIe and Apple IIgs
computers (Thanks to David Empson
and to Thierry Bauvoi):
|Download FastDSK 20090504
|Download FastDSK 20090504 source code
First release (for IIe computer only):
|Download FastDSK 20061215 (gzipped)
|Download FastDSK 20061215 source code
VI) STATUS : FREEWARE
I won the 1st prize of an Apple II contest but due to the
irresponsibility of the organizer, I had to cancel my issue.
I retrieved my copyrights and my program is now a FREEWARE.
VII) OLD (SHORT) DOCUMENTATION
Text file sent for the contest.
PROJECT : FASTDSK
AUTHOR : DECKARD (JEAN-MARC BOUTILLON)
HOMEPAGE : http://boutillon.free.fr
FASTDSK is the quickest ProDOS 8 utility tool for creating .DSK image
And it offers 2 new features: a log file and an automatic filename
CONTENT OF THE PROJECT:
Fastdsk_20061215.dsk _______ : Bootable program (ProDOS 8 1.9 is
Fastdsk.hdv ________________ : Source code (Merlin 8 2.58)
Apple IIe (unenhanced or enhanced or platinum or compatible computer)
One 5.25" floppy drive (disk II or duodisk or unidisk or compatible
A hard drive or 3.5" drive
HIGHLY RECOMMENDED HARDWARE:
256k memory (Applied Engineering RamWorks, RamWorks II, RamWorks III or
compatible cards which use the technique of bank switching
with $C073 or $C071 address as BankSelect, so including
the Super Expander E Ram card).
The ram card must be plugged in slot 3.
CFFA card (from Richard Dreyer) or SCSI hard drive
FASTDSK creates and stores .DSK files on a ProDOS device (same process
DSK2FILE). Use CiderPress or other PC/MAC tools to extract them and a
computer with an Apple II emulator to have fun with them.
This program is easy to use: the main keys for each menu are always
displayed on the bottom of the screen.
First, you have to enter in the configuration menu to:
- Define the directory where you want to store .DSK files. You just
navigate and select one (you don't need to manually write
Same use as for a decent MLI Quit Selector.
- Choose if you want to enter the filenames manually (e.g.: MYDISK.DSK)
or if you
want to use the automatic filename generation.
If you use this facility, you first have to define each part
(that I call a standard name -STD NAME-):
2 letters to describe the content of the files (e.g.: 1st
char="G" for Games,
and 2nd char="R" for RPG, OR 1st char="C" for Computer Dept.
for Educational software, OR whatever you want...), the
number and the
side for the first one (F=front, B=back).
- Define if you want to generate a txt file (FASTDSK.LOG) which will
the result of the .DSK generation (.DSK status: OK or BAD
mapping with errors).
- Select the disk drive number you want to use.
- Change the soft-sectored floppy markers used for address and data
(keep default parameters if you don't know what it is).
- Confirm you want to keep checksum controls for each sector (USE
and error found -> fill the sector with zeros in the
keep what was read).
Once the mandatory configuration parameters are populated, you just
save the config file, press G)o and follow instructions.
Insert a floppy in the disk drive and press an authorized key or enter a
If you're using the automatic filename generation, you can adjust side
disk number with the + and - keys.
FASTDSK READS A 16 SECTORS FLOPPY AS QUICK AS "LOCKSMITH FAST COPY"
seconds if you have 256k). If you are an apple II collector and own tons
of floppies, you'll appreciate this speed.
Note that the usable ram information is written on the screen (at the
level, on the left: 128k or 256k).
If you only have 128k, FASTDSK will have to do the job in 2 passes.
- If you've decided to store FASTDSK on your HD drive, to run the
launch FASTDSK.SYSTEM (from a selector or from BASIC.SYSTEM
- FASTDSK runs in a text environment and uses the basic 40 columns mode.
- If you've selected a volume directory to store the .DSK files, don't
that ProDOS is limited to 51 files. It's a better idea to
- FASTDSK can't manage protected software. Insert only floppies with the
following format: 16 sectors/track, 35 tracks/side, data
nibbles encoded with the 6-2 method (=Apple II standard).
- The FASTDSK.LOG file is created in the same directory than .DSK files.
- To clear the log file, just delete FASTDSK.LOG.
- Each .DSK file requires 283 blocks on the ProDOS device. To know the
free space on the selected device, use CTRL-F when you're on
- If you want to have more informations about your ram card, use the
to display the BankSel adress and bank numbers used by
- When you launch FASTDSK, ram drivers for slot 3 (e.g.: /RAM) are
- For each sector: FASTDSK doesn't use the checksum and the trailer
the address fields. FASTDSK only checks the first trailer
data field (standard value=$DE).