dsktool 0.4.2 → 0.5.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 (417) hide show
  1. data/bin/dskexplorer.rb +1 -1
  2. data/bin/dskexplorer.rb~ +365 -0
  3. data/bin/dsktool.rb +7 -3
  4. data/bin/dsktool.rb~ +173 -0
  5. data/doc/classes/AppleSoftFile.html +199 -0
  6. data/doc/classes/AppleSoftFile.src/M000005.html +18 -0
  7. data/doc/classes/AppleSoftFile.src/M000006.html +18 -0
  8. data/doc/classes/AppleSoftFile.src/M000008.html +18 -0
  9. data/doc/classes/AppleSoftFile.src/M000009.html +18 -0
  10. data/doc/classes/AppleSoftFile.src/M000010.html +18 -0
  11. data/doc/classes/AppleSoftFile.src/M000055.html +18 -0
  12. data/doc/classes/AppleSoftFile.src/M000056.html +18 -0
  13. data/doc/classes/AppleSoftFile.src/M000057.html +18 -0
  14. data/doc/classes/AppleSoftFile.src/M000058.html +18 -0
  15. data/doc/classes/BinaryFile.html +241 -0
  16. data/doc/classes/BinaryFile.src/M000015.html +18 -0
  17. data/doc/classes/BinaryFile.src/M000020.html +18 -0
  18. data/doc/classes/BinaryFile.src/M000021.html +18 -0
  19. data/doc/classes/BinaryFile.src/M000022.html +19 -0
  20. data/doc/classes/BinaryFile.src/M000107.html +18 -0
  21. data/doc/classes/BinaryFile.src/M000108.html +18 -0
  22. data/doc/classes/BinaryFile.src/M000109.html +18 -0
  23. data/doc/classes/BinaryFile.src/M000110.html +19 -0
  24. data/doc/classes/BinaryFile.src/M000111.html +19 -0
  25. data/doc/classes/BinaryFile.src/M000112.html +19 -0
  26. data/doc/classes/BinaryFile.src/M000113.html +18 -0
  27. data/doc/classes/CPMDisk.html +331 -0
  28. data/doc/classes/CPMDisk.src/M000024.html +21 -0
  29. data/doc/classes/CPMDisk.src/M000025.html +23 -0
  30. data/doc/classes/CPMDisk.src/M000026.html +23 -0
  31. data/doc/classes/CPMDisk.src/M000027.html +19 -0
  32. data/doc/classes/CPMDisk.src/M000028.html +18 -0
  33. data/doc/classes/CPMDisk.src/M000029.html +18 -0
  34. data/doc/classes/CPMDisk.src/M000030.html +31 -0
  35. data/doc/classes/CPMDisk.src/M000031.html +51 -0
  36. data/doc/classes/CPMDisk.src/M000032.html +53 -0
  37. data/doc/classes/CPMFile.html +252 -0
  38. data/doc/classes/CPMFile.src/M000064.html +22 -0
  39. data/doc/classes/CPMFile.src/M000065.html +20 -0
  40. data/doc/classes/CPMFile.src/M000066.html +22 -0
  41. data/doc/classes/CPMFile.src/M000067.html +18 -0
  42. data/doc/classes/CPMFile.src/M000068.html +18 -0
  43. data/doc/classes/CPMFile.src/M000069.html +18 -0
  44. data/doc/classes/CPMFile.src/M000070.html +18 -0
  45. data/doc/classes/CatalogServlet.html +148 -0
  46. data/doc/classes/CatalogServlet.src/M000035.html +20 -0
  47. data/doc/classes/CatalogServlet.src/M000036.html +20 -0
  48. data/doc/classes/D65.html +180 -0
  49. data/doc/classes/D65.src/M000002.html +18 -0
  50. data/doc/classes/D65.src/M000003.html +18 -0
  51. data/doc/classes/D65.src/M000004.html +64 -0
  52. data/doc/classes/D65.src/M000005.html +18 -0
  53. data/doc/classes/D65.src/M000006.html +18 -0
  54. data/doc/classes/D65.src/M000007.html +18 -0
  55. data/doc/classes/D65.src/M000008.html +18 -0
  56. data/doc/classes/D65.src/M000048.html +18 -0
  57. data/doc/classes/D65.src/M000049.html +64 -0
  58. data/doc/classes/DOSDisk.html +425 -0
  59. data/doc/classes/DOSDisk.src/M000007.html +20 -0
  60. data/doc/classes/DOSDisk.src/M000008.html +77 -0
  61. data/doc/classes/DOSDisk.src/M000010.html +20 -0
  62. data/doc/classes/DOSDisk.src/M000011.html +20 -0
  63. data/doc/classes/DOSDisk.src/M000012.html +19 -0
  64. data/doc/classes/DOSDisk.src/M000013.html +20 -0
  65. data/doc/classes/DOSDisk.src/M000053.html +23 -0
  66. data/doc/classes/DOSDisk.src/M000054.html +19 -0
  67. data/doc/classes/DOSDisk.src/M000055.html +21 -0
  68. data/doc/classes/DOSDisk.src/M000056.html +37 -0
  69. data/doc/classes/DOSDisk.src/M000057.html +85 -0
  70. data/doc/classes/DOSDisk.src/M000058.html +37 -0
  71. data/doc/classes/DOSDisk.src/M000059.html +34 -0
  72. data/doc/classes/DOSDisk.src/M000060.html +27 -0
  73. data/doc/classes/DOSDisk.src/M000061.html +43 -0
  74. data/doc/classes/DOSDisk.src/M000062.html +31 -0
  75. data/doc/classes/DOSDisk.src/M000063.html +95 -0
  76. data/doc/classes/DOSDisk.src/M000064.html +85 -0
  77. data/doc/classes/DOSDisk.src/M000065.html +37 -0
  78. data/doc/classes/DOSDisk.src/M000066.html +34 -0
  79. data/doc/classes/DOSDisk.src/M000067.html +27 -0
  80. data/doc/classes/DOSDisk.src/M000068.html +43 -0
  81. data/doc/classes/DOSDisk.src/M000069.html +31 -0
  82. data/doc/classes/DOSDisk.src/M000070.html +95 -0
  83. data/doc/classes/DOSFile.html +253 -0
  84. data/doc/classes/DOSFile.src/M000016.html +22 -0
  85. data/doc/classes/DOSFile.src/M000017.html +17 -0
  86. data/doc/classes/DOSFile.src/M000018.html +18 -0
  87. data/doc/classes/DOSFile.src/M000021.html +22 -0
  88. data/doc/classes/DOSFile.src/M000022.html +22 -0
  89. data/doc/classes/DOSFile.src/M000023.html +22 -0
  90. data/doc/classes/DOSFile.src/M000024.html +17 -0
  91. data/doc/classes/DOSFile.src/M000025.html +18 -0
  92. data/doc/classes/DOSFile.src/M000116.html +22 -0
  93. data/doc/classes/DOSFile.src/M000117.html +18 -0
  94. data/doc/classes/DOSFile.src/M000118.html +18 -0
  95. data/doc/classes/DOSFile.src/M000119.html +28 -0
  96. data/doc/classes/DOSFile.src/M000120.html +18 -0
  97. data/doc/classes/DSK.html +633 -0
  98. data/doc/classes/DSK.src/M000009.html +22 -0
  99. data/doc/classes/DSK.src/M000010.html +27 -0
  100. data/doc/classes/DSK.src/M000011.html +19 -0
  101. data/doc/classes/DSK.src/M000012.html +18 -0
  102. data/doc/classes/DSK.src/M000013.html +22 -0
  103. data/doc/classes/DSK.src/M000014.html +22 -0
  104. data/doc/classes/DSK.src/M000015.html +22 -0
  105. data/doc/classes/DSK.src/M000016.html +22 -0
  106. data/doc/classes/DSK.src/M000017.html +22 -0
  107. data/doc/classes/DSK.src/M000018.html +22 -0
  108. data/doc/classes/DSK.src/M000019.html +22 -0
  109. data/doc/classes/DSK.src/M000020.html +34 -0
  110. data/doc/classes/DSK.src/M000079.html +19 -0
  111. data/doc/classes/DSK.src/M000080.html +19 -0
  112. data/doc/classes/DSK.src/M000081.html +18 -0
  113. data/doc/classes/DSK.src/M000082.html +18 -0
  114. data/doc/classes/DSK.src/M000083.html +18 -0
  115. data/doc/classes/DSK.src/M000084.html +18 -0
  116. data/doc/classes/DSK.src/M000085.html +18 -0
  117. data/doc/classes/DSK.src/M000086.html +25 -0
  118. data/doc/classes/DSK.src/M000087.html +19 -0
  119. data/doc/classes/DSK.src/M000088.html +20 -0
  120. data/doc/classes/DSK.src/M000089.html +35 -0
  121. data/doc/classes/DSK.src/M000090.html +22 -0
  122. data/doc/classes/DSK.src/M000091.html +22 -0
  123. data/doc/classes/DSK.src/M000092.html +27 -0
  124. data/doc/classes/DSK.src/M000093.html +25 -0
  125. data/doc/classes/DSK.src/M000094.html +33 -0
  126. data/doc/classes/DSK.src/M000095.html +66 -0
  127. data/doc/classes/DSK.src/M000096.html +33 -0
  128. data/doc/classes/DSK.src/M000097.html +22 -0
  129. data/doc/classes/DSK.src/M000098.html +23 -0
  130. data/doc/classes/DSK.src/M000099.html +24 -0
  131. data/doc/classes/DSK.src/M000100.html +21 -0
  132. data/doc/classes/DSK.src/M000101.html +18 -0
  133. data/doc/classes/DSK.src/M000102.html +24 -0
  134. data/doc/classes/DSK.src/M000103.html +24 -0
  135. data/doc/classes/DSK.src/M000104.html +24 -0
  136. data/doc/classes/DSKFile.html +328 -0
  137. data/doc/classes/DSKFile.src/M000071.html +19 -0
  138. data/doc/classes/DSKFile.src/M000072.html +18 -0
  139. data/doc/classes/DSKFile.src/M000073.html +23 -0
  140. data/doc/classes/DSKFile.src/M000074.html +25 -0
  141. data/doc/classes/DSKFile.src/M000075.html +18 -0
  142. data/doc/classes/DSKFile.src/M000076.html +18 -0
  143. data/doc/classes/DSKFile.src/M000077.html +18 -0
  144. data/doc/classes/DSKFile.src/M000078.html +18 -0
  145. data/doc/classes/DSKFile.src/M000079.html +50 -0
  146. data/doc/classes/DSKTrackSector.html +199 -0
  147. data/doc/classes/DSKTrackSector.src/M000045.html +20 -0
  148. data/doc/classes/DSKTrackSector.src/M000046.html +18 -0
  149. data/doc/classes/DSKTrackSector.src/M000047.html +21 -0
  150. data/doc/classes/DSKTrackSector.src/M000049.html +20 -0
  151. data/doc/classes/DSKTrackSector.src/M000050.html +18 -0
  152. data/doc/classes/DSKTrackSector.src/M000051.html +21 -0
  153. data/doc/classes/DirectoryServlet.html +148 -0
  154. data/doc/classes/DirectoryServlet.src/M000041.html +20 -0
  155. data/doc/classes/DirectoryServlet.src/M000044.html +20 -0
  156. data/doc/classes/DumpUtilities.html +158 -0
  157. data/doc/classes/DumpUtilities.src/M000050.html +33 -0
  158. data/doc/classes/DumpUtilities.src/M000051.html +23 -0
  159. data/doc/classes/HGR.html +232 -0
  160. data/doc/classes/HGR.src/M000114.html +29 -0
  161. data/doc/classes/HGR.src/M000115.html +56 -0
  162. data/doc/classes/IntegerBasicFile.html +293 -0
  163. data/doc/classes/IntegerBasicFile.src/M000001.html +18 -0
  164. data/doc/classes/IntegerBasicFile.src/M000004.html +18 -0
  165. data/doc/classes/IntegerBasicFile.src/M000005.html +18 -0
  166. data/doc/classes/IntegerBasicFile.src/M000036.html +18 -0
  167. data/doc/classes/IntegerBasicFile.src/M000037.html +18 -0
  168. data/doc/classes/IntegerBasicFile.src/M000038.html +18 -0
  169. data/doc/classes/IntegerBasicFile.src/M000039.html +18 -0
  170. data/doc/classes/MBASICFile.html +202 -0
  171. data/doc/classes/MBASICFile.src/M000033.html +22 -0
  172. data/doc/classes/MBASICFile.src/M000034.html +30 -0
  173. data/doc/classes/MBASICFile.src/M000035.html +94 -0
  174. data/doc/classes/NADOLBinaryFile.html +184 -0
  175. data/doc/classes/NADOLBinaryFile.src/M000052.html +19 -0
  176. data/doc/classes/NADOLBinaryFile.src/M000053.html +18 -0
  177. data/doc/classes/NADOLBinaryFile.src/M000054.html +18 -0
  178. data/doc/classes/NADOLDisk.html +324 -0
  179. data/doc/classes/NADOLDisk.src/M000014.html +23 -0
  180. data/doc/classes/NADOLDisk.src/M000015.html +19 -0
  181. data/doc/classes/NADOLDisk.src/M000016.html +18 -0
  182. data/doc/classes/NADOLDisk.src/M000017.html +29 -0
  183. data/doc/classes/NADOLDisk.src/M000018.html +34 -0
  184. data/doc/classes/NADOLDisk.src/M000019.html +32 -0
  185. data/doc/classes/NADOLDisk.src/M000020.html +22 -0
  186. data/doc/classes/NADOLDisk.src/M000021.html +38 -0
  187. data/doc/classes/NADOLDisk.src/M000022.html +27 -0
  188. data/doc/classes/NADOLDisk.src/M000023.html +53 -0
  189. data/doc/classes/NADOLDisk.src/M000024.html +46 -0
  190. data/doc/classes/NADOLFile.html +189 -0
  191. data/doc/classes/NADOLFile.src/M000042.html +18 -0
  192. data/doc/classes/NADOLFile.src/M000043.html +18 -0
  193. data/doc/classes/NADOLFile.src/M000044.html +28 -0
  194. data/doc/classes/NADOLTokenisedFile.html +231 -0
  195. data/doc/classes/NADOLTokenisedFile.src/M000124.html +28 -0
  196. data/doc/classes/NADOLTokenisedFile.src/M000125.html +49 -0
  197. data/doc/classes/NADOLTokenisedFile.src/M000126.html +18 -0
  198. data/doc/classes/NADOLTokenisedFile.src/M000127.html +18 -0
  199. data/doc/classes/Nibbles.html +231 -0
  200. data/doc/classes/Nibbles.src/M000110.html +18 -0
  201. data/doc/classes/Nibbles.src/M000111.html +20 -0
  202. data/doc/classes/Nibbles.src/M000112.html +18 -0
  203. data/doc/classes/Nibbles.src/M000113.html +101 -0
  204. data/doc/classes/PNG.html +151 -0
  205. data/doc/classes/PNG.src/M000123.html +26 -0
  206. data/doc/classes/SCAsmFile.html +242 -0
  207. data/doc/classes/SCAsmFile.src/M000102.html +18 -0
  208. data/doc/classes/SCAsmFile.src/M000103.html +18 -0
  209. data/doc/classes/SCAsmFile.src/M000104.html +18 -0
  210. data/doc/classes/SCAsmFile.src/M000105.html +18 -0
  211. data/doc/classes/SCAsmFile.src/M000106.html +39 -0
  212. data/doc/classes/ShowFileServlet.html +148 -0
  213. data/doc/classes/ShowFileServlet.src/M000052.html +22 -0
  214. data/doc/classes/ShowFileServlet.src/M000059.html +22 -0
  215. data/doc/classes/ShowPNGServlet.html +148 -0
  216. data/doc/classes/ShowPNGServlet.src/M000101.html +26 -0
  217. data/doc/classes/ShowPNGServlet.src/M000105.html +26 -0
  218. data/doc/classes/ShowSectorServlet.html +148 -0
  219. data/doc/classes/ShowSectorServlet.src/M000040.html +22 -0
  220. data/doc/classes/ShowSectorServlet.src/M000043.html +22 -0
  221. data/doc/classes/TestCPMDisks.html +159 -0
  222. data/doc/classes/TestCPMDisks.src/M000037.html +19 -0
  223. data/doc/classes/TestCPMDisks.src/M000038.html +57 -0
  224. data/doc/classes/TestDOSDisks.html +279 -0
  225. data/doc/classes/TestDOSDisks.src/M000001.html +19 -0
  226. data/doc/classes/TestDOSDisks.src/M000002.html +19 -0
  227. data/doc/classes/TestDOSDisks.src/M000003.html +25 -0
  228. data/doc/classes/TestDOSDisks.src/M000014.html +26 -0
  229. data/doc/classes/TestDOSDisks.src/M000015.html +19 -0
  230. data/doc/classes/TestDOSDisks.src/M000016.html +62 -0
  231. data/doc/classes/TestDOSDisks.src/M000017.html +22 -0
  232. data/doc/classes/TestDOSDisks.src/M000018.html +20 -0
  233. data/doc/classes/TestDOSDisks.src/M000019.html +19 -0
  234. data/doc/classes/TestDOSDisks.src/M000020.html +25 -0
  235. data/doc/classes/TestDOSDisks.src/M000021.html +47 -0
  236. data/doc/classes/TestDOSDisks.src/M000022.html +28 -0
  237. data/doc/classes/TestDOSDisks.src/M000023.html +28 -0
  238. data/doc/classes/TestDOSDisks.src/M000025.html +26 -0
  239. data/doc/classes/TestDOSDisks.src/M000026.html +19 -0
  240. data/doc/classes/TestDOSDisks.src/M000027.html +62 -0
  241. data/doc/classes/TestDOSDisks.src/M000028.html +22 -0
  242. data/doc/classes/TestDOSDisks.src/M000029.html +20 -0
  243. data/doc/classes/TestDOSDisks.src/M000030.html +19 -0
  244. data/doc/classes/TestDOSDisks.src/M000031.html +25 -0
  245. data/doc/classes/TestDOSDisks.src/M000032.html +47 -0
  246. data/doc/classes/TestDOSDisks.src/M000033.html +28 -0
  247. data/doc/classes/TestDOSDisks.src/M000034.html +28 -0
  248. data/doc/classes/TestDisassembly.html +144 -0
  249. data/doc/classes/TestDisassembly.src/M000005.html +19 -0
  250. data/doc/classes/TestDisassembly.src/M000006.html +19 -0
  251. data/doc/classes/TestDisassembly.src/M000039.html +19 -0
  252. data/doc/classes/TestModifiedDOSDisks.html +193 -0
  253. data/doc/classes/TestModifiedDOSDisks.src/M000045.html +24 -0
  254. data/doc/classes/TestModifiedDOSDisks.src/M000046.html +27 -0
  255. data/doc/classes/TestModifiedDOSDisks.src/M000047.html +24 -0
  256. data/doc/classes/TestModifiedDOSDisks.src/M000048.html +27 -0
  257. data/doc/classes/TestNADOLDisks.html +193 -0
  258. data/doc/classes/TestNADOLDisks.src/M000106.html +22 -0
  259. data/doc/classes/TestNADOLDisks.src/M000107.html +72 -0
  260. data/doc/classes/TestNADOLDisks.src/M000108.html +22 -0
  261. data/doc/classes/TestNADOLDisks.src/M000109.html +72 -0
  262. data/doc/classes/TestNADOLDisks.src/M000121.html +22 -0
  263. data/doc/classes/TestNADOLDisks.src/M000122.html +73 -0
  264. data/doc/classes/TestPascalDisks.html +174 -0
  265. data/doc/classes/TestPascalDisks.src/M000040.html +28 -0
  266. data/doc/classes/TestPascalDisks.src/M000041.html +24 -0
  267. data/doc/classes/TestPascalDisks.src/M000042.html +27 -0
  268. data/doc/classes/TestProDOSDisks.html +253 -0
  269. data/doc/classes/TestProDOSDisks.src/M000114.html +28 -0
  270. data/doc/classes/TestProDOSDisks.src/M000115.html +28 -0
  271. data/doc/classes/TestProDOSDisks.src/M000116.html +41 -0
  272. data/doc/classes/TestProDOSDisks.src/M000117.html +28 -0
  273. data/doc/classes/TestProDOSDisks.src/M000118.html +28 -0
  274. data/doc/classes/TestProDOSDisks.src/M000119.html +28 -0
  275. data/doc/classes/TestProDOSDisks.src/M000120.html +41 -0
  276. data/doc/classes/TestProDOSDisks.src/M000121.html +28 -0
  277. data/doc/classes/TextFile.html +196 -0
  278. data/doc/classes/TextFile.src/M000019.html +18 -0
  279. data/doc/classes/TextFile.src/M000020.html +20 -0
  280. data/doc/classes/TextFile.src/M000024.html +18 -0
  281. data/doc/classes/TextFile.src/M000025.html +18 -0
  282. data/doc/classes/TextFile.src/M000026.html +18 -0
  283. data/doc/classes/TextFile.src/M000027.html +20 -0
  284. data/doc/classes/TextFile.src/M000128.html +18 -0
  285. data/doc/classes/TextFile.src/M000129.html +18 -0
  286. data/doc/classes/TextFile.src/M000130.html +18 -0
  287. data/doc/classes/TextFile.src/M000131.html +20 -0
  288. data/doc/created.rid +1 -0
  289. data/doc/dot/f_0.dot +14 -84
  290. data/doc/dot/f_0.png +0 -0
  291. data/doc/dot/f_1.dot +32 -0
  292. data/doc/dot/f_1.png +0 -0
  293. data/doc/dot/f_10.dot +32 -0
  294. data/doc/dot/f_10.png +0 -0
  295. data/doc/dot/f_11.dot +14 -0
  296. data/doc/dot/f_11.png +0 -0
  297. data/doc/dot/f_12.dot +84 -0
  298. data/doc/dot/f_12.png +0 -0
  299. data/doc/dot/f_15.dot +32 -0
  300. data/doc/dot/f_15.png +0 -0
  301. data/doc/dot/f_18.dot +32 -0
  302. data/doc/dot/f_18.png +0 -0
  303. data/doc/dot/f_2.dot +32 -0
  304. data/doc/dot/f_2.png +0 -0
  305. data/doc/dot/f_20.dot +32 -0
  306. data/doc/dot/f_20.png +0 -0
  307. data/doc/dot/f_3.dot +32 -0
  308. data/doc/dot/f_3.png +0 -0
  309. data/doc/dot/f_4.dot +32 -0
  310. data/doc/dot/f_4.png +0 -0
  311. data/doc/dot/f_5.dot +32 -0
  312. data/doc/dot/f_5.png +0 -0
  313. data/doc/dot/f_6.dot +32 -0
  314. data/doc/dot/f_6.png +0 -0
  315. data/doc/dot/f_7.dot +23 -0
  316. data/doc/dot/f_7.png +0 -0
  317. data/doc/dot/f_8.dot +23 -0
  318. data/doc/dot/f_8.png +0 -0
  319. data/doc/dot/f_9.dot +45 -0
  320. data/doc/dot/f_9.png +0 -0
  321. data/doc/files/bin/dskexplorer_rb.html +365 -0
  322. data/doc/files/bin/dskexplorer_rb.src/M000001.html +21 -0
  323. data/doc/files/bin/dskexplorer_rb.src/M000002.html +21 -0
  324. data/doc/files/bin/dskexplorer_rb.src/M000003.html +22 -0
  325. data/doc/files/bin/dskexplorer_rb.src/M000004.html +20 -0
  326. data/doc/files/bin/dskexplorer_rb.src/M000005.html +20 -0
  327. data/doc/files/bin/dskexplorer_rb.src/M000006.html +22 -0
  328. data/doc/files/bin/dskexplorer_rb.src/M000007.html +16 -0
  329. data/doc/files/bin/dskexplorer_rb.src/M000008.html +20 -0
  330. data/doc/files/bin/dskexplorer_rb.src/M000009.html +43 -0
  331. data/doc/files/bin/dskexplorer_rb.src/M000010.html +59 -0
  332. data/doc/files/bin/dskexplorer_rb.src/M000011.html +53 -0
  333. data/doc/files/bin/dskexplorer_rb.src/M000012.html +58 -0
  334. data/doc/files/bin/dskexplorer_rb.src/M000013.html +37 -0
  335. data/doc/files/bin/dsktool_rb.html +276 -0
  336. data/doc/files/bin/romdump_rb.html +189 -0
  337. data/doc/files/dsktool_web/dskexplorer_rb.html +112 -0
  338. data/doc/files/dsktool_web/dskexplorer_web_rb.html +112 -0
  339. data/doc/files/dsktool_web/index_rb.html +112 -0
  340. data/doc/files/lib/CPMDisk_rb.html +115 -0
  341. data/doc/files/lib/CPMFile_rb.html +117 -0
  342. data/doc/files/lib/D65_rb.html +114 -0
  343. data/doc/files/lib/DOSDisk_rb.html +115 -0
  344. data/doc/files/lib/DOSFile_rb.html +122 -0
  345. data/doc/files/lib/DSKFile_rb.html +114 -0
  346. data/doc/files/lib/DSK_rb.html +127 -0
  347. data/doc/files/lib/DumpUtilities_rb.html +107 -0
  348. data/doc/files/lib/HGR_rb.html +122 -0
  349. data/doc/files/lib/NADOLDisk_rb.html +115 -0
  350. data/doc/files/lib/NADOLFile_rb.html +120 -0
  351. data/doc/files/lib/Nibbles_rb.html +114 -0
  352. data/doc/files/test/tc_cpm_disks_rb.html +122 -0
  353. data/doc/files/test/tc_disassembly_rb.html +116 -0
  354. data/doc/files/test/tc_dos_disks_rb.html +122 -0
  355. data/doc/files/test/tc_modified_dos_disks_rb.html +122 -0
  356. data/doc/files/test/tc_nadol_disks_rb.html +122 -0
  357. data/doc/files/test/tc_prodos_disks_rb.html +122 -0
  358. data/doc/files/test/test_dos_disks_rb.html +109 -0
  359. data/doc/files/test/ts_test_all_rb.html +119 -0
  360. data/doc/files/test_bak/hgr_scanlines_rb.html +106 -0
  361. data/doc/files/test_bak/tc_disassembly_rb.html +123 -0
  362. data/doc/files/test_bak/tc_dos_disks_rb.html +122 -0
  363. data/doc/files/test_bak/tc_modified_dos_disks_rb.html +122 -0
  364. data/doc/files/test_bak/tc_nadol_disks_rb.html +122 -0
  365. data/doc/files/test_bak/tc_pascal_disks_rb.html +122 -0
  366. data/doc/files/test_bak/tc_prodos_disks_rb.html +122 -0
  367. data/doc/files/test_bak/ts_test_all_rb.html +118 -0
  368. data/doc/fr_class_index.html +46 -0
  369. data/doc/fr_file_index.html +47 -0
  370. data/doc/fr_method_index.html +147 -0
  371. data/doc/index.html +24 -0
  372. data/doc/rdoc-style.css +208 -0
  373. data/lib/CPMDisk.rb +194 -0
  374. data/lib/CPMFile.rb +344 -0
  375. data/lib/DOSDisk.rb +16 -12
  376. data/lib/DOSDisk.rb~ +201 -0
  377. data/lib/DOSFile.rb~ +402 -0
  378. data/lib/DSK.rb +99 -49
  379. data/lib/DSK.rb~ +226 -0
  380. data/lib/DSKFile.rb +9 -0
  381. data/lib/DSKFile.rb~ +137 -0
  382. data/lib/HGR.rb~ +157 -0
  383. data/lib/NADOLDisk.rb~ +104 -0
  384. data/lib/NADOLFile.rb~ +225 -0
  385. data/lib/Nibbles.rb +210 -0
  386. data/lib/PascalDisk.rb~ +120 -0
  387. data/lib/PascalFile.rb~ +62 -0
  388. data/lib/ProDOSDisk.rb~ +197 -0
  389. data/lib/ProDOSFile.rb~ +160 -0
  390. data/test/1.txt +267 -0
  391. data/test/CPM1.DSK +0 -0
  392. data/test/CPM1.PO +0 -0
  393. data/test/PIC.ZO +0 -0
  394. data/test/STARCPM.DSK +0 -0
  395. data/test/SWRDTH1.NIB +1 -0
  396. data/test/blah.png +0 -0
  397. data/test/blah2.png +0 -0
  398. data/test/blank.nib +1 -0
  399. data/test/build_hgr_table.rb +28 -0
  400. data/test/build_hgr_table.rb~ +28 -0
  401. data/test/cpm_write_test.dsk +0 -0
  402. data/test/ed.txt +0 -0
  403. data/test/p.html +15030 -0
  404. data/test/pic.rb +19 -0
  405. data/test/pic.rb~ +18 -0
  406. data/test/sword.dsk +0 -0
  407. data/test/tc_cpm_disks.rb +59 -0
  408. data/test/tc_dos_disks.rb~ +107 -0
  409. data/test/tc_modified_dos_disks.rb +33 -0
  410. data/test/tc_nadol_disks.rb +0 -1
  411. data/test/tc_nadol_disks.rb~ +42 -0
  412. data/test/tc_pascal_disks.rb~ +48 -0
  413. data/test/tc_prodos_disks.rb~ +78 -0
  414. data/test/ts_test_all.rb +6 -4
  415. data/test/ts_test_all.rb~ +7 -0
  416. data/test/x.txt +16 -0
  417. metadata +485 -35
