diff --git a/Atari/gr_basics.asm b/Atari/gr_basics.asm index f4e9d5e..5bd09ea 100644 --- a/Atari/gr_basics.asm +++ b/Atari/gr_basics.asm @@ -641,13 +641,22 @@ EndPut4x4 ;-------------------------------------------------- .proc ClearScreen ;-------------------------------------------------- - mwa #display temp -Go ldy #0 -@ lda #$ff + ldy #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 diff --git a/Atari/textproc.asm b/Atari/textproc.asm index 8ca3c4c..ec2fc6e 100644 --- a/Atari/textproc.asm +++ b/Atari/textproc.asm @@ -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 diff --git a/C64/gr_basics.asm b/C64/gr_basics.asm index 03465f8..a95d2f7 100644 --- a/C64/gr_basics.asm +++ b/C64/gr_basics.asm @@ -598,6 +598,24 @@ EndPut4x4 cpw temp #displayC64+screenheight*screenBytes+1 bne @- rts + + ldy #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 ;-------------------------------------------------- diff --git a/scorch.xex b/scorch.xex index 45befe3..0037169 100644 Binary files a/scorch.xex and b/scorch.xex differ