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
@@ -7,7 +7,8 @@ $:.unshift(File.dirname(__FILE__+"\\..")) unless
7
7
 
8
8
  require 'FileSystem'
9
9
  #TRSDOS (and compatables, e.g. LDOS, NEWDOS)
10
- #Reference - http://www.classic-computers.org.nz/system-80/software-manuals/manuals-NewDOS-80_v2.0_manual.pdf pages 99-101
10
+ #Reference - http://www.fileden.com/files/2008/7/6/1990698/manuals-NewDOS-80_v2.0_manual.pdf pages 99-101
11
+ #(previous location - http://www.classic-computers.org.nz/system-80/software-manuals/manuals-NewDOS-80_v2.0_manual.pdf )
11
12
  #sectors 2-9 of the directory track (17) contain File Primary Directory Entries, which are 32 bytes made up of:
12
13
  # byte $00:
13
14
  # bit 7 : 0 = FPDE, 1 = FXDE
@@ -66,9 +67,9 @@ def self.sectors_per_granule(file_system_image)
66
67
  5
67
68
  end
68
69
 
70
+ #all TRS-80 disks seem to start with the same bytes
69
71
  is_valid_file_system_if lambda {
70
- file_system_image.image_format.instance_of?(Trs80Jv1Dsk)
71
- }
72
+ file_system_image.get_sector(0,0)[0,3]==[0x00,0xFE,0x11].pack("CCC") }
72
73
 
73
74
  FDE_SIZE=0x20
74
75
 
@@ -88,7 +89,7 @@ def self.files(file_system_image)
88
89
  next if !is_fpde
89
90
  eof_low=fde[0x03]
90
91
  filename_base=fde[0x05,8].unpack("A8")
91
- filename_extension=fde[0x0D,3].unpack("A8")
92
+ filename_extension=fde[0x0D,3].unpack("A3")
92
93
  filename="#{filename_base}/#{filename_extension}"
93
94
  contents=""
94
95
  eof_mid=fde[0x14]
@@ -102,10 +103,12 @@ def self.files(file_system_image)
102
103
  # any other value ($00-$FD) equals the number of the diskette's lump in which the area starts.
103
104
  # byte $01 : bits 7-5 = number of granules (0-7) from the start of the lump to the start of the area
104
105
  # : bits 4- 0 = number less one of contiguous granules assigned to this area.
106
+
105
107
  5.times do |extent_no|
106
108
  extent=fde[(extent_no*2)+0x16,2]
107
109
  break if extent[0]==0xFF
108
- raise "FXDE's not implemented yet" if extent[0]==0xFE
110
+ #raise "FXDE's not implemented yet" if extent[0]==0xFE
111
+ break if extent[0]==0xFE # "FXDE's not implemented yet"
109
112
  track_no=extent[0]
110
113
  granule_offset=extent[1]>>5
111
114
  number_of_granules=1+(extent[1] & 0b00011111)
@@ -6,28 +6,72 @@ $:.unshift(File.dirname(__FILE__+"\\..")) unless
6
6
 
7
7
 
8
8
  require 'HostSystem'
9
- #
10
- #
9
+
11
10
  class Apple2<HostSystem
11
+
12
+ def self.full_name
13
+ "Apple ]["
14
+ end
12
15
 
13
- def Apple2.to_ascii(byte)
16
+
17
+
18
+ def self.to_ascii(byte)
14
19
  (byte%128).chr
15
20
  end
16
21
 
17
22
  #Apple 2 disks start at track 0
18
- def Apple2.start_track
23
+ def self.start_track
19
24
  0
20
25
  end
21
26
 
22
- @@annotations=nil
23
- def Apple2.annotations
24
- @@annotations=YAML::load(File.open(File.dirname(__FILE__)+"/a2_symbols.yaml")) if @@annotations.nil?
27
+ @@symbols=nil
28
+ def self.symbols
29
+ @@symbols=YAML::load(File.open(File.dirname(__FILE__)+"/a2_symbols.yaml")) if @@symbols.nil?
30
+ @@symbols
25
31
  end
