ProFile: "Disk Full" Possible Causes and Fixes

ProFile: "Disk Full" Possible Causes and Fixes

An enhanced Apple IIe and ProFile 5MB hard disk is getting consistent Disk Full errors in an Applesoft BASIC program under ProDOS 8 1.8 and BASIC.SYSTEM 1.4. The errors have been increasing in frequency such that they happen two and three times per day. (They happened two or three times per year previously.) The hard disk is only 15% full, and two ProDOS volume checker programs (Mr. Fixit by Glen Bredon, and BagOfTricks2 by Quality Software) report no errors on the volume. The interface card has the new ROM, part number 341-0299.
System Configuration
--------------------
AuxSlot: Apple Extended 80-Column Card
Slot 1: empty
Slot 2: Apple Super Serial Card
Slot 3: empty
Slot 4: empty
Slot 5: Applied Engineering TimeMaster II H.O. (clock card)
Slot 6: Apple DuoDisk Controller
Slot 7: Apple ProFile Interface
The program lines that generate the error are always PRINT statements that are printing data to an open ProDOS sequential text file. There is nothing unusual about the method used; that is, OPEN, WRITE, PRINT, CLOSE. Can you pinpoint the probable cause of this problem? Could it be a problem in BASIC.SYSTEM 1.4, or a ProFile or controller hardware problem, or something in the 341-0299 ROM?
	We doubt that there is a problem with the hardware.  It seems to be related to
the way things are handled on the ProFile disk under ProDOS 8.  Here are some
possible causes:
 
- Even though the error message deals with disk space, it actually may be that
  the directory is full; that is, there is no space for additional file entries
  in the disk directory.  This would be especially true in a system that stores
  many small files.
 
- ProFiles "spare out" any bad blocks found by its startup procedure.  If all
  of the available blocks have been spared out and another block needs a spare,
  an error stating that the disk is full might be reported.  In this instance,
  all spare blocks have used and no more are available, creating a form of disk
  full.  The ProFile has only 32 spare blocks for use.  Once used, the ProFile
  does not allocate any additional spare blocks.
 
- With many small files being written and rewritten to the ProFile,
  fragmentation can occur more quickly than if a few large files are used.
  With a heavily-fragmented disk, a "Disk Full" message might occur.
 
Some possible solutions have been suggested:
 
- If you have the Pascal "Crunch" utility, run this utility against the ProFile
  to resolve possible fragmentation of the drive.
 
- Use more subdirectories inside subdirectories to help slow the filling of
  directory entries.
 
- Do a file-by-file backup of the ProFile. Then reformat and restore the files
  to the ProFile.

Back