zemu 0.1.0

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 (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,158 @@
1
+ /* Z Kit - hardware/machine/model/computer/ZX Spectrum/ZX Spectrum + 128K.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
+ | Vendor: Sinclair Research - Investronica |
10
+ | Released: 1985-09 |
11
+ | CPU: Zilog Z80 @ 3.5469 MHz |
12
+ | ROM: 48K |
13
+ | RAM: 128K |
14
+ | Sound: General Instrument AY-3-8912 (PSG) |
15
+ '----------------------------------------------'
16
+
17
+ _____________________________ ________________
18
+ | ___. __ __ __ . __ '''''''''''''''''''''''''''' |====|
19
+ | __\ || ||__|__|--||| |====|
20
+ |--------------------------------------------------------------------|====|
21
+ | ZX Spectrum + |====|
22
+ |--.-----------------------------------------------------.-----------|====|
23
+ | |( )|( )|(1)|(2)|(3)|(4)|(5)|(6)|(7)|(1)|(1)|(1)|(BRK)| |====|
24
+ |--|-----------------------------------------------------|-----------|====|
25
+ | |(DEL)|(1)|(Q)|(W)|(E)|(R)|(T)|(Y)|(U)|(I)|(O)|(P)|.-.| |====|
26
+ |--|-------------------------------------------------|| ||-----------|====|
27
+ | |(EXT)|(ED)|(A)|(S)|(D)|(F)|(G)|(H)|(J)|(K)|(L)|(____'| |====|
28
+ |--|-----------------------------------------------------|-----------|====|
29
+ | |(CAPS S)|( )|(Z)|(X)|(C)|(V)|(B)|(N)|(M)|(.)|(CAPS S)| |====|
30
+ |--|-----------------------------------------------------|-----------|====|
31
+ | |( )|(;)|(")|(_)|(_)|(_______________)|(_)|(_)|(,)|(_)| 128K//// |====|
32
+ |--'-----------------------------------------------------'-----------|====|
33
+ |____________________________________________________________________|====| */
34
+
35
+ #ifndef _Z_hardware_machine_model_computer_ZX_Spectrum_ZX_Spectrum_Plus_128K_H_
36
+ #define _Z_hardware_machine_model_computer_ZX_Spectrum_ZX_Spectrum_Plus_128K_H_
37
+
38
+ #include <Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum.h>
39
+ #include <Z/types/base.h>
40
+
41
+ /* MARK: - Memory
42
+
43
+ .-----------------.
44
+ 0000 | ROM 0 | ROM 1 | Either ROM may be switched in.
45
+ | | |
46
+ | | |
47
+ 3FFF | | |
48
+ |--------+--------'
49
+ 4000 | Bank 5 |
50
+ | |
51
+ | |
52
+ 7FFF | screen |
53
+ |--------|
54
+ 8000 | Bank 2 | Any one of these pages may be switched in.
55
+ | |
56
+ | |
57
+ BFFF | |
58
+ |--------+--------------------------------------------------------------.
59
+ C000 | Bank 0 | Bank 1 | Bank 2 | Bank 3 | Bank 4 | Bank 5 | Bank 6 | Bank 7 |
60
+ | | |(also at| | |(also at| | |
61
+ | | | 8000) | | | 4000) | | |
62
+ FFFF | | | | | | screen | | screen |
63
+ '----------------------------------------------------------------------*/
64
+
65
+ #define Z_ZX_SPECTRUM_PLUS_128K_SIZE_ROM 32768 /* 1024 * 32 */
66
+ #define Z_ZX_SPECTRUM_PLUS_128K_SIZE_RAM 131072 /* 1024 * 128 */
67
+ #define Z_ZX_SPECTRUM_PLUS_128K_SIZE_MEMORY 163840 /* 1024 * (32 + 128) */
68
+
69
+ /* MARK: - I/O Ports */
70
+
71
+ #define Z_ZX_SPECTRUM_PLUS_128K_IO_PORT_BANK_SWITCH 0x7FFD /* Read / Write */
72
+ #define Z_ZX_SPECTRUM_PLUS_128K_IO_PORT_PSG 0xFFFD /* Read / Write */
73
+
74
+ /* 7FFD - Bank Switch
75
+ .-----------------.
76
+ | 7 6 5 4 3 2 1 0 |
77
+ '-\_/-|-|-|-\___/-'
78
+ | | | | '---> user (C000h)
79
+ | | | '-------> VRAM
80
+ | | '---------> ROM
81
+ | '-----------> disable
82
+ '--------------> unused */
83
+
84
+ Z_DEFINE_STRICT_STRUCTURE (Z_BIT_FIELD(8, 5) (
85
+ zuint8 unused :2,
86
+ zuint8 disable :1,
87
+ zuint8 rom :1,
88
+ zuint8 vram :1,
89
+ zuint8 user :3
90
+ )) ZZXSpectrumPlus128KBankSwitch;
91
+
92
+ /* FFFD - Read/Select */
93
+
94
+ /* MARK: - Screen
95
+ ---
96
+ Invisible Top Border | 7
97
+ .---------------------------------. --- ---
98
+ | Visible Top Border | | 48 |
99
+ |----.-----------------------.----| --- |
100
+ |L | |R | | |
101
+ |e | |i | | |
102
+ |f B| |g B| | |
103
+ |t o| Paper |h o| | 192 | 296
104
+ | r| |t r| | |
105
+ | d| | d| | |
106
+ | e| | e| | |
107
+ | r| | r| | |
108
+ |----'-----------------------'----| --- |
109
+ | Bottom Border | | 56 |
110
+ '---------------------------------' --- ---
111
+
112
+ |----|-----------------------|----|
113
+ 48 256 48
114
+ |---------------------------------|
115
+ 352 */
116
+
117
+ #define Z_ZX_SPECTRUM_PLUS_128K_SCREEN_FPS Z_ZX_SPECTRUM_SCREEN_FPS
118
+ #define Z_ZX_SPECTRUM_PLUS_128K_SCREEN_WIDTH Z_ZX_SPECTRUM_SCREEN_WIDTH
119
+ #define Z_ZX_SPECTRUM_PLUS_128K_SCREEN_HEIGHT Z_ZX_SPECTRUM_SCREEN_HEIGHT
120
+ #define Z_ZX_SPECTRUM_PLUS_128K_SCREEN_PIXELS Z_ZX_SPECTRUM_SCREEN_PIXELS
121
+ #define Z_ZX_SPECTRUM_PLUS_128K_SCREEN_PAPER_WIDTH Z_ZX_SPECTRUM_SCREEN_PAPER_WIDTH
122
+ #define Z_ZX_SPECTRUM_PLUS_128K_SCREEN_PAPER_HEIGHT Z_ZX_SPECTRUM_SCREEN_PAPER_HEIGHT
123
+ #define Z_ZX_SPECTRUM_PLUS_128K_SCREEN_PAPER_PIXELS Z_ZX_SPECTRUM_SCREEN_PAPER_PIXELS
124
+ #define Z_ZX_SPECTRUM_PLUS_128K_SCREEN_TOP_BORDER_HEIGHT 55
125
+ #define Z_ZX_SPECTRUM_PLUS_128K_SCREEN_INVISIBLE_TOP_BORDER_HEIGHT 7
126
+ #define Z_ZX_SPECTRUM_PLUS_128K_SCREEN_VISIBLE_TOP_BORDER_HEIGHT Z_ZX_SPECTRUM_SCREEN_VISIBLE_TOP_BORDER_HEIGHT
127
+ #define Z_ZX_SPECTRUM_PLUS_128K_SCREEN_BOTTOM_BORDER_HEIGHT Z_ZX_SPECTRUM_SCREEN_BOTTOM_BORDER_HEIGHT
128
+ #define Z_ZX_SPECTRUM_PLUS_128K_SCREEN_LEFT_BORDER_WIDTH Z_ZX_SPECTRUM_SCREEN_LEFT_BORDER_WIDTH
129
+ #define Z_ZX_SPECTRUM_PLUS_128K_SCREEN_RIGHT_BORDER_WIDTH Z_ZX_SPECTRUM_SCREEN_RIGHT_BORDER_WIDTH
130
+
131
+ /* MARK: - Timmings */
132
+
133
+ #define Z_ZX_SPECTRUM_PLUS_128K_CPU_HZ 3546900
134
+ #define Z_ZX_SPECTRUM_PLUS_128K_PSG_HZ 1773400
135
+ #define Z_ZX_SPECTRUM_PLUS_128K_CYCLES_PER_FRAME 70908
136
+ #define Z_ZX_SPECTRUM_PLUS_128K_CYCLES_PER_SCANLINE 228
137
+ #define Z_ZX_SPECTRUM_PLUS_128K_CYCLES_PER_HBLANK 52
138
+ #define Z_ZX_SPECTRUM_PLUS_128K_CYCLES_PER_VBLANK 1824
139
+ #define Z_ZX_SPECTRUM_PLUS_128K_CYCLES_PER_TOP_BORDER_LINE Z_ZX_SPECTRUM_CYCLES_PER_TOP_BORDER_LINE
140
+ #define Z_ZX_SPECTRUM_PLUS_128K_CYCLES_PER_LEFT_BORDER_LINE Z_ZX_SPECTRUM_CYCLES_PER_LEFT_BORDER_LINE
141
+ #define Z_ZX_SPECTRUM_PLUS_128K_CYCLES_PER_RIGHT_BORDER_LINE Z_ZX_SPECTRUM_CYCLES_PER_RIGHT_BORDER_LINE
142
+ #define Z_ZX_SPECTRUM_PLUS_128K_CYCLES_PER_BOTTOM_BORDER_LINE Z_ZX_SPECTRUM_CYCLES_PER_BOTTOM_BORDER_LINE
143
+ #define Z_ZX_SPECTRUM_PLUS_128K_CYCLES_PER_PAPER_LINE Z_ZX_SPECTRUM_CYCLES_PER_PAPER_LINE
144
+ #define Z_ZX_SPECTRUM_PLUS_128K_CYCLES_PER_INT Z_ZX_SPECTRUM_CYCLES_PER_INT
145
+ #define Z_ZX_SPECTRUM_PLUS_128K_CYCLES_AT_VBLANK Z_ZX_SPECTRUM_CYCLES_AT_VBLANK
146
+ #define Z_ZX_SPECTRUM_PLUS_128K_CYCLES_AT_INT Z_ZX_SPECTRUM_CYCLES_AT_INT
147
+ #define Z_ZX_SPECTRUM_PLUS_128K_CYCLES_AT_INVISIBLE_TOP_BORDER 1824 /* Z_ZX_SPECTRUM_PLUS_128K_CYCLES_PER_VBLANK */
148
+ #define Z_ZX_SPECTRUM_PLUS_128K_CYCLES_AT_VISIBLE_TOP_BORDER 3420 /* Z_ZX_SPECTRUM_PLUS_128K_CYCLES_AT_INVISIBLE_TOP_BORDER +
149
+ Z_ZX_SPECTRUM_PLUS_128K_CYCLES_PER_SCANLINE *
150
+ Z_ZX_SPECTRUM_PLUS_128K_SCREEN_INVISIBLE_TOP_BORDER_HEIGHT */
151
+ #define Z_ZX_SPECTRUM_PLUS_128K_CYCLES_AT_PAPER_REGION 14364 /* Z_ZX_SPECTRUM_PLUS_128K_CYCLES_AT_VISIBLE_TOP_BORDER +
152
+ Z_ZX_SPECTRUM_PLUS_128K_CYCLES_PER_SCANLINE *
153
+ Z_ZX_SPECTRUM_PLUS_128K_SCREEN_VISIBLE_TOP_BORDER_HEIGHT */
154
+ #define Z_ZX_SPECTRUM_PLUS_128K_CYCLES_AT_BOTTOM_BORDER 58140 /* Z_ZX_SPECTRUM_PLUS_128K_CYCLES_AT_PAPER_REGION +
155
+ Z_ZX_SPECTRUM_PLUS_128K_CYCLES_PER_SCANLINE *
156
+ Z_ZX_SPECTRUM_PLUS_128K_SCREEN_PAPER_HEIGHT */
157
+
158
+ #endif /* _Z_hardware_machine_model_computer_ZX_Spectrum_ZX_Spectrum_Plus_128K_H_ */
@@ -0,0 +1,82 @@
1
+ /* Z Kit - hardware/machine/model/computer/ZX Spectrum/ZX Spectrum +.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
+ | Vendor: Sinclair Research |
10
+ | Released: 1984-10 |
11
+ | CPU: Zilog Z80 @ 3.5 MHz |
12
+ | ROM: 16K |
13
+ | RAM: 48K |
14
+ | Sound: Internal speaker |
15
+ '-------------------------------'
16
+
17
+ ____________________________ ___________
18
+ | ___. __ _ __ . __ ''''''''''''''''''''''''''''' |
19
+ | __\ || ||__|__|--||| |
20
+ |--------------------------------------------------------------------|
21
+ | ZX Spectrum + |
22
+ |--.-----------------------------------------------------.-----------|
23
+ | |( )|( )|(1)|(2)|(3)|(4)|(5)|(6)|(7)|(1)|(1)|(1)|(BRK)| |
24
+ |--|-----------------------------------------------------|-----------|
25
+ | |(DEL)|(1)|(Q)|(W)|(E)|(R)|(T)|(Y)|(U)|(I)|(O)|(P)|.-.| |
26
+ |--|-------------------------------------------------|| ||-----------|
27
+ | |(EXT)|(ED)|(A)|(S)|(D)|(F)|(G)|(H)|(J)|(K)|(L)|(____'| |
28
+ |--|-----------------------------------------------------|-----------|
29
+ | |(CAPS S)|( )|(Z)|(X)|(C)|(V)|(B)|(N)|(M)|(.)|(CAPS S)| |
30
+ |--|-----------------------------------------------------|-----------|
31
+ | |( )|(;)|(")|(_)|(_)|(_______________)|(_)|(_)|(,)|(_)| //// |
32
+ |--'-----------------------------------------------------'-----------|
33
+ |____________________________________________________________________| */
34
+
35
+ #ifndef _Z_hardware_machine_model_computer_ZX_Spectrum_ZX_Spectrum_Plus_H_
36
+ #define _Z_hardware_machine_model_computer_ZX_Spectrum_ZX_Spectrum_Plus_H_
37
+
38
+ #include <Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum.h>
39
+
40
+ /* MARK: - Memory */
41
+
42
+ #define Z_ZX_SPECTRUM_PLUS_SIZE_RAM 49152 /* 1024 * 48 */
43
+ #define Z_ZX_SPECTRUM_PLUS_SIZE_ROM Z_ZX_SPECTRUM_SIZE_ROM
44
+ #define Z_ZX_SPECTRUM_PLUS_SIZE_MEMORY 65536 /* 1024 * (16 + 48) */
45
+
46
+ /* MARK: - Screen */
47
+
48
+ #define Z_ZX_SPECTRUM_PLUS_SCREEN_FPS Z_ZX_SPECTRUM_SCREEN_FPS
49
+ #define Z_ZX_SPECTRUM_PLUS_SCREEN_WIDTH Z_ZX_SPECTRUM_SCREEN_WIDTH
50
+ #define Z_ZX_SPECTRUM_PLUS_SCREEN_HEIGHT Z_ZX_SPECTRUM_SCREEN_HEIGHT
51
+ #define Z_ZX_SPECTRUM_PLUS_SCREEN_PIXELS Z_ZX_SPECTRUM_SCREEN_PIXELS
52
+ #define Z_ZX_SPECTRUM_PLUS_SCREEN_PAPER_WIDTH Z_ZX_SPECTRUM_SCREEN_PAPER_WIDTH
53
+ #define Z_ZX_SPECTRUM_PLUS_SCREEN_PAPER_HEIGHT Z_ZX_SPECTRUM_SCREEN_PAPER_HEIGHT
54
+ #define Z_ZX_SPECTRUM_PLUS_SCREEN_PAPER_PIXELS Z_ZX_SPECTRUM_SCREEN_PAPER_PIXELS
55
+ #define Z_ZX_SPECTRUM_PLUS_SCREEN_TOP_BORDER_HEIGHT Z_ZX_SPECTRUM_SCREEN_TOP_BORDER_HEIGHT
56
+ #define Z_ZX_SPECTRUM_PLUS_SCREEN_INVISIBLE_TOP_BORDER_HEIGHT Z_ZX_SPECTRUM_SCREEN_INVISIBLE_TOP_BORDER_HEIGHT
57
+ #define Z_ZX_SPECTRUM_PLUS_SCREEN_VISIBLE_TOP_BORDER_HEIGHT Z_ZX_SPECTRUM_SCREEN_VISIBLE_TOP_BORDER_HEIGHT
58
+ #define Z_ZX_SPECTRUM_PLUS_SCREEN_BOTTOM_BORDER_HEIGHT Z_ZX_SPECTRUM_SCREEN_BOTTOM_BORDER_HEIGHT
59
+ #define Z_ZX_SPECTRUM_PLUS_SCREEN_LEFT_BORDER_WIDTH Z_ZX_SPECTRUM_SCREEN_LEFT_BORDER_WIDTH
60
+ #define Z_ZX_SPECTRUM_PLUS_SCREEN_RIGHT_BORDER_WIDTH Z_ZX_SPECTRUM_SCREEN_RIGHT_BORDER_WIDTH
61
+
62
+ /* MARK: - Timmings */
63
+
64
+ #define Z_ZX_SPECTRUM_PLUS_CPU_HZ Z_ZX_SPECTRUM_CPU_HZ
65
+ #define Z_ZX_SPECTRUM_PLUS_CYCLES_PER_FRAME Z_ZX_SPECTRUM_CYCLES_PER_FRAME
66
+ #define Z_ZX_SPECTRUM_PLUS_CYCLES_PER_SCANLINE Z_ZX_SPECTRUM_CYCLES_PER_SCANLINE
67
+ #define Z_ZX_SPECTRUM_PLUS_CYCLES_PER_HBLANK Z_ZX_SPECTRUM_CYCLES_PER_HBLANK
68
+ #define Z_ZX_SPECTRUM_PLUS_CYCLES_PER_VBLANK Z_ZX_SPECTRUM_CYCLES_PER_VBLANK
69
+ #define Z_ZX_SPECTRUM_PLUS_CYCLES_PER_TOP_BORDER_LINE Z_ZX_SPECTRUM_CYCLES_PER_TOP_BORDER_LINE
70
+ #define Z_ZX_SPECTRUM_PLUS_CYCLES_PER_LEFT_BORDER_LINE Z_ZX_SPECTRUM_CYCLES_PER_LEFT_BORDER_LINE
71
+ #define Z_ZX_SPECTRUM_PLUS_CYCLES_PER_RIGHT_BORDER_LINE Z_ZX_SPECTRUM_CYCLES_PER_RIGHT_BORDER_LINE
72
+ #define Z_ZX_SPECTRUM_PLUS_CYCLES_PER_BOTTOM_BORDER_LINE Z_ZX_SPECTRUM_CYCLES_PER_BOTTOM_BORDER_LINE
73
+ #define Z_ZX_SPECTRUM_PLUS_CYCLES_PER_PAPER_LINE Z_ZX_SPECTRUM_CYCLES_PER_PAPER_LINE
74
+ #define Z_ZX_SPECTRUM_PLUS_CYCLES_PER_INT Z_ZX_SPECTRUM_CYCLES_PER_INT
75
+ #define Z_ZX_SPECTRUM_PLUS_CYCLES_AT_VBLANK Z_ZX_SPECTRUM_CYCLES_AT_VBLANK
76
+ #define Z_ZX_SPECTRUM_PLUS_CYCLES_AT_INT Z_ZX_SPECTRUM_CYCLES_AT_INT
77
+ #define Z_ZX_SPECTRUM_PLUS_CYCLES_AT_INVISIBLE_TOP_BORDER Z_ZX_SPECTRUM_CYCLES_AT_INVISIBLE_TOP_BORDER
78
+ #define Z_ZX_SPECTRUM_PLUS_CYCLES_AT_VISIBLE_TOP_BORDER Z_ZX_SPECTRUM_CYCLES_AT_VISIBLE_TOP_BORDER
79
+ #define Z_ZX_SPECTRUM_PLUS_CYCLES_AT_PAPER_REGION Z_ZX_SPECTRUM_CYCLES_AT_PAPER_REGION
80
+ #define Z_ZX_SPECTRUM_PLUS_CYCLES_AT_BOTTOM_BORDER Z_ZX_SPECTRUM_CYCLES_AT_BOTTOM_BORDER
81
+
82
+ #endif /* _Z_hardware_machine_model_computer_ZX_Spectrum_ZX_Spectrum_Plus_H_ */
@@ -0,0 +1,13 @@
1
+ /* Z Kit - hardware/machine/model/computer/ZX Spectrum/ZX Spectrum +2.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
+ #ifndef _Z_hardware_machine_model_ZX_Spectrum_ZX_Spectrum_Plus2_H_
9
+ #define _Z_hardware_machine_model_ZX_Spectrum_ZX_Spectrum_Plus2_H_
10
+
11
+
12
+
13
+ #endif /* _Z_hardware_machine_model_ZX_Spectrum_ZX_Spectrum_Plus2_H_ */
@@ -0,0 +1,13 @@
1
+ /* Z Kit - hardware/machine/model/computer/ZX Spectrum/ZX Spectrum +2A.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
+ #ifndef _Z_hardware_machine_model_ZX_Spectrum_ZX_Spectrum_Plus2A_H_
9
+ #define _Z_hardware_machine_model_ZX_Spectrum_ZX_Spectrum_Plus2A_H_
10
+
11
+
12
+
13
+ #endif /* _Z_hardware_machine_model_ZX_Spectrum_ZX_Spectrum_Plus2A_H_ */
@@ -0,0 +1,13 @@
1
+ /* Z Kit - hardware/machine/model/computer/ZX Spectrum/ZX Spectrum +3.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
+ #ifndef _Z_hardware_machine_model_ZX_Spectrum_ZX_Spectrum_Plus3_H_
9
+ #define _Z_hardware_machine_model_ZX_Spectrum_ZX_Spectrum_Plus3_H_
10
+
11
+
12
+
13
+ #endif /* _Z_hardware_machine_model_ZX_Spectrum_ZX_Spectrum_Plus3_H_ */
@@ -0,0 +1,109 @@
1
+ /* Z Kit - hardware/machine/model/computer/ZX Spectrum/ZX Spectrum.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
+ | Vendor: Sinclair Research |
10
+ | Released: 1982-04-23 |
11
+ | CPU: Zilog Z80 @ 3.5 MHz |
12
+ | ROM: 16K |
13
+ | RAM: 16K / 48K |
14
+ | Sound: Internal speaker |
15
+ '---------------------------------'
16
+
17
+ __________________________________________________
18
+ | ___. __ _ __ . __ |
19
+ | __\ || ||__|__|--||| |
20
+ | ZX Spectrum |
21
+ | |
22
+ | ________________________________________________ |
23
+ |/________________________________________________\|
24
+ | _ _ _ _ _ _ _ _ _ _ |
25
+ | [1] [2] [3] [4] [5] [6] [7] [8] [9] [0] |
26
+ | _ _ _ _ _ _ _ _ _ _ |
27
+ | [Q] [W] [E] [R] [T] [Y] [U] [I] [O] [P] /|
28
+ | _ _ _ _ _ _ _ _ _ _____//|
29
+ | [A] [S] [D] [F] [G] [H] [J] [K] [L] [ENTER]/|
30
+ | _____ _ _ _ _ _ _ _ __ ___////|
31
+ | [SHIFT] [Z] [X] [C] [V] [B] [N] [M] [SS] [SPACE] |
32
+ |____________________________________________////__|
33
+ (__________________________________________________) */
34
+
35
+ #ifndef _Z_hardware_machine_model_computer_ZX_Spectrum_ZX_Spectrum_H_
36
+ #define _Z_hardware_machine_model_computer_ZX_Spectrum_ZX_Spectrum_H_
37
+
38
+ /* MARK: - Memory */
39
+
40
+ #define Z_ZX_SPECTRUM_SIZE_ROM 16384 /* 1024 * 16 */
41
+ #define Z_ZX_SPECTRUM_16K_SIZE_RAM 16384 /* 1024 * 16 */
42
+ #define Z_ZX_SPECTRUM_16K_SIZE_MEMORY 32768 /* 1024 * (16 + 16) */
43
+ #define Z_ZX_SPECTRUM_48K_SIZE_RAM 49152 /* 1024 * 48 */
44
+ #define Z_ZX_SPECTRUM_48K_SIZE_MEMORY 65536 /* 1024 * (16 + 48) */
45
+
46
+ /* MARK: - Screen
47
+ ---
48
+ Invisible Top Border | 8
49
+ .---------------------------------. --- ---
50
+ | Visible Top Border | | 48 |
51
+ |----.-----------------------.----| --- |
52
+ |L | |R | | |
53
+ |e | |i | | |
54
+ |f B| |g B| | |
55
+ |t o| Paper |h o| | 192 | 296
56
+ | r| |t r| | |
57
+ | d| | d| | |
58
+ | e| | e| | |
59
+ | r| | r| | |
60
+ |----'-----------------------'----| --- |
61
+ | Bottom Border | | 56 |
62
+ '---------------------------------' --- ---
63
+
64
+ |----|-----------------------|----|
65
+ 48 256 48
66
+ |---------------------------------|
67
+ 352 */
68
+
69
+ #define Z_ZX_SPECTRUM_SCREEN_FPS 50
70
+ #define Z_ZX_SPECTRUM_SCREEN_WIDTH 352
71
+ #define Z_ZX_SPECTRUM_SCREEN_HEIGHT 296
72
+ #define Z_ZX_SPECTRUM_SCREEN_PIXELS 104192 /* 352 * 296 */
73
+ #define Z_ZX_SPECTRUM_SCREEN_PAPER_WIDTH 256
74
+ #define Z_ZX_SPECTRUM_SCREEN_PAPER_HEIGHT 192
75
+ #define Z_ZX_SPECTRUM_SCREEN_PAPER_PIXELS 49152 /* 256 * 192 */
76
+ #define Z_ZX_SPECTRUM_SCREEN_TOP_BORDER_HEIGHT 56
77
+ #define Z_ZX_SPECTRUM_SCREEN_INVISIBLE_TOP_BORDER_HEIGHT 8
78
+ #define Z_ZX_SPECTRUM_SCREEN_VISIBLE_TOP_BORDER_HEIGHT 48
79
+ #define Z_ZX_SPECTRUM_SCREEN_BOTTOM_BORDER_HEIGHT 56
80
+ #define Z_ZX_SPECTRUM_SCREEN_LEFT_BORDER_WIDTH 48
81
+ #define Z_ZX_SPECTRUM_SCREEN_RIGHT_BORDER_WIDTH 48
82
+
83
+ /* MARK: - Timmings */
84
+
85
+ #define Z_ZX_SPECTRUM_CPU_HZ 3500000
86
+ #define Z_ZX_SPECTRUM_CYCLES_PER_FRAME 69888
87
+ #define Z_ZX_SPECTRUM_CYCLES_PER_SCANLINE 224
88
+ #define Z_ZX_SPECTRUM_CYCLES_PER_HBLANK 48
89
+ #define Z_ZX_SPECTRUM_CYCLES_PER_VBLANK 1792
90
+ #define Z_ZX_SPECTRUM_CYCLES_PER_TOP_BORDER_LINE 176
91
+ #define Z_ZX_SPECTRUM_CYCLES_PER_LEFT_BORDER_LINE 24
92
+ #define Z_ZX_SPECTRUM_CYCLES_PER_RIGHT_BORDER_LINE 24
93
+ #define Z_ZX_SPECTRUM_CYCLES_PER_BOTTOM_BORDER_LINE 176
94
+ #define Z_ZX_SPECTRUM_CYCLES_PER_PAPER_LINE 128
95
+ #define Z_ZX_SPECTRUM_CYCLES_PER_INT 32
96
+ #define Z_ZX_SPECTRUM_CYCLES_AT_VBLANK 0
97
+ #define Z_ZX_SPECTRUM_CYCLES_AT_INT 24
98
+ #define Z_ZX_SPECTRUM_CYCLES_AT_INVISIBLE_TOP_BORDER 1792 /* Z_ZX_SPECTRUM_CYCLES_PER_VBLANK */
99
+ #define Z_ZX_SPECTRUM_CYCLES_AT_VISIBLE_TOP_BORDER 3584 /* Z_ZX_SPECTRUM_CYCLES_AT_INVISIBLE_TOP_BORDER +
100
+ Z_ZX_SPECTRUM_CYCLES_PER_SCANLINE *
101
+ Z_ZX_SPECTRUM_SCREEN_INVISIBLE_TOP_BORDER_HEIGHT */
102
+ #define Z_ZX_SPECTRUM_CYCLES_AT_PAPER_REGION 14336 /* Z_ZX_SPECTRUM_CYCLES_AT_VISIBLE_TOP_BORDER +
103
+ Z_ZX_SPECTRUM_CYCLES_PER_SCANLINE *
104
+ Z_ZX_SPECTRUM_SCREEN_VISIBLE_TOP_BORDER_HEIGHT */
105
+ #define Z_ZX_SPECTRUM_CYCLES_AT_BOTTOM_BORDER 57344 /* Z_ZX_SPECTRUM_CYCLES_AT_PAPER_REGION +
106
+ Z_ZX_SPECTRUM_CYCLES_PER_SCANLINE *
107
+ Z_ZX_SPECTRUM_SCREEN_PAPER_HEIGHT */
108
+
109
+ #endif /* _Z_hardware_machine_model_computer_ZX_Spectrum_ZX_Spectrum_H_ */
@@ -0,0 +1,29 @@
1
+ /* Z Kit - hardware/machine/model/console/Nintendo Entertainment System/NES-001 (NTSC).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
+ | Vendor: Nintendo |
10
+ | Released: 1985-10-18 (US) |
11
+ | 1986 (CA) |
12
+ | CPU: Ricoh RP2A03 @ 1.79 MHz |
13
+ | Video: Ricoh RP2C03 (VCD) |
14
+ | Sound: NES APU |
15
+ '----------------------------------*/
16
+
17
+ #ifndef _Z_hardware_machine_model_console_Nintendo_Entertainment_System_NES_001_NTSC_H_
18
+ #define _Z_hardware_machine_model_console_Nintendo_Entertainment_System_NES_001_NTSC_H_
19
+
20
+ /* MARK: - Screen */
21
+
22
+ #define Z_NES_001_NTSC_SCREEN_FPS 60
23
+
24
+ /* MARK: - Timmings */
25
+
26
+ #define Z_NES_001_NTSC_CPU_HZ 1789773
27
+ #define Z_NES_001_NTSC_MASTER_CLOCK_HZ 21477272
28
+
29
+ #endif /* _Z_hardware_machine_model_console_Nintendo_Entertainment_System_NES_001_NTSC_H_ */
@@ -0,0 +1,29 @@
1
+ /* Z Kit - hardware/machine/model/console/Nintendo Entertainment System/NES-001 (PAL).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
+ | Vendor: Nintendo |
10
+ | Released: 1986-09-01 (DE-DK-FR-NL-NO-SE) |
11
+ | 1997 (AU-IE-IT-NZ-UK) |
12
+ | CPU: Ricoh RP2A07 @ 1.66 MHz |
13
+ | Video: Ricoh RP2C02 (VCD) |
14
+ | Sound: NES APU |
15
+ '-----------------------------------------*/
16
+
17
+ #ifndef _Z_hardware_machine_model_console_Nintendo_Entertainment_System_NES_001_PAL_H_
18
+ #define _Z_hardware_machine_model_console_Nintendo_Entertainment_System_NES_001_PAL_H_
19
+
20
+ /* MARK: - Screen */
21
+
22
+ #define Z_NES_001_PAL_SCREEN_FPS 50
23
+
24
+ /* MARK: - Timmings */
25
+
26
+ #define Z_NES_001_PAL_CPU_HZ 1662607
27
+ #define Z_NES_001_PAL_MASTER_CLOCK_HZ 26601712
28
+
29
+ #endif /* _Z_hardware_machine_model_console_Nintendo_Entertainment_System_NES_001_PAL_H_ */