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,219 @@
1
+ /* Z Kit - classes/functional/ObjectSelector.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_functional_ObjectSelector_HPP_
9
+ #define _Z_classes_functional_ObjectSelector_HPP_
10
+
11
+ #include <Z/inspection/Z.h>
12
+ #include <Z/classes/functional/Selector.hpp>
13
+
14
+ #if Z_HAS_CLASS(Selector)
15
+
16
+
17
+ namespace Zeta {
18
+
19
+ template <class F> struct ObjectSelector;
20
+
21
+ template <class R, class... P> struct ObjectSelector<R(P...)> : Selector<R(P...)> {
22
+ typedef typename Selector<R(P...)>::Call Call;
23
+ typedef typename Selector<R(P...)>::CallSuper CallSuper;
24
+
25
+ id object;
26
+
27
+ Z_INLINE ObjectSelector() Z_DEFAULTED({})
28
+
29
+
30
+ Z_INLINE ObjectSelector(id object, SEL selector)
31
+ : Selector<R(P...)>(selector), object(object) {}
32
+
33
+
34
+ Z_INLINE operator id() const {return object;}
35
+
36
+ Z_INLINE ObjectSelector &operator =(SEL rhs) {this->selector = rhs; return *this;}
37
+ Z_INLINE ObjectSelector &operator =(id rhs) {object = rhs; return *this;}
38
+
39
+
40
+ template <class RR = R>
41
+ Z_INLINE typename EnableIf<Type<RR>::is_void, RR>::type
42
+ operator ()(typename Type<P>::to_forwardable... arguments) const
43
+ {((Call)objc_msgSend)(object, this->selector, arguments...);}
44
+
45
+
46
+ template <class RR = R>
47
+ Z_INLINE typename EnableIf<Type<RR>::is_void, RR>::type
48
+ operator ()(id object, typename Type<P>::to_forwardable... arguments) const
49
+ {((Call)objc_msgSend)(object, this->selector, arguments...);}
50
+
51
+
52
+ # if Z_CPU_ARCHITECTURE == Z_CPU_ARCHITECTURE_X86_64 || Z_CPU_ARCHITECTURE == Z_CPU_ARCHITECTURE_X86_32
53
+
54
+ template <class RR = R>
55
+ Z_INLINE typename EnableIf<
56
+ !Type<RR>::is_void &&
57
+ !Type<RR>::is_real &&
58
+ !Type<RR>::is_structure_or_union,
59
+ RR>::type
60
+ operator ()(typename Type<P>::to_forwardable... arguments) const
61
+ {return ((Call)objc_msgSend)(object, this->selector, arguments...);}
62
+
63
+
64
+ template <class RR = R>
65
+ Z_INLINE typename EnableIf<
66
+ !Type<RR>::is_void &&
67
+ !Type<RR>::is_real &&
68
+ !Type<RR>::is_structure_or_union,
69
+ RR>::type
70
+ operator ()(id object, typename Type<P>::to_forwardable... arguments) const
71
+ {return ((Call)objc_msgSend)(object, this->selector, arguments...);}
72
+
73
+
74
+ template <class RR = R>
75
+ Z_INLINE typename EnableIf<Type<RR>::is_real, RR>::type
76
+ operator ()(typename Type<P>::to_forwardable... arguments) const
77
+ {return ((Call)objc_msgSend_fpret)(object, this->selector, arguments...);}
78
+
79
+
80
+ template <class RR = R>
81
+ Z_INLINE typename EnableIf<Type<RR>::is_real, RR>::type
82
+ operator ()(id object, typename Type<P>::to_forwardable... arguments) const
83
+ {return ((Call)objc_msgSend_fpret)(object, this->selector, arguments...);}
84
+
85
+ # else
86
+
87
+ template <class RR = R>
88
+ Z_INLINE typename EnableIf<
89
+ !Type<RR>::is_void &&
90
+ !Type<RR>::is_structure_or_union,
91
+ RR>::type
92
+ operator ()(typename Type<P>::to_forwardable... arguments) const
93
+ {return ((Call)objc_msgSend)(object, this->selector, arguments...);}
94
+
95
+
96
+ template <class RR = R>
97
+ Z_INLINE typename EnableIf<
98
+ !Type<RR>::is_void &&
99
+ !Type<RR>::is_structure_or_union,
100
+ RR>::type
101
+ operator ()(id object, typename Type<P>::to_forwardable... arguments) const
102
+ {return ((Call)objc_msgSend)(object, this->selector, arguments...);}
103
+
104
+ # endif
105
+
106
+
107
+ template <class RR = R>
108
+ Z_INLINE typename EnableIf<Type<RR>::is_structure_or_union, RR>::type
109
+ operator ()(typename Type<P>::to_forwardable... arguments) const
110
+ {return ((Call)objc_msgSend_stret)(object, this->selector, arguments...);}
111
+
112
+
113
+ template <class RR = R>
114
+ Z_INLINE typename EnableIf<Type<RR>::is_structure_or_union, RR>::type
115
+ operator ()(id object, typename Type<P>::to_forwardable... arguments) const
116
+ {return ((Call)objc_msgSend_stret)(object, this->selector, arguments...);}
117
+
118
+
119
+ template <class RR = R>
120
+ Z_INLINE typename EnableIf<Type<RR>::is_void, RR>::type
121
+ super(const struct objc_super &object_super, typename Type<P>::to_forwardable... arguments) const
122
+ {((CallSuper)objc_msgSendSuper)((struct objc_super *)&object_super, this->selector, arguments...);}
123
+
124
+
125
+ template <class RR = R>
126
+ Z_INLINE typename EnableIf<
127
+ !Type<RR>::is_void &&
128
+ !Type<RR>::is_structure_or_union,
129
+ RR>::type
130
+ super(const struct objc_super &object_super, typename Type<P>::to_forwardable... arguments) const
131
+ {return ((CallSuper)objc_msgSendSuper)((struct objc_super *)&object_super, this->selector, arguments...);}
132
+
133
+
134
+ template <class RR = R>
135
+ Z_INLINE typename EnableIf<Type<RR>::is_structure_or_union, RR>::type
136
+ super(const struct objc_super &object_super, typename Type<P>::to_forwardable... arguments) const
137
+ {return ((CallSuper)objc_msgSendSuper_stret)((struct objc_super *)&object_super, this->selector, arguments...);}
138
+
139
+
140
+ Z_INLINE ObjectSelector &set(id object, SEL selector)
141
+ {
142
+ this->selector = selector;
143
+ this->object = object;
144
+ return *this;
145
+ }
146
+
147
+
148
+ # if Z_LANGUAGE_INCLUDES(OBJECTIVE_CPP)
149
+
150
+ template <class RR = R>
151
+ Z_INLINE typename EnableIf<Type<RR>::is_void, RR>::type
152
+ super(typename Type<P>::to_forwardable... arguments) const
153
+ {
154
+ struct objc_super object_super {object, [[object class] superclass]};
155
+ ((CallSuper)objc_msgSendSuper)(&object_super, this->selector, arguments...);
156
+ }
157
+
158
+
159
+ template <class RR = R>
160
+ Z_INLINE typename EnableIf<Type<RR>::is_void, RR>::type
161
+ super(id object, typename Type<P>::to_forwardable... arguments) const
162
+ {
163
+ struct objc_super object_super {object, [[object class] superclass]};
164
+ ((CallSuper)objc_msgSendSuper)(&object_super, this->selector, arguments...);
165
+ }
166
+
167
+
168
+ template <class RR = R>
169
+ Z_INLINE typename EnableIf<
170
+ !Type<RR>::is_void &&
171
+ !Type<RR>::is_structure_or_union,
172
+ RR>::type
173
+ super(typename Type<P>::to_forwardable... arguments) const
174
+ {
175
+ struct objc_super object_super {object, [[object class] superclass]};
176
+ return ((CallSuper)objc_msgSendSuper)(&object_super, this->selector, arguments...);
177
+ }
178
+
179
+
180
+ template <class RR = R>
181
+ Z_INLINE typename EnableIf<
182
+ !Type<RR>::is_void &&
183
+ !Type<RR>::is_structure_or_union,
184
+ RR>::type
185
+ super(id object, typename Type<P>::to_forwardable... arguments) const
186
+ {
187
+ struct objc_super object_super {object, [[object class] superclass]};
188
+ return ((CallSuper)objc_msgSendSuper)(&object_super, this->selector, arguments...);
189
+ }
190
+
191
+
192
+ template <class RR = R>
193
+ Z_INLINE typename EnableIf<Type<RR>::is_structure_or_union, RR>::type
194
+ super(typename Type<P>::to_forwardable... arguments) const
195
+ {
196
+ struct objc_super object_super {object, [[object class] superclass]};
197
+ return ((CallSuper)objc_msgSendSuper_stret)(&object_super, this->selector, arguments...);
198
+ }
199
+
200
+
201
+ template <class RR = R>
202
+ Z_INLINE typename EnableIf<Type<RR>::is_structure_or_union, RR>::type
203
+ super(id object, typename Type<P>::to_forwardable... arguments) const
204
+ {
205
+ struct objc_super object_super {object, [[object class] superclass]};
206
+ return ((CallSuper)objc_msgSendSuper_stret)(&object_super, this->selector, arguments...);
207
+ }
208
+
209
+ # endif
210
+ };
211
+ }
212
+
213
+
214
+ # define Z_HAS_CLASS_ObjectSelector TRUE
215
+ #else
216
+ # define Z_HAS_CLASS_ObjectSelector FALSE
217
+ #endif
218
+
219
+ #endif // _Z_classes_functional_Selector_HPP_
@@ -0,0 +1,146 @@
1
+ /* Z Kit - classes/functional/Selector.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_functional_Selector_HPP_
9
+ #define _Z_classes_functional_Selector_HPP_
10
+
11
+ #include <Z/inspection/language.h>
12
+
13
+ #if Z_LANGUAGE_HAS(CPP, SFINAE) && \
14
+ Z_LANGUAGE_HAS(CPP, VARIADIC_TEMPLATE) && \
15
+ Z_LANGUAGE_HAS(CPP, DEFAULT_TEMPLATE_ARGUMENTS_FOR_FUNCTION_TEMPLATE)
16
+
17
+ # include <Z/traits/filtering.hpp>
18
+ # include <Z/traits/Type.hpp>
19
+ # include <objc/message.h>
20
+
21
+
22
+ namespace Zeta {
23
+
24
+ template <class F> struct Selector;
25
+
26
+ template <class R, class... P> struct Selector<R(P...)> {
27
+ typedef R (* Call )(id, SEL, P...);
28
+ typedef R (* CallSuper)(struct objc_super*, SEL, P...);
29
+
30
+ SEL selector;
31
+
32
+ Z_INLINE Selector() Z_DEFAULTED({})
33
+
34
+ Z_INLINE Selector(SEL selector)
35
+ : selector(selector) {}
36
+
37
+
38
+ Z_INLINE operator SEL() const {return selector;}
39
+
40
+
41
+ template <class RR = R>
42
+ Z_INLINE typename EnableIf<Type<RR>::is_void, RR>::type
43
+ operator ()(id object, typename Type<P>::to_forwardable... arguments) const
44
+ {((Call)objc_msgSend)(object, selector, arguments...);}
45
+
46
+
47
+ # if Z_CPU_ARCHITECTURE == Z_CPU_ARCHITECTURE_X86_64 || \
48
+ Z_CPU_ARCHITECTURE == Z_CPU_ARCHITECTURE_X86_32
49
+
50
+ template <class RR = R>
51
+ Z_INLINE typename EnableIf<
52
+ !Type<RR>::is_void &&
53
+ !Type<RR>::is_real &&
54
+ !Type<RR>::is_structure_or_union,
55
+ RR>::type
56
+ operator ()(id object, typename Type<P>::to_forwardable... arguments) const
57
+ {return ((Call)objc_msgSend)(object, selector, arguments...);}
58
+
59
+
60
+ template <class RR = R>
61
+ Z_INLINE typename EnableIf<Type<RR>::is_real, RR>::type
62
+ operator ()(id object, typename Type<P>::to_forwardable... arguments) const
63
+ {return ((Call)objc_msgSend_fpret)(object, selector, arguments...);}
64
+
65
+ # else
66
+
67
+ template <class RR = R>
68
+ Z_INLINE typename EnableIf<
69
+ !Type<RR>::is_void &&
70
+ !Type<RR>::is_structure_or_union,
71
+ RR>::type
72
+ operator ()(id object, typename Type<P>::to_forwardable... arguments) const
73
+ {return ((Call)objc_msgSend)(object, selector, arguments...);}
74
+
75
+ # endif
76
+
77
+
78
+ template <class RR = R>
79
+ Z_INLINE typename EnableIf<Type<RR>::is_structure_or_union, RR>::type
80
+ operator ()(id object, typename Type<P>::to_forwardable... arguments) const
81
+ {return ((Call)objc_msgSend_stret)(object, selector, arguments...);}
82
+
83
+
84
+ template <class RR = R>
85
+ Z_INLINE typename EnableIf<Type<RR>::is_void, RR>::type
86
+ super(const struct objc_super &object_super, typename Type<P>::to_forwardable... arguments) const
87
+ {((CallSuper)objc_msgSendSuper)((struct objc_super *)&object_super, selector, arguments...);}
88
+
89
+
90
+ template <class RR = R>
91
+ Z_INLINE typename EnableIf<
92
+ !Type<RR>::is_void &&
93
+ !Type<RR>::is_structure_or_union,
94
+ RR>::type
95
+ super(const struct objc_super &object_super, typename Type<P>::to_forwardable... arguments) const
96
+ {return ((CallSuper)objc_msgSendSuper)((struct objc_super *)&object_super, selector, arguments...);}
97
+
98
+
99
+ template <class RR = R>
100
+ Z_INLINE typename EnableIf<Type<RR>::is_structure_or_union, RR>::type
101
+ super(const struct objc_super &object_super, typename Type<P>::to_forwardable... arguments) const
102
+ {return ((CallSuper)objc_msgSendSuper_stret)((struct objc_super *)&object_super, selector, arguments...);}
103
+
104
+
105
+ # if Z_LANGUAGE_INCLUDES(OBJECTIVE_CPP)
106
+
107
+ template <class RR = R>
108
+ Z_INLINE typename EnableIf<Type<RR>::is_void, RR>::type
109
+ super(id object, typename Type<P>::to_forwardable... arguments) const
110
+ {
111
+ struct objc_super object_super {object, [[object class] superclass]};
112
+ ((CallSuper)objc_msgSendSuper)(&object_super, selector, arguments...);
113
+ }
114
+
115
+
116
+ template <class RR = R>
117
+ Z_INLINE typename EnableIf<
118
+ !Type<RR>::is_void &&
119
+ !Type<RR>::is_structure_or_union,
120
+ RR>::type
121
+ super(id object, typename Type<P>::to_forwardable... arguments) const
122
+ {
123
+ struct objc_super object_super {object, [[object class] superclass]};
124
+ return ((CallSuper)objc_msgSendSuper)(&object_super, selector, arguments...);
125
+ }
126
+
127
+
128
+ template <class RR = R>
129
+ Z_INLINE typename EnableIf<Type<RR>::is_structure_or_union, RR>::type
130
+ super(id object, typename Type<P>::to_forwardable... arguments) const
131
+ {
132
+ struct objc_super object_super {object, [[object class] superclass]};
133
+ return ((CallSuper)objc_msgSendSuper_stret)(&object_super, selector, arguments...);
134
+ }
135
+
136
+ # endif
137
+ };
138
+ }
139
+
140
+
141
+ # define Z_HAS_CLASS_Selector TRUE
142
+ #else
143
+ # define z_has_class_Selector FALSE
144
+ #endif
145
+
146
+ #endif // _Z_classes_functional_Selector_HPP_
@@ -0,0 +1,81 @@
1
+ /* Z Kit - classes/mathematics/geometry/euclidean/AABB.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_mathematics_geometry_euclidean_AABB_HPP_
9
+ #define _Z_classes_mathematics_geometry_euclidean_AABB_HPP_
10
+
11
+ #include <Z/classes/mathematics/geometry/euclidean/Line3D.hpp>
12
+
13
+
14
+ namespace Zeta {namespace Partials {namespace AABB {
15
+
16
+ # define Z_THIS ((AABB *)this)
17
+
18
+ template <class AABB, class T, UInt T_number_set> struct Part;
19
+
20
+
21
+ // MARK: - Partial implementation for integer types
22
+
23
+
24
+ template <class AABB, class T>
25
+ struct Part<AABB, T, Z_NUMBER_SET_Z> {
26
+ };
27
+
28
+
29
+ // MARK: - Partial implementation for real types
30
+
31
+
32
+ template <class AABB, class T>
33
+ struct Part<AABB, T, Z_NUMBER_SET_R> {
34
+
35
+ Z_CT(CPP11) Zeta::Value3D<T> absolute_point_to_unit(const Zeta::Value3D<T> &point)
36
+ {return (point - Z_THIS->a) / (Z_THIS->b - Z_THIS->a);}
37
+
38
+
39
+ /*Z_CT(CPP11) Boolean contains(const Circle<T> circle)
40
+ {
41
+ return circle.point - circle.radius >= Z_THIS->a &&
42
+ circle.point + circle.radius <= Z_THIS->b;
43
+ }*/
44
+
45
+
46
+ /*Z_CT(CPP11) Circle<T> inner_circle()
47
+ {return Circle<T>(Z_THIS->center(), (b - a).inner_minimum() / T(2));}*/
48
+
49
+
50
+ Z_CT(CPP11) Zeta::Value3D<T> unit_point_to_absolute(Zeta::Value3D<T> point)
51
+ {return point * (object.b - object.a) + object.a;}
52
+ };
53
+
54
+
55
+ # undef Z_THIS
56
+
57
+ }}}
58
+
59
+
60
+ namespace Zeta {template <class T> struct AABB : Line3D<T>, Partials::Rectangle::Part<AABB<T>, T, Type<T>::number_set> {
61
+
62
+ typedef typename ZTypeFixedSigned(ZAABR, T) Base;
63
+
64
+
65
+ Z_INLINE AABR() {}
66
+
67
+ Z_CT(CPP11) AABR(const Value2D<T> &a, const Value2D<T> &b) : Line2D<T>(a, b) {}
68
+ Z_CT(CPP11) AABR(const Value2D<T> &a, T b_x, T b_y) : Line2D<T>(a, b_x, b_y) {}
69
+ Z_CT(CPP11) AABR(const Value2D<T> &a, T b_xy) : Line2D<T>(a, b_xy) {}
70
+ Z_CT(CPP11) AABR(T a_x, T a_y, const Value2D<T> &b) : Line2D<T>(a_x, a_y, b) {}
71
+ Z_CT(CPP11) AABR(T a_x, T a_y, T b_x, T b_y) : Line2D<T>(a_x, a_y, b_x, b_y) {}
72
+ Z_CT(CPP11) AABR(T a_xy, T b_x, T b_y) : Line2D<T>(a_xy, b_x, b_y) {}
73
+ Z_CT(CPP11) AABR(T a_xy, const Value2D<T> &b) : Line2D<T>(a_xy, b) {}
74
+ Z_CT(CPP11) AABR(T b_x, T b_y) : Line2D<T>(b_x, b_y) {}
75
+ Z_CT(CPP11) AABR(T b_xy) : Line2D<T>(b_xy) {}
76
+
77
+ Z_INLINE AABR(const Base &aabr) {(*(Base *)this) = aabr;}
78
+ };}
79
+
80
+
81
+ #endif // _Z_classes_mathematics_geometry_euclidean_AABR_HPP_