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,361 @@
1
+ /* Z Kit - functions/mathematics/geometry/euclidean/ZAABB.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_functions_mathematics_geometry_euclidean_ZAABB_H_
9
+ #define _Z_functions_mathematics_geometry_euclidean_ZAABB_H_
10
+
11
+ #include <Z/functions/mathematics/geometry/euclidean/Z3DLine.h>
12
+
13
+
14
+ /* MARK: - Common implementation */
15
+
16
+
17
+ #define Z_IMPLEMENTATION_COMMON(Type, type) \
18
+ \
19
+ static Z_INLINE \
20
+ ZBox##Type z_aabb_##type##_box(ZAABB##Type object) \
21
+ { \
22
+ return z_box_##type \
23
+ (object.a.x, object.a.y, object.a.z, \
24
+ object.b.x - object.a.x, object.b.y - object.a.y, object.b.z - object.a.z); \
25
+ } \
26
+ \
27
+ \
28
+ static Z_INLINE \
29
+ zboolean z_aabb_##type##_contains(ZAABB##Type object, ZAABB##Type other) \
30
+ { \
31
+ return other.a.x != other.b.x && \
32
+ other.a.y != other.b.y && \
33
+ other.a.z != other.b.z && \
34
+ other.a.x >= object.a.x && \
35
+ other.a.y >= object.a.y && \
36
+ other.a.z >= object.a.z && \
37
+ other.b.x <= object.b.x && \
38
+ other.b.y <= object.b.y && \
39
+ other.b.z <= object.b.z; \
40
+ } \
41
+ \
42
+ \
43
+ static Z_INLINE \
44
+ zboolean z_aabb_##type##_contains_box(ZAABB##Type object, ZBox##Type box) \
45
+ { \
46
+ return box.size.x != (z##type)0 && \
47
+ box.size.y != (z##type)0 && \
48
+ box.size.z != (z##type)0 && \
49
+ box.point.x >= object.a.x && \
50
+ box.point.y >= object.a.y && \
51
+ box.point.z >= object.a.z && \
52
+ box.point.x + box.size.x <= object.b.x && \
53
+ box.point.y + box.size.y <= object.b.y && \
54
+ box.point.z + box.size.z <= object.b.z; \
55
+ } \
56
+ \
57
+ \
58
+ static Z_INLINE \
59
+ zboolean z_aabb_##type##_contains_point(ZAABB##Type object, Z3D##Type point) \
60
+ { \
61
+ return point.x >= object.a.x && point.y >= object.a.y && point.z >= object.a.z && \
62
+ point.x < object.b.x && point.y < object.b.y && point.z < object.b.z; \
63
+ } \
64
+ \
65
+ \
66
+ static Z_INLINE \
67
+ ZAABB##Type z_aabb_##type##_from_vertices(Z3D##Type a, Z3D##Type b) \
68
+ { \
69
+ ZAABB##Type result; \
70
+ \
71
+ result.a = z_3d_##type##_minimum(a, b); \
72
+ result.b = z_3d_##type##_maximum(a, b); \
73
+ return result; \
74
+ } \
75
+ \
76
+ \
77
+ static Z_INLINE \
78
+ zboolean z_aabb_##type##_intersect(ZAABB##Type a, ZAABB##Type b) \
79
+ { \
80
+ return a.a.x != a.b.x && a.a.y != a.b.y && a.a.z != a.b.z && \
81
+ b.a.x != b.b.x && b.a.y != b.b.y && b.a.z != b.b.z && \
82
+ b.b.x > a.a.x && b.b.y > a.a.y && b.b.z > a.a.z && \
83
+ b.a.x < a.b.x && b.a.y < a.b.y && b.a.z < a.b.z; \
84
+ } \
85
+ \
86
+ \
87
+ static Z_INLINE \
88
+ ZAABB##Type z_aabb_##type##_intersection(ZAABB##Type a, ZAABB##Type b) \
89
+ { \
90
+ z##type x1, x2, y1, y2, z1, z2; \
91
+ \
92
+ return (x1 = z_##type##_maximum(a.a.x, b.a.x)) < \
93
+ (x2 = z_##type##_minimum(a.b.x, b.b.x)) && \
94
+ (y1 = z_##type##_maximum(a.a.y, b.a.y)) < \
95
+ (y2 = z_##type##_minimum(a.b.y, b.b.y)) && \
96
+ (z1 = z_##type##_maximum(a.a.z, b.a.z)) < \
97
+ (z2 = z_##type##_minimum(a.b.z, b.b.z)) \
98
+ \
99
+ ? z_aabb_##type(x1, y1, z1, x2, y2, z2) \
100
+ : z_aabb_##type##_zero; \
101
+ } \
102
+ \
103
+ \
104
+ static Z_INLINE \
105
+ Z3D##Type z_aabb_##type##_size(ZAABB##Type object) \
106
+ {return z_3d_##type##_subtract(object.b, object.a);} \
107
+ \
108
+ \
109
+ static Z_INLINE \
110
+ ZAABB##Type z_aabb_##type##_union(ZAABB##Type a, ZAABB##Type b) \
111
+ { \
112
+ ZAABB##Type result; \
113
+ \
114
+ result.a = z_3d_##type##_minimum(a.a, b.a); \
115
+ result.b = z_3d_##type##_maximum(a.b, b.b); \
116
+ return result; \
117
+ } \
118
+ \
119
+ \
120
+ static Z_INLINE \
121
+ z##type z_aabb_##type##_volume(ZAABB##Type object) \
122
+ {return z_3d_##type##_inner_product(z_3d_##type##_subtract(object.b, object.a));}
123
+
124
+
125
+ #define z_aabb_type_box( TYPE) Z_INSERT_##TYPE##_fixed_type(z_aabb_, _box )
126
+ #define z_aabb_type_contains( TYPE) Z_INSERT_##TYPE##_fixed_type(z_aabb_, _contains )
127
+ #define z_aabb_type_contains_box( TYPE) Z_INSERT_##TYPE##_fixed_type(z_aabb_, _contains_box )
128
+ #define z_aabb_type_contains_point(TYPE) Z_INSERT_##TYPE##_fixed_type(z_aabb_, _contains_point)
129
+ #define z_aabb_type_from_vertices( TYPE) Z_INSERT_##TYPE##_fixed_type(z_aabb_, _from_vertices )
130
+ #define z_aabb_type_intersect( TYPE) Z_INSERT_##TYPE##_fixed_type(z_aabb_, _intersect )
131
+ #define z_aabb_type_intersection( TYPE) Z_INSERT_##TYPE##_fixed_type(z_aabb_, _intersection )
132
+ #define z_aabb_type_size( TYPE) Z_INSERT_##TYPE##_fixed_type(z_aabb_, _size )
133
+ #define z_aabb_type_union( TYPE) Z_INSERT_##TYPE##_fixed_type(z_aabb_, _union )
134
+ #define z_aabb_type_volume( TYPE) Z_INSERT_##TYPE##_fixed_type(z_aabb_, _volume )
135
+
136
+
137
+ /* MARK: - Partial implementation for real types */
138
+
139
+
140
+ #define Z_IMPLEMENTATION_REAL(Type, type) \
141
+ \
142
+ static Z_INLINE \
143
+ Z3D##Type z_aabb_##type##_absolute_point_to_unit(ZAABB##Type object, Z3D##Type point) \
144
+ { \
145
+ return z_3d_##type \
146
+ ((point.x - object.a.x) / (object.b.x - object.a.x), \
147
+ (point.y - object.a.y) / (object.b.y - object.a.y), \
148
+ (point.z - object.a.z) / (object.b.z - object.a.z)); \
149
+ } \
150
+ \
151
+ \
152
+ static Z_INLINE \
153
+ zboolean z_aabb_##type##_contains_sphere(ZAABB##Type object, ZSphere##Type sphere) \
154
+ { \
155
+ return sphere.radius != (z##type)0 && \
156
+ sphere.point.x - sphere.radius >= object.a.x && \
157
+ sphere.point.y - sphere.radius >= object.a.y && \
158
+ sphere.point.z - sphere.radius >= object.a.z && \
159
+ sphere.point.x + sphere.radius <= object.b.x && \
160
+ sphere.point.y + sphere.radius <= object.b.y && \
161
+ sphere.point.z + sphere.radius <= object.b.z; \
162
+ } \
163
+ \
164
+ \
165
+ static Z_INLINE \
166
+ ZSphere##Type z_aabb_##type##_inner_sphere(ZAABB##Type object) \
167
+ { \
168
+ ZSphere##Type result; \
169
+ \
170
+ result.point = z_aabb_##type##_center(object); \
171
+ \
172
+ result.radius = \
173
+ z_##type##_minimum \
174
+ (z_##type##_minimum(object.b.x - object.a.x, object.b.y - object.a.y), \
175
+ object.b.z - object.a.z) \
176
+ / (z##type)2; \
177
+ \
178
+ return result; \
179
+ } \
180
+ \
181
+ \
182
+ static Z_INLINE \
183
+ Z3D##Type z_aabb_##type##_unit_point_to_absolute(ZAABB##Type object, Z3D##Type point) \
184
+ { \
185
+ return z_3d_##type \
186
+ (point.x * (object.b.x - object.a.x) + object.a.x, \
187
+ point.y * (object.b.y - object.a.y) + object.a.y, \
188
+ point.z * (object.b.z - object.a.z) + object.a.z); \
189
+ }
190
+
191
+
192
+ #define z_aabb_type_absolute_point_to_unit(TYPE) Z_INSERT_##TYPE##_fixed_type(z_aabb_, _absolute_point_to_unit)
193
+ #define z_aabb_type_contains_sphere( TYPE) Z_INSERT_##TYPE##_fixed_type(z_aabb_, _contains_sphere )
194
+ #define z_aabb_type_inner_sphere( TYPE) Z_INSERT_##TYPE##_fixed_type(z_aabb_, _inner_sphere )
195
+ #define z_aabb_type_unit_point_to_absolute(TYPE) Z_INSERT_##TYPE##_fixed_type(z_aabb_, _unit_point_to_absolute)
196
+
197
+
198
+ /* MARK: - Implementation expansions */
199
+
200
+
201
+ #define z_aabb_sint8_are_equal z_3d_line_sint8_are_equal
202
+ #define z_aabb_sint8_center z_3d_line_segment_sint8_center
203
+ #define z_aabb_sint8_is_zero z_3d_line_sint8_is_zero
204
+ #define z_aabb_sint8_swap z_3d_line_sint8_swap
205
+
206
+ Z_IMPLEMENTATION_COMMON(SInt8, sint8)
207
+
208
+ #define z_aabb_sint16_are_equal z_3d_line_sint16_are_equal
209
+ #define z_aabb_sint16_center z_3d_line_segment_sint16_center
210
+ #define z_aabb_sint16_is_zero z_3d_line_sint16_is_zero
211
+ #define z_aabb_sint16_swap z_3d_line_sint16_swap
212
+
213
+ Z_IMPLEMENTATION_COMMON(SInt16, sint16)
214
+
215
+ #define z_aabb_sint32_are_equal z_3d_line_sint32_are_equal
216
+ #define z_aabb_sint32_center z_3d_line_segment_sint32_center
217
+ #define z_aabb_sint32_is_zero z_3d_line_sint32_is_zero
218
+ #define z_aabb_sint32_swap z_3d_line_sint32_swap
219
+
220
+ Z_IMPLEMENTATION_COMMON(SInt32, sint32)
221
+
222
+ #ifdef Z_SINT64
223
+
224
+ # define z_aabb_sint64_are_equal z_3d_line_sint64_are_equal
225
+ # define z_aabb_sint64_center z_3d_line_segment_sint64_center
226
+ # define z_aabb_sint64_is_zero z_3d_line_sint64_is_zero
227
+ # define z_aabb_sint64_swap z_3d_line_sint64_swap
228
+
229
+ Z_IMPLEMENTATION_COMMON(SInt64, sint64)
230
+
231
+ #endif
232
+
233
+ #ifdef Z_SINT128
234
+
235
+ # define z_aabb_sint128_are_equal z_3d_line_sint128_are_equal
236
+ # define z_aabb_sint128_center z_3d_line_segment_sint128_center
237
+ # define z_aabb_sint128_is_zero z_3d_line_sint128_is_zero
238
+ # define z_aabb_sint128_swap z_3d_line_sint128_swap
239
+
240
+ Z_IMPLEMENTATION_COMMON(SInt128, sint128)
241
+
242
+ #endif
243
+
244
+ #ifdef Z_FLOAT16
245
+
246
+ # define z_aabb_float16_are_equal z_3d_line_float16_are_equal
247
+ # define z_aabb_float16_center z_3d_line_segment_float16_center
248
+ # define z_aabb_float16_is_zero z_3d_line_float16_is_zero
249
+ # define z_aabb_float16_swap z_3d_line_float16_swap
250
+
251
+ Z_IMPLEMENTATION_COMMON(Float16, float16)
252
+ Z_IMPLEMENTATION_REAL (Float16, float16)
253
+
254
+ #endif
255
+
256
+ #ifdef Z_FLOAT32
257
+
258
+ # define z_aabb_float32_are_equal z_3d_line_float32_are_equal
259
+ # define z_aabb_float32_center z_3d_line_segment_float32_center
260
+ # define z_aabb_float32_is_zero z_3d_line_float32_is_zero
261
+ # define z_aabb_float32_swap z_3d_line_float32_swap
262
+
263
+ Z_IMPLEMENTATION_COMMON(Float32, float32)
264
+ Z_IMPLEMENTATION_REAL (Float32, float32)
265
+
266
+ #endif
267
+
268
+ #ifdef Z_FLOAT64
269
+
270
+ # define z_aabb_float64_are_equal z_3d_line_float64_are_equal
271
+ # define z_aabb_float64_center z_3d_line_segment_float64_center
272
+ # define z_aabb_float64_is_zero z_3d_line_float64_is_zero
273
+ # define z_aabb_float64_swap z_3d_line_float64_swap
274
+
275
+ Z_IMPLEMENTATION_COMMON(Float64, float64)
276
+ Z_IMPLEMENTATION_REAL (Float64, float64)
277
+
278
+ #endif
279
+
280
+ #ifdef Z_FLOAT128
281
+
282
+ # define z_aabb_float128_are_equal z_3d_line_float128_are_equal
283
+ # define z_aabb_float128_center z_3d_line_segment_float128_center
284
+ # define z_aabb_float128_is_zero z_3d_line_float128_is_zero
285
+ # define z_aabb_float128_swap z_3d_line_float128_swap
286
+
287
+ Z_IMPLEMENTATION_COMMON(Float128, float128)
288
+ Z_IMPLEMENTATION_REAL (Float128, float128)
289
+
290
+ #endif
291
+
292
+ #ifdef Z_FLOAT80_X87
293
+
294
+ # define z_aabb_float80_x87_are_equal z_3d_line_float80_x87_are_equal
295
+ # define z_aabb_float80_x87_center z_3d_line_segment_float80_x87_center
296
+ # define z_aabb_float80_x87_is_zero z_3d_line_float80_x87_is_zero
297
+ # define z_aabb_float80_x87_swap z_3d_line_float80_x87_swap
298
+
299
+ Z_IMPLEMENTATION_COMMON(Float80_x87, float80_x87)
300
+ Z_IMPLEMENTATION_REAL (Float80_x87, float80_x87)
301
+
302
+ #endif
303
+
304
+ #ifdef Z_FLOAT96_X87
305
+
306
+ # define z_aabb_float96_x87_are_equal z_3d_line_float96_x87_are_equal
307
+ # define z_aabb_float96_x87_center z_3d_line_segment_float96_x87_center
308
+ # define z_aabb_float96_x87_is_zero z_3d_line_float96_x87_is_zero
309
+ # define z_aabb_float96_x87_swap z_3d_line_float96_x87_swap
310
+
311
+ Z_IMPLEMENTATION_COMMON(Float96_x87, float96_x87)
312
+ Z_IMPLEMENTATION_REAL (Float96_x87, float96_x87)
313
+
314
+ #endif
315
+
316
+ #ifdef Z_FLOAT128_X87
317
+
318
+ # define z_aabb_float128_x87_are_equal z_3d_line_float128_x87_are_equal
319
+ # define z_aabb_float128_x87_center z_3d_line_segment_float128_x87_center
320
+ # define z_aabb_float128_x87_is_zero z_3d_line_float128_x87_is_zero
321
+ # define z_aabb_float128_x87_swap z_3d_line_float128_x87_swap
322
+
323
+ Z_IMPLEMENTATION_COMMON(Float128_x87, float128_x87)
324
+ Z_IMPLEMENTATION_REAL (Float128_x87, float128_x87)
325
+
326
+ #endif
327
+
328
+
329
+ /* MARK: - Cleanup */
330
+
331
+
332
+ #undef Z_IMPLEMENTATION_COMMON
333
+ #undef Z_IMPLEMENTATION_REAL
334
+
335
+
336
+ /* MARK: - Default real type definitions */
337
+
338
+
339
+ #ifdef Z_REAL
340
+ # define z_aabb_absolute_point_to_unit z_aabb_type_absolute_point_to_unit(REAL)
341
+ # define z_aabb_are_equal z_3d_line_are_equal
342
+ # define z_aabb_box z_aabb_type_box (REAL)
343
+ # define z_aabb_center z_3d_line_segment_center
344
+ # define z_aabb_contains z_aabb_type_contains (REAL)
345
+ # define z_aabb_contains_box z_aabb_type_contains_box (REAL)
346
+ # define z_aabb_contains_point z_aabb_type_contains_point (REAL)
347
+ # define z_aabb_contains_sphere z_aabb_type_contains_sphere (REAL)
348
+ # define z_aabb_from_vertices z_aabb_type_from_vertices (REAL)
349
+ # define z_aabb_inner_sphere z_aabb_type_inner_sphere (REAL)
350
+ # define z_aabb_intersect z_aabb_type_intersect (REAL)
351
+ # define z_aabb_intersection z_aabb_type_intersection (REAL)
352
+ # define z_aabb_is_zero z_3d_line_is_zero
353
+ # define z_aabb_size z_aabb_type_size (REAL)
354
+ # define z_aabb_swap z_3d_line_swap
355
+ # define z_aabb_union z_aabb_type_union (REAL)
356
+ # define z_aabb_unit_point_to_absolute z_aabb_type_unit_point_to_absolute(REAL)
357
+ # define z_aabb_volume z_aabb_type_volume (REAL)
358
+ #endif
359
+
360
+
361
+ #endif /* _Z_functions_mathematics_geometry_euclidean_ZAABB_H_ */