dsktool 0.4.2 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/dskexplorer.rb +1 -1
- data/bin/dskexplorer.rb~ +365 -0
- data/bin/dsktool.rb +7 -3
- data/bin/dsktool.rb~ +173 -0
- data/doc/classes/AppleSoftFile.html +199 -0
- data/doc/classes/AppleSoftFile.src/M000005.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000006.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000008.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000009.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000010.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000055.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000056.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000057.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000058.html +18 -0
- data/doc/classes/BinaryFile.html +241 -0
- data/doc/classes/BinaryFile.src/M000015.html +18 -0
- data/doc/classes/BinaryFile.src/M000020.html +18 -0
- data/doc/classes/BinaryFile.src/M000021.html +18 -0
- data/doc/classes/BinaryFile.src/M000022.html +19 -0
- data/doc/classes/BinaryFile.src/M000107.html +18 -0
- data/doc/classes/BinaryFile.src/M000108.html +18 -0
- data/doc/classes/BinaryFile.src/M000109.html +18 -0
- data/doc/classes/BinaryFile.src/M000110.html +19 -0
- data/doc/classes/BinaryFile.src/M000111.html +19 -0
- data/doc/classes/BinaryFile.src/M000112.html +19 -0
- data/doc/classes/BinaryFile.src/M000113.html +18 -0
- data/doc/classes/CPMDisk.html +331 -0
- data/doc/classes/CPMDisk.src/M000024.html +21 -0
- data/doc/classes/CPMDisk.src/M000025.html +23 -0
- data/doc/classes/CPMDisk.src/M000026.html +23 -0
- data/doc/classes/CPMDisk.src/M000027.html +19 -0
- data/doc/classes/CPMDisk.src/M000028.html +18 -0
- data/doc/classes/CPMDisk.src/M000029.html +18 -0
- data/doc/classes/CPMDisk.src/M000030.html +31 -0
- data/doc/classes/CPMDisk.src/M000031.html +51 -0
- data/doc/classes/CPMDisk.src/M000032.html +53 -0
- data/doc/classes/CPMFile.html +252 -0
- data/doc/classes/CPMFile.src/M000064.html +22 -0
- data/doc/classes/CPMFile.src/M000065.html +20 -0
- data/doc/classes/CPMFile.src/M000066.html +22 -0
- data/doc/classes/CPMFile.src/M000067.html +18 -0
- data/doc/classes/CPMFile.src/M000068.html +18 -0
- data/doc/classes/CPMFile.src/M000069.html +18 -0
- data/doc/classes/CPMFile.src/M000070.html +18 -0
- data/doc/classes/CatalogServlet.html +148 -0
- data/doc/classes/CatalogServlet.src/M000035.html +20 -0
- data/doc/classes/CatalogServlet.src/M000036.html +20 -0
- data/doc/classes/D65.html +180 -0
- data/doc/classes/D65.src/M000002.html +18 -0
- data/doc/classes/D65.src/M000003.html +18 -0
- data/doc/classes/D65.src/M000004.html +64 -0
- data/doc/classes/D65.src/M000005.html +18 -0
- data/doc/classes/D65.src/M000006.html +18 -0
- data/doc/classes/D65.src/M000007.html +18 -0
- data/doc/classes/D65.src/M000008.html +18 -0
- data/doc/classes/D65.src/M000048.html +18 -0
- data/doc/classes/D65.src/M000049.html +64 -0
- data/doc/classes/DOSDisk.html +425 -0
- data/doc/classes/DOSDisk.src/M000007.html +20 -0
- data/doc/classes/DOSDisk.src/M000008.html +77 -0
- data/doc/classes/DOSDisk.src/M000010.html +20 -0
- data/doc/classes/DOSDisk.src/M000011.html +20 -0
- data/doc/classes/DOSDisk.src/M000012.html +19 -0
- data/doc/classes/DOSDisk.src/M000013.html +20 -0
- data/doc/classes/DOSDisk.src/M000053.html +23 -0
- data/doc/classes/DOSDisk.src/M000054.html +19 -0
- data/doc/classes/DOSDisk.src/M000055.html +21 -0
- data/doc/classes/DOSDisk.src/M000056.html +37 -0
- data/doc/classes/DOSDisk.src/M000057.html +85 -0
- data/doc/classes/DOSDisk.src/M000058.html +37 -0
- data/doc/classes/DOSDisk.src/M000059.html +34 -0
- data/doc/classes/DOSDisk.src/M000060.html +27 -0
- data/doc/classes/DOSDisk.src/M000061.html +43 -0
- data/doc/classes/DOSDisk.src/M000062.html +31 -0
- data/doc/classes/DOSDisk.src/M000063.html +95 -0
- data/doc/classes/DOSDisk.src/M000064.html +85 -0
- data/doc/classes/DOSDisk.src/M000065.html +37 -0
- data/doc/classes/DOSDisk.src/M000066.html +34 -0
- data/doc/classes/DOSDisk.src/M000067.html +27 -0
- data/doc/classes/DOSDisk.src/M000068.html +43 -0
- data/doc/classes/DOSDisk.src/M000069.html +31 -0
- data/doc/classes/DOSDisk.src/M000070.html +95 -0
- data/doc/classes/DOSFile.html +253 -0
- data/doc/classes/DOSFile.src/M000016.html +22 -0
- data/doc/classes/DOSFile.src/M000017.html +17 -0
- data/doc/classes/DOSFile.src/M000018.html +18 -0
- data/doc/classes/DOSFile.src/M000021.html +22 -0
- data/doc/classes/DOSFile.src/M000022.html +22 -0
- data/doc/classes/DOSFile.src/M000023.html +22 -0
- data/doc/classes/DOSFile.src/M000024.html +17 -0
- data/doc/classes/DOSFile.src/M000025.html +18 -0
- data/doc/classes/DOSFile.src/M000116.html +22 -0
- data/doc/classes/DOSFile.src/M000117.html +18 -0
- data/doc/classes/DOSFile.src/M000118.html +18 -0
- data/doc/classes/DOSFile.src/M000119.html +28 -0
- data/doc/classes/DOSFile.src/M000120.html +18 -0
- data/doc/classes/DSK.html +633 -0
- data/doc/classes/DSK.src/M000009.html +22 -0
- data/doc/classes/DSK.src/M000010.html +27 -0
- data/doc/classes/DSK.src/M000011.html +19 -0
- data/doc/classes/DSK.src/M000012.html +18 -0
- data/doc/classes/DSK.src/M000013.html +22 -0
- data/doc/classes/DSK.src/M000014.html +22 -0
- data/doc/classes/DSK.src/M000015.html +22 -0
- data/doc/classes/DSK.src/M000016.html +22 -0
- data/doc/classes/DSK.src/M000017.html +22 -0
- data/doc/classes/DSK.src/M000018.html +22 -0
- data/doc/classes/DSK.src/M000019.html +22 -0
- data/doc/classes/DSK.src/M000020.html +34 -0
- data/doc/classes/DSK.src/M000079.html +19 -0
- data/doc/classes/DSK.src/M000080.html +19 -0
- data/doc/classes/DSK.src/M000081.html +18 -0
- data/doc/classes/DSK.src/M000082.html +18 -0
- data/doc/classes/DSK.src/M000083.html +18 -0
- data/doc/classes/DSK.src/M000084.html +18 -0
- data/doc/classes/DSK.src/M000085.html +18 -0
- data/doc/classes/DSK.src/M000086.html +25 -0
- data/doc/classes/DSK.src/M000087.html +19 -0
- data/doc/classes/DSK.src/M000088.html +20 -0
- data/doc/classes/DSK.src/M000089.html +35 -0
- data/doc/classes/DSK.src/M000090.html +22 -0
- data/doc/classes/DSK.src/M000091.html +22 -0
- data/doc/classes/DSK.src/M000092.html +27 -0
- data/doc/classes/DSK.src/M000093.html +25 -0
- data/doc/classes/DSK.src/M000094.html +33 -0
- data/doc/classes/DSK.src/M000095.html +66 -0
- data/doc/classes/DSK.src/M000096.html +33 -0
- data/doc/classes/DSK.src/M000097.html +22 -0
- data/doc/classes/DSK.src/M000098.html +23 -0
- data/doc/classes/DSK.src/M000099.html +24 -0
- data/doc/classes/DSK.src/M000100.html +21 -0
- data/doc/classes/DSK.src/M000101.html +18 -0
- data/doc/classes/DSK.src/M000102.html +24 -0
- data/doc/classes/DSK.src/M000103.html +24 -0
- data/doc/classes/DSK.src/M000104.html +24 -0
- data/doc/classes/DSKFile.html +328 -0
- data/doc/classes/DSKFile.src/M000071.html +19 -0
- data/doc/classes/DSKFile.src/M000072.html +18 -0
- data/doc/classes/DSKFile.src/M000073.html +23 -0
- data/doc/classes/DSKFile.src/M000074.html +25 -0
- data/doc/classes/DSKFile.src/M000075.html +18 -0
- data/doc/classes/DSKFile.src/M000076.html +18 -0
- data/doc/classes/DSKFile.src/M000077.html +18 -0
- data/doc/classes/DSKFile.src/M000078.html +18 -0
- data/doc/classes/DSKFile.src/M000079.html +50 -0
- data/doc/classes/DSKTrackSector.html +199 -0
- data/doc/classes/DSKTrackSector.src/M000045.html +20 -0
- data/doc/classes/DSKTrackSector.src/M000046.html +18 -0
- data/doc/classes/DSKTrackSector.src/M000047.html +21 -0
- data/doc/classes/DSKTrackSector.src/M000049.html +20 -0
- data/doc/classes/DSKTrackSector.src/M000050.html +18 -0
- data/doc/classes/DSKTrackSector.src/M000051.html +21 -0
- data/doc/classes/DirectoryServlet.html +148 -0
- data/doc/classes/DirectoryServlet.src/M000041.html +20 -0
- data/doc/classes/DirectoryServlet.src/M000044.html +20 -0
- data/doc/classes/DumpUtilities.html +158 -0
- data/doc/classes/DumpUtilities.src/M000050.html +33 -0
- data/doc/classes/DumpUtilities.src/M000051.html +23 -0
- data/doc/classes/HGR.html +232 -0
- data/doc/classes/HGR.src/M000114.html +29 -0
- data/doc/classes/HGR.src/M000115.html +56 -0
- data/doc/classes/IntegerBasicFile.html +293 -0
- data/doc/classes/IntegerBasicFile.src/M000001.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000004.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000005.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000036.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000037.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000038.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000039.html +18 -0
- data/doc/classes/MBASICFile.html +202 -0
- data/doc/classes/MBASICFile.src/M000033.html +22 -0
- data/doc/classes/MBASICFile.src/M000034.html +30 -0
- data/doc/classes/MBASICFile.src/M000035.html +94 -0
- data/doc/classes/NADOLBinaryFile.html +184 -0
- data/doc/classes/NADOLBinaryFile.src/M000052.html +19 -0
- data/doc/classes/NADOLBinaryFile.src/M000053.html +18 -0
- data/doc/classes/NADOLBinaryFile.src/M000054.html +18 -0
- data/doc/classes/NADOLDisk.html +324 -0
- data/doc/classes/NADOLDisk.src/M000014.html +23 -0
- data/doc/classes/NADOLDisk.src/M000015.html +19 -0
- data/doc/classes/NADOLDisk.src/M000016.html +18 -0
- data/doc/classes/NADOLDisk.src/M000017.html +29 -0
- data/doc/classes/NADOLDisk.src/M000018.html +34 -0
- data/doc/classes/NADOLDisk.src/M000019.html +32 -0
- data/doc/classes/NADOLDisk.src/M000020.html +22 -0
- data/doc/classes/NADOLDisk.src/M000021.html +38 -0
- data/doc/classes/NADOLDisk.src/M000022.html +27 -0
- data/doc/classes/NADOLDisk.src/M000023.html +53 -0
- data/doc/classes/NADOLDisk.src/M000024.html +46 -0
- data/doc/classes/NADOLFile.html +189 -0
- data/doc/classes/NADOLFile.src/M000042.html +18 -0
- data/doc/classes/NADOLFile.src/M000043.html +18 -0
- data/doc/classes/NADOLFile.src/M000044.html +28 -0
- data/doc/classes/NADOLTokenisedFile.html +231 -0
- data/doc/classes/NADOLTokenisedFile.src/M000124.html +28 -0
- data/doc/classes/NADOLTokenisedFile.src/M000125.html +49 -0
- data/doc/classes/NADOLTokenisedFile.src/M000126.html +18 -0
- data/doc/classes/NADOLTokenisedFile.src/M000127.html +18 -0
- data/doc/classes/Nibbles.html +231 -0
- data/doc/classes/Nibbles.src/M000110.html +18 -0
- data/doc/classes/Nibbles.src/M000111.html +20 -0
- data/doc/classes/Nibbles.src/M000112.html +18 -0
- data/doc/classes/Nibbles.src/M000113.html +101 -0
- data/doc/classes/PNG.html +151 -0
- data/doc/classes/PNG.src/M000123.html +26 -0
- data/doc/classes/SCAsmFile.html +242 -0
- data/doc/classes/SCAsmFile.src/M000102.html +18 -0
- data/doc/classes/SCAsmFile.src/M000103.html +18 -0
- data/doc/classes/SCAsmFile.src/M000104.html +18 -0
- data/doc/classes/SCAsmFile.src/M000105.html +18 -0
- data/doc/classes/SCAsmFile.src/M000106.html +39 -0
- data/doc/classes/ShowFileServlet.html +148 -0
- data/doc/classes/ShowFileServlet.src/M000052.html +22 -0
- data/doc/classes/ShowFileServlet.src/M000059.html +22 -0
- data/doc/classes/ShowPNGServlet.html +148 -0
- data/doc/classes/ShowPNGServlet.src/M000101.html +26 -0
- data/doc/classes/ShowPNGServlet.src/M000105.html +26 -0
- data/doc/classes/ShowSectorServlet.html +148 -0
- data/doc/classes/ShowSectorServlet.src/M000040.html +22 -0
- data/doc/classes/ShowSectorServlet.src/M000043.html +22 -0
- data/doc/classes/TestCPMDisks.html +159 -0
- data/doc/classes/TestCPMDisks.src/M000037.html +19 -0
- data/doc/classes/TestCPMDisks.src/M000038.html +57 -0
- data/doc/classes/TestDOSDisks.html +279 -0
- data/doc/classes/TestDOSDisks.src/M000001.html +19 -0
- data/doc/classes/TestDOSDisks.src/M000002.html +19 -0
- data/doc/classes/TestDOSDisks.src/M000003.html +25 -0
- data/doc/classes/TestDOSDisks.src/M000014.html +26 -0
- data/doc/classes/TestDOSDisks.src/M000015.html +19 -0
- data/doc/classes/TestDOSDisks.src/M000016.html +62 -0
- data/doc/classes/TestDOSDisks.src/M000017.html +22 -0
- data/doc/classes/TestDOSDisks.src/M000018.html +20 -0
- data/doc/classes/TestDOSDisks.src/M000019.html +19 -0
- data/doc/classes/TestDOSDisks.src/M000020.html +25 -0
- data/doc/classes/TestDOSDisks.src/M000021.html +47 -0
- data/doc/classes/TestDOSDisks.src/M000022.html +28 -0
- data/doc/classes/TestDOSDisks.src/M000023.html +28 -0
- data/doc/classes/TestDOSDisks.src/M000025.html +26 -0
- data/doc/classes/TestDOSDisks.src/M000026.html +19 -0
- data/doc/classes/TestDOSDisks.src/M000027.html +62 -0
- data/doc/classes/TestDOSDisks.src/M000028.html +22 -0
- data/doc/classes/TestDOSDisks.src/M000029.html +20 -0
- data/doc/classes/TestDOSDisks.src/M000030.html +19 -0
- data/doc/classes/TestDOSDisks.src/M000031.html +25 -0
- data/doc/classes/TestDOSDisks.src/M000032.html +47 -0
- data/doc/classes/TestDOSDisks.src/M000033.html +28 -0
- data/doc/classes/TestDOSDisks.src/M000034.html +28 -0
- data/doc/classes/TestDisassembly.html +144 -0
- data/doc/classes/TestDisassembly.src/M000005.html +19 -0
- data/doc/classes/TestDisassembly.src/M000006.html +19 -0
- data/doc/classes/TestDisassembly.src/M000039.html +19 -0
- data/doc/classes/TestModifiedDOSDisks.html +193 -0
- data/doc/classes/TestModifiedDOSDisks.src/M000045.html +24 -0
- data/doc/classes/TestModifiedDOSDisks.src/M000046.html +27 -0
- data/doc/classes/TestModifiedDOSDisks.src/M000047.html +24 -0
- data/doc/classes/TestModifiedDOSDisks.src/M000048.html +27 -0
- data/doc/classes/TestNADOLDisks.html +193 -0
- data/doc/classes/TestNADOLDisks.src/M000106.html +22 -0
- data/doc/classes/TestNADOLDisks.src/M000107.html +72 -0
- data/doc/classes/TestNADOLDisks.src/M000108.html +22 -0
- data/doc/classes/TestNADOLDisks.src/M000109.html +72 -0
- data/doc/classes/TestNADOLDisks.src/M000121.html +22 -0
- data/doc/classes/TestNADOLDisks.src/M000122.html +73 -0
- data/doc/classes/TestPascalDisks.html +174 -0
- data/doc/classes/TestPascalDisks.src/M000040.html +28 -0
- data/doc/classes/TestPascalDisks.src/M000041.html +24 -0
- data/doc/classes/TestPascalDisks.src/M000042.html +27 -0
- data/doc/classes/TestProDOSDisks.html +253 -0
- data/doc/classes/TestProDOSDisks.src/M000114.html +28 -0
- data/doc/classes/TestProDOSDisks.src/M000115.html +28 -0
- data/doc/classes/TestProDOSDisks.src/M000116.html +41 -0
- data/doc/classes/TestProDOSDisks.src/M000117.html +28 -0
- data/doc/classes/TestProDOSDisks.src/M000118.html +28 -0
- data/doc/classes/TestProDOSDisks.src/M000119.html +28 -0
- data/doc/classes/TestProDOSDisks.src/M000120.html +41 -0
- data/doc/classes/TestProDOSDisks.src/M000121.html +28 -0
- data/doc/classes/TextFile.html +196 -0
- data/doc/classes/TextFile.src/M000019.html +18 -0
- data/doc/classes/TextFile.src/M000020.html +20 -0
- data/doc/classes/TextFile.src/M000024.html +18 -0
- data/doc/classes/TextFile.src/M000025.html +18 -0
- data/doc/classes/TextFile.src/M000026.html +18 -0
- data/doc/classes/TextFile.src/M000027.html +20 -0
- data/doc/classes/TextFile.src/M000128.html +18 -0
- data/doc/classes/TextFile.src/M000129.html +18 -0
- data/doc/classes/TextFile.src/M000130.html +18 -0
- data/doc/classes/TextFile.src/M000131.html +20 -0
- data/doc/created.rid +1 -0
- data/doc/dot/f_0.dot +14 -84
- data/doc/dot/f_0.png +0 -0
- data/doc/dot/f_1.dot +32 -0
- data/doc/dot/f_1.png +0 -0
- data/doc/dot/f_10.dot +32 -0
- data/doc/dot/f_10.png +0 -0
- data/doc/dot/f_11.dot +14 -0
- data/doc/dot/f_11.png +0 -0
- data/doc/dot/f_12.dot +84 -0
- data/doc/dot/f_12.png +0 -0
- data/doc/dot/f_15.dot +32 -0
- data/doc/dot/f_15.png +0 -0
- data/doc/dot/f_18.dot +32 -0
- data/doc/dot/f_18.png +0 -0
- data/doc/dot/f_2.dot +32 -0
- data/doc/dot/f_2.png +0 -0
- data/doc/dot/f_20.dot +32 -0
- data/doc/dot/f_20.png +0 -0
- data/doc/dot/f_3.dot +32 -0
- data/doc/dot/f_3.png +0 -0
- data/doc/dot/f_4.dot +32 -0
- data/doc/dot/f_4.png +0 -0
- data/doc/dot/f_5.dot +32 -0
- data/doc/dot/f_5.png +0 -0
- data/doc/dot/f_6.dot +32 -0
- data/doc/dot/f_6.png +0 -0
- data/doc/dot/f_7.dot +23 -0
- data/doc/dot/f_7.png +0 -0
- data/doc/dot/f_8.dot +23 -0
- data/doc/dot/f_8.png +0 -0
- data/doc/dot/f_9.dot +45 -0
- data/doc/dot/f_9.png +0 -0
- data/doc/files/bin/dskexplorer_rb.html +365 -0
- data/doc/files/bin/dskexplorer_rb.src/M000001.html +21 -0
- data/doc/files/bin/dskexplorer_rb.src/M000002.html +21 -0
- data/doc/files/bin/dskexplorer_rb.src/M000003.html +22 -0
- data/doc/files/bin/dskexplorer_rb.src/M000004.html +20 -0
- data/doc/files/bin/dskexplorer_rb.src/M000005.html +20 -0
- data/doc/files/bin/dskexplorer_rb.src/M000006.html +22 -0
- data/doc/files/bin/dskexplorer_rb.src/M000007.html +16 -0
- data/doc/files/bin/dskexplorer_rb.src/M000008.html +20 -0
- data/doc/files/bin/dskexplorer_rb.src/M000009.html +43 -0
- data/doc/files/bin/dskexplorer_rb.src/M000010.html +59 -0
- data/doc/files/bin/dskexplorer_rb.src/M000011.html +53 -0
- data/doc/files/bin/dskexplorer_rb.src/M000012.html +58 -0
- data/doc/files/bin/dskexplorer_rb.src/M000013.html +37 -0
- data/doc/files/bin/dsktool_rb.html +276 -0
- data/doc/files/bin/romdump_rb.html +189 -0
- data/doc/files/dsktool_web/dskexplorer_rb.html +112 -0
- data/doc/files/dsktool_web/dskexplorer_web_rb.html +112 -0
- data/doc/files/dsktool_web/index_rb.html +112 -0
- data/doc/files/lib/CPMDisk_rb.html +115 -0
- data/doc/files/lib/CPMFile_rb.html +117 -0
- data/doc/files/lib/D65_rb.html +114 -0
- data/doc/files/lib/DOSDisk_rb.html +115 -0
- data/doc/files/lib/DOSFile_rb.html +122 -0
- data/doc/files/lib/DSKFile_rb.html +114 -0
- data/doc/files/lib/DSK_rb.html +127 -0
- data/doc/files/lib/DumpUtilities_rb.html +107 -0
- data/doc/files/lib/HGR_rb.html +122 -0
- data/doc/files/lib/NADOLDisk_rb.html +115 -0
- data/doc/files/lib/NADOLFile_rb.html +120 -0
- data/doc/files/lib/Nibbles_rb.html +114 -0
- data/doc/files/test/tc_cpm_disks_rb.html +122 -0
- data/doc/files/test/tc_disassembly_rb.html +116 -0
- data/doc/files/test/tc_dos_disks_rb.html +122 -0
- data/doc/files/test/tc_modified_dos_disks_rb.html +122 -0
- data/doc/files/test/tc_nadol_disks_rb.html +122 -0
- data/doc/files/test/tc_prodos_disks_rb.html +122 -0
- data/doc/files/test/test_dos_disks_rb.html +109 -0
- data/doc/files/test/ts_test_all_rb.html +119 -0
- data/doc/files/test_bak/hgr_scanlines_rb.html +106 -0
- data/doc/files/test_bak/tc_disassembly_rb.html +123 -0
- data/doc/files/test_bak/tc_dos_disks_rb.html +122 -0
- data/doc/files/test_bak/tc_modified_dos_disks_rb.html +122 -0
- data/doc/files/test_bak/tc_nadol_disks_rb.html +122 -0
- data/doc/files/test_bak/tc_pascal_disks_rb.html +122 -0
- data/doc/files/test_bak/tc_prodos_disks_rb.html +122 -0
- data/doc/files/test_bak/ts_test_all_rb.html +118 -0
- data/doc/fr_class_index.html +46 -0
- data/doc/fr_file_index.html +47 -0
- data/doc/fr_method_index.html +147 -0
- data/doc/index.html +24 -0
- data/doc/rdoc-style.css +208 -0
- data/lib/CPMDisk.rb +194 -0
- data/lib/CPMFile.rb +344 -0
- data/lib/DOSDisk.rb +16 -12
- data/lib/DOSDisk.rb~ +201 -0
- data/lib/DOSFile.rb~ +402 -0
- data/lib/DSK.rb +99 -49
- data/lib/DSK.rb~ +226 -0
- data/lib/DSKFile.rb +9 -0
- data/lib/DSKFile.rb~ +137 -0
- data/lib/HGR.rb~ +157 -0
- data/lib/NADOLDisk.rb~ +104 -0
- data/lib/NADOLFile.rb~ +225 -0
- data/lib/Nibbles.rb +210 -0
- data/lib/PascalDisk.rb~ +120 -0
- data/lib/PascalFile.rb~ +62 -0
- data/lib/ProDOSDisk.rb~ +197 -0
- data/lib/ProDOSFile.rb~ +160 -0
- data/test/1.txt +267 -0
- data/test/CPM1.DSK +0 -0
- data/test/CPM1.PO +0 -0
- data/test/PIC.ZO +0 -0
- data/test/STARCPM.DSK +0 -0
- data/test/SWRDTH1.NIB +1 -0
- data/test/blah.png +0 -0
- data/test/blah2.png +0 -0
- data/test/blank.nib +1 -0
- data/test/build_hgr_table.rb +28 -0
- data/test/build_hgr_table.rb~ +28 -0
- data/test/cpm_write_test.dsk +0 -0
- data/test/ed.txt +0 -0
- data/test/p.html +15030 -0
- data/test/pic.rb +19 -0
- data/test/pic.rb~ +18 -0
- data/test/sword.dsk +0 -0
- data/test/tc_cpm_disks.rb +59 -0
- data/test/tc_dos_disks.rb~ +107 -0
- data/test/tc_modified_dos_disks.rb +33 -0
- data/test/tc_nadol_disks.rb +0 -1
- data/test/tc_nadol_disks.rb~ +42 -0
- data/test/tc_pascal_disks.rb~ +48 -0
- data/test/tc_prodos_disks.rb~ +78 -0
- data/test/ts_test_all.rb +6 -4
- data/test/ts_test_all.rb~ +7 -0
- data/test/x.txt +16 -0
- metadata +485 -35
data/test/pic.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
#Apple II Hi-Res Graphics routines
|
2
|
+
lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
|
3
|
+
$:.unshift(lib_path) unless $:.include?(lib_path)
|
4
|
+
|
5
|
+
require 'DSK'
|
6
|
+
dsk=DSK.read('adventure_teacher_4.dsk.gz')
|
7
|
+
picture_file=dsk.files['ASTONISHING !']
|
8
|
+
f=File.open('blah.png','wb')
|
9
|
+
f<<picture_file.to_png(:colour)
|
10
|
+
f.close
|
11
|
+
`firefox blah.png`
|
12
|
+
|
13
|
+
#dsk=DSK.read('operation_frog1.dsk.gz')
|
14
|
+
#picture_file=dsk.files['APG']
|
15
|
+
#f=File.open('blah2.png','wb')
|
16
|
+
#f<<picture_file.to_png(:colour)
|
17
|
+
#f.close
|
18
|
+
#`firefox blah2.png`
|
19
|
+
|
data/test/pic.rb~
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
#Apple II Hi-Res Graphics routines
|
2
|
+
lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
|
3
|
+
$:.unshift(lib_path) unless $:.include?(lib_path)
|
4
|
+
|
5
|
+
require 'DSK'
|
6
|
+
dsk=DSK.read('adventure_teacher_4.dsk.gz')
|
7
|
+
picture_file=dsk.files['ASTONISHING !']
|
8
|
+
f=File.open('blah.png','wb')
|
9
|
+
f<<picture_file.to_png(:colour)
|
10
|
+
f.close
|
11
|
+
`firefox blah.png`
|
12
|
+
dsk=DSK.read('operation_frog1.dsk.gz')
|
13
|
+
picture_file=dsk.files['APG']
|
14
|
+
f=File.open('blah2.png','wb')
|
15
|
+
f<<picture_file.to_png(:colour)
|
16
|
+
f.close
|
17
|
+
`firefox blah2.png`
|
18
|
+
|
data/test/sword.dsk
ADDED
Binary file
|
@@ -0,0 +1,59 @@
|
|
1
|
+
#make sure the relevant folder with our libraries is in the require path
|
2
|
+
lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
|
3
|
+
$:.unshift(lib_path) unless $:.include?(lib_path)
|
4
|
+
|
5
|
+
require 'test/unit'
|
6
|
+
require 'DSK'
|
7
|
+
|
8
|
+
class TestCPMDisks <Test::Unit::TestCase
|
9
|
+
|
10
|
+
|
11
|
+
def test_empty_dsk
|
12
|
+
dsk=DSK.new()
|
13
|
+
assert(dsk.file_system!=:cpm,"empty DSK should not be CPM format")
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_simple_cpm_dsk
|
17
|
+
dskname=File.dirname(__FILE__)+"//CPM1.DSK"
|
18
|
+
dsk=DSK.read(dskname)
|
19
|
+
assert_equal(:cpm,dsk.file_system,"#{dskname} should be CPM format")
|
20
|
+
|
21
|
+
dskname=File.dirname(__FILE__)+"//CPM1.PO"
|
22
|
+
dsk=DSK.read(dskname)
|
23
|
+
assert_equal(:cpm,dsk.file_system,"#{dskname} should be CPM format")
|
24
|
+
|
25
|
+
dskname=File.dirname(__FILE__)+"//STARCPM.DSK"
|
26
|
+
dsk=DSK.read(dskname)
|
27
|
+
assert_equal(:cpm,dsk.file_system,"#{dskname} should be CPM format")
|
28
|
+
|
29
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
30
|
+
doc_file=dsk.files["STAR.DOC"]
|
31
|
+
assert(doc_file!=nil,"#{dskname} should have a file called STAR.DOC")
|
32
|
+
assert_equal(256,dsk.files["RDTEST.COM"].to_s.length, "RDTEST.COM should be 256 bytes long")
|
33
|
+
|
34
|
+
test_file=CPMFile.new("TESTFILE.TXT","Is this mike on?")
|
35
|
+
assert(test_file!=dsk.files["STAR.DOC"],"comparison between files doesn't have false positive")
|
36
|
+
dsk.add_file(test_file)
|
37
|
+
doc_file=dsk.files["STAR.DOC"]
|
38
|
+
assert(doc_file!=nil,"#{dskname} should still have a file called STAR.DOC")
|
39
|
+
assert(dsk.files[test_file.full_filename]!=nil,"#{dskname} should have a file called #{test_file.full_filename}")
|
40
|
+
assert_equal(test_file,dsk.files[test_file.full_filename])
|
41
|
+
|
42
|
+
test_file=CPMFile.new("BIGFILE.TXT","Is this mike on?"+"x"*38000)
|
43
|
+
dsk.add_file(test_file)
|
44
|
+
dsk.save_as("cpm_write_test.dsk") #save for later examination
|
45
|
+
assert(dsk.files[test_file.full_filename]!=nil,"#{dskname} should have a file called #{test_file.full_filename}")
|
46
|
+
assert_equal(test_file.contents.length,dsk.files[test_file.full_filename].contents.length)
|
47
|
+
|
48
|
+
test_file=CPMFile.new("NO_TYPE","file has no extension")
|
49
|
+
dsk.add_file(test_file)
|
50
|
+
assert(dsk.files["NO_TYPE"]!=nil,"#{dskname} should have a file called NO_TYPE")
|
51
|
+
|
52
|
+
#test we can add the same file multiple times without raising an exception
|
53
|
+
100.times do
|
54
|
+
dsk.add_file(test_file)
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
#make sure the relevant folder with our libraries is in the require path
|
2
|
+
lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
|
3
|
+
$:.unshift(lib_path) unless $:.include?(lib_path)
|
4
|
+
|
5
|
+
require 'test/unit'
|
6
|
+
require 'DSK'
|
7
|
+
|
8
|
+
class TestDOSDisks <Test::Unit::TestCase
|
9
|
+
|
10
|
+
|
11
|
+
def test_file_names
|
12
|
+
assert(DSK.is_dsk_file?("file.dsk"))
|
13
|
+
assert(DSK.is_dsk_file?("file.DSK"))
|
14
|
+
assert(DSK.is_dsk_file?("file.dsk.gz"))
|
15
|
+
assert(DSK.is_dsk_file?("file.po"))
|
16
|
+
assert(DSK.is_dsk_file?("file.po.gz"))
|
17
|
+
assert(!DSK.is_dsk_file?("file.dsk.zip"))
|
18
|
+
|
19
|
+
end
|
20
|
+
def test_bad_dsks
|
21
|
+
assert_raise(RuntimeError,"short file should throw an error") {dsk=DSK.new("0"*100)}
|
22
|
+
assert_raise(Errno::ENOENT,"non existant file should throw an error") {dsk=DSK.read("NonExistantFileName.not")}
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
def test_dump_sector
|
27
|
+
dskname=File.dirname(__FILE__)+"//AAL_1.DSK"
|
28
|
+
dsk=DSK.read(dskname)
|
29
|
+
assert_equal(dsk.dump_sector(0,0).length,dsk.dump_sector(0,2).length,"sector dumps should be consistent length")
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_empty_dsk
|
33
|
+
dsk=DSK.new()
|
34
|
+
assert(dsk.file_system!=:dos,"empty DSK should not be DOS 3.3 format")
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_open_url_to_compressed_dsk
|
38
|
+
dskname="http://www.apple2.org.za/mirrors/ftp.apple.asimov.net/images/games/adventure/vaults_of_zurich.dsk.gz"
|
39
|
+
dsk=DSK.read(dskname)
|
40
|
+
assert_equal(:dos,dsk.file_system,"#{dskname} should be DOS 3.3 format")
|
41
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
42
|
+
|
43
|
+
hello_file=dsk.files["HELLO"]
|
44
|
+
assert(hello_file!=nil,"#{dskname} should have a file called HELLO")
|
45
|
+
assert(hello_file.instance_of?(AppleSoftFile),"HELLO should be an AppleSoft file")
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_simple_dos_dsk
|
49
|
+
dskname=File.dirname(__FILE__)+"//dos33_with_adt.dsk"
|
50
|
+
dsk=DSK.read(dskname)
|
51
|
+
assert_equal(:dos,dsk.file_system,"#{dskname} should be DOS 3.3 format")
|
52
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
53
|
+
|
54
|
+
hello_file=dsk.files["HELLO"]
|
55
|
+
assert(hello_file!=nil,"#{dskname} should have a file called HELLO")
|
56
|
+
assert(hello_file.instance_of?(AppleSoftFile),"HELLO should be an AppleSoft file")
|
57
|
+
assert(hello_file.to_s.length>0,"HELLO should have non-zero length")
|
58
|
+
assert(hello_file.to_s[0..5]=="10 REM","HELLO should start '10 REM'")
|
59
|
+
|
60
|
+
binary_file=dsk.files["MUFFIN"]
|
61
|
+
assert(binary_file!=nil,"#{dskname} should have a file called MUFFIN")
|
62
|
+
assert(binary_file.instance_of?(BinaryFile),"HELLO should be an Binary file")
|
63
|
+
assert(binary_file.to_s.length>0,"MUFFIN should have non-zero length")
|
64
|
+
assert(binary_file.disassembly.length>0,"MUFFIN disassembly should have non-zero length")
|
65
|
+
assert(binary_file.disassembly[0..4]=="0803:","MUFFIN disassembly should start at $803")
|
66
|
+
assert(!binary_file.can_be_picture?,"MUFFIN should NOT be viewable as a picture")
|
67
|
+
|
68
|
+
|
69
|
+
integer_file=dsk.files["APPLESOFT"]
|
70
|
+
assert(integer_file!=nil,"#{dskname} should have a file called APPLESOFT")
|
71
|
+
assert(integer_file.instance_of?(IntegerBasicFile),"HELLO should be an IntegetBasic file")
|
72
|
+
assert(integer_file.to_s.length>0,"APPLESOFT should have non-zero length")
|
73
|
+
assert(integer_file.to_s[0..5]=="10 REM","APPLESOFT should start '10 REM'")
|
74
|
+
assert(!integer_file.can_be_picture?,"APPLESOFT should NOT be viewable as a picture")
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_scasm_file
|
79
|
+
dskname=File.dirname(__FILE__)+"//AAL_1.DSK"
|
80
|
+
dsk=DSK.read(dskname)
|
81
|
+
assert_equal(:dos,dsk.file_system,"#{dskname} should be DOS 3.3 format")
|
82
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
83
|
+
asm_file=dsk.files["MORSE CODE"]
|
84
|
+
assert(asm_file!=nil,"#{dskname} should have a file called MORSE CODE")
|
85
|
+
assert(asm_file.instance_of?(SCAsmFile),"MORSE CODE should be an SCasm file")
|
86
|
+
assert(!asm_file.can_be_picture?,"MORSE CODE should NOT be viewable as a picture")
|
87
|
+
assert(asm_file.to_s.length>0,"MORSE CODE should have non-zero length")
|
88
|
+
assert(!(asm_file.to_s=~/930\W*.LIST OFF/).nil?,"MORSE CODE should start '930 .LIST OFF'")
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
def test_40_track_file
|
93
|
+
dskname=File.dirname(__FILE__)+"//white_03b.dsk"
|
94
|
+
dsk=DSK.read(dskname)
|
95
|
+
assert_equal(:dos,dsk.file_system,"#{dskname} should be DOS 3.3 format")
|
96
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
97
|
+
assert_equal(40,dsk.track_count,"#{dskname} should have 40 tracks")
|
98
|
+
|
99
|
+
pic_file=dsk.files["RIP.PIC"]
|
100
|
+
assert(pic_file!=nil,"#{dskname} should have a file called RIP.PIC")
|
101
|
+
assert(pic_file.instance_of?(BinaryFile),"RIP.PIC should be a binary file")
|
102
|
+
# assert(pic_file.can_be_picture?,"RIP.PIC should be viewable as a picture")
|
103
|
+
assert(pic_file.can_be_picture?,"RIP.PIC should be viewable as a picture")
|
104
|
+
assert_equal("\211PNG\r\n\032\n",pic_file.to_png[0..7])
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
#make sure the relevant folder with our libraries is in the require path
|
2
|
+
lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
|
3
|
+
$:.unshift(lib_path) unless $:.include?(lib_path)
|
4
|
+
|
5
|
+
require 'test/unit'
|
6
|
+
require 'DSK'
|
7
|
+
|
8
|
+
class TestModifiedDOSDisks <Test::Unit::TestCase
|
9
|
+
|
10
|
+
def test_dsk_image
|
11
|
+
dskname=File.dirname(__FILE__)+"//sword.dsk"
|
12
|
+
dsk=DSK.read(dskname)
|
13
|
+
assert_equal(:modified_dos,dsk.file_system,"#{dskname} should have modified DOS file system")
|
14
|
+
assert_equal(0x22,dsk.vtoc_track_no, "{#dskname} should have VTOC at 0x22")
|
15
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
16
|
+
pic_file=dsk.files["STORDTHRUST.PIC"]
|
17
|
+
assert(pic_file.can_be_picture?)
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_nib_image
|
21
|
+
dskname=File.dirname(__FILE__)+"//SWRDTH1.NIB"
|
22
|
+
dsk=DSK.read(dskname)
|
23
|
+
assert_equal(:modified_dos,dsk.file_system,"#{dskname} should have modified DOS file system")
|
24
|
+
assert_equal(0x22,dsk.vtoc_track_no, "{#dskname} should have VTOC at 0x22")
|
25
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
26
|
+
# puts dsk.dump_catalog
|
27
|
+
# puts dsk.hex_dump
|
28
|
+
pic_file=dsk.files["SWORDTHRUST.PIC"]
|
29
|
+
assert(!pic_file.nil?,"SWORDTHRUST.PIC filename should be correct")
|
30
|
+
assert(pic_file.can_be_picture?)
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
data/test/tc_nadol_disks.rb
CHANGED
@@ -62,7 +62,6 @@ class TestNADOLDisks <Test::Unit::TestCase
|
|
62
62
|
#make sure we can overwrite the same file (which also tests we are freeing sectors when files are deleted)
|
63
63
|
for i in 0..250
|
64
64
|
t=dsk.make_file("MULTICOPY","TEST #{i} ")
|
65
|
-
puts "iteratio #{i}"
|
66
65
|
dsk.add_file(t)
|
67
66
|
assert_equal(t,dsk.files[t.filename])
|
68
67
|
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
#make sure the relevant folder with our libraries is in the require path
|
2
|
+
lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
|
3
|
+
$:.unshift(lib_path) unless $:.include?(lib_path)
|
4
|
+
|
5
|
+
require 'test/unit'
|
6
|
+
require 'DSK'
|
7
|
+
|
8
|
+
class TestNADOLDisks <Test::Unit::TestCase
|
9
|
+
|
10
|
+
|
11
|
+
def test_empty_dsk
|
12
|
+
dsk=DSK.new()
|
13
|
+
assert(dsk.file_system!=:nadol,"empty DSK should not be NADOL format")
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_simple_nadol_dsk
|
17
|
+
dskname=File.dirname(__FILE__)+"//nadol.dsk"
|
18
|
+
dsk=DSK.read(dskname)
|
19
|
+
assert_equal(:nadol,dsk.file_system,"#{dskname} should be NADOL format")
|
20
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
21
|
+
nadol_file=dsk.files["NADOL"]
|
22
|
+
assert(nadol_file!=nil,"#{dskname} should have a file called NADOL")
|
23
|
+
assert(nadol_file.to_s.length==16128,"NADOL should be 16128 bytes long")
|
24
|
+
assert(nadol_file.respond_to?(:disassembly),"NADOL can be disassembled")
|
25
|
+
assert(!NADOLTokenisedFile.can_be_nadol_tokenised_file?(nadol_file.contents),"NADOL should not be NADOL tokenised file")
|
26
|
+
brickout_file=dsk.files["BRICKOUT"]
|
27
|
+
assert(brickout_file!=nil,"#{dskname} should have a file called BRICKOUT")
|
28
|
+
assert(NADOLTokenisedFile.can_be_nadol_tokenised_file?(dsk.files["BRICKOUT"].contents),"BRICKOUT should be NADOL tokenised file")
|
29
|
+
assert(nadol_file.respond_to?(:disassembly),"BRICKOUT can't be disassembled")
|
30
|
+
s=brickout_file.to_s
|
31
|
+
assert(!brickout_file.can_be_picture?,"BRICK-OUT should NOT be viewable as a picture")
|
32
|
+
assert_equal("; LORES BRICK-OUT GAME",s[0..21],"BRICK-OUT source should detokenise")
|
33
|
+
assert_equal("; @ \"NAIII\"",dsk.files["NAIII"].to_s[0..10],"NAIII source should detokenise")
|
34
|
+
pic_file=dsk.files["RIP.PIC"]
|
35
|
+
assert(pic_file!=nil,"#{dskname} should have a file called RIP.PIC")
|
36
|
+
assert(pic_file.instance_of?(BinaryFile),"RIP.PIC should be a binary file")
|
37
|
+
assert(pic_file.can_be_picture?,"RIP.PIC should be viewable as a picture")
|
38
|
+
assert_equal("\211PNG\r\n\032\n",pic_file.to_png[0..7])
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#make sure the relevant folder with our libraries is in the require path
|
2
|
+
lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
|
3
|
+
$:.unshift(lib_path) unless $:.include?(lib_path)
|
4
|
+
|
5
|
+
require 'test/unit'
|
6
|
+
require 'DSK'
|
7
|
+
|
8
|
+
class TestPascalDisks <Test::Unit::TestCase
|
9
|
+
|
10
|
+
def test_other_dsk_types
|
11
|
+
dsk=DSK.new()
|
12
|
+
assert(dsk.file_system!=:pascal,"empty DSK should not be Pascal format")
|
13
|
+
|
14
|
+
dskname=File.dirname(__FILE__)+"//dos33_with_adt.dsk"
|
15
|
+
dsk=DSK.read(dskname)
|
16
|
+
assert(dsk.file_system!=:pascal,"#{dskname} should not be Pascal format")
|
17
|
+
|
18
|
+
dskname=File.dirname(__FILE__)+"//nadol.dsk"
|
19
|
+
dsk=DSK.read(dskname)
|
20
|
+
assert(dsk.file_system!=:pascal,"#{dskname} should not be Pascal format")
|
21
|
+
|
22
|
+
end
|
23
|
+
def test_simple_pascal_disk
|
24
|
+
|
25
|
+
dskname=File.dirname(__FILE__)+"//Algebra Mentor (19xx)(John C. Miller)(Disk 1 of 7 Side A)(Student Disk 1).dsk.gz"
|
26
|
+
dsk=DSK.read(dskname)
|
27
|
+
assert_equal(:pascal,dsk.file_system,"#{dskname} should have Pascal file system")
|
28
|
+
assert_equal("A1011",dsk.volume_name)
|
29
|
+
|
30
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_pascal_foto_disk
|
34
|
+
|
35
|
+
dskname=File.dirname(__FILE__)+"//camps.dsk.gz"
|
36
|
+
dsk=DSK.read(dskname)
|
37
|
+
assert_equal(:pascal,dsk.file_system,"#{dskname} should have Pascal file system")
|
38
|
+
assert_equal("DIARRHE",dsk.volume_name)
|
39
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
40
|
+
non_foto_file=dsk.files["SYSTEM.MISCINFO"]
|
41
|
+
assert(!non_foto_file.can_be_picture?)
|
42
|
+
foto_file=dsk.files["CAMPS.FOTO"]
|
43
|
+
assert(foto_file.can_be_picture?)
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
#make sure the relevant folder with our libraries is in the require path
|
2
|
+
lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
|
3
|
+
$:.unshift(lib_path) unless $:.include?(lib_path)
|
4
|
+
|
5
|
+
require 'test/unit'
|
6
|
+
require 'DSK'
|
7
|
+
|
8
|
+
class TestProDOSDisks <Test::Unit::TestCase
|
9
|
+
|
10
|
+
def test_other_dsk_types
|
11
|
+
dsk=DSK.new()
|
12
|
+
assert(dsk.file_system!=:prodos,"empty DSK should not be PRODOS format")
|
13
|
+
|
14
|
+
dskname=File.dirname(__FILE__)+"//dos33_with_adt.dsk"
|
15
|
+
dsk=DSK.read(dskname)
|
16
|
+
assert(dsk.file_system!=:prodos,"#{dskname} should not be ProDOS format")
|
17
|
+
|
18
|
+
dskname=File.dirname(__FILE__)+"//nadol.dsk"
|
19
|
+
dsk=DSK.read(dskname)
|
20
|
+
assert(dsk.file_system!=:prodos,"#{dskname} should not be ProDOS format")
|
21
|
+
|
22
|
+
end
|
23
|
+
def test_simple_prodos_disk
|
24
|
+
|
25
|
+
dskname=File.dirname(__FILE__)+"//dosmaster.po"
|
26
|
+
dsk=DSK.read(dskname)
|
27
|
+
assert_equal(:prodos,dsk.file_system,"#{dskname} should have ProDOS file system")
|
28
|
+
assert_equal(:physical,dsk.sector_order,"#{dskname} should have ProDOS order")
|
29
|
+
assert_equal("NEW.DISK",dsk.volume_name)
|
30
|
+
|
31
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
32
|
+
bas_file=dsk.files["STARTUP"]
|
33
|
+
assert(bas_file!=nil,"#{dskname} should have a file called STARTUP")
|
34
|
+
assert_equal("10 PRINT CHR$ (4)\"PR#3\"",bas_file.to_s[0..22],"STARTUP should detokenise")
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_dos_interleave_prodos_disks
|
38
|
+
|
39
|
+
dskname=File.dirname(__FILE__)+"//ADTPRO-1.0.1.DSK"
|
40
|
+
dsk=DSK.read(dskname)
|
41
|
+
assert_equal(:prodos,dsk.file_system,"#{dskname} should have ProDOS file system")
|
42
|
+
assert_equal(:prodos_from_dos,dsk.sector_order,"#{dskname} should have DOS sector order")
|
43
|
+
assert_equal("ADTPRO.1.0.1",dsk.volume_name)
|
44
|
+
|
45
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
46
|
+
bas_file=dsk.files["STARTUP"]
|
47
|
+
assert(bas_file!=nil,"#{dskname} should have a file called STARTUP")
|
48
|
+
assert_equal("10 TEXT : NORMAL : HOME",bas_file.to_s[0..22],"STARTUP should detokenise")
|
49
|
+
|
50
|
+
dskname=File.dirname(__FILE__)+"//Apple Works V5.0 (1993)(Beagle Bros)(Disks 5 of 6).dsk.gz"
|
51
|
+
dsk=DSK.read(dskname)
|
52
|
+
assert_equal(:prodos,dsk.file_system,"#{dskname} should have ProDOS file system")
|
53
|
+
assert_equal(:prodos_from_dos,dsk.sector_order,"#{dskname} should have DOS sector order")
|
54
|
+
assert_equal("MOVE13",dsk.volume_name)
|
55
|
+
|
56
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
57
|
+
# puts dsk.dump_catalog
|
58
|
+
awp_file=dsk.files["AW.INITS/NARNIA.KNAVES"]
|
59
|
+
assert(bas_file!=nil,"#{dskname} should have a file called AW.INITS/NARNIA.KNAVES")
|
60
|
+
assert_equal("This bonus screen blanker",awp_file.to_s[0..24])
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_tree_structures
|
65
|
+
dskname=File.dirname(__FILE__)+"//Geos (1988)(Berkeley Softworks)(Disk 1 of 4 Side A).dsk.gz"
|
66
|
+
dsk=DSK.read(dskname)
|
67
|
+
assert_equal(:prodos,dsk.file_system,"#{dskname} should have ProDOS file system")
|
68
|
+
assert_equal(:prodos_from_dos,dsk.sector_order,"#{dskname} should have DOS sector order")
|
69
|
+
assert_equal("GEOS.BOOT",dsk.volume_name)
|
70
|
+
|
71
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
72
|
+
tree_file=dsk.files["SYSTEM/Mouse"]
|
73
|
+
assert(tree_file!=nil,"#{dskname} should have a file called SYSTEM/Mouse")
|
74
|
+
assert_equal(100,tree_file.contents.length,"SYSTEM/Mouse should be XX bytes long")
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
data/test/ts_test_all.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
-
$:.unshift(File.dirname(__FILE__)) unless
|
2
|
-
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
1
|
+
$:.unshift(File.dirname(__FILE__)) unless $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
3
2
|
|
3
|
+
require 'tc_cpm_disks'
|
4
4
|
require 'tc_dos_disks'
|
5
|
-
require 'tc_prodos_disks'
|
5
|
+
require 'tc_prodos_disks'
|
6
|
+
|
6
7
|
require 'tc_disassembly'
|
7
8
|
require 'tc_nadol_disks'
|
8
|
-
require 'tc_pascal_disks'
|
9
|
+
require 'tc_pascal_disks'
|
10
|
+
require 'tc_modified_dos_disks'
|