ripxplore 0.15.1 → 0.16.1

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 (808) hide show
  1. data/doc/classes/A2DskDosOrder.html +5 -5
  2. data/doc/classes/A2DskDosOrder.src/M000307.html +18 -0
  3. data/doc/classes/A2DskDosOrder.src/M000311.html +18 -0
  4. data/doc/classes/A2DskPhysicalOrder.html +5 -5
  5. data/doc/classes/A2DskPhysicalOrder.src/M000195.html +18 -0
  6. data/doc/classes/A2WriteTests.html +10 -10
  7. data/doc/classes/A2WriteTests.src/M000133.html +42 -0
  8. data/doc/classes/A2WriteTests.src/M000134.html +67 -0
  9. data/doc/classes/Apple2.html +70 -70
  10. data/doc/classes/Apple2.src/M000254.html +18 -0
  11. data/doc/classes/Apple2.src/M000255.html +18 -0
  12. data/doc/classes/Apple2.src/M000256.html +18 -0
  13. data/doc/classes/Apple2.src/M000257.html +18 -0
  14. data/doc/classes/Apple2.src/M000258.html +18 -0
  15. data/doc/classes/Apple2.src/M000259.html +19 -0
  16. data/doc/classes/Apple2.src/M000260.html +19 -0
  17. data/doc/classes/Apple2.src/M000261.html +18 -0
  18. data/doc/classes/Apple2.src/M000262.html +18 -0
  19. data/doc/classes/Apple2.src/M000263.html +18 -0
  20. data/doc/classes/Apple2.src/M000264.html +18 -0
  21. data/doc/classes/Apple2.src/M000265.html +18 -0
  22. data/doc/classes/Apple2.src/M000266.html +4 -4
  23. data/doc/classes/Apple2.src/M000267.html +4 -4
  24. data/doc/classes/Apple2.src/M000268.html +4 -4
  25. data/doc/classes/Apple2.src/M000269.html +4 -5
  26. data/doc/classes/AppleDos.html +55 -55
  27. data/doc/classes/AppleDos.src/M000276.html +18 -0
  28. data/doc/classes/AppleDos.src/M000277.html +18 -0
  29. data/doc/classes/AppleDos.src/M000278.html +18 -0
  30. data/doc/classes/AppleDos.src/M000279.html +73 -0
  31. data/doc/classes/AppleDos.src/M000280.html +18 -0
  32. data/doc/classes/AppleDos.src/M000281.html +18 -0
  33. data/doc/classes/AppleDos.src/M000282.html +18 -0
  34. data/doc/classes/AppleDos.src/M000283.html +73 -0
  35. data/doc/classes/AppleDos.src/M000284.html +98 -0
  36. data/doc/classes/AppleDos.src/M000285.html +28 -0
  37. data/doc/classes/AppleDos.src/M000286.html +34 -0
  38. data/doc/classes/AppleDos.src/M000287.html +37 -0
  39. data/doc/classes/AppleDos.src/M000288.html +17 -4
  40. data/doc/classes/AppleDos.src/M000289.html +14 -5
  41. data/doc/classes/AppleDos.src/M000290.html +30 -5
  42. data/doc/classes/AppleDosPic.html +20 -20
  43. data/doc/classes/AppleDosPic.src/M000299.html +20 -0
  44. data/doc/classes/AppleDosPic.src/M000300.html +18 -0
  45. data/doc/classes/AppleDosPic.src/M000301.html +18 -0
  46. data/doc/classes/AppleDosPic.src/M000302.html +18 -0
  47. data/doc/classes/AppleDosPic.src/M000303.html +20 -0
  48. data/doc/classes/AppleDosPic.src/M000304.html +18 -0
  49. data/doc/classes/AppleDosPic.src/M000305.html +18 -0
  50. data/doc/classes/AppleDosPic.src/M000306.html +18 -0
  51. data/doc/classes/AppleDosPrintShopFont.html +221 -0
  52. data/doc/classes/AppleDosPrintShopFont.src/M000348.html +18 -0
  53. data/doc/classes/AppleDosPrintShopFont.src/M000349.html +18 -0
  54. data/doc/classes/AppleDosPrintShopFont.src/M000350.html +18 -0
  55. data/doc/classes/AppleDosPrintShopFont.src/M000351.html +18 -0
  56. data/doc/classes/AppleDosPrintShopFont.src/M000352.html +18 -0
  57. data/doc/classes/AppleDosPrintShopFont.src/M000353.html +18 -0
  58. data/doc/classes/AppleDosPrintShopFont.src/M000354.html +18 -0
  59. data/doc/classes/AppleDosPrintShopFont.src/M000355.html +18 -0
  60. data/doc/classes/AppleDosPrintShopFont.src/M000356.html +19 -0
  61. data/doc/classes/AppleDosPrintShopFont.src/M000357.html +18 -0
  62. data/doc/classes/AppleHiResPic.html +40 -40
  63. data/doc/classes/AppleHiResPic.src/M000378.html +18 -0
  64. data/doc/classes/AppleHiResPic.src/M000379.html +18 -0
  65. data/doc/classes/AppleHiResPic.src/M000380.html +18 -0
  66. data/doc/classes/AppleHiResPic.src/M000381.html +52 -0
  67. data/doc/classes/AppleHiResPic.src/M000382.html +18 -0
  68. data/doc/classes/AppleHiResPic.src/M000383.html +18 -0
  69. data/doc/classes/AppleHiResPic.src/M000384.html +5 -5
  70. data/doc/classes/AppleHiResPic.src/M000385.html +38 -4
  71. data/doc/classes/AppleHiResPic.src/M000386.html +4 -4
  72. data/doc/classes/AppleHiResPic.src/M000387.html +4 -38
  73. data/doc/classes/AppleHiResPic.src/M000388.html +4 -4
  74. data/doc/classes/AppleHiResPic.src/M000389.html +4 -4
  75. data/doc/classes/ApplePrintShopMiniPix.html +20 -20
  76. data/doc/classes/ApplePrintShopMiniPix.src/M000596.html +38 -0
  77. data/doc/classes/ApplePrintShopMiniPix.src/M000597.html +18 -0
  78. data/doc/classes/ApplePrintShopMiniPix.src/M000598.html +18 -0
  79. data/doc/classes/ApplePrintShopMiniPix.src/M000599.html +18 -0
  80. data/doc/classes/ApplePrintShopMiniPix.src/M000600.html +38 -0
  81. data/doc/classes/ApplePrintShopMiniPix.src/M000601.html +4 -24
  82. data/doc/classes/ApplePrintShopMiniPix.src/M000602.html +4 -4
  83. data/doc/classes/ApplePrintShopMiniPix.src/M000603.html +4 -4
  84. data/doc/classes/Applesoft.html +10 -10
  85. data/doc/classes/Applesoft.src/M000179.html +21 -0
  86. data/doc/classes/Applesoft.src/M000180.html +75 -0
  87. data/doc/classes/Atari800.html +80 -80
  88. data/doc/classes/Atari800.src/M000314.html +18 -0
  89. data/doc/classes/Atari800.src/M000315.html +23 -0
  90. data/doc/classes/Atari800.src/M000316.html +22 -0
  91. data/doc/classes/Atari800.src/M000317.html +23 -0
  92. data/doc/classes/Atari800.src/M000318.html +18 -0
  93. data/doc/classes/Atari800.src/M000319.html +23 -0
  94. data/doc/classes/Atari800.src/M000320.html +22 -0
  95. data/doc/classes/Atari800.src/M000321.html +23 -0
  96. data/doc/classes/Atari800.src/M000322.html +23 -0
  97. data/doc/classes/Atari800.src/M000323.html +18 -0
  98. data/doc/classes/Atari800.src/M000324.html +19 -0
  99. data/doc/classes/Atari800.src/M000325.html +18 -0
  100. data/doc/classes/Atari800.src/M000326.html +4 -4
  101. data/doc/classes/Atari800.src/M000327.html +4 -9
  102. data/doc/classes/Atari800.src/M000328.html +4 -8
  103. data/doc/classes/Atari800.src/M000329.html +4 -9
  104. data/doc/classes/Atari800.src/M000330.html +4 -9
  105. data/doc/classes/Atari800.src/M000331.html +4 -4
  106. data/doc/classes/Atari800.src/M000332.html +4 -5
  107. data/doc/classes/Atari800.src/M000333.html +4 -4
  108. data/doc/classes/AtariBasic.html +10 -10
  109. data/doc/classes/AtariBasic.src/M000330.html +20 -0
  110. data/doc/classes/AtariBasic.src/M000331.html +108 -0
  111. data/doc/classes/AtariBasic.src/M000334.html +20 -0
  112. data/doc/classes/AtariBasic.src/M000335.html +108 -0
  113. data/doc/classes/AtariBinary.html +20 -20
  114. data/doc/classes/AtariBinary.src/M000388.html +20 -0
  115. data/doc/classes/AtariBinary.src/M000389.html +18 -0
  116. data/doc/classes/AtariBinary.src/M000390.html +18 -0
  117. data/doc/classes/AtariBinary.src/M000391.html +18 -0
  118. data/doc/classes/AtariBinary.src/M000392.html +20 -0
  119. data/doc/classes/AtariBinary.src/M000393.html +18 -0
  120. data/doc/classes/AtariBinary.src/M000394.html +4 -6
  121. data/doc/classes/AtariBinary.src/M000395.html +4 -4
  122. data/doc/classes/AtariBitmapFont.html +30 -30
  123. data/doc/classes/AtariBitmapFont.src/M000308.html +20 -0
  124. data/doc/classes/AtariBitmapFont.src/M000309.html +18 -0
  125. data/doc/classes/AtariBitmapFont.src/M000310.html +18 -0
  126. data/doc/classes/AtariBitmapFont.src/M000311.html +32 -0
  127. data/doc/classes/AtariBitmapFont.src/M000312.html +20 -0
  128. data/doc/classes/AtariBitmapFont.src/M000313.html +18 -0
  129. data/doc/classes/AtariBitmapFont.src/M000314.html +18 -0
  130. data/doc/classes/AtariBitmapFont.src/M000315.html +32 -0
  131. data/doc/classes/AtariBitmapFont.src/M000316.html +18 -0
  132. data/doc/classes/AtariBitmapFont.src/M000317.html +19 -0
  133. data/doc/classes/AtariMicroPainterPic.html +20 -20
  134. data/doc/classes/AtariMicroPainterPic.src/M000205.html +18 -0
  135. data/doc/classes/AtariMicroPainterPic.src/M000206.html +18 -0
  136. data/doc/classes/AtariMicroPainterPic.src/M000207.html +18 -0
  137. data/doc/classes/AtariMicroPainterPic.src/M000208.html +18 -0
  138. data/doc/classes/AtariMicroPainterPic.src/M000209.html +18 -0
  139. data/doc/classes/AtariMicroPainterPic.src/M000210.html +20 -0
  140. data/doc/classes/AtariText.html +10 -10
  141. data/doc/classes/AtariText.src/M000135.html +20 -0
  142. data/doc/classes/AtariText.src/M000136.html +18 -0
  143. data/doc/classes/AxePackedAppleDosPic.html +5 -5
  144. data/doc/classes/AxePackedAppleDosPic.src/M000268.html +59 -0
  145. data/doc/classes/AxePackedAppleDosPic.src/M000272.html +59 -0
  146. data/doc/classes/C64.html +105 -105
  147. data/doc/classes/C64.src/M000443.html +18 -0
  148. data/doc/classes/C64.src/M000444.html +18 -0
  149. data/doc/classes/C64.src/M000445.html +31 -0
  150. data/doc/classes/C64.src/M000446.html +20 -0
  151. data/doc/classes/C64.src/M000447.html +18 -0
  152. data/doc/classes/C64.src/M000448.html +18 -0
  153. data/doc/classes/C64.src/M000449.html +17 -4
  154. data/doc/classes/C64.src/M000450.html +6 -4
  155. data/doc/classes/C64.src/M000451.html +7 -16
  156. data/doc/classes/C64.src/M000452.html +8 -6
  157. data/doc/classes/C64.src/M000453.html +5 -8
  158. data/doc/classes/C64.src/M000454.html +5 -8
  159. data/doc/classes/C64.src/M000455.html +4 -5
  160. data/doc/classes/C64.src/M000456.html +4 -5
  161. data/doc/classes/C64.src/M000457.html +4 -4
  162. data/doc/classes/C64.src/M000458.html +4 -4
  163. data/doc/classes/C64.src/M000459.html +4 -4
  164. data/doc/classes/C64.src/M000460.html +4 -4
  165. data/doc/classes/C64.src/M000461.html +4 -4
  166. data/doc/classes/C64.src/M000462.html +5 -4
  167. data/doc/classes/C64.src/M000463.html +5 -4
  168. data/doc/classes/C64.src/M000464.html +4 -5
  169. data/doc/classes/C64.src/M000465.html +4 -5
  170. data/doc/classes/C64.src/M000466.html +55 -4
  171. data/doc/classes/C64.src/M000467.html +99 -4
  172. data/doc/classes/C64BasicPrg.html +1 -1
  173. data/doc/classes/C64BasicPrg.src/M000093.html +2 -1
  174. data/doc/classes/C64BasicPrg.src/M000094.html +1 -1
  175. data/doc/classes/C64BasicPrg.src/M000095.html +2 -2
  176. data/doc/classes/C64GeoWriteFile.html +5 -5
  177. data/doc/classes/C64GeoWriteFile.src/M000241.html +39 -0
  178. data/doc/classes/C64GeoWriteFile.src/M000243.html +39 -0
  179. data/doc/classes/C64GeosBASICFile.html +10 -10
  180. data/doc/classes/C64GeosBASICFile.src/M000475.html +19 -0
  181. data/doc/classes/C64GeosBASICFile.src/M000476.html +18 -0
  182. data/doc/classes/C64GeosBASICFile.src/M000479.html +19 -0
  183. data/doc/classes/C64GeosBASICFile.src/M000480.html +18 -0
  184. data/doc/classes/C64GeosFile.html +85 -85
  185. data/doc/classes/C64GeosFile.src/M000477.html +18 -0
  186. data/doc/classes/C64GeosFile.src/M000478.html +19 -0
  187. data/doc/classes/C64GeosFile.src/M000479.html +19 -0
  188. data/doc/classes/C64GeosFile.src/M000480.html +18 -0
  189. data/doc/classes/C64GeosFile.src/M000481.html +18 -0
  190. data/doc/classes/C64GeosFile.src/M000482.html +19 -0
  191. data/doc/classes/C64GeosFile.src/M000483.html +5 -4
  192. data/doc/classes/C64GeosFile.src/M000484.html +4 -5
  193. data/doc/classes/C64GeosFile.src/M000485.html +4 -5
  194. data/doc/classes/C64GeosFile.src/M000486.html +4 -4
  195. data/doc/classes/C64GeosFile.src/M000487.html +8 -4
  196. data/doc/classes/C64GeosFile.src/M000488.html +4 -4
  197. data/doc/classes/C64GeosFile.src/M000489.html +7 -7
  198. data/doc/classes/C64GeosFile.src/M000490.html +14 -5
  199. data/doc/classes/C64GeosFile.src/M000491.html +5 -8
  200. data/doc/classes/C64GeosFile.src/M000492.html +25 -13
  201. data/doc/classes/C64GeosFile.src/M000493.html +4 -5
  202. data/doc/classes/C64GeosFile.src/M000494.html +4 -25
  203. data/doc/classes/C64GeosFile.src/M000495.html +4 -4
  204. data/doc/classes/C64GeosFile.src/M000496.html +7 -4
  205. data/doc/classes/C64GeosFile.src/M000497.html +21 -4
  206. data/doc/classes/C64GeosPhotoAlbum.html +15 -15
  207. data/doc/classes/C64GeosPhotoAlbum.src/M000238.html +18 -0
  208. data/doc/classes/C64GeosPhotoAlbum.src/M000239.html +19 -0
  209. data/doc/classes/C64GeosPhotoAlbum.src/M000240.html +18 -0
  210. data/doc/classes/C64GeosPhotoAlbum.src/M000241.html +19 -0
  211. data/doc/classes/C64GeosPhotoAlbum.src/M000242.html +39 -0
  212. data/doc/classes/C64PhotoScrap.html +70 -70
  213. data/doc/classes/C64PhotoScrap.src/M000209.html +18 -0
  214. data/doc/classes/C64PhotoScrap.src/M000210.html +18 -0
  215. data/doc/classes/C64PhotoScrap.src/M000211.html +18 -0
  216. data/doc/classes/C64PhotoScrap.src/M000212.html +18 -0
  217. data/doc/classes/C64PhotoScrap.src/M000213.html +18 -0
  218. data/doc/classes/C64PhotoScrap.src/M000214.html +18 -0
  219. data/doc/classes/C64PhotoScrap.src/M000215.html +18 -0
  220. data/doc/classes/C64PhotoScrap.src/M000216.html +18 -0
  221. data/doc/classes/C64PhotoScrap.src/M000217.html +18 -0
  222. data/doc/classes/C64PhotoScrap.src/M000218.html +21 -0
  223. data/doc/classes/C64PhotoScrap.src/M000219.html +18 -0
  224. data/doc/classes/C64PhotoScrap.src/M000220.html +18 -0
  225. data/doc/classes/C64PhotoScrap.src/M000221.html +4 -4
  226. data/doc/classes/C64PhotoScrap.src/M000222.html +40 -5
  227. data/doc/classes/C64PhotoScrap.src/M000223.html +32 -5
  228. data/doc/classes/C64PhotoScrap.src/M000224.html +11 -5
  229. data/doc/classes/C64Prg.html +35 -20
  230. data/doc/classes/C64Prg.src/M000588.html +20 -0
  231. data/doc/classes/C64Prg.src/M000589.html +18 -0
  232. data/doc/classes/C64Prg.src/M000590.html +19 -0
  233. data/doc/classes/C64Prg.src/M000591.html +18 -0
  234. data/doc/classes/C64Prg.src/M000592.html +22 -0
  235. data/doc/classes/C64Prg.src/M000593.html +18 -0
  236. data/doc/classes/C64Prg.src/M000594.html +5 -6
  237. data/doc/classes/C64Prg.src/M000595.html +4 -4
  238. data/doc/classes/C64Prg.src/M000596.html +6 -5
  239. data/doc/classes/C64PrgSnapshot.html +154 -0
  240. data/doc/classes/C64PrgSnapshot.src/M000205.html +18 -0
  241. data/doc/classes/C64PrgSnapshot.src/M000206.html +22 -0
  242. data/doc/classes/C64PrgText.html +10 -10
  243. data/doc/classes/C64PrgText.src/M000499.html +18 -0
  244. data/doc/classes/C64PrgText.src/M000500.html +18 -0
  245. data/doc/classes/C64PrgText.src/M000503.html +18 -0
  246. data/doc/classes/C64PrgText.src/M000504.html +18 -0
  247. data/doc/classes/C64Seq.html +15 -15
  248. data/doc/classes/C64Seq.src/M000192.html +20 -0
  249. data/doc/classes/C64Seq.src/M000193.html +18 -0
  250. data/doc/classes/C64Seq.src/M000194.html +18 -0
  251. data/doc/classes/C64SinglePrgImage.html +154 -0
  252. data/doc/classes/C64SinglePrgImage.src/M000270.html +18 -0
  253. data/doc/classes/C64SinglePrgImage.src/M000271.html +18 -0
  254. data/doc/classes/CPMFile.html +15 -15
  255. data/doc/classes/CPMFile.src/M000578.html +20 -0
  256. data/doc/classes/CPMFile.src/M000579.html +18 -0
  257. data/doc/classes/CPMFile.src/M000580.html +22 -0
  258. data/doc/classes/CPMFile.src/M000582.html +20 -0
  259. data/doc/classes/CPMFile.src/M000583.html +18 -0
  260. data/doc/classes/CPMFile.src/M000584.html +9 -7
  261. data/doc/classes/CVT.html +10 -10
  262. data/doc/classes/CVT.src/M000501.html +4 -4
  263. data/doc/classes/CVT.src/M000502.html +18 -0
  264. data/doc/classes/CVT.src/M000505.html +18 -0
  265. data/doc/classes/CVT.src/M000506.html +18 -0
  266. data/doc/classes/CVTArchive.html +12 -12
  267. data/doc/classes/CVTArchive.src/M000346.html +18 -0
  268. data/doc/classes/CVTArchive.src/M000347.html +70 -0
  269. data/doc/classes/CVTArchive.src/M000350.html +18 -0
  270. data/doc/classes/CVTArchive.src/M000351.html +70 -0
  271. data/doc/classes/CacheAndCollections.html +15 -15
  272. data/doc/classes/CacheAndCollections.src/M000371.html +21 -0
  273. data/doc/classes/CacheAndCollections.src/M000372.html +26 -0
  274. data/doc/classes/CacheAndCollections.src/M000373.html +22 -0
  275. data/doc/classes/CacheAndCollections.src/M000375.html +21 -0
  276. data/doc/classes/CacheAndCollections.src/M000376.html +26 -0
  277. data/doc/classes/CacheAndCollections.src/M000377.html +8 -7
  278. data/doc/classes/CbmDos.html +50 -50
  279. data/doc/classes/CbmDos.src/M000537.html +18 -0
  280. data/doc/classes/CbmDos.src/M000538.html +92 -0
  281. data/doc/classes/CbmDos.src/M000539.html +38 -0
  282. data/doc/classes/CbmDos.src/M000540.html +18 -0
  283. data/doc/classes/CbmDos.src/M000541.html +18 -0
  284. data/doc/classes/CbmDos.src/M000542.html +92 -0
  285. data/doc/classes/CbmDos.src/M000543.html +24 -4
  286. data/doc/classes/CbmDos.src/M000544.html +4 -78
  287. data/doc/classes/CbmDos.src/M000545.html +53 -23
  288. data/doc/classes/CbmDos.src/M000546.html +18 -4
  289. data/doc/classes/CbmDos.src/M000547.html +13 -53
  290. data/doc/classes/CbmDos.src/M000548.html +14 -17
  291. data/doc/classes/CbmDos.src/M000549.html +24 -13
  292. data/doc/classes/CbmDos.src/M000550.html +36 -14
  293. data/doc/classes/Coco.html +65 -65
  294. data/doc/classes/Coco.src/M000547.html +18 -0
  295. data/doc/classes/Coco.src/M000548.html +18 -0
  296. data/doc/classes/Coco.src/M000549.html +18 -0
  297. data/doc/classes/Coco.src/M000550.html +18 -0
  298. data/doc/classes/Coco.src/M000551.html +18 -0
  299. data/doc/classes/Coco.src/M000552.html +18 -0
  300. data/doc/classes/Coco.src/M000553.html +4 -4
  301. data/doc/classes/Coco.src/M000554.html +4 -4
  302. data/doc/classes/Coco.src/M000555.html +4 -4
  303. data/doc/classes/Coco.src/M000556.html +4 -4
  304. data/doc/classes/Coco.src/M000557.html +4 -4
  305. data/doc/classes/Coco.src/M000558.html +4 -4
  306. data/doc/classes/Coco.src/M000559.html +4 -4
  307. data/doc/classes/Coco.src/M000560.html +4 -4
  308. data/doc/classes/Coco.src/M000561.html +4 -4
  309. data/doc/classes/Coco.src/M000562.html +4 -4
  310. data/doc/classes/Coco.src/M000563.html +41 -4
  311. data/doc/classes/CocoBasic.html +10 -10
  312. data/doc/classes/CocoBasic.src/M000387.html +58 -6
  313. data/doc/classes/CocoBasic.src/M000390.html +20 -0
  314. data/doc/classes/CocoBasic.src/M000391.html +72 -0
  315. data/doc/classes/CocoMachineLanguage.html +15 -15
  316. data/doc/classes/CocoMachineLanguage.src/M000534.html +20 -0
  317. data/doc/classes/CocoMachineLanguage.src/M000535.html +18 -0
  318. data/doc/classes/CocoMachineLanguage.src/M000536.html +19 -0
  319. data/doc/classes/CocoMachineLanguage.src/M000538.html +20 -0
  320. data/doc/classes/CocoMachineLanguage.src/M000539.html +18 -0
  321. data/doc/classes/CocoMachineLanguage.src/M000540.html +5 -6
  322. data/doc/classes/CocoScreen.html +20 -20
  323. data/doc/classes/CocoScreen.src/M000137.html +4 -4
  324. data/doc/classes/CocoScreen.src/M000138.html +4 -4
  325. data/doc/classes/CocoScreen.src/M000139.html +18 -0
  326. data/doc/classes/CocoScreen.src/M000140.html +18 -0
  327. data/doc/classes/CocoText.html +10 -10
  328. data/doc/classes/CocoText.src/M000303.html +20 -0
  329. data/doc/classes/CocoText.src/M000304.html +18 -0
  330. data/doc/classes/CocoText.src/M000307.html +20 -0
  331. data/doc/classes/CocoText.src/M000308.html +18 -0
  332. data/doc/classes/D81.html +45 -45
  333. data/doc/classes/D81.src/M000521.html +18 -0
  334. data/doc/classes/D81.src/M000522.html +18 -0
  335. data/doc/classes/D81.src/M000523.html +18 -0
  336. data/doc/classes/D81.src/M000524.html +18 -0
  337. data/doc/classes/D81.src/M000525.html +18 -0
  338. data/doc/classes/D81.src/M000526.html +18 -0
  339. data/doc/classes/D81.src/M000527.html +4 -4
  340. data/doc/classes/D81.src/M000528.html +4 -4
  341. data/doc/classes/D81.src/M000529.html +4 -4
  342. data/doc/classes/D81.src/M000530.html +4 -4
  343. data/doc/classes/D81.src/M000531.html +4 -4
  344. data/doc/classes/D81.src/M000532.html +9 -4
  345. data/doc/classes/D81.src/M000533.html +10 -4
  346. data/doc/classes/DumpUtilities.html +10 -10
  347. data/doc/classes/DumpUtilities.src/M000343.html +33 -0
  348. data/doc/classes/DumpUtilities.src/M000344.html +27 -0
  349. data/doc/classes/DumpUtilities.src/M000347.html +33 -0
  350. data/doc/classes/DumpUtilities.src/M000348.html +27 -0
  351. data/doc/classes/FileCache.html +70 -70
  352. data/doc/classes/FileCache.src/M000503.html +26 -0
  353. data/doc/classes/FileCache.src/M000504.html +20 -0
  354. data/doc/classes/FileCache.src/M000505.html +18 -0
  355. data/doc/classes/FileCache.src/M000506.html +24 -0
  356. data/doc/classes/FileCache.src/M000507.html +26 -0
  357. data/doc/classes/FileCache.src/M000508.html +20 -0
  358. data/doc/classes/FileCache.src/M000509.html +4 -12
  359. data/doc/classes/FileCache.src/M000510.html +10 -6
  360. data/doc/classes/FileCache.src/M000511.html +8 -4
  361. data/doc/classes/FileCache.src/M000512.html +18 -10
  362. data/doc/classes/FileCache.src/M000513.html +7 -8
  363. data/doc/classes/FileCache.src/M000514.html +7 -17
  364. data/doc/classes/FileCache.src/M000515.html +9 -7
  365. data/doc/classes/FileCache.src/M000516.html +12 -7
  366. data/doc/classes/FileCache.src/M000517.html +10 -9
  367. data/doc/classes/FileCache.src/M000518.html +10 -13
  368. data/doc/classes/FileCache.src/M000519.html +7 -10
  369. data/doc/classes/FileCache.src/M000520.html +6 -10
  370. data/doc/classes/FileCacheItem.html +10 -10
  371. data/doc/classes/FileCacheItem.src/M000497.html +18 -0
  372. data/doc/classes/FileCacheItem.src/M000498.html +18 -0
  373. data/doc/classes/FileCacheItem.src/M000501.html +18 -0
  374. data/doc/classes/FileCacheItem.src/M000502.html +18 -0
  375. data/doc/classes/FileContainer.html +5 -5
  376. data/doc/classes/FileContainer.src/M000582.html +26 -0
  377. data/doc/classes/FileContainer.src/M000586.html +26 -0
  378. data/doc/classes/FileSystem.html +41 -41
  379. data/doc/classes/FileSystem.src/M000225.html +18 -0
  380. data/doc/classes/FileSystem.src/M000226.html +18 -0
  381. data/doc/classes/FileSystem.src/M000227.html +18 -0
  382. data/doc/classes/FileSystem.src/M000228.html +18 -0
  383. data/doc/classes/FileSystem.src/M000229.html +18 -0
  384. data/doc/classes/FileSystem.src/M000230.html +18 -0
  385. data/doc/classes/FileSystem.src/M000231.html +18 -0
  386. data/doc/classes/FileSystem.src/M000232.html +18 -0
  387. data/doc/classes/FileSystem.src/M000233.html +20 -0
  388. data/doc/classes/FileSystem.src/M000234.html +25 -0
  389. data/doc/classes/FileSystemImage.html +132 -132
  390. data/doc/classes/FileSystemImage.src/M000392.html +22 -0
  391. data/doc/classes/FileSystemImage.src/M000393.html +41 -0
  392. data/doc/classes/FileSystemImage.src/M000394.html +27 -0
  393. data/doc/classes/FileSystemImage.src/M000395.html +18 -0
  394. data/doc/classes/FileSystemImage.src/M000396.html +22 -0
  395. data/doc/classes/FileSystemImage.src/M000397.html +41 -0
  396. data/doc/classes/FileSystemImage.src/M000398.html +13 -8
  397. data/doc/classes/FileSystemImage.src/M000399.html +4 -27
  398. data/doc/classes/FileSystemImage.src/M000400.html +4 -13
  399. data/doc/classes/FileSystemImage.src/M000401.html +5 -4
  400. data/doc/classes/FileSystemImage.src/M000402.html +4 -4
  401. data/doc/classes/FileSystemImage.src/M000403.html +8 -5
  402. data/doc/classes/FileSystemImage.src/M000404.html +6 -5
  403. data/doc/classes/FileSystemImage.src/M000405.html +4 -8
  404. data/doc/classes/FileSystemImage.src/M000406.html +5 -6
  405. data/doc/classes/FileSystemImage.src/M000407.html +4 -4
  406. data/doc/classes/FileSystemImage.src/M000408.html +4 -4
  407. data/doc/classes/FileSystemImage.src/M000409.html +7 -5
  408. data/doc/classes/FileSystemImage.src/M000410.html +9 -5
  409. data/doc/classes/FileSystemImage.src/M000411.html +9 -7
  410. data/doc/classes/FileSystemImage.src/M000412.html +5 -9
  411. data/doc/classes/FileSystemImage.src/M000413.html +11 -9
  412. data/doc/classes/FileSystemImage.src/M000414.html +9 -4
  413. data/doc/classes/FileSystemImage.src/M000415.html +12 -11
  414. data/doc/classes/FileSystemImage.src/M000416.html +4 -9
  415. data/doc/classes/FileSystemImage.src/M000417.html +5 -12
  416. data/doc/classes/FileSystemImage.src/M000418.html +4 -4
  417. data/doc/classes/FileSystemImage.src/M000419.html +4 -4
  418. data/doc/classes/FileSystemImage.src/M000420.html +13 -4
  419. data/doc/classes/FileSystemImage.src/M000421.html +6 -4
  420. data/doc/classes/Font.html +55 -55
  421. data/doc/classes/Font.src/M000622.html +4 -4
  422. data/doc/classes/Font.src/M000623.html +4 -4
  423. data/doc/classes/Font.src/M000624.html +4 -53
  424. data/doc/classes/Font.src/M000625.html +5 -10
  425. data/doc/classes/Font.src/M000626.html +5 -18
  426. data/doc/classes/Font.src/M000627.html +18 -0
  427. data/doc/classes/Font.src/M000628.html +18 -0
  428. data/doc/classes/Font.src/M000629.html +18 -0
  429. data/doc/classes/Font.src/M000630.html +18 -0
  430. data/doc/classes/Font.src/M000631.html +18 -0
  431. data/doc/classes/Font.src/M000632.html +18 -0
  432. data/doc/classes/Font.src/M000633.html +18 -0
  433. data/doc/classes/Font.src/M000634.html +67 -0
  434. data/doc/classes/Font.src/M000635.html +23 -0
  435. data/doc/classes/Font.src/M000636.html +31 -0
  436. data/doc/classes/G64.html +25 -25
  437. data/doc/classes/G64.src/M000563.html +30 -0
  438. data/doc/classes/G64.src/M000564.html +18 -0
  439. data/doc/classes/G64.src/M000565.html +18 -0
  440. data/doc/classes/G64.src/M000566.html +18 -0
  441. data/doc/classes/G64.src/M000567.html +30 -0
  442. data/doc/classes/G64.src/M000568.html +18 -0
  443. data/doc/classes/G64.src/M000569.html +4 -16
  444. data/doc/classes/G64.src/M000570.html +4 -4
  445. data/doc/classes/G64.src/M000571.html +7 -4
  446. data/doc/classes/GenericFile.html +10 -10
  447. data/doc/classes/GenericFile.src/M000583.html +20 -0
  448. data/doc/classes/GenericFile.src/M000584.html +18 -0
  449. data/doc/classes/GenericFile.src/M000587.html +20 -0
  450. data/doc/classes/GenericFile.src/M000588.html +18 -0
  451. data/doc/classes/GenericGIF.html +25 -25
  452. data/doc/classes/GenericGIF.src/M000616.html +18 -0
  453. data/doc/classes/GenericGIF.src/M000617.html +18 -0
  454. data/doc/classes/GenericGIF.src/M000618.html +18 -0
  455. data/doc/classes/GenericGIF.src/M000619.html +18 -0
  456. data/doc/classes/GenericGIF.src/M000620.html +18 -0
  457. data/doc/classes/GenericGIF.src/M000621.html +18 -0
  458. data/doc/classes/GenericGIF.src/M000622.html +18 -0
  459. data/doc/classes/GenericGIF.src/M000623.html +18 -0
  460. data/doc/classes/GenericGIF.src/M000624.html +18 -0
  461. data/doc/classes/ImageFormat.html +85 -85
  462. data/doc/classes/ImageFormat.src/M000354.html +18 -0
  463. data/doc/classes/ImageFormat.src/M000355.html +18 -0
  464. data/doc/classes/ImageFormat.src/M000356.html +18 -0
  465. data/doc/classes/ImageFormat.src/M000357.html +18 -0
  466. data/doc/classes/ImageFormat.src/M000358.html +18 -0
  467. data/doc/classes/ImageFormat.src/M000359.html +18 -0
  468. data/doc/classes/ImageFormat.src/M000360.html +4 -4
  469. data/doc/classes/ImageFormat.src/M000361.html +4 -4
  470. data/doc/classes/ImageFormat.src/M000362.html +4 -4
  471. data/doc/classes/ImageFormat.src/M000363.html +8 -4
  472. data/doc/classes/ImageFormat.src/M000364.html +5 -4
  473. data/doc/classes/ImageFormat.src/M000365.html +4 -8
  474. data/doc/classes/ImageFormat.src/M000366.html +4 -5
  475. data/doc/classes/ImageFormat.src/M000367.html +4 -4
  476. data/doc/classes/ImageFormat.src/M000368.html +4 -4
  477. data/doc/classes/ImageFormat.src/M000369.html +4 -4
  478. data/doc/classes/ImageFormat.src/M000370.html +4 -4
  479. data/doc/classes/ImageFormat.src/M000371.html +4 -4
  480. data/doc/classes/ImageFormat.src/M000372.html +6 -4
  481. data/doc/classes/ImageFormat.src/M000373.html +12 -4
  482. data/doc/classes/ImageFormat.src/M000374.html +4 -6
  483. data/doc/classes/ImageSniffing.html +40 -40
  484. data/doc/classes/ImageSniffing.src/M000570.html +151 -0
  485. data/doc/classes/ImageSniffing.src/M000571.html +54 -0
  486. data/doc/classes/ImageSniffing.src/M000572.html +175 -0
  487. data/doc/classes/ImageSniffing.src/M000573.html +47 -0
  488. data/doc/classes/ImageSniffing.src/M000574.html +151 -0
  489. data/doc/classes/ImageSniffing.src/M000575.html +54 -0
  490. data/doc/classes/ImageSniffing.src/M000576.html +140 -109
  491. data/doc/classes/ImageSniffing.src/M000577.html +34 -41
  492. data/doc/classes/ImageSniffing.src/M000578.html +32 -161
  493. data/doc/classes/ImageSniffing.src/M000579.html +46 -34
  494. data/doc/classes/ImageSniffing.src/M000580.html +51 -23
  495. data/doc/classes/ImageSniffing.src/M000581.html +27 -42
  496. data/doc/classes/IntegerBASIC.html +10 -10
  497. data/doc/classes/IntegerBASIC.src/M000464.html +20 -0
  498. data/doc/classes/IntegerBASIC.src/M000465.html +86 -0
  499. data/doc/classes/IntegerBASIC.src/M000468.html +20 -0
  500. data/doc/classes/IntegerBASIC.src/M000469.html +86 -0
  501. data/doc/classes/JvcDsk.html +30 -30
  502. data/doc/classes/JvcDsk.src/M000466.html +18 -0
  503. data/doc/classes/JvcDsk.src/M000467.html +39 -0
  504. data/doc/classes/JvcDsk.src/M000468.html +18 -0
  505. data/doc/classes/JvcDsk.src/M000469.html +18 -0
  506. data/doc/classes/JvcDsk.src/M000470.html +18 -0
  507. data/doc/classes/JvcDsk.src/M000471.html +39 -0
  508. data/doc/classes/JvcDsk.src/M000472.html +4 -4
  509. data/doc/classes/JvcDsk.src/M000473.html +4 -25
  510. data/doc/classes/JvcDsk.src/M000474.html +4 -4
  511. data/doc/classes/JvcDsk.src/M000475.html +8 -4
  512. data/doc/classes/MBasic.html +10 -10
  513. data/doc/classes/MBasic.src/M000141.html +20 -0
  514. data/doc/classes/MBasic.src/M000142.html +22 -0
  515. data/doc/classes/NADOLDos.html +10 -10
  516. data/doc/classes/NADOLDos.src/M000181.html +18 -0
  517. data/doc/classes/NADOLDos.src/M000182.html +52 -0
  518. data/doc/classes/NADOLFile.html +10 -10
  519. data/doc/classes/NADOLFile.src/M000183.html +20 -0
  520. data/doc/classes/NADOLFile.src/M000184.html +18 -0
  521. data/doc/classes/NADOLTokens.html +5 -5
  522. data/doc/classes/NADOLTokens.src/M000345.html +41 -0
  523. data/doc/classes/NADOLTokens.src/M000349.html +41 -0
  524. data/doc/classes/PNG.html +22 -22
  525. data/doc/classes/PNG.src/M000426.html +18 -0
  526. data/doc/classes/PNG.src/M000427.html +21 -0
  527. data/doc/classes/PNG.src/M000428.html +26 -0
  528. data/doc/classes/PNG.src/M000429.html +26 -0
  529. data/doc/classes/PNG.src/M000430.html +18 -0
  530. data/doc/classes/PNG.src/M000431.html +21 -0
  531. data/doc/classes/PNG.src/M000432.html +12 -4
  532. data/doc/classes/PNG.src/M000433.html +13 -8
  533. data/doc/classes/PNG/Canvas.html +33 -33
  534. data/doc/classes/PNG/Canvas.src/M000437.html +20 -0
  535. data/doc/classes/PNG/Canvas.src/M000438.html +20 -0
  536. data/doc/classes/PNG/Canvas.src/M000439.html +20 -0
  537. data/doc/classes/PNG/Canvas.src/M000440.html +22 -0
  538. data/doc/classes/PNG/Canvas.src/M000441.html +20 -0
  539. data/doc/classes/PNG/Canvas.src/M000442.html +20 -0
  540. data/doc/classes/PNG/Canvas.src/M000443.html +6 -6
  541. data/doc/classes/PNG/Canvas.src/M000444.html +8 -6
  542. data/doc/classes/PNG/Canvas.src/M000445.html +4 -6
  543. data/doc/classes/PNG/Canvas.src/M000446.html +57 -6
  544. data/doc/classes/PNG/Color.html +40 -40
  545. data/doc/classes/PNG/Color.src/M000430.html +18 -0
  546. data/doc/classes/PNG/Color.src/M000431.html +16 -0
  547. data/doc/classes/PNG/Color.src/M000432.html +16 -0
  548. data/doc/classes/PNG/Color.src/M000433.html +16 -0
  549. data/doc/classes/PNG/Color.src/M000434.html +18 -0
  550. data/doc/classes/PNG/Color.src/M000435.html +16 -0
  551. data/doc/classes/PNG/Color.src/M000436.html +3 -5
  552. data/doc/classes/PNG/Color.src/M000437.html +3 -3
  553. data/doc/classes/PNG/Color.src/M000438.html +3 -3
  554. data/doc/classes/PNG/Color.src/M000439.html +8 -3
  555. data/doc/classes/PNG/Color.src/M000440.html +5 -3
  556. data/doc/classes/PascalPic.html +10 -10
  557. data/doc/classes/PascalPic.src/M000586.html +20 -0
  558. data/doc/classes/PascalPic.src/M000587.html +18 -0
  559. data/doc/classes/PascalPic.src/M000590.html +20 -0
  560. data/doc/classes/PascalPic.src/M000591.html +18 -0
  561. data/doc/classes/Pc99DD.html +40 -40
  562. data/doc/classes/Pc99DD.src/M000242.html +18 -0
  563. data/doc/classes/Pc99DD.src/M000243.html +18 -0
  564. data/doc/classes/Pc99DD.src/M000244.html +18 -0
  565. data/doc/classes/Pc99DD.src/M000245.html +18 -0
  566. data/doc/classes/Pc99DD.src/M000246.html +18 -0
  567. data/doc/classes/Pc99DD.src/M000247.html +18 -0
  568. data/doc/classes/Pc99DD.src/M000248.html +18 -0
  569. data/doc/classes/Pc99DD.src/M000249.html +18 -0
  570. data/doc/classes/Pc99DD.src/M000250.html +18 -0
  571. data/doc/classes/Pc99DD.src/M000251.html +18 -0
  572. data/doc/classes/Pc99SD.html +40 -40
  573. data/doc/classes/Pc99SD.src/M000418.html +18 -0
  574. data/doc/classes/Pc99SD.src/M000419.html +18 -0
  575. data/doc/classes/Pc99SD.src/M000420.html +18 -0
  576. data/doc/classes/Pc99SD.src/M000421.html +18 -0
  577. data/doc/classes/Pc99SD.src/M000422.html +18 -0
  578. data/doc/classes/Pc99SD.src/M000423.html +18 -0
  579. data/doc/classes/Pc99SD.src/M000424.html +4 -4
  580. data/doc/classes/Pc99SD.src/M000425.html +4 -4
  581. data/doc/classes/Pc99SD.src/M000426.html +4 -4
  582. data/doc/classes/Pc99SD.src/M000427.html +4 -4
  583. data/doc/classes/Pc99SD.src/M000428.html +4 -4
  584. data/doc/classes/Pc99SD.src/M000429.html +4 -4
  585. data/doc/classes/PrintShopFont.html +288 -0
  586. data/doc/classes/PrintShopFont.src/M000600.html +31 -0
  587. data/doc/classes/PrintShopFont.src/M000601.html +18 -0
  588. data/doc/classes/PrintShopFont.src/M000602.html +20 -0
  589. data/doc/classes/PrintShopFont.src/M000603.html +18 -0
  590. data/doc/classes/PrintShopFont.src/M000604.html +31 -0
  591. data/doc/classes/PrintShopFont.src/M000605.html +18 -0
  592. data/doc/classes/PrintShopFont.src/M000606.html +20 -0
  593. data/doc/classes/PrintShopFont.src/M000607.html +18 -0
  594. data/doc/classes/PrintShopFont.src/M000608.html +18 -0
  595. data/doc/classes/PrintShopFont.src/M000609.html +18 -0
  596. data/doc/classes/PrintShopFont.src/M000610.html +20 -0
  597. data/doc/classes/PrintShopFont.src/M000611.html +21 -0
  598. data/doc/classes/PrintShopFont.src/M000612.html +50 -0
  599. data/doc/classes/PrintShopFont.src/M000613.html +22 -0
  600. data/doc/classes/PrintShopFont.src/M000614.html +27 -0
  601. data/doc/classes/ProDosBINFile.html +20 -20
  602. data/doc/classes/ProDosBINFile.src/M000185.html +20 -0
  603. data/doc/classes/ProDosBINFile.src/M000186.html +18 -0
  604. data/doc/classes/ProDosBINFile.src/M000187.html +18 -0
  605. data/doc/classes/ProDosBINFile.src/M000188.html +18 -0
  606. data/doc/classes/ProDosBinPic.html +15 -15
  607. data/doc/classes/ProDosBinPic.src/M000593.html +20 -0
  608. data/doc/classes/ProDosBinPic.src/M000594.html +18 -0
  609. data/doc/classes/ProDosBinPic.src/M000595.html +18 -0
  610. data/doc/classes/ProDosBinPic.src/M000597.html +20 -0
  611. data/doc/classes/ProDosBinPic.src/M000598.html +5 -7
  612. data/doc/classes/ProDosBinPic.src/M000599.html +4 -4
  613. data/doc/classes/ProDosFile.html +15 -15
  614. data/doc/classes/ProDosFile.src/M000560.html +20 -0
  615. data/doc/classes/ProDosFile.src/M000561.html +18 -0
  616. data/doc/classes/ProDosFile.src/M000562.html +19 -0
  617. data/doc/classes/ProDosFile.src/M000564.html +20 -0
  618. data/doc/classes/ProDosFile.src/M000565.html +18 -0
  619. data/doc/classes/ProDosFile.src/M000566.html +5 -6
  620. data/doc/classes/Proc.html +55 -55
  621. data/doc/classes/Proc.src/M000332.html +21 -0
  622. data/doc/classes/Proc.src/M000333.html +19 -0
  623. data/doc/classes/Proc.src/M000334.html +22 -0
  624. data/doc/classes/Proc.src/M000335.html +22 -0
  625. data/doc/classes/Proc.src/M000336.html +21 -0
  626. data/doc/classes/Proc.src/M000337.html +19 -0
  627. data/doc/classes/Proc.src/M000338.html +22 -0
  628. data/doc/classes/Proc.src/M000339.html +22 -0
  629. data/doc/classes/Proc.src/M000340.html +22 -0
  630. data/doc/classes/Proc.src/M000341.html +19 -0
  631. data/doc/classes/Proc.src/M000342.html +16 -0
  632. data/doc/classes/Proc.src/M000343.html +20 -0
  633. data/doc/classes/Proc.src/M000344.html +4 -7
  634. data/doc/classes/Proc.src/M000345.html +3 -6
  635. data/doc/classes/Proc.src/M000346.html +3 -9
  636. data/doc/classes/ProcSource.html +10 -10
  637. data/doc/classes/ProcSource.src/M000614.html +38 -0
  638. data/doc/classes/ProcSource.src/M000615.html +109 -0
  639. data/doc/classes/ProcSource.src/M000618.html +38 -0
  640. data/doc/classes/ProcSource.src/M000619.html +109 -0
  641. data/doc/classes/RDoc.html +5 -5
  642. data/doc/classes/RDoc.src/M000613.html +40 -0
  643. data/doc/classes/RDoc.src/M000617.html +40 -0
  644. data/doc/classes/RawDisk.html +10 -10
  645. data/doc/classes/RawDisk.src/M000517.html +18 -0
  646. data/doc/classes/RawDisk.src/M000518.html +23 -0
  647. data/doc/classes/RawDisk.src/M000521.html +18 -0
  648. data/doc/classes/RawDisk.src/M000522.html +23 -0
  649. data/doc/classes/RipXplore.html +1 -1
  650. data/doc/classes/RsDos.html +20 -20
  651. data/doc/classes/RsDos.src/M000374.html +18 -0
  652. data/doc/classes/RsDos.src/M000375.html +18 -0
  653. data/doc/classes/RsDos.src/M000376.html +18 -0
  654. data/doc/classes/RsDos.src/M000377.html +62 -0
  655. data/doc/classes/RsDos.src/M000378.html +18 -0
  656. data/doc/classes/RsDos.src/M000379.html +18 -0
  657. data/doc/classes/RsDos.src/M000380.html +4 -4
  658. data/doc/classes/RsDos.src/M000381.html +48 -4
  659. data/doc/classes/ScAsm.html +5 -5
  660. data/doc/classes/ScAsm.src/M000581.html +45 -0
  661. data/doc/classes/ScAsm.src/M000585.html +45 -0
  662. data/doc/classes/ScreenDump.html +5 -5
  663. data/doc/classes/ScreenDump.src/M000611.html +24 -0
  664. data/doc/classes/ScreenDump.src/M000615.html +24 -0
  665. data/doc/classes/ScreenDumps.html +15 -15
  666. data/doc/classes/ScreenDumps.src/M000494.html +22 -0
  667. data/doc/classes/ScreenDumps.src/M000495.html +24 -0
  668. data/doc/classes/ScreenDumps.src/M000496.html +35 -0
  669. data/doc/classes/ScreenDumps.src/M000498.html +22 -0
  670. data/doc/classes/ScreenDumps.src/M000499.html +24 -0
  671. data/doc/classes/ScreenDumps.src/M000500.html +21 -8
  672. data/doc/classes/ScrunchedAppleDosPic.html +5 -5
  673. data/doc/classes/ScrunchedAppleDosPic.src/M000275.html +37 -0
  674. data/doc/classes/ScrunchedAppleDosPic.src/M000279.html +37 -0
  675. data/doc/classes/ShapeTable.html +5 -5
  676. data/doc/classes/ShapeTable.src/M000612.html +52 -0
  677. data/doc/classes/ShapeTable.src/M000616.html +52 -0
  678. data/doc/classes/ShapeTableFont.html +45 -45
  679. data/doc/classes/ShapeTableFont.src/M000290.html +21 -0
  680. data/doc/classes/ShapeTableFont.src/M000291.html +27 -0
  681. data/doc/classes/ShapeTableFont.src/M000292.html +21 -0
  682. data/doc/classes/ShapeTableFont.src/M000293.html +19 -0
  683. data/doc/classes/ShapeTableFont.src/M000294.html +21 -0
  684. data/doc/classes/ShapeTableFont.src/M000295.html +27 -0
  685. data/doc/classes/ShapeTableFont.src/M000296.html +21 -0
  686. data/doc/classes/ShapeTableFont.src/M000297.html +19 -0
  687. data/doc/classes/ShapeTableFont.src/M000298.html +18 -0
  688. data/doc/classes/ShapeTableFont.src/M000299.html +35 -0
  689. data/doc/classes/ShapeTableFont.src/M000300.html +18 -0
  690. data/doc/classes/ShapeTableFont.src/M000301.html +18 -0
  691. data/doc/classes/ShapeTableFont.src/M000302.html +8 -8
  692. data/doc/classes/SubclassTracking.html +5 -5
  693. data/doc/classes/SubclassTracking.src/M000621.html +23 -0
  694. data/doc/classes/SubclassTracking.src/M000625.html +23 -0
  695. data/doc/classes/Ti99BasicFile.html +5 -5
  696. data/doc/classes/Ti99BasicFile.src/M000585.html +72 -0
  697. data/doc/classes/Ti99BasicFile.src/M000589.html +72 -0
  698. data/doc/classes/Ti99Dsk.html +45 -45
  699. data/doc/classes/Ti99Dsk.src/M000196.html +18 -0
  700. data/doc/classes/Ti99Dsk.src/M000197.html +18 -0
  701. data/doc/classes/Ti99Dsk.src/M000198.html +18 -0
  702. data/doc/classes/Ti99Dsk.src/M000199.html +18 -0
  703. data/doc/classes/Ti99Dsk.src/M000200.html +18 -0
  704. data/doc/classes/Ti99Dsk.src/M000201.html +22 -0
  705. data/doc/classes/Ti99Dsk.src/M000202.html +22 -0
  706. data/doc/classes/Ti99Dsk.src/M000203.html +22 -0
  707. data/doc/classes/Ti99Dsk.src/M000204.html +27 -0
  708. data/doc/classes/Ti99File.html +10 -10
  709. data/doc/classes/Ti99File.src/M000568.html +20 -0
  710. data/doc/classes/Ti99File.src/M000569.html +18 -0
  711. data/doc/classes/Ti99File.src/M000572.html +20 -0
  712. data/doc/classes/Ti99File.src/M000573.html +18 -0
  713. data/doc/classes/Ti99Fms.html +10 -10
  714. data/doc/classes/Ti99Fms.src/M000273.html +18 -0
  715. data/doc/classes/Ti99Fms.src/M000274.html +77 -0
  716. data/doc/classes/Ti99Fms.src/M000277.html +18 -0
  717. data/doc/classes/Ti99Fms.src/M000278.html +77 -0
  718. data/doc/classes/Ti99TextFile.html +10 -10
  719. data/doc/classes/Ti99TextFile.src/M000523.html +33 -0
  720. data/doc/classes/Ti99TextFile.src/M000524.html +18 -0
  721. data/doc/classes/TiArtistPattern.html +20 -20
  722. data/doc/classes/TiArtistPattern.src/M000269.html +50 -0
  723. data/doc/classes/TiArtistPattern.src/M000270.html +18 -0
  724. data/doc/classes/TiArtistPattern.src/M000271.html +18 -0
  725. data/doc/classes/TiArtistPattern.src/M000272.html +18 -0
  726. data/doc/classes/TiArtistPattern.src/M000273.html +50 -0
  727. data/doc/classes/TiArtistPattern.src/M000274.html +18 -0
  728. data/doc/classes/TiArtistPattern.src/M000275.html +18 -0
  729. data/doc/classes/TiArtistPattern.src/M000276.html +18 -0
  730. data/doc/classes/Trs80BasicListing.html +15 -15
  731. data/doc/classes/Trs80BasicListing.src/M000472.html +20 -0
  732. data/doc/classes/Trs80BasicListing.src/M000473.html +18 -0
  733. data/doc/classes/Trs80BasicListing.src/M000474.html +18 -0
  734. data/doc/classes/Trs80BasicListing.src/M000476.html +20 -0
  735. data/doc/classes/Trs80BasicListing.src/M000477.html +18 -0
  736. data/doc/classes/Trs80BasicListing.src/M000478.html +4 -6
  737. data/doc/classes/Trs80Jcl.html +10 -10
  738. data/doc/classes/Trs80Jcl.src/M000305.html +20 -0
  739. data/doc/classes/Trs80Jcl.src/M000306.html +18 -0
  740. data/doc/classes/Trs80Jcl.src/M000309.html +20 -0
  741. data/doc/classes/Trs80Jcl.src/M000310.html +18 -0
  742. data/doc/classes/Trs80LevelIIBasic.html +15 -15
  743. data/doc/classes/Trs80LevelIIBasic.src/M000287.html +20 -0
  744. data/doc/classes/Trs80LevelIIBasic.src/M000288.html +18 -0
  745. data/doc/classes/Trs80LevelIIBasic.src/M000289.html +43 -0
  746. data/doc/classes/Trs80LevelIIBasic.src/M000291.html +20 -0
  747. data/doc/classes/Trs80LevelIIBasic.src/M000292.html +18 -0
  748. data/doc/classes/Trs80LevelIIBasic.src/M000293.html +43 -0
  749. data/doc/classes/Trs80PascalSource.html +10 -10
  750. data/doc/classes/Trs80PascalSource.src/M000250.html +20 -0
  751. data/doc/classes/Trs80PascalSource.src/M000251.html +30 -0
  752. data/doc/classes/Trs80PascalSource.src/M000252.html +20 -0
  753. data/doc/classes/Trs80PascalSource.src/M000253.html +30 -0
  754. data/doc/classes/Trs80Text.html +15 -15
  755. data/doc/classes/Trs80Text.src/M000189.html +20 -0
  756. data/doc/classes/Trs80Text.src/M000190.html +18 -0
  757. data/doc/classes/Trs80Text.src/M000191.html +18 -0
  758. data/doc/classes/TrsDos.html +20 -20
  759. data/doc/classes/TrsDos.src/M000530.html +18 -0
  760. data/doc/classes/TrsDos.src/M000531.html +18 -0
  761. data/doc/classes/TrsDos.src/M000532.html +18 -0
  762. data/doc/classes/TrsDos.src/M000533.html +64 -0
  763. data/doc/classes/TrsDos.src/M000534.html +18 -0
  764. data/doc/classes/TrsDos.src/M000535.html +18 -0
  765. data/doc/classes/TrsDos.src/M000536.html +4 -4
  766. data/doc/classes/TrsDos.src/M000537.html +50 -4
  767. data/doc/classes/Zx81.html +25 -25
  768. data/doc/classes/Zx81.src/M000233.html +18 -0
  769. data/doc/classes/Zx81.src/M000234.html +206 -0
  770. data/doc/classes/Zx81.src/M000235.html +18 -0
  771. data/doc/classes/Zx81.src/M000236.html +206 -0
  772. data/doc/classes/Zx81.src/M000237.html +18 -0
  773. data/doc/classes/Zx81.src/M000238.html +23 -0
  774. data/doc/classes/Zx81.src/M000239.html +29 -0
  775. data/doc/classes/Zx81PFile.html +10 -10
  776. data/doc/classes/Zx81PFile.src/M000252.html +18 -0
  777. data/doc/classes/Zx81PFile.src/M000253.html +18 -0
  778. data/doc/classes/Zx81PFile.src/M000254.html +18 -0
  779. data/doc/classes/Zx81PFile.src/M000255.html +18 -0
  780. data/doc/classes/Zx81Snapshot.html +10 -10
  781. data/doc/classes/Zx81Snapshot.src/M000223.html +18 -0
  782. data/doc/classes/Zx81Snapshot.src/M000224.html +22 -0
  783. data/doc/classes/Zx81Snapshot.src/M000225.html +18 -0
  784. data/doc/classes/Zx81Snapshot.src/M000226.html +22 -0
  785. data/doc/created.rid +1 -1
  786. data/doc/files/lib/FileSystemImage_rb.html +1 -1
  787. data/doc/files/lib/LibRipXplore_rb.html +1 -1
  788. data/doc/files/lib/file_systems/C64PrgSnapshot_rb.html +108 -0
  789. data/doc/files/lib/image_formats/C64SinglePrgImage_rb.html +108 -0
  790. data/doc/files/lib/native_file_types/apple2/ApplePrintShopFont_rb.html +2 -1
  791. data/doc/files/lib/native_file_types/c64/C64BasicPrg_rb.html +1 -1
  792. data/doc/files/lib/native_file_types/c64/C64Prg_rb.html +1 -1
  793. data/doc/files/test/tc_apple_2_rb.html +1 -1
  794. data/doc/files/test/tc_c64_rb.html +1 -1
  795. data/doc/fr_class_index.html +4 -1
  796. data/doc/fr_file_index.html +2 -0
  797. data/doc/fr_method_index.html +502 -492
  798. data/lib/FileSystemImage.rb +1 -1
  799. data/lib/LibRipXplore.rb +1 -1
  800. data/lib/file_systems/C64PrgSnapshot.rb +48 -0
  801. data/lib/image_formats/C64SinglePrgImage.rb +45 -0
  802. data/lib/native_file_types/apple2/ApplePrintShopFont.rb +133 -109
  803. data/lib/native_file_types/c64/C64BasicPrg.rb +4 -3
  804. data/lib/native_file_types/c64/C64Prg.rb +6 -1
  805. data/test/$ +0 -0
  806. data/test/tc_apple_2.rb +5 -2
  807. data/test/tc_c64.rb +4 -0
  808. metadata +498 -3
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>free_sector_list (CbmDos)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/file_systems/CbmDos.rb, line 102</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">free_sector_list</span>(<span class="ruby-identifier">file_system_image</span>)
15
+ <span class="ruby-identifier">bam</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-value">18</span>,<span class="ruby-value">0</span>)
16
+ <span class="ruby-identifier">free_sectors</span>=[]
17
+ (<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">35</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">track</span><span class="ruby-operator">|</span>
18
+ <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">track</span><span class="ruby-operator">==</span><span class="ruby-value">18</span> <span class="ruby-comment cmt">#don't try to save files to track 18
19
+ <span class="ruby-identifier">track_bitmap_lo</span>=<span class="ruby-identifier">bam</span>[<span class="ruby-identifier">track</span><span class="ruby-operator">*</span><span class="ruby-value">4</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>]
20
+ <span class="ruby-identifier">track_bitmap_mid</span>=<span class="ruby-identifier">bam</span>[<span class="ruby-identifier">track</span><span class="ruby-operator">*</span><span class="ruby-value">4</span><span class="ruby-operator">+</span><span class="ruby-value">2</span>]
21
+ <span class="ruby-identifier">track_bitmap_hi</span>=<span class="ruby-identifier">bam</span>[<span class="ruby-identifier">track</span><span class="ruby-operator">*</span><span class="ruby-value">4</span><span class="ruby-operator">+</span><span class="ruby-value">3</span>]
22
+ (<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">7</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">bit_no</span><span class="ruby-operator">|</span>
23
+ <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">track_bitmap_lo</span> <span class="ruby-operator">&amp;</span> (<span class="ruby-value">2</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">bit_no</span>)))<span class="ruby-operator">!=</span><span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
24
+ <span class="ruby-identifier">free_sectors</span><span class="ruby-operator">&lt;&lt;</span>[<span class="ruby-identifier">track</span>,<span class="ruby-identifier">bit_no</span>]
25
+ <span class="ruby-keyword kw">end</span>
26
+ <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">track_bitmap_mid</span> <span class="ruby-operator">&amp;</span> (<span class="ruby-value">2</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">bit_no</span>)))<span class="ruby-operator">!=</span><span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
27
+ <span class="ruby-identifier">free_sectors</span><span class="ruby-operator">&lt;&lt;</span>[<span class="ruby-identifier">track</span>,<span class="ruby-identifier">bit_no</span><span class="ruby-operator">+</span><span class="ruby-value">8</span>]
28
+ <span class="ruby-keyword kw">end</span>
29
+ <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">track_bitmap_hi</span> <span class="ruby-operator">&amp;</span> (<span class="ruby-value">2</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">bit_no</span>)))<span class="ruby-operator">!=</span><span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
30
+ <span class="ruby-identifier">free_sectors</span><span class="ruby-operator">&lt;&lt;</span>[<span class="ruby-identifier">track</span>,<span class="ruby-identifier">bit_no</span><span class="ruby-operator">+</span><span class="ruby-value">16</span>]
31
+ <span class="ruby-keyword kw">end</span>
32
+ <span class="ruby-keyword kw">end</span>
33
+ <span class="ruby-keyword kw">end</span>
34
+ <span class="ruby-identifier">free_sectors</span>.<span class="ruby-identifier">sort!</span>
35
+ <span class="ruby-comment cmt"># free_sectors.each {|ts| puts &quot;T#{ts[0]} S#{ts[1]}&quot;}
36
+ <span class="ruby-keyword kw">end</span></pre>
37
+ </body>
38
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>directory_entry_for_filename (CbmDos)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/file_systems/CbmDos.rb, line 126</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">directory_entry_for_filename</span>(<span class="ruby-identifier">filename</span>)
15
+ (<span class="ruby-identifier">filename</span><span class="ruby-operator">+</span>(<span class="ruby-value">0x</span><span class="ruby-constant">A0</span>.<span class="ruby-identifier">chr</span>)<span class="ruby-operator">*</span><span class="ruby-value">16</span>)[<span class="ruby-value">0</span>,<span class="ruby-value">0x10</span>]
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>host_system (CbmDos)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/file_systems/CbmDos.rb, line 13</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host_system</span>
15
+ <span class="ruby-constant">C64</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,92 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>files (CbmDos)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/file_systems/CbmDos.rb, line 23</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">files</span>(<span class="ruby-identifier">file_system_image</span>)
15
+ <span class="ruby-identifier">files</span>=<span class="ruby-constant">FileContainer</span>.<span class="ruby-identifier">new</span>
16
+ <span class="ruby-identifier">dir_track_no</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">image_format</span>.<span class="ruby-identifier">dir_track_no</span>
17
+ <span class="ruby-identifier">dir_sector_no</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">image_format</span>.<span class="ruby-identifier">dir_sector_no</span>
18
+ <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">dir_track_no</span><span class="ruby-operator">==</span><span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">dir_track_no</span><span class="ruby-operator">&gt;</span> <span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">end_track</span> <span class="ruby-keyword kw">do</span>
19
+ <span class="ruby-identifier">directory_sector</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">dir_track_no</span>,<span class="ruby-identifier">dir_sector_no</span>)
20
+ <span class="ruby-identifier">dir_track_no</span>=<span class="ruby-identifier">directory_sector</span>[<span class="ruby-value">0</span>]
21
+ <span class="ruby-identifier">dir_sector_no</span>=<span class="ruby-identifier">directory_sector</span>[<span class="ruby-value">1</span>]
22
+ <span class="ruby-value">0</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-value">7</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry_number</span><span class="ruby-operator">|</span>
23
+ <span class="ruby-identifier">directory_entry</span>=<span class="ruby-identifier">directory_sector</span>[<span class="ruby-constant">DIRECTORY_ENTRY_SIZE</span><span class="ruby-operator">*</span><span class="ruby-identifier">entry_number</span>,<span class="ruby-constant">DIRECTORY_ENTRY_SIZE</span>]
24
+ <span class="ruby-identifier">file_name</span>=<span class="ruby-constant">C64</span>.<span class="ruby-identifier">s_to_ascii</span>(<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x05</span><span class="ruby-operator">..</span><span class="ruby-value">0x14</span>]).<span class="ruby-identifier">strip</span>
25
+ <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x02</span>]<span class="ruby-operator">==</span><span class="ruby-value">0x00</span> <span class="ruby-comment cmt">#skip SCRATCHed files
26
+ <span class="ruby-identifier">file_type</span>=<span class="ruby-constant">FILE_TYPES</span>[<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x02</span>]<span class="ruby-operator">%</span><span class="ruby-value">8</span>]
27
+ <span class="ruby-identifier">geos_file_type</span>=<span class="ruby-constant">GEOS_FILE_TYPES</span>[<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x18</span>]]
28
+ <span class="ruby-identifier">is_geos_file</span>=(<span class="ruby-identifier">geos_file_type!</span>=<span class="ruby-identifier">:not_geos</span>)
29
+ <span class="ruby-identifier">is_vlir</span>=<span class="ruby-identifier">is_geos_file</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x17</span>]<span class="ruby-operator">==</span><span class="ruby-value">0x01</span>)
30
+ <span class="ruby-comment cmt"># puts &quot;geos file type: #{geos_file_type} #{is_geos_file} #{is_vlir}&quot;
31
+ <span class="ruby-identifier">file_track_no</span>=<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x03</span>]
32
+ <span class="ruby-identifier">file_sector_no</span>=<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x04</span>]
33
+ <span class="ruby-identifier">info_block</span>=<span class="ruby-identifier">nil?</span>
34
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">is_geos_file</span>) <span class="ruby-keyword kw">then</span>
35
+ <span class="ruby-identifier">file_name</span>=(<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x05</span><span class="ruby-operator">..</span><span class="ruby-value">0x14</span>]).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\xa0/</span>,<span class="ruby-value str">&quot; &quot;</span>).<span class="ruby-identifier">strip</span> <span class="ruby-comment cmt">#GEOS filenames will be ASCII not PETSCII
36
+ <span class="ruby-identifier">info_block</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x15</span>],<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x16</span>])
37
+ <span class="ruby-identifier">file_contents</span>=[<span class="ruby-identifier">info_block</span>]
38
+
39
+ <span class="ruby-keyword kw">end</span>
40
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">is_vlir</span>) <span class="ruby-keyword kw">then</span>
41
+ <span class="ruby-comment cmt"># puts file_name
42
+ <span class="ruby-identifier">record_block</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">file_track_no</span>,<span class="ruby-identifier">file_sector_no</span>)
43
+ <span class="ruby-value">127</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
44
+ <span class="ruby-identifier">record_no</span>=<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>
45
+ <span class="ruby-identifier">record_track_no</span>=<span class="ruby-identifier">record_block</span>[<span class="ruby-value">2</span><span class="ruby-operator">*</span><span class="ruby-identifier">record_no</span>]
46
+ <span class="ruby-identifier">record_sector_no</span>=<span class="ruby-identifier">record_block</span>[<span class="ruby-value">1</span><span class="ruby-operator">+</span>(<span class="ruby-value">2</span><span class="ruby-operator">*</span><span class="ruby-identifier">record_no</span>)]
47
+ <span class="ruby-identifier">record_contents</span>=<span class="ruby-keyword kw">nil</span>
48
+ <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">record_track_no</span><span class="ruby-operator">==</span><span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">record_track_no</span><span class="ruby-operator">&gt;</span><span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">end_track</span> <span class="ruby-keyword kw">do</span>
49
+ <span class="ruby-identifier">record_contents</span>=<span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">record_contents</span>.<span class="ruby-identifier">nil?</span>
50
+ <span class="ruby-identifier">record_sector</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">record_track_no</span>,<span class="ruby-identifier">record_sector_no</span>)
51
+ <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">record_sector</span>.<span class="ruby-identifier">nil?</span>
52
+ <span class="ruby-identifier">record_track_no</span>=<span class="ruby-identifier">record_sector</span>[<span class="ruby-value">0</span>]
53
+ <span class="ruby-identifier">record_sector_no</span>=<span class="ruby-identifier">record_sector</span>[<span class="ruby-value">1</span>]
54
+ <span class="ruby-identifier">end_of_data</span>= (<span class="ruby-identifier">record_track_no</span><span class="ruby-operator">==</span><span class="ruby-value">0</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">record_sector</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">:</span> <span class="ruby-value">255</span>
55
+ <span class="ruby-identifier">record_contents</span><span class="ruby-operator">&lt;&lt;</span><span class="ruby-identifier">record_sector</span>[<span class="ruby-value">2</span><span class="ruby-operator">..</span><span class="ruby-identifier">end_of_data</span>]
56
+ <span class="ruby-keyword kw">end</span>
57
+ <span class="ruby-identifier">file_contents</span><span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">record_contents</span>)
58
+ <span class="ruby-keyword kw">end</span>
59
+ <span class="ruby-keyword kw">else</span>
60
+ <span class="ruby-identifier">file_contents</span>=<span class="ruby-value str">&quot;&quot;</span>
61
+ <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">file_track_no</span><span class="ruby-operator">==</span><span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">file_track_no</span><span class="ruby-operator">&gt;</span> <span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">end_track</span> <span class="ruby-keyword kw">do</span>
62
+ <span class="ruby-identifier">file_sector</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">file_track_no</span>,<span class="ruby-identifier">file_sector_no</span>)
63
+ <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file_sector</span>.<span class="ruby-identifier">nil?</span>
64
+ <span class="ruby-identifier">file_track_no</span>=<span class="ruby-identifier">file_sector</span>[<span class="ruby-value">0</span>]
65
+ <span class="ruby-identifier">file_sector_no</span>=<span class="ruby-identifier">file_sector</span>[<span class="ruby-value">1</span>]
66
+ <span class="ruby-identifier">end_of_data</span>= (<span class="ruby-identifier">file_track_no</span><span class="ruby-operator">==</span><span class="ruby-value">0</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">file_sector</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">:</span> <span class="ruby-value">255</span>
67
+ <span class="ruby-identifier">file_contents</span><span class="ruby-operator">+=</span><span class="ruby-identifier">file_sector</span>[<span class="ruby-value">2</span><span class="ruby-operator">..</span><span class="ruby-identifier">end_of_data</span>]
68
+ <span class="ruby-comment cmt"># puts &quot;#{file_name} #{file_track_no} #{file_sector_no} #{end_of_data}&quot;
69
+ <span class="ruby-keyword kw">end</span>
70
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">is_geos_file</span>) <span class="ruby-keyword kw">then</span>
71
+ <span class="ruby-identifier">file_contents</span>=[<span class="ruby-identifier">info_block</span>,<span class="ruby-identifier">file_contents</span>]
72
+ <span class="ruby-keyword kw">end</span>
73
+ <span class="ruby-keyword kw">end</span>
74
+ <span class="ruby-identifier">file</span>=<span class="ruby-constant">NativeFileType</span>.<span class="ruby-identifier">best_fit</span>(<span class="ruby-identifier">file_system_image</span>,<span class="ruby-identifier">file_name</span>,<span class="ruby-identifier">file_contents</span>,<span class="ruby-identifier">file_type</span>,<span class="ruby-identifier">geos_file_type</span>)
75
+ [<span class="ruby-identifier">file</span>].<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
76
+
77
+ <span class="ruby-identifier">f</span>.<span class="ruby-identifier">meta_data</span>[<span class="ruby-value str">&quot;c64_file_type&quot;</span>]=<span class="ruby-value str">&quot;$%02x&quot;</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x02</span>]
78
+ <span class="ruby-identifier">f</span>.<span class="ruby-identifier">meta_data</span>[<span class="ruby-value str">&quot;first_block&quot;</span>]=<span class="ruby-value str">&quot;track $%02x sector $%02x&quot;</span> <span class="ruby-operator">%</span> [<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x03</span>],<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">04</span>]]
79
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">is_geos_file</span>) <span class="ruby-keyword kw">then</span>
80
+ <span class="ruby-identifier">f</span>.<span class="ruby-identifier">meta_data</span>[<span class="ruby-value str">&quot;geos_file_header&quot;</span>]=<span class="ruby-value str">&quot;track $%02x sector $%02x&quot;</span> <span class="ruby-operator">%</span> [<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x15</span>],<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">16</span>]]
81
+ <span class="ruby-identifier">f</span>.<span class="ruby-identifier">meta_data</span>[<span class="ruby-value str">&quot;geos_file_structure_type&quot;</span>]=<span class="ruby-value str">&quot;$%02x&quot;</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x17</span>]
82
+ <span class="ruby-identifier">f</span>.<span class="ruby-identifier">meta_data</span>[<span class="ruby-value str">&quot;geos_file_type&quot;</span>]=<span class="ruby-value str">&quot;$%02x&quot;</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x18</span>]
83
+ <span class="ruby-identifier">f</span>.<span class="ruby-identifier">meta_data</span>[<span class="ruby-value str">&quot;geos_file_modified_date&quot;</span>]=<span class="ruby-value str">&quot;%04d-%02d-%02d %02d:%02d&quot;</span> <span class="ruby-operator">%</span> [<span class="ruby-value">1900</span><span class="ruby-operator">+</span><span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x19</span>],<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x1</span><span class="ruby-constant">A</span>],<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x1</span><span class="ruby-constant">B</span>],<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x1</span><span class="ruby-constant">C</span>],<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x1</span><span class="ruby-constant">D</span>]]
84
+ <span class="ruby-keyword kw">end</span>
85
+ <span class="ruby-keyword kw">end</span>
86
+ <span class="ruby-identifier">files</span><span class="ruby-operator">&lt;&lt;</span><span class="ruby-identifier">file</span>
87
+ <span class="ruby-keyword kw">end</span>
88
+ <span class="ruby-keyword kw">end</span>
89
+ <span class="ruby-identifier">files</span>
90
+ <span class="ruby-keyword kw">end</span></pre>
91
+ </body>
92
+ </html>
@@ -5,14 +5,34 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>host_system (CbmDos)</title>
8
+ <title>free_sector_list (CbmDos)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/file_systems/CbmDos.rb, line 13</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">host_system</span>
15
- <span class="ruby-constant">C64</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/file_systems/CbmDos.rb, line 102</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">free_sector_list</span>(<span class="ruby-identifier">file_system_image</span>)
15
+ <span class="ruby-identifier">bam</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-value">18</span>,<span class="ruby-value">0</span>)
16
+ <span class="ruby-identifier">free_sectors</span>=[]
17
+ (<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">35</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">track</span><span class="ruby-operator">|</span>
18
+ <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">track</span><span class="ruby-operator">==</span><span class="ruby-value">18</span> <span class="ruby-comment cmt">#don't try to save files to track 18
19
+ <span class="ruby-identifier">track_bitmap_lo</span>=<span class="ruby-identifier">bam</span>[<span class="ruby-identifier">track</span><span class="ruby-operator">*</span><span class="ruby-value">4</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>]
20
+ <span class="ruby-identifier">track_bitmap_mid</span>=<span class="ruby-identifier">bam</span>[<span class="ruby-identifier">track</span><span class="ruby-operator">*</span><span class="ruby-value">4</span><span class="ruby-operator">+</span><span class="ruby-value">2</span>]
21
+ <span class="ruby-identifier">track_bitmap_hi</span>=<span class="ruby-identifier">bam</span>[<span class="ruby-identifier">track</span><span class="ruby-operator">*</span><span class="ruby-value">4</span><span class="ruby-operator">+</span><span class="ruby-value">3</span>]
22
+ (<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">7</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">bit_no</span><span class="ruby-operator">|</span>
23
+ <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">track_bitmap_lo</span> <span class="ruby-operator">&amp;</span> (<span class="ruby-value">2</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">bit_no</span>)))<span class="ruby-operator">!=</span><span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
24
+ <span class="ruby-identifier">free_sectors</span><span class="ruby-operator">&lt;&lt;</span>[<span class="ruby-identifier">track</span>,<span class="ruby-identifier">bit_no</span>]
25
+ <span class="ruby-keyword kw">end</span>
26
+ <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">track_bitmap_mid</span> <span class="ruby-operator">&amp;</span> (<span class="ruby-value">2</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">bit_no</span>)))<span class="ruby-operator">!=</span><span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
27
+ <span class="ruby-identifier">free_sectors</span><span class="ruby-operator">&lt;&lt;</span>[<span class="ruby-identifier">track</span>,<span class="ruby-identifier">bit_no</span><span class="ruby-operator">+</span><span class="ruby-value">8</span>]
28
+ <span class="ruby-keyword kw">end</span>
29
+ <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">track_bitmap_hi</span> <span class="ruby-operator">&amp;</span> (<span class="ruby-value">2</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">bit_no</span>)))<span class="ruby-operator">!=</span><span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
30
+ <span class="ruby-identifier">free_sectors</span><span class="ruby-operator">&lt;&lt;</span>[<span class="ruby-identifier">track</span>,<span class="ruby-identifier">bit_no</span><span class="ruby-operator">+</span><span class="ruby-value">16</span>]
31
+ <span class="ruby-keyword kw">end</span>
32
+ <span class="ruby-keyword kw">end</span>
33
+ <span class="ruby-keyword kw">end</span>
34
+ <span class="ruby-identifier">free_sectors</span>.<span class="ruby-identifier">sort!</span>
35
+ <span class="ruby-comment cmt"># free_sectors.each {|ts| puts &quot;T#{ts[0]} S#{ts[1]}&quot;}
16
36
  <span class="ruby-keyword kw">end</span></pre>
