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,148 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ $:.unshift(File.dirname(__FILE__+"\\..")) unless
5
+ $:.include?(File.dirname(__FILE__+"\\..")) || $:.include?(File.expand_path(File.dirname(__FILE__+"\\..")))
6
+
7
+
8
+ require 'FileSystem'
9
+ #TRSDOS (and compatables, e.g. LDOS, NEWDOS)
10
+ #Reference - http://www.classic-computers.org.nz/system-80/software-manuals/manuals-NewDOS-80_v2.0_manual.pdf pages 99-101
11
+ #sectors 2-9 of the directory track (17) contain File Primary Directory Entries, which are 32 bytes made up of:
12
+ # byte $00:
13
+ # bit 7 : 0 = FPDE, 1 = FXDE
14
+ # bit 6 : 1 means a SYSTEM file
15
+ # bit 5 : undefined
16
+ # bit 4 : 1 = in use, 0 = entry empty
17
+ # bit 3 : 1 = file is hidden
18
+ # bit 2 - 0 : access level code
19
+ # byte $01:
20
+ # bit 7 : 0 = file may be allocated more space when necessary
21
+ # bit 6 : 0 = any excess space past the EOF may be deallocated
22
+ # bit 5 : 1 = at least one sector of the file has been written to since this bit was last reset
23
+ # bit 4 - 0 : undefined
24
+ # byte $02: undefined
25
+ # byte $03: low order byte of the file's EOF (position of the EOF within the EOF sector)
26
+ # byte $04: logical record length
27
+ # byte $05-$0C : file name (right padded with blanks)
28
+ # byte $0D-$0F: file extension (right padded with blanks)
29
+ # byte $10-$11 : encode of the upate password
30
+ # byte $12-$13 : encode of the access password
31
+ # byte $14 : middle order byte of the EOF
32
+ # byte $15 : high order byte of the EOF
33
+ # byte $16 - $1F : 5 pairs of extent elements, each pair made up of:
34
+ # byte $00 : if $FF, then end of extent elements for this file. if $FE, then next byte contains the DEC for the first (or next) FXDE assigned to this file.
35
+ # any other value ($00-$FD) equals the number of the diskette's lump in which the area starts.
36
+ # byte $01 : bits 7-5 = number of granules (0-7) from the start of the lump to the start of the area
37
+ # : bits 4- 0 = number less one of contiguous granules assigned to this area.
38
+ #
39
+ # when a file has more than 4 space areas assigned, the additional extent elements are contained in FXDE's assigned to the file.
40
+ # the format of a FXDE is:
41
+ # byte $00: bits 7 and 4 are both 1 to indicate this entry is a FXDE, all other bits are 0
42
+ # bute $01: the DEC for the previous FPDE or FXDE of this file. This is a backward chain. the previous entry's byte $1E will be $FD, and it's byte $1F will contain the DEC of this FXDE
43
+ #
44
+ # the EOF value (bytes $03, $14, $15) is decoded as:
45
+ # if low order byte ($03) = 0, then EOF is in RBA format
46
+ # if low order byte ($03) != 0, then EOF in the FPDE is equal to the RBA value plus 256 (the value in the high two bytes is incremented by 1)
47
+ #
48
+ # RBA = Relative Byte Address : a method of addressing where addressing starts at 0 rather than 1
49
+ #
50
+ # DEC = Directory Entry Code - a one byte code used to specify a particular FDE. Format is rrrssss, where sssss+2 = the relative
51
+ # number within the directory of the sector containing the FDE, and rrr times $20 = the relative byte address within the sector
52
+ # of the FDE.
53
+ class TrsDos<FileSystem
54
+
55
+ def self.host_system
56
+ Trs80
57
+ end
58
+
59
+ #standard TRSDOS has directory on track 17
60
+ def self.directory_track
61
+ 0x11
62
+ end
63
+
64
+ #for now, only SSSD images are supported
65
+ def self.sectors_per_granule(file_system_image)
66
+ 5
67
+ end
68
+
69
+ is_valid_file_system_if lambda {
70
+ file_system_image.image_format.instance_of?(Trs80Jv1Dsk)
71
+ }
72
+
73
+ FDE_SIZE=0x20
74
+
75
+ def self.files(file_system_image)
76
+ files=FileContainer.new
77
+ granule_allocation_table=file_system_image.get_sector(directory_track,0)
78
+ return files if granule_allocation_table.nil?
79
+ file_system_image.volume_name=granule_allocation_table[0xd0,8].unpack("A*")
80
+ (file_system_image.sectors_in_track(directory_track)-[0,1]).each do |sector_no|
81
+ fde_sector=file_system_image.get_sector(directory_track,sector_no)
82
+ (fde_sector.length/FDE_SIZE).times do |fde_number|
83
+ fde=fde_sector[fde_number*FDE_SIZE,FDE_SIZE]
84
+ attributes=fde[0x00]
85
+
86
+ #for a valid FPDE, bit 7 is 0 and bite 4 is 1
87
+ is_fpde = ((attributes & 0b10010000)==(0b00010000))
88
+ next if !is_fpde
89
+ eof_low=fde[0x03]
90
+ filename_base=fde[0x05,8].unpack("A8")
91
+ filename_extension=fde[0x0D,3].unpack("A8")
92
+ filename="#{filename_base}/#{filename_extension}"
93
+ contents=""
94
+ eof_mid=fde[0x14]
95
+ eof_high=fde[0x15]
96
+ file_length=(eof_high<<16)+(eof_mid<<8)+eof_low
97
+ if (eof_low>0) then
98
+ file_length-=0x100
99
+ end
100
+ # byte $16 - $1F : 5 pairs of extent elements, each pair made up of:
101
+ # byte $00 : if $FF, then end of extent elements for this file. if $FE, then next byte contains the DEC for the first (or next) FXDE assigned to this file.
102
+ # any other value ($00-$FD) equals the number of the diskette's lump in which the area starts.
103
+ # byte $01 : bits 7-5 = number of granules (0-7) from the start of the lump to the start of the area
104
+ # : bits 4- 0 = number less one of contiguous granules assigned to this area.
105
+ 5.times do |extent_no|
106
+ extent=fde[(extent_no*2)+0x16,2]
107
+ break if extent[0]==0xFF
108
+ raise "FXDE's not implemented yet" if extent[0]==0xFE
109
+ track_no=extent[0]
110
+ granule_offset=extent[1]>>5
111
+ number_of_granules=1+(extent[1] & 0b00011111)
112
+ start_sector=granule_offset*sectors_per_granule(file_system_image)
113
+ number_of_sectors=number_of_granules*sectors_per_granule(file_system_image)
114
+ number_of_sectors.times {|i| contents<<file_system_image.get_sector(track_no,start_sector+i)}
115
+ end
116
+ contents=contents[0,file_length]
117
+ files<<NativeFileType.best_fit(file_system_image,filename,contents,filename_extension)
118
+ end
119
+ end
120
+ files
121
+ end
122
+
123
+ end
124
+
125
+ # == Author
126
+ # Jonno Downes (jonno@jamtronix.com)
127
+ #
128
+ # == Copyright
129
+ # Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
130
+ #
131
+ #Permission is hereby granted, free of charge, to any person obtaining
132
+ #a copy of this software and associated documentation files (the
133
+ #"Software"), to deal in the Software without restriction, including
134
+ #without limitation the rights to use, copy, modify, merge, publish,
135
+ #distribute, sublicense, and/or sell copies of the Software, and to
136
+ #permit persons to whom the Software is furnished to do so, subject to
137
+ #the following conditions:
138
+
139
+ # The above copyright notice and this permission notice shall be
140
+ # included in all copies or substantial portions of the Software.
141
+
142
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
143
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
144
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
145
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
146
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
147
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
148
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,57 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ $:.unshift(File.dirname(__FILE__+"\\..")) unless
5
+ $:.include?(File.dirname(__FILE__+"\\..")) || $:.include?(File.expand_path(File.dirname(__FILE__+"\\..")))
6
+
7
+
8
+ require 'HostSystem'
9
+ #
10
+ #
11
+ class Apple2<HostSystem
12
+
13
+ def Apple2.to_ascii(byte)
14
+ (byte%128).chr
15
+ end
16
+
17
+ #Apple 2 disks start at track 0
18
+ def Apple2.start_track
19
+ 0
20
+ end
21
+
22
+ @@annotations=nil
23
+ def Apple2.annotations
24
+ @@annotations=YAML::load(File.open(File.dirname(__FILE__)+"/a2_symbols.yaml")) if @@annotations.nil?
25
+ end
26
+
27
+ def Apple2.disassemble(buffer,start_address=0)
28
+ require 'D65'
29
+ D65.disassemble(buffer,start_address,annotations)
30
+ end
31
+ end
32
+
33
+
34
+ # == Author
35
+ # Jonno Downes (jonno@jamtronix.com)
36
+ #
37
+ # == Copyright
38
+ # Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
39
+ #
40
+ #Permission is hereby granted, free of charge, to any person obtaining
41
+ #a copy of this software and associated documentation files (the
42
+ #"Software"), to deal in the Software without restriction, including
43
+ #without limitation the rights to use, copy, modify, merge, publish,
44
+ #distribute, sublicense, and/or sell copies of the Software, and to
45
+ #permit persons to whom the Software is furnished to do so, subject to
46
+ #the following conditions:
47
+
48
+ # The above copyright notice and this permission notice shall be
49
+ # included in all copies or substantial portions of the Software.
50
+
51
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
52
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
53
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
54
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
55
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
56
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
57
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,57 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ $:.unshift(File.dirname(__FILE__+"\\..")) unless
5
+ $:.include?(File.dirname(__FILE__+"\\..")) || $:.include?(File.expand_path(File.dirname(__FILE__+"\\..")))
6
+
7
+
8
+ require 'HostSystem'
9
+ #
10
+ #
11
+ class Atari800<HostSystem
12
+
13
+ def self.to_ascii(b)
14
+ if b==0x9b then
15
+ "\n"
16
+ else
17
+ b.chr
18
+ end
19
+
20
+ end
21
+
22
+ @@annotations=nil
23
+ def self.annotations
24
+ @@annotations=YAML::load(File.open(File.dirname(__FILE__)+"/atari_800_symbols.yaml")) if @@annotations.nil?
25
+ end
26
+
27
+ def self.disassemble(buffer,start_address=0)
28
+ require 'D65'
29
+ D65.disassemble(buffer,start_address,annotations)
30
+ end
31
+ end
32
+
33
+
34
+ # == Author
35
+ # Jonno Downes (jonno@jamtronix.com)
36
+ #
37
+ # == Copyright
38
+ # Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
39
+ #
40
+ #Permission is hereby granted, free of charge, to any person obtaining
41
+ #a copy of this software and associated documentation files (the
42
+ #"Software"), to deal in the Software without restriction, including
43
+ #without limitation the rights to use, copy, modify, merge, publish,
44
+ #distribute, sublicense, and/or sell copies of the Software, and to
45
+ #permit persons to whom the Software is furnished to do so, subject to
46
+ #the following conditions:
47
+
48
+ # The above copyright notice and this permission notice shall be
49
+ # included in all copies or substantial portions of the Software.
50
+
51
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
52
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
53
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
54
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
55
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
56
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
57
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,82 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ $:.unshift(File.dirname(__FILE__+"\\..")) unless
5
+ $:.include?(File.dirname(__FILE__+"\\..")) || $:.include?(File.expand_path(File.dirname(__FILE__+"\\..")))
6
+
7
+
8
+ require 'HostSystem'
9
+ #
10
+ #
11
+ class C64<HostSystem
12
+
13
+ #C64 disks start at track # 1
14
+ def C64.start_track
15
+ 1
16
+ end
17
+
18
+ #convert PETSCII to ASCII
19
+ #algorithm taken from VICE http://www.viceteam.org/
20
+ def C64.to_ascii(b)
21
+ if (b==0xa) || (b==0x0d)
22
+ return "\n"
23
+ elsif (b==0x40) || (b==0x60)
24
+ return b.chr
25
+ elsif (b==0xA0) || (b==0xE0) #shifted space
26
+ return " "
27
+ else
28
+ case (b & 0XE0)
29
+ when 0x40,0x60 then return (b^0x20).chr
30
+ when 0xc0 then return (b^0x80).chr
31
+ else
32
+ return (b.chr)
33
+ end
34
+ end
35
+ end
36
+
37
+ def C64.s_to_ascii(s)
38
+ r=""
39
+ s.each_byte do |b|
40
+ r+=to_ascii(b)
41
+ end
42
+ r
43
+ end
44
+
45
+ @@symbols=nil
46
+ def C64.symbols
47
+ @@symbols=YAML::load(File.open(File.dirname(__FILE__)+"/c64_symbols.yaml")) if @@symbols.nil?
48
+ @@symbols
49
+ end
50
+
51
+ def C64.disassemble(buffer,start_address=0)
52
+ require 'D65'
53
+ D65.disassemble(buffer,start_address,symbols)
54
+ end
55
+
56
+ end
57
+
58
+
59
+ # == Author
60
+ # Jonno Downes (jonno@jamtronix.com)
61
+ #
62
+ # == Copyright
63
+ # Copyright (c) 2008 Jonno Downes (jonno@jamtronix.com)
64
+ #
65
+ #Permission is hereby granted, free of charge, to any person obtaining
66
+ #a copy of this software and associated documentation files (the
67
+ #"Software"), to deal in the Software without restriction, including
68
+ #without limitation the rights to use, copy, modify, merge, publish,
69
+ #distribute, sublicense, and/or sell copies of the Software, and to
70
+ #permit persons to whom the Software is furnished to do so, subject to
71
+ #the following conditions:
72
+
73
+ # The above copyright notice and this permission notice shall be
74
+ # included in all copies or substantial portions of the Software.
75
+
76
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
77
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
78
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
79
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
80
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
81
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
82
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,48 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ $:.unshift(File.dirname(__FILE__+"\\..")) unless
5
+ $:.include?(File.dirname(__FILE__+"\\..")) || $:.include?(File.expand_path(File.dirname(__FILE__+"\\..")))
6
+
7
+
8
+ require 'HostSystem'
9
+
10
+ #
11
+ class Trs80<HostSystem
12
+
13
+ #C64 disks start at track # 1
14
+ def Trs80.start_track
15
+ 0
16
+ end
17
+
18
+ def Trs80.to_ascii(b)
19
+ b.chr
20
+ end
21
+
22
+ end
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.
@@ -0,0 +1,199 @@
1
+ ---
2
+ 0x20: WNDLFT - Text window left-edge (0-39)
3
+ 0x21: WNDWDTH - Text window width (1-40)
4
+ 0x22: WNDTOP -Text window top-edge (0-23)
5
+ 0x23: WNDBTM - Text window bottom (1-24)
6
+ 0x24: CH - Horizontal cursor-position (0-39)
7
+ 0x25: CV - Vertical cursor-position (0-23)
8
+ 0x26: GBASL - low byte of screen address of left end point of line
9
+ 0x27: GBASH - high byte of screen address of left end point of line
10
+ 0x28: BASL - low byte of left end char position of current line
11
+ 0x29: BASH - high byte of left end char position of current line
12
+ 0x2B: Boot slot * $10 (after boot only)
13
+ 0x2C: H2 - Lo-res line end-point
14
+ 0x2E: MASK / CHKSUM
15
+ 0x2F: LASTIN - last byte read from cassette
16
+ 0x30: COLOR - Lo-res COLOR * $11
17
+ 0x32: INVFLAG - Text output format [$3F=INVERSE $FF=NORMAL $7F=FLASH]
18
+ 0x33: PROMPT - Prompt-character used by GETLN
19
+ 0x34: YSAV
20
+ 0x35: YSAV1
21
+ 0x36: CSWL - low byte of stdout routine
22
+ 0x37: CSWH - high byte of stdout routine
23
+ 0x38: KSWL - low byte of stdin routine
24
+ 0x39: KSWH - high byte of stdin routine
25
+ 0x3A: PCL - saved program counter (low byte)
26
+ 0x3B: PCH - saved program counter (high byte)
27
+ 0x45: ACC - saved A
28
+ 0x46: XREG - saved X
29
+ 0x47: YREG - saved Y
30
+ 0x48: STATUS - saved STATUS register
31
+ 0x49: SPNT - saved stack pointer
32
+ 0x4A: LOMEM address (INT) (low byte)
33
+ 0x4B: LOMEM address (INT) (high byte)
34
+ 0x4C: HIMEM address (INT) (low byte)
35
+ 0x4D: HIMEM address (INT) (high byte)
36
+ 0x4E: Random-Number Field (low byte)
37
+ 0x4F: Random-Number Field (high byte)
38
+ 0x67: LOMEM - Start of Applesoft program (low byte)
39
+ 0x68: LOMEM - Start of Applesoft program (high byte)
40
+ 0x69: HIMEM - Start of varible space & end of Applesoft program (low byte)
41
+ 0x6A: HIMEM - Start of varible space & end of Applesoft program (high byte)
42
+ 0x6B: Start of array space (FP) (low byte)
43
+ 0x6C: Start of array space (FP) (high byte)
44
+ 0xCA: Start of Program Address (INT) (low byte)
45
+ 0xCB: Start of Program Address (INT) (high byte)
46
+ 0xCC: End of Varible Storage (INT) (low byte)
47
+ 0xCD: End of Varible Storage (INT) (high byte)
48
+ 0xD6: RUN Flag (set to $FF turns Applesoft into run only.)
49
+ 0xD8: ONERR Flag (set to $00 cancels ONERR)
50
+ 0xDA: "Line# of ONERR Error (low byte)"
51
+ 0xDB: "Line# of ONERR Error (high byte)"
52
+ 0xDE: ONERR Error Codes
53
+ 0xE0: X Coordinate of last HPLOT (0-279) (low byte)
54
+ 0xE1: X Coordinate of last HPLOT (0-279) (high byte)
55
+ 0xE2: Y Coordinate of last HPLOT (0-191)
56
+ 0xE4: HCOLOR codes:$00=0 $2A=1 $85=2 $7F=3 $80=4 $AA=5 $D5=6 $FF=6
57
+ 0xE6: "Hi res plotting page (32=page 1, 64=page 2, 96=page 3)"
58
+ 0xE7: SCALE (NOTE:SCALE=0 is equivalent to a SCALE of $FF.)
59
+ 0xE8: Shape table start address. (low byte)
60
+ 0xE9: Shape table start address. (high byte)
61
+ 0xEA: Hi-Res Collision-Check
62
+ 0xF1: SPEED (NOTE:PEEK(241) is 256 minus the current SPEED.)
63
+ 0xF3: FLASH Mask
64
+ 0xF9: ROT (rotation) value
65
+ 0x3F0: BRK handler vector (low byte)
66
+ 0x3F1: BRK handler vector (high byte)
67
+ 0x3F2: RESET handler vector (low byte)
68
+ 0x3F3: RESET handler vector (high byte)
69
+ 0x3F4: "Powerup indicator (if not == EOR of #$A5 and $3F3 then RESET leads to cold-start)"
70
+ 0x3F5: Applesoft & vector handler - byte 1
71
+ 0x3F6: Applesoft & vector handler - byte 2
72
+ 0x3F7: Applesoft & vector handler - byte 3
73
+ 0x3F8: Control-y handler - byte 1
74
+ 0x3F9: Control-y handler - byte 2
75
+ 0x3FA: Control-y handler - byte 3
76
+ 0x3FB: NMI handler - byte 1
77
+ 0x3FC: NMI handler - byte 2
78
+ 0x3FD: NMI handler - byte 3
79
+ 0x3FE: IRQ vector address - (low byte)
80
+ 0x3FB: IRQ vector address - (high byte)
81
+ 0xC000: KEYBOARD/CLR80COL - read = latched keyboard data, write=disable 80 column memory mapping
82
+ 0xC001: SET80COL - enable 80 column memory mapping
83
+ 0xC002: RAMRDOFF - Read enable main memory from $0200-$BFFF
84
+ 0xC003: RAMDRON - Read enable aux memory from $0200-$BFFF
85
+ 0xC004: RAMWRTOFF - Write enable main memory from $0200-$BFFF
86
+ 0xC005: RAMWRTON - Write enable aux memory from $0200-$BFFF
87
+ 0xC006: INTCXROMOFF - Enable slot ROM from $C100-$CFFF
88
+ 0xC007: INTCXROMON - Enable main ROM from $C100-$CFFF
89
+ 0xC008: ALZTPOFF - Enable main memory from $0000-$01FF & avl BSR
90
+ 0xC009: ALTZPON - Enable aux memory from $0000-$01FF & avl BSR
91
+ 0xC00A: SLOTC3ROMOFF - Enable main ROM from $C300-$C3FF
92
+ 0xC00B: SLOTC3ROMON - Enable slot ROM from $C300-$C3FF
93
+ 0xC00C: 80COLOFF - Turn off 80 column display
94
+ 0xC00D: 80COLON - Turn on 80 column display
95
+ 0xC00E: ALTCHARSETOFF - Turn off alternate characters
96
+ 0xC00F: ALTCHARSETON - Turn on alternate characters
97
+ 0xC010: AKD - 1=key pressed 0=keys free (clears strobe)
98
+ 0xC011: BSRBANK2 - 1=bank2 available 0=bank1 available
99
+ 0xC012: BSRREADRAM - 1=BSR active for read 0=$D000-$FFFF active
100
+ 0xC013: RAMRD - 0=main $0200-$BFFF active reads 1=aux active
101
+ 0xC014: RAMWRT - 0=main $0200-$BFFF active writes 1=aux writes
102
+ 0xC015: INTCXROM - 1=main $C100-$CFFF ROM active 0=slot active
103
+ 0xC016: ALTZP - 1=aux $0000-$1FF+auxBSR 0=main available
104
+ 0xC017: SLOTC3ROM - 1=slot $C3 ROM active 0=main $C3 ROM active
105
+ 0xC018: 80STORE - 1=page2 switches main/aux 0=page2 video
106
+ 0xC019: VERTBLANK - 1=vertical retrace on 0=vertical retrace off
107
+ 0xC01A: TEXT - 1=text mode is active 0=graphics mode active
108
+ 0xC01B: MIXED - 1=mixed graphics & text
109
+ 0xC01C: PAGE2 - 1=video page2 selected or aux
110
+ 0xC01D: HIRES - 1=high resolution graphics 0=low resolution
111
+ 0xC01E: ALTCHARSET - 1=alt character set on 0=alt char set off
112
+ 0xC01F: 80COL - 1=80 col display on 0=80 col display off
113
+ 0xC020: TAPEOUT - toggle the cassette output
114
+ 0xC030: SPEAKER - toggle speaker diaphragm
115
+ oxC040: STROBE - generate .5 uS low pulse @ Game pin 5
116
+ 0xC050: TEXTOFF - Select graphics mode
117
+ 0xC051: TEXTON - Select text mode
118
+ 0xC052: MIXEDOFF - Use full screen for graphics
119
+ 0xC053: MIXEDON - Use graphics with 4 lines of text
120
+ 0xC054: PAGE2OFF - Select panel display (or main video memory)
121
+ 0xC055: PAGE2ON - Select page2 display (or aux video memory)
122
+ 0xC056: HIRESOFF - Select low resolution graphics
123
+ 0xC057: HIRESON - Select high resolution graphics
124
+ 0xC058: SETAN0 - annunciator-0 output to 0
125
+ 0xC059: CLRAN0 - annunciator-0 output to 1
126
+ 0xC05A: SETAN1 - annunciator-1 output to 0
127
+ 0xC05B: CLRAN1 - annunciator-1 output to 1
128
+ 0xC05C: SETAN2 - annunciator-2 output to 0
129
+ 0xC05D: CLRAN2 - annunciator-2 output to 1
130
+ 0xC05E: SETDHIRES - turn on double hi-res
131
+ 0xC05F: CLRDHIRES - turn off double hi-res
132
+ 0xC060: TAPEIN - bit 7 = data from cassete
133
+ 0xC061: OPNAPPLE - open apple (command) key data
134
+ 0xC062: CLSAPPLE - closed apple (option) key data (read)
135
+ 0xC07E: SETIOUDIS - enable DHIRES & disable $C058-5F (W)
136
+ 0xC07F: CLRIOUDIS - disable DHIRES & enable $C058-5F (W)
137
+ 0xC080: RD LC RAM bank2, WR-protect LC RAM
138
+ 0xC081: ROMIN - RD ROM, WR-enable LC RAM
139
+ 0xC082: RD ROM, WR-protect LC RAM
140
+ 0xC083: LCBANK2 - RD LC RAM bank2, WR-enable LC RAM
141
+ 0xC084: RD LC RAM bank2, WR-protect LC RAM
142
+ 0xC085: RD ROM, WR-enable LC RAM
143
+ 0xC086: RD ROM, WR-protect LC RAM
144
+ 0xC087: RD LC RAM bank2, WR-enable LC RAM
145
+ 0xC088: RD LC RAM bank1, WR-protect LC RAM
146
+ 0xC089: RD ROM, WR-enable LC RAM
147
+ 0xC08A: RD ROM, WR-protect LC RAM
148
+ 0xC08B: LCBANK1 - RD LC RAM bank1, WR-enable LC RAM
149
+ 0xC08C: RD LC RAM bank1, WR-protect LC RAM
150
+ 0xC08D: RD ROM, WR-enable LC RAM
151
+ 0xC08E: RD ROM, WR-protect LC RAM
152
+ 0xC08F: LCBANK1 - RD LC RAM bank1, WR-enable LC RAM
153
+ 0xC0E8: Turn on disk motor (slot 6)
154
+ 0xC0E9: Turn off disk motor (slot 6)
155
+ 0xCFFD: CLRC8ROM - disable Slot card C8 ROM
156
+ 0xF800: "PLOT - draw block on low res screen - vert position in A, horizontal position in Y"
157
+ 0xF819: "HLINE - draw horizontal line - vertical address in A, start horizontal position in Y, end horizontal position in $2C"
158
+ 0xF828: "VLINE - draw vertical line of blocks. horizintal coordinate in Y, top vertical coordinate in A, bottom vertical coordinate in $2D"
159
+ 0xF832: "CLRSCR - clear the low res screen"
160
+ 0xF836: "CLRTOP - clear top 40 rows of low res screen"
161
+ 0xF85F: "NEXTCOL - incriment colour by 3"
162
+ 0xF864: "SETCOL - set low res gfx colour to value in A"
163
+ 0xF871: "SCRN - read the low res screen. on input, A is vertical position, Y is horizontal. on return, A is color of block"
164
+ 0xF941: "PRNTAX - print A & X in hex to stdout"
165
+ 0xF948: "PRBLNK - print 3 blank spaces to stdout"
166
+ 0xF94A: "PRBL2 - print many blank spaces - X holds count"
167
+ 0xFB1E: "PREAD - read a hand control - on input X is control (0..3), on return Y holds value"
168
+ 0xFB2F: "INIT - set STATUS in zero page to 0"
169
+ 0xFC42: "CLREOP - clear to end of window"
170
+ 0xFC58: "HOME - home cursor and clear"
171
+ 0xFC9C: "CLREOL - clear to end of line from cursor"
172
+ 0xFC9E: "CLREOLZ - clear to end of line, starting from BASL,Y"
173
+ 0xFCA8: "WAIT - wait for period of time specified by A. delay is 1/2(26+27A+5A^2) microseconds"
174
+ 0xFD0C: "RDKEY - get an input char, using routine at ($38/$39)"
175
+ 0xFD1B: "KEYIN - wait for keypress, keycode returned in A"
176
+ 0xFD35: "RDCHAR - read a char from stdin"
177
+ 0xFD67: "GETLNZ - print CR, then call GETLN"
178
+ 0xFD6A: "GETLN - get an input line - uses char in $36 as prompt, input stored in $200, length in X"
179
+ 0xFD6F: "GETLN1 - get input line, no prompt"
180
+ 0xFD75: "NEXTCHAR - process next char in input buffer"
181
+ 0xFD8B: "CROUT1 - return with clear"
182
+ 0xFD8E: "CROUT - send a CR to stdout"
183
+ 0xFDDA: "PRBYTE - print A to stdout as hex digits"
184
+ 0xFDE3: "PRHEX - print low nibble of A to stdout as a hex digit"
185
+ 0xFDED: "COUT - output char in A (uses routine at ($36/$37) for output)"
186
+ 0xFDF0: "COUT1 - output char in A to screen"
187
+ 0xFE2C: "MOVE - destination address in $42/$43, start source in $3C/$3D, end source in $3E/$3F"
188
+ 0xFE36: "VERIFY - compare 2 blocks of memory, destination is in $42/$43, start source in $3C/$3D, end address in $3E/3F"
189
+ 0xFE80: "SETINV - set inverse mode"
190
+ 0xFE84: "SETNORM - set normal mode"
191
+ 0xFE89: "SETKBD - set port #0(keyboard) for input"
192
+ 0xFE93: "SETVID - set port #0(video) for output"
193
+ 0xFECD: "WRITE - write data to cassete. Address of first byte in $3C/$3D, last byte in $3D/$3E"
194
+ 0xFEFD: "READ - read from tape. address of first byte in $3C/$3D, end address in $3E/$3D"
195
+ 0xFF2D: "PRERR - print ERR to stdout"
196
+ 0xFF3A: "BELL - writes a ^G to stdout"
197
+ 0xFF3F: "IOREST - load registers with locations $45 to $49"
198
+ 0xFF4A: "IOSAVE - save all registers to locations $45 to $49 in order A,X,Y,P,S"
199
+ 0xFFBD: "BELL1 - send a beep to the speaker"