From 94eba936f3110d562f7e4df626098eaa681d95ae Mon Sep 17 00:00:00 2001 From: Mixac1 Date: Fri, 4 Mar 2016 14:40:04 +0300 Subject: [PATCH] Added print all files --- disk | Bin 20428 -> 34937 bytes disk.cpp | 108 ++++++++++++++++++++++++++++++++++--------------------- 2 files changed, 67 insertions(+), 41 deletions(-) diff --git a/disk b/disk index 254d8718aa6515ad351a49743c688b2ac169549e..d7a62142b6968a4c58ba540fba9134da221dd68e 100755 GIT binary patch literal 34937 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 literal 20428 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 diff --git a/disk.cpp b/disk.cpp index a5eed16..0720539 100644 --- a/disk.cpp +++ b/disk.cpp @@ -1,11 +1,10 @@ #include #include #include +#include #include -#define SECTOR_SIZE 256 -#define SECTOR_COUNT 16 -#define VTOC_OFFSET SECTOR_COUNT * 17 * SECTOR_SIZE +#define FDIR_OFFSET 128 * 16 using namespace std; @@ -40,11 +39,42 @@ public: static Disk _this; return _this.disk; } + + static int findFile(int offset) { + Disk::getDisk().seekg(offset); + while (!(Disk::read(1) && 0x80)) { + ++offset; + } + return offset; + } + + static void volumeInfo() { + Disk::getDisk().seekg(64 * 16); + cout << hex; + cout << "--------------------" << endl; + cout << "always $D2D7 " << Disk::read(2) << endl; + cout << "date and time of initialization " << Disk::read(4) << endl; + cout << "date and time of last backup " << Disk::read(4) << endl; + cout << "volume attributes " << Disk::read(2) << endl; + cout << "number of files in directory " << Disk::read(2) << endl; + cout << "first block of directory " << Disk::read(2) << endl; + cout << "length of directory in blocks " << Disk::read(2) << endl; + cout << "number of allocation blocks on volume " << Disk::read(2) << endl; + cout << "size of allocation blocks " << Disk::read(4) << endl; + cout << "number of bytes to allocate " << Disk::read(4) << endl; + cout << "first allocation block in block map " << Disk::read(2) << endl; + cout << "next unused file number " << Disk::read(4) << endl; + cout << "number of unused allocation blocks " << Disk::read(2) << endl; + cout << "length of volume name " << Disk::read(1) << endl; + cout << "characters of volume namealways $D2D7 " << Disk::read(4) << endl; + cout << "--------------------" << endl; + } }; class File { public: + int flFIags; int flTyp; int flUsrWds; @@ -66,7 +96,7 @@ public: File(int offset) { Disk::getDisk().seekg(offset); flFIags = Disk::read(1); - if (isValid()) { + if (flFIags & 0x80) { flTyp = Disk::read(1); flUsrWds = Disk::read(16); flFINum = Disk::read(4); @@ -90,58 +120,54 @@ public: if (fEnd % 2) { ++fEnd; } - printAll(); } } - bool isValid() { - /*return flFIags & 0x80;*/ - return flFIags == 0x80; - } - void printAll() { - cout << "--------------------" << endl; cout << hex; - cout << flFIags << endl; - cout << flTyp << endl; - cout << flUsrWds << endl; - cout << flFINum << endl; - cout << flStBlk << endl; - cout << flLgLen << endl; - cout << flPyLen << endl; - cout << flRStBlk << endl; - cout << flRLgLen << endl; - cout << flRPyLen << endl; - cout << flCrDat << endl; - cout << flMdDat << endl; - cout << flNam << endl; - printFileName(); + cout << "--------------------" << endl; + cout << "flags " << flFIags << endl; + cout << "version number " << flTyp << endl; + cout << "information used by the Finder " << flUsrWds << endl; + cout << "file number " << flFINum << endl; + cout << "first allocation block of data fork " << flStBlk << endl; + cout << "logical end-of-file of data fork " << flLgLen << endl; + cout << "physical end-of-file of data fork " << flPyLen << endl; + cout << "first allocation block of resource fork " << flRStBlk << endl; + cout << "logical end-of-file of resource fork " << flRLgLen << endl; + cout << "physical end-of-file of resource fork " << flRPyLen << endl; + cout << "date and time of creation " << flCrDat << endl; + cout << "date and time of last modification " << flMdDat << endl; + cout << "length of file name " << flNam << endl; cout << "--------------------" << endl; } void printFileName() { - cout << "\\" << flNamS << "\\" << endl; + cout << "File name: " << flNamS << endl; } }; -int main() { - int fBegin = 128 * 16; - /*for(;;) { - File f(fBegin); - if (!f.isValid()) { - break; - } - fBegin = f.fEnd; - f.printFileName(); - } - File f1(fBegin + 20); - File f2(f1.fEnd);*/ +int main() { - /* SUPER FINDER!!!!!!!!!!!! */ - for (int i = 0; i < 10000000; ++i) { - File f(i); + Disk::getDisk().seekg(64 * 16 + 12); + int fileCount = Disk::read(2); + vector< File > files; + + + int fBegin = FDIR_OFFSET; + for(int i = 0; i < fileCount; ++i) { + fBegin = Disk::findFile(fBegin); + files.emplace_back(fBegin); + fBegin = files.back().fEnd; + + cout << "counter: " << i << endl; + files.back().printFileName(); + files.back().printAll(); + cout << endl << endl; } + Disk::volumeInfo(); + return 1; } \ No newline at end of file