dsktool 0.1.6 → 0.2.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 (367) hide show
  1. data/bin/dskexplorer.rb +213 -147
  2. data/bin/dsktool.rb +7 -7
  3. data/doc/classes/AppleSoftFile.html +15 -15
  4. data/doc/classes/AppleSoftFile.src/M000011.html +18 -0
  5. data/doc/classes/AppleSoftFile.src/M000012.html +18 -0
  6. data/doc/classes/AppleSoftFile.src/M000013.html +18 -0
  7. data/doc/classes/AppleSoftFile.src/M000014.html +18 -0
  8. data/doc/classes/AppleSoftFile.src/M000020.html +18 -0
  9. data/doc/classes/AppleSoftFile.src/M000021.html +18 -0
  10. data/doc/classes/AppleSoftFile.src/M000022.html +18 -0
  11. data/doc/classes/AppleSoftFile.src/M000026.html +18 -0
  12. data/doc/classes/AppleSoftFile.src/M000027.html +18 -0
  13. data/doc/classes/AppleSoftFile.src/M000028.html +18 -0
  14. data/doc/classes/AppleSoftFile.src/M000032.html +18 -0
  15. data/doc/classes/AppleSoftFile.src/M000033.html +18 -0
  16. data/doc/classes/AppleSoftFile.src/M000034.html +18 -0
  17. data/doc/classes/AppleSoftFile.src/M000035.html +18 -0
  18. data/doc/classes/AppleSoftFile.src/M000036.html +18 -0
  19. data/doc/classes/AppleSoftFile.src/M000038.html +18 -0
  20. data/doc/classes/AppleSoftFile.src/M000039.html +18 -0
  21. data/doc/classes/AppleSoftFile.src/M000040.html +18 -0
  22. data/doc/classes/BinaryFile.html +15 -15
  23. data/doc/classes/BinaryFile.src/M000023.html +18 -0
  24. data/doc/classes/BinaryFile.src/M000024.html +18 -0
  25. data/doc/classes/BinaryFile.src/M000025.html +18 -0
  26. data/doc/classes/BinaryFile.src/M000026.html +19 -0
  27. data/doc/classes/BinaryFile.src/M000029.html +18 -0
  28. data/doc/classes/BinaryFile.src/M000030.html +18 -0
  29. data/doc/classes/BinaryFile.src/M000031.html +19 -0
  30. data/doc/classes/BinaryFile.src/M000039.html +18 -0
  31. data/doc/classes/BinaryFile.src/M000040.html +18 -0
  32. data/doc/classes/BinaryFile.src/M000041.html +19 -0
  33. data/doc/classes/BinaryFile.src/M000045.html +18 -0
  34. data/doc/classes/BinaryFile.src/M000046.html +18 -0
  35. data/doc/classes/BinaryFile.src/M000047.html +19 -0
  36. data/doc/classes/BinaryFile.src/M000052.html +18 -0
  37. data/doc/classes/BinaryFile.src/M000053.html +18 -0
  38. data/doc/classes/BinaryFile.src/M000054.html +18 -0
  39. data/doc/classes/BinaryFile.src/M000055.html +18 -0
  40. data/doc/classes/BinaryFile.src/M000056.html +19 -0
  41. data/doc/classes/BinaryFile.src/M000059.html +18 -0
  42. data/doc/classes/BinaryFile.src/M000060.html +18 -0
  43. data/doc/classes/BinaryFile.src/M000061.html +19 -0
  44. data/doc/classes/CatalogServlet.html +147 -0
  45. data/doc/classes/CatalogServlet.src/M000015.html +20 -0
  46. data/doc/classes/CatalogServlet.src/M000021.html +20 -0
  47. data/doc/classes/CatalogServlet.src/M000024.html +20 -0
  48. data/doc/classes/CatalogServlet.src/M000027.html +20 -0
  49. data/doc/classes/D65.html +10 -10
  50. data/doc/classes/D65.src/M000009.html +18 -0
  51. data/doc/classes/D65.src/M000010.html +18 -0
  52. data/doc/classes/D65.src/M000011.html +64 -0
  53. data/doc/classes/D65.src/M000018.html +18 -0
  54. data/doc/classes/D65.src/M000019.html +64 -0
  55. data/doc/classes/D65.src/M000024.html +18 -0
  56. data/doc/classes/D65.src/M000025.html +64 -0
  57. data/doc/classes/D65.src/M000030.html +18 -0
  58. data/doc/classes/D65.src/M000031.html +18 -0
  59. data/doc/classes/D65.src/M000032.html +64 -0
  60. data/doc/classes/D65.src/M000035.html +18 -0
  61. data/doc/classes/D65.src/M000036.html +64 -0
  62. data/doc/classes/DOSDisk.html +15 -15
  63. data/doc/classes/DOSDisk.src/M000014.html +20 -0
  64. data/doc/classes/DOSDisk.src/M000015.html +20 -0
  65. data/doc/classes/DOSDisk.src/M000016.html +19 -0
  66. data/doc/classes/DOSDisk.src/M000017.html +76 -0
  67. data/doc/classes/DOSDisk.src/M000023.html +20 -0
  68. data/doc/classes/DOSDisk.src/M000024.html +19 -0
  69. data/doc/classes/DOSDisk.src/M000025.html +76 -0
  70. data/doc/classes/DOSDisk.src/M000029.html +20 -0
  71. data/doc/classes/DOSDisk.src/M000030.html +19 -0
  72. data/doc/classes/DOSDisk.src/M000031.html +76 -0
  73. data/doc/classes/DOSDisk.src/M000035.html +20 -0
  74. data/doc/classes/DOSDisk.src/M000036.html +20 -0
  75. data/doc/classes/DOSDisk.src/M000037.html +20 -0
  76. data/doc/classes/DOSDisk.src/M000038.html +19 -0
  77. data/doc/classes/DOSDisk.src/M000039.html +76 -0
  78. data/doc/classes/DOSDisk.src/M000041.html +20 -0
  79. data/doc/classes/DOSDisk.src/M000042.html +19 -0
  80. data/doc/classes/DOSDisk.src/M000043.html +76 -0
  81. data/doc/classes/DOSFile.html +20 -20
  82. data/doc/classes/DOSFile.src/M000026.html +22 -0
  83. data/doc/classes/DOSFile.src/M000027.html +22 -0
  84. data/doc/classes/DOSFile.src/M000028.html +17 -0
  85. data/doc/classes/DOSFile.src/M000029.html +18 -0
  86. data/doc/classes/DOSFile.src/M000032.html +22 -0
  87. data/doc/classes/DOSFile.src/M000033.html +17 -0
  88. data/doc/classes/DOSFile.src/M000034.html +18 -0
  89. data/doc/classes/DOSFile.src/M000042.html +22 -0
  90. data/doc/classes/DOSFile.src/M000043.html +18 -0
  91. data/doc/classes/DOSFile.src/M000044.html +18 -0
  92. data/doc/classes/DOSFile.src/M000048.html +22 -0
  93. data/doc/classes/DOSFile.src/M000049.html +18 -0
  94. data/doc/classes/DOSFile.src/M000050.html +18 -0
  95. data/doc/classes/DOSFile.src/M000051.html +31 -0
  96. data/doc/classes/DOSFile.src/M000057.html +22 -0
  97. data/doc/classes/DOSFile.src/M000058.html +22 -0
  98. data/doc/classes/DOSFile.src/M000059.html +22 -0
  99. data/doc/classes/DOSFile.src/M000060.html +18 -0
  100. data/doc/classes/DOSFile.src/M000061.html +18 -0
  101. data/doc/classes/DOSFile.src/M000062.html +31 -0
  102. data/doc/classes/DOSFile.src/M000064.html +22 -0
  103. data/doc/classes/DOSFile.src/M000065.html +18 -0
  104. data/doc/classes/DOSFile.src/M000066.html +18 -0
  105. data/doc/classes/DOSFile.src/M000067.html +31 -0
  106. data/doc/classes/DSK.html +75 -42
  107. data/doc/classes/DSK.src/M000021.html +19 -0
  108. data/doc/classes/DSK.src/M000022.html +18 -0
  109. data/doc/classes/DSK.src/M000023.html +40 -0
  110. data/doc/classes/DSK.src/M000024.html +23 -0
  111. data/doc/classes/DSK.src/M000027.html +18 -0
  112. data/doc/classes/DSK.src/M000028.html +22 -0
  113. data/doc/classes/DSK.src/M000029.html +22 -0
  114. data/doc/classes/DSK.src/M000030.html +34 -0
  115. data/doc/classes/DSK.src/M000031.html +19 -0
  116. data/doc/classes/DSK.src/M000032.html +18 -0
  117. data/doc/classes/DSK.src/M000033.html +18 -0
  118. data/doc/classes/DSK.src/M000034.html +22 -0
  119. data/doc/classes/DSK.src/M000035.html +22 -0
  120. data/doc/classes/DSK.src/M000036.html +34 -0
  121. data/doc/classes/DSK.src/M000037.html +19 -0
  122. data/doc/classes/DSK.src/M000038.html +18 -0
  123. data/doc/classes/DSK.src/M000039.html +18 -0
  124. data/doc/classes/DSK.src/M000040.html +18 -0
  125. data/doc/classes/DSK.src/M000041.html +18 -0
  126. data/doc/classes/DSK.src/M000042.html +22 -0
  127. data/doc/classes/DSK.src/M000043.html +19 -0
  128. data/doc/classes/DSK.src/M000044.html +22 -0
  129. data/doc/classes/DSK.src/M000045.html +18 -0
  130. data/doc/classes/DSK.src/M000046.html +22 -0
  131. data/doc/classes/DSK.src/M000047.html +19 -0
  132. data/doc/classes/DSK.src/M000048.html +22 -0
  133. data/doc/classes/DSK.src/M000049.html +40 -0
  134. data/doc/classes/DSK.src/M000050.html +19 -0
  135. data/doc/classes/DSK.src/M000051.html +18 -0
  136. data/doc/classes/DSK.src/M000052.html +37 -0
  137. data/doc/classes/DSK.src/M000053.html +24 -0
  138. data/doc/classes/DSK.src/M000054.html +24 -0
  139. data/doc/classes/DirectoryServlet.html +147 -0
  140. data/doc/classes/DirectoryServlet.src/M000017.html +20 -0
  141. data/doc/classes/DirectoryServlet.src/M000023.html +20 -0
  142. data/doc/classes/DirectoryServlet.src/M000026.html +20 -0
  143. data/doc/classes/DirectoryServlet.src/M000030.html +20 -0
  144. data/doc/classes/IntegerBasicFile.html +15 -15
  145. data/doc/classes/IntegerBasicFile.src/M000006.html +18 -0
  146. data/doc/classes/IntegerBasicFile.src/M000007.html +18 -0
  147. data/doc/classes/IntegerBasicFile.src/M000008.html +18 -0
  148. data/doc/classes/IntegerBasicFile.src/M000012.html +18 -0
  149. data/doc/classes/IntegerBasicFile.src/M000013.html +18 -0
  150. data/doc/classes/IntegerBasicFile.src/M000014.html +18 -0
  151. data/doc/classes/IntegerBasicFile.src/M000018.html +18 -0
  152. data/doc/classes/IntegerBasicFile.src/M000019.html +18 -0
  153. data/doc/classes/IntegerBasicFile.src/M000020.html +18 -0
  154. data/doc/classes/IntegerBasicFile.src/M000021.html +18 -0
  155. data/doc/classes/IntegerBasicFile.src/M000022.html +18 -0
  156. data/doc/classes/IntegerBasicFile.src/M000023.html +18 -0
  157. data/doc/classes/IntegerBasicFile.src/M000024.html +18 -0
  158. data/doc/classes/IntegerBasicFile.src/M000025.html +18 -0
  159. data/doc/classes/IntegerBasicFile.src/M000026.html +18 -0
  160. data/doc/classes/NADOLBinaryFile.html +153 -0
  161. data/doc/classes/NADOLBinaryFile.src/M000033.html +19 -0
  162. data/doc/classes/NADOLBinaryFile.src/M000037.html +19 -0
  163. data/doc/classes/NADOLDisk.html +189 -0
  164. data/doc/classes/NADOLDisk.src/M000018.html +20 -0
  165. data/doc/classes/NADOLDisk.src/M000019.html +19 -0
  166. data/doc/classes/NADOLDisk.src/M000020.html +50 -0
  167. data/doc/classes/NADOLDisk.src/M000021.html +20 -0
  168. data/doc/classes/NADOLDisk.src/M000022.html +19 -0
  169. data/doc/classes/NADOLDisk.src/M000023.html +50 -0
  170. data/doc/classes/NADOLFile.html +216 -0
  171. data/doc/classes/NADOLFile.src/M000027.html +19 -0
  172. data/doc/classes/NADOLFile.src/M000028.html +18 -0
  173. data/doc/classes/NADOLFile.src/M000029.html +18 -0
  174. data/doc/classes/NADOLFile.src/M000030.html +31 -0
  175. data/doc/classes/NADOLFile.src/M000031.html +19 -0
  176. data/doc/classes/NADOLFile.src/M000032.html +18 -0
  177. data/doc/classes/NADOLFile.src/M000033.html +18 -0
  178. data/doc/classes/NADOLFile.src/M000034.html +31 -0
  179. data/doc/classes/NADOLTokenisedFile.html +217 -0
  180. data/doc/classes/NADOLTokenisedFile.src/M000061.html +28 -0
  181. data/doc/classes/NADOLTokenisedFile.src/M000062.html +28 -0
  182. data/doc/classes/NADOLTokenisedFile.src/M000063.html +28 -0
  183. data/doc/classes/NADOLTokenisedFile.src/M000064.html +18 -0
  184. data/doc/classes/NADOLTokenisedFile.src/M000065.html +18 -0
  185. data/doc/classes/NADOLTokenisedFile.src/M000068.html +28 -0
  186. data/doc/classes/NADOLTokenisedFile.src/M000069.html +18 -0
  187. data/doc/classes/NADOLTokenisedFile.src/M000070.html +18 -0
  188. data/doc/classes/RDoc.html +141 -0
  189. data/doc/classes/RDoc.src/M000032.html +40 -0
  190. data/doc/classes/RDoc.src/M000033.html +40 -0
  191. data/doc/classes/RDoc.src/M000038.html +40 -0
  192. data/doc/classes/RDoc.src/M000048.html +40 -0
  193. data/doc/classes/RDoc.src/M000055.html +40 -0
  194. data/doc/classes/RDoc.src/M000066.html +40 -0
  195. data/doc/classes/RDoc.src/M000068.html +40 -0
  196. data/doc/classes/RDoc.src/M000069.html +40 -0
  197. data/doc/classes/RDoc.src/M000074.html +40 -0
  198. data/doc/classes/SCAsmFile.html +226 -0
  199. data/doc/classes/SCAsmFile.src/M000025.html +18 -0
  200. data/doc/classes/SCAsmFile.src/M000026.html +18 -0
  201. data/doc/classes/SCAsmFile.src/M000027.html +18 -0
  202. data/doc/classes/SCAsmFile.src/M000028.html +36 -0
  203. data/doc/classes/SCAsmFile.src/M000035.html +18 -0
  204. data/doc/classes/SCAsmFile.src/M000036.html +18 -0
  205. data/doc/classes/SCAsmFile.src/M000037.html +18 -0
  206. data/doc/classes/SCAsmFile.src/M000038.html +36 -0
  207. data/doc/classes/SCAsmFile.src/M000041.html +18 -0
  208. data/doc/classes/SCAsmFile.src/M000042.html +18 -0
  209. data/doc/classes/SCAsmFile.src/M000043.html +18 -0
  210. data/doc/classes/SCAsmFile.src/M000044.html +36 -0
  211. data/doc/classes/SCAsmFile.src/M000048.html +18 -0
  212. data/doc/classes/SCAsmFile.src/M000049.html +18 -0
  213. data/doc/classes/SCAsmFile.src/M000050.html +18 -0
  214. data/doc/classes/SCAsmFile.src/M000051.html +18 -0
  215. data/doc/classes/SCAsmFile.src/M000052.html +18 -0
  216. data/doc/classes/SCAsmFile.src/M000053.html +36 -0
  217. data/doc/classes/SCAsmFile.src/M000055.html +18 -0
  218. data/doc/classes/SCAsmFile.src/M000056.html +18 -0
  219. data/doc/classes/SCAsmFile.src/M000057.html +18 -0
  220. data/doc/classes/SCAsmFile.src/M000058.html +39 -0
  221. data/doc/classes/ShowFileServlet.html +147 -0
  222. data/doc/classes/ShowFileServlet.src/M000026.html +21 -0
  223. data/doc/classes/ShowFileServlet.src/M000032.html +22 -0
  224. data/doc/classes/ShowFileServlet.src/M000038.html +22 -0
  225. data/doc/classes/ShowFileServlet.src/M000039.html +22 -0
  226. data/doc/classes/ShowFileServlet.src/M000040.html +22 -0
  227. data/doc/classes/ShowFileServlet.src/M000044.html +22 -0
  228. data/doc/classes/ShowSectorServlet.html +147 -0
  229. data/doc/classes/ShowSectorServlet.src/M000029.html +22 -0
  230. data/doc/classes/TestDOSDisks.html +46 -31
  231. data/doc/classes/TestDOSDisks.src/M000004.html +41 -0
  232. data/doc/classes/TestDOSDisks.src/M000005.html +27 -0
  233. data/doc/classes/TestDOSDisks.src/M000006.html +24 -0
  234. data/doc/classes/TestDOSDisks.src/M000007.html +19 -0
  235. data/doc/classes/TestDOSDisks.src/M000008.html +19 -0
  236. data/doc/classes/TestDOSDisks.src/M000009.html +25 -0
  237. data/doc/classes/TestDOSDisks.src/M000010.html +41 -0
  238. data/doc/classes/TestDOSDisks.src/M000011.html +27 -0
  239. data/doc/classes/TestDOSDisks.src/M000012.html +24 -0
  240. data/doc/classes/TestDOSDisks.src/M000013.html +19 -0
  241. data/doc/classes/TestDOSDisks.src/M000014.html +24 -0
  242. data/doc/classes/TestDOSDisks.src/M000015.html +19 -0
  243. data/doc/classes/TestDOSDisks.src/M000016.html +22 -0
  244. data/doc/classes/TestDOSDisks.src/M000017.html +19 -0
  245. data/doc/classes/TestDOSDisks.src/M000018.html +25 -0
  246. data/doc/classes/TestDOSDisks.src/M000019.html +41 -0
  247. data/doc/classes/TestDOSDisks.src/M000020.html +27 -0
  248. data/doc/classes/TestDisassembly.html +6 -6
  249. data/doc/classes/TestDisassembly.src/M000007.html +19 -0
  250. data/doc/classes/TestDisassembly.src/M000008.html +19 -0
  251. data/doc/classes/TestDisassembly.src/M000009.html +19 -0
  252. data/doc/classes/TestDisassembly.src/M000016.html +19 -0
  253. data/doc/classes/TestDisassembly.src/M000022.html +19 -0
  254. data/doc/classes/TestDisassembly.src/M000025.html +19 -0
  255. data/doc/classes/TestDisassembly.src/M000028.html +19 -0
  256. data/doc/classes/TestNADOLDisks.html +159 -0
  257. data/doc/classes/TestNADOLDisks.src/M000055.html +19 -0
  258. data/doc/classes/TestNADOLDisks.src/M000056.html +19 -0
  259. data/doc/classes/TestNADOLDisks.src/M000057.html +19 -0
  260. data/doc/classes/TestNADOLDisks.src/M000058.html +34 -0
  261. data/doc/classes/TestNADOLDisks.src/M000062.html +19 -0
  262. data/doc/classes/TestNADOLDisks.src/M000063.html +34 -0
  263. data/doc/classes/TextFile.html +15 -15
  264. data/doc/classes/TextFile.src/M000029.html +18 -0
  265. data/doc/classes/TextFile.src/M000030.html +18 -0
  266. data/doc/classes/TextFile.src/M000031.html +18 -0
  267. data/doc/classes/TextFile.src/M000032.html +20 -0
  268. data/doc/classes/TextFile.src/M000035.html +18 -0
  269. data/doc/classes/TextFile.src/M000036.html +18 -0
  270. data/doc/classes/TextFile.src/M000037.html +20 -0
  271. data/doc/classes/TextFile.src/M000045.html +18 -0
  272. data/doc/classes/TextFile.src/M000046.html +18 -0
  273. data/doc/classes/TextFile.src/M000047.html +20 -0
  274. data/doc/classes/TextFile.src/M000052.html +18 -0
  275. data/doc/classes/TextFile.src/M000053.html +18 -0
  276. data/doc/classes/TextFile.src/M000054.html +20 -0
  277. data/doc/classes/TextFile.src/M000063.html +18 -0
  278. data/doc/classes/TextFile.src/M000064.html +18 -0
  279. data/doc/classes/TextFile.src/M000065.html +18 -0
  280. data/doc/classes/TextFile.src/M000066.html +18 -0
  281. data/doc/classes/TextFile.src/M000067.html +18 -0
  282. data/doc/classes/TextFile.src/M000068.html +20 -0
  283. data/doc/classes/TextFile.src/M000071.html +18 -0
  284. data/doc/classes/TextFile.src/M000072.html +18 -0
  285. data/doc/classes/TextFile.src/M000073.html +20 -0
  286. data/doc/created.rid +1 -1
  287. data/doc/dot/f_0.dot +71 -0
  288. data/doc/dot/f_0.png +0 -0
  289. data/doc/dot/f_1.dot +14 -0
  290. data/doc/dot/f_1.png +0 -0
  291. data/doc/dot/f_10.dot +32 -0
  292. data/doc/dot/f_10.png +0 -0
  293. data/doc/dot/f_11.dot +32 -0
  294. data/doc/dot/f_11.png +0 -0
  295. data/doc/dot/f_12.dot +14 -0
  296. data/doc/dot/f_12.png +0 -0
  297. data/doc/dot/f_2.dot +23 -0
  298. data/doc/dot/f_2.png +0 -0
  299. data/doc/dot/f_3.dot +32 -0
  300. data/doc/dot/f_3.png +0 -0
  301. data/doc/dot/f_4.dot +88 -0
  302. data/doc/dot/f_4.png +0 -0
  303. data/doc/dot/f_5.dot +23 -0
  304. data/doc/dot/f_5.png +0 -0
  305. data/doc/dot/f_6.dot +32 -0
  306. data/doc/dot/f_6.png +0 -0
  307. data/doc/dot/f_7.dot +49 -0
  308. data/doc/dot/f_7.png +0 -0
  309. data/doc/dot/f_8.dot +30 -0
  310. data/doc/dot/f_8.png +0 -0
  311. data/doc/dot/f_9.dot +32 -0
  312. data/doc/dot/f_9.png +0 -0
  313. data/doc/dot/m_0_0.dot +30 -0
  314. data/doc/dot/m_0_0.png +0 -0
  315. data/doc/dot/m_6_0.dot +30 -0
  316. data/doc/dot/m_6_0.png +0 -0
  317. data/doc/dot/m_8_0.dot +30 -0
  318. data/doc/dot/m_8_0.png +0 -0
  319. data/doc/files/bin/dskexplorer_rb.html +364 -0
  320. data/doc/files/bin/dskexplorer_rb.src/M000001.html +21 -0
  321. data/doc/files/bin/dskexplorer_rb.src/M000002.html +21 -0
  322. data/doc/files/bin/dskexplorer_rb.src/M000003.html +22 -0
  323. data/doc/files/bin/dskexplorer_rb.src/M000004.html +20 -0
  324. data/doc/files/bin/dskexplorer_rb.src/M000005.html +20 -0
  325. data/doc/files/bin/dskexplorer_rb.src/M000006.html +22 -0
  326. data/doc/files/bin/dskexplorer_rb.src/M000007.html +18 -0
  327. data/doc/files/bin/dskexplorer_rb.src/M000008.html +20 -0
  328. data/doc/files/bin/dskexplorer_rb.src/M000009.html +43 -0
  329. data/doc/files/bin/dskexplorer_rb.src/M000010.html +55 -0
  330. data/doc/files/bin/dskexplorer_rb.src/M000011.html +49 -0
  331. data/doc/files/bin/dskexplorer_rb.src/M000012.html +61 -0
  332. data/doc/files/bin/dskexplorer_rb.src/M000013.html +34 -0
  333. data/doc/files/bin/dskserver_rb.html +247 -0
  334. data/doc/files/bin/dskserver_rb.src/M000001.html +22 -0
  335. data/doc/files/bin/dskserver_rb.src/M000002.html +19 -0
  336. data/doc/files/bin/dskserver_rb.src/M000003.html +62 -0
  337. data/doc/files/bin/dskserver_rb.src/M000004.html +39 -0
  338. data/doc/files/bin/dskserver_rb.src/M000005.html +26 -0
  339. data/doc/files/bin/dsktool_rb.html +4 -4
  340. data/doc/files/lib/DOSDisk_rb.html +1 -1
  341. data/doc/files/lib/DOSFile_rb.html +1 -1
  342. data/doc/files/lib/DSK_rb.html +3 -1
  343. data/doc/files/lib/NADOLDisk_rb.html +115 -0
  344. data/doc/files/lib/NADOLFile_rb.html +117 -0
  345. data/doc/files/lib/rdoc_patch_rb.html +114 -0
  346. data/doc/files/test/tc_disassembly_rb.html +1 -1
  347. data/doc/files/test/tc_dos_disks_rb.html +2 -2
  348. data/doc/files/test/tc_nadol_disks_rb.html +122 -0
  349. data/doc/files/test/ts_test_all_rb.html +3 -2
  350. data/doc/fr_class_index.html +6 -0
  351. data/doc/fr_file_index.html +3 -0
  352. data/doc/fr_method_index.html +68 -49
  353. data/lib/DOSDisk.rb +14 -14
  354. data/lib/DOSFile.rb +7 -1
  355. data/lib/DSK.rb +41 -21
  356. data/lib/NADOLDisk.rb +97 -0
  357. data/lib/NADOLFile.rb +242 -0
  358. data/test/nadol.dsk +0 -0
  359. data/test/tc_dos_disks.rb +8 -0
  360. data/test/tc_nadol_disks.rb +36 -0
  361. data/test/ts_test_all.rb +1 -0
  362. data/test/white_11a.dsk +0 -0
  363. metadata +408 -65
  364. data/bin/dskexplorer.rb~ +0 -275
  365. data/bin/dsktool.rb~ +0 -150
  366. data/lib/DSK.rb~ +0 -134
  367. data/test/tc_dos_disks.rb~ +0 -79
