zemu 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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_ */