mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2024-11-21 23:30:58 +00:00
73 lines
1.3 KiB
NASM
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"
|