Return to Unit Reference
Description
Ultibo CDFS interface unit
To be documented
Constants
[Expand]
CDFS specific constants cdfs*
cdfsIso9660 = 0;
|
|
cdfsJoilet = 1;
|
|
cdfsSierra = 2;
|
|
cdfsRockRidge = 3;
|
|
cdfsAudio = 4;
|
|
cdfsUDF = 5;
|
|
|
cdfsNames:array[0..5] of String = (
|
'CD001',
|
|
'CD001',
|
|
'CDROM',
|
|
,
|
|
'CDAUDIO',
|
|
);
|
|
|
cdfsAnyName = '*';
|
|
cdfsDotName = '.';
|
|
cdfsDotDotName = '..';
|
|
cdfsBlankName = ;
|
|
cdfsVersionName = '1';
|
Used by version information on end of identifier (Not Used)
|
cdfsSeparator1Name = '.';
|
Dot on end of identifier when no extension exists (File only)
|
cdfsSeparator2Name = ';';
|
Used by version information on end of identifier (File only)
|
|
cdfsJolietMaxPath = 240;
|
120 (240 bytes)
|
cdfsJolietMaxFile = 64;
|
(128 bytes)
|
cdfsISO9660MaxPath = 240;
|
|
cdfsISO9660MaxFile = 30;
|
31 for Directories
|
|
cdfsISO9660StandardIdentifier = 'CD001';
|
|
cdfsELTORITOSystemIdentifier = 'EL TORITO SPECIFICATION';
|
|
|
cdfsFirstSector = 0;
|
|
cdfsReservedSectors = 16;
|
|
cdfsISO9660StartSector = 16;
|
|
cdfsELTORITOBootSector = 17;
|
|
|
cdfsISO9660StructureVersion = 1;
|
|
cdfsISO9660DescriptorVersion = 1;
|
|
cdfsELTORITODescriptorVersion = 1;
|
|
|
cdfsJolietUCS2Sequence1 = #37 + #47 + #64;
|
'%/@'
|
cdfsJolietUCS2Sequence2 = #37 + #47 + #67;
|
'%/C'
|
cdfsJolietUCS2Sequence3 = #37 + #47 + #69;
|
'%/E'
|
|
cdfsDotIdentifier = $00;
|
|
cdfsDotDotIdentifier = $01;
|
|
|
cdfsSeparator1Value = $2E;
|
'.'
|
cdfsSeparator2Value = $3B;
|
';'
|
|
cdfsTimeStartYear = 1900;
|
CDFS Time starts at 1900
|
cdfsTimeOffsetInterval = 15;
|
Offset is in 15 minute intervals
|
|
cdfsNullFileTime:TFileTime = (dwLowDateTime:$00000000;dwHighDateTime:$00000000);
|
|
|
cdfsStartCluster = 16;
|
|
cdfsUnknownCluster = LongWord(-1);
|
|
|
cdfsRootPathNumber = 1;
|
|
|
cdfsPathRecordSize = 9;
|
Minimum
|
cdfsExtendedRecordSize = 250;
|
Minimum
|
cdfsDirectoryRecordSize = 34;
|
Minimum
|
|
cdfsFileIdentifierSize = 1;
|
Minimum
|
cdfsPathIdentifierSize = 1;
|
Minimum
|
|
cdfsHeaderRecordSize = 32;
|
Fixed
|
cdfsCatalogRecordSize = 32;
|
Fixed
|
cdfsExtensionRecordSize = 32;
|
Fixed
|
|
cdfsEvenSize = 0;
|
|
cdfsUnevenSize = 1;
|
|
|
cdfsRootRecordOffset = 156;
|
Offset of Root Directory in Descriptor
|
|
cdfsInstanceFirst = 0;
|
|
cdfsInstanceLast = Byte(-1);
|
|
|
cdfsTableTypeMask = $00FF0000;
|
|
cdfsTableTypeShift = 16;
|
|
cdfsTableInstanceMask = $0000FF00;
|
|
cdfsTableInstanceShift = 8;
|
|
cdfsTableDescriptorMask = $000000FF;
|
|
cdfsTableDescriptorShift = 0;
|
|
|
cdfsBitmapUnknown = LongWord(-1);
|
|
[Expand]
CDFS bitmap mask constants cdfsBitmapMask*
cdfsBitmapMaskBits = 64;
|
Int64 Bitmap Masks
|
cdfsBitmapMaskNone = $0000000000000000;
|
Int64 Used for fast counting of free blocks
|
cdfsBitmapMaskAll = $FFFFFFFFFFFFFFFF;
|
Int64 Used for fast counting of used blocks
|
[Expand]
CDFS volume flag constants cdfsVolumeFlag*
cdfsVolumeFlagNone = $00;
|
|
cdfsVolumeFlagUnregistered = $01;
|
If set this SVD contains an unregistered escape sequence
|
[Expand]
CDFS file flag constants cdfsFileFlag*
cdfsFileFlagNone = $00;
|
|
cdfsFileFlagExistence = $01;
|
If set this file is hidden
|
cdfsFileFlagDirectory = $02;
|
If set this record is a directory
|
cdfsFileFlagAssociated = $04;
|
If set this file is an associated file
|
cdfsFileFlagRecord = $08;
|
If set record information is recorded for this file
|
cdfsFileFlagProtection = $10;
|
If set permissions are recorded for this file
|
cdfsFileFlagReserved1 = $20;
|
Reserved
|
cdfsFileFlagReserved2 = $40;
|
Reserved
|
cdfsFileFlagMore = $80;
|
If set there are more directory records for this file
|
[Expand]
CDFS permissions constants cdfsPermission*
cdfsPermissionSystemRead = $0001;
|
If set system cannot Read
|
cdfsPermissionSystemWrite = $0002;
|
If set system cannot Write
|
cdfsPermissionSystemExecute = $0004;
|
If set system cannot Execute
|
cdfsPermissionReserved1 = $0008;
|
Reserved
|
cdfsPermissionOwnerRead = $0010;
|
If set owner cannot Read
|
cdfsPermissionOwnerWrite = $0020;
|
If set owner cannot Write
|
cdfsPermissionOwnerExecute = $0040;
|
If set owner cannot Execute
|
cdfsPermissionReserved2 = $0080;
|
Reserved
|
cdfsPermissionGroupRead = $0100;
|
If set group cannot Read
|
cdfsPermissionGroupWrite = $0200;
|
If set group cannot Write
|
cdfsPermissionGroupExecute = $0400;
|
If set group cannot Execute
|
cdfsPermissionReserved3 = $0800;
|
Reserved
|
cdfsPermissionOtherRead = $1000;
|
If set other cannot Read
|
cdfsPermissionOtherWrite = $2000;
|
If set other cannot Write
|
cdfsPermissionOtherExecute = $4000;
|
If set other cannot Execute
|
cdfsPermissionReserved4 = $8000;
|
Reserved
|
[Expand]
CDFS path table constants cdfsPathTable*
cdfsPathTableTypePrimary = $00;
|
|
cdfsPathTableTypeAlternate = $01;
|
|
cdfsPathTableTypePrimaryM = $02;
|
|
cdfsPathTableTypeAlternateM = $03;
|
|
[Expand]
CDFS volume descriptor constants cdfsVolumeDescriptor*
cdfsVolumeDescriptorTypeBoot = $00;
|
|
cdfsVolumeDescriptorTypePrimary = $01;
|
|
cdfsVolumeDescriptorTypeSupplementary = $02;
|
|
cdfsVolumeDescriptorTypePartition = $03;
|
|
cdfsVolumeDescriptorTypeTerminator = $FF;
|
|
[Expand]
CDFS header constants cdfsElTorito*
cdfsElToritoHeaderId = $01;
|
|
cdfsElToritoBootIndicator = $88;
|
|
cdfsElToritoNoBootIndicator = $00;
|
|
cdfsElToritoHeaderIndicator = $90;
|
91 if final header
|
cdfsElToritoHeaderTerminator = $91;
|
|
cdfsElToritoExtensionIndicator = $44;
|
|
[Expand]
CDFS signature constants cdfsElToritoSignature*
cdfsElToritoSignature = $AA55;
|
|
[Expand]
CDFS platform Id constants cdfsElToritoPlatform*
cdfsElToritoPlatformIdx86 = $00;
|
|
cdfsElToritoPlatformIdPPC = $01;
|
|
cdfsElToritoPlatformIdMac = $02;
|
|
[Expand]
CDFS media type constants cdfsElToritoMedia*
cdfsElToritoMediaTypeNone = $00;
|
No Emulation
|
cdfsElToritoMediaType12M = $01;
|
1.2 meg diskette
|
cdfsElToritoMediaType144M = $02;
|
1.44 meg diskette
|
cdfsElToritoMediaType288M = $03;
|
2.88 meg diskette
|
cdfsElToritoMediaTypeHDD = $04;
|
Hard Disk (drive 80)
|
cdfsElToritoMediaTypeMask = $0F;
|
Values 5-F Reserved, invalid at this time
|
|
cdfsElToritoMediaFlagReserved = $10;
|
Reserved, must be 0
|
cdfsElToritoMediaFlagContinuation = $20;
|
Continuation Entry Follows
|
cdfsElToritoMediaFlagAtapi = $40;
|
Image contains ATAPI driver
|
cdfsElToritoMediaFlagScsi = $80;
|
Image contains SCSI drivers
|
cdfsElToritoMediaFlagMask = $F0;
|
|
[Expand]
CDFS extension flag constants cdfsElToritoExtensionFlag*
cdfsElToritoExtensionFlagExtension = $20;
|
Extension Record Follows
|
Type definitions
To be documented
Public variables
None defined
Function declarations
Initialization functions
[Expand]
procedure CDFSInit;
Description: To be documented
[Expand]
procedure CDFSQuit;
Description: To be documented
CDFS helper functions
[Expand]
function CDFSDataToPointer(const AData; ASize:Integer; ASwap:Boolean):Pointer;
Description: Creates a pointer and copies data from a buffer
Note
|
Allows byte order swapping on copy
|
[Expand]
function CDFSPointerToData(APointer:Pointer; var AData; ASize:Integer; ASwap:Boolean):Boolean;
Description: Copies data to a buffer from supplied pointer
Note
|
Allows byte order swapping on copy
|
[Expand]
function CDFSIdentifierToString(const AIdentifier; ASize:Integer; AUnicode:Boolean):String;
Description: Converts the supplied indentifier to a string
Note
|
Accounts for unicode and byte ordering
|
[Expand]
function CDFSStringToIdentifier(const AString:String; var AIdentifier; ASize:Integer; AUnicode:Boolean):Boolean;
Description: Converts the supplied string to an identifier
Note
|
Accounts for unicode and byte ordering
|
[Expand]
function CDFSIdentifierToFileName(const AIdentifier; ASize:Integer; AUnicode:Boolean):String;
Description: Converts the supplied identifier to a filename
Note
|
Accounts for dot and dot dot special entries
|
[Expand]
function CDFSFileNameToIdentifier(const AFileName:String; var AIdentifier; ASize:Integer; AUnicode:Boolean):Boolean;
Description: Converts the supplied filename to an identifier
Note
|
Accounts for dot and dot dot special entries
|
[Expand]
function CDFSTimeToFileTime(const ATime:TCDFSTime):TFileTime;
Description: Converts a CDFS Time in Local to a File Time in UTC
[Expand]
function FileTimeToCDFSTime(const AFileTime:TFileTime; var ATime:TCDFSTime):Boolean;
Description: Converts a File Time in UTC to a CDFS Time in Local
[Expand]
function CDFSDateTimeToFileTime(const ADateTime:TCDFSDateTime):TFileTime;
Description: Converts a CDFS Date Time in Local to a File Time in UTC
[Expand]
function FileTimeToCDFSDateTime(const AFileTime:TFileTime; var ADateTime:TCDFSDateTime):Boolean;
Description: Converts a File Time in UTC to a CDFS Date Time in Local
Return to Unit Reference