From f87c65a93fe5e6da75810ebf5d46db65c3cfd9a8 Mon Sep 17 00:00:00 2001 From: Mixac1 Date: Fri, 19 Feb 2016 13:02:09 +0300 Subject: [PATCH] Add print file names --- disk | Bin 16013 -> 20428 bytes disk.cpp | 171 ++++++++++++++++++++++++++++++++++++++----------------- 2 files changed, 118 insertions(+), 53 deletions(-) diff --git a/disk b/disk index a9e43a49a694dec1ed99f75862c8a11bcf8714d5..254d8718aa6515ad351a49743c688b2ac169549e 100755 GIT binary patch literal 20428 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 literal 16013 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 lPQ9fY)oXrROS$aj(W%^k=oM=if`X84TnH~TD diff --git a/disk.cpp b/disk.cpp index a4fab10..a5eed16 100644 --- a/disk.cpp +++ b/disk.cpp @@ -11,72 +11,137 @@ using namespace std; class Disk { - struct VTOC { - int track; - int sector; + fstream disk; - init() { - track = read(VTOC_OFFSET + 1); - } - }; + Disk() { + disk.open("copy.dsk", ios_base::binary | ios_base::in); + } - VTOC s; - fstream disk; + ~Disk() { + disk.close(); + } + + Disk(const Disk&) = delete; + + Disk& operator=(const Disk&) = delete; public: - Disk() { - disk.open("copy.dsk", ios_base::binary | ios_base::in); - s.init(); - } + static int read(int size) { + int res = 0; + for (int i = 0; i < size; ++i) { + res = res << 8; + res |= getDisk().get(); + } + return res; + } - ~Disk() { - disk.close(); - } + static fstream& getDisk() { + static Disk _this; + return _this.disk; + } +}; - Disk(const Disk&) = delete; +class File { - Disk& operator=(const Disk&) = delete; +public: + int flFIags; + int flTyp; + int flUsrWds; + int flFINum; + int flStBlk; + int flLgLen; + int flPyLen; + int flRStBlk; + int flRLgLen; + int flRPyLen; + int flCrDat; + int flMdDat; + int flNam; + string flNamS; - int read(int offset) { - disk.seekg(offset); - return disk.get(); - } + int fBegin; + int fEnd; - /*int getNextSector(int this_sector) { - disk.seekg(this_sector + 1); - int track = disk.get(); - int sector = disk.get(); - return ((track * SECTOR_COUNT) + sector) * SECTOR_SIZE; - } + File(int offset) { + Disk::getDisk().seekg(offset); + flFIags = Disk::read(1); + if (isValid()) { + flTyp = Disk::read(1); + flUsrWds = Disk::read(16); + flFINum = Disk::read(4); + flStBlk = Disk::read(2); + flLgLen = Disk::read(4); + flPyLen = Disk::read(4); + flRStBlk = Disk::read(2); + flRLgLen = Disk::read(4); + flRPyLen = Disk::read(4); + flCrDat = Disk::read(4); + flMdDat = Disk::read(4); + flNam = Disk::read(1); - int getName(int this_sector) { - disk.seekg(this_sector + 14); - char name[31]; - disk.get(name, 30); - string s(name); - for (int i=0; i<30; i++) cout << name[i]; - cout << s << endl; - return 0; - }*/ + char *temp = new char[flNam + 1]; + Disk::getDisk().get(temp, flNam + 1); + flNamS = string(temp); + delete temp; - void printSector(int offset, int size, int strsize) { - disk.seekg(offset); - size /= 2; - for (int i = 1; i <= size; ++i) { - cout << hex << setw(2) << setfill('0') << disk.get(); - cout << hex << setw(2) << setfill('0') << disk.get() << " "; - if (!(i % strsize)) { - cout << endl; - } - } - cout << endl; - } + fBegin = offset; + fEnd = fBegin + 51 + flNam; + 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; + } + + void printFileName() { + cout << "\\" << flNamS << "\\" << endl; + } }; -int main() { - Disk disk; - disk.printSector(VTOC_OFFSET, SECTOR_SIZE, 8); - return 1; +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);*/ + + /* SUPER FINDER!!!!!!!!!!!! */ + for (int i = 0; i < 10000000; ++i) { + File f(i); + } + + return 1; } \ No newline at end of file