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,625 @@
1
+ /* Z Kit - hardware/VDC/Ricoh/RP2C0x.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
+ R/W -01-| \_/ |-40- VCC
10
+ D0 -02-| |-39- ALE
11
+ D1 -03-| _ |-38- AD0
12
+ D2 -04-| (_) |-37- AD1
13
+ D3 -05-| |-36- AD2
14
+ D4 -06-| |-35- AD3
15
+ D5 -07-| |-34- AD4
16
+ D6 -08-| |-33- AD5
17
+ D7 -09-| |-32- AD6
18
+ A2 -10-| |-31- AD7
19
+ A1 -11-| RP2C02 |-30- A8
20
+ A0 -12-| |-29- A9
21
+ /CS -13-| |-28- A10
22
+ EXT0 -14-| |-27- A11
23
+ EXT1 -15-| |-26- A12
24
+ EXT2 -16-| _ |-25- A13
25
+ EXT3 -17-| (_) |-24- /R
26
+ CLK -18-| |-23- /W
27
+ /VBL -19-| |-22- /SYNC
28
+ VEE -20-| |-21- VOUT
29
+ '-----------' */
30
+
31
+
32
+ /* .--------------------------.
33
+ | Default background color |
34
+ | .--------------------------.
35
+ | | Sprites with priority 1 |
36
+ | | .--------------------------.
37
+ | | | Background |
38
+ | | | .--------------------------.
39
+ | | | | Sprites with priority 0 |
40
+ '---| | | |
41
+ | | | | |
42
+ | '---| | |
43
+ | | | | |
44
+ | | '---| |
45
+ | | | | |
46
+ | | | '--------------------------'
47
+ | | | |
48
+ '---|---|---|---> Stored at 3F00h
49
+ | '---|---> The ones with priority = 1
50
+ | '---> The ones with priority = 0
51
+ '----------->
52
+
53
+
54
+
55
+ | Scanline | 341 |
56
+ | Frame | 89342 |
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+ Sprite Rendering
68
+
69
+ .--------.
70
+ | Sprite |
71
+ '--------'
72
+ || .------------------.
73
+ .------''-----. | Control Register |
74
+ |.-----------.| '------------------'
75
+ _||_ _||_ _||_
76
+ \ / \ / \ /
77
+ \/ \/ \/
78
+ .---------. .---------. .---------.
79
+ | Palette | | Pattern | | Pattern |
80
+ | | | index | | table |
81
+ |---------| '---------' '---------'
82
+ | 1 | 0 | || ||
83
+ '---------' |'-----------'|
84
+ | | '------..-----'
85
+ | | _||_
86
+ | | \ /
87
+ | | \/
88
+ | | .---------.
89
+ | | | Pattern |
90
+ | | '---------'
91
+ | | ||
92
+ | | .-----''-----.
93
+ | | |.----------.|
94
+ | | _||_ _||_
95
+ | | \ / \ /
96
+ | | \/ \/
97
+ | | .--------. .--------.
98
+ | | | Tile 0 | | Tile 1 |
99
+ | | '--------' '--------'
100
+ | | .------' |
101
+ | | | .--------------'
102
+ | | | |
103
+ v v v v
104
+ .---------------.
105
+ | 3 | 2 | 1 | 0 |
106
+ |---------------|
107
+ | Color Index |
108
+ | (4 bit) |
109
+ '---------------'
110
+ .------------.
111
+ | Name table |
112
+ '------------'
113
+ ||
114
+ |'---------------------.
115
+ |.--------------------.|
116
+ _||_ _||_
117
+ \ / \ /
118
+ \/ \/
119
+ .-----------------. .---------------.
120
+ | Attribute table | | Pattern table |
121
+ '-----------------' '---------------'
122
+ _||_ _||_
123
+ \ / \ /
124
+ \/ \/
125
+ .-----------. .----------.
126
+ | Attribute | | Pattern |
127
+ '-----------' '----------'
128
+ | | ||
129
+ | | .-----''-----.
130
+ | | |.----------.|
131
+ | | _||_ _||_
132
+ | | \ / \ /
133
+ | | \/ \/
134
+ | | .--------. .--------.
135
+ | | | Tile 0 | | Tile 1 |
136
+ .----' | '--------' '--------'
137
+ | .----' | |
138
+ | | .--------------' |
139
+ | | | .----------------------'
140
+ | | | |
141
+ v v v v
142
+ .---------------.
143
+ | 3 | 2 | 1 | 0 |
144
+ |---------------|
145
+ | Color Index |
146
+ | (4 bit) |
147
+ '---------------'
148
+
149
+
150
+
151
+
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+ <--- 4 bit --->
161
+
162
+
163
+
164
+
165
+
166
+ 1. Draw background
167
+ 2. Draw sprites
168
+
169
+
170
+
171
+ .--------------------------------.
172
+ | For each |
173
+ | Index from Name Table |
174
+ | and its asotiated |
175
+ | Attribute from Attribute Table |
176
+ '--------------------------------'
177
+ _| |_
178
+ \ /
179
+ \ /
180
+ \/
181
+
182
+
183
+
184
+ */
185
+
186
+ #ifndef _Z_hardware_VDC_Ricoh_RP2C0x_H_
187
+ #define _Z_hardware_VDC_Ricoh_RP2C0x_H_
188
+
189
+ #include <Z/types/base.h>
190
+
191
+ typedef struct {
192
+ zuint8 y;
193
+ zuint8 tile_index;
194
+ zuint8 attributes;
195
+ zuint8 x;
196
+ } ZRP2C0xSprite;
197
+
198
+ typedef struct {
199
+ /* Registers */
200
+ zuint8 control; /* Read / Write */
201
+ zuint8 mask; /* Read / Write */
202
+ zuint8 status; /* Read */
203
+ zuint8 oam_address; /* Write */
204
+ zuint8 oam_data; /* Read / Write */
205
+ zuint8 scroll; /* Write */
206
+ zuint8 address; /* Write */
207
+ zuint8 data; /* Read / Write */
208
+
209
+ /* On-Die Memory */
210
+ ZRP2C0xSprite oam[64]; /* Not accesible */
211
+ zuint8 palettes[28]; /* Not accesible */
212
+
213
+ } ZRP2C0xState;
214
+
215
+ #define Z_RP2C0X_STATE_REGISTER_OFFSET_CONTROL 0
216
+ #define Z_RP2C0X_STATE_REGISTER_OFFSET_MASK 1
217
+ #define Z_RP2C0X_STATE_REGISTER_OFFSET_STATUS 2
218
+ #define Z_RP2C0X_STATE_REGISTER_OFFSET_OAM_ADDRESS 3
219
+ #define Z_RP2C0X_STATE_REGISTER_OFFSET_OAM_DATA 4
220
+ #define Z_RP2C0X_STATE_REGISTER_OFFSET_SCROLL 5
221
+ #define Z_RP2C0X_STATE_REGISTER_OFFSET_ADDRESS 6
222
+ #define Z_RP2C0X_STATE_REGISTER_OFFSET_DATA 7
223
+
224
+ #define Z_RP2C0X_STATE_REGISTER_SIZE_CONTROL 1
225
+ #define Z_RP2C0X_STATE_REGISTER_SIZE_MASK 1
226
+ #define Z_RP2C0X_STATE_REGISTER_SIZE_STATUS 1
227
+ #define Z_RP2C0X_STATE_REGISTER_SIZE_OAM_ADDRESS 1
228
+ #define Z_RP2C0X_STATE_REGISTER_SIZE_OAM_DATA 1
229
+ #define Z_RP2C0X_STATE_REGISTER_SIZE_SCROLL 1
230
+ #define Z_RP2C0X_STATE_REGISTER_SIZE_ADDRESS 1
231
+ #define Z_RP2C0X_STATE_REGISTER_SIZE_DATA 1
232
+
233
+ /* Control Register
234
+ .-----------------.
235
+ | 7 6 5 4 3 2 1 0 |
236
+ '-|-|-|-|-|-|-\_/-'
237
+ | | | | | | '--> name table ---------------------------------------.
238
+ | | | | | '-----> address increment --------------. |
239
+ | | | | '-------> sprite patten table ---------. | |
240
+ | | | '---------> background pattern_table --. | | |
241
+ | | '-----------> use 8x16 sprites --------. | | | |
242
+ | '-------------> mode ------------------. | | | | |
243
+ '---------------> emit nmi on vblank --. | | | | | |
244
+ | | | | | | |
245
+ .-------------------------------------' | | | | | |
246
+ | .----------------------' | | | | |
247
+ | .------------|------------------------' | | | |
248
+ | | | .-------------' | | |
249
+ | | | | .-----------' | |
250
+ | | | | | | |
251
+ | | | | | | |
252
+ v v v v v v v
253
+ .---------. .------------. .-----------. .---------------. .------------.
254
+ | 0 = NO | | 0 = Master | | 0 = 0000h | | 0 = +1 (X++) | | 00 = 2000h |
255
+ | 1 = YES | | 1 = Slave | | 1 = 1000h | | 1 = +32 (Y++) | | 01 = 2400h |
256
+ '---------' '------------' '-----------' '---------------' | 10 = 2800h |
257
+ | 11 = 2C00h |
258
+ '------------' */
259
+
260
+ Z_DEFINE_STRICT_STRUCTURE (Z_BIT_FIELD(8, 7) (
261
+ zuint8 emit_nmi_on_vblank :2,
262
+ zuint8 mode :1,
263
+ zuint8 use_8x16_sprites :1,
264
+ zuint8 background_pattern_table :1,
265
+ zuint8 sprite_pattern_table :1,
266
+ zuint8 address_increment :1,
267
+ zuint8 name_table :1
268
+ )) RP2C0xControlRegister;
269
+
270
+
271
+ #define Z_RP2C0X_CONTROL_OPTION_NAMETABLE_0 0
272
+ #define Z_RP2C0X_CONTROL_OPTION_NAMETABLE_1 1
273
+ #define Z_RP2C0X_CONTROL_OPTION_NAMETABLE_2 2
274
+ #define Z_RP2C0X_CONTROL_OPTION_NAMETABLE_3 3
275
+
276
+
277
+ #define Z_RP2C0X_CONTROL_GET_NAME_TABLE(v) (0x2000 | ((((zuint16)(v)) & 3) << 10))
278
+ #define Z_RP2C0X_CONTROL_GET_ADDRESS_INCREMENT(v) (Z_BIT_2(v) ? 32 : 1)
279
+ #define Z_RP2C0X_CONTROL_GET_SPRITE_PATTERN_TABLE(v) Z_BIT_3(v)
280
+ #define Z_RP2C0X_CONTROL_GET_BACKGROUND_PATTERN_TABLE(v) Z_BIT_4(v)
281
+ #define Z_RP2C0X_CONTROL_GET_USE_8X16_SPRITES(v) Z_BIT_5(v)
282
+ #define Z_RP2C0X_CONTROL_GET_PPU_MODE(v) Z_BIT_6(v)
283
+ #define Z_RP2C0X_CONTROL_GET_EMIT_NMI_ON_VBLANK(v) Z_BIT_7(v)
284
+
285
+ /* Mask Register
286
+ .-----------------.
287
+ | 7 6 5 4 3 2 1 0 |
288
+ '-|-|-|-|-|-|-|-|-'
289
+ | | | | | | | '-> use_grayscale
290
+ | | | | | | '---> disable_background_clipping
291
+ | | | | | '-----> disable_sprite_clipping
292
+ | | | | '-------> enable_background
293
+ | | | '---------> enable_sprites
294
+ | | '-----------> intensify_red
295
+ | '-------------> intensify_green
296
+ '---------------> intensify_blue */
297
+
298
+ Z_DEFINE_STRICT_STRUCTURE (Z_BIT_FIELD(8, 8) (
299
+ zuint8 intensify_blue :1,
300
+ zuint8 intensify_green :1,
301
+ zuint8 intensify_red :1,
302
+ zuint8 enable_sprites :1,
303
+ zuint8 enable_background :1,
304
+ zuint8 disable_sprite_clipping :1,
305
+ zuint8 disable_background_clipping :1,
306
+ zuint8 use_grayscale :1
307
+ )) RP2C0xMaskRegister;
308
+
309
+ #define Z_RP2C0X_MASK_OPTION_USE_GRAYSCALE 1
310
+ #define Z_RP2C0X_MASK_OPTION_DISABLE_BACKGROUND_CLIPPING 2
311
+ #define Z_RP2C0X_MASK_OPTION_DISABLE_SPRITE_CLIPPING 4
312
+ #define Z_RP2C0X_MASK_OPTION_ENABLE_BACKGROUND 8
313
+ #define Z_RP2C0X_MASK_OPTION_ENABLE_SPRITES 16
314
+ #define Z_RP2C0X_MASK_OPTION_INTENSITY_RED 32
315
+ #define Z_RP2C0X_MASK_OPTION_INTENSITY_GREEN 64
316
+ #define Z_RP2C0X_MASK_OPTION_INTENSITY_BLUE 128
317
+
318
+ #define Z_RP2C0X_MASK_GET_USE_GRAYSCALE(v) Z_BIT_0(v)
319
+ #define Z_RP2C0X_MASK_GET_DISABLE_BACKGROUND_CLIPPING(v) Z_BIT_1(v)
320
+ #define Z_RP2C0X_MASK_GET_DISABLE_SPRITE_CLIPPING(v) Z_BIT_2(v)
321
+ #define Z_RP2C0X_MASK_GET_ENABLE_BACKGROUND(v) Z_BIT_3(v)
322
+ #define Z_RP2C0X_MASK_GET_ENABLE_SPRITES(v) Z_BIT_4(v)
323
+ #define Z_RP2C0X_MASK_GET_INTENSIFY_RED(v) Z_BIT_5(v)
324
+ #define Z_RP2C0X_MASK_GET_INTENSIFY_GREEN(v) Z_BIT_6(v)
325
+ #define Z_RP2C0X_MASK_GET_INTENSIFY_BLUE(v) Z_BIT_7(v)
326
+
327
+ /* Status Register
328
+ .-----------------.
329
+ | 7 6 5 4 3 2 1 0 |
330
+ '-|-|-|-\_______/-'
331
+ | | | '-----> unused
332
+ | | '-----------> sprite_overflow
333
+ | '-------------> sprite_hit
334
+ '---------------> vblank
335
+
336
+ Reading resets the 1st/2nd-write flipflop (used by register scroll and 2006h).
337
+ Reading resets Bit 7, can be used to acknowledge NMIs, Bit 7 is also automatically reset at the end of VBlank, so manual acknowledge is normally not required (unless one wants to free the NMI signal for external NMI inputs).
338
+
339
+ */
340
+
341
+ Z_DEFINE_STRICT_STRUCTURE (Z_BIT_FIELD(8, 4) (
342
+ zuint8 vblank :1,
343
+ zuint8 sprite_hit :1,
344
+ zuint8 sprite_overflow :1,
345
+ zuint8 unused :5
346
+ )) RP2C0xStatusRegister;
347
+
348
+
349
+ #define Z_RP2C0X_STATUS_GET_SPRITE_OVERFLOW(v) Z_BIT_5(v)
350
+ #define Z_RP2C0X_STATUS_GET_SPRITE_HIT(v) Z_BIT_6(v)
351
+ #define Z_RP2C0X_STATUS_GET_VBLANK(v) Z_BIT_7(v)
352
+
353
+ /* Sprite
354
+
355
+ Y Coordinate
356
+ .-----------------.
357
+ | 7 6 5 4 3 2 1 0 |
358
+ '-----------------'
359
+
360
+ Tile Index
361
+ .-----------------.
362
+ | 7 6 5 4 3 2 1 0 |
363
+ '-\___________/-|-'
364
+ | |
365
+ | '-> patern_table
366
+ '---------> pattern_index
367
+
368
+ Attributes
369
+ .-----------------.
370
+ | 7 6 5 4 3 2 1 0 |
371
+ '-|-|-|-\___/-\_/-'
372
+ | | | | '--> palette ----------------.
373
+ | | | '-------> Unused |
374
+ | | '-----------> priority -----------. |
375
+ | '-------------> horizontal_flip --. | |
376
+ '---------------> vertical_flip --. | | |
377
+ | | | |
378
+ .--------------------------------' | | |
379
+ | .------------------------------' | |
380
+ | | .--------------' |
381
+ | | | |
382
+ v v v v
383
+ .---------. .----------------------. .--------.
384
+ | 0 = NO | | 0 = over background | | 00 = 4 |
385
+ | 1 = YES | | 1 = under background | | 01 = 5 |
386
+ '---------' '----------------------' | 10 = 6 |
387
+ | 11 = 7 |
388
+ '--------'
389
+ .-------------------------------.
390
+ | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | X Coordinate
391
+ '-------------------------------' */
392
+
393
+ #define Z_RP2C0X_SPRITE_GET_X(p)
394
+ #define Z_RP2C0X_SPRITE_GET_Y(p)
395
+ #define Z_RP2C0X_SPRITE_GET_TILE_BANK(p)
396
+ #define Z_RP2C0X_SPRITE_GET_TILE_NUMBER(p)
397
+ #define Z_RP2C0X_SPRITE_GET_TILE_BANK(p)
398
+ #define Z_RP2C0X_SPRITE_GET_PALETTE(p)
399
+ #define Z_RP2C0X_SPRITE_GET_PRIORITY(P) ((p)->attributes & 4)
400
+ #define Z_RP2C0X_SPRITE_GET_HORIZONTAL_FLIP(p) ((p)->attributes & 2)
401
+ #define Z_RP2C0X_SPRITE_GET_VERTICAL_FLIP(p) ((p)->attributes & 1)
402
+
403
+ /* Palette
404
+ .-----------------.
405
+ | 7 6 5 4 3 2 1 0 |
406
+ '-\_/-\_/-\_____/-'
407
+ | | '----> hue
408
+ | '----------> value
409
+ '--------------> unused (0 when read) */
410
+
411
+ /* Color
412
+ .-----------------------------.
413
+ | Blue % | Green % | Red % |
414
+ .-----+---------+---------+---------|
415
+ | 001 | 74.3 | 91.5 | 123.9 |
416
+ | 010 | 88.2 | 108.6 | 79.4 |
417
+ | 011 | 65.3 | 98 | 101.9 |
418
+ | 100 | 127.7 | 102.6 | 90.5 |
419
+ | 101 | 97.9 | 90.8 | 102.3 |
420
+ | 110 | 100.1 | 98.7 | 74.1 |
421
+ | 111 | 75 | 75 | 75 |
422
+ '-----------------------------------' */
423
+
424
+ /* External Memory Structure
425
+ .------------------------------------------------.
426
+ | Address | Size | Content |
427
+ |-------------+-------+--------------------------|
428
+ | 0000 - 0FFF | 4096 | Pattern table #0 |
429
+ | 1000 - 1FFF | 4096 | Pattern table #1 |
430
+ |-------------+-------+--------------------------|
431
+ | 2000 - 23BF | 960 | Name table #0 |
432
+ | 23C0 - 23FF | 64 | Attribute table #0 |
433
+ | 2400 - 27BF | 960 | Name table #1 |
434
+ | 27C0 - 27FF | 64 | Attribute table #1 |
435
+ | 2800 - 2BBF | 960 | Name table #2 |
436
+ | 2BC0 - 2BFF | 64 | Attribute table #2 |
437
+ | 2C00 - 2FBF | 960 | Name table #3 |
438
+ | 2FC0 - 2FFF | 64 | Attribute table #3 |
439
+ |-------------+-------+--------------------------|
440
+ | 3000 - 3EFF | 3839 | Name Table Mirror *1 |
441
+ |-------------+-------+--------------------------|
442
+ | 3F00 | 1 | Default background color |
443
+ | 3F01 - 3F03 | 2 | Background palette #0 |
444
+ | 3F04 | 1 | Unused |
445
+ | 3F05 - 3F07 | 2 | Background palette #1 |
446
+ | 3F08 | 1 | Unused |
447
+ | 3F09 - 3F0B | 2 | Background palette #2 |
448
+ | 3F0C | 1 | Unused |
449
+ | 3F0D - 3F0F | 2 | Background palette #3 |
450
+ |-------------+-------+--------------------------|
451
+ | 3F10 | 1 | Mirror of 3F00h |
452
+ | 3F11 - 3F13 | 2 | Sprite palette #0 |
453
+ | 3F14 | 1 | Mirror of 3F04h |
454
+ | 3F15 - 3F17 | 2 | Sprite palette #1 |
455
+ | 3F18 | 1 | Mirror of 3F08h |
456
+ | 3F19 - 3F1B | 2 | Sprite palette #2 |
457
+ | 3F1C | 1 | Mirror of 3F0Ch |
458
+ | 3F1D - 3F1F | 2 | Sprite palette #3 |
459
+ |-------------+-------+--------------------------|
460
+ | 3F00 - 3FFF | 20 | Palette *2 |
461
+ | 4000 - FFFF | 49152 | Mirrors of Above *3 |
462
+ '------------------------------------------------'
463
+
464
+ Pattern Table:
465
+
466
+
467
+ Tile table: 256 tiles
468
+ Attribute table:
469
+
470
+
471
+ Name table:
472
+ Used to select tiles for the background. Each element is a tile index.
473
+
474
+ Attribute table:
475
+
476
+
477
+ */
478
+
479
+
480
+
481
+
482
+ typedef struct {
483
+ zuint indexes[32 * 30];
484
+ zuint attributes[];
485
+ } ZRP2C0xNameTable;
486
+
487
+
488
+ #define Z_RP2C0X_ADDRESS_PATTERN_TABLE_0 0x0000
489
+ #define Z_RP2C0X_ADDRESS_PATTERN_TABLE_1 0x1000
490
+ #define Z_RP2C0X_ADDRESS_NAME_TABLE_0 0x2000
491
+ #define Z_RP2C0X_ADDRESS_NAME_TABLE_1 0x2400
492
+ #define Z_RP2C0X_ADDRESS_NAME_TABLE_2 0x2800
493
+ #define Z_RP2C0X_ADDRESS_NAME_TABLE_3 0x2C00
494
+ #define Z_RP2C0X_ADDRESS_ATTRIBUTE_TABLE_0 0x23C0
495
+ #define Z_RP2C0X_ADDRESS_ATTRIBUTE_TABLE_1 0x27C0
496
+ #define Z_RP2C0X_ADDRESS_ATTRIBUTE_TABLE_2 0x2BC0
497
+ #define Z_RP2C0X_ADDRESS_ATTRIBUTE_TABLE_3 0x2FC0
498
+
499
+ #define Z_RP2C0X_ADDRESS_DEFAULT_BACKGROUND_COLOR 0x3F00
500
+ #define Z_RP2C0X_ADDRESS_BACKGROUND_PALETTE_0 0x3F01
501
+ #define Z_RP2C0X_ADDRESS_BACKGROUND_PALETTE_1 0x3F05
502
+ #define Z_RP2C0X_ADDRESS_BACKGROUND_PALETTE_2 0x3F09
503
+ #define Z_RP2C0X_ADDRESS_BACKGROUND_PALETTE_3 0x3F0D
504
+ #define Z_RP2C0X_ADDRESS_SPRITE_PALETTE_0 0x3F11
505
+ #define Z_RP2C0X_ADDRESS_SPRITE_PALETTE_1 0x3F15
506
+ #define Z_RP2C0X_ADDRESS_SPRITE_PALETTE_2 0x3F19
507
+ #define Z_RP2C0X_ADDRESS_SPRITE_PALETTE_3 0x3F1D
508
+
509
+ #define Z_RP2C0X_TILE_SIZE 8
510
+ #define Z_RP2C0X_PATTERN_SIZE Z_RP2C0X_TILE_SIZE * 2
511
+ #define Z_RP2C0X_PATTERN_TABLE_SIZE Z_RP2C0X_PATTERN_SIZE * 256
512
+ #define Z_RP2C0X_NAME_TABLE_SIZE Z_UINT8_SIZE * 32 * 30
513
+
514
+
515
+
516
+ /* Tile 8x8
517
+ <--------------- 8 bit -------------->
518
+ .---------------------------------------.
519
+ A | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
520
+ | |----+----+----+----+----+----+----+----|
521
+ | | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
522
+ | |----+----+----+----+----+----+----+----|
523
+ | | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
524
+ | |----+----+----+----+----+----+----+----|
525
+ | | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
526
+ 8 byte | |----+----+----+----+----+----+----+----|
527
+ | | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
528
+ | |----+----+----+----+----+----+----+----|
529
+ | | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
530
+ | |----+----+----+----+----+----+----+----|
531
+ | | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 |
532
+ | |----+----+----+----+----+----+----+----|
533
+ V | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
534
+ '---------------------------------------' */
535
+
536
+
537
+
538
+
539
+
540
+ /*
541
+
542
+
543
+
544
+
545
+
546
+
547
+
548
+
549
+ <----------------- 512 ----------------->
550
+
551
+ (0,0) (255,0) (256,0) (511,0)
552
+ +-------------+ +-------------+
553
+ |2000 20FF| |2000 20FF|
554
+ | | | |
555
+ | | | |
556
+ | | | |
557
+ |2300 23FF| |2300 23FF|
558
+ +-------------+ +-------------+
559
+ (0,240) (255,255) (0,240) (255,255)5)
560
+
561
+
562
+
563
+ */
564
+
565
+
566
+
567
+
568
+ #define Z_RP2C0X_ADDRESS_TILE_SET_0
569
+ #define Z_RP2C0X_ADDRESS_TILE_SET_1
570
+
571
+
572
+
573
+
574
+
575
+
576
+ typedef struct {
577
+ zuint8 tile_0[8];
578
+ zuint8 tile_1[8];
579
+ } ZRP2C0xPattern;
580
+
581
+ typedef struct {
582
+ } ZRP2C0xPatternTable;
583
+
584
+ /*
585
+ typedef struct {
586
+ } ZRP2C0xNameTable;*/
587
+
588
+
589
+ #define Z_RP2C0X_TILE_GET_PIXEL(tile, index) \
590
+ (tile[(index) / 8] >> (7 - ((index) % 8)) & 1)
591
+
592
+ #define Z_RP2C0X_PATTERN_GET_PIXEL(pattern, index) \
593
+ Z_RP2C0X_TILE_GET_PIXEL(pattern->plane_a, index) | \
594
+ (Z_RP2C0X_TILE_GET_PIXEL(pattern->plane_b, index) << 1)
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+
605
+
606
+
607
+ /*
608
+ typedef struct {
609
+
610
+ } ZRP2C0xNameTable;*/
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+
621
+ #define Z_RP2C0X_MASK_GET_GRAYSCALE_MODE
622
+
623
+
624
+
625
+ #endif /* _Z_hardware_VDC_Ricoh_RP2C0x_H_ */
@@ -0,0 +1,24 @@
1
+ /* Z Kit - hardware/bus/AGP.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_AGP_H_
9
+ #define _Z_hardware_bus_AGP_H_
10
+
11
+ #define Z_AGP_COMMAND_READ 0x0
12
+ #define Z_AGP_COMMAND_READ_HIGH_PRIORITY 0x1
13
+ /* Reserved 0x2 - 0x3 */
14
+ #define Z_AGP_COMMAND_WRITE 0x4
15
+ #define Z_AGP_COMMAND_WRITE_HIGH_PRIORITY 0x5
16
+ /* Reserved 0x6 - 0x7 */
17
+ #define Z_AGP_COMMAND_LONG_READ 0x8
18
+ #define Z_AGP_COMMAND_LONG_READ_HIGH_PRIORITY 0x9
19
+ #define Z_AGP_COMMAND_FLUSH 0xA
20
+ /* Reserved 0xB */
21
+ #define Z_AGP_COMMAND_FENCE 0xC
22
+ /* Reserved 0xD - 0xF */
23
+
24
+ #endif /* _Z_hardware_bus_AGP_H_ */