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,389 @@
1
+ /* Z Kit - classes/base/Value2D.hpp
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_classes_base_Value2D_HPP_
9
+ #define _Z_classes_base_Value2D_HPP_
10
+
11
+ #include <Z/macros/type selection.hpp>
12
+ #include <Z/functions/base/value.hpp>
13
+
14
+
15
+ #define Z_IMPLEMENTATION_FOUNDATION_CONSTRUCTORS(Prefix) \
16
+ Z_CT(CPP11) Value2D(const Prefix##Point &point) : x(point.x), y(point.y) {} \
17
+ Z_CT(CPP11) Value2D(const Prefix##Size &size ) : x(size.width), y(size.height) {}
18
+
19
+
20
+ #if Z_LANGUAGE_HAS(CPP, INITIALIZER_LIST)
21
+
22
+ # define Z_IMPLEMENTATION_FOUNDATION_OPERATORS(Prefix) \
23
+ Z_CT(CPP11) operator Prefix##Point() const {return {CGFloat(x), CGFloat(y)};} \
24
+ Z_CT(CPP11) operator Prefix##Size () const {return {CGFloat(x), CGFloat(y)};} \
25
+ Z_CT(CPP11) operator Prefix##Rect () const {return {{0.0, 0.0}, {CGFloat(x), CGFloat(y)}};}
26
+
27
+ #else
28
+
29
+ # define Z_IMPLEMENTATION_FOUNDATION_OPERATORS(Prefix) \
30
+ \
31
+ Z_CT(CPP14) operator Prefix##Point() const \
32
+ { \
33
+ Prefix##Point result = {CGFloat(x), CGFloat(y)}; \
34
+ return result; \
35
+ } \
36
+ \
37
+ \
38
+ Z_CT(CPP14) operator Prefix##Size() const \
39
+ { \
40
+ Prefix##Size result = {CGFloat(x), CGFloat(y)}; \
41
+ return result; \
42
+ } \
43
+ \
44
+ \
45
+ Z_CT(CPP14) operator Prefix##Rect() const \
46
+ { \
47
+ Prefix##Rect result = {CGFloat(0), CGFloat(0), CGFloat(x), CGFloat(y)}; \
48
+ return result; \
49
+ }
50
+
51
+ #endif
52
+
53
+
54
+ #ifdef Z_USE_CG_GEOMETRY
55
+
56
+ # include <CoreGraphics/CGGeometry.h>
57
+
58
+ # define Z_IMPLEMENTATION_CG_GEOMETRY \
59
+ Z_IMPLEMENTATION_FOUNDATION_CONSTRUCTORS(CG) \
60
+ Z_IMPLEMENTATION_FOUNDATION_OPERATORS (CG)
61
+
62
+ #else
63
+ # define Z_IMPLEMENTATION_CG_GEOMETRY
64
+ #endif
65
+
66
+ #if defined(Z_USE_NS_GEOMETRY) && Z_LANGUAGE_INCLUDES(OBJECTIVE_CPP)
67
+
68
+ # import <Foundation/NSGeometry.h>
69
+
70
+ # if !defined(Z_USE_CG_GEOMETRY) || \
71
+ !defined(NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES) || \
72
+ !NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES
73
+
74
+ # define Z_IMPLEMENTATION_NS_GEOMETRY \
75
+ Z_IMPLEMENTATION_FOUNDATION_CONSTRUCTORS(NS) \
76
+ Z_IMPLEMENTATION_FOUNDATION_OPERATORS (NS)
77
+
78
+ # endif
79
+
80
+ #endif
81
+
82
+ #ifndef Z_IMPLEMENTATION_NS_GEOMETRY
83
+ # define Z_IMPLEMENTATION_NS_GEOMETRY
84
+ #endif
85
+
86
+ #ifdef Z_USE_COCOS2D_X
87
+
88
+ # include "cocos2d.h"
89
+
90
+ # define Z_IMPLEMENTATION_COCOS2D_X \
91
+ \
92
+ Z_INLINE Value2D(const cocos2d::Vec2 &point) : x(point.x), y(point.y) {} \
93
+ Z_INLINE Value2D(const cocos2d::Size &size ) : x(size.width), y(size.height) {} \
94
+ \
95
+ Z_INLINE operator cocos2d::Vec2() const {return cocos2d::Vec2(float(x), float(y));} \
96
+ Z_INLINE operator cocos2d::Size() const {return cocos2d::Size(float(x), float(y));} \
97
+ Z_INLINE operator cocos2d::Rect() const {return cocos2d::Rect(0.0f, 0.0f, float(x), float(y));}
98
+
99
+ #else
100
+ # define Z_IMPLEMENTATION_COCOS2D_X
101
+ #endif
102
+
103
+
104
+ #define Z_IMPLEMENTATION_COMMON \
105
+ \
106
+ typedef typename ZTypeFixedNumber(Z2D, T) Base; \
107
+ T x, y; \
108
+ \
109
+ Z_INLINE Value2D() Z_DEFAULTED({}) \
110
+ \
111
+ Z_CT(CPP11) Value2D(T x, T y) : x(x), y(y) {} \
112
+ Z_CT(CPP11) Value2D(T xy) : x(xy), y(xy) {} \
113
+ Z_CT(CPP11) Value2D(const Value3D<T> &xy) : x(xy.x), y(xy.y) {} \
114
+ Z_CT(CPP11) Value2D(const Base &other) : x(other.x), y(other.y) {} \
115
+ \
116
+ Z_CT(CPP11) operator Boolean() const {return x != T(0) || y != T(0);} \
117
+ Z_INLINE operator Base& () const {return *((Base *)this);} \
118
+ \
119
+ Z_CT(CPP11) Boolean operator ==(const Value2D &rhs) const {return x == rhs.x && y == rhs.y;} \
120
+ Z_CT(CPP11) Boolean operator !=(const Value2D &rhs) const {return x != rhs.x || y != rhs.y;} \
121
+ Z_CT(CPP11) Boolean operator <=(const Value2D &rhs) const {return x <= rhs.x && y <= rhs.y;} \
122
+ Z_CT(CPP11) Boolean operator >=(const Value2D &rhs) const {return x >= rhs.x && y >= rhs.y;} \
123
+ Z_CT(CPP11) Boolean operator > (const Value2D &rhs) const {return x > rhs.x && y > rhs.y;} \
124
+ Z_CT(CPP11) Boolean operator < (const Value2D &rhs) const {return x < rhs.x && y < rhs.y;} \
125
+ \
126
+ Z_CT(CPP11) Value2D operator +(const Value2D &rhs) const {return Value2D(x + rhs.x, y + rhs.y);}\
127
+ Z_CT(CPP11) Value2D operator -(const Value2D &rhs) const {return Value2D(x - rhs.x, y - rhs.y);}\
128
+ Z_CT(CPP11) Value2D operator *(const Value2D &rhs) const {return Value2D(x * rhs.x, y * rhs.y);}\
129
+ Z_CT(CPP11) Value2D operator /(const Value2D &rhs) const {return Value2D(x / rhs.x, y / rhs.y);}\
130
+ \
131
+ Z_INLINE Value2D &operator +=(const Value2D &rhs) {return *this = *this + rhs;} \
132
+ Z_INLINE Value2D &operator -=(const Value2D &rhs) {return *this = *this - rhs;} \
133
+ Z_INLINE Value2D &operator *=(const Value2D &rhs) {return *this = *this * rhs;} \
134
+ Z_INLINE Value2D &operator /=(const Value2D &rhs) {return *this = *this / rhs;} \
135
+ \
136
+ Z_CT(CPP11) Boolean operator ==(T rhs) const {return x == rhs && y == rhs;} \
137
+ Z_CT(CPP11) Boolean operator !=(T rhs) const {return x != rhs || y != rhs;} \
138
+ Z_CT(CPP11) Boolean operator <=(T rhs) const {return x <= rhs && y <= rhs;} \
139
+ Z_CT(CPP11) Boolean operator >=(T rhs) const {return x >= rhs && y >= rhs;} \
140
+ Z_CT(CPP11) Boolean operator > (T rhs) const {return x > rhs && y > rhs;} \
141
+ Z_CT(CPP11) Boolean operator < (T rhs) const {return x < rhs && y < rhs;} \
142
+ \
143
+ Z_CT(CPP11) Value2D operator +(T rhs) const {return Value2D(x + rhs, y + rhs);} \
144
+ Z_CT(CPP11) Value2D operator -(T rhs) const {return Value2D(x - rhs, y - rhs);} \
145
+ Z_CT(CPP11) Value2D operator *(T rhs) const {return Value2D(x * rhs, y * rhs);} \
146
+ Z_CT(CPP11) Value2D operator /(T rhs) const {return Value2D(x / rhs, y / rhs);} \
147
+ \
148
+ Z_INLINE Value2D &operator +=(T rhs) {return *this = *this + rhs;} \
149
+ Z_INLINE Value2D &operator -=(T rhs) {return *this = *this - rhs;} \
150
+ Z_INLINE Value2D &operator *=(T rhs) {return *this = *this * rhs;} \
151
+ Z_INLINE Value2D &operator /=(T rhs) {return *this = *this / rhs;} \
152
+ \
153
+ Z_INLINE T operator [](UInt index) const {return ((T *)this)[index];} \
154
+ Z_INLINE T &operator [](UInt index) {return ((T *)this)[index];} \
155
+ \
156
+ Z_IMPLEMENTATION_CG_GEOMETRY \
157
+ Z_IMPLEMENTATION_NS_GEOMETRY \
158
+ Z_IMPLEMENTATION_COCOS2D_X \
159
+ \
160
+ Z_CT(CPP11) Value2D yx () const {return Value2D(y, x);} \
161
+ Z_CT(CPP11) Value3D<T> nxy(T n) const {return Value3D<T>(n, x, y);} \
162
+ Z_CT(CPP11) Value3D<T> nyx(T n) const {return Value3D<T>(n, y, x);} \
163
+ Z_CT(CPP11) Value3D<T> xny(T n) const {return Value3D<T>(x, n, y);} \
164
+ Z_CT(CPP11) Value3D<T> xyn(T n) const {return Value3D<T>(x, y, n);} \
165
+ Z_CT(CPP11) Value3D<T> ynx(T n) const {return Value3D<T>(y, n, x);} \
166
+ Z_CT(CPP11) Value3D<T> yxn(T n) const {return Value3D<T>(y, x, n);} \
167
+ \
168
+ \
169
+ Z_CT(CPP11) Value2D clamp(const Value2D &minimum, const Value2D &maximum) const \
170
+ { \
171
+ return Value2D \
172
+ (Zeta::clamp<T>(x, minimum.x, maximum.x), \
173
+ Zeta::clamp<T>(y, minimum.y, maximum.y)); \
174
+ } \
175
+ \
176
+ \
177
+ Z_CT(CPP11) Value2D clamp(T minimum, T maximum) const \
178
+ { \
179
+ return Value2D \
180
+ (Zeta::clamp<T>(x, minimum, maximum), \
181
+ Zeta::clamp<T>(y, minimum, maximum)); \
182
+ } \
183
+ \
184
+ \
185
+ Z_CT(CPP11) T cross_product(const Value2D &other) const \
186
+ {return x * other.y - y * other.x;} \
187
+ \
188
+ \
189
+ Z_CT(CPP11) T dot_product(const Value2D &other) const \
190
+ {return x * other.x + y * other.y;} \
191
+ \
192
+ \
193
+ Z_CT(CPP11) Value2D fit(const Value2D &other) const \
194
+ { \
195
+ return y / x > other.y / other.x \
196
+ ? Value2D(x * other.y / y, other.y) \
197
+ : Value2D(other.x, y * other.x / x); \
198
+ } \
199
+ \
200
+ \
201
+ Z_CT(CPP11) Boolean has_zero() const \
202
+ {return x == T(0) || y == T(0);} \
203
+ \
204
+ \
205
+ Z_CT(CPP11) T inner_maximum() const \
206
+ {return Zeta::maximum<T>(x, y);} \
207
+ \
208
+ \
209
+ Z_CT(CPP11) T inner_middle() const \
210
+ {return (x + y) / T(2);} \
211
+ \
212
+ \
213
+ Z_CT(CPP11) T inner_minimum() const \
214
+ {return Zeta::minimum<T>(x, y);} \
215
+ \
216
+ \
217
+ Z_CT(CPP11) T inner_product() const \
218
+ {return x * y;} \
219
+ \
220
+ \
221
+ Z_CT(CPP11) T inner_sum() const \
222
+ {return x + y;} \
223
+ \
224
+ \
225
+ Z_CT(CPP11) Boolean is_zero() const \
226
+ {return x == T(0) && y == T(0);} \
227
+ \
228
+ \
229
+ Z_CT(CPP11) Value2D maximum(const Value2D &other) const \
230
+ {return Value2D(Zeta::maximum<T>(x, other.x), Zeta::maximum<T>(y, other.y));} \
231
+ \
232
+ \
233
+ Z_CT(CPP11) Value2D middle(const Value2D &other) const \
234
+ {return Value2D((x + other.x) / T(2), (y + other.y) / T(2));} \
235
+ \
236
+ \
237
+ Z_CT(CPP11) Value2D minimum(const Value2D &other) const \
238
+ {return Value2D(Zeta::minimum<T>(x, other.x), Zeta::minimum<T>(y, other.y));} \
239
+ \
240
+ \
241
+ Z_CT(CPP11) T squared_length() const \
242
+ {return x * x + y * y;} \
243
+ \
244
+ \
245
+ Z_INLINE void swap(Value2D &other) \
246
+ {Zeta::swap<Base>(this, &other);}
247
+
248
+
249
+ #define Z_IMPLEMENTATION_SIGNED \
250
+ \
251
+ Z_CT(CPP11) Value2D absolute() const \
252
+ {return Value2D(Zeta::absolute<T>(x), Zeta::absolute<T>(y));} \
253
+ \
254
+ \
255
+ Z_CT(CPP11) Boolean has_negative() const \
256
+ {return x < T(0) || y < T(0);} \
257
+ \
258
+ \
259
+ Z_CT(CPP11) Boolean is_negative() const \
260
+ {return x < T(0) && y < T(0);} \
261
+ \
262
+ \
263
+ Z_CT(CPP11) Value2D negative() const \
264
+ {return Value2D(-x, -y);}
265
+
266
+
267
+ namespace Zeta {
268
+
269
+ template <class T, UInt T_number_set = Type<T>::number_set> struct Value2D;
270
+ template <class T, UInt T_number_set = Type<T>::number_set> struct Value3D;
271
+
272
+
273
+ template <class T> struct Value2D<T, Z_NUMBER_SET_Z> {
274
+ Z_IMPLEMENTATION_COMMON
275
+ Z_IMPLEMENTATION_SIGNED
276
+
277
+
278
+ Z_CT(CPP11) Boolean is_perpendicular(const Value2D &other) const
279
+ {return !Zeta::absolute<T>(dot_product(other));}
280
+
281
+
282
+ # ifdef Z_EXTENSION_VALUE_2D_Z
283
+ Z_EXTENSION_VALUE_2D_Z
284
+ # endif
285
+ };
286
+
287
+
288
+ template <class T> struct Value2D<T, Z_NUMBER_SET_N> {
289
+ Z_IMPLEMENTATION_COMMON
290
+
291
+
292
+ # ifdef Z_EXTENSION_VALUE_2D_N
293
+ Z_EXTENSION_VALUE_2D_N
294
+ # endif
295
+ };
296
+
297
+
298
+ template <class T> struct Value2D<T, Z_NUMBER_SET_R> {
299
+ Z_IMPLEMENTATION_COMMON
300
+ Z_IMPLEMENTATION_SIGNED
301
+
302
+
303
+ Z_CT(CPP11) Value2D clamp_01() const
304
+ {return Value2D(Zeta::clamp_01<T>(x), Zeta::clamp_01<T>(y));}
305
+
306
+
307
+ Z_CT(CPP11) Boolean has_almost_zero() const
308
+ {return Zeta::is_almost_zero<T>(x) || Zeta::is_almost_zero<T>(y);}
309
+
310
+
311
+ Z_CT(CPP11) Boolean has_finite() const
312
+ {return Zeta::is_finite<T>(x) || Zeta::is_finite<T>(y);}
313
+
314
+
315
+ Z_CT(CPP11) Boolean has_infinity() const
316
+ {return Zeta::is_infinity<T>(x) || Zeta::is_infinity<T>(y);}
317
+
318
+
319
+ Z_CT(CPP11) Boolean has_nan() const
320
+ {return Zeta::is_nan<T>(x) || Zeta::is_nan<T>(y);}
321
+
322
+
323
+ Z_CT(CPP11) Value2D inverse_lerp(const Value2D &other, T t) const
324
+ {
325
+ return Value2D
326
+ (Zeta::inverse_lerp<T>(x, other.x, t),
327
+ Zeta::inverse_lerp<T>(y, other.y, t));
328
+ }
329
+
330
+
331
+ Z_CT(CPP11) Boolean is_almost_equal(const Value2D &other) const
332
+ {
333
+ return Zeta::are_almost_equal<T>(x, other.x) &&
334
+ Zeta::are_almost_equal<T>(y, other.y);
335
+ }
336
+
337
+
338
+ Z_CT(CPP11) Boolean is_almost_zero() const
339
+ {return Zeta::is_almost_zero<T>(x) && Zeta::is_almost_zero<T>(y);}
340
+
341
+
342
+ Z_CT(CPP11) Boolean is_finite() const
343
+ {return Zeta::is_finite<T>(x) && Zeta::is_finite<T>(y);}
344
+
345
+
346
+ Z_CT(CPP11) Boolean is_infinity() const
347
+ {return Zeta::is_infinity<T>(x) && Zeta::is_infinity<T>(y);}
348
+
349
+
350
+ Z_CT(CPP11) Boolean is_nan() const
351
+ {return Zeta::is_nan<T>(x) && Zeta::is_nan<T>(y);}
352
+
353
+
354
+ Z_CT(CPP11) Boolean is_perpendicular(const Value2D &other) const
355
+ {return Zeta::absolute<T>(dot_product(other)) <= Type<T>::epsilon();}
356
+
357
+
358
+ Z_CT(CPP11) Value2D lerp(const Value2D &other, T t) const
359
+ {
360
+ return Value2D
361
+ (Zeta::lerp<T>(x, other.x, t),
362
+ Zeta::lerp<T>(y, other.y, t));
363
+ }
364
+
365
+
366
+ Z_CT(CPP11) Value2D reciprocal() const
367
+ {return Value2D(T(1) / x, T(1) / y);}
368
+
369
+
370
+ # ifdef Z_EXTENSION_VALUE_2D_R
371
+ Z_EXTENSION_VALUE_2D_R
372
+ # endif
373
+ };
374
+ }
375
+
376
+
377
+ #undef Z_IMPLEMENTATION_FOUNDATION_CONSTRUCTORS
378
+ #undef Z_IMPLEMENTATION_FOUNDATION_OPERATORS
379
+ #undef Z_IMPLEMENTATION_CG_GEOMETRY
380
+ #undef Z_IMPLEMENTATION_NS_GEOMETRY
381
+ #undef Z_IMPLEMENTATION_COCOS2D_X
382
+ #undef Z_IMPLEMENTATION_COMMON
383
+ #undef Z_IMPLEMENTATION_SIGNED
384
+
385
+ #ifndef _Z_classes_base_Value3D_HPP_
386
+ # include <Z/classes/base/Value3D.hpp>
387
+ #endif
388
+
389
+ #endif // _Z_classes_base_Value2D_HPP_