aboutsummaryrefslogtreecommitdiff
path: root/src/graphics
diff options
context:
space:
mode:
authorChristian Cunningham <cc@localhost>2021-12-08 17:28:22 -0700
committerChristian Cunningham <cc@localhost>2021-12-08 17:28:22 -0700
commit956d6a5376474f0f1e99977e466719f7eaa4063e (patch)
treee010f1f8c53055c41599bf9171ba59ec15837087 /src/graphics
parent15b93ed9c47691ae0b7241100509159a38c36049 (diff)
Testing Graphics
Diffstat (limited to 'src/graphics')
-rw-r--r--src/graphics/bmp_dendritos_logo.inc1930
-rw-r--r--src/graphics/bmp_no_os.inc842
-rw-r--r--src/graphics/core.S124
-rw-r--r--src/graphics/draw.c10
-rw-r--r--src/graphics/draw.h16
5 files changed, 2922 insertions, 0 deletions
diff --git a/src/graphics/bmp_dendritos_logo.inc b/src/graphics/bmp_dendritos_logo.inc
new file mode 100644
index 0000000..b2ad9d6
--- /dev/null
+++ b/src/graphics/bmp_dendritos_logo.inc
@@ -0,0 +1,1930 @@
+ldr r2, =#281600
+add fb, r2
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #152]
+str white, [fb, #156]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #200]
+str white, [fb, #204]
+str white, [fb, #208]
+str white, [fb, #212]
+str white, [fb, #216]
+str white, [fb, #220]
+str white, [fb, #240]
+str white, [fb, #244]
+str white, [fb, #248]
+str white, [fb, #252]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #264]
+str white, [fb, #268]
+str white, [fb, #272]
+str white, [fb, #276]
+str white, [fb, #288]
+str white, [fb, #292]
+str white, [fb, #296]
+str white, [fb, #300]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #312]
+str white, [fb, #316]
+str white, [fb, #320]
+str white, [fb, #324]
+str white, [fb, #344]
+str white, [fb, #348]
+str white, [fb, #352]
+str white, [fb, #356]
+str white, [fb, #360]
+str white, [fb, #364]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+str white, [fb, #416]
+str white, [fb, #420]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #152]
+str white, [fb, #156]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #200]
+str white, [fb, #204]
+str white, [fb, #208]
+str white, [fb, #212]
+str white, [fb, #216]
+str white, [fb, #220]
+str white, [fb, #240]
+str white, [fb, #244]
+str white, [fb, #248]
+str white, [fb, #252]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #264]
+str white, [fb, #268]
+str white, [fb, #272]
+str white, [fb, #276]
+str white, [fb, #288]
+str white, [fb, #292]
+str white, [fb, #296]
+str white, [fb, #300]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #312]
+str white, [fb, #316]
+str white, [fb, #320]
+str white, [fb, #324]
+str white, [fb, #344]
+str white, [fb, #348]
+str white, [fb, #352]
+str white, [fb, #356]
+str white, [fb, #360]
+str white, [fb, #364]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+str white, [fb, #416]
+str white, [fb, #420]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #152]
+str white, [fb, #156]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #200]
+str white, [fb, #204]
+str white, [fb, #208]
+str white, [fb, #212]
+str white, [fb, #216]
+str white, [fb, #220]
+str white, [fb, #240]
+str white, [fb, #244]
+str white, [fb, #248]
+str white, [fb, #252]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #264]
+str white, [fb, #268]
+str white, [fb, #272]
+str white, [fb, #276]
+str white, [fb, #288]
+str white, [fb, #292]
+str white, [fb, #296]
+str white, [fb, #300]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #312]
+str white, [fb, #316]
+str white, [fb, #320]
+str white, [fb, #324]
+str white, [fb, #344]
+str white, [fb, #348]
+str white, [fb, #352]
+str white, [fb, #356]
+str white, [fb, #360]
+str white, [fb, #364]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+str white, [fb, #416]
+str white, [fb, #420]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #152]
+str white, [fb, #156]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #200]
+str white, [fb, #204]
+str white, [fb, #208]
+str white, [fb, #212]
+str white, [fb, #216]
+str white, [fb, #220]
+str white, [fb, #240]
+str white, [fb, #244]
+str white, [fb, #248]
+str white, [fb, #252]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #264]
+str white, [fb, #268]
+str white, [fb, #272]
+str white, [fb, #276]
+str white, [fb, #288]
+str white, [fb, #292]
+str white, [fb, #296]
+str white, [fb, #300]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #312]
+str white, [fb, #316]
+str white, [fb, #320]
+str white, [fb, #324]
+str white, [fb, #344]
+str white, [fb, #348]
+str white, [fb, #352]
+str white, [fb, #356]
+str white, [fb, #360]
+str white, [fb, #364]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+str white, [fb, #416]
+str white, [fb, #420]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #152]
+str white, [fb, #156]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #200]
+str white, [fb, #204]
+str white, [fb, #208]
+str white, [fb, #212]
+str white, [fb, #216]
+str white, [fb, #220]
+str white, [fb, #240]
+str white, [fb, #244]
+str white, [fb, #248]
+str white, [fb, #252]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #264]
+str white, [fb, #268]
+str white, [fb, #272]
+str white, [fb, #276]
+str white, [fb, #288]
+str white, [fb, #292]
+str white, [fb, #296]
+str white, [fb, #300]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #312]
+str white, [fb, #316]
+str white, [fb, #320]
+str white, [fb, #324]
+str white, [fb, #344]
+str white, [fb, #348]
+str white, [fb, #352]
+str white, [fb, #356]
+str white, [fb, #360]
+str white, [fb, #364]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+str white, [fb, #416]
+str white, [fb, #420]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #152]
+str white, [fb, #156]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #200]
+str white, [fb, #204]
+str white, [fb, #208]
+str white, [fb, #212]
+str white, [fb, #216]
+str white, [fb, #220]
+str white, [fb, #240]
+str white, [fb, #244]
+str white, [fb, #248]
+str white, [fb, #252]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #264]
+str white, [fb, #268]
+str white, [fb, #272]
+str white, [fb, #276]
+str white, [fb, #288]
+str white, [fb, #292]
+str white, [fb, #296]
+str white, [fb, #300]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #312]
+str white, [fb, #316]
+str white, [fb, #320]
+str white, [fb, #324]
+str white, [fb, #344]
+str white, [fb, #348]
+str white, [fb, #352]
+str white, [fb, #356]
+str white, [fb, #360]
+str white, [fb, #364]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+str white, [fb, #416]
+str white, [fb, #420]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #152]
+str white, [fb, #156]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #200]
+str white, [fb, #204]
+str white, [fb, #208]
+str white, [fb, #212]
+str white, [fb, #216]
+str white, [fb, #220]
+str white, [fb, #240]
+str white, [fb, #244]
+str white, [fb, #248]
+str white, [fb, #252]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #264]
+str white, [fb, #268]
+str white, [fb, #272]
+str white, [fb, #276]
+str white, [fb, #288]
+str white, [fb, #292]
+str white, [fb, #296]
+str white, [fb, #300]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #312]
+str white, [fb, #316]
+str white, [fb, #320]
+str white, [fb, #324]
+str white, [fb, #344]
+str white, [fb, #348]
+str white, [fb, #352]
+str white, [fb, #356]
+str white, [fb, #360]
+str white, [fb, #364]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+str white, [fb, #416]
+str white, [fb, #420]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #152]
+str white, [fb, #156]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #200]
+str white, [fb, #204]
+str white, [fb, #208]
+str white, [fb, #212]
+str white, [fb, #216]
+str white, [fb, #220]
+str white, [fb, #240]
+str white, [fb, #244]
+str white, [fb, #248]
+str white, [fb, #252]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #264]
+str white, [fb, #268]
+str white, [fb, #272]
+str white, [fb, #276]
+str white, [fb, #288]
+str white, [fb, #292]
+str white, [fb, #296]
+str white, [fb, #300]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #312]
+str white, [fb, #316]
+str white, [fb, #320]
+str white, [fb, #324]
+str white, [fb, #344]
+str white, [fb, #348]
+str white, [fb, #352]
+str white, [fb, #356]
+str white, [fb, #360]
+str white, [fb, #364]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+str white, [fb, #416]
+str white, [fb, #420]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #104]
+str white, [fb, #108]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #384]
+str white, [fb, #388]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #104]
+str white, [fb, #108]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #384]
+str white, [fb, #388]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #104]
+str white, [fb, #108]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #384]
+str white, [fb, #388]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #104]
+str white, [fb, #108]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #384]
+str white, [fb, #388]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #104]
+str white, [fb, #108]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #384]
+str white, [fb, #388]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #104]
+str white, [fb, #108]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #384]
+str white, [fb, #388]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #104]
+str white, [fb, #108]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #384]
+str white, [fb, #388]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #104]
+str white, [fb, #108]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #384]
+str white, [fb, #388]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #200]
+str white, [fb, #204]
+str white, [fb, #208]
+str white, [fb, #212]
+str white, [fb, #216]
+str white, [fb, #220]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #200]
+str white, [fb, #204]
+str white, [fb, #208]
+str white, [fb, #212]
+str white, [fb, #216]
+str white, [fb, #220]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #200]
+str white, [fb, #204]
+str white, [fb, #208]
+str white, [fb, #212]
+str white, [fb, #216]
+str white, [fb, #220]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #200]
+str white, [fb, #204]
+str white, [fb, #208]
+str white, [fb, #212]
+str white, [fb, #216]
+str white, [fb, #220]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #200]
+str white, [fb, #204]
+str white, [fb, #208]
+str white, [fb, #212]
+str white, [fb, #216]
+str white, [fb, #220]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #200]
+str white, [fb, #204]
+str white, [fb, #208]
+str white, [fb, #212]
+str white, [fb, #216]
+str white, [fb, #220]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #200]
+str white, [fb, #204]
+str white, [fb, #208]
+str white, [fb, #212]
+str white, [fb, #216]
+str white, [fb, #220]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #200]
+str white, [fb, #204]
+str white, [fb, #208]
+str white, [fb, #212]
+str white, [fb, #216]
+str white, [fb, #220]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #416]
+str white, [fb, #420]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #416]
+str white, [fb, #420]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #416]
+str white, [fb, #420]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #416]
+str white, [fb, #420]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #416]
+str white, [fb, #420]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #416]
+str white, [fb, #420]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #416]
+str white, [fb, #420]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #336]
+str white, [fb, #340]
+str white, [fb, #368]
+str white, [fb, #372]
+str white, [fb, #416]
+str white, [fb, #420]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #152]
+str white, [fb, #156]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #240]
+str white, [fb, #244]
+str white, [fb, #248]
+str white, [fb, #252]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #264]
+str white, [fb, #268]
+str white, [fb, #272]
+str white, [fb, #276]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #344]
+str white, [fb, #348]
+str white, [fb, #352]
+str white, [fb, #356]
+str white, [fb, #360]
+str white, [fb, #364]
+str white, [fb, #384]
+str white, [fb, #388]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #152]
+str white, [fb, #156]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #240]
+str white, [fb, #244]
+str white, [fb, #248]
+str white, [fb, #252]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #264]
+str white, [fb, #268]
+str white, [fb, #272]
+str white, [fb, #276]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #344]
+str white, [fb, #348]
+str white, [fb, #352]
+str white, [fb, #356]
+str white, [fb, #360]
+str white, [fb, #364]
+str white, [fb, #384]
+str white, [fb, #388]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #152]
+str white, [fb, #156]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #240]
+str white, [fb, #244]
+str white, [fb, #248]
+str white, [fb, #252]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #264]
+str white, [fb, #268]
+str white, [fb, #272]
+str white, [fb, #276]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #344]
+str white, [fb, #348]
+str white, [fb, #352]
+str white, [fb, #356]
+str white, [fb, #360]
+str white, [fb, #364]
+str white, [fb, #384]
+str white, [fb, #388]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #152]
+str white, [fb, #156]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #240]
+str white, [fb, #244]
+str white, [fb, #248]
+str white, [fb, #252]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #264]
+str white, [fb, #268]
+str white, [fb, #272]
+str white, [fb, #276]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #344]
+str white, [fb, #348]
+str white, [fb, #352]
+str white, [fb, #356]
+str white, [fb, #360]
+str white, [fb, #364]
+str white, [fb, #384]
+str white, [fb, #388]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #152]
+str white, [fb, #156]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #240]
+str white, [fb, #244]
+str white, [fb, #248]
+str white, [fb, #252]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #264]
+str white, [fb, #268]
+str white, [fb, #272]
+str white, [fb, #276]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #344]
+str white, [fb, #348]
+str white, [fb, #352]
+str white, [fb, #356]
+str white, [fb, #360]
+str white, [fb, #364]
+str white, [fb, #384]
+str white, [fb, #388]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #152]
+str white, [fb, #156]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #240]
+str white, [fb, #244]
+str white, [fb, #248]
+str white, [fb, #252]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #264]
+str white, [fb, #268]
+str white, [fb, #272]
+str white, [fb, #276]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #344]
+str white, [fb, #348]
+str white, [fb, #352]
+str white, [fb, #356]
+str white, [fb, #360]
+str white, [fb, #364]
+str white, [fb, #384]
+str white, [fb, #388]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #152]
+str white, [fb, #156]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #240]
+str white, [fb, #244]
+str white, [fb, #248]
+str white, [fb, #252]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #264]
+str white, [fb, #268]
+str white, [fb, #272]
+str white, [fb, #276]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #344]
+str white, [fb, #348]
+str white, [fb, #352]
+str white, [fb, #356]
+str white, [fb, #360]
+str white, [fb, #364]
+str white, [fb, #384]
+str white, [fb, #388]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #96]
+str white, [fb, #100]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #152]
+str white, [fb, #156]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #192]
+str white, [fb, #196]
+str white, [fb, #224]
+str white, [fb, #228]
+str white, [fb, #240]
+str white, [fb, #244]
+str white, [fb, #248]
+str white, [fb, #252]
+str white, [fb, #256]
+str white, [fb, #260]
+str white, [fb, #264]
+str white, [fb, #268]
+str white, [fb, #272]
+str white, [fb, #276]
+str white, [fb, #304]
+str white, [fb, #308]
+str white, [fb, #344]
+str white, [fb, #348]
+str white, [fb, #352]
+str white, [fb, #356]
+str white, [fb, #360]
+str white, [fb, #364]
+str white, [fb, #384]
+str white, [fb, #388]
+str white, [fb, #392]
+str white, [fb, #396]
+str white, [fb, #400]
+str white, [fb, #404]
+str white, [fb, #408]
+str white, [fb, #412]
+add fb, #1280
diff --git a/src/graphics/bmp_no_os.inc b/src/graphics/bmp_no_os.inc
new file mode 100644
index 0000000..0955cb6
--- /dev/null
+++ b/src/graphics/bmp_no_os.inc
@@ -0,0 +1,842 @@
+ldr r2, =#282150
+add fb, r2
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #136]
+str white, [fb, #140]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+str white, [fb, #192]
+str white, [fb, #196]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #136]
+str white, [fb, #140]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+str white, [fb, #192]
+str white, [fb, #196]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #136]
+str white, [fb, #140]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+str white, [fb, #192]
+str white, [fb, #196]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #136]
+str white, [fb, #140]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+str white, [fb, #192]
+str white, [fb, #196]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #136]
+str white, [fb, #140]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+str white, [fb, #192]
+str white, [fb, #196]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #136]
+str white, [fb, #140]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+str white, [fb, #192]
+str white, [fb, #196]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #136]
+str white, [fb, #140]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+str white, [fb, #192]
+str white, [fb, #196]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #136]
+str white, [fb, #140]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+str white, [fb, #192]
+str white, [fb, #196]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #160]
+str white, [fb, #164]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #160]
+str white, [fb, #164]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #160]
+str white, [fb, #164]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #160]
+str white, [fb, #164]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #160]
+str white, [fb, #164]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #160]
+str white, [fb, #164]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #160]
+str white, [fb, #164]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #8]
+str white, [fb, #12]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #160]
+str white, [fb, #164]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #16]
+str white, [fb, #20]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #192]
+str white, [fb, #196]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #192]
+str white, [fb, #196]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #192]
+str white, [fb, #196]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #192]
+str white, [fb, #196]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #192]
+str white, [fb, #196]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #192]
+str white, [fb, #196]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #192]
+str white, [fb, #196]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #24]
+str white, [fb, #28]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #48]
+str white, [fb, #52]
+str white, [fb, #80]
+str white, [fb, #84]
+str white, [fb, #112]
+str white, [fb, #116]
+str white, [fb, #144]
+str white, [fb, #148]
+str white, [fb, #192]
+str white, [fb, #196]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #136]
+str white, [fb, #140]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #136]
+str white, [fb, #140]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #136]
+str white, [fb, #140]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #136]
+str white, [fb, #140]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #136]
+str white, [fb, #140]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #136]
+str white, [fb, #140]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #136]
+str white, [fb, #140]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+add fb, #1280
+str white, [fb, #0]
+str white, [fb, #4]
+str white, [fb, #32]
+str white, [fb, #36]
+str white, [fb, #56]
+str white, [fb, #60]
+str white, [fb, #64]
+str white, [fb, #68]
+str white, [fb, #72]
+str white, [fb, #76]
+str white, [fb, #120]
+str white, [fb, #124]
+str white, [fb, #128]
+str white, [fb, #132]
+str white, [fb, #136]
+str white, [fb, #140]
+str white, [fb, #160]
+str white, [fb, #164]
+str white, [fb, #168]
+str white, [fb, #172]
+str white, [fb, #176]
+str white, [fb, #180]
+str white, [fb, #184]
+str white, [fb, #188]
+add fb, #1280
diff --git a/src/graphics/core.S b/src/graphics/core.S
new file mode 100644
index 0000000..3851c0e
--- /dev/null
+++ b/src/graphics/core.S
@@ -0,0 +1,124 @@
+.section .text
+.globl init_graphics
+init_graphics:
+ push {lr}
+ @ set Video Controller resolution to 640x480x16bit
+ @ 16-bit, cause the 8-bit depth needs a palette
+ ldr r1, =vc_set_res
+ bl mb0_c8_write
+ bl mb0_c8_read
+ tst r0, #0x80000000
+ beq .vc_init_fail
+
+ @ get VC framebuffer address
+ ldr r1, =vc_alloc_fb
+ bl mb0_c8_write
+ bl mb0_c8_read
+ tst r0, #0x80000008
+ beq .vc_init_fail
+
+ @ check if the address is correct
+ ldr r0, [r1, #20]
+ cmp r0, #0
+ beq .vc_init_fail
+
+ @ draw "NO OS" text
+ @bl vc_draw_no_os_bmp
+ ldr r1, =vram_base
+ str r0, [r1]
+ pop {pc}
+
+.vc_init_fail:
+ ldr r1, =txt_vc_fail
+ bl uart_string
+ pop {pc}
+
+.globl draw_pix
+draw_pix:
+ push {lr, r0, r1, r2, r3, r4}
+ ldr r4, =vram_base
+ ldr r4, [r4]
+ mov r3, #2
+ mul r0, r3
+ add r4, r0
+ push {r2}
+ mov r2, #640
+ mul r2, r3
+ mul r3, r1, r2
+ add r4, r3
+ pop {r1}
+ str r1, [r4]
+ pop {pc, r0, r1, r2, r3, r4}
+
+@@@@@@@@@@@@@@@ VC @@@@@@@@@@@@@@
+
+.equ MBOX0, 0x3f00b880
+
+@ writes to mailbox #0, channel 8
+@ r1 - message
+mb0_c8_write:
+ message .req r1
+ mailbox .req r3
+ status .req r2
+
+ ldr mailbox, =MBOX0
+.mb0_full:
+ ldr status, [mailbox, #0x18]
+ tst status, #0x80000000 @ mailbox full flag
+ bne .mb0_full
+ add message, #8 @ channel 8
+ str message, [mailbox, #0x20] @ write addr
+ sub message, #8
+
+ .unreq mailbox
+ .unreq message
+ .unreq status
+ mov pc, lr
+
+@ reads from mailbox #0, channel 8
+@ r1 - message
+@ returns status in r0
+mb0_c8_read:
+ message .req r1
+ mailbox .req r2
+ status .req r3
+ value .req r4
+
+ ldr mailbox, =MBOX0
+.mb0_empty:
+ ldr status, [mailbox, #0x18]
+ tst status, #0x40000000 @ mailbox empty flag
+ bne .mb0_empty
+
+ ldr value, [mailbox] @ check if the message channel is 8
+ and r0, value, #0xf
+ teq r0, #8
+ bne .mb0_empty
+
+ ldr r0, [message, #4]
+ .unreq message
+ .unreq mailbox
+ .unreq status
+ .unreq value
+ mov pc, lr
+
+@ raspi mailbox requests, must be padded to 16 bytes
+.align 4
+vc_set_res: .word 80, 0 @ total size, code (0=req)
+ .word 0x00048003, 8, 8, 640, 480 @ set physical size (640x480)
+ .word 0x00048004, 8, 8, 640, 480 @ set virtual size (640x480)
+ .word 0x00048005, 4, 4, 16 @ set depth (16-bit)
+ .word 0, 0, 0, 0 @ end tag & padding
+
+vc_alloc_fb: .word 32, 0 @ total size, code (0=req)
+ .word 0x00040001, 8, 4, 16, 0 @ allocate framebuffer
+ .word 0 @ end tag & padding
+
+.align 2
+txt_welcome: .asciz "No OS installed\r\n"
+txt_vc_fail: .asciz "VC initialization failed\r\n"
+
+.align 2
+.globl vram_base
+vram_base: .word 0,0
+vmem: .word 0xFFFF
diff --git a/src/graphics/draw.c b/src/graphics/draw.c
new file mode 100644
index 0000000..62fd0f8
--- /dev/null
+++ b/src/graphics/draw.c
@@ -0,0 +1,10 @@
+#include "../graphics/draw.h"
+#include "../sys/core.h"
+
+void draw_box(unsigned short color, unsigned short x, unsigned short y, unsigned short dx, unsigned short dy) {
+ for(int i = 0; i < dy; i++) {
+ for(int j = 0; j < dx; j++) {
+ draw_pix(x+j, y+i, color);
+ }
+ }
+}
diff --git a/src/graphics/draw.h b/src/graphics/draw.h
new file mode 100644
index 0000000..4bc9816
--- /dev/null
+++ b/src/graphics/draw.h
@@ -0,0 +1,16 @@
+#ifndef GRAPHICS_DRAW_H
+#define GRAPHICS_DRAW_H
+
+enum {
+ SWIDTH = 640,
+ SHEIGHT = 480,
+ BPP = 16
+};
+
+extern unsigned long vram_base;
+extern void clear_screen();
+extern void draw_pix(unsigned long, unsigned long, unsigned short);
+
+void draw_box(unsigned short, unsigned short, unsigned short, unsigned short, unsigned short);
+
+#endif