ripxplore 0.11.0 → 0.12.0

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 (559) hide show
  1. data/doc/classes/A2Dsk.html +35 -35
  2. data/doc/classes/A2Dsk.src/M000346.html +18 -0
  3. data/doc/classes/A2Dsk.src/M000347.html +4 -4
  4. data/doc/classes/A2Dsk.src/M000348.html +4 -4
  5. data/doc/classes/A2Dsk.src/M000349.html +4 -4
  6. data/doc/classes/A2Dsk.src/M000350.html +4 -4
  7. data/doc/classes/A2Dsk.src/M000351.html +8 -4
  8. data/doc/classes/A2Dsk.src/M000352.html +7 -6
  9. data/doc/classes/A2DskDosOrder.html +5 -5
  10. data/doc/classes/A2DskDosOrder.src/M000503.html +18 -0
  11. data/doc/classes/A2DskDosOrder.src/M000504.html +18 -0
  12. data/doc/classes/A2DskPhysicalOrder.html +5 -5
  13. data/doc/classes/A2DskPhysicalOrder.src/M000160.html +18 -0
  14. data/doc/classes/A2WriteTests.html +10 -10
  15. data/doc/classes/A2WriteTests.src/M000218.html +42 -0
  16. data/doc/classes/A2WriteTests.src/M000219.html +47 -22
  17. data/doc/classes/AppleBinary.html +20 -20
  18. data/doc/classes/AppleBinary.src/M000317.html +20 -0
  19. data/doc/classes/AppleBinary.src/M000318.html +4 -6
  20. data/doc/classes/AppleBinary.src/M000319.html +4 -4
  21. data/doc/classes/AppleBinary.src/M000320.html +4 -4
  22. data/doc/classes/AppleCPM.html +40 -40
  23. data/doc/classes/AppleCPM.src/M000395.html +4 -4
  24. data/doc/classes/AppleCPM.src/M000396.html +5 -8
  25. data/doc/classes/AppleCPM.src/M000397.html +7 -9
  26. data/doc/classes/AppleCPM.src/M000398.html +10 -27
  27. data/doc/classes/AppleCPM.src/M000399.html +16 -11
  28. data/doc/classes/AppleCPM.src/M000400.html +21 -43
  29. data/doc/classes/AppleCPM.src/M000401.html +37 -10
  30. data/doc/classes/AppleCPM.src/M000402.html +30 -0
  31. data/doc/classes/AppleCPM.src/M000403.html +30 -0
  32. data/doc/classes/AppleDos.html +55 -55
  33. data/doc/classes/AppleDos.src/M000242.html +18 -0
  34. data/doc/classes/AppleDos.src/M000243.html +4 -4
  35. data/doc/classes/AppleDos.src/M000244.html +4 -4
  36. data/doc/classes/AppleDos.src/M000245.html +59 -4
  37. data/doc/classes/AppleDos.src/M000246.html +83 -58
  38. data/doc/classes/AppleDos.src/M000247.html +14 -84
  39. data/doc/classes/AppleDos.src/M000248.html +18 -12
  40. data/doc/classes/AppleDos.src/M000249.html +21 -18
  41. data/doc/classes/AppleDos.src/M000250.html +14 -20
  42. data/doc/classes/AppleDos.src/M000251.html +13 -17
  43. data/doc/classes/AppleDos.src/M000252.html +27 -11
  44. data/doc/classes/AppleDosPic.html +20 -20
  45. data/doc/classes/AppleDosPic.src/M000156.html +6 -4
  46. data/doc/classes/AppleDosPic.src/M000157.html +5 -7
  47. data/doc/classes/AppleDosPic.src/M000158.html +5 -5
  48. data/doc/classes/AppleDosPic.src/M000159.html +4 -4
  49. data/doc/classes/AppleHiResPic.html +40 -40
  50. data/doc/classes/AppleHiResPic.src/M000441.html +5 -5
  51. data/doc/classes/AppleHiResPic.src/M000442.html +4 -4
  52. data/doc/classes/AppleHiResPic.src/M000443.html +4 -38
  53. data/doc/classes/AppleHiResPic.src/M000444.html +38 -4
  54. data/doc/classes/AppleHiResPic.src/M000445.html +4 -4
  55. data/doc/classes/AppleHiResPic.src/M000446.html +4 -4
  56. data/doc/classes/AppleHiResPic.src/M000447.html +4 -4
  57. data/doc/classes/AppleHiResPic.src/M000448.html +18 -0
  58. data/doc/classes/AppleHiResPic.src/M000449.html +18 -0
  59. data/doc/classes/ApplePrintShopMiniPix.html +20 -20
  60. data/doc/classes/ApplePrintShopMiniPix.src/M000538.html +24 -4
  61. data/doc/classes/ApplePrintShopMiniPix.src/M000539.html +18 -0
  62. data/doc/classes/ApplePrintShopMiniPix.src/M000540.html +18 -0
  63. data/doc/classes/ApplePrintShopMiniPix.src/M000541.html +18 -0
  64. data/doc/classes/ApplePrintShopMiniPix.src/M000542.html +18 -0
  65. data/doc/classes/AppleText.html +15 -15
  66. data/doc/classes/AppleText.src/M000210.html +21 -0
  67. data/doc/classes/AppleText.src/M000211.html +6 -7
  68. data/doc/classes/AppleText.src/M000212.html +9 -6
  69. data/doc/classes/AppleWorksWP.html +10 -10
  70. data/doc/classes/AppleWorksWP.src/M000504.html +20 -0
  71. data/doc/classes/AppleWorksWP.src/M000505.html +45 -0
  72. data/doc/classes/AppleWorksWP.src/M000506.html +45 -0
  73. data/doc/classes/Applesoft.html +10 -10
  74. data/doc/classes/Applesoft.src/M000418.html +8 -62
  75. data/doc/classes/Applesoft.src/M000419.html +75 -0
  76. data/doc/classes/Applesoft.src/M000420.html +75 -0
  77. data/doc/classes/Atari800.html +65 -65
  78. data/doc/classes/Atari800.src/M000357.html +18 -0
  79. data/doc/classes/Atari800.src/M000358.html +9 -4
  80. data/doc/classes/Atari800.src/M000359.html +4 -9
  81. data/doc/classes/Atari800.src/M000360.html +5 -4
  82. data/doc/classes/Atari800.src/M000361.html +4 -5
  83. data/doc/classes/Atari800.src/M000362.html +4 -4
  84. data/doc/classes/Atari800.src/M000363.html +4 -4
  85. data/doc/classes/Atari800.src/M000364.html +4 -4
  86. data/doc/classes/Atari800.src/M000365.html +3 -3
  87. data/doc/classes/Atari800.src/M000366.html +4 -4
  88. data/doc/classes/Atari800.src/M000367.html +3 -3
  89. data/doc/classes/Atari800.src/M000368.html +4 -4
  90. data/doc/classes/Atari800.src/M000369.html +4 -4
  91. data/doc/classes/AtariBasic.html +10 -10
  92. data/doc/classes/AtariBasic.src/M000277.html +20 -0
  93. data/doc/classes/AtariBasic.src/M000278.html +94 -6
  94. data/doc/classes/AtariDos.html +10 -10
  95. data/doc/classes/AtariDos.src/M000407.html +4 -29
  96. data/doc/classes/AtariDos.src/M000408.html +43 -0
  97. data/doc/classes/AtariDos.src/M000409.html +43 -0
  98. data/doc/classes/AtariText.html +10 -10
  99. data/doc/classes/AtariText.src/M000331.html +20 -0
  100. data/doc/classes/AtariText.src/M000332.html +4 -6
  101. data/doc/classes/Atr.html +35 -35
  102. data/doc/classes/Atr.src/M000235.html +18 -0
  103. data/doc/classes/Atr.src/M000236.html +4 -4
  104. data/doc/classes/Atr.src/M000237.html +5 -4
  105. data/doc/classes/Atr.src/M000238.html +4 -5
  106. data/doc/classes/Atr.src/M000239.html +4 -4
  107. data/doc/classes/Atr.src/M000240.html +5 -4
  108. data/doc/classes/Atr.src/M000241.html +5 -5
  109. data/doc/classes/C64.html +105 -105
  110. data/doc/classes/C64.src/M000517.html +4 -6
  111. data/doc/classes/C64.src/M000518.html +4 -8
  112. data/doc/classes/C64.src/M000519.html +16 -7
  113. data/doc/classes/C64.src/M000520.html +6 -5
  114. data/doc/classes/C64.src/M000521.html +8 -5
  115. data/doc/classes/C64.src/M000522.html +8 -4
  116. data/doc/classes/C64.src/M000523.html +5 -4
  117. data/doc/classes/C64.src/M000524.html +5 -4
  118. data/doc/classes/C64.src/M000525.html +4 -4
  119. data/doc/classes/C64.src/M000526.html +4 -4
  120. data/doc/classes/C64.src/M000527.html +4 -4
  121. data/doc/classes/C64.src/M000528.html +4 -4
  122. data/doc/classes/C64.src/M000529.html +4 -5
  123. data/doc/classes/C64.src/M000530.html +4 -5
  124. data/doc/classes/C64.src/M000531.html +4 -4
  125. data/doc/classes/C64.src/M000532.html +5 -4
  126. data/doc/classes/C64.src/M000533.html +5 -55
  127. data/doc/classes/C64.src/M000534.html +4 -99
  128. data/doc/classes/C64.src/M000535.html +18 -0
  129. data/doc/classes/C64.src/M000536.html +69 -0
  130. data/doc/classes/C64.src/M000537.html +113 -0
  131. data/doc/classes/C64.src/M000538.html +113 -0
  132. data/doc/classes/C64GeoPaintPic.html +30 -30
  133. data/doc/classes/C64GeoPaintPic.src/M000412.html +4 -4
  134. data/doc/classes/C64GeoPaintPic.src/M000413.html +4 -4
  135. data/doc/classes/C64GeoPaintPic.src/M000414.html +4 -52
  136. data/doc/classes/C64GeoPaintPic.src/M000415.html +50 -27
  137. data/doc/classes/C64GeoPaintPic.src/M000416.html +29 -6
  138. data/doc/classes/C64GeoPaintPic.src/M000417.html +20 -0
  139. data/doc/classes/C64GeoPaintPic.src/M000418.html +20 -0
  140. data/doc/classes/C64GeosBASICFile.html +10 -10
  141. data/doc/classes/C64GeosBASICFile.src/M000289.html +19 -0
  142. data/doc/classes/C64GeosBASICFile.src/M000290.html +4 -5
  143. data/doc/classes/C64GeosBASICFile.src/M000291.html +1 -1
  144. data/doc/classes/C64GeosFile.html +30 -47
  145. data/doc/classes/C64GeosFile.src/M000140.html +1 -1
  146. data/doc/classes/C64GeosFile.src/M000141.html +1 -1
  147. data/doc/classes/C64GeosFile.src/M000142.html +1 -1
  148. data/doc/classes/C64GeosFile.src/M000143.html +4 -6
  149. data/doc/classes/C64GeosFile.src/M000144.html +8 -4
  150. data/doc/classes/C64GeosFile.src/M000145.html +4 -8
  151. data/doc/classes/C64GeosFile.src/M000146.html +8 -4
  152. data/doc/classes/C64GeosFile.src/M000147.html +14 -9
  153. data/doc/classes/C64GeosFile.src/M000148.html +22 -14
  154. data/doc/classes/C64GeosFile.src/M000149.html +1 -1
  155. data/doc/classes/C64GeosFont.html +70 -70
  156. data/doc/classes/C64GeosFont.src/M000179.html +18 -0
  157. data/doc/classes/C64GeosFont.src/M000180.html +4 -4
  158. data/doc/classes/C64GeosFont.src/M000181.html +4 -4
  159. data/doc/classes/C64GeosFont.src/M000182.html +12 -4
  160. data/doc/classes/C64GeosFont.src/M000183.html +8 -11
  161. data/doc/classes/C64GeosFont.src/M000184.html +12 -4
  162. data/doc/classes/C64GeosFont.src/M000185.html +12 -12
  163. data/doc/classes/C64GeosFont.src/M000186.html +5 -11
  164. data/doc/classes/C64GeosFont.src/M000187.html +5 -5
  165. data/doc/classes/C64GeosFont.src/M000188.html +26 -5
  166. data/doc/classes/C64GeosFont.src/M000189.html +9 -27
  167. data/doc/classes/C64GeosFont.src/M000190.html +9 -27
  168. data/doc/classes/C64GeosFont.src/M000191.html +16 -8
  169. data/doc/classes/C64GeosFont.src/M000192.html +22 -16
  170. data/doc/classes/C64Seq.html +15 -15
  171. data/doc/classes/C64Seq.src/M000392.html +6 -4
  172. data/doc/classes/C64Seq.src/M000393.html +4 -4
  173. data/doc/classes/C64Seq.src/M000394.html +18 -0
  174. data/doc/classes/C64Seq.src/M000395.html +18 -0
  175. data/doc/classes/CPMFile.html +15 -15
  176. data/doc/classes/CPMFile.src/M000176.html +7 -9
  177. data/doc/classes/CPMFile.src/M000177.html +4 -6
  178. data/doc/classes/CPMFile.src/M000178.html +9 -5
  179. data/doc/classes/CVT.html +165 -0
  180. data/doc/classes/CVT.src/M000482.html +18 -0
  181. data/doc/classes/CVT.src/M000483.html +18 -0
  182. data/doc/classes/CVT.src/M000484.html +18 -0
  183. data/doc/classes/CVTArchive.html +187 -0
  184. data/doc/classes/CVTArchive.src/M000381.html +18 -0
  185. data/doc/classes/CVTArchive.src/M000382.html +67 -0
  186. data/doc/classes/CVTArchive.src/M000383.html +58 -0
  187. data/doc/classes/CbmFile.html +10 -10
  188. data/doc/classes/CbmFile.src/M000329.html +22 -0
  189. data/doc/classes/CbmFile.src/M000330.html +4 -6
  190. data/doc/classes/CbmFile.src/M000331.html +1 -1
  191. data/doc/classes/Coco.html +65 -65
  192. data/doc/classes/Coco.src/M000451.html +4 -4
  193. data/doc/classes/Coco.src/M000452.html +4 -4
  194. data/doc/classes/Coco.src/M000453.html +4 -4
  195. data/doc/classes/Coco.src/M000454.html +4 -4
  196. data/doc/classes/Coco.src/M000455.html +4 -4
  197. data/doc/classes/Coco.src/M000456.html +3 -3
  198. data/doc/classes/Coco.src/M000457.html +4 -4
  199. data/doc/classes/Coco.src/M000458.html +4 -4
  200. data/doc/classes/Coco.src/M000459.html +4 -4
  201. data/doc/classes/Coco.src/M000460.html +4 -4
  202. data/doc/classes/Coco.src/M000461.html +4 -4
  203. data/doc/classes/Coco.src/M000462.html +4 -41
  204. data/doc/classes/Coco.src/M000463.html +55 -0
  205. data/doc/classes/Coco.src/M000464.html +55 -0
  206. data/doc/classes/CocoBasic.html +10 -10
  207. data/doc/classes/CocoBasic.src/M000410.html +6 -58
  208. data/doc/classes/CocoBasic.src/M000411.html +72 -0
  209. data/doc/classes/CocoBasic.src/M000412.html +72 -0
  210. data/doc/classes/CocoScreen.html +20 -20
  211. data/doc/classes/CocoScreen.src/M000273.html +18 -0
  212. data/doc/classes/CocoScreen.src/M000274.html +4 -4
  213. data/doc/classes/CocoScreen.src/M000275.html +4 -4
  214. data/doc/classes/CocoScreen.src/M000276.html +4 -4
  215. data/doc/classes/D81.html +45 -45
  216. data/doc/classes/D81.src/M000420.html +4 -4
  217. data/doc/classes/D81.src/M000421.html +4 -4
  218. data/doc/classes/D81.src/M000422.html +4 -4
  219. data/doc/classes/D81.src/M000423.html +4 -4
  220. data/doc/classes/D81.src/M000424.html +4 -4
  221. data/doc/classes/D81.src/M000425.html +4 -4
  222. data/doc/classes/D81.src/M000426.html +4 -9
  223. data/doc/classes/D81.src/M000427.html +7 -8
  224. data/doc/classes/D81.src/M000428.html +24 -0
  225. data/doc/classes/D81.src/M000429.html +24 -0
  226. data/doc/classes/DumpUtilities.html +10 -10
  227. data/doc/classes/DumpUtilities.src/M000213.html +33 -0
  228. data/doc/classes/DumpUtilities.src/M000214.html +13 -19
  229. data/doc/classes/FileCache.html +55 -55
  230. data/doc/classes/FileCache.src/M000370.html +26 -0
  231. data/doc/classes/FileCache.src/M000371.html +6 -12
  232. data/doc/classes/FileCache.src/M000372.html +10 -6
  233. data/doc/classes/FileCache.src/M000373.html +8 -10
  234. data/doc/classes/FileCache.src/M000374.html +16 -6
  235. data/doc/classes/FileCache.src/M000375.html +7 -18
  236. data/doc/classes/FileCache.src/M000376.html +8 -7
  237. data/doc/classes/FileCache.src/M000377.html +8 -7
  238. data/doc/classes/FileCache.src/M000378.html +12 -8
  239. data/doc/classes/FileCache.src/M000379.html +10 -13
  240. data/doc/classes/FileCache.src/M000380.html +7 -10
  241. data/doc/classes/FileContainer.html +5 -5
  242. data/doc/classes/FileContainer.src/M000440.html +26 -0
  243. data/doc/classes/FileContainer.src/M000441.html +26 -0
  244. data/doc/classes/FileSystem.html +41 -41
  245. data/doc/classes/FileSystem.src/M000429.html +4 -4
  246. data/doc/classes/FileSystem.src/M000430.html +4 -4
  247. data/doc/classes/FileSystem.src/M000431.html +4 -4
  248. data/doc/classes/FileSystem.src/M000432.html +4 -4
  249. data/doc/classes/FileSystem.src/M000433.html +5 -5
  250. data/doc/classes/FileSystem.src/M000434.html +4 -6
  251. data/doc/classes/FileSystem.src/M000435.html +6 -11
  252. data/doc/classes/FileSystem.src/M000436.html +25 -0
  253. data/doc/classes/FileSystem.src/M000437.html +25 -0
  254. data/doc/classes/FileSystemImage.html +127 -127
  255. data/doc/classes/FileSystemImage.src/M000292.html +8 -4
  256. data/doc/classes/FileSystemImage.src/M000293.html +26 -7
  257. data/doc/classes/FileSystemImage.src/M000294.html +11 -25
  258. data/doc/classes/FileSystemImage.src/M000295.html +4 -13
  259. data/doc/classes/FileSystemImage.src/M000296.html +4 -4
  260. data/doc/classes/FileSystemImage.src/M000297.html +5 -4
  261. data/doc/classes/FileSystemImage.src/M000298.html +4 -5
  262. data/doc/classes/FileSystemImage.src/M000299.html +8 -4
  263. data/doc/classes/FileSystemImage.src/M000300.html +6 -9
  264. data/doc/classes/FileSystemImage.src/M000301.html +5 -6
  265. data/doc/classes/FileSystemImage.src/M000302.html +4 -4
  266. data/doc/classes/FileSystemImage.src/M000303.html +4 -4
  267. data/doc/classes/FileSystemImage.src/M000304.html +4 -4
  268. data/doc/classes/FileSystemImage.src/M000305.html +7 -5
  269. data/doc/classes/FileSystemImage.src/M000306.html +8 -6
  270. data/doc/classes/FileSystemImage.src/M000307.html +8 -8
  271. data/doc/classes/FileSystemImage.src/M000308.html +5 -9
  272. data/doc/classes/FileSystemImage.src/M000309.html +9 -4
  273. data/doc/classes/FileSystemImage.src/M000310.html +7 -7
  274. data/doc/classes/FileSystemImage.src/M000311.html +12 -10
  275. data/doc/classes/FileSystemImage.src/M000312.html +5 -12
  276. data/doc/classes/FileSystemImage.src/M000313.html +4 -4
  277. data/doc/classes/FileSystemImage.src/M000314.html +4 -4
  278. data/doc/classes/FileSystemImage.src/M000315.html +13 -4
  279. data/doc/classes/FileSystemImage.src/M000316.html +5 -12
  280. data/doc/classes/GenericFile.html +10 -10
  281. data/doc/classes/GenericFile.src/M000231.html +20 -0
  282. data/doc/classes/GenericFile.src/M000232.html +4 -6
  283. data/doc/classes/GenericGIF.html +25 -25
  284. data/doc/classes/GenericGIF.src/M000546.html +4 -4
  285. data/doc/classes/GenericGIF.src/M000547.html +4 -4
  286. data/doc/classes/GenericGIF.src/M000548.html +18 -0
  287. data/doc/classes/GenericGIF.src/M000549.html +18 -0
  288. data/doc/classes/GenericGIF.src/M000550.html +18 -0
  289. data/doc/classes/GenericGIF.src/M000551.html +18 -0
  290. data/doc/classes/HostSystem.html +91 -91
  291. data/doc/classes/HostSystem.src/M000464.html +4 -8
  292. data/doc/classes/HostSystem.src/M000465.html +8 -4
  293. data/doc/classes/HostSystem.src/M000466.html +5 -5
  294. data/doc/classes/HostSystem.src/M000467.html +4 -8
  295. data/doc/classes/HostSystem.src/M000468.html +8 -19
  296. data/doc/classes/HostSystem.src/M000469.html +19 -4
  297. data/doc/classes/HostSystem.src/M000470.html +4 -5
  298. data/doc/classes/HostSystem.src/M000471.html +5 -4
  299. data/doc/classes/HostSystem.src/M000472.html +4 -4
  300. data/doc/classes/HostSystem.src/M000473.html +4 -4
  301. data/doc/classes/HostSystem.src/M000474.html +4 -4
  302. data/doc/classes/HostSystem.src/M000475.html +3 -3
  303. data/doc/classes/HostSystem.src/M000476.html +4 -4
  304. data/doc/classes/HostSystem.src/M000477.html +4 -4
  305. data/doc/classes/HostSystem.src/M000478.html +4 -4
  306. data/doc/classes/HostSystem.src/M000479.html +4 -15
  307. data/doc/classes/HostSystem.src/M000480.html +15 -4
  308. data/doc/classes/HostSystem.src/M000481.html +18 -0
  309. data/doc/classes/HostSystem.src/M000482.html +18 -0
  310. data/doc/classes/ImageFormat.html +84 -84
  311. data/doc/classes/ImageFormat.src/M000193.html +4 -4
  312. data/doc/classes/ImageFormat.src/M000194.html +4 -4
  313. data/doc/classes/ImageFormat.src/M000195.html +4 -4
  314. data/doc/classes/ImageFormat.src/M000196.html +3 -3
  315. data/doc/classes/ImageFormat.src/M000197.html +4 -4
  316. data/doc/classes/ImageFormat.src/M000198.html +8 -4
  317. data/doc/classes/ImageFormat.src/M000199.html +5 -8
  318. data/doc/classes/ImageFormat.src/M000200.html +4 -5
  319. data/doc/classes/ImageFormat.src/M000201.html +4 -4
  320. data/doc/classes/ImageFormat.src/M000202.html +4 -4
  321. data/doc/classes/ImageFormat.src/M000203.html +4 -4
  322. data/doc/classes/ImageFormat.src/M000204.html +4 -4
  323. data/doc/classes/ImageFormat.src/M000205.html +4 -4
  324. data/doc/classes/ImageFormat.src/M000206.html +4 -4
  325. data/doc/classes/ImageFormat.src/M000207.html +6 -4
  326. data/doc/classes/ImageFormat.src/M000208.html +12 -6
  327. data/doc/classes/ImageFormat.src/M000209.html +4 -12
  328. data/doc/classes/ImageSniffing.html +40 -40
  329. data/doc/classes/ImageSniffing.src/M000494.html +105 -32
  330. data/doc/classes/ImageSniffing.src/M000495.html +15 -25
  331. data/doc/classes/ImageSniffing.src/M000496.html +97 -45
  332. data/doc/classes/ImageSniffing.src/M000497.html +31 -58
  333. data/doc/classes/ImageSniffing.src/M000498.html +24 -22
  334. data/doc/classes/ImageSniffing.src/M000499.html +59 -0
  335. data/doc/classes/ImageSniffing.src/M000500.html +74 -0
  336. data/doc/classes/ImageSniffing.src/M000501.html +44 -0
  337. data/doc/classes/ImageSniffing.src/M000502.html +44 -0
  338. data/doc/classes/IntegerBASIC.html +10 -10
  339. data/doc/classes/IntegerBASIC.src/M000285.html +20 -0
  340. data/doc/classes/IntegerBASIC.src/M000286.html +72 -6
  341. data/doc/classes/JvcDsk.html +30 -30
  342. data/doc/classes/JvcDsk.src/M000279.html +18 -0
  343. data/doc/classes/JvcDsk.src/M000280.html +25 -4
  344. data/doc/classes/JvcDsk.src/M000281.html +4 -25
  345. data/doc/classes/JvcDsk.src/M000282.html +4 -4
  346. data/doc/classes/JvcDsk.src/M000283.html +4 -4
  347. data/doc/classes/JvcDsk.src/M000284.html +8 -4
  348. data/doc/classes/MBasic.html +10 -10
  349. data/doc/classes/MBasic.src/M000233.html +20 -0
  350. data/doc/classes/MBasic.src/M000234.html +8 -6
  351. data/doc/classes/NADOLDos.html +10 -10
  352. data/doc/classes/NADOLDos.src/M000154.html +18 -0
  353. data/doc/classes/NADOLDos.src/M000155.html +39 -5
  354. data/doc/classes/NativeFileType.html +100 -100
  355. data/doc/classes/NativeFileType.src/M000253.html +10 -5
  356. data/doc/classes/NativeFileType.src/M000254.html +5 -10
  357. data/doc/classes/NativeFileType.src/M000255.html +4 -4
  358. data/doc/classes/NativeFileType.src/M000256.html +4 -4
  359. data/doc/classes/NativeFileType.src/M000257.html +8 -4
  360. data/doc/classes/NativeFileType.src/M000258.html +4 -8
  361. data/doc/classes/NativeFileType.src/M000259.html +4 -4
  362. data/doc/classes/NativeFileType.src/M000260.html +3 -3
  363. data/doc/classes/NativeFileType.src/M000261.html +9 -4
  364. data/doc/classes/NativeFileType.src/M000262.html +4 -9
  365. data/doc/classes/NativeFileType.src/M000263.html +8 -4
  366. data/doc/classes/NativeFileType.src/M000264.html +4 -6
  367. data/doc/classes/NativeFileType.src/M000265.html +10 -4
  368. data/doc/classes/NativeFileType.src/M000266.html +28 -11
  369. data/doc/classes/NativeFileType.src/M000267.html +9 -26
  370. data/doc/classes/NativeFileType.src/M000268.html +4 -10
  371. data/doc/classes/NativeFileType.src/M000269.html +4 -4
  372. data/doc/classes/NativeFileType.src/M000270.html +4 -4
  373. data/doc/classes/NativeFileType.src/M000271.html +6 -4
  374. data/doc/classes/NativeFileType.src/M000272.html +14 -6
  375. data/doc/classes/NativeFileType.src/M000273.html +1 -1
  376. data/doc/classes/PackedProDosPic.html +5 -5
  377. data/doc/classes/PackedProDosPic.src/M000409.html +40 -0
  378. data/doc/classes/PackedProDosPic.src/M000410.html +40 -0
  379. data/doc/classes/PascalDos.html +15 -15
  380. data/doc/classes/PascalDos.src/M000506.html +18 -0
  381. data/doc/classes/PascalDos.src/M000507.html +21 -0
  382. data/doc/classes/PascalDos.src/M000508.html +62 -0
  383. data/doc/classes/PascalDos.src/M000509.html +62 -0
  384. data/doc/classes/PascalFile.html +10 -10
  385. data/doc/classes/PascalFile.src/M000152.html +20 -0
  386. data/doc/classes/PascalFile.src/M000153.html +5 -7
  387. data/doc/classes/PascalPic.html +10 -10
  388. data/doc/classes/PascalPic.src/M000488.html +20 -0
  389. data/doc/classes/PascalPic.src/M000489.html +18 -0
  390. data/doc/classes/PascalPic.src/M000490.html +18 -0
  391. data/doc/classes/ProDosBINFile.html +20 -20
  392. data/doc/classes/ProDosBINFile.src/M000484.html +7 -5
  393. data/doc/classes/ProDosBINFile.src/M000485.html +18 -0
  394. data/doc/classes/ProDosBINFile.src/M000486.html +18 -0
  395. data/doc/classes/ProDosBINFile.src/M000487.html +18 -0
  396. data/doc/classes/ProDosBINFile.src/M000488.html +18 -0
  397. data/doc/classes/ProDosBinPic.html +15 -15
  398. data/doc/classes/ProDosBinPic.src/M000149.html +7 -5
  399. data/doc/classes/ProDosBinPic.src/M000150.html +5 -7
  400. data/doc/classes/ProDosBinPic.src/M000151.html +4 -4
  401. data/doc/classes/ProDosFile.html +15 -15
  402. data/doc/classes/ProDosFile.src/M000215.html +20 -0
  403. data/doc/classes/ProDosFile.src/M000216.html +4 -6
  404. data/doc/classes/ProDosFile.src/M000217.html +5 -4
  405. data/doc/classes/Proc.html +54 -54
  406. data/doc/classes/Proc.src/M000220.html +21 -0
  407. data/doc/classes/Proc.src/M000221.html +5 -7
  408. data/doc/classes/Proc.src/M000222.html +8 -5
  409. data/doc/classes/Proc.src/M000223.html +6 -6
  410. data/doc/classes/Proc.src/M000224.html +6 -6
  411. data/doc/classes/Proc.src/M000225.html +5 -8
  412. data/doc/classes/Proc.src/M000226.html +3 -6
  413. data/doc/classes/Proc.src/M000227.html +7 -3
  414. data/doc/classes/Proc.src/M000228.html +4 -6
  415. data/doc/classes/Proc.src/M000229.html +3 -5
  416. data/doc/classes/Proc.src/M000230.html +2 -2
  417. data/doc/classes/ProcSource.html +10 -10
  418. data/doc/classes/ProcSource.src/M000544.html +38 -0
  419. data/doc/classes/ProcSource.src/M000545.html +109 -0
  420. data/doc/classes/ProcSource.src/M000546.html +109 -0
  421. data/doc/classes/RDoc.html +5 -5
  422. data/doc/classes/RDoc.src/M000543.html +40 -0
  423. data/doc/classes/RDoc.src/M000544.html +40 -0
  424. data/doc/classes/RawDisk.html +10 -10
  425. data/doc/classes/RawDisk.src/M000333.html +18 -0
  426. data/doc/classes/RawDisk.src/M000334.html +9 -4
  427. data/doc/classes/RipXplore.html +1 -1
  428. data/doc/classes/RipXploreLog.html +15 -15
  429. data/doc/classes/RipXploreLog.src/M000173.html +4 -4
  430. data/doc/classes/RipXploreLog.src/M000174.html +6 -4
  431. data/doc/classes/RipXploreLog.src/M000175.html +4 -6
  432. data/doc/classes/RsDos.html +20 -20
  433. data/doc/classes/RsDos.src/M000490.html +4 -48
  434. data/doc/classes/RsDos.src/M000491.html +18 -0
  435. data/doc/classes/RsDos.src/M000492.html +18 -0
  436. data/doc/classes/RsDos.src/M000493.html +62 -0
  437. data/doc/classes/RsDos.src/M000494.html +62 -0
  438. data/doc/classes/ScAsm.html +5 -5
  439. data/doc/classes/ScAsm.src/M000502.html +45 -0
  440. data/doc/classes/ScAsm.src/M000503.html +45 -0
  441. data/doc/classes/ScreenDump.html +5 -5
  442. data/doc/classes/ScreenDump.src/M000542.html +24 -0
  443. data/doc/classes/ScreenDump.src/M000543.html +24 -0
  444. data/doc/classes/ScreenDumps.html +15 -15
  445. data/doc/classes/ScreenDumps.src/M000385.html +8 -10
  446. data/doc/classes/ScreenDumps.src/M000386.html +10 -21
  447. data/doc/classes/ScreenDumps.src/M000387.html +35 -0
  448. data/doc/classes/ScreenDumps.src/M000388.html +35 -0
  449. data/doc/classes/ScrunchedAppleDosPic.html +5 -5
  450. data/doc/classes/ScrunchedAppleDosPic.src/M000291.html +37 -0
  451. data/doc/classes/SubclassTracking.html +5 -5
  452. data/doc/classes/SubclassTracking.src/M000551.html +23 -0
  453. data/doc/classes/SubclassTracking.src/M000552.html +23 -0
  454. data/doc/classes/Ti99.html +60 -60
  455. data/doc/classes/Ti99.src/M000161.html +4 -4
  456. data/doc/classes/Ti99.src/M000162.html +4 -4
  457. data/doc/classes/Ti99.src/M000163.html +4 -4
  458. data/doc/classes/Ti99.src/M000164.html +4 -4
  459. data/doc/classes/Ti99.src/M000165.html +4 -4
  460. data/doc/classes/Ti99.src/M000166.html +4 -4
  461. data/doc/classes/Ti99.src/M000167.html +4 -4
  462. data/doc/classes/Ti99.src/M000168.html +4 -4
  463. data/doc/classes/Ti99.src/M000169.html +4 -4
  464. data/doc/classes/Ti99.src/M000170.html +4 -4
  465. data/doc/classes/Ti99.src/M000171.html +4 -4
  466. data/doc/classes/Ti99.src/M000172.html +4 -4
  467. data/doc/classes/Ti99BasicFile.html +5 -5
  468. data/doc/classes/Ti99BasicFile.src/M000356.html +72 -0
  469. data/doc/classes/Ti99File.html +10 -10
  470. data/doc/classes/Ti99File.src/M000287.html +20 -0
  471. data/doc/classes/Ti99File.src/M000288.html +4 -6
  472. data/doc/classes/Ti99Fms.html +10 -10
  473. data/doc/classes/Ti99Fms.src/M000449.html +4 -63
  474. data/doc/classes/Ti99Fms.src/M000450.html +77 -0
  475. data/doc/classes/Ti99Fms.src/M000451.html +77 -0
  476. data/doc/classes/Ti99TextFile.html +10 -10
  477. data/doc/classes/Ti99TextFile.src/M000515.html +33 -0
  478. data/doc/classes/Ti99TextFile.src/M000516.html +18 -0
  479. data/doc/classes/Ti99TextFile.src/M000517.html +18 -0
  480. data/doc/classes/TiArtistPattern.html +20 -20
  481. data/doc/classes/TiArtistPattern.src/M000388.html +36 -4
  482. data/doc/classes/TiArtistPattern.src/M000389.html +4 -4
  483. data/doc/classes/TiArtistPattern.src/M000390.html +4 -4
  484. data/doc/classes/TiArtistPattern.src/M000391.html +18 -0
  485. data/doc/classes/TiArtistPattern.src/M000392.html +18 -0
  486. data/doc/classes/TiRLE.html +20 -20
  487. data/doc/classes/TiRLE.src/M000511.html +8 -4
  488. data/doc/classes/TiRLE.src/M000512.html +22 -0
  489. data/doc/classes/TiRLE.src/M000513.html +43 -0
  490. data/doc/classes/TiRLE.src/M000514.html +18 -0
  491. data/doc/classes/TiRLE.src/M000515.html +18 -0
  492. data/doc/classes/Trs80.html +55 -55
  493. data/doc/classes/Trs80.src/M000335.html +18 -0
  494. data/doc/classes/Trs80.src/M000336.html +4 -4
  495. data/doc/classes/Trs80.src/M000337.html +4 -4
  496. data/doc/classes/Trs80.src/M000338.html +4 -4
  497. data/doc/classes/Trs80.src/M000339.html +4 -4
  498. data/doc/classes/Trs80.src/M000340.html +4 -4
  499. data/doc/classes/Trs80.src/M000341.html +4 -4
  500. data/doc/classes/Trs80.src/M000342.html +4 -4
  501. data/doc/classes/Trs80.src/M000343.html +4 -4
  502. data/doc/classes/Trs80.src/M000344.html +4 -4
  503. data/doc/classes/Trs80.src/M000345.html +4 -4
  504. data/doc/classes/Trs80BasicListing.html +15 -15
  505. data/doc/classes/Trs80BasicListing.src/M000353.html +20 -0
  506. data/doc/classes/Trs80BasicListing.src/M000354.html +4 -6
  507. data/doc/classes/Trs80BasicListing.src/M000355.html +4 -4
  508. data/doc/classes/Trs80PascalSource.html +10 -10
  509. data/doc/classes/Trs80PascalSource.src/M000509.html +20 -0
  510. data/doc/classes/Trs80PascalSource.src/M000510.html +30 -0
  511. data/doc/classes/Trs80PascalSource.src/M000511.html +30 -0
  512. data/doc/classes/Trs80Text.html +15 -15
  513. data/doc/classes/Trs80Text.src/M000437.html +6 -4
  514. data/doc/classes/Trs80Text.src/M000438.html +4 -4
  515. data/doc/classes/Trs80Text.src/M000439.html +18 -0
  516. data/doc/classes/Trs80Text.src/M000440.html +18 -0
  517. data/doc/classes/TrsDos.html +20 -20
  518. data/doc/classes/TrsDos.src/M000403.html +4 -4
  519. data/doc/classes/TrsDos.src/M000404.html +4 -4
  520. data/doc/classes/TrsDos.src/M000405.html +4 -50
  521. data/doc/classes/TrsDos.src/M000406.html +64 -0
  522. data/doc/classes/TrsDos.src/M000407.html +64 -0
  523. data/doc/classes/Zx81.html +25 -25
  524. data/doc/classes/Zx81.src/M000321.html +18 -0
  525. data/doc/classes/Zx81.src/M000322.html +192 -4
  526. data/doc/classes/Zx81.src/M000323.html +4 -192
  527. data/doc/classes/Zx81.src/M000324.html +9 -4
  528. data/doc/classes/Zx81.src/M000325.html +14 -8
  529. data/doc/classes/Zx81Basic.html +15 -15
  530. data/doc/classes/Zx81Basic.src/M000326.html +20 -0
  531. data/doc/classes/Zx81Basic.src/M000327.html +4 -6
  532. data/doc/classes/Zx81Basic.src/M000328.html +109 -4
  533. data/doc/classes/Zx81PFile.html +10 -10
  534. data/doc/classes/Zx81PFile.src/M000383.html +4 -4
  535. data/doc/classes/Zx81PFile.src/M000384.html +18 -0
  536. data/doc/classes/Zx81PFile.src/M000385.html +18 -0
  537. data/doc/created.rid +1 -1
  538. data/doc/files/lib/LibRipXplore_rb.html +1 -1
  539. data/doc/files/lib/NativeFileType_rb.html +1 -1
  540. data/doc/files/lib/file_systems/CVTArchive_rb.html +108 -0
  541. data/doc/files/lib/file_systems/CbmDos_rb.html +1 -1
  542. data/doc/files/lib/image_formats/CVT_rb.html +108 -0
  543. data/doc/files/lib/native_file_types/c64/C64GeosFile_rb.html +1 -1
  544. data/doc/files/lib/native_file_types/c64/C64GeosFont_rb.html +1 -1
  545. data/doc/files/lib/native_file_types/c64/CbmFile_rb.html +1 -1
  546. data/doc/files/test/tc_c64_rb.html +1 -1
  547. data/doc/fr_class_index.html +2 -0
  548. data/doc/fr_file_index.html +2 -0
  549. data/doc/fr_method_index.html +439 -436
  550. data/lib/LibRipXplore.rb +1 -1
  551. data/lib/NativeFileType.rb +2 -0
  552. data/lib/file_systems/CVTArchive.rb +110 -0
  553. data/lib/file_systems/CbmDos.rb +2 -2
  554. data/lib/image_formats/CVT.rb +52 -0
  555. data/lib/native_file_types/c64/C64GeosFile.rb +2 -5
  556. data/lib/native_file_types/c64/C64GeosFont.rb +50 -26
  557. data/lib/native_file_types/c64/CbmFile.rb +5 -1
  558. data/test/tc_c64.rb +28 -4
  559. metadata +151 -5
