ripxplore 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|