data/test/pic.rb ADDED
@@ -0,0 +1,19 @@
1
+ #Apple II Hi-Res Graphics routines
2
+ lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
3
+ $:.unshift(lib_path) unless $:.include?(lib_path)
4
+
5
+ require 'DSK'
6
+ dsk=DSK.read('adventure_teacher_4.dsk.gz')
7
+ picture_file=dsk.files['ASTONISHING !']
8
+ f=File.open('blah.png','wb')
9
+ f<<picture_file.to_png(:colour)
10
+ f.close
11
+ `firefox blah.png`
12
+
13
+ #dsk=DSK.read('operation_frog1.dsk.gz')
14
+ #picture_file=dsk.files['APG']
15
+ #f=File.open('blah2.png','wb')
16
+ #f<<picture_file.to_png(:colour)
17
+ #f.close
18
+ #`firefox blah2.png`
19
+
data/test/pic.rb~ ADDED
@@ -0,0 +1,18 @@
1
+ #Apple II Hi-Res Graphics routines
2
+ lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
3
+ $:.unshift(lib_path) unless $:.include?(lib_path)
4
+
5
+ require 'DSK'
6
+ dsk=DSK.read('adventure_teacher_4.dsk.gz')
7
+ picture_file=dsk.files['ASTONISHING !']
8
+ f=File.open('blah.png','wb')
9
+ f<<picture_file.to_png(:colour)
10
+ f.close
11
+ `firefox blah.png`
12
+ dsk=DSK.read('operation_frog1.dsk.gz')
13
+ picture_file=dsk.files['APG']
14
+ f=File.open('blah2.png','wb')
15
+ f<<picture_file.to_png(:colour)
16
+ f.close
17
+ `firefox blah2.png`
18
+
data/test/sword.dsk ADDED
Binary file
@@ -0,0 +1,59 @@
1
+ #make sure the relevant folder with our libraries is in the require path
2
+ lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
3
+ $:.unshift(lib_path) unless $:.include?(lib_path)
4
+
5
+ require 'test/unit'
6
+ require 'DSK'
7
+
8
+ class TestCPMDisks <Test::Unit::TestCase
9
+
10
+
11
+ def test_empty_dsk
12
+ dsk=DSK.new()
13
+ assert(dsk.file_system!=:cpm,"empty DSK should not be CPM format")
14
+ end
15
+
16
+ def test_simple_cpm_dsk
17
+ dskname=File.dirname(__FILE__)+"//CPM1.DSK"
18
+ dsk=DSK.read(dskname)
19
+ assert_equal(:cpm,dsk.file_system,"#{dskname} should be CPM format")
20
+
21
+ dskname=File.dirname(__FILE__)+"//CPM1.PO"
22
+ dsk=DSK.read(dskname)
23
+ assert_equal(:cpm,dsk.file_system,"#{dskname} should be CPM format")
24
+
25
+ dskname=File.dirname(__FILE__)+"//STARCPM.DSK"
26
+ dsk=DSK.read(dskname)
27
+ assert_equal(:cpm,dsk.file_system,"#{dskname} should be CPM format")
28
+
29
+ assert(dsk.files.length>0,"#{dskname} should have at least one file")
30
+ doc_file=dsk.files["STAR.DOC"]
31
+ assert(doc_file!=nil,"#{dskname} should have a file called STAR.DOC")
32
+ assert_equal(256,dsk.files["RDTEST.COM"].to_s.length, "RDTEST.COM should be 256 bytes long")
33
+
34
+ test_file=CPMFile.new("TESTFILE.TXT","Is this mike on?")
35
+ assert(test_file!=dsk.files["STAR.DOC"],"comparison between files doesn't have false positive")
36
+ dsk.add_file(test_file)
37
+ doc_file=dsk.files["STAR.DOC"]
38
+ assert(doc_file!=nil,"#{dskname} should still have a file called STAR.DOC")
39
+ assert(dsk.files[test_file.full_filename]!=nil,"#{dskname} should have a file called #{test_file.full_filename}")
40
+ assert_equal(test_file,dsk.files[test_file.full_filename])
41
+
42
+ test_file=CPMFile.new("BIGFILE.TXT","Is this mike on?"+"x"*38000)
43
+ dsk.add_file(test_file)
44
+ dsk.save_as("cpm_write_test.dsk") #save for later examination
45
+ assert(dsk.files[test_file.full_filename]!=nil,"#{dskname} should have a file called #{test_file.full_filename}")
46
+ assert_equal(test_file.contents.length,dsk.files[test_file.full_filename].contents.length)
47
+
48
+ test_file=CPMFile.new("NO_TYPE","file has no extension")
49
+ dsk.add_file(test_file)
50
+ assert(dsk.files["NO_TYPE"]!=nil,"#{dskname} should have a file called NO_TYPE")
51
+
52
+ #test we can add the same file multiple times without raising an exception
53
+ 100.times do
54
+ dsk.add_file(test_file)
55
+ end
56
+
57
+ end
58
+
59
+ end
@@ -0,0 +1,107 @@
1
+ #make sure the relevant folder with our libraries is in the require path
2
+ lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
3
+ $:.unshift(lib_path) unless $:.include?(lib_path)
4
+
5
+ require 'test/unit'
6
+ require 'DSK'
7
+
8
+ class TestDOSDisks <Test::Unit::TestCase
9
+
10
+
11
+ def test_file_names
12
+ assert(DSK.is_dsk_file?("file.dsk"))
13
+ assert(DSK.is_dsk_file?("file.DSK"))
14
+ assert(DSK.is_dsk_file?("file.dsk.gz"))
15
+ assert(DSK.is_dsk_file?("file.po"))
16
+ assert(DSK.is_dsk_file?("file.po.gz"))
17
+ assert(!DSK.is_dsk_file?("file.dsk.zip"))
18
+
19
+ end
20
+ def test_bad_dsks
21
+ assert_raise(RuntimeError,"short file should throw an error") {dsk=DSK.new("0"*100)}
22
+ assert_raise(Errno::ENOENT,"non existant file should throw an error") {dsk=DSK.read("NonExistantFileName.not")}
23
+ end
24
+
25
+
26
+ def test_dump_sector
27
+ dskname=File.dirname(__FILE__)+"//AAL_1.DSK"
28
+ dsk=DSK.read(dskname)
29
+ assert_equal(dsk.dump_sector(0,0).length,dsk.dump_sector(0,2).length,"sector dumps should be consistent length")
30
+ end
31
+
32
+ def test_empty_dsk
33
+ dsk=DSK.new()
34
+ assert(dsk.file_system!=:dos,"empty DSK should not be DOS 3.3 format")
35
+ end
36
+
37
+ def test_open_url_to_compressed_dsk
38
+ dskname="http://www.apple2.org.za/mirrors/ftp.apple.asimov.net/images/games/adventure/vaults_of_zurich.dsk.gz"
39
+ dsk=DSK.read(dskname)
40
+ assert_equal(:dos,dsk.file_system,"#{dskname} should be DOS 3.3 format")
41
+ assert(dsk.files.length>0,"#{dskname} should have at least one file")
42
+
43
+ hello_file=dsk.files["HELLO"]
44
+ assert(hello_file!=nil,"#{dskname} should have a file called HELLO")
45
+ assert(hello_file.instance_of?(AppleSoftFile),"HELLO should be an AppleSoft file")
46
+ end
47
+
48
+ def test_simple_dos_dsk
49
+ dskname=File.dirname(__FILE__)+"//dos33_with_adt.dsk"
50
+ dsk=DSK.read(dskname)
51
+ assert_equal(:dos,dsk.file_system,"#{dskname} should be DOS 3.3 format")
52
+ assert(dsk.files.length>0,"#{dskname} should have at least one file")
53
+
54
+ hello_file=dsk.files["HELLO"]
55
+ assert(hello_file!=nil,"#{dskname} should have a file called HELLO")
56
+ assert(hello_file.instance_of?(AppleSoftFile),"HELLO should be an AppleSoft file")
57
+ assert(hello_file.to_s.length>0,"HELLO should have non-zero length")
58
+ assert(hello_file.to_s[0..5]=="10 REM","HELLO should start '10 REM'")
59
+
60
+ binary_file=dsk.files["MUFFIN"]
61
+ assert(binary_file!=nil,"#{dskname} should have a file called MUFFIN")
62
+ assert(binary_file.instance_of?(BinaryFile),"HELLO should be an Binary file")
63
+ assert(binary_file.to_s.length>0,"MUFFIN should have non-zero length")
64
+ assert(binary_file.disassembly.length>0,"MUFFIN disassembly should have non-zero length")
65
+ assert(binary_file.disassembly[0..4]=="0803:","MUFFIN disassembly should start at $803")
66
+ assert(!binary_file.can_be_picture?,"MUFFIN should NOT be viewable as a picture")
67
+
68
+
69
+ integer_file=dsk.files["APPLESOFT"]
70
+ assert(integer_file!=nil,"#{dskname} should have a file called APPLESOFT")
71
+ assert(integer_file.instance_of?(IntegerBasicFile),"HELLO should be an IntegetBasic file")
72
+ assert(integer_file.to_s.length>0,"APPLESOFT should have non-zero length")
73
+ assert(integer_file.to_s[0..5]=="10 REM","APPLESOFT should start '10 REM'")
74
+ assert(!integer_file.can_be_picture?,"APPLESOFT should NOT be viewable as a picture")
75
+
76
+ end
77
+
78
+ def test_scasm_file
79
+ dskname=File.dirname(__FILE__)+"//AAL_1.DSK"
80
+ dsk=DSK.read(dskname)
81
+ assert_equal(:dos,dsk.file_system,"#{dskname} should be DOS 3.3 format")
82
+ assert(dsk.files.length>0,"#{dskname} should have at least one file")
83
+ asm_file=dsk.files["MORSE CODE"]
84
+ assert(asm_file!=nil,"#{dskname} should have a file called MORSE CODE")
85
+ assert(asm_file.instance_of?(SCAsmFile),"MORSE CODE should be an SCasm file")
86
+ assert(!asm_file.can_be_picture?,"MORSE CODE should NOT be viewable as a picture")
87
+ assert(asm_file.to_s.length>0,"MORSE CODE should have non-zero length")
88
+ assert(!(asm_file.to_s=~/930\W*.LIST OFF/).nil?,"MORSE CODE should start '930 .LIST OFF'")
89
+
90
+ end
91
+
92
+ def test_40_track_file
93
+ dskname=File.dirname(__FILE__)+"//white_03b.dsk"
94
+ dsk=DSK.read(dskname)
95
+ assert_equal(:dos,dsk.file_system,"#{dskname} should be DOS 3.3 format")
96
+ assert(dsk.files.length>0,"#{dskname} should have at least one file")
97
+ assert_equal(40,dsk.track_count,"#{dskname} should have 40 tracks")
98
+
99
+ pic_file=dsk.files["RIP.PIC"]
100
+ assert(pic_file!=nil,"#{dskname} should have a file called RIP.PIC")
101
+ assert(pic_file.instance_of?(BinaryFile),"RIP.PIC should be a binary file")
102
+ # assert(pic_file.can_be_picture?,"RIP.PIC should be viewable as a picture")
103
+ assert(pic_file.can_be_picture?,"RIP.PIC should be viewable as a picture")
104
+ assert_equal("\211PNG\r\n\032\n",pic_file.to_png[0..7])
105
+ end
106
+
107
+ end
@@ -0,0 +1,33 @@
1
+ #make sure the relevant folder with our libraries is in the require path
2
+ lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
3
+ $:.unshift(lib_path) unless $:.include?(lib_path)
4
+
5
+ require 'test/unit'
6
+ require 'DSK'
7
+
8
+ class TestModifiedDOSDisks <Test::Unit::TestCase
9
+
10
+ def test_dsk_image
11
+ dskname=File.dirname(__FILE__)+"//sword.dsk"
12
+ dsk=DSK.read(dskname)
13
+ assert_equal(:modified_dos,dsk.file_system,"#{dskname} should have modified DOS file system")
14
+ assert_equal(0x22,dsk.vtoc_track_no, "{#dskname} should have VTOC at 0x22")
15
+ assert(dsk.files.length>0,"#{dskname} should have at least one file")
16
+ pic_file=dsk.files["STORDTHRUST.PIC"]
17
+ assert(pic_file.can_be_picture?)
18
+ end
19
+
20
+ def test_nib_image
21
+ dskname=File.dirname(__FILE__)+"//SWRDTH1.NIB"
22
+ dsk=DSK.read(dskname)
23
+ assert_equal(:modified_dos,dsk.file_system,"#{dskname} should have modified DOS file system")
24
+ assert_equal(0x22,dsk.vtoc_track_no, "{#dskname} should have VTOC at 0x22")
25
+ assert(dsk.files.length>0,"#{dskname} should have at least one file")
26
+ # puts dsk.dump_catalog
27
+ # puts dsk.hex_dump
28
+ pic_file=dsk.files["SWORDTHRUST.PIC"]
29
+ assert(!pic_file.nil?,"SWORDTHRUST.PIC filename should be correct")
30
+ assert(pic_file.can_be_picture?)
31
+ end
32
+
33
+ end
@@ -62,7 +62,6 @@ class TestNADOLDisks <Test::Unit::TestCase
62
62
  #make sure we can overwrite the same file (which also tests we are freeing sectors when files are deleted)
