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,311 @@
|
|
|
1
|
+
require 'NativeFileType'
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
#the CP/M MBASIC file format is very similar to the MS-DOS BASICA/GWBASIC formats, described at
|
|
5
|
+
#http://www.chebucto.ns.ca/~af380/GW-BASIC-tokens.html
|
|
6
|
+
class MBasic<CPMFile
|
|
7
|
+
|
|
8
|
+
def MBasic.file_system_file_types
|
|
9
|
+
{
|
|
10
|
+
AppleCPM=>"BAS",
|
|
11
|
+
}
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
SINGLE_BYTE_TOKENS={
|
|
16
|
+
0x81=>'END',
|
|
17
|
+
0x82=>'FOR',
|
|
18
|
+
0x83=>'NEXT',
|
|
19
|
+
0x84=>'DATA',
|
|
20
|
+
0x85=>'INPUT',
|
|
21
|
+
0x86=>'DIM',
|
|
22
|
+
0x87=>'READ',
|
|
23
|
+
0x88=>'LET',
|
|
24
|
+
0x89=>'GOTO',
|
|
25
|
+
0x8A=>'RUN',
|
|
26
|
+
0x8B=>'IF',
|
|
27
|
+
0x8C=>'RESTORE',
|
|
28
|
+
0x8D=>'GOSUB',
|
|
29
|
+
0x8E=>'RETURN',
|
|
30
|
+
0x8F=>'REM',
|
|
31
|
+
0x90=>'STOP',
|
|
32
|
+
0x91=>'PRINT',
|
|
33
|
+
0x92=>'CLEAR',
|
|
34
|
+
0x93=>'LIST',
|
|
35
|
+
0x94=>'NEW',
|
|
36
|
+
0x95=>'ON',
|
|
37
|
+
0x96=>'DEF',
|
|
38
|
+
0x97=>'POKE',
|
|
39
|
+
0x98=>'CONT',
|
|
40
|
+
0x9B=>'LPRINT',
|
|
41
|
+
0x9C=>'LLIST',
|
|
42
|
+
0x9D=>'WIDTH',
|
|
43
|
+
0x9E=>'ELSE',
|
|
44
|
+
0x9F=>'TRACE',
|
|
45
|
+
0xA0=>'NOTRACE',
|
|
46
|
+
0xA1=>'SWAP',
|
|
47
|
+
0xA2=>'ERASE',
|
|
48
|
+
0xA3=>'EDIT',
|
|
49
|
+
0xA4=>'ERROR',
|
|
50
|
+
0xA5=>'RESUME',
|
|
51
|
+
0xA6=>'DEL',
|
|
52
|
+
0xA7=>'AUTO',
|
|
53
|
+
0xA8=>'RENUM',
|
|
54
|
+
0xA9=>'DEFSTR',
|
|
55
|
+
0xAA=>'DEFINT',
|
|
56
|
+
0xAB=>'DEFSNG',
|
|
57
|
+
0xAC=>'DEFDBL',
|
|
58
|
+
0xAD=>'LINE',
|
|
59
|
+
0xAE=>'POP',
|
|
60
|
+
0xAF=>'WHILE',
|
|
61
|
+
0xB0=>'WEND',
|
|
62
|
+
0xB1=>'CALL',
|
|
63
|
+
0xB2=>'WRITE',
|
|
64
|
+
0xB3=>'COMMON',
|
|
65
|
+
0xB4=>'CHAIN',
|
|
66
|
+
0xB5=>'OPTION',
|
|
67
|
+
0xB6=>'RANDOMIZE',
|
|
68
|
+
0xB7=>'SYSTEM',
|
|
69
|
+
0xB8=>'OPEN',
|
|
70
|
+
0xB9=>'FIELD',
|
|
71
|
+
0xBA=>'GET',
|
|
72
|
+
0xBB=>'PUT',
|
|
73
|
+
0xBC=>'CLOSE',
|
|
74
|
+
0xBD=>'LOAD',
|
|
75
|
+
0xBE=>'MERGE',
|
|
76
|
+
0xBF=>'FILES',
|
|
77
|
+
0xC0=>'NAME',
|
|
78
|
+
0xC1=>'KILL',
|
|
79
|
+
0xC2=>'LSET',
|
|
80
|
+
0xC3=>'RSET',
|
|
81
|
+
0xC4=>'SAVE',
|
|
82
|
+
0xC5=>'RESET',
|
|
83
|
+
0xC6=>'TEXT',
|
|
84
|
+
0xC7=>'HOME',
|
|
85
|
+
0xC8=>'VTAB',
|
|
86
|
+
0xC9=>'HTAB',
|
|
87
|
+
0xCA=>'INVERSE',
|
|
88
|
+
0xCB=>'NORMAL',
|
|
89
|
+
0xCC=>'GR',
|
|
90
|
+
0xCD=>'COLOR',
|
|
91
|
+
0xCE=>'HLIN',
|
|
92
|
+
0xCF=>'VLIN',
|
|
93
|
+
0xD0=>'PLOT',
|
|
94
|
+
0xD1=>'HGR',
|
|
95
|
+
0xD2=>'HPLOT',
|
|
96
|
+
0xD3=>'HCOLOR',
|
|
97
|
+
0xD4=>'BEEP',
|
|
98
|
+
0xD5=>'WAIT',
|
|
99
|
+
0xDD=>'TO',
|
|
100
|
+
0xDE=>'THEN',
|
|
101
|
+
0xDF=>'TAB(',
|
|
102
|
+
0xE0=>'STEP',
|
|
103
|
+
0xE1=>'USR',
|
|
104
|
+
0xE2=>'FN',
|
|
105
|
+
0xE3=>'SPC(',
|
|
106
|
+
0xE4=>'NOT',
|
|
107
|
+
0xE5=>'ERL',
|
|
108
|
+
0xE6=>'ERR',
|
|
109
|
+
0xE7=>'STRING$',
|
|
110
|
+
0xE8=>'USING',
|
|
111
|
+
0xE9=>'INSTR',
|
|
112
|
+
0xEA=>"'",
|
|
113
|
+
0xEB=>'VARPTR',
|
|
114
|
+
0xEC=>'SCRN',
|
|
115
|
+
0xED=>'HSCRN',
|
|
116
|
+
0xEE=>'INKEY$',
|
|
117
|
+
0xEF=>'>',
|
|
118
|
+
0xF0=>'=',
|
|
119
|
+
0xF1=>'<',
|
|
120
|
+
0xF2=>'+',
|
|
121
|
+
0xF3=>'-',
|
|
122
|
+
0xF4=>'*',
|
|
123
|
+
0xF5=>'/',
|
|
124
|
+
0xF6=>'^',
|
|
125
|
+
0xF7=>'AND',
|
|
126
|
+
0xF8=>'OR',
|
|
127
|
+
0xF9=>'XOR',
|
|
128
|
+
0xFA=>'EQV',
|
|
129
|
+
0xFB=>'IMP',
|
|
130
|
+
0xFC=>'MOD',
|
|
131
|
+
0xFD=>'\\',
|
|
132
|
+
}
|
|
133
|
+
DOUBLE_BYTE_TOKENS={
|
|
134
|
+
0x81=>'LEFT$',
|
|
135
|
+
0x82=>'RIGHT$',
|
|
136
|
+
0x83=>'MID$',
|
|
137
|
+
0x84=>'SGN',
|
|
138
|
+
0x85=>'INT',
|
|
139
|
+
0x87=>'SQR',
|
|
140
|
+
0x88=>'RND',
|
|
141
|
+
0x89=>'SIN',
|
|
142
|
+
0x8A=>'LOG',
|
|
143
|
+
0x8B=>'EXP',
|
|
144
|
+
0x8C=>'COS',
|
|
145
|
+
0x8D=>'TAN',
|
|
146
|
+
0x8E=>'ATN',
|
|
147
|
+
0x8F=>'FRE',
|
|
148
|
+
0x90=>'POS',
|
|
149
|
+
0x91=>'LEN',
|
|
150
|
+
0x92=>'STR$',
|
|
151
|
+
0x93=>'VAL',
|
|
152
|
+
0x94=>'ASC',
|
|
153
|
+
0x95=>'CHR$',
|
|
154
|
+
0x96=>'PEEK',
|
|
155
|
+
0x97=>'SPACE$',
|
|
156
|
+
0x98=>'OCT$',
|
|
157
|
+
0x99=>'HEX$',
|
|
158
|
+
0x9A=>'LPOS',
|
|
159
|
+
0x9B=>'CINT',
|
|
160
|
+
0x9C=>'CSNG',
|
|
161
|
+
0x9D=>'CDBL',
|
|
162
|
+
0x9E=>'FIX',
|
|
163
|
+
0xAA=>'CVI',
|
|
164
|
+
0xAB=>'CVS',
|
|
165
|
+
0xAC=>'CVD',
|
|
166
|
+
0xAE=>'EOF',
|
|
167
|
+
0xAF=>'LOC',
|
|
168
|
+
0xB0=>'LOF',
|
|
169
|
+
0xB1=>'MKI$',
|
|
170
|
+
0xB2=>'MKS$',
|
|
171
|
+
0xB3=>'MKD$',
|
|
172
|
+
0xB4=>'VPOS',
|
|
173
|
+
0xB5=>'PDL',
|
|
174
|
+
0xB6=>'BUTTON',
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
def to_listing
|
|
179
|
+
if @contents[0]==0xFF then
|
|
180
|
+
buffer_as_gbasic(@contents)
|
|
181
|
+
else
|
|
182
|
+
@contents
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
private
|
|
187
|
+
def parse_bytes_as_float(bytes)
|
|
188
|
+
return 0.0 if bytes[0]==0
|
|
189
|
+
exponent=2**(bytes[0]-0x80)
|
|
190
|
+
first_byte=bytes[1]
|
|
191
|
+
sign=-1.0 #assume it's negative
|
|
192
|
+
if first_byte<0x80 then
|
|
193
|
+
sign=1.0
|
|
194
|
+
first_byte+=0x80
|
|
195
|
+
end
|
|
196
|
+
mantissa=(first_byte/256.0)*sign
|
|
197
|
+
2.upto(bytes.length-1) do |i|
|
|
198
|
+
mantissa+=(bytes[i]/(256.0**i))
|
|
199
|
+
end
|
|
200
|
+
return sprintf("%8f",exponent*mantissa).to_f
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
def buffer_as_gbasic(buffer)
|
|
205
|
+
s=""
|
|
206
|
+
p=1
|
|
207
|
+
while(p<buffer.length) && (buffer[p]!=0)
|
|
208
|
+
p+=2 #skip the 2 byte pointer to the start of next line
|
|
209
|
+
line_number=buffer[p]+(buffer[p+1]<<8)
|
|
210
|
+
p+=2
|
|
211
|
+
s+= "#{line_number} "
|
|
212
|
+
while(p<buffer.length) && (buffer[p]!=0)
|
|
213
|
+
c=buffer[p]
|
|
214
|
+
p+=1
|
|
215
|
+
|
|
216
|
+
if (c==0x3A) then #if its a ':'
|
|
217
|
+
|
|
218
|
+
if buffer[p]==0x9E then #ELSE is actually stored as :ELSE
|
|
219
|
+
c=buffer[p]
|
|
220
|
+
p+=1
|
|
221
|
+
end
|
|
222
|
+
if buffer[p]==0x8F then #' is actually stored as :REM'
|
|
223
|
+
c=buffer[p+1]
|
|
224
|
+
p+=2
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
if c<0x20 then
|
|
228
|
+
case (c)
|
|
229
|
+
when 0x0B #OCTAL CONSTANT
|
|
230
|
+
constant=buffer[p]+(buffer[p+1]<<8)
|
|
231
|
+
s+=sprintf("&O%o",constant)
|
|
232
|
+
p+=2
|
|
233
|
+
|
|
234
|
+
when 0x0C #HEX CONSTANT
|
|
235
|
+
constant=buffer[p]+(buffer[p+1]<<8)
|
|
236
|
+
s+=sprintf("&H%X",constant)
|
|
237
|
+
p+=2
|
|
238
|
+
when 0x0E #DECIMAL LINE NUMBER
|
|
239
|
+
constant=buffer[p]+(buffer[p+1]<<8)
|
|
240
|
+
s+=sprintf("%d",constant)
|
|
241
|
+
p+=2
|
|
242
|
+
when 0x0F #one byte constant
|
|
243
|
+
constant=buffer[p]
|
|
244
|
+
s+=sprintf("%d",constant)
|
|
245
|
+
p+=1
|
|
246
|
+
when 0x11..0x1B #packed constant 0..9
|
|
247
|
+
s+=sprintf("%d",c-0x11)
|
|
248
|
+
when 0x1C #DECIMAL LINE NUMBER
|
|
249
|
+
constant=buffer[p]+(buffer[p+1]<<8)
|
|
250
|
+
s+=sprintf("%d",constant)
|
|
251
|
+
p+=2
|
|
252
|
+
when 0x1D #4 byte floating point
|
|
253
|
+
constant=parse_bytes_as_float(buffer[p..p+3].reverse)
|
|
254
|
+
s+=constant.to_s
|
|
255
|
+
p+=4
|
|
256
|
+
when 0x1F #8 byte floating point
|
|
257
|
+
constant=parse_bytes_as_float(buffer[p..p+7].reverse)
|
|
258
|
+
s+=constant.to_s
|
|
259
|
+
p+=8
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
elsif c<0x80 then
|
|
263
|
+
s+=c.chr
|
|
264
|
+
else
|
|
265
|
+
|
|
266
|
+
if c==0xFF then
|
|
267
|
+
|
|
268
|
+
c=buffer[p]
|
|
269
|
+
p+=1
|
|
270
|
+
token=DOUBLE_BYTE_TOKENS[c]
|
|
271
|
+
else
|
|
272
|
+
token=SINGLE_BYTE_TOKENS[c]
|
|
273
|
+
end
|
|
274
|
+
s+=(token.nil?) ? sprintf("[%02X]",c):token
|
|
275
|
+
|
|
276
|
+
end
|
|
277
|
+
end
|
|
278
|
+
s+="\n"
|
|
279
|
+
p+=1
|
|
280
|
+
end
|
|
281
|
+
s
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
# == Author
|
|
289
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
290
|
+
#
|
|
291
|
+
# == Copyright
|
|
292
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
293
|
+
#
|
|
294
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
295
|
+
#a copy of this software and associated documentation files (the
|
|
296
|
+
#"Software"), to deal in the Software without restriction, including
|
|
297
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
298
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
299
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
300
|
+
#the following conditions:
|
|
301
|
+
|
|
302
|
+
# The above copyright notice and this permission notice shall be
|
|
303
|
+
# included in all copies or substantial portions of the Software.
|
|
304
|
+
|
|
305
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
306
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
307
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
308
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
309
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
310
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
311
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
|
2
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
|
3
|
+
|
|
4
|
+
class GenericFile<NativeFileType
|
|
5
|
+
|
|
6
|
+
def self.file_system_file_types
|
|
7
|
+
r={}
|
|
8
|
+
FileSystem.all_file_systems.each { |fs| r[fs]=:any}
|
|
9
|
+
r
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
#needs to be low score, so doesn't override anything else
|
|
13
|
+
def self.matching_score
|
|
14
|
+
0.1
|
|
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,130 @@
|
|
|
1
|
+
require 'NativeFileType'
|
|
2
|
+
|
|
3
|
+
#for breakdown of CMD format, see http://www.tim-mann.org/trs80/doc/ldosq1-4.txt ( Roy's Technical Corner P42)
|
|
4
|
+
#
|
|
5
|
+
# files consist of unordered records.
|
|
6
|
+
# reach record consists of a one byte record type, followed by a 2 byte record length field, followed by a data area (who's length is specified by the 'record length' field
|
|
7
|
+
#
|
|
8
|
+
# TYPE DATA AREA
|
|
9
|
+
# ---- ---------
|
|
10
|
+
# 01 object code (load block)
|
|
11
|
+
# 02 transfer address
|
|
12
|
+
# 04 end of partitioned data set member
|
|
13
|
+
# 05 load module header
|
|
14
|
+
# 06 partitioned data set header
|
|
15
|
+
# 07 patch name header
|
|
16
|
+
# 08 ISAM directory entry
|
|
17
|
+
# 0A end of ISAM directory
|
|
18
|
+
# 0C PDS directory entry
|
|
19
|
+
# 0E end of PDS directory
|
|
20
|
+
# 10 yanked load block
|
|
21
|
+
# 1F copyright block
|
|
22
|
+
|
|
23
|
+
class Trs80Cmd<NativeFileType
|
|
24
|
+
|
|
25
|
+
is_valid_file_if lambda {contents[0].between?(1,0x15)}
|
|
26
|
+
@records=nil
|
|
27
|
+
|
|
28
|
+
def records
|
|
29
|
+
parse_records if @records.nil?
|
|
30
|
+
@records
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
#use the first 'load object code' record as the load address for the whole program
|
|
34
|
+
def load_address
|
|
35
|
+
records.each do |record|
|
|
36
|
+
if record[:record_type]==0x01 then
|
|
37
|
+
data_area=record[:data_area]
|
|
38
|
+
return (data_area[0]+data_area[1]*256)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
0 #if no 'object code' records found, use 0 as the load address
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def self.file_system_file_types
|
|
45
|
+
{
|
|
46
|
+
TrsDos=>:any
|
|
47
|
+
}
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def to_listing
|
|
52
|
+
s=""
|
|
53
|
+
records.each do |record|
|
|
54
|
+
record_type=record[:record_type]
|
|
55
|
+
data_area=record[:data_area]
|
|
56
|
+
record_length=data_area.length
|
|
57
|
+
s+= ";RECORD TYPE $#{"%02X" %record_type} OFFSET $#{"%02X" % p} LENGTH $#{"%2X" % record_length}\n"
|
|
58
|
+
case record_type
|
|
59
|
+
when 0x01 then #load object code
|
|
60
|
+
load_address=data_area[0]+data_area[1]*256
|
|
61
|
+
s+= ";\tLOAD $#{"%02X" % (data_area.length-2)} BYTES OF OBJECT CODE TO $#{"%02X" % load_address}\n"
|
|
62
|
+
when 0x02 then #transfer
|
|
63
|
+
transfer_address=data_area[0]+data_area[1]*256
|
|
64
|
+
s+= ";\tTRANSFER ADDRESS $#{"%02X" % transfer_address}\n"
|
|
65
|
+
when 0x05 then #load module
|
|
66
|
+
s+= ";\tMODULE HEADER #{data_area}\n"
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
s
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
private
|
|
73
|
+
def parse_records
|
|
74
|
+
@records=[]
|
|
75
|
+
p=0
|
|
76
|
+
done=false
|
|
77
|
+
while p<contents.length && !done
|
|
78
|
+
record_type=contents[p]
|
|
79
|
+
if record_type>=0x20 then
|
|
80
|
+
break
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
record_length=contents[p+1]
|
|
84
|
+
record_length=256 if record_length==0
|
|
85
|
+
|
|
86
|
+
#if this is a 'load' record, the following two bytes are the address to load the data record into
|
|
87
|
+
# in order to allow up to 256 bytes to be load, lengths of 1 & 2 really mean lengths of 257 and 258 respecitively.
|
|
88
|
+
if (record_type==0x01) then
|
|
89
|
+
record_length=case record_length
|
|
90
|
+
when 1 then 257
|
|
91
|
+
when 2 then 258
|
|
92
|
+
else record_length
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
data_area=contents[p+2,record_length]
|
|
97
|
+
@records<<{:record_type=>record_type,:data_area=>data_area}
|
|
98
|
+
done=([0x00,0x02].include?(record_type))
|
|
99
|
+
p+=(record_length+2)
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
# == Author
|
|
108
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
109
|
+
#
|
|
110
|
+
# == Copyright
|
|
111
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
112
|
+
#
|
|
113
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
114
|
+
#a copy of this software and associated documentation files (the
|
|
115
|
+
#"Software"), to deal in the Software without restriction, including
|
|
116
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
117
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
118
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
119
|
+
#the following conditions:
|
|
120
|
+
|
|
121
|
+
# The above copyright notice and this permission notice shall be
|
|
122
|
+
# included in all copies or substantial portions of the Software.
|
|
123
|
+
|
|
124
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
125
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
126
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
127
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
128
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
129
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
130
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require 'NativeFileType'
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class Trs80Jcl<NativeFileType
|
|
5
|
+
|
|
6
|
+
def self.file_system_file_types
|
|
7
|
+
{
|
|
8
|
+
TrsDos=>"JCL"
|
|
9
|
+
}
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def to_listing
|
|
13
|
+
contents.gsub("\r","\n")
|
|
14
|
+
end
|
|
15
|
+
|
|
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.
|