data/lib/LibRipXplore.rb CHANGED
@@ -4,7 +4,7 @@ $:.unshift(File.dirname(__FILE__)) unless
4
4
  require 'open-uri'
5
5
  class RipXplore
6
6
 
7
- VERSION="0.11.0"
7
+ VERSION="0.12.0"
8
8
 
9
9
  private
10
10
  def RipXplore.require_files_in_subdir(dirname)
@@ -65,7 +65,9 @@ class NativeFileType
65
65
  end
66
66
 
67
67
  def to_info_dump
68
+
68
69
  s="class: #{self.class}\n"
70
+ s+="filename: #{self.filename}\n"
69
71
  @meta_data.keys.sort.each {|k| s<<"#{k}: #{@meta_data[k]}\n"}
70
72
  s
71
73
  end
@@ -0,0 +1,110 @@
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 'FileSystem'
9
+ #
10
+ # CVT files - sequential representation of C64 GEOS files
11
+ #
12
+ # this is a pseudo file system, a single CVT file will only
13
+ # contain 1 GEOS file
14
+ # References:
15
+ # http://ist.uwaterloo.ca/~schepers/formats/CVT.TXT
16
+
17
+ class CVTArchive<FileSystem
18
+
19
+ def self.host_system
20
+ C64
21
+ end
22
+
23
+ FILE_TYPES=[:del,:seq,:prg,:usr,:rel,:unk,:unk,:unk]
24
+ GEOS_FILE_TYPES=[:not_geos,:basic,:assembler,:data,:system,:desk_accessory,:application,:application_data,:font,:printer_driver,:input_driver,:disk_driver,:system_boot,:temp,:autoexec]
25
+
26
+ is_valid_file_system_if lambda {file_system_image.image_format.class==CVT}
27
+ is_valid_file_system_if lambda {
28
+ (file_system_image.file_bytes[0x22,9]=="formatted")
29
+ }
30
+
31
+ def self.files(file_system_image)
32
+ files=FileContainer.new
33
+ directory_entry=file_system_image.file_bytes[0x00,0x1D]
34
+ # require 'DumpUtilities'
35
+ # puts DumpUtilities.hex_dump(directory_entry)
36
+ file_type=FILE_TYPES[directory_entry[0x00]%8]
37
+ geos_file_type=GEOS_FILE_TYPES[directory_entry[0x16]]
38
+ is_geos_file=(geos_file_type!=:not_geos)
39
+
40
+ is_vlir=is_geos_file && (directory_entry[0x15]==0x01)
41
+
42
+ file_name=(directory_entry[0x03..0x12]).gsub(/\xa0/," ").strip #GEOS filenames will be ASCII not PETSCII
43
+ info_block="\000\000"+file_system_image.file_bytes[0xFE,0xFE] #put dummy bytes where the t/s would nromally go
44
+ file_contents=[info_block]
45
+
46
+ if (is_vlir) then
47
+ record_block="\000\377"+file_system_image.file_bytes[0x1FC,0xFE]
48
+ ptr=0x2FA
49
+ 127.times do |i|
50
+ record_no=i+1
51
+ sectors=record_block[2*record_no]
52
+ last_sector_length=record_block[1+(2*record_no)]
53
+
54
+ break if sectors==0 && last_sector_length==00
55
+ if sectors==0 && last_sector_length==0xFF then
56
+ file_contents<<(nil)
57
+ else
58
+ record_length=254*(sectors-1)+last_sector_length-1
59
+ record_bytes=file_system_image.file_bytes[ptr,record_length]
60
+ # puts "#{record_no}/#{sectors}/#{last_sector_length}"
61
+ # require 'DumpUtilities'
62
+ # puts DumpUtilities.hex_dump(record_bytes[0,0x40])
63
+
64
+ file_contents<<(record_bytes)
65
+ ptr+=254*(sectors)
66
+ # puts "record #{record_no} has length #{"%2x" % record_length} - sectors=$#{"%x" % sectors}, last sector =$#{"%02x" % last_sector_length} : ptr now #{ptr} of #{file_system_image.file_bytes.length} for #{file_name}"
67
+ end
68
+ end
69
+ else
70
+ file_contents=file_system_image.file_bytes[0x1FC,file_system_image.file_bytes.length-0x1FC]
71
+ end
72
+ file=NativeFileType.best_fit(file_system_image,file_name,file_contents,file_type,geos_file_type)
73
+ file.meta_data["c64_file_type"]=file_type
74
+ if (is_geos_file) then
75
+ file.meta_data["geos_file_structure_type"]=("$%02x" % directory_entry[0x15])
76
+ file.meta_data["geos_file_type"]=geos_file_type
77
+ file.meta_data["geos_file_modified_date"]="%04d-%02d-%02d %02d:%02d" % [1900+directory_entry[0x17],directory_entry[0x18],directory_entry[0x19],directory_entry[0x1a],directory_entry[0x1b]]
78
+ end
79
+ files<<file
80
+ # puts file.to_info_dump
81
+ files
82
+ end
83
+
84
+
85
+ end
86
+
87
+ # == Author
88
+ # Jonno Downes (jonno@jamtronix.com)
89
+ #
90
+ # == Copyright
91
+ # Copyright (c) 2008,2009,2010 Jonno Downes (jonno@jamtronix.com)
92
+ #
93
+ #Permission is hereby granted, free of charge, to any person obtaining
94
+ #a copy of this software and associated documentation files (the
95
+ #"Software"), to deal in the Software without restriction, including
96
+ #without limitation the rights to use, copy, modify, merge, publish,
97
+ #distribute, sublicense, and/or sell copies of the Software, and to
98
+ #permit persons to whom the Software is furnished to do so, subject to
99
+ #the following conditions:
100
+
101
+ # The above copyright notice and this permission notice shall be
102
+ # included in all copies or substantial portions of the Software.
103
+
104
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
105
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
106
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
107
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
108
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
109
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
110
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -17,8 +17,8 @@ end
17
17
  DIRECTORY_ENTRY_SIZE=0x20
