Compare commits
3 Commits
9794d93fb0
...
379d1c88fc
Author | SHA1 | Date | |
---|---|---|---|
|
379d1c88fc | ||
|
8ff3cb63da | ||
|
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"
|
||||
|
||||
VRAM_CHARS = $0000
|
||||
VRAM_BG1 = $1000
|
||||
|
||||
start:
|
||||
.include "init.asm"
|
||||
|
||||
; Set up the color palette
|
||||
stz CGADD
|
||||
; Set color zero to some color
|
||||
; $001f = %0000000000011111
|
||||
; bbbbbgggggrrrrr
|
||||
lda #$ff
|
||||
|
||||
; Color 0 - black
|
||||
lda #$00
|
||||
sta CGDATA
|
||||
lda #$00
|
||||
sta CGDATA
|
||||
|
||||
; Color 1 - red
|
||||
lda #$1f
|
||||
sta CGDATA
|
||||
lda #$00
|
||||
sta CGDATA
|
||||
|
||||
; Color 2 - blue
|
||||
lda #$e0
|
||||
sta CGDATA
|
||||
lda #$03
|
||||
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
|
||||
sta INIDISP
|
||||
|
||||
@ -31,3 +91,5 @@ nmi:
|
||||
bit RDNMI
|
||||
_rti:
|
||||
rti
|
||||
|
||||
.include "charset.asm"
|
||||
|
Loading…
Reference in New Issue
Block a user