63
63
  for i in 0..250
64
64
  t=dsk.make_file("MULTICOPY","TEST #{i} ")
65
- puts "iteratio #{i}"
66
65
  dsk.add_file(t)
67
66
  assert_equal(t,dsk.files[t.filename])
68
67
  end
@@ -0,0 +1,42 @@
1
+ #make sure the relevant folder with our libraries is in the require path
2
+ lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
3
+ $:.unshift(lib_path) unless $:.include?(lib_path)
4
+
5
+ require 'test/unit'
6
+ require 'DSK'
7
+
8
+ class TestNADOLDisks <Test::Unit::TestCase
9
+
10
+
11
+ def test_empty_dsk
12
+ dsk=DSK.new()
13
+ assert(dsk.file_system!=:nadol,"empty DSK should not be NADOL format")
14
+ end
15
+
16
+ def test_simple_nadol_dsk
17
+ dskname=File.dirname(__FILE__)+"//nadol.dsk"
18
+ dsk=DSK.read(dskname)
19
+ assert_equal(:nadol,dsk.file_system,"#{dskname} should be NADOL format")
20
+ assert(dsk.files.length>0,"#{dskname} should have at least one file")
21
+ nadol_file=dsk.files["NADOL"]
22
+ assert(nadol_file!=nil,"#{dskname} should have a file called NADOL")
23
+ assert(nadol_file.to_s.length==16128,"NADOL should be 16128 bytes long")
24
+ assert(nadol_file.respond_to?(:disassembly),"NADOL can be disassembled")
25
+ assert(!NADOLTokenisedFile.can_be_nadol_tokenised_file?(nadol_file.contents),"NADOL should not be NADOL tokenised file")
26
+ brickout_file=dsk.files["BRICKOUT"]
27
+ assert(brickout_file!=nil,"#{dskname} should have a file called BRICKOUT")
28
+ assert(NADOLTokenisedFile.can_be_nadol_tokenised_file?(dsk.files["BRICKOUT"].contents),"BRICKOUT should be NADOL tokenised file")
29
+ assert(nadol_file.respond_to?(:disassembly),"BRICKOUT can't be disassembled")
30
+ s=brickout_file.to_s
31
+ assert(!brickout_file.can_be_picture?,"BRICK-OUT should NOT be viewable as a picture")
32
+ assert_equal("; LORES BRICK-OUT GAME",s[0..21],"BRICK-OUT source should detokenise")
33
+ assert_equal("; @ \"NAIII\"",dsk.files["NAIII"].to_s[0..10],"NAIII source should detokenise")
34
+ pic_file=dsk.files["RIP.PIC"]
35
+ assert(pic_file!=nil,"#{dskname} should have a file called RIP.PIC")
36
+ assert(pic_file.instance_of?(BinaryFile),"RIP.PIC should be a binary file")
37
+ assert(pic_file.can_be_picture?,"RIP.PIC should be viewable as a picture")
38
+ assert_equal("\211PNG\r\n\032\n",pic_file.to_png[0..7])
39
+
40
+ end
41
+
42
+ end
@@ -0,0 +1,48 @@
1
+ #make sure the relevant folder with our libraries is in the require path
2
+ lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
3
+ $:.unshift(lib_path) unless $:.include?(lib_path)
4
+
5
+ require 'test/unit'
6
+ require 'DSK'
7
+
8
+ class TestPascalDisks <Test::Unit::TestCase
9
+
10
+ def test_other_dsk_types
11
+ dsk=DSK.new()
12
+ assert(dsk.file_system!=:pascal,"empty DSK should not be Pascal format")
13
+
14
+ dskname=File.dirname(__FILE__)+"//dos33_with_adt.dsk"
15
+ dsk=DSK.read(dskname)
16
+ assert(dsk.file_system!=:pascal,"#{dskname} should not be Pascal format")
17
+
18
+ dskname=File.dirname(__FILE__)+"//nadol.dsk"
19
+ dsk=DSK.read(dskname)
20
+ assert(dsk.file_system!=:pascal,"#{dskname} should not be Pascal format")
21
+
22
+ end
23
+ def test_simple_pascal_disk
24
+
25
+ dskname=File.dirname(__FILE__)+"//Algebra Mentor (19xx)(John C. Miller)(Disk 1 of 7 Side A)(Student Disk 1).dsk.gz"
26
+ dsk=DSK.read(dskname)
27
+ assert_equal(:pascal,dsk.file_system,"#{dskname} should have Pascal file system")
28
+ assert_equal("A1011",dsk.volume_name)
29
+
30
+ assert(dsk.files.length>0,"#{dskname} should have at least one file")
31
+ end
32
+
33
+ def test_pascal_foto_disk
34
+
35
+ dskname=File.dirname(__FILE__)+"//camps.dsk.gz"
36
+ dsk=DSK.read(dskname)
37
+ assert_equal(:pascal,dsk.file_system,"#{dskname} should have Pascal file system")
38
+ assert_equal("DIARRHE",dsk.volume_name)
39
+ assert(dsk.files.length>0,"#{dskname} should have at least one file")
40
+ non_foto_file=dsk.files["SYSTEM.MISCINFO"]
41
+ assert(!non_foto_file.can_be_picture?)
42
+ foto_file=dsk.files["CAMPS.FOTO"]
43
+ assert(foto_file.can_be_picture?)
44
+
45
+ end
46
+
47
+
48
+ end
@@ -0,0 +1,78 @@
1
+ #make sure the relevant folder with our libraries is in the require path
2
+ lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
3
+ $:.unshift(lib_path) unless $:.include?(lib_path)
4
+
5
+ require 'test/unit'
6
+ require 'DSK'
7
+
8
+ class TestProDOSDisks <Test::Unit::TestCase
9
+
10
+ def test_other_dsk_types
11
+ dsk=DSK.new()
12
+ assert(dsk.file_system!=:prodos,"empty DSK should not be PRODOS format")
13
+
14
+ dskname=File.dirname(__FILE__)+"//dos33_with_adt.dsk"
15
+ dsk=DSK.read(dskname)
16
+ assert(dsk.file_system!=:prodos,"#{dskname} should not be ProDOS format")
17
+
18
+ dskname=File.dirname(__FILE__)+"//nadol.dsk"
19
+ dsk=DSK.read(dskname)
20
+ assert(dsk.file_system!=:prodos,"#{dskname} should not be ProDOS format")
21
+
22
+ end
23
+ def test_simple_prodos_disk
24
+
25
+ dskname=File.dirname(__FILE__)+"//dosmaster.po"
26
+ dsk=DSK.read(dskname)
27
+ assert_equal(:prodos,dsk.file_system,"#{dskname} should have ProDOS file system")
28
+ assert_equal(:physical,dsk.sector_order,"#{dskname} should have ProDOS order")
29
+ assert_equal("NEW.DISK",dsk.volume_name)
30
+
31
+ assert(dsk.files.length>0,"#{dskname} should have at least one file")
32
+ bas_file=dsk.files["STARTUP"]
33
+ assert(bas_file!=nil,"#{dskname} should have a file called STARTUP")
34
+ assert_equal("10 PRINT CHR$ (4)\"PR#3\"",bas_file.to_s[0..22],"STARTUP should detokenise")
35
+ end
36
+
37
+ def test_dos_interleave_prodos_disks
38
+
39
+ dskname=File.dirname(__FILE__)+"//ADTPRO-1.0.1.DSK"
40
+ dsk=DSK.read(dskname)
41
+ assert_equal(:prodos,dsk.file_system,"#{dskname} should have ProDOS file system")
42
+ assert_equal(:prodos_from_dos,dsk.sector_order,"#{dskname} should have DOS sector order")
43
+ assert_equal("ADTPRO.1.0.1",dsk.volume_name)
44
+
45
+ assert(dsk.files.length>0,"#{dskname} should have at least one file")
46
+ bas_file=dsk.files["STARTUP"]
47
+ assert(bas_file!=nil,"#{dskname} should have a file called STARTUP")
48
+ assert_equal("10 TEXT : NORMAL : HOME",bas_file.to_s[0..22],"STARTUP should detokenise")
49
+
50
+ dskname=File.dirname(__FILE__)+"//Apple Works V5.0 (1993)(Beagle Bros)(Disks 5 of 6).dsk.gz"
51
+ dsk=DSK.read(dskname)
52
+ assert_equal(:prodos,dsk.file_system,"#{dskname} should have ProDOS file system")
53
+ assert_equal(:prodos_from_dos,dsk.sector_order,"#{dskname} should have DOS sector order")
54
+ assert_equal("MOVE13",dsk.volume_name)
55
+
56
+ assert(dsk.files.length>0,"#{dskname} should have at least one file")
57
+ # puts dsk.dump_catalog
58
+ awp_file=dsk.files["AW.INITS/NARNIA.KNAVES"]
59
+ assert(bas_file!=nil,"#{dskname} should have a file called AW.INITS/NARNIA.KNAVES")
60
+ assert_equal("This bonus screen blanker",awp_file.to_s[0..24])
61
+
62
+ end
63
+
64
+ def test_tree_structures
65
+ dskname=File.dirname(__FILE__)+"//Geos (1988)(Berkeley Softworks)(Disk 1 of 4 Side A).dsk.gz"
66
+ dsk=DSK.read(dskname)
67
+ assert_equal(:prodos,dsk.file_system,"#{dskname} should have ProDOS file system")
68
+ assert_equal(:prodos_from_dos,dsk.sector_order,"#{dskname} should have DOS sector order")
69
+ assert_equal("GEOS.BOOT",dsk.volume_name)
70
+
71
+ assert(dsk.files.length>0,"#{dskname} should have at least one file")
72
+ tree_file=dsk.files["SYSTEM/Mouse"]
73
+ assert(tree_file!=nil,"#{dskname} should have a file called SYSTEM/Mouse")
74
+ assert_equal(100,tree_file.contents.length,"SYSTEM/Mouse should be XX bytes long")
75
+
76
+ end
77
+
78
+ end
data/test/ts_test_all.rb CHANGED
@@ -1,8 +1,10 @@
1
- $:.unshift(File.dirname(__FILE__)) unless
2
- $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
1
+ $:.unshift(File.dirname(__FILE__)) unless $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
2
 
3
+ require 'tc_cpm_disks'
4
4
  require 'tc_dos_disks'
5
- require 'tc_prodos_disks'
5
+ require 'tc_prodos_disks'
6
+
6
7
  require 'tc_disassembly'
7
8
  require 'tc_nadol_disks'
8
- require 'tc_pascal_disks'
9
+ require 'tc_pascal_disks'
10
+ require 'tc_modified_dos_disks'
@@ -0,0 +1,7 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ require 'tc_dos_disks'
5
+ require 'tc_prodos_disks'
6
+ require 'tc_nadol_disks'
7
+