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