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,620 @@
1
+ /* Z Kit - functions/mathematics/geometry/euclidean/constructors.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_constructors_H_
9
+ #define _Z_functions_mathematics_geometry_euclidean_constructors_H_
10
+
11
+ #include <Z/types/mathematics.h>
12
+
13
+ #if Z_LANGUAGE_HAS(C, COMPOUND_LITERAL)
14
+
15
+ # define z_2d_line_sint8(a_x, a_y, b_x, b_y) \
16
+ ((Z2DLineSInt8){{a_x, a_y}, {b_x, b_y}})
17
+
18
+ # define z_3d_line_sint8(a_x, a_y, a_z, b_x, b_y, b_z) \
19
+ ((Z3DLineSInt8){{a_x, a_y, a_z}, {b_x, b_y, b_z}})
20
+
21
+ # define z_box_sint8(point_x, point_y, point_z, size_x, size_y, size_z) \
22
+ ((ZBoxSInt8){{point_x, point_y, point_z}, {size_x, size_y, size_z}})
23
+
24
+ # define z_rectangle_sint8(point_x, point_y, size_x, size_y) \
25
+ ((ZRectangleSInt8){{point_x, point_y}, {size_x, size_y}})
26
+
27
+ # define z_2d_line_sint16(a_x, a_y, b_x, b_y) \
28
+ ((Z2DLineSInt16){{a_x, a_y}, {b_x, b_y}})
29
+
30
+ # define z_3d_line_sint16(a_x, a_y, a_z, b_x, b_y, b_z) \
31
+ ((Z3DLineSInt16){{a_x, a_y, a_z}, {b_x, b_y, b_z}})
32
+
33
+ # define z_box_sint16(point_x, point_y, point_z, size_x, size_y, size_z) \
34
+ ((ZBoxSInt16){{point_x, point_y, point_z}, {size_x, size_y, size_z}})
35
+
36
+ # define z_rectangle_sint16(point_x, point_y, size_x, size_y) \
37
+ ((ZRectangleSInt16){{point_x, point_y}, {size_x, size_y}})
38
+
39
+ # define z_2d_line_sint32(a_x, a_y, b_x, b_y) \
40
+ ((Z2DLineSInt32){{a_x, a_y}, {b_x, b_y}})
41
+
42
+ # define z_3d_line_sint32(a_x, a_y, a_z, b_x, b_y, b_z) \
43
+ ((Z3DLineSInt32){{a_x, a_y, a_z}, {b_x, b_y, b_z}})
44
+
45
+ # define z_box_sint32(point_x, point_y, point_z, size_x, size_y, size_z) \
46
+ ((ZBoxSInt32){{point_x, point_y, point_z}, {size_x, size_y, size_z}})
47
+
48
+ # define z_rectangle_sint32(point_x, point_y, size_x, size_y) \
49
+ ((ZRectangleSInt32){{point_x, point_y}, {size_x, size_y}})
50
+
51
+ # ifdef Z_SINT64
52
+
53
+ # define z_2d_line_sint64(a_x, a_y, b_x, b_y) \
54
+ ((Z2DLineSInt64){{a_x, a_y}, {b_x, b_y}})
55
+
56
+ # define z_3d_line_sint64(a_x, a_y, a_z, b_x, b_y, b_z) \
57
+ ((Z3DLineSInt64){{a_x, a_y, a_z}, {b_x, b_y, b_z}})
58
+
59
+ # define z_box_sint64(point_x, point_y, point_z, size_x, size_y, size_z) \
60
+ ((ZBoxSInt64){{point_x, point_y, point_z}, {size_x, size_y, size_z}})
61
+
62
+ # define z_rectangle_sint64(point_x, point_y, size_x, size_y) \
63
+ ((ZRectangleSInt64){{point_x, point_y}, {size_x, size_y}})
64
+
65
+ # endif
66
+
67
+ # ifdef Z_SINT128
68
+
69
+ # define z_2d_line_sint128(a_x, a_y, b_x, b_y) \
70
+ ((Z2DLineSInt128){{a_x, a_y}, {b_x, b_y}})
71
+
72
+ # define z_3d_line_sint128(a_x, a_y, a_z, b_x, b_y, b_z) \
73
+ ((Z3DLineSInt128){{a_x, a_y, a_z}, {b_x, b_y, b_z}})
74
+
75
+ # define z_box_sint128(point_x, point_y, point_z, size_x, size_y, size_z) \
76
+ ((ZBoxSInt128){{point_x, point_y, point_z}, {size_x, size_y, size_z}})
77
+
78
+ # define z_rectangle_sint128(point_x, point_y, size_x, size_y) \
79
+ ((ZRectangleSInt128){{point_x, point_y}, {size_x, size_y}})
80
+
81
+ # endif
82
+
83
+ # ifdef Z_FLOAT16
84
+
85
+ # define z_2d_line_float16(a_x, a_y, b_x, b_y) \
86
+ ((Z2DLineFloat16){{a_x, a_y}, {b_x, b_y}})
87
+
88
+ # define z_3d_line_float16(a_x, a_y, a_z, b_x, b_y, b_z) \
89
+ ((Z3DLineFloat16){{a_x, a_y, a_z}, {b_x, b_y, b_z}})
90
+
91
+ # define z_box_float16(point_x, point_y, point_z, size_x, size_y, size_z) \
92
+ ((ZBoxFloat16){{point_x, point_y, point_z}, {size_x, size_y, size_z}})
93
+
94
+ # define z_circle_float16(point_x, point_y, radius) \
95
+ ((ZCircleFloat16){{point_x, point_y}, radius})
96
+
97
+ # define z_rectangle_float16(point_x, point_y, size_x, size_y) \
98
+ ((ZRectangleFloat16){{point_x, point_y}, {size_x, size_y}})
99
+
100
+ # define z_sphere_float16(point_x, point_y, point_z, radius) \
101
+ ((ZCircleFloat16){{point_x, point_y, point_z}, radius})
102
+
103
+ # endif
104
+
105
+ # ifdef Z_FLOAT32
106
+
107
+ # define z_2d_line_float32(a_x, a_y, b_x, b_y) \
108
+ ((Z2DLineFloat32){{a_x, a_y}, {b_x, b_y}})
109
+
110
+ # define z_3d_line_float32(a_x, a_y, a_z, b_x, b_y, b_z) \
111
+ ((Z3DLineFloat32){{a_x, a_y, a_z}, {b_x, b_y, b_z}})
112
+
113
+ # define z_box_float32(point_x, point_y, point_z, size_x, size_y, size_z) \
114
+ ((ZBoxFloat32){{point_x, point_y, point_z}, {size_x, size_y, size_z}})
115
+
116
+ # define z_circle_float32(point_x, point_y, radius) \
117
+ ((ZCircleFloat32){{point_x, point_y}, radius})
118
+
119
+ # define z_rectangle_float32(point_x, point_y, size_x, size_y) \
120
+ ((ZRectangleFloat32){{point_x, point_y}, {size_x, size_y}})
121
+
122
+ # define z_sphere_float32(point_x, point_y, point_z, radius) \
123
+ ((ZCircleFloat32){{point_x, point_y, point_z}, radius})
124
+
125
+ # endif
126
+
127
+ # ifdef Z_FLOAT64
128
+
129
+ # define z_2d_line_float64(a_x, a_y, b_x, b_y) \
130
+ ((Z2DLineFloat64){{a_x, a_y}, {b_x, b_y}})
131
+
132
+ # define z_3d_line_float64(a_x, a_y, a_z, b_x, b_y, b_z) \
133
+ ((Z3DLineFloat64){{a_x, a_y, a_z}, {b_x, b_y, b_z}})
134
+
135
+ # define z_box_float64(point_x, point_y, point_z, size_x, size_y, size_z) \
136
+ ((ZBoxFloat64){{point_x, point_y, point_z}, {size_x, size_y, size_z}})
137
+
138
+ # define z_circle_float64(point_x, point_y, radius) \
139
+ ((ZCircleFloat64){{point_x, point_y}, radius})
140
+
141
+ # define z_rectangle_float64(point_x, point_y, size_x, size_y) \
142
+ ((ZRectangleFloat64){{point_x, point_y}, {size_x, size_y}})
143
+
144
+ # define z_sphere_float64(point_x, point_y, point_z, radius) \
145
+ ((ZCircleFloat64){{point_x, point_y, point_z}, radius})
146
+
147
+ # endif
148
+
149
+ # ifdef Z_FLOAT128
150
+
151
+ # define z_2d_line_float128(a_x, a_y, b_x, b_y) \
152
+ ((Z2DLineFloat128){{a_x, a_y}, {b_x, b_y}})
153
+
154
+ # define z_3d_line_float128(a_x, a_y, a_z, b_x, b_y, b_z) \
155
+ ((Z3DLineFloat128){{a_x, a_y, a_z}, {b_x, b_y, b_z}})
156
+
157
+ # define z_box_float128(point_x, point_y, point_z, size_x, size_y, size_z) \
158
+ ((ZBoxFloat128){{point_x, point_y, point_z}, {size_x, size_y, size_z}})
159
+
160
+ # define z_circle_float128(point_x, point_y, radius) \
161
+ ((ZCircleFloat128){{point_x, point_y}, radius})
162
+
163
+ # define z_rectangle_float128(point_x, point_y, size_x, size_y) \
164
+ ((ZRectangleFloat128){{point_x, point_y}, {size_x, size_y}})
165
+
166
+ # define z_sphere_float128(point_x, point_y, point_z, radius) \
167
+ ((ZCircleFloat128){{point_x, point_y, point_z}, radius})
168
+
169
+ # endif
170
+
171
+ # ifdef Z_FLOAT80_X87
172
+
173
+ # define z_2d_line_float80_x87(a_x, a_y, b_x, b_y) \
174
+ ((Z2DLineFloat80_x87){{a_x, a_y}, {b_x, b_y}})
175
+
176
+ # define z_3d_line_float80_x87(a_x, a_y, a_z, b_x, b_y, b_z) \
177
+ ((Z3DLineFloat80_x87){{a_x, a_y, a_z}, {b_x, b_y, b_z}})
178
+
179
+ # define z_box_float80_x87(point_x, point_y, point_z, size_x, size_y, size_z) \
180
+ ((ZBoxFloat80_x87){{point_x, point_y, point_z}, {size_x, size_y, size_z}})
181
+
182
+ # define z_circle_float80_x87(point_x, point_y, radius) \
183
+ ((ZCircleFloat80_x87){{point_x, point_y}, radius})
184
+
185
+ # define z_rectangle_float80_x87(point_x, point_y, size_x, size_y) \
186
+ ((ZRectangleFloat80_x87){{point_x, point_y}, {size_x, size_y}})
187
+
188
+ # define z_sphere_float80_x87(point_x, point_y, point_z, radius) \
189
+ ((ZCircleFloat80_x87){{point_x, point_y, point_z}, radius})
190
+
191
+ # endif
192
+
193
+ # ifdef Z_FLOAT96_X87
194
+
195
+ # define z_2d_line_float96_x87(a_x, a_y, b_x, b_y) \
196
+ ((Z2DLineFloat96_x87){{a_x, a_y}, {b_x, b_y}})
197
+
198
+ # define z_3d_line_float96_x87(a_x, a_y, a_z, b_x, b_y, b_z) \
199
+ ((Z3DLineFloat96_x87){{a_x, a_y, a_z}, {b_x, b_y, b_z}})
200
+
201
+ # define z_box_float96_x87(point_x, point_y, point_z, size_x, size_y, size_z) \
202
+ ((ZBoxFloat96_x87){{point_x, point_y, point_z}, {size_x, size_y, size_z}})
203
+
204
+ # define z_circle_float96_x87(point_x, point_y, radius) \
205
+ ((ZCircleFloat96_x87){{point_x, point_y}, radius})
206
+
207
+ # define z_rectangle_float96_x87(point_x, point_y, size_x, size_y) \
208
+ ((ZRectangleFloat96_x87){{point_x, point_y}, {size_x, size_y}})
209
+
210
+ # define z_sphere_float96_x87(point_x, point_y, point_z, radius) \
211
+ ((ZCircleFloat96_x87){{point_x, point_y, point_z}, radius})
212
+
213
+ # endif
214
+
215
+ # ifdef Z_FLOAT128_X87
216
+
217
+ # define z_2d_line_float128_x87(a_x, a_y, b_x, b_y) \
218
+ ((Z2DLineFloat128_x87){{a_x, a_y}, {b_x, b_y}})
219
+
220
+ # define z_3d_line_float128_x87(a_x, a_y, a_z, b_x, b_y, b_z) \
221
+ ((Z3DLineFloat128_x87){{a_x, a_y, a_z}, {b_x, b_y, b_z}})
222
+
223
+ # define z_box_float128_x87(point_x, point_y, point_z, size_x, size_y, size_z) \
224
+ ((ZBoxFloat128_x87){{point_x, point_y, point_z}, {size_x, size_y, size_z}})
225
+
226
+ # define z_circle_float128_x87(point_x, point_y, radius) \
227
+ ((ZCircleFloat128_x87){{point_x, point_y}, radius})
228
+
229
+ # define z_rectangle_float128_x87(point_x, point_y, size_x, size_y) \
230
+ ((ZRectangleFloat128_x87){{point_x, point_y}, {size_x, size_y}})
231
+
232
+ # define z_sphere_float128_x87(point_x, point_y, point_z, radius) \
233
+ ((ZCircleFloat128_x87){{point_x, point_y, point_z}, radius})
234
+
235
+ # endif
236
+
237
+ #else
238
+
239
+ # define Z_IMPLEMENTATION_INTEGER(Type, type) \
240
+ \
241
+ static Z_INLINE \
242
+ Z2DLine##Type z_2d_line_##type( \
243
+ z##type a_x, \
244
+ z##type a_y, \
245
+ z##type b_x, \
246
+ z##type b_y \
247
+ ) \
248
+ { \
249
+ Z2DLine##Type object; \
250
+ \
251
+ object.a.x = a_x; \
252
+ object.a.y = a_y; \
253
+ object.b.x = b_x; \
254
+ object.b.y = b_y; \
255
+ return object; \
256
+ } \
257
+ \
258
+ \
259
+ static Z_INLINE \
260
+ Z3DLine##Type z_3d_line_##type( \
261
+ z##type a_x, \
262
+ z##type a_y, \
263
+ z##type a_z, \
264
+ z##type b_x, \
265
+ z##type b_y, \
266
+ z##type b_z \
267
+ ) \
268
+ { \
269
+ Z3DLine##Type object; \
270
+ \
271
+ object.a.x = a_x; \
272
+ object.a.y = a_y; \
273
+ object.a.z = a_z; \
274
+ object.b.x = b_x; \
275
+ object.b.y = b_y; \
276
+ object.b.z = b_z; \
277
+ return object; \
278
+ } \
279
+ \
280
+ \
281
+ static Z_INLINE \
282
+ ZBox##Type z_box_##type( \
283
+ z##type x, \
284
+ z##type y, \
285
+ z##type z, \
286
+ z##type size_x, \
287
+ z##type size_y, \
288
+ z##type size_z \
289
+ ) \
290
+ { \
291
+ ZBox##Type object; \
292
+ \
293
+ object.point.x = x; \
294
+ object.point.y = y; \
295
+ object.point.z = z; \
296
+ object.size.x = size_x; \
297
+ object.size.y = size_y; \
298
+ object.size.z = size_z; \
299
+ return object; \
300
+ } \
301
+ \
302
+ \
303
+ static Z_INLINE \
304
+ ZRectangle##Type z_rectangle_##type( \
305
+ z##type x, \
306
+ z##type y, \
307
+ z##type size_x, \
308
+ z##type size_y \
309
+ ) \
310
+ { \
311
+ ZRectangle##Type object; \
312
+ \
313
+ object.point.x = x; \
314
+ object.point.y = y; \
315
+ object.size.x = size_x; \
316
+ object.size.y = size_y; \
317
+ return object; \
318
+ }
319
+
320
+
321
+ # define Z_IMPLEMENTATION_REAL(Type, type) \
322
+ \
323
+ static Z_INLINE \
324
+ ZCircle##Type z_circle_##type( \
325
+ z##type x, \
326
+ z##type y, \
327
+ z##type radius \
328
+ ) \
329
+ { \
330
+ ZCircle##Type object; \
331
+ \
332
+ object.point.x = x; \
333
+ object.point.y = y; \
334
+ object.radius = radius; \
335
+ return object; \
336
+ } \
337
+ \
338
+ \
339
+ static Z_INLINE \
340
+ ZSphere##Type z_sphere_##type( \
341
+ z##type x, \
342
+ z##type y, \
343
+ z##type z, \
344
+ z##type radius \
345
+ ) \
346
+ { \
347
+ ZSphere##Type object; \
348
+ \
349
+ object.point.x = x; \
350
+ object.point.y = y; \
351
+ object.point.z = z; \
352
+ object.radius = radius; \
353
+ return object; \
354
+ }
355
+
356
+
357
+ Z_IMPLEMENTATION_INTEGER(SInt8, sint8 )
358
+ Z_IMPLEMENTATION_INTEGER(SInt16, sint16)
359
+ Z_IMPLEMENTATION_INTEGER(SInt32, sint32)
360
+
361
+ # ifdef Z_SINT64
362
+ Z_IMPLEMENTATION_INTEGER(SInt64, sint64)
363
+ # endif
364
+
365
+ # ifdef Z_SINT128
366
+ Z_IMPLEMENTATION_INTEGER(SInt128, sint128)
367
+ # endif
368
+
369
+ # ifdef Z_FLOAT16
370
+ Z_IMPLEMENTATION_INTEGER(Float16, float16)
371
+ Z_IMPLEMENTATION_REAL (Float16, float16)
372
+ # endif
373
+
374
+ # ifdef Z_FLOAT32
375
+ Z_IMPLEMENTATION_INTEGER(Float32, float32)
376
+ Z_IMPLEMENTATION_REAL (Float32, float32)
377
+ # endif
378
+
379
+ # ifdef Z_FLOAT64
380
+ Z_IMPLEMENTATION_INTEGER(Float64, float64)
381
+ Z_IMPLEMENTATION_REAL (Float64, float64)
382
+ # endif
383
+
384
+ # ifdef Z_FLOAT128
385
+ Z_IMPLEMENTATION_INTEGER(Float128, float128)
386
+ Z_IMPLEMENTATION_REAL (Float128, float128)
387
+ # endif
388
+
389
+ # ifdef Z_FLOAT80_X87
390
+ Z_IMPLEMENTATION_INTEGER(Float80_x87, float80_x87)
391
+ Z_IMPLEMENTATION_REAL (Float80_x87, float80_x87)
392
+ # endif
393
+
394
+ # ifdef Z_FLOAT96_X87
395
+ Z_IMPLEMENTATION_INTEGER(Float96_x87, float96_x87)
396
+ Z_IMPLEMENTATION_REAL (Float96_x87, float96_x87)
397
+ # endif
398
+
399
+ # ifdef Z_FLOAT128_X87
400
+ Z_IMPLEMENTATION_INTEGER(Float128_x87, float128_x87)
401
+ Z_IMPLEMENTATION_REAL (Float128_x87, float128_x87)
402
+ # endif
403
+
404
+ # undef Z_IMPLEMENTATION_INTEGER
405
+ # undef Z_IMPLEMENTATION_REAL
406
+
407
+ #endif
408
+
409
+ #define z_aabb_sint8 z_3d_line_sint8
410
+ #define z_aabr_sint8 z_2d_line_sint8
411
+
412
+ #define z_2d_line_sint8_zero z_2d_line_sint8 (0.0, 0.0, 0.0, 0.0)
413
+ #define z_3d_line_sint8_zero z_3d_line_sint8 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
414
+ #define z_aabb_sint8_zero z_3d_line_sint8_zero
415
+ #define z_aabr_sint8_zero z_2d_line_sint8_zero
416
+ #define z_box_sint8_zero z_box_sint8 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
417
+ #define z_rectangle_sint8_zero z_rectangle_sint8(0.0, 0.0, 0.0, 0.0)
418
+
419
+ #define z_aabb_sint16 z_3d_line_sint16
420
+ #define z_aabr_sint16 z_2d_line_sint16
421
+
422
+ #define z_2d_line_sint16_zero z_2d_line_sint16 (0.0, 0.0, 0.0, 0.0)
423
+ #define z_3d_line_sint16_zero z_3d_line_sint16 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
424
+ #define z_aabb_sint16_zero z_3d_line_sint16_zero
425
+ #define z_aabr_sint16_zero z_2d_line_sint16_zero
426
+ #define z_box_sint16_zero z_box_sint16 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
427
+ #define z_rectangle_sint16_zero z_rectangle_sint16(0.0, 0.0, 0.0, 0.0)
428
+
429
+ #define z_aabb_sint32 z_3d_line_sint32
430
+ #define z_aabr_sint32 z_2d_line_sint32
431
+
432
+ #define z_2d_line_sint32_zero z_2d_line_sint32 (0.0, 0.0, 0.0, 0.0)
433
+ #define z_3d_line_sint32_zero z_3d_line_sint32 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
434
+ #define z_aabb_sint32_zero z_3d_line_sint32_zero
435
+ #define z_aabr_sint32_zero z_2d_line_sint32_zero
436
+ #define z_box_sint32_zero z_box_sint32 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
437
+ #define z_rectangle_sint32_zero z_rectangle_sint32(0.0, 0.0, 0.0, 0.0)
438
+
439
+ #ifdef Z_SINT64
440
+
441
+ # define z_aabb_sint64 z_3d_line_sint64
442
+ # define z_aabr_sint64 z_2d_line_sint64
443
+
444
+ # define z_2d_line_sint64_zero z_2d_line_sint64 (0.0, 0.0, 0.0, 0.0)
445
+ # define z_3d_line_sint64_zero z_3d_line_sint64 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
446
+ # define z_aabb_sint64_zero z_3d_line_sint64_zero
447
+ # define z_aabr_sint64_zero z_2d_line_sint64_zero
448
+ # define z_box_sint64_zero z_box_sint64 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
449
+ # define z_rectangle_sint64_zero z_rectangle_sint64(0.0, 0.0, 0.0, 0.0)
450
+
451
+ #endif
452
+
453
+ #ifdef Z_SINT128
454
+
455
+ # define z_aabb_sint128 z_3d_line_sint128
456
+ # define z_aabr_sint128 z_2d_line_sint128
457
+
458
+ # define z_2d_line_sint128_zero z_2d_line_sint128 (0.0, 0.0, 0.0, 0.0)
459
+ # define z_3d_line_sint128_zero z_3d_line_sint128 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
460
+ # define z_aabb_sint128_zero z_3d_line_sint128_zero
461
+ # define z_aabr_sint128_zero z_2d_line_sint128_zero
462
+ # define z_box_sint128_zero z_box_sint128 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
463
+ # define z_rectangle_sint128_zero z_rectangle_sint128(0.0, 0.0, 0.0, 0.0)
464
+
465
+ #endif
466
+
467
+ #ifdef Z_FLOAT16
468
+
469
+ # define z_aabb_float16 z_3d_line_float16
470
+ # define z_aabr_float16 z_2d_line_float16
471
+
472
+ # define z_2d_line_float16_zero z_2d_line_float16 (0.0, 0.0, 0.0, 0.0)
473
+ # define z_3d_line_float16_zero z_3d_line_float16 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
474
+ # define z_aabb_float16_zero z_3d_line_float16_zero
475
+ # define z_aabr_float16_zero z_2d_line_float16_zero
476
+ # define z_box_float16_zero z_box_float16 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
477
+ # define z_circle_float16_zero z_circle_float16 (0.0, 0.0, 0.0)
478
+ # define z_rectangle_float16_zero z_rectangle_float16(0.0, 0.0, 0.0, 0.0)
479
+ # define z_sphere_float16_zero z_sphere_float16 (0.0, 0.0, 0.0, 0.0)
480
+
481
+ #endif
482
+
483
+ #ifdef Z_FLOAT32
484
+
485
+ # define z_aabb_float32 z_3d_line_float32
486
+ # define z_aabr_float32 z_2d_line_float32
487
+
488
+ # define z_2d_line_float32_zero z_2d_line_float32 (0.0, 0.0, 0.0, 0.0)
489
+ # define z_3d_line_float32_zero z_3d_line_float32 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
490
+ # define z_aabb_float32_zero z_3d_line_float32_zero
491
+ # define z_aabr_float32_zero z_2d_line_float32_zero
492
+ # define z_box_float32_zero z_box_float32 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
493
+ # define z_circle_float32_zero z_circle_float32 (0.0, 0.0, 0.0)
494
+ # define z_rectangle_float32_zero z_rectangle_float32(0.0, 0.0, 0.0, 0.0)
495
+ # define z_sphere_float32_zero z_sphere_float32 (0.0, 0.0, 0.0, 0.0)
496
+
497
+ #endif
498
+
499
+ #ifdef Z_FLOAT64
500
+
501
+ # define z_aabb_float64 z_3d_line_float64
502
+ # define z_aabr_float64 z_2d_line_float64
503
+
504
+ # define z_2d_line_float64_zero z_2d_line_float64 (0.0, 0.0, 0.0, 0.0)
505
+ # define z_3d_line_float64_zero z_3d_line_float64 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
506
+ # define z_aabb_float64_zero z_3d_line_float64_zero
507
+ # define z_aabr_float64_zero z_2d_line_float64_zero
508
+ # define z_box_float64_zero z_box_float64 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
509
+ # define z_circle_float64_zero z_circle_float64 (0.0, 0.0, 0.0)
510
+ # define z_rectangle_float64_zero z_rectangle_float64(0.0, 0.0, 0.0, 0.0)
511
+ # define z_sphere_float64_zero z_sphere_float64 (0.0, 0.0, 0.0, 0.0)
512
+
513
+ #endif
514
+
515
+ #ifdef Z_FLOAT128
516
+
517
+ # define z_aabb_float128 z_3d_line_float128
518
+ # define z_aabr_float128 z_2d_line_float128
519
+
520
+ # define z_2d_line_float128_zero z_2d_line_float128 (0.0, 0.0, 0.0, 0.0)
521
+ # define z_3d_line_float128_zero z_3d_line_float128 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
522
+ # define z_aabb_float128_zero z_3d_line_float128_zero
523
+ # define z_aabr_float128_zero z_2d_line_float128_zero
524
+ # define z_box_float128_zero z_box_float128 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
525
+ # define z_circle_float128_zero z_circle_float128 (0.0, 0.0, 0.0)
526
+ # define z_rectangle_float128_zero z_rectangle_float128(0.0, 0.0, 0.0, 0.0)
527
+ # define z_sphere_float128_zero z_sphere_float128 (0.0, 0.0, 0.0, 0.0)
528
+
529
+ #endif
530
+
531
+ #ifdef Z_FLOAT80_X87
532
+
533
+ # define z_aabb_float80_x87 z_3d_line_float80_x87
534
+ # define z_aabr_float80_x87 z_2d_line_float80_x87
535
+
536
+ # define z_2d_line_float80_x87_zero z_2d_line_float80_x87 (0.0, 0.0, 0.0, 0.0)
537
+ # define z_3d_line_float80_x87_zero z_3d_line_float80_x87 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
538
+ # define z_aabb_float80_x87_zero z_3d_line_float80_x87_zero
539
+ # define z_aabr_float80_x87_zero z_2d_line_float80_x87_zero
540
+ # define z_box_float80_x87_zero z_box_float80_x87 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
541
+ # define z_circle_float80_x87_zero z_circle_float80_x87 (0.0, 0.0, 0.0)
542
+ # define z_rectangle_float80_x87_zero z_rectangle_float80_x87(0.0, 0.0, 0.0, 0.0)
543
+ # define z_sphere_float80_x87_zero z_sphere_float80_x87 (0.0, 0.0, 0.0, 0.0)
544
+
545
+ #endif
546
+
547
+ #ifdef Z_FLOAT96_X87
548
+
549
+ # define z_aabb_float96_x87 z_3d_line_float96_x87
550
+ # define z_aabr_float96_x87 z_2d_line_float96_x87
551
+
552
+ # define z_2d_line_float96_x87_zero z_2d_line_float96_x87 (0.0, 0.0, 0.0, 0.0)
553
+ # define z_3d_line_float96_x87_zero z_3d_line_float96_x87 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
554
+ # define z_aabb_float96_x87_zero z_3d_line_float96_x87_zero
555
+ # define z_aabr_float96_x87_zero z_2d_line_float96_x87_zero
556
+ # define z_box_float96_x87_zero z_box_float96_x87 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
557
+ # define z_circle_float96_x87_zero z_circle_float96_x87 (0.0, 0.0, 0.0)
558
+ # define z_rectangle_float96_x87_zero z_rectangle_float96_x87(0.0, 0.0, 0.0, 0.0)
559
+ # define z_sphere_float96_x87_zero z_sphere_float96_x87 (0.0, 0.0, 0.0, 0.0)
560
+
561
+ #endif
562
+
563
+ #ifdef Z_FLOAT128_X87
564
+
565
+ # define z_aabb_float128_x87 z_3d_line_float128_x87
566
+ # define z_aabr_float128_x87 z_2d_line_float128_x87
567
+
568
+ # define z_2d_line_float128_x87_zero z_2d_line_float128_x87 (0.0, 0.0, 0.0, 0.0)
569
+ # define z_3d_line_float128_x87_zero z_3d_line_float128_x87 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
570
+ # define z_aabb_float128_x87_zero z_3d_line_float128_x87_zero
571
+ # define z_aabr_float128_x87_zero z_2d_line_float128_x87_zero
572
+ # define z_box_float128_x87_zero z_box_float128_x87 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
573
+ # define z_circle_float128_x87_zero z_circle_float128_x87 (0.0, 0.0, 0.0)
574
+ # define z_rectangle_float128_x87_zero z_rectangle_float128_x87(0.0, 0.0, 0.0, 0.0)
575
+ # define z_sphere_float128_x87_zero z_sphere_float128_x87 (0.0, 0.0, 0.0, 0.0)
576
+
577
+ #endif
578
+
579
+ #define z_2d_line_type( TYPE) Z_APPEND_##TYPE##_fixed_type(z_2d_line_ )
580
+ #define z_3d_line_type( TYPE) Z_APPEND_##TYPE##_fixed_type(z_3d_line_ )
581
+ #define z_aabb_type( TYPE) Z_APPEND_##TYPE##_fixed_type(z_aabb_ )
582
+ #define z_aabr_type( TYPE) Z_APPEND_##TYPE##_fixed_type(z_aabr_ )
583
+ #define z_box_type( TYPE) Z_APPEND_##TYPE##_fixed_type(z_box_type )
584
+ #define z_circle_type( TYPE) Z_APPEND_##TYPE##_fixed_type(z_circle_ )
585
+ #define z_rectangle_type( TYPE) Z_APPEND_##TYPE##_fixed_type(z_rectangle_)
586
+ #define z_sphere_type( TYPE) Z_APPEND_##TYPE##_fixed_type(z_sphere_ )
587
+ #define z_2d_line_type_zero( TYPE) Z_INSERT_##TYPE##_fixed_type(z_2d_line_, _zero)
588
+ #define z_3d_line_type_zero( TYPE) Z_INSERT_##TYPE##_fixed_type(z_3d_line_, _zero)
589
+ #define z_aabb_type_zero( TYPE) Z_INSERT_##TYPE##_fixed_type(z_aabb_, _zero)
590
+ #define z_aabr_type_zero( TYPE) Z_INSERT_##TYPE##_fixed_type(z_aabr_, _zero)
591
+ #define z_box_type_zero( TYPE) Z_INSERT_##TYPE##_fixed_type(z_box_, _zero)
592
+ #define z_circle_type_zero( TYPE) Z_INSERT_##TYPE##_fixed_type(z_circle_, _zero)
593
+ #define z_rectangle_type_zero(TYPE) Z_INSERT_##TYPE##_fixed_type(z_rectangle_, _zero)
594
+ #define z_sphere_type_zero( TYPE) Z_INSERT_##TYPE##_fixed_type(z_sphere_, _zero)
595
+
596
+ /* MARK: - Default real type definitions */
597
+
598
+ #ifdef Z_REAL
599
+
600
+ # define z_2d_line z_2d_line_type (REAL)
601
+ # define z_3d_line z_3d_line_type (REAL)
602
+ # define z_aabb z_3d_line
603
+ # define z_aabr z_2d_line
604
+ # define z_box z_box_type (REAL)
605
+ # define z_circle z_circle_type (REAL)
606
+ # define z_rectangle z_rectangle_type(REAL)
607
+ # define z_sphere z_sphere_type (REAL)
608
+
609
+ # define z_2d_line_zero z_2d_line_type_zero (REAL)
610
+ # define z_3d_line_zero z_3d_line_type_zero (REAL)
611
+ # define z_aabb_zero z_3d_line_zero
612
+ # define z_aabr_zero z_2d_line_zero
613
+ # define z_box_zero z_box_type_zero (REAL)
614
+ # define z_circle_zero z_circle_type_zero (REAL)
615
+ # define z_rectangle_zero z_rectangle_type_zero(REAL)
616
+ # define z_sphere_zero z_sphere_type_zero (REAL)
617
+
618
+ #endif
619
+
620
+ #endif /* _Z_functions_mathematics_geometry_euclidean_constructors_H_ */
@@ -0,0 +1,29 @@
1
+ /* Z Kit - functions/time/date.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_time_date_H_
9
+ #define _Z_functions_time_date_H_
10
+
11
+ #include <Z/types/base.h>
12
+ #include <Z/macros/date.h>
13
+
14
+
15
+ static Z_INLINE
16
+ boolean z_gregorian_year_is_leap(zullong year)
17
+ {return Z_GREGORIAN_YEAR_IS_LEAP(year);}
18
+
19
+
20
+ static Z_INLINE
21
+ zuint8 z_gregorian_year_days_in_month(zullong year, zuint8 month)
22
+ {
23
+ return month == 2
24
+ ? (Z_GREGORIAN_YEAR_IS_LEAP(year) ? 29 : 28)
25
+ : (month == 4 || month == 6 || month == 9 || month == 11 ? 30 : 31);
26
+ }
27
+
28
+
29
+ #endif /* _Z_functions_time_date_H_ */