Last active
August 31, 2018 17:14
-
-
Save nurpax/eb31c46341eaccf4d6e256b55d5f047b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.const zptmp0 = $60 | |
.const zptmp1 = $62 | |
.const zptmp2 = $64 | |
.const zptmp3 = $68 | |
.const zp_dstptr = zptmp0 | |
.const zp_srcptr = zptmp1 | |
.const zp_nlines = zptmp2 | |
.macro mov16imm(res, v) { | |
lda #<v | |
sta res+0 | |
lda #>v | |
sta res+1 | |
} | |
.macro add16_imm8(res, lo) { | |
clc | |
lda res | |
adc #lo | |
sta res+0 | |
lda res+1 | |
adc #0 | |
sta res+1 | |
} | |
.macro copyscreen(buf0, buf1, starty, numlines) { | |
lda dbl_buf | |
and #1 | |
bne screen_0_to_1 | |
mov16imm(zp_srcptr, buf0 + starty*40+1) | |
mov16imm(zp_dstptr, buf1 + starty*40) | |
jmp start | |
screen_0_to_1: | |
mov16imm(zp_srcptr, buf1 + starty*40+1) | |
mov16imm(zp_dstptr, buf0 + starty*40) | |
start: | |
lda #numlines | |
sta zp_nlines | |
jsr blit_screen | |
} | |
blit_screen: | |
ldx #0 | |
yloop: | |
ldy #0 | |
xloop: | |
lda (zp_srcptr),y | |
sta (zp_dstptr),y | |
iny | |
lda (zp_srcptr),y | |
sta (zp_dstptr),y | |
iny | |
lda (zp_srcptr),y | |
sta (zp_dstptr),y | |
iny | |
lda (zp_srcptr),y | |
sta (zp_dstptr),y | |
iny | |
cpy #36 | |
bne xloop | |
lda (zp_srcptr),y | |
sta (zp_dstptr),y | |
iny | |
lda (zp_srcptr),y | |
sta (zp_dstptr),y | |
iny | |
lda (zp_srcptr),y | |
sta (zp_dstptr),y | |
iny | |
add16_imm8(zp_dstptr, 40) | |
add16_imm8(zp_srcptr, 40) | |
inx | |
cpx zp_nlines | |
bne yloop | |
rts |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment