Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .cpu "65c02"
- VERA_BASE = $9f20
- VERA_ADDR_LO = VERA_BASE + 0
- VERA_ADDR_MID = VERA_BASE + 1
- VERA_ADDR_HI = VERA_BASE + 2
- VERA_DATA0 = VERA_BASE + 3
- VERA_DATA1 = VERA_BASE + 4
- VERA_CTRL = VERA_BASE + 5
- VERA_IEN = VERA_BASE + 6
- VERA_ISR = VERA_BASE + 7
- VADDR_RAM = $00000
- VADDR_COMPOSER = $f0000
- VADDR_PALETTE = $f1000
- VADDR_LAYER0 = $f2000
- VADDR_LAYER1 = $f3000
- VADDR_SPRITE = $f4000
- VADDR_SPRITE_AT = $f5000
- VADDR_AUDIO = $f6000
- VADDR_SPI = $f7000
- VADDR_UART = $f8000
- VL_CTRL0 = 0
- VL_CTRL1 = 1
- VL_MAP_BASE_L = 2
- VL_MAP_BASE_H = 3
- VL_TILE_BASE_L = 4
- VL_TILE_BASE_H = 5
- VL_HSCROLL_L = 6
- VL_HSCROLL_H = 7
- VL_VSCROLL_L = 8
- VL_VSCROLL_H = 9
- vptr .macro addr, incr=0
- lda #(\addr)&$ff
- sta VERA_ADDR_LO
- lda #((\addr)>>8)&$ff
- sta VERA_ADDR_MID
- lda #(((\addr)>>16)&$0f)|((\incr)<<4)
- sta VERA_ADDR_HI
- .endm
- * = $0801
- .word (+), 2019
- .null $9e, format("%d", start)
- + .word 0
- L1START = $02000
- start lda #0
- sta VERA_CTRL
- vptr VADDR_LAYER1+VL_CTRL0, 1
- lda #%11100001 ; mode 7, enable
- sta VERA_DATA0 ; ctrl0
- lda #%00110000 ; w=640
- ;lda #%00000000 ; w=320
- sta VERA_DATA0 ; ctrl1
- lda #0
- sta VERA_DATA0 ; map_base_l
- sta VERA_DATA0 ; map_base_h
- lda #(L1START>>2)&$ff
- sta VERA_DATA0 ; tile_base_l
- lda #(L1START>>10)&$ff
- sta VERA_DATA0 ; tile_base_h
- lda #0
- sta VERA_DATA0 ; hscroll_l
- sta VERA_DATA0 ; hscroll_h
- sta VERA_DATA0 ; vscroll_l
- sta VERA_DATA0 ; vscroll_h
- vptr L1START, 1
- ; 640*480 = 150*128*16
- lda #16
- sta z
- _lz ldy #128
- _ly ldx #150
- _lx lda #133 ; green
- sta VERA_DATA0
- dex
- bne _lx
- dey
- bne _ly
- lda z
- sbc #1
- sta z
- bne _lz
- rts
- z .byte ?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement