GBAの画面を塗りつぶす
画面をRGB(赤、緑、青)で塗りつぶす。
解像度
横240ドット x 縦160ドット
各ドット16ビット(2バイト)の色情報
レッド
4~0ビット
0b0_00000_00000_11111 => 0x001F
グリーン
9~5ビット
0b0_00000_11111_00000 => 0b0000_0011_1110_0000 => 0x03E0
ブルー
14~10ビット
0b0_11111_00000_00000 => 0x7C00
(15ビット目は未使用)
VRAM
0x06000000からの80KB
VRAMアドレスと画面上のドットのとの対応
https://gyazo.com/b5e2a90e095a4577697f6142c61c2bb5
赤緑青の3色で塗りつぶす
code:rgb.s
.arm
.text
ldr r2, =0xF03 // Set video mode 3
strh r2, r1 // Update display control register ldr r4, =0x001F // RGB = 00/00/1F --> red
display_red:
bne display_red
ldr r4, =0x03E0 // RGB = 00/1F/00 --> green
display_green:
bne display_green
ldr r4, =0x7C00 // RGB = 1F/00/00 --> blue
display_blue:
bne display_blue
loop:
b loop
こんな感じ。
https://gyazo.com/cbbec4acaf9496b7b50ebe1aacb914ab