|
|
(2 intermediate revisions by the same user not shown) |
Line 5: |
Line 5: |
| ---- | | ---- |
| | | |
− | '''Ultibo CDFS interface unit''' | + | '''Ultibo CDFS Interface unit''' |
− | | + | |
− | ''To be documented''
| + | |
| | | |
| === Constants === | | === Constants === |
Line 1,356: |
Line 1,354: |
| | | |
| | | |
− | '''CDFS recognizer''' | + | '''CDFS specific classes''' |
| | | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | <code>TCDFSRecognizer = class(TRecognizer)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver);</code> | + | | [[TCDFSRecognizer|<code>TCDFSRecognizer = class(TRecognizer)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLongNames:Boolean;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSwapSerial:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CheckPrimaryDescriptor(ASector:PSector; const AStartSector:Int64; ASectorCount:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function GetName:String; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property LongNames:Boolean read FLongNames write FLongNames;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SwapSerial:Boolean read FSwapSerial write FSwapSerial;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RecognizePartitionId(APartitionId:Byte):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RecognizeBootSector(ABootSector:PBootSector; const AStartSector,ASectorCount:Int64):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RecognizePartition(APartition:TDiskPartition):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RecognizeVolume(AVolume:TDiskVolume):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MountVolume(AVolume:TDiskVolume; ADrive:TDiskDrive):Boolean; override;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''CDFS formatter'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCDFSFormatter = class(TDiskFormatter)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div> | + | | [[TCDFSFormatter|<code>TCDFSFormatter = class(TDiskFormatter)</code>]] |
− | |-
| + | |
− | | <code>function CheckDevice(AVolume:TDiskVolume; ADrive:TDiskDrive; AFloppyType:TFloppyType):Boolean;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>function CheckPartition(AVolume:TDiskVolume; ADrive:TDiskDrive; AFileSysType:TFileSysType):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetPathTableSize(AVolume:TDiskVolume; ADrive:TDiskDrive; ACDFSType:TCDFSType; ASupplementary:Boolean):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPathTableStart(AVolume:TDiskVolume; ADrive:TDiskDrive; ACDFSType:TCDFSType; ASupplementary,AEndian:Boolean):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetRootDirectorySize(AVolume:TDiskVolume; ADrive:TDiskDrive; ACDFSType:TCDFSType; ASupplementary:Boolean):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetRootDirectoryStart(AVolume:TDiskVolume; ADrive:TDiskDrive; ACDFSType:TCDFSType; ASupplementary:Boolean):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreatePrimaryDescriptor(AVolume:TDiskVolume; ADrive:TDiskDrive; ACDFSType:TCDFSType; ADescriptor:PCDFSVolumeDescriptorPrimary):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WritePrimaryDescriptor(AVolume:TDiskVolume; ADrive:TDiskDrive; ACDFSType:TCDFSType; ADescriptor:PCDFSVolumeDescriptorPrimary):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WritePrimaryPathTables(AVolume:TDiskVolume; ADrive:TDiskDrive; ACDFSType:TCDFSType; ADescriptor:PCDFSVolumeDescriptorPrimary):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WritePrimaryRootDirectory(AVolume:TDiskVolume; ADrive:TDiskDrive; ACDFSType:TCDFSType; ADescriptor:PCDFSVolumeDescriptorPrimary):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateSupplementaryDescriptor(AVolume:TDiskVolume; ADrive:TDiskDrive; ACDFSType:TCDFSType; ADescriptor:PCDFSVolumeDescriptorSupplementary):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteSupplementaryDescriptor(AVolume:TDiskVolume; ADrive:TDiskDrive; ACDFSType:TCDFSType; ADescriptor:PCDFSVolumeDescriptorSupplementary):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteSupplementaryPathTables(AVolume:TDiskVolume; ADrive:TDiskDrive; ACDFSType:TCDFSType; ADescriptor:PCDFSVolumeDescriptorSupplementary):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteSupplementaryRootDirectory(AVolume:TDiskVolume; ADrive:TDiskDrive; ACDFSType:TCDFSType; ADescriptor:PCDFSVolumeDescriptorSupplementary):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CreateTerminatorDescriptor(AVolume:TDiskVolume; ADrive:TDiskDrive; ACDFSType:TCDFSType; ADescriptor:PCDFSVolumeDescriptorTerminator):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteTerminatorDescriptor(AVolume:TDiskVolume; ADrive:TDiskDrive; ACDFSType:TCDFSType; ADescriptor:PCDFSVolumeDescriptorTerminator):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>function AcceptVolume(AVolume:TDiskVolume; AFloppyType:TFloppyType; AFileSysType:TFileSysType):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FormatVolume(AVolume:TDiskVolume; AFloppyType:TFloppyType; AFileSysType:TFileSysType):Boolean; override;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''CDFS resizer'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCDFSResizer = class(TDiskResizer)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[TCDFSResizer|<code>TCDFSResizer = class(TDiskResizer)</code>]] |
− | |-
| + | |
− | | <code>function AcceptVolume(AVolume:TDiskVolume; const AStart,ASize:Int64):Boolean; override;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ShrinkVolume(AVolume:TDiskVolume; const AStart,ASize:Int64):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ExpandVolume(AVolume:TDiskVolume; const AStart,ASize:Int64):Boolean; override;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− |
| + | |
− | '''CDFS copier'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCDFSCopier = class(TDiskCopier)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div> | + | | [[TCDFSCopier|<code>TCDFSCopier = class(TDiskCopier)</code>]] |
− | |-
| + | |
− | | <code>function AcceptVolume(AVolume,ADest:TDiskVolume):Boolean; override;</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CopyVolume(AVolume,ADest:TDiskVolume):Boolean; override;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''CDFS file system'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCDFSFileSystem = class(TFileSystem)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | | <code>constructor Create(ADriver:TFileSysDriver; AVolume:TDiskVolume; ADrive:TDiskDrive);</code> | + | | [[TCDFSFileSystem|<code>TCDFSFileSystem = class(TFileSystem)</code>]] |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FCDFSType:TCDFSType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSwapSerial:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FVolumeFlags:LongWord;</code>
| + | |
− | | Volume flags
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FTreesLoaded:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FBlocksLoaded:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCatalogsLoaded:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCatalogsLoading:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FBlockWrite:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FTreesPrepared:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCatalogsChecked:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FLogicalBlockSize:Word;</code>
| + | |
− | | Size of a logical block on disk
| + | |
− | |-
| + | |
− | | <code>FLogicalBlockCount:LongWord;</code>
| + | |
− | | Number of logical blocks on disk
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FSectorsPerCluster:LongWord;</code>
| + | |
− | | Usually 1,2,4,8,16,32,64,128 etc
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FDataStartCluster:LongWord;</code>
| + | |
− | | Usually 16 (First cluster of Data Area)
| + | |
− | |-
| + | |
− | | <code>FBootStartCluster:LongWord;</code>
| + | |
− | | Usually 17 (Cluster of the Boot Descriptor)
| + | |
− | |-
| + | |
− | | <code>FRootStartCluster:LongWord;</code>
| + | |
− | | Pointed to by Primary Descriptor
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FBlockShiftCount:Word;</code>
| + | |
− | | Shift count for Cluster <-> BlockNo
| + | |
− | |-
| + | |
− | | <code>FSectorShiftCount:Word;</code>
| + | |
− | | Shift count for Sector <-> Cluster
| + | |
− | |-
| + | |
− | | <code>FClusterShiftCount:Word;</code>
| + | |
− | | Shift count for Cluster <-> Bytes
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FEntriesPerBlock:LongWord;</code>
| + | |
− | | Number of Cluster entries per Block of bitmap
| + | |
− | |-
| + | |
− | | <code>FClustersPerBlock:LongWord;</code>
| + | |
− | | Number of Clusters per Block of bitmap entries
| + | |
− | |-
| + | |
− | | <code>FTotalBlockCount:LongWord;</code>
| + | |
− | | Total number of Blocks in bitmap
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FTotalClusterCount:LongWord;</code>
| + | |
− | | Total number of Clusters on volume
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FLastFreeCluster:LongWord;</code>
| + | |
− | | Or cdfsUnknownCluster if not known
| + | |
− | |-
| + | |
− | | <code>FFreeClusterCount:LongWord;</code>
| + | |
− | | Or cdfsUnknownCluster if not known
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FClusterSize:LongWord;</code>
| + | |
− | | Size of a Cluster in Bytes (Max 65536 > Word)
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FBoot:TCDFSDiskDescriptor;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPrimary:TCDFSDiskDescriptor;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSupplementary:TCDFSDiskDescriptor;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FHeaders:TFileSysList;</code>
| + | |
− | | List of Catalog Headers
| + | |
− | |-
| + | |
− | | <code>FExtensions:TFileSysList;</code>
| + | |
− | | List of Catalog Extensions
| + | |
− | |-
| + | |
− | | <code>FDescriptors:TFileSysList;</code>
| + | |
− | | List of Volume Descriptors
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FHeaderLocal:TMutexHandle;</code>
| + | |
− | | Local Lock shared by all Catalog Headers
| + | |
− | |-
| + | |
− | | <code>FExtensionLocal:TMutexHandle;</code>
| + | |
− | | Local Lock shared by all Catalog Extensions
| + | |
− | |-
| + | |
− | | <code>FDescriptorLocal:TMutexHandle;</code>
| + | |
− | | Local Lock shared by all Volume Descriptors
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FExtendedLocal:TMutexHandle;</code>
| + | |
− | | Local Lock shared by all Extended Attributes
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPathLock:TSynchronizerHandle;</code>
| + | |
− | | Lock shared by all Path lists
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FReadBuffer:Pointer;</code>
| + | |
− | | Buffer for partial cluster entry reads (Cluster size)
| + | |
− | |-
| + | |
− | | <code>FReadLock:TMutexHandle;</code>
| + | |
− | | Lock for read buffer
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FWriteBuffer:Pointer;</code>
| + | |
− | | Buffer for partial cluster entry writes (Cluster size)
| + | |
− | |-
| + | |
− | | <code>FWriteLock:TMutexHandle;</code>
| + | |
− | | Lock for write buffer
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FClusterBuffer:Pointer;</code>
| + | |
− | | Buffer of exactly cluster size
| + | |
− | |-
| + | |
− | | <code>FClusterLock:TMutexHandle;</code>
| + | |
− | | Lock for cluster buffer
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReadLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReadUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function WriteLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ClusterLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ClusterUnlock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LoadTree(AEntry:TDiskEntry):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MarkTree(AEntry:TDiskEntry):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function PrepareTree(AEntry:TDiskEntry):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function PrepareTable(ATable:TDiskTable):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function PrepareTrees:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CheckCatalogs:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LocatePath(ATable:TCDFSDiskTable; APathNumber:Word):TCDFSDiskPath;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LocateEntry(AEntry:TCDFSDiskEntry; AStartCluster:LongWord):TCDFSDiskEntry;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LoadVolumeFlags:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FillClusters(ACluster:LongWord; ACount:Word; AValue:Byte):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReadClusters(ACluster:LongWord; ACount:Word; var ABuffer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteClusters(ACluster:LongWord; ACount:Word; const ABuffer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function TestClusters(ACluster,ACount:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MarkClusters(ACluster,ACount:LongWord; AUsed:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AllocClusters(var ACluster:LongWord; ACount:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseClusters(ACluster,ACount:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetNextFreeCluster:LongWord;</code>
| + | |
− | | Return is a Cluster
| + | |
− | |-
| + | |
− | | <code>function GetFreeClusterCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function TestBlock(ABlock:TCDFSDiskBlock; AStart,ACount:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MarkBlock(ABlock:TCDFSDiskBlock; AStart,ACount:LongWord; AUsed:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AllocBlock(ABlock:TCDFSDiskBlock; AStart,ACount:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseBlock(ABlock:TCDFSDiskBlock; AStart,ACount:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetBlockNextFree(ABlock:TCDFSDiskBlock; AStart:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetBlockFreeCount(ABlock:TCDFSDiskBlock):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function TestBitmap(ABuffer:Pointer; ASize,AStart,ACount:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MarkBitmap(ABuffer:Pointer; ASize,AStart,ACount:LongWord; AUsed:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AllocBitmap(ABuffer:Pointer; ASize:LongWord; AStart,ACount:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseBitmap(ABuffer:Pointer; ASize:LongWord; AStart,ACount:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetBitmapNextFree(ABuffer:Pointer; ASize,AStart:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetBitmapFreeCount(ABuffer:Pointer; ASize:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetTableDataFree(ATable:TDiskTable):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetEntryDataFree(AEntry:TDiskEntry):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetCatalogDataFree(ADescriptor:TCDFSDiskDescriptor):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetPreviousPath(ATable:TCDFSDiskTable; APath:TCDFSDiskPath):TCDFSDiskPath;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPreviousEntry(AParent,AEntry:TCDFSDiskEntry):TCDFSDiskEntry;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetSectorsPerCluster(AClusterSize:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetBlockShiftCount(AClusterSize:LongWord):Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSectorShiftCount(AClusterSize:LongWord):Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetClusterShiftCount(AClusterSize:LongWord):Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetEntriesPerBlock(AClusterSize:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetClustersPerBlock(AClusterSize:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetTotalBlockCount(ATotalClusterCount:LongWord):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RenumberPaths(ATable:TDiskTable):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ComparePath(APath1,APath2:TCDFSDiskPath; AUnicode:Boolean):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CompareEntry(AEntry1,AEntry2:TCDFSDiskEntry; AUnicode:Boolean):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function PadString(const AString:String; ALength:Integer; APrefix,AUnicode:Boolean):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CompareString(const AString1,AString2:String; AReverse:Boolean):Integer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ChecksumValidationRecord(AValidation:PELTORITOValidationRecord):Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RecordToPath(ARecord:Pointer; APath:TCDFSDiskPath; AUnicode,AEndian:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function PathToRecord(APath:TCDFSDiskPath; ARecord:Pointer; AUnicode,AEndian:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function RecordToEntry(ARecord:Pointer; AEntry:TCDFSDiskEntry; AUnicode:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function EntryToRecord(AEntry:TCDFSDiskEntry; ARecord:Pointer; AUnicode:Boolean):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CDFSTypeToFileSysType(ACDFSType:TCDFSType):TFileSysType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function LoadMaxFile:Integer; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadMaxPath:Integer; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadAttributes:LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadSystemName:String; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadVolumeName:String; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadVolumeSerial:LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadFileSysType:TFileSysType; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SetVolumeName(const AName:String):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetVolumeSerial(ASerial:LongWord):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ReadEntry(AParent,AEntry:TDiskEntry; var ABuffer; const AStart:Int64; ACount:LongWord; var AOffset,AValue:LongWord):Integer; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function WriteEntry(AParent,AEntry:TDiskEntry; const ABuffer; const AStart:Int64; ACount:LongWord; var AOffset,AValue:LongWord):Integer; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LoadTrees:Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function LoadTables:Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadBlocks:Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadDescriptors:Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function LoadRoots:Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function LoadPaths(ATable:TCDFSDiskTable):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function LoadEntries(AParent:TDiskEntry):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadCatalogs:Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SetPaths(ATable:TCDFSDiskTable):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function SetEntries(AParent:TDiskEntry):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function SetCatalogs:Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function LoadTable(ATableNo:LongWord):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadBlock(ABlockNo:LongWord):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function LoadDescriptor(ABuffer:Pointer; ACluster:LongWord):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function LoadRoot(ADescriptor:TCDFSDiskDescriptor):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function LoadPath(ATable:TCDFSDiskTable; ABuffer:Pointer; AOffset:LongWord; ANumber:Word):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function LoadEntry(AParent:TCDFSDiskEntry; ABuffer:Pointer; AOffset,ACluster:LongWord):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function LoadHeader(ABuffer:Pointer; AOffset,ACluster:LongWord; AHeaderNo:LongWord):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function LoadCatalog(ABuffer:Pointer; AOffset,ACluster:LongWord; ACatalogNo:LongWord; AInitial:Boolean):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function LoadExtension(ABuffer:Pointer; AOffset,ACluster:LongWord; AExtensionNo:LongWord):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function LoadExtended(AEntry:TDiskEntry):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddDescriptor(AType:Byte):TCDFSDiskDescriptor;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function RemoveDescriptor(ADescriptor:TCDFSDiskDescriptor):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddPath(ATable:TDiskTable; AParentNumber:Word; const AName:String; AStartCluster:LongWord):TCDFSDiskPath;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function RemovePath(ATable:TDiskTable; APath:TCDFSDiskPath):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function RenamePath(ATable:TDiskTable; APath:TCDFSDiskPath; const AName:String):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function MovePath(ATable:TDiskTable; ADestNumber:Word; APath:TCDFSDiskPath):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddEntry(AParent:TDiskEntry; const AName:String; AAttributes:LongWord; AReference:Boolean):TDiskEntry; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function AddEntryEx(AParent:TDiskEntry; const AName,AAltName:String; AAttributes:LongWord; AReference:Boolean):TDiskEntry; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveEntry(AParent,AEntry:TDiskEntry):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RenameEntry(AParent,AEntry:TDiskEntry; const AName:String):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RenameEntryEx(AParent,AEntry:TDiskEntry; const AAltName:String):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function MoveEntry(ASource,ADest,AEntry:TDiskEntry):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AddCatalog(AEntry:TDiskEntry; AMediaType:TMediaType; AFloppyType:TFloppyType; AAttributes:LongWord; ASectorSize:Word; const ASectorCount:Int64):TDiskCatalog; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function RemoveCatalog(ACatalog:TDiskCatalog):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetNextHeaderNo:LongWord;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function GetMaxHeaderNo:LongWord;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function GetNextHeaderOffset:LongWord;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function GetNextHeaderCluster:LongWord;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function GetNextCatalogOffset:LongWord;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function GetNextCatalogCluster:LongWord;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SetTable(ATable:TDiskTable):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetBlock(ABlock:TDiskBlock):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetDescriptor(ADescriptor:TCDFSDiskDescriptor):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function SetRoot(ADescriptor:TCDFSDiskDescriptor; ARoot:TDiskEntry):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function SetPath(ATable:TDiskTable; APath:TCDFSDiskPath; ABuffer:Pointer):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function SetEntry(AParent,AEntry:TDiskEntry):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetHeader(AHeader:TCDFSDiskHeader):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function SetCatalog(ACatalog:TDiskCatalog):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetExtension(AExtension:TCDFSDiskExtension):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function SetExtended(AEntry:TDiskEntry; AExtended:TCDFSDiskExtended):Boolean;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function SizeEntry(AParent,AEntry:TDiskEntry; const ASize:Int64):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetBlock(ABlockNo:LongWord):TDiskBlock; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetBlockEx(ABlockNo:LongWord; AWrite:Boolean):TDiskBlock; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDescriptor(AType,AInstance:Byte):TCDFSDiskDescriptor;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function GetDescriptorEx(AType,AInstance:Byte; AWrite:Boolean):TCDFSDiskDescriptor;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function GetRoot(ADescriptor:TCDFSDiskDescriptor):TDiskEntry;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function GetPath(ATable:TDiskTable; AParentNumber:Word; const AName:String):TCDFSDiskPath;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function GetHeader(AHeaderNo:LongWord):TCDFSDiskHeader;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function GetHeaderEx(AHeaderNo:LongWord; AWrite:Boolean):TCDFSDiskHeader;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function GetExtension(AExtensionNo:LongWord):TCDFSDiskExtension;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function GetExtensionEx(AExtensionNo:LongWord; AWrite:Boolean):TCDFSDiskExtension;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | | <code>function GetExtended(AEntry:TDiskEntry):TCDFSDiskExtended;</code>
| + | |
− | | Not override
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetVersion(const AName:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function StripDot(const AName:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function StripVersion(const AName:String):String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CompareName(const AName,AMatch:String; AWildcard:Boolean):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CompareSequence(const ASequence; const ACompare; ASize:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function CompareIdentifier(const AIdentifier; const ACompare; ASize:Integer):Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function CalculateVolumeSerial(ABuffer:Pointer; ASize:Integer):LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property ReadOnly:Boolean read FReadOnly write FReadOnly;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property LongNames:Boolean read FLongNames write FLongNames;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CasePreserved:Boolean read FCasePreserved write FCasePreserved;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property UnicodeNames:Boolean read FUnicodeNames write FUnicodeNames;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SwapSerial:Boolean read FSwapSerial write FSwapSerial;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileSystemInit:Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function MountFileSystem:Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DismountFileSystem:Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function InitializeFileSystem(ASectorsPerCluster:LongWord; AFileSysType:TFileSysType):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDriveLabel:String; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetDriveLabel(const ALabel:String):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function SetDriveSerial(ASerial:LongWord):Boolean; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDriveFreeSpaceEx:Int64; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetDriveTotalSpaceEx:Int64; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetDriveInformation(var AClusterSize:LongWord; var ATotalClusterCount,AFreeClusterCount:Int64):Boolean; override;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''CDFS disk table'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCDFSDiskTable = class(TDiskTable)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Represents a CDFS path table. | + | | [[TCDFSDiskTable|<code>TCDFSDiskTable = class(TDiskTable)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALock:TSynchronizerHandle; ALocalLock:TMutexHandle; ADescriptor:TCDFSDiskDescriptor);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FTableType:Byte;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FEndian:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FUnicode:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPathsLoaded:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FStartCluster:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FClusterCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FDataFree:LongWord;</code>
| + | |
− | | Data Free
| + | |
− | |-
| + | |
− | | <code>FDataSize:LongWord;</code>
| + | |
− | | Data Length
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPaths:TFileSysListEx;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPathLocal:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FDescriptor:TCDFSDiskDescriptor;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property TableType:Byte read FTableType write FTableType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Endian:Boolean read FEndian write FEndian;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Unicode:Boolean read FUnicode write FUnicode;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property PathsLoaded:Boolean read FPathsLoaded write FPathsLoaded;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property StartCluster:LongWord read FStartCluster write FStartCluster;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ClusterCount:LongWord read FClusterCount write FClusterCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property DataFree:LongWord read FDataFree write FDataFree;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property DataSize:LongWord read FDataSize write FDataSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Paths:TFileSysListEx read FPaths;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PathLocal:TMutexHandle read FPathLocal;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Descriptor:TCDFSDiskDescriptor read FDescriptor;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''CDFS disk block'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCDFSDiskBlock = class(TDiskBlock)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Represents a block of clusters. | + | | [[TCDFSDiskBlock|<code>TCDFSDiskBlock = class(TDiskBlock)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FBlockCount:LongWord;</code>
| + | |
− | | Number of cluster entries in this block
| + | |
− | |-
| + | |
− | | <code>FBlockBuffer:Pointer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FBlockCluster:LongWord;</code>
| + | |
− | | First cluster represented by this block
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property BlockCount:LongWord read FBlockCount write FBlockCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property BlockBuffer:Pointer read FBlockBuffer write FBlockBuffer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property BlockCluster:LongWord read FBlockCluster write FBlockCluster;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''CDFS disk entry'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCDFSDiskEntry = class(TDiskEntry)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Represents a CDFS directory entry. | + | | [[TCDFSDiskEntry|<code>TCDFSDiskEntry = class(TDiskEntry)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FUnicode:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FVersion:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FEntryOffset:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FEntryCluster:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FStartCluster:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FClusterCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FRecordSize:Byte;</code>
| + | |
− | | Length of Directory Record (LEN-DR)
| + | |
− | |-
| + | |
− | | <code>FExtendedSize:Byte;</code>
| + | |
− | | Extended Attribute Record Length
| + | |
− | |-
| + | |
− | | <code>FDataSize:LongWord;</code>
| + | |
− | | Data Length
| + | |
− | |-
| + | |
− | | <code>FUnitSize:Byte;</code>
| + | |
− | | File Unit Size
| + | |
− | |-
| + | |
− | | <code>FInterleaveSize:Byte;</code>
| + | |
− | | Interleave Gap Size
| + | |
− | |-
| + | |
− | | <code>FSequenceNumber:Word;</code>
| + | |
− | | Volume Sequence Number
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FDataFree:LongWord;</code>
| + | |
− | | Data Free
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPath:TCDFSDiskPath;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPathM:TCDFSDiskPath;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAltPath:TCDFSDiskPath;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAltPathM:TCDFSDiskPath;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FExtended:TCDFSDiskExtended;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetVersion:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetVersion(const AVersion:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Unicode:Boolean read FUnicode write FUnicode;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Version:String read GetVersion write SetVersion;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property EntryOffset:LongWord read FEntryOffset write FEntryOffset;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property EntryCluster:LongWord read FEntryCluster write FEntryCluster;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property StartCluster:LongWord read FStartCluster write FStartCluster;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ClusterCount:LongWord read FClusterCount write FClusterCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property RecordSize:Byte read FRecordSize write FRecordSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ExtendedSize:Byte read FExtendedSize write FExtendedSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property DataSize:LongWord read FDataSize write FDataSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property FirstBlock:LongWord read FStartCluster write FStartCluster;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property UnitSize:Byte read FUnitSize write FUnitSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property InterleaveSize:Byte read FInterleaveSize write FInterleaveSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SequenceNumber:Word read FSequenceNumber write FSequenceNumber;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property DataFree:LongWord read FDataFree write FDataFree;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Path:TCDFSDiskPath read FPath write FPath;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PathM:TCDFSDiskPath read FPathM write FPathM;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AltPath:TCDFSDiskPath read FAltPath write FAltPath;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AltPathM:TCDFSDiskPath read FAltPathM write FAltPathM;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Extended:TCDFSDiskExtended read FExtended write FExtended;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function PathNumber:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ParentNumber:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function FileIdentifier:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function FileIdentifierSize:Byte;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function DirectoryRecordSize:Byte;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ExtendedRecordSize:Byte;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''CDFS disk catalog'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCDFSDiskCatalog = class(TDiskCatalog)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Represents a CDFS boot catalog entry (Also the Initial/Default entry). | + | | [[TCDFSDiskCatalog|<code>TCDFSDiskCatalog = class(TDiskCatalog)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FCatalogOffset:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FCatalogCluster:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FStartCluster:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FClusterCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FInitial:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FBootIndicator:Byte;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FBootMedia:Byte;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLoadSegment:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSystemType:Byte;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FLoadCount:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FSelectionType:Byte;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSelectionData:Pointer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FEntry:TCDFSDiskEntry;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FHeader:TCDFSDiskHeader;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''protected'''</div>
| + | |
− | |-
| + | |
− | | <code>function GetName:String; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetName(const AName:String); override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetMediaType:TMediaType; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetMediaType(AMediaType:TMediaType); override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetFloppyType:TFloppyType; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetFloppyType(AFloppyType:TFloppyType); override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetAttributes:LongWord; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetAttributes(AAttributes:LongWord); override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSectorSize:Word; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetSectorSize(ASectorSize:Word); override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetSectorCount:Int64; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetSectorCount(const ASectorCount:Int64); override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetStartCluster:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetStartCluster(AStartCluster:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetClusterCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetClusterCount(AClusterCount:LongWord);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property CatalogOffset:LongWord read FCatalogOffset write FCatalogOffset;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CatalogCluster:LongWord read FCatalogCluster write FCatalogCluster;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property StartCluster:LongWord read GetStartCluster write SetStartCluster;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ClusterCount:LongWord read GetClusterCount write SetClusterCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Initial:Boolean read FInitial write FInitial;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property BootIndicator:Byte read FBootIndicator write FBootIndicator;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property BootMedia:Byte read FBootMedia write FBootMedia;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property LoadSegment:Word read FLoadSegment write FLoadSegment;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SystemType:Byte read FSystemType write FSystemType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property LoadCount:Word read FLoadCount write FLoadCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property SelectionType:Byte read FSelectionType write FSelectionType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SelectionData:Pointer read FSelectionData write FSelectionData;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Entry:TCDFSDiskEntry read FEntry write FEntry;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Header:TCDFSDiskHeader read FHeader write FHeader;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Validation:TCDFSDiskHeader read FHeader write FHeader;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''CDFS disk path'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCDFSDiskPath = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Represents a CDFS path table entry. | + | | [[TCDFSDiskPath|<code>TCDFSDiskPath = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code>
| + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FHash:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPathNumber:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPathOffset:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FStartCluster:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FExtendedSize:Byte;</code>
| + | |
− | | Extended Attribute Record Length
| + | |
− | |-
| + | |
− | | <code>FParentNumber:Word;</code>
| + | |
− | | Parent Directory Number
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FParent:TCDFSDiskPath;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code> | + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetName:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetName(const AName:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Name:String read GetName write SetName;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Hash:LongWord read FHash;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property PathNumber:Word read FPathNumber write FPathNumber;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PathOffset:LongWord read FPathOffset write FPathOffset;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property StartCluster:LongWord read FStartCluster write FStartCluster;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property ExtendedSize:Byte read FExtendedSize write FExtendedSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property FirstBlock:LongWord read FStartCluster write FStartCluster;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ParentNumber:Word read FParentNumber write FParentNumber;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Parent:TCDFSDiskPath read FParent write FParent;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function PathIdentifier:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function PathIdentifierSize(AUnicode:Boolean):Byte;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function PathRecordSize(AUnicode:Boolean):Byte;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''CDFS disk extended'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCDFSDiskExtended = class(TObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Represents a CDFS extended attribute. | + | | [[TCDFSDiskExtended|<code>TCDFSDiskExtended = class(TObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FStartCluster:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FClusterCount:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FOwnerId:Word;</code>
| + | |
− | | Owner Identification
| + | |
− | |-
| + | |
− | | <code>FGroupId:Word;</code>
| + | |
− | | Group Identification
| + | |
− | |-
| + | |
− | | <code>FPermissions:Word;</code>
| + | |
− | | Permissions 16 bits
| + | |
− | |-
| + | |
− | | <code>FCreateTime:TFileTime;</code>
| + | |
− | | File Creation Date and Time
| + | |
− | |-
| + | |
− | | <code>FModifyTime:TFileTime;</code>
| + | |
− | | File Modification Date and Time
| + | |
− | |-
| + | |
− | | <code>FExpireTime:TFileTime;</code>
| + | |
− | | File Expiration Date and Time
| + | |
− | |-
| + | |
− | | <code>FEffectiveTime:TFileTime;</code>
| + | |
− | | File Effective Date and Time
| + | |
− | |-
| + | |
− | | <code>FRecordFormat:Byte;</code>
| + | |
− | | Record Format
| + | |
− | |-
| + | |
− | | <code>FRecordAttributes:Byte;</code>
| + | |
− | | Record Attributes
| + | |
− | |-
| + | |
− | | <code>FRecordLength:Word;</code>
| + | |
− | | Record Length
| + | |
− | |-
| + | |
− | | <code>FSystemIdentifier:String;</code>
| + | |
− | | System Identifier a-characters, a1-characters
| + | |
− | |-
| + | |
− | | <code>FSystemData:Pointer;</code>
| + | |
− | | System Use not specified
| + | |
− | |-
| + | |
− | | <code>FExtendedVersion:Byte;</code>
| + | |
− | | Extended Attribute Record Version
| + | |
− | |-
| + | |
− | | <code>FEscapeSequenceSize:Byte;</code>
| + | |
− | | Length of Escape Sequences (LEN_ESC)
| + | |
− | |-
| + | |
− | | <code>FApplicationDataSize:Word;</code>
| + | |
− | | Length of Application Use (LEN_AU)
| + | |
− | |-
| + | |
− | | <code>FApplicationData:Pointer;</code>
| + | |
− | | Application Use LEN_AU bytes
| + | |
− | |-
| + | |
− | | <code>FEscapeSequence:Pointer;</code>
| + | |
− | | Escape Sequences LEN_ESC bytes
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetSystemIdentifier:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetSystemIdentifier(const ASystemIdentifier:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property StartCluster:LongWord read FStartCluster write FStartCluster;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ClusterCount:LongWord read FClusterCount write FClusterCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property OwnerId:Word read FOwnerId write FOwnerId;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property GroupId:Word read FGroupId write FGroupId;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Permissions:Word read FPermissions write FPermissions;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CreateTime:TFileTime read FCreateTime write FCreateTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ModifyTime:TFileTime read FModifyTime write FModifyTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ExpireTime:TFileTime read FExpireTime write FExpireTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property EffectiveTime:TFileTime read FEffectiveTime write FEffectiveTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RecordFormat:Byte read FRecordFormat write FRecordFormat;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RecordAttributes:Byte read FRecordAttributes write FRecordAttributes;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property RecordLength:Word read FRecordLength write FRecordLength;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SystemIdentifier:String read GetSystemIdentifier write SetSystemIdentifier;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SystemData:Pointer read FSystemData write FSystemData;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ExtendedVersion:Byte read FExtendedVersion write FExtendedVersion;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property EscapeSequenceSize:Byte read FEscapeSequenceSize write FEscapeSequenceSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ApplicationDataSize:Word read FApplicationDataSize write FApplicationDataSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ApplicationData:Pointer read FApplicationData write FApplicationData;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property EscapeSequence:Pointer read FEscapeSequence write FEscapeSequence;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function ExtendedRecordSize:Byte;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''CDFS disk descriptor'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCDFSDiskDescriptor = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Represents a CDFS volume descriptor. | + | | [[TCDFSDiskDescriptor|<code>TCDFSDiskDescriptor = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FUnicode:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FStartCluster:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FDescriptorType:Byte;</code>
| + | |
− | | Descriptor Type (00 = Boot, 01 = Primary etc)
| + | |
− | |-
| + | |
− | | <code>FDescriptorVersion:Byte;</code>
| + | |
− | | Descriptor Version (1)
| + | |
− | |-
| + | |
− | | <code>FStandardIdentifier:String;</code>
| + | |
− | | Standard Identifier ('CD001')
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FSystemIdentifier:String;</code>
| + | |
− | | System Identifier a-characters (eg EL TORITO SPECIFICATION)
| + | |
− | |-
| + | |
− | | <code>FVolumeIdentifier:String;</code>
| + | |
− | | Volume Identifier d-characters
| + | |
− | |-
| + | |
− | | <code>FVolumeSpaceSize:LongWord;</code>
| + | |
− | | Volume Space Size
| + | |
− | |-
| + | |
− | | <code>FVolumeSetSize:Word;</code>
| + | |
− | | Volume Set Size
| + | |
− | |-
| + | |
− | | <code>FVolumeSequenceNumber:Word;</code>
| + | |
− | | Volume Sequence Number
| + | |
− | |-
| + | |
− | | <code>FLogicalBlockSize:Word;</code>
| + | |
− | | Logical Block Size
| + | |
− | |-
| + | |
− | | <code>FPathTableSize:LongWord;</code>
| + | |
− | | Path Table Size
| + | |
− | |-
| + | |
− | | <code>FPrimaryPathTable:LongWord;</code>
| + | |
− | | Location of Occurrence of Type L Path Table
| + | |
− | |-
| + | |
− | | <code>FAlternatePathTable:LongWord;</code>
| + | |
− | | Location of Optional Occurrence of Type L Path Table
| + | |
− | |-
| + | |
− | | <code>FPrimaryPathTableM:LongWord;</code>
| + | |
− | | Location of Occurrence of Type M Path Table
| + | |
− | |-
| + | |
− | | <code>FAlternatePathTableM:LongWord;</code>
| + | |
− | | Location of Optional Occurrence of Type M Path Table
| + | |
− | |-
| + | |
− | | <code>FVolumeSetIdentifier:String;</code>
| + | |
− | | Volume Set Identifier d-characters
| + | |
− | |-
| + | |
− | | <code>FPublisherIdentifier:String;</code>
| + | |
− | | Publisher Identifier a-characters
| + | |
− | |-
| + | |
− | | <code>FPreparerIdentifier:String;</code>
| + | |
− | | Data Preparer Identifier a-characters
| + | |
− | |-
| + | |
− | | <code>FApplicationIdentifier:String;</code>
| + | |
− | | Application Identifier a-characters
| + | |
− | |-
| + | |
− | | <code>FCopyrightIdentifier:String;</code>
| + | |
− | | Copyright File Identifier d-characters, SEPARATOR 1, SEPARATOR 2
| + | |
− | |-
| + | |
− | | <code>FAbstractIdentifier:String;</code>
| + | |
− | | Abstract File Identifier d-characters, SEPARATOR 1, SEPARATOR 2
| + | |
− | |-
| + | |
− | | <code>FBibliographicIdentifier:String;</code>
| + | |
− | | Bibliographic File Identifier d-characters, SEPARATOR 1, SEPARATOR 2
| + | |
− | |-
| + | |
− | | <code>FCreateTime:TFileTime;</code>
| + | |
− | | Volume Creation Date and Time
| + | |
− | |-
| + | |
− | | <code>FModifyTime:TFileTime;</code>
| + | |
− | | Volume Modification Date and Time
| + | |
− | |-
| + | |
− | | <code>FExpireTime:TFileTime;</code>
| + | |
− | | Volume Expiration Date and Time
| + | |
− | |-
| + | |
− | | <code>FEffectiveTime:TFileTime;</code>
| + | |
− | | Volume Effective Date and Time
| + | |
− | |-
| + | |
− | | <code>FFileStructureVersion:Byte;</code>
| + | |
− | | File Structure Version
| + | |
− | |-
| + | |
− | | <code>FApplicationData:Pointer;</code>
| + | |
− | | Application Use not specified
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FVolumeFlags:Byte;</code>
| + | |
− | | Volume Flags 8 bits
| + | |
− | |-
| + | |
− | | <code>FEscapeSequences:Pointer;</code>
| + | |
− | | Escape Sequences 32 bytes
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FBootIdentifier:String;</code>
| + | |
− | | 32 a-characters
| + | |
− | |-
| + | |
− | | <code>FCatalogStart:LongWord;</code>
| + | |
− | | Absolute pointer to first sector of Boot Catalog
| + | |
− | |-
| + | |
− | | <code>FCatalogCount:LongWord;</code>
| + | |
− | | Number of Sectors in Boot Catalog (Not Stored)
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FPartitionIdentifier:String;</code>
| + | |
− | | Volume Partition Identifier d-characters
| + | |
− | |-
| + | |
− | | <code>FPartitionStart:LongWord;</code>
| + | |
− | | Volume Partition Location (first Logical Block)
| + | |
− | |-
| + | |
− | | <code>FPartitionSize:LongWord;</code>
| + | |
− | | Volume Partition Size (in Logical Blocks)
| + | |
− | |-
| + | |
− | | <code>FSystemData:Pointer;</code>
| + | |
− | | System Use not specified
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FRoot:TCDFSDiskEntry;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPrimary:TCDFSDiskTable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPrimaryM:TCDFSDiskTable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAlternate:TCDFSDiskTable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FAlternateM:TCDFSDiskTable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FInitial:TCDFSDiskCatalog;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FValidation:TCDFSDiskHeader;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetStandardIdentifier:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetStandardIdentifier(const AStandardIdentifier:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetSystemIdentifier:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetSystemIdentifier(const ASystemIdentifier:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetVolumeIdentifier:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetVolumeIdentifier(const AVolumeIdentifier:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetVolumeSetIdentifier:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetVolumeSetIdentifier(const AVolumeSetIdentifier:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPublisherIdentifier:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetPublisherIdentifier(const APublisherIdentifier:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetPreparerIdentifier:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetPreparerIdentifier(const APreparerIdentifier:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetApplicationIdentifier:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetApplicationIdentifier(const AApplicationIdentifier:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetCopyrightIdentifier:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetCopyrightIdentifier(const ACopyrightIdentifier:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetAbstractIdentifier:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetAbstractIdentifier(const AAbstractIdentifier:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function GetBibliographicIdentifier:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetBibliographicIdentifier(const ABibliographicIdentifier:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetBootIdentifier:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetBootIdentifier(const ABootIdentifier:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetPartitionIdentifier:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetPartitionIdentifier(const APartitionIdentifier:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property Unicode:Boolean read FUnicode write FUnicode;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property StartCluster:LongWord read FStartCluster write FStartCluster;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property DescriptorType:Byte read FDescriptorType write FDescriptorType;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property DescriptorVersion:Byte read FDescriptorVersion write FDescriptorVersion;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property StandardIdentifier:String read GetStandardIdentifier write SetStandardIdentifier;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property SystemIdentifier:String read GetSystemIdentifier write SetSystemIdentifier;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property VolumeIdentifier:String read GetVolumeIdentifier write SetVolumeIdentifier;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property VolumeSpaceSize:LongWord read FVolumeSpaceSize write FVolumeSpaceSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property VolumeSetSize:Word read FVolumeSetSize write FVolumeSetSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property VolumeSequenceNumber:Word read FVolumeSequenceNumber write FVolumeSequenceNumber;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property LogicalBlockSize:Word read FLogicalBlockSize write FLogicalBlockSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PathTableSize:LongWord read FPathTableSize write FPathTableSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PrimaryPathTable:LongWord read FPrimaryPathTable write FPrimaryPathTable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AlternatePathTable:LongWord read FAlternatePathTable write FAlternatePathTable;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PrimaryPathTableM:LongWord read FPrimaryPathTableM write FPrimaryPathTableM;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AlternatePathTableM:LongWord read FAlternatePathTableM write FAlternatePathTableM;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property VolumeSetIdentifier:String read GetVolumeSetIdentifier write SetVolumeSetIdentifier;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PublisherIdentifier:String read GetPublisherIdentifier write SetPublisherIdentifier;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PreparerIdentifier:String read GetPreparerIdentifier write SetPreparerIdentifier;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ApplicationIdentifier:String read GetApplicationIdentifier write SetApplicationIdentifier;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CopyrightIdentifier:String read GetCopyrightIdentifier write SetCopyrightIdentifier;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AbstractIdentifier:String read GetAbstractIdentifier write SetAbstractIdentifier;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property BibliographicIdentifier:String read GetBibliographicIdentifier write SetBibliographicIdentifier;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CreateTime:TFileTime read FCreateTime write FCreateTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ModifyTime:TFileTime read FModifyTime write FModifyTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ExpireTime:TFileTime read FExpireTime write FExpireTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property EffectiveTime:TFileTime read FEffectiveTime write FEffectiveTime;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property FileStructureVersion:Byte read FFileStructureVersion write FFileStructureVersion;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ApplicationData:Pointer read FApplicationData write FApplicationData;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property VolumeFlags:Byte read FVolumeFlags write FVolumeFlags;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property EscapeSequences:Pointer read FEscapeSequences write FEscapeSequences;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property BootIdentifier:String read GetBootIdentifier write SetBootIdentifier;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CatalogStart:LongWord read FCatalogStart write FCatalogStart;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property CatalogCount:LongWord read FCatalogCount write FCatalogCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property PartitionIdentifier:String read GetPartitionIdentifier write SetPartitionIdentifier;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PartitionStart:LongWord read FPartitionStart write FPartitionStart;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PartitionSize:LongWord read FPartitionSize write FPartitionSize;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SystemData:Pointer read FSystemData write FSystemData;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Root:TCDFSDiskEntry read FRoot write FRoot;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Primary:TCDFSDiskTable read FPrimary write FPrimary;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PrimaryM:TCDFSDiskTable read FPrimaryM write FPrimaryM;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Alternate:TCDFSDiskTable read FAlternate write FAlternate;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property AlternateM:TCDFSDiskTable read FAlternateM write FAlternateM;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Initial:TCDFSDiskCatalog read FInitial write FInitial;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Validation:TCDFSDiskHeader read FValidation write FValidation;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''CDFS disk header'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCDFSDiskHeader = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Represents a CDFS catalog header (Also the Validation entry). | + | | [[TCDFSDiskHeader|<code>TCDFSDiskHeader = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FHeaderNo:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FHeaderOffset:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FHeaderCluster:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FValidation:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FHeaderId:Byte;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FPlatformId:Byte;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FVendorId:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FChecksum:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSignature:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FSectionCount:Word;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function GetVendorId:String;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>procedure SetVendorId(const AVendorId:String);</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property HeaderNo:LongWord read FHeaderNo write FHeaderNo;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property HeaderOffset:LongWord read FHeaderOffset write FHeaderOffset;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property HeaderCluster:LongWord read FHeaderCluster write FHeaderCluster;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Validation:Boolean read FValidation write FValidation;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property HeaderId:Byte read FHeaderId write FHeaderId;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property PlatformId:Byte read FPlatformId write FPlatformId;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property VendorId:String read GetVendorId write SetVendorId;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Checksum:Word read FChecksum write FChecksum;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property Signature:Word read FSignature write FSignature;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property HeaderIndicator:Byte read FHeaderId write FHeaderId;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SectionCount:Word read FSectionCount write FSectionCount;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SectionId:String read GetVendorId write SetVendorId;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" |
− | | + | |
− | '''CDFS disk extension'''
| + | |
− | | + | |
− | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
| + | |
− | | + | |
− | <code>TCDFSDiskExtension = class(TListObject)</code>
| + | |
− | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
| + | |
− | {| class="wikitable" style="font-size: 14px; background: white;"
| + | |
| |- | | |- |
− | |colspan="2"|Note: Represents a CDFS catalog extension. | + | | [[TCDFSDiskExtension|<code>TCDFSDiskExtension = class(TListObject)</code>]] |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>constructor Create(ALocalLock:TMutexHandle);</code> | + | |
− | | style="width: 50%;"|
| + | |
− | |-
| + | |
− | | <code>destructor Destroy; override;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''private'''</div>
| + | |
− | |-
| + | |
− | | <code>FLocalLock:TMutexHandle;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FExtensionNo:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FExtensionOffset:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FExtensionCluster:LongWord;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FExtensionIndicator:Byte;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FExtensionFlag:Byte;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>FSelectionData:Pointer;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>FCatalog:TCDFSDiskCatalog;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>function AcquireLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>function ReleaseLock:Boolean;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|<div style="font-family: monospace,courier;">'''public'''</div>
| + | |
− | |-
| + | |
− | | <code>property ExtensionNo:LongWord read FExtensionNo write FExtensionNo;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property ExtensionOffset:LongWord read FExtensionOffset write FExtensionOffset;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ExtensionCluster:LongWord read FExtensionCluster write FExtensionCluster;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property ExtensionIndicator:Byte read FExtensionIndicator write FExtensionIndicator;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property ExtensionFlag:Byte read FExtensionFlag write FExtensionFlag;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | | <code>property SelectionData:Pointer read FSelectionData write FSelectionData;</code>
| + | |
− | |
| + | |
− | |-
| + | |
− | |colspan="2"|
| + | |
− | |-
| + | |
− | | <code>property Catalog:TCDFSDiskCatalog read FCatalog write FCatalog;</code>
| + | |
− | |
| + | |
| |- | | |- |
| |} | | |} |
− | </div></div>
| + | <br /> |
− | <br /> | + | |
| | | |
| === Public variables === | | === Public variables === |
Line 3,747: |
Line 1,445: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,759: |
Line 1,457: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,774: |
Line 1,472: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | Allows byte order swapping on copy | | | Allows byte order swapping on copy |
| |- | | |- |
Line 3,786: |
Line 1,484: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | Allows byte order swapping on copy | | | Allows byte order swapping on copy |
| |- | | |- |
Line 3,798: |
Line 1,496: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | Accounts for unicode and byte ordering | | | Accounts for unicode and byte ordering |
| |- | | |- |
Line 3,810: |
Line 1,508: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | Accounts for unicode and byte ordering | | | Accounts for unicode and byte ordering |
| |- | | |- |
Line 3,822: |
Line 1,520: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | Accounts for dot and dot dot special entries | | | Accounts for dot and dot dot special entries |
| |- | | |- |
Line 3,834: |
Line 1,532: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | Accounts for dot and dot dot special entries | | | Accounts for dot and dot dot special entries |
| |- | | |- |
Line 3,846: |
Line 1,544: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,858: |
Line 1,556: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,870: |
Line 1,568: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |
Line 3,882: |
Line 1,580: |
| {| class="wikitable" style="font-size: 14px; background: white;" | | {| class="wikitable" style="font-size: 14px; background: white;" |
| |- | | |- |
− | ! '''Note''' | + | ! Note |
| | None documented | | | None documented |
| |- | | |- |