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.
Files changed (712) hide show
  1. data/bin/ripxplore.rb +5 -25
  2. data/doc/classes/A2Dsk.html +9 -0
  3. data/doc/classes/A2DskDosOrder.html +9 -0
  4. data/doc/classes/A2DskPhysicalOrder.html +9 -0
  5. data/doc/classes/Apple2.html +171 -21
  6. data/doc/classes/Apple2.src/M000187.html +18 -0
  7. data/doc/classes/Apple2.src/M000188.html +18 -0
  8. data/doc/classes/Apple2.src/M000189.html +18 -0
  9. data/doc/classes/Apple2.src/M000190.html +19 -0
  10. data/doc/classes/Apple2.src/M000191.html +19 -0
  11. data/doc/classes/Apple2.src/M000192.html +18 -0
  12. data/doc/classes/Apple2.src/M000193.html +18 -0
  13. data/doc/classes/Apple2.src/M000194.html +18 -0
  14. data/doc/classes/Apple2.src/M000195.html +18 -0
  15. data/doc/classes/Apple2.src/M000196.html +18 -0
  16. data/doc/classes/Apple2.src/M000197.html +18 -0
  17. data/doc/classes/Apple2.src/M000198.html +18 -0
  18. data/doc/classes/Apple2.src/M000199.html +18 -0
  19. data/doc/classes/Apple2.src/M000200.html +18 -0
  20. data/doc/classes/AppleBinary.html +21 -21
  21. data/doc/classes/AppleBinary.src/M000153.html +20 -0
  22. data/doc/classes/AppleBinary.src/M000154.html +18 -0
  23. data/doc/classes/AppleBinary.src/M000155.html +18 -0
  24. data/doc/classes/AppleBinary.src/M000156.html +18 -0
  25. data/doc/classes/AppleCPM.html +7 -0
  26. data/doc/classes/AppleDos.html +7 -0
  27. data/doc/classes/AppleDosPic.html +186 -0
  28. data/doc/classes/AppleDosPic.src/M000291.html +20 -0
  29. data/doc/classes/AppleDosPic.src/M000292.html +18 -0
  30. data/doc/classes/AppleDosPic.src/M000293.html +18 -0
  31. data/doc/classes/AppleDosPic.src/M000294.html +18 -0
  32. data/doc/classes/AppleDosPrintShopMiniPix.html +120 -0
  33. data/doc/classes/AppleHiResPic.html +43 -43
  34. data/doc/classes/AppleHiResPic.src/M000147.html +18 -0
  35. data/doc/classes/AppleHiResPic.src/M000148.html +18 -0
  36. data/doc/classes/AppleHiResPic.src/M000149.html +53 -0
  37. data/doc/classes/AppleHiResPic.src/M000150.html +18 -0
  38. data/doc/classes/AppleHiResPic.src/M000151.html +18 -0
  39. data/doc/classes/AppleHiResPic.src/M000152.html +18 -0
  40. data/doc/classes/ApplePrintShopMiniPix.html +204 -0
  41. data/doc/classes/ApplePrintShopMiniPix.src/M000313.html +38 -0
  42. data/doc/classes/ApplePrintShopMiniPix.src/M000314.html +18 -0
  43. data/doc/classes/ApplePrintShopMiniPix.src/M000315.html +18 -0
  44. data/doc/classes/ApplePrintShopMiniPix.src/M000316.html +18 -0
  45. data/doc/classes/AppleText.html +32 -10
  46. data/doc/classes/AppleText.src/M000215.html +21 -0
  47. data/doc/classes/AppleText.src/M000216.html +20 -0
  48. data/doc/classes/AppleText.src/M000217.html +23 -0
  49. data/doc/classes/AppleWorksWP.html +7 -0
  50. data/doc/classes/Applesoft.html +7 -0
  51. data/doc/classes/Atari800.html +165 -15
  52. data/doc/classes/Atari800.src/M000250.html +18 -0
  53. data/doc/classes/Atari800.src/M000251.html +23 -0
  54. data/doc/classes/Atari800.src/M000252.html +18 -0
  55. data/doc/classes/Atari800.src/M000253.html +19 -0
  56. data/doc/classes/Atari800.src/M000254.html +18 -0
  57. data/doc/classes/Atari800.src/M000255.html +18 -0
  58. data/doc/classes/Atari800.src/M000256.html +18 -0
  59. data/doc/classes/Atari800.src/M000257.html +18 -0
  60. data/doc/classes/Atari800.src/M000258.html +18 -0
  61. data/doc/classes/Atari800.src/M000259.html +18 -0
  62. data/doc/classes/Atari800.src/M000260.html +18 -0
  63. data/doc/classes/Atari800.src/M000261.html +18 -0
  64. data/doc/classes/Atari800.src/M000262.html +18 -0
  65. data/doc/classes/AtariBasic.html +7 -0
  66. data/doc/classes/AtariBinary.html +9 -2
  67. data/doc/classes/AtariBinary.src/M000241.html +2 -2
  68. data/doc/classes/AtariDos.html +7 -0
  69. data/doc/classes/AtariText.html +17 -10
  70. data/doc/classes/AtariText.src/M000011.html +20 -0
  71. data/doc/classes/AtariText.src/M000012.html +18 -0
  72. data/doc/classes/Atr.html +7 -0
  73. data/doc/classes/C64.html +175 -25
  74. data/doc/classes/C64.src/M000043.html +18 -0
  75. data/doc/classes/C64.src/M000044.html +18 -0
  76. data/doc/classes/C64.src/M000045.html +31 -0
  77. data/doc/classes/C64.src/M000046.html +22 -0
  78. data/doc/classes/C64.src/M000047.html +19 -0
  79. data/doc/classes/C64.src/M000048.html +19 -0
  80. data/doc/classes/C64.src/M000049.html +18 -0
  81. data/doc/classes/C64.src/M000050.html +18 -0
  82. data/doc/classes/C64.src/M000051.html +18 -0
  83. data/doc/classes/C64.src/M000052.html +18 -0
  84. data/doc/classes/C64.src/M000053.html +18 -0
  85. data/doc/classes/C64.src/M000054.html +18 -0
  86. data/doc/classes/C64.src/M000055.html +18 -0
  87. data/doc/classes/C64.src/M000056.html +18 -0
  88. data/doc/classes/C64.src/M000057.html +18 -0
  89. data/doc/classes/C64BasicPrg.html +7 -0
  90. data/doc/classes/C64Prg.html +7 -0
  91. data/doc/classes/C64PrgText.html +7 -0
  92. data/doc/classes/C64Seq.html +7 -0
  93. data/doc/classes/CPMFile.html +7 -0
  94. data/doc/classes/CacheAndCollections.html +167 -0
  95. data/doc/classes/CacheAndCollections.src/M000005.html +21 -0
  96. data/doc/classes/CacheAndCollections.src/M000006.html +26 -0
  97. data/doc/classes/CacheAndCollections.src/M000007.html +22 -0
  98. data/doc/classes/CbmDos.html +7 -0
  99. data/doc/classes/CbmFile.html +7 -0
  100. data/doc/classes/Coco.html +337 -0
  101. data/doc/classes/Coco.src/M000095.html +18 -0
  102. data/doc/classes/Coco.src/M000096.html +18 -0
  103. data/doc/classes/Coco.src/M000097.html +18 -0
  104. data/doc/classes/Coco.src/M000098.html +18 -0
  105. data/doc/classes/Coco.src/M000099.html +18 -0
  106. data/doc/classes/Coco.src/M000100.html +18 -0
  107. data/doc/classes/Coco.src/M000101.html +18 -0
  108. data/doc/classes/Coco.src/M000102.html +18 -0
  109. data/doc/classes/Coco.src/M000103.html +18 -0
  110. data/doc/classes/Coco.src/M000104.html +18 -0
  111. data/doc/classes/Coco.src/M000105.html +18 -0
  112. data/doc/classes/Coco.src/M000106.html +18 -0
  113. data/doc/classes/Coco.src/M000107.html +55 -0
  114. data/doc/classes/CocoBasic.html +178 -0
  115. data/doc/classes/CocoBasic.src/M000126.html +20 -0
  116. data/doc/classes/CocoBasic.src/M000127.html +72 -0
  117. data/doc/classes/CocoMachineLanguage.html +171 -0
  118. data/doc/classes/CocoMachineLanguage.src/M000008.html +20 -0
  119. data/doc/classes/CocoMachineLanguage.src/M000009.html +18 -0
  120. data/doc/classes/CocoMachineLanguage.src/M000010.html +19 -0
  121. data/doc/classes/CocoScreen.html +191 -0
  122. data/doc/classes/CocoScreen.src/M000122.html +18 -0
  123. data/doc/classes/CocoScreen.src/M000123.html +18 -0
  124. data/doc/classes/CocoScreen.src/M000124.html +18 -0
  125. data/doc/classes/CocoScreen.src/M000125.html +18 -0
  126. data/doc/classes/CocoText.html +156 -0
  127. data/doc/classes/CocoText.src/M000145.html +20 -0
  128. data/doc/classes/CocoText.src/M000146.html +18 -0
  129. data/doc/classes/D64.html +7 -0
  130. data/doc/classes/D65.html +6 -0
  131. data/doc/classes/DumpUtilities.html +6 -0
  132. data/doc/classes/FileCache.html +140 -30
  133. data/doc/classes/FileCache.src/M000201.html +18 -0
  134. data/doc/classes/FileCache.src/M000202.html +20 -0
  135. data/doc/classes/FileCache.src/M000203.html +24 -0
  136. data/doc/classes/FileCache.src/M000204.html +22 -0
  137. data/doc/classes/FileCache.src/M000205.html +32 -0
  138. data/doc/classes/FileCache.src/M000206.html +21 -0
  139. data/doc/classes/FileCache.src/M000207.html +22 -0
  140. data/doc/classes/FileCache.src/M000208.html +23 -0
  141. data/doc/classes/FileCache.src/M000209.html +27 -0
  142. data/doc/classes/FileCache.src/M000210.html +24 -0
  143. data/doc/classes/FileCache.src/M000211.html +21 -0
  144. data/doc/classes/FileCacheItem.html +10 -10
  145. data/doc/classes/FileCacheItem.src/M000235.html +18 -0
  146. data/doc/classes/FileCacheItem.src/M000236.html +18 -0
  147. data/doc/classes/FileContainer.html +7 -0
  148. data/doc/classes/FileSystem.html +41 -41
  149. data/doc/classes/FileSystem.src/M000134.html +18 -0
  150. data/doc/classes/FileSystem.src/M000135.html +18 -0
  151. data/doc/classes/FileSystem.src/M000136.html +18 -0
  152. data/doc/classes/FileSystem.src/M000137.html +18 -0
  153. data/doc/classes/FileSystem.src/M000138.html +18 -0
  154. data/doc/classes/FileSystem.src/M000139.html +18 -0
  155. data/doc/classes/FileSystem.src/M000140.html +20 -0
  156. data/doc/classes/FileSystem.src/M000141.html +25 -0
  157. data/doc/classes/FileSystemImage.html +131 -86
  158. data/doc/classes/FileSystemImage.src/M000269.html +20 -0
  159. data/doc/classes/FileSystemImage.src/M000270.html +41 -0
  160. data/doc/classes/FileSystemImage.src/M000271.html +27 -0
  161. data/doc/classes/FileSystemImage.src/M000272.html +18 -0
  162. data/doc/classes/FileSystemImage.src/M000273.html +18 -0
  163. data/doc/classes/FileSystemImage.src/M000274.html +18 -0
  164. data/doc/classes/FileSystemImage.src/M000275.html +22 -0
  165. data/doc/classes/FileSystemImage.src/M000276.html +19 -0
  166. data/doc/classes/FileSystemImage.src/M000277.html +18 -0
  167. data/doc/classes/FileSystemImage.src/M000278.html +18 -0
  168. data/doc/classes/FileSystemImage.src/M000279.html +18 -0
  169. data/doc/classes/FileSystemImage.src/M000280.html +18 -0
  170. data/doc/classes/FileSystemImage.src/M000281.html +20 -0
  171. data/doc/classes/FileSystemImage.src/M000282.html +22 -0
  172. data/doc/classes/FileSystemImage.src/M000283.html +22 -0
  173. data/doc/classes/FileSystemImage.src/M000284.html +18 -0
  174. data/doc/classes/FileSystemImage.src/M000285.html +23 -0
  175. data/doc/classes/FileSystemImage.src/M000286.html +18 -0
  176. data/doc/classes/FileSystemImage.src/M000287.html +18 -0
  177. data/doc/classes/FileSystemImage.src/M000288.html +18 -0
  178. data/doc/classes/G64.html +7 -0
  179. data/doc/classes/GenericFile.html +7 -0
  180. data/doc/classes/GenericGIF.html +193 -0
  181. data/doc/classes/GenericGIF.src/M000308.html +18 -0
  182. data/doc/classes/GenericGIF.src/M000309.html +18 -0
  183. data/doc/classes/GenericGIF.src/M000310.html +18 -0
  184. data/doc/classes/GenericGIF.src/M000311.html +18 -0
  185. data/doc/classes/GenericGIF.src/M000312.html +18 -0
  186. data/doc/classes/HostSystem.html +249 -31
  187. data/doc/classes/HostSystem.src/M000058.html +18 -0
  188. data/doc/classes/HostSystem.src/M000059.html +22 -0
  189. data/doc/classes/HostSystem.src/M000060.html +18 -0
  190. data/doc/classes/HostSystem.src/M000061.html +18 -0
  191. data/doc/classes/HostSystem.src/M000062.html +22 -0
  192. data/doc/classes/HostSystem.src/M000063.html +33 -0
  193. data/doc/classes/HostSystem.src/M000064.html +18 -0
  194. data/doc/classes/HostSystem.src/M000065.html +19 -0
  195. data/doc/classes/HostSystem.src/M000066.html +18 -0
  196. data/doc/classes/HostSystem.src/M000067.html +18 -0
  197. data/doc/classes/HostSystem.src/M000068.html +18 -0
  198. data/doc/classes/HostSystem.src/M000069.html +18 -0
  199. data/doc/classes/HostSystem.src/M000070.html +18 -0
  200. data/doc/classes/HostSystem.src/M000071.html +18 -0
  201. data/doc/classes/HostSystem.src/M000072.html +18 -0
  202. data/doc/classes/HostSystem.src/M000073.html +18 -0
  203. data/doc/classes/HostSystem.src/M000074.html +29 -0
  204. data/doc/classes/HostSystem.src/M000075.html +18 -0
  205. data/doc/classes/ImageFormat.html +85 -85
  206. data/doc/classes/ImageFormat.src/M000218.html +18 -0
  207. data/doc/classes/ImageFormat.src/M000219.html +18 -0
  208. data/doc/classes/ImageFormat.src/M000220.html +18 -0
  209. data/doc/classes/ImageFormat.src/M000221.html +18 -0
  210. data/doc/classes/ImageFormat.src/M000222.html +18 -0
  211. data/doc/classes/ImageFormat.src/M000223.html +22 -0
  212. data/doc/classes/ImageFormat.src/M000224.html +19 -0
  213. data/doc/classes/ImageFormat.src/M000225.html +18 -0
  214. data/doc/classes/ImageFormat.src/M000226.html +18 -0
  215. data/doc/classes/ImageFormat.src/M000227.html +18 -0
  216. data/doc/classes/ImageFormat.src/M000228.html +18 -0
  217. data/doc/classes/ImageFormat.src/M000229.html +18 -0
  218. data/doc/classes/ImageFormat.src/M000230.html +18 -0
  219. data/doc/classes/ImageFormat.src/M000231.html +18 -0
  220. data/doc/classes/ImageFormat.src/M000232.html +20 -0
  221. data/doc/classes/ImageFormat.src/M000233.html +26 -0
  222. data/doc/classes/ImageFormat.src/M000234.html +18 -0
  223. data/doc/classes/ImageSniffing.html +94 -14
  224. data/doc/classes/ImageSniffing.src/M000052.html +2 -2
  225. data/doc/classes/ImageSniffing.src/M000109.html +102 -0
  226. data/doc/classes/ImageSniffing.src/M000110.html +36 -0
  227. data/doc/classes/ImageSniffing.src/M000111.html +43 -0
  228. data/doc/classes/ImageSniffing.src/M000112.html +46 -0
  229. data/doc/classes/ImageSniffing.src/M000113.html +59 -0
  230. data/doc/classes/ImageSniffing.src/M000114.html +74 -0
  231. data/doc/classes/IntegerBASIC.html +7 -0
  232. data/doc/classes/JvcDsk.html +231 -0
  233. data/doc/classes/JvcDsk.src/M000263.html +18 -0
  234. data/doc/classes/JvcDsk.src/M000264.html +39 -0
  235. data/doc/classes/JvcDsk.src/M000265.html +18 -0
  236. data/doc/classes/JvcDsk.src/M000266.html +18 -0
  237. data/doc/classes/JvcDsk.src/M000267.html +18 -0
  238. data/doc/classes/JvcDsk.src/M000268.html +22 -0
  239. data/doc/classes/MBasic.html +7 -0
  240. data/doc/classes/NADOLDos.html +7 -0
  241. data/doc/classes/NADOLFile.html +8 -0
  242. data/doc/classes/NADOLPic.html +156 -0
  243. data/doc/classes/NADOLPic.src/M000289.html +20 -0
  244. data/doc/classes/NADOLPic.src/M000290.html +18 -0
  245. data/doc/classes/NADOLTokens.html +8 -0
  246. data/doc/classes/NativeFileType.html +91 -91
  247. data/doc/classes/NativeFileType.src/M000169.html +22 -0
  248. data/doc/classes/NativeFileType.src/M000170.html +18 -0
  249. data/doc/classes/NativeFileType.src/M000171.html +18 -0
  250. data/doc/classes/NativeFileType.src/M000172.html +18 -0
  251. data/doc/classes/NativeFileType.src/M000173.html +18 -0
  252. data/doc/classes/NativeFileType.src/M000174.html +18 -0
  253. data/doc/classes/NativeFileType.src/M000175.html +18 -0
  254. data/doc/classes/NativeFileType.src/M000176.html +23 -0
  255. data/doc/classes/NativeFileType.src/M000177.html +18 -0
  256. data/doc/classes/NativeFileType.src/M000178.html +18 -0
  257. data/doc/classes/NativeFileType.src/M000179.html +24 -0
  258. data/doc/classes/NativeFileType.src/M000180.html +41 -0
  259. data/doc/classes/NativeFileType.src/M000181.html +24 -0
  260. data/doc/classes/NativeFileType.src/M000182.html +18 -0
  261. data/doc/classes/NativeFileType.src/M000183.html +18 -0
  262. data/doc/classes/NativeFileType.src/M000184.html +18 -0
  263. data/doc/classes/NativeFileType.src/M000185.html +20 -0
  264. data/doc/classes/NativeFileType.src/M000186.html +27 -0
  265. data/doc/classes/PNG/Canvas.html +7 -0
  266. data/doc/classes/PNG/Color.html +7 -0
  267. data/doc/classes/PNG.html +7 -0
  268. data/doc/classes/PackedAppleDosPic.html +145 -0
  269. data/doc/classes/PackedAppleDosPic.src/M000128.html +59 -0
  270. data/doc/classes/PascalDos.html +7 -0
  271. data/doc/classes/PascalFile.html +7 -0
  272. data/doc/classes/PascalPic.html +156 -0
  273. data/doc/classes/PascalPic.src/M000240.html +20 -0
  274. data/doc/classes/PascalPic.src/M000241.html +18 -0
  275. data/doc/classes/Pc99DD.html +250 -0
  276. data/doc/classes/Pc99DD.src/M000035.html +18 -0
  277. data/doc/classes/Pc99DD.src/M000036.html +18 -0
  278. data/doc/classes/Pc99DD.src/M000037.html +18 -0
  279. data/doc/classes/Pc99DD.src/M000038.html +18 -0
  280. data/doc/classes/Pc99DD.src/M000039.html +18 -0
  281. data/doc/classes/Pc99DD.src/M000040.html +18 -0
  282. data/doc/classes/Pc99DD.src/M000041.html +18 -0
  283. data/doc/classes/Pc99DD.src/M000042.html +18 -0
  284. data/doc/classes/Pc99Dsk.html +120 -0
  285. data/doc/classes/Pc99SD.html +250 -0
  286. data/doc/classes/Pc99SD.src/M000242.html +18 -0
  287. data/doc/classes/Pc99SD.src/M000243.html +18 -0
  288. data/doc/classes/Pc99SD.src/M000244.html +18 -0
  289. data/doc/classes/Pc99SD.src/M000245.html +18 -0
  290. data/doc/classes/Pc99SD.src/M000246.html +18 -0
  291. data/doc/classes/Pc99SD.src/M000247.html +18 -0
  292. data/doc/classes/Pc99SD.src/M000248.html +18 -0
  293. data/doc/classes/Pc99SD.src/M000249.html +18 -0
  294. data/doc/classes/ProDos.html +25 -12
  295. data/doc/classes/ProDos.src/M000161.html +18 -0
  296. data/doc/classes/ProDos.src/M000162.html +22 -0
  297. data/doc/classes/ProDosBinPic.html +171 -0
  298. data/doc/classes/ProDosBinPic.src/M000237.html +20 -0
  299. data/doc/classes/ProDosBinPic.src/M000238.html +18 -0
  300. data/doc/classes/ProDosBinPic.src/M000239.html +18 -0
  301. data/doc/classes/ProDosFile.html +16 -16
  302. data/doc/classes/ProDosFile.src/M000032.html +20 -0
  303. data/doc/classes/ProDosFile.src/M000033.html +18 -0
  304. data/doc/classes/ProDosFile.src/M000034.html +19 -0
  305. data/doc/classes/ProDosPrintShopMiniPix.html +149 -0
  306. data/doc/classes/ProDosPrintShopMiniPix.src/M000013.html +18 -0
  307. data/doc/classes/Proc.html +7 -0
  308. data/doc/classes/ProcSource.html +6 -0
  309. data/doc/classes/RDoc.html +6 -0
  310. data/doc/classes/RawDisk.html +11 -11
  311. data/doc/classes/RawDisk.src/M000159.html +18 -0
  312. data/doc/classes/RawDisk.src/M000160.html +23 -0
  313. data/doc/classes/RipXplore.html +1 -1
  314. data/doc/classes/RipXploreLog.html +6 -0
  315. data/doc/classes/RsDos.html +229 -0
  316. data/doc/classes/RsDos.src/M000023.html +18 -0
  317. data/doc/classes/RsDos.src/M000024.html +18 -0
  318. data/doc/classes/RsDos.src/M000025.html +18 -0
  319. data/doc/classes/RsDos.src/M000026.html +62 -0
  320. data/doc/classes/ScAsm.html +7 -0
  321. data/doc/classes/ScreenDump.html +131 -0
  322. data/doc/classes/ScreenDump.src/M000307.html +24 -0
  323. data/doc/classes/ScreenDumps.html +180 -0
  324. data/doc/classes/ScreenDumps.src/M000027.html +22 -0
  325. data/doc/classes/ScreenDumps.src/M000028.html +24 -0
  326. data/doc/classes/ScreenDumps.src/M000029.html +30 -0
  327. data/doc/classes/SubclassTracking.html +6 -0
  328. data/doc/classes/TestFileCache.html +7 -0
  329. data/doc/classes/Ti99.html +304 -0
  330. data/doc/classes/Ti99.src/M000295.html +18 -0
  331. data/doc/classes/Ti99.src/M000296.html +18 -0
  332. data/doc/classes/Ti99.src/M000297.html +18 -0
  333. data/doc/classes/Ti99.src/M000298.html +18 -0
  334. data/doc/classes/Ti99.src/M000299.html +18 -0
  335. data/doc/classes/Ti99.src/M000300.html +18 -0
  336. data/doc/classes/Ti99.src/M000301.html +18 -0
  337. data/doc/classes/Ti99.src/M000302.html +18 -0
  338. data/doc/classes/Ti99.src/M000303.html +18 -0
  339. data/doc/classes/Ti99.src/M000304.html +18 -0
  340. data/doc/classes/Ti99.src/M000305.html +18 -0
  341. data/doc/classes/Ti99.src/M000306.html +18 -0
  342. data/doc/classes/Ti99BasicFile.html +161 -0
  343. data/doc/classes/Ti99BasicFile.src/M000108.html +72 -0
  344. data/doc/classes/Ti99Dsk.html +276 -0
  345. data/doc/classes/Ti99Dsk.src/M000014.html +18 -0
  346. data/doc/classes/Ti99Dsk.src/M000015.html +18 -0
  347. data/doc/classes/Ti99Dsk.src/M000016.html +18 -0
  348. data/doc/classes/Ti99Dsk.src/M000017.html +18 -0
  349. data/doc/classes/Ti99Dsk.src/M000018.html +18 -0
  350. data/doc/classes/Ti99Dsk.src/M000019.html +22 -0
  351. data/doc/classes/Ti99Dsk.src/M000020.html +22 -0
  352. data/doc/classes/Ti99Dsk.src/M000021.html +22 -0
  353. data/doc/classes/Ti99Dsk.src/M000022.html +27 -0
  354. data/doc/classes/Ti99File.html +156 -0
  355. data/doc/classes/Ti99File.src/M000167.html +20 -0
  356. data/doc/classes/Ti99File.src/M000168.html +18 -0
  357. data/doc/classes/Ti99Fms.html +163 -0
  358. data/doc/classes/Ti99Fms.src/M000157.html +18 -0
  359. data/doc/classes/Ti99Fms.src/M000158.html +77 -0
  360. data/doc/classes/Ti99TextFile.html +154 -0
  361. data/doc/classes/Ti99TextFile.src/M000030.html +33 -0
  362. data/doc/classes/Ti99TextFile.src/M000031.html +18 -0
  363. data/doc/classes/TiArtistColours.html +113 -0
  364. data/doc/classes/TiArtistPattern.html +209 -0
  365. data/doc/classes/TiArtistPattern.src/M000080.html +50 -0
  366. data/doc/classes/TiArtistPattern.src/M000081.html +18 -0
  367. data/doc/classes/TiArtistPattern.src/M000082.html +18 -0
  368. data/doc/classes/TiArtistPattern.src/M000083.html +18 -0
  369. data/doc/classes/TiRLE.html +197 -0
  370. data/doc/classes/TiRLE.src/M000118.html +22 -0
  371. data/doc/classes/TiRLE.src/M000119.html +22 -0
  372. data/doc/classes/TiRLE.src/M000120.html +43 -0
  373. data/doc/classes/TiRLE.src/M000121.html +18 -0
  374. data/doc/classes/Trs80.html +145 -13
  375. data/doc/classes/Trs80.src/M000084.html +18 -0
  376. data/doc/classes/Trs80.src/M000085.html +18 -0
  377. data/doc/classes/Trs80.src/M000086.html +18 -0
  378. data/doc/classes/Trs80.src/M000087.html +18 -0
  379. data/doc/classes/Trs80.src/M000088.html +18 -0
  380. data/doc/classes/Trs80.src/M000089.html +18 -0
  381. data/doc/classes/Trs80.src/M000090.html +18 -0
  382. data/doc/classes/Trs80.src/M000091.html +18 -0
  383. data/doc/classes/Trs80.src/M000092.html +18 -0
  384. data/doc/classes/Trs80.src/M000093.html +18 -0
  385. data/doc/classes/Trs80.src/M000094.html +18 -0
  386. data/doc/classes/Trs80BasicListing.html +174 -0
  387. data/doc/classes/Trs80BasicListing.src/M000212.html +20 -0
  388. data/doc/classes/Trs80BasicListing.src/M000213.html +18 -0
  389. data/doc/classes/Trs80BasicListing.src/M000214.html +18 -0
  390. data/doc/classes/Trs80Cmd.html +20 -20
  391. data/doc/classes/Trs80Cmd.src/M000163.html +19 -0
  392. data/doc/classes/Trs80Cmd.src/M000164.html +24 -0
  393. data/doc/classes/Trs80Cmd.src/M000165.html +20 -0
  394. data/doc/classes/Trs80Cmd.src/M000166.html +35 -0
  395. data/doc/classes/Trs80Jcl.html +7 -0
  396. data/doc/classes/Trs80Jv1Dsk.html +25 -25
  397. data/doc/classes/Trs80Jv1Dsk.src/M000129.html +18 -0
  398. data/doc/classes/Trs80Jv1Dsk.src/M000130.html +18 -0
  399. data/doc/classes/Trs80Jv1Dsk.src/M000131.html +18 -0
  400. data/doc/classes/Trs80Jv1Dsk.src/M000132.html +18 -0
  401. data/doc/classes/Trs80Jv1Dsk.src/M000133.html +21 -0
  402. data/doc/classes/Trs80LevelIIBasic.html +28 -10
  403. data/doc/classes/Trs80LevelIIBasic.src/M000142.html +20 -0
  404. data/doc/classes/Trs80LevelIIBasic.src/M000143.html +18 -0
  405. data/doc/classes/Trs80LevelIIBasic.src/M000144.html +43 -0
  406. data/doc/classes/Trs80PascalSource.html +7 -0
  407. data/doc/classes/Trs80Text.html +181 -0
  408. data/doc/classes/Trs80Text.src/M000115.html +20 -0
  409. data/doc/classes/Trs80Text.src/M000116.html +18 -0
  410. data/doc/classes/Trs80Text.src/M000117.html +18 -0
  411. data/doc/classes/TrsDos.html +24 -22
  412. data/doc/classes/TrsDos.src/M000076.html +18 -0
  413. data/doc/classes/TrsDos.src/M000077.html +18 -0
  414. data/doc/classes/TrsDos.src/M000078.html +18 -0
  415. data/doc/classes/TrsDos.src/M000079.html +64 -0
  416. data/doc/classes/V9T9Dsk.html +120 -0
  417. data/doc/created.rid +1 -1
  418. data/doc/dot/f_0.dot +14 -0
  419. data/doc/dot/f_0.png +0 -0
  420. data/doc/dot/f_1.dot +23 -0
  421. data/doc/dot/f_1.png +0 -0
  422. data/doc/dot/f_10.dot +32 -0
  423. data/doc/dot/f_10.png +0 -0
  424. data/doc/dot/f_11.dot +32 -0
  425. data/doc/dot/f_11.png +0 -0
  426. data/doc/dot/f_12.dot +32 -0
  427. data/doc/dot/f_12.png +0 -0
  428. data/doc/dot/f_13.dot +32 -0
  429. data/doc/dot/f_13.png +0 -0
  430. data/doc/dot/f_14.dot +32 -0
  431. data/doc/dot/f_14.png +0 -0
  432. data/doc/dot/f_15.dot +32 -0
  433. data/doc/dot/f_15.png +0 -0
  434. data/doc/dot/f_16.dot +23 -0
  435. data/doc/dot/f_16.png +0 -0
  436. data/doc/dot/f_17.dot +32 -0
  437. data/doc/dot/f_17.png +0 -0
  438. data/doc/dot/f_18.dot +32 -0
  439. data/doc/dot/f_18.png +0 -0
  440. data/doc/dot/f_19.dot +32 -0
  441. data/doc/dot/f_19.png +0 -0
  442. data/doc/dot/f_2.dot +23 -0
  443. data/doc/dot/f_2.png +0 -0
  444. data/doc/dot/f_20.dot +32 -0
  445. data/doc/dot/f_20.png +0 -0
  446. data/doc/dot/f_21.dot +23 -0
  447. data/doc/dot/f_21.png +0 -0
  448. data/doc/dot/f_22.dot +58 -0
  449. data/doc/dot/f_22.png +0 -0
  450. data/doc/dot/f_23.dot +32 -0
  451. data/doc/dot/f_23.png +0 -0
  452. data/doc/dot/f_24.dot +32 -0
  453. data/doc/dot/f_24.png +0 -0
  454. data/doc/dot/f_25.dot +32 -0
  455. data/doc/dot/f_25.png +0 -0
  456. data/doc/dot/f_26.dot +32 -0
  457. data/doc/dot/f_26.png +0 -0
  458. data/doc/dot/f_27.dot +23 -0
  459. data/doc/dot/f_27.png +0 -0
  460. data/doc/dot/f_28.dot +32 -0
  461. data/doc/dot/f_28.png +0 -0
  462. data/doc/dot/f_29.dot +32 -0
  463. data/doc/dot/f_29.png +0 -0
  464. data/doc/dot/f_3.dot +41 -0
  465. data/doc/dot/f_3.png +0 -0
  466. data/doc/dot/f_30.dot +32 -0
  467. data/doc/dot/f_30.png +0 -0
  468. data/doc/dot/f_31.dot +32 -0
  469. data/doc/dot/f_31.png +0 -0
  470. data/doc/dot/f_32.dot +32 -0
  471. data/doc/dot/f_32.png +0 -0
  472. data/doc/dot/f_33.dot +32 -0
  473. data/doc/dot/f_33.png +0 -0
  474. data/doc/dot/f_34.dot +45 -0
  475. data/doc/dot/f_34.png +0 -0
  476. data/doc/dot/f_35.dot +32 -0
  477. data/doc/dot/f_35.png +0 -0
  478. data/doc/dot/f_36.dot +32 -0
  479. data/doc/dot/f_36.png +0 -0
  480. data/doc/dot/f_37.dot +32 -0
  481. data/doc/dot/f_37.png +0 -0
  482. data/doc/dot/f_38.dot +32 -0
  483. data/doc/dot/f_38.png +0 -0
  484. data/doc/dot/f_39.dot +32 -0
  485. data/doc/dot/f_39.png +0 -0
  486. data/doc/dot/f_4.dot +32 -0
  487. data/doc/dot/f_4.png +0 -0
  488. data/doc/dot/f_40.dot +32 -0
  489. data/doc/dot/f_40.png +0 -0
  490. data/doc/dot/f_41.dot +32 -0
  491. data/doc/dot/f_41.png +0 -0
  492. data/doc/dot/f_42.dot +32 -0
  493. data/doc/dot/f_42.png +0 -0
  494. data/doc/dot/f_43.dot +32 -0
  495. data/doc/dot/f_43.png +0 -0
  496. data/doc/dot/f_44.dot +32 -0
  497. data/doc/dot/f_44.png +0 -0
  498. data/doc/dot/f_45.dot +32 -0
  499. data/doc/dot/f_45.png +0 -0
  500. data/doc/dot/f_46.dot +32 -0
  501. data/doc/dot/f_46.png +0 -0
  502. data/doc/dot/f_47.dot +32 -0
  503. data/doc/dot/f_47.png +0 -0
  504. data/doc/dot/f_48.dot +32 -0
  505. data/doc/dot/f_48.png +0 -0
  506. data/doc/dot/f_49.dot +32 -0
  507. data/doc/dot/f_49.png +0 -0
  508. data/doc/dot/f_5.dot +23 -0
  509. data/doc/dot/f_5.png +0 -0
  510. data/doc/dot/f_50.dot +32 -0
  511. data/doc/dot/f_50.png +0 -0
  512. data/doc/dot/f_51.dot +32 -0
  513. data/doc/dot/f_51.png +0 -0
  514. data/doc/dot/f_52.dot +32 -0
  515. data/doc/dot/f_52.png +0 -0
  516. data/doc/dot/f_53.dot +32 -0
  517. data/doc/dot/f_53.png +0 -0
  518. data/doc/dot/f_54.dot +39 -0
  519. data/doc/dot/f_54.png +0 -0
  520. data/doc/dot/f_55.dot +30 -0
  521. data/doc/dot/f_55.png +0 -0
  522. data/doc/dot/f_56.dot +23 -0
  523. data/doc/dot/f_56.png +0 -0
  524. data/doc/dot/f_57.dot +23 -0
  525. data/doc/dot/f_57.png +0 -0
  526. data/doc/dot/f_58.dot +30 -0
  527. data/doc/dot/f_58.png +0 -0
  528. data/doc/dot/f_59.dot +32 -0
  529. data/doc/dot/f_59.png +0 -0
  530. data/doc/dot/f_6.dot +23 -0
  531. data/doc/dot/f_6.png +0 -0
  532. data/doc/dot/f_60.dot +32 -0
  533. data/doc/dot/f_60.png +0 -0
  534. data/doc/dot/f_7.dot +32 -0
  535. data/doc/dot/f_7.png +0 -0
  536. data/doc/dot/f_8.dot +32 -0
  537. data/doc/dot/f_8.png +0 -0
  538. data/doc/dot/f_9.dot +32 -0
  539. data/doc/dot/f_9.png +0 -0
  540. data/doc/dot/m_54_0.dot +30 -0
  541. data/doc/dot/m_54_0.png +0 -0
  542. data/doc/files/bin/ripxplore_rb.html +4 -4
  543. data/doc/files/lib/DumpUtilities_rb.html +6 -0
  544. data/doc/files/lib/FileCache_rb.html +3 -2
  545. data/doc/files/lib/FileContainer_rb.html +7 -0
  546. data/doc/files/lib/FileSystemImage_rb.html +2 -2
  547. data/doc/files/lib/FileSystem_rb.html +4 -4
  548. data/doc/files/lib/HostSystem_rb.html +4 -3
  549. data/doc/files/lib/ImageFormat_rb.html +3 -3
  550. data/doc/files/lib/NativeFileType_rb.html +3 -3
  551. data/doc/files/lib/PatchedPNG_rb.html +7 -0
  552. data/doc/files/lib/RipXploreLog_rb.html +6 -0
  553. data/doc/files/lib/RipXplore_rb.html +1 -1
  554. data/doc/files/lib/SubclassTracking_rb.html +6 -0
  555. data/doc/files/lib/disassemblers/D65_rb.html +6 -0
  556. data/doc/files/lib/file_systems/AppleCPM_rb.html +7 -0
  557. data/doc/files/lib/file_systems/AppleDos_rb.html +7 -0
  558. data/doc/files/lib/file_systems/AtariDos_rb.html +7 -0
  559. data/doc/files/lib/file_systems/CbmDos_rb.html +7 -0
  560. data/doc/files/lib/file_systems/NADOLDos_rb.html +7 -0
  561. data/doc/files/lib/file_systems/PascalDos_rb.html +7 -0
  562. data/doc/files/lib/file_systems/ProDos_rb.html +1 -1
  563. data/doc/files/lib/file_systems/RawDisk_rb.html +1 -1
  564. data/doc/files/lib/file_systems/RsDos_rb.html +108 -0
  565. data/doc/files/lib/file_systems/Ti99Fms_rb.html +108 -0
  566. data/doc/files/lib/file_systems/TrsDos_rb.html +1 -1
  567. data/doc/files/lib/host_systems/Apple2_rb.html +2 -2
  568. data/doc/files/lib/host_systems/Atari800_rb.html +2 -2
  569. data/doc/files/lib/host_systems/C64_rb.html +2 -2
  570. data/doc/files/lib/host_systems/Coco_rb.html +108 -0
  571. data/doc/files/lib/host_systems/Ti99_rb.html +108 -0
  572. data/doc/files/lib/host_systems/Trs80_rb.html +1 -1
  573. data/doc/files/lib/image_formats/A2Dsk_rb.html +9 -0
  574. data/doc/files/lib/image_formats/Atr_rb.html +7 -0
  575. data/doc/files/lib/image_formats/D64_rb.html +7 -0
  576. data/doc/files/lib/image_formats/G64_rb.html +7 -0
  577. data/doc/files/lib/image_formats/JvcDsk_rb.html +108 -0
  578. data/doc/files/lib/image_formats/Ti99Dsk_rb.html +134 -0
  579. data/doc/files/lib/image_formats/Ti99Dsk_rb.src/M000001.html +18 -0
  580. data/doc/files/lib/image_formats/Trs80Jv1Dsk_rb.html +1 -1
  581. data/doc/files/lib/native_file_types/apple2/AppleBinary_rb.html +1 -1
  582. data/doc/files/lib/native_file_types/apple2/AppleHiResPic_rb.html +1 -1
  583. data/doc/files/lib/native_file_types/apple2/ApplePrintShopMiniPix_rb.html +109 -0
  584. data/doc/files/lib/native_file_types/apple2/AppleText_rb.html +2 -1
  585. data/doc/files/lib/native_file_types/apple2/AppleWorksWP_rb.html +7 -0
  586. data/doc/files/lib/native_file_types/apple2/Applesoft_rb.html +7 -0
  587. data/doc/files/lib/native_file_types/apple2/IntegerBASIC_rb.html +7 -0
  588. data/doc/files/lib/native_file_types/apple2/NADOLFile_rb.html +8 -0
  589. data/doc/files/lib/native_file_types/apple2/PackedAppleDosPic_rb.html +101 -0
  590. data/doc/files/lib/native_file_types/apple2/PascalFile_rb.html +7 -0
  591. data/doc/files/lib/native_file_types/apple2/ProDosFile_rb.html +1 -1
  592. data/doc/files/lib/native_file_types/apple2/ScAsm_rb.html +7 -0
  593. data/doc/files/lib/native_file_types/atari800/AtariBasic_rb.html +7 -0
  594. data/doc/files/lib/native_file_types/atari800/AtariBinary_rb.html +8 -1
  595. data/doc/files/lib/native_file_types/atari800/AtariText_rb.html +2 -1
  596. data/doc/files/lib/native_file_types/c64/C64BasicPrg_rb.html +7 -0
  597. data/doc/files/lib/native_file_types/c64/C64PrgText_rb.html +7 -0
  598. data/doc/files/lib/native_file_types/c64/C64Prg_rb.html +7 -0
  599. data/doc/files/lib/native_file_types/c64/C64Seq_rb.html +7 -0
  600. data/doc/files/lib/native_file_types/c64/CbmFile_rb.html +7 -0
  601. data/doc/files/lib/native_file_types/coco/CocoBasic_rb.html +108 -0
  602. data/doc/files/lib/native_file_types/coco/CocoMachineLanguage_rb.html +108 -0
  603. data/doc/files/lib/native_file_types/coco/CocoScreen_rb.html +108 -0
  604. data/doc/files/lib/native_file_types/coco/CocoText_rb.html +108 -0
  605. data/doc/files/lib/native_file_types/cpm/CPMFile_rb.html +7 -0
  606. data/doc/files/lib/native_file_types/cpm/MBasic_rb.html +7 -0
  607. data/doc/files/lib/native_file_types/generic/GenericFile_rb.html +7 -0
  608. data/doc/files/lib/native_file_types/generic/GenericGIF_rb.html +101 -0
  609. data/doc/files/lib/native_file_types/generic/ScreenDump_rb.html +101 -0
  610. data/doc/files/lib/native_file_types/ti99/Ti99BasicFile_rb.html +108 -0
  611. data/doc/files/lib/native_file_types/ti99/Ti99File_rb.html +108 -0
  612. data/doc/files/lib/native_file_types/ti99/Ti99TextFile_rb.html +108 -0
  613. data/doc/files/lib/native_file_types/ti99/TiArtistColours_rb.html +108 -0
  614. data/doc/files/lib/native_file_types/ti99/TiArtistPattern_rb.html +109 -0
  615. data/doc/files/lib/native_file_types/ti99/TiRLE_rb.html +109 -0
  616. data/doc/files/lib/native_file_types/trs80/Trs80BasicListing_rb.html +108 -0
  617. data/doc/files/lib/native_file_types/trs80/Trs80Cmd_rb.html +1 -1
  618. data/doc/files/lib/native_file_types/trs80/Trs80Jcl_rb.html +7 -0
  619. data/doc/files/lib/native_file_types/trs80/Trs80LevelIIBasic_rb.html +1 -1
  620. data/doc/files/lib/native_file_types/trs80/Trs80PascalSource_rb.html +7 -0
  621. data/doc/files/lib/native_file_types/trs80/Trs80Text_rb.html +108 -0
  622. data/doc/files/lib/proc_source_rb.html +7 -0
  623. data/doc/files/lib/rdoc_patch_rb.html +6 -0
  624. data/doc/files/test/tc_apple_2_rb.html +108 -0
  625. data/doc/files/test/tc_atari_800_rb.html +108 -0
  626. data/doc/files/test/tc_c64_rb.html +108 -0
  627. data/doc/files/test/tc_cache_and_collections_rb.html +108 -0
  628. data/doc/files/test/tc_coco_rb.html +108 -0
  629. data/doc/files/test/tc_file_cache_rb.html +7 -0
  630. data/doc/files/test/tc_image_sniffing_rb.html +8 -1
  631. data/doc/files/test/tc_screen_dumps_rb.html +108 -0
  632. data/doc/files/test/tc_ti99_rb.html +108 -0
  633. data/doc/files/test/tc_trs80_rb.html +108 -0
  634. data/doc/files/test/testhelper_rb.html +57 -1
  635. data/doc/files/test/testhelper_rb.src/M000002.html +21 -0
  636. data/doc/files/test/testhelper_rb.src/M000003.html +18 -0
  637. data/doc/files/test/testhelper_rb.src/M000004.html +61 -0
  638. data/doc/files/test/ts_test_all_rb.html +5 -0
  639. data/doc/files/website/index_rb.html +107 -0
  640. data/lib/FileCache.rb +80 -13
  641. data/lib/FileSystem.rb +1 -1
  642. data/lib/FileSystemImage.rb +16 -2
  643. data/lib/HostSystem.rb +124 -1
  644. data/lib/NativeFileType.rb +11 -1
  645. data/lib/RipXplore.rb +2 -2
  646. data/lib/file_systems/ProDos.rb +1 -0
  647. data/lib/file_systems/RawDisk.rb +7 -2
  648. data/lib/file_systems/RsDos.rb +146 -0
  649. data/lib/file_systems/Ti99Fms.rb +123 -0
  650. data/lib/file_systems/TrsDos.rb +8 -5
  651. data/lib/host_systems/Apple2.rb +53 -9
  652. data/lib/host_systems/Atari800.rb +40 -1
  653. data/lib/host_systems/C64.rb +42 -1
  654. data/lib/host_systems/Coco.rb +145 -0
  655. data/lib/host_systems/TRS81-3.FNT +0 -0
  656. data/lib/host_systems/Ti99.rb +86 -0
  657. data/lib/host_systems/Trs80.rb +40 -5
  658. data/lib/host_systems/apple_2_font.bin +0 -0
  659. data/lib/host_systems/atari-800-font.bin +0 -0
  660. data/lib/host_systems/c64-font.bin +0 -0
  661. data/lib/host_systems/coco-font.bin +0 -0
  662. data/lib/host_systems/ti99-font.bin +0 -0
  663. data/lib/image_formats/JvcDsk.rb +101 -0
  664. data/lib/image_formats/Ti99Dsk.rb +213 -0
  665. data/lib/image_formats/Trs80Jv1Dsk.rb +5 -3
  666. data/lib/native_file_types/apple2/AppleBinary.rb +2 -2
  667. data/lib/native_file_types/apple2/AppleHiResPic.rb +101 -57
  668. data/lib/native_file_types/apple2/ApplePrintShopMiniPix.rb +99 -0
  669. data/lib/native_file_types/apple2/AppleText.rb +16 -0
  670. data/lib/native_file_types/apple2/PackedAppleDosPic.rb +85 -0
  671. data/lib/native_file_types/apple2/ProDosFile.rb +2 -3
  672. data/lib/native_file_types/atari800/AtariBinary.rb +1 -1
  673. data/lib/native_file_types/atari800/AtariText.rb +7 -1
  674. data/lib/native_file_types/coco/CocoBasic.rb +230 -0
  675. data/lib/native_file_types/coco/CocoMachineLanguage.rb +47 -0
  676. data/lib/native_file_types/coco/CocoScreen.rb +54 -0
  677. data/lib/native_file_types/coco/CocoText.rb +42 -0
  678. data/lib/native_file_types/generic/GenericGIF.rb +50 -0
  679. data/lib/native_file_types/generic/ScreenDump.rb +43 -0
  680. data/lib/native_file_types/ti99/Ti99BasicFile.rb +223 -0
  681. data/lib/native_file_types/ti99/Ti99File.rb +40 -0
  682. data/lib/native_file_types/ti99/Ti99TextFile.rb +62 -0
  683. data/lib/native_file_types/ti99/TiArtistColours.rb +40 -0
  684. data/lib/native_file_types/ti99/TiArtistPattern.rb +109 -0
  685. data/lib/native_file_types/ti99/TiRLE.rb +91 -0
  686. data/lib/native_file_types/trs80/Trs80BasicListing.rb +51 -0
  687. data/lib/native_file_types/trs80/Trs80Cmd.rb +3 -1
  688. data/lib/native_file_types/trs80/Trs80LevelIIBasic.rb +15 -3
  689. data/lib/native_file_types/trs80/Trs80Text.rb +49 -0
  690. data/test/native_files/42d0d52047a748022d2aacef60cc5271-0.png +0 -0
  691. data/test/native_files/6ac562d2d099dc31213e97b8fe08ffbf-1.png +0 -0
  692. data/test/screendumps/0.png +0 -0
  693. data/test/screendumps/1.png +0 -0
  694. data/test/screendumps/2.png +0 -0
  695. data/test/screendumps/3.png +0 -0
  696. data/test/screendumps/4.png +0 -0
  697. data/test/screendumps/5.png +0 -0
  698. data/test/screendumps/6.png +0 -0
  699. data/test/screendumps/7.png +0 -0
  700. data/test/tc_apple_2.rb +94 -0
  701. data/test/tc_atari_800.rb +28 -0
  702. data/test/tc_c64.rb +35 -0
  703. data/test/tc_cache_and_collections.rb +33 -0
  704. data/test/tc_coco.rb +38 -0
  705. data/test/tc_screen_dumps.rb +42 -0
  706. data/test/tc_ti99.rb +51 -0
  707. data/test/tc_trs80.rb +66 -0
  708. data/test/testhelper.rb +59 -1
  709. data/test/testlog.txt +123423 -30232
  710. metadata +595 -14
  711. data/test/tc_file_cache.rb +0 -11
  712. 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==204800
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, then 2 bytes for file length
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+header_length)
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
- require 'PatchedPNG'
5
+ require 'PatchedPNG'
6
6
 
