From 956d6a5376474f0f1e99977e466719f7eaa4063e Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Wed, 8 Dec 2021 17:28:22 -0700 Subject: Testing Graphics --- src/graphics/bmp_dendritos_logo.inc | 1930 +++++++++++++++++++++++++++++++++++ src/graphics/bmp_no_os.inc | 842 +++++++++++++++ src/graphics/core.S | 124 +++ src/graphics/draw.c | 10 + src/graphics/draw.h | 16 + 5 files changed, 2922 insertions(+) create mode 100644 src/graphics/bmp_dendritos_logo.inc create mode 100644 src/graphics/bmp_no_os.inc create mode 100644 src/graphics/core.S create mode 100644 src/graphics/draw.c create mode 100644 src/graphics/draw.h 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 -- cgit v1.2.1