18
18
  FILE_TYPES=[:del,:seq,:prg,:usr,:rel,:unk,:unk,:unk]
19
19
  GEOS_FILE_TYPES=[:not_geos,:basic,:assembler,:data,:system,:desk_accessory,:application,:application_data,:font,:printer_driver,:input_driver,:disk_driver,:system_boot,:temp,:autoexec]
20
- #for now, assume that anything on a CBM compatable image format is a CBM DOS
21
- is_valid_file_system_if lambda {true}
20
+ #for now, assume that anything on a CBM compatable disk image format is a CBM DOS
21
+ is_valid_file_system_if lambda {file_system_image.image_format.respond_to?(:dir_track_no)}
22
22
 
23
23
  def self.files(file_system_image)
24
24
  files=FileContainer.new
@@ -0,0 +1,52 @@
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
+ class CVT < ImageFormat
10
+
11
+ #
12
+ # CVT files - sequential representation of C64 GEOS files
13
+ #
14
+ # References:
15
+ # http://ist.uwaterloo.ca/~schepers/formats/CVT.TXT
16
+ # http://ftp.martnet.com/commie/geos/programming/documents/Convert%20format.txt
17
+
18
+ def self.possible_extensions
19
+ ['.cvt']
20
+ end
21
+
22
+ def self.host_system
23
+ C64
24
+ end
25
+
26
+
27
+
28
+ end
29
+ # == Author
30
+ # Jonno Downes (jonno@jamtronix.com)
31
+ #
32
+ # == Copyright
33
+ # Copyright (c) 2008,2009 Jonno Downes (jonno@jamtronix.com)
34
+ #
35
+ #Permission is hereby granted, free of charge, to any person obtaining
36
+ #a copy of this software and associated documentation files (the
37
+ #"Software"), to deal in the Software without restriction, including
38
+ #without limitation the rights to use, copy, modify, merge, publish,
39
+ #distribute, sublicense, and/or sell copies of the Software, and to
40
+ #permit persons to whom the Software is furnished to do so, subject to
41
+ #the following conditions:
42
+
43
+ # The above copyright notice and this permission notice shall be
44
+ # included in all copies or substantial portions of the Software.
45
+
46
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
47
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
48
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
49
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
50
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
51
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
52
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -8,6 +8,8 @@ require 'CbmFile'
8
8
 
