ripxplore 0.0.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 (454) hide show
  1. data/bin/ripxplore.rb +188 -0
  2. data/doc/classes/A2Dsk.html +226 -0
  3. data/doc/classes/A2Dsk.src/M000005.html +18 -0
  4. data/doc/classes/A2Dsk.src/M000006.html +18 -0
  5. data/doc/classes/A2Dsk.src/M000007.html +18 -0
  6. data/doc/classes/A2Dsk.src/M000008.html +18 -0
  7. data/doc/classes/A2Dsk.src/M000009.html +18 -0
  8. data/doc/classes/A2Dsk.src/M000010.html +22 -0
  9. data/doc/classes/A2DskDosOrder.html +139 -0
  10. data/doc/classes/A2DskDosOrder.src/M000242.html +18 -0
  11. data/doc/classes/A2DskPhysicalOrder.html +139 -0
  12. data/doc/classes/A2DskPhysicalOrder.src/M000019.html +18 -0
  13. data/doc/classes/Apple2.html +187 -0
  14. data/doc/classes/Apple2.src/M000128.html +18 -0
  15. data/doc/classes/Apple2.src/M000129.html +18 -0
  16. data/doc/classes/Apple2.src/M000130.html +18 -0
  17. data/doc/classes/Apple2.src/M000131.html +19 -0
  18. data/doc/classes/AppleBinary.html +193 -0
  19. data/doc/classes/AppleBinary.src/M000089.html +20 -0
  20. data/doc/classes/AppleBinary.src/M000090.html +18 -0
  21. data/doc/classes/AppleBinary.src/M000091.html +18 -0
  22. data/doc/classes/AppleBinary.src/M000092.html +18 -0
  23. data/doc/classes/AppleCPM.html +228 -0
  24. data/doc/classes/AppleCPM.src/M000243.html +18 -0
  25. data/doc/classes/AppleCPM.src/M000244.html +18 -0
  26. data/doc/classes/AppleCPM.src/M000245.html +21 -0
  27. data/doc/classes/AppleCPM.src/M000246.html +40 -0
  28. data/doc/classes/AppleDos.html +275 -0
  29. data/doc/classes/AppleDos.src/M000161.html +18 -0
  30. data/doc/classes/AppleDos.src/M000162.html +18 -0
  31. data/doc/classes/AppleDos.src/M000163.html +18 -0
  32. data/doc/classes/AppleDos.src/M000164.html +86 -0
  33. data/doc/classes/AppleHiResPic.html +279 -0
  34. data/doc/classes/AppleHiResPic.src/M000083.html +22 -0
  35. data/doc/classes/AppleHiResPic.src/M000084.html +18 -0
  36. data/doc/classes/AppleHiResPic.src/M000085.html +22 -0
  37. data/doc/classes/AppleHiResPic.src/M000086.html +57 -0
  38. data/doc/classes/AppleHiResPic.src/M000087.html +18 -0
  39. data/doc/classes/AppleHiResPic.src/M000088.html +18 -0
  40. data/doc/classes/AppleText.html +156 -0
  41. data/doc/classes/AppleText.src/M000142.html +21 -0
  42. data/doc/classes/AppleText.src/M000143.html +20 -0
  43. data/doc/classes/AppleWorksWP.html +160 -0
  44. data/doc/classes/AppleWorksWP.src/M000081.html +20 -0
  45. data/doc/classes/AppleWorksWP.src/M000082.html +45 -0
  46. data/doc/classes/Applesoft.html +169 -0
  47. data/doc/classes/Applesoft.src/M000175.html +21 -0
  48. data/doc/classes/Applesoft.src/M000176.html +75 -0
  49. data/doc/classes/Atari800.html +169 -0
  50. data/doc/classes/Atari800.src/M000177.html +23 -0
  51. data/doc/classes/Atari800.src/M000178.html +18 -0
  52. data/doc/classes/Atari800.src/M000179.html +19 -0
  53. data/doc/classes/AtariBasic.html +215 -0
  54. data/doc/classes/AtariBasic.src/M000204.html +20 -0
  55. data/doc/classes/AtariBasic.src/M000205.html +108 -0
  56. data/doc/classes/AtariBinary.html +193 -0
  57. data/doc/classes/AtariBinary.src/M000238.html +20 -0
  58. data/doc/classes/AtariBinary.src/M000239.html +18 -0
  59. data/doc/classes/AtariBinary.src/M000240.html +18 -0
  60. data/doc/classes/AtariBinary.src/M000241.html +18 -0
  61. data/doc/classes/AtariDos.html +186 -0
  62. data/doc/classes/AtariDos.src/M000047.html +18 -0
  63. data/doc/classes/AtariDos.src/M000048.html +43 -0
  64. data/doc/classes/AtariText.html +159 -0
  65. data/doc/classes/AtariText.src/M000002.html +20 -0
  66. data/doc/classes/AtariText.src/M000003.html +18 -0
  67. data/doc/classes/Atr.html +271 -0
  68. data/doc/classes/Atr.src/M000208.html +18 -0
  69. data/doc/classes/Atr.src/M000209.html +18 -0
  70. data/doc/classes/Atr.src/M000210.html +19 -0
  71. data/doc/classes/Atr.src/M000211.html +18 -0
  72. data/doc/classes/Atr.src/M000212.html +18 -0
  73. data/doc/classes/Atr.src/M000213.html +19 -0
  74. data/doc/classes/Atr.src/M000214.html +19 -0
  75. data/doc/classes/C64.html +206 -0
  76. data/doc/classes/C64.src/M000020.html +18 -0
  77. data/doc/classes/C64.src/M000021.html +31 -0
  78. data/doc/classes/C64.src/M000022.html +22 -0
  79. data/doc/classes/C64.src/M000023.html +19 -0
  80. data/doc/classes/C64.src/M000024.html +19 -0
  81. data/doc/classes/C64BasicPrg.html +201 -0
  82. data/doc/classes/C64BasicPrg.src/M000035.html +20 -0
  83. data/doc/classes/C64BasicPrg.src/M000036.html +59 -0
  84. data/doc/classes/C64Prg.html +190 -0
  85. data/doc/classes/C64Prg.src/M000169.html +20 -0
  86. data/doc/classes/C64Prg.src/M000170.html +18 -0
  87. data/doc/classes/C64Prg.src/M000171.html +18 -0
  88. data/doc/classes/C64Prg.src/M000172.html +20 -0
  89. data/doc/classes/C64PrgText.html +139 -0
  90. data/doc/classes/C64PrgText.src/M000237.html +18 -0
  91. data/doc/classes/C64Seq.html +156 -0
  92. data/doc/classes/C64Seq.src/M000013.html +20 -0
  93. data/doc/classes/C64Seq.src/M000014.html +18 -0
  94. data/doc/classes/CPMFile.html +156 -0
  95. data/doc/classes/CPMFile.src/M000108.html +20 -0
  96. data/doc/classes/CPMFile.src/M000109.html +18 -0
  97. data/doc/classes/CbmDos.html +172 -0
  98. data/doc/classes/CbmDos.src/M000182.html +18 -0
  99. data/doc/classes/CbmDos.src/M000183.html +42 -0
  100. data/doc/classes/CbmFile.html +156 -0
  101. data/doc/classes/CbmFile.src/M000235.html +20 -0
  102. data/doc/classes/CbmFile.src/M000236.html +18 -0
  103. data/doc/classes/D64.html +247 -0
  104. data/doc/classes/D64.src/M000037.html +18 -0
  105. data/doc/classes/D64.src/M000038.html +18 -0
  106. data/doc/classes/D64.src/M000039.html +18 -0
  107. data/doc/classes/D64.src/M000040.html +22 -0
  108. data/doc/classes/D64.src/M000041.html +18 -0
  109. data/doc/classes/D64.src/M000042.html +21 -0
  110. data/doc/classes/D65.html +170 -0
  111. data/doc/classes/D65.src/M000049.html +22 -0
  112. data/doc/classes/D65.src/M000050.html +68 -0
  113. data/doc/classes/DumpUtilities.html +152 -0
  114. data/doc/classes/DumpUtilities.src/M000077.html +33 -0
  115. data/doc/classes/DumpUtilities.src/M000078.html +27 -0
  116. data/doc/classes/FileCache.html +210 -0
  117. data/doc/classes/FileCache.src/M000135.html +18 -0
  118. data/doc/classes/FileCache.src/M000136.html +20 -0
  119. data/doc/classes/FileCache.src/M000137.html +22 -0
  120. data/doc/classes/FileCache.src/M000138.html +32 -0
  121. data/doc/classes/FileCacheItem.html +152 -0
  122. data/doc/classes/FileCacheItem.src/M000165.html +18 -0
  123. data/doc/classes/FileCacheItem.src/M000166.html +18 -0
  124. data/doc/classes/FileContainer.html +146 -0
  125. data/doc/classes/FileContainer.src/M000232.html +26 -0
  126. data/doc/classes/FileSystem.html +252 -0
  127. data/doc/classes/FileSystem.src/M000069.html +18 -0
  128. data/doc/classes/FileSystem.src/M000070.html +18 -0
  129. data/doc/classes/FileSystem.src/M000071.html +18 -0
  130. data/doc/classes/FileSystem.src/M000072.html +18 -0
  131. data/doc/classes/FileSystem.src/M000073.html +18 -0
  132. data/doc/classes/FileSystem.src/M000074.html +18 -0
  133. data/doc/classes/FileSystem.src/M000075.html +20 -0
  134. data/doc/classes/FileSystem.src/M000076.html +25 -0
  135. data/doc/classes/FileSystemImage.html +430 -0
  136. data/doc/classes/FileSystemImage.src/M000215.html +19 -0
  137. data/doc/classes/FileSystemImage.src/M000216.html +41 -0
  138. data/doc/classes/FileSystemImage.src/M000217.html +27 -0
  139. data/doc/classes/FileSystemImage.src/M000218.html +18 -0
  140. data/doc/classes/FileSystemImage.src/M000219.html +18 -0
  141. data/doc/classes/FileSystemImage.src/M000220.html +18 -0
  142. data/doc/classes/FileSystemImage.src/M000221.html +22 -0
  143. data/doc/classes/FileSystemImage.src/M000222.html +19 -0
  144. data/doc/classes/FileSystemImage.src/M000223.html +18 -0
  145. data/doc/classes/FileSystemImage.src/M000224.html +18 -0
  146. data/doc/classes/FileSystemImage.src/M000225.html +18 -0
  147. data/doc/classes/FileSystemImage.src/M000226.html +18 -0
  148. data/doc/classes/FileSystemImage.src/M000227.html +20 -0
  149. data/doc/classes/FileSystemImage.src/M000228.html +22 -0
  150. data/doc/classes/FileSystemImage.src/M000229.html +22 -0
  151. data/doc/classes/FileSystemImage.src/M000230.html +18 -0
  152. data/doc/classes/FileSystemImage.src/M000231.html +23 -0
  153. data/doc/classes/G64.html +257 -0
  154. data/doc/classes/G64.src/M000093.html +30 -0
  155. data/doc/classes/G64.src/M000094.html +18 -0
  156. data/doc/classes/G64.src/M000095.html +18 -0
  157. data/doc/classes/G64.src/M000096.html +17 -0
  158. data/doc/classes/G64.src/M000097.html +18 -0
  159. data/doc/classes/G64.src/M000098.html +18 -0
  160. data/doc/classes/G64.src/M000099.html +21 -0
  161. data/doc/classes/GenericFile.html +157 -0
  162. data/doc/classes/GenericFile.src/M000167.html +20 -0
  163. data/doc/classes/GenericFile.src/M000168.html +18 -0
  164. data/doc/classes/HostSystem.html +225 -0
  165. data/doc/classes/HostSystem.src/M000025.html +22 -0
  166. data/doc/classes/HostSystem.src/M000026.html +18 -0
  167. data/doc/classes/HostSystem.src/M000027.html +18 -0
  168. data/doc/classes/HostSystem.src/M000028.html +22 -0
  169. data/doc/classes/HostSystem.src/M000029.html +33 -0
  170. data/doc/classes/HostSystem.src/M000030.html +18 -0
  171. data/doc/classes/ImageFormat.html +415 -0
  172. data/doc/classes/ImageFormat.src/M000144.html +18 -0
  173. data/doc/classes/ImageFormat.src/M000145.html +18 -0
  174. data/doc/classes/ImageFormat.src/M000146.html +18 -0
  175. data/doc/classes/ImageFormat.src/M000147.html +18 -0
  176. data/doc/classes/ImageFormat.src/M000148.html +18 -0
  177. data/doc/classes/ImageFormat.src/M000149.html +22 -0
  178. data/doc/classes/ImageFormat.src/M000150.html +19 -0
  179. data/doc/classes/ImageFormat.src/M000151.html +18 -0
  180. data/doc/classes/ImageFormat.src/M000152.html +18 -0
  181. data/doc/classes/ImageFormat.src/M000153.html +18 -0
  182. data/doc/classes/ImageFormat.src/M000154.html +18 -0
  183. data/doc/classes/ImageFormat.src/M000155.html +18 -0
  184. data/doc/classes/ImageFormat.src/M000156.html +18 -0
  185. data/doc/classes/ImageFormat.src/M000157.html +18 -0
  186. data/doc/classes/ImageFormat.src/M000158.html +20 -0
  187. data/doc/classes/ImageFormat.src/M000159.html +26 -0
  188. data/doc/classes/ImageFormat.src/M000160.html +18 -0
  189. data/doc/classes/ImageSniffing.html +152 -0
  190. data/doc/classes/ImageSniffing.src/M000051.html +57 -0
  191. data/doc/classes/ImageSniffing.src/M000052.html +131 -0
  192. data/doc/classes/IntegerBASIC.html +247 -0
  193. data/doc/classes/IntegerBASIC.src/M000206.html +20 -0
  194. data/doc/classes/IntegerBASIC.src/M000207.html +86 -0
  195. data/doc/classes/MBasic.html +182 -0
  196. data/doc/classes/MBasic.src/M000011.html +20 -0
  197. data/doc/classes/MBasic.src/M000012.html +22 -0
  198. data/doc/classes/NADOLDos.html +187 -0
  199. data/doc/classes/NADOLDos.src/M000180.html +18 -0
  200. data/doc/classes/NADOLDos.src/M000181.html +52 -0
  201. data/doc/classes/NADOLFile.html +157 -0
  202. data/doc/classes/NADOLFile.src/M000045.html +20 -0
  203. data/doc/classes/NADOLFile.src/M000046.html +18 -0
  204. data/doc/classes/NADOLTokens.html +170 -0
  205. data/doc/classes/NADOLTokens.src/M000018.html +41 -0
  206. data/doc/classes/NativeFileType.html +444 -0
  207. data/doc/classes/NativeFileType.src/M000110.html +22 -0
  208. data/doc/classes/NativeFileType.src/M000111.html +18 -0
  209. data/doc/classes/NativeFileType.src/M000112.html +18 -0
  210. data/doc/classes/NativeFileType.src/M000113.html +18 -0
  211. data/doc/classes/NativeFileType.src/M000114.html +18 -0
  212. data/doc/classes/NativeFileType.src/M000115.html +18 -0
  213. data/doc/classes/NativeFileType.src/M000116.html +18 -0
  214. data/doc/classes/NativeFileType.src/M000117.html +23 -0
  215. data/doc/classes/NativeFileType.src/M000118.html +18 -0
  216. data/doc/classes/NativeFileType.src/M000119.html +18 -0
  217. data/doc/classes/NativeFileType.src/M000120.html +24 -0
  218. data/doc/classes/NativeFileType.src/M000121.html +35 -0
  219. data/doc/classes/NativeFileType.src/M000122.html +24 -0
  220. data/doc/classes/NativeFileType.src/M000123.html +18 -0
  221. data/doc/classes/NativeFileType.src/M000124.html +18 -0
  222. data/doc/classes/NativeFileType.src/M000125.html +18 -0
  223. data/doc/classes/NativeFileType.src/M000126.html +20 -0
  224. data/doc/classes/NativeFileType.src/M000127.html +27 -0
  225. data/doc/classes/PNG/Canvas.html +273 -0
  226. data/doc/classes/PNG/Canvas.src/M000196.html +20 -0
  227. data/doc/classes/PNG/Canvas.src/M000197.html +20 -0
  228. data/doc/classes/PNG/Canvas.src/M000198.html +20 -0
  229. data/doc/classes/PNG/Canvas.src/M000199.html +22 -0
  230. data/doc/classes/PNG/Canvas.src/M000200.html +18 -0
  231. data/doc/classes/PNG/Canvas.src/M000201.html +73 -0
  232. data/doc/classes/PNG/Color.html +338 -0
  233. data/doc/classes/PNG/Color.src/M000189.html +18 -0
  234. data/doc/classes/PNG/Color.src/M000190.html +16 -0
  235. data/doc/classes/PNG/Color.src/M000191.html +16 -0
  236. data/doc/classes/PNG/Color.src/M000192.html +16 -0
  237. data/doc/classes/PNG/Color.src/M000193.html +16 -0
  238. data/doc/classes/PNG/Color.src/M000194.html +21 -0
  239. data/doc/classes/PNG/Color.src/M000195.html +18 -0
  240. data/doc/classes/PNG.html +229 -0
  241. data/doc/classes/PNG.src/M000185.html +18 -0
  242. data/doc/classes/PNG.src/M000186.html +21 -0
  243. data/doc/classes/PNG.src/M000187.html +26 -0
  244. data/doc/classes/PNG.src/M000188.html +26 -0
  245. data/doc/classes/PascalDos.html +203 -0
  246. data/doc/classes/PascalDos.src/M000132.html +18 -0
  247. data/doc/classes/PascalDos.src/M000133.html +21 -0
  248. data/doc/classes/PascalDos.src/M000134.html +62 -0
  249. data/doc/classes/PascalFile.html +169 -0
  250. data/doc/classes/PascalFile.src/M000173.html +20 -0
  251. data/doc/classes/PascalFile.src/M000174.html +18 -0
  252. data/doc/classes/ProDos.html +164 -0
  253. data/doc/classes/ProDos.src/M000102.html +18 -0
  254. data/doc/classes/ProDos.src/M000103.html +22 -0
  255. data/doc/classes/ProDosFile.html +187 -0
  256. data/doc/classes/ProDosFile.src/M000015.html +20 -0
  257. data/doc/classes/ProDosFile.src/M000016.html +18 -0
  258. data/doc/classes/ProDosFile.src/M000017.html +19 -0
  259. data/doc/classes/Proc.html +315 -0
  260. data/doc/classes/Proc.src/M000053.html +21 -0
  261. data/doc/classes/Proc.src/M000054.html +19 -0
  262. data/doc/classes/Proc.src/M000055.html +22 -0
  263. data/doc/classes/Proc.src/M000056.html +22 -0
  264. data/doc/classes/Proc.src/M000057.html +22 -0
  265. data/doc/classes/Proc.src/M000058.html +19 -0
  266. data/doc/classes/Proc.src/M000059.html +16 -0
  267. data/doc/classes/Proc.src/M000060.html +20 -0
  268. data/doc/classes/Proc.src/M000061.html +18 -0
  269. data/doc/classes/Proc.src/M000062.html +16 -0
  270. data/doc/classes/Proc.src/M000063.html +16 -0
  271. data/doc/classes/ProcSource.html +146 -0
  272. data/doc/classes/ProcSource.src/M000248.html +38 -0
  273. data/doc/classes/ProcSource.src/M000249.html +109 -0
  274. data/doc/classes/RDoc.html +135 -0
  275. data/doc/classes/RDoc.src/M000247.html +40 -0
  276. data/doc/classes/RawDisk.html +157 -0
  277. data/doc/classes/RawDisk.src/M000100.html +18 -0
  278. data/doc/classes/RawDisk.src/M000101.html +18 -0
  279. data/doc/classes/RipXplore.html +124 -0
  280. data/doc/classes/RipXploreLog.html +167 -0
  281. data/doc/classes/RipXploreLog.src/M000139.html +18 -0
  282. data/doc/classes/RipXploreLog.src/M000140.html +20 -0
  283. data/doc/classes/RipXploreLog.src/M000141.html +18 -0
  284. data/doc/classes/ScAsm.html +145 -0
  285. data/doc/classes/ScAsm.src/M000004.html +45 -0
  286. data/doc/classes/SubclassTracking.html +138 -0
  287. data/doc/classes/SubclassTracking.src/M000250.html +23 -0
  288. data/doc/classes/TestFileCache.html +137 -0
  289. data/doc/classes/TestFileCache.src/M000184.html +21 -0
  290. data/doc/classes/Trs80.html +157 -0
  291. data/doc/classes/Trs80.src/M000043.html +18 -0
  292. data/doc/classes/Trs80.src/M000044.html +18 -0
  293. data/doc/classes/Trs80Cmd.html +217 -0
  294. data/doc/classes/Trs80Cmd.src/M000104.html +19 -0
  295. data/doc/classes/Trs80Cmd.src/M000105.html +24 -0
  296. data/doc/classes/Trs80Cmd.src/M000106.html +20 -0
  297. data/doc/classes/Trs80Cmd.src/M000107.html +35 -0
  298. data/doc/classes/Trs80Jcl.html +156 -0
  299. data/doc/classes/Trs80Jcl.src/M000233.html +20 -0
  300. data/doc/classes/Trs80Jcl.src/M000234.html +18 -0
  301. data/doc/classes/Trs80Jv1Dsk.html +211 -0
  302. data/doc/classes/Trs80Jv1Dsk.src/M000064.html +18 -0
  303. data/doc/classes/Trs80Jv1Dsk.src/M000065.html +18 -0
  304. data/doc/classes/Trs80Jv1Dsk.src/M000066.html +18 -0
  305. data/doc/classes/Trs80Jv1Dsk.src/M000067.html +18 -0
  306. data/doc/classes/Trs80Jv1Dsk.src/M000068.html +19 -0
  307. data/doc/classes/Trs80LevelIIBasic.html +169 -0
  308. data/doc/classes/Trs80LevelIIBasic.src/M000079.html +20 -0
  309. data/doc/classes/Trs80LevelIIBasic.src/M000080.html +43 -0
  310. data/doc/classes/Trs80PascalSource.html +156 -0
  311. data/doc/classes/Trs80PascalSource.src/M000202.html +20 -0
  312. data/doc/classes/Trs80PascalSource.src/M000203.html +30 -0
  313. data/doc/classes/TrsDos.html +255 -0
  314. data/doc/classes/TrsDos.src/M000031.html +18 -0
  315. data/doc/classes/TrsDos.src/M000032.html +18 -0
  316. data/doc/classes/TrsDos.src/M000033.html +18 -0
  317. data/doc/classes/TrsDos.src/M000034.html +62 -0
  318. data/doc/created.rid +1 -0
  319. data/doc/files/bin/ripxplore_rb.html +150 -0
  320. data/doc/files/lib/DumpUtilities_rb.html +101 -0
  321. data/doc/files/lib/FileCache_rb.html +110 -0
  322. data/doc/files/lib/FileContainer_rb.html +101 -0
  323. data/doc/files/lib/FileSystemImage_rb.html +109 -0
  324. data/doc/files/lib/FileSystem_rb.html +111 -0
  325. data/doc/files/lib/HostSystem_rb.html +110 -0
  326. data/doc/files/lib/ImageFormat_rb.html +111 -0
  327. data/doc/files/lib/NativeFileType_rb.html +111 -0
  328. data/doc/files/lib/PatchedPNG_rb.html +116 -0
  329. data/doc/files/lib/RipXploreLog_rb.html +108 -0
  330. data/doc/files/lib/RipXplore_rb.html +114 -0
  331. data/doc/files/lib/SubclassTracking_rb.html +108 -0
  332. data/doc/files/lib/disassemblers/D65_rb.html +101 -0
  333. data/doc/files/lib/file_systems/AppleCPM_rb.html +108 -0
  334. data/doc/files/lib/file_systems/AppleDos_rb.html +108 -0
  335. data/doc/files/lib/file_systems/AtariDos_rb.html +108 -0
  336. data/doc/files/lib/file_systems/CbmDos_rb.html +108 -0
  337. data/doc/files/lib/file_systems/NADOLDos_rb.html +108 -0
  338. data/doc/files/lib/file_systems/PascalDos_rb.html +108 -0
  339. data/doc/files/lib/file_systems/ProDos_rb.html +108 -0
  340. data/doc/files/lib/file_systems/RawDisk_rb.html +108 -0
  341. data/doc/files/lib/file_systems/TrsDos_rb.html +108 -0
  342. data/doc/files/lib/host_systems/Apple2_rb.html +109 -0
  343. data/doc/files/lib/host_systems/Atari800_rb.html +109 -0
  344. data/doc/files/lib/host_systems/C64_rb.html +109 -0
  345. data/doc/files/lib/host_systems/Trs80_rb.html +108 -0
  346. data/doc/files/lib/image_formats/A2Dsk_rb.html +108 -0
  347. data/doc/files/lib/image_formats/Atr_rb.html +108 -0
  348. data/doc/files/lib/image_formats/D64_rb.html +108 -0
  349. data/doc/files/lib/image_formats/G64_rb.html +108 -0
  350. data/doc/files/lib/image_formats/Trs80Jv1Dsk_rb.html +108 -0
  351. data/doc/files/lib/native_file_types/apple2/AppleBinary_rb.html +108 -0
  352. data/doc/files/lib/native_file_types/apple2/AppleHiResPic_rb.html +108 -0
  353. data/doc/files/lib/native_file_types/apple2/AppleText_rb.html +108 -0
  354. data/doc/files/lib/native_file_types/apple2/AppleWorksWP_rb.html +108 -0
  355. data/doc/files/lib/native_file_types/apple2/Applesoft_rb.html +108 -0
  356. data/doc/files/lib/native_file_types/apple2/IntegerBASIC_rb.html +108 -0
  357. data/doc/files/lib/native_file_types/apple2/NADOLFile_rb.html +108 -0
  358. data/doc/files/lib/native_file_types/apple2/PascalFile_rb.html +108 -0
  359. data/doc/files/lib/native_file_types/apple2/ProDosFile_rb.html +108 -0
  360. data/doc/files/lib/native_file_types/apple2/ScAsm_rb.html +101 -0
  361. data/doc/files/lib/native_file_types/atari800/AtariBasic_rb.html +108 -0
  362. data/doc/files/lib/native_file_types/atari800/AtariBinary_rb.html +108 -0
  363. data/doc/files/lib/native_file_types/atari800/AtariText_rb.html +108 -0
  364. data/doc/files/lib/native_file_types/c64/C64BasicPrg_rb.html +109 -0
  365. data/doc/files/lib/native_file_types/c64/C64PrgText_rb.html +109 -0
  366. data/doc/files/lib/native_file_types/c64/C64Prg_rb.html +109 -0
  367. data/doc/files/lib/native_file_types/c64/C64Seq_rb.html +109 -0
  368. data/doc/files/lib/native_file_types/c64/CbmFile_rb.html +108 -0
  369. data/doc/files/lib/native_file_types/cpm/CPMFile_rb.html +108 -0
  370. data/doc/files/lib/native_file_types/cpm/MBasic_rb.html +108 -0
  371. data/doc/files/lib/native_file_types/generic/GenericFile_rb.html +101 -0
  372. data/doc/files/lib/native_file_types/trs80/Trs80Cmd_rb.html +108 -0
  373. data/doc/files/lib/native_file_types/trs80/Trs80Jcl_rb.html +108 -0
  374. data/doc/files/lib/native_file_types/trs80/Trs80LevelIIBasic_rb.html +108 -0
  375. data/doc/files/lib/native_file_types/trs80/Trs80PascalSource_rb.html +108 -0
  376. data/doc/files/lib/proc_source_rb.html +182 -0
  377. data/doc/files/lib/proc_source_rb.src/M000001.html +24 -0
  378. data/doc/files/lib/rdoc_patch_rb.html +108 -0
  379. data/doc/files/test/tc_file_cache_rb.html +108 -0
  380. data/doc/files/test/tc_image_sniffing_rb.html +108 -0
  381. data/doc/files/test/testhelper_rb.html +129 -0
  382. data/doc/files/test/ts_test_all_rb.html +108 -0
  383. data/doc/fr_class_index.html +26 -0
  384. data/doc/fr_file_index.html +27 -0
  385. data/doc/fr_method_index.html +26 -0
  386. data/doc/index.html +24 -0
  387. data/doc/rdoc-style.css +208 -0
  388. data/lib/DumpUtilities.rb +34 -0
  389. data/lib/FileCache.rb +84 -0
  390. data/lib/FileContainer.rb +45 -0
  391. data/lib/FileSystem.rb +83 -0
  392. data/lib/FileSystemImage.rb +176 -0
  393. data/lib/HostSystem.rb +84 -0
  394. data/lib/ImageFormat.rb +127 -0
  395. data/lib/NativeFileType.rb +168 -0
  396. data/lib/PatchedPNG.rb +303 -0
  397. data/lib/RipXplore.rb +77 -0
  398. data/lib/RipXploreLog.rb +63 -0
  399. data/lib/SubclassTracking.rb +11 -0
  400. data/lib/disassemblers/D65.rb +181 -0
  401. data/lib/file_systems/AppleCPM.rb +123 -0
  402. data/lib/file_systems/AppleDos.rb +211 -0
  403. data/lib/file_systems/AtariDos.rb +80 -0
  404. data/lib/file_systems/CbmDos.rb +75 -0
  405. data/lib/file_systems/NADOLDos.rb +110 -0
  406. data/lib/file_systems/PascalDos.rb +131 -0
  407. data/lib/file_systems/ProDos.rb +155 -0
  408. data/lib/file_systems/RawDisk.rb +45 -0
  409. data/lib/file_systems/TrsDos.rb +148 -0
  410. data/lib/host_systems/Apple2.rb +57 -0
  411. data/lib/host_systems/Atari800.rb +57 -0
  412. data/lib/host_systems/C64.rb +82 -0
  413. data/lib/host_systems/Trs80.rb +48 -0
  414. data/lib/host_systems/a2_symbols.yaml +199 -0
  415. data/lib/host_systems/atari_800_symbols.yaml +496 -0
  416. data/lib/host_systems/c64_symbols.yaml +636 -0
  417. data/lib/image_formats/A2Dsk.rb +77 -0
  418. data/lib/image_formats/Atr.rb +83 -0
  419. data/lib/image_formats/D64.rb +87 -0
  420. data/lib/image_formats/G64.rb +174 -0
  421. data/lib/image_formats/Trs80Jv1Dsk.rb +65 -0
  422. data/lib/native_file_types/apple2/AppleBinary.rb +51 -0
  423. data/lib/native_file_types/apple2/AppleHiResPic.rb +166 -0
  424. data/lib/native_file_types/apple2/AppleText.rb +43 -0
  425. data/lib/native_file_types/apple2/AppleWorksWP.rb +68 -0
  426. data/lib/native_file_types/apple2/Applesoft.rb +115 -0
  427. data/lib/native_file_types/apple2/IntegerBASIC.rb +217 -0
  428. data/lib/native_file_types/apple2/NADOLFile.rb +205 -0
  429. data/lib/native_file_types/apple2/PascalFile.rb +48 -0
  430. data/lib/native_file_types/apple2/ProDosFile.rb +112 -0
  431. data/lib/native_file_types/apple2/ScAsm.rb +110 -0
  432. data/lib/native_file_types/atari800/AtariBasic.rb +396 -0
  433. data/lib/native_file_types/atari800/AtariBinary.rb +53 -0
  434. data/lib/native_file_types/atari800/AtariText.rb +49 -0
  435. data/lib/native_file_types/c64/C64BasicPrg.rb +333 -0
  436. data/lib/native_file_types/c64/C64Prg.rb +57 -0
  437. data/lib/native_file_types/c64/C64PrgText.rb +45 -0
  438. data/lib/native_file_types/c64/C64Seq.rb +47 -0
  439. data/lib/native_file_types/c64/CbmFile.rb +41 -0
  440. data/lib/native_file_types/cpm/CPMFile.rb +40 -0
  441. data/lib/native_file_types/cpm/MBasic.rb +311 -0
  442. data/lib/native_file_types/generic/GenericFile.rb +43 -0
  443. data/lib/native_file_types/trs80/Trs80Cmd.rb +130 -0
  444. data/lib/native_file_types/trs80/Trs80Jcl.rb +43 -0
  445. data/lib/native_file_types/trs80/Trs80LevelIIBasic.rb +201 -0
  446. data/lib/native_file_types/trs80/Trs80PascalSource.rb +58 -0
  447. data/lib/proc_source.rb +238 -0
  448. data/lib/rdoc_patch.rb +32 -0
  449. data/test/tc_file_cache.rb +11 -0
  450. data/test/tc_image_sniffing.rb +165 -0
  451. data/test/testhelper.rb +14 -0
  452. data/test/testlog.txt +30755 -0
  453. data/test/ts_test_all.rb +3 -0
  454. metadata +601 -0
