ripxplore 0.0.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/ripxplore.rb +188 -0
- data/doc/classes/A2Dsk.html +226 -0
- data/doc/classes/A2Dsk.src/M000005.html +18 -0
- data/doc/classes/A2Dsk.src/M000006.html +18 -0
- data/doc/classes/A2Dsk.src/M000007.html +18 -0
- data/doc/classes/A2Dsk.src/M000008.html +18 -0
- data/doc/classes/A2Dsk.src/M000009.html +18 -0
- data/doc/classes/A2Dsk.src/M000010.html +22 -0
- data/doc/classes/A2DskDosOrder.html +139 -0
- data/doc/classes/A2DskDosOrder.src/M000242.html +18 -0
- data/doc/classes/A2DskPhysicalOrder.html +139 -0
- data/doc/classes/A2DskPhysicalOrder.src/M000019.html +18 -0
- data/doc/classes/Apple2.html +187 -0
- data/doc/classes/Apple2.src/M000128.html +18 -0
- data/doc/classes/Apple2.src/M000129.html +18 -0
- data/doc/classes/Apple2.src/M000130.html +18 -0
- data/doc/classes/Apple2.src/M000131.html +19 -0
- data/doc/classes/AppleBinary.html +193 -0
- data/doc/classes/AppleBinary.src/M000089.html +20 -0
- data/doc/classes/AppleBinary.src/M000090.html +18 -0
- data/doc/classes/AppleBinary.src/M000091.html +18 -0
- data/doc/classes/AppleBinary.src/M000092.html +18 -0
- data/doc/classes/AppleCPM.html +228 -0
- data/doc/classes/AppleCPM.src/M000243.html +18 -0
- data/doc/classes/AppleCPM.src/M000244.html +18 -0
- data/doc/classes/AppleCPM.src/M000245.html +21 -0
- data/doc/classes/AppleCPM.src/M000246.html +40 -0
- data/doc/classes/AppleDos.html +275 -0
- data/doc/classes/AppleDos.src/M000161.html +18 -0
- data/doc/classes/AppleDos.src/M000162.html +18 -0
- data/doc/classes/AppleDos.src/M000163.html +18 -0
- data/doc/classes/AppleDos.src/M000164.html +86 -0
- data/doc/classes/AppleHiResPic.html +279 -0
- data/doc/classes/AppleHiResPic.src/M000083.html +22 -0
- data/doc/classes/AppleHiResPic.src/M000084.html +18 -0
- data/doc/classes/AppleHiResPic.src/M000085.html +22 -0
- data/doc/classes/AppleHiResPic.src/M000086.html +57 -0
- data/doc/classes/AppleHiResPic.src/M000087.html +18 -0
- data/doc/classes/AppleHiResPic.src/M000088.html +18 -0
- data/doc/classes/AppleText.html +156 -0
- data/doc/classes/AppleText.src/M000142.html +21 -0
- data/doc/classes/AppleText.src/M000143.html +20 -0
- data/doc/classes/AppleWorksWP.html +160 -0
- data/doc/classes/AppleWorksWP.src/M000081.html +20 -0
- data/doc/classes/AppleWorksWP.src/M000082.html +45 -0
- data/doc/classes/Applesoft.html +169 -0
- data/doc/classes/Applesoft.src/M000175.html +21 -0
- data/doc/classes/Applesoft.src/M000176.html +75 -0
- data/doc/classes/Atari800.html +169 -0
- data/doc/classes/Atari800.src/M000177.html +23 -0
- data/doc/classes/Atari800.src/M000178.html +18 -0
- data/doc/classes/Atari800.src/M000179.html +19 -0
- data/doc/classes/AtariBasic.html +215 -0
- data/doc/classes/AtariBasic.src/M000204.html +20 -0
- data/doc/classes/AtariBasic.src/M000205.html +108 -0
- data/doc/classes/AtariBinary.html +193 -0
- data/doc/classes/AtariBinary.src/M000238.html +20 -0
- data/doc/classes/AtariBinary.src/M000239.html +18 -0
- data/doc/classes/AtariBinary.src/M000240.html +18 -0
- data/doc/classes/AtariBinary.src/M000241.html +18 -0
- data/doc/classes/AtariDos.html +186 -0
- data/doc/classes/AtariDos.src/M000047.html +18 -0
- data/doc/classes/AtariDos.src/M000048.html +43 -0
- data/doc/classes/AtariText.html +159 -0
- data/doc/classes/AtariText.src/M000002.html +20 -0
- data/doc/classes/AtariText.src/M000003.html +18 -0
- data/doc/classes/Atr.html +271 -0
- data/doc/classes/Atr.src/M000208.html +18 -0
- data/doc/classes/Atr.src/M000209.html +18 -0
- data/doc/classes/Atr.src/M000210.html +19 -0
- data/doc/classes/Atr.src/M000211.html +18 -0
- data/doc/classes/Atr.src/M000212.html +18 -0
- data/doc/classes/Atr.src/M000213.html +19 -0
- data/doc/classes/Atr.src/M000214.html +19 -0
- data/doc/classes/C64.html +206 -0
- data/doc/classes/C64.src/M000020.html +18 -0
- data/doc/classes/C64.src/M000021.html +31 -0
- data/doc/classes/C64.src/M000022.html +22 -0
- data/doc/classes/C64.src/M000023.html +19 -0
- data/doc/classes/C64.src/M000024.html +19 -0
- data/doc/classes/C64BasicPrg.html +201 -0
- data/doc/classes/C64BasicPrg.src/M000035.html +20 -0
- data/doc/classes/C64BasicPrg.src/M000036.html +59 -0
- data/doc/classes/C64Prg.html +190 -0
- data/doc/classes/C64Prg.src/M000169.html +20 -0
- data/doc/classes/C64Prg.src/M000170.html +18 -0
- data/doc/classes/C64Prg.src/M000171.html +18 -0
- data/doc/classes/C64Prg.src/M000172.html +20 -0
- data/doc/classes/C64PrgText.html +139 -0
- data/doc/classes/C64PrgText.src/M000237.html +18 -0
- data/doc/classes/C64Seq.html +156 -0
- data/doc/classes/C64Seq.src/M000013.html +20 -0
- data/doc/classes/C64Seq.src/M000014.html +18 -0
- data/doc/classes/CPMFile.html +156 -0
- data/doc/classes/CPMFile.src/M000108.html +20 -0
- data/doc/classes/CPMFile.src/M000109.html +18 -0
- data/doc/classes/CbmDos.html +172 -0
- data/doc/classes/CbmDos.src/M000182.html +18 -0
- data/doc/classes/CbmDos.src/M000183.html +42 -0
- data/doc/classes/CbmFile.html +156 -0
- data/doc/classes/CbmFile.src/M000235.html +20 -0
- data/doc/classes/CbmFile.src/M000236.html +18 -0
- data/doc/classes/D64.html +247 -0
- data/doc/classes/D64.src/M000037.html +18 -0
- data/doc/classes/D64.src/M000038.html +18 -0
- data/doc/classes/D64.src/M000039.html +18 -0
- data/doc/classes/D64.src/M000040.html +22 -0
- data/doc/classes/D64.src/M000041.html +18 -0
- data/doc/classes/D64.src/M000042.html +21 -0
- data/doc/classes/D65.html +170 -0
- data/doc/classes/D65.src/M000049.html +22 -0
- data/doc/classes/D65.src/M000050.html +68 -0
- data/doc/classes/DumpUtilities.html +152 -0
- data/doc/classes/DumpUtilities.src/M000077.html +33 -0
- data/doc/classes/DumpUtilities.src/M000078.html +27 -0
- data/doc/classes/FileCache.html +210 -0
- data/doc/classes/FileCache.src/M000135.html +18 -0
- data/doc/classes/FileCache.src/M000136.html +20 -0
- data/doc/classes/FileCache.src/M000137.html +22 -0
- data/doc/classes/FileCache.src/M000138.html +32 -0
- data/doc/classes/FileCacheItem.html +152 -0
- data/doc/classes/FileCacheItem.src/M000165.html +18 -0
- data/doc/classes/FileCacheItem.src/M000166.html +18 -0
- data/doc/classes/FileContainer.html +146 -0
- data/doc/classes/FileContainer.src/M000232.html +26 -0
- data/doc/classes/FileSystem.html +252 -0
- data/doc/classes/FileSystem.src/M000069.html +18 -0
- data/doc/classes/FileSystem.src/M000070.html +18 -0
- data/doc/classes/FileSystem.src/M000071.html +18 -0
- data/doc/classes/FileSystem.src/M000072.html +18 -0
- data/doc/classes/FileSystem.src/M000073.html +18 -0
- data/doc/classes/FileSystem.src/M000074.html +18 -0
- data/doc/classes/FileSystem.src/M000075.html +20 -0
- data/doc/classes/FileSystem.src/M000076.html +25 -0
- data/doc/classes/FileSystemImage.html +430 -0
- data/doc/classes/FileSystemImage.src/M000215.html +19 -0
- data/doc/classes/FileSystemImage.src/M000216.html +41 -0
- data/doc/classes/FileSystemImage.src/M000217.html +27 -0
- data/doc/classes/FileSystemImage.src/M000218.html +18 -0
- data/doc/classes/FileSystemImage.src/M000219.html +18 -0
- data/doc/classes/FileSystemImage.src/M000220.html +18 -0
- data/doc/classes/FileSystemImage.src/M000221.html +22 -0
- data/doc/classes/FileSystemImage.src/M000222.html +19 -0
- data/doc/classes/FileSystemImage.src/M000223.html +18 -0
- data/doc/classes/FileSystemImage.src/M000224.html +18 -0
- data/doc/classes/FileSystemImage.src/M000225.html +18 -0
- data/doc/classes/FileSystemImage.src/M000226.html +18 -0
- data/doc/classes/FileSystemImage.src/M000227.html +20 -0
- data/doc/classes/FileSystemImage.src/M000228.html +22 -0
- data/doc/classes/FileSystemImage.src/M000229.html +22 -0
- data/doc/classes/FileSystemImage.src/M000230.html +18 -0
- data/doc/classes/FileSystemImage.src/M000231.html +23 -0
- data/doc/classes/G64.html +257 -0
- data/doc/classes/G64.src/M000093.html +30 -0
- data/doc/classes/G64.src/M000094.html +18 -0
- data/doc/classes/G64.src/M000095.html +18 -0
- data/doc/classes/G64.src/M000096.html +17 -0
- data/doc/classes/G64.src/M000097.html +18 -0
- data/doc/classes/G64.src/M000098.html +18 -0
- data/doc/classes/G64.src/M000099.html +21 -0
- data/doc/classes/GenericFile.html +157 -0
- data/doc/classes/GenericFile.src/M000167.html +20 -0
- data/doc/classes/GenericFile.src/M000168.html +18 -0
- data/doc/classes/HostSystem.html +225 -0
- data/doc/classes/HostSystem.src/M000025.html +22 -0
- data/doc/classes/HostSystem.src/M000026.html +18 -0
- data/doc/classes/HostSystem.src/M000027.html +18 -0
- data/doc/classes/HostSystem.src/M000028.html +22 -0
- data/doc/classes/HostSystem.src/M000029.html +33 -0
- data/doc/classes/HostSystem.src/M000030.html +18 -0
- data/doc/classes/ImageFormat.html +415 -0
- data/doc/classes/ImageFormat.src/M000144.html +18 -0
- data/doc/classes/ImageFormat.src/M000145.html +18 -0
- data/doc/classes/ImageFormat.src/M000146.html +18 -0
- data/doc/classes/ImageFormat.src/M000147.html +18 -0
- data/doc/classes/ImageFormat.src/M000148.html +18 -0
- data/doc/classes/ImageFormat.src/M000149.html +22 -0
- data/doc/classes/ImageFormat.src/M000150.html +19 -0
- data/doc/classes/ImageFormat.src/M000151.html +18 -0
- data/doc/classes/ImageFormat.src/M000152.html +18 -0
- data/doc/classes/ImageFormat.src/M000153.html +18 -0
- data/doc/classes/ImageFormat.src/M000154.html +18 -0
- data/doc/classes/ImageFormat.src/M000155.html +18 -0
- data/doc/classes/ImageFormat.src/M000156.html +18 -0
- data/doc/classes/ImageFormat.src/M000157.html +18 -0
- data/doc/classes/ImageFormat.src/M000158.html +20 -0
- data/doc/classes/ImageFormat.src/M000159.html +26 -0
- data/doc/classes/ImageFormat.src/M000160.html +18 -0
- data/doc/classes/ImageSniffing.html +152 -0
- data/doc/classes/ImageSniffing.src/M000051.html +57 -0
- data/doc/classes/ImageSniffing.src/M000052.html +131 -0
- data/doc/classes/IntegerBASIC.html +247 -0
- data/doc/classes/IntegerBASIC.src/M000206.html +20 -0
- data/doc/classes/IntegerBASIC.src/M000207.html +86 -0
- data/doc/classes/MBasic.html +182 -0
- data/doc/classes/MBasic.src/M000011.html +20 -0
- data/doc/classes/MBasic.src/M000012.html +22 -0
- data/doc/classes/NADOLDos.html +187 -0
- data/doc/classes/NADOLDos.src/M000180.html +18 -0
- data/doc/classes/NADOLDos.src/M000181.html +52 -0
- data/doc/classes/NADOLFile.html +157 -0
- data/doc/classes/NADOLFile.src/M000045.html +20 -0
- data/doc/classes/NADOLFile.src/M000046.html +18 -0
- data/doc/classes/NADOLTokens.html +170 -0
- data/doc/classes/NADOLTokens.src/M000018.html +41 -0
- data/doc/classes/NativeFileType.html +444 -0
- data/doc/classes/NativeFileType.src/M000110.html +22 -0
- data/doc/classes/NativeFileType.src/M000111.html +18 -0
- data/doc/classes/NativeFileType.src/M000112.html +18 -0
- data/doc/classes/NativeFileType.src/M000113.html +18 -0
- data/doc/classes/NativeFileType.src/M000114.html +18 -0
- data/doc/classes/NativeFileType.src/M000115.html +18 -0
- data/doc/classes/NativeFileType.src/M000116.html +18 -0
- data/doc/classes/NativeFileType.src/M000117.html +23 -0
- data/doc/classes/NativeFileType.src/M000118.html +18 -0
- data/doc/classes/NativeFileType.src/M000119.html +18 -0
- data/doc/classes/NativeFileType.src/M000120.html +24 -0
- data/doc/classes/NativeFileType.src/M000121.html +35 -0
- data/doc/classes/NativeFileType.src/M000122.html +24 -0
- data/doc/classes/NativeFileType.src/M000123.html +18 -0
- data/doc/classes/NativeFileType.src/M000124.html +18 -0
- data/doc/classes/NativeFileType.src/M000125.html +18 -0
- data/doc/classes/NativeFileType.src/M000126.html +20 -0
- data/doc/classes/NativeFileType.src/M000127.html +27 -0
- data/doc/classes/PNG/Canvas.html +273 -0
- data/doc/classes/PNG/Canvas.src/M000196.html +20 -0
- data/doc/classes/PNG/Canvas.src/M000197.html +20 -0
- data/doc/classes/PNG/Canvas.src/M000198.html +20 -0
- data/doc/classes/PNG/Canvas.src/M000199.html +22 -0
- data/doc/classes/PNG/Canvas.src/M000200.html +18 -0
- data/doc/classes/PNG/Canvas.src/M000201.html +73 -0
- data/doc/classes/PNG/Color.html +338 -0
- data/doc/classes/PNG/Color.src/M000189.html +18 -0
- data/doc/classes/PNG/Color.src/M000190.html +16 -0
- data/doc/classes/PNG/Color.src/M000191.html +16 -0
- data/doc/classes/PNG/Color.src/M000192.html +16 -0
- data/doc/classes/PNG/Color.src/M000193.html +16 -0
- data/doc/classes/PNG/Color.src/M000194.html +21 -0
- data/doc/classes/PNG/Color.src/M000195.html +18 -0
- data/doc/classes/PNG.html +229 -0
- data/doc/classes/PNG.src/M000185.html +18 -0
- data/doc/classes/PNG.src/M000186.html +21 -0
- data/doc/classes/PNG.src/M000187.html +26 -0
- data/doc/classes/PNG.src/M000188.html +26 -0
- data/doc/classes/PascalDos.html +203 -0
- data/doc/classes/PascalDos.src/M000132.html +18 -0
- data/doc/classes/PascalDos.src/M000133.html +21 -0
- data/doc/classes/PascalDos.src/M000134.html +62 -0
- data/doc/classes/PascalFile.html +169 -0
- data/doc/classes/PascalFile.src/M000173.html +20 -0
- data/doc/classes/PascalFile.src/M000174.html +18 -0
- data/doc/classes/ProDos.html +164 -0
- data/doc/classes/ProDos.src/M000102.html +18 -0
- data/doc/classes/ProDos.src/M000103.html +22 -0
- data/doc/classes/ProDosFile.html +187 -0
- data/doc/classes/ProDosFile.src/M000015.html +20 -0
- data/doc/classes/ProDosFile.src/M000016.html +18 -0
- data/doc/classes/ProDosFile.src/M000017.html +19 -0
- data/doc/classes/Proc.html +315 -0
- data/doc/classes/Proc.src/M000053.html +21 -0
- data/doc/classes/Proc.src/M000054.html +19 -0
- data/doc/classes/Proc.src/M000055.html +22 -0
- data/doc/classes/Proc.src/M000056.html +22 -0
- data/doc/classes/Proc.src/M000057.html +22 -0
- data/doc/classes/Proc.src/M000058.html +19 -0
- data/doc/classes/Proc.src/M000059.html +16 -0
- data/doc/classes/Proc.src/M000060.html +20 -0
- data/doc/classes/Proc.src/M000061.html +18 -0
- data/doc/classes/Proc.src/M000062.html +16 -0
- data/doc/classes/Proc.src/M000063.html +16 -0
- data/doc/classes/ProcSource.html +146 -0
- data/doc/classes/ProcSource.src/M000248.html +38 -0
- data/doc/classes/ProcSource.src/M000249.html +109 -0
- data/doc/classes/RDoc.html +135 -0
- data/doc/classes/RDoc.src/M000247.html +40 -0
- data/doc/classes/RawDisk.html +157 -0
- data/doc/classes/RawDisk.src/M000100.html +18 -0
- data/doc/classes/RawDisk.src/M000101.html +18 -0
- data/doc/classes/RipXplore.html +124 -0
- data/doc/classes/RipXploreLog.html +167 -0
- data/doc/classes/RipXploreLog.src/M000139.html +18 -0
- data/doc/classes/RipXploreLog.src/M000140.html +20 -0
- data/doc/classes/RipXploreLog.src/M000141.html +18 -0
- data/doc/classes/ScAsm.html +145 -0
- data/doc/classes/ScAsm.src/M000004.html +45 -0
- data/doc/classes/SubclassTracking.html +138 -0
- data/doc/classes/SubclassTracking.src/M000250.html +23 -0
- data/doc/classes/TestFileCache.html +137 -0
- data/doc/classes/TestFileCache.src/M000184.html +21 -0
- data/doc/classes/Trs80.html +157 -0
- data/doc/classes/Trs80.src/M000043.html +18 -0
- data/doc/classes/Trs80.src/M000044.html +18 -0
- data/doc/classes/Trs80Cmd.html +217 -0
- data/doc/classes/Trs80Cmd.src/M000104.html +19 -0
- data/doc/classes/Trs80Cmd.src/M000105.html +24 -0
- data/doc/classes/Trs80Cmd.src/M000106.html +20 -0
- data/doc/classes/Trs80Cmd.src/M000107.html +35 -0
- data/doc/classes/Trs80Jcl.html +156 -0
- data/doc/classes/Trs80Jcl.src/M000233.html +20 -0
- data/doc/classes/Trs80Jcl.src/M000234.html +18 -0
- data/doc/classes/Trs80Jv1Dsk.html +211 -0
- data/doc/classes/Trs80Jv1Dsk.src/M000064.html +18 -0
- data/doc/classes/Trs80Jv1Dsk.src/M000065.html +18 -0
- data/doc/classes/Trs80Jv1Dsk.src/M000066.html +18 -0
- data/doc/classes/Trs80Jv1Dsk.src/M000067.html +18 -0
- data/doc/classes/Trs80Jv1Dsk.src/M000068.html +19 -0
- data/doc/classes/Trs80LevelIIBasic.html +169 -0
- data/doc/classes/Trs80LevelIIBasic.src/M000079.html +20 -0
- data/doc/classes/Trs80LevelIIBasic.src/M000080.html +43 -0
- data/doc/classes/Trs80PascalSource.html +156 -0
- data/doc/classes/Trs80PascalSource.src/M000202.html +20 -0
- data/doc/classes/Trs80PascalSource.src/M000203.html +30 -0
- data/doc/classes/TrsDos.html +255 -0
- data/doc/classes/TrsDos.src/M000031.html +18 -0
- data/doc/classes/TrsDos.src/M000032.html +18 -0
- data/doc/classes/TrsDos.src/M000033.html +18 -0
- data/doc/classes/TrsDos.src/M000034.html +62 -0
- data/doc/created.rid +1 -0
- data/doc/files/bin/ripxplore_rb.html +150 -0
- data/doc/files/lib/DumpUtilities_rb.html +101 -0
- data/doc/files/lib/FileCache_rb.html +110 -0
- data/doc/files/lib/FileContainer_rb.html +101 -0
- data/doc/files/lib/FileSystemImage_rb.html +109 -0
- data/doc/files/lib/FileSystem_rb.html +111 -0
- data/doc/files/lib/HostSystem_rb.html +110 -0
- data/doc/files/lib/ImageFormat_rb.html +111 -0
- data/doc/files/lib/NativeFileType_rb.html +111 -0
- data/doc/files/lib/PatchedPNG_rb.html +116 -0
- data/doc/files/lib/RipXploreLog_rb.html +108 -0
- data/doc/files/lib/RipXplore_rb.html +114 -0
- data/doc/files/lib/SubclassTracking_rb.html +108 -0
- data/doc/files/lib/disassemblers/D65_rb.html +101 -0
- data/doc/files/lib/file_systems/AppleCPM_rb.html +108 -0
- data/doc/files/lib/file_systems/AppleDos_rb.html +108 -0
- data/doc/files/lib/file_systems/AtariDos_rb.html +108 -0
- data/doc/files/lib/file_systems/CbmDos_rb.html +108 -0
- data/doc/files/lib/file_systems/NADOLDos_rb.html +108 -0
- data/doc/files/lib/file_systems/PascalDos_rb.html +108 -0
- data/doc/files/lib/file_systems/ProDos_rb.html +108 -0
- data/doc/files/lib/file_systems/RawDisk_rb.html +108 -0
- data/doc/files/lib/file_systems/TrsDos_rb.html +108 -0
- data/doc/files/lib/host_systems/Apple2_rb.html +109 -0
- data/doc/files/lib/host_systems/Atari800_rb.html +109 -0
- data/doc/files/lib/host_systems/C64_rb.html +109 -0
- data/doc/files/lib/host_systems/Trs80_rb.html +108 -0
- data/doc/files/lib/image_formats/A2Dsk_rb.html +108 -0
- data/doc/files/lib/image_formats/Atr_rb.html +108 -0
- data/doc/files/lib/image_formats/D64_rb.html +108 -0
- data/doc/files/lib/image_formats/G64_rb.html +108 -0
- data/doc/files/lib/image_formats/Trs80Jv1Dsk_rb.html +108 -0
- data/doc/files/lib/native_file_types/apple2/AppleBinary_rb.html +108 -0
- data/doc/files/lib/native_file_types/apple2/AppleHiResPic_rb.html +108 -0
- data/doc/files/lib/native_file_types/apple2/AppleText_rb.html +108 -0
- data/doc/files/lib/native_file_types/apple2/AppleWorksWP_rb.html +108 -0
- data/doc/files/lib/native_file_types/apple2/Applesoft_rb.html +108 -0
- data/doc/files/lib/native_file_types/apple2/IntegerBASIC_rb.html +108 -0
- data/doc/files/lib/native_file_types/apple2/NADOLFile_rb.html +108 -0
- data/doc/files/lib/native_file_types/apple2/PascalFile_rb.html +108 -0
- data/doc/files/lib/native_file_types/apple2/ProDosFile_rb.html +108 -0
- data/doc/files/lib/native_file_types/apple2/ScAsm_rb.html +101 -0
- data/doc/files/lib/native_file_types/atari800/AtariBasic_rb.html +108 -0
- data/doc/files/lib/native_file_types/atari800/AtariBinary_rb.html +108 -0
- data/doc/files/lib/native_file_types/atari800/AtariText_rb.html +108 -0
- data/doc/files/lib/native_file_types/c64/C64BasicPrg_rb.html +109 -0
- data/doc/files/lib/native_file_types/c64/C64PrgText_rb.html +109 -0
- data/doc/files/lib/native_file_types/c64/C64Prg_rb.html +109 -0
- data/doc/files/lib/native_file_types/c64/C64Seq_rb.html +109 -0
- data/doc/files/lib/native_file_types/c64/CbmFile_rb.html +108 -0
- data/doc/files/lib/native_file_types/cpm/CPMFile_rb.html +108 -0
- data/doc/files/lib/native_file_types/cpm/MBasic_rb.html +108 -0
- data/doc/files/lib/native_file_types/generic/GenericFile_rb.html +101 -0
- data/doc/files/lib/native_file_types/trs80/Trs80Cmd_rb.html +108 -0
- data/doc/files/lib/native_file_types/trs80/Trs80Jcl_rb.html +108 -0
- data/doc/files/lib/native_file_types/trs80/Trs80LevelIIBasic_rb.html +108 -0
- data/doc/files/lib/native_file_types/trs80/Trs80PascalSource_rb.html +108 -0
- data/doc/files/lib/proc_source_rb.html +182 -0
- data/doc/files/lib/proc_source_rb.src/M000001.html +24 -0
- data/doc/files/lib/rdoc_patch_rb.html +108 -0
- data/doc/files/test/tc_file_cache_rb.html +108 -0
- data/doc/files/test/tc_image_sniffing_rb.html +108 -0
- data/doc/files/test/testhelper_rb.html +129 -0
- data/doc/files/test/ts_test_all_rb.html +108 -0
- data/doc/fr_class_index.html +26 -0
- data/doc/fr_file_index.html +27 -0
- data/doc/fr_method_index.html +26 -0
- data/doc/index.html +24 -0
- data/doc/rdoc-style.css +208 -0
- data/lib/DumpUtilities.rb +34 -0
- data/lib/FileCache.rb +84 -0
- data/lib/FileContainer.rb +45 -0
- data/lib/FileSystem.rb +83 -0
- data/lib/FileSystemImage.rb +176 -0
- data/lib/HostSystem.rb +84 -0
- data/lib/ImageFormat.rb +127 -0
- data/lib/NativeFileType.rb +168 -0
- data/lib/PatchedPNG.rb +303 -0
- data/lib/RipXplore.rb +77 -0
- data/lib/RipXploreLog.rb +63 -0
- data/lib/SubclassTracking.rb +11 -0
- data/lib/disassemblers/D65.rb +181 -0
- data/lib/file_systems/AppleCPM.rb +123 -0
- data/lib/file_systems/AppleDos.rb +211 -0
- data/lib/file_systems/AtariDos.rb +80 -0
- data/lib/file_systems/CbmDos.rb +75 -0
- data/lib/file_systems/NADOLDos.rb +110 -0
- data/lib/file_systems/PascalDos.rb +131 -0
- data/lib/file_systems/ProDos.rb +155 -0
- data/lib/file_systems/RawDisk.rb +45 -0
- data/lib/file_systems/TrsDos.rb +148 -0
- data/lib/host_systems/Apple2.rb +57 -0
- data/lib/host_systems/Atari800.rb +57 -0
- data/lib/host_systems/C64.rb +82 -0
- data/lib/host_systems/Trs80.rb +48 -0
- data/lib/host_systems/a2_symbols.yaml +199 -0
- data/lib/host_systems/atari_800_symbols.yaml +496 -0
- data/lib/host_systems/c64_symbols.yaml +636 -0
- data/lib/image_formats/A2Dsk.rb +77 -0
- data/lib/image_formats/Atr.rb +83 -0
- data/lib/image_formats/D64.rb +87 -0
- data/lib/image_formats/G64.rb +174 -0
- data/lib/image_formats/Trs80Jv1Dsk.rb +65 -0
- data/lib/native_file_types/apple2/AppleBinary.rb +51 -0
- data/lib/native_file_types/apple2/AppleHiResPic.rb +166 -0
- data/lib/native_file_types/apple2/AppleText.rb +43 -0
- data/lib/native_file_types/apple2/AppleWorksWP.rb +68 -0
- data/lib/native_file_types/apple2/Applesoft.rb +115 -0
- data/lib/native_file_types/apple2/IntegerBASIC.rb +217 -0
- data/lib/native_file_types/apple2/NADOLFile.rb +205 -0
- data/lib/native_file_types/apple2/PascalFile.rb +48 -0
- data/lib/native_file_types/apple2/ProDosFile.rb +112 -0
- data/lib/native_file_types/apple2/ScAsm.rb +110 -0
- data/lib/native_file_types/atari800/AtariBasic.rb +396 -0
- data/lib/native_file_types/atari800/AtariBinary.rb +53 -0
- data/lib/native_file_types/atari800/AtariText.rb +49 -0
- data/lib/native_file_types/c64/C64BasicPrg.rb +333 -0
- data/lib/native_file_types/c64/C64Prg.rb +57 -0
- data/lib/native_file_types/c64/C64PrgText.rb +45 -0
- data/lib/native_file_types/c64/C64Seq.rb +47 -0
- data/lib/native_file_types/c64/CbmFile.rb +41 -0
- data/lib/native_file_types/cpm/CPMFile.rb +40 -0
- data/lib/native_file_types/cpm/MBasic.rb +311 -0
- data/lib/native_file_types/generic/GenericFile.rb +43 -0
- data/lib/native_file_types/trs80/Trs80Cmd.rb +130 -0
- data/lib/native_file_types/trs80/Trs80Jcl.rb +43 -0
- data/lib/native_file_types/trs80/Trs80LevelIIBasic.rb +201 -0
- data/lib/native_file_types/trs80/Trs80PascalSource.rb +58 -0
- data/lib/proc_source.rb +238 -0
- data/lib/rdoc_patch.rb +32 -0
- data/test/tc_file_cache.rb +11 -0
- data/test/tc_image_sniffing.rb +165 -0
- data/test/testhelper.rb +14 -0
- data/test/testlog.txt +30755 -0
- data/test/ts_test_all.rb +3 -0
- metadata +601 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
require 'NativeFileType'
|
|
2
|
+
class ProDosFile<NativeFileType
|
|
3
|
+
|
|
4
|
+
def ProDosFile.file_system_file_types
|
|
5
|
+
{
|
|
6
|
+
ProDos=>:any
|
|
7
|
+
}
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
PRODOS_FILE_TYPES={
|
|
11
|
+
0x00=>"", #"Typeless File"
|
|
12
|
+
0x01=>"BAD", #BAD blocks file
|
|
13
|
+
0x02=>"PCD", #Pascal CoDe file
|
|
14
|
+
0x03=>"PTX", #Pascal TeXt file
|
|
15
|
+
0x04=>"TXT", #ASCII text file
|
|
16
|
+
0x05=>"PDA", #Pascal DAta file
|
|
17
|
+
0x06=>"BIN", #BINary file
|
|
18
|
+
0x07=>"CHR", #CHaRacter font file
|
|
19
|
+
0x08=>"PIC", #PICture file
|
|
20
|
+
0x09=>"BA3", #Business BASIC (SOS) program file
|
|
21
|
+
0x0A=>"DA3", #Business BASIC (SOS) data file
|
|
22
|
+
0x0B=>"WPD", #Word Processor Document
|
|
23
|
+
0x0F=>"DIR", #subDIRectory file
|
|
24
|
+
0x10=>"RPD", #RPS data file
|
|
25
|
+
0x11=>"RPI", #RPS index file
|
|
26
|
+
0x19=>"ADB", #AppleWorks Database file
|
|
27
|
+
0x1A=>"AWP", #AppleWorks WordProcessing file
|
|
28
|
+
0x1B=>"ASP", #AppleWorks Spreadsheet file
|
|
29
|
+
0x60=>"PRE", #ProDOS preboot driver
|
|
30
|
+
0x6B=>"NIO", #PC Transporter BIOS and drivers
|
|
31
|
+
0x6D=>"DVR", #PC Transporter device drivers
|
|
32
|
+
0x6F=>"HDV", #MSDOS HardDisk Volume
|
|
33
|
+
0xA0=>"WPF", #WordPerfect document file
|
|
34
|
+
0xA1=>"MAC", #Macrofile
|
|
35
|
+
0xA2=>"HLP", #Help File
|
|
36
|
+
0xA3=>"DAT", #Data File
|
|
37
|
+
0xA5=>"LEX", #Spelling dictionary
|
|
38
|
+
0xAC=>"ARC", #General Purpose Archive file
|
|
39
|
+
0xB0=>"SRC", #ORCA/M & APW source file
|
|
40
|
+
0xB1=>"OBJ", #ORCA/M & APW object file
|
|
41
|
+
0xB2=>"LIB", #ORCA/M & APW library file
|
|
42
|
+
0xB3=>"S16", #ProDOS16 system file
|
|
43
|
+
0xB4=>"RTL", #ProDOS16 runtime library
|
|
44
|
+
0xB5=>"EXE", #APW shell command file
|
|
45
|
+
0xB6=>"STR", #ProDOS16 startup init file
|
|
46
|
+
0xB7=>"TSF", #ProDOS16 temporary init file
|
|
47
|
+
0xB8=>"NDA", #ProDOS16 new desk accessory
|
|
48
|
+
0xB9=>"CDA", #ProDOS16 classic desk accessory
|
|
49
|
+
0xBA=>"TOL", #ProDOS16 toolset file
|
|
50
|
+
0xBB=>"DRV", #ProDOS16 driver file
|
|
51
|
+
0xBF=>"DOC", #document file
|
|
52
|
+
0xC0=>"PNT", #//gs paint document
|
|
53
|
+
0xC1=>"SCR", #//gs screen file
|
|
54
|
+
0xC8=>"FNT", #Printer font file
|
|
55
|
+
0xE0=>"LBR", #Apple archive library file
|
|
56
|
+
0xE2=>"ATI", #Appletalk init file
|
|
57
|
+
0xEF=>"PAS", #ProDOS Pascal file
|
|
58
|
+
0xF0=>"CMD", #added command file
|
|
59
|
+
0xF1=>"OVL", #Overlay file
|
|
60
|
+
0xF2=>"DBF", #Database file
|
|
61
|
+
0xF3=>"PAD", #MouseWrite file
|
|
62
|
+
0xF4=>"MCR", #AE Pro macro file
|
|
63
|
+
0xF5=>"ECP", #ECP batch file
|
|
64
|
+
0xF6=>"DSC", #description file
|
|
65
|
+
0xF7=>"TMP", #temporary work file
|
|
66
|
+
0xF8=>"RSX", #linkable object module
|
|
67
|
+
0xF9=>"IMG", #ProDOS image file
|
|
68
|
+
0xFA=>"INT", #Integer BASIC program
|
|
69
|
+
0xFB=>"IVR", #Integer BASIC variables file
|
|
70
|
+
0xFC=>"BAS", #AppleSoft BASIC program
|
|
71
|
+
0xFD=>"VAR", #AppleSoft BASIC variables file
|
|
72
|
+
0xFE=>"REL", #ProDOS EDASM relocatable object module file
|
|
73
|
+
0xFF=>"SYS", #ProDOS8 system file}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
# this class should be low scoring, as a last resort
|
|
77
|
+
def ProDosFile.matching_score
|
|
78
|
+
NativeFileType.non_matching_score+0.1
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def type_description
|
|
82
|
+
extension=PRODOS_FILE_TYPES[file_type]
|
|
83
|
+
extension.nil? ? (" $%02x:%04x" % [file_type,aux_code] ) : ("#{extension}:%04x" % aux_code)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
# == Author
|
|
90
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
91
|
+
#
|
|
92
|
+
# == Copyright
|
|
93
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
94
|
+
#
|
|
95
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
96
|
+
#a copy of this software and associated documentation files (the
|
|
97
|
+
#"Software"), to deal in the Software without restriction, including
|
|
98
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
99
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
100
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
101
|
+
#the following conditions:
|
|
102
|
+
|
|
103
|
+
# The above copyright notice and this permission notice shall be
|
|
104
|
+
# included in all copies or substantial portions of the Software.
|
|
105
|
+
|
|
106
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
107
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
108
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
109
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
110
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
111
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
112
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
|
2
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
|
3
|
+
|
|
4
|
+
#require 'IntegerBASIC'
|
|
5
|
+
class ScAsm<IntegerBASIC
|
|
6
|
+
|
|
7
|
+
#SC-ASM files are saved as type 'I' but are really tokenised Assembler source files
|
|
8
|
+
# Adapted from FID.C -- a utility to browse Apple II .DSK image files by Paul Schlyter (pausch@saaf.se)
|
|
9
|
+
#
|
|
10
|
+
# S-C Assembler file format:
|
|
11
|
+
#
|
|
12
|
+
# <Length_of_file> (16-bit little endian)
|
|
13
|
+
# <Line>
|
|
14
|
+
# ......
|
|
15
|
+
# <Line>
|
|
16
|
+
#
|
|
17
|
+
# where <Line> is:
|
|
18
|
+
# <Length> (8-bit: including length byte, line no, contents, zero>
|
|
19
|
+
# <Line no> (16-bit little endian: 0-65535)
|
|
20
|
+
# <Characters>
|
|
21
|
+
# <Zero byte> ($00, to mark the end of the S-C Asm source line)
|
|
22
|
+
#
|
|
23
|
+
# where <Characters> are an arbitrary sequence of:
|
|
24
|
+
# <Literal character>: $20 to $7E - literal characters
|
|
25
|
+
# <Compressed spaces>: $80 to $BF - represents 1 to 63 spaces
|
|
26
|
+
# <Compressed repetition>: $C0 <n> <ch> - represents <ch> n times
|
|
27
|
+
|
|
28
|
+
is_valid_file_if lambda {
|
|
29
|
+
is_valid=true
|
|
30
|
+
length=contents[0]+contents[1]*256
|
|
31
|
+
is_valid=false if length>contents.length
|
|
32
|
+
index=2
|
|
33
|
+
s=""
|
|
34
|
+
while (index<length) && (is_valid)
|
|
35
|
+
line_length=contents[index]
|
|
36
|
+
line_no=contents[index+1]+contents[index+2]*256
|
|
37
|
+
index+=3 #skip over the "line number" field
|
|
38
|
+
#S-C Assembler lines always ends with a 0x00
|
|
39
|
+
if ( contents[index+line_length-4] != 0x00 )
|
|
40
|
+
is_valid=false
|
|
41
|
+
else
|
|
42
|
+
contents[index..index+line_length-3].each_byte do |b|
|
|
43
|
+
if b>0xc0 then
|
|
44
|
+
is_valid=false
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
index+= (line_length-3).abs
|
|
49
|
+
end
|
|
50
|
+
is_valid
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
def to_listing
|
|
54
|
+
length=contents[0]+contents[1]*256
|
|
55
|
+
index=2
|
|
56
|
+
s=""
|
|
57
|
+
while (index<length)
|
|
58
|
+
line_length=contents[index]
|
|
59
|
+
line_no=contents[index+1]+contents[index+2]*256
|
|
60
|
+
s+=sprintf("%d ",line_no)
|
|
61
|
+
index+=3 #skip over the "line number" field
|
|
62
|
+
end_of_line=index+line_length-4
|
|
63
|
+
while(index<end_of_line)
|
|
64
|
+
b=contents[index]
|
|
65
|
+
if (b==0xC0) then
|
|
66
|
+
repeat_count=contents[index+1]
|
|
67
|
+
repeat_char=(contents[index+2]).chr
|
|
68
|
+
s+=repeat_char*repeat_count
|
|
69
|
+
index+=3
|
|
70
|
+
elsif(b>=0x80) then
|
|
71
|
+
s+=" "*(b-0x80)
|
|
72
|
+
index+=1
|
|
73
|
+
else
|
|
74
|
+
s+=b.chr
|
|
75
|
+
index+=1
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
index+=1 #skip over end-of-line marker
|
|
79
|
+
s+="\n"
|
|
80
|
+
end
|
|
81
|
+
s
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
# == Author
|
|
88
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
89
|
+
#
|
|
90
|
+
# == Copyright
|
|
91
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
92
|
+
#
|
|
93
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
94
|
+
#a copy of this software and associated documentation files (the
|
|
95
|
+
#"Software"), to deal in the Software without restriction, including
|
|
96
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
97
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
98
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
99
|
+
#the following conditions:
|
|
100
|
+
|
|
101
|
+
# The above copyright notice and this permission notice shall be
|
|
102
|
+
# included in all copies or substantial portions of the Software.
|
|
103
|
+
|
|
104
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
105
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
106
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
107
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
108
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
109
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
110
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
require 'NativeFileType'
|
|
2
|
+
|
|
3
|
+
#http://www.atarimax.com/jindroush.atari.org/afmtbas.html
|
|
4
|
+
#http://www.atarimax.com/jindroush.atari.org/afmtbas1.html
|
|
5
|
+
#http://www.atariarchives.org/dere/chapt10.php
|
|
6
|
+
#http://users.telenet.be/kim1-6502/6502/p1.html#81
|
|
7
|
+
#
|
|
8
|
+
#
|
|
9
|
+
# PART 1 0 +----------+
|
|
10
|
+
# | 0 |
|
|
11
|
+
# 2 +----------+
|
|
12
|
+
# | 256 | <--> The displacement of the VNT from
|
|
13
|
+
# 4 +----------+ the beginning of part two, plus 256.
|
|
14
|
+
# | Not Used |
|
|
15
|
+
# 6 +----------+
|
|
16
|
+
# | DVVT | <--> The displacement of VNT from the
|
|
17
|
+
# 8 +----------+ beginning of part two, plus 256.
|
|
18
|
+
# | DST | <--> The displacement of ST from the
|
|
19
|
+
# 10+----------+ beginning of part two, plus 256.
|
|
20
|
+
# | Not Used |
|
|
21
|
+
# 12+----------+
|
|
22
|
+
# | DEND | <--> The displacement of the end of the
|
|
23
|
+
# ======14+==========+ file from the beginning of part two.
|
|
24
|
+
# PART 2 0| VNT | <--> Variable Name Table
|
|
25
|
+
# DVVT-256+----------+
|
|
26
|
+
# | VVT | <--> Variable Value Table
|
|
27
|
+
# DSNT-256+----------+
|
|
28
|
+
# | ST | <--> Statement Table
|
|
29
|
+
# DEND-256+----------+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class AtariBasic<NativeFileType
|
|
33
|
+
def self.file_system_file_types
|
|
34
|
+
{
|
|
35
|
+
AtariDos=>:any
|
|
36
|
+
}
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
#tokenised BASIC files start with 00 00 ?? 01
|
|
40
|
+
is_valid_file_if lambda {(contents[0,2]=="\000\000") && (contents[3]==0x01)}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
START_OF_FILE_PART_TWO=14
|
|
44
|
+
ATARI_BASIC_COMMAND_TOKENS=[
|
|
45
|
+
'REM', #0x0
|
|
46
|
+
'DATA', #0x1
|
|
47
|
+
'INPUT', #0x2
|
|
48
|
+
'COLOR', #0x3
|
|
49
|
+
'LIST', #0x4
|
|
50
|
+
'ENTER', #0x5
|
|
51
|
+
'LET', #0x6
|
|
52
|
+
'IF', #0x7
|
|
53
|
+
'FOR', #0x8
|
|
54
|
+
'NEXT', #0x9
|
|
55
|
+
'GOTO', #0x0A
|
|
56
|
+
'GO TO', #0x0B
|
|
57
|
+
'GOSUB', #0x0C
|
|
58
|
+
'TRAP', #0x0D
|
|
59
|
+
'BYE', #0x0E
|
|
60
|
+
'CONT', #0x0F
|
|
61
|
+
'COM', #0x10
|
|
62
|
+
'CLOSE', #0x11
|
|
63
|
+
'CLR', #0x12
|
|
64
|
+
'DEG', #0x13
|
|
65
|
+
'DIM', #0x14
|
|
66
|
+
'END', #0x15
|
|
67
|
+
'NEW', #0x16
|
|
68
|
+
'OPEN', #0x17
|
|
69
|
+
'LOAD', #0x18
|
|
70
|
+
'SAVE', #0x19
|
|
71
|
+
'STATUS', #0x1A
|
|
72
|
+
'NOTE', #0x1B
|
|
73
|
+
'POINT', #0x1C
|
|
74
|
+
'XIO', #0x1D
|
|
75
|
+
'ON', #0x1E
|
|
76
|
+
'POKE', #0x1F
|
|
77
|
+
'PRINT', #0x20
|
|
78
|
+
'RAD', #0x21
|
|
79
|
+
'READ', #0x22
|
|
80
|
+
'RESTORE', #0x23
|
|
81
|
+
'RETURN', #0x24
|
|
82
|
+
'RUN', #0x25
|
|
83
|
+
'STOP', #0x26
|
|
84
|
+
'POP', #0x27
|
|
85
|
+
'?', #0x28
|
|
86
|
+
'GET', #0x29
|
|
87
|
+
'PUT', #0x2A
|
|
88
|
+
'GRAPHICS', #0x2B
|
|
89
|
+
'PLOT', #0x2C
|
|
90
|
+
'POSITION', #0x2D
|
|
91
|
+
'DOS', #0x2E
|
|
92
|
+
'DRAWTO', #0x2F
|
|
93
|
+
'SETCOLOR', #0x30
|
|
94
|
+
'LOCATE', #0x31
|
|
95
|
+
'SOUND', #0x32
|
|
96
|
+
'LPRINT', #0x33
|
|
97
|
+
'CSAVE', #0x34
|
|
98
|
+
'CLOAD', #0x35
|
|
99
|
+
'', #0x36 - [IMPLIED LET]
|
|
100
|
+
'ERROR - [SYNTAX]', #0x37
|
|
101
|
+
|
|
102
|
+
## these following tokens are from Turbo BASIC - http://www.atarimax.com/jindroush.atari.org/afmtbas1.html
|
|
103
|
+
'DPOKE', #38
|
|
104
|
+
'MOVE', #39
|
|
105
|
+
'-MOVE', #3A
|
|
106
|
+
'*F', #3B
|
|
107
|
+
'REPEAT', #3C
|
|
108
|
+
'UNTIL', #3D
|
|
109
|
+
'WHILE', #3E
|
|
110
|
+
'WEND', #3F
|
|
111
|
+
'ELSE', #40
|
|
112
|
+
'ENDIF', #41
|
|
113
|
+
'BPUT', #42
|
|
114
|
+
'BGET', #43
|
|
115
|
+
'FILLTO', #44
|
|
116
|
+
'DO', #45
|
|
117
|
+
'LOOP', #46
|
|
118
|
+
'EXIT', #47
|
|
119
|
+
'DIR', #48
|
|
120
|
+
'LOCK', #49
|
|
121
|
+
'UNLOCK', #4A
|
|
122
|
+
'RENAME', #4B
|
|
123
|
+
'DELETE', #4C
|
|
124
|
+
'PAUSE', #4D
|
|
125
|
+
'TIME$=', #4E
|
|
126
|
+
'PROC', #4F
|
|
127
|
+
'EXEC', #50
|
|
128
|
+
'ENDPROC', #51
|
|
129
|
+
'FCOLOR', #52
|
|
130
|
+
'*L', #53
|
|
131
|
+
'------------------------------', #54
|
|
132
|
+
'RENUM', #55
|
|
133
|
+
'DEL', #56
|
|
134
|
+
'DUMP', #57
|
|
135
|
+
'TRACE', #58
|
|
136
|
+
'TEXT', #59
|
|
137
|
+
'BLOAD', #5A
|
|
138
|
+
'BRUN', #5B
|
|
139
|
+
'GO#', #5C
|
|
140
|
+
'#', #5D
|
|
141
|
+
'*B', #5E
|
|
142
|
+
'PAINT', #5F
|
|
143
|
+
'CLS', #60
|
|
144
|
+
'DSOUND', #61
|
|
145
|
+
'CIRCLE', #62
|
|
146
|
+
'%PUT', #63
|
|
147
|
+
'%GET', #64
|
|
148
|
+
|
|
149
|
+
]
|
|
150
|
+
|
|
151
|
+
ATARI_BASIC_OPERATORS_AND_FUNCTIONS={
|
|
152
|
+
0x0D => '[NUM HEX CONST]', # from TURBO BASIC
|
|
153
|
+
0x0E =>'[NUM CONST]',
|
|
154
|
+
0x0F =>'[STR CONST]',
|
|
155
|
+
0x10 =>'[NOT USED]',
|
|
156
|
+
0x11 =>'[NOT USED]',
|
|
157
|
+
0x12 =>',',
|
|
158
|
+
0x13 =>'$',
|
|
159
|
+
0x14 =>':',# [STMT END]
|
|
160
|
+
0x15 =>';',
|
|
161
|
+
0x16 =>'[LINE END]',
|
|
162
|
+
0x17 =>'GOTO',
|
|
163
|
+
0x18 =>'GOSUB',
|
|
164
|
+
0x19 =>'TO',
|
|
165
|
+
0x1A =>'STEP',
|
|
166
|
+
0x1B =>'THEN',
|
|
167
|
+
0x1C =>'#',
|
|
168
|
+
0x1D =>'<=', #numerics
|
|
169
|
+
0x1E =>'<>',
|
|
170
|
+
0x1F =>'>=',
|
|
171
|
+
0x20 =>'<',
|
|
172
|
+
0x21 =>'>',
|
|
173
|
+
0x22 =>'=',
|
|
174
|
+
0x23 =>'',
|
|
175
|
+
0x24 =>'*',
|
|
176
|
+
0x25 =>'+',
|
|
177
|
+
0x26 =>'-',
|
|
178
|
+
0x27 =>'/',
|
|
179
|
+
0x28 =>'NOT',
|
|
180
|
+
0x29 =>'OR',
|
|
181
|
+
0x2A =>'AND',
|
|
182
|
+
0x2B =>'(',
|
|
183
|
+
0x2C =>')',
|
|
184
|
+
0x2D =>'=', # ARITHM ASSIGN
|
|
185
|
+
0x2E =>'=',#STRING ASSIGN
|
|
186
|
+
0x2F =>'<=',#STRINGS
|
|
187
|
+
0x30 =>'<>',
|
|
188
|
+
0x31 =>'>=',
|
|
189
|
+
0x32 =>'<',
|
|
190
|
+
0x33 =>'>',
|
|
191
|
+
0x34 =>'=',
|
|
192
|
+
0x35 =>'+',#unary
|
|
193
|
+
0x36 =>'-',
|
|
194
|
+
0x37 =>'(',# [STRING LEFT PAREN]
|
|
195
|
+
0x38 =>'(',#[ARRAY LEFT PAREN]
|
|
196
|
+
0x39 =>'(',# [DIM ARRAY LEFT PAREN]
|
|
197
|
+
0x3A =>'(',#[FUN LEFT PAREN]
|
|
198
|
+
0x3B =>'(',# [DIM STR LEFT PAREN]
|
|
199
|
+
0x3C =>',',# [ARRAY COMMA]
|
|
200
|
+
0x3D =>'STR$',
|
|
201
|
+
0x3E =>'CHR$',
|
|
202
|
+
0x3F =>'USR',
|
|
203
|
+
0x40 =>'ASC',
|
|
204
|
+
0x41 =>'VAL',
|
|
205
|
+
0x42 =>'LEN',
|
|
206
|
+
0x43 =>'ADR',
|
|
207
|
+
0x44 =>'ATN',
|
|
208
|
+
0x45 =>'COS',
|
|
209
|
+
0x46 =>'PEEK',
|
|
210
|
+
0x47 =>'SIN',
|
|
211
|
+
0x48 =>'RND',
|
|
212
|
+
0x49 =>'FRE',
|
|
213
|
+
0x4A =>'EXP',
|
|
214
|
+
0x4B =>'LOG',
|
|
215
|
+
0x4C =>'CLOG',
|
|
216
|
+
0x4D =>'SQR',
|
|
217
|
+
0x4E =>'SGN',
|
|
218
|
+
0x4F =>'ABS',
|
|
219
|
+
0x50 =>'INT',
|
|
220
|
+
0x51 =>'PADDLE',
|
|
221
|
+
0x52 =>'STICK',
|
|
222
|
+
0x53 =>'PTRIG',
|
|
223
|
+
0x54 =>'STRIG',
|
|
224
|
+
|
|
225
|
+
## these following tokens are from Turbo BASIC - http://www.atarimax.com/jindroush.atari.org/afmtbas1.html
|
|
226
|
+
0x55=>'DPEEK',
|
|
227
|
+
0x56=>'&',
|
|
228
|
+
0x57=>'!',
|
|
229
|
+
0x58=>'INSTR',
|
|
230
|
+
0x59=>'INKEY$',
|
|
231
|
+
0x5A=>'EXOR',
|
|
232
|
+
0x5B=>'HEX$',
|
|
233
|
+
0x5C=>'DEC',
|
|
234
|
+
0x5D=>'DIV',
|
|
235
|
+
0x5E=>'FRAC',
|
|
236
|
+
0x5F=>'TIME$',
|
|
237
|
+
0x60=>'TIME',
|
|
238
|
+
0x61=>'MOD',
|
|
239
|
+
0x62=>'EXEC',
|
|
240
|
+
0x63=>'RND',
|
|
241
|
+
0x64=>'RAND',
|
|
242
|
+
0x65=>'TRUNC',
|
|
243
|
+
0x66=>'%0',
|
|
244
|
+
0x67=>'%1',
|
|
245
|
+
0x68=>'%2',
|
|
246
|
+
0x69=>'%3',
|
|
247
|
+
0x6A=>'GO#',
|
|
248
|
+
0x6B=>'UINSTR',
|
|
249
|
+
0x6C=>'ERR',
|
|
250
|
+
0x6D=>'ERL',
|
|
251
|
+
}
|
|
252
|
+
def to_listing
|
|
253
|
+
s=""
|
|
254
|
+
variable_name_table_displacement=(contents[2]+(contents[3]<<8))-0x100
|
|
255
|
+
# puts "%02x %02x" % [contents[6],contents[7]]
|
|
256
|
+
variable_value_table_displacement=(contents[6]+(contents[7]<<8))-0x100
|
|
257
|
+
statement_table_displacement=(contents[8]+(contents[9]<<8))-0x100
|
|
258
|
+
file_end_displacement=(contents[12]+(contents[13]<<8))-0x100
|
|
259
|
+
|
|
260
|
+
# puts "DVNT $#{"%02x" % variable_name_table_displacement} DVVT $#{"%02x" % variable_value_table_displacement} DST $#{"%02x" % statement_table_displacement}"
|
|
261
|
+
|
|
262
|
+
#extract all the variable names
|
|
263
|
+
variable_name_table=contents[variable_name_table_displacement+START_OF_FILE_PART_TWO,(variable_value_table_displacement-variable_name_table_displacement)]
|
|
264
|
+
variable_names={}
|
|
265
|
+
variable_token=0x80
|
|
266
|
+
current_variable_name=""
|
|
267
|
+
variable_name_table.each_byte do |byte|
|
|
268
|
+
if byte>=0x80 then
|
|
269
|
+
current_variable_name+=(byte-0x80).chr
|
|
270
|
+
variable_names[variable_token]=current_variable_name
|
|
271
|
+
variable_token+=1
|
|
272
|
+
current_variable_name=""
|
|
273
|
+
else
|
|
274
|
+
current_variable_name+=byte.chr
|
|
275
|
+
end
|
|
276
|
+
end
|
|
277
|
+
#~ variable_names.keys.sort.each do |token|
|
|
278
|
+
#~ puts "$%02x : #{variable_names[token]}" % token
|
|
279
|
+
#~ end
|
|
280
|
+
|
|
281
|
+
statement_table=contents[statement_table_displacement+START_OF_FILE_PART_TWO,(file_end_displacement-statement_table_displacement)]
|
|
282
|
+
p=0
|
|
283
|
+
s=""
|
|
284
|
+
while p<statement_table.length
|
|
285
|
+
# puts "%02x" % statement_table[p]
|
|
286
|
+
line_number=statement_table[p,2].unpack("v")[0]
|
|
287
|
+
break if line_number==0x8000
|
|
288
|
+
line_length=statement_table[p+2]
|
|
289
|
+
line=statement_table[p+3,line_length-2]
|
|
290
|
+
s<<"#{line_number} "
|
|
291
|
+
# puts "#{line_number} #{"%02x" % line_length}"
|
|
292
|
+
break if line_length==0
|
|
293
|
+
t=0
|
|
294
|
+
start_of_statement=true
|
|
295
|
+
while (!line.nil?) && t<line.length && line[t]!=0x16
|
|
296
|
+
actual_file_offset=statement_table_displacement+START_OF_FILE_PART_TWO+p+t #track for debugging
|
|
297
|
+
token=line[t]
|
|
298
|
+
if start_of_statement then
|
|
299
|
+
t+=1 #skip over the 'displacement till next statement' byte
|
|
300
|
+
token=line[t]
|
|
301
|
+
command=ATARI_BASIC_COMMAND_TOKENS[token]
|
|
302
|
+
command="[UNK CMD %02X]" % token if command.nil?
|
|
303
|
+
s<<"#{command} " unless token==0x36 #don't print anything on an implied let
|
|
304
|
+
start_of_statement=false
|
|
305
|
+
if token==0x00 then #REM
|
|
306
|
+
s<<line[t+1,line.length-(t+3)]
|
|
307
|
+
t=line.length
|
|
308
|
+
end
|
|
309
|
+
elsif token>=0x80 then
|
|
310
|
+
variable=variable_names[token]
|
|
311
|
+
variable="[UNK VAR %02X]" % token if variable.nil?
|
|
312
|
+
s<<variable
|
|
313
|
+
elsif token==0x14 then #end of statement
|
|
314
|
+
s<<":"
|
|
315
|
+
start_of_statement=true
|
|
316
|
+
elsif token==0x0D then #numeric hex constant - TURBO BASIC
|
|
317
|
+
# raise "NHCONST not implemented yet : offset $#{"%x" % actual_file_offset} of #{filename}"
|
|
318
|
+
const=line[t+1]+(line[t+2]<<8)
|
|
319
|
+
s<<"&%x"%const
|
|
320
|
+
t+=2
|
|
321
|
+
elsif token==0x0E then #numeric constant - 6 BCD floating point
|
|
322
|
+
buffer=line[t+1,6]
|
|
323
|
+
s<<parse_bytes_as_float(buffer).to_s.sub(/\.0$/,'')#strip off ".0"
|
|
324
|
+
t+=6
|
|
325
|
+
elsif token==0x0F then #string
|
|
326
|
+
length=line[t+1]
|
|
327
|
+
s<<"\"#{line[t+2,length]}\""
|
|
328
|
+
t+=length+1
|
|
329
|
+
elsif token==0x1B then
|
|
330
|
+
s<<"THEN "
|
|
331
|
+
start_of_statement=true
|
|
332
|
+
else
|
|
333
|
+
op_func=ATARI_BASIC_OPERATORS_AND_FUNCTIONS[token]
|
|
334
|
+
op_func="[UNK OP/FUNC %02X]" % token if op_func.nil?
|
|
335
|
+
s<<"#{op_func}"
|
|
336
|
+
end
|
|
337
|
+
|
|
338
|
+
t+=1
|
|
339
|
+
end
|
|
340
|
+
s<<"\n"
|
|
341
|
+
p+=line_length
|
|
342
|
+
end
|
|
343
|
+
s
|
|
344
|
+
end
|
|
345
|
+
|
|
346
|
+
private
|
|
347
|
+
def parse_bytes_as_float(bytes)
|
|
348
|
+
|
|
349
|
+
return 0 if (bytes[0]==00 && bytes[1]==00 && bytes[2]==00 && bytes[3]==00 && bytes[4]==00 && bytes[5]==00)
|
|
350
|
+
# bytes.each_byte{|x| print ("$%02x " % x)}
|
|
351
|
+
exponent=bytes[0]-0x40
|
|
352
|
+
mantissa=0
|
|
353
|
+
5.times do |i|
|
|
354
|
+
mantissa=mantissa*100.0
|
|
355
|
+
mantissa+=byte_to_bcd(bytes[i+1])
|
|
356
|
+
end
|
|
357
|
+
mantissa=mantissa/(100**4)
|
|
358
|
+
result=mantissa*(100**exponent)
|
|
359
|
+
|
|
360
|
+
# puts "M #{mantissa} E #{exponent} R #{result}"
|
|
361
|
+
result
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
def byte_to_bcd(b)
|
|
365
|
+
high_nibble=b>>4
|
|
366
|
+
low_nibble=b%0x10
|
|
367
|
+
(high_nibble*10)+low_nibble
|
|
368
|
+
end
|
|
369
|
+
|
|
370
|
+
end
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
# == Author
|
|
374
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
375
|
+
#
|
|
376
|
+
# == Copyright
|
|
377
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
378
|
+
#
|
|
379
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
380
|
+
#a copy of this software and associated documentation files (the
|
|
381
|
+
#"Software"), to deal in the Software without restriction, including
|
|
382
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
383
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
384
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
385
|
+
#the following conditions:
|
|
386
|
+
|
|
387
|
+
# The above copyright notice and this permission notice shall be
|
|
388
|
+
# included in all copies or substantial portions of the Software.
|
|
389
|
+
|
|
390
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
391
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
392
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
393
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
394
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
395
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
396
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
require 'NativeFileType'
|
|
2
|
+
class AtariBinary<NativeFileType
|
|
3
|
+
|
|
4
|
+
#http://www.atarimax.com/jindroush.atari.org/afmtexe.html
|
|
5
|
+
def self.file_system_file_types
|
|
6
|
+
{
|
|
7
|
+
AtariDos=>:any
|
|
8
|
+
}
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# binary load files start with FF FF
|
|
12
|
+
is_valid_file_if lambda {contents[0]==0xFF && contents[1]==0xFF}
|
|
13
|
+
|
|
14
|
+
#Binary Load files have the load address stored in bytes 2 & 3
|
|
15
|
+
def load_address
|
|
16
|
+
contents[2]+contents[3]*256
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def header_length
|
|
20
|
+
6
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def to_listing
|
|
24
|
+
Atari800.disassemble(data_without_header,load_address)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
# == Author
|
|
31
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
32
|
+
#
|
|
33
|
+
# == Copyright
|
|
34
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
35
|
+
#
|
|
36
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
37
|
+
#a copy of this software and associated documentation files (the
|
|
38
|
+
#"Software"), to deal in the Software without restriction, including
|
|
39
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
40
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
41
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
42
|
+
#the following conditions:
|
|
43
|
+
|
|
44
|
+
# The above copyright notice and this permission notice shall be
|
|
45
|
+
# included in all copies or substantial portions of the Software.
|
|
46
|
+
|
|
47
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
48
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
49
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
50
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
51
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
52
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
53
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|