9
9
  class C64GeosFile<CbmFile
10
10
 
11
+
12
+
11
13
  is_valid_file_if lambda {(aux_code!=:not_geos)}
12
14
 
13
15
  def type_description
@@ -24,11 +26,6 @@ def header_filename
24
26
  info_block[0x4d,16].unpack("A*")[0]
25
27
  end
26
28
 
27
- def self.file_system_file_types
28
- {
29
- CbmDos=>:any
30
- }
31
- end
32
29
  def info_block
33
30
  @contents[0]
34
31
  end
@@ -38,7 +38,12 @@ def point_ids
38
38
  @point_ids
39
39
  end
40
40
  def point_sizes
41
- (record_nos-[0])
41
+ r=[]
42
+ @contents.length.times do |record_no|
43
+ next if record_no==0
44
+ r<<record_no-1 unless @contents[record_no].nil?
45
+ end
46
+ r
42
47
  end
43
48
  def lengths
44
49
  if @lengths.nil? then
@@ -53,31 +58,31 @@ def lengths
53
58
  end
54
59
 
55
60
  def char_width(point_size,char)
56
- font_data=@contents[point_size]
61
+ font_data=@contents[point_size+1]
57
62
  return nil if font_data.nil?
58
63
  bit_stream_index=font_data[0x04]+0x100*font_data[0x05]
