8bitworkshop/presets/c64/viewer-badspacerobots-c64.m...

73 lines
1.3 KiB
NASM

processor 6502
include "basicheader.dasm"
Src equ $02
Dest equ $04
Start:
lda #$38 ; 25 rows, on, bitmap
sta $d011 ; VIC control #1
lda #$18 ; 40 column, multicolor
sta $d016 ; VIC control #2
lda #$02
sta $dd00 ; set VIC bank ($4000-$7FFF)
lda #$80
sta $d018 ; set VIC screen to $6000
lda XtraData+0
sta $d020 ; border
sta $d021 ; background
lda #0
sta Dest
; copy char memory
lda #<CharData
sta Src
lda #>CharData
sta Src+1
lda #$40
sta Dest+1
ldx #$20
jsr CopyMem
; copy screen memory
lda #<ScreenData
sta Src
lda #>ScreenData
sta Src+1
lda #$60
sta Dest+1
ldx #$04
jsr CopyMem
; copy color RAM
lda #<ColorData
sta Src
lda #>ColorData
sta Src+1
lda #$d8
sta Dest+1
ldx #4
jsr CopyMem
; infinite loop
jmp .
; copy data from Src to Dest
; X = number of bytes * 256
CopyMem
ldy #0
.Loop
lda (Src),y
sta (Dest),y
iny
bne .Loop
inc Src+1
inc Dest+1
dex
bne .Loop
rts
; bitmap data
CharData equ .
ScreenData equ CharData+8000
ColorData equ ScreenData+1000
XtraData equ ColorData+1000
incbin "badspacerobots-c64.multi.bin"