7
- class AppleHiResPic<NativeFileType
7
+ #generic class for a HI-RES picture
8
8
 
9
- def self.file_system_file_types
10
- {
11
- AppleDos=>0x04,
12
- NADOLDos=>:any,
13
- PascalDos=>0x07
14
- }
15
- end
9
+ class AppleHiResPic<NativeFileType
16
10
 
17
- is_valid_file_if lambda {
18
- is_valid=true
19
- if file_system_image.file_system==AppleDos then
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
- is_valid
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
- SCALE=1
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
- 0.upto(2) do |band|
52
- 0.upto(7) do |row|
53
- 0.upto(7) do |relative_scanline|
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
- #Apple DOS Binary files have the load address stored in first two bytes of the file, in LO, HI order
73
- def load_address
74
- if file_system_image.file_system==AppleDos then
75
- return contents[0]+contents[1]*256
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
- 0.upto(39) do |x_byte|
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
- 0.upto(6) do |x_bit|
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>=HGR_ROWS
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 png_width
125
- HGR_COLS*SCALE
95
+ def picture_width
96
+ HGR_COLS
126
97
  end
127
- def png_height
128
- HGR_ROWS*SCALE
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
- 0.upto(SCALE-1) do |row|
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
- NativeFileType.non_matching_score+0.1
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
  #