59
64
  char_pointer=2*((char[0]%0x80)-0x20)
60
65
  start_of_char=font_data[char_pointer+bit_stream_index]+0x100*font_data[char_pointer+bit_stream_index+1]
61
66
  start_of_next_char=font_data[char_pointer+bit_stream_index+2]+0x100*font_data[char_pointer+bit_stream_index+3]
62
67
  width=(start_of_next_char-start_of_char)
63
- raise "invalid char width #{width} for char $#{"%02x" % char} point size #{point_size} - char pointer=#{char_pointer}" if width>(2*point_size)
68
+ raise "invalid char width #{width} for char $#{"%02x" % char[0]} point size #{point_size} - char pointer=#{char_pointer}" if width>(2*point_size)
64
69
  width
65
70
  end
66
71
 
67
72
  def bytes_in_bitstream(point_size)
68
- font_data=@contents[point_size]
73
+ font_data=@contents[point_size+1]
69
74
  return nil if font_data.nil?
70
75
  font_data[0x01]+font_data[0x02]*100
71
76
  end
72
77
 
73
78
  def char_height(point_size)
74
- font_data=@contents[point_size]
79
+ font_data=@contents[point_size+1]
75
80
  return nil if font_data.nil?
76
81
  font_data[0x03]
77
82
  end