17
37
  </body>
18
38
  </html>
@@ -5,88 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>files (CbmDos)</title>
8
+ <title>directory_entry_for_filename (CbmDos)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/file_systems/CbmDos.rb, line 23</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">files</span>(<span class="ruby-identifier">file_system_image</span>)
15
- <span class="ruby-identifier">files</span>=<span class="ruby-constant">FileContainer</span>.<span class="ruby-identifier">new</span>
16
- <span class="ruby-identifier">dir_track_no</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">image_format</span>.<span class="ruby-identifier">dir_track_no</span>
17
- <span class="ruby-identifier">dir_sector_no</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">image_format</span>.<span class="ruby-identifier">dir_sector_no</span>
18
- <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">dir_track_no</span><span class="ruby-operator">==</span><span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">dir_track_no</span><span class="ruby-operator">&gt;</span> <span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">end_track</span> <span class="ruby-keyword kw">do</span>
19
- <span class="ruby-identifier">directory_sector</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">dir_track_no</span>,<span class="ruby-identifier">dir_sector_no</span>)
20
- <span class="ruby-identifier">dir_track_no</span>=<span class="ruby-identifier">directory_sector</span>[<span class="ruby-value">0</span>]
21
- <span class="ruby-identifier">dir_sector_no</span>=<span class="ruby-identifier">directory_sector</span>[<span class="ruby-value">1</span>]
22
- <span class="ruby-value">0</span>.<span class="ruby-identifier">upto</span>(<span class="ruby-value">7</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry_number</span><span class="ruby-operator">|</span>
23
- <span class="ruby-identifier">directory_entry</span>=<span class="ruby-identifier">directory_sector</span>[<span class="ruby-constant">DIRECTORY_ENTRY_SIZE</span><span class="ruby-operator">*</span><span class="ruby-identifier">entry_number</span>,<span class="ruby-constant">DIRECTORY_ENTRY_SIZE</span>]
24
- <span class="ruby-identifier">file_name</span>=<span class="ruby-constant">C64</span>.<span class="ruby-identifier">s_to_ascii</span>(<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x05</span><span class="ruby-operator">..</span><span class="ruby-value">0x14</span>]).<span class="ruby-identifier">strip</span>
25
- <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x02</span>]<span class="ruby-operator">==</span><span class="ruby-value">0x00</span> <span class="ruby-comment cmt">#skip SCRATCHed files
26
- <span class="ruby-identifier">file_type</span>=<span class="ruby-constant">FILE_TYPES</span>[<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x02</span>]<span class="ruby-operator">%</span><span class="ruby-value">8</span>]
27
- <span class="ruby-identifier">geos_file_type</span>=<span class="ruby-constant">GEOS_FILE_TYPES</span>[<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x18</span>]]
28
- <span class="ruby-identifier">is_geos_file</span>=(<span class="ruby-identifier">geos_file_type!</span>=<span class="ruby-identifier">:not_geos</span>)
29
- <span class="ruby-identifier">is_vlir</span>=<span class="ruby-identifier">is_geos_file</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x17</span>]<span class="ruby-operator">==</span><span class="ruby-value">0x01</span>)
30
- <span class="ruby-comment cmt"># puts &quot;geos file type: #{geos_file_type} #{is_geos_file} #{is_vlir}&quot;
31
- <span class="ruby-identifier">file_track_no</span>=<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x03</span>]
32
- <span class="ruby-identifier">file_sector_no</span>=<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x04</span>]
33
- <span class="ruby-identifier">info_block</span>=<span class="ruby-identifier">nil?</span>
34
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">is_geos_file</span>) <span class="ruby-keyword kw">then</span>
35
- <span class="ruby-identifier">file_name</span>=(<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x05</span><span class="ruby-operator">..</span><span class="ruby-value">0x14</span>]).<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\xa0/</span>,<span class="ruby-value str">&quot; &quot;</span>).<span class="ruby-identifier">strip</span> <span class="ruby-comment cmt">#GEOS filenames will be ASCII not PETSCII
36
- <span class="ruby-identifier">info_block</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x15</span>],<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x16</span>])
37
- <span class="ruby-identifier">file_contents</span>=[<span class="ruby-identifier">info_block</span>]
38
-
39
- <span class="ruby-keyword kw">end</span>
40
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">is_vlir</span>) <span class="ruby-keyword kw">then</span>
41
- <span class="ruby-comment cmt"># puts file_name
42
- <span class="ruby-identifier">record_block</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">file_track_no</span>,<span class="ruby-identifier">file_sector_no</span>)
43
- <span class="ruby-value">127</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
44
- <span class="ruby-identifier">record_no</span>=<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>
45
- <span class="ruby-identifier">record_track_no</span>=<span class="ruby-identifier">record_block</span>[<span class="ruby-value">2</span><span class="ruby-operator">*</span><span class="ruby-identifier">record_no</span>]
46
- <span class="ruby-identifier">record_sector_no</span>=<span class="ruby-identifier">record_block</span>[<span class="ruby-value">1</span><span class="ruby-operator">+</span>(<span class="ruby-value">2</span><span class="ruby-operator">*</span><span class="ruby-identifier">record_no</span>)]
47
- <span class="ruby-identifier">record_contents</span>=<span class="ruby-keyword kw">nil</span>
48
- <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">record_track_no</span><span class="ruby-operator">==</span><span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">record_track_no</span><span class="ruby-operator">&gt;</span><span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">end_track</span> <span class="ruby-keyword kw">do</span>
49
- <span class="ruby-identifier">record_contents</span>=<span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">record_contents</span>.<span class="ruby-identifier">nil?</span>
50
- <span class="ruby-identifier">record_sector</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">record_track_no</span>,<span class="ruby-identifier">record_sector_no</span>)
51
- <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">record_sector</span>.<span class="ruby-identifier">nil?</span>
52
- <span class="ruby-identifier">record_track_no</span>=<span class="ruby-identifier">record_sector</span>[<span class="ruby-value">0</span>]
53
- <span class="ruby-identifier">record_sector_no</span>=<span class="ruby-identifier">record_sector</span>[<span class="ruby-value">1</span>]
54
- <span class="ruby-identifier">end_of_data</span>= (<span class="ruby-identifier">record_track_no</span><span class="ruby-operator">==</span><span class="ruby-value">0</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">record_sector</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">:</span> <span class="ruby-value">255</span>
55
- <span class="ruby-identifier">record_contents</span><span class="ruby-operator">&lt;&lt;</span><span class="ruby-identifier">record_sector</span>[<span class="ruby-value">2</span><span class="ruby-operator">..</span><span class="ruby-identifier">end_of_data</span>]
56
- <span class="ruby-keyword kw">end</span>
57
- <span class="ruby-identifier">file_contents</span><span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">record_contents</span>)
58
- <span class="ruby-keyword kw">end</span>
59
- <span class="ruby-keyword kw">else</span>
60
- <span class="ruby-identifier">file_contents</span>=<span class="ruby-value str">&quot;&quot;</span>
61
- <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">file_track_no</span><span class="ruby-operator">==</span><span class="ruby-value">0</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">file_track_no</span><span class="ruby-operator">&gt;</span> <span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">end_track</span> <span class="ruby-keyword kw">do</span>
62
- <span class="ruby-identifier">file_sector</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">file_track_no</span>,<span class="ruby-identifier">file_sector_no</span>)
63
- <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file_sector</span>.<span class="ruby-identifier">nil?</span>
64
- <span class="ruby-identifier">file_track_no</span>=<span class="ruby-identifier">file_sector</span>[<span class="ruby-value">0</span>]
65
- <span class="ruby-identifier">file_sector_no</span>=<span class="ruby-identifier">file_sector</span>[<span class="ruby-value">1</span>]
66
- <span class="ruby-identifier">end_of_data</span>= (<span class="ruby-identifier">file_track_no</span><span class="ruby-operator">==</span><span class="ruby-value">0</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">file_sector</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">:</span> <span class="ruby-value">255</span>
67
- <span class="ruby-identifier">file_contents</span><span class="ruby-operator">+=</span><span class="ruby-identifier">file_sector</span>[<span class="ruby-value">2</span><span class="ruby-operator">..</span><span class="ruby-identifier">end_of_data</span>]
68
- <span class="ruby-comment cmt"># puts &quot;#{file_name} #{file_track_no} #{file_sector_no} #{end_of_data}&quot;
69
- <span class="ruby-keyword kw">end</span>
70
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">is_geos_file</span>) <span class="ruby-keyword kw">then</span>
71
- <span class="ruby-identifier">file_contents</span>=[<span class="ruby-identifier">info_block</span>,<span class="ruby-identifier">file_contents</span>]
72
- <span class="ruby-keyword kw">end</span>
73
- <span class="ruby-keyword kw">end</span>
74
- <span class="ruby-identifier">file</span>=<span class="ruby-constant">NativeFileType</span>.<span class="ruby-identifier">best_fit</span>(<span class="ruby-identifier">file_system_image</span>,<span class="ruby-identifier">file_name</span>,<span class="ruby-identifier">file_contents</span>,<span class="ruby-identifier">file_type</span>,<span class="ruby-identifier">geos_file_type</span>)
75
- [<span class="ruby-identifier">file</span>].<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
76
-
77
- <span class="ruby-identifier">f</span>.<span class="ruby-identifier">meta_data</span>[<span class="ruby-value str">&quot;c64_file_type&quot;</span>]=<span class="ruby-value str">&quot;$%02x&quot;</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x02</span>]
78
- <span class="ruby-identifier">f</span>.<span class="ruby-identifier">meta_data</span>[<span class="ruby-value str">&quot;first_block&quot;</span>]=<span class="ruby-value str">&quot;track $%02x sector $%02x&quot;</span> <span class="ruby-operator">%</span> [<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x03</span>],<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">04</span>]]
79
- <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">is_geos_file</span>) <span class="ruby-keyword kw">then</span>
80
- <span class="ruby-identifier">f</span>.<span class="ruby-identifier">meta_data</span>[<span class="ruby-value str">&quot;geos_file_header&quot;</span>]=<span class="ruby-value str">&quot;track $%02x sector $%02x&quot;</span> <span class="ruby-operator">%</span> [<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x15</span>],<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">16</span>]]
81
- <span class="ruby-identifier">f</span>.<span class="ruby-identifier">meta_data</span>[<span class="ruby-value str">&quot;geos_file_structure_type&quot;</span>]=<span class="ruby-value str">&quot;$%02x&quot;</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x17</span>]
82
- <span class="ruby-identifier">f</span>.<span class="ruby-identifier">meta_data</span>[<span class="ruby-value str">&quot;geos_file_type&quot;</span>]=<span class="ruby-value str">&quot;$%02x&quot;</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x18</span>]
83
- <span class="ruby-identifier">f</span>.<span class="ruby-identifier">meta_data</span>[<span class="ruby-value str">&quot;geos_file_modified_date&quot;</span>]=<span class="ruby-value str">&quot;%04d-%02d-%02d %02d:%02d&quot;</span> <span class="ruby-operator">%</span> [<span class="ruby-value">1900</span><span class="ruby-operator">+</span><span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x19</span>],<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x1</span><span class="ruby-constant">A</span>],<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x1</span><span class="ruby-constant">B</span>],<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x1</span><span class="ruby-constant">C</span>],<span class="ruby-identifier">directory_entry</span>[<span class="ruby-value">0x1</span><span class="ruby-constant">D</span>]]
84
- <span class="ruby-keyword kw">end</span>
85
- <span class="ruby-keyword kw">end</span>
86
- <span class="ruby-identifier">files</span><span class="ruby-operator">&lt;&lt;</span><span class="ruby-identifier">file</span>
87
- <span class="ruby-keyword kw">end</span>
88
- <span class="ruby-keyword kw">end</span>
89
- <span class="ruby-identifier">files</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/file_systems/CbmDos.rb, line 126</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">directory_entry_for_filename</span>(<span class="ruby-identifier">filename</span>)
15
+ (<span class="ruby-identifier">filename</span><span class="ruby-operator">+</span>(<span class="ruby-value">0x</span><span class="ruby-constant">A0</span>.<span class="ruby-identifier">chr</span>)<span class="ruby-operator">*</span><span class="ruby-value">16</span>)[<span class="ruby-value">0</span>,<span class="ruby-value">0x10</span>]
90
16
  <span class="ruby-keyword kw">end</span></pre>
