Part 2
This commit is contained in:
parent
9794d93fb0
commit
7e8671c071
38
homebrew-tutorial/charset.asm
Normal file
38
homebrew-tutorial/charset.asm
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
charset:
|
||||||
|
; tile 0x00
|
||||||
|
.byte %00000000
|
||||||
|
.byte %00000000
|
||||||
|
.byte %00000000
|
||||||
|
.byte %00000000
|
||||||
|
.byte %00000000
|
||||||
|
.byte %00000000
|
||||||
|
.byte %00000000
|
||||||
|
.byte %00000000
|
||||||
|
.byte %00000000
|
||||||
|
.byte %00000000
|
||||||
|
.byte %00000000
|
||||||
|
.byte %00000000
|
||||||
|
.byte %00000000
|
||||||
|
.byte %00000000
|
||||||
|
.byte %00000000
|
||||||
|
.byte %00000000
|
||||||
|
|
||||||
|
; tile 0x01
|
||||||
|
.byte %11111111 ; row 0, color 0
|
||||||
|
.byte %00000000 ; row 0, color 1
|
||||||
|
.byte %10000001 ; row 1, color 0
|
||||||
|
.byte %00000000 ; row 1, color 1
|
||||||
|
.byte %10000001 ; row 2, color 0
|
||||||
|
.byte %00000000 ; row 2, color 1
|
||||||
|
.byte %10000001 ; row 3, color 0
|
||||||
|
.byte %00001000 ; row 3, color 1
|
||||||
|
.byte %10011001 ; row 4, color 0
|
||||||
|
.byte %00001000 ; row 4, color 1
|
||||||
|
.byte %10000001 ; row 5, color 0
|
||||||
|
.byte %00000000 ; row 5, color 1
|
||||||
|
.byte %10000001 ; row 6, color 0
|
||||||
|
.byte %00000000 ; row 6, color 1
|
||||||
|
.byte %11111111 ; row 7, color 0
|
||||||
|
.byte %00000000 ; row 7, color 1
|
||||||
|
|
||||||
|
charset_end:
|
@ -8,19 +8,79 @@
|
|||||||
|
|
||||||
.segment "CODE"
|
.segment "CODE"
|
||||||
|
|
||||||
|
VRAM_CHARS = $0000
|
||||||
|
VRAM_BG1 = $1000
|
||||||
|
|
||||||
start:
|
start:
|
||||||
.include "init.asm"
|
.include "init.asm"
|
||||||
|
|
||||||
; Set up the color palette
|
; Set up the color palette
|
||||||
stz CGADD
|
stz CGADD
|
||||||
; Set color zero to some color
|
|
||||||
; $001f = %0000000000011111
|
; Color 0 - black
|
||||||
; bbbbbgggggrrrrr
|
lda #$00
|
||||||
lda #$ff
|
sta CGDATA
|
||||||
|
lda #$00
|
||||||
|
sta CGDATA
|
||||||
|
|
||||||
|
; Color 1 - red
|
||||||
|
lda #$1f
|
||||||
|
sta CGDATA
|
||||||
|
lda #$00
|
||||||
|
sta CGDATA
|
||||||
|
|
||||||
|
; Color 2 - blue
|
||||||
|
lda #$e0
|
||||||
sta CGDATA
|
sta CGDATA
|
||||||
lda #$03
|
lda #$03
|
||||||
sta CGDATA
|
sta CGDATA
|
||||||
|
|
||||||
|
; Color 3 - green
|
||||||
|
lda #$00
|
||||||
|
sta CGDATA
|
||||||
|
lda #$7c
|
||||||
|
sta CGDATA
|
||||||
|
|
||||||
|
; Graphics mode 0, 8x8 tiles
|
||||||
|
stz BGMODE
|
||||||
|
|
||||||
|
; Set BG1 and tile map and character data
|
||||||
|
lda #>VRAM_BG1
|
||||||
|
sta BG1SC
|
||||||
|
lda #VRAM_CHARS
|
||||||
|
sta BG12NBA
|
||||||
|
|
||||||
|
; Load character data into VRAM
|
||||||
|
lda #$80
|
||||||
|
sta VMAIN
|
||||||
|
ldx #VRAM_CHARS
|
||||||
|
stx VMADDL
|
||||||
|
@charset_loop:
|
||||||
|
lda charset,x
|
||||||
|
sta VMDATAL
|
||||||
|
inx
|
||||||
|
lda charset,x
|
||||||
|
sta VMDATAH
|
||||||
|
inx
|
||||||
|
cpx #(charset_end - charset)
|
||||||
|
bne @charset_loop
|
||||||
|
|
||||||
|
; write tile to position (1, 1)
|
||||||
|
TILE_X = 1
|
||||||
|
TILE_Y = 1
|
||||||
|
ldx #(VRAM_BG1 + (TILE_Y * 32) + TILE_X)
|
||||||
|
stx VMADDL
|
||||||
|
lda #$01 ; tile number
|
||||||
|
sta VMDATAL
|
||||||
|
stz VMDATAH
|
||||||
|
|
||||||
|
; Show bg1
|
||||||
|
lda #%00000001
|
||||||
|
sta TM
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
lda #$0f
|
lda #$0f
|
||||||
sta INIDISP
|
sta INIDISP
|
||||||
|
|
||||||
@ -31,3 +91,5 @@ nmi:
|
|||||||
bit RDNMI
|
bit RDNMI
|
||||||
_rti:
|
_rti:
|
||||||
rti
|
rti
|
||||||
|
|
||||||
|
.include "charset.asm"
|
||||||
|
Loading…
Reference in New Issue
Block a user