78
83
 
79
84
  def bitstreams(point_size,char)
80
- font_data=@contents[point_size]
85
+ font_data=@contents[point_size+1]
81
86
  return nil if font_data.nil?
82
87
  bit_stream_index=font_data[0x04]+0x100*font_data[0x05]
83
88
  bit_stream_base=font_data[0x06]+0x100*font_data[0x07]
@@ -104,28 +109,11 @@ def bitstreams(point_size,char)
104
109
  end
105
110
 
106
111
 
112
+
107
113
  def to_picture
108
114
  require 'PatchedPNG'
109
-
110
- point_size=point_sizes[0]
111
115
  canvas = PNG::Canvas.new picture_width,picture_height, BACKGROUND_COLOUR
112
- draw_string(canvas,point_size,"#{filename} #{point_size}",0,0,TEXT_COLOUR)
113
- x=0
114
- y=point_size
115
- (32..126).each do |b|
116
- c=b.chr
117
- width=char_width(point_size,c)
118
- # puts "char #{c} - char width=#{width},x=#{x},y=#{y},#{canvas.height}"
119
- if (x+width)>=picture_width then
120
- # puts "skipping at #{x} - w=#{width}"
121
- x=0
122
- y+=point_size
123
- break if (y+point_size)>=picture_height
124
- end
125
- draw_char(canvas,point_size,c,x,y,TEXT_COLOUR)
126
- x+=width
127
-
128
- end
116
+ draw_sampler(canvas)
129
117
  png = PNG.new canvas
