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,510 @@
1
+ /* Z Kit - hardware/bus/USB.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_hardware_bus_USB_H_
9
+ #define _Z_hardware_bus_USB_H_
10
+
11
+ /* MARK: - HID Device Usage Pages */
12
+
13
+ #define Z_USB_HID_USAGE_PAGE_UNDEFINED 0x00
14
+ #define Z_USB_HID_USAGE_PAGE_GENERIC_DESKTOP_CONTROLS 0x01
15
+ #define Z_USB_HID_USAGE_PAGE_SIMULATION_CONTROLS 0x02
16
+ #define Z_USB_HID_USAGE_PAGE_VR_CONTROLS 0x03
17
+ #define Z_USB_HID_USAGE_PAGE_SPORT_CONTROLS 0x04
18
+ #define Z_USB_HID_USAGE_PAGE_GAME_CONTROLS 0x05
19
+ #define Z_USB_HID_USAGE_PAGE_GENERIC_DEVICE_CONTROLS 0x06
20
+ #define Z_USB_HID_USAGE_PAGE_KEYBOARD_KEYPAD 0x07
21
+ #define Z_USB_HID_USAGE_PAGE_LEDS 0x08
22
+ #define Z_USB_HID_USAGE_PAGE_BUTTON 0x09
23
+ #define Z_USB_HID_USAGE_PAGE_ORDINAL 0x0A
24
+ #define Z_USB_HID_USAGE_PAGE_TELEPHONY 0x0B
25
+ #define Z_USB_HID_USAGE_PAGE_CONSUMER 0x0C
26
+ #define Z_USB_HID_USAGE_PAGE_DIGITIZER 0x0D
27
+ #define Z_USB_HID_USAGE_PAGE_RESERVED 0x0E
28
+ #define Z_USB_HID_USAGE_PAGE_PID 0x0F
29
+ #define Z_USB_HID_USAGE_PAGE_UNICODE 0x10
30
+ /* 11h-13h - Reserved */
31
+ #define Z_USB_HID_USAGE_PAGE_ALPHANUMERIC_DISPLAY 0x14
32
+ /* Reserved 0x15 - 0x3F */
33
+ #define Z_USB_HID_USAGE_PAGE_MEDICAL_INSTRUMENTS 0x40
34
+ /* 41h-7Fh - Reserved */
35
+ #define Z_USB_HID_USAGE_PAGE_MONITOR_0 0x80
36
+ #define Z_USB_HID_USAGE_PAGE_MONITOR_1 0x81
37
+ #define Z_USB_HID_USAGE_PAGE_MONITOR_2 0x82
38
+ #define Z_USB_HID_USAGE_PAGE_MONITOR_3 0x83
39
+ #define Z_USB_HID_USAGE_PAGE_POWER_0 0x84
40
+ #define Z_USB_HID_USAGE_PAGE_POWER_1 0x85
41
+ #define Z_USB_HID_USAGE_PAGE_POWER_2 0x86
42
+ #define Z_USB_HID_USAGE_PAGE_POWER_3 0x87
43
+ /* 88h-8Bh - Reserved */
44
+ #define Z_USB_HID_USAGE_PAGE_BAR_CODE_SCANNER 0x8C
45
+ #define Z_USB_HID_USAGE_PAGE_SCALE_PAGE 0x8D
46
+ #define Z_USB_HID_USAGE_PAGE_MSR_DEVICES 0x8E
47
+ #define Z_USB_HID_USAGE_PAGE_RESERVED_POINT_OF_SALE 0x8F
48
+ #define Z_USB_HID_USAGE_PAGE_CAMERA_CONTROL 0x90
49
+ #define Z_USB_HID_USAGE_PAGE_ARCADE 0x91
50
+ #define Z_USB_HID_USAGE_PAGE_VENDOR_DEFINED_START 0xFF00
51
+
52
+ /* MARK: - HID Usage Page 07h - Keyboard/Keypad */
53
+
54
+ #define Z_USB_KEY_CODE_KEYBOARD_ERROR_ROLL_OVER 0x01
55
+ #define Z_USB_KEY_CODE_KEYBOARD_POST_FAIL 0x02
56
+ #define Z_USB_KEY_CODE_KEYBOARD_ERROR_UNDEFINED 0x03
57
+ #define Z_USB_KEY_CODE_KEYBOARD_A 0x04
58
+ #define Z_USB_KEY_CODE_KEYBOARD_B 0x05
59
+ #define Z_USB_KEY_CODE_KEYBOARD_C 0x06
60
+ #define Z_USB_KEY_CODE_KEYBOARD_D 0x07
61
+ #define Z_USB_KEY_CODE_KEYBOARD_E 0x08
62
+ #define Z_USB_KEY_CODE_KEYBOARD_F 0x09
63
+ #define Z_USB_KEY_CODE_KEYBOARD_G 0x0A
64
+ #define Z_USB_KEY_CODE_KEYBOARD_H 0x0B
65
+ #define Z_USB_KEY_CODE_KEYBOARD_I 0x0C
66
+ #define Z_USB_KEY_CODE_KEYBOARD_J 0x0D
67
+ #define Z_USB_KEY_CODE_KEYBOARD_K 0x0E
68
+ #define Z_USB_KEY_CODE_KEYBOARD_L 0x0F
69
+ #define Z_USB_KEY_CODE_KEYBOARD_M 0x10
70
+ #define Z_USB_KEY_CODE_KEYBOARD_N 0x11
71
+ #define Z_USB_KEY_CODE_KEYBOARD_O 0x12
72
+ #define Z_USB_KEY_CODE_KEYBOARD_P 0x13
73
+ #define Z_USB_KEY_CODE_KEYBOARD_Q 0x14
74
+ #define Z_USB_KEY_CODE_KEYBOARD_R 0x15
75
+ #define Z_USB_KEY_CODE_KEYBOARD_S 0x16
76
+ #define Z_USB_KEY_CODE_KEYBOARD_T 0x17
77
+ #define Z_USB_KEY_CODE_KEYBOARD_U 0x18
78
+ #define Z_USB_KEY_CODE_KEYBOARD_V 0x19
79
+ #define Z_USB_KEY_CODE_KEYBOARD_W 0x1A
80
+ #define Z_USB_KEY_CODE_KEYBOARD_X 0x1B
81
+ #define Z_USB_KEY_CODE_KEYBOARD_Y 0x1C
82
+ #define Z_USB_KEY_CODE_KEYBOARD_Z 0x1D
83
+ #define Z_USB_KEY_CODE_KEYBOARD_1 0x1E
84
+ #define Z_USB_KEY_CODE_KEYBOARD_2 0x1F
85
+ #define Z_USB_KEY_CODE_KEYBOARD_3 0x20
86
+ #define Z_USB_KEY_CODE_KEYBOARD_4 0x21
87
+ #define Z_USB_KEY_CODE_KEYBOARD_5 0x22
88
+ #define Z_USB_KEY_CODE_KEYBOARD_6 0x23
89
+ #define Z_USB_KEY_CODE_KEYBOARD_7 0x24
90
+ #define Z_USB_KEY_CODE_KEYBOARD_8 0x25
91
+ #define Z_USB_KEY_CODE_KEYBOARD_9 0x26
92
+ #define Z_USB_KEY_CODE_KEYBOARD_0 0x27
93
+ #define Z_USB_KEY_CODE_KEYBOARD_RETURN 0x28
94
+ #define Z_USB_KEY_CODE_KEYBOARD_ESCAPE 0x29
95
+ #define Z_USB_KEY_CODE_KEYBOARD_BACKSPACE 0x2A
96
+ #define Z_USB_KEY_CODE_KEYBOARD_TAB 0x2B
97
+ #define Z_USB_KEY_CODE_KEYBOARD_SPACE 0x2C
98
+ #define Z_USB_KEY_CODE_KEYBOARD_HYPHEN_MINUS 0x2D
99
+ #define Z_USB_KEY_CODE_KEYBOARD_EQUALS_SIGN 0x2E
100
+ #define Z_USB_KEY_CODE_KEYBOARD_LEFT_SQUARE_BRACKET 0x2F
101
+ #define Z_USB_KEY_CODE_KEYBOARD_RIGHT_SQUARE_BRACKET 0x30
102
+ #define Z_USB_KEY_CODE_KEYBOARD_REVERSE_SOLIDUS 0x31
103
+ #define Z_USB_KEY_CODE_KEYBOARD_NON_US_NUMBER_SIGN 0x32
104
+ #define Z_USB_KEY_CODE_KEYBOARD_SEMICOLON 0x33
105
+ #define Z_USB_KEY_CODE_KEYBOARD_APOSTROPHE 0x34
106
+ #define Z_USB_KEY_CODE_KEYBOARD_GRAVE_ACCENT 0x35
107
+ #define Z_USB_KEY_CODE_KEYBOARD_COMMA 0x36
108
+ #define Z_USB_KEY_CODE_KEYBOARD_FULL_STOP 0x37
109
+ #define Z_USB_KEY_CODE_KEYBOARD_SOLIDUS 0x38
110
+ #define Z_USB_KEY_CODE_KEYBOARD_CAPS_LOCK 0x39
111
+ #define Z_USB_KEY_CODE_KEYBOARD_F1 0x3A
112
+ #define Z_USB_KEY_CODE_KEYBOARD_F2 0x3B
113
+ #define Z_USB_KEY_CODE_KEYBOARD_F3 0x3C
114
+ #define Z_USB_KEY_CODE_KEYBOARD_F4 0x3D
115
+ #define Z_USB_KEY_CODE_KEYBOARD_F5 0x3E
116
+ #define Z_USB_KEY_CODE_KEYBOARD_F6 0x3F
117
+ #define Z_USB_KEY_CODE_KEYBOARD_F7 0x40
118
+ #define Z_USB_KEY_CODE_KEYBOARD_F8 0x41
119
+ #define Z_USB_KEY_CODE_KEYBOARD_F9 0x42
120
+ #define Z_USB_KEY_CODE_KEYBOARD_F10 0x43
121
+ #define Z_USB_KEY_CODE_KEYBOARD_F11 0x44
122
+ #define Z_USB_KEY_CODE_KEYBOARD_F12 0x45
123
+ #define Z_USB_KEY_CODE_KEYBOARD_PRINT_SCREEN 0x46
124
+ #define Z_USB_KEY_CODE_KEYBOARD_SCROLL_LOCK 0x47
125
+ #define Z_USB_KEY_CODE_KEYBOARD_PAUSE 0x48
126
+ #define Z_USB_KEY_CODE_KEYBOARD_INSERT 0x49
127
+ #define Z_USB_KEY_CODE_KEYBOARD_HOME 0x4A
128
+ #define Z_USB_KEY_CODE_KEYBOARD_PAGE_UP 0x4B
129
+ #define Z_USB_KEY_CODE_KEYBOARD_DELETE 0x4C
130
+ #define Z_USB_KEY_CODE_KEYBOARD_END 0x4D
131
+ #define Z_USB_KEY_CODE_KEYBOARD_PAGE_DOWN 0x4E
132
+ #define Z_USB_KEY_CODE_KEYBOARD_RIGHT_ARROW 0x4F
133
+ #define Z_USB_KEY_CODE_KEYBOARD_LEFT_ARROW 0x50
134
+ #define Z_USB_KEY_CODE_KEYBOARD_DOWN_ARROW 0x51
135
+ #define Z_USB_KEY_CODE_KEYBOARD_UP_ARROW 0x52
136
+ #define Z_USB_KEY_CODE_KEYPAD_NUM_LOCK 0x53
137
+ #define Z_USB_KEY_CODE_KEYPAD_SOLIDUS 0x54
138
+ #define Z_USB_KEY_CODE_KEYPAD_ASTERISK 0x55
139
+ #define Z_USB_KEY_CODE_KEYPAD_HYPHEN_MINUS 0x56
140
+ #define Z_USB_KEY_CODE_KEYPAD_PLUS_SIGN 0x57
141
+ #define Z_USB_KEY_CODE_KEYPAD_ENTER 0x58
142
+ #define Z_USB_KEY_CODE_KEYPAD_1 0x59
143
+ #define Z_USB_KEY_CODE_KEYPAD_2 0x5A
144
+ #define Z_USB_KEY_CODE_KEYPAD_3 0x5B
145
+ #define Z_USB_KEY_CODE_KEYPAD_4 0x5C
146
+ #define Z_USB_KEY_CODE_KEYPAD_5 0x5D
147
+ #define Z_USB_KEY_CODE_KEYPAD_6 0x5E
148
+ #define Z_USB_KEY_CODE_KEYPAD_7 0x5F
149
+ #define Z_USB_KEY_CODE_KEYPAD_8 0x60
150
+ #define Z_USB_KEY_CODE_KEYPAD_9 0x61
151
+ #define Z_USB_KEY_CODE_KEYPAD_0 0x62
152
+ #define Z_USB_KEY_CODE_KEYPAD_DECIMAL_SEPARATOR 0x63
153
+ #define Z_USB_KEY_CODE_KEYBOARD_NON_US_REVERSE_SOLIDUS 0x64
154
+ #define Z_USB_KEY_CODE_KEYBOARD_APPLICATION 0x65
155
+ #define Z_USB_KEY_CODE_KEYBOARD_POWER 0x66
156
+ #define Z_USB_KEY_CODE_KEYPAD_EQUALS_SIGN 0x67
157
+ #define Z_USB_KEY_CODE_KEYBOARD_F13 0x68
158
+ #define Z_USB_KEY_CODE_KEYBOARD_F14 0x69
159
+ #define Z_USB_KEY_CODE_KEYBOARD_F15 0x6A
160
+ #define Z_USB_KEY_CODE_KEYBOARD_F16 0x6B
161
+ #define Z_USB_KEY_CODE_KEYBOARD_F17 0x6C
162
+ #define Z_USB_KEY_CODE_KEYBOARD_F18 0x6D
163
+ #define Z_USB_KEY_CODE_KEYBOARD_F19 0x6E
164
+ #define Z_USB_KEY_CODE_KEYBOARD_F20 0x6F
165
+ #define Z_USB_KEY_CODE_KEYBOARD_F21 0x70
166
+ #define Z_USB_KEY_CODE_KEYBOARD_F22 0x71
167
+ #define Z_USB_KEY_CODE_KEYBOARD_F23 0x72
168
+ #define Z_USB_KEY_CODE_KEYBOARD_F24 0x73
169
+ #define Z_USB_KEY_CODE_KEYBOARD_EXECUTE 0x74
170
+ #define Z_USB_KEY_CODE_KEYBOARD_HELP 0x75
171
+ #define Z_USB_KEY_CODE_KEYBOARD_MENU 0x76
172
+ #define Z_USB_KEY_CODE_KEYBOARD_SELECT 0x77
173
+ #define Z_USB_KEY_CODE_KEYBOARD_STOP 0x78
174
+ #define Z_USB_KEY_CODE_KEYBOARD_AGAIN 0x79
175
+ #define Z_USB_KEY_CODE_KEYBOARD_UNDO 0x7A
176
+ #define Z_USB_KEY_CODE_KEYBOARD_CUT 0x7B
177
+ #define Z_USB_KEY_CODE_KEYBOARD_COPY 0x7C
178
+ #define Z_USB_KEY_CODE_KEYBOARD_PASTE 0x7D
179
+ #define Z_USB_KEY_CODE_KEYBOARD_FIND 0x7E
180
+ #define Z_USB_KEY_CODE_KEYBOARD_MUTE 0x7F
181
+ #define Z_USB_KEY_CODE_KEYBOARD_VOLUME_UP 0x80
182
+ #define Z_USB_KEY_CODE_KEYBOARD_VOLUME_DOWN 0x81
183
+ #define Z_USB_KEY_CODE_KEYBOARD_LOCKING_CAPS_LOCK 0x82
184
+ #define Z_USB_KEY_CODE_KEYBOARD_LOCKING_NUM_LOCK 0x83
185
+ #define Z_USB_KEY_CODE_KEYBOARD_LOCKING_SCROLL_LOCK 0x84
186
+ #define Z_USB_KEY_CODE_KEYPAD_COMMA 0x85
187
+ #define Z_USB_KEY_CODE_AS_400_KEYPAD_EQUALS_SIGN 0x86 /* Used on AS/400 keyboards */
188
+ #define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_1 0x87
189
+ #define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_2 0x88
190
+ #define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_3 0x89
191
+ #define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_4 0x8A
192
+ #define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_5 0x8B
193
+ #define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_6 0x8C
194
+ #define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_7 0x8D
195
+ #define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_8 0x8E
196
+ #define Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_9 0x8F
197
+ #define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_1 0x90
198
+ #define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_2 0x91
199
+ #define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_3 0x92
200
+ #define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_4 0x93
201
+ #define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_5 0x94
202
+ #define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_6 0x95
203
+ #define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_7 0x96
204
+ #define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_8 0x97
205
+ #define Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_9 0x98
206
+ #define Z_USB_KEY_CODE_KEYBOARD_ALTERNATE_ERASE 0x99
207
+ #define Z_USB_KEY_CODE_KEYBOARD_SYS_REQ_ATTENTION 0x9A
208
+ #define Z_USB_KEY_CODE_KEYBOARD_CANCEL 0x9B
209
+ #define Z_USB_KEY_CODE_KEYBOARD_CLEAR 0x9C
210
+ #define Z_USB_KEY_CODE_KEYBOARD_PRIOR 0x9D
211
+ #define Z_USB_KEY_CODE_KEYBOARD_RETURN_2 0x9E /* Duplicated? */
212
+ #define Z_USB_KEY_CODE_KEYBOARD_SEPARATOR 0x9F
213
+ #define Z_USB_KEY_CODE_KEYBOARD_OUT 0xA0
214
+ #define Z_USB_KEY_CODE_KEYBOARD_OPER 0xA1
215
+ #define Z_USB_KEY_CODE_KEYBOARD_CLEAR_AGAIN 0xA2
216
+ #define Z_USB_KEY_CODE_KEYBOARD_CR_SEL_PROPS 0xA3
217
+ #define Z_USB_KEY_CODE_KEYBOARD_EX_SEL 0xA4
218
+ /* A5h-AFh - Reserved */
219
+ #define Z_USB_KEY_CODE_KEYPAD_00 0xB0
220
+ #define Z_USB_KEY_CODE_KEYPAD_000 0xB1
221
+ #define Z_USB_KEY_CODE_THOUSANDS_SEPARATOR 0xB2
222
+ #define Z_USB_KEY_CODE_DECIMAL_SEPARATOR 0xB3
223
+ #define Z_USB_KEY_CODE_CURRENCY_UNIT 0xB4
224
+ #define Z_USB_KEY_CODE_CURRENCY_SUBUNIT 0xB5
225
+ #define Z_USB_KEY_CODE_KEYPAD_LEFT_PARENTHESIS 0xB6
226
+ #define Z_USB_KEY_CODE_KEYPAD_RIGHT_PARENTHESIS 0xB7
227
+ #define Z_USB_KEY_CODE_KEYPAD_LEFT_CURLY_BRACKET 0xB8
228
+ #define Z_USB_KEY_CODE_KEYPAD_RIGHT_CURLY_BRACKET 0xB9
229
+ #define Z_USB_KEY_CODE_KEYPAD_TAB 0xBA
230
+ #define Z_USB_KEY_CODE_KEYPAD_BACKSPACE 0xBB
231
+ #define Z_USB_KEY_CODE_KEYPAD_A 0xBC
232
+ #define Z_USB_KEY_CODE_KEYPAD_B 0xBD
233
+ #define Z_USB_KEY_CODE_KEYPAD_C 0xBE
234
+ #define Z_USB_KEY_CODE_KEYPAD_D 0xBF
235
+ #define Z_USB_KEY_CODE_KEYPAD_E 0xC0
236
+ #define Z_USB_KEY_CODE_KEYPAD_F 0xC1
237
+ #define Z_USB_KEY_CODE_KEYPAD_XOR 0xC2
238
+ #define Z_USB_KEY_CODE_KEYPAD_CIRCUMFLEX_ACCENT 0xC3
239
+ #define Z_USB_KEY_CODE_KEYPAD_PERCENT_SIGN 0xC4
240
+ #define Z_USB_KEY_CODE_KEYPAD_LESS_THAN_SIGN 0xC5
241
+ #define Z_USB_KEY_CODE_KEYPAD_GREATER_THAN_SIGN 0xC6
242
+ #define Z_USB_KEY_CODE_KEYPAD_AMPERSAND 0xC7
243
+ #define Z_USB_KEY_CODE_KEYPAD_DOUBLE_AMPERSAND 0xC8
244
+ #define Z_USB_KEY_CODE_KEYPAD_VERTICAL_LINE 0xC9
245
+ #define Z_USB_KEY_CODE_KEYPAD_DOUBLE_VERTICAL_LINE 0xCA
246
+ #define Z_USB_KEY_CODE_KEYPAD_COLON 0xCB
247
+ #define Z_USB_KEY_CODE_KEYPAD_NUMBER_SIGN 0xCC
248
+ #define Z_USB_KEY_CODE_KEYPAD_SPACE 0xCD
249
+ #define Z_USB_KEY_CODE_KEYPAD_COMMERCIAL_AT 0xCE
250
+ #define Z_USB_KEY_CODE_KEYPAD_EXCLAMATION_MARK 0xCF
251
+ #define Z_USB_KEY_CODE_KEYPAD_MEMORY_STORE 0xD0
252
+ #define Z_USB_KEY_CODE_KEYPAD_MEMORY_RECALL 0xD1
253
+ #define Z_USB_KEY_CODE_KEYPAD_MEMORY_CLEAR 0xD2
254
+ #define Z_USB_KEY_CODE_KEYPAD_MEMORY_ADD 0xD3
255
+ #define Z_USB_KEY_CODE_KEYPAD_MEMORY_SUBTRACT 0xD4
256
+ #define Z_USB_KEY_CODE_KEYPAD_MEMORY_MULTIPLY 0xD5
257
+ #define Z_USB_KEY_CODE_KEYPAD_MEMORY_DIVIDE 0xD6
258
+ #define Z_USB_KEY_CODE_KEYPAD_PLUS_MINUS_SIGN 0xD7
259
+ #define Z_USB_KEY_CODE_KEYPAD_CLEAR 0xD8
260
+ #define Z_USB_KEY_CODE_KEYPAD_CLEAR_ENTRY 0xD9
261
+ #define Z_USB_KEY_CODE_KEYPAD_BINARY 0xDA
262
+ #define Z_USB_KEY_CODE_KEYPAD_OCTAL 0xDB
263
+ #define Z_USB_KEY_CODE_KEYPAD_DECIMAL 0xDC
264
+ #define Z_USB_KEY_CODE_KEYPAD_HEXADECIMAL 0xDD
265
+ /* DEh-DFh - Reserved */
266
+ #define Z_USB_KEY_CODE_KEYBOARD_LEFT_CONTROL 0xE0
267
+ #define Z_USB_KEY_CODE_KEYBOARD_LEFT_SHIFT 0xE1
268
+ #define Z_USB_KEY_CODE_KEYBOARD_LEFT_ALT 0xE2
269
+ #define Z_USB_KEY_CODE_KEYBOARD_LEFT_GUI 0xE3
270
+ #define Z_USB_KEY_CODE_KEYBOARD_RIGHT_CONTROL 0xE4
271
+ #define Z_USB_KEY_CODE_KEYBOARD_RIGHT_SHIFT 0xE5
272
+ #define Z_USB_KEY_CODE_KEYBOARD_RIGHT_ALT 0xE6
273
+ #define Z_USB_KEY_CODE_KEYBOARD_RIGHT_GUI 0xE7
274
+ /* E8h-FFFFh - Reserved */
275
+
276
+ #define Z_ARRAY_CONTENT_USB_KEY_CODE_TO_Z_KEY_CODE \
277
+ Z_KEY_CODE_INVALID, /* 0x00 - Unused */ \
278
+ Z_KEY_CODE_INVALID, /* 0x01 - Z_USB_KEY_CODE_KEYBOARD_ERROR_ROLL_OVER */ \
279
+ Z_KEY_CODE_INVALID, /* 0x02 - Z_USB_KEY_CODE_KEYBOARD_POST_FAIL */ \
280
+ Z_KEY_CODE_INVALID, /* 0x03 - Z_USB_KEY_CODE_KEYBOARD_ERROR_UNDEFINED */ \
281
+ Z_KEY_CODE_ANSI_A, /* 0x04 - Z_USB_KEY_CODE_KEYBOARD_A */ \
282
+ Z_KEY_CODE_ANSI_B, /* 0x05 - Z_USB_KEY_CODE_KEYBOARD_B */ \
283
+ Z_KEY_CODE_ANSI_C, /* 0x06 - Z_USB_KEY_CODE_KEYBOARD_C */ \
284
+ Z_KEY_CODE_ANSI_D, /* 0x07 - Z_USB_KEY_CODE_KEYBOARD_D */ \
285
+ Z_KEY_CODE_ANSI_E, /* 0x08 - Z_USB_KEY_CODE_KEYBOARD_E */ \
286
+ Z_KEY_CODE_ANSI_F, /* 0x09 - Z_USB_KEY_CODE_KEYBOARD_F */ \
287
+ Z_KEY_CODE_ANSI_G, /* 0x0A - Z_USB_KEY_CODE_KEYBOARD_G */ \
288
+ Z_KEY_CODE_ANSI_H, /* 0x0B - Z_USB_KEY_CODE_KEYBOARD_H */ \
289
+ Z_KEY_CODE_ANSI_I, /* 0x0C - Z_USB_KEY_CODE_KEYBOARD_I */ \
290
+ Z_KEY_CODE_ANSI_J, /* 0x0D - Z_USB_KEY_CODE_KEYBOARD_J */ \
291
+ Z_KEY_CODE_ANSI_K, /* 0x0E - Z_USB_KEY_CODE_KEYBOARD_K */ \
292
+ Z_KEY_CODE_ANSI_L, /* 0x0F - Z_USB_KEY_CODE_KEYBOARD_L */ \
293
+ Z_KEY_CODE_ANSI_M, /* 0x10 - Z_USB_KEY_CODE_KEYBOARD_M */ \
294
+ Z_KEY_CODE_ANSI_N, /* 0x11 - Z_USB_KEY_CODE_KEYBOARD_N */ \
295
+ Z_KEY_CODE_ANSI_O, /* 0x12 - Z_USB_KEY_CODE_KEYBOARD_O */ \
296
+ Z_KEY_CODE_ANSI_P, /* 0x13 - Z_USB_KEY_CODE_KEYBOARD_P */ \
297
+ Z_KEY_CODE_ANSI_Q, /* 0x14 - Z_USB_KEY_CODE_KEYBOARD_Q */ \
298
+ Z_KEY_CODE_ANSI_R, /* 0x15 - Z_USB_KEY_CODE_KEYBOARD_R */ \
299
+ Z_KEY_CODE_ANSI_S, /* 0x16 - Z_USB_KEY_CODE_KEYBOARD_S */ \
300
+ Z_KEY_CODE_ANSI_T, /* 0x17 - Z_USB_KEY_CODE_KEYBOARD_T */ \
301
+ Z_KEY_CODE_ANSI_U, /* 0x18 - Z_USB_KEY_CODE_KEYBOARD_U */ \
302
+ Z_KEY_CODE_ANSI_V, /* 0x19 - Z_USB_KEY_CODE_KEYBOARD_V */ \
303
+ Z_KEY_CODE_ANSI_W, /* 0x1A - Z_USB_KEY_CODE_KEYBOARD_W */ \
304
+ Z_KEY_CODE_ANSI_X, /* 0x1B - Z_USB_KEY_CODE_KEYBOARD_X */ \
305
+ Z_KEY_CODE_ANSI_Y, /* 0x1C - Z_USB_KEY_CODE_KEYBOARD_Y */ \
306
+ Z_KEY_CODE_ANSI_Z, /* 0x1D - Z_USB_KEY_CODE_KEYBOARD_Z */ \
307
+ Z_KEY_CODE_ANSI_1, /* 0x1E - Z_USB_KEY_CODE_KEYBOARD_1 */ \
308
+ Z_KEY_CODE_ANSI_2, /* 0x1F - Z_USB_KEY_CODE_KEYBOARD_2 */ \
309
+ Z_KEY_CODE_ANSI_3, /* 0x20 - Z_USB_KEY_CODE_KEYBOARD_3 */ \
310
+ Z_KEY_CODE_ANSI_4, /* 0x21 - Z_USB_KEY_CODE_KEYBOARD_4 */ \
311
+ Z_KEY_CODE_ANSI_5, /* 0x22 - Z_USB_KEY_CODE_KEYBOARD_5 */ \
312
+ Z_KEY_CODE_ANSI_6, /* 0x23 - Z_USB_KEY_CODE_KEYBOARD_6 */ \
313
+ Z_KEY_CODE_ANSI_7, /* 0x24 - Z_USB_KEY_CODE_KEYBOARD_7 */ \
314
+ Z_KEY_CODE_ANSI_8, /* 0x25 - Z_USB_KEY_CODE_KEYBOARD_8 */ \
315
+ Z_KEY_CODE_ANSI_9, /* 0x26 - Z_USB_KEY_CODE_KEYBOARD_9 */ \
316
+ Z_KEY_CODE_ANSI_0, /* 0x27 - Z_USB_KEY_CODE_KEYBOARD_0 */ \
317
+ Z_KEY_CODE_RETURN, /* 0x28 - Z_USB_KEY_CODE_KEYBOARD_RETURN */ \
318
+ Z_KEY_CODE_ESCAPE, /* 0x29 - Z_USB_KEY_CODE_KEYBOARD_ESCAPE */ \
319
+ Z_KEY_CODE_BACKSPACE, /* 0x2A - Z_USB_KEY_CODE_KEYBOARD_BACKSPACE */ \
320
+ Z_KEY_CODE_TAB, /* 0x2B - Z_USB_KEY_CODE_KEYBOARD_TAB */ \
321
+ Z_KEY_CODE_SPACE, /* 0x2C - Z_USB_KEY_CODE_KEYBOARD_SPACE */ \
322
+ Z_KEY_CODE_ANSI_HYPHEN_MINUS, /* 0x2D - Z_USB_KEY_CODE_KEYBOARD_HYPHEN_MINUS */ \
323
+ Z_KEY_CODE_ANSI_EQUALS_SIGN, /* 0x2E - Z_USB_KEY_CODE_KEYBOARD_EQUALS_SIGN */ \
324
+ Z_KEY_CODE_ANSI_LEFT_SQUARE_BRACKET, /* 0x2F - Z_USB_KEY_CODE_KEYBOARD_LEFT_SQUARE_BRACKET */ \
325
+ Z_KEY_CODE_ANSI_RIGHT_SQUARE_BRACKET, /* 0x30 - Z_USB_KEY_CODE_KEYBOARD_RIGHT_SQUARE_BRACKET */ \
326
+ Z_KEY_CODE_ANSI_REVERSE_SOLIDUS, /* 0x31 - Z_USB_KEY_CODE_KEYBOARD_REVERSE_SOLIDUS */ \
327
+ Z_KEY_CODE_INVALID, /* 0x32 - Z_USB_KEY_CODE_KEYBOARD_NON_US_NUMBER_SIGN */ \
328
+ Z_KEY_CODE_ANSI_SEMICOLON, /* 0x33 - Z_USB_KEY_CODE_KEYBOARD_SEMICOLON */ \
329
+ Z_KEY_CODE_ANSI_APOSTROPHE, /* 0x34 - Z_USB_KEY_CODE_KEYBOARD_APOSTROPHE */ \
330
+ Z_KEY_CODE_ANSI_GRAVE_ACCENT, /* 0x35 - Z_USB_KEY_CODE_KEYBOARD_GRAVE_ACCENT */ \
331
+ Z_KEY_CODE_ANSI_COMMA, /* 0x36 - Z_USB_KEY_CODE_KEYBOARD_COMMA */ \
332
+ Z_KEY_CODE_ANSI_FULL_STOP, /* 0x37 - Z_USB_KEY_CODE_KEYBOARD_FULL_STOP */ \
333
+ Z_KEY_CODE_ANSI_SOLIDUS, /* 0x38 - Z_USB_KEY_CODE_KEYBOARD_SOLIDUS */ \
334
+ Z_KEY_CODE_CAPS_LOCK, /* 0x39 - Z_USB_KEY_CODE_KEYBOARD_CAPS_LOCK */ \
335
+ Z_KEY_CODE_F1, /* 0x3A - Z_USB_KEY_CODE_KEYBOARD_F1 */ \
336
+ Z_KEY_CODE_F2, /* 0x3B - Z_USB_KEY_CODE_KEYBOARD_F2 */ \
337
+ Z_KEY_CODE_F3, /* 0x3C - Z_USB_KEY_CODE_KEYBOARD_F3 */ \
338
+ Z_KEY_CODE_F4, /* 0x3D - Z_USB_KEY_CODE_KEYBOARD_F4 */ \
339
+ Z_KEY_CODE_F5, /* 0x3E - Z_USB_KEY_CODE_KEYBOARD_F5 */ \
340
+ Z_KEY_CODE_F6, /* 0x3F - Z_USB_KEY_CODE_KEYBOARD_F6 */ \
341
+ Z_KEY_CODE_F7, /* 0x40 - Z_USB_KEY_CODE_KEYBOARD_F7 */ \
342
+ Z_KEY_CODE_F8, /* 0x41 - Z_USB_KEY_CODE_KEYBOARD_F8 */ \
343
+ Z_KEY_CODE_F9, /* 0x42 - Z_USB_KEY_CODE_KEYBOARD_F9 */ \
344
+ Z_KEY_CODE_F10, /* 0x43 - Z_USB_KEY_CODE_KEYBOARD_F10 */ \
345
+ Z_KEY_CODE_F11, /* 0x44 - Z_USB_KEY_CODE_KEYBOARD_F11 */ \
346
+ Z_KEY_CODE_F12, /* 0x45 - Z_USB_KEY_CODE_KEYBOARD_F12 */ \
347
+ Z_KEY_CODE_PRINT_SCREEN, /* 0x46 - Z_USB_KEY_CODE_KEYBOARD_PRINT_SCREEN */ \
348
+ Z_KEY_CODE_SCROLL_LOCK, /* 0x47 - Z_USB_KEY_CODE_KEYBOARD_SCROLL_LOCK */ \
349
+ Z_KEY_CODE_PAUSE, /* 0x48 - Z_USB_KEY_CODE_KEYBOARD_PAUSE */ \
350
+ Z_KEY_CODE_INSERT, /* 0x49 - Z_USB_KEY_CODE_KEYBOARD_INSERT */ \
351
+ Z_KEY_CODE_HOME, /* 0x4A - Z_USB_KEY_CODE_KEYBOARD_HOME */ \
352
+ Z_KEY_CODE_PAGE_UP, /* 0x4B - Z_USB_KEY_CODE_KEYBOARD_PAGE_UP */ \
353
+ Z_KEY_CODE_DELETE, /* 0x4C - Z_USB_KEY_CODE_KEYBOARD_DELETE */ \
354
+ Z_KEY_CODE_END, /* 0x4D - Z_USB_KEY_CODE_KEYBOARD_END */ \
355
+ Z_KEY_CODE_PAGE_DOWN, /* 0x4E - Z_USB_KEY_CODE_KEYBOARD_PAGE_DOWN */ \
356
+ Z_KEY_CODE_RIGHT, /* 0x4F - Z_USB_KEY_CODE_KEYBOARD_RIGHT_ARROW */ \
357
+ Z_KEY_CODE_LEFT, /* 0x50 - Z_USB_KEY_CODE_KEYBOARD_LEFT_ARROW */ \
358
+ Z_KEY_CODE_DOWN, /* 0x51 - Z_USB_KEY_CODE_KEYBOARD_DOWN_ARROW */ \
359
+ Z_KEY_CODE_UP, /* 0x52 - Z_USB_KEY_CODE_KEYBOARD_UP_ARROW */ \
360
+ Z_KEY_CODE_ANSI_KEYPAD_NUM_LOCK, /* 0x53 - Z_USB_KEY_CODE_KEYPAD_NUM_LOCK */ \
361
+ Z_KEY_CODE_ANSI_KEYPAD_SOLIDUS, /* 0x54 - Z_USB_KEY_CODE_KEYPAD_SOLIDUS */ \
362
+ Z_KEY_CODE_ANSI_KEYPAD_ASTERISK, /* 0x55 - Z_USB_KEY_CODE_KEYPAD_ASTERISK */ \
363
+ Z_KEY_CODE_ANSI_KEYPAD_HYPHEN_MINUS, /* 0x56 - Z_USB_KEY_CODE_KEYPAD_HYPHEN_MINUS */ \
364
+ Z_KEY_CODE_ANSI_KEYPAD_PLUS_SIGN, /* 0x57 - Z_USB_KEY_CODE_KEYPAD_PLUS_SIGN */ \
365
+ Z_KEY_CODE_ANSI_KEYPAD_ENTER, /* 0x58 - Z_USB_KEY_CODE_KEYPAD_ENTER */ \
366
+ Z_KEY_CODE_ANSI_KEYPAD_1, /* 0x59 - Z_USB_KEY_CODE_KEYPAD_1 */ \
367
+ Z_KEY_CODE_ANSI_KEYPAD_2, /* 0x5A - Z_USB_KEY_CODE_KEYPAD_2 */ \
368
+ Z_KEY_CODE_ANSI_KEYPAD_3, /* 0x5B - Z_USB_KEY_CODE_KEYPAD_3 */ \
369
+ Z_KEY_CODE_ANSI_KEYPAD_4, /* 0x5C - Z_USB_KEY_CODE_KEYPAD_4 */ \
370
+ Z_KEY_CODE_ANSI_KEYPAD_5, /* 0x5D - Z_USB_KEY_CODE_KEYPAD_5 */ \
371
+ Z_KEY_CODE_ANSI_KEYPAD_6, /* 0x5E - Z_USB_KEY_CODE_KEYPAD_6 */ \
372
+ Z_KEY_CODE_ANSI_KEYPAD_7, /* 0x5F - Z_USB_KEY_CODE_KEYPAD_7 */ \
373
+ Z_KEY_CODE_ANSI_KEYPAD_8, /* 0x60 - Z_USB_KEY_CODE_KEYPAD_8 */ \
374
+ Z_KEY_CODE_ANSI_KEYPAD_9, /* 0x61 - Z_USB_KEY_CODE_KEYPAD_9 */ \
375
+ Z_KEY_CODE_ANSI_KEYPAD_0, /* 0x62 - Z_USB_KEY_CODE_KEYPAD_0 */ \
376
+ Z_KEY_CODE_ANSI_KEYPAD_DECIMAL_SEPARATOR, /* 0x63 - Z_USB_KEY_CODE_KEYPAD_DECIMAL_SEPARATOR */ \
377
+ Z_KEY_CODE_ISO_SECTION, /* 0x64 - Z_USB_KEY_CODE_KEYBOARD_NON_US_REVERSE_SOLIDUS */ \
378
+ Z_KEY_CODE_APPLICATION, /* 0x65 - Z_USB_KEY_CODE_KEYBOARD_APPLICATION */ \
379
+ Z_KEY_CODE_INVALID, /* 0x66 - Z_USB_KEY_CODE_KEYBOARD_POWER */ \
380
+ Z_KEY_CODE_APPLE_ANSI_KEYPAD_EQUALS_SIGN, /* 0x67 - Z_USB_KEY_CODE_KEYPAD_EQUALS_SIGN */ \
381
+ Z_KEY_CODE_F13, /* 0x68 - Z_USB_KEY_CODE_KEYBOARD_F13 */ \
382
+ Z_KEY_CODE_F14, /* 0x69 - Z_USB_KEY_CODE_KEYBOARD_F14 */ \
383
+ Z_KEY_CODE_F15, /* 0x6A - Z_USB_KEY_CODE_KEYBOARD_F15 */ \
384
+ Z_KEY_CODE_F16, /* 0x6B - Z_USB_KEY_CODE_KEYBOARD_F16 */ \
385
+ Z_KEY_CODE_F17, /* 0x6C - Z_USB_KEY_CODE_KEYBOARD_F17 */ \
386
+ Z_KEY_CODE_F18, /* 0x6D - Z_USB_KEY_CODE_KEYBOARD_F18 */ \
387
+ Z_KEY_CODE_F19, /* 0x6E - Z_USB_KEY_CODE_KEYBOARD_F19 */ \
388
+ Z_KEY_CODE_F20, /* 0x6F - Z_USB_KEY_CODE_KEYBOARD_F20 */ \
389
+ Z_KEY_CODE_F21, /* 0x70 - Z_USB_KEY_CODE_KEYBOARD_F21 */ \
390
+ Z_KEY_CODE_F22, /* 0x71 - Z_USB_KEY_CODE_KEYBOARD_F22 */ \
391
+ Z_KEY_CODE_F23, /* 0x72 - Z_USB_KEY_CODE_KEYBOARD_F23 */ \
392
+ Z_KEY_CODE_F24, /* 0x73 - Z_USB_KEY_CODE_KEYBOARD_F24 */ \
393
+ Z_KEY_CODE_INVALID, /* 0x74 - Z_USB_KEY_CODE_KEYBOARD_EXECUTE */ \
394
+ Z_KEY_CODE_INVALID, /* 0x75 - Z_USB_KEY_CODE_KEYBOARD_HELP */ \
395
+ Z_KEY_CODE_INVALID, /* 0x76 - Z_USB_KEY_CODE_KEYBOARD_MENU */ \
396
+ Z_KEY_CODE_INVALID, /* 0x77 - Z_USB_KEY_CODE_KEYBOARD_SELECT */ \
397
+ Z_KEY_CODE_INVALID, /* 0x78 - Z_USB_KEY_CODE_KEYBOARD_STOP */ \
398
+ Z_KEY_CODE_INVALID, /* 0x79 - Z_USB_KEY_CODE_KEYBOARD_AGAIN */ \
399
+ Z_KEY_CODE_INVALID, /* 0x7A - Z_USB_KEY_CODE_KEYBOARD_UNDO */ \
400
+ Z_KEY_CODE_INVALID, /* 0x7B - Z_USB_KEY_CODE_KEYBOARD_CUT */ \
401
+ Z_KEY_CODE_INVALID, /* 0x7C - Z_USB_KEY_CODE_KEYBOARD_COPY */ \
402
+ Z_KEY_CODE_INVALID, /* 0x7D - Z_USB_KEY_CODE_KEYBOARD_PASTE */ \
403
+ Z_KEY_CODE_INVALID, /* 0x7E - Z_USB_KEY_CODE_KEYBOARD_FIND */ \
404
+ Z_KEY_CODE_MUTE, /* 0x7F - Z_USB_KEY_CODE_KEYBOARD_MUTE */ \
405
+ Z_KEY_CODE_VOLUME_UP, /* 0x80 - Z_USB_KEY_CODE_KEYBOARD_VOLUME_UP */ \
406
+ Z_KEY_CODE_VOLUME_DOWN, /* 0x81 - Z_USB_KEY_CODE_KEYBOARD_VOLUME_DOWN */ \
407
+ Z_KEY_CODE_INVALID, /* 0x82 - Z_USB_KEY_CODE_KEYBOARD_LOCKING_CAPS_LOCK */ \
408
+ Z_KEY_CODE_INVALID, /* 0x83 - Z_USB_KEY_CODE_KEYBOARD_LOCKING_NUM_LOCK */ \
409
+ Z_KEY_CODE_INVALID, /* 0x84 - Z_USB_KEY_CODE_KEYBOARD_LOCKING_SCROLL_LOCK */ \
410
+ Z_KEY_CODE_INVALID, /* 0x85 - Z_USB_KEY_CODE_KEYPAD_COMMA */ \
411
+ Z_KEY_CODE_INVALID, /* 0x86 - Z_USB_KEY_CODE_AS_400_KEYPAD_EQUALS_SIGN */ \
412
+ Z_KEY_CODE_INVALID, /* 0x87 - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_1 */ \
413
+ Z_KEY_CODE_INVALID, /* 0x88 - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_2 */ \
414
+ Z_KEY_CODE_INVALID, /* 0x89 - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_3 */ \
415
+ Z_KEY_CODE_INVALID, /* 0x8A - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_4 */ \
416
+ Z_KEY_CODE_INVALID, /* 0x8B - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_5 */ \
417
+ Z_KEY_CODE_INVALID, /* 0x8C - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_6 */ \
418
+ Z_KEY_CODE_INVALID, /* 0x8D - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_7 */ \
419
+ Z_KEY_CODE_INVALID, /* 0x8E - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_8 */ \
420
+ Z_KEY_CODE_INVALID, /* 0x8F - Z_USB_KEY_CODE_KEYBOARD_INTERNATIONAL_9 */ \
421
+ Z_KEY_CODE_INVALID, /* 0x90 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_1 */ \
422
+ Z_KEY_CODE_INVALID, /* 0x91 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_2 */ \
423
+ Z_KEY_CODE_INVALID, /* 0x92 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_3 */ \
424
+ Z_KEY_CODE_INVALID, /* 0x93 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_4 */ \
425
+ Z_KEY_CODE_INVALID, /* 0x94 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_5 */ \
426
+ Z_KEY_CODE_INVALID, /* 0x95 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_6 */ \
427
+ Z_KEY_CODE_INVALID, /* 0x96 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_7 */ \
428
+ Z_KEY_CODE_INVALID, /* 0x97 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_8 */ \
429
+ Z_KEY_CODE_INVALID, /* 0x98 - Z_USB_KEY_CODE_KEYBOARD_LANGUAGE_9 */ \
430
+ Z_KEY_CODE_INVALID, /* 0x99 - Z_USB_KEY_CODE_KEYBOARD_ALTERNATE_ERASE */ \
431
+ Z_KEY_CODE_INVALID, /* 0x9A - Z_USB_KEY_CODE_KEYBOARD_SYS_REQ_ATTENTION */ \
432
+ Z_KEY_CODE_INVALID, /* 0x9B - Z_USB_KEY_CODE_KEYBOARD_CANCEL */ \
433
+ Z_KEY_CODE_INVALID, /* 0x9C - Z_USB_KEY_CODE_KEYBOARD_CLEAR */ \
434
+ Z_KEY_CODE_INVALID, /* 0x9D - Z_USB_KEY_CODE_KEYBOARD_PRIOR */ \
435
+ Z_KEY_CODE_INVALID, /* 0x9E - Z_USB_KEY_CODE_KEYBOARD_RETURN_2 */ \
436
+ Z_KEY_CODE_INVALID, /* 0x9F - Z_USB_KEY_CODE_KEYBOARD_SEPARATOR */ \
437
+ Z_KEY_CODE_INVALID, /* 0xA0 - Z_USB_KEY_CODE_KEYBOARD_OUT */ \
438
+ Z_KEY_CODE_INVALID, /* 0xA1 - Z_USB_KEY_CODE_KEYBOARD_OPER */ \
439
+ Z_KEY_CODE_INVALID, /* 0xA2 - Z_USB_KEY_CODE_KEYBOARD_CLEAR_AGAIN */ \
440
+ Z_KEY_CODE_INVALID, /* 0xA3 - Z_USB_KEY_CODE_KEYBOARD_CR_SEL_PROPS */ \
441
+ Z_KEY_CODE_INVALID, /* 0xA4 - Z_USB_KEY_CODE_KEYBOARD_EX_SEL */ \
442
+ Z_KEY_CODE_INVALID, /* 0xA5 - Reserved */ \
443
+ Z_KEY_CODE_INVALID, /* 0xA6 - Reserved */ \
444
+ Z_KEY_CODE_INVALID, /* 0xA7 - Reserved */ \
445
+ Z_KEY_CODE_INVALID, /* 0xA8 - Reserved */ \
446
+ Z_KEY_CODE_INVALID, /* 0xA9 - Reserved */ \
447
+ Z_KEY_CODE_INVALID, /* 0xAA - Reserved */ \
448
+ Z_KEY_CODE_INVALID, /* 0xAB - Reserved */ \
449
+ Z_KEY_CODE_INVALID, /* 0xAC - Reserved */ \
450
+ Z_KEY_CODE_INVALID, /* 0xAD - Reserved */ \
451
+ Z_KEY_CODE_INVALID, /* 0xAE - Reserved */ \
452
+ Z_KEY_CODE_INVALID, /* 0xAF - Reserved */ \
453
+ Z_KEY_CODE_INVALID, /* 0xB0 - Z_USB_KEY_CODE_KEYPAD_00 */ \
454
+ Z_KEY_CODE_INVALID, /* 0xB1 - Z_USB_KEY_CODE_KEYPAD_000 */ \
455
+ Z_KEY_CODE_INVALID, /* 0xB2 - Z_USB_KEY_CODE_THOUSANDS_SEPARATOR */ \
456
+ Z_KEY_CODE_INVALID, /* 0xB3 - Z_USB_KEY_CODE_DECIMAL_SEPARATOR */ \
457
+ Z_KEY_CODE_INVALID, /* 0xB4 - Z_USB_KEY_CODE_CURRENCY_UNIT */ \
458
+ Z_KEY_CODE_INVALID, /* 0xB5 - Z_USB_KEY_CODE_CURRENCY_SUBUNIT */ \
459
+ Z_KEY_CODE_INVALID, /* 0xB6 - Z_USB_KEY_CODE_KEYPAD_LEFT_PARENTHESIS */ \
460
+ Z_KEY_CODE_INVALID, /* 0xB7 - Z_USB_KEY_CODE_KEYPAD_RIGHT_PARENTHESIS */ \
461
+ Z_KEY_CODE_INVALID, /* 0xB8 - Z_USB_KEY_CODE_KEYPAD_LEFT_CURLY_BRACKET */ \
462
+ Z_KEY_CODE_INVALID, /* 0xB9 - Z_USB_KEY_CODE_KEYPAD_RIGHT_CURLY_BRACKET */ \
463
+ Z_KEY_CODE_INVALID, /* 0xBA - Z_USB_KEY_CODE_KEYPAD_TAB */ \
464
+ Z_KEY_CODE_INVALID, /* 0xBB - Z_USB_KEY_CODE_KEYPAD_BACKSPACE */ \
465
+ Z_KEY_CODE_INVALID, /* 0xBC - Z_USB_KEY_CODE_KEYPAD_A */ \
466
+ Z_KEY_CODE_INVALID, /* 0xBD - Z_USB_KEY_CODE_KEYPAD_B */ \
467
+ Z_KEY_CODE_INVALID, /* 0xBE - Z_USB_KEY_CODE_KEYPAD_C */ \
468
+ Z_KEY_CODE_INVALID, /* 0xBF - Z_USB_KEY_CODE_KEYPAD_D */ \
469
+ Z_KEY_CODE_INVALID, /* 0xC0 - Z_USB_KEY_CODE_KEYPAD_E */ \
470
+ Z_KEY_CODE_INVALID, /* 0xC1 - Z_USB_KEY_CODE_KEYPAD_F */ \
471
+ Z_KEY_CODE_INVALID, /* 0xC2 - Z_USB_KEY_CODE_KEYPAD_XOR */ \
472
+ Z_KEY_CODE_INVALID, /* 0xC3 - Z_USB_KEY_CODE_KEYPAD_CIRCUMFLEX_ACCENT */ \
473
+ Z_KEY_CODE_INVALID, /* 0xC4 - Z_USB_KEY_CODE_KEYPAD_PERCENT_SIGN */ \
474
+ Z_KEY_CODE_INVALID, /* 0xC5 - Z_USB_KEY_CODE_KEYPAD_LESS_THAN_SIGN */ \
475
+ Z_KEY_CODE_INVALID, /* 0xC6 - Z_USB_KEY_CODE_KEYPAD_GREATER_THAN_SIGN */ \
476
+ Z_KEY_CODE_INVALID, /* 0xC7 - Z_USB_KEY_CODE_KEYPAD_AMPERSAND */ \
477
+ Z_KEY_CODE_INVALID, /* 0xC8 - Z_USB_KEY_CODE_KEYPAD_DOUBLE_AMPERSAND */ \
478
+ Z_KEY_CODE_INVALID, /* 0xC9 - Z_USB_KEY_CODE_KEYPAD_VERTICAL_LINE */ \
479
+ Z_KEY_CODE_INVALID, /* 0xCA - Z_USB_KEY_CODE_KEYPAD_DOUBLE_VERTICAL_LINE */ \
480
+ Z_KEY_CODE_INVALID, /* 0xCB - Z_USB_KEY_CODE_KEYPAD_COLON */ \
481
+ Z_KEY_CODE_INVALID, /* 0xCC - Z_USB_KEY_CODE_KEYPAD_NUMBER_SIGN */ \
482
+ Z_KEY_CODE_INVALID, /* 0xCD - Z_USB_KEY_CODE_KEYPAD_SPACE */ \
483
+ Z_KEY_CODE_INVALID, /* 0xCE - Z_USB_KEY_CODE_KEYPAD_COMMERCIAL_AT */ \
484
+ Z_KEY_CODE_INVALID, /* 0xCF - Z_USB_KEY_CODE_KEYPAD_EXCLAMATION_MARK */ \
485
+ Z_KEY_CODE_INVALID, /* 0xD0 - Z_USB_KEY_CODE_KEYPAD_MEMORY_STORE */ \
486
+ Z_KEY_CODE_INVALID, /* 0xD1 - Z_USB_KEY_CODE_KEYPAD_MEMORY_RECALL */ \
487
+ Z_KEY_CODE_INVALID, /* 0xD2 - Z_USB_KEY_CODE_KEYPAD_MEMORY_CLEAR */ \
488
+ Z_KEY_CODE_INVALID, /* 0xD3 - Z_USB_KEY_CODE_KEYPAD_MEMORY_ADD */ \
489
+ Z_KEY_CODE_INVALID, /* 0xD4 - Z_USB_KEY_CODE_KEYPAD_MEMORY_SUBTRACT */ \
490
+ Z_KEY_CODE_INVALID, /* 0xD5 - Z_USB_KEY_CODE_KEYPAD_MEMORY_MULTIPLY */ \
491
+ Z_KEY_CODE_INVALID, /* 0xD6 - Z_USB_KEY_CODE_KEYPAD_MEMORY_DIVIDE */ \
492
+ Z_KEY_CODE_INVALID, /* 0xD7 - Z_USB_KEY_CODE_KEYPAD_PLUS_MINUS_SIGN */ \
493
+ Z_KEY_CODE_INVALID, /* 0xD8 - Z_USB_KEY_CODE_KEYPAD_CLEAR */ \
494
+ Z_KEY_CODE_INVALID, /* 0xD9 - Z_USB_KEY_CODE_KEYPAD_CLEAR_ENTRY */ \
495
+ Z_KEY_CODE_INVALID, /* 0xDA - Z_USB_KEY_CODE_KEYPAD_BINARY */ \
496
+ Z_KEY_CODE_INVALID, /* 0xDB - Z_USB_KEY_CODE_KEYPAD_OCTAL */ \
497
+ Z_KEY_CODE_INVALID, /* 0xDC - Z_USB_KEY_CODE_KEYPAD_DECIMAL */ \
498
+ Z_KEY_CODE_INVALID, /* 0xDD - Z_USB_KEY_CODE_KEYPAD_HEXADECIMAL */ \
499
+ Z_KEY_CODE_INVALID, /* 0xDE - Reserved */ \
500
+ Z_KEY_CODE_INVALID, /* 0xDF - Reserved */ \
501
+ Z_KEY_CODE_LEFT_CONTROL, /* 0xE0 - Z_USB_KEY_CODE_KEYBOARD_LEFT_CONTROL */ \
502
+ Z_KEY_CODE_LEFT_SHIFT, /* 0xE1 - Z_USB_KEY_CODE_KEYBOARD_LEFT_SHIFT */ \
503
+ Z_KEY_CODE_LEFT_OPTION, /* 0xE2 - Z_USB_KEY_CODE_KEYBOARD_LEFT_ALT */ \
504
+ Z_KEY_CODE_LEFT_COMMAND, /* 0xE3 - Z_USB_KEY_CODE_KEYBOARD_LEFT_GUI */ \
505
+ Z_KEY_CODE_RIGHT_CONTROL, /* 0xE4 - Z_USB_KEY_CODE_KEYBOARD_RIGHT_CONTROL */ \
506
+ Z_KEY_CODE_RIGHT_SHIFT, /* 0xE5 - Z_USB_KEY_CODE_KEYBOARD_RIGHT_SHIFT */ \
507
+ Z_KEY_CODE_RIGHT_OPTION, /* 0xE6 - Z_USB_KEY_CODE_KEYBOARD_RIGHT_ALT */ \
508
+ Z_KEY_CODE_RIGHT_COMMAND /* 0xE7 - Z_USB_KEY_CODE_KEYBOARD_RIGHT_GUI */
509
+
510
+ #endif /* _Z_hardware_bus_USB_H_ */
@@ -0,0 +1,47 @@
1
+ /* Z Kit - hardware/machine/model/computer/ZX Spectrum/Inves Spectrum +.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
+ .------------------------------------.
9
+ | Vendor: Investronica |
10
+ | Released: 1986 |
11
+ | CPU: Zilog Z80-A @ 3.5469 MHz |
12
+ | ROM: 48K |
13
+ | RAM: 128K |
14
+ | Sound: Internal speaker |
15
+ '------------------------------------'
16
+
17
+ _____________________________ ___________
18
+ | . _ _ __ '''''''''''''''''''''''''''' |
19
+ | __/\__| |\/|/__\ |
20
+ |--------------------------------------------------------------------|
21
+ | Spectrum + |
22
+ |--.-----------------------------------------------------.-----------|
23
+ | |( )|( )|(1)|(2)|(3)|(4)|(5)|(6)|(7)|(1)|(1)|(1)|(BRK)| |
24
+ |--|-----------------------------------------------------|-----------|
25
+ | |(DEL)|(1)|(Q)|(W)|(E)|(R)|(T)|(Y)|(U)|(I)|(O)|(P)|.-.| |
26
+ |--|-------------------------------------------------|| ||-----------|
27
+ | |(EXT)|(ED)|(A)|(S)|(D)|(F)|(G)|(H)|(J)|(K)|(L)|(____'| |
28
+ |--|-----------------------------------------------------|-----------|
29
+ | |( /\ )|( )|(Z)|(X)|(C)|(V)|(B)|(N)|(M)|(.)|( /\ )| |
30
+ |--|-----------------------------------------------------|-----------|
31
+ | |( )|(;)|(")|(<)|(>)|(_______________)|(A)|(V)|(,)|(_)| |
32
+ |--'-----------------------------------------------------'-----------|
33
+ |____________________________________________________________________| */
34
+
35
+ #ifndef _Z_hardware_machine_model_ZX_Spectrum_Inves_Spectrum_Plus_H_
36
+ #define _Z_hardware_machine_model_ZX_Spectrum_Inves_Spectrum_Plus_H_
37
+
38
+ #define Z_INVES_SPECTRUM_PLUS_SIZE_MEMORY (1024 * 16 + 1024 * 48)
39
+ #define Z_INVES_SPECTRUM_PLUS_FIRMWARE_BASE_ADDRESS 0
40
+ #define Z_INVES_SPECTRUM_PLUS_SIZE_FIRMWARE (1024 * 16)
41
+
42
+ /* MARK: - Timmings */
43
+
44
+ #define Z_INVES_SPECTRUM_PLUS_MASTER_CLOCK_HZ 177345
45
+ #define Z_INVES_SPECTRUM_PLUS_CPU_HZ 3546900
46
+
47
+ #endif /* _Z_hardware_machine_model_ZX_Spectrum_Inves_Spectrum_Plus_H_ */
@@ -0,0 +1,13 @@
1
+ /* Z Kit - hardware/machine/model/computer/ZX Spectrum/Pentagon.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_hardware_machine_model_ZX_Spectrum_Pentagon_H_
9
+ #define _Z_hardware_machine_model_ZX_Spectrum_Pentagon_H_
10
+
11
+
12
+
13
+ #endif /* _Z_hardware_machine_model_ZX_Spectrum_Pentagon_H_ */
@@ -0,0 +1,13 @@
1
+ /* Z Kit - hardware/machine/model/computer/ZX Spectrum/Scorpion.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_hardware_machine_model_ZX_Spectrum_Scorpion_H_
9
+ #define _Z_hardware_machine_model_ZX_Spectrum_Scorpion_H_
10
+
11
+
12
+
13
+ #endif /* _Z_hardware_machine_model_ZX_Spectrum_Scorpion_H_ */