diff --git a/templates/Alcohol.bt b/templates/Alcohol.bt deleted file mode 100644 index ae81bf069..000000000 --- a/templates/Alcohol.bt +++ /dev/null @@ -1,117 +0,0 @@ -//------------------------------------------------ -//--- 010 Editor v8.0.1 Binary Template -// -// File: Alcohol.bt -// Authors: Natalia Portillo -// Version: 0.1 -// Purpose: Alcohol 120% media descriptor. -// Category: Misc -// File Mask: *.mds -// ID Bytes: 4D 45 44 49 41 20 44 45 53 43 52 49 50 54 4F 52 // MEDIA DESCRIPTOR -// History: -// 0.1 2018-01-08 Natalia Portillo: Initial release -//------------------------------------------------ - -enum AlcoholMediumType -{ - CD = 0x00, - CDR = 0x01, - CDRW = 0x02, - DVD = 0x10, - DVDR = 0x12 -}; - -enum AlcoholTrackMode -{ - NoData = 0x00, - Data = 0x02, - Audio = 0xA9, - Mode1 = 0xAA, - Mode2 = 0xAB, - Mode2F1 = 0xEC, - Mode2F2 = 0xED, - Mode2F1Alt = 0xAC, - Mode2F2Alt = 0xAD, -}; - -enum AlcoholSubchannelMode -{ - None = 0x00, - Interleaved = 0x08 -}; - -typedef struct -{ - char signature[16]; - unsigned byte majorVersion; - unsigned byte minorVersion; - AlcoholMediumType type; - unsigned short sessions; - unsigned short unknown1[2]; - unsigned short bcaLength; - unsigned int unknown2[2]; - unsigned int bcaOffset; - unsigned int unknown3[6]; - unsigned int structuresOffset; - unsigned int unknown4[3]; - unsigned int sessionOffset; - unsigned int dpmOffset; -} AlcoholHeader; - -typedef struct -{ - uint pregap; - uint sectors; -} AlcoholTrackExtra; - -typedef struct -{ - AlcoholTrackMode mode; - AlcoholSubchannelMode subMode; - byte adrCtl; - byte tno; - byte point ; - byte min; - byte sec; - byte frame; - byte zero; - byte pmin; - byte psec; - byte pframe; - uint extraOffset; - ushort sectorSize; - byte unknown[18]; - uint startLba; - uint64 startOffset; - uint files; - uint footerOffset; - byte unknown2[24]; -} AlcoholTrack; - -typedef struct -{ - int sessionStart; - int sessionEnd; - ushort sessionSequence; - byte allBlocks; - byte nonTrackBlocks; - ushort firstTrack; - ushort lastTrack; - uint unknown; - uint trackOffset; - FSeek(this.trackOffset); - AlcoholTrack tracks[this.allBlocks]; -} AlcoholSession; - -typedef struct -{ - uint filenameOffset; - uint widechar; - uint unknown1; - uint unknown2; -} AlcoholFooter; - -LittleEndian(); -AlcoholHeader header; -FSeek(header.sessionOffset); -AlcoholSession sessions[header.sessions]; diff --git a/templates/BlindWrite4.bt b/templates/BlindWrite4.bt deleted file mode 100644 index 87d2b25b2..000000000 --- a/templates/BlindWrite4.bt +++ /dev/null @@ -1,127 +0,0 @@ -//------------------------------------------------ -//--- 010 Editor v8.0.1 Binary Template -// -// File: BlindWrite4.bt -// Authors: Natalia Portillo -// Version: 0.1 -// Purpose: BlindWrite 4 media descriptor. -// Category: Misc -// File Mask: *.bwt -// ID Bytes: 42 4C 49 4E 44 57 52 49 54 45 20 54 4F 43 20 46 49 4C 45 //BLINDWRITE TOC FILE -// History: -// 0.1 2018-01-08 Natalia Portillo: Initial release -//------------------------------------------------ - -enum Bw4TrackType -{ - Audio = 0, - Mode1 = 1, - Mode2 = 2 -}; - -typedef struct -{ - uint filenameLen; - if(filenameLen > 0) - char filename[filenameLen]; - uint offset; - ubyte subchannel; - byte unknown1[3]; - uint unknown2; - byte unknown3; - byte session; - byte unknown4; - byte CONTROL : 4; - byte ADR : 4; - byte unknown5; - Bw4TrackType trackMode; - byte unknown6; - byte point; - uint unknown7; - uint unknown8; - uint unknown9; - uint unknwon10; - ushort unknown11; - int lastSector; - byte unknown12; - int pregap; - int startSector; - uint unknown13[2]; - uint titleLen; - if(titleLen > 0) - char title[titleLen]; - uint performerLen; - if(performerLen > 0) - char performer[performerLen]; - uint unkString1Len; - if(unkString1Len > 0) - char unkString1[unkString1Len]; - uint unkString2Len; - if(unkString2Len > 0) - char unkString2[unkString2Len]; - uint unkString3Len; - if(unkString3Len > 0) - char unkString3[unkString3Len]; - uint unkString4Len; - if(unkString4Len > 0) - char unkString4[unkString4Len]; - uint discIdLen; - if(discIdLen > 0) - char discId[discIdLen]; - uint unkString5Len; - if(unkString5Len > 0) - char unkString5[unkString5Len]; - uint unkString6Len; - if(unkString6Len > 0) - char unkString6[unkString6Len]; - uint unkString7Len; - if(unkString7Len > 0) - char unkString7[unkString7Len]; - uint unkString8Len; - if(unkString8Len > 0) - char unkString8[unkString8Len]; - uint unkString9Len; - if(unkString9Len > 0) - char unkString9[unkString9Len]; - uint unkString10Len; - if(unkString10Len > 0) - char unkString10[unkString10Len]; - uint unkString11Len; - if(unkString11Len > 0) - char unkString11[unkString11Len]; - uint isrcLen; - if(isrcLen > 0) - char isrc[isrcLen]; -} BW4TrackDescriptor ; - -typedef struct -{ - char magic[19]; - uint unknown1; - uint64 timestamp; - uint volumeIdLen; - if(volumeIdLen > 0) - char volumeId[volumeIdLen]; - uint systemIdLen; - if(systemIdLen > 0) - char systemId[systemIdLen]; - uint commentsLen; - if(commentsLen > 0) - char comments[commentsLen]; - uint trackDescriptors; - uint datafileLen; - if(datafileLen > 0) - char datafile[datafileLen]; - uint subchannelfileLen; - if(subchannelfileLen > 0) - char subchannelFile[subchannelfileLen]; - uint unknown2; - ubyte unknown3Len; - if(unknown3Len > 0) - char unknown3[unknown3Len]; - if(trackDescriptors > 0) - BW4TrackDescriptor tracks[trackDescriptors]; -} BW4Header ; - -LittleEndian(); -BW4Header header; \ No newline at end of file diff --git a/templates/BlindWrite5.bt b/templates/BlindWrite5.bt deleted file mode 100644 index 533cedac4..000000000 --- a/templates/BlindWrite5.bt +++ /dev/null @@ -1,152 +0,0 @@ -//------------------------------------------------ -//--- 010 Editor v8.0.1 Binary Template -// -// File: BlindWrite5.bt -// Authors: Natalia Portillo -// Version: 0.1 -// Purpose: BlindWrite 5 media descriptor. -// Category: Misc -// File Mask: *.b5t -// ID Bytes: 42 57 54 35 20 53 54 52 45 41 4D 20 53 49 47 4E //BWT5 STREAM SIGN -// History: -// 0.1 2018-01-08 Natalia Portillo: Initial release -//------------------------------------------------ - -typedef struct -{ - uint type; - uint length; - uint unknown1[4]; - uint offset; - uint unknown2[3]; - int startLba; - int sectors; - uint filenameLen; - if(filenameLen > 0) - wchar_t filename[filenameLen/2]; - uint unknown3; -} BW5DataFile ; - -enum BW5TrackType -{ - NotData = 0, - Audio = 1, - Mode1 = 2, - Mode2 = 3, - Mode2F1 = 4, - Mode2F2 = 5, - Dvd = 6 -}; - -enum BW5SubchannelType -{ - None = 0, - Q16 = 2, - Linear = 4 -}; - -typedef struct -{ - BW5TrackType type; - uchar unknown1[3]; - uint unknown2; - BW5SubchannelType subchannel; - byte unknown3; - byte CONTROL; - byte ADR; - byte POINT; - byte TNO; - byte AMIN; - byte ASEC; - byte AFRAME; - byte PHOUR : 4; - byte AHOUR : 4; - byte PMIN; - byte PSEC; - byte PFRAME; - byte unknown5; - uint pregap; - uint unknown6[4]; - int startLba; - int sectors; - uint unknown7[2]; - uint session; - ushort unknown8; - if(type != Dvd && type != NotData) - uint unknown9[2]; -} BW5TrackDescriptor ; - -typedef struct -{ - ushort sequence; - byte entries; - byte unknown; - int start; - int end; - ushort firstTrack; - ushort lastTrack; - if(entries > 0) - BW5TrackDescriptor tracks[entries]; -} BW5Session ; - -typedef struct -{ - char magic[16]; - uint unknown1[8]; - ushort profile; - ushort sessions; - uint unknown2[3]; - byte validMcn; - char mcn[13]; - ushort unknown3; - uint unknown4[4]; - ushort pmaLen; - ushort atipLen; - ushort cdtextLen; - ushort cdinfoLen; - uint bcaLen; - uint unknown5[3]; - uint dvdstructuresLen; - uint dvdinfoLen; - char unknown6[32]; - char manufacturer[8]; - char product[16]; - char revision[4]; - char vendor[20]; - char volumeId[32]; - uint mode2ALen; - uint unknownBlockLen; - uint dataLen; - uint sessionsLen; - uint dpmLen; - if(mode2ALen > 0) - uchar mode2A[mode2ALen]; - if(unknownBlockLen > 0) - uchar unknownBlock[unknownBlockLen]; - if(pmaLen > 0) - uchar pma[pmaLen]; - if(atipLen > 0) - uchar atip[atipLen]; - if(cdtextLen > 0) - uchar cdtext[cdtextLen]; - if(bcaLen > 0) - uchar bca[bcaLen]; - if(dvdstructuresLen > 0) - uchar dvdstructures[dvdstructuresLen]; - if(dvdinfoLen > 0) - uchar dvdinformation[dvdinfoLen]; - else if(cdinfoLen > 0) - uchar cdinformation[dvdinfoLen]; - uint dataBlockCount; - uint dataPathLen; - wchar_t dataPath[dataPathLen/2]; - BW5DataFile dataBlocks[dataBlockCount]; - BW5Session session[sessions]; - if(dpmLen > 0) - uchar dpm[dpmLen]; - uint unknown7; - char footer[16]; -} BW5Header ; - -LittleEndian(); -BW5Header header; diff --git a/templates/SCP.bt b/templates/SCP.bt deleted file mode 100644 index 70f4078b8..000000000 --- a/templates/SCP.bt +++ /dev/null @@ -1,176 +0,0 @@ -//------------------------------------------------ -//--- 010 Editor v7.0 Binary Template -// -// File: SCP.bt -// Authors: Vasyl Tsvirkunov -// Natalia Portillo -// Version: 0.3 -// Purpose: SuperCard Pro dump file format -// based on official format document. -// Category: Misc -// File Mask: *.scp -// ID Bytes: 53 43 50 //SCP -// History: -// 0.3 2017-12-05 Natalia Portillo: Updated for v1.6 file format -// 0.2 2016-03-29 Vasyl Tsvirkunov: Updated for v7 compliancy -// 0.1 2014-11-08 Vasyl Tsvirkunov: Initial release -//------------------------------------------------ - -LittleEndian(); - -char signature[3]; -byte version ; - -string ReadVersion(byte& v) -{ - string s; - SPrintf(s, "%d.%d", v>>4, v&0x0f); - return s; -} - -enum DiskType -{ - disk_C64 = 0x00, - disk_Amiga = 0x04, - disk_AtariFMSS = 0x10, - disk_AtariFMDS = 0x11, - disk_AtariFMEx = 0x12, - disk_AtariSTSS = 0x14, - disk_AtariSTDS = 0x15, - disk_AppleII = 0x20, - disk_AppleIIPro = 0x21, - disk_Apple400K = 0x24, - disk_Apple800K = 0x25, - disk_Apple144 = 0x26, - disk_PC360K = 0x30, - disk_PC720K = 0x31, - disk_PC12M = 0x32, - disk_PC144M = 0x33, - disk_TRS80SSSD = 0x40, - disk_TRS80SSDD = 0x41, - disk_TRS80DSSD = 0x42, - disk_TRS80DSDD = 0x43, - disk_TI994A = 0x50, - disk_D20 = 0x60 -}; - -DiskType disk_type; - -byte revolutions; -unsigned byte start_track; -unsigned byte end_track; - -unsigned byte flags ; - -string ReadFlags(unsigned byte f) -{ - string s; - SPrintf(s, "%s, %s, %s, %s, %s, %s", - f & 0x01 ? "flux data starts at index" : "no index reference", - f & 0x02 ? "96TPI" : "48TPI", - f & 0x04 ? "360 RPM" : "300 RPM", - f & 0x08 ? "normalized flux" : "original flux data", - f & 0x10 ? "read/write" : "read only", - f & 0x20 ? "has footer" : "has no footer"); - return s; -} - -byte cell_width; -byte number_of_heads; -byte reserved; -long checksum; - -long track_offset[end_track-start_track+1]; - -typedef struct -{ - long duration; - long cell_count; - long offset; -} RevInfo; - -typedef struct -{ - char signature[3]; - unsigned byte track_num; - RevInfo rev_info[revolutions]; -} TrackHeader; - -typedef struct -{ - BigEndian(); // sic! - if(cell_width == 0 || cell_width == 16) - short flux[track_header.rev_info[rev].cell_count]; - else - byte flux[track_header.rev_info[rev].cell_count]; - LittleEndian(); -} FluxData; - -local int track, rev; -for(track=0; track; - uint model ; - uint serial ; - uint creator ; - uint application ; - uint comments ; - time_t creationTime; - uint ctime_2038; - time_t modificationTime; - uint mtime_2038; - byte applicationVersion ; - byte hardwareVersion ; - byte firmwareVersion ; - byte imageVersion ; - char footerMagic[4]; -} Footer; - -local uint footerSignature = 0x53435046; - -if(flags & 0x20) -{ - FSeek(FileSize() - 4); - local int foo; - for(foo = 0;FTell() > timestampPosition; FSkip(-4)) - { - local uint sig = ReadUInt(); - if(sig == footerSignature) - { - FSkip(-44); - footerPosition = FTell(); - Footer footer; - break; - } - } -} -else -{ - string timestamp; -} \ No newline at end of file diff --git a/templates/atip.bt b/templates/atip.bt deleted file mode 100644 index 471534dac..000000000 --- a/templates/atip.bt +++ /dev/null @@ -1,55 +0,0 @@ -//------------------------------------------------ -//--- 010 Editor v8.0.1 Binary Template -// -// File: atip.bt -// Authors: Natalia Portillo -// Version: 1.0 -// Purpose: Decoding of CD-R and CD-RW ATIP. -// Category: CD-R, CD-RW -// File Mask: -// ID Bytes: -// History: -//------------------------------------------------ - -typedef struct -{ - ushort dataLength; - byte reserved1; - byte reserved2; -} scsiLengthHeader; - -typedef struct -{ - byte itwp : 4; - byte ddcd : 1; - byte referenceSpeed : 3; - byte zero : 1; - byte unrestrictedMedia : 1; - byte reserved : 6; - byte one : 1; - byte rewritable : 1; - byte subtype : 3; - byte validA1 : 1; - byte validA2 : 1; - byte validA3 : 1; - byte leadInStartMin; - byte leadInStartSec; - byte leadInStartFrame; - byte reserved2; - byte leadOutStartMin; - byte leadOutStartSec; - byte leadOutStartFrame; - byte reserved3; - byte A1[3]; - byte reserved4; - byte A2[3]; - byte reserved5; - byte A3[3]; - byte reserved6; - byte S4[3]; - byte reserved7; -} ATIP; - -BigEndian(); -scsiLengthHeader scsiHeader; -ATIP atip; \ No newline at end of file diff --git a/templates/dicformat.bt b/templates/dicformat.bt deleted file mode 100644 index 9b91e4866..000000000 --- a/templates/dicformat.bt +++ /dev/null @@ -1,996 +0,0 @@ -//------------------------------------------------ -//--- 010 Editor v8.0.1 Binary Template -// -// File: dicformat.bt -// Authors: Natalia Portillo -// Version: 1.0 -// Purpose: DiscImageChef format -// Category: Misc -// File Mask: *.dicf -// ID Bytes: 44 49 43 4D 46 52 4D 54 // DICMFRMT -// History: -// 1.0 2018-01-26 Natalia Portillo: Initial release -//------------------------------------------------ - -#define DIC_MAGIC 0x544D52464D434944 - -enum MediaType -{ - Unknown = 0, - UnknownMO = 1, - GENERIC_HDD = 2, - Microdrive = 3, - Zone_HDD = 4, - FlashDrive = 5, - UnknownTape = 6, - - CD = 10, - CDDA = 11, - CDG = 12, - CDEG = 13, - CDI = 14, - CDROM = 15, - CDROMXA = 16, - CDPLUS = 17, - CDMO = 18, - CDR = 19, - CDRW = 20, - CDMRW = 21, - VCD = 22, - SVCD = 23, - PCD = 24, - SACD = 25, - DDCD = 26, - DDCDR = 27, - DDCDRW = 28, - DTSCD = 29, - CDMIDI = 30, - CDV = 31, - PD650 = 32, - PD650_WORM = 33, - CDIREADY = 34, - FMTOWNS = 35, - - DVDROM = 40, - DVDR = 41, - DVDRW = 42, - DVDPR = 43, - DVDPRW = 44, - DVDPRWDL = 45, - DVDRDL = 46, - DVDPRDL = 47, - DVDRAM = 48, - DVDRWDL = 49, - DVDDownload = 50, - - HDDVDROM = 51, - HDDVDRAM = 52, - HDDVDR = 53, - HDDVDRW = 54, - HDDVDRDL = 55, - HDDVDRWDL = 56, - - BDROM = 60, - BDR = 61, - BDRE = 62, - BDRXL = 63, - BDREXL = 64, - - EVD = 70, - FVD = 71, - HVD = 72, - CBHD = 73, - HDVMD = 74, - VCDHD = 75, - SVOD = 76, - FDDVD = 77, - - LD = 80, - LDROM = 81, - LDROM2 = 82, - LVROM = 83, - MegaLD = 84, - - HiMD = 90, - MD = 91, - MDData = 92, - MDData2 = 93, - - UDO = 100, - UDO2 = 101, - UDO2_WORM = 102, - - PlayStationMemoryCard = 110, - PlayStationMemoryCard2 = 111, - PS1CD = 112, - PS2CD = 113, - PS2DVD = 114, - PS3DVD = 115, - PS3BD = 116, - PS4BD = 117, - UMD = 118, - PlayStationVitaGameCard = 119, - - XGD = 130, - XGD2 = 131, - XGD3 = 132, - XGD4 = 133, - - MEGACD = 150, - SATURNCD = 151, - GDROM = 152, - GDR = 153, - SegaCard = 154, - MilCD = 155, - - HuCard = 170, - SuperCDROM2 = 171, - JaguarCD = 172, - ThreeDO = 173, - PCFX = 174, - NeoGeoCD = 175, - CDTV = 176, - CD32 = 177, - Nuon = 178, - Playdia = 179, - - Apple32SS = 180, - Apple32DS = 181, - Apple33SS = 182, - Apple33DS = 183, - AppleSonySS = 184, - AppleSonyDS = 185, - AppleFileWare = 186, - - DOS_525_SS_DD_8 = 190, - DOS_525_SS_DD_9 = 191, - DOS_525_DS_DD_8 = 192, - DOS_525_DS_DD_9 = 193, - DOS_525_HD = 194, - DOS_35_SS_DD_8 = 195, - DOS_35_SS_DD_9 = 196, - DOS_35_DS_DD_8 = 197, - DOS_35_DS_DD_9 = 198, - DOS_35_HD = 199, - DOS_35_ED = 200, - DMF = 201, - DMF_82 = 202, - XDF_525 = 203, - XDF_35 = 204, - - IBM23FD = 210, - IBM33FD_128 = 211, - IBM33FD_256 = 212, - IBM33FD_512 = 213, - IBM43FD_128 = 214, - IBM43FD_256 = 215, - IBM53FD_256 = 216, - IBM53FD_512 = 217, - IBM53FD_1024 = 218, - - RX01 = 220, - RX02 = 221, - RX03 = 222, - RX50 = 223, - - ACORN_525_SS_SD_40 = 230, - ACORN_525_SS_SD_80 = 231, - ACORN_525_SS_DD_40 = 232, - ACORN_525_SS_DD_80 = 233, - ACORN_525_DS_DD = 234, - ACORN_35_DS_DD = 235, - ACORN_35_DS_HD = 236, - - ATARI_525_SD = 240, - ATARI_525_ED = 241, - ATARI_525_DD = 242, - ATARI_35_SS_DD = 243, - ATARI_35_DS_DD = 244, - ATARI_35_SS_DD_11 = 245, - ATARI_35_DS_DD_11 = 246, - - CBM_35_DD = 250, - CBM_AMIGA_35_DD = 251, - CBM_AMIGA_35_HD = 252, - CBM_1540 = 253, - CBM_1540_Ext = 254, - CBM_1571 = 255, - - NEC_8_SD = 260, - NEC_8_DD = 261, - NEC_525_SS = 262, - NEC_525_DS = 263, - NEC_525_HD = 264, - NEC_35_HD_8 = 265, - NEC_35_HD_15 = 266, - NEC_35_TD = 267, - SHARP_525 = NEC_525_HD, - SHARP_525_9 = 268, - SHARP_35 = NEC_35_HD_8, - SHARP_35_9 = 269, - - ECMA_99_8 = 270, - ECMA_99_15 = 271, - ECMA_99_26 = 272, - ECMA_100 = DOS_35_DS_DD_9, - ECMA_125 = DOS_35_HD, - ECMA_147 = DOS_35_ED, - ECMA_54 = 273, - ECMA_59 = 274, - ECMA_66 = 275, - ECMA_69_8 = 276, - ECMA_69_15 = 277, - ECMA_69_26 = 278, - ECMA_70 = 279, - ECMA_78 = 280, - ECMA_78_2 = 281, - - FDFORMAT_525_DD = 290, - FDFORMAT_525_HD = 291, - FDFORMAT_35_DD = 292, - FDFORMAT_35_HD = 293, - - Apricot_35 = 309, - - ADR2120 = 310, - ADR260 = 311, - ADR30 = 312, - ADR50 = 313, - - AIT1 = 320, - AIT1Turbo = 321, - AIT2 = 322, - AIT2Turbo = 323, - AIT3 = 324, - AIT3Ex = 325, - AIT3Turbo = 326, - AIT4 = 327, - AIT5 = 328, - AITETurbo = 329, - SAIT1 = 330, - SAIT2 = 331, - - Bernoulli = 340, - Bernoulli2 = 341, - Ditto = 342, - DittoMax = 343, - Jaz = 344, - Jaz2 = 345, - PocketZip = 346, - REV120 = 347, - REV35 = 348, - REV70 = 349, - ZIP100 = 350, - ZIP250 = 351, - ZIP750 = 352, - - CompactCassette = 360, - Data8 = 361, - MiniDV = 362, - Dcas25 = 363, - Dcas85 = 364, - Dcas103 = 365, - - CFast = 370, - CompactFlash = 371, - CompactFlashType2 = 372, - - DigitalAudioTape = 380, - DAT160 = 381, - DAT320 = 382, - DAT72 = 383, - DDS1 = 384, - DDS2 = 385, - DDS3 = 386, - DDS4 = 387, - - CompactTapeI = 390, - CompactTapeII = 391, - DECtapeII = 392, - DLTtapeIII = 393, - DLTtapeIIIxt = 394, - DLTtapeIV = 395, - DLTtapeS4 = 396, - SDLT1 = 397, - SDLT2 = 398, - VStapeI = 399, - - Exatape15m = 400, - Exatape22m = 401, - Exatape22mAME = 402, - Exatape28m = 403, - Exatape40m = 404, - Exatape45m = 405, - Exatape54m = 406, - Exatape75m = 407, - Exatape76m = 408, - Exatape80m = 409, - Exatape106m = 410, - Exatape160mXL = 411, - Exatape112m = 412, - Exatape125m = 413, - Exatape150m = 414, - Exatape170m = 415, - Exatape225m = 416, - - ExpressCard34 = 420, - ExpressCard54 = 421, - PCCardTypeI = 422, - PCCardTypeII = 423, - PCCardTypeIII = 424, - PCCardTypeIV = 425, - - EZ135 = 430, - EZ230 = 431, - Quest = 432, - SparQ = 433, - SQ100 = 434, - SQ200 = 435, - SQ300 = 436, - SQ310 = 437, - SQ327 = 438, - SQ400 = 439, - SQ800 = 440, - SQ1500 = 441, - SQ2000 = 442, - SyJet = 443, - - FamicomGamePak = 450, - GameBoyAdvanceGamePak = 451, - GameBoyGamePak = 452, - GOD = 453, - N64DD = 454, - N64GamePak = 455, - NESGamePak = 456, - Nintendo3DSGameCard = 457, - NintendoDiskCard = 458, - NintendoDSGameCard = 459, - NintendoDSiGameCard = 460, - SNESGamePak = 461, - SNESGamePakUS = 462, - WOD = 463, - WUOD = 464, - SwitchGameCard = 465, - - IBM3470 = 470, - IBM3480 = 471, - IBM3490 = 472, - IBM3490E = 473, - IBM3592 = 474, - - LTO = 480, - LTO2 = 481, - LTO3 = 482, - LTO3WORM = 483, - LTO4 = 484, - LTO4WORM = 485, - LTO5 = 486, - LTO5WORM = 487, - LTO6 = 488, - LTO6WORM = 489, - LTO7 = 490, - LTO7WORM = 491, - - MemoryStick = 510, - MemoryStickDuo = 511, - MemoryStickMicro = 512, - MemoryStickPro = 513, - MemoryStickProDuo = 514, - - microSD = 520, - miniSD = 521, - SecureDigital = 522, - - MMC = 530, - MMCmicro = 531, - RSMMC = 532, - MMCplus = 533, - MMCmobile = 534, - - MLR1 = 540, - MLR1SL = 541, - MLR3 = 542, - SLR1 = 543, - SLR2 = 544, - SLR3 = 545, - SLR32 = 546, - SLR32SL = 547, - SLR4 = 548, - SLR5 = 549, - SLR5SL = 550, - SLR6 = 551, - SLRtape7 = 552, - SLRtape7SL = 553, - SLRtape24 = 554, - SLRtape24SL = 555, - SLRtape40 = 556, - SLRtape50 = 557, - SLRtape60 = 558, - SLRtape75 = 559, - SLRtape100 = 560, - SLRtape140 = 561, - - QIC11 = 570, - QIC120 = 571, - QIC1350 = 572, - QIC150 = 573, - QIC24 = 574, - QIC3010 = 575, - QIC3020 = 576, - QIC3080 = 577, - QIC3095 = 578, - QIC320 = 579, - QIC40 = 580, - QIC525 = 581, - QIC80 = 582, - - STK4480 = 590, - STK4490 = 591, - STK9490 = 592, - T9840A = 593, - T9840B = 594, - T9840C = 595, - T9840D = 596, - T9940A = 597, - T9940B = 598, - T10000A = 599, - T10000B = 600, - T10000C = 601, - T10000D = 602, - - Travan = 610, - Travan1Ex = 611, - Travan3 = 612, - Travan3Ex = 613, - Travan4 = 614, - Travan5 = 615, - Travan7 = 616, - - VXA1 = 620, - VXA2 = 621, - VXA3 = 622, - - ECMA_153 = 630, - ECMA_153_512 = 631, - ECMA_154 = 632, - ECMA_183_512 = 633, - ECMA_183 = 634, - ECMA_184_512 = 635, - ECMA_184 = 636, - ECMA_189 = 637, - ECMA_190 = 638, - ECMA_195 = 639, - ECMA_195_512 = 640, - ECMA_201 = 641, - ECMA_201_ROM = 642, - ECMA_223 = 643, - ECMA_223_512 = 644, - ECMA_238 = 645, - ECMA_239 = 646, - ECMA_260 = 647, - ECMA_260_Double = 648, - ECMA_280 = 649, - ECMA_317 = 650, - ECMA_322 = 651, - ECMA_322_2k = 652, - GigaMo = 653, - GigaMo2 = 654, - - CompactFloppy = 660, - DemiDiskette = 661, - Floptical = 662, - HiFD = 663, - QuickDisk = 664, - UHD144 = 665, - VideoFloppy = 666, - Wafer = 667, - ZXMicrodrive = 668, - - BeeCard = 670, - Borsu = 671, - DataStore = 672, - DIR = 673, - DST = 674, - DTF = 675, - DTF2 = 676, - Flextra3020 = 677, - Flextra3225 = 678, - HiTC1 = 679, - HiTC2 = 680, - LT1 = 681, - MiniCard = 872, - Orb = 683, - Orb5 = 684, - SmartMedia = 685, - xD = 686, - XQD = 687, - DataPlay = 688, - - AppleProfile = 690, - AppleWidget = 691, - AppleHD20 = 692, - PriamDataTower = 693, - Pippin = 694, - - RA60 = 700, - RA80 = 701, - RA81 = 702, - RC25 = 703, - RD31 = 704, - RD32 = 705, - RD51 = 706, - RD52 = 707, - RD53 = 708, - RD54 = 709, - RK06 = 710, - RK06_18 = 711, - RK07 = 712, - RK07_18 = 713, - RM02 = 714, - RM03 = 715, - RM05 = 716, - RP02 = 717, - RP02_18 = 718, - RP03 = 719, - RP03_18 = 720, - RP04 = 721, - RP04_18 = 722, - RP05 = 723, - RP05_18 = 724, - RP06 = 725, - RP06_18 = 726, - - LS120 = 730, - LS240 = 731, - FD32MB = 732, - RDX = 733, - RDX320 = 734, - - VideoNow = 740, - VideoNowColor = 741, - VideoNowXp = 742 -}; - -enum CompressionType -{ - None = 0, - Lzma = 1, - Flac = 2 -}; - -enum DataType -{ - NoData = 0, - UserData = 1, - CompactDiscPartialToc = 2, - CompactDiscSessionInfo = 3, - CompactDiscToc = 4, - CompactDiscPma = 5, - CompactDiscAtip = 6, - CompactDiscLeadInCdText = 7, - DvdPfi = 8, - DvdLeadInCmi = 9, - DvdDiscKey = 10, - DvdBca = 11, - DvdDmi = 12, - DvdMediaIdentifier = 13, - DvdMediaKeyBlock = 14, - DvdRamDds = 15, - DvdRamMediumStatus = 16, - DvdRamSpareArea = 17, - DvdRRmd = 18, - DvdRPrerecordedInfo = 19, - DvdRMediaIdentifier = 20, - DvdRPfi = 21, - DvdAdip = 22, - HdDvdCpi = 23, - HdDvdMediumStatus = 24, - DvdDlLayerCapacity = 25, - DvdDlMiddleZoneAddress = 26, - DvdDlJumpIntervalSize = 27, - DvdDlManualLayerJumpLba = 28, - BlurayDi = 29, - BlurayBca = 30, - BlurayDds = 31, - BlurayCartridgeStatus = 32, - BluraySpareArea = 33, - AacsVolumeIdentifier = 34, - AacsSerialNumber = 35, - AacsMediaIdentifier = 36, - AacsMediaKeyBlock = 37, - AacsDataKeys = 38, - AacsLbaExtents = 39, - CprmMediaKeyBlock = 40, - HybridRecognizedLayers = 41, - ScsiMmcWriteProtection = 42, - ScsiMmcDiscInformation = 43, - ScsiMmcTrackResourcesInformation = 44, - ScsiMmcPowResourcesInformation = 45, - ScsiInquiry = 46, - ScsiModePage2A = 47, - AtaIdentify = 48, - AtapiIdentify = 49, - PcmciaCis = 50, - SecureDigitalCid = 51, - SecureDigitalCsd = 52, - SecureDigitalScr = 53, - SecureDigitalOcr = 54, - MultiMediaCardCid = 55, - MultiMediaCardCsd = 56, - MultiMediaCardOcr = 57, - MultiMediaCardExtendedCsd = 58, - XboxSecuritySector = 59, - FloppyLeadOut = 60, - DvdDiscControlBlock = 61, - CompactDiscFirstTrackPregap = 62, - CompactDiscLeadOut = 63, - ScsiModeSense6 = 64, - ScsiModeSense10 = 65, - UsbDescriptors = 66, - XboxDmi = 67, - XboxPfi = 68, - CdSectorPrefix = 69, - CdSectorSuffix = 70, - CdSectorSubchannel = 71, - AppleProfileTag = 72, - AppleSonyTag = 73, - PriamDataTowerTag = 74, - CompactDiscMediaCatalogueNumber = 75, - CdSectorPrefixCorrected = 76, - CdSectorSuffixCorrected = 77, - CompactDiscMode2Subheader = 78, - CompactDiscLeadIn = 79 -}; - -enum BlockType -{ - DataBlock = 0x4B4C4244, - DeDuplicationTable = 0X2A544444, - Index = 0X58444E49, - GeometryBlock = 0x4D4F4547, - MetadataBlock = 0x4154454D, - TracksBlock = 0x534B5254, - CicmBlock = 0x4D434943, - ChecksumBlock = 0x4D534B43, - DataPositionMeasurementBlock = 0x2A4D5044, - SnapshotBlock = 0x50414E53, - ParentBlock = 0x50524E54, - DumpHardwareBlock = 0x2A504D44, - TapeFileBlock = 0x454C4654 -}; - -enum TrackType -{ - Audio = 0, - Data = 1, - CdMode1 = 2, - CdMode2Formless = 3, - CdMode2Form1 = 4, - CdMode2Form2 = 5 -}; - -enum ChecksumAlgorithm -{ - Invalid = 0, - Md5 = 1, - Sha1 = 2, - Sha256 = 3, - SpamSum = 4 -}; - -typedef struct -{ - char identifier[8]; - wchar_t application[32]; - byte imageMajorVersion; - byte imageMinorVersion; - byte applicationMajorVersion; - byte applicationMinorVersion; - MediaType mediaType; - uint64 indexOffset; - FILETIME creationTime; - FILETIME lastWrittenTime; -} DicHeader; - -typedef struct -{ - BlockType identifier; - DataType type; - CompressionType compression; - byte shift; - uint64 entries; - uint64 cmpLength; - uint64 length; - uint64 cmpCrc64 ; - uint64 crc64 ; -} DdtHeader; - -typedef struct -{ - BlockType blockType; - DataType dataType; - uint64 offset; -} IndexEntry; - -typedef struct -{ - BlockType identifier; - ushort entries; - uint64 crc64 ; - IndexEntry items[entries]; -} Index; - -typedef struct -{ - BlockType identifier; - DataType type; - CompressionType compression; - uint sectorSize; - uint cmpLength; - uint length; - uint64 cmpCrc64 ; - uint64 crc64 ; -} BlockHeader; - -typedef struct -{ - BlockType identifier; - uint cylinders; - uint heads; - uint sectorsPerTrack; -} GeometryBlock; - -typedef struct -{ - BlockType identifier; - uint blockSize; - int mediaSequence; - int lastMediaSequence; - uint creatorOffset; - uint creatorLength; - uint commentsOffset; - uint commentsLength; - uint mediaTitleOffset; - uint mediaTitleLength; - uint mediaManufacturerOffset; - uint mediaManufacturerLength; - uint mediaModelOffset; - uint mediaModelLength; - uint mediaSerialNumberOffset; - uint mediaSerialNumberLength; - uint mediaBarcodeOffset; - uint mediaBarcodeLength; - uint mediaPartNumberOffset; - uint mediaPartNumberLength; - uint driveManufacturerOffset; - uint driveManufacturerLength; - uint driveModelOffset; - uint driveModelLength; - uint driveSerialNumberOffset; - uint driveSerialNumberLength; - uint driveFirmwareRevisionOffset; - uint driveFirmwareRevisionLength; -} MetadataBlock; - -typedef struct -{ - byte sequence; - TrackType type; - int64 start; - int64 end; - int64 pregap; - byte session; - char isrc[13]; - byte flags; -} TrackEntry; - -typedef struct -{ - BlockType identifier; - ushort entries; - uint64 crc64; - TrackEntry tracks[entries]; -} TracksHeader; - -typedef struct -{ - BlockType identifier; - uint length; - char xml[length]; -} CicmMetadataBlock; - -typedef struct -{ - uint64 start; - uint64 end; -} DumpHardwareExtent; - -typedef struct -{ - uint manufacturerLength; - uint modelLength; - uint revisionLength; - uint firmwareLength; - uint serialLength; - uint softwareNameLength; - uint softwareVersionLength; - uint softwareOperatingSystemLength; - uint extentCount; - char manufacturer[manufacturerLength]; - char model[modelLength]; - char revision[revisionLength]; - char firmware[firmwareLength]; - char serial[serialLength]; - char softwareName[softwareNameLength]; - char softwareVersion[softwareVersionLength]; - char softwareOperatingSystem[softwareOperatingSystemLength]; - DumpHardwareExtent extents[extentCount]; -} DumpHardwareEntry; - -typedef struct -{ - BlockType identifier; - ushort entries; - uint length; - uint64 crc64 ; - DumpHardwareEntry dumpHardware[entries]; -} DumpHardwareHeader ; - -typedef struct -{ - ChecksumAlgorithm type; - uint length; - if(type == 4) - char checksum[length] ; - else - byte checksum[length]; -} ChecksumEntry ; - -typedef struct -{ - BlockType identifier; - uint length; - byte entries; - ChecksumEntry checksums[entries]; -} ChecksumHeader; - -typedef struct -{ - uint file; - char partition; - uint64 first_block; - uint64 last_block; -} TapeFileEntry; - -typedef struct -{ - BlockType identifier; - uint entries; - uint64 length; - uint64 crc64; - TapeFileEntry files[entries]; -} TapeFileHeader; - -typedef struct -{ - byte number; - uint64 first_block; - uint64 last_block; -} TapePartitionEntry; - -typedef struct -{ - BlockType identifier; - byte entries; - uint64 length; - uint64 crc64; - TapePartitionEntry partitions[entries]; -} TapePartitionHeader; - -LittleEndian(); - -local int i; - -Assert(ReadUInt64() == DIC_MAGIC, "Incorrect signature!"); - -DicHeader header; - -FSeek(header.indexOffset); -Index index; -for(i = 0; i < index.entries; i++) -{ - FSeek(index.items[i].offset); - switch(index.items[i].blockType) - { - case 0x4B4C4244: - BlockHeader dataBlock; - break; - case 0x2A544444: - DdtHeader deduplicationTable; - break; - case 0x4D4F4547: - GeometryBlock geometry; - break; - case 0x4154454D: - MetadataBlock metadata; - if(metadata.creatorOffset > 0) - { - FSeek(index.items[i].offset + metadata.creatorOffset); - wchar_t Creator[metadata.creatorLength / 2]; - } - if(metadata.commentsOffset > 0) - { - FSeek(index.items[i].offset + metadata.commentsOffset); - wchar_t Comments[metadata.commentsLength / 2]; - } - if(metadata.mediaTitleOffset > 0) - { - FSeek(index.items[i].offset + metadata.mediaTitleOffset); - wchar_t MediaTitle[metadata.mediaTitleLength / 2]; - } - if(metadata.mediaManufacturerOffset > 0) - { - FSeek(index.items[i].offset + metadata.mediaManufacturerOffset); - wchar_t MediaManufacturer[metadata.mediaManufacturerLength / 2]; - } - if(metadata.mediaModelOffset > 0) - { - FSeek(index.items[i].offset + metadata.mediaModelOffset); - wchar_t MediaModel[metadata.mediaModelLength / 2]; - } - if(metadata.mediaSerialNumberOffset > 0) - { - FSeek(index.items[i].offset + metadata.mediaSerialNumberOffset); - wchar_t MediaSerialNumber[metadata.mediaSerialNumberLength / 2]; - } - if(metadata.mediaBarcodeOffset > 0) - { - FSeek(index.items[i].offset + metadata.mediaBarcodeOffset); - wchar_t MediaBarcode[metadata.mediaBarcodeLength / 2]; - } - if(metadata.mediaPartNumberOffset > 0) - { - FSeek(index.items[i].offset + metadata.mediaPartNumberOffset); - wchar_t MediaPartNumber[metadata.mediaPartNumberLength / 2]; - } - if(metadata.driveManufacturerOffset > 0) - { - FSeek(index.items[i].offset + metadata.driveManufacturerOffset); - wchar_t DriveManufacturer[metadata.driveManufacturerLength / 2]; - } - if(metadata.driveModelOffset > 0) - { - FSeek(index.items[i].offset + metadata.driveModelOffset); - wchar_t DriveModel[metadata.driveModelLength / 2]; - } - if(metadata.driveSerialNumberOffset > 0) - { - FSeek(index.items[i].offset + metadata.driveSerialNumberOffset); - wchar_t DriveSerialNumber[metadata.driveSerialNumberLength / 2]; - } - if(metadata.driveFirmwareRevisionOffset > 0) - { - FSeek(index.items[i].offset + metadata.driveFirmwareRevisionOffset); - wchar_t DriveFirmwareRevision[metadata.driveFirmwareRevisionLength / 2]; - } - break; - case 0x534B5254: - TracksHeader tracks; - break; - case 0x4D434943: - CicmMetadataBlock cicmMetadata; - break; - case 0x2A504D44: - DumpHardwareHeader dumpHardware; - break; - case 0x4D534B43: - ChecksumHeader checksum; - break; - case 0x54425054: - TapePartitionHeader partitions; - break; - case 0x454C4654: - TapeFileHeader files; - break; - } -} \ No newline at end of file diff --git a/templates/scsi_read_capacity.bt b/templates/scsi_read_capacity.bt deleted file mode 100644 index 08c75afd1..000000000 --- a/templates/scsi_read_capacity.bt +++ /dev/null @@ -1,21 +0,0 @@ -//------------------------------------------------ -//--- 010 Editor v8.0.1 Binary Template -// -// File: scsi_read_capacity.bt -// Authors: Natalia Portillo -// Version: 0.1 -// Purpose: Decoding of SCSI READ CAPACITY return -// Category: SCSI -// File Mask: -// ID Bytes: -// History: -//------------------------------------------------ - -typedef struct -{ - uint blocks; - uint blocksize; -} ScsiReadCapacity; - -BigEndian(); -ScsiReadCapacity capacity; \ No newline at end of file