Interface BlockDevice

All Superinterfaces:
CapabilityProvider, Container, Device, HintProvider
All Known Implementing Classes:
ProdosOrderedBlockDevice, TrackSectorToBlockAdapter

public interface BlockDevice extends Device
Represents block devices in the Apple II world. These devices should be capable of supporting ProDOS and Pascal 512 byte blocks, as well as RDOS 256 byte blocks, and even CP/M 1024 byte blocks. Those statistics should be supported by the given Geometry.
  • Field Details

  • Method Details

    • getGeometry

      BlockDevice.Geometry getGeometry()
    • readBlock

      DataBuffer readBlock(int block)
    • writeBlock

      void writeBlock(int block, DataBuffer blockData)
    • format

      default void format()
      Format a disk. For most disks, this is simply a wipe to all zeros. If this disk has extended format (such as nibble formats), this is the opportunity to write out that format.

      NOTE: Adapter type devices have to be cautious about what device is responsible about formatting. For example, a UniDOS disk is 2x400K volumes on an 800K block device -- if they defer formatting to the 800K block device, a format on one volume also wipes out the other (in this case, do not defer to the "parent"). However, if the block adapter contains a nibble-based TrackSectorDevice, the actual formatting needs to get to the nibble device so it can lay down sector markers and the rest of the track structure.