Faster clearscreen

This commit is contained in:
Pecusx
2023-06-06 12:57:23 +02:00
parent ce12e076cc
commit 8a448a6e4b
4 changed files with 39 additions and 7 deletions
+15 -6
View File
@@ -641,13 +641,22 @@ EndPut4x4
;--------------------------------------------------
.proc ClearScreen
;--------------------------------------------------
mwa #display temp
Go ldy #0
@ lda #$ff
ldy #<display
lda #0
sta temp
lda #>display
sta temp+1
Go
loop lda #$ff
sta (temp),y
inw temp
cpw temp #display+screenheight*screenBytes+1
bne @-
iny
bne @+
inc temp+1
@ cpy #<(display+screenheight*screenBytes+1)
bne loop
lda temp+1
cmp #>(display+screenheight*screenBytes+1)
bne loop
rts
.endp
+6 -1
View File
@@ -16,7 +16,12 @@
; - money each player has on the beginning of the game (moneyL i moneyH)
; - and I am sure maxwind, gravity, no_of_rounds in a game, speed of shell flight
mwa #(display+40*140) temp ; we only need to clear last 60 lines (faster)
; we only need to clear last 60 lines (faster)
ldy #<(display+40*140)
lda #0
sta temp
lda #>(display+40*140)
sta temp+1
jsr clearscreen.Go ;let the screen be clean
; jsr clearscreen ;let the screen be clean
+18
View File
@@ -598,6 +598,24 @@ EndPut4x4
cpw temp #displayC64+screenheight*screenBytes+1
bne @-
rts
ldy #<displayC64
lda #0
sta temp
lda #>displayC64
sta temp+1
Go
loop lda #$ff
sta (temp),y
iny
bne @+
inc temp+1
@ cpy #<(displayC64+screenheight*screenBytes+1)
bne loop
lda temp+1
cmp #>(displayC64+screenheight*screenBytes+1)
bne loop
rts
.endp
;--------------------------------------------------
BIN
View File
Binary file not shown.