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,43 @@
|
|
|
1
|
+
require 'NativeFileType'
|
|
2
|
+
class AppleText<NativeFileType
|
|
3
|
+
|
|
4
|
+
def self.file_system_file_types
|
|
5
|
+
{
|
|
6
|
+
AppleDos=>0x00,
|
|
7
|
+
ProDos=>0x04
|
|
8
|
+
}
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def to_text
|
|
12
|
+
s=""
|
|
13
|
+
contents.each_byte{|b| s+=Apple2.to_ascii(b) unless b==0}
|
|
14
|
+
s.tr("\r","\n")
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
# == Author
|
|
21
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
22
|
+
#
|
|
23
|
+
# == Copyright
|
|
24
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
25
|
+
#
|
|
26
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
27
|
+
#a copy of this software and associated documentation files (the
|
|
28
|
+
#"Software"), to deal in the Software without restriction, including
|
|
29
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
30
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
31
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
32
|
+
#the following conditions:
|
|
33
|
+
|
|
34
|
+
# The above copyright notice and this permission notice shall be
|
|
35
|
+
# included in all copies or substantial portions of the Software.
|
|
36
|
+
|
|
37
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
38
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
39
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
40
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
41
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
42
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
43
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
require 'NativeFileType'
|
|
2
|
+
class AppleWorksWP<NativeFileType
|
|
3
|
+
|
|
4
|
+
def self.file_system_file_types
|
|
5
|
+
{
|
|
6
|
+
ProDos=>0x1A
|
|
7
|
+
}
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
#AWP format defined in http://www.umich.edu/~archive/apple2/technotes/ftn/FTN.1A.xxxx
|
|
11
|
+
def to_text
|
|
12
|
+
s=""
|
|
13
|
+
i=300 #skip 300 byte header
|
|
14
|
+
i+=2 if contents[183]>3 #skip the first invalid line if SFMInVers non-zero
|
|
15
|
+
while i<contents.length-4 do
|
|
16
|
+
command_byte_0=contents[i]
|
|
17
|
+
command_byte_1=contents[i+1]
|
|
18
|
+
i+=2
|
|
19
|
+
if command_byte_1==0xD0 then #it's a carriage return line - do nothing
|
|
20
|
+
elsif command_byte_1>0xD0 then #it's a command line - do nothing
|
|
21
|
+
else #it's a text record
|
|
22
|
+
bytes_in_line=command_byte_0
|
|
23
|
+
control_byte=contents[i+1]
|
|
24
|
+
chars_remaining=control_byte%0x80
|
|
25
|
+
contents[i+2..i+2+chars_remaining-1].each_byte do |b|
|
|
26
|
+
if b==0x16 then #tab char
|
|
27
|
+
s<<"\t"
|
|
28
|
+
elsif b==0x17 then
|
|
29
|
+
s<<" "
|
|
30
|
+
elsif b>=0x20 then
|
|
31
|
+
s<<b.chr
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
i+=bytes_in_line
|
|
35
|
+
s<<"\n"
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
s
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
# == Author
|
|
46
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
47
|
+
#
|
|
48
|
+
# == Copyright
|
|
49
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
50
|
+
#
|
|
51
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
52
|
+
#a copy of this software and associated documentation files (the
|
|
53
|
+
#"Software"), to deal in the Software without restriction, including
|
|
54
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
55
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
56
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
57
|
+
#the following conditions:
|
|
58
|
+
|
|
59
|
+
# The above copyright notice and this permission notice shall be
|
|
60
|
+
# included in all copies or substantial portions of the Software.
|
|
61
|
+
|
|
62
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
63
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
64
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
65
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
66
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
67
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
68
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
require 'NativeFileType'
|
|
2
|
+
class Applesoft<NativeFileType
|
|
3
|
+
|
|
4
|
+
def self.file_system_file_types
|
|
5
|
+
{
|
|
6
|
+
AppleDos=>0x02,
|
|
7
|
+
ProDos=>0xFC
|
|
8
|
+
}
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
APPLESOFT_TOKENS = [
|
|
12
|
+
"END","FOR","NEXT","DATA","INPUT","DEL","DIM","READ",
|
|
13
|
+
"GR","TEXT","PR#","IN#","CALL","PLOT","HLIN","VLIN",
|
|
14
|
+
"HGR2","HGR","HCOLOR=","HPLOT","DRAW","XDRAW","HTAB",
|
|
15
|
+
"HOME","ROT=","SCALE=","SHLOAD","TRACE","NOTRACE",
|
|
16
|
+
"NORMAL","INVERSE","FLASH","COLOR=","POP","VTAB",
|
|
17
|
+
"HIMEM=","LOMEM=","ONERR","RESUME","RECALL","STORE",
|
|
18
|
+
"SPEED=","LET","GOTO","RUN","IF","RESTORE","&","GOSUB",
|
|
19
|
+
"RETURN","REM","STOP","ON","WAIT","LOAD","SAVE","DEF",
|
|
20
|
+
"POKE","PRINT","CONT","LIST","CLEAR","GET","NEW",
|
|
21
|
+
"TAB(","TO","FN","SPC(","THEN","AT","NOT","STEP","+",
|
|
22
|
+
"-","*","/","^","AND","OR",">","=","<","SGN","INT",
|
|
23
|
+
"ABS","USR","FRE","SCRN(","PDL","POS","SQR","RND",
|
|
24
|
+
"LOG","EXP","COS","SIN","TAN","ATN","PEEK","LEN",
|
|
25
|
+
"STR$","VAL","ASC","CHR$", "LEFT$","RIGHT$","MID$","?",
|
|
26
|
+
"?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?"
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
def to_listing
|
|
30
|
+
# Adapted from FID.C -- a utility to browse Apple II .DSK image files by Paul Schlyter (pausch@saaf.se)
|
|
31
|
+
#
|
|
32
|
+
#Applesoft file format:
|
|
33
|
+
# <Length_of_file> (16-bit little endian) (only for Apple DOS files - these 2 bytes are not present in Applesoft file on ProDOS)
|
|
34
|
+
# <Line>
|
|
35
|
+
# ......
|
|
36
|
+
# <Line>
|
|
37
|
+
# where <Line> is:
|
|
38
|
+
# <Next addr> (16-bit little endian)
|
|
39
|
+
# <Line no> (16-bit little endian: 0-65535)
|
|
40
|
+
# <Tokens and/or characters>
|
|
41
|
+
# <End-of-line marker: $00 >
|
|
42
|
+
#
|
|
43
|
+
if (file_system_image.file_system)==AppleDos then
|
|
44
|
+
length=contents[0]+contents[1]*256
|
|
45
|
+
index=2
|
|
46
|
+
else
|
|
47
|
+
length=contents.length
|
|
48
|
+
index=0
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
s=""
|
|
52
|
+
while (index<length)
|
|
53
|
+
index+=2 #skip over the "next address" field
|
|
54
|
+
break if contents[index].nil?
|
|
55
|
+
break if contents[index+1].nil?
|
|
56
|
+
line_no=contents[index]+contents[index+1]*256
|
|
57
|
+
index+=2 #skip over the "line number" field
|
|
58
|
+
s+=sprintf("%u",line_no)
|
|
59
|
+
done_line=false
|
|
60
|
+
last_char_space=false
|
|
61
|
+
inside_quotes=true
|
|
62
|
+
while (!done_line)
|
|
63
|
+
b=contents[index]
|
|
64
|
+
break if b.nil?
|
|
65
|
+
inside_quotes=!inside_quotes if b==0x22
|
|
66
|
+
if b>=0x80 then
|
|
67
|
+
if inside_quotes then
|
|
68
|
+
if !last_char_space then
|
|
69
|
+
s+=" "
|
|
70
|
+
end
|
|
71
|
+
s+=APPLESOFT_TOKENS[b-0x80]+" "
|
|
72
|
+
last_char_space=true
|
|
73
|
+
else
|
|
74
|
+
s+=(b-0x80).chr #if we're inside quotes, bytes >80 are inverse text. but we'll just display them as normal text
|
|
75
|
+
end
|
|
76
|
+
else
|
|
77
|
+
s+=b.chr
|
|
78
|
+
last_char_space=false
|
|
79
|
+
end
|
|
80
|
+
index+=1
|
|
81
|
+
done_line=(index>=length)||(contents[index]==0)
|
|
82
|
+
end
|
|
83
|
+
s+="\n"
|
|
84
|
+
index+=1 # skip over "end of line" marker
|
|
85
|
+
end
|
|
86
|
+
#s
|
|
87
|
+
s
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
# == Author
|
|
93
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
94
|
+
#
|
|
95
|
+
# == Copyright
|
|
96
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
97
|
+
#
|
|
98
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
99
|
+
#a copy of this software and associated documentation files (the
|
|
100
|
+
#"Software"), to deal in the Software without restriction, including
|
|
101
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
102
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
103
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
104
|
+
#the following conditions:
|
|
105
|
+
|
|
106
|
+
# The above copyright notice and this permission notice shall be
|
|
107
|
+
# included in all copies or substantial portions of the Software.
|
|
108
|
+
|
|
109
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
110
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
111
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
112
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
113
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
114
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
115
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
require 'NativeFileType'
|
|
2
|
+
class IntegerBASIC<NativeFileType
|
|
3
|
+
|
|
4
|
+
def IntegerBASIC.file_system_file_types
|
|
5
|
+
{
|
|
6
|
+
AppleDos=>0x01
|
|
7
|
+
}
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
# Adapted from FID.C -- a utility to browse Apple II .DSK image files by Paul Schlyter (pausch@saaf.se)
|
|
12
|
+
#Integer Basic file format:
|
|
13
|
+
# <Length_of_file> (16-bit little endian)
|
|
14
|
+
# <Line>
|
|
15
|
+
# ......
|
|
16
|
+
# <Line>
|
|
17
|
+
#
|
|
18
|
+
# where <Line> is:
|
|
19
|
+
# 1 byte: Line length
|
|
20
|
+
# 2 bytes: Line number, binary little endian
|
|
21
|
+
# <token>
|
|
22
|
+
# <token>
|
|
23
|
+
# <token>
|
|
24
|
+
# ......
|
|
25
|
+
# <end-of-line token>
|
|
26
|
+
#
|
|
27
|
+
# <token> is one of:
|
|
28
|
+
# $12 - $7F: Tokens as listed below: 1 byte/token
|
|
29
|
+
# $80 - $FF: ASCII characters with high bit set
|
|
30
|
+
# $B0 - $B9: Integer constant, 3 bytes: $B0-$B9,
|
|
31
|
+
# followed by the integer value in
|
|
32
|
+
# 2-byte binary little-endian format
|
|
33
|
+
# (Note: a $B0-$B9 byte preceded by an
|
|
34
|
+
# alphanumeric ASCII(hi_bit_set) byte
|
|
35
|
+
# is not the start of an integer
|
|
36
|
+
# constant, but instead part of a
|
|
37
|
+
# variable name)
|
|
38
|
+
#
|
|
39
|
+
# <end-of-line token> is:
|
|
40
|
+
# $01: One byte having the value $01
|
|
41
|
+
# (Note: a $01 byte may also appear
|
|
42
|
+
# inside an integer constant)
|
|
43
|
+
#
|
|
44
|
+
# Note that the tokens $02 to $11 represent commands which
|
|
45
|
+
# can be executed as direct commands only -- any attempt to
|
|
46
|
+
# enter then into an Integer Basic program will be rejected
|
|
47
|
+
# as a syntax error. Therefore, no Integer Basic program
|
|
48
|
+
# which was entered through the Integer Basic interpreter
|
|
49
|
+
# will contain any of the tokens $02 to $11. The token $00
|
|
50
|
+
# appears to be unused and won't appear in Integer Basic
|
|
51
|
+
# programs either. However, $00 is used as an end-of-line
|
|
52
|
+
# marker in S-C Assembler source files, which also are of
|
|
53
|
+
# DOS file type "I".
|
|
54
|
+
#
|
|
55
|
+
# (note here a difference from Applesoft Basic, where there
|
|
56
|
+
# are no "direct mode only" commands - any Applesoft commands
|
|
57
|
+
# can be entered into an Applesoft program as well).
|
|
58
|
+
def to_listing
|
|
59
|
+
length=contents[0]+contents[1]*256
|
|
60
|
+
index=2
|
|
61
|
+
s=""
|
|
62
|
+
|
|
63
|
+
while (index<length)
|
|
64
|
+
in_REM = false
|
|
65
|
+
in_QUOTE = false
|
|
66
|
+
lead_SP = false
|
|
67
|
+
last_AN = false
|
|
68
|
+
last_TOK = false
|
|
69
|
+
|
|
70
|
+
line_length=contents[index]
|
|
71
|
+
index+=1 #skip over the "line length" field
|
|
72
|
+
line_no=contents[index]+contents[index+1]*256
|
|
73
|
+
index+=2 #skip over the "line number" field
|
|
74
|
+
s+=sprintf("%u ",line_no)
|
|
75
|
+
done_line=false
|
|
76
|
+
while (!done_line)
|
|
77
|
+
lead_SP = lead_SP || last_AN
|
|
78
|
+
b=contents[index]
|
|
79
|
+
if (b >= 0x80 ) then
|
|
80
|
+
if ( !in_REM && !in_QUOTE && !last_AN && (b>= 0xB0 && b <= 0xB9) ) then
|
|
81
|
+
integer = contents[index+1]+contents[index+2]*256
|
|
82
|
+
index+=2
|
|
83
|
+
s+=sprintf( (last_TOK && lead_SP ) ? " %d" : "%d", integer )
|
|
84
|
+
lead_SP = true
|
|
85
|
+
else
|
|
86
|
+
|
|
87
|
+
c = b & 0x7F
|
|
88
|
+
if (!in_REM && !in_QUOTE && last_TOK && lead_SP && is_alnum(c)) then
|
|
89
|
+
s+=" "
|
|
90
|
+
end
|
|
91
|
+
if ( c >= 0x20 ) then
|
|
92
|
+
s+=c.chr
|
|
93
|
+
else
|
|
94
|
+
s+="^"+(c+0x40).chr
|
|
95
|
+
end
|
|
96
|
+
last_AN = is_alnum(c)
|
|
97
|
+
end
|
|
98
|
+
last_TOK =false
|
|
99
|
+
else
|
|
100
|
+
|
|
101
|
+
token = INTEGER_BASIC_TOKENS[b]
|
|
102
|
+
lastchar = token[token.length-1]
|
|
103
|
+
case b
|
|
104
|
+
when IB_REM_TOKEN then in_REM = true
|
|
105
|
+
when IB_QUOTE_START then in_QUOTE = true
|
|
106
|
+
when IB_QUOTE_END then in_QUOTE = false
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
if lead_SP && ( is_alnum(token[0]) ||
|
|
110
|
+
b == IB_UNARY_PLUS ||
|
|
111
|
+
b == IB_UNARY_MINUS ||
|
|
112
|
+
b == IB_QUOTE_START ) then
|
|
113
|
+
s+=" "
|
|
114
|
+
end
|
|
115
|
+
s+=token
|
|
116
|
+
last_AN = false
|
|
117
|
+
lead_SP = is_alnum(lastchar) || lastchar == ')' || lastchar == '\"'
|
|
118
|
+
last_TOK = true
|
|
119
|
+
end
|
|
120
|
+
index+=1
|
|
121
|
+
done_line=(index>length)||(contents[index]==0x01)
|
|
122
|
+
end
|
|
123
|
+
s+="\n"
|
|
124
|
+
index+=1 # skip over "end of line" marker
|
|
125
|
+
end
|
|
126
|
+
s
|
|
127
|
+
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
private
|
|
131
|
+
|
|
132
|
+
IB_REM_TOKEN =0x5D
|
|
133
|
+
IB_UNARY_PLUS = 0x35
|
|
134
|
+
IB_UNARY_MINUS = 0x36
|
|
135
|
+
IB_QUOTE_START = 0x28
|
|
136
|
+
IB_QUOTE_END = 0x29
|
|
137
|
+
INTEGER_BASIC_TOKENS= [
|
|
138
|
+
# $00-$0F
|
|
139
|
+
"HIMEM:","<$01>", "_", " : ",
|
|
140
|
+
"LOAD", "SAVE", "CON", "RUN", # Direct commands
|
|
141
|
+
"RUN", "DEL", ",", "NEW",
|
|
142
|
+
"CLR", "AUTO", ",", "MAN",
|
|
143
|
+
|
|
144
|
+
# $10-$1F
|
|
145
|
+
"HIMEM:","LOMEM:","+", "-", # Binary ops
|
|
146
|
+
"*", "/", "=", "#",
|
|
147
|
+
">=", ">", "<=", "<>",
|
|
148
|
+
"<", "AND", "OR", "MOD",
|
|
149
|
+
|
|
150
|
+
# $20-$2F
|
|
151
|
+
"^", "+", "(", ",",
|
|
152
|
+
"THEN", "THEN", ",", ",",
|
|
153
|
+
"\"", "\"", "(", "!",
|
|
154
|
+
"!", "(", "PEEK", "RND",
|
|
155
|
+
|
|
156
|
+
# $30-$3F
|
|
157
|
+
"SGN", "ABS", "PDL", "RNDX",
|
|
158
|
+
"(", "+", "-", "NOT", # Unary ops
|
|
159
|
+
"(", "=", "#", "LEN(",
|
|
160
|
+
"ASC(", "SCRN(", ",", "(",
|
|
161
|
+
|
|
162
|
+
# $40-$4F
|
|
163
|
+
"$", "$", "(", ",",
|
|
164
|
+
",", ";", ";", ";",
|
|
165
|
+
",", ",", ",", "TEXT", # Statements
|
|
166
|
+
"GR", "CALL", "DIM", "DIM",
|
|
167
|
+
|
|
168
|
+
# $50-$5F
|
|
169
|
+
"TAB", "END", "INPUT", "INPUT",
|
|
170
|
+
"INPUT", "FOR", "=", "TO",
|
|
171
|
+
"STEP", "NEXT", ",", "RETURN",
|
|
172
|
+
"GOSUB", "REM", "LET", "GOTO",
|
|
173
|
+
|
|
174
|
+
# $60-$6F
|
|
175
|
+
"IF", "PRINT", "PRINT", "PRINT",
|
|
176
|
+
"POKE", ",", "COLOR=","PLOT",
|
|
177
|
+
",", "HLIN", ",", "AT",
|
|
178
|
+
"VLIN", ",", "AT", "VTAB",
|
|
179
|
+
|
|
180
|
+
# $70-$7F
|
|
181
|
+
"=", "=", ")", ")",
|
|
182
|
+
"LIST", ",", "LIST", "POP",
|
|
183
|
+
"NODSP", "DSP", "NOTRACE","DSP",
|
|
184
|
+
"DSP", "TRACE", "PR#", "IN#",
|
|
185
|
+
]
|
|
186
|
+
|
|
187
|
+
def is_alnum(c)
|
|
188
|
+
!((c.chr=~/[A-Za-z0-9]/).nil?)
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
# == Author
|
|
195
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
196
|
+
#
|
|
197
|
+
# == Copyright
|
|
198
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
199
|
+
#
|
|
200
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
201
|
+
#a copy of this software and associated documentation files (the
|
|
202
|
+
#"Software"), to deal in the Software without restriction, including
|
|
203
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
204
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
205
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
206
|
+
#the following conditions:
|
|
207
|
+
|
|
208
|
+
# The above copyright notice and this permission notice shall be
|
|
209
|
+
# included in all copies or substantial portions of the Software.
|
|
210
|
+
|
|
211
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
212
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
213
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
214
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
215
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
216
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
217
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
require 'NativeFileType'
|
|
2
|
+
|
|
3
|
+
class NADOLFile<NativeFileType
|
|
4
|
+
|
|
5
|
+
def self.file_system_file_types
|
|
6
|
+
{
|
|
7
|
+
NADOLDos=>:any
|
|
8
|
+
}
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
#NADOL files have always load to $8000
|
|
12
|
+
def self.load_address(contents)
|
|
13
|
+
0x8000
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
#file packed by the NADOL EDITOR application.
|
|
19
|
+
#format is a series of unnumbered lines, where each line has the following format:
|
|
20
|
+
# <Length> (8-bit: including length byte, contents, zero>
|
|
21
|
+
# <Tokens and/or Characters>
|
|
22
|
+
# <Zero byte> ($00, to mark the end of the line)
|
|
23
|
+
# each byte in the line is interpreted as follows:
|
|
24
|
+
# $00 - end of line marker
|
|
25
|
+
# $01 - $64 - NADOL tokens
|
|
26
|
+
# $65 - $70 - ??? unknown
|
|
27
|
+
# $71 - $7f - 1 to F spaces
|
|
28
|
+
# $80 - $FF - ASCII character with high bit set
|
|
29
|
+
class NADOLTokens<NADOLFile
|
|
30
|
+
|
|
31
|
+
NADOL_EDITOR_TOKENS = [
|
|
32
|
+
"?", #00 (so we can use token as an index in to this array)
|
|
33
|
+
"READ(", #01
|
|
34
|
+
"FREE(", #02
|
|
35
|
+
"NOT(", #03
|
|
36
|
+
"LENGTH(", #04
|
|
37
|
+
"PDL(", #05
|
|
38
|
+
"SIZEOF(", #06
|
|
39
|
+
"LSCRN(", #07
|
|
40
|
+
"HSCRN(", #08
|
|
41
|
+
"CHECK(", #09
|
|
42
|
+
"MAKE(", #0a
|
|
43
|
+
"SCREEN(", #0b
|
|
44
|
+
"HEXPACK ",#0c
|
|
45
|
+
"PROCEDURE ",#0d
|
|
46
|
+
"ENDPROC", #0e
|
|
47
|
+
"FUNCTION ",#0f
|
|
48
|
+
"ENDFUNC", #10
|
|
49
|
+
"IF ", #11
|
|
50
|
+
"ELSE", #12
|
|
51
|
+
"ENDIF", #13
|
|
52
|
+
"WHILE ", #14
|
|
53
|
+
"ENDWHILE",#15
|
|
54
|
+
"DEFINE ", #16
|
|
55
|
+
"RESULT=", #17
|
|
56
|
+
"PRINT", #18
|
|
57
|
+
"PRINTHEX",#19
|
|
58
|
+
"PRINTBYTE",#1a
|
|
59
|
+
"LABEL ", #1b
|
|
60
|
+
"GOTO ", #1c
|
|
61
|
+
"INVERSE", #1d
|
|
62
|
+
"NORMAL", #1e
|
|
63
|
+
"FLASH", #1f
|
|
64
|
+
"CASE ", #20
|
|
65
|
+
"GOTOXY(", #21
|
|
66
|
+
"CLEAR", #22
|
|
67
|
+
"NEW", #23
|
|
68
|
+
"HOME", #24
|
|
69
|
+
"CLREOL", #25
|
|
70
|
+
"CLREOP", #26
|
|
71
|
+
"PRBLOCK(",#27
|
|
72
|
+
"STOP", #28
|
|
73
|
+
"COPY(", #29
|
|
74
|
+
"FILL(", #2a
|
|
75
|
+
"MASK(", #2b
|
|
76
|
+
"RSECT(", #2c
|
|
77
|
+
"WSECT(", #2d
|
|
78
|
+
"RBLOCK(", #2e
|
|
79
|
+
"WBLOCK(", #2f
|
|
80
|
+
"WTRACK(", #30
|
|
81
|
+
"WSYNC(", #31
|
|
82
|
+
"RECAL(", #32
|
|
83
|
+
"DISPLAY(",#33
|
|
84
|
+
"RTRACK(", #34
|
|
85
|
+
"RSYNC(", #35
|
|
86
|
+
"BEEP(", #36
|
|
87
|
+
"DISASM(", #37
|
|
88
|
+
"TEXT", #38
|
|
89
|
+
"FORMAT(", #39
|
|
90
|
+
"SETFORMAT(",#3a
|
|
91
|
+
"WORKDRIVE ",#3b
|
|
92
|
+
"INIT ", #3c
|
|
93
|
+
"LOAD ", #3d
|
|
94
|
+
"SAVE ", #3e
|
|
95
|
+
"CATALOG", #3f
|
|
96
|
+
"DELETE ", #40
|
|
97
|
+
"RENAME ", #41
|
|
98
|
+
"PACK ", #42
|
|
99
|
+
"CONVERT(",#43
|
|
100
|
+
"INPUT(", #44
|
|
101
|
+
"LORES", #45
|
|
102
|
+
"PLOT(", #46
|
|
103
|
+
"HLINE(", #47
|
|
104
|
+
"VLINE(", #48
|
|
105
|
+
"COLOR=", #49
|
|
106
|
+
"FIND(", #4a
|
|
107
|
+
"HIRES", #4b
|
|
108
|
+
"HCOLOR=", #4c
|
|
109
|
+
"HPLOT", #4d
|
|
110
|
+
"CALL(", #4e
|
|
111
|
+
"PR#", #4f
|
|
112
|
+
"IN#", #50
|
|
113
|
+
"FILTER(", #51
|
|
114
|
+
"LIST", #52
|
|
115
|
+
"RUN", #53
|
|
116
|
+
"AUXMOVE(",#54
|
|
117
|
+
"LCMOVE(", #55
|
|
118
|
+
"DELAY(", #56
|
|
119
|
+
"INTEGER", #57
|
|
120
|
+
"BYTE", #58
|
|
121
|
+
" AND ", #59
|
|
122
|
+
" OR ", #5a
|
|
123
|
+
" MOD ", #5b
|
|
124
|
+
" XOR ", #5c
|
|
125
|
+
" WITH ", #5d
|
|
126
|
+
" TO ", #5e
|
|
127
|
+
" AT ", #5f
|
|
128
|
+
"TAB(", #60
|
|
129
|
+
"ENDCASE", #61
|
|
130
|
+
"MON:", #62
|
|
131
|
+
"EDIT", #63
|
|
132
|
+
"SAVE@" #64
|
|
133
|
+
]
|
|
134
|
+
|
|
135
|
+
#heuristics are:
|
|
136
|
+
#that each line starts with a line length and ends with a "0"
|
|
137
|
+
is_valid_file_if lambda {
|
|
138
|
+
is_valid=true
|
|
139
|
+
i=0
|
|
140
|
+
while i<contents.length && is_valid
|
|
141
|
+
line_length=contents[i]
|
|
142
|
+
if contents[i+line_length-1]!=0 then
|
|
143
|
+
is_valid=false
|
|
144
|
+
end
|
|
145
|
+
i+=line_length
|
|
146
|
+
end
|
|
147
|
+
is_valid
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
def to_listing
|
|
151
|
+
s=""
|
|
152
|
+
index=0
|
|
153
|
+
while (index<contents.length)
|
|
154
|
+
line_length=contents[index]
|
|
155
|
+
index+=1
|
|
156
|
+
end_of_line=index+line_length-2
|
|
157
|
+
while(index<end_of_line)
|
|
158
|
+
b=contents[index]
|
|
159
|
+
if (b<=0x64) then
|
|
160
|
+
s+=NADOL_EDITOR_TOKENS[b]
|
|
161
|
+
elsif(b>0x70 and b<0x80) then
|
|
162
|
+
s+=" "*(b-0x70)
|
|
163
|
+
elsif(b>=0x80) then
|
|
164
|
+
s+=(b-0x80).chr
|
|
165
|
+
else
|
|
166
|
+
raise sprintf("unknown token %02X at offset %04X",b,index)
|
|
167
|
+
end
|
|
168
|
+
index+=1 #move to next char
|
|
169
|
+
end
|
|
170
|
+
index+=1 #skip over end-of-line marker
|
|
171
|
+
s+="\n"
|
|
172
|
+
end
|
|
173
|
+
s
|
|
174
|
+
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
# == Author
|
|
183
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
184
|
+
#
|
|
185
|
+
# == Copyright
|
|
186
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
187
|
+
#
|
|
188
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
189
|
+
#a copy of this software and associated documentation files (the
|
|
190
|
+
#"Software"), to deal in the Software without restriction, including
|
|
191
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
192
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
193
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
194
|
+
#the following conditions:
|
|
195
|
+
|
|
196
|
+
# The above copyright notice and this permission notice shall be
|
|
197
|
+
# included in all copies or substantial portions of the Software.
|
|
198
|
+
|
|
199
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
200
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
201
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
202
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
203
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
204
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
205
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
require 'NativeFileType'
|
|
2
|
+
|
|
3
|
+
class PascalFile<NativeFileType
|
|
4
|
+
|
|
5
|
+
PASCAL_FILE_TYPES=[:untyped,:xdsk,:code,:text,:info,:data,:graf,:foto,:securedir]
|
|
6
|
+
|
|
7
|
+
def PascalFile.file_system_file_types
|
|
8
|
+
{
|
|
9
|
+
PascalDos=>:any
|
|
10
|
+
}
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def type_description
|
|
14
|
+
"PascalFile:#{PASCAL_FILE_TYPES[file_type]}"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# == Author
|
|
26
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
27
|
+
#
|
|
28
|
+
# == Copyright
|
|
29
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
30
|
+
#
|
|
31
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
32
|
+
#a copy of this software and associated documentation files (the
|
|
33
|
+
#"Software"), to deal in the Software without restriction, including
|
|
34
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
35
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
36
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
37
|
+
#the following conditions:
|
|
38
|
+
|
|
39
|
+
# The above copyright notice and this permission notice shall be
|
|
40
|
+
# included in all copies or substantial portions of the Software.
|
|
41
|
+
|
|
42
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
43
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
44
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
45
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
46
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
47
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
48
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|