From 3c9aee9d6b1b38e79139fc43e8e542846e5c7cb9 Mon Sep 17 00:00:00 2001 From: 4am Date: Fri, 2 Mar 2018 14:20:17 -0500 Subject: [PATCH] refactor WGClearScreen --- painting.s | 91 ++++++++++++++++++++--------------------------------- weegui.dsk | Bin 143360 -> 143360 bytes 2 files changed, 34 insertions(+), 57 deletions(-) diff --git a/painting.s b/painting.s index b09d4de..84a5edc 100644 --- a/painting.s +++ b/painting.s @@ -7,80 +7,57 @@ ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; WGClearScreen -; Clears the text screen (assumes 80 cols) -; Side effects: Clobbers BASL,BASH -; -WGClearScreen: - - SAVE_AXY - SETSWITCH PAGE2OFF - ldx #23 - -WGClearScreen_lineLoop: - - lda TEXTLINES_L,x ; Compute video memory address of line - sta BASL - lda TEXTLINES_H,x - sta BASH - - ldy #39 - lda #' ' + $80 - -WGClearScreen_charLoop: - sta (BASL),y - SETSWITCH PAGE2ON - sta (BASL),y - SETSWITCH PAGE2OFF - dey - bpl WGClearScreen_charLoop - - dex - bpl WGClearScreen_lineLoop - - RESTORE_AXY - rts - - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; WGDesktop ; Paints the desktop pattern (assumes 80 cols) ; WGDesktop: + pha + lda #'W' + sta WGClearScreen_charPage1+1 + lda #'V' + bra WGClearScreen_common - SAVE_AXY +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; WGClearScreen +; Clears the text screen (assumes 80 cols) +; +WGClearScreen: + pha + lda #' ' + $80 + sta WGClearScreen_charPage1+1 +WGClearScreen_common: + sta WGClearScreen_charPage2+1 + SAVE_XY SETSWITCH PAGE2OFF ldx #23 - -WGDesktop_lineLoop: - lda TEXTLINES_L,x ; Compute video memory address of line - sta WGDesktop_charLoop+1 - sta WGDesktop_charLoop2+1 - lda TEXTLINES_H,x - sta WGDesktop_charLoop+2 - sta WGDesktop_charLoop2+2 - +WGClearScreen_lineLoop: + lda TEXTLINES_L,x ; Compute video memory address of line + sta WGClearScreen_charLoop1+1 + sta WGClearScreen_charLoop2+1 + lda TEXTLINES_H,x + sta WGClearScreen_charLoop1+2 + sta WGClearScreen_charLoop2+2 ldy #39 - lda #'W' -WGDesktop_charLoop: +WGClearScreen_charPage1: + lda #$FF ; Self-modifying code! +WGClearScreen_charLoop1: sta $FFFF,y ; Self-modifying code! dey - bpl WGDesktop_charLoop - + bpl WGClearScreen_charLoop1 SETSWITCH PAGE2ON ldy #39 - lda #'V' -WGDesktop_charLoop2: +WGClearScreen_charPage2: + lda #$FF ; Self-modifying code! +WGClearScreen_charLoop2: sta $FFFF,y ; Self-modifying code! dey - bpl WGDesktop_charLoop2 + bpl WGClearScreen_charLoop2 SETSWITCH PAGE2OFF - dex - bpl WGDesktop_lineLoop - - RESTORE_AXY + bpl WGClearScreen_lineLoop + RESTORE_XY + pla rts diff --git a/weegui.dsk b/weegui.dsk index c553ac9216e4021e63be9201d41e191347aca2e1..a7913c136e035de73e14dbda39f9b88b95b4b1b4 100644 GIT binary patch delta 5489 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 alP?*tH%pEJNb8Z~XU+Q_diWvJH~#~J)e+eM delta 5512 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