130
118
  result=png.raw_bytes
131
119
  result
@@ -150,9 +138,11 @@ end
150
138
  x=0
151
139
  y+=point_size
152
140
  end
141
+ break if (y+point_size)>=picture_height
153
142
  draw_char(canvas,point_size,c,x,y,colour)
154
143
  x+=width
155
144
  end
145
+ [x,y]
156
146
  end
157
147
 
158
148
  def meta_data
@@ -163,7 +153,7 @@ def meta_data
163
153
  @meta_data["geos_font_lengths"]=(lengths.collect{|x| '$%04x' % x}).join(",")
164
154
  # point_sizes.each do |point_size|
165
155
  # prefix="geos_font_point_size_#{point_size}"
166
- # font_data=@contents[point_size]
156
+ # font_data=@contents[point_size+1]
167
157
  # next if font_data.nil?
168
158
  # @meta_data["#{prefix}_line_of_print"]=font_data[0x00]
169
159
  # @meta_data["#{prefix}_bytes_in_bitstream"]=bytes_in_bitstream(point_size)
@@ -176,6 +166,40 @@ def meta_data
176
166
  super
177
167
  end
178
168
 
169
+ private
170
+ def draw_sampler(canvas)
171
+ raise "no valid point sizes" if point_sizes.length==0
172
+ point_size=point_sizes[0]
173
+
174
+
175
+ first_letter=filename[0].chr
176
+ #some fonts have only upper case, some have only lower case, some have both
177
+ best_case_filename= (char_width(point_size,first_letter.upcase) > char_width(point_size,first_letter.downcase) ? filename.upcase : filename.downcase)
178
+ x=0
179
+ y=0
180
+ point_sizes.each do |point_size|
181
+ (x,y)=draw_string(canvas,point_size,"#{best_case_filename} #{point_size}",x,y,TEXT_COLOUR)
182
+ x=0
183
+ y+=point_size
184
+ (32..126).each do |b|
185
+ c=b.chr
186
+ width=char_width(point_size,c)
187
+ # puts "#{filename} char #{c} - char width=#{width},x=#{x},y=#{y},#{picture_height}"
188
+ if (x+width)>=picture_width then
189
+ # puts "skipping at #{x} - w=#{width}"
190
+ x=0
191
+ y+=point_size
192
+ end
193
+ break if (y+point_size)>=picture_height
194
+ draw_char(canvas,point_size,c,x,y,TEXT_COLOUR)
195
+ x+=width
196
+ end
197
+ x=0
198
+ y+=point_size
199
+ end
200
+
201
+ end
202
+
179
203
 
