diff --git a/fstester/setter/consts.h b/fstester/setter/consts.h index 4505886c..45102ca8 100644 --- a/fstester/setter/consts.h +++ b/fstester/setter/consts.h @@ -32,27 +32,26 @@ Copyright (C) 2011-2018 Natalia Portillo #ifndef DIC_FSTESTER_SETTER_CONSTS_H #define DIC_FSTESTER_SETTER_CONSTS_H -extern const char *filenames[] = { -"FILNAM", "FILNAM.EXT", "FILENAME", "FILENAME.EXT", "UPPCAS", "lowcas", "UPPER.low", -"lower.UP", "CamUpr", "Dromed", "droMed", "FIL NA", " FILNA", "FILNA ", "FILE. XT", -"FILE .EXT", "FILE . XT", "Fourteen_Chars", "FifteenCharacts", "Sixteen_Characts", -"Twenty_One_Characters", "This name has thirty charactrs", -"This name has thirty one chactrs", "This name has thirty two chacters", -"This filename has fourty four characterrs", -"This filename has sixty three characters like a lazy dromedaire", -"This filename has sixty four characters like a redy lazy fox dog", -"This filename has one hundred twenty eight characters and once upon a time in a place which name you must buy the book yetnotget", -"This filename has two hundred thirty six characters and once upon a time in a place which name i have no desire to call to mind there lived not long since one of those gentlemen that keep a lance and well you know it so go and read its", -"This filename has two hundred fourty eight characters and once upon a time in a place which name i have no desire to call to mind there lived not long since one of those gentlemen that keep a lance and well you know it so go and read the book yout", -"This filename has two hundred fifty three characters and once upon a time in a place which name i have no desire to call to mind there lived not long since one of those gentlemen that keep a lance and well you know it so go and read the book as you get", -"This filename has two hundred fifty four characters and once upon a time in a place which name i have no desire to call to mind there lived not long since one of those gentlemen that keep a lance and well you know it so go and read the book as you mustd", -"This filename has two hundred fifty five characters and once upon a time in a place which name i have no desire to call to mind there lived not long since one of those gentlemen that keep a lance and well you know it so go and read the book as you mustdo", -"This filename has two hundred fifty six characters and once upon a time in a place which name i have no desire to call to mind there lived not long since one of those gentlemen that keep a lance and well you know it so go and read the book as you must get", -"?NM?E?", "N!A!M!", "NA/ME", "NA\\ME", "'QUOT'", "\"QUOT\"", "NA>ME>", "NME>", "N -#include -#include -#include #include #include "defs.h" -#include "dosos2.h" -#include "consts.h" void GetOsInfo() { @@ -59,17 +54,17 @@ void FileAttributes(const char *path) void FilePermissions(const char *path) { - /* Do nothing, not supported by target operating system */ + /* Do nothing, not supported by target operating system */ } void ExtendedAttributes(const char *path) { - /* Do nothing, not supported by target operating system */ + /* Do nothing, not supported by target operating system */ } void ResourceFork(const char *path) { - /* Do nothing, not supported by target operating system */ + /* Do nothing, not supported by target operating system */ } void Filenames(const char *path) @@ -96,7 +91,12 @@ void Fragmentation(const char *path, size_t clusterSize) void Sparse(const char *path) { - /* Do nothing, not supported by target operating system */ + /* Do nothing, not supported by target operating system */ +} + +void Links(const char *path) +{ + /* Do nothing, not supported by target operating system */ } void MillionFiles(const char *path) diff --git a/fstester/setter/dosos2.h b/fstester/setter/dosos2.h index beeffe85..e00aa40f 100644 --- a/fstester/setter/dosos2.h +++ b/fstester/setter/dosos2.h @@ -9,7 +9,7 @@ Component : fstester.setter --[ Description ] ----------------------------------------------------------- -Contains definitions commons to DOS and OS/2 +Contains definitions common to DOS and OS/2 --[ License ] --------------------------------------------------------------- This program is free software: you can redistribute it and/or modify @@ -34,11 +34,11 @@ Copyright (C) 2011-2018 Natalia Portillo #ifndef DIC_FSTESTER_SETTER_DOSOS2_H #define DIC_FSTESTER_SETTER_DOSOS2_H -const char* archivedAttributeText = "This file has the archived attribute set.\n"; -const char* systemAttributeText = "This file has the system attribute set.\n"; -const char* hiddenAttributeText = "This file has the hidden attribute set.\n"; -const char* readonlyAttributeText = "This file has the read-only attribute set.\n"; -const char* noAttributeText = "This file has no attribute set.\n"; +const char *archivedAttributeText = "This file has the archived attribute set.\n"; +const char *systemAttributeText = "This file has the system attribute set.\n"; +const char *hiddenAttributeText = "This file has the hidden attribute set.\n"; +const char *readonlyAttributeText = "This file has the read-only attribute set.\n"; +const char *noAttributeText = "This file has no attribute set.\n"; #endif diff --git a/fstester/setter/main.c b/fstester/setter/main.c index 756217e0..1429aeb2 100644 --- a/fstester/setter/main.c +++ b/fstester/setter/main.c @@ -33,7 +33,6 @@ Copyright (C) 2011-2018 Natalia Portillo #include "main.h" #include "defs.h" -#include "consts.h" int main(int argc, char **argv) { @@ -47,8 +46,8 @@ int main(int argc, char **argv) if(argc != 2) { - printf("Usage %s \n", argv[0]); - return -1; + printf("Usage %s \n", argv[0]); + return -1; } GetOsInfo(); diff --git a/fstester/setter/main.h b/fstester/setter/main.h index 17f2a4e3..2e03e814 100644 --- a/fstester/setter/main.h +++ b/fstester/setter/main.h @@ -147,7 +147,7 @@ Copyright (C) 2011-2018 Natalia Portillo #define OS_NAME "XENIX" #elif defined(__MVS__) #define OS_NAME "z/OS" -#elif defined(defined (unix)) || defined (defined (UNIX)) || defined (defined (__unix)) || defined (defined (__unix__)) || defined (defined (__UNIX__) +#elif defined (unix) || defined (UNIX) || defined (__unix) || defined (__unix__) || defined (__UNIX__) #define OS_NAME "Unknown UNIX" #else #define OS_NAME "Unknown" diff --git a/fstester/setter/os2_16.c b/fstester/setter/os2_16.c index c35f37e1..fe37f85e 100644 --- a/fstester/setter/os2_16.c +++ b/fstester/setter/os2_16.c @@ -33,32 +33,30 @@ Copyright (C) 2011-2018 Natalia Portillo #include #include -#include #include #define INCL_DOSMISC #define INCL_DOSFILEMGR + #include #include "defs.h" -#include "os2_16.h" -#include "dosos2.h" #include "consts.h" void GetOsInfo() { USHORT Version; USHORT rc; - BYTE MajorVer; - BYTE MinorVer; + BYTE MajorVer; + BYTE MinorVer; USHORT pathLen[1]; rc = DosGetVersion(&Version); if(rc) { - printf("Error %d querying OS/2 version.\n", rc); - return; + printf("Error %d querying OS/2 version.\n", rc); + return; } MajorVer = HIBYTE(Version) / 10; @@ -66,31 +64,31 @@ void GetOsInfo() if(MajorVer == 2) { - MajorVer = MinorVer; - MinorVer = 0; + MajorVer = MinorVer; + MinorVer = 0; } printf("OS information:\n"); printf("\tRunning under OS/2 %d.%d\n", MajorVer, MinorVer); - rc = DosQSysInfo(0, (PBYTE) pathLen, sizeof(USHORT)); + rc = DosQSysInfo(0, (PBYTE)pathLen, sizeof(USHORT)); printf("\tMaximum path is %d bytes.\n", pathLen[0]); } void GetVolumeInfo(const char *path, size_t *clusterSize) { - USHORT rc; - BYTE bData[64]; - USHORT cbData = sizeof(bData); + USHORT rc; + BYTE bData[64]; + USHORT cbData = sizeof(bData); PFSALLOCATE pfsAllocateBuffer; - USHORT driveNo = path[0] - '@'; - char *fsdName; - PFSINFO pfsInfo; + USHORT driveNo = path[0] - '@'; + char *fsdName; + PFSINFO pfsInfo; *clusterSize = 0; - rc = DosQFSAttach((PSZ)path, 0, FSAIL_QUERYNAME, (PVOID) &bData, &cbData, 0); + rc = DosQFSAttach((PSZ)path, 0, FSAIL_QUERYNAME, (PVOID) & bData, &cbData, 0); printf("Volume information:\n"); printf("\tPath: %s\n", path); @@ -98,27 +96,30 @@ void GetVolumeInfo(const char *path, size_t *clusterSize) if(rc) { - printf("Error %d requesting volume information.\n", rc); + printf("Error %d requesting volume information.\n", rc); } else { - fsdName = &bData[4 + (USHORT) bData[2] + 1 + 2]; + fsdName = &bData[4 + (USHORT)bData[2] + 1 + 2]; printf("\tFSD name: %s\n", fsdName); } - + pfsAllocateBuffer = (PFSALLOCATE)malloc(sizeof(FSALLOCATE)); - rc = DosQFSInfo(driveNo, 1, (PBYTE) pfsAllocateBuffer, sizeof(FSALLOCATE)); + rc = DosQFSInfo(driveNo, 1, (PBYTE)pfsAllocateBuffer, sizeof(FSALLOCATE)); if(rc) { - printf("Error %d requesting volume information.\n", rc); + printf("Error %d requesting volume information.\n", rc); } else { printf("\tBytes per sector: %u\n", pfsAllocateBuffer->cbSector); - printf("\tSectors per cluster: %lu (%lu bytes)\n", pfsAllocateBuffer->cSectorUnit, pfsAllocateBuffer->cSectorUnit * pfsAllocateBuffer->cbSector); - printf("\tClusters: %lu (%lu bytes)\n", pfsAllocateBuffer->cUnit, pfsAllocateBuffer->cSectorUnit * pfsAllocateBuffer->cbSector * pfsAllocateBuffer->cUnit); - printf("\tFree clusters: %lu (%lu bytes)\n", pfsAllocateBuffer->cUnitAvail, pfsAllocateBuffer->cSectorUnit * pfsAllocateBuffer->cbSector * pfsAllocateBuffer->cUnitAvail); + printf("\tSectors per cluster: %lu (%lu bytes)\n", pfsAllocateBuffer->cSectorUnit, + pfsAllocateBuffer->cSectorUnit * pfsAllocateBuffer->cbSector); + printf("\tClusters: %lu (%lu bytes)\n", pfsAllocateBuffer->cUnit, + pfsAllocateBuffer->cSectorUnit * pfsAllocateBuffer->cbSector * pfsAllocateBuffer->cUnit); + printf("\tFree clusters: %lu (%lu bytes)\n", pfsAllocateBuffer->cUnitAvail, + pfsAllocateBuffer->cSectorUnit * pfsAllocateBuffer->cbSector * pfsAllocateBuffer->cUnitAvail); *clusterSize = pfsAllocateBuffer->cSectorUnit * pfsAllocateBuffer->cbSector; } @@ -126,18 +127,18 @@ void GetVolumeInfo(const char *path, size_t *clusterSize) free(pfsAllocateBuffer); pfsInfo = (PFSINFO)malloc(sizeof(FSINFO)); - rc = DosQFSInfo(driveNo, 2, (PBYTE) pfsInfo, sizeof(FSINFO)); + rc = DosQFSInfo(driveNo, 2, (PBYTE)pfsInfo, sizeof(FSINFO)); if(rc) { - printf("Error %d requesting volume information.\n", rc); + printf("Error %d requesting volume information.\n", rc); } else { - printf("\tVolume label: %s\n", pfsInfo->vol.szVolLabel); - printf("\tVolume created on %d/%02d/%02d %02d:%02d:%02d\n", - pfsInfo->fdateCreation.year + 1980, pfsInfo->fdateCreation.month - 1, pfsInfo->fdateCreation.day, - pfsInfo->ftimeCreation.hours, pfsInfo->ftimeCreation.minutes, pfsInfo->ftimeCreation.twosecs*2); + printf("\tVolume label: %s\n", pfsInfo->vol.szVolLabel); + printf("\tVolume created on %d/%02d/%02d %02d:%02d:%02d\n", pfsInfo->fdateCreation.year + 1980, + pfsInfo->fdateCreation.month - 1, pfsInfo->fdateCreation.day, pfsInfo->ftimeCreation.hours, + pfsInfo->ftimeCreation.minutes, pfsInfo->ftimeCreation.twosecs * 2); } free(pfsInfo); @@ -145,1305 +146,1262 @@ void GetVolumeInfo(const char *path, size_t *clusterSize) void FileAttributes(const char *path) { - char drivePath[4]; - USHORT rc = 0, wRc = 0, cRc = 0; - USHORT actionTaken = 0; - HFILE handle; + char drivePath[4]; + USHORT rc = 0, wRc = 0, cRc = 0; + USHORT actionTaken = 0; + HFILE handle; - drivePath[0] = path[0]; - drivePath[1] = ':'; - drivePath[2] = '\\'; - drivePath[3] = 0; + drivePath[0] = path[0]; + drivePath[1] = ':'; + drivePath[2] = '\\'; + drivePath[3] = 0; - rc = DosChDir(drivePath, 0); + rc = DosChDir(drivePath, 0); - if(rc) - { - printf("Cannot change to specified path, not continuing.\n"); - return; - } + if(rc) + { + printf("Cannot change to specified path, not continuing.\n"); + return; + } - rc = DosMkDir("ATTRS", 0); + rc = DosMkDir("ATTRS", 0); - if(rc) - { - printf("Cannot create working directory.\n"); - return; - } - - rc = DosChDir("ATTRS", 0); + if(rc) + { + printf("Cannot create working directory.\n"); + return; + } - printf("Creating attributes files.\n"); + rc = DosChDir("ATTRS", 0); - rc = DosOpen("NONE", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("Creating attributes files.\n"); - if(!rc) - { - wRc = DosWrite(handle, (PVOID) noAttributeText, strlen(noAttributeText), &actionTaken); - cRc = DosClose(handle); - rc = DosSetFileMode("NONE", FILE_NORMAL, 0); - } + rc = DosOpen("NONE", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with no attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "NONE", rc, wRc, cRc); + if(!rc) + { + wRc = DosWrite(handle, (PVOID)noAttributeText, strlen(noAttributeText), &actionTaken); + cRc = DosClose(handle); + rc = DosSetFileMode("NONE", FILE_NORMAL, 0); + } - rc = DosOpen("ARCHIVE", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with no attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "NONE", rc, wRc, cRc); - if(!rc) - { - wRc = DosWrite(handle, (PVOID) archivedAttributeText, strlen(archivedAttributeText), &actionTaken); - cRc = DosClose(handle); - rc = DosSetFileMode("ARCHIVE", FILE_ARCHIVED, 0); - } + rc = DosOpen("ARCHIVE", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with archived attribute: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ARCHIVE", rc, wRc, cRc); + if(!rc) + { + wRc = DosWrite(handle, (PVOID)archivedAttributeText, strlen(archivedAttributeText), &actionTaken); + cRc = DosClose(handle); + rc = DosSetFileMode("ARCHIVE", FILE_ARCHIVED, 0); + } - rc = DosOpen("SYSTEM", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with archived attribute: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ARCHIVE", rc, wRc, cRc); - if(!rc) - { - wRc = DosWrite(handle, (PVOID) systemAttributeText, strlen(systemAttributeText), &actionTaken); - cRc = DosClose(handle); - rc = DosSetFileMode("SYSTEM", FILE_SYSTEM, 0); - } + rc = DosOpen("SYSTEM", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with system attribute: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "SYSTEM", rc, wRc, cRc); + if(!rc) + { + wRc = DosWrite(handle, (PVOID)systemAttributeText, strlen(systemAttributeText), &actionTaken); + cRc = DosClose(handle); + rc = DosSetFileMode("SYSTEM", FILE_SYSTEM, 0); + } - rc = DosOpen("HIDDEN", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with system attribute: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "SYSTEM", rc, wRc, cRc); - if(!rc) - { - wRc = DosWrite(handle, (PVOID) hiddenAttributeText, strlen(hiddenAttributeText), &actionTaken); - cRc = DosClose(handle); - rc = DosSetFileMode("HIDDEN", FILE_HIDDEN, 0); - } + rc = DosOpen("HIDDEN", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with hidden attribute: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "HIDDEN", rc, wRc, cRc); + if(!rc) + { + wRc = DosWrite(handle, (PVOID)hiddenAttributeText, strlen(hiddenAttributeText), &actionTaken); + cRc = DosClose(handle); + rc = DosSetFileMode("HIDDEN", FILE_HIDDEN, 0); + } - rc = DosOpen("READONLY", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with hidden attribute: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "HIDDEN", rc, wRc, cRc); - if(!rc) - { - wRc = DosWrite(handle, (PVOID) readonlyAttributeText, strlen(readonlyAttributeText), &actionTaken); - cRc = DosClose(handle); - rc = DosSetFileMode("READONLY", FILE_READONLY, 0); - } + rc = DosOpen("READONLY", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with read-only attribute: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "READONLY", rc, wRc, cRc); + if(!rc) + { + wRc = DosWrite(handle, (PVOID)readonlyAttributeText, strlen(readonlyAttributeText), &actionTaken); + cRc = DosClose(handle); + rc = DosSetFileMode("READONLY", FILE_READONLY, 0); + } - rc = DosOpen("HIDDREAD", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with read-only attribute: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "READONLY", rc, wRc, cRc); - if(!rc) - { - wRc = DosWrite(handle, (PVOID) hiddenAttributeText, strlen(hiddenAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) readonlyAttributeText, strlen(readonlyAttributeText), &actionTaken); - cRc = DosClose(handle); - rc = DosSetFileMode("HIDDREAD", FILE_HIDDEN | FILE_READONLY, 0); - } + rc = DosOpen("HIDDREAD", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with hidden, read-only attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "HIDDREAD", rc, wRc, cRc); + if(!rc) + { + wRc = DosWrite(handle, (PVOID)hiddenAttributeText, strlen(hiddenAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)readonlyAttributeText, strlen(readonlyAttributeText), &actionTaken); + cRc = DosClose(handle); + rc = DosSetFileMode("HIDDREAD", FILE_HIDDEN | FILE_READONLY, 0); + } - rc = DosOpen("SYSTREAD", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with hidden, read-only attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "HIDDREAD", rc, + wRc, cRc); - if(!rc) - { - wRc = DosWrite(handle, (PVOID) systemAttributeText, strlen(systemAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) readonlyAttributeText, strlen(readonlyAttributeText), &actionTaken); - cRc = DosClose(handle); - rc = DosSetFileMode("SYSTREAD", FILE_SYSTEM | FILE_READONLY, 0); - } + rc = DosOpen("SYSTREAD", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with system, read-only attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "SYSTREAD", rc, wRc, cRc); + if(!rc) + { + wRc = DosWrite(handle, (PVOID)systemAttributeText, strlen(systemAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)readonlyAttributeText, strlen(readonlyAttributeText), &actionTaken); + cRc = DosClose(handle); + rc = DosSetFileMode("SYSTREAD", FILE_SYSTEM | FILE_READONLY, 0); + } - rc = DosOpen("SYSTHIDD", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with system, read-only attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "SYSTREAD", rc, + wRc, cRc); - if(!rc) - { - wRc = DosWrite(handle, (PVOID) systemAttributeText, strlen(systemAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) hiddenAttributeText, strlen(hiddenAttributeText), &actionTaken); - cRc = DosClose(handle); - rc = DosSetFileMode("SYSTHIDD", FILE_SYSTEM | FILE_HIDDEN, 0); - } + rc = DosOpen("SYSTHIDD", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with system, hidden attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "SYSTHIDD", rc, wRc, cRc); + if(!rc) + { + wRc = DosWrite(handle, (PVOID)systemAttributeText, strlen(systemAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)hiddenAttributeText, strlen(hiddenAttributeText), &actionTaken); + cRc = DosClose(handle); + rc = DosSetFileMode("SYSTHIDD", FILE_SYSTEM | FILE_HIDDEN, 0); + } - rc = DosOpen("SYSRDYHD", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with system, hidden attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "SYSTHIDD", rc, wRc, + cRc); - if(!rc) - { - wRc = DosWrite(handle, (PVOID) systemAttributeText, strlen(systemAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) readonlyAttributeText, strlen(readonlyAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) hiddenAttributeText, strlen(hiddenAttributeText), &actionTaken); - cRc = DosClose(handle); - rc = DosSetFileMode("SYSRDYHD", FILE_SYSTEM | FILE_READONLY | FILE_HIDDEN, 0); - } + rc = DosOpen("SYSRDYHD", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with system, read-only, hidden attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "SYSRDYHD", rc, wRc, cRc); + if(!rc) + { + wRc = DosWrite(handle, (PVOID)systemAttributeText, strlen(systemAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)readonlyAttributeText, strlen(readonlyAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)hiddenAttributeText, strlen(hiddenAttributeText), &actionTaken); + cRc = DosClose(handle); + rc = DosSetFileMode("SYSRDYHD", FILE_SYSTEM | FILE_READONLY | FILE_HIDDEN, 0); + } - rc = DosOpen("ARCHREAD", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with system, read-only, hidden attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "SYSRDYHD", + rc, wRc, cRc); - if(!rc) - { - wRc = DosWrite(handle, (PVOID) archivedAttributeText, strlen(archivedAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) readonlyAttributeText, strlen(readonlyAttributeText), &actionTaken); - cRc = DosClose(handle); - rc = DosSetFileMode("ARCHREAD", FILE_ARCHIVED | FILE_READONLY, 0); - } + rc = DosOpen("ARCHREAD", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with archived, read-only attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ARCHREAD", rc, wRc, cRc); + if(!rc) + { + wRc = DosWrite(handle, (PVOID)archivedAttributeText, strlen(archivedAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)readonlyAttributeText, strlen(readonlyAttributeText), &actionTaken); + cRc = DosClose(handle); + rc = DosSetFileMode("ARCHREAD", FILE_ARCHIVED | FILE_READONLY, 0); + } - rc = DosOpen("ARCHHIDD", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with archived, read-only attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ARCHREAD", rc, + wRc, cRc); - if(!rc) - { - wRc = DosWrite(handle, (PVOID) archivedAttributeText, strlen(archivedAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) hiddenAttributeText, strlen(hiddenAttributeText), &actionTaken); - cRc = DosClose(handle); - rc = DosSetFileMode("ARCHHIDD", FILE_ARCHIVED | FILE_HIDDEN, 0); - } + rc = DosOpen("ARCHHIDD", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with archived, hidden attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ARCHHIDD", rc, wRc, cRc); + if(!rc) + { + wRc = DosWrite(handle, (PVOID)archivedAttributeText, strlen(archivedAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)hiddenAttributeText, strlen(hiddenAttributeText), &actionTaken); + cRc = DosClose(handle); + rc = DosSetFileMode("ARCHHIDD", FILE_ARCHIVED | FILE_HIDDEN, 0); + } - rc = DosOpen("ARCHDRDY", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with archived, hidden attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ARCHHIDD", rc, wRc, + cRc); - if(!rc) - { - wRc = DosWrite(handle, (PVOID) archivedAttributeText, strlen(archivedAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) hiddenAttributeText, strlen(hiddenAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) readonlyAttributeText, strlen(readonlyAttributeText), &actionTaken); - cRc = DosClose(handle); - rc = DosSetFileMode("ARCHDRDY", FILE_ARCHIVED | FILE_HIDDEN | FILE_READONLY, 0); - } + rc = DosOpen("ARCHDRDY", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with archived, hidden, read-only attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ARCHDRDY", rc, wRc, cRc); + if(!rc) + { + wRc = DosWrite(handle, (PVOID)archivedAttributeText, strlen(archivedAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)hiddenAttributeText, strlen(hiddenAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)readonlyAttributeText, strlen(readonlyAttributeText), &actionTaken); + cRc = DosClose(handle); + rc = DosSetFileMode("ARCHDRDY", FILE_ARCHIVED | FILE_HIDDEN | FILE_READONLY, 0); + } - rc = DosOpen("ARCHSYST", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with archived, hidden, read-only attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", + "ARCHDRDY", rc, wRc, cRc); - if(!rc) - { - wRc = DosWrite(handle, (PVOID) archivedAttributeText, strlen(archivedAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) systemAttributeText, strlen(systemAttributeText), &actionTaken); - cRc = DosClose(handle); - rc = DosSetFileMode("ARCHSYST", FILE_ARCHIVED | FILE_SYSTEM, 0); - } + rc = DosOpen("ARCHSYST", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with archived, system attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ARCHSYST", rc, wRc, cRc); + if(!rc) + { + wRc = DosWrite(handle, (PVOID)archivedAttributeText, strlen(archivedAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)systemAttributeText, strlen(systemAttributeText), &actionTaken); + cRc = DosClose(handle); + rc = DosSetFileMode("ARCHSYST", FILE_ARCHIVED | FILE_SYSTEM, 0); + } - rc = DosOpen("ARSYSRDY", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with archived, system attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ARCHSYST", rc, wRc, + cRc); - if(!rc) - { - wRc = DosWrite(handle, (PVOID) archivedAttributeText, strlen(archivedAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) systemAttributeText, strlen(systemAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) readonlyAttributeText, strlen(readonlyAttributeText), &actionTaken); - cRc = DosClose(handle); - rc = DosSetFileMode("ARSYSRDY", FILE_ARCHIVED | FILE_SYSTEM | FILE_READONLY, 0); - } + rc = DosOpen("ARSYSRDY", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with archived, system, read-only attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ARSYSRDY", rc, wRc, cRc); + if(!rc) + { + wRc = DosWrite(handle, (PVOID)archivedAttributeText, strlen(archivedAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)systemAttributeText, strlen(systemAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)readonlyAttributeText, strlen(readonlyAttributeText), &actionTaken); + cRc = DosClose(handle); + rc = DosSetFileMode("ARSYSRDY", FILE_ARCHIVED | FILE_SYSTEM | FILE_READONLY, 0); + } - rc = DosOpen("ARCSYSHD", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with archived, system, read-only attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", + "ARSYSRDY", rc, wRc, cRc); - if(!rc) - { - wRc = DosWrite(handle, (PVOID) archivedAttributeText, strlen(archivedAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) systemAttributeText, strlen(systemAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) hiddenAttributeText, strlen(hiddenAttributeText), &actionTaken); - cRc = DosClose(handle); - rc = DosSetFileMode("ARCSYSHD", FILE_ARCHIVED | FILE_SYSTEM | FILE_HIDDEN, 0); - } + rc = DosOpen("ARCSYSHD", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with archived, system, hidden attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ARCSYSHD", rc, wRc, cRc); + if(!rc) + { + wRc = DosWrite(handle, (PVOID)archivedAttributeText, strlen(archivedAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)systemAttributeText, strlen(systemAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)hiddenAttributeText, strlen(hiddenAttributeText), &actionTaken); + cRc = DosClose(handle); + rc = DosSetFileMode("ARCSYSHD", FILE_ARCHIVED | FILE_SYSTEM | FILE_HIDDEN, 0); + } - rc = DosOpen("ARSYHDRD", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with archived, system, hidden attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ARCSYSHD", + rc, wRc, cRc); - if(!rc) - { - wRc = DosWrite(handle, (PVOID) archivedAttributeText, strlen(archivedAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) systemAttributeText, strlen(systemAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) hiddenAttributeText, strlen(hiddenAttributeText), &actionTaken); - wRc = DosWrite(handle, (PVOID) readonlyAttributeText, strlen(readonlyAttributeText), &actionTaken); - cRc = DosClose(handle); - rc = DosSetFileMode("ARSYHDRD", FILE_ARCHIVED | FILE_SYSTEM | FILE_HIDDEN | FILE_READONLY, 0); - } + rc = DosOpen("ARSYHDRD", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with all (archived, system, hidden, read-only) attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ARSYHDRD", rc, wRc, cRc); + if(!rc) + { + wRc = DosWrite(handle, (PVOID)archivedAttributeText, strlen(archivedAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)systemAttributeText, strlen(systemAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)hiddenAttributeText, strlen(hiddenAttributeText), &actionTaken); + wRc = DosWrite(handle, (PVOID)readonlyAttributeText, strlen(readonlyAttributeText), &actionTaken); + cRc = DosClose(handle); + rc = DosSetFileMode("ARSYHDRD", FILE_ARCHIVED | FILE_SYSTEM | FILE_HIDDEN | FILE_READONLY, 0); + } + + printf("\tFile with all (archived, system, hidden, read-only) attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", + "ARSYHDRD", rc, wRc, cRc); } void FilePermissions(const char *path) { - /* Do nothing, not supported by target operating system */ + /* Do nothing, not supported by target operating system */ } void ExtendedAttributes(const char *path) { - char drivePath[4]; - USHORT rc = 0, wRc = 0, cRc = 0; - USHORT actionTaken = 0; - HFILE handle; - char message[300]; - EAOP eap; + char drivePath[4]; + USHORT rc = 0, wRc = 0, cRc = 0; + USHORT actionTaken = 0; + HFILE handle; + char message[300]; + EAOP eap; - drivePath[0] = path[0]; - drivePath[1] = ':'; - drivePath[2] = '\\'; - drivePath[3] = 0; + drivePath[0] = path[0]; + drivePath[1] = ':'; + drivePath[2] = '\\'; + drivePath[3] = 0; - rc = DosChDir(drivePath, 0); + rc = DosChDir(drivePath, 0); - if(rc) - { - printf("Cannot change to specified path, not continuing.\n"); - return; - } + if(rc) + { + printf("Cannot change to specified path, not continuing.\n"); + return; + } - rc = DosMkDir("XATTRS", 0); + rc = DosMkDir("XATTRS", 0); - if(rc) - { - printf("Cannot create working directory.\n"); - return; - } - - rc = DosChDir("XATTRS", 0); + if(rc) + { + printf("Cannot create working directory.\n"); + return; + } - printf("Creating files with extended attributes.\n"); + rc = DosChDir("XATTRS", 0); - rc = DosOpen("COMMENTS", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("Creating files with extended attributes.\n"); - if(!rc) - { - eap.fpGEAList = NULL; - eap.fpFEAList = (PFEALIST)&CommentsEA; - eap.oError = 0; - memset(&message, 0, 300); - sprintf(&message, "This files has an optional .COMMENTS EA\n"); - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - rc = DosSetFileInfo(handle, 2, (PBYTE) &eap, sizeof(EAOP)); - cRc = DosClose(handle); - } + rc = DosOpen("COMMENTS", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with comments = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "COMMENTS", rc, wRc, cRc); + if(!rc) + { + eap.fpGEAList = NULL; + eap.fpFEAList = (PFEALIST) & CommentsEA; + eap.oError = 0; + memset(&message, 0, 300); + sprintf(&message, "This files has an optional .COMMENTS EA\n"); + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + rc = DosSetFileInfo(handle, 2, (PBYTE) & eap, sizeof(EAOP)); + cRc = DosClose(handle); + } - rc = DosOpen("COMMENTS.CRT", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with comments = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "COMMENTS", rc, wRc, cRc); - if(!rc) - { - eap.fpGEAList = NULL; - eap.fpFEAList = (PFEALIST)&CommentsEACritical; - eap.oError = 0; - memset(&message, 0, 300); - sprintf(&message, "This files has a critical .COMMENTS EA\n"); - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - rc = DosSetFileInfo(handle, 2, (PBYTE) &eap, sizeof(EAOP)); - cRc = DosClose(handle); - } + rc = DosOpen("COMMENTS.CRT", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with comments = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "COMMENTS.CRT", rc, wRc, cRc); + if(!rc) + { + eap.fpGEAList = NULL; + eap.fpFEAList = (PFEALIST) & CommentsEACritical; + eap.oError = 0; + memset(&message, 0, 300); + sprintf(&message, "This files has a critical .COMMENTS EA\n"); + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + rc = DosSetFileInfo(handle, 2, (PBYTE) & eap, sizeof(EAOP)); + cRc = DosClose(handle); + } - rc = DosOpen("ICON", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("\tFile with comments = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "COMMENTS.CRT", rc, wRc, cRc); - if(!rc) - { - eap.fpGEAList = NULL; - eap.fpFEAList = (PFEALIST)&IconEA; - eap.oError = 0; - memset(&message, 0, 300); - sprintf(&message, "This files has an optional .ICON EA\n"); - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - rc = DosSetFileInfo(handle, 2, (PBYTE) &eap, sizeof(EAOP)); - cRc = DosClose(handle); - } + rc = DosOpen("ICON", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_REPLACE_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile with icon = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ICON", rc, wRc, cRc); + if(!rc) + { + eap.fpGEAList = NULL; + eap.fpFEAList = (PFEALIST) & IconEA; + eap.oError = 0; + memset(&message, 0, 300); + sprintf(&message, "This files has an optional .ICON EA\n"); + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + rc = DosSetFileInfo(handle, 2, (PBYTE) & eap, sizeof(EAOP)); + cRc = DosClose(handle); + } + + printf("\tFile with icon = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ICON", rc, wRc, cRc); } void ResourceFork(const char *path) { - /* Do nothing, not supported by target operating system */ + /* Do nothing, not supported by target operating system */ } void Filenames(const char *path) { - char drivePath[4]; - USHORT rc = 0, wRc = 0, cRc = 0; - USHORT actionTaken = 0; - HFILE handle; - char message[300]; - int pos = 0; + char drivePath[4]; + USHORT rc = 0, wRc = 0, cRc = 0; + USHORT actionTaken = 0; + HFILE handle; + char message[300]; + int pos = 0; - drivePath[0] = path[0]; - drivePath[1] = ':'; - drivePath[2] = '\\'; - drivePath[3] = 0; + drivePath[0] = path[0]; + drivePath[1] = ':'; + drivePath[2] = '\\'; + drivePath[3] = 0; - rc = DosChDir(drivePath, 0); + rc = DosChDir(drivePath, 0); - if(rc) - { - printf("Cannot change to specified path, not continuing.\n"); - return; - } + if(rc) + { + printf("Cannot change to specified path, not continuing.\n"); + return; + } - rc = DosMkDir("FILENAME", 0); + rc = DosMkDir("FILENAME", 0); - if(rc) - { - printf("Cannot create working directory.\n"); - return; - } - - rc = DosChDir("FILENAME", 0); + if(rc) + { + printf("Cannot create working directory.\n"); + return; + } - printf("Creating files with different filenames.\n"); + rc = DosChDir("FILENAME", 0); - for(pos = 0; filenames[pos]; pos++) - { - rc = DosOpen((PSZ)filenames[pos], &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + printf("Creating files with different filenames.\n"); - if(!rc) - { - memset(&message, 0, 300); - sprintf(&message, FILENAME_FORMAT, filenames[pos]); - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - cRc = DosClose(handle); - } + for(pos = 0; filenames[pos]; pos++) + { + rc = DosOpen((PSZ)filenames[pos], &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", filenames[pos], rc, wRc, cRc); - } + if(!rc) + { + memset(&message, 0, 300); + sprintf(&message, FILENAME_FORMAT, filenames[pos]); + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", filenames[pos], rc, wRc, cRc); + } } #define DATETIME_FORMAT "This file is dated %04d/%02d/%02d %02d:%02d:%02d for %s\n" void Timestamps(const char *path) { - char drivePath[4]; - USHORT rc = 0, wRc = 0, cRc = 0, tRc = 0; - USHORT actionTaken = 0; - HFILE handle; - char message[300]; - FILESTATUS status; - - drivePath[0] = path[0]; - drivePath[1] = ':'; - drivePath[2] = '\\'; - drivePath[3] = 0; - - rc = DosChDir(drivePath, 0); - - if(rc) - { - printf("Cannot change to specified path, not continuing.\n"); - return; - } - - rc = DosMkDir("TIMES", 0); - - if(rc) - { - printf("Cannot create working directory.\n"); - return; - } - - rc = DosChDir("TIMES", 0); - - printf("Creating timestamped files.\n"); - - rc = DosOpen((PSZ)"MAXCTIME", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - - if(!rc) - { - memset(&status, 0, sizeof(FILESTATUS)); - status.fdateCreation.year = 127; - status.fdateCreation.month = 12; - status.fdateCreation.day = 31; - status.ftimeCreation.hours = 23; - status.ftimeCreation.minutes = 59; - status.ftimeCreation.twosecs = 29; - memset(&message, 0, 300); - sprintf(&message, DATETIME_FORMAT, - status.fdateCreation.year + 1980, status.fdateCreation.month, status.fdateCreation.day, - status.ftimeCreation.hours, status.ftimeCreation.minutes, status.ftimeCreation.twosecs*2, - "creation"); - - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - tRc = DosSetFileInfo(handle, 1, (PBYTE) &status, sizeof(FILESTATUS)); - cRc = DosClose(handle); - } - - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MAXCTIME", rc, wRc, cRc, tRc); - - rc = DosOpen((PSZ)"MINCTIME", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - - if(!rc) - { - memset(&status, 0, sizeof(FILESTATUS)); - status.fdateCreation.year = 0; - status.fdateCreation.month = 1; - status.fdateCreation.day = 1; - status.ftimeCreation.hours = 0; - status.ftimeCreation.minutes = 0; - status.ftimeCreation.twosecs = 0; - memset(&message, 0, 300); - sprintf(&message, DATETIME_FORMAT, - status.fdateCreation.year + 1980, status.fdateCreation.month, status.fdateCreation.day, - status.ftimeCreation.hours, status.ftimeCreation.minutes, status.ftimeCreation.twosecs*2, - "creation"); - - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - tRc = DosSetFileInfo(handle, 1, (PBYTE) &status, sizeof(FILESTATUS)); - cRc = DosClose(handle); - } - - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MINCTIME", rc, wRc, cRc, tRc); - - rc = DosOpen((PSZ)"Y19CTIME", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - - if(!rc) - { - memset(&status, 0, sizeof(FILESTATUS)); - status.fdateCreation.year = 1999 - 1980; - status.fdateCreation.month = 12; - status.fdateCreation.day = 31; - status.ftimeCreation.hours = 23; - status.ftimeCreation.minutes = 59; - status.ftimeCreation.twosecs = 29; - memset(&message, 0, 300); - sprintf(&message, DATETIME_FORMAT, - status.fdateCreation.year + 1980, status.fdateCreation.month, status.fdateCreation.day, - status.ftimeCreation.hours, status.ftimeCreation.minutes, status.ftimeCreation.twosecs*2, - "creation"); - - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - tRc = DosSetFileInfo(handle, 1, (PBYTE) &status, sizeof(FILESTATUS)); - cRc = DosClose(handle); - } - - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y19CTIME", rc, wRc, cRc, tRc); - - rc = DosOpen((PSZ)"Y2KCTIME", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - - if(!rc) - { - memset(&status, 0, sizeof(FILESTATUS)); - status.fdateCreation.year = 2000 - 1980; - status.fdateCreation.month = 1; - status.fdateCreation.day = 1; - status.ftimeCreation.hours = 0; - status.ftimeCreation.minutes = 0; - status.ftimeCreation.twosecs = 0; - memset(&message, 0, 300); - sprintf(&message, DATETIME_FORMAT, - status.fdateCreation.year + 1980, status.fdateCreation.month, status.fdateCreation.day, - status.ftimeCreation.hours, status.ftimeCreation.minutes, status.ftimeCreation.twosecs*2, - "creation"); - - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - tRc = DosSetFileInfo(handle, 1, (PBYTE) &status, sizeof(FILESTATUS)); - cRc = DosClose(handle); - } - - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y19CTIME", rc, wRc, cRc, tRc); - - rc = DosOpen((PSZ)"MAXWTIME", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - - if(!rc) - { - memset(&status, 0, sizeof(FILESTATUS)); - status.fdateLastWrite.year = 127; - status.fdateLastWrite.month = 12; - status.fdateLastWrite.day = 31; - status.ftimeLastWrite.hours = 23; - status.ftimeLastWrite.minutes = 59; - status.ftimeLastWrite.twosecs = 29; - memset(&message, 0, 300); - sprintf(&message, DATETIME_FORMAT, - status.fdateLastWrite.year + 1980, status.fdateLastWrite.month, status.fdateLastWrite.day, - status.ftimeLastWrite.hours, status.ftimeLastWrite.minutes, status.ftimeLastWrite.twosecs*2, - "last written"); - - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - tRc = DosSetFileInfo(handle, 1, (PBYTE) &status, sizeof(FILESTATUS)); - cRc = DosClose(handle); - } - - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MAXWTIME", rc, wRc, cRc, tRc); - - rc = DosOpen((PSZ)"MINWTIME", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - - if(!rc) - { - memset(&status, 0, sizeof(FILESTATUS)); - status.fdateLastWrite.year = 0; - status.fdateLastWrite.month = 1; - status.fdateLastWrite.day = 1; - status.ftimeLastWrite.hours = 0; - status.ftimeLastWrite.minutes = 0; - status.ftimeLastWrite.twosecs = 0; - memset(&message, 0, 300); - sprintf(&message, DATETIME_FORMAT, - status.fdateLastWrite.year + 1980, status.fdateLastWrite.month, status.fdateLastWrite.day, - status.ftimeLastWrite.hours, status.ftimeLastWrite.minutes, status.ftimeLastWrite.twosecs*2, - "last written"); - - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - tRc = DosSetFileInfo(handle, 1, (PBYTE) &status, sizeof(FILESTATUS)); - cRc = DosClose(handle); - } - - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MINWTIME", rc, wRc, cRc, tRc); - - rc = DosOpen((PSZ)"Y19WTIME", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - - if(!rc) - { - memset(&status, 0, sizeof(FILESTATUS)); - status.fdateLastWrite.year = 1999 - 1980; - status.fdateLastWrite.month = 12; - status.fdateLastWrite.day = 31; - status.ftimeLastWrite.hours = 23; - status.ftimeLastWrite.minutes = 59; - status.ftimeLastWrite.twosecs = 29; - memset(&message, 0, 300); - sprintf(&message, DATETIME_FORMAT, - status.fdateLastWrite.year + 1980, status.fdateLastWrite.month, status.fdateLastWrite.day, - status.ftimeLastWrite.hours, status.ftimeLastWrite.minutes, status.ftimeLastWrite.twosecs*2, - "last written"); - - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - tRc = DosSetFileInfo(handle, 1, (PBYTE) &status, sizeof(FILESTATUS)); - cRc = DosClose(handle); - } - - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y19WTIME", rc, wRc, cRc, tRc); - - rc = DosOpen((PSZ)"Y2KWTIME", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - - if(!rc) - { - memset(&status, 0, sizeof(FILESTATUS)); - status.fdateLastWrite.year = 2000 - 1980; - status.fdateLastWrite.month = 1; - status.fdateLastWrite.day = 1; - status.ftimeLastWrite.hours = 0; - status.ftimeLastWrite.minutes = 0; - status.ftimeLastWrite.twosecs = 0; - memset(&message, 0, 300); - sprintf(&message, DATETIME_FORMAT, - status.fdateLastWrite.year + 1980, status.fdateLastWrite.month, status.fdateLastWrite.day, - status.ftimeLastWrite.hours, status.ftimeLastWrite.minutes, status.ftimeLastWrite.twosecs*2, - "last written"); - - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - tRc = DosSetFileInfo(handle, 1, (PBYTE) &status, sizeof(FILESTATUS)); - cRc = DosClose(handle); - } - - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y2KWTIME", rc, wRc, cRc, tRc); - - rc = DosOpen((PSZ)"MAXATIME", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - - if(!rc) - { - memset(&status, 0, sizeof(FILESTATUS)); - status.fdateLastAccess.year = 127; - status.fdateLastAccess.month = 12; - status.fdateLastAccess.day = 31; - status.ftimeLastAccess.hours = 23; - status.ftimeLastAccess.minutes = 59; - status.ftimeLastAccess.twosecs = 29; - memset(&message, 0, 300); - sprintf(&message, DATETIME_FORMAT, - status.fdateLastAccess.year + 1980, status.fdateLastAccess.month, status.fdateLastAccess.day, - status.ftimeLastAccess.hours, status.ftimeLastAccess.minutes, status.ftimeLastAccess.twosecs*2, - "last access"); - - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - tRc = DosSetFileInfo(handle, 1, (PBYTE) &status, sizeof(FILESTATUS)); - cRc = DosClose(handle); - } - - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MAXATIME", rc, wRc, cRc, tRc); - - rc = DosOpen((PSZ)"MINATIME", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - - if(!rc) - { - memset(&status, 0, sizeof(FILESTATUS)); - status.fdateLastAccess.year = 0; - status.fdateLastAccess.month = 1; - status.fdateLastAccess.day = 1; - status.ftimeLastAccess.hours = 0; - status.ftimeLastAccess.minutes = 0; - status.ftimeLastAccess.twosecs = 0; - memset(&message, 0, 300); - sprintf(&message, DATETIME_FORMAT, - status.fdateLastAccess.year + 1980, status.fdateLastAccess.month, status.fdateLastAccess.day, - status.ftimeLastAccess.hours, status.ftimeLastAccess.minutes, status.ftimeLastAccess.twosecs*2, - "last access"); - - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - tRc = DosSetFileInfo(handle, 1, (PBYTE) &status, sizeof(FILESTATUS)); - cRc = DosClose(handle); - } - - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MINATIME", rc, wRc, cRc, tRc); - - rc = DosOpen((PSZ)"Y19ATIME", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - - if(!rc) - { - memset(&status, 0, sizeof(FILESTATUS)); - status.fdateLastAccess.year = 1999 - 1980; - status.fdateLastAccess.month = 12; - status.fdateLastAccess.day = 31; - status.ftimeLastAccess.hours = 23; - status.ftimeLastAccess.minutes = 59; - status.ftimeLastAccess.twosecs = 29; - memset(&message, 0, 300); - sprintf(&message, DATETIME_FORMAT, - status.fdateLastAccess.year + 1980, status.fdateLastAccess.month, status.fdateLastAccess.day, - status.ftimeLastAccess.hours, status.ftimeLastAccess.minutes, status.ftimeLastAccess.twosecs*2, - "last access"); - - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - tRc = DosSetFileInfo(handle, 1, (PBYTE) &status, sizeof(FILESTATUS)); - cRc = DosClose(handle); - } - - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y19ATIME", rc, wRc, cRc, tRc); - - rc = DosOpen((PSZ)"Y2KATIME", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - - if(!rc) - { - memset(&status, 0, sizeof(FILESTATUS)); - status.fdateLastAccess.year = 2000 - 1980; - status.fdateLastAccess.month = 1; - status.fdateLastAccess.day = 1; - status.ftimeLastAccess.hours = 0; - status.ftimeLastAccess.minutes = 0; - status.ftimeLastAccess.twosecs = 0; - memset(&message, 0, 300); - sprintf(&message, DATETIME_FORMAT, - status.fdateLastAccess.year + 1980, status.fdateLastAccess.month, status.fdateLastAccess.day, - status.ftimeLastAccess.hours, status.ftimeLastAccess.minutes, status.ftimeLastAccess.twosecs*2, - "last access"); - - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - tRc = DosSetFileInfo(handle, 1, (PBYTE) &status, sizeof(FILESTATUS)); - cRc = DosClose(handle); - } - - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y2KATIME", rc, wRc, cRc, tRc); - - rc = DosOpen((PSZ)"MAX_TIME", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - - if(!rc) - { - memset(&status, 0, sizeof(FILESTATUS)); - status.fdateCreation.year = 127; - status.fdateCreation.month = 12; - status.fdateCreation.day = 31; - status.ftimeCreation.hours = 23; - status.ftimeCreation.minutes = 59; - status.ftimeCreation.twosecs = 29; - status.fdateLastAccess = status.fdateCreation; - status.ftimeLastAccess = status.ftimeCreation; - status.fdateLastWrite = status.fdateCreation; - status.ftimeLastWrite = status.ftimeCreation; - memset(&message, 0, 300); - sprintf(&message, DATETIME_FORMAT, - status.fdateCreation.year + 1980, status.fdateCreation.month, status.fdateCreation.day, - status.ftimeCreation.hours, status.ftimeCreation.minutes, status.ftimeCreation.twosecs*2, - "all"); - - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - tRc = DosSetFileInfo(handle, 1, (PBYTE) &status, sizeof(FILESTATUS)); - cRc = DosClose(handle); - } - - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MAX_TIME", rc, wRc, cRc, tRc); - - rc = DosOpen((PSZ)"MIN_TIME", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - - if(!rc) - { - memset(&status, 0, sizeof(FILESTATUS)); - status.fdateCreation.year = 0; - status.fdateCreation.month = 1; - status.fdateCreation.day = 1; - status.ftimeCreation.hours = 0; - status.ftimeCreation.minutes = 0; - status.ftimeCreation.twosecs = 0; - status.fdateLastAccess = status.fdateCreation; - status.ftimeLastAccess = status.ftimeCreation; - status.fdateLastWrite = status.fdateCreation; - status.ftimeLastWrite = status.ftimeCreation; - memset(&message, 0, 300); - sprintf(&message, DATETIME_FORMAT, - status.fdateCreation.year + 1980, status.fdateCreation.month, status.fdateCreation.day, - status.ftimeCreation.hours, status.ftimeCreation.minutes, status.ftimeCreation.twosecs*2, - "all"); - - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - tRc = DosSetFileInfo(handle, 1, (PBYTE) &status, sizeof(FILESTATUS)); - cRc = DosClose(handle); - } - - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MIN_TIME", rc, wRc, cRc, tRc); - - rc = DosOpen((PSZ)"Y19_TIME", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - - if(!rc) - { - memset(&status, 0, sizeof(FILESTATUS)); - status.fdateCreation.year = 1999 - 1980; - status.fdateCreation.month = 12; - status.fdateCreation.day = 31; - status.ftimeCreation.hours = 23; - status.ftimeCreation.minutes = 59; - status.ftimeCreation.twosecs = 29; - status.fdateLastAccess = status.fdateCreation; - status.ftimeLastAccess = status.ftimeCreation; - status.fdateLastWrite = status.fdateCreation; - status.ftimeLastWrite = status.ftimeCreation; - memset(&message, 0, 300); - sprintf(&message, DATETIME_FORMAT, - status.fdateCreation.year + 1980, status.fdateCreation.month, status.fdateCreation.day, - status.ftimeCreation.hours, status.ftimeCreation.minutes, status.ftimeCreation.twosecs*2, - "all"); - - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - tRc = DosSetFileInfo(handle, 1, (PBYTE) &status, sizeof(FILESTATUS)); - cRc = DosClose(handle); - } - - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y19_TIME", rc, wRc, cRc, tRc); - - rc = DosOpen((PSZ)"Y2K_TIME", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - - if(!rc) - { - memset(&status, 0, sizeof(FILESTATUS)); - status.fdateCreation.year = 2000 - 1980; - status.fdateCreation.month = 1; - status.fdateCreation.day = 1; - status.ftimeCreation.hours = 0; - status.ftimeCreation.minutes = 0; - status.ftimeCreation.twosecs = 0; - status.fdateLastAccess = status.fdateCreation; - status.ftimeLastAccess = status.ftimeCreation; - status.fdateLastWrite = status.fdateCreation; - status.ftimeLastWrite = status.ftimeCreation; - memset(&message, 0, 300); - sprintf(&message, DATETIME_FORMAT, - status.fdateCreation.year + 1980, status.fdateCreation.month, status.fdateCreation.day, - status.ftimeCreation.hours, status.ftimeCreation.minutes, status.ftimeCreation.twosecs*2, - "all"); - - wRc = DosWrite(handle, &message, strlen(message), &actionTaken); - tRc = DosSetFileInfo(handle, 1, (PBYTE) &status, sizeof(FILESTATUS)); - cRc = DosClose(handle); - } - - printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y2K_TIME", rc, wRc, cRc, tRc); + char drivePath[4]; + USHORT rc = 0, wRc = 0, cRc = 0, tRc = 0; + USHORT actionTaken = 0; + HFILE handle; + char message[300]; + FILESTATUS status; + + drivePath[0] = path[0]; + drivePath[1] = ':'; + drivePath[2] = '\\'; + drivePath[3] = 0; + + rc = DosChDir(drivePath, 0); + + if(rc) + { + printf("Cannot change to specified path, not continuing.\n"); + return; + } + + rc = DosMkDir("TIMES", 0); + + if(rc) + { + printf("Cannot create working directory.\n"); + return; + } + + rc = DosChDir("TIMES", 0); + + printf("Creating timestamped files.\n"); + + rc = DosOpen((PSZ)"MAXCTIME", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + + if(!rc) + { + memset(&status, 0, sizeof(FILESTATUS)); + status.fdateCreation.year = 127; + status.fdateCreation.month = 12; + status.fdateCreation.day = 31; + status.ftimeCreation.hours = 23; + status.ftimeCreation.minutes = 59; + status.ftimeCreation.twosecs = 29; + memset(&message, 0, 300); + sprintf(&message, DATETIME_FORMAT, status.fdateCreation.year + 1980, status.fdateCreation.month, + status.fdateCreation.day, status.ftimeCreation.hours, status.ftimeCreation.minutes, + status.ftimeCreation.twosecs * 2, "creation"); + + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + tRc = DosSetFileInfo(handle, 1, (PBYTE) & status, sizeof(FILESTATUS)); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MAXCTIME", rc, wRc, cRc, tRc); + + rc = DosOpen((PSZ)"MINCTIME", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + + if(!rc) + { + memset(&status, 0, sizeof(FILESTATUS)); + status.fdateCreation.year = 0; + status.fdateCreation.month = 1; + status.fdateCreation.day = 1; + status.ftimeCreation.hours = 0; + status.ftimeCreation.minutes = 0; + status.ftimeCreation.twosecs = 0; + memset(&message, 0, 300); + sprintf(&message, DATETIME_FORMAT, status.fdateCreation.year + 1980, status.fdateCreation.month, + status.fdateCreation.day, status.ftimeCreation.hours, status.ftimeCreation.minutes, + status.ftimeCreation.twosecs * 2, "creation"); + + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + tRc = DosSetFileInfo(handle, 1, (PBYTE) & status, sizeof(FILESTATUS)); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MINCTIME", rc, wRc, cRc, tRc); + + rc = DosOpen((PSZ)"Y19CTIME", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + + if(!rc) + { + memset(&status, 0, sizeof(FILESTATUS)); + status.fdateCreation.year = 1999 - 1980; + status.fdateCreation.month = 12; + status.fdateCreation.day = 31; + status.ftimeCreation.hours = 23; + status.ftimeCreation.minutes = 59; + status.ftimeCreation.twosecs = 29; + memset(&message, 0, 300); + sprintf(&message, DATETIME_FORMAT, status.fdateCreation.year + 1980, status.fdateCreation.month, + status.fdateCreation.day, status.ftimeCreation.hours, status.ftimeCreation.minutes, + status.ftimeCreation.twosecs * 2, "creation"); + + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + tRc = DosSetFileInfo(handle, 1, (PBYTE) & status, sizeof(FILESTATUS)); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y19CTIME", rc, wRc, cRc, tRc); + + rc = DosOpen((PSZ)"Y2KCTIME", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + + if(!rc) + { + memset(&status, 0, sizeof(FILESTATUS)); + status.fdateCreation.year = 2000 - 1980; + status.fdateCreation.month = 1; + status.fdateCreation.day = 1; + status.ftimeCreation.hours = 0; + status.ftimeCreation.minutes = 0; + status.ftimeCreation.twosecs = 0; + memset(&message, 0, 300); + sprintf(&message, DATETIME_FORMAT, status.fdateCreation.year + 1980, status.fdateCreation.month, + status.fdateCreation.day, status.ftimeCreation.hours, status.ftimeCreation.minutes, + status.ftimeCreation.twosecs * 2, "creation"); + + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + tRc = DosSetFileInfo(handle, 1, (PBYTE) & status, sizeof(FILESTATUS)); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y19CTIME", rc, wRc, cRc, tRc); + + rc = DosOpen((PSZ)"MAXWTIME", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + + if(!rc) + { + memset(&status, 0, sizeof(FILESTATUS)); + status.fdateLastWrite.year = 127; + status.fdateLastWrite.month = 12; + status.fdateLastWrite.day = 31; + status.ftimeLastWrite.hours = 23; + status.ftimeLastWrite.minutes = 59; + status.ftimeLastWrite.twosecs = 29; + memset(&message, 0, 300); + sprintf(&message, DATETIME_FORMAT, status.fdateLastWrite.year + 1980, status.fdateLastWrite.month, + status.fdateLastWrite.day, status.ftimeLastWrite.hours, status.ftimeLastWrite.minutes, + status.ftimeLastWrite.twosecs * 2, "last written"); + + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + tRc = DosSetFileInfo(handle, 1, (PBYTE) & status, sizeof(FILESTATUS)); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MAXWTIME", rc, wRc, cRc, tRc); + + rc = DosOpen((PSZ)"MINWTIME", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + + if(!rc) + { + memset(&status, 0, sizeof(FILESTATUS)); + status.fdateLastWrite.year = 0; + status.fdateLastWrite.month = 1; + status.fdateLastWrite.day = 1; + status.ftimeLastWrite.hours = 0; + status.ftimeLastWrite.minutes = 0; + status.ftimeLastWrite.twosecs = 0; + memset(&message, 0, 300); + sprintf(&message, DATETIME_FORMAT, status.fdateLastWrite.year + 1980, status.fdateLastWrite.month, + status.fdateLastWrite.day, status.ftimeLastWrite.hours, status.ftimeLastWrite.minutes, + status.ftimeLastWrite.twosecs * 2, "last written"); + + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + tRc = DosSetFileInfo(handle, 1, (PBYTE) & status, sizeof(FILESTATUS)); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MINWTIME", rc, wRc, cRc, tRc); + + rc = DosOpen((PSZ)"Y19WTIME", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + + if(!rc) + { + memset(&status, 0, sizeof(FILESTATUS)); + status.fdateLastWrite.year = 1999 - 1980; + status.fdateLastWrite.month = 12; + status.fdateLastWrite.day = 31; + status.ftimeLastWrite.hours = 23; + status.ftimeLastWrite.minutes = 59; + status.ftimeLastWrite.twosecs = 29; + memset(&message, 0, 300); + sprintf(&message, DATETIME_FORMAT, status.fdateLastWrite.year + 1980, status.fdateLastWrite.month, + status.fdateLastWrite.day, status.ftimeLastWrite.hours, status.ftimeLastWrite.minutes, + status.ftimeLastWrite.twosecs * 2, "last written"); + + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + tRc = DosSetFileInfo(handle, 1, (PBYTE) & status, sizeof(FILESTATUS)); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y19WTIME", rc, wRc, cRc, tRc); + + rc = DosOpen((PSZ)"Y2KWTIME", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + + if(!rc) + { + memset(&status, 0, sizeof(FILESTATUS)); + status.fdateLastWrite.year = 2000 - 1980; + status.fdateLastWrite.month = 1; + status.fdateLastWrite.day = 1; + status.ftimeLastWrite.hours = 0; + status.ftimeLastWrite.minutes = 0; + status.ftimeLastWrite.twosecs = 0; + memset(&message, 0, 300); + sprintf(&message, DATETIME_FORMAT, status.fdateLastWrite.year + 1980, status.fdateLastWrite.month, + status.fdateLastWrite.day, status.ftimeLastWrite.hours, status.ftimeLastWrite.minutes, + status.ftimeLastWrite.twosecs * 2, "last written"); + + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + tRc = DosSetFileInfo(handle, 1, (PBYTE) & status, sizeof(FILESTATUS)); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y2KWTIME", rc, wRc, cRc, tRc); + + rc = DosOpen((PSZ)"MAXATIME", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + + if(!rc) + { + memset(&status, 0, sizeof(FILESTATUS)); + status.fdateLastAccess.year = 127; + status.fdateLastAccess.month = 12; + status.fdateLastAccess.day = 31; + status.ftimeLastAccess.hours = 23; + status.ftimeLastAccess.minutes = 59; + status.ftimeLastAccess.twosecs = 29; + memset(&message, 0, 300); + sprintf(&message, DATETIME_FORMAT, status.fdateLastAccess.year + 1980, status.fdateLastAccess.month, + status.fdateLastAccess.day, status.ftimeLastAccess.hours, status.ftimeLastAccess.minutes, + status.ftimeLastAccess.twosecs * 2, "last access"); + + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + tRc = DosSetFileInfo(handle, 1, (PBYTE) & status, sizeof(FILESTATUS)); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MAXATIME", rc, wRc, cRc, tRc); + + rc = DosOpen((PSZ)"MINATIME", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + + if(!rc) + { + memset(&status, 0, sizeof(FILESTATUS)); + status.fdateLastAccess.year = 0; + status.fdateLastAccess.month = 1; + status.fdateLastAccess.day = 1; + status.ftimeLastAccess.hours = 0; + status.ftimeLastAccess.minutes = 0; + status.ftimeLastAccess.twosecs = 0; + memset(&message, 0, 300); + sprintf(&message, DATETIME_FORMAT, status.fdateLastAccess.year + 1980, status.fdateLastAccess.month, + status.fdateLastAccess.day, status.ftimeLastAccess.hours, status.ftimeLastAccess.minutes, + status.ftimeLastAccess.twosecs * 2, "last access"); + + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + tRc = DosSetFileInfo(handle, 1, (PBYTE) & status, sizeof(FILESTATUS)); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MINATIME", rc, wRc, cRc, tRc); + + rc = DosOpen((PSZ)"Y19ATIME", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + + if(!rc) + { + memset(&status, 0, sizeof(FILESTATUS)); + status.fdateLastAccess.year = 1999 - 1980; + status.fdateLastAccess.month = 12; + status.fdateLastAccess.day = 31; + status.ftimeLastAccess.hours = 23; + status.ftimeLastAccess.minutes = 59; + status.ftimeLastAccess.twosecs = 29; + memset(&message, 0, 300); + sprintf(&message, DATETIME_FORMAT, status.fdateLastAccess.year + 1980, status.fdateLastAccess.month, + status.fdateLastAccess.day, status.ftimeLastAccess.hours, status.ftimeLastAccess.minutes, + status.ftimeLastAccess.twosecs * 2, "last access"); + + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + tRc = DosSetFileInfo(handle, 1, (PBYTE) & status, sizeof(FILESTATUS)); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y19ATIME", rc, wRc, cRc, tRc); + + rc = DosOpen((PSZ)"Y2KATIME", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + + if(!rc) + { + memset(&status, 0, sizeof(FILESTATUS)); + status.fdateLastAccess.year = 2000 - 1980; + status.fdateLastAccess.month = 1; + status.fdateLastAccess.day = 1; + status.ftimeLastAccess.hours = 0; + status.ftimeLastAccess.minutes = 0; + status.ftimeLastAccess.twosecs = 0; + memset(&message, 0, 300); + sprintf(&message, DATETIME_FORMAT, status.fdateLastAccess.year + 1980, status.fdateLastAccess.month, + status.fdateLastAccess.day, status.ftimeLastAccess.hours, status.ftimeLastAccess.minutes, + status.ftimeLastAccess.twosecs * 2, "last access"); + + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + tRc = DosSetFileInfo(handle, 1, (PBYTE) & status, sizeof(FILESTATUS)); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y2KATIME", rc, wRc, cRc, tRc); + + rc = DosOpen((PSZ)"MAX_TIME", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + + if(!rc) + { + memset(&status, 0, sizeof(FILESTATUS)); + status.fdateCreation.year = 127; + status.fdateCreation.month = 12; + status.fdateCreation.day = 31; + status.ftimeCreation.hours = 23; + status.ftimeCreation.minutes = 59; + status.ftimeCreation.twosecs = 29; + status.fdateLastAccess = status.fdateCreation; + status.ftimeLastAccess = status.ftimeCreation; + status.fdateLastWrite = status.fdateCreation; + status.ftimeLastWrite = status.ftimeCreation; + memset(&message, 0, 300); + sprintf(&message, DATETIME_FORMAT, status.fdateCreation.year + 1980, status.fdateCreation.month, + status.fdateCreation.day, status.ftimeCreation.hours, status.ftimeCreation.minutes, + status.ftimeCreation.twosecs * 2, "all"); + + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + tRc = DosSetFileInfo(handle, 1, (PBYTE) & status, sizeof(FILESTATUS)); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MAX_TIME", rc, wRc, cRc, tRc); + + rc = DosOpen((PSZ)"MIN_TIME", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + + if(!rc) + { + memset(&status, 0, sizeof(FILESTATUS)); + status.fdateCreation.year = 0; + status.fdateCreation.month = 1; + status.fdateCreation.day = 1; + status.ftimeCreation.hours = 0; + status.ftimeCreation.minutes = 0; + status.ftimeCreation.twosecs = 0; + status.fdateLastAccess = status.fdateCreation; + status.ftimeLastAccess = status.ftimeCreation; + status.fdateLastWrite = status.fdateCreation; + status.ftimeLastWrite = status.ftimeCreation; + memset(&message, 0, 300); + sprintf(&message, DATETIME_FORMAT, status.fdateCreation.year + 1980, status.fdateCreation.month, + status.fdateCreation.day, status.ftimeCreation.hours, status.ftimeCreation.minutes, + status.ftimeCreation.twosecs * 2, "all"); + + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + tRc = DosSetFileInfo(handle, 1, (PBYTE) & status, sizeof(FILESTATUS)); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MIN_TIME", rc, wRc, cRc, tRc); + + rc = DosOpen((PSZ)"Y19_TIME", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + + if(!rc) + { + memset(&status, 0, sizeof(FILESTATUS)); + status.fdateCreation.year = 1999 - 1980; + status.fdateCreation.month = 12; + status.fdateCreation.day = 31; + status.ftimeCreation.hours = 23; + status.ftimeCreation.minutes = 59; + status.ftimeCreation.twosecs = 29; + status.fdateLastAccess = status.fdateCreation; + status.ftimeLastAccess = status.ftimeCreation; + status.fdateLastWrite = status.fdateCreation; + status.ftimeLastWrite = status.ftimeCreation; + memset(&message, 0, 300); + sprintf(&message, DATETIME_FORMAT, status.fdateCreation.year + 1980, status.fdateCreation.month, + status.fdateCreation.day, status.ftimeCreation.hours, status.ftimeCreation.minutes, + status.ftimeCreation.twosecs * 2, "all"); + + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + tRc = DosSetFileInfo(handle, 1, (PBYTE) & status, sizeof(FILESTATUS)); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y19_TIME", rc, wRc, cRc, tRc); + + rc = DosOpen((PSZ)"Y2K_TIME", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + + if(!rc) + { + memset(&status, 0, sizeof(FILESTATUS)); + status.fdateCreation.year = 2000 - 1980; + status.fdateCreation.month = 1; + status.fdateCreation.day = 1; + status.ftimeCreation.hours = 0; + status.ftimeCreation.minutes = 0; + status.ftimeCreation.twosecs = 0; + status.fdateLastAccess = status.fdateCreation; + status.ftimeLastAccess = status.ftimeCreation; + status.fdateLastWrite = status.fdateCreation; + status.ftimeLastWrite = status.ftimeCreation; + memset(&message, 0, 300); + sprintf(&message, DATETIME_FORMAT, status.fdateCreation.year + 1980, status.fdateCreation.month, + status.fdateCreation.day, status.ftimeCreation.hours, status.ftimeCreation.minutes, + status.ftimeCreation.twosecs * 2, "all"); + + wRc = DosWrite(handle, &message, strlen(message), &actionTaken); + tRc = DosSetFileInfo(handle, 1, (PBYTE) & status, sizeof(FILESTATUS)); + cRc = DosClose(handle); + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y2K_TIME", rc, wRc, cRc, tRc); } void DirectoryDepth(const char *path) { - char drivePath[4]; - USHORT rc = 0; - char filename[9]; - long pos = 2; + char drivePath[4]; + USHORT rc = 0; + char filename[9]; + long pos = 2; - drivePath[0] = path[0]; - drivePath[1] = ':'; - drivePath[2] = '\\'; - drivePath[3] = 0; + drivePath[0] = path[0]; + drivePath[1] = ':'; + drivePath[2] = '\\'; + drivePath[3] = 0; - rc = DosChDir(drivePath, 0); + rc = DosChDir(drivePath, 0); - if(rc) - { - printf("Cannot change to specified path, not continuing.\n"); - return; - } + if(rc) + { + printf("Cannot change to specified path, not continuing.\n"); + return; + } - rc = DosMkDir("DEPTH", 0); + rc = DosMkDir("DEPTH", 0); - if(rc) - { - printf("Cannot create working directory.\n"); - return; - } - - rc = DosChDir("DEPTH", 0); + if(rc) + { + printf("Cannot create working directory.\n"); + return; + } - printf("Creating deepest directory tree.\n"); + rc = DosChDir("DEPTH", 0); - while(!rc) - { - memset(&filename, 0, 9); - sprintf(&filename, "%08d", pos); - rc = DosMkDir(filename, 0); + printf("Creating deepest directory tree.\n"); - if(!rc) - rc = DosChDir(filename, 0); + while(!rc) + { + memset(&filename, 0, 9); + sprintf(&filename, "%08d", pos); + rc = DosMkDir(filename, 0); - pos++; - } + if(!rc) + rc = DosChDir(filename, 0); - printf("\tCreated %d levels of directory hierarchy\n", pos); + pos++; + } + + printf("\tCreated %d levels of directory hierarchy\n", pos); } void Fragmentation(const char *path, size_t clusterSize) { - size_t halfCluster = clusterSize / 2; - size_t quarterCluster = clusterSize / 4; - size_t twoCluster = clusterSize * 2; - size_t threeQuartersCluster = halfCluster + quarterCluster; - size_t twoAndThreeQuartCluster = threeQuartersCluster + twoCluster; - unsigned char *buffer; - char drivePath[4]; - USHORT rc = 0, wRc = 0, cRc = 0; - USHORT actionTaken = 0; - HFILE handle; - long i; + size_t halfCluster = clusterSize / 2; + size_t quarterCluster = clusterSize / 4; + size_t twoCluster = clusterSize * 2; + size_t threeQuartersCluster = halfCluster + quarterCluster; + size_t twoAndThreeQuartCluster = threeQuartersCluster + twoCluster; + unsigned char *buffer; + char drivePath[4]; + USHORT rc = 0, wRc = 0, cRc = 0; + USHORT actionTaken = 0; + HFILE handle; + long i; - drivePath[0] = path[0]; - drivePath[1] = ':'; - drivePath[2] = '\\'; - drivePath[3] = 0; + drivePath[0] = path[0]; + drivePath[1] = ':'; + drivePath[2] = '\\'; + drivePath[3] = 0; - rc = DosChDir(drivePath, 0); + rc = DosChDir(drivePath, 0); - if(rc) - { - printf("Cannot change to specified path, not continuing.\n"); - return; - } + if(rc) + { + printf("Cannot change to specified path, not continuing.\n"); + return; + } - rc = DosMkDir("FRAGS", 0); + rc = DosMkDir("FRAGS", 0); - if(rc) - { - printf("Cannot create working directory.\n"); - return; - } - - rc = DosChDir("FRAGS", 0); + if(rc) + { + printf("Cannot create working directory.\n"); + return; + } - rc = DosOpen((PSZ)"HALFCLST", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - if(!rc) - { - buffer = malloc(halfCluster); - memset(buffer, 0, halfCluster); + rc = DosChDir("FRAGS", 0); - for(i = 0; i < halfCluster; i++) - buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + rc = DosOpen((PSZ)"HALFCLST", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + if(!rc) + { + buffer = malloc(halfCluster); + memset(buffer, 0, halfCluster); - wRc = DosWrite(handle, buffer, halfCluster, &actionTaken); - cRc = DosClose(handle); - free(buffer); - } + for(i = 0; i < halfCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; - printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "HALFCLST", halfCluster, rc, wRc, cRc); + wRc = DosWrite(handle, buffer, halfCluster, &actionTaken); + cRc = DosClose(handle); + free(buffer); + } - rc = DosOpen((PSZ)"QUARCLST", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - if(!rc) - { - buffer = malloc(quarterCluster); - memset(buffer, 0, quarterCluster); + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "HALFCLST", halfCluster, rc, wRc, cRc); - for(i = 0; i < quarterCluster; i++) - buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + rc = DosOpen((PSZ)"QUARCLST", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + if(!rc) + { + buffer = malloc(quarterCluster); + memset(buffer, 0, quarterCluster); - wRc = DosWrite(handle, buffer, quarterCluster, &actionTaken); - cRc = DosClose(handle); - free(buffer); - } + for(i = 0; i < quarterCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; - printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "QUARCLST", quarterCluster, rc, wRc, cRc); + wRc = DosWrite(handle, buffer, quarterCluster, &actionTaken); + cRc = DosClose(handle); + free(buffer); + } - rc = DosOpen((PSZ)"TWOCLST", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - if(!rc) - { - buffer = malloc(twoCluster); - memset(buffer, 0, twoCluster); + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "QUARCLST", quarterCluster, rc, wRc, cRc); - for(i = 0; i < twoCluster; i++) - buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + rc = DosOpen((PSZ)"TWOCLST", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + if(!rc) + { + buffer = malloc(twoCluster); + memset(buffer, 0, twoCluster); - wRc = DosWrite(handle, buffer, twoCluster, &actionTaken); - cRc = DosClose(handle); - free(buffer); - } + for(i = 0; i < twoCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; - printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWOCLST", twoCluster, rc, wRc, cRc); + wRc = DosWrite(handle, buffer, twoCluster, &actionTaken); + cRc = DosClose(handle); + free(buffer); + } - rc = DosOpen((PSZ)"TRQTCLST", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - if(!rc) - { - buffer = malloc(threeQuartersCluster); - memset(buffer, 0, threeQuartersCluster); + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWOCLST", twoCluster, rc, wRc, cRc); - for(i = 0; i < threeQuartersCluster; i++) - buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + rc = DosOpen((PSZ)"TRQTCLST", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + if(!rc) + { + buffer = malloc(threeQuartersCluster); + memset(buffer, 0, threeQuartersCluster); - wRc = DosWrite(handle, buffer, threeQuartersCluster, &actionTaken); - cRc = DosClose(handle); - free(buffer); - } + for(i = 0; i < threeQuartersCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; - printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TRQTCLST", threeQuartersCluster, rc, wRc, cRc); + wRc = DosWrite(handle, buffer, threeQuartersCluster, &actionTaken); + cRc = DosClose(handle); + free(buffer); + } - rc = DosOpen((PSZ)"TWTQCLST", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - if(!rc) - { - buffer = malloc(twoAndThreeQuartCluster); - memset(buffer, 0, twoAndThreeQuartCluster); + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TRQTCLST", threeQuartersCluster, rc, wRc, + cRc); - for(i = 0; i < twoAndThreeQuartCluster; i++) - buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + rc = DosOpen((PSZ)"TWTQCLST", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + if(!rc) + { + buffer = malloc(twoAndThreeQuartCluster); + memset(buffer, 0, twoAndThreeQuartCluster); - wRc = DosWrite(handle, buffer, twoAndThreeQuartCluster, &actionTaken); - cRc = DosClose(handle); - free(buffer); - } + for(i = 0; i < twoAndThreeQuartCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; - printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWTQCLST", twoAndThreeQuartCluster, rc, wRc, cRc); + wRc = DosWrite(handle, buffer, twoAndThreeQuartCluster, &actionTaken); + cRc = DosClose(handle); + free(buffer); + } - rc = DosOpen((PSZ)"TWO1", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - if(!rc) - { - buffer = malloc(twoCluster); - memset(buffer, 0, twoCluster); + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWTQCLST", twoAndThreeQuartCluster, rc, + wRc, cRc); - for(i = 0; i < twoCluster; i++) - buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + rc = DosOpen((PSZ)"TWO1", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + if(!rc) + { + buffer = malloc(twoCluster); + memset(buffer, 0, twoCluster); - wRc = DosWrite(handle, buffer, twoCluster, &actionTaken); - cRc = DosClose(handle); - free(buffer); - } + for(i = 0; i < twoCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; - printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWO1", twoCluster, rc, wRc, cRc); + wRc = DosWrite(handle, buffer, twoCluster, &actionTaken); + cRc = DosClose(handle); + free(buffer); + } - rc = DosOpen((PSZ)"TWO2", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - if(!rc) - { - buffer = malloc(twoCluster); - memset(buffer, 0, twoCluster); + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWO1", twoCluster, rc, wRc, cRc); - for(i = 0; i < twoCluster; i++) - buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + rc = DosOpen((PSZ)"TWO2", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + if(!rc) + { + buffer = malloc(twoCluster); + memset(buffer, 0, twoCluster); - wRc = DosWrite(handle, buffer, twoCluster, &actionTaken); - cRc = DosClose(handle); - free(buffer); - } + for(i = 0; i < twoCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; - printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWO2", twoCluster, rc, wRc, cRc); + wRc = DosWrite(handle, buffer, twoCluster, &actionTaken); + cRc = DosClose(handle); + free(buffer); + } - rc = DosOpen((PSZ)"TWO3", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - if(!rc) - { - buffer = malloc(twoCluster); - memset(buffer, 0, twoCluster); + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWO2", twoCluster, rc, wRc, cRc); - for(i = 0; i < twoCluster; i++) - buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + rc = DosOpen((PSZ)"TWO3", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + if(!rc) + { + buffer = malloc(twoCluster); + memset(buffer, 0, twoCluster); - wRc = DosWrite(handle, buffer, twoCluster, &actionTaken); - cRc = DosClose(handle); - free(buffer); - } + for(i = 0; i < twoCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; - printf("\tDeleting \"TWO2\".\n"); - rc = DosDelete((PSZ)"TWO2", 0); + wRc = DosWrite(handle, buffer, twoCluster, &actionTaken); + cRc = DosClose(handle); + free(buffer); + } - printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWO3", twoCluster, rc, wRc, cRc); + printf("\tDeleting \"TWO2\".\n"); + rc = DosDelete((PSZ)"TWO2", 0); - rc = DosOpen((PSZ)"FRAGTHRQ", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - if(!rc) - { - buffer = malloc(threeQuartersCluster); - memset(buffer, 0, threeQuartersCluster); + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWO3", twoCluster, rc, wRc, cRc); - for(i = 0; i < threeQuartersCluster; i++) - buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + rc = DosOpen((PSZ)"FRAGTHRQ", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + if(!rc) + { + buffer = malloc(threeQuartersCluster); + memset(buffer, 0, threeQuartersCluster); - wRc = DosWrite(handle, buffer, threeQuartersCluster, &actionTaken); - cRc = DosClose(handle); - free(buffer); - } + for(i = 0; i < threeQuartersCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; - printf("\tDeleting \"TWO1\".\n"); - rc = DosDelete((PSZ)"TWO1", 0); - printf("\tDeleting \"TWO3\".\n"); - rc = DosDelete((PSZ)"TWO3", 0); + wRc = DosWrite(handle, buffer, threeQuartersCluster, &actionTaken); + cRc = DosClose(handle); + free(buffer); + } - printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "FRAGTHRQ", threeQuartersCluster, rc, wRc, cRc); + printf("\tDeleting \"TWO1\".\n"); + rc = DosDelete((PSZ)"TWO1", 0); + printf("\tDeleting \"TWO3\".\n"); + rc = DosDelete((PSZ)"TWO3", 0); - rc = DosOpen((PSZ)"FRAGSIXQ", &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - if(!rc) - { - buffer = malloc(twoAndThreeQuartCluster); - memset(buffer, 0, twoAndThreeQuartCluster); + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "FRAGTHRQ", threeQuartersCluster, rc, wRc, + cRc); - for(i = 0; i < twoAndThreeQuartCluster; i++) - buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + rc = DosOpen((PSZ)"FRAGSIXQ", &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + if(!rc) + { + buffer = malloc(twoAndThreeQuartCluster); + memset(buffer, 0, twoAndThreeQuartCluster); - wRc = DosWrite(handle, buffer, twoAndThreeQuartCluster, &actionTaken); - cRc = DosClose(handle); - free(buffer); - } + for(i = 0; i < twoAndThreeQuartCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; - printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "FRAGSIXQ", twoAndThreeQuartCluster, rc, wRc, cRc); + wRc = DosWrite(handle, buffer, twoAndThreeQuartCluster, &actionTaken); + cRc = DosClose(handle); + free(buffer); + } + + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "FRAGSIXQ", twoAndThreeQuartCluster, rc, + wRc, cRc); +} + +void Links(const char *path) +{ + /* Do nothing, not supported by target operating system */ } void Sparse(const char *path) { - /* Do nothing, not supported by target operating system */ + /* Do nothing, not supported by target operating system */ } void MillionFiles(const char *path) { - char drivePath[4]; - USHORT rc = 0; - char filename[9]; - unsigned long long pos = 0; - USHORT actionTaken = 0; - HFILE handle; + char drivePath[4]; + USHORT rc = 0; + char filename[9]; + unsigned long long pos = 0; + USHORT actionTaken = 0; + HFILE handle; - drivePath[0] = path[0]; - drivePath[1] = ':'; - drivePath[2] = '\\'; - drivePath[3] = 0; + drivePath[0] = path[0]; + drivePath[1] = ':'; + drivePath[2] = '\\'; + drivePath[3] = 0; - rc = DosChDir(drivePath, 0); + rc = DosChDir(drivePath, 0); - if(rc) - { - printf("Cannot change to specified path, not continuing.\n"); - return; - } + if(rc) + { + printf("Cannot change to specified path, not continuing.\n"); + return; + } - rc = DosMkDir("MILLION", 0); + rc = DosMkDir("MILLION", 0); - if(rc) - { - printf("Cannot create working directory.\n"); - return; - } - - rc = DosChDir("MILLION", 0); + if(rc) + { + printf("Cannot create working directory.\n"); + return; + } - printf("Creating lots of files.\n"); + rc = DosChDir("MILLION", 0); - for(pos = 0; pos < 100000ULL; pos++) - { - memset(&filename, 0, 9); - sprintf(&filename, "%08d", pos); - rc = DosOpen(&filename, &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - if(rc) - break; + printf("Creating lots of files.\n"); - DosClose(handle); - } + for(pos = 0; pos < 100000ULL; pos++) + { + memset(&filename, 0, 9); + sprintf(&filename, "%08d", pos); + rc = DosOpen(&filename, &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + if(rc) + break; - printf("\tCreated %llu files\n", pos); + DosClose(handle); + } + + printf("\tCreated %llu files\n", pos); } void DeleteFiles(const char *path) { - char drivePath[4]; - USHORT rc = 0; - char filename[9]; - short pos = 0; - USHORT actionTaken = 0; - HFILE handle; + char drivePath[4]; + USHORT rc = 0; + char filename[9]; + short pos = 0; + USHORT actionTaken = 0; + HFILE handle; - drivePath[0] = path[0]; - drivePath[1] = ':'; - drivePath[2] = '\\'; - drivePath[3] = 0; + drivePath[0] = path[0]; + drivePath[1] = ':'; + drivePath[2] = '\\'; + drivePath[3] = 0; - rc = DosChDir(drivePath, 0); + rc = DosChDir(drivePath, 0); - if(rc) - { - printf("Cannot change to specified path, not continuing.\n"); - return; - } + if(rc) + { + printf("Cannot change to specified path, not continuing.\n"); + return; + } - rc = DosMkDir("DELETED", 0); + rc = DosMkDir("DELETED", 0); - if(rc) - { - printf("Cannot create working directory.\n"); - return; - } - - rc = DosChDir("DELETED", 0); + if(rc) + { + printf("Cannot create working directory.\n"); + return; + } - printf("Creating and deleting files.\n"); + rc = DosChDir("DELETED", 0); - for(pos = 0; pos < 64; pos++) - { - memset(&filename, 0, 9); - sprintf(&filename, "%X", pos); - rc = DosOpen(&filename, &handle, &actionTaken, 0, - FILE_NORMAL, - OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, - OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); - if(rc) - break; + printf("Creating and deleting files.\n"); - DosClose(handle); - DosDelete(&filename, 0); - } + for(pos = 0; pos < 64; pos++) + { + memset(&filename, 0, 9); + sprintf(&filename, "%X", pos); + rc = DosOpen(&filename, &handle, &actionTaken, 0, FILE_NORMAL, + OPEN_ACTION_CREATE_IF_NEW | OPEN_ACTION_FAIL_IF_EXISTS, + OPEN_FLAGS_NOINHERIT | OPEN_FLAGS_NO_CACHE | OPEN_SHARE_DENYNONE | OPEN_ACCESS_READWRITE, 0); + if(rc) + break; + + DosClose(handle); + DosDelete(&filename, 0); + } } + #endif diff --git a/fstester/setter/os2_16.h b/fstester/setter/os2_16.h index eb5e997f..68aac750 100644 --- a/fstester/setter/os2_16.h +++ b/fstester/setter/os2_16.h @@ -47,256 +47,266 @@ Copyright (C) 2011-2018 Natalia Portillo /* Cannot be used directly must be traversed manually, at least with OpenWatcom 1.8 */ typedef struct _FSQBUFFER /* fsqbuf Data structure for QFSAttach */ { - USHORT iType; /* Item type */ - USHORT cbName; /* Length of item name, sans NULL */ - UCHAR szName[1]; /* ASCIIZ item name */ - USHORT cbFSDName; /* Length of FSD name, sans NULL */ - UCHAR szFSDName[1]; /* ASCIIZ FSD name */ - USHORT cbFSAData; /* Length of FSD Attach data returned */ - UCHAR rgFSAData[1]; /* FSD Attach data from FSD */ -} FSQBUFFER; + USHORT iType; /* Item type */ + USHORT cbName; /* Length of item name, sans NULL */ + UCHAR szName[1]; /* ASCIIZ item name */ + USHORT cbFSDName; /* Length of FSD name, sans NULL */ + UCHAR szFSDName[1]; /* ASCIIZ FSD name */ + USHORT cbFSAData; /* Length of FSD Attach data returned */ + UCHAR rgFSAData[1]; /* FSD Attach data from FSD */ +} FSQBUFFER; typedef FSQBUFFER *PFSQBUFFER; -unsigned char CommentsEA[72] = -{ - 0x45, 0x00, 0x00, 0x00, 0x00, 0x09, 0x33, 0x00, 0x2E, 0x43, 0x4F, 0x4D, 0x4D, 0x45, 0x4E, 0x54, - 0x53, 0x00, 0xFD, 0xFF, 0x2E, 0x00, 0x54, 0x68, 0x69, 0x73, 0x20, 0x45, 0x41, 0x20, 0x63, 0x6F, - 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x73, 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x65, 0x6E, 0x74, 0x73, 0x20, - 0x66, 0x6F, 0x72, 0x20, 0x57, 0x6F, 0x72, 0x6B, 0x50, 0x6C, 0x61, 0x63, 0x65, 0x20, 0x53, 0x68, - 0x65, 0x6C, 0x6C, 0x2E, 0x00, 0x00, 0x00, 0x00 -}; +unsigned char CommentsEA[72] = {0x45, 0x00, 0x00, 0x00, 0x00, 0x09, 0x33, 0x00, 0x2E, 0x43, 0x4F, 0x4D, 0x4D, 0x45, + 0x4E, 0x54, 0x53, 0x00, 0xFD, 0xFF, 0x2E, 0x00, 0x54, 0x68, 0x69, 0x73, 0x20, 0x45, + 0x41, 0x20, 0x63, 0x6F, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x73, 0x20, 0x63, 0x6F, 0x6D, + 0x6D, 0x65, 0x6E, 0x74, 0x73, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x57, 0x6F, 0x72, 0x6B, + 0x50, 0x6C, 0x61, 0x63, 0x65, 0x20, 0x53, 0x68, 0x65, 0x6C, 0x6C, 0x2E, 0x00, 0x00, + 0x00, 0x00}; -unsigned char CommentsEACritical[72] = -{ - 0x45, 0x00, 0x00, 0x00, 0x80, 0x09, 0x33, 0x00, 0x2E, 0x43, 0x4F, 0x4D, 0x4D, 0x45, 0x4E, 0x54, - 0x53, 0x00, 0xFD, 0xFF, 0x2E, 0x00, 0x54, 0x68, 0x69, 0x73, 0x20, 0x45, 0x41, 0x20, 0x63, 0x6F, - 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x73, 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x65, 0x6E, 0x74, 0x73, 0x20, - 0x66, 0x6F, 0x72, 0x20, 0x57, 0x6F, 0x72, 0x6B, 0x50, 0x6C, 0x61, 0x63, 0x65, 0x20, 0x53, 0x68, - 0x65, 0x6C, 0x6C, 0x2E, 0x00, 0x00, 0x00, 0x00 -}; +unsigned char CommentsEACritical[72] = {0x45, 0x00, 0x00, 0x00, 0x80, 0x09, 0x33, 0x00, 0x2E, 0x43, 0x4F, 0x4D, 0x4D, + 0x45, 0x4E, 0x54, 0x53, 0x00, 0xFD, 0xFF, 0x2E, 0x00, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x45, 0x41, 0x20, 0x63, 0x6F, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x73, 0x20, + 0x63, 0x6F, 0x6D, 0x6D, 0x65, 0x6E, 0x74, 0x73, 0x20, 0x66, 0x6F, 0x72, 0x20, + 0x57, 0x6F, 0x72, 0x6B, 0x50, 0x6C, 0x61, 0x63, 0x65, 0x20, 0x53, 0x68, 0x65, + 0x6C, 0x6C, 0x2E, 0x00, 0x00, 0x00, 0x00}; -unsigned char IconEA[3516] = { - 0xBC, 0x0D, 0x00, 0x00, 0x00, 0x05, 0xAE, 0x0D, 0x2E, 0x49, 0x43, 0x4F, 0x4E, 0x00, 0xF9, 0xFF, - 0xAA, 0x0D, 0x42, 0x41, 0x28, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0xDA, 0x01, 0x00, 0x00, 0x0C, 0x00, - 0x00, 0x00, 0x20, 0x00, 0x40, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, - 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0xDA, 0x02, 0x00, 0x00, 0x0C, 0x00, - 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0x3F, - 0x80, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0xFF, 0xFF, 0xFF, 0x00, 0x80, 0x80, 0x00, 0x80, 0x00, 0x80, - 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x80, 0x80, 0x00, 0xFF, 0x00, 0xFF, 0x80, 0x00, 0x80, 0x00, 0xFF, - 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x42, 0x41, 0x28, 0x00, 0x00, 0x00, - 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x10, 0x00, - 0x10, 0x00, 0xDA, 0x04, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x40, 0x00, 0x01, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x10, 0x00, - 0x10, 0x00, 0xDA, 0x05, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x01, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x42, 0x41, 0x28, 0x00, 0x00, 0x00, 0x14, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, - 0x5A, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x01, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, - 0xDA, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x01, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x41, 0x28, 0x00, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x1A, 0x07, - 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x14, 0x00, 0x28, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0xBA, 0x07, - 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x42, 0x41, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x03, 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x0A, 0x08, 0x00, 0x00, - 0x0C, 0x00, 0x00, 0x00, 0x28, 0x00, 0x50, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, - 0xFF, 0xFF, 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x8A, 0x0A, 0x00, 0x00, - 0x0C, 0x00, 0x00, 0x00, 0x28, 0x00, 0x28, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x3F, - 0x3F, 0x3F, 0x80, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0xFF, 0xFF, 0xFF, 0x00, 0x80, 0x80, 0x80, 0xA0, - 0x80, 0x28, 0x50, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x80, 0x00, 0xD0, 0xD8, 0xB0, 0xC0, 0xFF, 0xFF, - 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0xFE, 0x3F, 0xFE, 0x0F, 0xF8, 0x3F, 0xFE, 0x0F, 0xF8, 0x3F, - 0xFE, 0x0F, 0xF8, 0x3F, 0xFE, 0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x7F, - 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x0F, - 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x0F, - 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x0F, - 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x3F, - 0xFC, 0x00, 0x00, 0x7F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x11, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x33, 0x12, 0x22, 0x22, 0x22, 0x22, 0x13, 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x13, 0x12, 0x22, 0x22, 0x22, 0x22, 0x13, 0x12, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x13, 0x11, 0x11, 0x11, 0x11, 0x11, 0x13, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x13, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x21, 0x31, 0x11, 0x11, 0x11, 0x11, 0x31, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, - 0x21, 0x31, 0x22, 0x22, 0x22, 0x21, 0x31, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, - 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x34, - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x41, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x41, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, - 0x46, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x44, 0x41, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x41, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, - 0x46, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x44, 0x41, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x41, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, - 0x46, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x44, 0x41, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x41, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, - 0x46, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x44, 0x41, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x01, 0x34, - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, - 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x14, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x07, 0xFC, 0x1F, 0xFC, 0x07, 0xF0, 0x1F, 0xFC, 0x07, 0xF0, 0x1F, 0xFC, 0x07, 0xF0, 0x1F, - 0xFC, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x3F, - 0xFE, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x07, - 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, - 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, - 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x1F, - 0xF8, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x7F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF8, 0x03, 0xE0, 0x03, 0x88, 0x0E, 0x20, 0x02, 0x08, 0x08, 0x20, 0x02, 0x88, 0x0A, 0x20, - 0x02, 0x8F, 0xFA, 0x20, 0x02, 0xC0, 0x06, 0x20, 0x01, 0x40, 0x04, 0x20, 0x01, 0x40, 0x04, 0x40, - 0x01, 0x7F, 0xFC, 0x60, 0x01, 0x20, 0x08, 0x10, 0x02, 0x20, 0x08, 0x08, 0x04, 0x00, 0x00, 0x08, - 0x0B, 0xFF, 0xFF, 0x88, 0x0B, 0xFF, 0xFF, 0x88, 0x0B, 0xFF, 0xFF, 0x88, 0x0B, 0x00, 0x03, 0x88, - 0x0B, 0xFF, 0xFF, 0x88, 0x0B, 0x00, 0x03, 0x88, 0x0B, 0xFF, 0xFF, 0x88, 0x0B, 0x00, 0x03, 0x88, - 0x0B, 0xFF, 0xFF, 0x88, 0x0B, 0x00, 0x03, 0x88, 0x0B, 0xFF, 0xFF, 0x90, 0x0B, 0xFF, 0xFF, 0xA0, - 0x04, 0x00, 0x00, 0x40, 0x03, 0xFD, 0x7F, 0x80, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xED, 0x41, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x27, 0x09, - 0x00, 0x00, 0xF5, 0x08, 0x00, 0x00, 0x1F, 0x09, 0x00, 0x00, 0x4A, 0x09, 0x00, 0x00, 0x9F, 0x0A, - 0x00, 0x00, 0xE3, 0x0A, 0x00, 0x00, 0xE4, 0x09, 0x00, 0x00, 0x02, 0x0A, 0x00, 0x00, 0x29, 0x0A, - 0x00, 0x00, 0x55, 0x0A, 0x00, 0x00, 0x72, 0x0A, 0x00, 0x00, 0x88, 0x0A, 0xFF, 0xFF, 0x00, 0x00, - 0xE7, 0xCF, 0xE5, 0x1C, 0xE7, 0xCF, 0x65, 0x00, 0xF0, 0x1F, 0xDD, 0x04, 0xF3, 0x9F, 0xF2, 0x03, - 0xE0, 0x0F, 0xC7, 0x04, 0xDF, 0xF7, 0x0B, 0x05, 0xDF, 0xF7, 0xF8, 0x04, 0xDF, 0xF7, 0x32, 0x04, - 0xDF, 0xF7, 0xA8, 0x04, 0xDF, 0xF7, 0x9E, 0x04, 0xDF, 0xF7, 0xBA, 0x04, 0xE0, 0x0F, 0x7A, 0x04, - 0xFD, 0x7F, 0x85, 0x04, 0xFE, 0xFF, 0xFF, 0x04, 0xFF, 0xFF, 0xDF, 0x04, 0xFF, 0xFF, 0x00, 0x00, - 0xE7, 0xCF, 0x00, 0x1F, 0xE7, 0xCF, 0x00, 0x1F, 0xF0, 0x1F, 0x00, 0x1F, 0xF3, 0x9F, 0x00, 0x1F, - 0xE0, 0x0F, 0x00, 0x1F, 0xDF, 0xF7, 0x00, 0x1F, 0xDF, 0xF7, 0x00, 0x1F, 0xDF, 0xF7, 0x00, 0x1F, - 0xDF, 0xF7, 0x00, 0x1F, 0xDF, 0xF7, 0x00, 0x1F, 0xDF, 0xF7, 0x00, 0x7F, 0xE0, 0x0F, 0x00, 0x7F, - 0xFD, 0x7F, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x33, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x7F, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF0, 0x00, - 0xE3, 0xF1, 0xF0, 0x00, 0xEB, 0xF5, 0xF1, 0x11, 0xE9, 0xE5, 0xF0, 0x00, 0xF4, 0x0B, 0xF0, 0x00, - 0xF7, 0xFB, 0xF0, 0x00, 0xFA, 0x17, 0xF1, 0x11, 0xFA, 0xD7, 0xF0, 0x00, 0xE0, 0x01, 0xF0, 0x0F, - 0xDF, 0xFE, 0xF0, 0x00, 0xDF, 0xFE, 0xFF, 0xFF, 0xDF, 0xFE, 0xF0, 0x00, 0xDF, 0xFE, 0xFF, 0xFF, - 0xDF, 0xFE, 0xFF, 0xFF, 0xDF, 0xFE, 0xF0, 0x00, 0xDF, 0xFE, 0xFF, 0xFF, 0xE0, 0x01, 0xFF, 0xFF, - 0xFF, 0x5F, 0xFF, 0xFF, 0xFF, 0xBF, 0xF6, 0x66, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, - 0xE3, 0xF1, 0xF0, 0x01, 0xEB, 0xF5, 0xF1, 0x11, 0xE9, 0xE5, 0xF0, 0x00, 0xF4, 0x0B, 0xF0, 0x01, - 0xF7, 0xFB, 0xF1, 0x11, 0xFA, 0x17, 0xF0, 0x00, 0xFA, 0xD7, 0xF0, 0x01, 0xE0, 0x01, 0xF1, 0x11, - 0xDF, 0xFE, 0xF0, 0x00, 0xDF, 0xFE, 0xF0, 0x01, 0xDF, 0xFE, 0xF1, 0x11, 0xDF, 0xFE, 0xF0, 0x00, - 0xDF, 0xFE, 0xF0, 0x00, 0xDF, 0xFE, 0xF0, 0x00, 0xDF, 0xFE, 0xF0, 0x00, 0xE0, 0x01, 0xF0, 0x00, - 0xFF, 0x5F, 0xF1, 0x00, 0xFF, 0xBF, 0xF0, 0x00, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x88, 0x88, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x88, 0x80, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x88, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x7F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x33, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x80, 0x88, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF7, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x88, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x88, 0x88, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x87, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0x88, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x7F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x33, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF7, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x77, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x87, 0x08, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x88, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x7F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x33, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF7, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x88, 0x88, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xF0, 0x66, 0x66, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xFF, 0xC3, 0xFF, 0xE1, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0x81, 0xFF, 0x07, 0x00, 0x00, 0xFF, 0x03, 0xFF, 0x81, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0x81, 0xFF, 0xFF, 0x06, 0x60, 0xFF, 0x01, 0xFF, 0x01, - 0xFF, 0x00, 0x37, 0x77, 0xFF, 0x00, 0x00, 0x01, 0xFF, 0x77, 0x77, 0x77, 0xFF, 0x80, 0x00, 0x03, - 0xFF, 0xEE, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x03, 0xFF, 0x33, 0x33, 0x33, 0xFF, 0x80, 0x00, 0x03, - 0xFF, 0x00, 0x00, 0xEE, 0xFF, 0xC0, 0x00, 0x03, 0xFF, 0x00, 0x33, 0x33, 0xFF, 0xC0, 0x00, 0x01, - 0xFF, 0x33, 0x33, 0x33, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x0E, 0xEE, 0x00, 0xFE, 0x00, 0x00, 0x00, - 0x7F, 0x33, 0x33, 0x33, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, - 0x7F, 0x00, 0x33, 0x33, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0x33, 0x33, 0x33, 0xFC, 0x00, 0x00, 0x00, - 0x7F, 0xEE, 0x0E, 0xEE, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0x33, 0x33, 0x33, 0xFC, 0x00, 0x00, 0x00, - 0x7F, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x33, 0x33, 0xFC, 0x00, 0x00, 0x00, - 0x7F, 0x33, 0x33, 0x33, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0x0E, 0xEE, 0x0E, 0xFC, 0x00, 0x00, 0x00, - 0x7F, 0x33, 0x33, 0x33, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, - 0x7F, 0x40, 0x33, 0x33, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0x33, 0x33, 0x33, 0xFC, 0x00, 0x00, 0x00, - 0xFF, 0x00, 0x0E, 0x00, 0xFC, 0x00, 0x00, 0x01, 0xFF, 0x33, 0x33, 0x33, 0xFE, 0x00, 0x00, 0x03, - 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xF0, 0x33, 0x33, 0xFF, 0xFF, 0x87, 0xFF, - 0xFF, 0x33, 0x33, 0x33, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x33, 0x33, 0x33, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x5D, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x12, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x33, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x31, 0x22, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x33, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x13, 0x33, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x13, 0x33, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x11, 0x33, 0x12, 0x22, 0x22, 0x22, 0x22, 0x22, 0x13, 0x33, 0x12, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x33, 0x12, 0x22, 0x22, 0x22, 0x22, 0x22, - 0x13, 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x33, 0x31, 0x11, - 0x11, 0x11, 0x11, 0x11, 0x33, 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x12, 0x22, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x31, 0x11, 0x11, 0x11, 0x11, 0x11, - 0x33, 0x12, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x13, 0x33, 0x12, - 0x22, 0x22, 0x22, 0x13, 0x33, 0x12, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x12, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x13, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x43, 0x12, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, - 0x44, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x44, 0x44, 0x44, - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x14, 0x44, 0x43, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x12, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x49, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, - 0x99, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x44, 0x44, 0x44, - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, - 0x44, 0x43, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x14, 0x44, 0x49, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x44, 0x44, 0x12, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, - 0x44, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x43, 0x33, 0x33, - 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, - 0x44, 0x49, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x14, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x12, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, - 0x44, 0x44, 0x44, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x44, 0x44, 0x44, 0x44, - 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x43, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x33, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x33, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; +unsigned char IconEA[3516] = {0xBC, 0x0D, 0x00, 0x00, 0x00, 0x05, 0xAE, 0x0D, 0x2E, 0x49, 0x43, 0x4F, 0x4E, 0x00, 0xF9, + 0xFF, 0xAA, 0x0D, 0x42, 0x41, 0x28, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0xDA, 0x01, 0x00, + 0x00, 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x40, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0xDA, + 0x02, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x01, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x3F, 0x3F, 0x3F, 0x80, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0xFF, 0xFF, 0xFF, + 0x00, 0x80, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x80, 0x80, 0x00, + 0xFF, 0x00, 0xFF, 0x80, 0x00, 0x80, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, + 0xFF, 0x00, 0x00, 0x42, 0x41, 0x28, 0x00, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0xDA, 0x04, 0x00, + 0x00, 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x40, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0xDA, + 0x05, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x01, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x42, 0x41, 0x28, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, + 0x5A, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x01, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x08, 0x00, 0xDA, 0x06, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x01, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x41, 0x28, 0x00, 0x00, 0x00, + 0x62, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x49, 0x1A, 0x00, 0x00, 0x00, 0x0A, + 0x00, 0x0A, 0x00, 0x1A, 0x07, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x14, 0x00, 0x28, 0x00, + 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x43, 0x49, 0x1A, 0x00, 0x00, + 0x00, 0x0A, 0x00, 0x0A, 0x00, 0xBA, 0x07, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x14, 0x00, + 0x14, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x41, 0x28, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x03, 0x43, 0x49, 0x1A, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x0A, 0x08, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x28, + 0x00, 0x50, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x43, 0x49, + 0x1A, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x8A, 0x0A, 0x00, 0x00, 0x0C, 0x00, 0x00, + 0x00, 0x28, 0x00, 0x28, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0x3F, + 0x80, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0xFF, 0xFF, 0xFF, 0x00, 0x80, 0x80, 0x80, 0xA0, 0x80, + 0x28, 0x50, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x80, 0x00, 0xD0, 0xD8, 0xB0, 0xC0, 0xFF, 0xFF, + 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, + 0xFE, 0x3F, 0xFE, 0x0F, 0xF8, 0x3F, 0xFE, 0x0F, 0xF8, 0x3F, 0xFE, 0x0F, 0xF8, 0x3F, 0xFE, + 0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x7F, + 0xFF, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, + 0x0F, 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, + 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x0F, 0xF8, + 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x3F, + 0xFC, 0x00, 0x00, 0x7F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x22, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x22, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x31, 0x22, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x31, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x33, 0x12, 0x22, 0x22, 0x22, 0x22, 0x13, + 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x12, 0x22, 0x22, 0x22, 0x22, + 0x13, 0x12, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x11, 0x11, 0x11, 0x11, + 0x11, 0x13, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x31, 0x11, + 0x11, 0x11, 0x11, 0x31, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x21, 0x31, + 0x22, 0x22, 0x22, 0x21, 0x31, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x34, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x41, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x41, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x44, 0x46, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x44, 0x41, 0x22, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x41, 0x22, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x44, 0x46, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x44, 0x41, 0x22, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x41, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x46, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x44, + 0x41, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x41, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x46, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x44, 0x41, 0x22, 0x00, 0x00, 0x00, 0x00, 0x01, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0x44, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x01, 0x34, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0x44, 0x44, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x11, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x14, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFC, + 0x1F, 0xFC, 0x07, 0xF0, 0x1F, 0xFC, 0x07, 0xF0, 0x1F, 0xFC, 0x07, 0xF0, 0x1F, 0xFC, 0x00, + 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x3F, 0xFE, + 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x07, + 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, + 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, + 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x0F, 0xF0, + 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x7F, 0xFF, 0xFC, 0x7F, 0xFF, + 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x03, 0xE0, 0x03, 0x88, 0x0E, 0x20, 0x02, 0x08, + 0x08, 0x20, 0x02, 0x88, 0x0A, 0x20, 0x02, 0x8F, 0xFA, 0x20, 0x02, 0xC0, 0x06, 0x20, 0x01, + 0x40, 0x04, 0x20, 0x01, 0x40, 0x04, 0x40, 0x01, 0x7F, 0xFC, 0x60, 0x01, 0x20, 0x08, 0x10, + 0x02, 0x20, 0x08, 0x08, 0x04, 0x00, 0x00, 0x08, 0x0B, 0xFF, 0xFF, 0x88, 0x0B, 0xFF, 0xFF, + 0x88, 0x0B, 0xFF, 0xFF, 0x88, 0x0B, 0x00, 0x03, 0x88, 0x0B, 0xFF, 0xFF, 0x88, 0x0B, 0x00, + 0x03, 0x88, 0x0B, 0xFF, 0xFF, 0x88, 0x0B, 0x00, 0x03, 0x88, 0x0B, 0xFF, 0xFF, 0x88, 0x0B, + 0x00, 0x03, 0x88, 0x0B, 0xFF, 0xFF, 0x90, 0x0B, 0xFF, 0xFF, 0xA0, 0x04, 0x00, 0x00, 0x40, + 0x03, 0xFD, 0x7F, 0x80, 0x00, 0x02, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xED, 0x41, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x27, 0x09, 0x00, + 0x00, 0xF5, 0x08, 0x00, 0x00, 0x1F, 0x09, 0x00, 0x00, 0x4A, 0x09, 0x00, 0x00, 0x9F, 0x0A, + 0x00, 0x00, 0xE3, 0x0A, 0x00, 0x00, 0xE4, 0x09, 0x00, 0x00, 0x02, 0x0A, 0x00, 0x00, 0x29, + 0x0A, 0x00, 0x00, 0x55, 0x0A, 0x00, 0x00, 0x72, 0x0A, 0x00, 0x00, 0x88, 0x0A, 0xFF, 0xFF, + 0x00, 0x00, 0xE7, 0xCF, 0xE5, 0x1C, 0xE7, 0xCF, 0x65, 0x00, 0xF0, 0x1F, 0xDD, 0x04, 0xF3, + 0x9F, 0xF2, 0x03, 0xE0, 0x0F, 0xC7, 0x04, 0xDF, 0xF7, 0x0B, 0x05, 0xDF, 0xF7, 0xF8, 0x04, + 0xDF, 0xF7, 0x32, 0x04, 0xDF, 0xF7, 0xA8, 0x04, 0xDF, 0xF7, 0x9E, 0x04, 0xDF, 0xF7, 0xBA, + 0x04, 0xE0, 0x0F, 0x7A, 0x04, 0xFD, 0x7F, 0x85, 0x04, 0xFE, 0xFF, 0xFF, 0x04, 0xFF, 0xFF, + 0xDF, 0x04, 0xFF, 0xFF, 0x00, 0x00, 0xE7, 0xCF, 0x00, 0x1F, 0xE7, 0xCF, 0x00, 0x1F, 0xF0, + 0x1F, 0x00, 0x1F, 0xF3, 0x9F, 0x00, 0x1F, 0xE0, 0x0F, 0x00, 0x1F, 0xDF, 0xF7, 0x00, 0x1F, + 0xDF, 0xF7, 0x00, 0x1F, 0xDF, 0xF7, 0x00, 0x1F, 0xDF, 0xF7, 0x00, 0x1F, 0xDF, 0xF7, 0x00, + 0x1F, 0xDF, 0xF7, 0x00, 0x7F, 0xE0, 0x0F, 0x00, 0x7F, 0xFD, 0x7F, 0xFF, 0xFF, 0xFE, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x33, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x7F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF0, 0x00, + 0xE3, 0xF1, 0xF0, 0x00, 0xEB, 0xF5, 0xF1, 0x11, 0xE9, 0xE5, 0xF0, 0x00, 0xF4, 0x0B, 0xF0, + 0x00, 0xF7, 0xFB, 0xF0, 0x00, 0xFA, 0x17, 0xF1, 0x11, 0xFA, 0xD7, 0xF0, 0x00, 0xE0, 0x01, + 0xF0, 0x0F, 0xDF, 0xFE, 0xF0, 0x00, 0xDF, 0xFE, 0xFF, 0xFF, 0xDF, 0xFE, 0xF0, 0x00, 0xDF, + 0xFE, 0xFF, 0xFF, 0xDF, 0xFE, 0xFF, 0xFF, 0xDF, 0xFE, 0xF0, 0x00, 0xDF, 0xFE, 0xFF, 0xFF, + 0xE0, 0x01, 0xFF, 0xFF, 0xFF, 0x5F, 0xFF, 0xFF, 0xFF, 0xBF, 0xF6, 0x66, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0xE3, 0xF1, 0xF0, 0x01, 0xEB, 0xF5, 0xF1, 0x11, 0xE9, 0xE5, + 0xF0, 0x00, 0xF4, 0x0B, 0xF0, 0x01, 0xF7, 0xFB, 0xF1, 0x11, 0xFA, 0x17, 0xF0, 0x00, 0xFA, + 0xD7, 0xF0, 0x01, 0xE0, 0x01, 0xF1, 0x11, 0xDF, 0xFE, 0xF0, 0x00, 0xDF, 0xFE, 0xF0, 0x01, + 0xDF, 0xFE, 0xF1, 0x11, 0xDF, 0xFE, 0xF0, 0x00, 0xDF, 0xFE, 0xF0, 0x00, 0xDF, 0xFE, 0xF0, + 0x00, 0xDF, 0xFE, 0xF0, 0x00, 0xE0, 0x01, 0xF0, 0x00, 0xFF, 0x5F, 0xF1, 0x00, 0xFF, 0xBF, + 0xF0, 0x00, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x7F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x80, + 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x33, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x80, 0x88, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xF7, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x88, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x88, 0x88, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x7F, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x87, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x33, 0x33, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x88, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x7F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x77, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x08, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x33, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x88, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xF7, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x88, 0x88, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x7F, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x88, 0x88, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x33, 0x33, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x7F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, + 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xF0, 0x66, 0x66, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xFF, 0xC3, + 0xFF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0x81, 0xFF, 0x07, 0x00, 0x00, 0xFF, + 0x03, 0xFF, 0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0x81, 0xFF, 0xFF, 0x06, 0x60, + 0xFF, 0x01, 0xFF, 0x01, 0xFF, 0x00, 0x37, 0x77, 0xFF, 0x00, 0x00, 0x01, 0xFF, 0x77, 0x77, + 0x77, 0xFF, 0x80, 0x00, 0x03, 0xFF, 0xEE, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x03, 0xFF, 0x33, + 0x33, 0x33, 0xFF, 0x80, 0x00, 0x03, 0xFF, 0x00, 0x00, 0xEE, 0xFF, 0xC0, 0x00, 0x03, 0xFF, + 0x00, 0x33, 0x33, 0xFF, 0xC0, 0x00, 0x01, 0xFF, 0x33, 0x33, 0x33, 0xFF, 0x00, 0x00, 0x00, + 0xFF, 0x0E, 0xEE, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x7F, 0x33, 0x33, 0x33, 0xFC, 0x00, 0x00, + 0x00, 0x7F, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x33, 0x33, 0xFC, 0x00, + 0x00, 0x00, 0x7F, 0x33, 0x33, 0x33, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0xEE, 0x0E, 0xEE, 0xFC, + 0x00, 0x00, 0x00, 0x7F, 0x33, 0x33, 0x33, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, + 0xFC, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x33, 0x33, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0x33, 0x33, + 0x33, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0x0E, 0xEE, 0x0E, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0x33, + 0x33, 0x33, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x7F, + 0x40, 0x33, 0x33, 0xFC, 0x00, 0x00, 0x00, 0x7F, 0x33, 0x33, 0x33, 0xFC, 0x00, 0x00, 0x00, + 0xFF, 0x00, 0x0E, 0x00, 0xFC, 0x00, 0x00, 0x01, 0xFF, 0x33, 0x33, 0x33, 0xFE, 0x00, 0x00, + 0x03, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xF0, 0x33, 0x33, 0xFF, 0xFF, + 0x87, 0xFF, 0xFF, 0x33, 0x33, 0x33, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0x00, 0x00, 0x04, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x33, 0x33, 0x33, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x5D, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x11, 0x11, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x12, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x33, + 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x31, 0x22, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x33, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x13, 0x33, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x13, 0x33, 0x12, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x33, 0x12, 0x22, 0x22, 0x22, 0x22, 0x22, 0x13, 0x33, + 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x33, 0x12, 0x22, 0x22, + 0x22, 0x22, 0x22, 0x13, 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x33, 0x31, 0x11, 0x11, 0x11, 0x11, 0x11, 0x33, 0x31, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x31, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x33, 0x33, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x12, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x13, 0x31, 0x11, 0x11, 0x11, 0x11, 0x11, 0x33, 0x12, 0x22, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x13, 0x33, 0x12, 0x22, 0x22, 0x22, 0x13, 0x33, 0x12, + 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x11, 0x11, 0x11, 0x11, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x43, 0x12, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x43, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, + 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x49, 0x99, 0x99, 0x99, + 0x99, 0x99, 0x99, 0x99, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x43, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, + 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x49, 0x99, 0x99, 0x99, + 0x99, 0x99, 0x99, 0x99, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x43, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, + 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x49, 0x99, 0x99, 0x99, + 0x99, 0x99, 0x99, 0x99, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x12, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x43, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x33, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x33, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; #endif + #endif diff --git a/fstester/setter/os2_32.c b/fstester/setter/os2_32.c index aec13ea7..139cd20a 100644 --- a/fstester/setter/os2_32.c +++ b/fstester/setter/os2_32.c @@ -32,18 +32,13 @@ Copyright (C) 2011-2018 Natalia Portillo #if (defined(__I386__) || defined (__i386__) || defined (__THW_INTEL) || defined (_M_IX86)) && (defined(__OS2__) || defined (__os2__)) #include -#include -#include -#include #define INCL_DOSMISC #define INCL_DOSFILEMGR + #include #include "defs.h" -#include "os2_16.h" -#include "dosos2.h" -#include "consts.h" void GetOsInfo() { @@ -62,17 +57,17 @@ void FileAttributes(const char *path) void FilePermissions(const char *path) { - /* Do nothing, not supported by target operating system */ + /* Do nothing, not supported by target operating system */ } void ExtendedAttributes(const char *path) { - /* Do nothing, not supported by target operating system */ + /* Do nothing, not supported by target operating system */ } void ResourceFork(const char *path) { - /* Do nothing, not supported by target operating system */ + /* Do nothing, not supported by target operating system */ } void Filenames(const char *path) @@ -99,7 +94,12 @@ void Fragmentation(const char *path, size_t clusterSize) void Sparse(const char *path) { - /* Do nothing, not supported by target operating system */ + /* Do nothing, not supported by target operating system */ +} + +void Links(const char *path) +{ + // TODO: Check if can ask WPS to make Shadow } void MillionFiles(const char *path) diff --git a/fstester/setter/os2_32.h b/fstester/setter/os2_32.h index dfa58ae3..80df6f4c 100644 --- a/fstester/setter/os2_32.h +++ b/fstester/setter/os2_32.h @@ -32,7 +32,7 @@ Copyright (C) 2011-2018 Natalia Portillo #if (defined(__OS2__) || defined (__os2__)) && (defined(__I386__) || defined (__i386__) || defined (__THW_INTEL) || defined (_M_IX86)) #define INCL_DOSMISC + #include - #endif diff --git a/fstester/setter/unix.c b/fstester/setter/unix.c index 7fcd520e..a22c0ac6 100644 --- a/fstester/setter/unix.c +++ b/fstester/setter/unix.c @@ -1,4 +1,108 @@ -// -// Created by claunia on 11/01/18. -// +/**************************************************************************** +The Disc Image Chef +----------------------------------------------------------------------------- +Filename : win32.c +Author(s) : Natalia Portillo + +Component : fstester.setter.os2 + +--[ Description ] ----------------------------------------------------------- + +Contains 32-bit and 64-bit Windows code + +--[ License ] --------------------------------------------------------------- + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warraty of + MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +----------------------------------------------------------------------------- +Copyright (C) 2011-2018 Natalia Portillo +*****************************************************************************/ + +#if defined (unix) || defined (UNIX) || defined (__unix) || defined (__unix__) || defined (__UNIX__) + +#include + +#include "defs.h" + +void GetOsInfo() +{ + // TODO: Implement +} + +void GetVolumeInfo(const char *path, size_t *clusterSize) +{ + // TODO: Implement +} + +void FileAttributes(const char *path) +{ + // TODO: Implement +} + +void FilePermissions(const char *path) +{ + /* Do nothing, not supported by target operating system */ +} + +void ExtendedAttributes(const char *path) +{ + // TODO: Implement +} + +void ResourceFork(const char *path) +{ + // TODO: Implement with ADS +} + +void Filenames(const char *path) +{ + // TODO: Implement +} + +void Timestamps(const char *path) +{ + // TODO: Implement +} + +void DirectoryDepth(const char *path) +{ + // TODO: Implement +} + +void Fragmentation(const char *path, size_t clusterSize) +{ + // TODO: Implement +} + +void Sparse(const char *path) +{ + // TODO: Implement +} + +void Links(const char *path) +{ + // TODO: Implement +} + +void MillionFiles(const char *path) +{ + // TODO: Implement +} + +void DeleteFiles(const char *path) +{ + // TODO: Implement +} + +#endif diff --git a/fstester/setter/win32.c b/fstester/setter/win32.c index 70a1fabd..ba7c0199 100644 --- a/fstester/setter/win32.c +++ b/fstester/setter/win32.c @@ -32,12 +32,8 @@ Copyright (C) 2011-2018 Natalia Portillo #if defined(__WINDOWS__) || defined (__TOS_WIN__) || defined (__WIN32__) || defined (_WIN64) || defined (_WIN32) || defined (__NT__) #include -#include -#include -#include #include "defs.h" -#include "consts.h" void GetOsInfo() { @@ -56,17 +52,17 @@ void FileAttributes(const char *path) void FilePermissions(const char *path) { - /* Do nothing, not supported by target operating system */ + /* Do nothing, not supported by target operating system */ } void ExtendedAttributes(const char *path) { - // TODO: Implement + // TODO: Implement } void ResourceFork(const char *path) { - // TODO: Implement with ADS + // TODO: Implement with ADS } void Filenames(const char *path) @@ -91,7 +87,12 @@ void Fragmentation(const char *path, size_t clusterSize) void Sparse(const char *path) { - // TODO: Implement + // TODO: Implement +} + +void Links(const char *path) +{ + // TODO: Implement } void MillionFiles(const char *path) @@ -103,4 +104,5 @@ void DeleteFiles(const char *path) { // TODO: Implement } + #endif