]> git.sur5r.net Git - cc65/blobdiff - libsrc/atmos/cclear.s
Add basic support for ORIC Atmos
[cc65] / libsrc / atmos / cclear.s
diff --git a/libsrc/atmos/cclear.s b/libsrc/atmos/cclear.s
new file mode 100644 (file)
index 0000000..1076967
--- /dev/null
@@ -0,0 +1,38 @@
+;
+; Ullrich von Bassewitz, 2003-04-13
+;
+; void cclearxy (unsigned char x, unsigned char y, unsigned char length);
+; void cclear (unsigned char length);
+;
+
+       .export         _cclearxy, _cclear
+        .import         setscrptr  
+        .import         rvs
+       .import         popax
+        .importzp       ptr2
+
+        .include        "atmos.inc"
+
+
+_cclearxy:
+               pha                     ; Save the length
+       jsr     popax           ; Get X and Y
+        sta     CURS_Y          ; Store Y
+        stx     CURS_X          ; Store X
+               pla                     ; Restore the length and run into _cclear
+
+_cclear:
+               tax                     ; Is the length zero?
+               beq     @L9             ; Jump if done
+        jsr     setscrptr       ; Set ptr2 to screen, won't use X
+        lda     #' '       
+        ora     rvs
+@L1:    sta     (ptr2),y        ; Write one char
+        iny                     ; Next char
+        bne     @L2
+        inc     ptr2+1          ; Bump high byte of screen pointer
+@L2:    dex
+        bne     @L1
+@L9:   rts
+
+