--- /dev/null
+;
+; 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
+
+