26
32
 
27
- def Apple2.disassemble(buffer,start_address=0)
33
+ def self.disassemble(buffer,start_address=0)
28
34
  require 'D65'
29
- D65.disassemble(buffer,start_address,annotations)
35
+ D65.disassemble(buffer,start_address,symbols)
36
+ end
37
+
38
+ def self.font_data_filename
39
+ File.dirname(__FILE__) +'/apple_2_font.bin'
40
+ end
41
+
42
+ def self.line_break_chars
43
+ [0x0D,0x8D]
44
+ end
45
+
46
+
47
+ def self.screen_rows
48
+ 25
30
49
  end
50
+
51
+ def self.default_screen_width
52
+ 40
53
+ end
54
+
55
+ def self.max_screen_width
56
+ 80
57
+ end
58
+
59
+ def self.font_width
60
+ 7
61
+ end
62
+
63
+ def self.font_height
64
+ 8
65
+ end
66
+
67
+ def self.default_foreground_colour
68
+ PNG::Color::White
69
+ end
70
+
71
+ def self.default_background_colour
72
+ PNG::Color::Black
73
+ end
74
+
31
75
  end
32
76
 
33
77
 
@@ -9,6 +9,9 @@ require 'HostSystem'
9
9
  #
10
10
  #
11
11
  class Atari800<HostSystem
12
+ def self.full_name
13
+ "Atari 400/800"
14
+ end
12
15
 
13
16
  def self.to_ascii(b)
14
17
  if b==0x9b then
@@ -28,9 +31,45 @@ def self.disassemble(buffer,start_address=0)
28
31
  require 'D65'
29
32
  D65.disassemble(buffer,start_address,annotations)
30
33
  end
34
+
35
+ def self.font_data_filename
36
+ File.dirname(__FILE__) +"/atari-800-font.bin"
37
+ end
38
+
39
+ def self.screen_rows
40
+ 24
41
+ end
42
+
43
+ def self.line_break_chars
44
+ [0x9b]
45
+ end
46
+
47
+ def self.default_screen_width
48
+ 40
49
+ end
50
+
51
+ def self.max_screen_width
52
+ 40
53
+ end
54
+
55
+ def self.font_width
56
+ 8
57
+ end
58
+
59
+ def self.font_height
60
+ 8
61
+ end
62
+
63
+
64
+ def self.default_foreground_colour
65
+ PNG::Color.new(0x63,0xB6,0xE7,0xFF)
66
+ end
67
+
68
+ def self.default_background_colour
69
+ PNG::Color.new(0x00,0x51,0x84,0xFF)
31
70
  end
32
71
 
33
-
72
+ end
34
73
  # == Author
35
74
  # Jonno Downes (jonno@jamtronix.com)
36
75
  #
@@ -7,9 +7,13 @@ $:.unshift(File.dirname(__FILE__+"\\..")) unless
7
7
 
8
8
  require 'HostSystem'
9
9
  #
10
- #
11
10
  class C64<HostSystem
12
11
 
12
+ def self.full_name
13
+ "Commodore 64"
14
+ end
15
+
16
+
13
17
  #C64 disks start at track # 1
14
18
  def C64.start_track
15
19
  1
@@ -53,6 +57,43 @@ def C64.disassemble(buffer,start_address=0)
53
57
  D65.disassemble(buffer,start_address,symbols)
54
58
  end
55
59
 
60
+ def self.font_data_filename
61
+ File.dirname(__FILE__) +"/c64-font.bin"
62
+ end
63
+
64
+ def self.line_break_chars
65
+ [0x0D]
66
+ end
67
+
68
+
69
+ def self.screen_rows
70
+ 25
71
+ end
72
+
73
+ def self.default_screen_width
74
+ 40
75
+ end
76
+
77
+ def self.max_screen_width
78
+ 40
79
+ end
80
+
81
+ def self.font_width
82
+ 8
83
+ end
84
+
85
+ def self.font_height
86
+ 8
87
+ end
88
+
89
+ def self.default_foreground_colour
90
+ PNG::Color.new(0x6C,0x5E,0xB5,0xFF)
91
+ end
92
+
93
+ def self.default_background_colour
94
+ PNG::Color.new(0x35,0x28,0x79,0xFF)
95
+ end
96
+
56
97
  end
57
98
 
58
99
 
@@ -0,0 +1,145 @@
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
+
8
+ require 'HostSystem'
9
+
10
+ class Coco<HostSystem
11
+
12
+ def self.full_name
13
+ "Tandy Colour Computer"
14
+ end
15
+
16
+ def Coco.start_track
17
+ 0
18
+ end
19
+
20
+ def Coco.to_ascii(b)
21
+ b.chr
22
+ end
23
+
24
+ def self.font_data_filename
25
+ File.dirname(__FILE__) +'/coco-font.bin'
26
+ end
27
+
28
+ def self.screen_rows
29
+ 16
30
+ end
31
+
32
+ def self.default_screen_width
33
+ 32
34
+ end
35
+
36
+ def self.max_screen_width
37
+ 32
38
+ end
39
+
40
+ def self.font_width
41
+ 8
42
+ end
43
+
44
+ def self.font_height
45
+ 12
46
+ end
47
+
48
+ def self.pixels_between_characters
49
+ 0
50
+ end
51
+
52
+ def self.default_foreground_colour
53
+ PNG::Color::Black
54
+ end
55
+
56
+ def self.default_background_colour
57
+ COCO_COLOURS[0]
58
+ end
59
+
60
+ COCO_COLOURS= [
61
+ PNG::Color.new(90, 211, 49,0xFF), #green
62
+ PNG::Color.new(247, 227, 99,0xFF),#yellow
63
+ PNG::Color.new(24, 0, 140,0xFF),#blue
64
+ PNG::Color.new(140,0,16,0xFF),#red
65
+ PNG::Color.new(0xff,0xfb,0xff,0xff),#white/buff
66
+ PNG::Color.new(33, 195, 115,0xFF),#cyan
67
+ PNG::Color.new(0x63,0x00,0x63,0xFF),#magenta
68
+ PNG::Color.new(255, 146, 140,0xFF),#orange
69
+ ]
70
+
71
+ COCO_BLOCK_QUADRANT_OFFSETS=[
72
+ [4,6],
73
+ [0,6],
74
+ [4,0],
75
+ [0,0],
76
+ ]
77
+
78
+ def self.to_screendump(text,screen_width)
79
+ lines=split_into_lines(text,screen_width)
80
+ canvas = PNG::Canvas.new font_width*screen_width, (pixels_between_characters+font_height)*[lines.length,screen_rows].max, default_background_colour
81
+ line_number=0
82
+ lines.each do |line|
83
+ col=0
84
+ line.each_byte do |char|
85
+ if (char>=0x80) then
86
+ colour_mask=((char & 0b01110000)>>4)
87
+ foreground_colour=COCO_COLOURS[colour_mask]
88
+ 4.times do |quadrant|
89
+ quadrant_mask=1<<quadrant
90
+ if (char & quadrant_mask)>0 then
91
+ block_colour=foreground_colour
92
+ else
93
+ block_colour=PNG::Color::Black
94
+ end
95
+
96
+ start_x=(col*8)+COCO_BLOCK_QUADRANT_OFFSETS[quadrant][0]
97
+ start_y=(line_number*12)+COCO_BLOCK_QUADRANT_OFFSETS[quadrant][1]
98
+ 6.times do |y_offset|
99
+ 4.times do |x_offset|
100
+ canvas[start_x+x_offset, start_y+y_offset]=block_colour
101
+ end
102
+ end
103
+ end
104
+ else #if char is 0..0x3F it's an inverse uppercase char
105
+ case char
106
+ when 0x00..0x3F then
107
+ draw_char_at(canvas,char,line_number,col,default_background_colour,default_foreground_colour)
108
+ else
109
+ draw_char_at(canvas,char-0x40,line_number,col,default_foreground_colour,default_background_colour)
110
+ end
111
+ end
112
+ col+=1
113
+ end
114
+ line_number+=1
115
+ end
116
+ PNG.new(canvas).raw_bytes
117
+ end
118
+
119
+
120
+ end
121
+
122
+ # == Author
123
+ # tim lindner (tlindner@macmess.org)
124
+ #
125
+ # == Copyright
126
+ # Copyright (c) 2008 tim lindner (tlindner@macmess.org)
127
+ #
128
+ #Permission is hereby granted, free of charge, to any person obtaining
129
+ #a copy of this software and associated documentation files (the
130
+ #"Software"), to deal in the Software without restriction, including
131
+ #without limitation the rights to use, copy, modify, merge, publish,
132
+ #distribute, sublicense, and/or sell copies of the Software, and to
133
+ #permit persons to whom the Software is furnished to do so, subject to
134
+ #the following conditions:
135
+
136
+ # The above copyright notice and this permission notice shall be
137
+ # included in all copies or substantial portions of the Software.
138
+
139
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
140
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
141
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
142
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
143
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
144
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
145
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Binary file
@@ -0,0 +1,86 @@
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
+
8
+ require 'HostSystem'
9
+ class Ti99<HostSystem
10
+
11
+ def self.full_name
12
+ "Texas Instruments TI-99/4a"
13
+ end
14
+
15
+ def self.start_track
16
+ 0
17
+ end
18
+
19
+ def self.to_ascii(b)
20
+ b.chr
21
+ end
22
+
23
+ def self.font_data_filename
24
+ File.dirname(__FILE__) +'/ti99-font.bin'
25
+ end
26
+
27
+ def self.screen_rows
28
+ 24
29
+ end
30
+
31
+ def self.default_screen_width
32
+ 40
33
+ end
34
+
35
+ def self.max_screen_width
36
+ 80
37
+ end
38
+
39
+ def self.font_width
40
+ 8
41
+ end
42
+
43
+ def self.font_height
44
+ 7
45
+ end
46
+
47
+ def self.pixels_between_characters
48
+ 1
49
+ end
50
+
51
+ def self.default_foreground_colour
52
+ PNG::Color::Black
53
+ end
54
+
55
+ def self.default_background_colour
56
+ PNG::Color.new(64,228,255,0xFF) #cyan
57
+ end
58
+
59
+
60
+ end
61
+
62
+
63
+ # == Author
64
+ # Jonno Downes (jonno@jamtronix.com)
65
+ #
66
+ # == Copyright
67
+ # Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
68
+ #
69
+ #Permission is hereby granted, free of charge, to any person obtaining
70
+ #a copy of this software and associated documentation files (the
71
+ #"Software"), to deal in the Software without restriction, including
72
+ #without limitation the rights to use, copy, modify, merge, publish,
73
+ #distribute, sublicense, and/or sell copies of the Software, and to
74
+ #permit persons to whom the Software is furnished to do so, subject to
75
+ #the following conditions:
76
+
77
+ # The above copyright notice and this permission notice shall be
78
+ # included in all copies or substantial portions of the Software.
79
+
80
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
81
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
82
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
83
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
84
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
85
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
86
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -6,19 +6,54 @@ $:.unshift(File.dirname(__FILE__+"\\..")) unless
6
6
 
7
7
 
8
8
  require 'HostSystem'
9
-
10
- #
11
9
  class Trs80<HostSystem
12
10
 
13
- #C64 disks start at track # 1
14
- def Trs80.start_track
11
+ def self.full_name
12
+ "Tandy TRS-80 Model I/III"
13
+ end
14
+
15
+
16
+ def self.start_track
15
17
  0
16
18
  end
17
19
 
18
- def Trs80.to_ascii(b)
20
+ def self.to_ascii(b)
19
21
  b.chr
20
22
  end
21
23
 
24
+ def self.font_data_filename
25
+ File.dirname(__FILE__) +"/TRS81-3.FNT"
26
+ end
27
+
28
+ def self.line_break_chars
29
+ [0x0D]
30
+ end
31
+
32
+
33
+ def self.screen_rows
34
+ 16
35
+ end
36
+
37
+ def self.screen_columns
38
+ 64
39
+ end
40
+
41
+ def self.font_width
42
+ 8
43
+ end
44
+
45
+ def self.font_height
46
+ 12
47
+ end
48
+
49
+ def self.default_foreground_colour
50
+ PNG::Color::Green
51
+ end
52
+
53
+ def self.default_background_colour
54
+ PNG::Color::Black
55
+ end
56
+
22
57
  end
