Blob Blame Raw
From 6f7f6b5119344a4cb855b5ea0b849b96a91701a7 Mon Sep 17 00:00:00 2001
From: jede <jede@oric.org>
Date: Wed, 10 Jul 2019 21:44:07 +0200
Subject: [PATCH 22/29] Fix label, optimize code

---
 libsrc/telestrat/clrscr.s    | 15 +++++++--------
 libsrc/telestrat/cputc.s     |  2 +-
 libsrc/telestrat/gotoxy.s    |  9 ++++++---
 libsrc/telestrat/gotoy.s     |  4 ----
 libsrc/telestrat/textcolor.s |  4 ++--
 5 files changed, 16 insertions(+), 18 deletions(-)

diff --git a/libsrc/telestrat/clrscr.s b/libsrc/telestrat/clrscr.s
index a24647f8..22a88012 100644
--- a/libsrc/telestrat/clrscr.s
+++ b/libsrc/telestrat/clrscr.s
@@ -30,14 +30,13 @@
     sta     ADSCRH
 
     ; reset display position
-    lda     #$01
-    sta     SCRY
-    lda     #$00
-    sta     SCRX
-
-    lda     #$00
-    sta     CHARCOLOR_CHANGE
-    sta     BGCOLOR_CHANGE
+    ldx     #$01
+    stx     SCRY
+    dex
+    stx     SCRX
+
+    stx     CHARCOLOR_CHANGE
+    stx     BGCOLOR_CHANGE
 
     lda     #$07
     sta     CHARCOLOR
diff --git a/libsrc/telestrat/cputc.s b/libsrc/telestrat/cputc.s
index 96763caf..d313d778 100644
--- a/libsrc/telestrat/cputc.s
+++ b/libsrc/telestrat/cputc.s
@@ -15,7 +15,7 @@
     dec     SCRX
     pha
     lda     CHARCOLOR
-    BRK_TELEMON  $4E             ; Change color on the screen (foreground)
+    BRK_TELEMON  XFWR             ; Change color on the screen (foreground)
     lda     #$00
     sta     CHARCOLOR_CHANGE
     inc     SCRX
diff --git a/libsrc/telestrat/gotoxy.s b/libsrc/telestrat/gotoxy.s
index 8dcb69e8..7a53a77a 100644
--- a/libsrc/telestrat/gotoxy.s
+++ b/libsrc/telestrat/gotoxy.s
@@ -23,14 +23,17 @@ gotoxy: jsr     popa            ; Get Y
         
         jsr     update_adscr          ; Update adress video ram position when SCRY et SCRX are modified
         ;       Force to put again attribute when it moves on the screen
-        lda     #$01
-        sta     CHARCOLOR_CHANGE
-        sta     BGCOLOR_CHANGE
+
         rts
 .endproc
 
 
 .proc update_adscr
+
+        lda     #$01
+        sta     CHARCOLOR_CHANGE
+        sta     BGCOLOR_CHANGE
+
         lda     #<SCREEN
         sta     ADSCRL
 
diff --git a/libsrc/telestrat/gotoy.s b/libsrc/telestrat/gotoy.s
index ae6a0bcf..13be8e42 100644
--- a/libsrc/telestrat/gotoy.s
+++ b/libsrc/telestrat/gotoy.s
@@ -2,7 +2,6 @@
 ; jede jede@oric.org 2017-02-25
 ;
     .export    _gotoy
-    .import    CHARCOLOR_CHANGE, BGCOLOR_CHANGE
 
     .import    update_adscr
 
@@ -14,8 +13,5 @@
 
    ; We change the current line, it means that we need to put color attributes again.
    ; That is not the case with _gotox because, it's on the same line attribute are already set
-   lda     #$01             
-   sta     CHARCOLOR_CHANGE
-   sta     BGCOLOR_CHANGE
    rts
 .endproc
diff --git a/libsrc/telestrat/textcolor.s b/libsrc/telestrat/textcolor.s
index b5584902..ee6ba729 100644
--- a/libsrc/telestrat/textcolor.s
+++ b/libsrc/telestrat/textcolor.s
@@ -9,11 +9,11 @@
 .proc _textcolor
     cmp     CHARCOLOR       ; Do we set the same color? If we don't detect it, we loose one char on the screen for each textcolor call with the same color
     bne     out             ; yes
-    
+
     ldy     #$00
     sty     CHARCOLOR_CHANGE
     
-    lda     CHARCOLOR       ; Return last color
+    ; Return last color
 
     rts
 out:
-- 
2.21.0