data/bin/dskexplorer.rb CHANGED
@@ -8,7 +8,7 @@
8
8
  # dskexplorer.rb [switches]
9
9
  #
10
10
  # -h | --help display this message
11
- # -p | --port PORT_NUMBER port number to listen on (default is 6052)
11
+ # -p | --port PORT_NUMBER port number to listen on (default is 6502)
12
12
  # -r | --root ROOT_DIR root directory to explore from (default is current directory)
13
13
  # -v | --version show version number
14
14
  #
@@ -41,22 +41,22 @@ filename=opts.parse(ARGV)[0] rescue RDoc::usage_from_file(__FILE__,'Usage')
41
41
  require 'webrick'
42
42
  require 'DSK'
43
43
  include WEBrick
44
-
45
- @@uri_cache={}
46
- @@dsk_cache={}
47
- def get_uri_from_cache(uri)
48
- if @@uri_cache[uri].nil? then
49
- @@uri_cache[uri]=open(uri).read
50
- end
51
- @@uri_cache[uri]
52
- end
53
-
54
- def get_dsk_from_cache(uri)
55
- if @@dsk_cache[uri].nil? then
56
- @@dsk_cache[uri]=DSK.read(uri)
57
- end
58
- @@dsk_cache[uri]
59
- end
44
+
45
+ @@uri_cache={}
46
+ @@dsk_cache={}
47
+ def get_uri_from_cache(uri)
48
+ if @@uri_cache[uri].nil? then
49
+ @@uri_cache[uri]=open(uri).read
50
+ end
51
+ @@uri_cache[uri]
52
+ end
53
+
54
+ def get_dsk_from_cache(uri)
55
+ if @@dsk_cache[uri].nil? then
56
+ @@dsk_cache[uri]=DSK.read(uri)
57
+ end
58
+ @@dsk_cache[uri]
59
+ end
60
60
 