@@ -0,0 +1,43 @@
1
+ require 'NativeFileType'
2
+ class AppleText<NativeFileType
3
+
4
+ def self.file_system_file_types
5
+ {
6
+ AppleDos=>0x00,
7
+ ProDos=>0x04
8
+ }
9
+ end
10
+
11
+ def to_text
12
+ s=""
13
+ contents.each_byte{|b| s+=Apple2.to_ascii(b) unless b==0}
14
+ s.tr("\r","\n")
15
+ end
16
+
17
+ end
18
+
19
+
20
+ # == Author
21
+ # Jonno Downes (jonno@jamtronix.com)
22
+ #
23
+ # == Copyright
24
+ # Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
25
+ #
26
+ #Permission is hereby granted, free of charge, to any person obtaining
27
+ #a copy of this software and associated documentation files (the
28
+ #"Software"), to deal in the Software without restriction, including
29
+ #without limitation the rights to use, copy, modify, merge, publish,
30
+ #distribute, sublicense, and/or sell copies of the Software, and to
31
+ #permit persons to whom the Software is furnished to do so, subject to
32
+ #the following conditions:
33
+
34
+ # The above copyright notice and this permission notice shall be
35
+ # included in all copies or substantial portions of the Software.
36
+
37
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
39
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
40
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
41
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
42
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
43
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,68 @@
1
+ require 'NativeFileType'
2
+ class AppleWorksWP<NativeFileType
3
+
4
+ def self.file_system_file_types
5
+ {
6
+ ProDos=>0x1A
7
+ }
8
+ end
9
+
10
+ #AWP format defined in http://www.umich.edu/~archive/apple2/technotes/ftn/FTN.1A.xxxx
11
+ def to_text
12
+ s=""
13
+ i=300 #skip 300 byte header
14
+ i+=2 if contents[183]>3 #skip the first invalid line if SFMInVers non-zero
15
+ while i<contents.length-4 do
16
+ command_byte_0=contents[i]
17
+ command_byte_1=contents[i+1]
18
+ i+=2
19
+ if command_byte_1==0xD0 then #it's a carriage return line - do nothing
20
+ elsif command_byte_1>0xD0 then #it's a command line - do nothing
21
+ else #it's a text record
22
+ bytes_in_line=command_byte_0
23
+ control_byte=contents[i+1]
24
+ chars_remaining=control_byte%0x80
25
+ contents[i+2..i+2+chars_remaining-1].each_byte do |b|
26
+ if b==0x16 then #tab char
27
+ s<<"\t"
28
+ elsif b==0x17 then
29
+ s<<" "
30
+ elsif b>=0x20 then
31
+ s<<b.chr
32
+ end
33
+ end
34
+ i+=bytes_in_line
35
+ s<<"\n"
36
+ end
37
+ end
38
+ s
39
+
40
+ end
41
+
42
+ end
43
+
44
+
45
+ # == Author
46
+ # Jonno Downes (jonno@jamtronix.com)
47
+ #
48
+ # == Copyright
49
+ # Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
50
+ #
51
+ #Permission is hereby granted, free of charge, to any person obtaining
52
+ #a copy of this software and associated documentation files (the
53
+ #"Software"), to deal in the Software without restriction, including
54
+ #without limitation the rights to use, copy, modify, merge, publish,
55
+ #distribute, sublicense, and/or sell copies of the Software, and to
56
+ #permit persons to whom the Software is furnished to do so, subject to
57
+ #the following conditions:
58
+
59
+ # The above copyright notice and this permission notice shall be
60
+ # included in all copies or substantial portions of the Software.
61
+
62
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
63
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
64
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
65
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
66
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
67
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
68
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,115 @@
1
+ require 'NativeFileType'
2
+ class Applesoft<NativeFileType
3
+
4
+ def self.file_system_file_types
5
+ {
6
+ AppleDos=>0x02,
7
+ ProDos=>0xFC
8
+ }
9
+ end
10
+
11
+ APPLESOFT_TOKENS = [
12
+ "END","FOR","NEXT","DATA","INPUT","DEL","DIM","READ",
13
+ "GR","TEXT","PR#","IN#","CALL","PLOT","HLIN","VLIN",
14
+ "HGR2","HGR","HCOLOR=","HPLOT","DRAW","XDRAW","HTAB",
15
+ "HOME","ROT=","SCALE=","SHLOAD","TRACE","NOTRACE",
16
+ "NORMAL","INVERSE","FLASH","COLOR=","POP","VTAB",
17
+ "HIMEM=","LOMEM=","ONERR","RESUME","RECALL","STORE",
18
+ "SPEED=","LET","GOTO","RUN","IF","RESTORE","&","GOSUB",
19
+ "RETURN","REM","STOP","ON","WAIT","LOAD","SAVE","DEF",
20
+ "POKE","PRINT","CONT","LIST","CLEAR","GET","NEW",
21
+ "TAB(","TO","FN","SPC(","THEN","AT","NOT","STEP","+",
22
+ "-","*","/","^","AND","OR",">","=","<","SGN","INT",
23
+ "ABS","USR","FRE","SCRN(","PDL","POS","SQR","RND",
24
+ "LOG","EXP","COS","SIN","TAN","ATN","PEEK","LEN",
25
+ "STR$","VAL","ASC","CHR$", "LEFT$","RIGHT$","MID$","?",
26
+ "?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?"
27
+ ]
28
+
29
+ def to_listing
30
+ # Adapted from FID.C -- a utility to browse Apple II .DSK image files by Paul Schlyter (pausch@saaf.se)
31
+ #
32
+ #Applesoft file format:
33
+ # <Length_of_file> (16-bit little endian) (only for Apple DOS files - these 2 bytes are not present in Applesoft file on ProDOS)
34
+ # <Line>
35
+ # ......
36
+ # <Line>
37
+ # where <Line> is:
38
+ # <Next addr> (16-bit little endian)
39
+ # <Line no> (16-bit little endian: 0-65535)
40
+ # <Tokens and/or characters>
41
+ # <End-of-line marker: $00 >
42
+ #
43
+ if (file_system_image.file_system)==AppleDos then
44
+ length=contents[0]+contents[1]*256
45
+ index=2
46
+ else
47
+ length=contents.length
48
+ index=0
49
+
50
+ end
51
+ s=""
52
+ while (index<length)
53
+ index+=2 #skip over the "next address" field
54
+ break if contents[index].nil?
55
+ break if contents[index+1].nil?
56
+ line_no=contents[index]+contents[index+1]*256
57
+ index+=2 #skip over the "line number" field
58
+ s+=sprintf("%u",line_no)
59
+ done_line=false
60
+ last_char_space=false
61
+ inside_quotes=true
62
+ while (!done_line)
63
+ b=contents[index]
64
+ break if b.nil?
65
+ inside_quotes=!inside_quotes if b==0x22
66
+ if b>=0x80 then
67
+ if inside_quotes then
68
+ if !last_char_space then
69
+ s+=" "
70
+ end
71
+ s+=APPLESOFT_TOKENS[b-0x80]+" "
72
+ last_char_space=true
73
+ else
74
+ s+=(b-0x80).chr #if we're inside quotes, bytes >80 are inverse text. but we'll just display them as normal text
75
+ end
76
+ else
77
+ s+=b.chr
78
+ last_char_space=false
79
+ end
80
+ index+=1
81
+ done_line=(index>=length)||(contents[index]==0)
82
+ end
83
+ s+="\n"
84
+ index+=1 # skip over "end of line" marker
85
+ end
86
+ #s
87
+ s
88
+ end
89
+ end
90
+
91
+
92
+ # == Author
93
+ # Jonno Downes (jonno@jamtronix.com)
94
+ #
95
+ # == Copyright
96
+ # Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
97
+ #
98
+ #Permission is hereby granted, free of charge, to any person obtaining
99
+ #a copy of this software and associated documentation files (the
100
+ #"Software"), to deal in the Software without restriction, including
101
+ #without limitation the rights to use, copy, modify, merge, publish,
102
+ #distribute, sublicense, and/or sell copies of the Software, and to
103
+ #permit persons to whom the Software is furnished to do so, subject to
104
+ #the following conditions:
105
+
106
+ # The above copyright notice and this permission notice shall be
107
+ # included in all copies or substantial portions of the Software.
108
+
109
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
110
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
111
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
112
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
113
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
114
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
115
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,217 @@
1
+ require 'NativeFileType'
2
+ class IntegerBASIC<NativeFileType
3
+
4
+ def IntegerBASIC.file_system_file_types
5
+ {
6
+ AppleDos=>0x01
7
+ }
8
+ end
9
+
10
+
11
+ # Adapted from FID.C -- a utility to browse Apple II .DSK image files by Paul Schlyter (pausch@saaf.se)
12
+ #Integer Basic file format:
13
+ # <Length_of_file> (16-bit little endian)
14
+ # <Line>
15
+ # ......
16
+ # <Line>
17
+ #
18
+ # where <Line> is:
19
+ # 1 byte: Line length
20
+ # 2 bytes: Line number, binary little endian
21
+ # <token>
22
+ # <token>
23
+ # <token>
24
+ # ......
25
+ # <end-of-line token>
26
+ #
27
+ # <token> is one of:
28
+ # $12 - $7F: Tokens as listed below: 1 byte/token
29
+ # $80 - $FF: ASCII characters with high bit set
30
+ # $B0 - $B9: Integer constant, 3 bytes: $B0-$B9,
31
+ # followed by the integer value in
32
+ # 2-byte binary little-endian format
33
+ # (Note: a $B0-$B9 byte preceded by an
34
+ # alphanumeric ASCII(hi_bit_set) byte
35
+ # is not the start of an integer
36
+ # constant, but instead part of a
37
+ # variable name)
38
+ #
39
+ # <end-of-line token> is:
40
+ # $01: One byte having the value $01
41
+ # (Note: a $01 byte may also appear
42
+ # inside an integer constant)
43
+ #
44
+ # Note that the tokens $02 to $11 represent commands which
45
+ # can be executed as direct commands only -- any attempt to
46
+ # enter then into an Integer Basic program will be rejected
47
+ # as a syntax error. Therefore, no Integer Basic program
48
+ # which was entered through the Integer Basic interpreter
49
+ # will contain any of the tokens $02 to $11. The token $00
50
+ # appears to be unused and won't appear in Integer Basic
51
+ # programs either. However, $00 is used as an end-of-line
52
+ # marker in S-C Assembler source files, which also are of
53
+ # DOS file type "I".
54
+ #
55
+ # (note here a difference from Applesoft Basic, where there
56
+ # are no "direct mode only" commands - any Applesoft commands
57
+ # can be entered into an Applesoft program as well).
58
+ def to_listing
59
+ length=contents[0]+contents[1]*256
60
+ index=2
61
+ s=""
62
+
63
+ while (index<length)
64
+ in_REM = false
65
+ in_QUOTE = false
66
+ lead_SP = false
67
+ last_AN = false
68
+ last_TOK = false
69
+
70
+ line_length=contents[index]
71
+ index+=1 #skip over the "line length" field
72
+ line_no=contents[index]+contents[index+1]*256
73
+ index+=2 #skip over the "line number" field
74
+ s+=sprintf("%u ",line_no)
75
+ done_line=false
76
+ while (!done_line)
77
+ lead_SP = lead_SP || last_AN
78
+ b=contents[index]
79
+ if (b >= 0x80 ) then
80
+ if ( !in_REM && !in_QUOTE && !last_AN && (b>= 0xB0 && b <= 0xB9) ) then
81
+ integer = contents[index+1]+contents[index+2]*256
82
+ index+=2
83
+ s+=sprintf( (last_TOK && lead_SP ) ? " %d" : "%d", integer )
84
+ lead_SP = true
85
+ else
86
+
87
+ c = b & 0x7F
88
+ if (!in_REM && !in_QUOTE && last_TOK && lead_SP && is_alnum(c)) then
89
+ s+=" "
90
+ end
91
+ if ( c >= 0x20 ) then
92
+ s+=c.chr
93
+ else
94
+ s+="^"+(c+0x40).chr
95
+ end
96
+ last_AN = is_alnum(c)
97
+ end
98
+ last_TOK =false
99
+ else
100
+
101
+ token = INTEGER_BASIC_TOKENS[b]
102
+ lastchar = token[token.length-1]
103
+ case b
104
+ when IB_REM_TOKEN then in_REM = true
105
+ when IB_QUOTE_START then in_QUOTE = true
106
+ when IB_QUOTE_END then in_QUOTE = false
107
+ end
108
+
109
+ if lead_SP && ( is_alnum(token[0]) ||
110
+ b == IB_UNARY_PLUS ||
111
+ b == IB_UNARY_MINUS ||
112
+ b == IB_QUOTE_START ) then
113
+ s+=" "
114
+ end
115
+ s+=token
116
+ last_AN = false
117
+ lead_SP = is_alnum(lastchar) || lastchar == ')' || lastchar == '\"'
118
+ last_TOK = true
119
+ end
120
+ index+=1
121
+ done_line=(index>length)||(contents[index]==0x01)
122
+ end
123
+ s+="\n"
124
+ index+=1 # skip over "end of line" marker
125
+ end
126
+ s
127
+
128
+ end
129
+
130
+ private
131
+
132
+ IB_REM_TOKEN =0x5D
133
+ IB_UNARY_PLUS = 0x35
134
+ IB_UNARY_MINUS = 0x36
135
+ IB_QUOTE_START = 0x28
136
+ IB_QUOTE_END = 0x29
137
+ INTEGER_BASIC_TOKENS= [
138
+ # $00-$0F
139
+ "HIMEM:","<$01>", "_", " : ",
140
+ "LOAD", "SAVE", "CON", "RUN", # Direct commands
141
+ "RUN", "DEL", ",", "NEW",
142
+ "CLR", "AUTO", ",", "MAN",
143
+
144
+ # $10-$1F
145
+ "HIMEM:","LOMEM:","+", "-", # Binary ops
146
+ "*", "/", "=", "#",
147
+ ">=", ">", "<=", "<>",
148
+ "<", "AND", "OR", "MOD",
149
+
150
+ # $20-$2F
151
+ "^", "+", "(", ",",
152
+ "THEN", "THEN", ",", ",",
153
+ "\"", "\"", "(", "!",
154
+ "!", "(", "PEEK", "RND",
155
+
156
+ # $30-$3F
157
+ "SGN", "ABS", "PDL", "RNDX",
158
+ "(", "+", "-", "NOT", # Unary ops
159
+ "(", "=", "#", "LEN(",
160
+ "ASC(", "SCRN(", ",", "(",
161
+
162
+ # $40-$4F
163
+ "$", "$", "(", ",",
164
+ ",", ";", ";", ";",
165
+ ",", ",", ",", "TEXT", # Statements
166
+ "GR", "CALL", "DIM", "DIM",
167
+
168
+ # $50-$5F
169
+ "TAB", "END", "INPUT", "INPUT",
170
+ "INPUT", "FOR", "=", "TO",
171
+ "STEP", "NEXT", ",", "RETURN",
172
+ "GOSUB", "REM", "LET", "GOTO",
173
+
174
+ # $60-$6F
175
+ "IF", "PRINT", "PRINT", "PRINT",
176
+ "POKE", ",", "COLOR=","PLOT",
177
+ ",", "HLIN", ",", "AT",
178
+ "VLIN", ",", "AT", "VTAB",
179
+
180
+ # $70-$7F
181
+ "=", "=", ")", ")",
182
+ "LIST", ",", "LIST", "POP",
183
+ "NODSP", "DSP", "NOTRACE","DSP",
184
+ "DSP", "TRACE", "PR#", "IN#",
185
+ ]
186
+
187
+ def is_alnum(c)
188
+ !((c.chr=~/[A-Za-z0-9]/).nil?)
189
+ end
190
+
191
+ end
192
+
193
+
194
+ # == Author
195
+ # Jonno Downes (jonno@jamtronix.com)
196
+ #
197
+ # == Copyright
198
+ # Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
199
+ #
200
+ #Permission is hereby granted, free of charge, to any person obtaining
201
+ #a copy of this software and associated documentation files (the
202
+ #"Software"), to deal in the Software without restriction, including
203
+ #without limitation the rights to use, copy, modify, merge, publish,
204
+ #distribute, sublicense, and/or sell copies of the Software, and to
205
+ #permit persons to whom the Software is furnished to do so, subject to
206
+ #the following conditions:
207
+
208
+ # The above copyright notice and this permission notice shall be
209
+ # included in all copies or substantial portions of the Software.
210
+
211
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
212
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
213
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
214
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
215
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
216
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
217
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,205 @@
1
+ require 'NativeFileType'
2
+
3
+ class NADOLFile<NativeFileType
4
+
5
+ def self.file_system_file_types
6
+ {
7
+ NADOLDos=>:any
8
+ }
9
+ end
10
+
11
+ #NADOL files have always load to $8000
12
+ def self.load_address(contents)
13
+ 0x8000
14
+ end
15
+
16
+ end
17
+
18
+ #file packed by the NADOL EDITOR application.
19
+ #format is a series of unnumbered lines, where each line has the following format:
20
+ # <Length> (8-bit: including length byte, contents, zero>
21
+ # <Tokens and/or Characters>
22
+ # <Zero byte> ($00, to mark the end of the line)
23
+ # each byte in the line is interpreted as follows:
24
+ # $00 - end of line marker
25
+ # $01 - $64 - NADOL tokens
26
+ # $65 - $70 - ??? unknown
27
+ # $71 - $7f - 1 to F spaces
28
+ # $80 - $FF - ASCII character with high bit set
29
+ class NADOLTokens<NADOLFile
30
+
31
+ NADOL_EDITOR_TOKENS = [
32
+ "?", #00 (so we can use token as an index in to this array)
33
+ "READ(", #01
34
+ "FREE(", #02
35
+ "NOT(", #03
36
+ "LENGTH(", #04
37
+ "PDL(", #05
38
+ "SIZEOF(", #06
39
+ "LSCRN(", #07
40
+ "HSCRN(", #08
41
+ "CHECK(", #09
42
+ "MAKE(", #0a
43
+ "SCREEN(", #0b
44
+ "HEXPACK ",#0c
45
+ "PROCEDURE ",#0d
46
+ "ENDPROC", #0e
47
+ "FUNCTION ",#0f
48
+ "ENDFUNC", #10
49
+ "IF ", #11
50
+ "ELSE", #12
51
+ "ENDIF", #13
52
+ "WHILE ", #14
53
+ "ENDWHILE",#15
54
+ "DEFINE ", #16
55
+ "RESULT=", #17
56
+ "PRINT", #18
57
+ "PRINTHEX",#19
58
+ "PRINTBYTE",#1a
59
+ "LABEL ", #1b
60
+ "GOTO ", #1c
61
+ "INVERSE", #1d
62
+ "NORMAL", #1e
63
+ "FLASH", #1f
64
+ "CASE ", #20
65
+ "GOTOXY(", #21
66
+ "CLEAR", #22
67
+ "NEW", #23
68
+ "HOME", #24
69
+ "CLREOL", #25
70
+ "CLREOP", #26
71
+ "PRBLOCK(",#27
72
+ "STOP", #28
73
+ "COPY(", #29
74
+ "FILL(", #2a
75
+ "MASK(", #2b
76
+ "RSECT(", #2c
77
+ "WSECT(", #2d
78
+ "RBLOCK(", #2e
79
+ "WBLOCK(", #2f
80
+ "WTRACK(", #30
81
+ "WSYNC(", #31
82
+ "RECAL(", #32
83
+ "DISPLAY(",#33
84
+ "RTRACK(", #34
85
+ "RSYNC(", #35
86
+ "BEEP(", #36
87
+ "DISASM(", #37
88
+ "TEXT", #38
89
+ "FORMAT(", #39
90
+ "SETFORMAT(",#3a
91
+ "WORKDRIVE ",#3b
92
+ "INIT ", #3c
93
+ "LOAD ", #3d
94
+ "SAVE ", #3e
95
+ "CATALOG", #3f
96
+ "DELETE ", #40
97
+ "RENAME ", #41
98
+ "PACK ", #42
99
+ "CONVERT(",#43
100
+ "INPUT(", #44
101
+ "LORES", #45
102
+ "PLOT(", #46
103
+ "HLINE(", #47
104
+ "VLINE(", #48
105
+ "COLOR=", #49
106
+ "FIND(", #4a
107
+ "HIRES", #4b
108
+ "HCOLOR=", #4c
109
+ "HPLOT", #4d
110
+ "CALL(", #4e
111
+ "PR#", #4f
112
+ "IN#", #50
113
+ "FILTER(", #51
114
+ "LIST", #52
115
+ "RUN", #53
116
+ "AUXMOVE(",#54
117
+ "LCMOVE(", #55
118
+ "DELAY(", #56
119
+ "INTEGER", #57
120
+ "BYTE", #58
121
+ " AND ", #59
122
+ " OR ", #5a
123
+ " MOD ", #5b
124
+ " XOR ", #5c
125
+ " WITH ", #5d
126
+ " TO ", #5e
127
+ " AT ", #5f
128
+ "TAB(", #60
129
+ "ENDCASE", #61
130
+ "MON:", #62
131
+ "EDIT", #63
132
+ "SAVE@" #64
133
+ ]
134
+
135
+ #heuristics are:
136
+ #that each line starts with a line length and ends with a "0"
137
+ is_valid_file_if lambda {
138
+ is_valid=true
139
+ i=0
140
+ while i<contents.length && is_valid
141
+ line_length=contents[i]
142
+ if contents[i+line_length-1]!=0 then
143
+ is_valid=false
144
+ end
145
+ i+=line_length
146
+ end
147
+ is_valid
148
+ }
149
+
150
+ def to_listing
151
+ s=""
152
+ index=0
153
+ while (index<contents.length)
154
+ line_length=contents[index]
155
+ index+=1
156
+ end_of_line=index+line_length-2
157
+ while(index<end_of_line)
158
+ b=contents[index]
159
+ if (b<=0x64) then
160
+ s+=NADOL_EDITOR_TOKENS[b]
161
+ elsif(b>0x70 and b<0x80) then
162
+ s+=" "*(b-0x70)
163
+ elsif(b>=0x80) then
164
+ s+=(b-0x80).chr
165
+ else
166
+ raise sprintf("unknown token %02X at offset %04X",b,index)
167
+ end
168
+ index+=1 #move to next char
169
+ end
170
+ index+=1 #skip over end-of-line marker
171
+ s+="\n"
172
+ end
173
+ s
174
+
175
+ end
176
+ end
177
+
178
+
179
+
180
+
181
+
182
+ # == Author
183
+ # Jonno Downes (jonno@jamtronix.com)
184
+ #
185
+ # == Copyright
186
+ # Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
187
+ #
188
+ #Permission is hereby granted, free of charge, to any person obtaining
189
+ #a copy of this software and associated documentation files (the
190
+ #"Software"), to deal in the Software without restriction, including
191
+ #without limitation the rights to use, copy, modify, merge, publish,
192
+ #distribute, sublicense, and/or sell copies of the Software, and to
193
+ #permit persons to whom the Software is furnished to do so, subject to
194
+ #the following conditions:
195
+
196
+ # The above copyright notice and this permission notice shall be
197
+ # included in all copies or substantial portions of the Software.
198
+
199
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
200
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
201
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
202
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
203
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
204
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
205
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,48 @@
1
+ require 'NativeFileType'
2
+
3
+ class PascalFile<NativeFileType
4
+
5
+ PASCAL_FILE_TYPES=[:untyped,:xdsk,:code,:text,:info,:data,:graf,:foto,:securedir]
6
+
7
+ def PascalFile.file_system_file_types
8
+ {
9
+ PascalDos=>:any
10
+ }
11
+ end
12
+
13
+ def type_description
14
+ "PascalFile:#{PASCAL_FILE_TYPES[file_type]}"
15
+ end
16
+
17
+ end
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+ # == Author
26
+ # Jonno Downes (jonno@jamtronix.com)
27
+ #
28
+ # == Copyright
29
+ # Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
30
+ #
31
+ #Permission is hereby granted, free of charge, to any person obtaining
32
+ #a copy of this software and associated documentation files (the
33
+ #"Software"), to deal in the Software without restriction, including
34
+ #without limitation the rights to use, copy, modify, merge, publish,
35
+ #distribute, sublicense, and/or sell copies of the Software, and to
36
+ #permit persons to whom the Software is furnished to do so, subject to
37
+ #the following conditions:
38
+
39
+ # The above copyright notice and this permission notice shall be
40
+ # included in all copies or substantial portions of the Software.
41
+
42
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
43
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
44
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
45
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
46
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
47
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
48
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.