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,311 @@
1
+ require 'NativeFileType'
2
+
3
+
4
+ #the CP/M MBASIC file format is very similar to the MS-DOS BASICA/GWBASIC formats, described at
5
+ #http://www.chebucto.ns.ca/~af380/GW-BASIC-tokens.html
6
+ class MBasic<CPMFile
7
+
8
+ def MBasic.file_system_file_types
9
+ {
10
+ AppleCPM=>"BAS",
11
+ }
12
+ end
13
+
14
+
15
+ SINGLE_BYTE_TOKENS={
16
+ 0x81=>'END',
17
+ 0x82=>'FOR',
18
+ 0x83=>'NEXT',
19
+ 0x84=>'DATA',
20
+ 0x85=>'INPUT',
21
+ 0x86=>'DIM',
22
+ 0x87=>'READ',
23
+ 0x88=>'LET',
24
+ 0x89=>'GOTO',
25
+ 0x8A=>'RUN',
26
+ 0x8B=>'IF',
27
+ 0x8C=>'RESTORE',
28
+ 0x8D=>'GOSUB',
29
+ 0x8E=>'RETURN',
30
+ 0x8F=>'REM',
31
+ 0x90=>'STOP',
32
+ 0x91=>'PRINT',
33
+ 0x92=>'CLEAR',
34
+ 0x93=>'LIST',
35
+ 0x94=>'NEW',
36
+ 0x95=>'ON',
37
+ 0x96=>'DEF',
38
+ 0x97=>'POKE',
39
+ 0x98=>'CONT',
40
+ 0x9B=>'LPRINT',
41
+ 0x9C=>'LLIST',
42
+ 0x9D=>'WIDTH',
43
+ 0x9E=>'ELSE',
44
+ 0x9F=>'TRACE',
45
+ 0xA0=>'NOTRACE',
46
+ 0xA1=>'SWAP',
47
+ 0xA2=>'ERASE',
48
+ 0xA3=>'EDIT',
49
+ 0xA4=>'ERROR',
50
+ 0xA5=>'RESUME',
51
+ 0xA6=>'DEL',
52
+ 0xA7=>'AUTO',
53
+ 0xA8=>'RENUM',
54
+ 0xA9=>'DEFSTR',
55
+ 0xAA=>'DEFINT',
56
+ 0xAB=>'DEFSNG',
57
+ 0xAC=>'DEFDBL',
58
+ 0xAD=>'LINE',
59
+ 0xAE=>'POP',
60
+ 0xAF=>'WHILE',
61
+ 0xB0=>'WEND',
62
+ 0xB1=>'CALL',
63
+ 0xB2=>'WRITE',
64
+ 0xB3=>'COMMON',
65
+ 0xB4=>'CHAIN',
66
+ 0xB5=>'OPTION',
67
+ 0xB6=>'RANDOMIZE',
68
+ 0xB7=>'SYSTEM',
69
+ 0xB8=>'OPEN',
70
+ 0xB9=>'FIELD',
71
+ 0xBA=>'GET',
72
+ 0xBB=>'PUT',
73
+ 0xBC=>'CLOSE',
74
+ 0xBD=>'LOAD',
75
+ 0xBE=>'MERGE',
76
+ 0xBF=>'FILES',
77
+ 0xC0=>'NAME',
78
+ 0xC1=>'KILL',
79
+ 0xC2=>'LSET',
80
+ 0xC3=>'RSET',
81
+ 0xC4=>'SAVE',
82
+ 0xC5=>'RESET',
83
+ 0xC6=>'TEXT',
84
+ 0xC7=>'HOME',
85
+ 0xC8=>'VTAB',
86
+ 0xC9=>'HTAB',
87
+ 0xCA=>'INVERSE',
88
+ 0xCB=>'NORMAL',
89
+ 0xCC=>'GR',
90
+ 0xCD=>'COLOR',
91
+ 0xCE=>'HLIN',
92
+ 0xCF=>'VLIN',
93
+ 0xD0=>'PLOT',
94
+ 0xD1=>'HGR',
95
+ 0xD2=>'HPLOT',
96
+ 0xD3=>'HCOLOR',
97
+ 0xD4=>'BEEP',
98
+ 0xD5=>'WAIT',
99
+ 0xDD=>'TO',
100
+ 0xDE=>'THEN',
101
+ 0xDF=>'TAB(',
102
+ 0xE0=>'STEP',
103
+ 0xE1=>'USR',
104
+ 0xE2=>'FN',
105
+ 0xE3=>'SPC(',
106
+ 0xE4=>'NOT',
107
+ 0xE5=>'ERL',
108
+ 0xE6=>'ERR',
109
+ 0xE7=>'STRING$',
110
+ 0xE8=>'USING',
111
+ 0xE9=>'INSTR',
112
+ 0xEA=>"'",
113
+ 0xEB=>'VARPTR',
114
+ 0xEC=>'SCRN',
115
+ 0xED=>'HSCRN',
116
+ 0xEE=>'INKEY$',
117
+ 0xEF=>'>',
118
+ 0xF0=>'=',
119
+ 0xF1=>'<',
120
+ 0xF2=>'+',
121
+ 0xF3=>'-',
122
+ 0xF4=>'*',
123
+ 0xF5=>'/',
124
+ 0xF6=>'^',
125
+ 0xF7=>'AND',
126
+ 0xF8=>'OR',
127
+ 0xF9=>'XOR',
128
+ 0xFA=>'EQV',
129
+ 0xFB=>'IMP',
130
+ 0xFC=>'MOD',
131
+ 0xFD=>'\\',
132
+ }
133
+ DOUBLE_BYTE_TOKENS={
134
+ 0x81=>'LEFT$',
135
+ 0x82=>'RIGHT$',
136
+ 0x83=>'MID$',
137
+ 0x84=>'SGN',
138
+ 0x85=>'INT',
139
+ 0x87=>'SQR',
140
+ 0x88=>'RND',
141
+ 0x89=>'SIN',
142
+ 0x8A=>'LOG',
143
+ 0x8B=>'EXP',
144
+ 0x8C=>'COS',
145
+ 0x8D=>'TAN',
146
+ 0x8E=>'ATN',
147
+ 0x8F=>'FRE',
148
+ 0x90=>'POS',
149
+ 0x91=>'LEN',
150
+ 0x92=>'STR$',
151
+ 0x93=>'VAL',
152
+ 0x94=>'ASC',
153
+ 0x95=>'CHR$',
154
+ 0x96=>'PEEK',
155
+ 0x97=>'SPACE$',
156
+ 0x98=>'OCT$',
157
+ 0x99=>'HEX$',
158
+ 0x9A=>'LPOS',
159
+ 0x9B=>'CINT',
160
+ 0x9C=>'CSNG',
161
+ 0x9D=>'CDBL',
162
+ 0x9E=>'FIX',
163
+ 0xAA=>'CVI',
164
+ 0xAB=>'CVS',
165
+ 0xAC=>'CVD',
166
+ 0xAE=>'EOF',
167
+ 0xAF=>'LOC',
168
+ 0xB0=>'LOF',
169
+ 0xB1=>'MKI$',
170
+ 0xB2=>'MKS$',
171
+ 0xB3=>'MKD$',
172
+ 0xB4=>'VPOS',
173
+ 0xB5=>'PDL',
174
+ 0xB6=>'BUTTON',
175
+ }
176
+
177
+
178
+ def to_listing
179
+ if @contents[0]==0xFF then
180
+ buffer_as_gbasic(@contents)
181
+ else
182
+ @contents
183
+ end
184
+ end
185
+
186
+ private
187
+ def parse_bytes_as_float(bytes)
188
+ return 0.0 if bytes[0]==0
189
+ exponent=2**(bytes[0]-0x80)
190
+ first_byte=bytes[1]
191
+ sign=-1.0 #assume it's negative
192
+ if first_byte<0x80 then
193
+ sign=1.0
194
+ first_byte+=0x80
195
+ end
196
+ mantissa=(first_byte/256.0)*sign
197
+ 2.upto(bytes.length-1) do |i|
198
+ mantissa+=(bytes[i]/(256.0**i))
199
+ end
200
+ return sprintf("%8f",exponent*mantissa).to_f
201
+ end
202
+
203
+
204
+ def buffer_as_gbasic(buffer)
205
+ s=""
206
+ p=1
207
+ while(p<buffer.length) && (buffer[p]!=0)
208
+ p+=2 #skip the 2 byte pointer to the start of next line
209
+ line_number=buffer[p]+(buffer[p+1]<<8)
210
+ p+=2
211
+ s+= "#{line_number} "
212
+ while(p<buffer.length) && (buffer[p]!=0)
213
+ c=buffer[p]
214
+ p+=1
215
+
216
+ if (c==0x3A) then #if its a ':'
217
+
218
+ if buffer[p]==0x9E then #ELSE is actually stored as :ELSE
219
+ c=buffer[p]
220
+ p+=1
221
+ end
222
+ if buffer[p]==0x8F then #' is actually stored as :REM'
223
+ c=buffer[p+1]
224
+ p+=2
225
+ end
226
+ end
227
+ if c<0x20 then
228
+ case (c)
229
+ when 0x0B #OCTAL CONSTANT
230
+ constant=buffer[p]+(buffer[p+1]<<8)
231
+ s+=sprintf("&O%o",constant)
232
+ p+=2
233
+
234
+ when 0x0C #HEX CONSTANT
235
+ constant=buffer[p]+(buffer[p+1]<<8)
236
+ s+=sprintf("&H%X",constant)
237
+ p+=2
238
+ when 0x0E #DECIMAL LINE NUMBER
239
+ constant=buffer[p]+(buffer[p+1]<<8)
240
+ s+=sprintf("%d",constant)
241
+ p+=2
242
+ when 0x0F #one byte constant
243
+ constant=buffer[p]
244
+ s+=sprintf("%d",constant)
245
+ p+=1
246
+ when 0x11..0x1B #packed constant 0..9
247
+ s+=sprintf("%d",c-0x11)
248
+ when 0x1C #DECIMAL LINE NUMBER
249
+ constant=buffer[p]+(buffer[p+1]<<8)
250
+ s+=sprintf("%d",constant)
251
+ p+=2
252
+ when 0x1D #4 byte floating point
253
+ constant=parse_bytes_as_float(buffer[p..p+3].reverse)
254
+ s+=constant.to_s
255
+ p+=4
256
+ when 0x1F #8 byte floating point
257
+ constant=parse_bytes_as_float(buffer[p..p+7].reverse)
258
+ s+=constant.to_s
259
+ p+=8
260
+ end
261
+
262
+ elsif c<0x80 then
263
+ s+=c.chr
264
+ else
265
+
266
+ if c==0xFF then
267
+
268
+ c=buffer[p]
269
+ p+=1
270
+ token=DOUBLE_BYTE_TOKENS[c]
271
+ else
272
+ token=SINGLE_BYTE_TOKENS[c]
273
+ end
274
+ s+=(token.nil?) ? sprintf("[%02X]",c):token
275
+
276
+ end
277
+ end
278
+ s+="\n"
279
+ p+=1
280
+ end
281
+ s
282
+ end
283
+
284
+
285
+ end
286
+
287
+
288
+ # == Author
289
+ # Jonno Downes (jonno@jamtronix.com)
290
+ #
291
+ # == Copyright
292
+ # Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
293
+ #
294
+ #Permission is hereby granted, free of charge, to any person obtaining
295
+ #a copy of this software and associated documentation files (the
296
+ #"Software"), to deal in the Software without restriction, including
297
+ #without limitation the rights to use, copy, modify, merge, publish,
298
+ #distribute, sublicense, and/or sell copies of the Software, and to
299
+ #permit persons to whom the Software is furnished to do so, subject to
300
+ #the following conditions:
301
+
302
+ # The above copyright notice and this permission notice shall be
303
+ # included in all copies or substantial portions of the Software.
304
+
305
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
306
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
307
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
308
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
309
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
310
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
311
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,43 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ class GenericFile<NativeFileType
5
+
6
+ def self.file_system_file_types
7
+ r={}
8
+ FileSystem.all_file_systems.each { |fs| r[fs]=:any}
9
+ r
10
+ end
11
+
12
+ #needs to be low score, so doesn't override anything else
13
+ def self.matching_score
14
+ 0.1
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,130 @@
1
+ require 'NativeFileType'
2
+
3
+ #for breakdown of CMD format, see http://www.tim-mann.org/trs80/doc/ldosq1-4.txt ( Roy's Technical Corner P42)
4
+ #
5
+ # files consist of unordered records.
6
+ # reach record consists of a one byte record type, followed by a 2 byte record length field, followed by a data area (who's length is specified by the 'record length' field
7
+ #
8
+ # TYPE DATA AREA
9
+ # ---- ---------
10
+ # 01 object code (load block)
11
+ # 02 transfer address
12
+ # 04 end of partitioned data set member
13
+ # 05 load module header
14
+ # 06 partitioned data set header
15
+ # 07 patch name header
16
+ # 08 ISAM directory entry
17
+ # 0A end of ISAM directory
18
+ # 0C PDS directory entry
19
+ # 0E end of PDS directory
20
+ # 10 yanked load block
21
+ # 1F copyright block
22
+
23
+ class Trs80Cmd<NativeFileType
24
+
25
+ is_valid_file_if lambda {contents[0].between?(1,0x15)}
26
+ @records=nil
27
+
28
+ def records
29
+ parse_records if @records.nil?
30
+ @records
31
+ end
32
+
33
+ #use the first 'load object code' record as the load address for the whole program
34
+ def load_address
35
+ records.each do |record|
36
+ if record[:record_type]==0x01 then
37
+ data_area=record[:data_area]
38
+ return (data_area[0]+data_area[1]*256)
39
+ end
40
+ end
41
+ 0 #if no 'object code' records found, use 0 as the load address
42
+ end
43
+
44
+ def self.file_system_file_types
45
+ {
46
+ TrsDos=>:any
47
+ }
48
+ end
49
+
50
+
51
+ def to_listing
52
+ s=""
53
+ records.each do |record|
54
+ record_type=record[:record_type]
55
+ data_area=record[:data_area]
56
+ record_length=data_area.length
57
+ s+= ";RECORD TYPE $#{"%02X" %record_type} OFFSET $#{"%02X" % p} LENGTH $#{"%2X" % record_length}\n"
58
+ case record_type
59
+ when 0x01 then #load object code
60
+ load_address=data_area[0]+data_area[1]*256
61
+ s+= ";\tLOAD $#{"%02X" % (data_area.length-2)} BYTES OF OBJECT CODE TO $#{"%02X" % load_address}\n"
62
+ when 0x02 then #transfer
63
+ transfer_address=data_area[0]+data_area[1]*256
64
+ s+= ";\tTRANSFER ADDRESS $#{"%02X" % transfer_address}\n"
65
+ when 0x05 then #load module
66
+ s+= ";\tMODULE HEADER #{data_area}\n"
67
+ end
68
+ end
69
+ s
70
+ end
71
+
72
+ private
73
+ def parse_records
74
+ @records=[]
75
+ p=0
76
+ done=false
77
+ while p<contents.length && !done
78
+ record_type=contents[p]
79
+ if record_type>=0x20 then
80
+ break
81
+ end
82
+
83
+ record_length=contents[p+1]
84
+ record_length=256 if record_length==0
85
+
86
+ #if this is a 'load' record, the following two bytes are the address to load the data record into
87
+ # in order to allow up to 256 bytes to be load, lengths of 1 & 2 really mean lengths of 257 and 258 respecitively.
88
+ if (record_type==0x01) then
89
+ record_length=case record_length
90
+ when 1 then 257
91
+ when 2 then 258
92
+ else record_length
93
+ end
94
+ end
95
+
96
+ data_area=contents[p+2,record_length]
97
+ @records<<{:record_type=>record_type,:data_area=>data_area}
98
+ done=([0x00,0x02].include?(record_type))
99
+ p+=(record_length+2)
100
+ end
101
+ end
102
+
103
+ end
104
+
105
+
106
+
107
+ # == Author
108
+ # Jonno Downes (jonno@jamtronix.com)
109
+ #
110
+ # == Copyright
111
+ # Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
112
+ #
113
+ #Permission is hereby granted, free of charge, to any person obtaining
114
+ #a copy of this software and associated documentation files (the
115
+ #"Software"), to deal in the Software without restriction, including
116
+ #without limitation the rights to use, copy, modify, merge, publish,
117
+ #distribute, sublicense, and/or sell copies of the Software, and to
118
+ #permit persons to whom the Software is furnished to do so, subject to
119
+ #the following conditions:
120
+
121
+ # The above copyright notice and this permission notice shall be
122
+ # included in all copies or substantial portions of the Software.
123
+
124
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
125
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
126
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
127
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
128
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
129
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
130
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,43 @@
1
+ require 'NativeFileType'
2
+
3
+
4
+ class Trs80Jcl<NativeFileType
5
+
6
+ def self.file_system_file_types
7
+ {
8
+ TrsDos=>"JCL"
9
+ }
10
+ end
11
+
12
+ def to_listing
13
+ contents.gsub("\r","\n")
14
+ end
15
+
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.