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,39 @@
1
+ /* Z Kit - keys/program.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_keys_program_H_
9
+ #define _Z_keys_program_H_
10
+
11
+ #define Z_PROGRAM_FORMAT_A_OUT 1
12
+ #define Z_PROGRAM_FORMAT_COFF 2
13
+ #define Z_PROGRAM_FORMAT_ECOFF 3
14
+ #define Z_PROGRAM_FORMAT_ELF 4
15
+ #define Z_PROGRAM_FORMAT_HUNK 5
16
+ #define Z_PROGRAM_FORMAT_LX 6
17
+ #define Z_PROGRAM_FORMAT_MACH_O 7
18
+ #define Z_PROGRAM_FORMAT_MZ 8
19
+ #define Z_PROGRAM_FORMAT_NE 9
20
+ #define Z_PROGRAM_FORMAT_PE 10
21
+ #define Z_PROGRAM_FORMAT_PEF 11
22
+ #define Z_PROGRAM_FORMAT_SOM 12
23
+ #define Z_PROGRAM_FORMAT_XCOFF 13
24
+
25
+ #define Z_PROGRAM_FORMAT_STRING_A_OUT "a.out"
26
+ #define Z_PROGRAM_FORMAT_STRING_COFF "COFF"
27
+ #define Z_PROGRAM_FORMAT_STRING_ECOFF "ECOFF"
28
+ #define Z_PROGRAM_FORMAT_STRING_ELF "ELF"
29
+ #define Z_PROGRAM_FORMAT_STRING_HUNK "HUNK"
30
+ #define Z_PROGRAM_FORMAT_STRING_LX "LX"
31
+ #define Z_PROGRAM_FORMAT_STRING_MACH_O "Mach-O"
32
+ #define Z_PROGRAM_FORMAT_STRING_MZ "MZ"
33
+ #define Z_PROGRAM_FORMAT_STRING_NE "NE"
34
+ #define Z_PROGRAM_FORMAT_STRING_PE "PE"
35
+ #define Z_PROGRAM_FORMAT_STRING_PEF "PEF"
36
+ #define Z_PROGRAM_FORMAT_STRING_SOM "SOM"
37
+ #define Z_PROGRAM_FORMAT_STRING_XCOFF "XCOFF"
38
+
39
+ #endif /* _Z_keys_program_H_ */
@@ -0,0 +1,200 @@
1
+ /* Z Kit - keys/science/chemistry.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_keys_science_chemistry_H_
9
+ #define _Z_keys_science_chemistry_H_
10
+
11
+ #define Z_CHEMICAL_ELEMENT_HYDROGEN 1
12
+ #define Z_CHEMICAL_ELEMENT_HELIUM 2
13
+ #define Z_CHEMICAL_ELEMENT_LITHIUM 3
14
+ #define Z_CHEMICAL_ELEMENT_BERYLLIUM 4
15
+ #define Z_CHEMICAL_ELEMENT_BORON 5
16
+ #define Z_CHEMICAL_ELEMENT_CARBON 6
17
+ #define Z_CHEMICAL_ELEMENT_NITROGEN 7
18
+ #define Z_CHEMICAL_ELEMENT_OXYGEN 8
19
+ #define Z_CHEMICAL_ELEMENT_FLUORINE 9
20
+ #define Z_CHEMICAL_ELEMENT_NEON 10
21
+ #define Z_CHEMICAL_ELEMENT_SODIUM 11
22
+ #define Z_CHEMICAL_ELEMENT_MAGNESIUM 12
23
+ #define Z_CHEMICAL_ELEMENT_ALUMINIUM 13
24
+ #define Z_CHEMICAL_ELEMENT_SILICON 14
25
+ #define Z_CHEMICAL_ELEMENT_PHOSPHORUS 15
26
+ #define Z_CHEMICAL_ELEMENT_SULFUR 16
27
+ #define Z_CHEMICAL_ELEMENT_CHLORINE 17
28
+ #define Z_CHEMICAL_ELEMENT_ARGON 18
29
+ #define Z_CHEMICAL_ELEMENT_POTASSIUM 19
30
+ #define Z_CHEMICAL_ELEMENT_CALCIUM 20
31
+ #define Z_CHEMICAL_ELEMENT_SCANDIUM 21
32
+ #define Z_CHEMICAL_ELEMENT_TITANIUM 22
33
+ #define Z_CHEMICAL_ELEMENT_VANADIUM 23
34
+ #define Z_CHEMICAL_ELEMENT_CHROMIUM 24
35
+ #define Z_CHEMICAL_ELEMENT_MANGANESE 25
36
+ #define Z_CHEMICAL_ELEMENT_IRON 26
37
+ #define Z_CHEMICAL_ELEMENT_COBALT 27
38
+ #define Z_CHEMICAL_ELEMENT_NICKEL 28
39
+ #define Z_CHEMICAL_ELEMENT_COPPER 29
40
+ #define Z_CHEMICAL_ELEMENT_ZINC 30
41
+ #define Z_CHEMICAL_ELEMENT_GALLIUM 31
42
+ #define Z_CHEMICAL_ELEMENT_GERMANIUM 32
43
+ #define Z_CHEMICAL_ELEMENT_ARSENIC 33
44
+ #define Z_CHEMICAL_ELEMENT_SELENIUM 34
45
+ #define Z_CHEMICAL_ELEMENT_BROMINE 35
46
+ #define Z_CHEMICAL_ELEMENT_KRYPTON 36
47
+ #define Z_CHEMICAL_ELEMENT_RUBIDIUM 37
48
+ #define Z_CHEMICAL_ELEMENT_STRONTIUM 38
49
+ #define Z_CHEMICAL_ELEMENT_YTTRIUM 39
50
+ #define Z_CHEMICAL_ELEMENT_ZIRCONIUM 40
51
+ #define Z_CHEMICAL_ELEMENT_NIOBIUM 41
52
+ #define Z_CHEMICAL_ELEMENT_MOLYBDENUM 42
53
+ #define Z_CHEMICAL_ELEMENT_TECHNETIUM 43
54
+ #define Z_CHEMICAL_ELEMENT_RUTHENIUM 44
55
+ #define Z_CHEMICAL_ELEMENT_RHODIUM 45
56
+ #define Z_CHEMICAL_ELEMENT_PALLADIUM 46
57
+ #define Z_CHEMICAL_ELEMENT_SILVER 47
58
+ #define Z_CHEMICAL_ELEMENT_CADMIUM 48
59
+ #define Z_CHEMICAL_ELEMENT_INDIUM 49
60
+ #define Z_CHEMICAL_ELEMENT_TIN 50
61
+ #define Z_CHEMICAL_ELEMENT_ANTIMONY 51
62
+ #define Z_CHEMICAL_ELEMENT_TELLURIUM 52
63
+ #define Z_CHEMICAL_ELEMENT_IODINE 53
64
+ #define Z_CHEMICAL_ELEMENT_XENON 54
65
+ #define Z_CHEMICAL_ELEMENT_CAESIUM 55
66
+ #define Z_CHEMICAL_ELEMENT_BARIUM 56
67
+ #define Z_CHEMICAL_ELEMENT_LANTHANUM 57
68
+ #define Z_CHEMICAL_ELEMENT_CERIUM 58
69
+ #define Z_CHEMICAL_ELEMENT_PRASEODYMIUM 59
70
+ #define Z_CHEMICAL_ELEMENT_NEODYMIUM 60
71
+ #define Z_CHEMICAL_ELEMENT_PROMETHIUM 61
72
+ #define Z_CHEMICAL_ELEMENT_SAMARIUM 62
73
+ #define Z_CHEMICAL_ELEMENT_EUROPIUM 63
74
+ #define Z_CHEMICAL_ELEMENT_GADOLINIUM 64
75
+ #define Z_CHEMICAL_ELEMENT_TERBIUM 65
76
+ #define Z_CHEMICAL_ELEMENT_DYSPROSIUM 66
77
+ #define Z_CHEMICAL_ELEMENT_HOLMIUM 67
78
+ #define Z_CHEMICAL_ELEMENT_ERBIUM 68
79
+ #define Z_CHEMICAL_ELEMENT_THULIUM 69
80
+ #define Z_CHEMICAL_ELEMENT_YTTERBIUM 70
81
+ #define Z_CHEMICAL_ELEMENT_LUTETIUM 71
82
+ #define Z_CHEMICAL_ELEMENT_HAFNIUM 72
83
+ #define Z_CHEMICAL_ELEMENT_TANTALUM 73
84
+ #define Z_CHEMICAL_ELEMENT_WOLFRAM 74
85
+ #define Z_CHEMICAL_ELEMENT_TUNGSTEN Z_CHEMICAL_ELEMENT_WOLFRAM
86
+ #define Z_CHEMICAL_ELEMENT_RHENIUM 75
87
+ #define Z_CHEMICAL_ELEMENT_OSMIUM 76
88
+ #define Z_CHEMICAL_ELEMENT_IRIDIUM 77
89
+ #define Z_CHEMICAL_ELEMENT_PLATINUM 78
90
+ #define Z_CHEMICAL_ELEMENT_GOLD 79
91
+ #define Z_CHEMICAL_ELEMENT_MERCURY 80
92
+ #define Z_CHEMICAL_ELEMENT_THALLIUM 81
93
+ #define Z_CHEMICAL_ELEMENT_LEAD 82
94
+ #define Z_CHEMICAL_ELEMENT_BISMUTH 83
95
+ #define Z_CHEMICAL_ELEMENT_POLONIUM 84
96
+ #define Z_CHEMICAL_ELEMENT_ASTATINE 85
97
+ #define Z_CHEMICAL_ELEMENT_RADON 86
98
+ #define Z_CHEMICAL_ELEMENT_FRANCIUM 87
99
+ #define Z_CHEMICAL_ELEMENT_RADIUM 88
100
+ #define Z_CHEMICAL_ELEMENT_ACTINIUM 89
101
+ #define Z_CHEMICAL_ELEMENT_THORIUM 90
102
+ #define Z_CHEMICAL_ELEMENT_PROTACTINIUM 91
103
+ #define Z_CHEMICAL_ELEMENT_URANIUM 92
104
+ #define Z_CHEMICAL_ELEMENT_NEPTUNIUM 93
105
+ #define Z_CHEMICAL_ELEMENT_PLUTONIUM 94
106
+ #define Z_CHEMICAL_ELEMENT_AMERICIUM 95
107
+ #define Z_CHEMICAL_ELEMENT_CURIUM 96
108
+ #define Z_CHEMICAL_ELEMENT_BERKELIUM 97
109
+ #define Z_CHEMICAL_ELEMENT_CALIFORNIUM 98
110
+ #define Z_CHEMICAL_ELEMENT_EINSTEINIUM 99
111
+ #define Z_CHEMICAL_ELEMENT_FERMIUM 100
112
+ #define Z_CHEMICAL_ELEMENT_MENDELEVIUM 101
113
+ #define Z_CHEMICAL_ELEMENT_NOBELIUM 102
114
+ #define Z_CHEMICAL_ELEMENT_LAWRENCIUM 103
115
+ #define Z_CHEMICAL_ELEMENT_RUTHERFORDIUM 104
116
+ #define Z_CHEMICAL_ELEMENT_DUBNIUM 105
117
+ #define Z_CHEMICAL_ELEMENT_SEABORGIUM 106
118
+ #define Z_CHEMICAL_ELEMENT_BOHRIUM 107
119
+ #define Z_CHEMICAL_ELEMENT_HASSIUM 108
120
+ #define Z_CHEMICAL_ELEMENT_MEITNERIUM 109
121
+ #define Z_CHEMICAL_ELEMENT_DARMSTADTIUM 110
122
+ #define Z_CHEMICAL_ELEMENT_ROENTGENIUM 111
123
+ #define Z_CHEMICAL_ELEMENT_COPERNICIUM 112
124
+ #define Z_CHEMICAL_ELEMENT_NIHONIUM 113
125
+ #define Z_CHEMICAL_ELEMENT_FLEROVIUM 114
126
+ #define Z_CHEMICAL_ELEMENT_MOSCOVIUM 115
127
+ #define Z_CHEMICAL_ELEMENT_LIVERMORIUM 116
128
+ #define Z_CHEMICAL_ELEMENT_TENNESSINE 117
129
+ #define Z_CHEMICAL_ELEMENT_OGANESSON 118
130
+
131
+ #define Z_KEY_BITS_CHEMICAL_ELEMENT 8
132
+ #define Z_KEY_LAST_CHEMICAL_ELEMENT Z_CHEMICAL_ELEMENT_OGANESSON
133
+
134
+ #define Z_CHEMICAL_ELEMENT_BLOCK_S 0
135
+ #define Z_CHEMICAL_ELEMENT_BLOCK_P 1
136
+ #define Z_CHEMICAL_ELEMENT_BLOCK_D 2
137
+ #define Z_CHEMICAL_ELEMENT_BLOCK_F 3
138
+
139
+ #define Z_KEY_BITS_CHEMICAL_ELEMENT_BLOCK 8
140
+ #define Z_KEY_LAST_CHEMICAL_ELEMENT_BLOCK Z_CHEMICAL_ELEMENT_BLOCK_F
141
+
142
+ #ifdef Z_ORDER_CHEMICAL_ELEMENT_CLASS_KEYS_HORIZONTALLY
143
+
144
+ # define Z_CHEMICAL_ELEMENT_CLASS_ALKALI_METAL 0
145
+ # define Z_CHEMICAL_ELEMENT_CLASS_ALKALINE_EARTH_METAL 1
146
+ # define Z_CHEMICAL_ELEMENT_CLASS_TRANSITION_METAL 2
147
+ # define Z_CHEMICAL_ELEMENT_CLASS_POOR_METAL 3
148
+ # define Z_CHEMICAL_ELEMENT_CLASS_METALLOID 4
149
+ # define Z_CHEMICAL_ELEMENT_CLASS_NON_METAL 5
150
+ # define Z_CHEMICAL_ELEMENT_CLASS_HALOGEN 6
151
+ # define Z_CHEMICAL_ELEMENT_CLASS_NOBLE_GAS 7
152
+ # define Z_CHEMICAL_ELEMENT_CLASS_LANTHANIDE 8
153
+ # define Z_CHEMICAL_ELEMENT_CLASS_ACTINIDE 9
154
+
155
+ #else
156
+
157
+ # define Z_CHEMICAL_ELEMENT_CLASS_NON_METAL 0
158
+ # define Z_CHEMICAL_ELEMENT_CLASS_NOBLE_GAS 1
159
+ # define Z_CHEMICAL_ELEMENT_CLASS_ALKALI_METAL 2
160
+ # define Z_CHEMICAL_ELEMENT_CLASS_ALKALINE_EARTH_METAL 3
161
+ # define Z_CHEMICAL_ELEMENT_CLASS_METALLOID 4
162
+ # define Z_CHEMICAL_ELEMENT_CLASS_HALOGEN 5
163
+ # define Z_CHEMICAL_ELEMENT_CLASS_POOR_METAL 6
164
+ # define Z_CHEMICAL_ELEMENT_CLASS_TRANSITION_METAL 7
165
+ # define Z_CHEMICAL_ELEMENT_CLASS_LANTHANIDE 8
166
+ # define Z_CHEMICAL_ELEMENT_CLASS_ACTINIDE 9
167
+
168
+ #endif
169
+
170
+ #define Z_KEY_BITS_CHEMICAL_ELEMENT_CLASS 8
171
+ #define Z_KEY_LAST_CHEMICAL_ELEMENT_CLASS Z_CHEMICAL_ELEMENT_CLASS_ACTINIDE
172
+
173
+ #define Z_CHEMICAL_ELEMENT_METAL_STATE_METAL 0
174
+ #define Z_CHEMICAL_ELEMENT_METAL_STATE_METALLOID 1
175
+ #define Z_CHEMICAL_ELEMENT_METAL_STATE_NON_METAL 2
176
+
177
+ #define Z_KEY_BITS_CHEMICAL_ELEMENT_METAL_STATE 8
178
+ #define Z_KEY_LAST_CHEMICAL_ELEMENT_METAL_STATE Z_CHEMICAL_ELEMENT_METAL_STATE_NON_METAL
179
+
180
+ #define Z_CHEMICAL_ELEMENT_GAS_PHASE_MONOATOMIC 0
181
+ #define Z_CHEMICAL_ELEMENT_GAS_PHASE_DIATOMIC 1
182
+
183
+ #define Z_KEY_BITS_CHEMICAL_ELEMENT_GAS_PHASE 8
184
+ #define Z_KEY_LAST_CHEMICAL_ELEMENT_GAS_PHASE Z_CHEMICAL_ELEMENT_GAS_PHASE_DIATOMIC
185
+
186
+ #define Z_CHEMICAL_ELEMENT_DECAY_MODE_BETA_DECAY 0
187
+ #define Z_CHEMICAL_ELEMENT_DECAY_MODE_ELECTRON_CAPTURE 1
188
+ #define Z_CHEMICAL_ELEMENT_DECAY_MODE_ALPHA_EMISSION 2
189
+ #define Z_CHEMICAL_ELEMENT_DECAY_MODE_BETA_PLUS_DECAY 3
190
+
191
+ #define Z_KEY_BITS_CHEMICAL_ELEMENT_DECAY_MODE 8
192
+ #define Z_KEY_LAST_CHEMICAL_ELEMENT_DECAY_MODE Z_CHEMICAL_ELEMENT_DECAY_MODE_BETA_PLUS_DECAY
193
+
194
+ #define Z_CHEMICAL_ELEMENT_ADIABATIC_INDEX_5_3 0
195
+ #define Z_CHEMICAL_ELEMENT_ADIABATIC_INDEX_7_5 1
196
+
197
+ #define Z_KEY_BITS_CHEMICAL_ELEMENT_ADIABATIC_INDEX 8
198
+ #define Z_KEY_LAST_CHEMICAL_ELEMENT_ADIABATIC_INDEX Z_CHEMICAL_ELEMENT_ADIABATIC_INDEX_7_5
199
+
200
+ #endif /* _Z_keys_science_chemistry_H_ */
@@ -0,0 +1,18 @@
1
+ /* Z Kit - keys/science/electricity.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_keys_science_electricity_H_
9
+ #define _Z_keys_science_electricity_H_
10
+
11
+ #define Z_ELECTRICAL_TYPE_CONDUCTOR 0
12
+ #define Z_ELECTRICAL_TYPE_SEMICONDUCTOR 1
13
+ #define Z_ELECTRICAL_TYPE_INSULATOR 2
14
+
15
+ #define Z_KEY_BITS_ELECTRICAL_TYPE 8
16
+ #define Z_KEY_LAST_ELECTRICAL_TYPE Z_ELECTRICAL_TYPE_INSULATOR
17
+
18
+ #endif /* _Z_keys_science_electricity_H_ */
@@ -0,0 +1,19 @@
1
+ /* Z Kit - keys/science/magnetism.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_keys_science_magnetism_H_
9
+ #define _Z_keys_science_magnetism_H_
10
+
11
+ #define Z_MAGNETIC_TYPE_DIAMAGNETIC 0
12
+ #define Z_MAGNETIC_TYPE_PARAMAGNETIC 1
13
+ #define Z_MAGNETIC_TYPE_ANTIFERROMAGNETIC 2
14
+ #define Z_MAGNETIC_TYPE_FERROMAGNETIC 3
15
+
16
+ #define Z_KEY_BITS_ELECTRICAL_TYPE 8
17
+ #define Z_KEY_LAST_MAGNETIC_TYPE Z_MAGNETIC_TYPE_FERROMAGNETIC
18
+
19
+ #endif /* _Z_keys_science_magnetism_H_ */
@@ -0,0 +1,69 @@
1
+ /* Z Kit - keys/status.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_keys_status_H_
9
+ #define _Z_keys_status_H_
10
+
11
+ #ifdef Z_OK
12
+ # undef Z_OK /* zlib */
13
+ #endif
14
+
15
+ #define Z_OK 0
16
+ #define Z_END 1
17
+ #define Z_UPDATED 2
18
+ #define Z_UNIMPLEMENTED 3
19
+
20
+ #define Z_ERROR_UNKNOWN -1
21
+ #define Z_ERROR_ALREADY_EXISTS -2
22
+ #define Z_ERROR_ALREADY_IN_USE -3
23
+ #define Z_ERROR_ALREADY_OPEN -4
24
+ #define Z_ERROR_ALREADY_RUNNING -5
25
+ #define Z_ERROR_BUSY -6
26
+ #define Z_ERROR_CLOSED -7
27
+ #define Z_ERROR_CLOSED_BY_PEER -8
28
+ #define Z_ERROR_EMPTY -9
29
+ #define Z_ERROR_EXCEPTION -10
30
+ #define Z_ERROR_FULL -11
31
+ #define Z_ERROR_LIMIT_REACHED -12
32
+ #define Z_ERROR_LOCKED -13
33
+ #define Z_ERROR_LOOP -14
34
+ #define Z_ERROR_INVALID_ADDRESS -15
35
+ #define Z_ERROR_INVALID_ARGUMENT -16
36
+ #define Z_ERROR_INVALID_DATA -17
37
+ #define Z_ERROR_INVALID_FORMAT -18
38
+ #define Z_ERROR_INVALID_INDEX -19
39
+ #define Z_ERROR_INVALID_INTERVAL -20
40
+ #define Z_ERROR_INVALID_IO -21
41
+ #define Z_ERROR_INVALID_PROTOCOL -22
42
+ #define Z_ERROR_INVALID_RANGE -23
43
+ #define Z_ERROR_INVALID_RATIO -24
44
+ #define Z_ERROR_INVALID_SIZE -25
45
+ #define Z_ERROR_INVALID_TYPE -26
46
+ #define Z_ERROR_INVALID_VALUE -27
47
+ #define Z_ERROR_NOT_AVAILABLE -28
48
+ #define Z_ERROR_NOT_ENOUGH_MEMORY -29
49
+ #define Z_ERROR_NOT_ENOUGH_SPACE -30
50
+ #define Z_ERROR_NOT_ENOUGH_RESOURCES -31
51
+ #define Z_ERROR_NOT_EXECUTABLE -32
52
+ #define Z_ERROR_NOT_FINALIZED -33
53
+ #define Z_ERROR_NOT_FOUND -34
54
+ #define Z_ERROR_NOT_INITIALIZED -35
55
+ #define Z_ERROR_NOT_READABLE -36
56
+ #define Z_ERROR_NOT_WRITABLE -37
57
+ #define Z_ERROR_NOT_SUPPORTED -38
58
+ #define Z_ERROR_RACE_CONDITION -39
59
+ #define Z_ERROR_REJECTED -40
60
+ #define Z_ERROR_STACK_OVERFLOW -41
61
+ #define Z_ERROR_STALLED -42
62
+ #define Z_ERROR_TERMINATED -43
63
+ #define Z_ERROR_TIME_OUT -44
64
+ #define Z_ERROR_TOO_BIG -45
65
+ #define Z_ERROR_TOO_SMALL -46
66
+ #define Z_ERROR_UNAUTHORIZED -47
67
+ #define Z_ERROR_UNREACHABLE -48
68
+
69
+ #endif /* _Z_keys_status_H_ */
@@ -0,0 +1,27 @@
1
+ /* Z Kit - keys/text.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_keys_allocation_H_
9
+ #define _Z_keys_allocation_H_
10
+
11
+ #define Z_TEXT_ALIGNMENT_CENTER 0
12
+ #define Z_TEXT_ALIGNMENT_LEFT 1
13
+ #define Z_TEXT_ALIGNMENT_RIGHT 2
14
+
15
+ #define Z_KEY_BITS_TEXT_ALIGNMENT 8
16
+ #define Z_KEY_LAST_TEXT_ALIGNMENT Z_TEXT_ALIGNMENT_RIGHT
17
+
18
+ #define Z_TEXT_LINE_BREAK_MODE_WORD_WRAP 0
19
+ #define Z_TEXT_LINE_BREAK_MODE_CLIP 1
20
+ #define Z_TEXT_LINE_BREAK_MODE_HEAD_TRUNCATION 2
21
+ #define Z_TEXT_LINE_BREAK_MODE_TAIL_TRUNCATION 3
22
+ #define Z_TEXT_LINE_BREAK_MODE_MIDDLE_TRUNCATION 4
23
+
24
+ #define Z_KEY_BITS_TEXT_LINE_BREAK_MODE 8
25
+ #define Z_KEY_LAST_TEXT_LINE_BREAK_MODE Z_TEXT_LINE_BREAK_MODE_MIDDLE_TRUNCATION
26
+
27
+ #endif /* _Z_keys_text_H_ */
@@ -0,0 +1,88 @@
1
+ /* Z Kit - keys/value.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_keys_value_H_
9
+ #define _Z_keys_value_H_
10
+
11
+ /* Standard C/C++ base types */
12
+
13
+ #define Z_VALUE_TYPE_POINTER 0
14
+ #define Z_VALUE_TYPE_CHAR 1 /* char */
15
+ #define Z_VALUE_TYPE_UCHAR 2 /* unsigned char */
16
+ #define Z_VALUE_TYPE_USHORT 3 /* unsigned short int */
17
+ #define Z_VALUE_TYPE_UINT 4 /* unsigned int */
18
+ #define Z_VALUE_TYPE_ULONG 5 /* unsigned long int */
19
+ #define Z_VALUE_TYPE_ULLONG 6 /* unsigned long long int */
20
+ #define Z_VALUE_TYPE_SCHAR 7 /* signed char */
21
+ #define Z_VALUE_TYPE_SSHORT 8 /* signed short int */
22
+ #define Z_VALUE_TYPE_SINT 9 /* signed int */
23
+ #define Z_VALUE_TYPE_SLONG 10 /* signed long int */
24
+ #define Z_VALUE_TYPE_SLLONG 11 /* signed long long int */
25
+ #define Z_VALUE_TYPE_FLOAT 12 /* float */
26
+ #define Z_VALUE_TYPE_DOUBLE 13 /* double */
27
+ #define Z_VALUE_TYPE_LDOUBLE 14 /* long double */
28
+ #define Z_VALUE_TYPE_BOOLEAN 15 /* (C) _Bool / (C++) bool */
29
+ #define Z_VALUE_TYPE_WCHAR 16 /* (C++) wchar_t */
30
+ #define Z_VALUE_TYPE_CHAR16 17 /* (C++) char16_t */
31
+ #define Z_VALUE_TYPE_CHAR32 18 /* (C++) char32_t */
32
+ #define Z_VALUE_TYPE_NULL_POINTER 19 /* (C++) decltype(nullptr) */
33
+ #define Z_VALUE_TYPE_UINT8 128
34
+ #define Z_VALUE_TYPE_SINT8 129
35
+ #define Z_VALUE_TYPE_UINT16 130 /* Base type in SILP64 data model only. */
36
+ #define Z_VALUE_TYPE_SINT16 131 /* Base type in SILP64 data model only. */
37
+ #define Z_VALUE_TYPE_UINT32 132 /* Base type in ILP64 and SILP64 data models only. */
38
+ #define Z_VALUE_TYPE_SINT32 133 /* Base type in ILP64 and SILP64 data models only. */
39
+ #define Z_VALUE_TYPE_UINT64 134
40
+ #define Z_VALUE_TYPE_SINT64 135
41
+ #define Z_VALUE_TYPE_UINT128 136
42
+ #define Z_VALUE_TYPE_SINT128 137
43
+ #define Z_VALUE_TYPE_FLOAT16 192
44
+ #define Z_VALUE_TYPE_FLOAT32 193
45
+ #define Z_VALUE_TYPE_FLOAT64 194
46
+ #define Z_VALUE_TYPE_FLOAT128 195
47
+ #define Z_VALUE_TYPE_FLOAT80_X87 196
48
+ #define Z_VALUE_TYPE_FLOAT96_X87 197
49
+ #define Z_VALUE_TYPE_FLOAT128_X87 198
50
+
51
+ #define Z_KEY_INDEX_VALUE_TYPE_FIXED_NATURAL 128
52
+ #define Z_KEY_INDEX_VALUE_TYPE_FIXED_INTEGER 160
53
+ #define Z_KEY_INDEX_VALUE_TYPE_FIXED_REAL 192
54
+ #define Z_KEY_BITS_VALUE_TYPE 8
55
+ #define Z_KEY_LAST_VALUE_TYPE Z_VALUE_TYPE_FLOAT128_X87
56
+
57
+ #define Z_INTEGER_FORMAT_1S_COMPLEMENT 0
58
+ #define Z_INTEGER_FORMAT_2S_COMPLEMENT 1
59
+
60
+ #define Z_KEY_BITS_INTEGER_FORMAT 8
61
+ #define Z_KEY_LAST_INTEGER_FORMAT Z_INTEGER_FORMAT_2S_COMPLEMENT
62
+
63
+ #define Z_VALUE_FORMAT_8BIT_NATURAL 1
64
+ #define Z_VALUE_FORMAT_16BIT_NATURAL 2
65
+ #define Z_VALUE_FORMAT_32BIT_NATURAL 3
66
+ #define Z_VALUE_FORMAT_64BIT_NATURAL 4
67
+ #define Z_VALUE_FORMAT_128BIT_NATURAL 5
68
+ #define Z_VALUE_FORMAT_8BIT_2S_COMPLEMENT_INTEGER 6
69
+ #define Z_VALUE_FORMAT_16BIT_2S_COMPLEMENT_INTEGER 7
70
+ #define Z_VALUE_FORMAT_32BIT_2S_COMPLEMENT_INTEGER 8
71
+ #define Z_VALUE_FORMAT_64BIT_2S_COMPLEMENT_INTEGER 9
72
+ #define Z_VALUE_FORMAT_128BIT_2S_COMPLEMENT_INTEGER 10
73
+ #define Z_VALUE_FORMAT_IEEE_754_BINARY16 11
74
+ #define Z_VALUE_FORMAT_IEEE_754_BINARY32 12
75
+ #define Z_VALUE_FORMAT_IEEE_754_BINARY64 13
76
+ #define Z_VALUE_FORMAT_IEEE_754_BINARY128 14
77
+ #define Z_VALUE_FORMAT_IEEE_754_BINARY256 15
78
+ #define Z_VALUE_FORMAT_IEEE_754_DECIMAL32 16
79
+ #define Z_VALUE_FORMAT_IEEE_754_DECIMAL64 17
80
+ #define Z_VALUE_FORMAT_IEEE_754_DECIMAL128 18
81
+ #define Z_VALUE_FORMAT_X87_BINARY80 19
82
+ #define Z_VALUE_FORMAT_X87_BINARY96 20
83
+ #define Z_VALUE_FORMAT_X87_BINARY128 21
84
+
85
+ #define Z_KEY_BITS_VALUE_FORMAT 8
86
+ #define Z_KEY_LAST_VALUE_FORMAT Z_VALUE_FORMAT_INTEL_FLOAT128
87
+
88
+ #endif /* _Z_keys_value_H_ */
@@ -0,0 +1,25 @@
1
+ /* Z Kit - macros/arguments.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_macros_arguments_H_
9
+ #define _Z_macros_arguments_H_
10
+
11
+ #include <Z/types/arguments.h>
12
+
13
+ #if Z_COMPILER_HAS(VAL)
14
+
15
+ # define Z_VAL_INITIALIZE Z_COMPILER_MACRO(VAL_INITIALIZE)
16
+ # define Z_VAL_FINALIZE Z_COMPILER_MACRO(VAL_FINALIZE )
17
+ # define Z_VAL_READ Z_COMPILER_MACRO(VAL_READ )
18
+
19
+ # if Z_COMPILER_HAS_MACRO(VAL_COPY)
20
+ # define Z_VAL_COPY Z_COMPILER_MACRO(VAL_COPY)
21
+ # endif
22
+
23
+ #endif
24
+
25
+ #endif /* _Z_macros_arguments_H_ */
@@ -0,0 +1,22 @@
1
+ /* Z Kit - macros/casting.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_macros_casting_H_
9
+ #define _Z_macros_casting_H_
10
+
11
+ #include <Z/inspection/language.h>
12
+
13
+ #if Z_LANGUAGE_HAS(C, ANONYMOUS_UNION ) && \
14
+ Z_LANGUAGE_HAS(C, COMPOUND_LITERAL ) && \
15
+ Z_LANGUAGE_HAS(C, DESIGNATED_INITIALIZER)
16
+
17
+ # define Z_CAST(to_type, from_type, structure) \
18
+ ((union {to_type to; from_type from;}){.from = structure}).to
19
+
20
+ #endif
21
+
22
+ #endif /* _Z_macros_casting_H_ */
@@ -0,0 +1,159 @@
1
+ /* Z Kit - macros/character.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_macros_character_H_
9
+ #define _Z_macros_character_H_
10
+
11
+ #include <Z/inspection/character set.h>
12
+
13
+ #if ('\0' - 1) > 0
14
+ # define Z_CHARACTER_IS_ASCII(c) \
15
+ ((c) <= 0x7F)
16
+ #else
17
+ # define Z_CHARACTER_IS_ASCII(c) \
18
+ ((c) >= 0x00 && (c) <= 0x7F)
19
+ #endif
20
+
21
+ #define Z_CHARACTER_IS_BASE_2_DIGIT(c) \
22
+ ((c) == '0' || (c) == '1')
23
+
24
+ #define Z_CHARACTER_IS_BLANK(c) \
25
+ ((c) == ' ' || (c) == '\t')
26
+
27
+ #if Z_CHARACTER_SET_IS_ASCII
28
+
29
+ # define Z_CHARACTER_IS_CONTROL(c) \
30
+ (((c) & 0xE0) == 0 || (c) == 0x7F)
31
+
32
+ # define Z_CHARACTER_IS_GRAPHICAL(c) \
33
+ ((c) >= '!' && (c) <= '~')
34
+
35
+ # define Z_CHARACTER_IS_PRINTABLE(c) \
36
+ ((c) >= ' ' && (c) <= '~')
37
+
38
+ #endif
39
+
40
+ #if Z_CHARACTER_SET_DIGITS_ARE_CONSECUTIVE
41
+
42
+ # define Z_CHARACTER_IS_BASE_8_DIGIT(c) \
43
+ ((c) >= '0' && (c) <= '7')
44
+
45
+ # define Z_CHARACTER_IS_BASE_10_DIGIT(c) \
46
+ ((c) >= '0' && (c) <= '9')
47
+
48
+ #else
49
+
50
+ # define Z_CHARACTER_IS_BASE_8_DIGIT(c) \
51
+ ((c) == '0' || (c) == '1' || (c) == '2' || \
52
+ (c) == '3' || (c) == '4' || (c) == '5' || \
53
+ (c) == '6' || (c) == '7')
54
+
55
+ # define Z_CHARACTER_IS_BASE_10_DIGIT(c) \
56
+ ((c) == '0' || (c) == '1' || (c) == '2' || \
57
+ (c) == '3' || (c) == '4' || (c) == '5' || \
58
+ (c) == '6' || (c) == '7' || (c) == '8' || \
59
+ (c) == '9')
60
+
61
+ #endif
62
+
63
+ #if Z_CHARACTER_SET_LOWERCASE_LETTERS_ARE_CONSECUTIVE
64
+
65
+ # define Z_CHARACTER_IS_BASE_16_LOWERCASE_LETTER(c) \
66
+ ((c) >= 'a' && (c) <= 'f')
67
+
68
+ # define Z_CHARACTER_IS_LOWERCASE_LETTER(c) \
69
+ ((c) >= 'a' && (c) <= 'z')
70
+
71
+ #else
72
+
73
+ # define Z_CHARACTER_IS_BASE_16_LOWERCASE_LETTER(c) \
74
+ ((c) == 'a' || (c) == 'b' || (c) == 'c' || \
75
+ (c) == 'd' || (c) == 'e' || (c) == 'f')
76
+
77
+ # define Z_CHARACTER_IS_LOWERCASE_LETTER(c) \
78
+ ((c) == 'a' || (c) == 'b' || (c) == 'c' || \
79
+ (c) == 'd' || (c) == 'e' || (c) == 'f' || \
80
+ (c) == 'g' || (c) == 'h' || (c) == 'i' || \
81
+ (c) == 'j' || (c) == 'k' || (c) == 'l' || \
82
+ (c) == 'm' || (c) == 'n' || (c) == 'o' || \
83
+ (c) == 'p' || (c) == 'q' || (c) == 'r' || \
84
+ (c) == 's' || (c) == 't' || (c) == 'u' || \
85
+ (c) == 'v' || (c) == 'y' || (c) == 'x' || \
86
+ (c) == 'z')
87
+
88
+ #endif
89
+
90
+ #if Z_CHARACTER_SET_UPPERCASE_LETTERS_ARE_CONSECUTIVE
91
+
92
+ # define Z_CHARACTER_IS_BASE_16_UPPERCASE_LETTER(c) \
93
+ ((c) >= 'A' && (c) <= 'F')
94
+
95
+ # define Z_CHARACTER_IS_UPPERCASE_LETTER(c) \
96
+ ((c) >= 'A' && (c) <= 'Z')
97
+
98
+ #else
99
+
100
+ # define Z_CHARACTER_IS_BASE_16_UPPERCASE_LETTER(c) \
101
+ ((c) == 'A' || (c) == 'B' || (c) == 'C' || \
102
+ (c) == 'D' || (c) == 'E' || (c) == 'F')
103
+
104
+ # define Z_CHARACTER_IS_UPPERCASE_LETTER(c) \
105
+ ((c) == 'A' || (c) == 'B' || (c) == 'C' || (c) == 'D' || \
106
+ (c) == 'E' || (c) == 'F' || (c) == 'G' || (c) == 'H' || \
107
+ (c) == 'I' || (c) == 'J' || (c) == 'K' || (c) == 'L' || \
108
+ (c) == 'M' || (c) == 'N' || (c) == 'O' || (c) == 'P' || \
109
+ (c) == 'Q' || (c) == 'R' || (c) == 'S' || (c) == 'T' || \
110
+ (c) == 'U' || (c) == 'V' || (c) == 'Y' || (c) == 'X' || \
111
+ (c) == 'Z')
112
+
113
+ #endif
114
+
115
+ #define Z_CHARACTER_IS_BASE_16_LOWERCASE_DIGIT(c) \
116
+ (Z_CHARACTER_IS_BASE_10_DIGIT (c) || \
117
+ Z_CHARACTER_IS_BASE_16_LOWERCASE_LETTER(c))
118
+
119
+ #define Z_CHARACTER_IS_BASE_16_UPPERCASE_DIGIT(c) \
120
+ (Z_CHARACTER_IS_BASE_10_DIGIT (c) || \
121
+ Z_CHARACTER_IS_BASE_16_UPPERCASE_LETTER(c))
122
+
123
+ #if Z_CHARACTER_SET_IS_ASCII
124
+
125
+ # define Z_CHARACTER_IS_BASE_16_DIGIT(c) \
126
+ (((c) >= '0' && (c) <= '9') || \
127
+ (((c) & 0xDF) >= 'A' && ((c) & 0xDF) <= 'F'))
128
+
129
+ # define Z_CHARACTER_IS_LETTER(c) \
130
+ (((c) & 0xDF) >= 'A' && ((c) & 0xDF) <= 'Z')
131
+
132
+ #else
133
+
134
+ # define Z_CHARACTER_IS_BASE_16_DIGIT(c) \
135
+ (Z_CHARACTER_IS_BASE_10_DIGIT (c) || \
136
+ Z_CHARACTER_IS_BASE_16_LOWERCASE_LETTER(c) || \
137
+ Z_CHARACTER_IS_BASE_16_UPPERCASE_LETTER(c))
138
+
139
+ # define Z_CHARACTER_IS_LETTER(c) \
140
+ (Z_CHARACTER_IS_LOWERCASE_LETTER(c) || \
141
+ Z_CHARACTER_IS_UPPERCASE_LETTER(c))
142
+
143
+ #endif
144
+
145
+ #if Z_CHARACTER_SET_UPPERCASE_LETTERS_ARE_CONSECUTIVE && \
146
+ Z_CHARACTER_SET_LOWERCASE_LETTERS_ARE_CONSECUTIVE
147
+
148
+ # define Z_CHARACTER_LOWERCASE(c) \
149
+ ((c) >= 'A' && (c) <= 'Z' ? (c) - 'A' + 'a' : (c))
150
+
151
+ # define Z_CHARACTER_UPPERCASE(c) \
152
+ ((c) >= 'a' && (c) <= 'z' ? (c) - 'a' + 'A' : (c))
153
+
154
+ #endif
155
+
156
+ #define Z_CHARACTER_IS_ALPHANUMERIC(c) \
157
+ (Z_CHARACTER_IS_BASE_10_DIGIT(c) || Z_CHARACTER_IS_LETTER(c))
158
+
159
+ #endif /* _Z_macros_character_H_ */
@@ -0,0 +1,14 @@
1
+ /* Z Kit - macros/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_macros_date_H_
9
+ #define _Z_macros_date_H_
10
+
11
+ #define Z_GREGORIAN_YEAR_IS_LEAP(year) \
12
+ !((year) % 100 ? (year) % 4 : (year) % 400)
13
+
14
+ #endif /* _Z_macros_date_H_ */