61
61
  def common_header
62
62
  "
@@ -70,53 +70,56 @@ def common_footer
70
70
  <p><i>this is alpha software - please send feedback using the <a href=http://rubyforge.org/tracker/?group_id=3844> dsktool.rb forum</a><p>
71
71
  "
72
72
  end
73
+
74
+ def root_dir_is_website?
75
+ require 'hpricot'
76
+ require 'open-uri'
77
+ @@root_directory=~/^http[s]?:/?true : false
78
+ end
79
+ def make_absolute_path(relative_path)
80
+ if root_dir_is_website? then
81
+ @@root_directory+uri_encode(relative_path)
82
+ else
83
+ @@root_directory+relative_path
84
+ end
85
+ end
73
86
 
74
- def root_dir_is_website?
75
- require 'hpricot'
76
- require 'open-uri'
77
- @@root_directory=~/^http[s]?:/?true : false
78
- end
79
- def make_absolute_path(relative_path)
80
- if root_dir_is_website? then
81
- @@root_directory+uri_encode(relative_path)
82
- else
83
- @@root_directory+relative_path
84
- end
85
- end
86
-
87
- def uri_encode(s)
88
- #standard URI.escape appears to miss some important characters
89
- require 'uri'
90
- URI.escape(s).sub("[","%5b").sub("]","%5d")
91
- end
92
- def get_directories_and_files(relative_path)
93
- directories=[]
94
- dsk_files=[]
95
- absolute_path=make_absolute_path(relative_path)
96
- if root_dir_is_website? then
97
- html=get_uri_from_cache(absolute_path)
98
- doc=Hpricot(html)
99
- doc.search("a[@href]").each do |a|
100
- href=URI.unescape(a.attributes["href"])
101
- if (href=~/\w\/$/)
102
- if !(href=~/^\//) then #directories end with a /, but skip absolute paths
103
- directories<<(href)
104
- end
105
- elsif DSK.is_dsk_file?(href) then
106
- dsk_files<<(href)
107
- end
108
- end
109
- else
110
- if File.exist?(absolute_path) && (File.stat(absolute_path).directory?) then
111
- dir=Dir.new(absolute_path)
112
- dir.each do |f|
113
- directories<<f if (f[0].chr!=".") && (File.stat(absolute_path+"/"+f).directory?)
114
- dsk_files<<f if (DSK.is_dsk_file?(f))
115
- end
116
- end
117
- end
118
- [directories,dsk_files]
119
- end
87
+ def html_escape(s)
88
+ s.gsub("&","&amp;").gsub("<","&lt;")
89
+ end
90
+ def uri_encode(s)
91
+ #standard URI.escape appears to miss some important characters
92
+ require 'uri'
93
+ URI.escape(s).gsub("[","%5b").gsub("]","%5d")
94
+ end
95
+ def get_directories_and_files(relative_path)
96
+ directories=[]
97
+ dsk_files=[]
98
+ absolute_path=make_absolute_path(relative_path)
99
+ if root_dir_is_website? then
100
+ html=get_uri_from_cache(absolute_path)
101
+ doc=Hpricot(html)
102
+ doc.search("a[@href]").each do |a|
103
+ href=URI.unescape(a.attributes["href"])
104
+ if (href=~/\w\/$/)
105
+ if !(href=~/^\//) then #directories end with a /, but skip absolute paths
106
+ directories<<(href)
107
+ end
108
+ elsif DSK.is_dsk_file?(href) then
109
+ dsk_files<<(href)
110
+ end
111
+ end
112
+ else
113
+ if File.exist?(absolute_path) && (File.stat(absolute_path).directory?) then
114
+ dir=Dir.new(absolute_path)
115
+ dir.each do |f|
116
+ directories<<f if (f[0].chr!=".") && (File.stat(absolute_path+"/"+f).directory?)
117
+ dsk_files<<f if (DSK.is_dsk_file?(f))
118
+ end
119
+ end
120
+ end
121
+ [directories,dsk_files]
122
+ end
120
123
 
121
124
  def make_navigation_path(relative_path,filename=nil)
122
125
  path_parts=relative_path.split("/")
@@ -125,86 +128,139 @@ def make_navigation_path(relative_path,filename=nil)
125
128
  s="<a href=/dir/>#{@@root_directory}</a>"
126
129
  path_parts.each do |p|
127
130
  if p.length>0 then
128
- partial_path+="/#{p}"
129
- if DSK.is_dsk_file?(partial_path) then
130
- s+="/<a href=/catalog#{uri_encode(partial_path)}>#{p}</a>"
131
- else
132
- s+="/<a href=/dir#{uri_encode(partial_path)}>#{p}</a>"
133
- end
131
+ partial_path+="/#{p}"
132
+ if DSK.is_dsk_file?(partial_path) then
133
+ s<<"/<a href=/catalog#{uri_encode(partial_path)}>#{p}</a>"
134
+ else
135
+ s<<"/<a href=/dir#{uri_encode(partial_path)}>#{p}</a>"
136
+ end
134
137
  end
135
- end
136
-
137
- if !filename.nil? then
138
- s+="/<a href=/showfile/#{uri_encode(relative_path)+'?filename='+uri_encode(filename)}>#{filename}</a>"
139
- end
138
+ end
139
+
140
+ if !filename.nil? then
141
+ s<<"/<a href=/showfile/#{uri_encode(relative_path)+'?filename='+uri_encode(filename)}>#{filename}</a>"
142
+ end
140
143
 
141
144
 
142
- #show the contents of the current directory
143
- directories,dsk_files=get_directories_and_files(relative_path)
144
-
145
- #list out the directories
145
+ #show the contents of the current directory
146
+ directories,dsk_files=get_directories_and_files(relative_path)
147
+
148
+ #list out the directories
146
149
 
147
- s+="<ul>"
148
- #s+="<li>[dir] <a href=/#{uri_encode('/dir/'+File.dirname(relative_path))}>..</a>\n"
150
+ s<<"<ul>"
151
+ #s<<"<li>[dir] <a href=/#{uri_encode('/dir/'+File.dirname(relative_path))}>..</a>\n"
149
152
  directories.sort.each do |d|
150
- s+="<li>[dir] <a href=/dir/#{uri_encode(relative_path)}/#{uri_encode(d)}>#{d}</a>\n"
153
+ s<<"<li>[dir] <a href=/dir/#{uri_encode(relative_path)}/#{uri_encode(d)}>#{d}</a>\n"
151
154
  end
152
155
 
153
156
  #list out the DSK files
154
- dsk_files.sort.each do |f|
155
- s+="<li>[dsk] <a href=/catalog/#{uri_encode(relative_path)}/#{uri_encode(f)}>#{f}</a> [ <a href=#{uri_encode(@@root_directory+relative_path+'/'+f)}>download</a> ]\n"
157
+ dsk_files.sort.each do |f|
158
+ s<<"<li>[dsk] <a href=/catalog/#{uri_encode(relative_path)}/#{uri_encode(f)}>#{f}</a> [ <a href=#{uri_encode(@@root_directory+relative_path+'/'+f)}>download</a> ]\n"
156
159
  end
157
- s+="</ul>"
160
+ s<<"</ul>"
158
161
 
159
162
  s
160
- end
161
- def make_catalog(relative_path)
162
- s="<p>"
163
- begin
163
+ end
164
+ def make_catalog(relative_path)
165
+ s="<p>"
166
+ begin
167
+ absolute_path=make_absolute_path(relative_path)
168
+ dsk=get_dsk_from_cache(absolute_path)
169
+ if (dsk.respond_to?(:files)) then
170
+ s<<"<table>\n<th>TYPE</th><th>SIZE (BYTES)</th><th>NAME</th></tr>\n"
171
+ dsk.files.each_value do |f|
172
+ display_url="/showfile/#{uri_encode(relative_path)+'?filename='+uri_encode(f.filename)}"
173
+ if f.respond_to?(:file_type) then
174
+ s<<"<td>#{f.file_type}</td>"
175
+ else
176
+ s<<"<td></td>"
177
+ end
178
+ s<<"<td>#{sprintf('%03d',f.contents.length)}</td>"
179
+ s<<"<td>#{f.filename}</td>"
180
+ s<<"<td><a href=#{display_url}&mode=hex>hex dump</a></td>"
181
+ if f.respond_to?(:disassembly)
182
+ s<<"<td><a href=#{display_url}&mode=list>disassembly</a></td>"
183
+ else
184
+ s<<"<td><a href=#{display_url}&mode=text>text</a></td>"
185
+ end
186
+ s<<"</tr>\n"
187
+ end
188
+ s<<"</table>"
189
+ else
190
+ s<<"<i>not a recognised format</i>"
191
+ end
192
+ s<<"<p><a href=/showsector/#{uri_encode(relative_path)}>View Sectors</a>"
193
+ rescue Exception => exception
194
+ s<<"<i>ERROR:#{exception}</i>"
195
+ end
196
+ s
197
+ end
198
+ def show_sector(relative_path,track,sector)
199
+ track="0" if track.nil?
200
+ sector="0" if sector.nil?
201
+ track=("0"+track).to_i
202
+ sector=("0"+sector).to_i
164
203
  absolute_path=make_absolute_path(relative_path)
165
204
  dsk=get_dsk_from_cache(absolute_path)
166
- if (dsk.is_dos33?) then
167
- s+="<table>\n<th>TYPE</th><th>SECTORS</th><th>NAME</th></tr>\n"
168
- dsk.files.each_value do |f|
169
- display_url="/showfile/#{uri_encode(relative_path)+'?filename='+uri_encode(f.filename)}"
170
- s+="<td>#{f.file_type}</td><td>#{sprintf('%03d',f.sector_count)}</td><td>#{f.filename}</td>"
171
- s+="<td><a href=#{display_url}&mode=hex>hex dump</a></td>"
172
- if f.file_type=="T" then
173
- s+="<td><a href=#{display_url}&mode=text>text</a></td>"
174
- else
175
- s+="<td><a href=#{display_url}&mode=list>listing</a></td>"
176
- end
177
-
178
- s+="</tr>\n"
205
+ uri="/showsector/#{uri_encode(relative_path)}"
206
+ s=""
207
+ s<<"<table><tr><th colspan=16>TRACK</th></tr>"
208
+ s<<"<tr>"
209
+ 0.upto(0x22) do |track_no|
210
+ if track_no==track then
211
+ s<<"<td><b>$#{sprintf('%02X',track)}</b></td>"
212
+ else
213
+ s<<"<td><a href=#{uri}?track=#{track_no}&sector=0>$#{sprintf('%02X',track_no)}</a></td>"
214
+ end
215
+ if track_no==0x0f ||track_no==0x1f then
216
+ s<<"</tr></tr>"
179
217
  end
180
- s+="</table>"
181
- else
182
- s+="<i>not DOS 3.3 format</i>"
183
218
  end
184
- rescue Exception => exception
185
- s+="<i>ERROR:#{exception}</i>"
186
- end
187
- s
188
- end
189
- def show_file(relative_path,filename,display_mode)
190
- absolute_path=make_absolute_path(relative_path)
191
- dsk=get_dsk_from_cache(absolute_path)
192
- file=dsk.files[filename]
193
- if file.nil? then
194
- s="<i>#{filename} not found</i>"
195
- else
196
- s="<hl><pre>"
197
- if display_mode=="hex" then
198
- s+=file.hex_dump
199
- elsif display_mode=="list" && file.file_type=='B'
200
- then s+=file.disassembly
201
- else
202
- s+= file.to_s
219
+ s<<"</tr>"
220
+ s<<"</table>"
221
+
222
+ s<<"<table><tr><th colspan=16>SECTOR</th></tr>"
223
+ s<<"<tr>"
224
+ 0.upto(0x0F) do |sector_no|
225
+ if sector_no==sector then
226
+ s<<"<td><b>$#{sprintf('%02X',sector)}</b></td>"
227
+ else
228
+ s<<"<td><a href=#{uri}?track=#{track}&sector=#{sector_no}>$#{sprintf('%02X',sector_no)}</a></td>"
229
+ end
203
230
  end
204
- s+="\n</pre><hl>"
205
- end
206
- s
207
- end
231
+ s<<"</tr>"
232
+ s<<"</table>"
233
+
234
+
235
+ s<<"<pre>\n"
236
+ s<<html_escape(dsk.dump_sector(track,sector))
237
+ s<<"</pre>\n"
238
+ s<<"<p>"
239
+ s<<"<pre>\n"
240
+ s<<html_escape(dsk.disassemble_sector(track,sector))
241
+ s<<"</pre>\n"
242
+
243
+ end
244
+
245
+ def show_file(relative_path,filename,display_mode)
246
+ absolute_path=make_absolute_path(relative_path)
247
+ dsk=get_dsk_from_cache(absolute_path)
248
+ file=dsk.files[filename]
249
+ if file.nil? then
250
+ s="<i>#{filename} not found</i>"
251
+ else
252
+ s="<hl><pre>"
253
+ if display_mode=="hex" then
254
+ s<<html_escape(file.hex_dump)
255
+ elsif display_mode=="list" && file.respond_to?(:disassembly)
256
+ then s<<html_escape(file.disassembly)
257
+ else
258
+ s<< (file.to_s)
259
+ end
260
+ s<<"\n</pre><hl>"
261
+ end
262
+ s
263
+ end
208
264
 
209
265
  class DirectoryServlet < HTTPServlet::AbstractServlet
210
266
  def do_GET(req,res)
@@ -212,26 +268,35 @@ class DirectoryServlet < HTTPServlet::AbstractServlet
212
268
  res['Content-Type']="text/html"
213
269
  res.body=common_header+make_navigation_path(relative_path)+common_footer
214
270
  end
215
- end
271
+ end
216
272
 
217
- class CatalogServlet < HTTPServlet::AbstractServlet
218
- def do_GET(req,res)
219
- relative_path=URI.unescape(req.path).sub(/^\/catalog/,"")
220
- res['Content-Type']="text/html"
221
- res.body=common_header+make_navigation_path(relative_path)+make_catalog(relative_path)+common_footer
222
- end
223
- end
224
-
225
- class ShowFileServlet < HTTPServlet::AbstractServlet
226
- def do_GET(req,res)
227
- relative_path=URI.unescape(req.path).sub(/^\/showfile/,"")
228
- filename=URI.unescape(req.query['filename'])
229
- display_mode=req.query['mode']
230
- res['Content-Type']="text/html"
231
- res.body=common_header+make_navigation_path(relative_path,filename)+show_file(relative_path,filename,display_mode)+common_footer
232
- end
233
- end
273
+ class CatalogServlet < HTTPServlet::AbstractServlet
274
+ def do_GET(req,res)
275
+ relative_path=URI.unescape(req.path).sub(/^\/catalog/,"")
276
+ res['Content-Type']="text/html"
277
+ res.body=common_header+make_navigation_path(relative_path)+make_catalog(relative_path)+common_footer
278
+ end
279
+ end
234
280
 
281
+ class ShowFileServlet < HTTPServlet::AbstractServlet
282
+ def do_GET(req,res)
283
+ relative_path=URI.unescape(req.path).sub(/^\/showfile/,"")
284
+ filename=URI.unescape(req.query['filename'])
285
+ display_mode=req.query['mode']
286
+ res['Content-Type']="text/html"
287
+ res.body=common_header+make_navigation_path(relative_path,filename)+show_file(relative_path,filename,display_mode)+common_footer
288
+ end
289
+ end
290
+
291
+ class ShowSectorServlet < HTTPServlet::AbstractServlet
292
+ def do_GET(req,res)
293
+ relative_path=URI.unescape(req.path).sub(/^\/showsector/,"")
294
+ track=req.query['track']
295
+ sector=req.query['sector']
296
+ res['Content-Type']="text/html"
297
+ res.body=common_header+make_navigation_path(relative_path)+show_sector(relative_path,track,sector)+common_footer
298
+ end
299
+ end
235
300
 
236
301
 
237
302
  s=HTTPServer.new(
@@ -240,8 +305,9 @@ s=HTTPServer.new(
240
305
  trap("INT") {s.shutdown}
241
306
 
242
307
  s.mount("/dir",DirectoryServlet)
243
- s.mount("/catalog",CatalogServlet)
244
- s.mount("/showfile",ShowFileServlet)
308
+ s.mount("/catalog",CatalogServlet)
309
+ s.mount("/showfile",ShowFileServlet)
310
+ s.mount("/showsector",ShowSectorServlet)
245
311
 
246
312
  #default page - for now, just redirect to the default dir page
247
313
  s.mount("/",DirectoryServlet)
data/bin/dsktool.rb CHANGED
@@ -19,7 +19,7 @@
19
19
  # -x | --explode extract all files
20
20
  # -v | --version show version number
21
21
  #
22
- # Currently only works with DOS 3.3 format DSK images
22
+ # Currently only works with DOS 3.3 and NADOL format DSK images
23
23
  # Will uncompress gzipped files (with extension .gz)
24
24
  # input files can be URLs
25
25
  #
@@ -33,7 +33,7 @@
33
33
  # dsktool.rb -x DOS3MASTR.dsk.gz -o /tmp/DOS3MASTR/
34
34
  # dsktool.rb -c http://jamtronix.com/dsks/apshai.dsk.gz
35
35
 
36
- DSKTOOL_VERSION="0.1.6"
36
+ DSKTOOL_VERSION="0.2.1"
37
37
 
38
38
  #make sure the relevant folder with our libraries is in the require path
39
39
  lib_path=File.expand_path(File.dirname(__FILE__)+"//..//lib")
@@ -54,7 +54,7 @@ opts.on("-v","--version") do
54
54
  puts File.basename($0)+" "+DSKTOOL_VERSION
55
55
  exit
56
56
  end
57
- opts.on("-r","--raw") {extract_mode=:raw}
57
+ opts.on("-r","--") {extract_mode=:raw}
58
58
  opts.on("-c","--catalog") {catalog=true}
59
59
  opts.on("-x","--explode") {explode=true}
60
60
  opts.on("-l","--list FILENAME",String) do |val|
@@ -79,10 +79,10 @@ output_file= case
79
79
  end
80
80
 
81
81
  if(catalog) then
82
- if (dsk.is_dos33?) then
82
+ if (dsk.respond_to?(:dump_catalog)) then
83
83
  dsk.dump_catalog
84
84
  else
85
- puts "#{filename} is not in DOS 3.3 format"
85
+ puts "#{filename} does not have a recognised file system"
86
86
  end
87
87
  end
88
88
 
@@ -93,7 +93,7 @@ if(explode) then
93
93
  end
94
94
 
95
95
  dsk.files.each_value do |f|
96
- if (raw_mode) then
96
+ if (extract_mode==:raw) then
97
97
  output_filename=output_dir+"/"+f.filename+".raw"
98
98
  File.open(output_filename,"wb") <<f.contents
99
99
  else
@@ -113,7 +113,7 @@ if (!extract_filename.nil?) then
113
113
  when :raw then file.contents
114
114
  when :hex then file.hex_dump
115
115
  when :list then
116
- if file.instance_of?(BinaryFile)
116
+ if file.respond_to?(:disassembly)
117
117
  file.disassembly
118
118
  else
119
119
  puts "'#{extract_filename}' is not a binary file"