Fastdsk Title

FASTDSK: English documentation. Last revision: Tuesday 5th May 2009

NEW: The last release (20090504) is now fully compatible with the Apple IIgs.


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 able to continue using the copied data thanks to the Apple II emulators.

There are currently several possible methods for creating .DSK disk images.
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, ADTPro, ...)

FASTDSK is not designed to communicate directly with another machine.
Instead, it more closely resembles the DSK2FILE software.
During execution, it directly creates the .DSK image on a removable ProDOS drive 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 image files 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):

Configuration necessary:



Notes: FASTDSK does not function on certain old models of the Franklin Ace 500, nor on a Mac with a IIe emulation board.


II.1) Starting

The disk image containing FASTDSK is bootable.
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 folder names 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

II.2) Version

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 pass.
Here is a screen shot of FASTDSK running with 256k and 128k respectively:


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.

II.3) Configuration

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.


To leave the configuration menu, press ESC.
The program 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 Creation

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 to begin.
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 has only 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 available.
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 status horizontally (tracks line). A "." character indicates a successful read.
If a number from 1 to 9 is displayed within a sector, it means that the program had to retry several times before reading the indicated sector correctly. 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 should not exceed a total of 51 file names. If you do, you will generate the error message "CAN'T CREATE TARGET FILE".

Note as of Jan 08 2007: At present, I have tested my program with 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.

II.5) Particular keys

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 mentioned:


III.1) 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:

INCLUDE.FD.S     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.CONF.S.

FASTDSK is the main program. It uses the following source files:

INCLUDE.FD.S     includes of FASTDSK
FASTDSK.S        main program
MLIQUIT.S        routine for calling Quit MLI
WRITE40C.S       routine for displaying in 40 columns
WAITKEY.S        routine for waiting for a key in an specified list
CONFIG.S         routine for configuration management
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 II operations

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.

III.2) Memory organization

Main memory used by the launcher:

$2000-$25FF        FASTDSK.SYSTEM   

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 the machine.

********** If 128k:

1st pass

Main memory :                       Auxiliary memory :

$0800-$17FF        Track $00        $0800-$17FF        Track $08
$1800-$27FF        Track $01        $1800-$27FF        Track $09
$2800-$37FF        Track $02        $2800-$37FF        Track $0A
$3800-$47FF        Track $03        $3800-$47FF        Track $0B
$4800-$57FF        Track $04        $4800-$57FF        Track $0C
$5800-$67FF        Track $05        $5800-$67FF        Track $0D
$6800-$77FF        Track $06        $6800-$77FF        Track $0E
$7800-$87FF        Track $07        $7800-$87FF        Track $0F
$8800-$8BFF        Open buffer
$8C00-$8DFF        FASTDSK.CONF
$8E00-$BEFF        FASTDSK

2nd pass

Main memory :                       Auxiliary memory :

$0800-$17FF        Track $10        $0800-$17FF        Track $18
$1800-$27FF        Track $11        $1800-$27FF        Track $19
$2800-$37FF        Track $12        $2800-$37FF        Track $1A
$3800-$47FF        Track $13        $3800-$47FF        Track $1B
$4800-$57FF        Track $14        $4800-$57FF        Track $1C
$5800-$67FF        Track $15        $5800-$67FF        Track $1D
$6800-$77FF        Track $16        $6800-$77FF        Track $1E
$7800-$87FF        Track $17        $7800-$87FF        Track $1F
$8800-$8BFF        Open buffer      $8800-$97FF        Track $20
$8C00-$8DFF        FASTDSK.CONF     $9800-$A7FF        Track $21
$8E00-$BEFF        FASTDSK          $A800-$B7FF        Track $22

********** If 256k:

Main memory :                       Auxiliary memory (bank 0 aux):

$0800-$17FF        Track $00        $0800-$17FF        Track $08
$1800-$27FF        Track $01        $1800-$27FF        Track $09
$2800-$37FF        Track $02        $2800-$37FF        Track $0A
$3800-$47FF        Track $03        $3800-$47FF        Track $0B
$4800-$57FF        Track $04        $4800-$57FF        Track $0C
$5800-$67FF        Track $05        $5800-$67FF        Track $0D
$6800-$77FF        Track $06        $6800-$77FF        Track $0E
$7800-$87FF        Track $07        $7800-$87FF        Track $0F
$8800-$8BFF        Open buffer
$8C00-$8DFF        FASTDSK.CONF
$8E00-$BEFF        FASTDSK

1st aux. bank (after bank 0) :      2nd aux. bank (after bank 0) :

$0800-$17FF        Track $10        $0800-$17FF        Track $18
$1800-$27FF        Track $11        $1800-$27FF        Track $19
$2800-$37FF        Track $12        $2800-$37FF        Track $1A
$3800-$47FF        Track $13        $3800-$47FF        Track $1B
$4800-$57FF        Track $14        $4800-$57FF        Track $1C
$5800-$67FF        Track $15        $5800-$67FF        Track $1D
$6800-$77FF        Track $16        $6800-$77FF        Track $1E
$7800-$87FF        Track $17        $7800-$87FF        Track $1F
                                    $8800-$97FF        Track $20
                                    $9800-$A7FF        Track $21
                                    $A800-$B7FF        Track $22.

III.3) Various information


Many thanks to the following people or companies:

Internet links:


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 (gzipped)


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.



Text file sent for the contest.





FASTDSK is the quickest ProDOS 8 utility tool for creating .DSK image files.
And it offers 2 new features: a log file and an automatic filename generation.



Fastdsk_20061215.dsk _______ : Bootable program (ProDOS 8 1.9 is included)
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 floppy
128k memory
A hard drive or 3.5" drive

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 as
DSK2FILE). Use CiderPress or other PC/MAC tools to extract them and a modern
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 have to
  navigate and select one (you don't need to manually write the full name).
  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 of the filename
  (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. and 2nd char="E"
  for Educational software, OR whatever you want...), the floppy 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 contain
  the result of the .DSK generation (.DSK status: OK or BAD and the track/sector
  mapping with errors).

- Select the disk drive number you want to use.

- Change the soft-sectored floppy markers used for address and data fields
  (keep default parameters if you don't know what it is).

- Confirm you want to keep checksum controls for each sector (USE CHECKSUM="Y"
  and error found -> fill the sector with zeros in the .DSK file otherwise
  keep what was read).

Once the mandatory configuration parameters are populated, you just have to
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 and
disk number with the + and - keys.

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 title
level, on the left: 128k or 256k).
If you only have 128k, FASTDSK will have to do the job in 2 passes.

Additional informations:

- If you've decided to store FASTDSK on your HD drive, to run the program,
  launch FASTDSK.SYSTEM (from a selector or from BASIC.SYSTEM with the '-'
- 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 forget
  that ProDOS is limited to 51 files. It's a better idea to use a sub-directory.
- FASTDSK can't manage protected software. Insert only floppies with the
  following format: 16 sectors/track, 35 tracks/side, data fields filled with
  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 remaining
  free space on the selected device, use CTRL-F when you're on the main menu.
- If you want to have more informations about your ram card, use the CTRL-B keys
  to display the BankSel adress and bank numbers used by FASTDSK.
- When you launch FASTDSK, ram drivers for slot 3 (e.g.: /RAM) are disabled.
- For each sector: FASTDSK doesn't use the checksum and the trailer markers from
  the address fields. FASTDSK only checks the first trailer marker from the
  data field (standard value=$DE).