ripxplore 0.0.1 → 0.0.2
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 +5 -25
- data/doc/classes/A2Dsk.html +9 -0
- data/doc/classes/A2DskDosOrder.html +9 -0
- data/doc/classes/A2DskPhysicalOrder.html +9 -0
- data/doc/classes/Apple2.html +171 -21
- data/doc/classes/Apple2.src/M000187.html +18 -0
- data/doc/classes/Apple2.src/M000188.html +18 -0
- data/doc/classes/Apple2.src/M000189.html +18 -0
- data/doc/classes/Apple2.src/M000190.html +19 -0
- data/doc/classes/Apple2.src/M000191.html +19 -0
- data/doc/classes/Apple2.src/M000192.html +18 -0
- data/doc/classes/Apple2.src/M000193.html +18 -0
- data/doc/classes/Apple2.src/M000194.html +18 -0
- data/doc/classes/Apple2.src/M000195.html +18 -0
- data/doc/classes/Apple2.src/M000196.html +18 -0
- data/doc/classes/Apple2.src/M000197.html +18 -0
- data/doc/classes/Apple2.src/M000198.html +18 -0
- data/doc/classes/Apple2.src/M000199.html +18 -0
- data/doc/classes/Apple2.src/M000200.html +18 -0
- data/doc/classes/AppleBinary.html +21 -21
- data/doc/classes/AppleBinary.src/M000153.html +20 -0
- data/doc/classes/AppleBinary.src/M000154.html +18 -0
- data/doc/classes/AppleBinary.src/M000155.html +18 -0
- data/doc/classes/AppleBinary.src/M000156.html +18 -0
- data/doc/classes/AppleCPM.html +7 -0
- data/doc/classes/AppleDos.html +7 -0
- data/doc/classes/AppleDosPic.html +186 -0
- data/doc/classes/AppleDosPic.src/M000291.html +20 -0
- data/doc/classes/AppleDosPic.src/M000292.html +18 -0
- data/doc/classes/AppleDosPic.src/M000293.html +18 -0
- data/doc/classes/AppleDosPic.src/M000294.html +18 -0
- data/doc/classes/AppleDosPrintShopMiniPix.html +120 -0
- data/doc/classes/AppleHiResPic.html +43 -43
- data/doc/classes/AppleHiResPic.src/M000147.html +18 -0
- data/doc/classes/AppleHiResPic.src/M000148.html +18 -0
- data/doc/classes/AppleHiResPic.src/M000149.html +53 -0
- data/doc/classes/AppleHiResPic.src/M000150.html +18 -0
- data/doc/classes/AppleHiResPic.src/M000151.html +18 -0
- data/doc/classes/AppleHiResPic.src/M000152.html +18 -0
- data/doc/classes/ApplePrintShopMiniPix.html +204 -0
- data/doc/classes/ApplePrintShopMiniPix.src/M000313.html +38 -0
- data/doc/classes/ApplePrintShopMiniPix.src/M000314.html +18 -0
- data/doc/classes/ApplePrintShopMiniPix.src/M000315.html +18 -0
- data/doc/classes/ApplePrintShopMiniPix.src/M000316.html +18 -0
- data/doc/classes/AppleText.html +32 -10
- data/doc/classes/AppleText.src/M000215.html +21 -0
- data/doc/classes/AppleText.src/M000216.html +20 -0
- data/doc/classes/AppleText.src/M000217.html +23 -0
- data/doc/classes/AppleWorksWP.html +7 -0
- data/doc/classes/Applesoft.html +7 -0
- data/doc/classes/Atari800.html +165 -15
- data/doc/classes/Atari800.src/M000250.html +18 -0
- data/doc/classes/Atari800.src/M000251.html +23 -0
- data/doc/classes/Atari800.src/M000252.html +18 -0
- data/doc/classes/Atari800.src/M000253.html +19 -0
- data/doc/classes/Atari800.src/M000254.html +18 -0
- data/doc/classes/Atari800.src/M000255.html +18 -0
- data/doc/classes/Atari800.src/M000256.html +18 -0
- data/doc/classes/Atari800.src/M000257.html +18 -0
- data/doc/classes/Atari800.src/M000258.html +18 -0
- data/doc/classes/Atari800.src/M000259.html +18 -0
- data/doc/classes/Atari800.src/M000260.html +18 -0
- data/doc/classes/Atari800.src/M000261.html +18 -0
- data/doc/classes/Atari800.src/M000262.html +18 -0
- data/doc/classes/AtariBasic.html +7 -0
- data/doc/classes/AtariBinary.html +9 -2
- data/doc/classes/AtariBinary.src/M000241.html +2 -2
- data/doc/classes/AtariDos.html +7 -0
- data/doc/classes/AtariText.html +17 -10
- data/doc/classes/AtariText.src/M000011.html +20 -0
- data/doc/classes/AtariText.src/M000012.html +18 -0
- data/doc/classes/Atr.html +7 -0
- data/doc/classes/C64.html +175 -25
- data/doc/classes/C64.src/M000043.html +18 -0
- data/doc/classes/C64.src/M000044.html +18 -0
- data/doc/classes/C64.src/M000045.html +31 -0
- data/doc/classes/C64.src/M000046.html +22 -0
- data/doc/classes/C64.src/M000047.html +19 -0
- data/doc/classes/C64.src/M000048.html +19 -0
- data/doc/classes/C64.src/M000049.html +18 -0
- data/doc/classes/C64.src/M000050.html +18 -0
- data/doc/classes/C64.src/M000051.html +18 -0
- data/doc/classes/C64.src/M000052.html +18 -0
- data/doc/classes/C64.src/M000053.html +18 -0
- data/doc/classes/C64.src/M000054.html +18 -0
- data/doc/classes/C64.src/M000055.html +18 -0
- data/doc/classes/C64.src/M000056.html +18 -0
- data/doc/classes/C64.src/M000057.html +18 -0
- data/doc/classes/C64BasicPrg.html +7 -0
- data/doc/classes/C64Prg.html +7 -0
- data/doc/classes/C64PrgText.html +7 -0
- data/doc/classes/C64Seq.html +7 -0
- data/doc/classes/CPMFile.html +7 -0
- data/doc/classes/CacheAndCollections.html +167 -0
- data/doc/classes/CacheAndCollections.src/M000005.html +21 -0
- data/doc/classes/CacheAndCollections.src/M000006.html +26 -0
- data/doc/classes/CacheAndCollections.src/M000007.html +22 -0
- data/doc/classes/CbmDos.html +7 -0
- data/doc/classes/CbmFile.html +7 -0
- data/doc/classes/Coco.html +337 -0
- data/doc/classes/Coco.src/M000095.html +18 -0
- data/doc/classes/Coco.src/M000096.html +18 -0
- data/doc/classes/Coco.src/M000097.html +18 -0
- data/doc/classes/Coco.src/M000098.html +18 -0
- data/doc/classes/Coco.src/M000099.html +18 -0
- data/doc/classes/Coco.src/M000100.html +18 -0
- data/doc/classes/Coco.src/M000101.html +18 -0
- data/doc/classes/Coco.src/M000102.html +18 -0
- data/doc/classes/Coco.src/M000103.html +18 -0
- data/doc/classes/Coco.src/M000104.html +18 -0
- data/doc/classes/Coco.src/M000105.html +18 -0
- data/doc/classes/Coco.src/M000106.html +18 -0
- data/doc/classes/Coco.src/M000107.html +55 -0
- data/doc/classes/CocoBasic.html +178 -0
- data/doc/classes/CocoBasic.src/M000126.html +20 -0
- data/doc/classes/CocoBasic.src/M000127.html +72 -0
- data/doc/classes/CocoMachineLanguage.html +171 -0
- data/doc/classes/CocoMachineLanguage.src/M000008.html +20 -0
- data/doc/classes/CocoMachineLanguage.src/M000009.html +18 -0
- data/doc/classes/CocoMachineLanguage.src/M000010.html +19 -0
- data/doc/classes/CocoScreen.html +191 -0
- data/doc/classes/CocoScreen.src/M000122.html +18 -0
- data/doc/classes/CocoScreen.src/M000123.html +18 -0
- data/doc/classes/CocoScreen.src/M000124.html +18 -0
- data/doc/classes/CocoScreen.src/M000125.html +18 -0
- data/doc/classes/CocoText.html +156 -0
- data/doc/classes/CocoText.src/M000145.html +20 -0
- data/doc/classes/CocoText.src/M000146.html +18 -0
- data/doc/classes/D64.html +7 -0
- data/doc/classes/D65.html +6 -0
- data/doc/classes/DumpUtilities.html +6 -0
- data/doc/classes/FileCache.html +140 -30
- data/doc/classes/FileCache.src/M000201.html +18 -0
- data/doc/classes/FileCache.src/M000202.html +20 -0
- data/doc/classes/FileCache.src/M000203.html +24 -0
- data/doc/classes/FileCache.src/M000204.html +22 -0
- data/doc/classes/FileCache.src/M000205.html +32 -0
- data/doc/classes/FileCache.src/M000206.html +21 -0
- data/doc/classes/FileCache.src/M000207.html +22 -0
- data/doc/classes/FileCache.src/M000208.html +23 -0
- data/doc/classes/FileCache.src/M000209.html +27 -0
- data/doc/classes/FileCache.src/M000210.html +24 -0
- data/doc/classes/FileCache.src/M000211.html +21 -0
- data/doc/classes/FileCacheItem.html +10 -10
- data/doc/classes/FileCacheItem.src/M000235.html +18 -0
- data/doc/classes/FileCacheItem.src/M000236.html +18 -0
- data/doc/classes/FileContainer.html +7 -0
- data/doc/classes/FileSystem.html +41 -41
- data/doc/classes/FileSystem.src/M000134.html +18 -0
- data/doc/classes/FileSystem.src/M000135.html +18 -0
- data/doc/classes/FileSystem.src/M000136.html +18 -0
- data/doc/classes/FileSystem.src/M000137.html +18 -0
- data/doc/classes/FileSystem.src/M000138.html +18 -0
- data/doc/classes/FileSystem.src/M000139.html +18 -0
- data/doc/classes/FileSystem.src/M000140.html +20 -0
- data/doc/classes/FileSystem.src/M000141.html +25 -0
- data/doc/classes/FileSystemImage.html +131 -86
- data/doc/classes/FileSystemImage.src/M000269.html +20 -0
- data/doc/classes/FileSystemImage.src/M000270.html +41 -0
- data/doc/classes/FileSystemImage.src/M000271.html +27 -0
- data/doc/classes/FileSystemImage.src/M000272.html +18 -0
- data/doc/classes/FileSystemImage.src/M000273.html +18 -0
- data/doc/classes/FileSystemImage.src/M000274.html +18 -0
- data/doc/classes/FileSystemImage.src/M000275.html +22 -0
- data/doc/classes/FileSystemImage.src/M000276.html +19 -0
- data/doc/classes/FileSystemImage.src/M000277.html +18 -0
- data/doc/classes/FileSystemImage.src/M000278.html +18 -0
- data/doc/classes/FileSystemImage.src/M000279.html +18 -0
- data/doc/classes/FileSystemImage.src/M000280.html +18 -0
- data/doc/classes/FileSystemImage.src/M000281.html +20 -0
- data/doc/classes/FileSystemImage.src/M000282.html +22 -0
- data/doc/classes/FileSystemImage.src/M000283.html +22 -0
- data/doc/classes/FileSystemImage.src/M000284.html +18 -0
- data/doc/classes/FileSystemImage.src/M000285.html +23 -0
- data/doc/classes/FileSystemImage.src/M000286.html +18 -0
- data/doc/classes/FileSystemImage.src/M000287.html +18 -0
- data/doc/classes/FileSystemImage.src/M000288.html +18 -0
- data/doc/classes/G64.html +7 -0
- data/doc/classes/GenericFile.html +7 -0
- data/doc/classes/GenericGIF.html +193 -0
- data/doc/classes/GenericGIF.src/M000308.html +18 -0
- data/doc/classes/GenericGIF.src/M000309.html +18 -0
- data/doc/classes/GenericGIF.src/M000310.html +18 -0
- data/doc/classes/GenericGIF.src/M000311.html +18 -0
- data/doc/classes/GenericGIF.src/M000312.html +18 -0
- data/doc/classes/HostSystem.html +249 -31
- data/doc/classes/HostSystem.src/M000058.html +18 -0
- data/doc/classes/HostSystem.src/M000059.html +22 -0
- data/doc/classes/HostSystem.src/M000060.html +18 -0
- data/doc/classes/HostSystem.src/M000061.html +18 -0
- data/doc/classes/HostSystem.src/M000062.html +22 -0
- data/doc/classes/HostSystem.src/M000063.html +33 -0
- data/doc/classes/HostSystem.src/M000064.html +18 -0
- data/doc/classes/HostSystem.src/M000065.html +19 -0
- data/doc/classes/HostSystem.src/M000066.html +18 -0
- data/doc/classes/HostSystem.src/M000067.html +18 -0
- data/doc/classes/HostSystem.src/M000068.html +18 -0
- data/doc/classes/HostSystem.src/M000069.html +18 -0
- data/doc/classes/HostSystem.src/M000070.html +18 -0
- data/doc/classes/HostSystem.src/M000071.html +18 -0
- data/doc/classes/HostSystem.src/M000072.html +18 -0
- data/doc/classes/HostSystem.src/M000073.html +18 -0
- data/doc/classes/HostSystem.src/M000074.html +29 -0
- data/doc/classes/HostSystem.src/M000075.html +18 -0
- data/doc/classes/ImageFormat.html +85 -85
- data/doc/classes/ImageFormat.src/M000218.html +18 -0
- data/doc/classes/ImageFormat.src/M000219.html +18 -0
- data/doc/classes/ImageFormat.src/M000220.html +18 -0
- data/doc/classes/ImageFormat.src/M000221.html +18 -0
- data/doc/classes/ImageFormat.src/M000222.html +18 -0
- data/doc/classes/ImageFormat.src/M000223.html +22 -0
- data/doc/classes/ImageFormat.src/M000224.html +19 -0
- data/doc/classes/ImageFormat.src/M000225.html +18 -0
- data/doc/classes/ImageFormat.src/M000226.html +18 -0
- data/doc/classes/ImageFormat.src/M000227.html +18 -0
- data/doc/classes/ImageFormat.src/M000228.html +18 -0
- data/doc/classes/ImageFormat.src/M000229.html +18 -0
- data/doc/classes/ImageFormat.src/M000230.html +18 -0
- data/doc/classes/ImageFormat.src/M000231.html +18 -0
- data/doc/classes/ImageFormat.src/M000232.html +20 -0
- data/doc/classes/ImageFormat.src/M000233.html +26 -0
- data/doc/classes/ImageFormat.src/M000234.html +18 -0
- data/doc/classes/ImageSniffing.html +94 -14
- data/doc/classes/ImageSniffing.src/M000052.html +2 -2
- data/doc/classes/ImageSniffing.src/M000109.html +102 -0
- data/doc/classes/ImageSniffing.src/M000110.html +36 -0
- data/doc/classes/ImageSniffing.src/M000111.html +43 -0
- data/doc/classes/ImageSniffing.src/M000112.html +46 -0
- data/doc/classes/ImageSniffing.src/M000113.html +59 -0
- data/doc/classes/ImageSniffing.src/M000114.html +74 -0
- data/doc/classes/IntegerBASIC.html +7 -0
- data/doc/classes/JvcDsk.html +231 -0
- data/doc/classes/JvcDsk.src/M000263.html +18 -0
- data/doc/classes/JvcDsk.src/M000264.html +39 -0
- data/doc/classes/JvcDsk.src/M000265.html +18 -0
- data/doc/classes/JvcDsk.src/M000266.html +18 -0
- data/doc/classes/JvcDsk.src/M000267.html +18 -0
- data/doc/classes/JvcDsk.src/M000268.html +22 -0
- data/doc/classes/MBasic.html +7 -0
- data/doc/classes/NADOLDos.html +7 -0
- data/doc/classes/NADOLFile.html +8 -0
- data/doc/classes/NADOLPic.html +156 -0
- data/doc/classes/NADOLPic.src/M000289.html +20 -0
- data/doc/classes/NADOLPic.src/M000290.html +18 -0
- data/doc/classes/NADOLTokens.html +8 -0
- data/doc/classes/NativeFileType.html +91 -91
- data/doc/classes/NativeFileType.src/M000169.html +22 -0
- data/doc/classes/NativeFileType.src/M000170.html +18 -0
- data/doc/classes/NativeFileType.src/M000171.html +18 -0
- data/doc/classes/NativeFileType.src/M000172.html +18 -0
- data/doc/classes/NativeFileType.src/M000173.html +18 -0
- data/doc/classes/NativeFileType.src/M000174.html +18 -0
- data/doc/classes/NativeFileType.src/M000175.html +18 -0
- data/doc/classes/NativeFileType.src/M000176.html +23 -0
- data/doc/classes/NativeFileType.src/M000177.html +18 -0
- data/doc/classes/NativeFileType.src/M000178.html +18 -0
- data/doc/classes/NativeFileType.src/M000179.html +24 -0
- data/doc/classes/NativeFileType.src/M000180.html +41 -0
- data/doc/classes/NativeFileType.src/M000181.html +24 -0
- data/doc/classes/NativeFileType.src/M000182.html +18 -0
- data/doc/classes/NativeFileType.src/M000183.html +18 -0
- data/doc/classes/NativeFileType.src/M000184.html +18 -0
- data/doc/classes/NativeFileType.src/M000185.html +20 -0
- data/doc/classes/NativeFileType.src/M000186.html +27 -0
- data/doc/classes/PNG/Canvas.html +7 -0
- data/doc/classes/PNG/Color.html +7 -0
- data/doc/classes/PNG.html +7 -0
- data/doc/classes/PackedAppleDosPic.html +145 -0
- data/doc/classes/PackedAppleDosPic.src/M000128.html +59 -0
- data/doc/classes/PascalDos.html +7 -0
- data/doc/classes/PascalFile.html +7 -0
- data/doc/classes/PascalPic.html +156 -0
- data/doc/classes/PascalPic.src/M000240.html +20 -0
- data/doc/classes/PascalPic.src/M000241.html +18 -0
- data/doc/classes/Pc99DD.html +250 -0
- data/doc/classes/Pc99DD.src/M000035.html +18 -0
- data/doc/classes/Pc99DD.src/M000036.html +18 -0
- data/doc/classes/Pc99DD.src/M000037.html +18 -0
- data/doc/classes/Pc99DD.src/M000038.html +18 -0
- data/doc/classes/Pc99DD.src/M000039.html +18 -0
- data/doc/classes/Pc99DD.src/M000040.html +18 -0
- data/doc/classes/Pc99DD.src/M000041.html +18 -0
- data/doc/classes/Pc99DD.src/M000042.html +18 -0
- data/doc/classes/Pc99Dsk.html +120 -0
- data/doc/classes/Pc99SD.html +250 -0
- data/doc/classes/Pc99SD.src/M000242.html +18 -0
- data/doc/classes/Pc99SD.src/M000243.html +18 -0
- data/doc/classes/Pc99SD.src/M000244.html +18 -0
- data/doc/classes/Pc99SD.src/M000245.html +18 -0
- data/doc/classes/Pc99SD.src/M000246.html +18 -0
- data/doc/classes/Pc99SD.src/M000247.html +18 -0
- data/doc/classes/Pc99SD.src/M000248.html +18 -0
- data/doc/classes/Pc99SD.src/M000249.html +18 -0
- data/doc/classes/ProDos.html +25 -12
- data/doc/classes/ProDos.src/M000161.html +18 -0
- data/doc/classes/ProDos.src/M000162.html +22 -0
- data/doc/classes/ProDosBinPic.html +171 -0
- data/doc/classes/ProDosBinPic.src/M000237.html +20 -0
- data/doc/classes/ProDosBinPic.src/M000238.html +18 -0
- data/doc/classes/ProDosBinPic.src/M000239.html +18 -0
- data/doc/classes/ProDosFile.html +16 -16
- data/doc/classes/ProDosFile.src/M000032.html +20 -0
- data/doc/classes/ProDosFile.src/M000033.html +18 -0
- data/doc/classes/ProDosFile.src/M000034.html +19 -0
- data/doc/classes/ProDosPrintShopMiniPix.html +149 -0
- data/doc/classes/ProDosPrintShopMiniPix.src/M000013.html +18 -0
- data/doc/classes/Proc.html +7 -0
- data/doc/classes/ProcSource.html +6 -0
- data/doc/classes/RDoc.html +6 -0
- data/doc/classes/RawDisk.html +11 -11
- data/doc/classes/RawDisk.src/M000159.html +18 -0
- data/doc/classes/RawDisk.src/M000160.html +23 -0
- data/doc/classes/RipXplore.html +1 -1
- data/doc/classes/RipXploreLog.html +6 -0
- data/doc/classes/RsDos.html +229 -0
- data/doc/classes/RsDos.src/M000023.html +18 -0
- data/doc/classes/RsDos.src/M000024.html +18 -0
- data/doc/classes/RsDos.src/M000025.html +18 -0
- data/doc/classes/RsDos.src/M000026.html +62 -0
- data/doc/classes/ScAsm.html +7 -0
- data/doc/classes/ScreenDump.html +131 -0
- data/doc/classes/ScreenDump.src/M000307.html +24 -0
- data/doc/classes/ScreenDumps.html +180 -0
- data/doc/classes/ScreenDumps.src/M000027.html +22 -0
- data/doc/classes/ScreenDumps.src/M000028.html +24 -0
- data/doc/classes/ScreenDumps.src/M000029.html +30 -0
- data/doc/classes/SubclassTracking.html +6 -0
- data/doc/classes/TestFileCache.html +7 -0
- data/doc/classes/Ti99.html +304 -0
- data/doc/classes/Ti99.src/M000295.html +18 -0
- data/doc/classes/Ti99.src/M000296.html +18 -0
- data/doc/classes/Ti99.src/M000297.html +18 -0
- data/doc/classes/Ti99.src/M000298.html +18 -0
- data/doc/classes/Ti99.src/M000299.html +18 -0
- data/doc/classes/Ti99.src/M000300.html +18 -0
- data/doc/classes/Ti99.src/M000301.html +18 -0
- data/doc/classes/Ti99.src/M000302.html +18 -0
- data/doc/classes/Ti99.src/M000303.html +18 -0
- data/doc/classes/Ti99.src/M000304.html +18 -0
- data/doc/classes/Ti99.src/M000305.html +18 -0
- data/doc/classes/Ti99.src/M000306.html +18 -0
- data/doc/classes/Ti99BasicFile.html +161 -0
- data/doc/classes/Ti99BasicFile.src/M000108.html +72 -0
- data/doc/classes/Ti99Dsk.html +276 -0
- data/doc/classes/Ti99Dsk.src/M000014.html +18 -0
- data/doc/classes/Ti99Dsk.src/M000015.html +18 -0
- data/doc/classes/Ti99Dsk.src/M000016.html +18 -0
- data/doc/classes/Ti99Dsk.src/M000017.html +18 -0
- data/doc/classes/Ti99Dsk.src/M000018.html +18 -0
- data/doc/classes/Ti99Dsk.src/M000019.html +22 -0
- data/doc/classes/Ti99Dsk.src/M000020.html +22 -0
- data/doc/classes/Ti99Dsk.src/M000021.html +22 -0
- data/doc/classes/Ti99Dsk.src/M000022.html +27 -0
- data/doc/classes/Ti99File.html +156 -0
- data/doc/classes/Ti99File.src/M000167.html +20 -0
- data/doc/classes/Ti99File.src/M000168.html +18 -0
- data/doc/classes/Ti99Fms.html +163 -0
- data/doc/classes/Ti99Fms.src/M000157.html +18 -0
- data/doc/classes/Ti99Fms.src/M000158.html +77 -0
- data/doc/classes/Ti99TextFile.html +154 -0
- data/doc/classes/Ti99TextFile.src/M000030.html +33 -0
- data/doc/classes/Ti99TextFile.src/M000031.html +18 -0
- data/doc/classes/TiArtistColours.html +113 -0
- data/doc/classes/TiArtistPattern.html +209 -0
- data/doc/classes/TiArtistPattern.src/M000080.html +50 -0
- data/doc/classes/TiArtistPattern.src/M000081.html +18 -0
- data/doc/classes/TiArtistPattern.src/M000082.html +18 -0
- data/doc/classes/TiArtistPattern.src/M000083.html +18 -0
- data/doc/classes/TiRLE.html +197 -0
- data/doc/classes/TiRLE.src/M000118.html +22 -0
- data/doc/classes/TiRLE.src/M000119.html +22 -0
- data/doc/classes/TiRLE.src/M000120.html +43 -0
- data/doc/classes/TiRLE.src/M000121.html +18 -0
- data/doc/classes/Trs80.html +145 -13
- data/doc/classes/Trs80.src/M000084.html +18 -0
- data/doc/classes/Trs80.src/M000085.html +18 -0
- data/doc/classes/Trs80.src/M000086.html +18 -0
- data/doc/classes/Trs80.src/M000087.html +18 -0
- data/doc/classes/Trs80.src/M000088.html +18 -0
- data/doc/classes/Trs80.src/M000089.html +18 -0
- data/doc/classes/Trs80.src/M000090.html +18 -0
- data/doc/classes/Trs80.src/M000091.html +18 -0
- data/doc/classes/Trs80.src/M000092.html +18 -0
- data/doc/classes/Trs80.src/M000093.html +18 -0
- data/doc/classes/Trs80.src/M000094.html +18 -0
- data/doc/classes/Trs80BasicListing.html +174 -0
- data/doc/classes/Trs80BasicListing.src/M000212.html +20 -0
- data/doc/classes/Trs80BasicListing.src/M000213.html +18 -0
- data/doc/classes/Trs80BasicListing.src/M000214.html +18 -0
- data/doc/classes/Trs80Cmd.html +20 -20
- data/doc/classes/Trs80Cmd.src/M000163.html +19 -0
- data/doc/classes/Trs80Cmd.src/M000164.html +24 -0
- data/doc/classes/Trs80Cmd.src/M000165.html +20 -0
- data/doc/classes/Trs80Cmd.src/M000166.html +35 -0
- data/doc/classes/Trs80Jcl.html +7 -0
- data/doc/classes/Trs80Jv1Dsk.html +25 -25
- data/doc/classes/Trs80Jv1Dsk.src/M000129.html +18 -0
- data/doc/classes/Trs80Jv1Dsk.src/M000130.html +18 -0
- data/doc/classes/Trs80Jv1Dsk.src/M000131.html +18 -0
- data/doc/classes/Trs80Jv1Dsk.src/M000132.html +18 -0
- data/doc/classes/Trs80Jv1Dsk.src/M000133.html +21 -0
- data/doc/classes/Trs80LevelIIBasic.html +28 -10
- data/doc/classes/Trs80LevelIIBasic.src/M000142.html +20 -0
- data/doc/classes/Trs80LevelIIBasic.src/M000143.html +18 -0
- data/doc/classes/Trs80LevelIIBasic.src/M000144.html +43 -0
- data/doc/classes/Trs80PascalSource.html +7 -0
- data/doc/classes/Trs80Text.html +181 -0
- data/doc/classes/Trs80Text.src/M000115.html +20 -0
- data/doc/classes/Trs80Text.src/M000116.html +18 -0
- data/doc/classes/Trs80Text.src/M000117.html +18 -0
- data/doc/classes/TrsDos.html +24 -22
- data/doc/classes/TrsDos.src/M000076.html +18 -0
- data/doc/classes/TrsDos.src/M000077.html +18 -0
- data/doc/classes/TrsDos.src/M000078.html +18 -0
- data/doc/classes/TrsDos.src/M000079.html +64 -0
- data/doc/classes/V9T9Dsk.html +120 -0
- data/doc/created.rid +1 -1
- data/doc/dot/f_0.dot +14 -0
- data/doc/dot/f_0.png +0 -0
- data/doc/dot/f_1.dot +23 -0
- data/doc/dot/f_1.png +0 -0
- data/doc/dot/f_10.dot +32 -0
- data/doc/dot/f_10.png +0 -0
- data/doc/dot/f_11.dot +32 -0
- data/doc/dot/f_11.png +0 -0
- data/doc/dot/f_12.dot +32 -0
- data/doc/dot/f_12.png +0 -0
- data/doc/dot/f_13.dot +32 -0
- data/doc/dot/f_13.png +0 -0
- data/doc/dot/f_14.dot +32 -0
- data/doc/dot/f_14.png +0 -0
- data/doc/dot/f_15.dot +32 -0
- data/doc/dot/f_15.png +0 -0
- data/doc/dot/f_16.dot +23 -0
- data/doc/dot/f_16.png +0 -0
- data/doc/dot/f_17.dot +32 -0
- data/doc/dot/f_17.png +0 -0
- data/doc/dot/f_18.dot +32 -0
- data/doc/dot/f_18.png +0 -0
- data/doc/dot/f_19.dot +32 -0
- data/doc/dot/f_19.png +0 -0
- data/doc/dot/f_2.dot +23 -0
- data/doc/dot/f_2.png +0 -0
- data/doc/dot/f_20.dot +32 -0
- data/doc/dot/f_20.png +0 -0
- data/doc/dot/f_21.dot +23 -0
- data/doc/dot/f_21.png +0 -0
- data/doc/dot/f_22.dot +58 -0
- data/doc/dot/f_22.png +0 -0
- data/doc/dot/f_23.dot +32 -0
- data/doc/dot/f_23.png +0 -0
- data/doc/dot/f_24.dot +32 -0
- data/doc/dot/f_24.png +0 -0
- data/doc/dot/f_25.dot +32 -0
- data/doc/dot/f_25.png +0 -0
- data/doc/dot/f_26.dot +32 -0
- data/doc/dot/f_26.png +0 -0
- data/doc/dot/f_27.dot +23 -0
- data/doc/dot/f_27.png +0 -0
- data/doc/dot/f_28.dot +32 -0
- data/doc/dot/f_28.png +0 -0
- data/doc/dot/f_29.dot +32 -0
- data/doc/dot/f_29.png +0 -0
- data/doc/dot/f_3.dot +41 -0
- data/doc/dot/f_3.png +0 -0
- data/doc/dot/f_30.dot +32 -0
- data/doc/dot/f_30.png +0 -0
- data/doc/dot/f_31.dot +32 -0
- data/doc/dot/f_31.png +0 -0
- data/doc/dot/f_32.dot +32 -0
- data/doc/dot/f_32.png +0 -0
- data/doc/dot/f_33.dot +32 -0
- data/doc/dot/f_33.png +0 -0
- data/doc/dot/f_34.dot +45 -0
- data/doc/dot/f_34.png +0 -0
- data/doc/dot/f_35.dot +32 -0
- data/doc/dot/f_35.png +0 -0
- data/doc/dot/f_36.dot +32 -0
- data/doc/dot/f_36.png +0 -0
- data/doc/dot/f_37.dot +32 -0
- data/doc/dot/f_37.png +0 -0
- data/doc/dot/f_38.dot +32 -0
- data/doc/dot/f_38.png +0 -0
- data/doc/dot/f_39.dot +32 -0
- data/doc/dot/f_39.png +0 -0
- data/doc/dot/f_4.dot +32 -0
- data/doc/dot/f_4.png +0 -0
- data/doc/dot/f_40.dot +32 -0
- data/doc/dot/f_40.png +0 -0
- data/doc/dot/f_41.dot +32 -0
- data/doc/dot/f_41.png +0 -0
- data/doc/dot/f_42.dot +32 -0
- data/doc/dot/f_42.png +0 -0
- data/doc/dot/f_43.dot +32 -0
- data/doc/dot/f_43.png +0 -0
- data/doc/dot/f_44.dot +32 -0
- data/doc/dot/f_44.png +0 -0
- data/doc/dot/f_45.dot +32 -0
- data/doc/dot/f_45.png +0 -0
- data/doc/dot/f_46.dot +32 -0
- data/doc/dot/f_46.png +0 -0
- data/doc/dot/f_47.dot +32 -0
- data/doc/dot/f_47.png +0 -0
- data/doc/dot/f_48.dot +32 -0
- data/doc/dot/f_48.png +0 -0
- data/doc/dot/f_49.dot +32 -0
- data/doc/dot/f_49.png +0 -0
- data/doc/dot/f_5.dot +23 -0
- data/doc/dot/f_5.png +0 -0
- data/doc/dot/f_50.dot +32 -0
- data/doc/dot/f_50.png +0 -0
- data/doc/dot/f_51.dot +32 -0
- data/doc/dot/f_51.png +0 -0
- data/doc/dot/f_52.dot +32 -0
- data/doc/dot/f_52.png +0 -0
- data/doc/dot/f_53.dot +32 -0
- data/doc/dot/f_53.png +0 -0
- data/doc/dot/f_54.dot +39 -0
- data/doc/dot/f_54.png +0 -0
- data/doc/dot/f_55.dot +30 -0
- data/doc/dot/f_55.png +0 -0
- data/doc/dot/f_56.dot +23 -0
- data/doc/dot/f_56.png +0 -0
- data/doc/dot/f_57.dot +23 -0
- data/doc/dot/f_57.png +0 -0
- data/doc/dot/f_58.dot +30 -0
- data/doc/dot/f_58.png +0 -0
- data/doc/dot/f_59.dot +32 -0
- data/doc/dot/f_59.png +0 -0
- data/doc/dot/f_6.dot +23 -0
- data/doc/dot/f_6.png +0 -0
- data/doc/dot/f_60.dot +32 -0
- data/doc/dot/f_60.png +0 -0
- data/doc/dot/f_7.dot +32 -0
- data/doc/dot/f_7.png +0 -0
- data/doc/dot/f_8.dot +32 -0
- data/doc/dot/f_8.png +0 -0
- data/doc/dot/f_9.dot +32 -0
- data/doc/dot/f_9.png +0 -0
- data/doc/dot/m_54_0.dot +30 -0
- data/doc/dot/m_54_0.png +0 -0
- data/doc/files/bin/ripxplore_rb.html +4 -4
- data/doc/files/lib/DumpUtilities_rb.html +6 -0
- data/doc/files/lib/FileCache_rb.html +3 -2
- data/doc/files/lib/FileContainer_rb.html +7 -0
- data/doc/files/lib/FileSystemImage_rb.html +2 -2
- data/doc/files/lib/FileSystem_rb.html +4 -4
- data/doc/files/lib/HostSystem_rb.html +4 -3
- data/doc/files/lib/ImageFormat_rb.html +3 -3
- data/doc/files/lib/NativeFileType_rb.html +3 -3
- data/doc/files/lib/PatchedPNG_rb.html +7 -0
- data/doc/files/lib/RipXploreLog_rb.html +6 -0
- data/doc/files/lib/RipXplore_rb.html +1 -1
- data/doc/files/lib/SubclassTracking_rb.html +6 -0
- data/doc/files/lib/disassemblers/D65_rb.html +6 -0
- data/doc/files/lib/file_systems/AppleCPM_rb.html +7 -0
- data/doc/files/lib/file_systems/AppleDos_rb.html +7 -0
- data/doc/files/lib/file_systems/AtariDos_rb.html +7 -0
- data/doc/files/lib/file_systems/CbmDos_rb.html +7 -0
- data/doc/files/lib/file_systems/NADOLDos_rb.html +7 -0
- data/doc/files/lib/file_systems/PascalDos_rb.html +7 -0
- data/doc/files/lib/file_systems/ProDos_rb.html +1 -1
- data/doc/files/lib/file_systems/RawDisk_rb.html +1 -1
- data/doc/files/lib/file_systems/RsDos_rb.html +108 -0
- data/doc/files/lib/file_systems/Ti99Fms_rb.html +108 -0
- data/doc/files/lib/file_systems/TrsDos_rb.html +1 -1
- data/doc/files/lib/host_systems/Apple2_rb.html +2 -2
- data/doc/files/lib/host_systems/Atari800_rb.html +2 -2
- data/doc/files/lib/host_systems/C64_rb.html +2 -2
- data/doc/files/lib/host_systems/Coco_rb.html +108 -0
- data/doc/files/lib/host_systems/Ti99_rb.html +108 -0
- data/doc/files/lib/host_systems/Trs80_rb.html +1 -1
- data/doc/files/lib/image_formats/A2Dsk_rb.html +9 -0
- data/doc/files/lib/image_formats/Atr_rb.html +7 -0
- data/doc/files/lib/image_formats/D64_rb.html +7 -0
- data/doc/files/lib/image_formats/G64_rb.html +7 -0
- data/doc/files/lib/image_formats/JvcDsk_rb.html +108 -0
- data/doc/files/lib/image_formats/Ti99Dsk_rb.html +134 -0
- data/doc/files/lib/image_formats/Ti99Dsk_rb.src/M000001.html +18 -0
- data/doc/files/lib/image_formats/Trs80Jv1Dsk_rb.html +1 -1
- data/doc/files/lib/native_file_types/apple2/AppleBinary_rb.html +1 -1
- data/doc/files/lib/native_file_types/apple2/AppleHiResPic_rb.html +1 -1
- data/doc/files/lib/native_file_types/apple2/ApplePrintShopMiniPix_rb.html +109 -0
- data/doc/files/lib/native_file_types/apple2/AppleText_rb.html +2 -1
- data/doc/files/lib/native_file_types/apple2/AppleWorksWP_rb.html +7 -0
- data/doc/files/lib/native_file_types/apple2/Applesoft_rb.html +7 -0
- data/doc/files/lib/native_file_types/apple2/IntegerBASIC_rb.html +7 -0
- data/doc/files/lib/native_file_types/apple2/NADOLFile_rb.html +8 -0
- data/doc/files/lib/native_file_types/apple2/PackedAppleDosPic_rb.html +101 -0
- data/doc/files/lib/native_file_types/apple2/PascalFile_rb.html +7 -0
- data/doc/files/lib/native_file_types/apple2/ProDosFile_rb.html +1 -1
- data/doc/files/lib/native_file_types/apple2/ScAsm_rb.html +7 -0
- data/doc/files/lib/native_file_types/atari800/AtariBasic_rb.html +7 -0
- data/doc/files/lib/native_file_types/atari800/AtariBinary_rb.html +8 -1
- data/doc/files/lib/native_file_types/atari800/AtariText_rb.html +2 -1
- data/doc/files/lib/native_file_types/c64/C64BasicPrg_rb.html +7 -0
- data/doc/files/lib/native_file_types/c64/C64PrgText_rb.html +7 -0
- data/doc/files/lib/native_file_types/c64/C64Prg_rb.html +7 -0
- data/doc/files/lib/native_file_types/c64/C64Seq_rb.html +7 -0
- data/doc/files/lib/native_file_types/c64/CbmFile_rb.html +7 -0
- data/doc/files/lib/native_file_types/coco/CocoBasic_rb.html +108 -0
- data/doc/files/lib/native_file_types/coco/CocoMachineLanguage_rb.html +108 -0
- data/doc/files/lib/native_file_types/coco/CocoScreen_rb.html +108 -0
- data/doc/files/lib/native_file_types/coco/CocoText_rb.html +108 -0
- data/doc/files/lib/native_file_types/cpm/CPMFile_rb.html +7 -0
- data/doc/files/lib/native_file_types/cpm/MBasic_rb.html +7 -0
- data/doc/files/lib/native_file_types/generic/GenericFile_rb.html +7 -0
- data/doc/files/lib/native_file_types/generic/GenericGIF_rb.html +101 -0
- data/doc/files/lib/native_file_types/generic/ScreenDump_rb.html +101 -0
- data/doc/files/lib/native_file_types/ti99/Ti99BasicFile_rb.html +108 -0
- data/doc/files/lib/native_file_types/ti99/Ti99File_rb.html +108 -0
- data/doc/files/lib/native_file_types/ti99/Ti99TextFile_rb.html +108 -0
- data/doc/files/lib/native_file_types/ti99/TiArtistColours_rb.html +108 -0
- data/doc/files/lib/native_file_types/ti99/TiArtistPattern_rb.html +109 -0
- data/doc/files/lib/native_file_types/ti99/TiRLE_rb.html +109 -0
- data/doc/files/lib/native_file_types/trs80/Trs80BasicListing_rb.html +108 -0
- data/doc/files/lib/native_file_types/trs80/Trs80Cmd_rb.html +1 -1
- data/doc/files/lib/native_file_types/trs80/Trs80Jcl_rb.html +7 -0
- data/doc/files/lib/native_file_types/trs80/Trs80LevelIIBasic_rb.html +1 -1
- data/doc/files/lib/native_file_types/trs80/Trs80PascalSource_rb.html +7 -0
- data/doc/files/lib/native_file_types/trs80/Trs80Text_rb.html +108 -0
- data/doc/files/lib/proc_source_rb.html +7 -0
- data/doc/files/lib/rdoc_patch_rb.html +6 -0
- data/doc/files/test/tc_apple_2_rb.html +108 -0
- data/doc/files/test/tc_atari_800_rb.html +108 -0
- data/doc/files/test/tc_c64_rb.html +108 -0
- data/doc/files/test/tc_cache_and_collections_rb.html +108 -0
- data/doc/files/test/tc_coco_rb.html +108 -0
- data/doc/files/test/tc_file_cache_rb.html +7 -0
- data/doc/files/test/tc_image_sniffing_rb.html +8 -1
- data/doc/files/test/tc_screen_dumps_rb.html +108 -0
- data/doc/files/test/tc_ti99_rb.html +108 -0
- data/doc/files/test/tc_trs80_rb.html +108 -0
- data/doc/files/test/testhelper_rb.html +57 -1
- data/doc/files/test/testhelper_rb.src/M000002.html +21 -0
- data/doc/files/test/testhelper_rb.src/M000003.html +18 -0
- data/doc/files/test/testhelper_rb.src/M000004.html +61 -0
- data/doc/files/test/ts_test_all_rb.html +5 -0
- data/doc/files/website/index_rb.html +107 -0
- data/lib/FileCache.rb +80 -13
- data/lib/FileSystem.rb +1 -1
- data/lib/FileSystemImage.rb +16 -2
- data/lib/HostSystem.rb +124 -1
- data/lib/NativeFileType.rb +11 -1
- data/lib/RipXplore.rb +2 -2
- data/lib/file_systems/ProDos.rb +1 -0
- data/lib/file_systems/RawDisk.rb +7 -2
- data/lib/file_systems/RsDos.rb +146 -0
- data/lib/file_systems/Ti99Fms.rb +123 -0
- data/lib/file_systems/TrsDos.rb +8 -5
- data/lib/host_systems/Apple2.rb +53 -9
- data/lib/host_systems/Atari800.rb +40 -1
- data/lib/host_systems/C64.rb +42 -1
- data/lib/host_systems/Coco.rb +145 -0
- data/lib/host_systems/TRS81-3.FNT +0 -0
- data/lib/host_systems/Ti99.rb +86 -0
- data/lib/host_systems/Trs80.rb +40 -5
- data/lib/host_systems/apple_2_font.bin +0 -0
- data/lib/host_systems/atari-800-font.bin +0 -0
- data/lib/host_systems/c64-font.bin +0 -0
- data/lib/host_systems/coco-font.bin +0 -0
- data/lib/host_systems/ti99-font.bin +0 -0
- data/lib/image_formats/JvcDsk.rb +101 -0
- data/lib/image_formats/Ti99Dsk.rb +213 -0
- data/lib/image_formats/Trs80Jv1Dsk.rb +5 -3
- data/lib/native_file_types/apple2/AppleBinary.rb +2 -2
- data/lib/native_file_types/apple2/AppleHiResPic.rb +101 -57
- data/lib/native_file_types/apple2/ApplePrintShopMiniPix.rb +99 -0
- data/lib/native_file_types/apple2/AppleText.rb +16 -0
- data/lib/native_file_types/apple2/PackedAppleDosPic.rb +85 -0
- data/lib/native_file_types/apple2/ProDosFile.rb +2 -3
- data/lib/native_file_types/atari800/AtariBinary.rb +1 -1
- data/lib/native_file_types/atari800/AtariText.rb +7 -1
- data/lib/native_file_types/coco/CocoBasic.rb +230 -0
- data/lib/native_file_types/coco/CocoMachineLanguage.rb +47 -0
- data/lib/native_file_types/coco/CocoScreen.rb +54 -0
- data/lib/native_file_types/coco/CocoText.rb +42 -0
- data/lib/native_file_types/generic/GenericGIF.rb +50 -0
- data/lib/native_file_types/generic/ScreenDump.rb +43 -0
- data/lib/native_file_types/ti99/Ti99BasicFile.rb +223 -0
- data/lib/native_file_types/ti99/Ti99File.rb +40 -0
- data/lib/native_file_types/ti99/Ti99TextFile.rb +62 -0
- data/lib/native_file_types/ti99/TiArtistColours.rb +40 -0
- data/lib/native_file_types/ti99/TiArtistPattern.rb +109 -0
- data/lib/native_file_types/ti99/TiRLE.rb +91 -0
- data/lib/native_file_types/trs80/Trs80BasicListing.rb +51 -0
- data/lib/native_file_types/trs80/Trs80Cmd.rb +3 -1
- data/lib/native_file_types/trs80/Trs80LevelIIBasic.rb +15 -3
- data/lib/native_file_types/trs80/Trs80Text.rb +49 -0
- data/test/native_files/42d0d52047a748022d2aacef60cc5271-0.png +0 -0
- data/test/native_files/6ac562d2d099dc31213e97b8fe08ffbf-1.png +0 -0
- data/test/screendumps/0.png +0 -0
- data/test/screendumps/1.png +0 -0
- data/test/screendumps/2.png +0 -0
- data/test/screendumps/3.png +0 -0
- data/test/screendumps/4.png +0 -0
- data/test/screendumps/5.png +0 -0
- data/test/screendumps/6.png +0 -0
- data/test/screendumps/7.png +0 -0
- data/test/tc_apple_2.rb +94 -0
- data/test/tc_atari_800.rb +28 -0
- data/test/tc_c64.rb +35 -0
- data/test/tc_cache_and_collections.rb +33 -0
- data/test/tc_coco.rb +38 -0
- data/test/tc_screen_dumps.rb +42 -0
- data/test/tc_ti99.rb +51 -0
- data/test/tc_trs80.rb +66 -0
- data/test/testhelper.rb +59 -1
- data/test/testlog.txt +123423 -30232
- metadata +595 -14
- data/test/tc_file_cache.rb +0 -11
- data/test/tc_image_sniffing.rb +0 -165
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
|
|
2
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
|
3
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
|
4
|
+
|
|
5
|
+
require 'Ti99File'
|
|
6
|
+
#http://nouspikel.group.shef.ac.uk//ti99/basic.htm
|
|
7
|
+
#http://groups.google.com.au/group/comp.sys.ti/browse_frm/thread/d58a8f0ff2fb9210/e33fc780cba5df90
|
|
8
|
+
class Ti99BasicFile<Ti99File
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
is_valid_file_if lambda {
|
|
12
|
+
file_type<0x80 && (file_type%02==01) #FIXED/VARIABLE flag set to 0 -> fixed, PROGRAM/DATA file 1 -> program
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
#BYTES 0/1 should be a checksum of bytes 2/3 XOR bytes 4/5
|
|
16
|
+
is_valid_file_if lambda {
|
|
17
|
+
(contents[0]==contents[2] ^ contents[4]) && (contents[1]==contents[3] ^ contents[5])
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
# a file that is all zeros does pass the above XOR test, so let's exclude those
|
|
21
|
+
is_valid_file_if lambda {
|
|
22
|
+
(contents[2]+contents[3]+contents[4]+contents[5]) !=0
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
TI_BASIC_TOKENS={
|
|
26
|
+
#0x00 => end of line marker
|
|
27
|
+
0x81=>'ELSE',
|
|
28
|
+
0x82=>'::',
|
|
29
|
+
0x83=>'!',
|
|
30
|
+
0x84=>'IF',
|
|
31
|
+
0x85=>'GO',
|
|
32
|
+
0x86=>'GOTO',
|
|
33
|
+
0x87=>'GOSUB',
|
|
34
|
+
0x88=>'RETURN',
|
|
35
|
+
0x89=>'DEF',
|
|
36
|
+
0x8A=>'DIM',
|
|
37
|
+
0x8B=>'END',
|
|
38
|
+
0x8C=>'FOR',
|
|
39
|
+
0x8D=>'LET',
|
|
40
|
+
0x8E=>'BREAK',
|
|
41
|
+
0x8F=>'UNBREAK',
|
|
42
|
+
0x90=>'TRACE',
|
|
43
|
+
0x91=>'UNTRACE',
|
|
44
|
+
0x92=>'INPUT',
|
|
45
|
+
0x93=>'DATA',
|
|
46
|
+
0x94=>'RESTORE',
|
|
47
|
+
0x95=>'RANDOMIZE',
|
|
48
|
+
0x96=>'NEXT',
|
|
49
|
+
0x97=>'READ',
|
|
50
|
+
0x98=>'STOP',
|
|
51
|
+
0x99=>'DELETE',
|
|
52
|
+
0x9A=>'REM',
|
|
53
|
+
0x9B=>'ON',
|
|
54
|
+
0x9C=>'PRINT',
|
|
55
|
+
0x9D=>'CALL',
|
|
56
|
+
0x9E=>'OPTION',
|
|
57
|
+
0x9F=>'OPEN',
|
|
58
|
+
0xA0=>'CLOSE',
|
|
59
|
+
0xA1=>'SUB',
|
|
60
|
+
0xA2=>'DISPLAY',
|
|
61
|
+
0xA3=>'IMAGE',
|
|
62
|
+
0xA4=>'ACCEPT',
|
|
63
|
+
0xA5=>'ERROR',
|
|
64
|
+
0xA6=>'WARNING',
|
|
65
|
+
0xA7=>'SUBEXIT',
|
|
66
|
+
0xA8=>'SUBEND',
|
|
67
|
+
0xA9=>'RUN',
|
|
68
|
+
0xAA=>'LINPUT',
|
|
69
|
+
0xB0=>'THEN',
|
|
70
|
+
0xB1=>'TO',
|
|
71
|
+
0xB2=>'STEP',
|
|
72
|
+
0xB3=>',',
|
|
73
|
+
0xB4=>';',
|
|
74
|
+
0xB5=>':',
|
|
75
|
+
0xB6=>')',
|
|
76
|
+
0xB7=>'(',
|
|
77
|
+
0xB8=>'&',
|
|
78
|
+
0xBA=>'OR',
|
|
79
|
+
0xBB=>'AND',
|
|
80
|
+
0xBC=>'XOR',
|
|
81
|
+
0xBD=>'NOT',
|
|
82
|
+
0xBE=>'=',
|
|
83
|
+
0xBF=>'<',
|
|
84
|
+
0xC0=>'>',
|
|
85
|
+
0xC1=>'+',
|
|
86
|
+
0xC2=>'-',
|
|
87
|
+
0xC3=>'*',
|
|
88
|
+
0xC4=>'/',
|
|
89
|
+
0xC5=>'^',
|
|
90
|
+
#0xC7=> QUOTED STRING (following byte indicates length of string)
|
|
91
|
+
#0xC8=>UNQUOTED STRING (following byte indicates length of string)
|
|
92
|
+
#0xC9=>LINE NUMBER (16 bit word)
|
|
93
|
+
0xCA=>'EOF',
|
|
94
|
+
0xCB=>'ABS',
|
|
95
|
+
0xCC=>'ATN',
|
|
96
|
+
0xCD=>'COS',
|
|
97
|
+
0xCE=>'EXP',
|
|
98
|
+
0xCF=>'INT',
|
|
99
|
+
0xD0=>'LOG',
|
|
100
|
+
0xD1=>'SGN',
|
|
101
|
+
0xD2=>'SIN',
|
|
102
|
+
0xD3=>'SQR',
|
|
103
|
+
0xD4=>'TAN',
|
|
104
|
+
0xD5=>'LEN',
|
|
105
|
+
0xD6=>'CHR$',
|
|
106
|
+
0xD7=>'RND',
|
|
107
|
+
0xD8=>'SEG$',
|
|
108
|
+
0xD9=>'POS',
|
|
109
|
+
0xDA=>'VAL',
|
|
110
|
+
0xDB=>'STR$',
|
|
111
|
+
0xDC=>'ASC',
|
|
112
|
+
0xDD=>'PI',
|
|
113
|
+
0xDE=>'REC',
|
|
114
|
+
0xDF=>'MAX',
|
|
115
|
+
0xE0=>'MIN',
|
|
116
|
+
0xE1=>'RPT$',
|
|
117
|
+
0xE8=>'NUMERIC',
|
|
118
|
+
0xE9=>'DIGIT',
|
|
119
|
+
0xEA=>'UALPHA',
|
|
120
|
+
0xEB=>'SIZE',
|
|
121
|
+
0xEC=>'ALL',
|
|
122
|
+
0xED=>'USING',
|
|
123
|
+
0xEE=>'BEEP',
|
|
124
|
+
0xEF=>'ERASE',
|
|
125
|
+
0xF0=>'AT',
|
|
126
|
+
0xF1=>'BASE',
|
|
127
|
+
0xF3=>'VARIABLE',
|
|
128
|
+
0xF4=>'RELATIVE',
|
|
129
|
+
0xF5=>'INTERNAL',
|
|
130
|
+
0xF6=>'SEQUENTIAL',
|
|
131
|
+
0xF7=>'OUTPUT',
|
|
132
|
+
0xF8=>'UPDATE',
|
|
133
|
+
0xF9=>'APPEND',
|
|
134
|
+
0xFA=>'FIXED',
|
|
135
|
+
0xFB=>'PERMANENT',
|
|
136
|
+
0xFC=>'TAB',
|
|
137
|
+
0xFD=>'#',
|
|
138
|
+
0xFE=>'VALIDATE',
|
|
139
|
+
#0xFF=>'end of file marker',
|
|
140
|
+
}
|
|
141
|
+
def to_listing
|
|
142
|
+
buffer=contents
|
|
143
|
+
end_of_line_number_table=(buffer[2]<<8)+buffer[3]
|
|
144
|
+
start_of_line_number_table=(buffer[4]<<8)+buffer[5]
|
|
145
|
+
number_of_lines=(1+end_of_line_number_table-start_of_line_number_table)/4
|
|
146
|
+
relocation_offset=start_of_line_number_table-7
|
|
147
|
+
# puts "START %x END %x LINES %x RELOC OFFSET %x" % [start_of_line_number_table,end_of_line_number_table,number_of_lines,relocation_offset]
|
|
148
|
+
line_number_table=buffer[8,(number_of_lines*4)]
|
|
149
|
+
detokenised_lines={}
|
|
150
|
+
number_of_lines.times do |i|
|
|
151
|
+
line_number_data=line_number_table[i*4,4]
|
|
152
|
+
line_number=(line_number_data[0]<<8)+line_number_data[1]
|
|
153
|
+
location_of_line_in_memory=(line_number_data[2]<<8)+line_number_data[3]
|
|
154
|
+
location_of_line_in_buffer=location_of_line_in_memory-relocation_offset
|
|
155
|
+
# puts "#{line_number} MEM %x FILE %x " % [location_of_line_in_memory,location_of_line_in_buffer]
|
|
156
|
+
line_length=buffer[location_of_line_in_buffer]
|
|
157
|
+
detokenised_line="#{line_number} "
|
|
158
|
+
p=location_of_line_in_buffer+1
|
|
159
|
+
last_byte_was_token=false
|
|
160
|
+
while (p<location_of_line_in_buffer+line_length) && (!buffer[p].nil?) && (buffer[p]!=0) do
|
|
161
|
+
token=buffer[p]
|
|
162
|
+
token_text=TI_BASIC_TOKENS[token]
|
|
163
|
+
if (token_text.nil?) then
|
|
164
|
+
detokenised_line<<" " if ((detokenised_line=~/\w$/) && (last_byte_was_token))
|
|
165
|
+
if token==0xC7 then #quoted string
|
|
166
|
+
detokenised_line<<"\"#{buffer[p+2,buffer[p+1]]}\""
|
|
167
|
+
p+=buffer[p+1]+1
|
|
168
|
+
elsif token==0xC8 then #unquoted string
|
|
169
|
+
detokenised_line<<"#{buffer[p+2,buffer[p+1]]}"
|
|
170
|
+
p+=buffer[p+1]+1
|
|
171
|
+
elsif token==0xC9 then #line number
|
|
172
|
+
detokenised_line<<"#{(buffer[p+1]<<8)+buffer[p+2]}"
|
|
173
|
+
p+=2
|
|
174
|
+
else
|
|
175
|
+
detokenised_line<<token.chr
|
|
176
|
+
end
|
|
177
|
+
last_byte_was_token=false
|
|
178
|
+
else
|
|
179
|
+
last_byte_was_token=true
|
|
180
|
+
detokenised_line<<" " if detokenised_line=~/(\w|:|")$/ && token_text=~/^(\w|:|")/
|
|
181
|
+
detokenised_line<<token_text
|
|
182
|
+
end
|
|
183
|
+
p+=1
|
|
184
|
+
end
|
|
185
|
+
detokenised_lines[line_number]=detokenised_line
|
|
186
|
+
|
|
187
|
+
end
|
|
188
|
+
result=""
|
|
189
|
+
detokenised_lines.keys.sort.each do |line_number|
|
|
190
|
+
result << "#{detokenised_lines[line_number]}\n"
|
|
191
|
+
end
|
|
192
|
+
# puts result
|
|
193
|
+
|
|
194
|
+
result
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
# == Author
|
|
201
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
202
|
+
#
|
|
203
|
+
# == Copyright
|
|
204
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
205
|
+
#
|
|
206
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
207
|
+
#a copy of this software and associated documentation files (the
|
|
208
|
+
#"Software"), to deal in the Software without restriction, including
|
|
209
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
210
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
211
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
212
|
+
#the following conditions:
|
|
213
|
+
|
|
214
|
+
# The above copyright notice and this permission notice shall be
|
|
215
|
+
# included in all copies or substantial portions of the Software.
|
|
216
|
+
|
|
217
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
218
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
219
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
220
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
221
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
222
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
223
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require 'NativeFileType'
|
|
2
|
+
class Ti99File<NativeFileType
|
|
3
|
+
|
|
4
|
+
def self.file_system_file_types
|
|
5
|
+
{
|
|
6
|
+
Ti99Fms=>:any
|
|
7
|
+
}
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def type_description
|
|
11
|
+
"#{self.class}:%02x" % file_type
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# == Author
|
|
18
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
19
|
+
#
|
|
20
|
+
# == Copyright
|
|
21
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
22
|
+
#
|
|
23
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
24
|
+
#a copy of this software and associated documentation files (the
|
|
25
|
+
#"Software"), to deal in the Software without restriction, including
|
|
26
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
27
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
28
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
29
|
+
#the following conditions:
|
|
30
|
+
|
|
31
|
+
# The above copyright notice and this permission notice shall be
|
|
32
|
+
# included in all copies or substantial portions of the Software.
|
|
33
|
+
|
|
34
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
35
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
36
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
37
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
38
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
39
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
40
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
|
|
2
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
|
3
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
|
4
|
+
|
|
5
|
+
require 'Ti99File'
|
|
6
|
+
class Ti99TextFile<Ti99File
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
is_valid_file_if lambda {
|
|
10
|
+
file_type>=0x80 #FIXED/VARIABLE flag set to 1 -> variable
|
|
11
|
+
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
def to_text
|
|
15
|
+
s=""
|
|
16
|
+
i=0
|
|
17
|
+
while i<contents.length do
|
|
18
|
+
record_length=contents[i]
|
|
19
|
+
i+=1
|
|
20
|
+
if record_length==0xff then
|
|
21
|
+
while ((i<contents.length) && (i%256!=0)) do
|
|
22
|
+
i+=1
|
|
23
|
+
end
|
|
24
|
+
else
|
|
25
|
+
s+=contents[i,record_length]
|
|
26
|
+
s+="\n"
|
|
27
|
+
i+=record_length
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
s
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def text_for_screendump
|
|
34
|
+
to_text.gsub("\n",0x0D.chr)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
# == Author
|
|
40
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
41
|
+
#
|
|
42
|
+
# == Copyright
|
|
43
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
44
|
+
#
|
|
45
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
46
|
+
#a copy of this software and associated documentation files (the
|
|
47
|
+
#"Software"), to deal in the Software without restriction, including
|
|
48
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
49
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
50
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
51
|
+
#the following conditions:
|
|
52
|
+
|
|
53
|
+
# The above copyright notice and this permission notice shall be
|
|
54
|
+
# included in all copies or substantial portions of the Software.
|
|
55
|
+
|
|
56
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
57
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
58
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
59
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
60
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
61
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
62
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
|
|
2
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
|
3
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
|
4
|
+
|
|
5
|
+
require 'Ti99File'
|
|
6
|
+
|
|
7
|
+
class TiArtistColours<Ti99File
|
|
8
|
+
|
|
9
|
+
is_valid_file_if lambda {
|
|
10
|
+
file_type%4==0x01 && filename=~/_C$/ && contents.length==0x1800
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# == Author
|
|
18
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
19
|
+
#
|
|
20
|
+
# == Copyright
|
|
21
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
22
|
+
#
|
|
23
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
24
|
+
#a copy of this software and associated documentation files (the
|
|
25
|
+
#"Software"), to deal in the Software without restriction, including
|
|
26
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
27
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
28
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
29
|
+
#the following conditions:
|
|
30
|
+
|
|
31
|
+
# The above copyright notice and this permission notice shall be
|
|
32
|
+
# included in all copies or substantial portions of the Software.
|
|
33
|
+
|
|
34
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
35
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
36
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
37
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
38
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
39
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
40
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
|
|
2
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
|
3
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
|
4
|
+
|
|
5
|
+
require 'Ti99File'
|
|
6
|
+
require 'PatchedPNG'
|
|
7
|
+
class TiArtistPattern<Ti99File
|
|
8
|
+
|
|
9
|
+
is_valid_file_if lambda {
|
|
10
|
+
file_type%4==0x01 && filename=~/_P$/ && contents.length==0x1800
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
#pallete taken from
|
|
15
|
+
#http://www.msx.org/forumtopic7147.html
|
|
16
|
+
#http://ragozini.googlepages.com/dithering
|
|
17
|
+
|
|
18
|
+
TMS9918_PALLETE=[
|
|
19
|
+
PNG::Color.new(0,0,0,0xFF), #color=$00 Transparent
|
|
20
|
+
PNG::Color.new(0,0,0,0xFF), #color=$01 black
|
|
21
|
+
PNG::Color.new(38,229,0,0xFF), #color=$02 medium green
|
|
22
|
+
PNG::Color.new(100,240,49,0xFF), #color=$03 light green
|
|
23
|
+
PNG::Color.new(93,57,255,0xFF), #color=$04 dark blue
|
|
24
|
+
PNG::Color.new(132,94,255,0xFF), #color=$05 light blue
|
|
25
|
+
PNG::Color.new(214,104,20,0xFF), #color=$06 dark red
|
|
26
|
+
PNG::Color.new(64,228,255,0xFF), #color=$07 cyan
|
|
27
|
+
PNG::Color.new(253,111,15,0xFF), #color=$08 medium red
|
|
28
|
+
PNG::Color.new(255,245,49,0xFF), #color=$09 light red
|
|
29
|
+
PNG::Color.new(216,230,0,0xFF), #color=$0A dark yellow
|
|
30
|
+
PNG::Color.new(232,233,14,0xFF), #color=$0B light yellow
|
|
31
|
+
PNG::Color.new(40,202,0,0xFF), #color=$0C dark green
|
|
32
|
+
PNG::Color.new(205,86,255,0xFF), #color=$0D magenta
|
|
33
|
+
PNG::Color.new(208,208,208,0xFF), #color=$0E grey
|
|
34
|
+
PNG::Color.new(255,255,255,0xFF), #color=$0F white
|
|
35
|
+
]
|
|
36
|
+
|
|
37
|
+
#formula taken from http://www.digitalstratum.com/programming/yinyang_ti_asm
|
|
38
|
+
def to_picture
|
|
39
|
+
canvas = PNG::Canvas.new picture_width, picture_height, TMS9918_PALLETE[0]
|
|
40
|
+
colour_attributes_filename=filename.sub(/_P$/,'_C')
|
|
41
|
+
colour_attributes_file=file_system_image.files[colour_attributes_filename]
|
|
42
|
+
if colour_attributes_file.nil? || colour_attributes_file.contents.length<6144 then
|
|
43
|
+
#colour_attributes=(0x4E.chr)*6144
|
|
44
|
+
colour_attributes=(0x0F.chr)*6144
|
|
45
|
+
else
|
|
46
|
+
colour_attributes=colour_attributes_file.contents
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
picture_width.times do |x|
|
|
50
|
+
picture_height.times do |y|
|
|
51
|
+
byte_offset=y<<5
|
|
52
|
+
byte_offset|=y
|
|
53
|
+
byte_offset&=0xFF07
|
|
54
|
+
bit_offset=x % 0x08
|
|
55
|
+
byte_offset+=x
|
|
56
|
+
byte_offset-=bit_offset
|
|
57
|
+
bitmask=1<<(7-bit_offset)
|
|
58
|
+
bitmap_byte=contents[byte_offset]
|
|
59
|
+
colour_byte=colour_attributes[byte_offset]
|
|
60
|
+
foreground_colour=TMS9918_PALLETE[colour_byte>>4]
|
|
61
|
+
background_colour=TMS9918_PALLETE[colour_byte%16]
|
|
62
|
+
if ((bitmap_byte & bitmask)==bitmask) then
|
|
63
|
+
canvas[x, y]= foreground_colour
|
|
64
|
+
else
|
|
65
|
+
canvas[x, y]= background_colour
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
png = PNG.new canvas
|
|
70
|
+
result=png.raw_bytes
|
|
71
|
+
result
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def picture_width
|
|
75
|
+
256
|
|
76
|
+
end
|
|
77
|
+
def picture_height
|
|
78
|
+
192
|
|
79
|
+
end
|
|
80
|
+
def picture_format
|
|
81
|
+
:png
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
# == Author
|
|
87
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
88
|
+
#
|
|
89
|
+
# == Copyright
|
|
90
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
91
|
+
#
|
|
92
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
93
|
+
#a copy of this software and associated documentation files (the
|
|
94
|
+
#"Software"), to deal in the Software without restriction, including
|
|
95
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
96
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
97
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
98
|
+
#the following conditions:
|
|
99
|
+
|
|
100
|
+
# The above copyright notice and this permission notice shall be
|
|
101
|
+
# included in all copies or substantial portions of the Software.
|
|
102
|
+
|
|
103
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
104
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
105
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
106
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
107
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
108
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
109
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
|
|
2
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
|
3
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
|
4
|
+
|
|
5
|
+
require 'Ti99File'
|
|
6
|
+
require 'PatchedPNG'
|
|
7
|
+
class TiRLE<Ti99File
|
|
8
|
+
|
|
9
|
+
is_valid_file_if lambda {
|
|
10
|
+
(contents[0]==0x1B && contents[1]==0x47) && ( contents[2]==0x48 || contents[2]==0x4D)
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def picture_width
|
|
17
|
+
case contents[2]
|
|
18
|
+
when 0x48 then return 256 #H=High Resolution
|
|
19
|
+
when 0x4D then return 128 #M=Medium Resolution
|
|
20
|
+
end
|
|
21
|
+
raise "invalid RLE graphic mode #{buffer[2].chr}"
|
|
22
|
+
end
|
|
23
|
+
def picture_height
|
|
24
|
+
case contents[2]
|
|
25
|
+
when 0x48 then return 192 #H=High Resolution
|
|
26
|
+
when 0x4D then return 96 #M=Medium Resolution
|
|
27
|
+
end
|
|
28
|
+
raise "invalid RLE graphic mode #{buffer[2].chr}"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
RLE_COLOURS=[PNG::Color::Black,PNG::Color::White]
|
|
33
|
+
def to_picture
|
|
34
|
+
buffer=contents
|
|
35
|
+
cols=picture_width
|
|
36
|
+
rows=picture_height
|
|
37
|
+
canvas = PNG::Canvas.new cols, rows, PNG::Color::Black
|
|
38
|
+
p=3
|
|
39
|
+
colour_index=0
|
|
40
|
+
done=false
|
|
41
|
+
bit_index=0
|
|
42
|
+
while !(buffer[p]).nil?
|
|
43
|
+
if buffer[p]>=0x20 then #skip over any control characters
|
|
44
|
+
run_length=(buffer[p]-0x20)
|
|
45
|
+
run_length.times do
|
|
46
|
+
x=bit_index % cols
|
|
47
|
+
y=bit_index / cols
|
|
48
|
+
break if y>=rows
|
|
49
|
+
canvas[x, y]= RLE_COLOURS[colour_index]
|
|
50
|
+
bit_index+=1
|
|
51
|
+
end
|
|
52
|
+
colour_index=((colour_index+1)%2)
|
|
53
|
+
end
|
|
54
|
+
p+=1
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
png = PNG.new canvas
|
|
58
|
+
result=png.raw_bytes
|
|
59
|
+
result
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def picture_format
|
|
63
|
+
:png
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
# == Author
|
|
69
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
70
|
+
#
|
|
71
|
+
# == Copyright
|
|
72
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
73
|
+
#
|
|
74
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
75
|
+
#a copy of this software and associated documentation files (the
|
|
76
|
+
#"Software"), to deal in the Software without restriction, including
|
|
77
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
78
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
79
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
80
|
+
#the following conditions:
|
|
81
|
+
|
|
82
|
+
# The above copyright notice and this permission notice shall be
|
|
83
|
+
# included in all copies or substantial portions of the Software.
|
|
84
|
+
|
|
85
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
86
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
87
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
88
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
89
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
90
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
91
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
require 'NativeFileType'
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class Trs80BasicListing<NativeFileType
|
|
5
|
+
|
|
6
|
+
def self.file_system_file_types
|
|
7
|
+
{
|
|
8
|
+
TrsDos=>"BAS"
|
|
9
|
+
}
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
#file should start with a line number
|
|
13
|
+
is_valid_file_if lambda {!(contents[0,5]=~/^\s*\d/).nil?}
|
|
14
|
+
|
|
15
|
+
#make sure if we match, we override CMD
|
|
16
|
+
def matching_score
|
|
17
|
+
Trs80Cmd.matching_score+1
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def to_text
|
|
21
|
+
contents
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# == Author
|
|
29
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
30
|
+
#
|
|
31
|
+
# == Copyright
|
|
32
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
33
|
+
#
|
|
34
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
35
|
+
#a copy of this software and associated documentation files (the
|
|
36
|
+
#"Software"), to deal in the Software without restriction, including
|
|
37
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
38
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
39
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
40
|
+
#the following conditions:
|
|
41
|
+
|
|
42
|
+
# The above copyright notice and this permission notice shall be
|
|
43
|
+
# included in all copies or substantial portions of the Software.
|
|
44
|
+
|
|
45
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
46
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
47
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
48
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
49
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
50
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
51
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -22,7 +22,9 @@ require 'NativeFileType'
|
|
|
22
22
|
|
|
23
23
|
class Trs80Cmd<NativeFileType
|
|
24
24
|
|
|
25
|
-
is_valid_file_if lambda {contents[0].between?(1,0x15)}
|
|
25
|
+
is_valid_file_if lambda {(contents[0].between?(1,0x15))}
|
|
26
|
+
|
|
27
|
+
is_valid_file_if lambda {!(filename=~/\/(BAS|)$/) }
|
|
26
28
|
@records=nil
|
|
27
29
|
|
|
28
30
|
def records
|
|
@@ -9,11 +9,23 @@ def self.file_system_file_types
|
|
|
9
9
|
}
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
-
#BASIC files should start with 0xFF
|
|
12
|
+
#BASIC files should start with 0xFF
|
|
13
13
|
is_valid_file_if lambda {contents[0]==0xFF}
|
|
14
14
|
|
|
15
|
-
#
|
|
16
|
-
is_valid_file_if lambda {
|
|
15
|
+
#eliminate some false positives
|
|
16
|
+
is_valid_file_if lambda {
|
|
17
|
+
!(filename=~/\/SYS$/)
|
|
18
|
+
}
|
|
19
|
+
#filename should either have no extension, or end /BAS, or if it has any other extension, check the file ends with 00 00
|
|
20
|
+
is_valid_file_if lambda {
|
|
21
|
+
(filename=~/\/(BAS|)$/) || (contents[-2,2]=="\000\000")
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
#make sure if we match, we override CMD
|
|
25
|
+
def matching_score
|
|
26
|
+
Trs80Cmd.matching_score+1
|
|
27
|
+
end
|
|
28
|
+
|
|
17
29
|
|
|
18
30
|
SINGLE_BYTE_TOKENS={
|
|
19
31
|
0x80=>'END',
|