dsktool 0.1.6 → 0.2.1

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