ripxplore 0.11.0 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
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