23
58
 
24
59
 
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,101 @@
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
+ #Color Computer DSK in JVC format - http://tlindner.macmess.org/?page_id=86
10
+ #This in an incomplete implementation
11
+
12
+ class JvcDsk < ImageFormat
13
+
14
+ def self.possible_extensions
15
+ ['.dsk']
16
+ end
17
+
18
+ #JVC format has a variable length header, and a variable number of tracks,
19
+ #with a variable number of sectors, with a variable length.
20
+
21
+ def initialize(file_bytes)
22
+ @file_bytes=file_bytes
23
+ @sectors_per_track = 18
24
+ @side_count = 1
25
+ @sectors_size_code = 1
26
+ @first_sector_id = 1
27
+
28
+ @header_size = file_bytes.length % 256
29
+
30
+ if @header_size == 0 then
31
+ elsif @header_size == 1 then
32
+ @sectors_per_track = file_bytes.unpack("C")
33
+ elsif @header_size == 2 then
34
+ @sectors_per_track, @side_count= file_bytes.unpack("CC")
35
+ elsif @header_size == 3 then
36
+ @sectors_per_track, @side_count, @sectors_size_code = file_bytes.unpack("CCC")
37
+ elsif @header_size == 4 then
38
+ @sectors_per_track, @side_count, @sectors_size_code, @first_sector_id = file_bytes.unpack("CCCC")
39
+ else
40
+ end
41
+
42
+ @sector_length = 128 << @sectors_size_code
43
+ @track_count = (file_bytes.length - @header_size) / (@sectors_per_track * @sector_length) / @side_count
44
+ end
45
+
46
+ is_valid_image_if lambda {
47
+ (@header_size < 5) && (@track_count>=35)
48
+ }
49
+
50
+ #Remove this when multiple side support is implemented
51
+ is_valid_image_if lambda {
52
+ @side_count == 1
53
+ }
54
+
55
+ def self.host_system
56
+ Coco
57
+ end
58
+
59
+ def sectors_in_track(track_no)
60
+ (@first_sector_id..@sectors_per_track).collect
61
+ end
62
+
63
+ # how many tracks could be interpreted by this image format?
64
+ def track_count
65
+ @track_count
66
+ end
67
+
68
+ def get_sector(track,sector)
69
+ start_byte=track*@sectors_per_track*@sector_length+(sector-@first_sector_id)*@sector_length
70
+ start_byte += @header_size
71
+
72
+ #puts "Track: #{track}, sector: #{sector}, start_byte: #{start_byte}"
73
+ @file_bytes[start_byte,@sector_length]
74
+ end
75
+
76
+ end
77
+
78
+ # == Author
79
+ # tim lindner (tlindner@macmess.org)
80
+ #
81
+ # == Copyright
82
+ # Copyright (c) 2008 tim lindner (tlindner@macmess.org)
83
+ #
84
+ #Permission is hereby granted, free of charge, to any person obtaining
85
+ #a copy of this software and associated documentation files (the
86
+ #"Software"), to deal in the Software without restriction, including
87
+ #without limitation the rights to use, copy, modify, merge, publish,
88
+ #distribute, sublicense, and/or sell copies of the Software, and to
89
+ #permit persons to whom the Software is furnished to do so, subject to
90
+ #the following conditions:
91
+
92
+ # The above copyright notice and this permission notice shall be
93
+ # included in all copies or substantial portions of the Software.
94
+
95
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
96
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
97
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
98
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
99
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
100
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
101
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.