zemu 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (285) hide show
  1. checksums.yaml +7 -0
  2. data/lib/zemu/config.rb +312 -0
  3. data/lib/zemu/instance.rb +179 -0
  4. data/lib/zemu.rb +172 -0
  5. data/src/debug.c +118 -0
  6. data/src/debug.h +30 -0
  7. data/src/external/Z/API/Z/ABIs/generic/allocator.h +36 -0
  8. data/src/external/Z/API/Z/ABIs/generic/cipher.h +47 -0
  9. data/src/external/Z/API/Z/ABIs/generic/data codec.h +33 -0
  10. data/src/external/Z/API/Z/ABIs/generic/emulation.h +103 -0
  11. data/src/external/Z/API/Z/ABIs/generic/hash function.h +33 -0
  12. data/src/external/Z/API/Z/ABIs/generic/module.h +33 -0
  13. data/src/external/Z/API/Z/ABIs/generic/wave codec.h +40 -0
  14. data/src/external/Z/API/Z/classes/base/InitializerList.hpp +34 -0
  15. data/src/external/Z/API/Z/classes/base/OpaqueFunctionPointer.hpp +26 -0
  16. data/src/external/Z/API/Z/classes/base/OpaqueMemberFunctionPointer.hpp +26 -0
  17. data/src/external/Z/API/Z/classes/base/Pair.hpp +46 -0
  18. data/src/external/Z/API/Z/classes/base/Range.hpp +111 -0
  19. data/src/external/Z/API/Z/classes/base/SizedString.hpp +66 -0
  20. data/src/external/Z/API/Z/classes/base/Status.hpp +89 -0
  21. data/src/external/Z/API/Z/classes/base/Symbol.hpp +39 -0
  22. data/src/external/Z/API/Z/classes/base/Tuple.hpp +111 -0
  23. data/src/external/Z/API/Z/classes/base/Value2D.hpp +389 -0
  24. data/src/external/Z/API/Z/classes/base/Value3D.hpp +368 -0
  25. data/src/external/Z/API/Z/classes/buffering/RingBuffer.hpp +93 -0
  26. data/src/external/Z/API/Z/classes/buffering/TripleBuffer.hpp +68 -0
  27. data/src/external/Z/API/Z/classes/functional/Functor.hpp +265 -0
  28. data/src/external/Z/API/Z/classes/functional/MemberFunction.hpp +98 -0
  29. data/src/external/Z/API/Z/classes/functional/ObjectMemberFunction.hpp +172 -0
  30. data/src/external/Z/API/Z/classes/functional/ObjectSelector.hpp +219 -0
  31. data/src/external/Z/API/Z/classes/functional/Selector.hpp +146 -0
  32. data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/AABB.hpp +81 -0
  33. data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/AABR.hpp +685 -0
  34. data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Box.hpp +219 -0
  35. data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Circle.hpp +80 -0
  36. data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Line2D.hpp +93 -0
  37. data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Line3D.hpp +80 -0
  38. data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Rectangle.hpp +675 -0
  39. data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Sphere.hpp +0 -0
  40. data/src/external/Z/API/Z/classes/memory/Shared.hpp +90 -0
  41. data/src/external/Z/API/Z/constants/base.h +35 -0
  42. data/src/external/Z/API/Z/constants/chemical elements.h +6385 -0
  43. data/src/external/Z/API/Z/constants/numbers.h +963 -0
  44. data/src/external/Z/API/Z/constants/version.h +15 -0
  45. data/src/external/Z/API/Z/formats/character set/ASCII.h +158 -0
  46. data/src/external/Z/API/Z/formats/character set/DOS CP437.h +159 -0
  47. data/src/external/Z/API/Z/formats/character set/DOS CP737.h +159 -0
  48. data/src/external/Z/API/Z/formats/character set/DOS CP775.h +159 -0
  49. data/src/external/Z/API/Z/formats/character set/DOS CP850.h +159 -0
  50. data/src/external/Z/API/Z/formats/character set/DOS CP852.h +159 -0
  51. data/src/external/Z/API/Z/formats/character set/DOS CP855.h +159 -0
  52. data/src/external/Z/API/Z/formats/character set/DOS CP857.h +159 -0
  53. data/src/external/Z/API/Z/formats/character set/DOS CP858.h +159 -0
  54. data/src/external/Z/API/Z/formats/character set/DOS CP860.h +159 -0
  55. data/src/external/Z/API/Z/formats/character set/DOS CP861.h +159 -0
  56. data/src/external/Z/API/Z/formats/character set/DOS CP862.h +159 -0
  57. data/src/external/Z/API/Z/formats/character set/DOS CP863.h +159 -0
  58. data/src/external/Z/API/Z/formats/character set/DOS CP864.h +159 -0
  59. data/src/external/Z/API/Z/formats/character set/DOS CP865.h +159 -0
  60. data/src/external/Z/API/Z/formats/character set/DOS CP866.h +159 -0
  61. data/src/external/Z/API/Z/formats/character set/DOS CP869.h +159 -0
  62. data/src/external/Z/API/Z/formats/character set/DOS CP872.h +159 -0
  63. data/src/external/Z/API/Z/formats/character set/DOS CP874.h +159 -0
  64. data/src/external/Z/API/Z/formats/character set/Unicode.h +30119 -0
  65. data/src/external/Z/API/Z/formats/data model/I16LP32.h +19 -0
  66. data/src/external/Z/API/Z/formats/data model/ILP32.h +19 -0
  67. data/src/external/Z/API/Z/formats/data model/ILP64.h +19 -0
  68. data/src/external/Z/API/Z/formats/data model/IP16L32.h +19 -0
  69. data/src/external/Z/API/Z/formats/data model/LLP64.h +19 -0
  70. data/src/external/Z/API/Z/formats/data model/LP32.h +19 -0
  71. data/src/external/Z/API/Z/formats/data model/LP64.h +19 -0
  72. data/src/external/Z/API/Z/formats/data model/SILP64.h +19 -0
  73. data/src/external/Z/API/Z/formats/file system/FAT12.h +61 -0
  74. data/src/external/Z/API/Z/formats/floating-point/IEEE 754.h +141 -0
  75. data/src/external/Z/API/Z/formats/floating-point/x87.h +74 -0
  76. data/src/external/Z/API/Z/formats/image/ICNS.h +39 -0
  77. data/src/external/Z/API/Z/formats/keymap/Mac OS.h +284 -0
  78. data/src/external/Z/API/Z/formats/keymap/Z.h +141 -0
  79. data/src/external/Z/API/Z/formats/multimedia/Creative Voice.h +106 -0
  80. data/src/external/Z/API/Z/formats/multimedia/Microsoft Wave.h +49 -0
  81. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/ACH.h +44 -0
  82. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/FRZ.h +54 -0
  83. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/PRG.h +33 -0
  84. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/SEM.h +46 -0
  85. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/SIT.h +34 -0
  86. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/SNA.h +117 -0
  87. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/SNP.h +37 -0
  88. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/SP.h +62 -0
  89. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/Z80.h +117 -0
  90. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/ZX.h +56 -0
  91. data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/ZX82.h +70 -0
  92. data/src/external/Z/API/Z/formats/storage medium image/NES Game Pak/UNIF.h +26 -0
  93. data/src/external/Z/API/Z/formats/storage medium image/NES Game Pak/iNES.h +76 -0
  94. data/src/external/Z/API/Z/formats/storage medium image/audio/TAP.h +25 -0
  95. data/src/external/Z/API/Z/formats/storage medium image/audio/TZX.h +1185 -0
  96. data/src/external/Z/API/Z/formats/storage medium image/audio/Warajevo TAP.h +32 -0
  97. data/src/external/Z/API/Z/formats/storage medium image/floppy disk/FDI.h +45 -0
  98. data/src/external/Z/API/Z/functions/base/Z2D.h +583 -0
  99. data/src/external/Z/API/Z/functions/base/Z3D.h +712 -0
  100. data/src/external/Z/API/Z/functions/base/ZRange.h +137 -0
  101. data/src/external/Z/API/Z/functions/base/all.h +16 -0
  102. data/src/external/Z/API/Z/functions/base/casting.hpp +37 -0
  103. data/src/external/Z/API/Z/functions/base/character.h +38 -0
  104. data/src/external/Z/API/Z/functions/base/constructors.h +326 -0
  105. data/src/external/Z/API/Z/functions/base/structure.hpp +26 -0
  106. data/src/external/Z/API/Z/functions/base/type.hpp +60 -0
  107. data/src/external/Z/API/Z/functions/base/value.h +1901 -0
  108. data/src/external/Z/API/Z/functions/base/value.hpp +112 -0
  109. data/src/external/Z/API/Z/functions/buffering/ZRingBuffer.h +85 -0
  110. data/src/external/Z/API/Z/functions/buffering/ZTripleBuffer.h +65 -0
  111. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/Z2DLine.h +179 -0
  112. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/Z3DLine.h +168 -0
  113. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZAABB.h +361 -0
  114. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZAABR.h +1081 -0
  115. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZBox.h +340 -0
  116. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZCircle.h +142 -0
  117. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZRectangle.h +1267 -0
  118. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZSphere.h +156 -0
  119. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/all.h +18 -0
  120. data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/constructors.h +620 -0
  121. data/src/external/Z/API/Z/functions/time/date.h +29 -0
  122. data/src/external/Z/API/Z/hardware/CPU/architecture/6502.h +90 -0
  123. data/src/external/Z/API/Z/hardware/CPU/architecture/Z80.h +245 -0
  124. data/src/external/Z/API/Z/hardware/CPU/architecture/i4004.h +37 -0
  125. data/src/external/Z/API/Z/hardware/PSG/General Instrument/AY-3-891x.h +180 -0
  126. data/src/external/Z/API/Z/hardware/VDC/Ricoh/RP2C0x.h +625 -0
  127. data/src/external/Z/API/Z/hardware/bus/AGP.h +24 -0
  128. data/src/external/Z/API/Z/hardware/bus/USB.h +510 -0
  129. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/Inves Spectrum +.h +47 -0
  130. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/Pentagon.h +13 -0
  131. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/Scorpion.h +13 -0
  132. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum + 128K.h +158 -0
  133. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum +.h +82 -0
  134. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum +2.h +13 -0
  135. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum +2A.h +13 -0
  136. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum +3.h +13 -0
  137. data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum.h +109 -0
  138. data/src/external/Z/API/Z/hardware/machine/model/console/Nintendo Entertainment System/NES-001 (NTSC).h +29 -0
  139. data/src/external/Z/API/Z/hardware/machine/model/console/Nintendo Entertainment System/NES-001 (PAL).h +29 -0
  140. data/src/external/Z/API/Z/hardware/machine/platform/computer/ZX Spectrum.h +405 -0
  141. data/src/external/Z/API/Z/hardware/machine/platform/console/Game Boy.h +49 -0
  142. data/src/external/Z/API/Z/hardware/machine/platform/console/Nintendo Entertainment System.h +350 -0
  143. data/src/external/Z/API/Z/hardware/storage medium/ROM cartridge/SNES Game Pak.h +238 -0
  144. data/src/external/Z/API/Z/inspection/C/completion.h +178 -0
  145. data/src/external/Z/API/Z/inspection/C/modules/C11.h +41 -0
  146. data/src/external/Z/API/Z/inspection/C/modules/C18.h +13 -0
  147. data/src/external/Z/API/Z/inspection/C/modules/C89.h +19 -0
  148. data/src/external/Z/API/Z/inspection/C/modules/C90.h +13 -0
  149. data/src/external/Z/API/Z/inspection/C/modules/C94.h +15 -0
  150. data/src/external/Z/API/Z/inspection/C/modules/C99.h +29 -0
  151. data/src/external/Z/API/Z/inspection/C/modules/KR C.h +19 -0
  152. data/src/external/Z/API/Z/inspection/C++/completion.h +512 -0
  153. data/src/external/Z/API/Z/inspection/C++/modules/C++03.h +15 -0
  154. data/src/external/Z/API/Z/inspection/C++/modules/C++11.h +80 -0
  155. data/src/external/Z/API/Z/inspection/C++/modules/C++14.h +26 -0
  156. data/src/external/Z/API/Z/inspection/C++/modules/C++17.h +55 -0
  157. data/src/external/Z/API/Z/inspection/C++/modules/C++85.h +11 -0
  158. data/src/external/Z/API/Z/inspection/C++/modules/C++89.h +13 -0
  159. data/src/external/Z/API/Z/inspection/C++/modules/C++98.h +17 -0
  160. data/src/external/Z/API/Z/inspection/C++.h +78 -0
  161. data/src/external/Z/API/Z/inspection/C.h +79 -0
  162. data/src/external/Z/API/Z/inspection/CPU/completion.h +56 -0
  163. data/src/external/Z/API/Z/inspection/CPU/detection.h +714 -0
  164. data/src/external/Z/API/Z/inspection/CPU/modules/6502.h +25 -0
  165. data/src/external/Z/API/Z/inspection/CPU/modules/AArch32.h +32 -0
  166. data/src/external/Z/API/Z/inspection/CPU/modules/AArch64.h +32 -0
  167. data/src/external/Z/API/Z/inspection/CPU/modules/Z80.h +26 -0
  168. data/src/external/Z/API/Z/inspection/CPU/modules/x86-32.h +31 -0
  169. data/src/external/Z/API/Z/inspection/CPU/modules/x86-64.h +312 -0
  170. data/src/external/Z/API/Z/inspection/CPU.h +209 -0
  171. data/src/external/Z/API/Z/inspection/OS/completion.h +36 -0
  172. data/src/external/Z/API/Z/inspection/OS/detection.h +768 -0
  173. data/src/external/Z/API/Z/inspection/OS/modules/Linux.h +22 -0
  174. data/src/external/Z/API/Z/inspection/OS/modules/MS-DOS.h +16 -0
  175. data/src/external/Z/API/Z/inspection/OS/modules/Mac OS X.h +23 -0
  176. data/src/external/Z/API/Z/inspection/OS/modules/Windows.h +19 -0
  177. data/src/external/Z/API/Z/inspection/OS/modules/iPhone OS.h +23 -0
  178. data/src/external/Z/API/Z/inspection/OS.h +236 -0
  179. data/src/external/Z/API/Z/inspection/Objective-C/completion.h +8 -0
  180. data/src/external/Z/API/Z/inspection/Objective-C/modules/Objective-C v1.0.h +11 -0
  181. data/src/external/Z/API/Z/inspection/Objective-C/modules/Objective-C v2.0.h +15 -0
  182. data/src/external/Z/API/Z/inspection/Objective-C.h +51 -0
  183. data/src/external/Z/API/Z/inspection/Z.h +19 -0
  184. data/src/external/Z/API/Z/inspection/build.h +22 -0
  185. data/src/external/Z/API/Z/inspection/character set.h +66 -0
  186. data/src/external/Z/API/Z/inspection/compiler/completion.h +2885 -0
  187. data/src/external/Z/API/Z/inspection/compiler/modules/Apple LLVM.h +26 -0
  188. data/src/external/Z/API/Z/inspection/compiler/modules/Clang.h +1664 -0
  189. data/src/external/Z/API/Z/inspection/compiler/modules/GCC.h +1366 -0
  190. data/src/external/Z/API/Z/inspection/compiler/modules/SCCZ80.h +473 -0
  191. data/src/external/Z/API/Z/inspection/compiler/modules/Visual C++.h +606 -0
  192. data/src/external/Z/API/Z/inspection/compiler/modules/cc65.h +529 -0
  193. data/src/external/Z/API/Z/inspection/compiler/modules/generic.h +13 -0
  194. data/src/external/Z/API/Z/inspection/compiler/modules/template.h +650 -0
  195. data/src/external/Z/API/Z/inspection/compiler.h +299 -0
  196. data/src/external/Z/API/Z/inspection/data model/completion.h +128 -0
  197. data/src/external/Z/API/Z/inspection/data model/deduction.h +9 -0
  198. data/src/external/Z/API/Z/inspection/data model/detection.h +45 -0
  199. data/src/external/Z/API/Z/inspection/data model.h +362 -0
  200. data/src/external/Z/API/Z/inspection/floating-point/completion.h +50 -0
  201. data/src/external/Z/API/Z/inspection/floating-point.h +324 -0
  202. data/src/external/Z/API/Z/inspection/language.h +163 -0
  203. data/src/external/Z/API/Z/inspection/platform/detection.h +9 -0
  204. data/src/external/Z/API/Z/inspection/platform.h +29 -0
  205. data/src/external/Z/API/Z/keys/C++.h +27 -0
  206. data/src/external/Z/API/Z/keys/C.h +29 -0
  207. data/src/external/Z/API/Z/keys/CPU.h +80 -0
  208. data/src/external/Z/API/Z/keys/OS.h +182 -0
  209. data/src/external/Z/API/Z/keys/Objective-C.h +17 -0
  210. data/src/external/Z/API/Z/keys/chemistry.h +26 -0
  211. data/src/external/Z/API/Z/keys/compiler.h +178 -0
  212. data/src/external/Z/API/Z/keys/data model.h +32 -0
  213. data/src/external/Z/API/Z/keys/endianness.h +24 -0
  214. data/src/external/Z/API/Z/keys/language.h +21 -0
  215. data/src/external/Z/API/Z/keys/layout.h +20 -0
  216. data/src/external/Z/API/Z/keys/mathematics/geometry.h +29 -0
  217. data/src/external/Z/API/Z/keys/mathematics/number.h +21 -0
  218. data/src/external/Z/API/Z/keys/order.h +18 -0
  219. data/src/external/Z/API/Z/keys/platform.h +87 -0
  220. data/src/external/Z/API/Z/keys/program.h +39 -0
  221. data/src/external/Z/API/Z/keys/science/chemical elements.h +200 -0
  222. data/src/external/Z/API/Z/keys/science/electricity.h +18 -0
  223. data/src/external/Z/API/Z/keys/science/magnetism.h +19 -0
  224. data/src/external/Z/API/Z/keys/status.h +69 -0
  225. data/src/external/Z/API/Z/keys/text.h +27 -0
  226. data/src/external/Z/API/Z/keys/value.h +88 -0
  227. data/src/external/Z/API/Z/macros/arguments.h +25 -0
  228. data/src/external/Z/API/Z/macros/casting.h +22 -0
  229. data/src/external/Z/API/Z/macros/character.h +159 -0
  230. data/src/external/Z/API/Z/macros/date.h +14 -0
  231. data/src/external/Z/API/Z/macros/key.h +20 -0
  232. data/src/external/Z/API/Z/macros/language.h +126 -0
  233. data/src/external/Z/API/Z/macros/language.hpp +81 -0
  234. data/src/external/Z/API/Z/macros/members.h +86 -0
  235. data/src/external/Z/API/Z/macros/pasting.h +308 -0
  236. data/src/external/Z/API/Z/macros/pointer.h +33 -0
  237. data/src/external/Z/API/Z/macros/repetition.h +283 -0
  238. data/src/external/Z/API/Z/macros/structure.h +104 -0
  239. data/src/external/Z/API/Z/macros/templating.h +407 -0
  240. data/src/external/Z/API/Z/macros/tokens.h +14 -0
  241. data/src/external/Z/API/Z/macros/type enumeration.h +43 -0
  242. data/src/external/Z/API/Z/macros/type selection.hpp +76 -0
  243. data/src/external/Z/API/Z/macros/value.h +489 -0
  244. data/src/external/Z/API/Z/macros/variadic pasting.h +21 -0
  245. data/src/external/Z/API/Z/macros/variadic selection.h +56 -0
  246. data/src/external/Z/API/Z/macros/variadic.h +46 -0
  247. data/src/external/Z/API/Z/macros/version.h +17 -0
  248. data/src/external/Z/API/Z/network/3/IP.h +36 -0
  249. data/src/external/Z/API/Z/network/4/TCP.h +24 -0
  250. data/src/external/Z/API/Z/network/4/UDP.h +26 -0
  251. data/src/external/Z/API/Z/network/7/ED2K.h +104 -0
  252. data/src/external/Z/API/Z/network/7/HTTP.h +100 -0
  253. data/src/external/Z/API/Z/traits/SelectType.hpp +71 -0
  254. data/src/external/Z/API/Z/traits/TernaryType.hpp +20 -0
  255. data/src/external/Z/API/Z/traits/Type.hpp +4516 -0
  256. data/src/external/Z/API/Z/traits/TypeCount.hpp +52 -0
  257. data/src/external/Z/API/Z/traits/TypeList.hpp +376 -0
  258. data/src/external/Z/API/Z/traits/base.hpp +19 -0
  259. data/src/external/Z/API/Z/traits/filtering.hpp +30 -0
  260. data/src/external/Z/API/Z/traits/mathematics.hpp +48 -0
  261. data/src/external/Z/API/Z/types/arguments.h +19 -0
  262. data/src/external/Z/API/Z/types/base.h +1655 -0
  263. data/src/external/Z/API/Z/types/base.hpp +169 -0
  264. data/src/external/Z/API/Z/types/buffering.h +27 -0
  265. data/src/external/Z/API/Z/types/mathematics.h +135 -0
  266. data/src/external/Z/API/Z/types/time.h +23 -0
  267. data/src/external/Z/COPYING.LESSER +165 -0
  268. data/src/external/Z/development/Qt Creator/Z.pro +253 -0
  269. data/src/external/Z/distribution/CocoaPods/Zeta.podspec +18 -0
  270. data/src/external/Z/distribution/Gentoo Linux/Zeta-0.1.ebuild +22 -0
  271. data/src/external/Z/distribution/Gentoo Linux/metadata.xml +8 -0
  272. data/src/external/Z/distribution/Homebrew/Zeta.rb +11 -0
  273. data/src/external/z80/API/emulation/CPU/Z80.h +201 -0
  274. data/src/external/z80/README.md +229 -0
  275. data/src/external/z80/building/premake4.lua +33 -0
  276. data/src/external/z80/development/Xcode/Z80.xcodeproj/project.pbxproj +520 -0
  277. data/src/external/z80/sources/Z80.c +1660 -0
  278. data/src/interrupt.c +6 -0
  279. data/src/interrupt.h +3 -0
  280. data/src/io.c.erb +115 -0
  281. data/src/io.h.erb +18 -0
  282. data/src/main.c +69 -0
  283. data/src/memory.c.erb +43 -0
  284. data/src/memory.h.erb +9 -0
  285. metadata +329 -0
