Class RdosFileEntry

java.lang.Object
com.webcodepro.applecommander.storage.os.rdos.RdosFileEntry
All Implemented Interfaces:
FileEntry

public class RdosFileEntry extends Object implements FileEntry
Handle RDOS file entry format.

Since I was unable to locate the file entries on the internet, it is documented here: Offset Description
====== ====================================================
$00-$17 File name; space-filled. If the first byte is $00, that is the end of the
directory. If the first byte is $80, the file is deleted.
$18 File type. Appears to be actual letter ('A'=Applesoft, etc)
$19 File length in blocks (block = sector = 256 bytes)
$1A-$1B Address of application. For Applesoft and binary; others may vary.
$1C-$1D Length in bytes of file.
$1E-$1F Starting block of application.

Date created: Oct 7, 2002 1:36:56 PM

  • Constructor Details

    • RdosFileEntry

      public RdosFileEntry(byte[] fileEntry, RdosFormatDisk disk)
      Constructor for RdosFileEntry.
  • Method Details

    • getSizeInBlocks

      public int getSizeInBlocks()
      Return the number of blocks this file uses.
    • getStartingBlock

      public int getStartingBlock()
      Return the starting block of this application.
    • getAddress

      public int getAddress()
      Return the address of application.
      Specified by:
      getAddress in interface FileEntry
    • getFilename

      public String getFilename()
      Return the name of this file.
      Specified by:
      getFilename in interface FileEntry
    • setFilename

      public void setFilename(String filename)
      Set the name of this file.
      Specified by:
      setFilename in interface FileEntry
    • getMaximumFilenameLength

      public int getMaximumFilenameLength()
      Return the maximum filename length.
      Specified by:
      getMaximumFilenameLength in interface FileEntry
    • getFiletype

      public String getFiletype()
      Return the filetype of this file.
      Specified by:
      getFiletype in interface FileEntry
    • setFiletype

      public void setFiletype(String filetype)
      Set the filetype.
      Specified by:
      setFiletype in interface FileEntry
    • isLocked

      public boolean isLocked()
      Locked doesn't appear to be a concept under RDOS.
      Specified by:
      isLocked in interface FileEntry
    • setLocked

      public void setLocked(boolean lock)
      Set the lock indicator.
      Specified by:
      setLocked in interface FileEntry
    • getSize

      public int getSize()
      Compute the size of this file (in bytes).
      Specified by:
      getSize in interface FileEntry
    • isDirectory

      public boolean isDirectory()
      RDOS does not support directories.
      Specified by:
      isDirectory in interface FileEntry
    • getFiles

      public List<RdosFileEntry> getFiles()
      Retrieve the list of files in this directory. Since RDOS does not support directories, this will always return null.
    • isDeleted

      public boolean isDeleted()
      Identify if this file has been deleted.
      Specified by:
      isDeleted in interface FileEntry
    • delete

      public void delete()
      Delete the file.
      Specified by:
      delete in interface FileEntry
    • getFileColumnData

      public List<String> getFileColumnData(int displayMode)
      Get the standard file column header information. This default implementation is intended only for standard mode. displayMode is specified in FormattedDisk.
      Specified by:
      getFileColumnData in interface FileEntry
    • getFileData

      public byte[] getFileData()
      Get file data. This handles any operating-system specific issues. Currently, the disk itself handles this.
      Specified by:
      getFileData in interface FileEntry
    • setFileData

      public void setFileData(byte[] data) throws DiskFullException
      Set file data. This, essentially, is saving data to disk using this file entry.
      Specified by:
      setFileData in interface FileEntry
      Throws:
      DiskFullException
    • getSuggestedFilter

      public FileFilter getSuggestedFilter()
      Get the suggested FileFilter. This appears to be operating system specific, so each operating system needs to implement some manner of guessing the appropriate filter. FIXME - this code should be a helper class for DOS and RDOS!
      Specified by:
      getSuggestedFilter in interface FileEntry
    • isTextFile

      public boolean isTextFile()
      Determine if this is a text file.
    • isApplesoftBasicFile

      public boolean isApplesoftBasicFile()
      Determine if this is an Applesoft BASIC file.
    • isIntegerBasicFile

      public boolean isIntegerBasicFile()
      Determine if this is an Integer BASIC file.
    • isBinaryFile

      public boolean isBinaryFile()
      Determine if this is a binary file.
    • getFormattedDisk

      public FormattedDisk getFormattedDisk()
      Get the FormattedDisk associated with this FileEntry. This is useful to interfaces that need to retrieve the associated disk.
      Specified by:
      getFormattedDisk in interface FileEntry
    • needsAddress

      public boolean needsAddress()
      Indicates if this filetype requires an address component. Note that the FormattedDisk also has this method - normally, this will defer to the method on FormattedDisk, as it will be more generic.
      Specified by:
      needsAddress in interface FileEntry
    • setAddress

      public void setAddress(int address)
      Set the address that this file loads at.
      Specified by:
      setAddress in interface FileEntry
    • canCompile

      public boolean canCompile()
      Indicates that this filetype can be compiled. WARNING: RDOS programs most likely will not have the DOS routines handled by the compiler.
      Specified by:
      canCompile in interface FileEntry