dsktool 0.1.6 → 0.2.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 +213 -147
- data/bin/dsktool.rb +7 -7
- data/doc/classes/AppleSoftFile.html +15 -15
- data/doc/classes/AppleSoftFile.src/M000011.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000012.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000013.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000014.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000020.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000021.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000022.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000026.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000027.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000028.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000032.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000033.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000034.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000035.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000036.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000038.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000039.html +18 -0
- data/doc/classes/AppleSoftFile.src/M000040.html +18 -0
- data/doc/classes/BinaryFile.html +15 -15
- data/doc/classes/BinaryFile.src/M000023.html +18 -0
- data/doc/classes/BinaryFile.src/M000024.html +18 -0
- data/doc/classes/BinaryFile.src/M000025.html +18 -0
- data/doc/classes/BinaryFile.src/M000026.html +19 -0
- data/doc/classes/BinaryFile.src/M000029.html +18 -0
- data/doc/classes/BinaryFile.src/M000030.html +18 -0
- data/doc/classes/BinaryFile.src/M000031.html +19 -0
- data/doc/classes/BinaryFile.src/M000039.html +18 -0
- data/doc/classes/BinaryFile.src/M000040.html +18 -0
- data/doc/classes/BinaryFile.src/M000041.html +19 -0
- data/doc/classes/BinaryFile.src/M000045.html +18 -0
- data/doc/classes/BinaryFile.src/M000046.html +18 -0
- data/doc/classes/BinaryFile.src/M000047.html +19 -0
- data/doc/classes/BinaryFile.src/M000052.html +18 -0
- data/doc/classes/BinaryFile.src/M000053.html +18 -0
- data/doc/classes/BinaryFile.src/M000054.html +18 -0
- data/doc/classes/BinaryFile.src/M000055.html +18 -0
- data/doc/classes/BinaryFile.src/M000056.html +19 -0
- data/doc/classes/BinaryFile.src/M000059.html +18 -0
- data/doc/classes/BinaryFile.src/M000060.html +18 -0
- data/doc/classes/BinaryFile.src/M000061.html +19 -0
- data/doc/classes/CatalogServlet.html +147 -0
- data/doc/classes/CatalogServlet.src/M000015.html +20 -0
- data/doc/classes/CatalogServlet.src/M000021.html +20 -0
- data/doc/classes/CatalogServlet.src/M000024.html +20 -0
- data/doc/classes/CatalogServlet.src/M000027.html +20 -0
- data/doc/classes/D65.html +10 -10
- data/doc/classes/D65.src/M000009.html +18 -0
- data/doc/classes/D65.src/M000010.html +18 -0
- data/doc/classes/D65.src/M000011.html +64 -0
- data/doc/classes/D65.src/M000018.html +18 -0
- data/doc/classes/D65.src/M000019.html +64 -0
- data/doc/classes/D65.src/M000024.html +18 -0
- data/doc/classes/D65.src/M000025.html +64 -0
- data/doc/classes/D65.src/M000030.html +18 -0
- data/doc/classes/D65.src/M000031.html +18 -0
- data/doc/classes/D65.src/M000032.html +64 -0
- data/doc/classes/D65.src/M000035.html +18 -0
- data/doc/classes/D65.src/M000036.html +64 -0
- data/doc/classes/DOSDisk.html +15 -15
- data/doc/classes/DOSDisk.src/M000014.html +20 -0
- data/doc/classes/DOSDisk.src/M000015.html +20 -0
- data/doc/classes/DOSDisk.src/M000016.html +19 -0
- data/doc/classes/DOSDisk.src/M000017.html +76 -0
- data/doc/classes/DOSDisk.src/M000023.html +20 -0
- data/doc/classes/DOSDisk.src/M000024.html +19 -0
- data/doc/classes/DOSDisk.src/M000025.html +76 -0
- data/doc/classes/DOSDisk.src/M000029.html +20 -0
- data/doc/classes/DOSDisk.src/M000030.html +19 -0
- data/doc/classes/DOSDisk.src/M000031.html +76 -0
- data/doc/classes/DOSDisk.src/M000035.html +20 -0
- data/doc/classes/DOSDisk.src/M000036.html +20 -0
- data/doc/classes/DOSDisk.src/M000037.html +20 -0
- data/doc/classes/DOSDisk.src/M000038.html +19 -0
- data/doc/classes/DOSDisk.src/M000039.html +76 -0
- data/doc/classes/DOSDisk.src/M000041.html +20 -0
- data/doc/classes/DOSDisk.src/M000042.html +19 -0
- data/doc/classes/DOSDisk.src/M000043.html +76 -0
- data/doc/classes/DOSFile.html +20 -20
- data/doc/classes/DOSFile.src/M000026.html +22 -0
- data/doc/classes/DOSFile.src/M000027.html +22 -0
- data/doc/classes/DOSFile.src/M000028.html +17 -0
- data/doc/classes/DOSFile.src/M000029.html +18 -0
- data/doc/classes/DOSFile.src/M000032.html +22 -0
- data/doc/classes/DOSFile.src/M000033.html +17 -0
- data/doc/classes/DOSFile.src/M000034.html +18 -0
- data/doc/classes/DOSFile.src/M000042.html +22 -0
- data/doc/classes/DOSFile.src/M000043.html +18 -0
- data/doc/classes/DOSFile.src/M000044.html +18 -0
- data/doc/classes/DOSFile.src/M000048.html +22 -0
- data/doc/classes/DOSFile.src/M000049.html +18 -0
- data/doc/classes/DOSFile.src/M000050.html +18 -0
- data/doc/classes/DOSFile.src/M000051.html +31 -0
- data/doc/classes/DOSFile.src/M000057.html +22 -0
- data/doc/classes/DOSFile.src/M000058.html +22 -0
- data/doc/classes/DOSFile.src/M000059.html +22 -0
- data/doc/classes/DOSFile.src/M000060.html +18 -0
- data/doc/classes/DOSFile.src/M000061.html +18 -0
- data/doc/classes/DOSFile.src/M000062.html +31 -0
- data/doc/classes/DOSFile.src/M000064.html +22 -0
- data/doc/classes/DOSFile.src/M000065.html +18 -0
- data/doc/classes/DOSFile.src/M000066.html +18 -0
- data/doc/classes/DOSFile.src/M000067.html +31 -0
- data/doc/classes/DSK.html +75 -42
- data/doc/classes/DSK.src/M000021.html +19 -0
- data/doc/classes/DSK.src/M000022.html +18 -0
- data/doc/classes/DSK.src/M000023.html +40 -0
- data/doc/classes/DSK.src/M000024.html +23 -0
- data/doc/classes/DSK.src/M000027.html +18 -0
- data/doc/classes/DSK.src/M000028.html +22 -0
- data/doc/classes/DSK.src/M000029.html +22 -0
- data/doc/classes/DSK.src/M000030.html +34 -0
- data/doc/classes/DSK.src/M000031.html +19 -0
- data/doc/classes/DSK.src/M000032.html +18 -0
- data/doc/classes/DSK.src/M000033.html +18 -0
- data/doc/classes/DSK.src/M000034.html +22 -0
- data/doc/classes/DSK.src/M000035.html +22 -0
- data/doc/classes/DSK.src/M000036.html +34 -0
- data/doc/classes/DSK.src/M000037.html +19 -0
- data/doc/classes/DSK.src/M000038.html +18 -0
- data/doc/classes/DSK.src/M000039.html +18 -0
- data/doc/classes/DSK.src/M000040.html +18 -0
- data/doc/classes/DSK.src/M000041.html +18 -0
- data/doc/classes/DSK.src/M000042.html +22 -0
- data/doc/classes/DSK.src/M000043.html +19 -0
- data/doc/classes/DSK.src/M000044.html +22 -0
- data/doc/classes/DSK.src/M000045.html +18 -0
- data/doc/classes/DSK.src/M000046.html +22 -0
- data/doc/classes/DSK.src/M000047.html +19 -0
- data/doc/classes/DSK.src/M000048.html +22 -0
- data/doc/classes/DSK.src/M000049.html +40 -0
- data/doc/classes/DSK.src/M000050.html +19 -0
- data/doc/classes/DSK.src/M000051.html +18 -0
- data/doc/classes/DSK.src/M000052.html +37 -0
- data/doc/classes/DSK.src/M000053.html +24 -0
- data/doc/classes/DSK.src/M000054.html +24 -0
- data/doc/classes/DirectoryServlet.html +147 -0
- data/doc/classes/DirectoryServlet.src/M000017.html +20 -0
- data/doc/classes/DirectoryServlet.src/M000023.html +20 -0
- data/doc/classes/DirectoryServlet.src/M000026.html +20 -0
- data/doc/classes/DirectoryServlet.src/M000030.html +20 -0
- data/doc/classes/IntegerBasicFile.html +15 -15
- data/doc/classes/IntegerBasicFile.src/M000006.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000007.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000008.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000012.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000013.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000014.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000018.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000019.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000020.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000021.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000022.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000023.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000024.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000025.html +18 -0
- data/doc/classes/IntegerBasicFile.src/M000026.html +18 -0
- data/doc/classes/NADOLBinaryFile.html +153 -0
- data/doc/classes/NADOLBinaryFile.src/M000033.html +19 -0
- data/doc/classes/NADOLBinaryFile.src/M000037.html +19 -0
- data/doc/classes/NADOLDisk.html +189 -0
- data/doc/classes/NADOLDisk.src/M000018.html +20 -0
- data/doc/classes/NADOLDisk.src/M000019.html +19 -0
- data/doc/classes/NADOLDisk.src/M000020.html +50 -0
- data/doc/classes/NADOLDisk.src/M000021.html +20 -0
- data/doc/classes/NADOLDisk.src/M000022.html +19 -0
- data/doc/classes/NADOLDisk.src/M000023.html +50 -0
- data/doc/classes/NADOLFile.html +216 -0
- data/doc/classes/NADOLFile.src/M000027.html +19 -0
- data/doc/classes/NADOLFile.src/M000028.html +18 -0
- data/doc/classes/NADOLFile.src/M000029.html +18 -0
- data/doc/classes/NADOLFile.src/M000030.html +31 -0
- data/doc/classes/NADOLFile.src/M000031.html +19 -0
- data/doc/classes/NADOLFile.src/M000032.html +18 -0
- data/doc/classes/NADOLFile.src/M000033.html +18 -0
- data/doc/classes/NADOLFile.src/M000034.html +31 -0
- data/doc/classes/NADOLTokenisedFile.html +217 -0
- data/doc/classes/NADOLTokenisedFile.src/M000061.html +28 -0
- data/doc/classes/NADOLTokenisedFile.src/M000062.html +28 -0
- data/doc/classes/NADOLTokenisedFile.src/M000063.html +28 -0
- data/doc/classes/NADOLTokenisedFile.src/M000064.html +18 -0
- data/doc/classes/NADOLTokenisedFile.src/M000065.html +18 -0
- data/doc/classes/NADOLTokenisedFile.src/M000068.html +28 -0
- data/doc/classes/NADOLTokenisedFile.src/M000069.html +18 -0
- data/doc/classes/NADOLTokenisedFile.src/M000070.html +18 -0
- data/doc/classes/RDoc.html +141 -0
- data/doc/classes/RDoc.src/M000032.html +40 -0
- data/doc/classes/RDoc.src/M000033.html +40 -0
- data/doc/classes/RDoc.src/M000038.html +40 -0
- data/doc/classes/RDoc.src/M000048.html +40 -0
- data/doc/classes/RDoc.src/M000055.html +40 -0
- data/doc/classes/RDoc.src/M000066.html +40 -0
- data/doc/classes/RDoc.src/M000068.html +40 -0
- data/doc/classes/RDoc.src/M000069.html +40 -0
- data/doc/classes/RDoc.src/M000074.html +40 -0
- data/doc/classes/SCAsmFile.html +226 -0
- data/doc/classes/SCAsmFile.src/M000025.html +18 -0
- data/doc/classes/SCAsmFile.src/M000026.html +18 -0
- data/doc/classes/SCAsmFile.src/M000027.html +18 -0
- data/doc/classes/SCAsmFile.src/M000028.html +36 -0
- data/doc/classes/SCAsmFile.src/M000035.html +18 -0
- data/doc/classes/SCAsmFile.src/M000036.html +18 -0
- data/doc/classes/SCAsmFile.src/M000037.html +18 -0
- data/doc/classes/SCAsmFile.src/M000038.html +36 -0
- data/doc/classes/SCAsmFile.src/M000041.html +18 -0
- data/doc/classes/SCAsmFile.src/M000042.html +18 -0
- data/doc/classes/SCAsmFile.src/M000043.html +18 -0
- data/doc/classes/SCAsmFile.src/M000044.html +36 -0
- data/doc/classes/SCAsmFile.src/M000048.html +18 -0
- data/doc/classes/SCAsmFile.src/M000049.html +18 -0
- data/doc/classes/SCAsmFile.src/M000050.html +18 -0
- data/doc/classes/SCAsmFile.src/M000051.html +18 -0
- data/doc/classes/SCAsmFile.src/M000052.html +18 -0
- data/doc/classes/SCAsmFile.src/M000053.html +36 -0
- data/doc/classes/SCAsmFile.src/M000055.html +18 -0
- data/doc/classes/SCAsmFile.src/M000056.html +18 -0
- data/doc/classes/SCAsmFile.src/M000057.html +18 -0
- data/doc/classes/SCAsmFile.src/M000058.html +39 -0
- data/doc/classes/ShowFileServlet.html +147 -0
- data/doc/classes/ShowFileServlet.src/M000026.html +21 -0
- data/doc/classes/ShowFileServlet.src/M000032.html +22 -0
- data/doc/classes/ShowFileServlet.src/M000038.html +22 -0
- data/doc/classes/ShowFileServlet.src/M000039.html +22 -0
- data/doc/classes/ShowFileServlet.src/M000040.html +22 -0
- data/doc/classes/ShowFileServlet.src/M000044.html +22 -0
- data/doc/classes/ShowSectorServlet.html +147 -0
- data/doc/classes/ShowSectorServlet.src/M000029.html +22 -0
- data/doc/classes/TestDOSDisks.html +46 -31
- data/doc/classes/TestDOSDisks.src/M000004.html +41 -0
- data/doc/classes/TestDOSDisks.src/M000005.html +27 -0
- data/doc/classes/TestDOSDisks.src/M000006.html +24 -0
- data/doc/classes/TestDOSDisks.src/M000007.html +19 -0
- data/doc/classes/TestDOSDisks.src/M000008.html +19 -0
- data/doc/classes/TestDOSDisks.src/M000009.html +25 -0
- data/doc/classes/TestDOSDisks.src/M000010.html +41 -0
- data/doc/classes/TestDOSDisks.src/M000011.html +27 -0
- data/doc/classes/TestDOSDisks.src/M000012.html +24 -0
- data/doc/classes/TestDOSDisks.src/M000013.html +19 -0
- data/doc/classes/TestDOSDisks.src/M000014.html +24 -0
- data/doc/classes/TestDOSDisks.src/M000015.html +19 -0
- data/doc/classes/TestDOSDisks.src/M000016.html +22 -0
- data/doc/classes/TestDOSDisks.src/M000017.html +19 -0
- data/doc/classes/TestDOSDisks.src/M000018.html +25 -0
- data/doc/classes/TestDOSDisks.src/M000019.html +41 -0
- data/doc/classes/TestDOSDisks.src/M000020.html +27 -0
- data/doc/classes/TestDisassembly.html +6 -6
- data/doc/classes/TestDisassembly.src/M000007.html +19 -0
- data/doc/classes/TestDisassembly.src/M000008.html +19 -0
- data/doc/classes/TestDisassembly.src/M000009.html +19 -0
- data/doc/classes/TestDisassembly.src/M000016.html +19 -0
- data/doc/classes/TestDisassembly.src/M000022.html +19 -0
- data/doc/classes/TestDisassembly.src/M000025.html +19 -0
- data/doc/classes/TestDisassembly.src/M000028.html +19 -0
- data/doc/classes/TestNADOLDisks.html +159 -0
- data/doc/classes/TestNADOLDisks.src/M000055.html +19 -0
- data/doc/classes/TestNADOLDisks.src/M000056.html +19 -0
- data/doc/classes/TestNADOLDisks.src/M000057.html +19 -0
- data/doc/classes/TestNADOLDisks.src/M000058.html +34 -0
- data/doc/classes/TestNADOLDisks.src/M000062.html +19 -0
- data/doc/classes/TestNADOLDisks.src/M000063.html +34 -0
- data/doc/classes/TextFile.html +15 -15
- data/doc/classes/TextFile.src/M000029.html +18 -0
- data/doc/classes/TextFile.src/M000030.html +18 -0
- data/doc/classes/TextFile.src/M000031.html +18 -0
- data/doc/classes/TextFile.src/M000032.html +20 -0
- data/doc/classes/TextFile.src/M000035.html +18 -0
- data/doc/classes/TextFile.src/M000036.html +18 -0
- data/doc/classes/TextFile.src/M000037.html +20 -0
- data/doc/classes/TextFile.src/M000045.html +18 -0
- data/doc/classes/TextFile.src/M000046.html +18 -0
- data/doc/classes/TextFile.src/M000047.html +20 -0
- data/doc/classes/TextFile.src/M000052.html +18 -0
- data/doc/classes/TextFile.src/M000053.html +18 -0
- data/doc/classes/TextFile.src/M000054.html +20 -0
- data/doc/classes/TextFile.src/M000063.html +18 -0
- data/doc/classes/TextFile.src/M000064.html +18 -0
- data/doc/classes/TextFile.src/M000065.html +18 -0
- data/doc/classes/TextFile.src/M000066.html +18 -0
- data/doc/classes/TextFile.src/M000067.html +18 -0
- data/doc/classes/TextFile.src/M000068.html +20 -0
- data/doc/classes/TextFile.src/M000071.html +18 -0
- data/doc/classes/TextFile.src/M000072.html +18 -0
- data/doc/classes/TextFile.src/M000073.html +20 -0
- data/doc/created.rid +1 -1
- data/doc/dot/f_0.dot +71 -0
- data/doc/dot/f_0.png +0 -0
- data/doc/dot/f_1.dot +14 -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 +32 -0
- data/doc/dot/f_11.png +0 -0
- data/doc/dot/f_12.dot +14 -0
- data/doc/dot/f_12.png +0 -0
- data/doc/dot/f_2.dot +23 -0
- data/doc/dot/f_2.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 +88 -0
- data/doc/dot/f_4.png +0 -0
- data/doc/dot/f_5.dot +23 -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 +49 -0
- data/doc/dot/f_7.png +0 -0
- data/doc/dot/f_8.dot +30 -0
- data/doc/dot/f_8.png +0 -0
- data/doc/dot/f_9.dot +32 -0
- data/doc/dot/f_9.png +0 -0
- data/doc/dot/m_0_0.dot +30 -0
- data/doc/dot/m_0_0.png +0 -0
- data/doc/dot/m_6_0.dot +30 -0
- data/doc/dot/m_6_0.png +0 -0
- data/doc/dot/m_8_0.dot +30 -0
- data/doc/dot/m_8_0.png +0 -0
- data/doc/files/bin/dskexplorer_rb.html +364 -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 +18 -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 +55 -0
- data/doc/files/bin/dskexplorer_rb.src/M000011.html +49 -0
- data/doc/files/bin/dskexplorer_rb.src/M000012.html +61 -0
- data/doc/files/bin/dskexplorer_rb.src/M000013.html +34 -0
- data/doc/files/bin/dskserver_rb.html +247 -0
- data/doc/files/bin/dskserver_rb.src/M000001.html +22 -0
- data/doc/files/bin/dskserver_rb.src/M000002.html +19 -0
- data/doc/files/bin/dskserver_rb.src/M000003.html +62 -0
- data/doc/files/bin/dskserver_rb.src/M000004.html +39 -0
- data/doc/files/bin/dskserver_rb.src/M000005.html +26 -0
- data/doc/files/bin/dsktool_rb.html +4 -4
- data/doc/files/lib/DOSDisk_rb.html +1 -1
- data/doc/files/lib/DOSFile_rb.html +1 -1
- data/doc/files/lib/DSK_rb.html +3 -1
- data/doc/files/lib/NADOLDisk_rb.html +115 -0
- data/doc/files/lib/NADOLFile_rb.html +117 -0
- data/doc/files/lib/rdoc_patch_rb.html +114 -0
- data/doc/files/test/tc_disassembly_rb.html +1 -1
- data/doc/files/test/tc_dos_disks_rb.html +2 -2
- data/doc/files/test/tc_nadol_disks_rb.html +122 -0
- data/doc/files/test/ts_test_all_rb.html +3 -2
- data/doc/fr_class_index.html +6 -0
- data/doc/fr_file_index.html +3 -0
- data/doc/fr_method_index.html +68 -49
- data/lib/DOSDisk.rb +14 -14
- data/lib/DOSFile.rb +7 -1
- data/lib/DSK.rb +41 -21
- data/lib/NADOLDisk.rb +97 -0
- data/lib/NADOLFile.rb +242 -0
- data/test/nadol.dsk +0 -0
- data/test/tc_dos_disks.rb +8 -0
- data/test/tc_nadol_disks.rb +36 -0
- data/test/ts_test_all.rb +1 -0
- data/test/white_11a.dsk +0 -0
- metadata +408 -65
- data/bin/dskexplorer.rb~ +0 -275
- data/bin/dsktool.rb~ +0 -150
- data/lib/DSK.rb~ +0 -134
- data/test/tc_dos_disks.rb~ +0 -79
@@ -0,0 +1,64 @@
|
|
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>disassemble (D65)</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/D65.rb, line 104</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">D65</span>.<span class="ruby-identifier">disassemble</span>(<span class="ruby-identifier">buffer</span>,<span class="ruby-identifier">start_address</span>=<span class="ruby-value">0</span>)
|
15
|
+
|
16
|
+
<span class="ruby-identifier">index</span>=<span class="ruby-value">0</span>
|
17
|
+
<span class="ruby-identifier">s</span>=<span class="ruby-value str">""</span>
|
18
|
+
<span class="ruby-keyword kw">while</span> <span class="ruby-identifier">index</span><span class="ruby-operator"><</span><span class="ruby-identifier">buffer</span>.<span class="ruby-identifier">length</span>
|
19
|
+
<span class="ruby-identifier">byte</span>=<span class="ruby-identifier">buffer</span>[<span class="ruby-identifier">index</span>]
|
20
|
+
<span class="ruby-identifier">current_address</span>=<span class="ruby-identifier">start_address</span><span class="ruby-operator">+</span><span class="ruby-identifier">index</span>
|
21
|
+
<span class="ruby-identifier">opcode_name</span>=<span class="ruby-constant">OPCODES</span>[<span class="ruby-identifier">byte</span>][<span class="ruby-value">0</span>]
|
22
|
+
<span class="ruby-identifier">operand_type</span>=<span class="ruby-constant">OPCODES</span>[<span class="ruby-identifier">byte</span>][<span class="ruby-value">1</span>]
|
23
|
+
<span class="ruby-identifier">next_byte</span>=(<span class="ruby-identifier">index</span><span class="ruby-operator"><</span><span class="ruby-identifier">buffer</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span><span class="ruby-operator">?</span><span class="ruby-identifier">buffer</span>[<span class="ruby-identifier">index</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>]<span class="ruby-operator">:</span><span class="ruby-value">0</span>)
|
24
|
+
<span class="ruby-identifier">next_word</span>=(<span class="ruby-identifier">index</span><span class="ruby-operator"><</span><span class="ruby-identifier">buffer</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">2</span><span class="ruby-operator">?</span><span class="ruby-identifier">buffer</span>[<span class="ruby-identifier">index</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>]<span class="ruby-operator">+</span><span class="ruby-identifier">buffer</span>[<span class="ruby-identifier">index</span><span class="ruby-operator">+</span><span class="ruby-value">2</span>]<span class="ruby-operator">*</span><span class="ruby-value">256</span><span class="ruby-operator">:</span><span class="ruby-value">0</span>)
|
25
|
+
<span class="ruby-identifier">operand_format</span>,<span class="ruby-identifier">operand_address</span>= <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">operand_type</span>
|
26
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:imp</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">''</span>,<span class="ruby-value str">''</span>]
|
27
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:acc</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"A"</span>,<span class="ruby-value str">''</span>]
|
28
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:imm</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"\#$%02X"</span>,<span class="ruby-identifier">next_byte</span>]
|
29
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:abs</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"$%04X"</span>,<span class="ruby-identifier">next_word</span>]
|
30
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:abx</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"$%04X,X"</span>,<span class="ruby-identifier">next_word</span>]
|
31
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:aby</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"$%04X,Y"</span>,<span class="ruby-identifier">next_word</span>]
|
32
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:zpg</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"$%02X"</span>,<span class="ruby-identifier">next_byte</span>]
|
33
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:zpx</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"$%02X,X"</span>,<span class="ruby-identifier">next_byte</span>]
|
34
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:zpy</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"$%02X,Y"</span>,<span class="ruby-identifier">next_byte</span>]
|
35
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:ind</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"($%04X)"</span>,<span class="ruby-identifier">next_word</span>]
|
36
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:inx</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"($%04X),X"</span>,<span class="ruby-identifier">next_word</span>]
|
37
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:iny</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"($%04X),Y"</span>,<span class="ruby-identifier">next_word</span>]
|
38
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:inz</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"($%02X),Y"</span>,<span class="ruby-identifier">next_byte</span>]
|
39
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:rel</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"$%04X"</span>,(<span class="ruby-identifier">current_address</span><span class="ruby-operator">+</span><span class="ruby-identifier">next_byte</span>.<span class="ruby-identifier">chr</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">"c"</span>)[<span class="ruby-value">0</span>]<span class="ruby-operator">+</span><span class="ruby-value">2</span>)<span class="ruby-operator">%</span><span class="ruby-value">0x10000</span>]
|
40
|
+
<span class="ruby-keyword kw">else</span>
|
41
|
+
<span class="ruby-identifier">abort</span>(<span class="ruby-node">"unknown symbol #{operand_type}"</span>)
|
42
|
+
<span class="ruby-keyword kw">end</span>
|
43
|
+
<span class="ruby-identifier">operand</span> = <span class="ruby-identifier">sprintf</span>(<span class="ruby-identifier">operand_format</span>,<span class="ruby-identifier">operand_address</span>)
|
44
|
+
<span class="ruby-identifier">opcode_size</span>=<span class="ruby-constant">OPCODE_SIZE</span>[<span class="ruby-identifier">operand_type</span>]
|
45
|
+
<span class="ruby-identifier">instruction_bytes</span>=<span class="ruby-keyword kw">case</span> <span class="ruby-identifier">opcode_size</span>
|
46
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">"%02X "</span>,<span class="ruby-identifier">byte</span>)
|
47
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value">2</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">"%02X %02X "</span>,<span class="ruby-identifier">byte</span>,<span class="ruby-identifier">next_byte</span>)
|
48
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value">3</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">"%02X %02X %02X"</span>,<span class="ruby-identifier">byte</span>,<span class="ruby-identifier">next_byte</span>,<span class="ruby-identifier">next_word</span><span class="ruby-operator">>></span><span class="ruby-value">8</span>)
|
49
|
+
<span class="ruby-keyword kw">end</span>
|
50
|
+
|
51
|
+
|
52
|
+
<span class="ruby-identifier">s</span><span class="ruby-operator">+=</span><span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">"%04X: %s %s %s ; "</span>,<span class="ruby-identifier">current_address</span>,<span class="ruby-identifier">instruction_bytes</span>,<span class="ruby-identifier">opcode_name</span>,<span class="ruby-identifier">operand</span>.<span class="ruby-identifier">ljust</span>(<span class="ruby-value">10</span>))
|
53
|
+
<span class="ruby-identifier">annotation</span>=<span class="ruby-identifier">annotations</span>[<span class="ruby-identifier">operand_address</span>]
|
54
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">annotation</span> <span class="ruby-operator">&&</span> (<span class="ruby-identifier">operand_type!</span>=<span class="ruby-identifier">:imm</span>)) <span class="ruby-keyword kw">then</span>
|
55
|
+
<span class="ruby-identifier">s</span><span class="ruby-operator">+=</span><span class="ruby-value str">" "</span><span class="ruby-operator">+</span><span class="ruby-identifier">annotation</span>.<span class="ruby-identifier">to_s</span>
|
56
|
+
<span class="ruby-keyword kw">end</span>
|
57
|
+
<span class="ruby-identifier">s</span><span class="ruby-operator">+=</span> <span class="ruby-value str">"\n"</span>
|
58
|
+
<span class="ruby-identifier">index</span><span class="ruby-operator">+=</span><span class="ruby-identifier">opcode_size</span>
|
59
|
+
<span class="ruby-keyword kw">end</span>
|
60
|
+
|
61
|
+
<span class="ruby-identifier">s</span>
|
62
|
+
<span class="ruby-keyword kw">end</span></pre>
|
63
|
+
</body>
|
64
|
+
</html>
|
@@ -0,0 +1,18 @@
|
|
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>annotations (D65)</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/D65.rb, line 99</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">D65</span>.<span class="ruby-identifier">annotations</span>
|
15
|
+
<span class="ruby-ivar">@@annotations</span>
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
17
|
+
</body>
|
18
|
+
</html>
|
@@ -0,0 +1,64 @@
|
|
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>disassemble (D65)</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/D65.rb, line 104</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-constant">D65</span>.<span class="ruby-identifier">disassemble</span>(<span class="ruby-identifier">buffer</span>,<span class="ruby-identifier">start_address</span>=<span class="ruby-value">0</span>)
|
15
|
+
|
16
|
+
<span class="ruby-identifier">index</span>=<span class="ruby-value">0</span>
|
17
|
+
<span class="ruby-identifier">s</span>=<span class="ruby-value str">""</span>
|
18
|
+
<span class="ruby-keyword kw">while</span> <span class="ruby-identifier">index</span><span class="ruby-operator"><</span><span class="ruby-identifier">buffer</span>.<span class="ruby-identifier">length</span>
|
19
|
+
<span class="ruby-identifier">byte</span>=<span class="ruby-identifier">buffer</span>[<span class="ruby-identifier">index</span>]
|
20
|
+
<span class="ruby-identifier">current_address</span>=<span class="ruby-identifier">start_address</span><span class="ruby-operator">+</span><span class="ruby-identifier">index</span>
|
21
|
+
<span class="ruby-identifier">opcode_name</span>=<span class="ruby-constant">OPCODES</span>[<span class="ruby-identifier">byte</span>][<span class="ruby-value">0</span>]
|
22
|
+
<span class="ruby-identifier">operand_type</span>=<span class="ruby-constant">OPCODES</span>[<span class="ruby-identifier">byte</span>][<span class="ruby-value">1</span>]
|
23
|
+
<span class="ruby-identifier">next_byte</span>=(<span class="ruby-identifier">index</span><span class="ruby-operator"><</span><span class="ruby-identifier">buffer</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span><span class="ruby-operator">?</span><span class="ruby-identifier">buffer</span>[<span class="ruby-identifier">index</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>]<span class="ruby-operator">:</span><span class="ruby-value">0</span>)
|
24
|
+
<span class="ruby-identifier">next_word</span>=(<span class="ruby-identifier">index</span><span class="ruby-operator"><</span><span class="ruby-identifier">buffer</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">2</span><span class="ruby-operator">?</span><span class="ruby-identifier">buffer</span>[<span class="ruby-identifier">index</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>]<span class="ruby-operator">+</span><span class="ruby-identifier">buffer</span>[<span class="ruby-identifier">index</span><span class="ruby-operator">+</span><span class="ruby-value">2</span>]<span class="ruby-operator">*</span><span class="ruby-value">256</span><span class="ruby-operator">:</span><span class="ruby-value">0</span>)
|
25
|
+
<span class="ruby-identifier">operand_format</span>,<span class="ruby-identifier">operand_address</span>= <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">operand_type</span>
|
26
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:imp</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">''</span>,<span class="ruby-value str">''</span>]
|
27
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:acc</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"A"</span>,<span class="ruby-value str">''</span>]
|
28
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:imm</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"\#$%02X"</span>,<span class="ruby-identifier">next_byte</span>]
|
29
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:abs</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"$%04X"</span>,<span class="ruby-identifier">next_word</span>]
|
30
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:abx</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"$%04X,X"</span>,<span class="ruby-identifier">next_word</span>]
|
31
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:aby</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"$%04X,Y"</span>,<span class="ruby-identifier">next_word</span>]
|
32
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:zpg</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"$%02X"</span>,<span class="ruby-identifier">next_byte</span>]
|
33
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:zpx</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"$%02X,X"</span>,<span class="ruby-identifier">next_byte</span>]
|
34
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:zpy</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"$%02X,Y"</span>,<span class="ruby-identifier">next_byte</span>]
|
35
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:ind</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"($%04X)"</span>,<span class="ruby-identifier">next_word</span>]
|
36
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:inx</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"($%04X),X"</span>,<span class="ruby-identifier">next_word</span>]
|
37
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:iny</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"($%04X),Y"</span>,<span class="ruby-identifier">next_word</span>]
|
38
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:inz</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"($%02X),Y"</span>,<span class="ruby-identifier">next_byte</span>]
|
39
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:rel</span> <span class="ruby-keyword kw">then</span> [<span class="ruby-value str">"$%04X"</span>,(<span class="ruby-identifier">current_address</span><span class="ruby-operator">+</span><span class="ruby-identifier">next_byte</span>.<span class="ruby-identifier">chr</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-value str">"c"</span>)[<span class="ruby-value">0</span>]<span class="ruby-operator">+</span><span class="ruby-value">2</span>)<span class="ruby-operator">%</span><span class="ruby-value">0x10000</span>]
|
40
|
+
<span class="ruby-keyword kw">else</span>
|
41
|
+
<span class="ruby-identifier">abort</span>(<span class="ruby-node">"unknown symbol #{operand_type}"</span>)
|
42
|
+
<span class="ruby-keyword kw">end</span>
|
43
|
+
<span class="ruby-identifier">operand</span> = <span class="ruby-identifier">sprintf</span>(<span class="ruby-identifier">operand_format</span>,<span class="ruby-identifier">operand_address</span>)
|
44
|
+
<span class="ruby-identifier">opcode_size</span>=<span class="ruby-constant">OPCODE_SIZE</span>[<span class="ruby-identifier">operand_type</span>]
|
45
|
+
<span class="ruby-identifier">instruction_bytes</span>=<span class="ruby-keyword kw">case</span> <span class="ruby-identifier">opcode_size</span>
|
46
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">"%02X "</span>,<span class="ruby-identifier">byte</span>)
|
47
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value">2</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">"%02X %02X "</span>,<span class="ruby-identifier">byte</span>,<span class="ruby-identifier">next_byte</span>)
|
48
|
+
<span class="ruby-keyword kw">when</span> <span class="ruby-value">3</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">"%02X %02X %02X"</span>,<span class="ruby-identifier">byte</span>,<span class="ruby-identifier">next_byte</span>,<span class="ruby-identifier">next_word</span><span class="ruby-operator">>></span><span class="ruby-value">8</span>)
|
49
|
+
<span class="ruby-keyword kw">end</span>
|
50
|
+
|
51
|
+
|
52
|
+
<span class="ruby-identifier">s</span><span class="ruby-operator">+=</span><span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">"%04X: %s %s %s ; "</span>,<span class="ruby-identifier">current_address</span>,<span class="ruby-identifier">instruction_bytes</span>,<span class="ruby-identifier">opcode_name</span>,<span class="ruby-identifier">operand</span>.<span class="ruby-identifier">ljust</span>(<span class="ruby-value">10</span>))
|
53
|
+
<span class="ruby-identifier">annotation</span>=<span class="ruby-identifier">annotations</span>[<span class="ruby-identifier">operand_address</span>]
|
54
|
+
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">annotation</span> <span class="ruby-operator">&&</span> (<span class="ruby-identifier">operand_type!</span>=<span class="ruby-identifier">:imm</span>)) <span class="ruby-keyword kw">then</span>
|
55
|
+
<span class="ruby-identifier">s</span><span class="ruby-operator">+=</span><span class="ruby-value str">" "</span><span class="ruby-operator">+</span><span class="ruby-identifier">annotation</span>.<span class="ruby-identifier">to_s</span>
|
56
|
+
<span class="ruby-keyword kw">end</span>
|
57
|
+
<span class="ruby-identifier">s</span><span class="ruby-operator">+=</span> <span class="ruby-value str">"\n"</span>
|
58
|
+
<span class="ruby-identifier">index</span><span class="ruby-operator">+=</span><span class="ruby-identifier">opcode_size</span>
|
59
|
+
<span class="ruby-keyword kw">end</span>
|
60
|
+
|
61
|
+
<span class="ruby-identifier">s</span>
|
62
|
+
<span class="ruby-keyword kw">end</span></pre>
|
63
|
+
</body>
|
64
|
+
</html>
|
data/doc/classes/DOSDisk.html
CHANGED
@@ -186,9 +186,9 @@ TRACK/SECTOR LIST FORMAT (from Beneath Apple DOS p 4-6)
|
|
186
186
|
<h3 class="section-bar">Methods</h3>
|
187
187
|
|
188
188
|
<div class="name-list">
|
189
|
-
<a href="#
|
190
|
-
<a href="#
|
191
|
-
<a href="#
|
189
|
+
<a href="#M000041">dump_catalog</a>
|
190
|
+
<a href="#M000042">new</a>
|
191
|
+
<a href="#M000043">read_vtoc</a>
|
192
192
|
</div>
|
193
193
|
</div>
|
194
194
|
|
@@ -210,12 +210,12 @@ TRACK/SECTOR LIST FORMAT (from Beneath Apple DOS p 4-6)
|
|
210
210
|
<div id="methods">
|
211
211
|
<h3 class="section-bar">Public Class methods</h3>
|
212
212
|
|
213
|
-
<div id="method-
|
214
|
-
<a name="
|
213
|
+
<div id="method-M000042" class="method-detail">
|
214
|
+
<a name="M000042"></a>
|
215
215
|
|
216
216
|
<div class="method-heading">
|
217
|
-
<a href="DOSDisk.src/
|
218
|
-
onclick="popupCode('DOSDisk.src/
|
217
|
+
<a href="DOSDisk.src/M000042.html" target="Code" class="method-signature"
|
218
|
+
onclick="popupCode('DOSDisk.src/M000042.html');return false;">
|
219
219
|
<span class="method-name">new</span><span class="method-args">(file_bytes)</span>
|
220
220
|
</a>
|
221
221
|
</div>
|
@@ -226,12 +226,12 @@ TRACK/SECTOR LIST FORMAT (from Beneath Apple DOS p 4-6)
|
|
226
226
|
|
227
227
|
<h3 class="section-bar">Public Instance methods</h3>
|
228
228
|
|
229
|
-
<div id="method-
|
230
|
-
<a name="
|
229
|
+
<div id="method-M000041" class="method-detail">
|
230
|
+
<a name="M000041"></a>
|
231
231
|
|
232
232
|
<div class="method-heading">
|
233
|
-
<a href="DOSDisk.src/
|
234
|
-
onclick="popupCode('DOSDisk.src/
|
233
|
+
<a href="DOSDisk.src/M000041.html" target="Code" class="method-signature"
|
234
|
+
onclick="popupCode('DOSDisk.src/M000041.html');return false;">
|
235
235
|
<span class="method-name">dump_catalog</span><span class="method-args">()</span>
|
236
236
|
</a>
|
237
237
|
</div>
|
@@ -240,12 +240,12 @@ TRACK/SECTOR LIST FORMAT (from Beneath Apple DOS p 4-6)
|
|
240
240
|
</div>
|
241
241
|
</div>
|
242
242
|
|
243
|
-
<div id="method-
|
244
|
-
<a name="
|
243
|
+
<div id="method-M000043" class="method-detail">
|
244
|
+
<a name="M000043"></a>
|
245
245
|
|
246
246
|
<div class="method-heading">
|
247
|
-
<a href="DOSDisk.src/
|
248
|
-
onclick="popupCode('DOSDisk.src/
|
247
|
+
<a href="DOSDisk.src/M000043.html" target="Code" class="method-signature"
|
248
|
+
onclick="popupCode('DOSDisk.src/M000043.html');return false;">
|
249
249
|
<span class="method-name">read_vtoc</span><span class="method-args">()</span>
|
250
250
|
</a>
|
251
251
|
</div>
|
@@ -0,0 +1,20 @@
|
|
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>dump_catalog (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 87</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dump_catalog</span>
|
15
|
+
<span class="ruby-identifier">files</span>.<span class="ruby-identifier">each_value</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
16
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-node">"#{file.locked ? '*':' '}#{file.file_type} #{sprintf('%03X',file.sector_count)} #{file.filename}"</span>
|
17
|
+
}
|
18
|
+
<span class="ruby-keyword kw">end</span></pre>
|
19
|
+
</body>
|
20
|
+
</html>
|
@@ -0,0 +1,20 @@
|
|
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>dump_catalog (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 87</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dump_catalog</span>
|
15
|
+
<span class="ruby-identifier">files</span>.<span class="ruby-identifier">each_value</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
16
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-node">"#{file.locked ? '*':' '}#{file.file_type} #{sprintf('%03X',file.sector_count)} #{file.filename}"</span>
|
17
|
+
}
|
18
|
+
<span class="ruby-keyword kw">end</span></pre>
|
19
|
+
</body>
|
20
|
+
</html>
|
@@ -0,0 +1,19 @@
|
|
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>new (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 94</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">file_bytes</span>)
|
15
|
+
<span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">file_bytes</span>)
|
16
|
+
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">read_vtoc</span>
|
17
|
+
<span class="ruby-keyword kw">end</span></pre>
|
18
|
+
</body>
|
19
|
+
</html>
|
@@ -0,0 +1,76 @@
|
|
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 100</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_vtoc</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
|
+
|
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-keyword kw">while</span> <span class="ruby-operator">!</span><span class="ruby-identifier">done</span>
|
20
|
+
(<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>
|
21
|
+
<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>
|
22
|
+
<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>]
|
23
|
+
<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</span>
|
24
|
+
<span class="ruby-identifier">filename</span>=<span class="ruby-value str">""</span>
|
25
|
+
<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>}
|
26
|
+
<span class="ruby-identifier">filename</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/ *$/</span>,<span class="ruby-value str">""</span>) <span class="ruby-comment cmt">#strip off trailing spaces</span>
|
27
|
+
<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>)
|
28
|
+
<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>
|
29
|
+
|
30
|
+
<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>
|
31
|
+
|
32
|
+
|
33
|
+
<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>
|
34
|
+
<span class="ruby-identifier">contents</span>=<span class="ruby-value str">""</span>
|
35
|
+
<span class="ruby-identifier">ts_list_track_no</span>=<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0</span>]
|
36
|
+
<span class="ruby-identifier">ts_list_sector_no</span>=<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">1</span>]
|
37
|
+
<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>)
|
38
|
+
<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>)
|
39
|
+
<span class="ruby-identifier">ts_list_track_no</span>=<span class="ruby-identifier">ts_list_sector</span>[<span class="ruby-value">1</span>]
|
40
|
+
<span class="ruby-identifier">ts_list_sector_no</span>=<span class="ruby-identifier">ts_list_sector</span>[<span class="ruby-value">2</span>]
|
41
|
+
|
42
|
+
<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>
|
43
|
+
<span class="ruby-identifier">data_track_no</span>=<span class="ruby-identifier">ts_list_sector</span>[<span class="ruby-identifier">i</span>]
|
44
|
+
<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>]
|
45
|
+
<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>
|
46
|
+
<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>)
|
47
|
+
<span class="ruby-keyword kw">end</span>
|
48
|
+
}
|
49
|
+
<span class="ruby-keyword kw">end</span>
|
50
|
+
|
51
|
+
<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>
|
52
|
+
<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">locked</span>,<span class="ruby-identifier">sector_count</span>,<span class="ruby-identifier">contents</span>)
|
53
|
+
<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">locked</span>,<span class="ruby-identifier">sector_count</span>,<span class="ruby-identifier">contents</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">locked</span>,<span class="ruby-identifier">sector_count</span>,<span class="ruby-identifier">contents</span>)
|
54
|
+
<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">locked</span>,<span class="ruby-identifier">sector_count</span>,<span class="ruby-identifier">contents</span>)
|
55
|
+
<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">locked</span>,<span class="ruby-identifier">sector_count</span>,<span class="ruby-identifier">contents</span>)
|
56
|
+
<span class="ruby-comment cmt"># when 0x08 then "S" #S type file</span>
|
57
|
+
<span class="ruby-comment cmt"># when 0x10 then "R" #RELOCATABLE object module file</span>
|
58
|
+
<span class="ruby-comment cmt"># when 0x20 then "a" #??</span>
|
59
|
+
<span class="ruby-comment cmt"># when 0x40 then "b" #??</span>
|
60
|
+
<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">locked</span>,<span class="ruby-identifier">sector_count</span>,<span class="ruby-identifier">contents</span>)
|
61
|
+
<span class="ruby-keyword kw">end</span>
|
62
|
+
|
63
|
+
<span class="ruby-keyword kw">end</span>
|
64
|
+
}
|
65
|
+
<span class="ruby-identifier">next_track</span>=<span class="ruby-identifier">catalog_sector</span>[<span class="ruby-value">1</span>]
|
66
|
+
<span class="ruby-identifier">next_sector</span>=<span class="ruby-identifier">catalog_sector</span>[<span class="ruby-value">2</span>]
|
67
|
+
<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>
|
68
|
+
<span class="ruby-identifier">done</span>=<span class="ruby-keyword kw">true</span>
|
69
|
+
<span class="ruby-keyword kw">else</span>
|
70
|
+
<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>)
|
71
|
+
<span class="ruby-keyword kw">end</span>
|
72
|
+
<span class="ruby-keyword kw">end</span>
|
73
|
+
|
74
|
+
<span class="ruby-keyword kw">end</span></pre>
|
75
|
+
</body>
|
76
|
+
</html>
|
@@ -0,0 +1,20 @@
|
|
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>dump_catalog (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 87</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dump_catalog</span>
|
15
|
+
<span class="ruby-identifier">files</span>.<span class="ruby-identifier">each_value</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
16
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-node">"#{file.locked ? '*':' '}#{file.file_type} #{sprintf('%03X',file.sector_count)} #{file.filename}"</span>
|
17
|
+
}
|
18
|
+
<span class="ruby-keyword kw">end</span></pre>
|
19
|
+
</body>
|
20
|
+
</html>
|
@@ -0,0 +1,19 @@
|
|
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>new (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 94</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">file_bytes</span>)
|
15
|
+
<span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">file_bytes</span>)
|
16
|
+
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">read_vtoc</span>
|
17
|
+
<span class="ruby-keyword kw">end</span></pre>
|
18
|
+
</body>
|
19
|
+
</html>
|
@@ -0,0 +1,76 @@
|
|
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 100</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read_vtoc</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
|
+
|
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-keyword kw">while</span> <span class="ruby-operator">!</span><span class="ruby-identifier">done</span>
|
20
|
+
(<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>
|
21
|
+
<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>
|
22
|
+
<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>]
|
23
|
+
<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</span>
|
24
|
+
<span class="ruby-identifier">filename</span>=<span class="ruby-value str">""</span>
|
25
|
+
<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>}
|
26
|
+
<span class="ruby-identifier">filename</span>.<span class="ruby-identifier">sub!</span>(<span class="ruby-regexp re">/ *$/</span>,<span class="ruby-value str">""</span>) <span class="ruby-comment cmt">#strip off trailing spaces</span>
|
27
|
+
<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>)
|
28
|
+
<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>
|
29
|
+
|
30
|
+
<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>
|
31
|
+
|
32
|
+
|
33
|
+
<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>
|
34
|
+
<span class="ruby-identifier">contents</span>=<span class="ruby-value str">""</span>
|
35
|
+
<span class="ruby-identifier">ts_list_track_no</span>=<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">0</span>]
|
36
|
+
<span class="ruby-identifier">ts_list_sector_no</span>=<span class="ruby-identifier">file_descriptive_entry</span>[<span class="ruby-value">1</span>]
|
37
|
+
<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>)
|
38
|
+
<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>)
|
39
|
+
<span class="ruby-identifier">ts_list_track_no</span>=<span class="ruby-identifier">ts_list_sector</span>[<span class="ruby-value">1</span>]
|
40
|
+
<span class="ruby-identifier">ts_list_sector_no</span>=<span class="ruby-identifier">ts_list_sector</span>[<span class="ruby-value">2</span>]
|
41
|
+
|
42
|
+
<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>
|
43
|
+
<span class="ruby-identifier">data_track_no</span>=<span class="ruby-identifier">ts_list_sector</span>[<span class="ruby-identifier">i</span>]
|
44
|
+
<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>]
|
45
|
+
<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>
|
46
|
+
<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>)
|
47
|
+
<span class="ruby-keyword kw">end</span>
|
48
|
+
}
|
49
|
+
<span class="ruby-keyword kw">end</span>
|
50
|
+
|
51
|
+
<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>
|
52
|
+
<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">locked</span>,<span class="ruby-identifier">sector_count</span>,<span class="ruby-identifier">contents</span>)
|
53
|
+
<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">locked</span>,<span class="ruby-identifier">sector_count</span>,<span class="ruby-identifier">contents</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">locked</span>,<span class="ruby-identifier">sector_count</span>,<span class="ruby-identifier">contents</span>)
|
54
|
+
<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">locked</span>,<span class="ruby-identifier">sector_count</span>,<span class="ruby-identifier">contents</span>)
|
55
|
+
<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">locked</span>,<span class="ruby-identifier">sector_count</span>,<span class="ruby-identifier">contents</span>)
|
56
|
+
<span class="ruby-comment cmt"># when 0x08 then "S" #S type file</span>
|
57
|
+
<span class="ruby-comment cmt"># when 0x10 then "R" #RELOCATABLE object module file</span>
|
58
|
+
<span class="ruby-comment cmt"># when 0x20 then "a" #??</span>
|
59
|
+
<span class="ruby-comment cmt"># when 0x40 then "b" #??</span>
|
60
|
+
<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">locked</span>,<span class="ruby-identifier">sector_count</span>,<span class="ruby-identifier">contents</span>,<span class="ruby-identifier">sprintf</span>(<span class="ruby-value str">"$%02X"</span>,<span class="ruby-identifier">file_type_code</span>))
|
61
|
+
<span class="ruby-keyword kw">end</span>
|
62
|
+
|
63
|
+
<span class="ruby-keyword kw">end</span>
|
64
|
+
}
|
65
|
+
<span class="ruby-identifier">next_track</span>=<span class="ruby-identifier">catalog_sector</span>[<span class="ruby-value">1</span>]
|
66
|
+
<span class="ruby-identifier">next_sector</span>=<span class="ruby-identifier">catalog_sector</span>[<span class="ruby-value">2</span>]
|
67
|
+
<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>
|
68
|
+
<span class="ruby-identifier">done</span>=<span class="ruby-keyword kw">true</span>
|
69
|
+
<span class="ruby-keyword kw">else</span>
|
70
|
+
<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>)
|
71
|
+
<span class="ruby-keyword kw">end</span>
|
72
|
+
<span class="ruby-keyword kw">end</span>
|
73
|
+
|
74
|
+
<span class="ruby-keyword kw">end</span></pre>
|
75
|
+
</body>
|
76
|
+
</html>
|