@@ -0,0 +1,33 @@
1
+ /* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/PRG.h
2
+ _____ _______________
3
+ /_ /_/ -_/_ _/ _ |
4
+ /____/\___/ /__//___/_| Kit
5
+ Copyright (C) Kevin Phair.
6
+ Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
7
+ Released under the terms of the GNU Lesser General Public License v3.
8
+
9
+ .-------------------------------------.
10
+ | Extensions: prg |
11
+ | Endianness: Little |
12
+ | Created by: Phair, Kevin |
13
+ | Used by: Spectrum Emulator [DOS] |
14
+ | |
15
+ | http://code.google.com/p/specem |
16
+ '------------------------------------*/
17
+
18
+ #ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_PRG_H_
19
+ #define _Z_formats_snapshot_machine_computer_ZX_Spectrum_PRG_H_
20
+
21
+ #include <Z/types/base.h>
22
+
23
+ Z_DEFINE_STRICT_STRUCTURE (
24
+ zuint8 file_type; /* Always 05h */
25
+ zuint8 program_name[10]; /* 20h, name[], 20h */
26
+ zuint16 file_sector_count; /* BIG ENDIAN */
27
+ zuint8 file_first_sector_track_index;
28
+ zuint8 file_first_sector_sector_index;
29
+ zuint8 sector_allocation_bitmap[195];
30
+ /* ..... TO DO */
31
+ ) ZPRG;
32
+
33
+ #endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_PRG_H_ */
@@ -0,0 +1,46 @@
1
+ /* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/SEM.h
2
+ _____ _______________
3
+ /_ /_/ -_/_ _/ _ |
4
+ /____/\___/ /__//___/_| Kit
5
+ Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
6
+ Released under the terms of the GNU Lesser General Public License v3.
7
+
8
+ .-----------------------------------------------------.
9
+ | Extensions: sem |
10
+ | Endianness: Little |
11
+ | Created by: Waschke, Bernd |
12
+ | Used by: ZX Spectrum-Emulator (SpecEmu) [MS-DOS] |
13
+ '----------------------------------------------------*/
14
+
15
+ #ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_SEM_H_
16
+ #define _Z_formats_snapshot_machine_computer_ZX_Spectrum_SEM_H_
17
+
18
+ #include <Z/types/base.h>
19
+
20
+ Z_DEFINE_STRICT_STRUCTURE_BEGIN
21
+ zuint8 signature_size; /* 5 */
22
+ zuint8 signature[5]; /* 'SPEC1' */
23
+ zuint8 ram[1024 * 48];
24
+ Z16Bit af, bc, de, hl;
25
+ Z16Bit af_, bc_, de_, hl_;
26
+ zuint16 pc, sp;
27
+ Z16Bit ix, iy;
28
+ zuint8 i, zero_0;
29
+ zuint8 r, zero_1;
30
+ zuint8 iff1, zero_2;
31
+ zuint8 iff2, zero_3;
32
+ zuint8 im, zero_4;
33
+ Z_DEFINE_STRICT_STRUCTURE_END ZSEMSnapshot;
34
+
35
+ Z_DEFINE_STRICT_STRUCTURE (
36
+ zuint16 address;
37
+ zuint8 value;
38
+ ) ZSEMPoke;
39
+
40
+ Z_DEFINE_STRICT_STRUCTURE (
41
+ ZSEMSnapshot snapshot;
42
+ ZSEMPoke poke; /* Optional */
43
+ zuint16 speed_factor; /* Optional (only if poke included) */
44
+ ) ZSEM;
45
+
46
+ #endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_SEM_H_ */
@@ -0,0 +1,34 @@
1
+ /* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/SIT.h
2
+ _____ _______________
3
+ /_ /_/ -_/_ _/ _ |
4
+ /____/\___/ /__//___/_| Kit
5
+ Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
6
+ Released under the terms of the GNU Lesser General Public License v3.
7
+
8
+ .-------------------------------------------.
9
+ | Extensions: sit |
10
+ | Endianness: Little |
11
+ | Created by: Rodríguez Salas, Pedro Manuel |
12
+ | Used by: SINCLAIR [DOS] |
13
+ | |
14
+ | http://www.ugr.es/~pedrom/sinclair.htm |
15
+ '------------------------------------------*/
16
+
17
+ #ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_SIT_H_
18
+ #define _Z_formats_snapshot_machine_computer_ZX_Spectrum_SIT_H_
19
+
20
+ #include <Z/types/base.h>
21
+
22
+ Z_DEFINE_STRICT_STRUCTURE_BEGIN
23
+ Z16Bit bc, de, hl, af, ix, iy;
24
+ zuint16 sp, pc;
25
+ zuint8 r, i;
26
+ Z16Bit bc_, de_, hl_, af_;
27
+ zuint8 im;
28
+ zuint8 border_color;
29
+
30
+ /* complete ROM+RAM memory of a standard ZX Spectrum 48K */
31
+ zuint8 memory[1024 * 64];
32
+ Z_DEFINE_STRICT_STRUCTURE_END ZSIT;
33
+
34
+ #endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_SIT_H_ */
@@ -0,0 +1,117 @@
1
+ /* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/SNA.h
2
+ _____ _______________
3
+ /_ /_/ -_/_ _/ _ |
4
+ /____/\___/ /__//___/_| Kit
5
+ Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
6
+ Released under the terms of the GNU Lesser General Public License v3.
7
+
8
+ .---------------------------------------------.
9
+ | Extensions: sna, snap, snapshot |
10
+ | Endianness: Little |
11
+ | Created by: McGavin, Peter |
12
+ | Used by: Any decent ZX Spectrum emulator |
13
+ '--------------------------------------------*/
14
+
15
+ #ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_SNA_H_
16
+ #define _Z_formats_snapshot_machine_computer_ZX_Spectrum_SNA_H_
17
+
18
+ #include <Z/types/base.h>
19
+
20
+ /* MARK: - v48K
21
+ .-------------------------------------------------------------------------.
22
+ | From SinclairFAQ: |
23
+ | |
24
+ | " This format is one of the most well-supported of all snapshot |
25
+ | formats (for the ZX Spectrum), but has a drawback: |
26
+ | |
27
+ | As the program counter is pushed onto the stack so that a RETN |
28
+ | instruction can restart the program, 2 bytes of memory are overwritten. |
29
+ | This will usually not matter; the game (or whatever) will have stack |
30
+ | space that can be used for this. However, if this space is all in use |
31
+ | when the snap is made, memory below the stack space will be corrupted. |
32
+ | According to Rui Ribeiro (Author of WSpecEm), the effects of this can |
33
+ | sometimes be avoided by replacing the corrupted bytes with zeros; e.g. |
34
+ | take the PC from the stack pointer, replace that word with 0000 and |
35
+ | then increment SP. This worked with snapshots of Batman, Bounder and |
36
+ | others which had been saved at critical points. Theoretically, this |
37
+ | problem could cause a complete crash on a real Spectrum if the stack |
38
+ | pointer happened to be at address 16384; the push would try and write |
39
+ | to the ROM. |
40
+ | |
41
+ | When the registers have been loaded, a RETN command is required to |
42
+ | start the program. IFF2 is short for interrupt flip-flop 2, and for all |
43
+ | practical purposes is the interrupt-enabled flag. Set means enabled. " |
44
+ '------------------------------------------------------------------------*/
45
+
46
+ #define Z_SNA_V48K_PC_VALUE 0x72
47
+
48
+ Z_DEFINE_STRICT_STRUCTURE_BEGIN
49
+ zuint8 i;
50
+ Z16Bit hl_, de_, bc_, af_;
51
+ Z16Bit hl, de, bc, iy, ix;
52
+
53
+ struct {Z_BIT_FIELD(8, 3) (
54
+ zuint8 unused_0 :5,
55
+ zuint8 iff2 :1,
56
+ zuint8 unused_1 :2
57
+ )} interrupt;
58
+
59
+ zuint8 r;
60
+ Z16Bit af;
61
+ zuint16 sp;
62
+ zuint8 im;
63
+ zuint8 border_color;
64
+ zuint8 ram[1024 * 48]; /* RAM dump [16384-65535] */
65
+ Z_DEFINE_STRICT_STRUCTURE_END ZSNAv48K;
66
+
67
+ #define Z_SNA_IM_0 0
68
+ #define Z_SNA_IM_1 1
69
+ #define Z_SNA_IM_2 2
70
+
71
+ /* MARK: - v128K
72
+ .-------------------------------------------------------------------------.
73
+ | From SinclairFAQ: |
74
+ | |
75
+ | " The 128K version of the SNA format is the same as above, with |
76
+ | extensions to include the extra memory banks of the 128K/+2 machines, |
77
+ | and fixes the problem with the PC being pushed onto the stack - now it |
78
+ | is located in an extra variable in the file (and is not pushed onto the |
79
+ | stack at all). The first 49179 bytes of the snapshot are otherwise |
80
+ | exactly as described above. |
81
+ | |
82
+ | The third RAM bank saved (ram_bank_n) is always the one currently |
83
+ | paged, even if this is page 5 or 2 - in this case, the bank is actually |
84
+ | included twice. The remaining RAM banks are saved in ascending order. |
85
+ | |
86
+ | Example: If RAM bank 4 is paged in, the snapshot is made up of banks |
87
+ | 5, 2 and 4 to start with, and banks 0, 1, 3, 6 and 7 afterwards. If RAM |
88
+ | bank 5 is paged in, the snapshot is made up of banks 5, 2 and 5 again, |
89
+ | followed by banks 0, 1, 3, 4, 6 and 7. " |
90
+ '------------------------------------------------------------------------*/
91
+
92
+ Z_DEFINE_STRICT_STRUCTURE_BEGIN
93
+ zuint8 i;
94
+ Z16Bit hl_, de_, bc_, af_;
95
+ Z16Bit hl, de, bc, iy, ix;
96
+
97
+ struct {Z_BIT_FIELD(8, 3) (
98
+ zuint8 unused_0 :5,
99
+ zuint8 iff2 :1,
100
+ zuint8 unused_1 :2
101
+ )} interrupt;
102
+
103
+ zuint8 r;
104
+ Z16Bit af;
105
+ zuint16 sp;
106
+ zuint8 im;
107
+ zuint8 border_color;
108
+ zuint8 ram_bank_5[1024 * 16];
109
+ zuint8 ram_bank_2[1024 * 16];
110
+ zuint8 ram_bank_n[1024 * 16];
111
+ zuint16 pc;
112
+ zuint8 port_7ffd_value;
113
+ zuint8 tr_dos_rom_paged; /* boolean */
114
+ zuint8 remaining_ram_banks[1024 * 16 * 6];
115
+ Z_DEFINE_STRICT_STRUCTURE_END ZSNAv128K;
116
+
117
+ #endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_SNA_H_ */
@@ -0,0 +1,37 @@
1
+ /* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/SNP.h
2
+ _____ _______________
3
+ /_ /_/ -_/_ _/ _ |
4
+ /____/\___/ /__//___/_| Kit
5
+ Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
6
+ Released under the terms of the GNU Lesser General Public License v3.
7
+
8
+ .--------------------------------------------------.
9
+ | Extensions: snp |
10
+ | Endianness: Little |
11
+ | Created by: Garabik, Radovan - Salanci, Lubomir |
12
+ | Used by: Nuclear ZX [DOS] |
13
+ | |
14
+ | http://korpus.juls.savba.sk/~garabik/old/zx.html |
15
+ '-------------------------------------------------*/
16
+
17
+ #ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_SNP_H_
18
+ #define _Z_formats_snapshot_machine_computer_ZX_Spectrum_SNP_H_
19
+
20
+ #include <Z/types/base.h>
21
+
22
+ Z_DEFINE_STRICT_STRUCTURE_BEGIN
23
+ zuint8 ram[1024 * 48];
24
+ Z16Bit af;
25
+ zuint8 border_color;
26
+ zuint8 reserved;
27
+ Z16Bit bc, de, hl;
28
+ zuint16 pc, sp;
29
+ Z16Bit ix, iy;
30
+ zuint8 iff2; /* not used actually */
31
+ zuint8 iff1;
32
+ zuint8 im;
33
+ zuint8 r, i;
34
+ Z16Bit af_, bc_, de_, hl_;
35
+ Z_DEFINE_STRICT_STRUCTURE_END ZSNP;
36
+
37
+ #endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_SNP_H_ */
@@ -0,0 +1,62 @@
1
+ /* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/SP.h
2
+ _____ _______________
3
+ /_ /_/ -_/_ _/ _ |
4
+ /____/\___/ /__//___/_| Kit
5
+ Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
6
+ Released under the terms of the GNU Lesser General Public License v3.
7
+
8
+ .----------------------------------------------------------------------------.
9
+ | Extensions: sp |
10
+ | Endianness: Little |
11
+ | Created by: Gimeno Fortea, Pedro |
12
+ | Used by: VGASpec, Spectrum [DOS] |
13
+ | |
14
+ | http://www.formauri.es/personal/pgimeno/spec/spec.html |
15
+ | |
16
+ | From the sources of MESS: |
17
+ | |
18
+ | " There are two kinds of .sp files: 'old' and 'new'. |
19
+ | The old version is always 49184 bytes long and is created by a leaked copy |
20
+ | of the VGASpec emulator. |
21
+ | Subsequently Pedro Gimeno (the author of VGASpec) renamed it to 'Spectrum' |
22
+ | (but it's colloquially known as the 'Spanish Spectrum emulator') and added |
23
+ | a header in the snapshot to break backward compatibility: the new format |
24
+ | supports both 16K and 48K images and it's 16422 or 49190 bytes long. " |
25
+ '---------------------------------------------------------------------------*/
26
+
27
+ #ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_SP_H_
28
+ #define _Z_formats_snapshot_machine_computer_ZX_Spectrum_SP_H_
29
+
30
+ #include <Z/types/base.h>
31
+
32
+ Z_DEFINE_STRICT_STRUCTURE (
33
+ zuint8 signature[2]; /* 'SP' */
34
+ zuint16 ram_size; /* 1024 * 16 or 1024 * 48 */
35
+ zuint16 ram_load_address; /* 1024 * 16 */
36
+ ) ZSPHeader;
37
+
38
+ Z_DEFINE_STRICT_STRUCTURE_BEGIN
39
+ Z16Bit bc, de, hl, af, ix, iy;
40
+ Z16Bit bc_, de_, hl_, af_;
41
+ zuint8 r, i;
42
+ zuint16 sp, pc;
43
+ zuint16 zero1; /* reserved for future use */
44
+ zuint8 border_color;
45
+ zuint8 zero2; /* reserved for future use */
46
+
47
+ struct {Z_BIT_FIELD(8, 7) (
48
+ zuint8 zero :2, /* reserved for internal use */
49
+ zuint8 flash :1, /* boolean */
50
+ zuint8 int_pending :1,
51
+ zuint8 im_0 :1,
52
+ zuint8 iff2 :1,
53
+ zuint8 im :1,
54
+ zuint8 iff1 :1
55
+ )} status;
56
+
57
+ Z_FLEXIBLE_ARRAY_MEMBER(zuint8 ram[];)
58
+ Z_DEFINE_STRICT_STRUCTURE_END ZSPBody;
59
+
60
+ #define Z_SP_BODY_IM(p) (Z_SP_BODY(p)->im_0 ? 0 : ((p)->im ? 2 : 1))
61
+
62
+ #endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_SP_H_ */
@@ -0,0 +1,117 @@
1
+ /* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/Z80.h
2
+ _____ _______________
3
+ /_ /_/ -_/_ _/ _ |
4
+ /____/\___/ /__//___/_| Kit
5
+ Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
6
+ Released under the terms of the GNU Lesser General Public License v3.
7
+
8
+ .---------------------------------------------.
9
+ | Extensions: z80 |
10
+ | Endianness: Little |
11
+ | Created by: Lunter, Gerton |
12
+ | Used by: Any decent ZX Spectrum emulator |
13
+ '--------------------------------------------*/
14
+
15
+ #ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_Z80_H_
16
+ #define _Z_formats_snapshot_machine_computer_ZX_Spectrum_Z80_H_
17
+
18
+ #include <Z/types/base.h>
19
+
20
+ Z_DEFINE_STRICT_STRUCTURE_BEGIN
21
+ zuint8 a, f;
22
+ zuint16 bc, hl, pc, sp;
23
+ zuint8 i, r;
24
+
25
+ struct {Z_BIT_FIELD(8, 5) (
26
+ zuint8 r7 :1,
27
+ zuint8 border_color :3,
28
+ zuint8 basic_samrom :1,
29
+ zuint8 data_block_is_compressed :1,
30
+ zuint8 unused :2
31
+ )} bitfield1;
32
+
33
+ zuint16 de;
34
+ zuint16 bc_, de_, hl_;
35
+ zuint8 a_, f_;
36
+ zuint16 iy, ix;
37
+ zuint8 iff1, iff2;
38
+
39
+ struct {Z_BIT_FIELD(8, 5) (
40
+ zuint8 im :2,
41
+ zuint8 issue_2_emulation :1,
42
+ zuint8 int_frequency :1,
43
+ zuint8 video_synchronization :2,
44
+ zuint8 joystick_type :2
45
+ )} bitfield2;
46
+ Z_DEFINE_STRICT_STRUCTURE_END ZZ80v1Header;
47
+
48
+ Z_DEFINE_STRICT_STRUCTURE (
49
+ zuint16 pc;
50
+ zuint8 hardware;
51
+ zuint8 output_state;
52
+ zuint8 interface_1_paginated_or_timex_output_state;
53
+
54
+ struct {Z_BIT_FIELD(8, 4) (
55
+ zuint8 r_register_emulation :1,
56
+ zuint8 ldir_instruction_emulation :1,
57
+ zuint8 zero :5,
58
+ zuint8 hardware_modification :1
59
+ )} bitfield;
60
+
61
+ zuint8 last_output_to_fffd;
62
+ zuint8 sound_chip_registers;
63
+ ) ZZ80v2AdditionalHeader;
64
+
65
+ #define Z_Z80_HARDWARE_SAM_RAM 2
66
+ #define Z_Z80_HARDWARE_PENTAGON_128K 9
67
+ #define Z_Z80_HARDWARE_SCORPION_256K 10
68
+ #define Z_Z80_HARDWARE_DIDAKTIK_KOMPAKT 11
69
+ #define Z_Z80_HARDWARE_ZX_SPECTRUM_PLUS_2 12
70
+ #define Z_Z80_HARDWARE_ZX_SPECTRUM_PLUS_2A 13
71
+ #define Z_Z80_HARDWARE_TIMEX_TC_2048 14
72
+ #define Z_Z80_HARDWARE_TIMEX_TC_2068 15
73
+ #define Z_Z80_HARDWARE_TIMEX_TS_2068 128
74
+
75
+ #define Z_Z80_HARDWARE_A_ZX_SPECTRUM_48K 0
76
+ #define Z_Z80_HARDWARE_A_ZX_SPECTRUM_48K_AND_IF1 1
77
+ #define Z_Z80_HARDWARE_A_ZX_SPECTRUM_128K_AND_IF1 5
78
+ #define Z_Z80_HARDWARE_A_ZX_SPECTRUM_128K_AND_MGT 6
79
+ #define Z_Z80_HARDWARE_A_ZX_SPECTRUM_PLUS_3 7
80
+ #define Z_Z80_HARDWARE_A_ZX_SPECTRUM_PLUS_3_ 8
81
+
82
+ #define Z_Z80_HARDWARE_B_ZX_SPECTRUM_16K 0
83
+ #define Z_Z80_HARDWARE_B_ZX_SPECTRUM_16K_AND_IF1 1
84
+ #define Z_Z80_HARDWARE_A_ZX_SPECTRUM_PLUS_2_AND_IF1 5
85
+ #define Z_Z80_HARDWARE_A_ZX_SPECTRUM_PLUS_2_AND_MGT 6
86
+ #define Z_Z80_HARDWARE_B_ZX_SPECTRUM_PLUS_2A 7
87
+ #define Z_Z80_HARDWARE_B_ZX_SPECTRUM_PLUS_2A_ 8
88
+
89
+ #define Z_Z80_V2_HARDWARE_A_ZX_SPECTRUM_128K 3
90
+ #define Z_Z80_V2_HARDWARE_A_ZX_SPECTRUM_128K_AND_IF1 4
91
+
92
+ #define Z_Z80_V2_HARDWARE_B_ZX_SPECTRUM_PLUS_2 3
93
+ #define Z_Z80_V2_HARDWARE_B_ZX_SPECTRUM_PLUS_2_AND_IF1 4
94
+
95
+ #define Z_Z80_V3_HARDWARE_A_ZX_SPECTRUM_48K_AND_MGT 3
96
+ #define Z_Z80_V3_HARDWARE_A_ZX_SPECTRUM_128K 4
97
+
98
+ #define Z_Z80_V3_HARDWARE_B_ZX_SPECTRUM_PLUS_2_AND_MGT 3
99
+ #define Z_Z80_V3_HARDWARE_B_ZX_SPECTRUM_PLUS_2 4
100
+
101
+ Z_DEFINE_STRICT_STRUCTURE (
102
+ zuint16 low_t_state_counter;
103
+ zuint8 high_t_state_counter;
104
+ zuint8 zero[3];
105
+ zuint8 mgt_rom_paged;
106
+ zuint8 multiface_rom_paged;
107
+ zuint8 memory_type_between_0000_and_1fff;
108
+ zuint8 memory_type_between_2000_and_3fff;
109
+ zuint16 keyboard_mappings[5];
110
+ zuint16 ascii_values[5];
111
+ zuint8 mgt_type;
112
+ zuint8 disciple_inhibitor_button_state;
113
+ zuint8 disciple_inhibitor_button_flag;
114
+ zuint8 last_output_to_1ffd;
115
+ ) ZZ80v3ExtendedHeader;
116
+
117
+ #endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_Z80_H_ */
@@ -0,0 +1,56 @@
1
+ /* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/ZX.h
2
+ _____ _______________
3
+ /_ /_/ -_/_ _/ _ |
4
+ /____/\___/ /__//___/_| Kit
5
+ Information contributed by Troels Norgaard.
6
+ Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
7
+ Released under the terms of the GNU Lesser General Public License v3.
8
+
9
+ .-----------------------------.
10
+ | Extensions: zx |
11
+ | Endianness: Big |
12
+ | Created by: KGB support BBS |
13
+ | Used by: KGB [Amiga] |
14
+ '----------------------------*/
15
+
16
+ #ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX_H_
17
+ #define _Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX_H_
18
+
19
+ #include <Z/types/base.h>
20
+
21
+ Z_DEFINE_STRICT_STRUCTURE_BEGIN
22
+ zuint8 rom_tail[132]; /* Last 132 bytes of ROM */
23
+ zuint8 ram[1024 * 48];
24
+ zuint8 zero_0[132];
25
+ zuint16 settings[5]; /* KGB settings, usually = {10, 10, 4, 1, 1} */
26
+ zuint8 iff;
27
+ zuint8 constants[2]; /* {0, 3} */
28
+ zuint8 color_mode;
29
+ zuint32 zero_1;
30
+ Z16Bit bc, bc_, de, de_, hl, hl_, ix, iy;
31
+ zuint8 i, r;
32
+ zuint8 zero_2[3];
33
+ zuint8 a_, zero_3;
34
+ zuint8 a, zero_4;
35
+ zuint8 f_, zero_5;
36
+ zuint8 f;
37
+ zuint16 zero_6, pc;
38
+ zuint16 zero_7, sp;
39
+ zuint16 sound_mode;
40
+ zuint16 halt; /* boolean */
41
+ zsint16 im;
42
+ zuint8 zero_8[10];
43
+ Z_DEFINE_STRICT_STRUCTURE_END ZZX;
44
+
45
+ #define Z_ZX_COLOR_MODE_BW 0
46
+ #define Z_ZX_COLOR_MODE_COLOR 1
47
+
48
+ #define Z_ZX_SOUND_MODE_SIMPLE 0
49
+ #define Z_ZX_SOUND_MODE_PITCH 1
50
+ #define Z_ZX_SOUND_MODE_ROM_ONLY 2
51
+
52
+ #define Z_ZX_IM_0 -1
53
+ #define Z_ZX_IM_1 0
54
+ #define Z_ZX_IM_2 1
55
+
56
+ #endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX_H_ */
@@ -0,0 +1,70 @@
1
+ /* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/ZX82.h
2
+ _____ _______________
3
+ /_ /_/ -_/_ _/ _ |
4
+ /____/\___/ /__//___/_| Kit
5
+ Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
6
+ Released under the terms of the GNU Lesser General Public License v3.
7
+
8
+ .-------------------------------------------------------------------------.
9
+ | Extensions: zx82 |
10
+ | Endianness: Big |
11
+ | Created by: James, William |
12
+ | Used by: Speculator '97 [Amiga] |
13
+ | |
14
+ | IMPORTANT NOTICE: This format is not well known at all, |
15
+ | so the types and constants declared here can be useless. |
16
+ | The only documentation I have found is from the SinclairFAQ. |
17
+ | |
18
+ | From SinclairFAQ: |
19
+ | |
20
+ | " Amiga Speculator has its own file format called ZX82 format because |
21
+ | it contains a file identifier in the first four bytes consisting of the |
22
+ | ASCII characters "ZX82". The format has a 12 byte header which contains |
23
+ | the normal Spectrum type file information like length, type, start etc. |
24
+ | as well as a compression flag which is set if the file is byte run |
25
+ | compressed. |
26
+ | |
27
+ | The 'data_type' field is derived from the MGT disciple directory |
28
+ | MGT_Type-1, so further file types may be supported in this way in the |
29
+ | future. |
30
+ | |
31
+ | The compression used is the standard byte run compression as used by |
32
+ | ILBM IFF files. The whole 48K data block is compressed as if it were |
33
+ | one long row. " |
34
+ | |
35
+ | See: |
36
+ | Amiga ROM Kernel Reference Manual: Devices (Third Edition) |
37
+ | - Appendix A - IFF Specification (Page 347) |
38
+ | - Appendix C - Example Packer C code (Page 538) |
39
+ '------------------------------------------------------------------------*/
40
+
41
+ #ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX82_H_
42
+ #define _Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX82_H_
43
+
44
+ #include <Z/types/base.h>
45
+
46
+ Z_DEFINE_STRICT_STRUCTURE (
47
+ zuint8 identifier[4]; /* {'Z', 'X', '8', '2'} */
48
+ zuint8 data_type;
49
+ zuint8 data_compressed; /* boolean */
50
+ zuint16 data_size; /* File length up to 64k (ELINE-PROG for BASIC) */
51
+ zuint16 start_address; /* Start address for code (AUTOSTART for BASIC) */
52
+ zuint16 program_size;
53
+ ) ZZX82Header;
54
+
55
+ #define Z_ZX82_DATA_TYPE_BASIC 0
56
+ #define Z_ZX82_DATA_TYPE_NUMERIC 1
57
+ #define Z_ZX82_DATA_TYPE_STRINC 2
58
+ #define Z_ZX82_DATA_TYPE_CODE 3
59
+ #define Z_ZX82_DATA_TYPE_SNAPSHOT 4
60
+
61
+ Z_DEFINE_STRICT_STRUCTURE_BEGIN
62
+ zuint8 border_color, im; /* (0 = use I register, 1 = IM 1 and 2 = IM 2) (?) */
63
+ Z16Bit iy, ix;
64
+ Z16Bit de, bc, hl, af;
65
+ Z16Bit de_, bc_, hl_, af_, sp;
66
+ Z16Bit i, r;
67
+ Z16Bit pc;
68
+ Z_DEFINE_STRICT_STRUCTURE_END ZZX82SnapshotHeader;
69
+
70
+ #endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX82_H_ */
@@ -0,0 +1,26 @@
1
+ /* Z Kit - formats/storage medium image/NES Game Pak/UNIF.h
2
+ _____ _______________
3
+ /_ /_/ -_/_ _/ _ |
4
+ /____/\___/ /__//___/_| Kit
5
+ Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
6
+ Released under the terms of the GNU Lesser General Public License v3.
7
+
8
+ .----------------------------------------.
9
+ | Extensions: unf, unif |
10
+ | Endianness: Little |
11
+ | Created by: Carmel-Veilleux, Tennessee |
12
+ | Used by: |
13
+ '---------------------------------------*/
14
+
15
+ #ifndef _Z_formats_storage_medium_image_NES_Game_Pak_UNIF_H_
16
+ #define _Z_formats_storage_medium_image_NES_Game_Pak_UNIF_H_
17
+
18
+ #include <Z/types/base.h>
19
+
20
+ Z_DEFINE_STRICT_STRUCTURE (
21
+ zuint8 unif[4]; /* 55 4E 49 46 ('UNIF') */
22
+ zuint32 minimum_version_required;
23
+ zuint8 zero[24];
24
+ ) ZUNIFHeader;
25
+
26
+ #endif /* _Z_formats_storage_medium_image_NES_Game_Pak_UNIF_H_ */
@@ -0,0 +1,76 @@
1
+ /* Z Kit - formats/storage medium image/NES Game Pak/iNES.h
2
+ _____ _______________
3
+ /_ /_/ -_/_ _/ _ |
4
+ /____/\___/ /__//___/_| Kit
5
+ Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
6
+ Released under the terms of the GNU Lesser General Public License v3.
7
+
8
+ .------------------------------.
9
+ | Extensions: nes |
10
+ | Endianness: Little |
11
+ | Created by: Fayzullin, Marat |
12
+ | Used by: Any NES emulator |
13
+ '-----------------------------*/
14
+
15
+ #ifndef _Z_formats_storage_medium_image_NES_Game_Pak_iNES_H_
16
+ #define _Z_formats_storage_medium_image_NES_Game_Pak_iNES_H_
17
+
18
+ #include <Z/types/base.h>
19
+
20
+ Z_DEFINE_STRICT_STRUCTURE (
21
+ zuint8 nes[4]; /* 4E 45 53 1A ('NES' + MS-DOS EOF) */
22
+ zuint8 prg_rom_page_count;
23
+ zuint8 chr_rom_page_count;
24
+ zuint8 rom_control_0;
25
+ zuint8 rom_control_1;
26
+ zuint8 nes_rom;
27
+ zuint8 vs_unisystem_rom;
28
+ zuint8 playchoice_rom;
29
+ zuint8 zero_0;
30
+ zuint8 zero_1;
31
+ zuint8 full_ntsc_compatible;
32
+ zuint8 not_necessarily_pal_compatible;
33
+ zuint8 extra_ram_at_6000h_7fffh;
34
+ zuint8 dont_have_bus_conflicts;
35
+ zuint8 zero_2[6];
36
+ ) ZiNESHeader;
37
+
38
+ /*#define Z_INES_MAPPER_NONE 00
39
+ #define Z_INES_MAPPER_NINTENDO_MMC1_CHIPSET 01
40
+ #define Z_INES_MAPPER_PRG_ROM_SWITCH 02
41
+ #define Z_INES_MAPPER_CHR_VROM_SWITCH 03
42
+ #define Z_INES_MAPPER_NINTENDO_MMC3_CHIPSET 04
43
+ #define Z_INES_MAPPER_NINTENDO_MMC5_CHIPSET 05
44
+ #define Z_INES_MAPPER_FFE_F4XXX_GAMES 06
45
+ #define Z_INES_MAPPER_32K_PRG_ROM_SWITCH 07
46
+ #define Z_INES_MAPPER_FFE_F3XXX_GAMES 08
47
+ #define Z_INES_MAPPER_NINTENDO_MMC2_CHIPSET 09
48
+ #define Z_INES_MAPPER_NINTENDO_MMC4_CHIPSET 10
49
+ #define Z_INES_MAPPER_COLOR_DREAMS_CHIPSET 11
50
+ #define Z_INES_MAPPER_FFE_F6XXX_GAMES 12
51
+ #define Z_INES_MAPPER_100_IN_1_CART_SWITCH 15
52
+ #define Z_INES_MAPPER_BAN_DAI_CHIPSET 16
53
+ #define Z_INES_MAPPER_FFE_F8XXX_GAMES 17
54
+ #define Z_INES_MAPPER_JALECO_SS8806_CHIPSET 18
55
+ #define Z_INES_MAPPER_NAMCOT_106_CHIPSET 19
56
+ #define Z_INES_MAPPER_FAMICOM_DISK_SYSTEM 20
57
+ #define Z_INES_MAPPER_KONAMI_VRC4_2A_CHIPSET 21
58
+ #define Z_INES_MAPPER_KONAMI_VRC4_1B_CHIPSET 22
59
+ #define Z_INES_MAPPER_KONAMI_VRC4_1A_CHIPSET 23
60
+ #define Z_INES_MAPPER_KONAMI_VRC6_CHIPSET 24
61
+ #define Z_INES_MAPPER_KONAMI_VRC4_CHIPSET 25
62
+ #define Z_INES_MAPPER_IREM_G_101_CHIPSET 32
63
+ #define Z_INES_MAPPER_TAITO_TC0190_TC0350 33
64
+ #define Z_INES_MAPPER_32K_PRG_ROM_SWITCH 34
65
+ #define Z_INES_MAPPER_IREM_H3001_CHIPSET 65
66
+ #define Z_INES_MAPPER_74161_32_CHIPSET 66
67
+ #define Z_INES_MAPPER_SUNSOFT_MAPPER_3 67
68
+ #define Z_INES_MAPPER_SUNSOFT_MAPPER_4 69
69
+ #define Z_INES_MAPPER_74161_32_CHIPSET 70
70
+ #define Z_INES_MAPPER_X_005_CHIPSET 80
71
+ #define Z_INES_MAPPER_C075_CHIPSET 81
72
+ #define Z_INES_MAPPER_X1_17_CHIPSET 82
73
+ #define Z_INES_MAPPER_CONY_MAPPER 83
74
+ #define Z_INES_MAPPER_PASOFAMI_MAPPER 84*/
75
+
76
+ #endif /* _Z_formats_storage_medium_image_NES_Game_Pak_iNES_H_ */