Class RdosFileEntry

  • All Implemented Interfaces:
    FileEntry

    public class RdosFileEntry
    extends java.lang.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 Summary

      Constructors 
      Constructor Description
      RdosFileEntry​(byte[] fileEntry, RdosFormatDisk disk)
      Constructor for RdosFileEntry.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean canCompile()
      Indicates that this filetype can be compiled.
      void delete()
      Delete the file.
      int getAddress()
      Return the address of application.
      java.util.List<java.lang.String> getFileColumnData​(int displayMode)
      Get the standard file column header information.
      byte[] getFileData()
      Get file data.
      java.lang.String getFilename()
      Return the name of this file.
      java.util.List<RdosFileEntry> getFiles()
      Retrieve the list of files in this directory.
      java.lang.String getFiletype()
      Return the filetype of this file.
      FormattedDisk getFormattedDisk()
      Get the FormattedDisk associated with this FileEntry.
      int getMaximumFilenameLength()
      Return the maximum filename length.
      int getSize()
      Compute the size of this file (in bytes).
      int getSizeInBlocks()
      Return the number of blocks this file uses.
      int getStartingBlock()
      Return the starting block of this application.
      FileFilter getSuggestedFilter()
      Get the suggested FileFilter.
      boolean isApplesoftBasicFile()
      Determine if this is an Applesoft BASIC file.
      boolean isBinaryFile()
      Determine if this is a binary file.
      boolean isDeleted()
      Identify if this file has been deleted.
      boolean isDirectory()
      RDOS does not support directories.
      boolean isIntegerBasicFile()
      Determine if this is an Integer BASIC file.
      boolean isLocked()
      Locked doesn't appear to be a concept under RDOS.
      boolean isTextFile()
      Determine if this is a text file.
      boolean needsAddress()
      Indicates if this filetype requires an address component.
      void setAddress​(int address)
      Set the address that this file loads at.
      void setFileData​(byte[] data)
      Set file data.
      void setFilename​(java.lang.String filename)
      Set the name of this file.
      void setFiletype​(java.lang.String filetype)
      Set the filetype.
      void setLocked​(boolean lock)
      Set the lock indicator.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RdosFileEntry

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

      • 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 java.lang.String getFilename()
        Return the name of this file.
        Specified by:
        getFilename in interface FileEntry
      • setFilename

        public void setFilename​(java.lang.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 java.lang.String getFiletype()
        Return the filetype of this file.
        Specified by:
        getFiletype in interface FileEntry
      • setFiletype

        public void setFiletype​(java.lang.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 java.util.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 java.util.List<java.lang.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
      • 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