180
204
  end
181
205
 
@@ -1,12 +1,16 @@
1
1
  require 'NativeFileType'
2
2
  class CbmFile<NativeFileType
3
3
 
4
+
4
5
  def self.file_system_file_types
5
6
  {
6
- CbmDos=>:any
7
+ CVTArchive=>:any,
8
+ CbmDos=>:any,
9
+
7
10
  }
8
11
  end
9
12
 
13
+
10
14
  def type_description
11
15
  file_type.to_s
12
16
  end
data/test/tc_c64.rb CHANGED
@@ -5,8 +5,35 @@ class ImageSniffing < Test::Unit::TestCase
5
5
 
6
6
 
7
7
  def test_c64_images
8
+ f=sniff_url("http://cbmfiles.com/genie/geniefiles/GEOSFonts/SUPRA-SEXY.CVT",CVT,CVTArchive,
9
+ [{:filename=>"Supra Sexy",:expected_native_file_type=>C64GeosFont,:save_output=>[:to_picture,'png']}]
10
+ )
11
+
12
+ sniff_url("http://lyonlabs.org/commodore/onrequest/geos/geosfonts1.d64",D64,CbmDos,
13
+ [
14
+ {:filename=>"America",:expected_native_file_type=>C64GeosFont,:save_output=>[:to_picture,'png']},
15
+ {:filename=>"BONANZA",:expected_native_file_type=>C64GeosFont,:save_output=>[:to_picture,'png']},
16
+ {:filename=>"Cursive",:expected_native_file_type=>C64GeosFont,:save_output=>[:to_picture,'png']},
17
+ ]
18
+ )
8
19
 
9
20
 
21
+ f=sniff_url("http://cbmfiles.com/genie/geniefiles/GEOSFonts/STENCIL.CVT",CVT,CVTArchive,
22
+ [{:filename=>"STENCIL",:expected_native_file_type=>C64GeosFont,:save_output=>[:to_picture,'png']}]
23
+ )
24
+
25
+ f=sniff_url("http://cbmfiles.com/genie/geniefiles/GEOSFonts/ZAPF.FONT.CVT",CVT,CVTArchive,
26
+ [{:filename=>"ZAPF 10 14",:expected_native_file_type=>C64GeosFont,:save_output=>[:to_picture,'png']}]
27
+ )
28
+ f=sniff_url("http://cbmfiles.com/genie/geniefiles/GEOSFonts/PRINCETONFNT.CVT",CVT,CVTArchive,
29
+ [{:filename=>"PRINCETON24 PD",:expected_native_file_type=>C64GeosFont,:save_output=>[:to_picture,'png']}]
30
+ )
31
+
32
+
33
+ # f=sniff_url("http://cbmfiles.com/genie/geniefiles/GEOSFonts/60DPIMEGAS.SFX",D64,CbmDos,
34
+ # [{:filename=>"klingon ship",:expected_native_file_type=>C64GeoPaintPic,:save_output=>[:to_picture,'png']}]
35
+ # )
36
+
10
37
  f=sniff_url("http://lyonlabs.org/commodore/onrequest/geos/geos-klingon.d64",D64,CbmDos,
11
38
  [{:filename=>"klingon ship",:expected_native_file_type=>C64GeoPaintPic,:save_output=>[:to_picture,'png']}]
12
39
  )
@@ -36,10 +63,7 @@ class ImageSniffing < Test::Unit::TestCase
36
63
  f=get_file_from_url("http://lyonlabs.org/commodore/geoLink/geoLink-1.00.d64","TURBOBOOT")
37
64
  # puts f.to_hex_dump
38
65
 
39
- sniff_url("http://lyonlabs.org/commodore/onrequest/geos/geosfonts1.d64",D64,CbmDos,
40
- [{:filename=>"America",:expected_native_file_type=>C64GeosFont,:save_output=>[:to_picture,'png']}]
41
- )
42
-
66
+
43
67
 
44
68
  f=get_file_from_url("http://lyonlabs.org/commodore/onrequest/geos/geosfonts1.d64","America")
45
69