From 6758d0d946cdfcb30daa0c400f592352502cb566 Mon Sep 17 00:00:00 2001 From: Arne van Iterson Date: Sun, 11 Oct 2020 12:45:50 +0200 Subject: [PATCH] First Commit --- autotester.json | 31 + bin/DVDASM.8xp | Bin 0 -> 4879 bytes bin/DVDASM.bin | Bin 0 -> 4803 bytes bin/DVDASM.map | 48 + makefile | 15 + obj/gfx/colour.src | 26 + obj/gfx/dvd.src | 3937 ++++++++++++++++++++++++++++++++++++++++++ obj/gfx/logo_gfx.src | 30 + obj/gfx/ubuntu.src | 1041 +++++++++++ obj/main.src | 372 ++++ readme.md | 10 + screenshot.gif | Bin 0 -> 57679 bytes src/gfx/colour.c | 11 + src/gfx/colour.png | Bin 0 -> 146 bytes src/gfx/convpng.ini | 5 + src/gfx/convpng.log | 15 + src/gfx/dvd.c | 57 + src/gfx/dvd.png | Bin 0 -> 958 bytes src/gfx/logo_gfx.c | 53 + src/gfx/logo_gfx.h | 22 + src/gfx/ubuntu.c | 40 + src/gfx/ubuntu.png | Bin 0 -> 1274 bytes src/main.c | 125 ++ 23 files changed, 5838 insertions(+) create mode 100644 autotester.json create mode 100644 bin/DVDASM.8xp create mode 100644 bin/DVDASM.bin create mode 100644 bin/DVDASM.map create mode 100644 makefile create mode 100644 obj/gfx/colour.src create mode 100644 obj/gfx/dvd.src create mode 100644 obj/gfx/logo_gfx.src create mode 100644 obj/gfx/ubuntu.src create mode 100644 obj/main.src create mode 100644 readme.md create mode 100644 screenshot.gif create mode 100644 src/gfx/colour.c create mode 100644 src/gfx/colour.png create mode 100644 src/gfx/convpng.ini create mode 100644 src/gfx/convpng.log create mode 100644 src/gfx/dvd.c create mode 100644 src/gfx/dvd.png create mode 100644 src/gfx/logo_gfx.c create mode 100644 src/gfx/logo_gfx.h create mode 100644 src/gfx/ubuntu.c create mode 100644 src/gfx/ubuntu.png create mode 100644 src/main.c diff --git a/autotester.json b/autotester.json new file mode 100644 index 0000000..b4ba88a --- /dev/null +++ b/autotester.json @@ -0,0 +1,31 @@ +{ + "rom": "84pce_515.rom", + "transfer_files": [ + "bin/DEMO.8xp" + ], + "target": { + "name": "DEMO", + "isASM": true + }, + "sequence": [ + "action|launch", + "hashWait|1", + "key|clear", + "hashWait|2" + ], + "hashes": { + "1": { + "description": "Make sure the sprite is displayed", + "start": "vram_start", + "size": "vram_8_size", + "expected_CRCs": [ "F9825FDD" ] + }, + "2": { + "description": "Back to the home screen (exit check)", + "start": "vram_start", + "size": "vram_16_size", + "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] + } + } +} + diff --git a/bin/DVDASM.8xp b/bin/DVDASM.8xp new file mode 100644 index 0000000000000000000000000000000000000000..22acf4ecd8cdba5e2f4d4b19dc5c2bb652b24c93 GIT binary patch literal 4879 zcmds4U1%It6uvY2pWRKGP10^+HJSDy*%S<`Qqm%lXl$#-5~39QqL`#;u-HNaX(@!# zH$n78(1+rqWH&M9K?u^9#JJ)TZpjGxAPl(5K7=}&V7F`*uJPQNxj(bXPF9I8UNX7o zeCIpgIrq+;%%r#X)ff7oJk#6Jfa)JVCgLcU2o7Bs8hqttnwCqfCjPjIa8FQ8`ti9| zRa>0XahFehrtOJxU>(N-YX4#UNvGQLi`Ifrdl7#VPz%jJ&FUM}!mVKy_k>k#9RdiMIyiFfH56Tis;fS@VsJIV^$1)VTyqF5zx4dY zk-?$okV;wj9Ed;gqd)Q0jIITIKNn|8Q>18KJCo5Bh-(ki>$xIc1m^2mJq-vcZ2dZo zH~k3T&gf(<@)=q4eT&0(kND{hwU93ql0Ojb7Fs83@ejz_i=UFU;otKNx#u7YfZUnW zNjEBzZnbD0_nR$9fsW0^6@BcTR4R3S{w=c5NT!?4-uV0qS%{PA#xF)wAKE`zvJfNF z@tgBxI!3x<*U6DEIUj9*?~Q!HC>pR>WSrX2xp`{){s#UiqcO&$)s--8#AOAgQcBldJyOJ_S(=mA zN;^CFVMaF-Wo_WDuBdbs*qqgIKP1s!nkrWQmYr|(5xWk7eB0Uv%LtL2RS-94K^M0` zi|LB#8_@<7v}8VulPan_$m&LS1@|k6yEEmbo`?~u_@GSk1Q=0j9HYez8jBkz%ZR~I za1@7Zq>1TEYnzCwS4QSQnQ&!r&12=`GnO_1ZIXNnIs|Q!JVCWhwG3z}R{%<*(Oo(T zHSBPVdQim5qN{>>IeSs3kD}6F17Clc)$!J>Ztd}*rp9{65N_{5D=_=`V&kqIhUZMy@xo9GCAg3b0b4hC&L+1?ITCq!8y$_ z7@c>(08ZQm*pYS%7pz)(Y-6h9qM#fRwy^95;BUP>oPOLMfIKcD@NTfiQAP3FmXi!q z#EB*M)r&ezUgC(TCiEN;#yYijxST!fkT`+70L-ywLEwb3~V&bEk&l+F^8fP}l4&8-`Fpr892NE3F5`2*$ z#rFz(=t=aw!}cKkD?P8(Rtb8PmJhrq z4K+~FL-0?K_t2_pd$sAU)K#q{``)Ql(Gbt1fuK_Rv23 zWysy5o#4{~5rmH{R12-&&y+8DKjUmxxJpqGN?RdzE zrriB;ZF+Nrp0yq?xf)&nGk9kQp_ShdnwUZ8A~dk{Jwnmj2(@Jp`WW6Vit^o^zX6&( Bp%efB literal 0 HcmV?d00001 diff --git a/bin/DVDASM.bin b/bin/DVDASM.bin new file mode 100644 index 0000000000000000000000000000000000000000..ca990a95543462af72f25c53a0848d7d0bc79a8a GIT binary patch literal 4803 zcmds4U1%It6uvXNo89g1CQXyHn_5k#eMpvqVMR(>L{k46G?b7Bu`h~AiUx}ah)+j_HF(@n=1H|1U-dLfuvT zeN3;k|1@WAQVVw`bljiNjRnYBiR*YPt{dOF_S%OTePv{7eB|oelc;Cq!r1xI;Wtof z4I#7^fh!GH8(dGoWxzF$(8_BsUm89C(u+u^EIbV2kD};Le63&_vB=NW+1fOz+Sgwx zm>R^5$N7y?6)yqv&7zqHgj62>I)k^O2;V7~WIg#MS&#gH6K;?Ax#N1JT&ZM#B*tyD zLDn-Lk@Z)j_ zV$q_hC14}2XegJ{dheRaDz44ZoU&2d*};zsrhTMt4Ba&~ovs4gb0!{yB-%?`!^wZ> z=34{AtwSK+wYI^s;-ush#O+1U#U0RMzF|j3jUf#!+b`g(jv9}Orq$QLgBlXp6jGS-4}Mfi7Qj%*U@NR`;P|P zE8pQQ8QabC5*%+gNkLTpaRpb*c9la2`3*^3&rR(;Sxt)rhpE)pZn@p=G?xQxKN!5JqsE$Uh<8KxwQW%t!fF{UVSOjeV6jKr7g-F2COl0rsyEW^Hf zq6f}U0oQ&?fijBiWH7&}J>hzK5ss4-l)fvUb;ql*xNyO6864T0FSf{G!;49bW%1s^$H#=G3sG(Q~t=9#D zp$dm39jsc|s$qDY@LkBpk)uzB$&eiN(cmKc&NAI&?VA@w@F;;3#0?pflJLptHzdim z{CFVXfWp+i*kF#Hn~JdCE=L2U*r^)@T1esF42G%hk}phfe4 zEZGaYDWAI?Qive-NbKSG zo)O?e4X(pydd!_Bo%$}vZH3t?;;H%IC@>j{$c>H43+J39!i{)W)xEJBx{f#v%M QrS2fqRY2%dc(-WU-|N?yg8%>k literal 0 HcmV?d00001 diff --git a/bin/DVDASM.map b/bin/DVDASM.map new file mode 100644 index 0000000..fe4a739 --- /dev/null +++ b/bin/DVDASM.map @@ -0,0 +1,48 @@ +Segment Base Top High Length +-------- ------ ------ ------ ------- +icon D1A882 D1A882 0h +launcher D1A882 D1A8DA 58h +libs D1A8DA D1A917 3Dh +startup D1A917 D1A956 3Fh +cleanup D1A956 D1A96A 14h +exit D1A96A D1A970 6h +code D1A970 D1AB9C 22Ch +data D1AB9C D1BB40 FA4h +strsect D1BB40 D1BB40 0h +text D1BB40 D1BB42 2h +bss D031F6 D031F6 D13FD6 0h +header D1A87F D1A882 3h + +Label Value +------------------------- ------ +_os_DisableHomeTextBuffer = D1A970 +_os_EnableHomeTextBuffer = D1A982 +_random = D1A994 +__state = D1AB9C +__frameset0 = D1A9EB +__frameset = D1A9F6 +__irems = 00016C +__icmpzero = 000138 +__setflag = 000218 +_rand = D1AA04 +__findlibload = D1A882 +__ccleanup = D1A956 +_errno = D008DC +_init = D1A882 +_exit = D1A96C +__exit = D1A945 +__exitsp = D1A945 +__errsp = D1A945 +_dvd_data = D1ABCE +_logo_gfx_pal = D1BB20 +_main = D1AA5E +_random_palette = D1AA38 +_draw_sprite = D1AA11 +_gfx_Begin = D1A8ED +_gfx_End = D1A8F1 +_gfx_SetPalette = D1A8F5 +_gfx_FillScreen = D1A8F9 +_gfx_SetDraw = D1A8FD +_gfx_Blit = D1A901 +_gfx_Sprite = D1A905 +_kb_Scan = D1A913 diff --git a/makefile b/makefile new file mode 100644 index 0000000..8499863 --- /dev/null +++ b/makefile @@ -0,0 +1,15 @@ +# ---------------------------- +# Set NAME to the program name +# Set ICON to the png icon file name +# Set DESCRIPTION to display within a compatible shell +# Set COMPRESSED to "YES" to create a compressed program +# ---------------------------- + +NAME ?= DVDASM +COMPRESSED ?= NO +ICON ?= iconc.png +DESCRIPTION ?= "C SDK Demo" + +# ---------------------------- + +include $(CEDEV)/include/.makefile diff --git a/obj/gfx/colour.src b/obj/gfx/colour.src new file mode 100644 index 0000000..9e8119f --- /dev/null +++ b/obj/gfx/colour.src @@ -0,0 +1,26 @@ +; Zilog eZ80 ANSI C Compiler Release 3.4 +; -optsize -noreduceopt -nomodsect -peephole -globalopt +; -localcse -const=ROM + FILE "SRC\GFX\COLOUR.C" + .assume ADL=1 + SEGMENT DATA +_colour_data: + DB 3 + DB 3 + DB 34 + DB 40 + DB 38 + DB 37 + DB 41 + DB 35 + DB 39 + DB 36 + DB 0 + XDEF _colour_data +; 1 // convpng v7.2 +; 2 #include +; 3 #include "logo_gfx.h" +; 4 +; 5 // 8 bpp image +; 6 uint8_t colour_data[11] = { + END diff --git a/obj/gfx/dvd.src b/obj/gfx/dvd.src new file mode 100644 index 0000000..5997e54 --- /dev/null +++ b/obj/gfx/dvd.src @@ -0,0 +1,3937 @@ +; Zilog eZ80 ANSI C Compiler Release 3.4 +; -optsize -noreduceopt -nomodsect -peephole -globalopt +; -localcse -const=ROM + FILE "SRC\GFX\DVD.C" + .assume ADL=1 + SEGMENT DATA +_dvd_data: + DB 80 + DB 49 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 5 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 26 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 17 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 6 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 14 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 31 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 25 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 15 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 27 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 28 + DB 1 + DB 1 + DB 4 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 9 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 24 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 11 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 23 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 9 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 30 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 13 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 8 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 21 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 20 + DB 12 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 18 + DB 22 + DB 29 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 8 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 2 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 10 + DB 1 + DB 1 + DB 1 + DB 1 + DB 16 + DB 3 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 33 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 32 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 7 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 6 + DB 1 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 4 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 19 + DB 7 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 1 + DB 0 + DB 0 + DB 1 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 1 + DB 0 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 5 + DB 0 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 0 + DB 0 + DB 0 + DB 0 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + DB 1 + XDEF _dvd_data +; 1 // convpng v7.2 +; 2 #include +; 3 #include "logo_gfx.h" +; 4 +; 5 // 8 bpp image +; 6 uint8_t dvd_data[3922] = { + END diff --git a/obj/gfx/logo_gfx.src b/obj/gfx/logo_gfx.src new file mode 100644 index 0000000..59616c5 --- /dev/null +++ b/obj/gfx/logo_gfx.src @@ -0,0 +1,30 @@ +; Zilog eZ80 ANSI C Compiler Release 3.4 +; -optsize -noreduceopt -nomodsect -peephole -globalopt +; -localcse -const=ROM + FILE "SRC\GFX\LOGO_GFX.C" + .assume ADL=1 + SEGMENT DATA +_logo_gfx_pal: + DW 65535 + DW 0 + DW 60609 + DW 0 + DW 32356 + DW 0 + DW 345 + DW 0 + DW 53943 + DW 0 + DW 33291 + DW 0 + DW 43285 + DW 0 + DW 663 + DW 0 + XDEF _logo_gfx_pal +; 1 // convpng v7.2 +; 2 #include +; 3 #include "logo_gfx.h" +; 4 +; 5 uint16_t logo_gfx_pal[8][2] = { + END diff --git a/obj/gfx/ubuntu.src b/obj/gfx/ubuntu.src new file mode 100644 index 0000000..175dc1e --- /dev/null +++ b/obj/gfx/ubuntu.src @@ -0,0 +1,1041 @@ +; Zilog eZ80 ANSI C Compiler Release 3.4 +; -optsize -noreduceopt -nomodsect -peephole -globalopt +; -localcse -const=ROM + FILE "SRC\GFX\UBUNTU.C" + .assume ADL=1 + SEGMENT DATA +_ubuntu_data: + DB 32 + DB 32 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 43 + DB 102 + DB 72 + DB 63 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 37 + DB 51 + DB 34 + DB 34 + DB 39 + DB 64 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 37 + DB 128 + DB 97 + DB 110 + DB 46 + DB 176 + DB 52 + DB 196 + DB 34 + DB 34 + DB 34 + DB 34 + DB 71 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 162 + DB 48 + DB 36 + DB 36 + DB 36 + DB 36 + DB 36 + DB 194 + DB 199 + DB 34 + DB 34 + DB 34 + DB 34 + DB 103 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 164 + DB 0 + DB 166 + DB 53 + DB 36 + DB 36 + DB 36 + DB 36 + DB 36 + DB 190 + DB 37 + DB 188 + DB 34 + DB 34 + DB 177 + DB 121 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 167 + DB 165 + DB 47 + DB 0 + DB 169 + DB 36 + DB 36 + DB 36 + DB 36 + DB 36 + DB 53 + DB 195 + DB 192 + DB 198 + DB 191 + DB 181 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 136 + DB 41 + DB 35 + DB 44 + DB 0 + DB 171 + DB 161 + DB 149 + DB 173 + DB 179 + DB 58 + DB 36 + DB 197 + DB 187 + DB 200 + DB 182 + DB 49 + DB 122 + DB 37 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 127 + DB 114 + DB 35 + DB 35 + DB 40 + DB 54 + DB 0 + DB 157 + DB 126 + DB 0 + DB 0 + DB 180 + DB 193 + DB 189 + DB 36 + DB 36 + DB 174 + DB 36 + DB 36 + DB 92 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 185 + DB 35 + DB 35 + DB 35 + DB 35 + DB 168 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 37 + DB 178 + DB 175 + DB 36 + DB 36 + DB 36 + DB 117 + DB 105 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 205 + DB 41 + DB 35 + DB 35 + DB 35 + DB 132 + DB 56 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 120 + DB 36 + DB 36 + DB 36 + DB 36 + DB 46 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 219 + DB 35 + DB 35 + DB 35 + DB 40 + DB 115 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 37 + DB 116 + DB 36 + DB 36 + DB 36 + DB 48 + DB 37 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 172 + DB 203 + DB 204 + DB 220 + DB 0 + DB 55 + DB 35 + DB 35 + DB 186 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 130 + DB 36 + DB 36 + DB 36 + DB 36 + DB 52 + DB 0 + DB 0 + DB 0 + DB 0 + DB 45 + DB 202 + DB 36 + DB 36 + DB 213 + DB 57 + DB 209 + DB 215 + DB 35 + DB 207 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 145 + DB 153 + DB 139 + DB 156 + DB 144 + DB 129 + DB 0 + DB 0 + DB 0 + DB 0 + DB 163 + DB 36 + DB 36 + DB 36 + DB 36 + DB 221 + DB 0 + DB 211 + DB 35 + DB 212 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 49 + DB 36 + DB 36 + DB 36 + DB 36 + DB 216 + DB 0 + DB 208 + DB 35 + DB 201 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 124 + DB 147 + DB 134 + DB 152 + DB 125 + DB 118 + DB 0 + DB 0 + DB 0 + DB 0 + DB 37 + DB 170 + DB 36 + DB 36 + DB 58 + DB 218 + DB 217 + DB 214 + DB 35 + DB 183 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 104 + DB 34 + DB 34 + DB 34 + DB 34 + DB 109 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 45 + DB 57 + DB 184 + DB 206 + DB 56 + DB 210 + DB 35 + DB 35 + DB 160 + DB 106 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 100 + DB 34 + DB 34 + DB 34 + DB 111 + DB 43 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 54 + DB 35 + DB 35 + DB 35 + DB 35 + DB 78 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 95 + DB 38 + DB 34 + DB 34 + DB 34 + DB 101 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 37 + DB 159 + DB 35 + DB 35 + DB 35 + DB 35 + DB 86 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 154 + DB 112 + DB 34 + DB 34 + DB 34 + DB 73 + DB 68 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 108 + DB 35 + DB 35 + DB 35 + DB 35 + DB 85 + DB 0 + DB 91 + DB 37 + DB 0 + DB 0 + DB 0 + DB 50 + DB 146 + DB 39 + DB 34 + DB 34 + DB 34 + DB 34 + DB 65 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 87 + DB 35 + DB 35 + DB 77 + DB 37 + DB 90 + DB 82 + DB 99 + DB 107 + DB 119 + DB 143 + DB 158 + DB 34 + DB 34 + DB 38 + DB 39 + DB 34 + DB 94 + DB 66 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 80 + DB 44 + DB 42 + DB 79 + DB 0 + DB 88 + DB 34 + DB 34 + DB 34 + DB 34 + DB 34 + DB 34 + DB 133 + DB 131 + DB 50 + DB 140 + DB 142 + DB 96 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 83 + DB 0 + DB 84 + DB 89 + DB 34 + DB 34 + DB 34 + DB 34 + DB 34 + DB 135 + DB 151 + DB 155 + DB 150 + DB 137 + DB 113 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 81 + DB 38 + DB 34 + DB 34 + DB 34 + DB 34 + DB 34 + DB 148 + DB 37 + DB 141 + DB 35 + DB 35 + DB 41 + DB 74 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 76 + DB 70 + DB 75 + DB 93 + DB 98 + DB 51 + DB 123 + DB 138 + DB 35 + DB 35 + DB 35 + DB 35 + DB 67 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 47 + DB 40 + DB 35 + DB 35 + DB 35 + DB 60 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 55 + DB 35 + DB 35 + DB 42 + DB 61 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 69 + DB 59 + DB 62 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + DB 0 + XDEF _ubuntu_data +; 1 // convpng v7.2 +; 2 #include +; 3 #include "logo_gfx.h" +; 4 +; 5 // 8 bpp image +; 6 uint8_t ubuntu_data[1026] = { + END diff --git a/obj/main.src b/obj/main.src new file mode 100644 index 0000000..e154999 --- /dev/null +++ b/obj/main.src @@ -0,0 +1,372 @@ +; Zilog eZ80 ANSI C Compiler Release 3.4 +; -optsize -noreduceopt -nomodsect -peephole -globalopt +; -localcse -const=ROM + FILE "SRC\MAIN.C" + .assume ADL=1 + SEGMENT CODE +; 1 #include +; 2 #include +; 3 #include +; 4 #include +; 5 +; 6 #include +; 7 #include +; 8 #include +; 9 #include +; 10 +; 11 #include +; 12 #include +; 13 +; 14 /* Include the sprite data */ +; 15 #include "gfx/logo_gfx.h" +; 16 +; 17 /* Function for drawing the main sprite */ +; 18 void draw_sprite(int x, int y) +; 19 { +_draw_sprite: + CALL __frameset0 +; 20 /* Fill the screen with color index 0 +; 21 /* Note that this is a super inefficient way to +; 22 /* redraw, but it demonstrates a simple way of clearing past data */ +; 23 // gfx_FillScreen(0xFF); +; 24 +; 25 /* Draw a bunch of different styled sprites on the screen */ +; 26 +; 27 gfx_Sprite(dvd, x, y); + LD BC,(IX+9) + PUSH BC + LD BC,(IX+6) + PUSH BC + LD BC,_dvd_data + PUSH BC + CALL _gfx_Sprite + POP BC + POP BC + POP BC +; 28 +; 29 /* Copy the buffer to the screen */ +; 30 gfx_BlitBuffer(); // This is the same as gfx_Blit(gfx_buffer) + LD BC,1 + PUSH BC + CALL _gfx_Blit + POP BC +; 31 } + LD SP,IX + POP IX + RET + + +;**************************** _draw_sprite *************************** +;Name Addr/Register Size Type +;_gfx_Blit IMPORT ----- function +;_dvd_data IMPORT 3922 variable +;_gfx_Sprite IMPORT ----- function +;y IX+9 3 parameter +;x IX+6 3 parameter + + +; Stack Frame Size: 12 (bytes) +; Spill Code: 0 (instruction) + + +; 32 +; 33 void random_palette() { +_random_palette: +; 34 gfx_SetPalette(logo_gfx_pal[(rand() % (7 - 0 + 1))], sizeof_logo_gfx_pal, 0); + LD BC,0 + PUSH BC + LD BC,86 + PUSH BC + CALL _rand + LD BC,8 + CALL __irems + ADD HL,HL + ADD HL,HL + LD BC,_logo_gfx_pal + ADD HL,BC + PUSH HL + CALL _gfx_SetPalette + POP BC + POP BC + POP BC +; 35 } + RET + + +;**************************** _random_palette *************************** +;Name Addr/Register Size Type +;_rand IMPORT ----- function +;_logo_gfx_pal IMPORT 32 variable +;_gfx_SetPalette IMPORT ----- function + + +; Stack Frame Size: 6 (bytes) +; Spill Code: 0 (instruction) + + +; 36 +; 37 void main(void) +; 38 { +_main: + LD HL,-11 + CALL __frameset +; 39 /* Coordinates used for the sprite */ +; 40 int x, y; +; 41 bool gravity[2] = { +; 42 true, +; 43 true +; 44 }; + LEA DE,IX+-8 + LD HL,_0temp2 + LD BC,2 + LDIR +; 45 float angle; +; 46 +; 47 /* Initialize the 8bpp graphics */ +; 48 gfx_Begin(); + CALL _gfx_Begin +; 49 +; 50 /* Set up the palette for our sprites */ +; 51 random_palette(); + CALL _random_palette +; 52 +; 53 /* Start at 0, 0 */ +; 54 x = 0; + LD BC,0 + LD (IX+-6),BC +; 55 y = (rand() % (LCD_HEIGHT - 0 + 1)); + CALL _rand + LD BC,241 + CALL __irems + LD (IX+-3),HL +; 56 +; 57 gfx_SetDrawBuffer(); + LD BC,1 + PUSH BC + CALL _gfx_SetDraw + POP BC +; 58 +; 59 gfx_FillScreen(1); + LD BC,1 + PUSH BC + CALL _gfx_FillScreen + POP BC +; 60 +; 61 draw_sprite(x, y); + LD BC,(IX+-3) + PUSH BC + LD BC,0 + PUSH BC + CALL _draw_sprite + POP BC + POP BC +; 62 +; 63 do +L_27: +; 64 { +; 65 /* Scan the keypad to update kb_Data */ +; 66 kb_Scan(); + CALL _kb_Scan +; 67 +; 68 if ((x + dvd_width) <= LCD_WIDTH && x >= 0) + LD IY,(IX+-6) + LEA BC,IY+80 + LD HL,320 + OR A,A + SBC HL,BC + CALL __setflag + JP M,L_13 + LD HL,(IX+-6) + CALL __icmpzero + CALL __setflag + JP M,L_13 +; 69 { +; 70 if (gravity[0]) + LD A,(IX+-8) + OR A,A + JR Z,L_7 +; 71 { +; 72 x++; + LD BC,(IX+-6) + INC BC + LD (IX+-6),BC +; 73 } +; 74 else + JR L_25 +L_7: +; 75 { +; 76 x--; + LD BC,(IX+-6) + DEC BC + LD (IX+-6),BC +; 77 } +; 78 } +; 79 else + JR L_25 +L_13: +; 80 { +; 81 random_palette(); + CALL _random_palette +; 82 if (gravity[0]) + LD A,(IX+-8) + OR A,A + JR Z,L_11 +; 83 { +; 84 gravity[0] = false; + LD (IX+-8),0 +; 85 x--; + LD BC,(IX+-6) + DEC BC + LD (IX+-6),BC +; 86 } +; 87 else + JR L_25 +L_11: +; 88 { +; 89 gravity[0] = true; + LD (IX+-8),1 +; 90 x++; + LD BC,(IX+-6) + INC BC + LD (IX+-6),BC +; 91 } +; 92 } +L_25: +; 93 +; 94 if ((y + dvd_height) <= LCD_HEIGHT && y >= 0) + LD IY,(IX+-3) + LEA BC,IY+49 + LD HL,240 + OR A,A + SBC HL,BC + JP M,L_24 + LD HL,(IX+-3) + CALL __icmpzero + CALL __setflag + JP M,L_24 +; 95 { +; 96 if (gravity[1]) + LEA HL,IX+-8 + INC HL + LD A,(HL) + OR A,A + JR Z,L_18 +; 97 { +; 98 y++; + LD BC,(IX+-3) + INC BC + LD (IX+-3),BC +; 99 } +; 100 else + JR L_26 +L_18: +; 101 { +; 102 y--; + LD BC,(IX+-3) + DEC BC + LD (IX+-3),BC +; 103 } +; 104 } +; 105 else + JR L_26 +L_24: +; 106 { +; 107 random_palette(); + CALL _random_palette +; 108 if (gravity[1]) + LEA BC,IX+-8 + INC BC + LD (IX+-11),BC + LD HL,BC + LD A,(HL) + OR A,A + JR Z,L_22 +; 109 { +; 110 gravity[1] = false; + LD HL,(IX+-11) + LD (HL),0 +; 111 y--; + LD BC,(IX+-3) + DEC BC + LD (IX+-3),BC +; 112 } +; 113 else + JR L_26 +L_22: +; 114 { +; 115 gravity[1] = true; + LD HL,(IX+-11) + LD (HL),1 +; 116 y++; + LD BC,(IX+-3) + INC BC + LD (IX+-3),BC +; 117 } +; 118 } +L_26: +; 119 +; 120 draw_sprite(x, y); + LD BC,(IX+-3) + PUSH BC + LD BC,(IX+-6) + PUSH BC + CALL _draw_sprite + POP BC + POP BC +; 121 } while (kb_Data[6] != kb_Clear); + LD A,(16056348) + CP A,64 + JR NZ,L_27 +; 122 +; 123 /* Close the graphics */ +; 124 gfx_End(); + CALL _gfx_End +; 125 } + LD SP,IX + POP IX + RET + + +;**************************** _main *************************** +;Name Addr/Register Size Type +;_gfx_End IMPORT ----- function +;_kb_Scan IMPORT ----- function +;_gfx_FillScreen IMPORT ----- function +;_gfx_SetDraw IMPORT ----- function +;_rand IMPORT ----- function +;_gfx_Begin IMPORT ----- function +;_0temp2 STATIC 2 variable +;G_0 IX-11 3 variable +;gravity IX-8 2 variable +;x IX-6 3 variable +;y IX-3 3 variable + + +; Stack Frame Size: 17 (bytes) +; Spill Code: 0 (instruction) + + + SEGMENT TEXT +_0temp2: + DB 1 + DB 1 + XREF _logo_gfx_pal:ROM + XREF _dvd_data:ROM + XREF _kb_Scan:ROM + XREF _gfx_Sprite:ROM + XREF _gfx_Blit:ROM + XREF _gfx_SetDraw:ROM + XREF _gfx_FillScreen:ROM + XREF _gfx_SetPalette:ROM + XREF _gfx_End:ROM + XREF _gfx_Begin:ROM + XREF _rand:ROM + XREF __irems:ROM + XREF __frameset0:ROM + XREF __frameset:ROM + XREF __setflag:ROM + XREF __icmpzero:ROM + XDEF _main + XDEF _random_palette + XDEF _draw_sprite + END diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..9ee2c1b --- /dev/null +++ b/readme.md @@ -0,0 +1,10 @@ +### GraphX/KeypadC Sprite with Keys + +Demonstrates using the GraphX and KeypadC library together to move a sprite + +![Screenshot](screenshot.gif) + +--- + +This demo is a part of the C SDK Toolchain for use on the CE. + diff --git a/screenshot.gif b/screenshot.gif new file mode 100644 index 0000000000000000000000000000000000000000..41a7b4baaca7736142685eb72e7b26ab4df503a4 GIT binary patch literal 57679 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 +#include "logo_gfx.h" + +// 8 bpp image +uint8_t colour_data[11] = { + 3,3, // width,height + 0x22,0x28,0x26, + 0x25,0x29,0x23, + 0x27,0x24,0x00, +}; diff --git a/src/gfx/colour.png b/src/gfx/colour.png new file mode 100644 index 0000000000000000000000000000000000000000..3775d7b1b6ad2d7e64a8e4962f0be6b80f107551 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL3K|T#}J9| +#include "logo_gfx.h" + +// 8 bpp image +uint8_t dvd_data[3922] = { + 80,49, // width,height + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x01,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x0D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x15,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x14,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x16,0x1D,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0x01,0x01,0x01,0x01,0x10,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x06,0x01,0x00,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x07,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x00,0x00,0x01,0x00,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x05,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +}; diff --git a/src/gfx/dvd.png b/src/gfx/dvd.png new file mode 100644 index 0000000000000000000000000000000000000000..69bb89663f6233dd7237f8dbc68287adf11a3ac5 GIT binary patch literal 958 zcmV;v13~o00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D15-&vK~!i%?V7!g z6EP5glK`UN87L^Ic>)RwDq33TcpM%8N=kSH5ETtI9fF<;2?;^NCCvE7k>iZ#$M!mV zx&5Toj_vvL*xpTYx8Ch`tA%>jbT0x09$MiwK%$H7c6$M)8)`P;$)QWYp42QD6z^BB z;vtwr1bpA4ZWgi9=zzqbcy<7!cmr<#E?d)4%4wDbM65*|onxNY?2fR9Q!H>E(|lB{ z^qQ2m1GPAsJqJARK7!dJY8HXee>R)V9h8efS`*al5%f{gll*JGCBKN|J7S4}_sNd1 zB}oa`4Pk|ItP`7>m`7CsMYnU@Ic$RE<~gQ2G+qWqS`BOFD3 zO?MWE@rpzqOtu86sE~RQ)Pcghq$W#n1W=O&e0(6a0ClsFiVCS0AvOO?#JYkd`v{K1 zn=G6FNf+Zu<4B&9=8r@XYfSbCYsRf$@K`(~Cc^={>j{Z0xh?45Cb1f8@enp~$w8hl zhbMuEX2VhAhqFoX+IM}4U~q(*EZPLD^zxIU<<435O0zBEO0$v@LLBw zlAclXENFekipIF|Bwic51wB%}jzueBDP~ZBqj?{6zlNTP@vd;rsTR1Dcjz3M)VUQf ze2{LPl!sFlparQu`)?wniBj_gR04+IU22U5=Jy3|Sfmna@eou@@4)2$ zgLrntU6|exlou8j&H~e0IG+3Dfx4%5EE086Bz=UlL2B$Y8;#lhq>q#e)I!N;Yb;as z(;(@J#s1PNYU4=ML82blm!gg5Ncvu1Ii?-RIgWvAf@*ktVjdCdDl$c`<|7RGZAn~6 zaIZ+Z(%OnfT}dzZm$ykgz@n2<()aq|a2t7oMqNoS^_Mcr29fMEs^7vbK{clEjXn`- g?&10thOt`x2PDq&Oob2np8x;=07*qoM6N<$f|XLW6#xJL literal 0 HcmV?d00001 diff --git a/src/gfx/logo_gfx.c b/src/gfx/logo_gfx.c new file mode 100644 index 0000000..d735c46 --- /dev/null +++ b/src/gfx/logo_gfx.c @@ -0,0 +1,53 @@ +// convpng v7.2 +#include +#include "logo_gfx.h" + +uint16_t logo_gfx_pal[8][2] = { + { + // White + 0xFFFF, // 33 :: rgb(255,255,255) + 0x0000, // 42 :: rgb(0,0,0)} + }, + { + 0xECC1, // 33 :: rgb(255,255,255) + 0x0000, // 42 :: rgb(0,0,0)} + }, + { + 0x7E64, // 33 :: rgb(255,255,255) + 0x0000, // 42 :: rgb(0,0,0)} + }, + { + 0x0159, // 33 :: rgb(255,255,255) + 0x0000, // 42 :: rgb(0,0,0)} + }, + { + 0xD2B7, // 33 :: rgb(255,255,255) + 0x0000, // 42 :: rgb(0,0,0)} + }, + { + 0x820B, // 33 :: rgb(255,255,255) + 0x0000, // 42 :: rgb(0,0,0)} + }, + { + 0xA915, // 33 :: rgb(255,255,255) + 0x0000, // 42 :: rgb(0,0,0)} + }, + { + 0x0297, // 33 :: rgb(255,255,255) + 0x0000, // 42 :: rgb(0,0,0)} + }, +}; + +// uint16_t logo_gfx_pal[2] = { +// 0xFFFF, // 33 :: rgb(255,255,255) +// 0x0000, // 42 :: rgb(0,0,0) +// }; + +// 0xECC1, // 34 :: rgb(222,53,11) +// 0x0000, // 35 :: rgb(0,0,0) +// 0x7E64, // 36 :: rgb(255,153,31) +// 0x0159, // 37 :: rgb(0,82,204) +// 0xD2B7, // 38 :: rgb(165,173,186) +// 0x820B, // 39 :: rgb(0,135,90) +// 0xA915, // 40 :: rgb(82,67,170) +// 0x0297, // 41 :: rgb(0,163,191) diff --git a/src/gfx/logo_gfx.h b/src/gfx/logo_gfx.h new file mode 100644 index 0000000..57fa5c9 --- /dev/null +++ b/src/gfx/logo_gfx.h @@ -0,0 +1,22 @@ +// convpng v7.2 +// this file contains all the graphics sources for easy inclusion in a project +#ifndef __logo_gfx__ +#define __logo_gfx__ +#include + +#define logo_gfx_transparent_color_index 0 + +#define dvd_width 80 +#define dvd_height 49 +#define dvd_size 3922 +extern uint8_t dvd_data[3922]; +#define dvd ((gfx_sprite_t*)dvd_data) +#define colour_width 3 +#define colour_height 3 +#define colour_size 11 +extern uint8_t colour_data[11]; +#define colour ((gfx_sprite_t*)colour_data) +#define sizeof_logo_gfx_pal 86 +extern uint16_t logo_gfx_pal[8][2]; + +#endif diff --git a/src/gfx/ubuntu.c b/src/gfx/ubuntu.c new file mode 100644 index 0000000..4838894 --- /dev/null +++ b/src/gfx/ubuntu.c @@ -0,0 +1,40 @@ +// convpng v7.2 +#include +#include "logo_gfx.h" + +// 8 bpp image +uint8_t ubuntu_data[1026] = { + 32,32, // width,height + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2B,0x66,0x48,0x3F,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x33,0x22,0x22,0x27,0x40,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x80,0x61,0x6E,0x2E,0xB0,0x34,0xC4,0x22,0x22,0x22,0x22,0x47,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA2,0x30,0x24,0x24,0x24,0x24,0x24,0xC2,0xC7,0x22,0x22,0x22,0x22,0x67,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0x00,0xA6,0x35,0x24,0x24,0x24,0x24,0x24,0xBE,0x25,0xBC,0x22,0x22,0xB1,0x79,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA7,0xA5,0x2F,0x00,0xA9,0x24,0x24,0x24,0x24,0x24,0x35,0xC3,0xC0,0xC6,0xBF,0xB5,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x29,0x23,0x2C,0x00,0xAB,0xA1,0x95,0xAD,0xB3,0x3A,0x24,0xC5,0xBB,0xC8,0xB6,0x31,0x7A,0x25,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x72,0x23,0x23,0x28,0x36,0x00,0x9D,0x7E,0x00,0x00,0xB4,0xC1,0xBD,0x24,0x24,0xAE,0x24,0x24,0x5C,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB9,0x23,0x23,0x23,0x23,0xA8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0xB2,0xAF,0x24,0x24,0x24,0x75,0x69,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xCD,0x29,0x23,0x23,0x23,0x84,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x24,0x24,0x24,0x24,0x2E,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xDB,0x23,0x23,0x23,0x28,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x74,0x24,0x24,0x24,0x30,0x25,0x00,0x00, + 0x00,0x00,0x00,0xAC,0xCB,0xCC,0xDC,0x00,0x37,0x23,0x23,0xBA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x24,0x24,0x24,0x24,0x34,0x00,0x00, + 0x00,0x00,0x2D,0xCA,0x24,0x24,0xD5,0x39,0xD1,0xD7,0x23,0xCF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x91,0x99,0x8B,0x9C,0x90,0x81,0x00,0x00, + 0x00,0x00,0xA3,0x24,0x24,0x24,0x24,0xDD,0x00,0xD3,0x23,0xD4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x31,0x24,0x24,0x24,0x24,0xD8,0x00,0xD0,0x23,0xC9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x93,0x86,0x98,0x7D,0x76,0x00,0x00, + 0x00,0x00,0x25,0xAA,0x24,0x24,0x3A,0xDA,0xD9,0xD6,0x23,0xB7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0x22,0x22,0x22,0x22,0x6D,0x00,0x00, + 0x00,0x00,0x00,0x2D,0x39,0xB8,0xCE,0x38,0xD2,0x23,0x23,0xA0,0x6A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x22,0x22,0x22,0x6F,0x2B,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x23,0x23,0x23,0x23,0x4E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5F,0x26,0x22,0x22,0x22,0x65,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x9F,0x23,0x23,0x23,0x23,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9A,0x70,0x22,0x22,0x22,0x49,0x44,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6C,0x23,0x23,0x23,0x23,0x55,0x00,0x5B,0x25,0x00,0x00,0x00,0x32,0x92,0x27,0x22,0x22,0x22,0x22,0x41,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x57,0x23,0x23,0x4D,0x25,0x5A,0x52,0x63,0x6B,0x77,0x8F,0x9E,0x22,0x22,0x26,0x27,0x22,0x5E,0x42,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x2C,0x2A,0x4F,0x00,0x58,0x22,0x22,0x22,0x22,0x22,0x22,0x85,0x83,0x32,0x8C,0x8E,0x60,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x53,0x00,0x54,0x59,0x22,0x22,0x22,0x22,0x22,0x87,0x97,0x9B,0x96,0x89,0x71,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x26,0x22,0x22,0x22,0x22,0x22,0x94,0x25,0x8D,0x23,0x23,0x29,0x4A,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x46,0x4B,0x5D,0x62,0x33,0x7B,0x8A,0x23,0x23,0x23,0x23,0x43,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2F,0x28,0x23,0x23,0x23,0x3C,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x23,0x23,0x2A,0x3D,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x45,0x3B,0x3E,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; diff --git a/src/gfx/ubuntu.png b/src/gfx/ubuntu.png new file mode 100644 index 0000000000000000000000000000000000000000..4f1c7472d4f819fbc234187482d9c0c403df356e GIT binary patch literal 1274 zcmZ`(X;4#V6#WQ^AWMc-+^Er+x~1A+s*-4HsRRfTCdL)iVHH~{YFlvaw1EgDq>9Kc zD$tN>svrTyvJP>pfDMcdf~-LV6qAC@p{^*@K_sl(a&aZRlO8AkX?kP1Xz#&QIZy0FJ`%(W0zjGTip5brEEB>6JOIwF1VDHm0MsrC-vE%t z0AM;60CougekZOr?c53giOrAL&9T`F#|?FLy1YE=(2$KFUPVW10O)mfMcUi(@t0_u z+^P^;WkU3R88P#AuD@R!9u7MjOo^+JFaRG_Th!`N4u>#K;uC`i&uK0{c_b)EBuKY zq%*S11HD&Dm<=|F;$ywmTT)_X80NY{DT$cs!nM7GL2t7WHVnmj+RQ&iAQAJ>`a)PM zz*MKuhAT+8BeK(-n3*PKhoO9{4M(lDm+;;yLf2K8~j3I3@h=4N583-&}r{4-^({Lxx*&RTxfT7Cw9tHp-8&8N4+DmMPS%Ez$zB@SAnIcr_a|{#!HhM3IPad8vL$)lm6FR0W3Ivsoe-iAZ?3z?YyTVGiC!ox#fQbIt8 zj*g;ZW4N{%)9Lzre0nJqb4P~_TJY{-T$P58wdzYt$75pP9X|d-j%u~~;^Now@!F7( zk!{;dj~^57wXiA>-uN6JxsMOu!=L36`u>o;npXRHImGV>4F+P0f0%ukejS>1gla)_h=Szjcn+wCz1GDauMO8lg(?7fAwx#*@(x#S{j1?lU{pkgDIlo_F zH??H_R?0S`I01bIbT`h?B+sMy7oSI+1|ihnn>PO zvdDAI3NK%O?_0jvw`pH24_L#ZJd2cYQLhB{b_lxu$z-D#;gT0YOXE4|dM&LP`@IQu> +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +/* Include the sprite data */ +#include "gfx/logo_gfx.h" + +/* Function for drawing the main sprite */ +void draw_sprite(int x, int y) +{ + /* Fill the screen with color index 0 + /* Note that this is a super inefficient way to + /* redraw, but it demonstrates a simple way of clearing past data */ + // gfx_FillScreen(0xFF); + + /* Draw a bunch of different styled sprites on the screen */ + + gfx_Sprite(dvd, x, y); + + /* Copy the buffer to the screen */ + gfx_BlitBuffer(); // This is the same as gfx_Blit(gfx_buffer) +} + +void random_palette() { + gfx_SetPalette(logo_gfx_pal[(rand() % (7 - 0 + 1))], sizeof_logo_gfx_pal, 0); +} + +void main(void) +{ + /* Coordinates used for the sprite */ + int x, y; + bool gravity[2] = { + true, + true + }; + float angle; + + /* Initialize the 8bpp graphics */ + gfx_Begin(); + + /* Set up the palette for our sprites */ + random_palette(); + + /* Start at 0, 0 */ + x = 0; + y = (rand() % (LCD_HEIGHT - 0 + 1)); + + gfx_SetDrawBuffer(); + + gfx_FillScreen(1); + + draw_sprite(x, y); + + do + { + /* Scan the keypad to update kb_Data */ + kb_Scan(); + + if ((x + dvd_width) <= LCD_WIDTH && x >= 0) + { + if (gravity[0]) + { + x++; + } + else + { + x--; + } + } + else + { + random_palette(); + if (gravity[0]) + { + gravity[0] = false; + x--; + } + else + { + gravity[0] = true; + x++; + } + } + + if ((y + dvd_height) <= LCD_HEIGHT && y >= 0) + { + if (gravity[1]) + { + y++; + } + else + { + y--; + } + } + else + { + random_palette(); + if (gravity[1]) + { + gravity[1] = false; + y--; + } + else + { + gravity[1] = true; + y++; + } + } + + draw_sprite(x, y); + } while (kb_Data[6] != kb_Clear); + + /* Close the graphics */ + gfx_End(); +}