umicrobit.pas 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404
  1. unit uMicrobit;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils;
  6. type
  7. TMBImage = array[0..4, 0..4] of integer;
  8. const
  9. IMAGE_MAP: array[1..63] of TMBImage = (
  10. //IMAGE_HEART: TMBImage =
  11. ((0, 1, 0, 1, 0),
  12. (1, 1, 1, 1, 1),
  13. (1, 1, 1, 1, 1),
  14. (0, 1, 1, 1, 0),
  15. (0, 0, 1, 0, 0)),
  16. //IMAGE_HEART_SMALL: TMBImage =
  17. ((0, 0, 0, 0, 0),
  18. (0, 1, 0, 1, 0),
  19. (0, 1, 1, 1, 0),
  20. (0, 0, 1, 0, 0),
  21. (0, 0, 0, 0, 0)),
  22. // smilies
  23. //IMAGE_HAPPY: TMBImage = (
  24. ((0, 0, 0, 0, 0),
  25. (0, 1, 0, 1, 0),
  26. (0, 0, 0, 0, 0),
  27. (1, 0, 0, 0, 1),
  28. (0, 1, 1, 1, 0)),
  29. //IMAGE_SMILE: TMBImage = (
  30. ((0, 0, 0, 0, 0),
  31. (0, 0, 0, 0, 0),
  32. (0, 0, 0, 0, 0),
  33. (1, 0, 0, 0, 1),
  34. (0, 1, 1, 1, 0)),
  35. //IMAGE_SAD: TMBImage = (
  36. ((0, 0, 0, 0, 0),
  37. (0, 1, 0, 1, 0),
  38. (0, 0, 0, 0, 0),
  39. (0, 1, 1, 1, 0),
  40. (1, 0, 0, 0, 1)),
  41. //IMAGE_CONFUSED: TMBImage = (
  42. ((0, 0, 0, 0, 0),
  43. (0, 1, 0, 1, 0),
  44. (0, 0, 0, 0, 0),
  45. (0, 1, 0, 1, 0),
  46. (1, 0, 1, 0, 1)),
  47. //IMAGE_ANGRY: TMBImage = (
  48. ((1, 0, 0, 0, 1),
  49. (0, 1, 0, 1, 0),
  50. (0, 0, 0, 0, 0),
  51. (1, 1, 1, 1, 1),
  52. (1, 0, 1, 0, 1)),
  53. //IMAGE_ASLEEP: TMBImage = (
  54. ((0, 0, 0, 0, 0),
  55. (1, 1, 0, 1, 1),
  56. (0, 0, 0, 0, 0),
  57. (0, 1, 1, 1, 0),
  58. (0, 0, 0, 0, 0)),
  59. //IMAGE_SURPRISED: TMBImage = (
  60. ((0, 1, 0, 1, 0),
  61. (0, 0, 0, 0, 0),
  62. (0, 0, 1, 0, 0),
  63. (0, 1, 0, 1, 0),
  64. (0, 0, 1, 0, 0)),
  65. //IMAGE_SILLY: TMBImage = (
  66. ((1, 0, 0, 0, 1),
  67. (0, 0, 0, 0, 0),
  68. (1, 1, 1, 1, 1),
  69. (0, 0, 1, 0, 1),
  70. (0, 0, 1, 1, 1)),
  71. //IMAGE_FABULOUS: TMBImage = (
  72. ((1, 1, 1, 1, 1),
  73. (1, 1, 0, 1, 1),
  74. (0, 0, 0, 0, 0),
  75. (0, 1, 0, 1, 0),
  76. (0, 1, 1, 1, 0)),
  77. //IMAGE_MEH: TMBImage = (
  78. ((0, 1, 0, 1, 0),
  79. (0, 0, 0, 0, 0),
  80. (0, 0, 0, 1, 0),
  81. (0, 0, 1, 0, 0),
  82. (0, 1, 0, 0, 0)),
  83. // yes/no
  84. //IMAGE_YES: TMBImage = (
  85. ((0, 0, 0, 0, 0),
  86. (0, 0, 0, 0, 1),
  87. (0, 0, 0, 1, 0),
  88. (1, 0, 1, 0, 0),
  89. (0, 1, 0, 0, 0)),
  90. //IMAGE_NO: TMBImage = (
  91. ((1, 0, 0, 0, 1),
  92. (0, 1, 0, 1, 0),
  93. (0, 0, 1, 0, 0),
  94. (0, 1, 0, 1, 0),
  95. (1, 0, 0, 0, 1)),
  96. // clock hands
  97. //IMAGE_CLOCK12: TMBImage = (
  98. ((0, 0, 1, 0, 0),
  99. (0, 0, 1, 0, 0),
  100. (0, 0, 1, 0, 0),
  101. (0, 0, 0, 0, 0),
  102. (0, 0, 0, 0, 0)),
  103. //IMAGE_CLOCK1: TMBImage = (
  104. ((0, 0, 0, 1, 0),
  105. (0, 0, 0, 1, 0),
  106. (0, 0, 1, 0, 0),
  107. (0, 0, 0, 0, 0),
  108. (0, 0, 0, 0, 0)),
  109. //IMAGE_CLOCK2: TMBImage = (
  110. ((0, 0, 0, 0, 0),
  111. (0, 0, 0, 1, 1),
  112. (0, 0, 1, 0, 0),
  113. (0, 0, 0, 0, 0),
  114. (0, 0, 0, 0, 0)),
  115. //IMAGE_CLOCK3: TMBImage = (
  116. ((0, 0, 0, 0, 0),
  117. (0, 0, 0, 0, 0),
  118. (0, 0, 1, 1, 1),
  119. (0, 0, 0, 0, 0),
  120. (0, 0, 0, 0, 0)),
  121. //IMAGE_CLOCK4: TMBImage = (
  122. ((0, 0, 0, 0, 0),
  123. (0, 0, 0, 0, 0),
  124. (0, 0, 1, 0, 0),
  125. (0, 0, 0, 1, 1),
  126. (0, 0, 0, 0, 0)),
  127. //IMAGE_CLOCK5: TMBImage = (
  128. ((0, 0, 0, 0, 0),
  129. (0, 0, 0, 0, 0),
  130. (0, 0, 1, 0, 0),
  131. (0, 0, 0, 1, 0),
  132. (0, 0, 0, 1, 0)),
  133. //IMAGE_CLOCK6: TMBImage = (
  134. ((0, 0, 0, 0, 0),
  135. (0, 0, 0, 0, 0),
  136. (0, 0, 1, 0, 0),
  137. (0, 0, 1, 0, 0),
  138. (0, 0, 1, 0, 0)),
  139. //IMAGE_CLOCK7: TMBImage = (
  140. ((0, 0, 0, 0, 0),
  141. (0, 0, 0, 0, 0),
  142. (0, 0, 1, 0, 0),
  143. (0, 1, 0, 0, 0),
  144. (0, 1, 0, 0, 0)),
  145. //IMAGE_CLOCK8: TMBImage = (
  146. ((0, 0, 0, 0, 0),
  147. (0, 0, 0, 0, 0),
  148. (0, 0, 1, 0, 0),
  149. (1, 1, 0, 0, 0),
  150. (0, 0, 0, 0, 0)),
  151. //IMAGE_CLOCK9: TMBImage = (
  152. ((0, 0, 0, 0, 0),
  153. (0, 0, 0, 0, 0),
  154. (1, 1, 1, 0, 0),
  155. (0, 0, 0, 0, 0),
  156. (0, 0, 0, 0, 0)),
  157. //IMAGE_CLOCK10: TMBImage = (
  158. ((0, 0, 0, 0, 0),
  159. (1, 1, 0, 0, 0),
  160. (0, 0, 1, 0, 0),
  161. (0, 0, 0, 0, 0),
  162. (0, 0, 0, 0, 0)),
  163. //IMAGE_CLOCK11: TMBImage = (
  164. ((0, 1, 0, 0, 0),
  165. (0, 1, 0, 0, 0),
  166. (0, 0, 1, 0, 0),
  167. (0, 0, 0, 0, 0),
  168. (0, 0, 0, 0, 0)),
  169. // arrows
  170. //IMAGE_ARROW_N: TMBImage = (
  171. ((0, 0, 1, 0, 0),
  172. (0, 1, 1, 1, 0),
  173. (1, 0, 1, 0, 1),
  174. (0, 0, 1, 0, 0),
  175. (0, 0, 1, 0, 0)),
  176. //IMAGE_ARROW_NE: TMBImage = (
  177. ((0, 0, 1, 1, 1),
  178. (0, 0, 0, 1, 1),
  179. (0, 0, 1, 0, 1),
  180. (0, 1, 0, 0, 0),
  181. (1, 0, 0, 0, 0)),
  182. //IMAGE_ARROW_E: TMBImage = (
  183. ((0, 0, 1, 0, 0),
  184. (0, 0, 0, 1, 0),
  185. (1, 1, 1, 1, 1),
  186. (0, 0, 0, 1, 0),
  187. (0, 0, 1, 0, 0)),
  188. //IMAGE_ARROW_SE: TMBImage = (
  189. ((1, 0, 0, 0, 0),
  190. (0, 1, 0, 0, 0),
  191. (0, 0, 1, 0, 1),
  192. (0, 0, 0, 1, 1),
  193. (0, 0, 1, 1, 1)),
  194. //IMAGE_ARROW_S: TMBImage = (
  195. ((0, 0, 1, 0, 0),
  196. (0, 0, 1, 0, 0),
  197. (1, 0, 1, 0, 1),
  198. (0, 1, 1, 1, 0),
  199. (0, 0, 1, 0, 0)),
  200. //IMAGE_ARROW_SW: TMBImage = (
  201. ((0, 0, 0, 0, 1),
  202. (0, 0, 0, 1, 0),
  203. (1, 0, 1, 0, 0),
  204. (1, 1, 0, 0, 0),
  205. (1, 1, 1, 0, 0)),
  206. //IMAGE_ARROW_W: TMBImage = (
  207. ((0, 0, 1, 0, 0),
  208. (0, 1, 0, 0, 0),
  209. (1, 1, 1, 1, 1),
  210. (0, 1, 0, 0, 0),
  211. (0, 0, 1, 0, 0)),
  212. //IMAGE_ARROW_NW: TMBImage = (
  213. ((1, 1, 1, 0, 0),
  214. (1, 1, 0, 0, 0),
  215. (1, 0, 1, 0, 0),
  216. (0, 0, 0, 1, 0),
  217. (0, 0, 0, 0, 1)),
  218. // geometry
  219. //IMAGE_TRIANGLE: TMBImage = (
  220. ((0, 0, 0, 0, 0),
  221. (0, 0, 1, 0, 0),
  222. (0, 1, 0, 1, 0),
  223. (1, 1, 1, 1, 1),
  224. (0, 0, 0, 0, 0)),
  225. //IMAGE_TRIANGLE_LEFT: TMBImage = (
  226. ((1, 0, 0, 0, 0),
  227. (1, 1, 0, 0, 0),
  228. (1, 0, 1, 0, 0),
  229. (1, 0, 0, 1, 0),
  230. (1, 1, 1, 1, 1)),
  231. //IMAGE_CHESSBOARD: TMBImage = (
  232. ((0, 1, 0, 1, 0),
  233. (1, 0, 1, 0, 1),
  234. (0, 1, 0, 1, 0),
  235. (1, 0, 1, 0, 1),
  236. (0, 1, 0, 1, 0)),
  237. //IMAGE_DIAMOND: TMBImage = (
  238. ((0, 0, 1, 0, 0),
  239. (0, 1, 0, 1, 0),
  240. (1, 0, 0, 0, 1),
  241. (0, 1, 0, 1, 0),
  242. (0, 0, 1, 0, 0)),
  243. //IMAGE_DIAMOND_SMALL: TMBImage = (
  244. ((0, 0, 0, 0, 0),
  245. (0, 0, 1, 0, 0),
  246. (0, 1, 0, 1, 0),
  247. (0, 0, 1, 0, 0),
  248. (0, 0, 0, 0, 0)),
  249. //IMAGE_SQUARE: TMBImage = (
  250. ((1, 1, 1, 1, 1),
  251. (1, 0, 0, 0, 1),
  252. (1, 0, 0, 0, 1),
  253. (1, 0, 0, 0, 1),
  254. (1, 1, 1, 1, 1)),
  255. //IMAGE_SQUARE_SMALL: TMBImage = (
  256. ((0, 0, 0, 0, 0),
  257. (0, 1, 1, 1, 0),
  258. (0, 1, 0, 1, 0),
  259. (0, 1, 1, 1, 0),
  260. (0, 0, 0, 0, 0)),
  261. // animals
  262. //IMAGE_RABBIT: TMBImage = (
  263. ((1, 0, 1, 0, 0),
  264. (1, 0, 1, 0, 0),
  265. (1, 1, 1, 1, 0),
  266. (1, 1, 0, 1, 0),
  267. (1, 1, 1, 1, 0)),
  268. //IMAGE_COW: TMBImage = (
  269. ((1, 0, 0, 0, 1),
  270. (1, 0, 0, 0, 1),
  271. (1, 1, 1, 1, 1),
  272. (0, 1, 1, 1, 0),
  273. (0, 0, 1, 0, 0)),
  274. // musical notes
  275. //IMAGE_MUSIC_CROTCHET: TMBImage = (
  276. ((0, 0, 1, 0, 0),
  277. (0, 0, 1, 0, 0),
  278. (0, 0, 1, 0, 0),
  279. (1, 1, 1, 0, 0),
  280. (1, 1, 1, 0, 0)),
  281. //IMAGE_MUSIC_QUAVER: TMBImage = (
  282. ((0, 0, 1, 0, 0),
  283. (0, 0, 1, 1, 0),
  284. (0, 0, 1, 0, 1),
  285. (1, 1, 1, 0, 0),
  286. (1, 1, 1, 0, 0)),
  287. //IMAGE_MUSIC_QUAVERS: TMBImage = (
  288. ((0, 1, 1, 1, 1),
  289. (0, 1, 0, 0, 1),
  290. (0, 1, 0, 0, 1),
  291. (1, 1, 0, 1, 1),
  292. (1, 1, 0, 1, 1)),
  293. // other icons
  294. //IMAGE_PITCHFORK: TMBImage = (
  295. ((1, 0, 1, 0, 1),
  296. (1, 0, 1, 0, 1),
  297. (1, 1, 1, 1, 1),
  298. (0, 0, 1, 0, 0),
  299. (0, 0, 1, 0, 0)),
  300. //IMAGE_XMAS: TMBImage = (
  301. ((0, 0, 1, 0, 0),
  302. (0, 1, 1, 1, 0),
  303. (0, 0, 1, 0, 0),
  304. (0, 1, 1, 1, 0),
  305. (1, 1, 1, 1, 1)),
  306. //IMAGE_PACMAN: TMBImage = (
  307. ((0, 1, 1, 1, 1),
  308. (1, 1, 0, 1, 0),
  309. (1, 1, 1, 0, 0),
  310. (1, 1, 1, 1, 0),
  311. (0, 1, 1, 1, 1)),
  312. //IMAGE_TARGET: TMBImage = (
  313. ((0, 0, 1, 0, 0),
  314. (0, 1, 1, 1, 0),
  315. (1, 1, 0, 1, 1),
  316. (0, 1, 1, 1, 0),
  317. (0, 0, 1, 0, 0)),
  318. //IMAGE_SHIRT: TMBImage = (
  319. ((1, 1, 0, 1, 1),
  320. (1, 1, 1, 1, 1),
  321. (0, 1, 1, 1, 0),
  322. (0, 1, 1, 1, 0),
  323. (0, 1, 1, 1, 0)),
  324. //IMAGE_ROLLERSKATE: TMBImage = (
  325. ((0, 0, 0, 1, 1),
  326. (0, 0, 0, 1, 1),
  327. (1, 1, 1, 1, 1),
  328. (1, 1, 1, 1, 1),
  329. (0, 1, 0, 1, 0)),
  330. //IMAGE_DUCK: TMBImage = (
  331. ((0, 1, 1, 0, 0),
  332. (1, 1, 1, 0, 0),
  333. (0, 1, 1, 1, 1),
  334. (0, 1, 1, 1, 0),
  335. (0, 0, 0, 0, 0)),
  336. //IMAGE_HOUSE: TMBImage = (
  337. ((0, 0, 1, 0, 0),
  338. (0, 1, 1, 1, 0),
  339. (1, 1, 1, 1, 1),
  340. (0, 1, 1, 1, 0),
  341. (0, 1, 0, 1, 0)),
  342. //IMAGE_TORTOISE: TMBImage = (
  343. ((0, 0, 0, 0, 0),
  344. (0, 1, 1, 1, 0),
  345. (1, 1, 1, 1, 1),
  346. (0, 1, 0, 1, 0),
  347. (0, 0, 0, 0, 0)),
  348. //IMAGE_BUTTERFLY: TMBImage = (
  349. ((1, 1, 0, 1, 1),
  350. (1, 1, 1, 1, 1),
  351. (0, 0, 1, 0, 0),
  352. (1, 1, 1, 1, 1),
  353. (1, 1, 0, 1, 1)),
  354. //IMAGE_STICKFIGURE: TMBImage = (
  355. ((0, 0, 1, 0, 0),
  356. (1, 1, 1, 1, 1),
  357. (0, 0, 1, 0, 0),
  358. (0, 1, 0, 1, 0),
  359. (1, 0, 0, 0, 1)),
  360. //IMAGE_GHOST: TMBImage = (
  361. ((1, 1, 1, 1, 1),
  362. (1, 0, 1, 0, 1),
  363. (1, 1, 1, 1, 1),
  364. (1, 1, 1, 1, 1),
  365. (1, 0, 1, 0, 1)),
  366. //IMAGE_SWORD: TMBImage = (
  367. ((0, 0, 1, 0, 0),
  368. (0, 0, 1, 0, 0),
  369. (0, 0, 1, 0, 0),
  370. (0, 1, 1, 1, 0),
  371. (0, 0, 1, 0, 0)),
  372. //IMAGE_GIRAFFE: TMBImage = (
  373. ((1, 1, 0, 0, 0),
  374. (0, 1, 0, 0, 0),
  375. (0, 1, 0, 0, 0),
  376. (0, 1, 1, 1, 0),
  377. (0, 1, 0, 1, 0)),
  378. //IMAGE_SKULL: TMBImage = (
  379. ((0, 1, 1, 1, 0),
  380. (1, 0, 1, 0, 1),
  381. (1, 1, 1, 1, 1),
  382. (0, 1, 1, 1, 0),
  383. (0, 1, 1, 1, 0)),
  384. //IMAGE_UMBRELLA: TMBImage = (
  385. ((0, 1, 1, 1, 0),
  386. (1, 1, 1, 1, 1),
  387. (0, 0, 1, 0, 0),
  388. (1, 0, 1, 0, 0),
  389. (0, 1, 1, 0, 0)),
  390. //IMAGE_SNAKE: TMBImage = (
  391. ((1, 1, 0, 0, 0),
  392. (1, 1, 0, 1, 1),
  393. (0, 1, 0, 1, 0),
  394. (0, 1, 1, 1, 0),
  395. (0, 0, 0, 0, 0)));
  396. implementation
  397. end.