91
17
  </body>
92
18
  </html>
@@ -5,34 +5,64 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>free_sector_list (CbmDos)</title>
8
+ <title>add_file (CbmDos)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/file_systems/CbmDos.rb, line 102</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">free_sector_list</span>(<span class="ruby-identifier">file_system_image</span>)
15
- <span class="ruby-identifier">bam</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-value">18</span>,<span class="ruby-value">0</span>)
16
- <span class="ruby-identifier">free_sectors</span>=[]
17
- (<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">35</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">track</span><span class="ruby-operator">|</span>
18
- <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">track</span><span class="ruby-operator">==</span><span class="ruby-value">18</span> <span class="ruby-comment cmt">#don't try to save files to track 18
19
- <span class="ruby-identifier">track_bitmap_lo</span>=<span class="ruby-identifier">bam</span>[<span class="ruby-identifier">track</span><span class="ruby-operator">*</span><span class="ruby-value">4</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>]
20
- <span class="ruby-identifier">track_bitmap_mid</span>=<span class="ruby-identifier">bam</span>[<span class="ruby-identifier">track</span><span class="ruby-operator">*</span><span class="ruby-value">4</span><span class="ruby-operator">+</span><span class="ruby-value">2</span>]
21
- <span class="ruby-identifier">track_bitmap_hi</span>=<span class="ruby-identifier">bam</span>[<span class="ruby-identifier">track</span><span class="ruby-operator">*</span><span class="ruby-value">4</span><span class="ruby-operator">+</span><span class="ruby-value">3</span>]
22
- (<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">7</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">bit_no</span><span class="ruby-operator">|</span>
23
- <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">track_bitmap_lo</span> <span class="ruby-operator">&amp;</span> (<span class="ruby-value">2</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">bit_no</span>)))<span class="ruby-operator">!=</span><span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
24
- <span class="ruby-identifier">free_sectors</span><span class="ruby-operator">&lt;&lt;</span>[<span class="ruby-identifier">track</span>,<span class="ruby-identifier">bit_no</span>]
25
- <span class="ruby-keyword kw">end</span>
26
- <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">track_bitmap_mid</span> <span class="ruby-operator">&amp;</span> (<span class="ruby-value">2</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">bit_no</span>)))<span class="ruby-operator">!=</span><span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
27
- <span class="ruby-identifier">free_sectors</span><span class="ruby-operator">&lt;&lt;</span>[<span class="ruby-identifier">track</span>,<span class="ruby-identifier">bit_no</span><span class="ruby-operator">+</span><span class="ruby-value">8</span>]
28
- <span class="ruby-keyword kw">end</span>
29
- <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">track_bitmap_hi</span> <span class="ruby-operator">&amp;</span> (<span class="ruby-value">2</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">bit_no</span>)))<span class="ruby-operator">!=</span><span class="ruby-value">0</span>) <span class="ruby-keyword kw">then</span>
30
- <span class="ruby-identifier">free_sectors</span><span class="ruby-operator">&lt;&lt;</span>[<span class="ruby-identifier">track</span>,<span class="ruby-identifier">bit_no</span><span class="ruby-operator">+</span><span class="ruby-value">16</span>]
31
- <span class="ruby-keyword kw">end</span>
32
- <span class="ruby-keyword kw">end</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/file_systems/CbmDos.rb, line 130</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">add_file</span>(<span class="ruby-identifier">file_system_image</span>,<span class="ruby-identifier">native_filetype_class</span>,<span class="ruby-identifier">filename</span>,<span class="ruby-identifier">file_contents</span>,<span class="ruby-identifier">file_type</span>=<span class="ruby-keyword kw">nil</span>,<span class="ruby-identifier">aux_code</span>=<span class="ruby-keyword kw">nil</span>)
15
+ <span class="ruby-comment cmt">#make sure the file type is supported on CBM DOS!
16
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;#{native_filetype_class} not supported on CBM DOS 2.6 file system&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">native_filetype_class</span>.<span class="ruby-identifier">file_system_file_types</span>[<span class="ruby-keyword kw">self</span>].<span class="ruby-identifier">nil?</span>
17
+ <span class="ruby-identifier">expected_file_type</span>=<span class="ruby-identifier">native_filetype_class</span>.<span class="ruby-identifier">file_system_file_types</span>[<span class="ruby-keyword kw">self</span>]
18
+ <span class="ruby-identifier">file_type</span>=<span class="ruby-identifier">expected_file_type</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file_type</span>.<span class="ruby-identifier">nil?</span>
19
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;inconsistent file_type (should be #{expected_file_type} but was #{file_type})&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">expected_file_type</span><span class="ruby-operator">==</span><span class="ruby-identifier">file_type</span>
20
+ <span class="ruby-identifier">native_file</span>=<span class="ruby-identifier">native_filetype_class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">file_system_image</span>,<span class="ruby-identifier">filename</span>,<span class="ruby-identifier">file_contents</span>,<span class="ruby-identifier">file_type</span>,<span class="ruby-identifier">aux_code</span>)
21
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;couldn't make #{native_filetype_class}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">native_file</span>.<span class="ruby-identifier">nil?</span>
22
+
23
+ <span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">delete_file</span>(<span class="ruby-identifier">filename</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">files</span>[<span class="ruby-identifier">filename</span>].<span class="ruby-identifier">nil?</span>
24
+
25
+
26
+ <span class="ruby-identifier">free_sectors</span>=<span class="ruby-identifier">free_sector_list</span>(<span class="ruby-identifier">file_system_image</span>)
27
+ <span class="ruby-identifier">sectors_needed</span>=<span class="ruby-value">1</span><span class="ruby-operator">+</span>(<span class="ruby-identifier">file_contents</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">/</span><span class="ruby-value">254</span>)
28
+ <span class="ruby-identifier">file_sectors</span>=<span class="ruby-identifier">free_sectors</span>[(<span class="ruby-identifier">free_sectors</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-identifier">sectors_needed</span>)<span class="ruby-operator">/</span><span class="ruby-value">2</span>,<span class="ruby-identifier">sectors_needed</span>] <span class="ruby-comment cmt">#we take a chunk out of the middle of the available sectors, so we keep as close to track 18 as possible
29
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;not enough free space - #{sectors_needed} sectors needed, #{file_sectors.length} available &quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">sectors_needed</span><span class="ruby-operator">==</span><span class="ruby-identifier">file_sectors</span>.<span class="ruby-identifier">length</span>
30
+ <span class="ruby-identifier">directory_slot</span>=<span class="ruby-identifier">find_free_directory_slot</span>(<span class="ruby-identifier">file_system_image</span>)
31
+ <span class="ruby-comment cmt"># file_sectors.each {|ts| puts &quot;T#{ts[0]} S#{ts[1]}&quot;}
32
+ <span class="ruby-identifier">directory_slot</span>=<span class="ruby-identifier">create_empty_directory_sector</span>(<span class="ruby-identifier">file_system_image</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">directory_slot</span>.<span class="ruby-identifier">nil?</span>
33
+ <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;DIRECTORY IS FULL!&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">directory_slot</span>.<span class="ruby-identifier">nil?</span>
34
+ <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;invalid directory slot &quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">directory_slot</span>[<span class="ruby-value">2</span>].<span class="ruby-identifier">nil?</span>
35
+ <span class="ruby-comment cmt"># puts &quot;T#{directory_slot[0]} S#{directory_slot[1]} OFFSET #{directory_slot[2]}&quot;
36
+ <span class="ruby-identifier">directory_track_no</span>=<span class="ruby-identifier">directory_slot</span>[<span class="ruby-value">0</span>]
37
+ <span class="ruby-identifier">directory_sector_no</span>=<span class="ruby-identifier">directory_slot</span>[<span class="ruby-value">1</span>]
38
+ <span class="ruby-identifier">directory_offset</span>=<span class="ruby-identifier">directory_slot</span>[<span class="ruby-value">2</span>]
39
+ <span class="ruby-identifier">directory_sector</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">directory_track_no</span>,<span class="ruby-identifier">directory_sector_no</span>)
40
+ <span class="ruby-identifier">directory_filename</span>=<span class="ruby-identifier">directory_entry_for_filename</span>(<span class="ruby-identifier">filename</span>)
41
+ <span class="ruby-identifier">file_code</span>=<span class="ruby-constant">FILE_TYPES</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">native_file</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">file_system_file_types</span>[<span class="ruby-constant">CbmDos</span>])
42
+ <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;invalid file type&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file_code</span>.<span class="ruby-identifier">nil?</span>
43
+ <span class="ruby-identifier">file_code</span><span class="ruby-operator">+=</span><span class="ruby-value">0x80</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">file_code</span><span class="ruby-operator">==</span><span class="ruby-value">0</span> <span class="ruby-comment cmt">#DEL files should be OPEN, all other files should be CLOSED
44
+ <span class="ruby-comment cmt"># puts &quot;%x&quot; % file_code
45
+ <span class="ruby-identifier">directory_entry</span>=[<span class="ruby-identifier">file_code</span>,<span class="ruby-identifier">file_sectors</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>],<span class="ruby-identifier">file_sectors</span>[<span class="ruby-value">0</span>][<span class="ruby-value">1</span>],<span class="ruby-identifier">directory_filename</span>,<span class="ruby-identifier">file_sectors</span>.<span class="ruby-identifier">length</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-value str">&quot;CCCa16x9v&quot;</span>)
46
+ <span class="ruby-comment cmt"># puts &quot;start of file #{filename} will be T #{file_sectors[0][0]} S #{file_sectors[0][1]}&quot;
47
+ <span class="ruby-identifier">sectors_needed</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
48
+ <span class="ruby-identifier">this_track_no</span>=<span class="ruby-identifier">file_sectors</span>[<span class="ruby-identifier">i</span>][<span class="ruby-value">0</span>]
49
+ <span class="ruby-identifier">this_sector_no</span>=<span class="ruby-identifier">file_sectors</span>[<span class="ruby-identifier">i</span>][<span class="ruby-value">1</span>]
50
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">i</span><span class="ruby-operator">==</span>(<span class="ruby-identifier">sectors_needed</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>) <span class="ruby-keyword kw">then</span>
51
+ <span class="ruby-identifier">next_track_no</span>=<span class="ruby-value">0</span>
52
+ <span class="ruby-identifier">data_length</span>=(<span class="ruby-identifier">file_contents</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">%</span> <span class="ruby-value">254</span>)
53
+ <span class="ruby-identifier">next_sector_no</span>=<span class="ruby-identifier">data_length</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>
54
+ <span class="ruby-keyword kw">else</span>
55
+ <span class="ruby-identifier">next_track_no</span>=<span class="ruby-identifier">file_sectors</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>][<span class="ruby-value">0</span>]
56
+ <span class="ruby-identifier">next_sector_no</span>=<span class="ruby-identifier">file_sectors</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>][<span class="ruby-value">1</span>]
57
+ <span class="ruby-identifier">data_length</span>=<span class="ruby-value">254</span>
33
58
  <span class="ruby-keyword kw">end</span>
34
- <span class="ruby-identifier">free_sectors</span>.<span class="ruby-identifier">sort!</span>
35
- <span class="ruby-comment cmt"># free_sectors.each {|ts| puts &quot;T#{ts[0]} S#{ts[1]}&quot;}
59
+ <span class="ruby-identifier">sector_data</span>=[<span class="ruby-identifier">next_track_no</span>,<span class="ruby-identifier">next_sector_no</span>,<span class="ruby-identifier">file_contents</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">*</span><span class="ruby-value">254</span>,<span class="ruby-identifier">data_length</span>] ].<span class="ruby-identifier">pack</span>(<span class="ruby-value str">&quot;CCA254&quot;</span>)
60
+ <span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">set_sector</span>(<span class="ruby-identifier">this_track_no</span>,<span class="ruby-identifier">this_sector_no</span>,<span class="ruby-identifier">sector_data</span>)
61
+ <span class="ruby-identifier">mark_sector_as_used</span>(<span class="ruby-identifier">file_system_image</span>,<span class="ruby-identifier">this_track_no</span>,<span class="ruby-identifier">this_sector_no</span>)
62
+ <span class="ruby-keyword kw">end</span>
63
+ <span class="ruby-identifier">directory_sector</span>[<span class="ruby-identifier">directory_offset</span><span class="ruby-operator">+</span><span class="ruby-value">2</span>,<span class="ruby-value">0x1</span><span class="ruby-constant">D</span>]=<span class="ruby-identifier">directory_entry</span> <span class="ruby-comment cmt">#skip over the first 2 bytes, which are the track / sector of next directory sector in slot 1, or 0/0 in other slots
64
+ <span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">set_sector</span>(<span class="ruby-identifier">directory_track_no</span>,<span class="ruby-identifier">directory_sector_no</span>,<span class="ruby-identifier">directory_sector</span>)
65
+ <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">native_file</span>
36
66
  <span class="ruby-keyword kw">end</span></pre>
37
67
  </body>
38
68
  </html>
@@ -5,14 +5,28 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>directory_entry_for_filename (CbmDos)</title>
8
+ <title>find_free_directory_slot (CbmDos)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/file_systems/CbmDos.rb, line 126</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">directory_entry_for_filename</span>(<span class="ruby-identifier">filename</span>)
15
- (<span class="ruby-identifier">filename</span><span class="ruby-operator">+</span>(<span class="ruby-value">0x</span><span class="ruby-constant">A0</span>.<span class="ruby-identifier">chr</span>)<span class="ruby-operator">*</span><span class="ruby-value">16</span>)[<span class="ruby-value">0</span>,<span class="ruby-value">0x10</span>]
13
+ <pre><span class="ruby-comment cmt"># File lib/file_systems/CbmDos.rb, line 185</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">find_free_directory_slot</span>(<span class="ruby-identifier">file_system_image</span>)
15
+ <span class="ruby-identifier">directory_track_no</span>=<span class="ruby-value">18</span>
16
+ <span class="ruby-identifier">directory_sector_no</span>=<span class="ruby-value">1</span>
17
+ <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">directory_track_no</span> <span class="ruby-operator">!=</span><span class="ruby-value">0</span>) <span class="ruby-keyword kw">do</span>
18
+ <span class="ruby-identifier">directory</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">directory_track_no</span>,<span class="ruby-identifier">directory_sector_no</span>)
19
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;attempted to read invalid directory sector at T #{directory_track_no} S#{directory_sector_no}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">directory</span>.<span class="ruby-identifier">nil?</span>
20
+ <span class="ruby-value">8</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">slot_no</span><span class="ruby-operator">|</span>
21
+ <span class="ruby-identifier">slot_start</span>=<span class="ruby-identifier">slot_no</span><span class="ruby-operator">*</span><span class="ruby-value">0x20</span>
22
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">directory</span>[<span class="ruby-identifier">slot_start</span><span class="ruby-operator">+</span><span class="ruby-value">2</span>]<span class="ruby-operator">==</span><span class="ruby-value">0x00</span>) <span class="ruby-operator">||</span> (<span class="ruby-identifier">directory</span>[<span class="ruby-identifier">slot_start</span><span class="ruby-operator">+</span><span class="ruby-value">2</span>]<span class="ruby-operator">==</span><span class="ruby-value">0x</span><span class="ruby-constant">FF</span>) <span class="ruby-keyword kw">then</span>
23
+ <span class="ruby-keyword kw">return</span> [<span class="ruby-identifier">directory_track_no</span>,<span class="ruby-identifier">directory_sector_no</span>,<span class="ruby-identifier">slot_start</span>]
24
+ <span class="ruby-keyword kw">end</span>
25
+ <span class="ruby-keyword kw">end</span>
26
+ <span class="ruby-identifier">directory_track_no</span>=<span class="ruby-identifier">directory</span>[<span class="ruby-value">00</span>]
27
+ <span class="ruby-identifier">directory_sector_no</span>=<span class="ruby-identifier">directory</span>[<span class="ruby-value">01</span>]
28
+ <span class="ruby-keyword kw">end</span>
29
+ <span class="ruby-keyword kw">nil</span>
16
30
  <span class="ruby-keyword kw">end</span></pre>
17
31
  </body>
18
32
  </html>
@@ -5,64 +5,24 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>add_file (CbmDos)</title>
8
+ <title>mark_sector_as_used (CbmDos)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/file_systems/CbmDos.rb, line 130</span>
14
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">add_file</span>(<span class="ruby-identifier">file_system_image</span>,<span class="ruby-identifier">native_filetype_class</span>,<span class="ruby-identifier">filename</span>,<span class="ruby-identifier">file_contents</span>,<span class="ruby-identifier">file_type</span>=<span class="ruby-keyword kw">nil</span>,<span class="ruby-identifier">aux_code</span>=<span class="ruby-keyword kw">nil</span>)
15
- <span class="ruby-comment cmt">#make sure the file type is supported on CBM DOS!
16
- <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;#{native_filetype_class} not supported on CBM DOS 2.6 file system&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">native_filetype_class</span>.<span class="ruby-identifier">file_system_file_types</span>[<span class="ruby-keyword kw">self</span>].<span class="ruby-identifier">nil?</span>
17
- <span class="ruby-identifier">expected_file_type</span>=<span class="ruby-identifier">native_filetype_class</span>.<span class="ruby-identifier">file_system_file_types</span>[<span class="ruby-keyword kw">self</span>]
18
- <span class="ruby-identifier">file_type</span>=<span class="ruby-identifier">expected_file_type</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file_type</span>.<span class="ruby-identifier">nil?</span>
19
- <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;inconsistent file_type (should be #{expected_file_type} but was #{file_type})&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">expected_file_type</span><span class="ruby-operator">==</span><span class="ruby-identifier">file_type</span>
20
- <span class="ruby-identifier">native_file</span>=<span class="ruby-identifier">native_filetype_class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">file_system_image</span>,<span class="ruby-identifier">filename</span>,<span class="ruby-identifier">file_contents</span>,<span class="ruby-identifier">file_type</span>,<span class="ruby-identifier">aux_code</span>)
21
- <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;couldn't make #{native_filetype_class}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">native_file</span>.<span class="ruby-identifier">nil?</span>
22
-
23
- <span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">delete_file</span>(<span class="ruby-identifier">filename</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">files</span>[<span class="ruby-identifier">filename</span>].<span class="ruby-identifier">nil?</span>
24
-
25
-
26
- <span class="ruby-identifier">free_sectors</span>=<span class="ruby-identifier">free_sector_list</span>(<span class="ruby-identifier">file_system_image</span>)
27
- <span class="ruby-identifier">sectors_needed</span>=<span class="ruby-value">1</span><span class="ruby-operator">+</span>(<span class="ruby-identifier">file_contents</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">/</span><span class="ruby-value">254</span>)
28
- <span class="ruby-identifier">file_sectors</span>=<span class="ruby-identifier">free_sectors</span>[(<span class="ruby-identifier">free_sectors</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-identifier">sectors_needed</span>)<span class="ruby-operator">/</span><span class="ruby-value">2</span>,<span class="ruby-identifier">sectors_needed</span>] <span class="ruby-comment cmt">#we take a chunk out of the middle of the available sectors, so we keep as close to track 18 as possible
29
- <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;not enough free space - #{sectors_needed} sectors needed, #{file_sectors.length} available &quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">sectors_needed</span><span class="ruby-operator">==</span><span class="ruby-identifier">file_sectors</span>.<span class="ruby-identifier">length</span>
30
- <span class="ruby-identifier">directory_slot</span>=<span class="ruby-identifier">find_free_directory_slot</span>(<span class="ruby-identifier">file_system_image</span>)
31
- <span class="ruby-comment cmt"># file_sectors.each {|ts| puts &quot;T#{ts[0]} S#{ts[1]}&quot;}
32
- <span class="ruby-identifier">directory_slot</span>=<span class="ruby-identifier">create_empty_directory_sector</span>(<span class="ruby-identifier">file_system_image</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">directory_slot</span>.<span class="ruby-identifier">nil?</span>
33
- <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;DIRECTORY IS FULL!&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">directory_slot</span>.<span class="ruby-identifier">nil?</span>
34
- <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;invalid directory slot &quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">directory_slot</span>[<span class="ruby-value">2</span>].<span class="ruby-identifier">nil?</span>
35
- <span class="ruby-comment cmt"># puts &quot;T#{directory_slot[0]} S#{directory_slot[1]} OFFSET #{directory_slot[2]}&quot;
36
- <span class="ruby-identifier">directory_track_no</span>=<span class="ruby-identifier">directory_slot</span>[<span class="ruby-value">0</span>]
37
- <span class="ruby-identifier">directory_sector_no</span>=<span class="ruby-identifier">directory_slot</span>[<span class="ruby-value">1</span>]
38
- <span class="ruby-identifier">directory_offset</span>=<span class="ruby-identifier">directory_slot</span>[<span class="ruby-value">2</span>]
39
- <span class="ruby-identifier">directory_sector</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-identifier">directory_track_no</span>,<span class="ruby-identifier">directory_sector_no</span>)
40
- <span class="ruby-identifier">directory_filename</span>=<span class="ruby-identifier">directory_entry_for_filename</span>(<span class="ruby-identifier">filename</span>)
41
- <span class="ruby-identifier">file_code</span>=<span class="ruby-constant">FILE_TYPES</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">native_file</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">file_system_file_types</span>[<span class="ruby-constant">CbmDos</span>])
42
- <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;invalid file type&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file_code</span>.<span class="ruby-identifier">nil?</span>
43
- <span class="ruby-identifier">file_code</span><span class="ruby-operator">+=</span><span class="ruby-value">0x80</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">file_code</span><span class="ruby-operator">==</span><span class="ruby-value">0</span> <span class="ruby-comment cmt">#DEL files should be OPEN, all other files should be CLOSED
44
- <span class="ruby-comment cmt"># puts &quot;%x&quot; % file_code
45
- <span class="ruby-identifier">directory_entry</span>=[<span class="ruby-identifier">file_code</span>,<span class="ruby-identifier">file_sectors</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>],<span class="ruby-identifier">file_sectors</span>[<span class="ruby-value">0</span>][<span class="ruby-value">1</span>],<span class="ruby-identifier">directory_filename</span>,<span class="ruby-identifier">file_sectors</span>.<span class="ruby-identifier">length</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-value str">&quot;CCCa16x9v&quot;</span>)
46
- <span class="ruby-comment cmt"># puts &quot;start of file #{filename} will be T #{file_sectors[0][0]} S #{file_sectors[0][1]}&quot;
47
- <span class="ruby-identifier">sectors_needed</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
48
- <span class="ruby-identifier">this_track_no</span>=<span class="ruby-identifier">file_sectors</span>[<span class="ruby-identifier">i</span>][<span class="ruby-value">0</span>]
49
- <span class="ruby-identifier">this_sector_no</span>=<span class="ruby-identifier">file_sectors</span>[<span class="ruby-identifier">i</span>][<span class="ruby-value">1</span>]
50
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">i</span><span class="ruby-operator">==</span>(<span class="ruby-identifier">sectors_needed</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>) <span class="ruby-keyword kw">then</span>
51
- <span class="ruby-identifier">next_track_no</span>=<span class="ruby-value">0</span>
52
- <span class="ruby-identifier">data_length</span>=(<span class="ruby-identifier">file_contents</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">%</span> <span class="ruby-value">254</span>)
53
- <span class="ruby-identifier">next_sector_no</span>=<span class="ruby-identifier">data_length</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>
54
- <span class="ruby-keyword kw">else</span>
55
- <span class="ruby-identifier">next_track_no</span>=<span class="ruby-identifier">file_sectors</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>][<span class="ruby-value">0</span>]
56
- <span class="ruby-identifier">next_sector_no</span>=<span class="ruby-identifier">file_sectors</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>][<span class="ruby-value">1</span>]
57
- <span class="ruby-identifier">data_length</span>=<span class="ruby-value">254</span>
58
- <span class="ruby-keyword kw">end</span>
59
- <span class="ruby-identifier">sector_data</span>=[<span class="ruby-identifier">next_track_no</span>,<span class="ruby-identifier">next_sector_no</span>,<span class="ruby-identifier">file_contents</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">*</span><span class="ruby-value">254</span>,<span class="ruby-identifier">data_length</span>] ].<span class="ruby-identifier">pack</span>(<span class="ruby-value str">&quot;CCA254&quot;</span>)
60
- <span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">set_sector</span>(<span class="ruby-identifier">this_track_no</span>,<span class="ruby-identifier">this_sector_no</span>,<span class="ruby-identifier">sector_data</span>)
61
- <span class="ruby-identifier">mark_sector_as_used</span>(<span class="ruby-identifier">file_system_image</span>,<span class="ruby-identifier">this_track_no</span>,<span class="ruby-identifier">this_sector_no</span>)
13
+ <pre><span class="ruby-comment cmt"># File lib/file_systems/CbmDos.rb, line 203</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mark_sector_as_used</span>(<span class="ruby-identifier">file_system_image</span>,<span class="ruby-identifier">track_no</span>,<span class="ruby-identifier">sector_no</span>)
15
+ <span class="ruby-identifier">bam</span>=<span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">get_sector</span>(<span class="ruby-value">18</span>,<span class="ruby-value">0</span>)
16
+ <span class="ruby-identifier">bam_entry_offset</span>=<span class="ruby-identifier">track_no</span><span class="ruby-operator">*</span><span class="ruby-value">4</span>
17
+ <span class="ruby-identifier">sector_offset</span>=<span class="ruby-identifier">sector_no</span><span class="ruby-operator">/</span><span class="ruby-value">8</span>
18
+ <span class="ruby-identifier">bitmask</span>=<span class="ruby-value">2</span><span class="ruby-operator">**</span>(<span class="ruby-identifier">sector_no</span> <span class="ruby-operator">%</span> <span class="ruby-value">8</span>)
19
+ <span class="ruby-identifier">existing_bam_byte</span>=<span class="ruby-identifier">bam</span>[<span class="ruby-identifier">bam_entry_offset</span><span class="ruby-operator">+</span><span class="ruby-identifier">sector_offset</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>]
20
+ <span class="ruby-comment cmt"># puts &quot;T #{&quot;%02x&quot;% track_no} S #{&quot;%02x&quot;% sector_no} L #{&quot;%02x&quot;% bam_entry_offset} sector_offset #{sector_offset} mask #{&quot;%08b&quot; % bitmask} was #{&quot;%08b&quot; % existing_bam_byte}&quot;
21
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">existing_bam_byte</span> <span class="ruby-operator">&amp;</span> <span class="ruby-identifier">bitmask</span>)<span class="ruby-operator">==</span>(<span class="ruby-identifier">bitmask</span>) <span class="ruby-keyword kw">then</span>
22
+ <span class="ruby-identifier">bam</span>[<span class="ruby-identifier">bam_entry_offset</span><span class="ruby-operator">+</span><span class="ruby-identifier">sector_offset</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>]<span class="ruby-operator">-=</span><span class="ruby-identifier">bitmask</span>
23
+ <span class="ruby-identifier">bam</span>[<span class="ruby-identifier">bam_entry_offset</span>]<span class="ruby-operator">-=</span><span class="ruby-value">1</span>
24
+ <span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">set_sector</span>(<span class="ruby-value">18</span>,<span class="ruby-value">0</span>,<span class="ruby-identifier">bam</span>)
62
25
  <span class="ruby-keyword kw">end</span>
63
- <span class="ruby-identifier">directory_sector</span>[<span class="ruby-identifier">directory_offset</span><span class="ruby-operator">+</span><span class="ruby-value">2</span>,<span class="ruby-value">0x1</span><span class="ruby-constant">D</span>]=<span class="ruby-identifier">directory_entry</span> <span class="ruby-comment cmt">#skip over the first 2 bytes, which are the track / sector of next directory sector in slot 1, or 0/0 in other slots
64
- <span class="ruby-identifier">file_system_image</span>.<span class="ruby-identifier">set_sector</span>(<span class="ruby-identifier">directory_track_no</span>,<span class="ruby-identifier">directory_sector_no</span>,<span class="ruby-identifier">directory_sector</span>)
65
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">native_file</span>
66
26
  <span class="ruby-keyword kw">end</span></pre>
67
27
  </body>
68
28
  </html>