Advertisement
Guest User

x16 screen fill

a guest
Sep 28th, 2019
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         .cpu "65c02"
  2.  
  3.  
  4.     VERA_BASE   = $9f20
  5.  
  6.     VERA_ADDR_LO    = VERA_BASE + 0
  7.     VERA_ADDR_MID   = VERA_BASE + 1
  8.     VERA_ADDR_HI    = VERA_BASE + 2
  9.     VERA_DATA0  = VERA_BASE + 3
  10.     VERA_DATA1  = VERA_BASE + 4
  11.     VERA_CTRL   = VERA_BASE + 5
  12.     VERA_IEN    = VERA_BASE + 6
  13.     VERA_ISR    = VERA_BASE + 7
  14.  
  15.     VADDR_RAM   = $00000
  16.     VADDR_COMPOSER  = $f0000
  17.     VADDR_PALETTE   = $f1000
  18.     VADDR_LAYER0    = $f2000
  19.     VADDR_LAYER1    = $f3000
  20.     VADDR_SPRITE    = $f4000
  21.     VADDR_SPRITE_AT = $f5000
  22.     VADDR_AUDIO = $f6000
  23.     VADDR_SPI   = $f7000
  24.     VADDR_UART  = $f8000
  25.  
  26.     VL_CTRL0    = 0
  27.     VL_CTRL1    = 1
  28.     VL_MAP_BASE_L   = 2
  29.     VL_MAP_BASE_H   = 3
  30.     VL_TILE_BASE_L  = 4
  31.     VL_TILE_BASE_H  = 5
  32.     VL_HSCROLL_L    = 6
  33.     VL_HSCROLL_H    = 7
  34.     VL_VSCROLL_L    = 8
  35.     VL_VSCROLL_H    = 9
  36.    
  37.  
  38. vptr        .macro addr, incr=0
  39.         lda #(\addr)&$ff
  40.         sta VERA_ADDR_LO
  41.         lda #((\addr)>>8)&$ff
  42.         sta VERA_ADDR_MID
  43.         lda #(((\addr)>>16)&$0f)|((\incr)<<4)
  44.         sta VERA_ADDR_HI
  45.         .endm
  46.            
  47.         * = $0801
  48.  
  49.         .word (+), 2019
  50.         .null $9e, format("%d", start)
  51. +       .word 0
  52.  
  53.     L1START = $02000
  54.  
  55. start       lda #0
  56.         sta VERA_CTRL
  57.         vptr VADDR_LAYER1+VL_CTRL0, 1
  58.         lda #%11100001 ; mode 7, enable
  59.         sta VERA_DATA0 ; ctrl0
  60.         lda #%00110000 ; w=640
  61.         ;lda #%00000000 ; w=320
  62.         sta VERA_DATA0 ; ctrl1
  63.         lda #0
  64.         sta VERA_DATA0 ; map_base_l
  65.         sta VERA_DATA0 ; map_base_h
  66.         lda #(L1START>>2)&$ff
  67.         sta VERA_DATA0 ; tile_base_l
  68.         lda #(L1START>>10)&$ff
  69.         sta VERA_DATA0 ; tile_base_h
  70.         lda #0
  71.         sta VERA_DATA0 ; hscroll_l
  72.         sta VERA_DATA0 ; hscroll_h
  73.         sta VERA_DATA0 ; vscroll_l
  74.         sta VERA_DATA0 ; vscroll_h
  75.  
  76.         vptr L1START, 1
  77.         ; 640*480 = 150*128*16
  78.         lda #16
  79.         sta z
  80. _lz     ldy #128
  81. _ly     ldx #150
  82. _lx     lda #133 ; green
  83.         sta VERA_DATA0
  84.         dex
  85.         bne _lx
  86.         dey
  87.         bne _ly
  88.         lda z
  89.         sbc #1
  90.         sta z
  91.         bne _lz
  92.  
  93.         rts
  94.  
  95. z       .byte ?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement