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,213 @@
|
|
|
1
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
|
2
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
|
3
|
+
|
|
4
|
+
$:.unshift(File.dirname(__FILE__+"\\..")) unless
|
|
5
|
+
$:.include?(File.dirname(__FILE__+"\\..")) || $:.include?(File.expand_path(File.dirname(__FILE__+"\\..")))
|
|
6
|
+
|
|
7
|
+
require 'ImageFormat'
|
|
8
|
+
|
|
9
|
+
#TI99 DSK
|
|
10
|
+
class Ti99Dsk < ImageFormat
|
|
11
|
+
|
|
12
|
+
def self.possible_extensions
|
|
13
|
+
['.dsk','.tidisk']
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def self.host_system
|
|
17
|
+
Ti99
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def sector_size
|
|
21
|
+
256
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def initial_header_length
|
|
25
|
+
0
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
#to be overriden in each subclass with a table showing what order logical sectors are stored
|
|
29
|
+
def sectors_in_track(track_no)
|
|
30
|
+
(track_no*sectors_per_track..((track_no+1)*sectors_per_track-1)).collect
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
@track_count=nil
|
|
34
|
+
def track_count
|
|
35
|
+
if @track_count.nil? then
|
|
36
|
+
sector_0=get_sector(0,0)
|
|
37
|
+
@track_count=sector_0[0x11]*sector_0[0x12]
|
|
38
|
+
end
|
|
39
|
+
@track_count
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
@sectors_per_track=nil
|
|
43
|
+
def sectors_per_track
|
|
44
|
+
if @sectors_per_track.nil? then
|
|
45
|
+
sector_0=get_sector(0,0)
|
|
46
|
+
@sectors_per_track=sector_0[0x0C]
|
|
47
|
+
end
|
|
48
|
+
@sectors_per_track
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
@tracks_per_side=nil
|
|
52
|
+
def tracks_per_side
|
|
53
|
+
if @tracks_per_side.nil? then
|
|
54
|
+
sector_0=get_sector(0,0)
|
|
55
|
+
@tracks_per_side=sector_0[0x11]
|
|
56
|
+
end
|
|
57
|
+
@tracks_per_side
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
#TI 99 disks use a single flat list of sectors
|
|
61
|
+
#however for ease of use with code that assume there are tracks & sectors
|
|
62
|
+
#we will allow the track to be passed in
|
|
63
|
+
def get_sector(track,sector)
|
|
64
|
+
|
|
65
|
+
# puts "looking for LOGICAL TRACK:$%02X SECTOR:$%02X " % [track,sector]
|
|
66
|
+
#track sector 0 as a special case, since to get to any other sector we need to know some values (e.g. sectors per track) that is recorded in sector 0
|
|
67
|
+
if (sector==0) then
|
|
68
|
+
return file_bytes[initial_header_length,256]
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
real_track=sector/sectors_per_track
|
|
72
|
+
physical_sector=sector % sectors_per_track
|
|
73
|
+
get_physical_sector(real_track,physical_sector)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
#the 'V9T9' format is a straight dump of sectors in logical order
|
|
79
|
+
class V9T9Dsk< Ti99Dsk
|
|
80
|
+
private
|
|
81
|
+
def get_physical_sector(requested_track,physical_sector)
|
|
82
|
+
start_byte=requested_track*sectors_per_track*256+physical_sector*256
|
|
83
|
+
file_bytes[start_byte,256]
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def initial_header_length
|
|
87
|
+
0
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
end
|
|
91
|
+
#specs for PC99 format found at ftp://ftp.whtech.com/emulators/pc99/fmt21-22.txt
|
|
92
|
+
class Pc99Dsk< Ti99Dsk
|
|
93
|
+
|
|
94
|
+
private
|
|
95
|
+
def get_physical_sector(requested_track,physical_sector)
|
|
96
|
+
|
|
97
|
+
if requested_track<tracks_per_side then
|
|
98
|
+
real_track=requested_track
|
|
99
|
+
side=0
|
|
100
|
+
else
|
|
101
|
+
real_track=((tracks_per_side*2)-1)-requested_track
|
|
102
|
+
side=1
|
|
103
|
+
end
|
|
104
|
+
# puts "looking for REAL TRACK:$%02X (REQUESTED TRACK:$%02X) SECTOR:$%02X SIDE:$%02X" % [real_track,requested_track,physical_sector,side]
|
|
105
|
+
total_sector_length=sector_header_length+sector_size+sector_after_data_gap_length
|
|
106
|
+
total_track_length=start_of_track_gap_length+total_sector_length*sectors_per_track+end_of_track_gap_length
|
|
107
|
+
start_of_track=total_track_length*(real_track+tracks_per_side*side)
|
|
108
|
+
track_bytes=file_bytes[start_of_track,total_track_length]
|
|
109
|
+
sectors_per_track.times do |i|
|
|
110
|
+
start_of_sector_header=start_of_track_gap_length+i*total_sector_length
|
|
111
|
+
sector_bytes=track_bytes[start_of_sector_header,total_sector_length]
|
|
112
|
+
track_id=sector_bytes[track_id_offset]
|
|
113
|
+
side_id=sector_bytes[side_id_offset]
|
|
114
|
+
sector_id=sector_bytes[sector_id_offset]
|
|
115
|
+
# puts "found track $%02X / side $%02X / sector $%02X" % [track_id,side_id,sector_id]
|
|
116
|
+
return sector_bytes[sector_header_length,256] if sector_id==physical_sector && track_id==real_track && side_id==side
|
|
117
|
+
end
|
|
118
|
+
raise " Track $%02X / Sector $%02X not found!" % [requested_track,physical_sector]
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def track_length
|
|
123
|
+
((256+gap_between_sectors)*sectors_per_track)+gap_between_tracks
|
|
124
|
+
end
|
|
125
|
+
#Single Density PC99 image
|
|
126
|
+
class Pc99SD < Pc99Dsk
|
|
127
|
+
def initial_header_length
|
|
128
|
+
47
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
def start_of_track_gap_length
|
|
132
|
+
16
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def sector_header_length
|
|
136
|
+
31
|
|
137
|
+
end
|
|
138
|
+
def sector_after_data_gap_length
|
|
139
|
+
47
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def end_of_track_gap_length
|
|
143
|
+
231
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def track_id_offset
|
|
147
|
+
7
|
|
148
|
+
end
|
|
149
|
+
def side_id_offset
|
|
150
|
+
8
|
|
151
|
+
end
|
|
152
|
+
def sector_id_offset
|
|
153
|
+
9
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
#Double Density PC99 image
|
|
159
|
+
class Pc99DD < Pc99Dsk
|
|
160
|
+
|
|
161
|
+
def initial_header_length
|
|
162
|
+
98
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
def start_of_track_gap_length
|
|
166
|
+
40
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
def sector_header_length
|
|
170
|
+
58
|
|
171
|
+
end
|
|
172
|
+
def sector_after_data_gap_length
|
|
173
|
+
26
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
def end_of_track_gap_length
|
|
177
|
+
712
|
|
178
|
+
end
|
|
179
|
+
def track_id_offset
|
|
180
|
+
14
|
|
181
|
+
end
|
|
182
|
+
def side_id_offset
|
|
183
|
+
15
|
|
184
|
+
end
|
|
185
|
+
def sector_id_offset
|
|
186
|
+
16
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
# == Author
|
|
191
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
192
|
+
#
|
|
193
|
+
# == Copyright
|
|
194
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
195
|
+
#
|
|
196
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
197
|
+
#a copy of this software and associated documentation files (the
|
|
198
|
+
#"Software"), to deal in the Software without restriction, including
|
|
199
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
200
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
201
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
202
|
+
#the following conditions:
|
|
203
|
+
|
|
204
|
+
# The above copyright notice and this permission notice shall be
|
|
205
|
+
# included in all copies or substantial portions of the Software.
|
|
206
|
+
|
|
207
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
208
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
209
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
210
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
211
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
212
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
213
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -14,9 +14,9 @@ def self.possible_extensions
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
#JV1 format has no header, and a variable number of tracks, each with 10 sectors, each with 256 bytes.
|
|
17
|
-
#for the moment, we only handle SSSD 80 track images (204800 bytes)
|
|
18
17
|
is_valid_image_if lambda {
|
|
19
|
-
file_system_image.file_bytes.length==
|
|
18
|
+
(file_system_image.file_bytes.length%2560==0) && (file_system_image.file_bytes.length!=143360)
|
|
19
|
+
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
def self.host_system
|
|
@@ -32,7 +32,9 @@ def track_count
|
|
|
32
32
|
file_bytes.length/(2560)
|
|
33
33
|
end
|
|
34
34
|
|
|
35
|
-
def get_sector(track,sector)
|
|
35
|
+
def get_sector(track,sector)
|
|
36
|
+
|
|
37
|
+
#puts "invalid track request for track #{track} / sector #{sector}" unless sectors_in_track(track).include?(sector)
|
|
36
38
|
start_byte=track*10*256+sector*256
|
|
37
39
|
file_bytes[start_byte,256]
|
|
38
40
|
end
|
|
@@ -13,13 +13,13 @@ def self.load_address(contents)
|
|
|
13
13
|
contents[0]+contents[1]*256
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
#header is 2 bytes for load address
|
|
16
|
+
#header is 2 bytes for load address + 2 bytes for file length
|
|
17
17
|
def header_length
|
|
18
18
|
4
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def to_disassembly
|
|
22
|
-
return Apple2.disassemble(data_without_header,load_address
|
|
22
|
+
return Apple2.disassemble(data_without_header,load_address)
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
end
|
|
@@ -2,33 +2,17 @@ $:.unshift(File.dirname(__FILE__)) unless
|
|
|
2
2
|
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
require 'PatchedPNG'
|
|
6
6
|
|
|
7
|
-
class
|
|
7
|
+
#generic class for a HI-RES picture
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
{
|
|
11
|
-
AppleDos=>0x04,
|
|
12
|
-
NADOLDos=>:any,
|
|
13
|
-
PascalDos=>0x07
|
|
14
|
-
}
|
|
15
|
-
end
|
|
9
|
+
class AppleHiResPic<NativeFileType
|
|
16
10
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
load_address=AppleBinary.load_address(contents)
|
|
21
|
-
is_valid=((contents.length>=8184) && (contents.length<=9000) && ((load_address==0x2000) || load_address==0x4000))
|
|
22
|
-
end
|
|
23
|
-
if file_system_image.file_system==NADOLDos then
|
|
24
|
-
is_valid=(contents.length==8192)
|
|
11
|
+
#should be a subclass for each file system
|
|
12
|
+
def self.file_system_file_types
|
|
13
|
+
{}
|
|
25
14
|
end
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
15
|
+
|
|
32
16
|
#colours cribbed from http://groups.google.com.au/group/comp.sys.apple2/browse_thread/thread/b9aa36ead6935c42/faa0f4df3e89060f
|
|
33
17
|
HGR_BLACK=PNG::Color::Black #color=0,4
|
|
34
18
|
HGR_GREEN=PNG::Color.new(0x2F,0xB8,0x1F,0xFF) #color=1
|
|
@@ -39,7 +23,7 @@ HGR_BLUE=PNG::Color.new(0x30,0x8F,0xE3,0xFF) #color=6
|
|
|
39
23
|
|
|
40
24
|
HGR_COLS=40*7
|
|
41
25
|
HGR_ROWS=8*8*3
|
|
42
|
-
|
|
26
|
+
|
|
43
27
|
|
|
44
28
|
#per Apple // Reference Manual for //e chapter 2, pages 22-35
|
|
45
29
|
#also TechNote - Apple IIe #3 Double High-Resolution Graphics - http://web.pdx.edu/~heiss/technotes/aiie/tn.aiie.03.html
|
|
@@ -48,9 +32,9 @@ SCALE=1
|
|
|
48
32
|
|
|
49
33
|
@@scanline_offsets=Array.new(HGR_ROWS)
|
|
50
34
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
35
|
+
3.times do |band|
|
|
36
|
+
8.times do |row|
|
|
37
|
+
8.times do |relative_scanline|
|
|
54
38
|
band_ram_offset=band*40
|
|
55
39
|
band_scanline_offset=band*64
|
|
56
40
|
scanline_ram_offset=relative_scanline*1024
|
|
@@ -69,30 +53,16 @@ def self.matching_score
|
|
|
69
53
|
[AppleBinary.matching_score+1,NADOLFile.matching_score+1].max
|
|
70
54
|
end
|
|
71
55
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
else
|
|
77
|
-
return 0x2000
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
def to_png
|
|
82
|
-
if file_system_image.file_system==AppleDos then
|
|
83
|
-
buffer=contents[4,contents.length-4]
|
|
84
|
-
else
|
|
85
|
-
buffer=contents
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
canvas = PNG::Canvas.new HGR_COLS*SCALE, HGR_ROWS*SCALE, PNG::Color::Black
|
|
89
|
-
0.upto(HGR_ROWS-1) do |y|
|
|
56
|
+
def to_picture
|
|
57
|
+
buffer=unpacked_picture_bytes
|
|
58
|
+
canvas = PNG::Canvas.new HGR_COLS, HGR_ROWS, PNG::Color::Black
|
|
59
|
+
HGR_ROWS.times do |y|
|
|
90
60
|
last_bit_set=false
|
|
91
|
-
|
|
61
|
+
40.times do |x_byte|
|
|
92
62
|
offset=@@scanline_offsets[y]+x_byte
|
|
93
63
|
current_byte=buffer[offset]
|
|
94
64
|
current_byte=0 if current_byte.nil? #if we overrun the buffer then assume it's black
|
|
95
|
-
|
|
65
|
+
7.times do |x_bit|
|
|
96
66
|
x=x_byte*7+x_bit
|
|
97
67
|
bit_set=((current_byte & (2**x_bit))>0)
|
|
98
68
|
if (bit_set) then
|
|
@@ -108,9 +78,10 @@ def to_png
|
|
|
108
78
|
end
|
|
109
79
|
this_pixel_colour=pallete[x%2]
|
|
110
80
|
AppleHiResPic.set_pixel(canvas,x,y,this_pixel_colour)
|
|
111
|
-
AppleHiResPic.set_pixel(canvas,x+1,y,this_pixel_colour) unless x>=
|
|
81
|
+
AppleHiResPic.set_pixel(canvas,x+1,y,this_pixel_colour) unless x>=HGR_COLS-1
|
|
112
82
|
end
|
|
113
83
|
end
|
|
84
|
+
|
|
114
85
|
last_bit_set=bit_set
|
|
115
86
|
end
|
|
116
87
|
end
|
|
@@ -121,24 +92,97 @@ def to_png
|
|
|
121
92
|
result
|
|
122
93
|
end
|
|
123
94
|
|
|
124
|
-
def
|
|
125
|
-
HGR_COLS
|
|
95
|
+
def picture_width
|
|
96
|
+
HGR_COLS
|
|
126
97
|
end
|
|
127
|
-
def
|
|
128
|
-
HGR_ROWS
|
|
98
|
+
def picture_height
|
|
99
|
+
HGR_ROWS
|
|
129
100
|
end
|
|
130
101
|
|
|
102
|
+
def picture_format
|
|
103
|
+
:png
|
|
104
|
+
end
|
|
131
105
|
private
|
|
132
106
|
def self.set_pixel(canvas,x,y,colour)
|
|
133
|
-
|
|
134
|
-
0.upto(SCALE-1) do |col|
|
|
135
|
-
canvas[x*SCALE+col, y*SCALE+row]= colour
|
|
136
|
-
end
|
|
137
|
-
end
|
|
107
|
+
canvas[x, y]= colour
|
|
138
108
|
end
|
|
139
109
|
|
|
140
110
|
end
|
|
141
111
|
|
|
112
|
+
class AppleDosPic < AppleHiResPic
|
|
113
|
+
|
|
114
|
+
def self.file_system_file_types
|
|
115
|
+
{
|
|
116
|
+
AppleDos=>0x04
|
|
117
|
+
}
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def self.load_address(contents)
|
|
121
|
+
contents[0]+contents[1]*256
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def header_length
|
|
125
|
+
4
|
|
126
|
+
end
|
|
127
|
+
def unpacked_picture_bytes
|
|
128
|
+
data_without_header
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
is_valid_file_if lambda {
|
|
132
|
+
load_address=AppleBinary.load_address(contents)
|
|
133
|
+
((contents.length>=8184) && (contents.length<=9000) && ((load_address==0x2000) || load_address==0x4000))
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
class NADOLPic < AppleHiResPic
|
|
139
|
+
def self.file_system_file_types
|
|
140
|
+
{
|
|
141
|
+
NADOLDos=>:any
|
|
142
|
+
}
|
|
143
|
+
end
|
|
144
|
+
is_valid_file_if lambda {
|
|
145
|
+
(contents.length==8192)
|
|
146
|
+
}
|
|
147
|
+
def unpacked_picture_bytes
|
|
148
|
+
contents
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
class PascalPic < AppleHiResPic
|
|
153
|
+
def self.file_system_file_types
|
|
154
|
+
{
|
|
155
|
+
PascalDos=>0x07
|
|
156
|
+
}
|
|
157
|
+
end
|
|
158
|
+
def unpacked_picture_bytes
|
|
159
|
+
contents
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
class ProDosBinPic < AppleHiResPic
|
|
165
|
+
def self.file_system_file_types
|
|
166
|
+
{
|
|
167
|
+
ProDos=>0x06
|
|
168
|
+
}
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
is_valid_file_if lambda {
|
|
172
|
+
(aux_code==0x2000 || aux_code==0x4000) && ((contents.length>=8192) && (contents.length<=9000)) || (aux_code==0x2000 && contents.length==0x4000)
|
|
173
|
+
}
|
|
174
|
+
def unpacked_picture_bytes
|
|
175
|
+
contents
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
def load_address
|
|
179
|
+
aux_code
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
142
186
|
|
|
143
187
|
# == Author
|
|
144
188
|
# Jonno Downes (jonno@jamtronix.com)
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
|
2
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
require 'PatchedPNG'
|
|
6
|
+
require 'ProDosFile'
|
|
7
|
+
#Apple Print Shop "MiniPix" format
|
|
8
|
+
# per http://groups.google.com.au/group/comp.sys.apple2.programmer/browse_frm/thread/414857c71d52b5d5/c7c883c10f648ca0
|
|
9
|
+
# Format is 88x52 pixels
|
|
10
|
+
module ApplePrintShopMiniPix
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
APS_MINIPIX_FOREGROUND=PNG::Color.new(0x01,0x01,0x01,0xFF)
|
|
14
|
+
|
|
15
|
+
APS_MINIPIX_BACKGROUND=PNG::Color.new(0x80,0x80,0x80,0x80)
|
|
16
|
+
|
|
17
|
+
def to_picture
|
|
18
|
+
canvas = PNG::Canvas.new picture_width, picture_height, PNG::Color::Green
|
|
19
|
+
buffer=data_without_header
|
|
20
|
+
52.times do |y|
|
|
21
|
+
row_data=buffer[y*11,11]
|
|
22
|
+
x=0
|
|
23
|
+
row_data.each_byte do |byte|
|
|
24
|
+
8.times do |bit_offset|
|
|
25
|
+
bitmask=0b10000000>>bit_offset
|
|
26
|
+
# puts "y #{y} x #{x} byte #{"%08b" % byte} bit #{bit_offset} #{"%08b" % bitmask}"
|
|
27
|
+
if ((byte & bitmask)==bitmask) then
|
|
28
|
+
canvas[x, y]= APS_MINIPIX_FOREGROUND
|
|
29
|
+
else
|
|
30
|
+
canvas[x, y]= APS_MINIPIX_BACKGROUND
|
|
31
|
+
end
|
|
32
|
+
x+=1
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
png = PNG.new canvas
|
|
37
|
+
result=png.raw_bytes
|
|
38
|
+
result
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def picture_width
|
|
42
|
+
88
|
|
43
|
+
end
|
|
44
|
+
def picture_height
|
|
45
|
+
52
|
|
46
|
+
end
|
|
47
|
+
def picture_format
|
|
48
|
+
:png
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
class AppleDosPrintShopMiniPix<AppleBinary
|
|
54
|
+
include ApplePrintShopMiniPix
|
|
55
|
+
is_valid_file_if lambda {
|
|
56
|
+
(contents.length==0x300) &&
|
|
57
|
+
((AppleBinary.load_address(contents)==0x5800) ||(AppleBinary.load_address(contents)==0x7800))
|
|
58
|
+
}
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
class ProDosPrintShopMiniPix<ProDosFile
|
|
62
|
+
include ApplePrintShopMiniPix
|
|
63
|
+
# this class should be low scoring, as a last resort
|
|
64
|
+
def self.matching_score
|
|
65
|
+
ProDosFile.matching_score+5
|
|
66
|
+
end
|
|
67
|
+
is_valid_file_if lambda {
|
|
68
|
+
(contents.length==0x240) &&
|
|
69
|
+
(file_type==0x06) &&
|
|
70
|
+
((aux_code==0x5800) ||(aux_code==0x7800))
|
|
71
|
+
}
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
# == Author
|
|
77
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
78
|
+
#
|
|
79
|
+
# == Copyright
|
|
80
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
81
|
+
#
|
|
82
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
83
|
+
#a copy of this software and associated documentation files (the
|
|
84
|
+
#"Software"), to deal in the Software without restriction, including
|
|
85
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
86
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
87
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
88
|
+
#the following conditions:
|
|
89
|
+
|
|
90
|
+
# The above copyright notice and this permission notice shall be
|
|
91
|
+
# included in all copies or substantial portions of the Software.
|
|
92
|
+
|
|
93
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
94
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
95
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
96
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
97
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
98
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
99
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
generic_path=File.dirname(__FILE__)+'/../generic/'
|
|
2
|
+
$:.unshift(generic_path) unless
|
|
3
|
+
$:.include?(generic_path) || $:.include?(File.expand_path(generic_path))
|
|
4
|
+
|
|
1
5
|
require 'NativeFileType'
|
|
6
|
+
require 'ScreenDump'
|
|
2
7
|
class AppleText<NativeFileType
|
|
3
8
|
|
|
4
9
|
def self.file_system_file_types
|
|
@@ -14,8 +19,19 @@ def to_text
|
|
|
14
19
|
s.tr("\r","\n")
|
|
15
20
|
end
|
|
16
21
|
|
|
22
|
+
def text_for_screendump
|
|
23
|
+
if (file_system_image.file_system.to_s==:ProDos.to_s) then
|
|
24
|
+
s=""
|
|
25
|
+
contents.each_byte{|b| s+= ((b+128)%256).chr}
|
|
26
|
+
return s
|
|
27
|
+
end
|
|
28
|
+
data_without_header
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
include ScreenDump
|
|
17
32
|
end
|
|
18
33
|
|
|
34
|
+
|
|
19
35
|
|
|
20
36
|
# == Author
|
|
21
37
|
# Jonno Downes (jonno@jamtronix.com)
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
$:.unshift(File.dirname(__FILE__)) unless
|
|
2
|
+
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
|
3
|
+
|
|
4
|
+
#picture packed with "The Axe Packer"
|
|
5
|
+
class PackedAppleDosPic<AppleDosPic
|
|
6
|
+
|
|
7
|
+
is_valid_file_if lambda {
|
|
8
|
+
load_address=AppleBinary.load_address(contents)
|
|
9
|
+
(contents.length<=9000) && (load_address==0x60FF)
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
def unpacked_picture_bytes
|
|
13
|
+
|
|
14
|
+
# puts @@scanline_offsets.length
|
|
15
|
+
packed_buffer=data_without_header
|
|
16
|
+
unpacked_buffer="\000"*8192
|
|
17
|
+
p=0
|
|
18
|
+
parity=1
|
|
19
|
+
row=1
|
|
20
|
+
column=0
|
|
21
|
+
done=false
|
|
22
|
+
while !done do
|
|
23
|
+
b=packed_buffer[p]
|
|
24
|
+
if b==0 then
|
|
25
|
+
run_length=packed_buffer[p+1]
|
|
26
|
+
colour=packed_buffer[p+2]
|
|
27
|
+
p+=2
|
|
28
|
+
else
|
|
29
|
+
run_length=1
|
|
30
|
+
colour=b
|
|
31
|
+
end
|
|
32
|
+
run_length.times do |i|
|
|
33
|
+
destination_offset=@@scanline_offsets[row]+column
|
|
34
|
+
unpacked_buffer[destination_offset]=colour
|
|
35
|
+
row+=2
|
|
36
|
+
if row>=192 then
|
|
37
|
+
row=parity
|
|
38
|
+
column+=1
|
|
39
|
+
if column>=40 then
|
|
40
|
+
if parity==0 then
|
|
41
|
+
done=true
|
|
42
|
+
else
|
|
43
|
+
row=0
|
|
44
|
+
column=0
|
|
45
|
+
parity=0
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
p+=1
|
|
51
|
+
done=true if p==packed_buffer.length
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
unpacked_buffer
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
# == Author
|
|
63
|
+
# Jonno Downes (jonno@jamtronix.com)
|
|
64
|
+
#
|
|
65
|
+
# == Copyright
|
|
66
|
+
# Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
|
|
67
|
+
#
|
|
68
|
+
#Permission is hereby granted, free of charge, to any person obtaining
|
|
69
|
+
#a copy of this software and associated documentation files (the
|
|
70
|
+
#"Software"), to deal in the Software without restriction, including
|
|
71
|
+
#without limitation the rights to use, copy, modify, merge, publish,
|
|
72
|
+
#distribute, sublicense, and/or sell copies of the Software, and to
|
|
73
|
+
#permit persons to whom the Software is furnished to do so, subject to
|
|
74
|
+
#the following conditions:
|
|
75
|
+
|
|
76
|
+
# The above copyright notice and this permission notice shall be
|
|
77
|
+
# included in all copies or substantial portions of the Software.
|
|
78
|
+
|
|
79
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
80
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
81
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
82
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
83
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
84
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
85
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -71,11 +71,11 @@ PRODOS_FILE_TYPES={
|
|
|
71
71
|
0xFD=>"VAR", #AppleSoft BASIC variables file
|
|
72
72
|
0xFE=>"REL", #ProDOS EDASM relocatable object module file
|
|
73
73
|
0xFF=>"SYS", #ProDOS8 system file}
|
|
74
|
-
}
|
|
74
|
+
} unless defined? PRODOS_FILE_TYPES
|
|
75
75
|
|
|
76
76
|
# this class should be low scoring, as a last resort
|
|
77
77
|
def ProDosFile.matching_score
|
|
78
|
-
|
|
78
|
+
GenericFile.matching_score+0.1
|
|
79
79
|
end
|
|
80
80
|
|
|
81
81
|
def type_description
|
|
@@ -85,7 +85,6 @@ end
|
|
|
85
85
|
|
|
86
86
|
end
|
|
87
87
|
|
|
88
|
-
|
|
89
88
|
# == Author
|
|
90
89
|
# Jonno Downes (jonno@jamtronix.com)
|
|
91
90
|
#
|