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
@@ -0,0 +1,27 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>get_track_sector_list (DOSDisk)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/DOSDisk.rb, line 255</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_track_sector_list</span>(<span class="ruby-identifier">ts_list_track_no</span>,<span class="ruby-identifier">ts_list_sector_no</span>)
|
15
|
+
<span class="ruby-identifier">ts_list_sector</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">ts_list_track_no</span>,<span class="ruby-identifier">ts_list_sector_no</span>)
|
16
|
+
<span class="ruby-identifier">ts_list</span>=[]
|
17
|
+
<span class="ruby-keyword kw">for</span> <span class="ruby-identifier">entry_number</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">121</span>
|
18
|
+
<span class="ruby-identifier">data_track_no</span>=<span class="ruby-identifier">ts_list_sector</span>[<span class="ruby-identifier">entry_number</span><span class="ruby-operator">*</span><span class="ruby-value">2</span><span class="ruby-operator">+</span><span class="ruby-value">0x0</span><span class="ruby-constant">C</span>]
|
19
|
+
<span class="ruby-identifier">data_sector_no</span>=<span class="ruby-identifier">ts_list_sector</span>[<span class="ruby-identifier">entry_number</span><span class="ruby-operator">*</span><span class="ruby-value">2</span><span class="ruby-operator">+</span><span class="ruby-value">0x0</span><span class="ruby-constant">D</span>]
|
20
|
+
<span class="ruby-keyword kw">if</span>( (<span class="ruby-identifier">data_track_no!</span>=<span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">data_sector_no!</span>=<span class="ruby-value">0</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">data_track_no</span><span class="ruby-operator"><</span><span class="ruby-identifier">track_count</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">data_sector_no</span><span class="ruby-operator"><=</span><span class="ruby-value">0x0f</span>) <span class="ruby-keyword kw">then</span>
|
21
|
+
<span class="ruby-identifier">ts_list</span><span class="ruby-operator"><<</span><span class="ruby-constant">DSKTrackSector</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">data_track_no</span>,<span class="ruby-identifier">data_sector_no</span>)
|
22
|
+
<span class="ruby-keyword kw">end</span>
|
23
|
+
<span class="ruby-keyword kw">end</span>
|
24
|
+
<span class="ruby-identifier">ts_list</span>
|
25
|
+
<span class="ruby-keyword kw">end</span></pre>
|
26
|
+
</body>
|
27
|
+
</html>
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>delete_file (DOSDisk)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/DOSDisk.rb, line 268</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_file</span>(<span class="ruby-identifier">filename</span>)
|
15
|
+
<span class="ruby-identifier">this_files_catalog_slot</span>=<span class="ruby-identifier">find_catalog_slot</span>(<span class="ruby-identifier">filename</span>)
|
16
|
+
<span class="ruby-comment cmt">#if file not in catalog, do nothing
|
17
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">nil?</span>
|
18
|
+
<span class="ruby-identifier">file_descriptive_entry</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">track_no</span>,<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">sector_no</span>)[<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">offset</span><span class="ruby-operator">..</span><span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">offset</span><span class="ruby-operator">+</span><span class="ruby-value">0x22</span>]
|
19
|
+
|
20
|
+
<span class="ruby-comment cmt">#mark sector as free in sector usage list
|
21
|
+
<span class="ruby-identifier">sector_usage_bitmap_sector</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">vtoc_track_no</span>,<span class="ruby-identifier">vtoc_sector_no</span>)
|
22
|
+
<span class="ruby-identifier">sectors_to_mark_available</span>=<span class="ruby-identifier">get_track_sector_list</span>(<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0x00</span>],<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0x01</span>])
|
23
|
+
<span class="ruby-identifier">sectors_to_mark_available</span><span class="ruby-operator"><<</span><span class="ruby-constant">DSKTrackSector</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0x01</span>],<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0x00</span>])
|
24
|
+
|
25
|
+
<span class="ruby-identifier">sectors_to_mark_available</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ts</span><span class="ruby-operator">|</span>
|
26
|
+
<span class="ruby-identifier">offset_of_byte_containing_this_sector</span>=<span class="ruby-value">0x38</span><span class="ruby-operator">+</span>(<span class="ruby-identifier">ts</span>.<span class="ruby-identifier">track_no</span><span class="ruby-operator">*</span><span class="ruby-value">4</span>)
|
27
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ts</span>.<span class="ruby-identifier">sector_no</span><span class="ruby-operator"><</span><span class="ruby-value">8</span> <span class="ruby-keyword kw">then</span>
|
28
|
+
<span class="ruby-identifier">offset_of_byte_containing_this_sector</span><span class="ruby-operator">+=</span><span class="ruby-value">1</span>
|
29
|
+
<span class="ruby-keyword kw">end</span>
|
30
|
+
<span class="ruby-identifier">byte_containing_this_sector</span>=<span class="ruby-identifier">sector_usage_bitmap_sector</span>[<span class="ruby-identifier">offset_of_byte_containing_this_sector</span>]
|
31
|
+
<span class="ruby-identifier">byte_containing_this_sector</span>=<span class="ruby-identifier">byte_containing_this_sector</span><span class="ruby-operator">|</span>(<span class="ruby-value">2</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">ts</span>.<span class="ruby-identifier">sector_no</span><span class="ruby-operator">%</span><span class="ruby-value">8</span>))
|
32
|
+
<span class="ruby-identifier">sector_usage_bitmap_sector</span>[<span class="ruby-identifier">offset_of_byte_containing_this_sector</span>]=<span class="ruby-identifier">byte_containing_this_sector</span>
|
33
|
+
<span class="ruby-keyword kw">end</span>
|
34
|
+
<span class="ruby-identifier">set_sector</span>(<span class="ruby-identifier">vtoc_track_no</span>,<span class="ruby-identifier">vtoc_sector_no</span>,<span class="ruby-identifier">sector_usage_bitmap_sector</span>)
|
35
|
+
|
36
|
+
<span class="ruby-comment cmt">#mark slot as available in catalog
|
37
|
+
<span class="ruby-identifier">catalog_sector</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">track_no</span>,<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">sector_no</span>)
|
38
|
+
<span class="ruby-identifier">catalog_sector</span>[<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">offset</span><span class="ruby-operator">+</span><span class="ruby-value">0x20</span>]=<span class="ruby-identifier">catalog_sector</span>[<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">offset</span>] <span class="ruby-comment cmt">#save the current "first track no" in last byte of filename
|
39
|
+
<span class="ruby-identifier">catalog_sector</span>[<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">offset</span>]=<span class="ruby-value">0x</span><span class="ruby-constant">FF</span>
|
40
|
+
<span class="ruby-identifier">set_sector</span>(<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">track_no</span>,<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">sector_no</span>,<span class="ruby-identifier">catalog_sector</span>)
|
41
|
+
<span class="ruby-keyword kw">end</span></pre>
|
42
|
+
</body>
|
43
|
+
</html>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>set_sector (DOSDisk)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/DOSDisk.rb, line 298</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_sector</span>(<span class="ruby-identifier">track</span>,<span class="ruby-identifier">sector</span>,<span class="ruby-identifier">contents</span>)
|
15
|
+
<span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">track</span>,<span class="ruby-identifier">sector</span>,<span class="ruby-identifier">contents</span>)
|
16
|
+
|
17
|
+
<span class="ruby-comment cmt">#now mark sector as used in sector usage list
|
18
|
+
<span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">track!</span>=<span class="ruby-identifier">vtoc_track_no</span>) <span class="ruby-operator">||</span> (<span class="ruby-identifier">sector!</span>=<span class="ruby-identifier">vtoc_sector_no</span>)) <span class="ruby-keyword kw">then</span> <span class="ruby-comment cmt">#don't bother marking the VTOC sectors used
|
19
|
+
<span class="ruby-identifier">sector_usage_bitmap_sector</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">vtoc_track_no</span>,<span class="ruby-identifier">vtoc_sector_no</span>)
|
20
|
+
<span class="ruby-identifier">offset_of_byte_containing_this_sector</span>=<span class="ruby-value">0x38</span><span class="ruby-operator">+</span>(<span class="ruby-identifier">track</span><span class="ruby-operator">*</span><span class="ruby-value">4</span>)
|
21
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sector</span><span class="ruby-operator"><</span><span class="ruby-value">8</span> <span class="ruby-keyword kw">then</span>
|
22
|
+
<span class="ruby-identifier">offset_of_byte_containing_this_sector</span><span class="ruby-operator">+=</span><span class="ruby-value">1</span>
|
23
|
+
<span class="ruby-keyword kw">end</span>
|
24
|
+
<span class="ruby-identifier">byte_containing_this_sector</span>=<span class="ruby-identifier">sector_usage_bitmap_sector</span>[<span class="ruby-identifier">offset_of_byte_containing_this_sector</span>]
|
25
|
+
<span class="ruby-identifier">byte_containing_this_sector</span>=<span class="ruby-identifier">byte_containing_this_sector</span><span class="ruby-operator">&</span>(<span class="ruby-value">0xff</span><span class="ruby-operator">-</span>(<span class="ruby-value">2</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">sector</span><span class="ruby-operator">%</span><span class="ruby-value">8</span>)))
|
26
|
+
<span class="ruby-identifier">sector_usage_bitmap_sector</span>[<span class="ruby-identifier">offset_of_byte_containing_this_sector</span>]=<span class="ruby-identifier">byte_containing_this_sector</span>
|
27
|
+
<span class="ruby-identifier">set_sector</span>(<span class="ruby-identifier">vtoc_track_no</span>,<span class="ruby-identifier">vtoc_sector_no</span>,<span class="ruby-identifier">sector_usage_bitmap_sector</span>)
|
28
|
+
<span class="ruby-keyword kw">end</span>
|
29
|
+
<span class="ruby-keyword kw">end</span></pre>
|
30
|
+
</body>
|
31
|
+
</html>
|
@@ -0,0 +1,95 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>add_file (DOSDisk)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/DOSDisk.rb, line 316</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_file</span>(<span class="ruby-identifier">file</span>)
|
15
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-value str">"only DOSFiles may be added to DOS format disks!"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">DOSFile</span>)
|
16
|
+
|
17
|
+
<span class="ruby-comment cmt">#if this file exists, delete it first
|
18
|
+
<span class="ruby-identifier">delete_file</span>(<span class="ruby-identifier">file</span>.<span class="ruby-identifier">filename</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">files</span>[<span class="ruby-identifier">file</span>.<span class="ruby-identifier">filename</span>].<span class="ruby-identifier">nil?</span>
|
19
|
+
<span class="ruby-identifier">catalog_slot</span>=<span class="ruby-identifier">find_catalog_slot</span>(<span class="ruby-keyword kw">nil</span>)
|
20
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-value str">"CATALOG IS FULL!"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">catalog_slot</span>.<span class="ruby-identifier">nil?</span>
|
21
|
+
<span class="ruby-identifier">free_sectors</span>=<span class="ruby-identifier">free_sector_list</span>
|
22
|
+
<span class="ruby-identifier">sectors_needed</span>=<span class="ruby-value">1</span><span class="ruby-operator">+</span><span class="ruby-identifier">file</span>.<span class="ruby-identifier">length_in_sectors</span>
|
23
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-node">"not enough free space - #{sectors_needed} sectors needed, #{free_sector_list.length} available "</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">sectors_needed</span><span class="ruby-operator"><=</span><span class="ruby-identifier">free_sectors</span>.<span class="ruby-identifier">length</span>
|
24
|
+
|
25
|
+
<span class="ruby-comment cmt">#TODO - allow files of more than 122 sectors
|
26
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-value str">"only files up to 122 sectors currently supported "</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sectors_needed</span><span class="ruby-operator">></span><span class="ruby-value">122</span>
|
27
|
+
|
28
|
+
<span class="ruby-comment cmt">#TRACK/SECTOR LIST FORMAT (from Beneath Apple DOS p 4-6)
|
29
|
+
<span class="ruby-comment cmt"># 00 Not used
|
30
|
+
<span class="ruby-comment cmt"># 01 Track number of next T/S list of one is needed or zero if no more t/s list
|
31
|
+
<span class="ruby-comment cmt"># 02 Sector number of next T/S list (if one is present)
|
32
|
+
<span class="ruby-comment cmt"># 03-04 Not used
|
33
|
+
<span class="ruby-comment cmt"># 05-06 Sector offset in file of the first sector described by this list
|
34
|
+
<span class="ruby-comment cmt"># 07-oB Not used
|
35
|
+
<span class="ruby-comment cmt"># 0C-0D Track and sector of first data sector or zeros
|
36
|
+
<span class="ruby-comment cmt"># 0E-0F Track and sector of second data sector or zeros
|
37
|
+
<span class="ruby-comment cmt"># 10-FF Up to 120 more track and sector pairs
|
38
|
+
<span class="ruby-identifier">track_sector_list</span>=<span class="ruby-value str">"\0"</span><span class="ruby-operator">*</span><span class="ruby-value">256</span>
|
39
|
+
<span class="ruby-identifier">track_sector_list_sector</span>=<span class="ruby-identifier">free_sectors</span>[<span class="ruby-value">0</span>]
|
40
|
+
|
41
|
+
(<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">sectors_needed</span><span class="ruby-operator">-</span><span class="ruby-value">2</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sector_in_file</span><span class="ruby-operator">|</span>
|
42
|
+
<span class="ruby-identifier">sector_to_use</span>=<span class="ruby-identifier">free_sectors</span>[<span class="ruby-identifier">sector_in_file</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>]
|
43
|
+
<span class="ruby-identifier">track_sector_list</span>[(<span class="ruby-identifier">sector_in_file</span><span class="ruby-operator">*</span><span class="ruby-value">2</span>)<span class="ruby-operator">+</span><span class="ruby-value">0x0</span><span class="ruby-constant">C</span>]=<span class="ruby-identifier">sector_to_use</span>.<span class="ruby-identifier">track_no</span>
|
44
|
+
<span class="ruby-identifier">track_sector_list</span>[(<span class="ruby-identifier">sector_in_file</span><span class="ruby-operator">*</span><span class="ruby-value">2</span>)<span class="ruby-operator">+</span><span class="ruby-value">0</span><span class="ruby-constant">X0D</span>]=<span class="ruby-identifier">sector_to_use</span>.<span class="ruby-identifier">sector_no</span>
|
45
|
+
<span class="ruby-identifier">sector_contents</span>=<span class="ruby-identifier">file</span>.<span class="ruby-identifier">contents</span>[(<span class="ruby-identifier">sector_in_file</span><span class="ruby-operator">*</span><span class="ruby-value">256</span>),<span class="ruby-value">256</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">""</span>
|
46
|
+
<span class="ruby-identifier">set_sector</span>(<span class="ruby-identifier">sector_to_use</span>.<span class="ruby-identifier">track_no</span>,<span class="ruby-identifier">sector_to_use</span>.<span class="ruby-identifier">sector_no</span>,<span class="ruby-identifier">sector_contents</span>)
|
47
|
+
<span class="ruby-keyword kw">end</span>
|
48
|
+
<span class="ruby-comment cmt">#write the track/sector list
|
49
|
+
<span class="ruby-identifier">set_sector</span>(<span class="ruby-identifier">track_sector_list_sector</span>.<span class="ruby-identifier">track_no</span>,<span class="ruby-identifier">track_sector_list_sector</span>.<span class="ruby-identifier">sector_no</span>,<span class="ruby-identifier">track_sector_list</span>)
|
50
|
+
|
51
|
+
<span class="ruby-comment cmt">#update the catalog file descriptive entry
|
52
|
+
<span class="ruby-comment cmt">#FILE DESCRIPTIVE ENTRY (from Beneath Apple DOS p 4-6)
|
53
|
+
<span class="ruby-comment cmt"># 00 Track of first track/sector list sector, if this is a deleted file this contains FF
|
54
|
+
<span class="ruby-comment cmt"># and the original track number is copied to the last byte of the file name (BYTE 20)
|
55
|
+
<span class="ruby-comment cmt"># If this byte contains a 00, the entry is assumed to never have been used and is
|
56
|
+
<span class="ruby-comment cmt"># available for use. (This means track 0 can never be used for data even if the DOS image
|
57
|
+
<span class="ruby-comment cmt"># is 'wiped' from the disk)
|
58
|
+
<span class="ruby-comment cmt">#
|
59
|
+
<span class="ruby-comment cmt"># 01 Sector of first track/sector list sector
|
60
|
+
<span class="ruby-comment cmt"># 02 File type and flags:
|
61
|
+
<span class="ruby-comment cmt"># 80+file type - file is locked
|
62
|
+
<span class="ruby-comment cmt"># 00+file type - file is not locked
|
63
|
+
<span class="ruby-comment cmt">#
|
64
|
+
<span class="ruby-comment cmt"># 00 - TEXT file
|
65
|
+
<span class="ruby-comment cmt"># 01 - INTEGER BASIC file
|
66
|
+
<span class="ruby-comment cmt"># 02 - APPLESOFT BASIC file
|
67
|
+
<span class="ruby-comment cmt"># 04 - BINARY file
|
68
|
+
<span class="ruby-comment cmt"># 08 - S type file
|
69
|
+
<span class="ruby-comment cmt"># 10 - RELOCATABLE object module file
|
70
|
+
<span class="ruby-comment cmt"># 20 - a type file
|
71
|
+
<span class="ruby-comment cmt"># 40 - b type file
|
72
|
+
<span class="ruby-comment cmt">#
|
73
|
+
<span class="ruby-comment cmt"># 03-20 File Name (30 characters)
|
74
|
+
<span class="ruby-comment cmt"># 21-22 Length of file in sectors (LO/HI format)
|
75
|
+
|
76
|
+
<span class="ruby-identifier">catalog_sector</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">catalog_slot</span>.<span class="ruby-identifier">track_no</span>,<span class="ruby-identifier">catalog_slot</span>.<span class="ruby-identifier">sector_no</span>)
|
77
|
+
<span class="ruby-identifier">file_descriptive_entry</span>=<span class="ruby-value str">"\0"</span><span class="ruby-operator">*</span><span class="ruby-value">0x23</span>
|
78
|
+
<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0</span>]=<span class="ruby-identifier">track_sector_list_sector</span>.<span class="ruby-identifier">track_no</span>
|
79
|
+
<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">1</span>]=<span class="ruby-identifier">track_sector_list_sector</span>.<span class="ruby-identifier">sector_no</span>
|
80
|
+
<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">2</span>]=<span class="ruby-identifier">file</span>.<span class="ruby-identifier">file_type_byte</span>
|
81
|
+
<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">3</span><span class="ruby-operator">..</span><span class="ruby-value">0x20</span>]=<span class="ruby-identifier">file</span>.<span class="ruby-identifier">catalog_filename</span>
|
82
|
+
<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0x21</span>]=(<span class="ruby-identifier">sectors_needed</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)<span class="ruby-operator">%</span><span class="ruby-value">256</span>
|
83
|
+
<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0x22</span>]=(<span class="ruby-identifier">sectors_needed</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)<span class="ruby-operator">/</span><span class="ruby-value">256</span>
|
84
|
+
|
85
|
+
<span class="ruby-identifier">catalog_sector</span>[<span class="ruby-identifier">catalog_slot</span>.<span class="ruby-identifier">offset</span><span class="ruby-operator">..</span><span class="ruby-identifier">catalog_slot</span>.<span class="ruby-identifier">offset</span><span class="ruby-operator">+</span><span class="ruby-value">0x22</span>]=<span class="ruby-identifier">file_descriptive_entry</span>
|
86
|
+
|
87
|
+
<span class="ruby-identifier">set_sector</span>(<span class="ruby-identifier">catalog_slot</span>.<span class="ruby-identifier">track_no</span>,<span class="ruby-identifier">catalog_slot</span>.<span class="ruby-identifier">sector_no</span>,<span class="ruby-identifier">catalog_sector</span>)
|
88
|
+
|
89
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-value str">"catalog not updated correctly!"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">find_catalog_slot</span>(<span class="ruby-identifier">file</span>.<span class="ruby-identifier">filename</span>).<span class="ruby-identifier">nil?</span>
|
90
|
+
<span class="ruby-comment cmt">#reread the catalog to populate the files list
|
91
|
+
<span class="ruby-identifier">read_vtoc</span>
|
92
|
+
|
93
|
+
<span class="ruby-keyword kw">end</span></pre>
|
94
|
+
</body>
|
95
|
+
</html>
|
@@ -0,0 +1,85 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>read_vtoc (DOSDisk)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/DOSDisk.rb, line 133</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_vtoc</span>
|
15
|
+
<span class="ruby-ivar">@files</span>={}
|
16
|
+
<span class="ruby-identifier">vtoc_sector</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-value">17</span>,<span class="ruby-value">0</span>)
|
17
|
+
<span class="ruby-identifier">catalog_sector</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">vtoc_sector</span>[<span class="ruby-value">01</span>],<span class="ruby-identifier">vtoc_sector</span>[<span class="ruby-value">02</span>])
|
18
|
+
<span class="ruby-identifier">done</span>=<span class="ruby-keyword kw">false</span>
|
19
|
+
<span class="ruby-identifier">visited_sectors</span>={}
|
20
|
+
<span class="ruby-keyword kw">while</span> <span class="ruby-operator">!</span><span class="ruby-identifier">done</span>
|
21
|
+
<span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">catalog_sector</span>.<span class="ruby-identifier">nil?</span>
|
22
|
+
(<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">6</span>).<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">file_number</span><span class="ruby-operator">|</span>
|
23
|
+
<span class="ruby-identifier">file_descriptive_entry_start</span>=<span class="ruby-value">11</span><span class="ruby-operator">+</span><span class="ruby-identifier">file_number</span><span class="ruby-operator">*</span><span class="ruby-value">35</span>
|
24
|
+
<span class="ruby-identifier">file_descriptive_entry</span>=<span class="ruby-identifier">catalog_sector</span>[<span class="ruby-identifier">file_descriptive_entry_start</span><span class="ruby-operator">..</span><span class="ruby-identifier">file_descriptive_entry_start</span><span class="ruby-operator">+</span><span class="ruby-value">35</span>]
|
25
|
+
<span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0</span>]<span class="ruby-operator">==</span><span class="ruby-value">0x</span><span class="ruby-constant">FF</span>) <span class="ruby-comment cmt"># skip deleted files
|
26
|
+
<span class="ruby-identifier">filename</span>=<span class="ruby-value str">""</span>
|
27
|
+
<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">3</span><span class="ruby-operator">..</span><span class="ruby-value">32</span>].<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">each_byte</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">filename</span><span class="ruby-operator">+=</span>(<span class="ruby-identifier">b</span>.<span class="ruby-operator">%</span><span class="ruby-value">128</span>).<span class="ruby-identifier">chr</span>}
|
28
|
+
<span class="ruby-identifier">filename</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/ *$/</span>,<span class="ruby-value str">""</span>) <span class="ruby-comment cmt">#strip off trailing spaces</span>
|
29
|
+
<span class="ruby-identifier">filename</span>.<span class="ruby-identifier">tr!</span>(<span class="ruby-value str">"\x00-\x1f"</span>,<span class="ruby-value str">"\x40-\x5f"</span>) <span class="ruby-comment cmt">#convert non-printable chars to corresponding uppercase letter
|
30
|
+
<span class="ruby-identifier">locked</span>=(<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">2</span>]<span class="ruby-operator">>=</span><span class="ruby-value">0x80</span>)
|
31
|
+
<span class="ruby-identifier">sector_count</span>=<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0x21</span>]<span class="ruby-operator">+</span><span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0x22</span>]<span class="ruby-operator">*</span><span class="ruby-value">256</span>
|
32
|
+
|
33
|
+
<span class="ruby-identifier">file_type_code</span>=<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">2</span>]<span class="ruby-operator">%</span><span class="ruby-value">0x80</span>
|
34
|
+
|
35
|
+
|
36
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">sector_count</span><span class="ruby-operator">></span><span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
|
37
|
+
<span class="ruby-identifier">contents</span>=<span class="ruby-value str">""</span>
|
38
|
+
<span class="ruby-identifier">ts_list_track_no</span>=<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0</span>]
|
39
|
+
<span class="ruby-identifier">ts_list_sector_no</span>=<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">1</span>]
|
40
|
+
<span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">ts_list_track_no</span><span class="ruby-operator">></span><span class="ruby-value">0</span>) <span class="ruby-operator">&&</span> (<span class="ruby-identifier">ts_list_track_no</span><span class="ruby-operator"><=</span><span class="ruby-value">0</span><span class="ruby-constant">X22</span>) <span class="ruby-operator">&&</span> (<span class="ruby-identifier">ts_list_sector_no</span><span class="ruby-operator"><=</span><span class="ruby-value">0x0f</span>)
|
41
|
+
<span class="ruby-identifier">ts_list_sector</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">ts_list_track_no</span>,<span class="ruby-identifier">ts_list_sector_no</span>)
|
42
|
+
<span class="ruby-identifier">ts_list_track_no</span>=<span class="ruby-identifier">ts_list_sector</span>[<span class="ruby-value">1</span>]
|
43
|
+
<span class="ruby-identifier">ts_list_sector_no</span>=<span class="ruby-identifier">ts_list_sector</span>[<span class="ruby-value">2</span>]
|
44
|
+
|
45
|
+
<span class="ruby-value">0x0</span><span class="ruby-constant">C</span>.<span class="ruby-identifier">step</span>(<span class="ruby-value">0xff</span>,<span class="ruby-value">2</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
46
|
+
<span class="ruby-identifier">data_track_no</span>=<span class="ruby-identifier">ts_list_sector</span>[<span class="ruby-identifier">i</span>]
|
47
|
+
<span class="ruby-identifier">data_sector_no</span>=<span class="ruby-identifier">ts_list_sector</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>]
|
48
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">data_track_no</span><span class="ruby-operator">></span><span class="ruby-value">0</span>) <span class="ruby-operator">&&</span> (<span class="ruby-identifier">data_track_no</span><span class="ruby-operator"><=</span><span class="ruby-value">0</span><span class="ruby-constant">X22</span>) <span class="ruby-operator">&&</span> (<span class="ruby-identifier">data_sector_no</span><span class="ruby-operator"><=</span><span class="ruby-value">0x0f</span>) <span class="ruby-keyword kw">then</span>
|
49
|
+
<span class="ruby-identifier">contents</span><span class="ruby-operator">+=</span><span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">data_track_no</span>,<span class="ruby-identifier">data_sector_no</span>)
|
50
|
+
<span class="ruby-keyword kw">end</span>
|
51
|
+
}
|
52
|
+
<span class="ruby-keyword kw">end</span>
|
53
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">contents</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">></span><span class="ruby-value">0</span> <span class="ruby-keyword kw">then</span>
|
54
|
+
<span class="ruby-ivar">@files</span>[<span class="ruby-identifier">filename</span>]= <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">file_type_code</span>
|
55
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value">0x00</span> <span class="ruby-keyword kw">then</span> <span class="ruby-constant">TextFile</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">filename</span>,<span class="ruby-identifier">contents</span>,<span class="ruby-identifier">locked</span>)
|
56
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value">0x01</span> <span class="ruby-keyword kw">then</span> <span class="ruby-constant">SCAsmFile</span>.<span class="ruby-identifier">can_be_scasm_file?</span>(<span class="ruby-identifier">contents</span>)<span class="ruby-operator">?</span> <span class="ruby-constant">SCAsmFile</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">filename</span>,<span class="ruby-identifier">contents</span>,<span class="ruby-identifier">locked</span>)<span class="ruby-operator">:</span> <span class="ruby-constant">IntegerBasicFile</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">filename</span>,<span class="ruby-identifier">contents</span>,<span class="ruby-identifier">locked</span>)
|
57
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value">0x02</span> <span class="ruby-keyword kw">then</span> <span class="ruby-constant">AppleSoftFile</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">filename</span>,<span class="ruby-identifier">contents</span>,<span class="ruby-identifier">locked</span>)
|
58
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value">0x04</span> <span class="ruby-keyword kw">then</span> <span class="ruby-constant">BinaryFile</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">filename</span>,<span class="ruby-identifier">contents</span>,<span class="ruby-identifier">locked</span>)
|
59
|
+
<span class="ruby-comment cmt"># when 0x08 then "S" #S type file
|
60
|
+
<span class="ruby-comment cmt"># when 0x10 then "R" #RELOCATABLE object module file
|
61
|
+
<span class="ruby-comment cmt"># when 0x20 then "a" #??
|
62
|
+
<span class="ruby-comment cmt"># when 0x40 then "b" #??
|
63
|
+
<span class="ruby-keyword kw">else</span> <span class="ruby-constant">DOSFile</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">filename</span>,<span class="ruby-identifier">contents</span>,<span class="ruby-identifier">locked</span>,<span class="ruby-identifier">file_type_code</span>)
|
64
|
+
<span class="ruby-keyword kw">end</span>
|
65
|
+
<span class="ruby-keyword kw">end</span>
|
66
|
+
<span class="ruby-keyword kw">end</span>
|
67
|
+
}
|
68
|
+
<span class="ruby-identifier">next_track</span>=<span class="ruby-identifier">catalog_sector</span>[<span class="ruby-value">1</span>]
|
69
|
+
<span class="ruby-identifier">next_sector</span>=<span class="ruby-identifier">catalog_sector</span>[<span class="ruby-value">2</span>]<span class="ruby-operator">%</span><span class="ruby-value">0x10</span>
|
70
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">next_track</span><span class="ruby-operator">==</span><span class="ruby-value">0</span>) <span class="ruby-operator">&&</span>( <span class="ruby-identifier">next_sector</span><span class="ruby-operator">==</span><span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
|
71
|
+
<span class="ruby-identifier">done</span>=<span class="ruby-keyword kw">true</span>
|
72
|
+
<span class="ruby-keyword kw">else</span>
|
73
|
+
<span class="ruby-comment cmt">#check we haven't got into an endless loop</span>
|
74
|
+
<span class="ruby-identifier">s</span>=<span class="ruby-node">"#{next_track}/#{next_sector}"</span>
|
75
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span><span class="ruby-identifier">visited_sectors</span>[<span class="ruby-identifier">s</span>].<span class="ruby-identifier">nil?</span>) <span class="ruby-keyword kw">then</span>
|
76
|
+
<span class="ruby-identifier">done</span>=<span class="ruby-keyword kw">true</span>
|
77
|
+
<span class="ruby-keyword kw">end</span>
|
78
|
+
<span class="ruby-identifier">visited_sectors</span>[<span class="ruby-identifier">s</span>]=<span class="ruby-keyword kw">true</span>
|
79
|
+
<span class="ruby-identifier">catalog_sector</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">next_track</span>,<span class="ruby-identifier">next_sector</span>)
|
80
|
+
<span class="ruby-keyword kw">end</span>
|
81
|
+
<span class="ruby-keyword kw">end</span>
|
82
|
+
|
83
|
+
<span class="ruby-keyword kw">end</span></pre>
|
84
|
+
</body>
|
85
|
+
</html>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>find_catalog_slot (DOSDisk)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/DOSDisk.rb, line 204</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find_catalog_slot</span>(<span class="ruby-identifier">filename</span>)
|
15
|
+
<span class="ruby-identifier">vtoc_sector</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-value">17</span>,<span class="ruby-value">0</span>)
|
16
|
+
<span class="ruby-identifier">catalog_filename</span>=<span class="ruby-constant">DOSFile</span>.<span class="ruby-identifier">catalog_filename</span>(<span class="ruby-identifier">filename</span>.<span class="ruby-identifier">upcase</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">filename</span>.<span class="ruby-identifier">nil?</span>
|
17
|
+
<span class="ruby-identifier">catalog_track_no</span>=<span class="ruby-identifier">vtoc_sector</span>[<span class="ruby-value">01</span>]
|
18
|
+
<span class="ruby-identifier">catalog_sector_no</span>=<span class="ruby-identifier">vtoc_sector</span>[<span class="ruby-value">02</span>]
|
19
|
+
|
20
|
+
<span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">catalog_track_no</span><span class="ruby-operator">+</span><span class="ruby-identifier">catalog_sector_no</span><span class="ruby-operator">></span><span class="ruby-value">0</span>) <span class="ruby-keyword kw">do</span>
|
21
|
+
<span class="ruby-identifier">catalog</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">catalog_track_no</span>,<span class="ruby-identifier">catalog_sector_no</span>)
|
22
|
+
(<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">7</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">slot_no</span><span class="ruby-operator">|</span>
|
23
|
+
<span class="ruby-identifier">slot_start</span>=<span class="ruby-identifier">slot_no</span><span class="ruby-operator">*</span><span class="ruby-value">0x23</span><span class="ruby-operator">+</span><span class="ruby-value">0x0</span><span class="ruby-constant">B</span>
|
24
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">filename</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&&</span> (<span class="ruby-identifier">catalog</span>[<span class="ruby-identifier">slot_start</span>]<span class="ruby-operator">==</span><span class="ruby-value">0x00</span>)<span class="ruby-operator">||</span> (<span class="ruby-identifier">catalog</span>[<span class="ruby-identifier">slot_start</span>]<span class="ruby-operator">==</span><span class="ruby-value">0x</span><span class="ruby-constant">FF</span>) <span class="ruby-keyword kw">then</span>
|
25
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-constant">DSKTrackSector</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">catalog_track_no</span>,<span class="ruby-identifier">catalog_sector_no</span>,<span class="ruby-identifier">slot_start</span>)
|
26
|
+
<span class="ruby-keyword kw">end</span>
|
27
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-operator">!</span><span class="ruby-identifier">filename</span>.<span class="ruby-identifier">nil?</span>) <span class="ruby-operator">&&</span> (<span class="ruby-identifier">catalog</span>[<span class="ruby-identifier">slot_start</span><span class="ruby-operator">+</span><span class="ruby-value">0x03</span><span class="ruby-operator">..</span><span class="ruby-identifier">slot_start</span><span class="ruby-operator">+</span><span class="ruby-value">0x20</span>]<span class="ruby-operator">==</span><span class="ruby-identifier">catalog_filename</span>) <span class="ruby-keyword kw">then</span>
|
28
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-constant">DSKTrackSector</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">catalog_track_no</span>,<span class="ruby-identifier">catalog_sector_no</span>,<span class="ruby-identifier">slot_start</span>)
|
29
|
+
<span class="ruby-keyword kw">end</span>
|
30
|
+
<span class="ruby-keyword kw">end</span>
|
31
|
+
<span class="ruby-identifier">catalog_track_no</span>=<span class="ruby-identifier">catalog</span>[<span class="ruby-value">01</span>]
|
32
|
+
<span class="ruby-identifier">catalog_sector_no</span>=<span class="ruby-identifier">catalog</span>[<span class="ruby-value">02</span>]
|
33
|
+
<span class="ruby-keyword kw">end</span>
|
34
|
+
<span class="ruby-keyword kw">nil</span>
|
35
|
+
<span class="ruby-keyword kw">end</span></pre>
|
36
|
+
</body>
|
37
|
+
</html>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>free_sector_list (DOSDisk)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/DOSDisk.rb, line 229</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">free_sector_list</span>
|
15
|
+
<span class="ruby-identifier">end_of_sector_usage_bitmap</span>=(<span class="ruby-identifier">track_count</span><span class="ruby-operator">*</span><span class="ruby-value">4</span><span class="ruby-operator">+</span><span class="ruby-value">0x38</span>)<span class="ruby-operator">-</span><span class="ruby-value">1</span>
|
16
|
+
<span class="ruby-identifier">sector_usage_bitmap</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-value">0x11</span>,<span class="ruby-value">0</span>)[<span class="ruby-value">0x38</span><span class="ruby-operator">..</span><span class="ruby-identifier">end_of_sector_usage_bitmap</span>]
|
17
|
+
<span class="ruby-identifier">free_sectors</span>=[]
|
18
|
+
<span class="ruby-comment cmt">#skip track 0 - even if sectors there are unused, we can't include them in a catalog or track/sector list
|
19
|
+
(<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-identifier">track_count</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">track</span><span class="ruby-operator">|</span>
|
20
|
+
<span class="ruby-identifier">track_bitmap_lo</span>=<span class="ruby-identifier">sector_usage_bitmap</span>[<span class="ruby-identifier">track</span><span class="ruby-operator">*</span><span class="ruby-value">4</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>]
|
21
|
+
<span class="ruby-identifier">track_bitmap_hi</span>=<span class="ruby-identifier">sector_usage_bitmap</span>[<span class="ruby-identifier">track</span><span class="ruby-operator">*</span><span class="ruby-value">4</span>]
|
22
|
+
(<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">7</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sector</span><span class="ruby-operator">|</span>
|
23
|
+
<span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">track_bitmap_lo</span> <span class="ruby-operator">&</span> (<span class="ruby-value">2</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">sector</span>)))<span class="ruby-operator">!=</span><span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
|
24
|
+
<span class="ruby-identifier">free_sectors</span><span class="ruby-operator"><<</span><span class="ruby-constant">DSKTrackSector</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">track</span>,<span class="ruby-identifier">sector</span>)
|
25
|
+
<span class="ruby-keyword kw">end</span>
|
26
|
+
<span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">track_bitmap_hi</span> <span class="ruby-operator">&</span> (<span class="ruby-value">2</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">sector</span>)))<span class="ruby-operator">!=</span><span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
|
27
|
+
<span class="ruby-identifier">free_sectors</span><span class="ruby-operator"><<</span><span class="ruby-constant">DSKTrackSector</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">track</span>,<span class="ruby-identifier">sector</span><span class="ruby-operator">+</span><span class="ruby-value">8</span>)
|
28
|
+
<span class="ruby-keyword kw">end</span>
|
29
|
+
<span class="ruby-keyword kw">end</span>
|
30
|
+
<span class="ruby-keyword kw">end</span>
|
31
|
+
<span class="ruby-identifier">free_sectors</span>.<span class="ruby-identifier">sort</span>
|
32
|
+
<span class="ruby-keyword kw">end</span></pre>
|
33
|
+
</body>
|
34
|
+
</html>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>get_track_sector_list (DOSDisk)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/DOSDisk.rb, line 251</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_track_sector_list</span>(<span class="ruby-identifier">ts_list_track_no</span>,<span class="ruby-identifier">ts_list_sector_no</span>)
|
15
|
+
<span class="ruby-identifier">ts_list_sector</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">ts_list_track_no</span>,<span class="ruby-identifier">ts_list_sector_no</span>)
|
16
|
+
<span class="ruby-identifier">ts_list</span>=[]
|
17
|
+
<span class="ruby-keyword kw">for</span> <span class="ruby-identifier">entry_number</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">121</span>
|
18
|
+
<span class="ruby-identifier">data_track_no</span>=<span class="ruby-identifier">ts_list_sector</span>[<span class="ruby-identifier">entry_number</span><span class="ruby-operator">*</span><span class="ruby-value">2</span><span class="ruby-operator">+</span><span class="ruby-value">0x0</span><span class="ruby-constant">C</span>]
|
19
|
+
<span class="ruby-identifier">data_sector_no</span>=<span class="ruby-identifier">ts_list_sector</span>[<span class="ruby-identifier">entry_number</span><span class="ruby-operator">*</span><span class="ruby-value">2</span><span class="ruby-operator">+</span><span class="ruby-value">0x0</span><span class="ruby-constant">D</span>]
|
20
|
+
<span class="ruby-keyword kw">if</span>( (<span class="ruby-identifier">data_track_no!</span>=<span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">data_sector_no!</span>=<span class="ruby-value">0</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">data_track_no</span><span class="ruby-operator"><</span><span class="ruby-identifier">track_count</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">data_sector_no</span><span class="ruby-operator"><=</span><span class="ruby-value">0x0f</span>) <span class="ruby-keyword kw">then</span>
|
21
|
+
<span class="ruby-identifier">ts_list</span><span class="ruby-operator"><<</span><span class="ruby-constant">DSKTrackSector</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">data_track_no</span>,<span class="ruby-identifier">data_sector_no</span>)
|
22
|
+
<span class="ruby-keyword kw">end</span>
|
23
|
+
<span class="ruby-keyword kw">end</span>
|
24
|
+
<span class="ruby-identifier">ts_list</span>
|
25
|
+
<span class="ruby-keyword kw">end</span></pre>
|
26
|
+
</body>
|
27
|
+
</html>
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>delete_file (DOSDisk)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/DOSDisk.rb, line 264</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_file</span>(<span class="ruby-identifier">filename</span>)
|
15
|
+
<span class="ruby-identifier">this_files_catalog_slot</span>=<span class="ruby-identifier">find_catalog_slot</span>(<span class="ruby-identifier">filename</span>)
|
16
|
+
<span class="ruby-comment cmt">#if file not in catalog, do nothing
|
17
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">nil?</span>
|
18
|
+
<span class="ruby-identifier">file_descriptive_entry</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">track_no</span>,<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">sector_no</span>)[<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">offset</span><span class="ruby-operator">..</span><span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">offset</span><span class="ruby-operator">+</span><span class="ruby-value">0x22</span>]
|
19
|
+
|
20
|
+
<span class="ruby-comment cmt">#mark sector as free in sector usage list
|
21
|
+
<span class="ruby-identifier">sector_usage_bitmap_sector</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-value">0x11</span>,<span class="ruby-value">0</span>)
|
22
|
+
<span class="ruby-identifier">sectors_to_mark_available</span>=<span class="ruby-identifier">get_track_sector_list</span>(<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0x00</span>],<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0x01</span>])
|
23
|
+
<span class="ruby-identifier">sectors_to_mark_available</span><span class="ruby-operator"><<</span><span class="ruby-constant">DSKTrackSector</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0x01</span>],<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0x00</span>])
|
24
|
+
|
25
|
+
<span class="ruby-identifier">sectors_to_mark_available</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ts</span><span class="ruby-operator">|</span>
|
26
|
+
<span class="ruby-identifier">offset_of_byte_containing_this_sector</span>=<span class="ruby-value">0x38</span><span class="ruby-operator">+</span>(<span class="ruby-identifier">ts</span>.<span class="ruby-identifier">track_no</span><span class="ruby-operator">*</span><span class="ruby-value">4</span>)
|
27
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ts</span>.<span class="ruby-identifier">sector_no</span><span class="ruby-operator"><</span><span class="ruby-value">8</span> <span class="ruby-keyword kw">then</span>
|
28
|
+
<span class="ruby-identifier">offset_of_byte_containing_this_sector</span><span class="ruby-operator">+=</span><span class="ruby-value">1</span>
|
29
|
+
<span class="ruby-keyword kw">end</span>
|
30
|
+
<span class="ruby-identifier">byte_containing_this_sector</span>=<span class="ruby-identifier">sector_usage_bitmap_sector</span>[<span class="ruby-identifier">offset_of_byte_containing_this_sector</span>]
|
31
|
+
<span class="ruby-identifier">byte_containing_this_sector</span>=<span class="ruby-identifier">byte_containing_this_sector</span><span class="ruby-operator">|</span>(<span class="ruby-value">2</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">ts</span>.<span class="ruby-identifier">sector_no</span><span class="ruby-operator">%</span><span class="ruby-value">8</span>))
|
32
|
+
<span class="ruby-identifier">sector_usage_bitmap_sector</span>[<span class="ruby-identifier">offset_of_byte_containing_this_sector</span>]=<span class="ruby-identifier">byte_containing_this_sector</span>
|
33
|
+
<span class="ruby-keyword kw">end</span>
|
34
|
+
<span class="ruby-identifier">set_sector</span>(<span class="ruby-value">0x11</span>,<span class="ruby-value">0</span>,<span class="ruby-identifier">sector_usage_bitmap_sector</span>)
|
35
|
+
|
36
|
+
<span class="ruby-comment cmt">#mark slot as available in catalog
|
37
|
+
<span class="ruby-identifier">catalog_sector</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">track_no</span>,<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">sector_no</span>)
|
38
|
+
<span class="ruby-identifier">catalog_sector</span>[<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">offset</span><span class="ruby-operator">+</span><span class="ruby-value">0x20</span>]=<span class="ruby-identifier">catalog_sector</span>[<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">offset</span>] <span class="ruby-comment cmt">#save the current "first track no" in last byte of filename
|
39
|
+
<span class="ruby-identifier">catalog_sector</span>[<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">offset</span>]=<span class="ruby-value">0x</span><span class="ruby-constant">FF</span>
|
40
|
+
<span class="ruby-identifier">set_sector</span>(<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">track_no</span>,<span class="ruby-identifier">this_files_catalog_slot</span>.<span class="ruby-identifier">sector_no</span>,<span class="ruby-identifier">catalog_sector</span>)
|
41
|
+
<span class="ruby-keyword kw">end</span></pre>
|
42
|
+
</body>
|
43
|
+
</html>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>set_sector (DOSDisk)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/DOSDisk.rb, line 294</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_sector</span>(<span class="ruby-identifier">track</span>,<span class="ruby-identifier">sector</span>,<span class="ruby-identifier">contents</span>)
|
15
|
+
<span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">track</span>,<span class="ruby-identifier">sector</span>,<span class="ruby-identifier">contents</span>)
|
16
|
+
|
17
|
+
<span class="ruby-comment cmt">#now mark sector as used in sector usage list
|
18
|
+
<span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">track!</span>=<span class="ruby-value">0x11</span>) <span class="ruby-operator">||</span> (<span class="ruby-identifier">sector!</span>=<span class="ruby-value">00</span>)) <span class="ruby-keyword kw">then</span> <span class="ruby-comment cmt">#don't bother marking the VTOC sectors used
|
19
|
+
<span class="ruby-identifier">sector_usage_bitmap_sector</span>=<span class="ruby-identifier">get_sector</span>(<span class="ruby-value">0x11</span>,<span class="ruby-value">0</span>)
|
20
|
+
<span class="ruby-identifier">offset_of_byte_containing_this_sector</span>=<span class="ruby-value">0x38</span><span class="ruby-operator">+</span>(<span class="ruby-identifier">track</span><span class="ruby-operator">*</span><span class="ruby-value">4</span>)
|
21
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sector</span><span class="ruby-operator"><</span><span class="ruby-value">8</span> <span class="ruby-keyword kw">then</span>
|
22
|
+
<span class="ruby-identifier">offset_of_byte_containing_this_sector</span><span class="ruby-operator">+=</span><span class="ruby-value">1</span>
|
23
|
+
<span class="ruby-keyword kw">end</span>
|
24
|
+
<span class="ruby-identifier">byte_containing_this_sector</span>=<span class="ruby-identifier">sector_usage_bitmap_sector</span>[<span class="ruby-identifier">offset_of_byte_containing_this_sector</span>]
|
25
|
+
<span class="ruby-identifier">byte_containing_this_sector</span>=<span class="ruby-identifier">byte_containing_this_sector</span><span class="ruby-operator">&</span>(<span class="ruby-value">0xff</span><span class="ruby-operator">-</span>(<span class="ruby-value">2</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">sector</span><span class="ruby-operator">%</span><span class="ruby-value">8</span>)))
|
26
|
+
<span class="ruby-identifier">sector_usage_bitmap_sector</span>[<span class="ruby-identifier">offset_of_byte_containing_this_sector</span>]=<span class="ruby-identifier">byte_containing_this_sector</span>
|
27
|
+
<span class="ruby-identifier">set_sector</span>(<span class="ruby-value">0x11</span>,<span class="ruby-value">0</span>,<span class="ruby-identifier">sector_usage_bitmap_sector</span>)
|
28
|
+
<span class="ruby-keyword kw">end</span>
|
29
|
+
<span class="ruby-keyword kw">end</span></pre>
|
30
|
+
</body>
|
31
|
+
</html>
|