dsktool 0.2.1 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/dskexplorer.rb +79 -61
- data/bin/dsktool.rb +243 -142
- data/bin/romdump.rb +65 -0
- data/doc/classes/AppleSoftFile.html +97 -59
- data/doc/classes/AppleSoftFile.src/{M000005.html → M000113.html} +1 -1
- data/doc/classes/AppleSoftFile.src/M000114.html +18 -0
- data/doc/classes/AppleSoftFile.src/{M000013.html → M000115.html} +1 -1
- data/doc/classes/AppleSoftFile.src/{M000014.html → M000116.html} +1 -1
- data/doc/classes/AppleSoftFile.src/{M000010.html → M000117.html} +1 -1
- data/doc/classes/AppleSoftFile.src/M000118.html +18 -0
- data/doc/classes/AppleSoftFile.src/{M000006.html → M000119.html} +1 -1
- data/doc/classes/AppleSoftFile.src/{M000022.html → M000120.html} +1 -1
- data/doc/classes/BinaryFile.html +184 -26
- data/doc/classes/BinaryFile.src/{M000021.html → M000218.html} +1 -1
- data/doc/classes/{DOSFile.src/M000017.html → BinaryFile.src/M000219.html} +4 -3
- data/doc/classes/BinaryFile.src/{M000025.html → M000220.html} +1 -1
- data/doc/classes/BinaryFile.src/M000221.html +19 -0
- data/doc/classes/BinaryFile.src/M000222.html +19 -0
- data/doc/classes/BinaryFile.src/M000223.html +19 -0
- data/doc/classes/BinaryFile.src/M000224.html +18 -0
- data/doc/classes/BinaryFile.src/{M000015.html → M000225.html} +1 -1
- data/doc/classes/{AppleSoftFile.src/M000008.html → BinaryFile.src/M000226.html} +4 -4
- data/doc/classes/BinaryFile.src/{M000030.html → M000227.html} +1 -1
- data/doc/classes/BinaryFile.src/M000228.html +19 -0
- data/doc/classes/BinaryFile.src/M000229.html +19 -0
- data/doc/classes/BinaryFile.src/M000230.html +19 -0
- data/doc/classes/BinaryFile.src/M000231.html +18 -0
- data/doc/classes/CatalogServlet.html +5 -15
- data/doc/classes/CatalogServlet.src/{M000021.html → M000064.html} +1 -1
- data/doc/classes/D65.html +60 -18
- data/doc/classes/D65.src/{M000006.html → M000099.html} +0 -0
- data/doc/classes/D65.src/{M000032.html → M000100.html} +6 -6
- data/doc/classes/D65.src/{M000009.html → M000101.html} +1 -1
- data/doc/classes/D65.src/{M000011.html → M000102.html} +7 -7
- data/doc/classes/DOSDisk.html +291 -23
- data/doc/classes/DOSDisk.src/M000127.html +23 -0
- data/doc/classes/DOSDisk.src/M000128.html +18 -0
- data/doc/classes/DOSDisk.src/{M000012.html → M000129.html} +3 -3
- data/doc/classes/DOSDisk.src/M000130.html +37 -0
- data/doc/classes/DOSDisk.src/{M000043.html → M000131.html} +17 -8
- data/doc/classes/DOSDisk.src/M000132.html +37 -0
- data/doc/classes/DOSDisk.src/M000133.html +34 -0
- data/doc/classes/DOSDisk.src/M000134.html +27 -0
- data/doc/classes/DOSDisk.src/M000135.html +43 -0
- data/doc/classes/DOSDisk.src/M000136.html +31 -0
- data/doc/classes/DOSDisk.src/M000137.html +95 -0
- data/doc/classes/DOSDisk.src/M000138.html +23 -0
- data/doc/classes/{BinaryFile.src/M000023.html → DOSDisk.src/M000139.html} +4 -4
- data/doc/classes/DOSDisk.src/{M000016.html → M000140.html} +3 -3
- data/doc/classes/DOSDisk.src/M000141.html +22 -0
- data/doc/classes/DOSDisk.src/{M000017.html → M000142.html} +26 -17
- data/doc/classes/DOSDisk.src/M000143.html +37 -0
- data/doc/classes/DOSDisk.src/M000144.html +34 -0
- data/doc/classes/DOSDisk.src/M000145.html +92 -0
- data/doc/classes/DOSFile.html +135 -36
- data/doc/classes/DOSFile.src/{M000016.html → M000251.html} +5 -5
- data/doc/classes/DOSFile.src/{M000043.html → M000252.html} +1 -1
- data/doc/classes/DOSFile.src/M000253.html +18 -0
- data/doc/classes/DOSFile.src/M000254.html +28 -0
- data/doc/classes/DOSFile.src/M000255.html +18 -0
- data/doc/classes/DOSFile.src/{M000021.html → M000256.html} +4 -4
- data/doc/classes/DOSFile.src/{M000049.html → M000257.html} +1 -1
- data/doc/classes/DOSFile.src/M000258.html +18 -0
- data/doc/classes/DOSFile.src/M000259.html +28 -0
- data/doc/classes/DSK.html +735 -65
- data/doc/classes/DSK.src/{M000027.html → M000163.html} +3 -2
- data/doc/classes/{D65.src/M000003.html → DSK.src/M000164.html} +4 -4
- data/doc/classes/DSK.src/M000165.html +18 -0
- data/doc/classes/DSK.src/M000166.html +18 -0
- data/doc/classes/DSK.src/M000167.html +18 -0
- data/doc/classes/DSK.src/M000168.html +18 -0
- data/doc/classes/DSK.src/M000169.html +25 -0
- data/doc/classes/DSK.src/{M000043.html → M000170.html} +3 -2
- data/doc/classes/DSK.src/M000171.html +22 -0
- data/doc/classes/DSK.src/M000172.html +22 -0
- data/doc/classes/DSK.src/{M000035.html → M000173.html} +7 -3
- data/doc/classes/DSK.src/M000174.html +25 -0
- data/doc/classes/DSK.src/M000175.html +30 -0
- data/doc/classes/DSK.src/M000176.html +65 -0
- data/doc/classes/DSK.src/M000177.html +22 -0
- data/doc/classes/DSK.src/M000178.html +23 -0
- data/doc/classes/DSK.src/M000179.html +24 -0
- data/doc/classes/DSK.src/M000180.html +21 -0
- data/doc/classes/DSK.src/{M000012.html → M000181.html} +1 -1
- data/doc/classes/DSK.src/M000182.html +24 -0
- data/doc/classes/DSK.src/{M000053.html → M000183.html} +1 -1
- data/doc/classes/DSK.src/{M000054.html → M000184.html} +3 -3
- data/doc/classes/DSK.src/{M000033.html → M000185.html} +3 -2
- data/doc/classes/{DOSFile.src/M000018.html → DSK.src/M000186.html} +4 -4
- data/doc/classes/DSK.src/M000187.html +18 -0
- data/doc/classes/DSK.src/M000188.html +18 -0
- data/doc/classes/DSK.src/M000189.html +18 -0
- data/doc/classes/DSK.src/M000190.html +18 -0
- data/doc/classes/DSK.src/M000191.html +25 -0
- data/doc/classes/DSK.src/{M000047.html → M000192.html} +3 -2
- data/doc/classes/DSK.src/M000193.html +22 -0
- data/doc/classes/DSK.src/M000194.html +22 -0
- data/doc/classes/DSK.src/{M000015.html → M000195.html} +7 -3
- data/doc/classes/DSK.src/M000196.html +20 -0
- data/doc/classes/DSK.src/M000197.html +21 -0
- data/doc/classes/DSK.src/M000198.html +27 -0
- data/doc/classes/DSK.src/M000199.html +65 -0
- data/doc/classes/DSK.src/M000200.html +22 -0
- data/doc/classes/DSK.src/M000201.html +23 -0
- data/doc/classes/DSK.src/M000202.html +24 -0
- data/doc/classes/DSK.src/M000203.html +21 -0
- data/doc/classes/DSK.src/{M000022.html → M000204.html} +1 -1
- data/doc/classes/DSK.src/M000205.html +24 -0
- data/doc/classes/DSK.src/M000206.html +24 -0
- data/doc/classes/DSK.src/{M000024.html → M000207.html} +6 -5
- data/doc/classes/DSKFile.html +472 -0
- data/doc/classes/{NADOLFile.src/M000027.html → DSKFile.src/M000147.html} +2 -2
- data/doc/classes/{DOSFile.src/M000025.html → DSKFile.src/M000148.html} +2 -2
- data/doc/classes/DSKFile.src/M000149.html +25 -0
- data/doc/classes/{BinaryFile.src/M000040.html → DSKFile.src/M000150.html} +2 -2
- data/doc/classes/DSKFile.src/M000151.html +18 -0
- data/doc/classes/{BinaryFile.src/M000020.html → DSKFile.src/M000152.html} +4 -4
- data/doc/classes/DSKFile.src/M000153.html +18 -0
- data/doc/classes/DSKFile.src/M000154.html +50 -0
- data/doc/classes/{NADOLFile.src/M000031.html → DSKFile.src/M000155.html} +2 -2
- data/doc/classes/{DOSFile.src/M000029.html → DSKFile.src/M000156.html} +2 -2
- data/doc/classes/DSKFile.src/M000157.html +25 -0
- data/doc/classes/{BinaryFile.src/M000046.html → DSKFile.src/M000158.html} +2 -2
- data/doc/classes/DSKFile.src/M000159.html +18 -0
- data/doc/classes/DSKFile.src/M000160.html +18 -0
- data/doc/classes/DSKFile.src/M000161.html +18 -0
- data/doc/classes/DSKFile.src/M000162.html +50 -0
- data/doc/classes/DSKTrackSector.html +256 -0
- data/doc/classes/DSKTrackSector.src/M000093.html +20 -0
- data/doc/classes/DSKTrackSector.src/M000094.html +18 -0
- data/doc/classes/DSKTrackSector.src/M000095.html +21 -0
- data/doc/classes/DSKTrackSector.src/M000096.html +20 -0
- data/doc/classes/DSKTrackSector.src/M000097.html +18 -0
- data/doc/classes/DSKTrackSector.src/M000098.html +21 -0
- data/doc/classes/DirectoryServlet.html +5 -15
- data/doc/classes/DirectoryServlet.src/{M000023.html → M000086.html} +1 -1
- data/doc/classes/DumpUtilities.html +186 -0
- data/doc/classes/DumpUtilities.src/M000109.html +33 -0
- data/doc/classes/DumpUtilities.src/M000110.html +23 -0
- data/doc/classes/DumpUtilities.src/M000111.html +33 -0
- data/doc/classes/DumpUtilities.src/M000112.html +23 -0
- data/doc/classes/HGR.html +324 -0
- data/doc/classes/HGR.src/M000247.html +29 -0
- data/doc/classes/HGR.src/M000248.html +56 -0
- data/doc/classes/HGR.src/M000249.html +29 -0
- data/doc/classes/HGR.src/M000250.html +56 -0
- data/doc/classes/IntegerBasicFile.html +127 -26
- data/doc/classes/IntegerBasicFile.src/{M000001.html → M000056.html} +1 -1
- data/doc/classes/IntegerBasicFile.src/{M000007.html → M000057.html} +1 -1
- data/doc/classes/IntegerBasicFile.src/M000058.html +18 -0
- data/doc/classes/IntegerBasicFile.src/{M000008.html → M000059.html} +1 -1
- data/doc/classes/IntegerBasicFile.src/{M000004.html → M000060.html} +1 -1
- data/doc/classes/IntegerBasicFile.src/{M000013.html → M000061.html} +1 -1
- data/doc/classes/IntegerBasicFile.src/M000062.html +18 -0
- data/doc/classes/IntegerBasicFile.src/{M000014.html → M000063.html} +1 -1
- data/doc/classes/NADOLBinaryFile.html +84 -13
- data/doc/classes/NADOLBinaryFile.src/{M000033.html → M000103.html} +1 -1
- data/doc/classes/{NADOLFile.src/M000028.html → NADOLBinaryFile.src/M000104.html} +4 -4
- data/doc/classes/{NADOLFile.src/M000032.html → NADOLBinaryFile.src/M000105.html} +4 -4
- data/doc/classes/NADOLBinaryFile.src/{M000037.html → M000106.html} +1 -1
- data/doc/classes/{BinaryFile.src/M000055.html → NADOLBinaryFile.src/M000107.html} +4 -4
- data/doc/classes/NADOLBinaryFile.src/M000108.html +18 -0
- data/doc/classes/NADOLDisk.html +346 -23
- data/doc/classes/NADOLDisk.src/M000034.html +23 -0
- data/doc/classes/NADOLDisk.src/{M000019.html → M000035.html} +3 -3
- data/doc/classes/NADOLDisk.src/M000036.html +18 -0
- data/doc/classes/NADOLDisk.src/M000037.html +29 -0
- data/doc/classes/NADOLDisk.src/M000038.html +34 -0
- data/doc/classes/NADOLDisk.src/M000039.html +32 -0
- data/doc/classes/NADOLDisk.src/M000040.html +22 -0
- data/doc/classes/NADOLDisk.src/M000041.html +38 -0
- data/doc/classes/NADOLDisk.src/M000042.html +27 -0
- data/doc/classes/NADOLDisk.src/M000043.html +53 -0
- data/doc/classes/NADOLDisk.src/M000044.html +46 -0
- data/doc/classes/NADOLDisk.src/M000045.html +23 -0
- data/doc/classes/NADOLDisk.src/{M000022.html → M000046.html} +3 -3
- data/doc/classes/{AppleSoftFile.src/M000009.html → NADOLDisk.src/M000047.html} +4 -4
- data/doc/classes/NADOLDisk.src/M000048.html +29 -0
- data/doc/classes/NADOLDisk.src/M000049.html +34 -0
- data/doc/classes/NADOLDisk.src/M000050.html +32 -0
- data/doc/classes/NADOLDisk.src/M000051.html +22 -0
- data/doc/classes/NADOLDisk.src/M000052.html +38 -0
- data/doc/classes/NADOLDisk.src/M000053.html +27 -0
- data/doc/classes/NADOLDisk.src/M000054.html +53 -0
- data/doc/classes/NADOLDisk.src/M000055.html +46 -0
- data/doc/classes/NADOLFile.html +67 -51
- data/doc/classes/NADOLFile.src/{M000029.html → M000087.html} +1 -1
- data/doc/classes/NADOLFile.src/M000088.html +18 -0
- data/doc/classes/NADOLFile.src/M000089.html +28 -0
- data/doc/classes/NADOLFile.src/{M000033.html → M000090.html} +1 -1
- data/doc/classes/NADOLFile.src/M000091.html +18 -0
- data/doc/classes/NADOLFile.src/M000092.html +28 -0
- data/doc/classes/NADOLTokenisedFile.html +111 -32
- data/doc/classes/NADOLTokenisedFile.src/{M000068.html → M000276.html} +1 -1
- data/doc/classes/NADOLTokenisedFile.src/M000277.html +49 -0
- data/doc/classes/NADOLTokenisedFile.src/{M000064.html → M000278.html} +1 -1
- data/doc/classes/NADOLTokenisedFile.src/{M000065.html → M000279.html} +1 -1
- data/doc/classes/NADOLTokenisedFile.src/{M000061.html → M000280.html} +1 -1
- data/doc/classes/NADOLTokenisedFile.src/M000281.html +49 -0
- data/doc/classes/NADOLTokenisedFile.src/{M000069.html → M000282.html} +1 -1
- data/doc/classes/NADOLTokenisedFile.src/{M000070.html → M000283.html} +1 -1
- data/doc/classes/PNG.html +163 -0
- data/doc/classes/PNG.src/M000284.html +26 -0
- data/doc/classes/PNG.src/M000285.html +26 -0
- data/doc/classes/PascalDisk.html +274 -0
- data/doc/classes/PascalDisk.src/M000268.html +23 -0
- data/doc/classes/PascalDisk.src/M000269.html +19 -0
- data/doc/classes/PascalDisk.src/M000270.html +18 -0
- data/doc/classes/PascalDisk.src/M000271.html +60 -0
- data/doc/classes/PascalDisk.src/M000272.html +23 -0
- data/doc/classes/PascalDisk.src/M000273.html +19 -0
- data/doc/classes/PascalDisk.src/M000274.html +18 -0
- data/doc/classes/PascalDisk.src/M000275.html +60 -0
- data/doc/classes/PascalFile.html +322 -0
- data/doc/classes/{DOSFile.src/M000022.html → PascalFile.src/M000237.html} +5 -6
- data/doc/classes/{TextFile.src/M000027.html → PascalFile.src/M000238.html} +3 -3
- data/doc/classes/{AppleSoftFile.src/M000028.html → PascalFile.src/M000239.html} +3 -3
- data/doc/classes/PascalFile.src/M000240.html +19 -0
- data/doc/classes/PascalFile.src/M000241.html +18 -0
- data/doc/classes/{DOSFile.src/M000023.html → PascalFile.src/M000242.html} +5 -6
- data/doc/classes/{TextFile.src/M000032.html → PascalFile.src/M000243.html} +3 -3
- data/doc/classes/PascalFile.src/M000244.html +18 -0
- data/doc/classes/PascalFile.src/M000245.html +19 -0
- data/doc/classes/PascalFile.src/M000246.html +18 -0
- data/doc/classes/ProDOSDisk.html +414 -0
- data/doc/classes/ProDOSDisk.src/M000073.html +18 -0
- data/doc/classes/ProDOSDisk.src/M000074.html +23 -0
- data/doc/classes/{DOSDisk.src/M000030.html → ProDOSDisk.src/M000075.html} +5 -5
- data/doc/classes/ProDOSDisk.src/M000076.html +18 -0
- data/doc/classes/{DSK.src/M000052.html → ProDOSDisk.src/M000077.html} +8 -9
- data/doc/classes/ProDOSDisk.src/M000078.html +98 -0
- data/doc/classes/ProDOSDisk.src/M000079.html +18 -0
- data/doc/classes/ProDOSDisk.src/M000080.html +23 -0
- data/doc/classes/ProDOSDisk.src/M000081.html +19 -0
- data/doc/classes/ProDOSDisk.src/M000082.html +18 -0
- data/doc/classes/ProDOSDisk.src/M000083.html +36 -0
- data/doc/classes/ProDOSDisk.src/M000084.html +98 -0
- data/doc/classes/ProDOSFile.html +282 -0
- data/doc/classes/ProDOSFile.src/M000121.html +23 -0
- data/doc/classes/{AppleSoftFile.src/M000036.html → ProDOSFile.src/M000122.html} +3 -3
- data/doc/classes/ProDOSFile.src/M000123.html +30 -0
- data/doc/classes/ProDOSFile.src/M000124.html +23 -0
- data/doc/classes/ProDOSFile.src/M000125.html +18 -0
- data/doc/classes/ProDOSFile.src/M000126.html +30 -0
- data/doc/classes/RDoc.html +29 -12
- data/doc/classes/RDoc.src/{M000048.html → M000295.html} +0 -0
- data/doc/classes/RDoc.src/{M000032.html → M000296.html} +1 -1
- data/doc/classes/SCAsmFile.html +117 -31
- data/doc/classes/SCAsmFile.src/{M000048.html → M000208.html} +1 -1
- data/doc/classes/{DOSFile.src/M000024.html → SCAsmFile.src/M000209.html} +4 -3
- data/doc/classes/SCAsmFile.src/{M000026.html → M000210.html} +1 -1
- data/doc/classes/SCAsmFile.src/{M000027.html → M000211.html} +1 -1
- data/doc/classes/SCAsmFile.src/{M000058.html → M000212.html} +1 -1
- data/doc/classes/SCAsmFile.src/{M000025.html → M000213.html} +1 -1
- data/doc/classes/SCAsmFile.src/M000214.html +18 -0
- data/doc/classes/SCAsmFile.src/{M000036.html → M000215.html} +1 -1
- data/doc/classes/SCAsmFile.src/{M000037.html → M000216.html} +1 -1
- data/doc/classes/SCAsmFile.src/{M000053.html → M000217.html} +4 -1
- data/doc/classes/ShowFileServlet.html +5 -15
- data/doc/classes/ShowFileServlet.src/{M000040.html → M000146.html} +2 -2
- data/doc/classes/ShowPNGServlet.html +137 -0
- data/doc/classes/{ShowFileServlet.src/M000032.html → ShowPNGServlet.src/M000232.html} +10 -6
- data/doc/classes/ShowSectorServlet.html +5 -15
- data/doc/classes/ShowSectorServlet.src/{M000029.html → M000085.html} +1 -1
- data/doc/classes/TestDOSDisks.html +220 -28
- data/doc/classes/TestDOSDisks.src/M000014.html +1 -1
- data/doc/classes/TestDOSDisks.src/M000015.html +1 -1
- data/doc/classes/TestDOSDisks.src/M000016.html +32 -9
- data/doc/classes/TestDOSDisks.src/M000017.html +9 -6
- data/doc/classes/TestDOSDisks.src/M000018.html +5 -10
- data/doc/classes/TestDOSDisks.src/M000019.html +5 -27
- data/doc/classes/TestDOSDisks.src/M000020.html +8 -10
- data/doc/classes/TestDOSDisks.src/{M000010.html → M000021.html} +9 -3
- data/doc/classes/TestDOSDisks.src/{M000011.html → M000022.html} +5 -4
- data/doc/classes/TestDOSDisks.src/M000023.html +28 -0
- data/doc/classes/TestDOSDisks.src/{M000012.html → M000024.html} +2 -0
- data/doc/classes/TestDOSDisks.src/{M000001.html → M000025.html} +1 -1
- data/doc/classes/TestDOSDisks.src/M000026.html +62 -0
- data/doc/classes/TestDOSDisks.src/M000027.html +22 -0
- data/doc/classes/TestDOSDisks.src/M000028.html +20 -0
- data/doc/classes/TestDOSDisks.src/{M000008.html → M000029.html} +2 -2
- data/doc/classes/TestDOSDisks.src/{M000009.html → M000030.html} +2 -2
- data/doc/classes/TestDOSDisks.src/{M000004.html → M000031.html} +9 -3
- data/doc/classes/TestDOSDisks.src/{M000005.html → M000032.html} +5 -4
- data/doc/classes/TestDOSDisks.src/M000033.html +28 -0
- data/doc/classes/TestDisassembly.html +24 -12
- data/doc/classes/TestDisassembly.src/{M000008.html → M000071.html} +1 -1
- data/doc/classes/TestDisassembly.src/{M000007.html → M000072.html} +0 -0
- data/doc/classes/TestNADOLDisks.html +44 -17
- data/doc/classes/TestNADOLDisks.src/M000233.html +22 -0
- data/doc/classes/TestNADOLDisks.src/M000234.html +73 -0
- data/doc/classes/TestNADOLDisks.src/M000235.html +22 -0
- data/doc/classes/TestNADOLDisks.src/M000236.html +73 -0
- data/doc/classes/TestPascalDisks.html +216 -0
- data/doc/classes/TestPascalDisks.src/M000065.html +28 -0
- data/doc/classes/TestPascalDisks.src/M000066.html +24 -0
- data/doc/classes/TestPascalDisks.src/M000067.html +27 -0
- data/doc/classes/TestPascalDisks.src/M000068.html +28 -0
- data/doc/classes/TestPascalDisks.src/M000069.html +24 -0
- data/doc/classes/TestPascalDisks.src/M000070.html +27 -0
- data/doc/classes/TestProDOSDisks.html +246 -0
- data/doc/classes/TestProDOSDisks.src/M000260.html +28 -0
- data/doc/classes/TestProDOSDisks.src/M000261.html +28 -0
- data/doc/classes/TestProDOSDisks.src/M000262.html +41 -0
- data/doc/classes/TestProDOSDisks.src/M000263.html +28 -0
- data/doc/classes/TestProDOSDisks.src/M000264.html +28 -0
- data/doc/classes/TestProDOSDisks.src/M000265.html +28 -0
- data/doc/classes/TestProDOSDisks.src/M000266.html +41 -0
- data/doc/classes/TestProDOSDisks.src/M000267.html +28 -0
- data/doc/classes/TextFile.html +109 -26
- data/doc/classes/TextFile.src/{M000019.html → M000286.html} +1 -1
- data/doc/classes/{DOSFile.src/M000028.html → TextFile.src/M000287.html} +4 -3
- data/doc/classes/TextFile.src/{M000031.html → M000288.html} +1 -1
- data/doc/classes/TextFile.src/{M000020.html → M000289.html} +3 -3
- data/doc/classes/TextFile.src/{M000024.html → M000290.html} +1 -1
- data/doc/classes/TextFile.src/M000291.html +18 -0
- data/doc/classes/TextFile.src/{M000036.html → M000292.html} +1 -1
- data/doc/classes/TextFile.src/{M000037.html → M000293.html} +3 -3
- data/doc/classes/TextFile.src/M000294.html +18 -0
- data/doc/created.rid +1 -1
- data/doc/dot/f_0.dot +14 -1
- data/doc/files/bin/dskexplorer_rb.html +2 -12
- data/doc/files/bin/dskexplorer_rb.src/M000007.html +2 -4
- data/doc/files/bin/dskexplorer_rb.src/M000008.html +1 -1
- data/doc/files/bin/dskexplorer_rb.src/M000009.html +1 -1
- data/doc/files/bin/dskexplorer_rb.src/M000010.html +7 -3
- data/doc/files/bin/dskexplorer_rb.src/M000011.html +10 -6
- data/doc/files/bin/dskexplorer_rb.src/M000012.html +9 -12
- data/doc/files/bin/dskexplorer_rb.src/M000013.html +7 -4
- data/doc/files/bin/dsktool_rb.html +93 -41
- data/doc/files/bin/romdump_rb.html +184 -0
- data/doc/files/dsktool_web/dskexplorer_rb.html +107 -0
- data/doc/files/dsktool_web/index_rb.html +107 -0
- data/doc/files/lib/D65_rb.html +1 -7
- data/doc/files/lib/DOSDisk_rb.html +1 -8
- data/doc/files/lib/DOSFile_rb.html +3 -12
- data/doc/files/{test/test_dos_disks_rb.html → lib/DSKFile_rb.html} +5 -6
- data/doc/files/lib/DSK_rb.html +5 -7
- data/doc/files/lib/DumpUtilities_rb.html +101 -0
- data/doc/files/lib/HGR_rb.html +115 -0
- data/doc/files/lib/NADOLDisk_rb.html +1 -8
- data/doc/files/lib/NADOLFile_rb.html +3 -9
- data/doc/files/lib/PascalDisk_rb.html +108 -0
- data/doc/files/lib/PascalFile_rb.html +109 -0
- data/doc/files/lib/ProDOSDisk_rb.html +108 -0
- data/doc/files/lib/ProDOSFile_rb.html +108 -0
- data/doc/files/lib/rdoc_patch_rb.html +1 -7
- data/doc/files/test/backup/D65_rb.html +108 -0
- data/doc/files/test/backup/DOSDisk_rb.html +108 -0
- data/doc/files/test/backup/DOSFile_rb.html +110 -0
- data/doc/files/test/backup/DSKFile_rb.html +108 -0
- data/doc/files/test/backup/DSK_rb.html +116 -0
- data/doc/files/test/backup/DumpUtilities_rb.html +101 -0
- data/doc/files/test/backup/HGR_rb.html +115 -0
- data/doc/files/test/backup/NADOLDisk_rb.html +108 -0
- data/doc/files/test/backup/NADOLFile_rb.html +111 -0
- data/doc/files/test/backup/PascalDisk_rb.html +108 -0
- data/doc/files/test/backup/PascalFile_rb.html +109 -0
- data/doc/files/test/backup/ProDOSDisk_rb.html +108 -0
- data/doc/files/test/backup/ProDOSFile_rb.html +108 -0
- data/doc/files/test/backup/comp_rb.html +101 -0
- data/doc/files/test/backup/compress_dos_dsk_rb.html +114 -0
- data/doc/files/test/backup/extract_nadol_startup_rb.html +134 -0
- data/doc/files/test/backup/hgr_scanlines_rb.html +101 -0
- data/doc/files/test/backup/rdoc_patch_rb.html +108 -0
- data/doc/files/test/backup/tc_disassembly_rb.html +116 -0
- data/doc/files/test/backup/tc_dos_disks_rb.html +115 -0
- data/doc/files/test/backup/tc_nadol_disks_rb.html +115 -0
- data/doc/files/test/backup/tc_pascal_disks_rb.html +115 -0
- data/doc/files/test/backup/tc_prodos_disks_rb.html +115 -0
- data/doc/files/test/backup/ts_test_all_rb.html +112 -0
- data/doc/files/test/comp_rb.html +101 -0
- data/doc/files/test/compress_dos_dsk_rb.html +114 -0
- data/doc/files/test/extract_nadol_startup_rb.html +134 -0
- data/doc/files/test/hgr_scanlines_rb.html +101 -0
- data/doc/files/test/tc_disassembly_rb.html +1 -8
- data/doc/files/test/tc_dos_disks_rb.html +1 -8
- data/doc/files/test/tc_nadol_disks_rb.html +1 -8
- data/doc/files/test/tc_pascal_disks_rb.html +115 -0
- data/doc/files/test/tc_prodos_disks_rb.html +115 -0
- data/doc/files/test/ts_test_all_rb.html +3 -6
- data/doc/fr_class_index.html +12 -0
- data/doc/fr_file_index.html +40 -0
- data/doc/fr_method_index.html +281 -59
- data/lib/D65.rb +6 -6
- data/lib/DOSDisk.rb +248 -18
- data/lib/DOSFile.rb +75 -104
- data/lib/DSK.rb +198 -44
- data/lib/DSKFile.rb +141 -0
- data/lib/DumpUtilities.rb +30 -0
- data/lib/HGR.rb +136 -0
- data/lib/NADOLDisk.rb +199 -42
- data/lib/NADOLFile.rb +73 -35
- data/lib/PascalDisk.rb +121 -0
- data/lib/PascalFile.rb +62 -0
- data/lib/ProDOSDisk.rb +197 -0
- data/lib/ProDOSFile.rb +162 -0
- data/lib/a2_symbols.yaml +2 -2
- data/lib/dos33_blank.dsk.gz +0 -0
- data/lib/nadol_blank.po.gz +0 -0
- data/test/ADTPRO-1.0.1.DSK +0 -0
- data/test/ADTPRO-1.0.1.PO +0 -0
- data/test/Algebra Mentor (19xx)(John C. Miller)(Disk 1 of 7 Side A)(Student Disk 1).dsk.gz +0 -0
- data/test/Apple Works V5.0 (1993)(Beagle Bros)(Disks 5 of 6).dsk.gz +0 -0
- data/test/Geos (1988)(Berkeley Softworks)(Disk 1 of 4 Side A).dsk.gz +0 -0
- data/test/Zoom Grafix (1982)(Phoenix Software)[cr].dsk.gz +0 -0
- data/test/adventure_teacher_4.dsk.gz +0 -0
- data/test/camps.dsk.gz +0 -0
- data/test/dosmaster.po +0 -0
- data/test/hgr_scanlines.rb +194 -0
- data/test/nadol1.po +0 -0
- data/test/nadol_blank.po.gz +0 -0
- data/test/operation_frog1.dsk.gz +0 -0
- data/test/tc_dos_disks.rb +89 -14
- data/test/tc_nadol_disks.rb +47 -5
- data/test/tc_pascal_disks.rb +47 -0
- data/test/tc_prodos_disks.rb +78 -0
- data/test/test1.dsk +0 -0
- data/test/ts_test_all.rb +2 -0
- data/test/white_01b.dsk +0 -0
- data/test/white_03b.dsk +0 -0
- data/test/white_20a.dsk +0 -0
- metadata +400 -368
- data/doc/classes/AppleSoftFile.src/M000011.html +0 -18
- data/doc/classes/AppleSoftFile.src/M000012.html +0 -18
- data/doc/classes/AppleSoftFile.src/M000020.html +0 -18
- data/doc/classes/AppleSoftFile.src/M000021.html +0 -18
- data/doc/classes/AppleSoftFile.src/M000026.html +0 -18
- data/doc/classes/AppleSoftFile.src/M000027.html +0 -18
- data/doc/classes/AppleSoftFile.src/M000032.html +0 -18
- data/doc/classes/AppleSoftFile.src/M000033.html +0 -18
- data/doc/classes/AppleSoftFile.src/M000034.html +0 -18
- data/doc/classes/AppleSoftFile.src/M000035.html +0 -18
- data/doc/classes/AppleSoftFile.src/M000038.html +0 -18
- data/doc/classes/AppleSoftFile.src/M000039.html +0 -18
- data/doc/classes/AppleSoftFile.src/M000040.html +0 -18
- data/doc/classes/BinaryFile.src/M000022.html +0 -19
- data/doc/classes/BinaryFile.src/M000024.html +0 -18
- data/doc/classes/BinaryFile.src/M000026.html +0 -19
- data/doc/classes/BinaryFile.src/M000029.html +0 -18
- data/doc/classes/BinaryFile.src/M000031.html +0 -19
- data/doc/classes/BinaryFile.src/M000039.html +0 -18
- data/doc/classes/BinaryFile.src/M000041.html +0 -19
- data/doc/classes/BinaryFile.src/M000045.html +0 -18
- data/doc/classes/BinaryFile.src/M000047.html +0 -19
- data/doc/classes/BinaryFile.src/M000052.html +0 -18
- data/doc/classes/BinaryFile.src/M000053.html +0 -18
- data/doc/classes/BinaryFile.src/M000054.html +0 -18
- data/doc/classes/BinaryFile.src/M000056.html +0 -19
- data/doc/classes/BinaryFile.src/M000059.html +0 -18
- data/doc/classes/BinaryFile.src/M000060.html +0 -18
- data/doc/classes/BinaryFile.src/M000061.html +0 -19
- data/doc/classes/CatalogServlet.src/M000015.html +0 -20
- data/doc/classes/CatalogServlet.src/M000024.html +0 -20
- data/doc/classes/CatalogServlet.src/M000027.html +0 -20
- data/doc/classes/D65.src/M000002.html +0 -18
- data/doc/classes/D65.src/M000004.html +0 -64
- data/doc/classes/D65.src/M000005.html +0 -18
- data/doc/classes/D65.src/M000007.html +0 -18
- data/doc/classes/D65.src/M000008.html +0 -18
- data/doc/classes/D65.src/M000010.html +0 -18
- data/doc/classes/D65.src/M000018.html +0 -18
- data/doc/classes/D65.src/M000019.html +0 -64
- data/doc/classes/D65.src/M000024.html +0 -18
- data/doc/classes/D65.src/M000025.html +0 -64
- data/doc/classes/D65.src/M000030.html +0 -18
- data/doc/classes/D65.src/M000031.html +0 -18
- data/doc/classes/D65.src/M000035.html +0 -18
- data/doc/classes/D65.src/M000036.html +0 -64
- data/doc/classes/DOSDisk.src/M000007.html +0 -20
- data/doc/classes/DOSDisk.src/M000008.html +0 -77
- data/doc/classes/DOSDisk.src/M000010.html +0 -20
- data/doc/classes/DOSDisk.src/M000011.html +0 -20
- data/doc/classes/DOSDisk.src/M000013.html +0 -20
- data/doc/classes/DOSDisk.src/M000014.html +0 -20
- data/doc/classes/DOSDisk.src/M000015.html +0 -20
- data/doc/classes/DOSDisk.src/M000023.html +0 -20
- data/doc/classes/DOSDisk.src/M000024.html +0 -19
- data/doc/classes/DOSDisk.src/M000025.html +0 -76
- data/doc/classes/DOSDisk.src/M000029.html +0 -20
- data/doc/classes/DOSDisk.src/M000031.html +0 -76
- data/doc/classes/DOSDisk.src/M000035.html +0 -20
- data/doc/classes/DOSDisk.src/M000036.html +0 -20
- data/doc/classes/DOSDisk.src/M000037.html +0 -20
- data/doc/classes/DOSDisk.src/M000038.html +0 -19
- data/doc/classes/DOSDisk.src/M000039.html +0 -76
- data/doc/classes/DOSDisk.src/M000041.html +0 -20
- data/doc/classes/DOSDisk.src/M000042.html +0 -19
- data/doc/classes/DOSFile.src/M000026.html +0 -22
- data/doc/classes/DOSFile.src/M000027.html +0 -22
- data/doc/classes/DOSFile.src/M000032.html +0 -22
- data/doc/classes/DOSFile.src/M000033.html +0 -17
- data/doc/classes/DOSFile.src/M000034.html +0 -18
- data/doc/classes/DOSFile.src/M000042.html +0 -22
- data/doc/classes/DOSFile.src/M000044.html +0 -18
- data/doc/classes/DOSFile.src/M000048.html +0 -22
- data/doc/classes/DOSFile.src/M000050.html +0 -18
- data/doc/classes/DOSFile.src/M000051.html +0 -31
- data/doc/classes/DOSFile.src/M000057.html +0 -22
- data/doc/classes/DOSFile.src/M000058.html +0 -22
- data/doc/classes/DOSFile.src/M000059.html +0 -22
- data/doc/classes/DOSFile.src/M000060.html +0 -18
- data/doc/classes/DOSFile.src/M000061.html +0 -18
- data/doc/classes/DOSFile.src/M000062.html +0 -31
- data/doc/classes/DOSFile.src/M000064.html +0 -22
- data/doc/classes/DOSFile.src/M000065.html +0 -18
- data/doc/classes/DOSFile.src/M000066.html +0 -18
- data/doc/classes/DOSFile.src/M000067.html +0 -31
- data/doc/classes/DSK.src/M000009.html +0 -22
- data/doc/classes/DSK.src/M000010.html +0 -27
- data/doc/classes/DSK.src/M000011.html +0 -19
- data/doc/classes/DSK.src/M000013.html +0 -22
- data/doc/classes/DSK.src/M000014.html +0 -22
- data/doc/classes/DSK.src/M000016.html +0 -22
- data/doc/classes/DSK.src/M000017.html +0 -22
- data/doc/classes/DSK.src/M000018.html +0 -22
- data/doc/classes/DSK.src/M000019.html +0 -22
- data/doc/classes/DSK.src/M000020.html +0 -34
- data/doc/classes/DSK.src/M000021.html +0 -19
- data/doc/classes/DSK.src/M000023.html +0 -40
- data/doc/classes/DSK.src/M000028.html +0 -22
- data/doc/classes/DSK.src/M000029.html +0 -22
- data/doc/classes/DSK.src/M000030.html +0 -34
- data/doc/classes/DSK.src/M000031.html +0 -19
- data/doc/classes/DSK.src/M000032.html +0 -18
- data/doc/classes/DSK.src/M000034.html +0 -22
- data/doc/classes/DSK.src/M000036.html +0 -34
- data/doc/classes/DSK.src/M000037.html +0 -19
- data/doc/classes/DSK.src/M000038.html +0 -18
- data/doc/classes/DSK.src/M000039.html +0 -18
- data/doc/classes/DSK.src/M000040.html +0 -18
- data/doc/classes/DSK.src/M000041.html +0 -18
- data/doc/classes/DSK.src/M000042.html +0 -22
- data/doc/classes/DSK.src/M000044.html +0 -22
- data/doc/classes/DSK.src/M000045.html +0 -18
- data/doc/classes/DSK.src/M000046.html +0 -22
- data/doc/classes/DSK.src/M000048.html +0 -22
- data/doc/classes/DSK.src/M000049.html +0 -40
- data/doc/classes/DSK.src/M000050.html +0 -19
- data/doc/classes/DSK.src/M000051.html +0 -18
- data/doc/classes/DirectoryServlet.src/M000017.html +0 -20
- data/doc/classes/DirectoryServlet.src/M000026.html +0 -20
- data/doc/classes/DirectoryServlet.src/M000030.html +0 -20
- data/doc/classes/IntegerBasicFile.src/M000005.html +0 -18
- data/doc/classes/IntegerBasicFile.src/M000006.html +0 -18
- data/doc/classes/IntegerBasicFile.src/M000012.html +0 -18
- data/doc/classes/IntegerBasicFile.src/M000018.html +0 -18
- data/doc/classes/IntegerBasicFile.src/M000019.html +0 -18
- data/doc/classes/IntegerBasicFile.src/M000020.html +0 -18
- data/doc/classes/IntegerBasicFile.src/M000021.html +0 -18
- data/doc/classes/IntegerBasicFile.src/M000022.html +0 -18
- data/doc/classes/IntegerBasicFile.src/M000023.html +0 -18
- data/doc/classes/IntegerBasicFile.src/M000024.html +0 -18
- data/doc/classes/IntegerBasicFile.src/M000025.html +0 -18
- data/doc/classes/IntegerBasicFile.src/M000026.html +0 -18
- data/doc/classes/NADOLDisk.src/M000018.html +0 -20
- data/doc/classes/NADOLDisk.src/M000020.html +0 -50
- data/doc/classes/NADOLDisk.src/M000021.html +0 -20
- data/doc/classes/NADOLDisk.src/M000023.html +0 -50
- data/doc/classes/NADOLFile.src/M000030.html +0 -31
- data/doc/classes/NADOLFile.src/M000034.html +0 -31
- data/doc/classes/NADOLTokenisedFile.src/M000062.html +0 -28
- data/doc/classes/NADOLTokenisedFile.src/M000063.html +0 -28
- data/doc/classes/RDoc.src/M000033.html +0 -40
- data/doc/classes/RDoc.src/M000038.html +0 -40
- data/doc/classes/RDoc.src/M000055.html +0 -40
- data/doc/classes/RDoc.src/M000066.html +0 -40
- data/doc/classes/RDoc.src/M000068.html +0 -40
- data/doc/classes/RDoc.src/M000069.html +0 -40
- data/doc/classes/RDoc.src/M000074.html +0 -40
- data/doc/classes/SCAsmFile.src/M000028.html +0 -36
- data/doc/classes/SCAsmFile.src/M000035.html +0 -18
- data/doc/classes/SCAsmFile.src/M000038.html +0 -36
- data/doc/classes/SCAsmFile.src/M000041.html +0 -18
- data/doc/classes/SCAsmFile.src/M000042.html +0 -18
- data/doc/classes/SCAsmFile.src/M000043.html +0 -18
- data/doc/classes/SCAsmFile.src/M000044.html +0 -36
- data/doc/classes/SCAsmFile.src/M000049.html +0 -18
- data/doc/classes/SCAsmFile.src/M000050.html +0 -18
- data/doc/classes/SCAsmFile.src/M000051.html +0 -18
- data/doc/classes/SCAsmFile.src/M000052.html +0 -18
- data/doc/classes/SCAsmFile.src/M000055.html +0 -18
- data/doc/classes/SCAsmFile.src/M000056.html +0 -18
- data/doc/classes/SCAsmFile.src/M000057.html +0 -18
- data/doc/classes/ShowFileServlet.src/M000026.html +0 -21
- data/doc/classes/ShowFileServlet.src/M000038.html +0 -22
- data/doc/classes/ShowFileServlet.src/M000039.html +0 -22
- data/doc/classes/ShowFileServlet.src/M000044.html +0 -22
- data/doc/classes/TestDOSDisks.src/M000002.html +0 -19
- data/doc/classes/TestDOSDisks.src/M000003.html +0 -25
- data/doc/classes/TestDOSDisks.src/M000006.html +0 -24
- data/doc/classes/TestDOSDisks.src/M000007.html +0 -19
- data/doc/classes/TestDOSDisks.src/M000013.html +0 -19
- data/doc/classes/TestDisassembly.src/M000005.html +0 -19
- data/doc/classes/TestDisassembly.src/M000006.html +0 -19
- data/doc/classes/TestDisassembly.src/M000009.html +0 -19
- data/doc/classes/TestDisassembly.src/M000016.html +0 -19
- data/doc/classes/TestDisassembly.src/M000022.html +0 -19
- data/doc/classes/TestDisassembly.src/M000025.html +0 -19
- data/doc/classes/TestDisassembly.src/M000028.html +0 -19
- data/doc/classes/TestNADOLDisks.src/M000055.html +0 -19
- data/doc/classes/TestNADOLDisks.src/M000056.html +0 -19
- data/doc/classes/TestNADOLDisks.src/M000057.html +0 -19
- data/doc/classes/TestNADOLDisks.src/M000058.html +0 -34
- data/doc/classes/TestNADOLDisks.src/M000062.html +0 -19
- data/doc/classes/TestNADOLDisks.src/M000063.html +0 -34
- data/doc/classes/TextFile.src/M000025.html +0 -18
- data/doc/classes/TextFile.src/M000026.html +0 -18
- data/doc/classes/TextFile.src/M000029.html +0 -18
- data/doc/classes/TextFile.src/M000030.html +0 -18
- data/doc/classes/TextFile.src/M000035.html +0 -18
- data/doc/classes/TextFile.src/M000045.html +0 -18
- data/doc/classes/TextFile.src/M000046.html +0 -18
- data/doc/classes/TextFile.src/M000047.html +0 -20
- data/doc/classes/TextFile.src/M000052.html +0 -18
- data/doc/classes/TextFile.src/M000053.html +0 -18
- data/doc/classes/TextFile.src/M000054.html +0 -20
- data/doc/classes/TextFile.src/M000063.html +0 -18
- data/doc/classes/TextFile.src/M000064.html +0 -18
- data/doc/classes/TextFile.src/M000065.html +0 -18
- data/doc/classes/TextFile.src/M000066.html +0 -18
- data/doc/classes/TextFile.src/M000067.html +0 -18
- data/doc/classes/TextFile.src/M000068.html +0 -20
- data/doc/classes/TextFile.src/M000071.html +0 -18
- data/doc/classes/TextFile.src/M000072.html +0 -18
- data/doc/classes/TextFile.src/M000073.html +0 -20
- data/doc/dot/f_0.png +0 -0
- data/doc/dot/f_1.dot +0 -14
- data/doc/dot/f_1.png +0 -0
- data/doc/dot/f_10.dot +0 -32
- data/doc/dot/f_10.png +0 -0
- data/doc/dot/f_11.dot +0 -32
- data/doc/dot/f_11.png +0 -0
- data/doc/dot/f_12.dot +0 -14
- data/doc/dot/f_12.png +0 -0
- data/doc/dot/f_2.dot +0 -23
- data/doc/dot/f_2.png +0 -0
- data/doc/dot/f_3.dot +0 -32
- data/doc/dot/f_3.png +0 -0
- data/doc/dot/f_4.dot +0 -88
- data/doc/dot/f_4.png +0 -0
- data/doc/dot/f_5.dot +0 -23
- data/doc/dot/f_5.png +0 -0
- data/doc/dot/f_6.dot +0 -32
- data/doc/dot/f_6.png +0 -0
- data/doc/dot/f_7.dot +0 -49
- data/doc/dot/f_7.png +0 -0
- data/doc/dot/f_8.dot +0 -30
- data/doc/dot/f_8.png +0 -0
- data/doc/dot/f_9.dot +0 -32
- data/doc/dot/f_9.png +0 -0
- data/doc/dot/m_0_0.dot +0 -30
- data/doc/dot/m_0_0.png +0 -0
- data/doc/dot/m_6_0.dot +0 -30
- data/doc/dot/m_6_0.png +0 -0
- data/doc/dot/m_8_0.dot +0 -30
- data/doc/dot/m_8_0.png +0 -0
- data/doc/files/bin/dskserver_rb.html +0 -247
- data/doc/files/bin/dskserver_rb.src/M000001.html +0 -22
- data/doc/files/bin/dskserver_rb.src/M000002.html +0 -19
- data/doc/files/bin/dskserver_rb.src/M000003.html +0 -62
- data/doc/files/bin/dskserver_rb.src/M000004.html +0 -39
- data/doc/files/bin/dskserver_rb.src/M000005.html +0 -26
data/test/tc_dos_disks.rb
CHANGED
@@ -13,7 +13,9 @@ class TestDOSDisks <Test::Unit::TestCase
|
|
13
13
|
assert(DSK.is_dsk_file?("file.DSK"))
|
14
14
|
assert(DSK.is_dsk_file?("file.dsk.gz"))
|
15
15
|
assert(DSK.is_dsk_file?("file.po"))
|
16
|
-
assert(DSK.is_dsk_file?("file.po.gz"))
|
16
|
+
assert(DSK.is_dsk_file?("file.po.gz"))
|
17
|
+
assert(DSK.is_dsk_file?("file.do"))
|
18
|
+
assert(DSK.is_dsk_file?("file.DO.gz"))
|
17
19
|
assert(!DSK.is_dsk_file?("file.dsk.zip"))
|
18
20
|
|
19
21
|
end
|
@@ -22,24 +24,76 @@ class TestDOSDisks <Test::Unit::TestCase
|
|
22
24
|
assert_raise(Errno::ENOENT,"non existant file should throw an error") {dsk=DSK.read("NonExistantFileName.not")}
|
23
25
|
end
|
24
26
|
|
27
|
+
def test_write_to_dsk
|
28
|
+
dsk=DSK.create_new(:dos33)
|
29
|
+
test_file=TextFile.new("TESTFILE","Is this mike on?")
|
30
|
+
dsk.add_file(test_file)
|
31
|
+
assert(dsk.files[test_file.filename]!=nil,"dsk should have a file called #{test_file.filename}")
|
32
|
+
assert_equal(test_file,dsk.files[test_file.filename])
|
33
|
+
|
34
|
+
#test we can write muliple files (this also tests we are correctly tracking sectors as being used)
|
35
|
+
test_files=[]
|
36
|
+
for i in 0..20
|
37
|
+
t=dsk.make_file("TEST#{i}","TEST #{i} "+"*"*i*100)
|
38
|
+
test_files<<t
|
39
|
+
dsk.add_file(t)
|
40
|
+
end
|
41
|
+
|
42
|
+
for i in 0..20
|
43
|
+
assert_equal(test_files[i],dsk.files[test_files[i].filename])
|
44
|
+
end
|
45
|
+
|
46
|
+
#test we can make other file types
|
47
|
+
[
|
48
|
+
TextFile,
|
49
|
+
BinaryFile,
|
50
|
+
AppleSoftFile
|
51
|
+
].each do |file_class|
|
52
|
+
test_file=file_class.new("TEST_"+file_class.to_s.upcase,"\FF"*256)
|
53
|
+
dsk.add_file(test_file)
|
54
|
+
assert_equal(test_file,dsk.files[test_file.filename])
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
#make sure we can overwrite the same file (which also tests we are freeing sectors when files are deleted)
|
59
|
+
for i in 0..250
|
60
|
+
t=dsk.make_file("MULTICOPY","TEST #{i} ")
|
61
|
+
dsk.add_file(t)
|
62
|
+
assert_equal(t,dsk.files[t.filename])
|
63
|
+
end
|
64
|
+
|
65
|
+
#check none of the above has clobbered our original 20 test files
|
66
|
+
for i in 0..20
|
67
|
+
assert_equal(test_files[i],dsk.files[test_files[i].filename])
|
68
|
+
end
|
69
|
+
|
70
|
+
#save disk for later examination
|
71
|
+
dsk.save_as("dos_write_test.dsk")
|
25
72
|
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_free_sector_list
|
76
|
+
dskname=File.dirname(__FILE__)+"//white_11a.dsk"
|
77
|
+
dsk=DSK.read(dskname)
|
78
|
+
assert_equal(:dos,dsk.file_system,"#{dskname} should be DOS 3.3 format")
|
79
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
80
|
+
assert(!dsk.free_sector_list.nil?,"should have at least 1 free sector")
|
81
|
+
end
|
26
82
|
def test_dump_sector
|
27
83
|
dskname=File.dirname(__FILE__)+"//AAL_1.DSK"
|
28
84
|
dsk=DSK.read(dskname)
|
29
85
|
assert_equal(dsk.dump_sector(0,0).length,dsk.dump_sector(0,2).length,"sector dumps should be consistent length")
|
30
|
-
puts dsk.dump_sector(0,0)
|
31
|
-
puts dsk.dump_sector(0,2)
|
32
86
|
end
|
33
87
|
|
34
88
|
def test_empty_dsk
|
35
89
|
dsk=DSK.new()
|
36
|
-
assert(
|
90
|
+
assert(dsk.file_system!=:dos,"empty DSK should not be DOS 3.3 format")
|
37
91
|
end
|
38
92
|
|
39
93
|
def test_open_url_to_compressed_dsk
|
40
94
|
dskname="http://www.apple2.org.za/mirrors/ftp.apple.asimov.net/images/games/adventure/vaults_of_zurich.dsk.gz"
|
41
95
|
dsk=DSK.read(dskname)
|
42
|
-
|
96
|
+
assert_equal(:dos,dsk.file_system,"#{dskname} should be DOS 3.3 format")
|
43
97
|
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
44
98
|
|
45
99
|
hello_file=dsk.files["HELLO"]
|
@@ -50,10 +104,13 @@ class TestDOSDisks <Test::Unit::TestCase
|
|
50
104
|
def test_simple_dos_dsk
|
51
105
|
dskname=File.dirname(__FILE__)+"//dos33_with_adt.dsk"
|
52
106
|
dsk=DSK.read(dskname)
|
53
|
-
|
107
|
+
assert_equal(:dos,dsk.file_system,"#{dskname} should be DOS 3.3 format")
|
54
108
|
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
55
|
-
|
109
|
+
|
110
|
+
assert(!dsk.find_catalog_slot("HELLO").nil?,"should find catalog slot for HELLO")
|
111
|
+
|
56
112
|
hello_file=dsk.files["HELLO"]
|
113
|
+
|
57
114
|
assert(hello_file!=nil,"#{dskname} should have a file called HELLO")
|
58
115
|
assert(hello_file.instance_of?(AppleSoftFile),"HELLO should be an AppleSoft file")
|
59
116
|
assert(hello_file.to_s.length>0,"HELLO should have non-zero length")
|
@@ -65,26 +122,44 @@ class TestDOSDisks <Test::Unit::TestCase
|
|
65
122
|
assert(binary_file.to_s.length>0,"MUFFIN should have non-zero length")
|
66
123
|
assert(binary_file.disassembly.length>0,"MUFFIN disassembly should have non-zero length")
|
67
124
|
assert(binary_file.disassembly[0..4]=="0803:","MUFFIN disassembly should start at $803")
|
125
|
+
assert(!binary_file.can_be_picture?,"MUFFIN should NOT be viewable as a picture")
|
68
126
|
|
69
127
|
|
70
128
|
integer_file=dsk.files["APPLESOFT"]
|
71
129
|
assert(integer_file!=nil,"#{dskname} should have a file called APPLESOFT")
|
72
130
|
assert(integer_file.instance_of?(IntegerBasicFile),"HELLO should be an IntegetBasic file")
|
73
131
|
assert(integer_file.to_s.length>0,"APPLESOFT should have non-zero length")
|
74
|
-
assert(integer_file.to_s[0..5]=="10 REM","APPLESOFT should start '10 REM'")
|
132
|
+
assert(integer_file.to_s[0..5]=="10 REM","APPLESOFT should start '10 REM'")
|
133
|
+
assert(!integer_file.can_be_picture?,"APPLESOFT should NOT be viewable as a picture")
|
134
|
+
|
75
135
|
end
|
76
136
|
|
77
137
|
def test_scasm_file
|
78
138
|
dskname=File.dirname(__FILE__)+"//AAL_1.DSK"
|
79
139
|
dsk=DSK.read(dskname)
|
80
|
-
|
81
|
-
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
82
|
-
|
140
|
+
assert_equal(:dos,dsk.file_system,"#{dskname} should be DOS 3.3 format")
|
141
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
83
142
|
asm_file=dsk.files["MORSE CODE"]
|
84
143
|
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")
|
144
|
+
assert(asm_file.instance_of?(SCAsmFile),"MORSE CODE should be an SCasm file")
|
145
|
+
assert(!asm_file.can_be_picture?,"MORSE CODE should NOT be viewable as a picture")
|
86
146
|
assert(asm_file.to_s.length>0,"MORSE CODE should have non-zero length")
|
87
|
-
assert(!(asm_file.to_s=~/930\W*.LIST OFF/).nil?,"MORSE CODE should start '930 .LIST OFF'")
|
88
|
-
end
|
147
|
+
assert(!(asm_file.to_s=~/930\W*.LIST OFF/).nil?,"MORSE CODE should start '930 .LIST OFF'")
|
89
148
|
|
149
|
+
end
|
150
|
+
|
151
|
+
def test_40_track_file
|
152
|
+
dskname=File.dirname(__FILE__)+"//white_03b.dsk"
|
153
|
+
dsk=DSK.read(dskname)
|
154
|
+
assert_equal(:dos,dsk.file_system,"#{dskname} should be DOS 3.3 format")
|
155
|
+
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
156
|
+
assert_equal(40,dsk.track_count,"#{dskname} should have 40 tracks")
|
157
|
+
|
158
|
+
pic_file=dsk.files["RIP.PIC"]
|
159
|
+
assert(pic_file!=nil,"#{dskname} should have a file called RIP.PIC")
|
160
|
+
assert(pic_file.instance_of?(BinaryFile),"RIP.PIC should be a binary file")
|
161
|
+
assert(pic_file.can_be_picture?,"RIP.PIC should be viewable as a picture")
|
162
|
+
assert_equal("\211PNG\r\n\032\n",pic_file.to_png[0..7])
|
163
|
+
end
|
164
|
+
|
90
165
|
end
|
data/test/tc_nadol_disks.rb
CHANGED
@@ -10,15 +10,17 @@ class TestNADOLDisks <Test::Unit::TestCase
|
|
10
10
|
|
11
11
|
def test_empty_dsk
|
12
12
|
dsk=DSK.new()
|
13
|
-
assert(
|
13
|
+
assert(dsk.file_system!=:nadol,"empty DSK should not be NADOL format")
|
14
|
+
dsk.set_sector(0,0,"*")
|
15
|
+
assert_equal(dsk.get_sector(0,0)[0],"*"[0],"set_sector wrote 1st byte OK")
|
16
|
+
assert_equal(dsk.get_sector(0,0)[1],0,"set_sector wrote 2nd byte OK")
|
14
17
|
end
|
15
18
|
|
16
19
|
def test_simple_nadol_dsk
|
17
20
|
dskname=File.dirname(__FILE__)+"//nadol.dsk"
|
18
21
|
dsk=DSK.read(dskname)
|
19
|
-
|
22
|
+
assert_equal(:nadol,dsk.file_system,"#{dskname} should be NADOL format")
|
20
23
|
assert(dsk.files.length>0,"#{dskname} should have at least one file")
|
21
|
-
dsk.dump_catalog
|
22
24
|
nadol_file=dsk.files["NADOL"]
|
23
25
|
assert(nadol_file!=nil,"#{dskname} should have a file called NADOL")
|
24
26
|
assert(nadol_file.to_s.length==16128,"NADOL should be 16128 bytes long")
|
@@ -28,9 +30,49 @@ class TestNADOLDisks <Test::Unit::TestCase
|
|
28
30
|
assert(brickout_file!=nil,"#{dskname} should have a file called BRICKOUT")
|
29
31
|
assert(NADOLTokenisedFile.can_be_nadol_tokenised_file?(dsk.files["BRICKOUT"].contents),"BRICKOUT should be NADOL tokenised file")
|
30
32
|
assert(nadol_file.respond_to?(:disassembly),"BRICKOUT can't be disassembled")
|
31
|
-
s=brickout_file.to_s
|
33
|
+
s=brickout_file.to_s
|
34
|
+
assert(!brickout_file.can_be_picture?,"BRICK-OUT should NOT be viewable as a picture")
|
32
35
|
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")
|
36
|
+
assert_equal("; @ \"NAIII\"",dsk.files["NAIII"].to_s[0..10],"NAIII source should detokenise")
|
37
|
+
|
38
|
+
test_file=NADOLFile.new("TESTFILE","Is this mike on?")
|
39
|
+
assert(test_file!=dsk.files["LOGO"],"comparison between files doesn't have false positive")
|
40
|
+
dsk.add_file(test_file)
|
41
|
+
assert(dsk.files[test_file.filename]!=nil,"#{dskname} should have a file called #{test_file.filename}")
|
42
|
+
assert_equal(test_file,dsk.files[test_file.filename])
|
43
|
+
|
44
|
+
#try to round_trip a tokenised NADOL file
|
45
|
+
copy_of_tokenised_file=dsk.make_file("BBALL2",dsk.files["BOUNCINGBALL"].to_s,{:tokenise=>true})
|
46
|
+
assert_equal(dsk.files["BOUNCINGBALL"].to_s,copy_of_tokenised_file.to_s,"NADOL tokenised file should round-trip")
|
47
|
+
dsk.add_file(copy_of_tokenised_file)
|
48
|
+
|
49
|
+
#test we can write muliple files (this also tests we are correctly tracking sectors as being used)
|
50
|
+
test_files=[]
|
51
|
+
for i in 0..20
|
52
|
+
t=dsk.make_file("TEST#{i}","TEST #{i} "+"*"*i*100)
|
53
|
+
test_files<<t
|
54
|
+
dsk.add_file(t)
|
55
|
+
end
|
56
|
+
puts dsk.dump_catalog
|
57
|
+
dsk.save_as("nadol2.po")
|
58
|
+
for i in 0..20
|
59
|
+
assert_equal(test_files[i],dsk.files[test_files[i].filename])
|
60
|
+
end
|
61
|
+
|
62
|
+
#make sure we can overwrite the same file (which also tests we are freeing sectors when files are deleted)
|
63
|
+
for i in 0..250
|
64
|
+
t=dsk.make_file("MULTICOPY","TEST #{i} ")
|
65
|
+
puts "iteratio #{i}"
|
66
|
+
dsk.add_file(t)
|
67
|
+
assert_equal(t,dsk.files[t.filename])
|
68
|
+
end
|
69
|
+
|
70
|
+
#check picture files can be extracted
|
71
|
+
pic_file=dsk.files["LOGO"]
|
72
|
+
assert(pic_file!=nil,"#{dskname} should have a file called LOGO")
|
73
|
+
assert(pic_file.can_be_picture?,"LOGO should be viewable as a picture")
|
74
|
+
assert_equal("\211PNG\r\n\032\n",pic_file.to_png[0..7])
|
75
|
+
|
34
76
|
end
|
35
77
|
|
36
78
|
end
|
@@ -0,0 +1,47 @@
|
|
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
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
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(645,tree_file.contents.length,"SYSTEM/Mouse should be 645 bytes long")
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
data/test/test1.dsk
ADDED
Binary file
|
data/test/ts_test_all.rb
CHANGED
@@ -2,5 +2,7 @@ $:.unshift(File.dirname(__FILE__)) unless
|
|
2
2
|
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
3
3
|
|
4
4
|
require 'tc_dos_disks'
|
5
|
+
require 'tc_prodos_disks'
|
5
6
|
require 'tc_disassembly'
|
6
7
|
require 'tc_nadol_disks'
|
8
|
+
require 'tc_pascal_disks'
|
data/test/white_01b.dsk
ADDED
Binary file
|
data/test/white_03b.dsk
ADDED
Binary file
|
data/test/white_20a.dsk
ADDED
Binary file
|