Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. VERA_ADDR_LO = $9f20
  2. VERA_ADDR_MID = $9f21
  3. VERA_ADDR_HI = $9f22
  4. VERA_DATA0 = $9f23
  5.  
  6. verareg =$9f20
  7.  
  8. veralo = verareg+0
  9. veramid = verareg+1
  10. verahi = verareg+2
  11. veradat = verareg+3
  12. veradat2= verareg+4
  13. veractl = verareg+5
  14. veraien = verareg+6
  15. veraisr = verareg+7
  16.  
  17. vreg_cmp = $F0000
  18. vreg_pal = $F1000
  19. vreg_lay1 = $F2000
  20. vreg_lay2 = $F3000
  21. vreg_spr = $F4000
  22. vreg_sprd = $F5000
  23.  
  24. AUTO_INC_1 = $100000
  25.  
  26. .macro vset addr
  27. lda #<(addr >> 16) | $10
  28. sta verahi
  29. lda #<(addr >> 8)
  30. sta veramid
  31. lda #<(addr)
  32. sta veralo
  33. .endmacro
  34.  
  35. .segment "CODE"
  36.  
  37. .word $0801 ; load address
  38. .word $080b ; address of next basic line
  39. .word 2019 ; line number
  40. .byte $9E ; SYS token
  41. .byte '2', '0', '6', '1'
  42. .byte $00 ; end of BASIC line
  43. .word 0 ; BASIC end marker
  44.  
  45. sei
  46.  
  47. ; video init
  48. lda #0
  49. sta veractl ; set ADDR1 active
  50. sta veramid
  51. lda #$1F ; $F0000 increment 1
  52. sta verahi
  53. lda #$00
  54. sta veralo
  55. lda #1
  56. sta veradat ; VGA output
  57.  
  58. vset (0 | AUTO_INC_1)
  59.  
  60. lda #0
  61. sta 4
  62. lda #$2c
  63. sta 5
  64. lda #1
  65. sta 6
  66. ldy #0
  67. lda #<bitmap
  68. sta 2
  69. lda #>bitmap
  70. sta 3
  71. loop1: lda (2),y
  72. sta veradat
  73. inc 2
  74. bne loop2
  75. inc 3
  76. lda #$9f
  77. cmp 3
  78. bne test2
  79. ; start RAM bank address
  80. lda #$a0
  81. sta 3
  82. lda #0
  83. sta $9f61
  84. test2:
  85. ; test for next RAM bank
  86. lda #$c0
  87. cmp 3
  88. bne loop2
  89. lda #$a0
  90. sta 3
  91. inc $9f61
  92. loop2:
  93. dec 4
  94. lda 4
  95. cmp #$ff
  96. bne loop1
  97. dec 5
  98. lda 5
  99. cmp #$ff
  100. bne loop1
  101. dec 6
  102. bpl loop1
  103.  
  104. vset (vreg_pal | AUTO_INC_1)
  105.  
  106. ldx #2
  107. ldy #0
  108. lda #<palette
  109. sta 2
  110. lda #>palette
  111. sta 3
  112. loop3: lda (2),y
  113. sta veradat
  114. iny
  115. bne loop3
  116. inc 3
  117. dex
  118. bne loop3
  119.  
  120. vset (vreg_lay2 | AUTO_INC_1)
  121.  
  122. lda #0
  123. sta veradat
  124.  
  125. vset (vreg_lay1 | AUTO_INC_1)
  126.  
  127. lda #7 << 5 | 1; // mode=7, enabled=1
  128. sta veradat ; 0
  129. ; ignore
  130. sta veradat ; 1
  131. ; ignore
  132. sta veradat ; 2
  133. ; ignore
  134. sta veradat ; 3
  135. lda #(0 >> 2) & $ff; // map_base
  136. sta veradat; 4
  137. lda #0 >> 10;
  138. sta veradat ; 5
  139.  
  140. vset (vreg_cmp + 1 | AUTO_INC_1)
  141.  
  142. lda #64
  143. sta veradat ; hscale=2x
  144. sta veradat ; vscale=2x
  145.  
  146.  
  147.  
  148. stop: jmp stop
  149.  
  150. palette:
  151. .incbin "mode7-palette.bin"
  152.  
  153. bitmap:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement