i tryed to do this a while ago but only came up with a funtion that would delete everything then print back all the stuff you want to keep, its very fast so you cant even tell that it happened.
that was the only way i found that worked best, it was like:
DEF CLEAR
CLS
(stuff here)
(anything like if you had numbers that change or count up here)
END
I've made this function a long time ago. This will erase all the character in a box that start on the point (X,Y) of size WxH.
DEF CLSBOX X,Y,W,H
VAR I
COLOR 0,0
FOR I=Y TO Y+H-1
IF I>30 THEN BREAK
IF DISPLAY()==1 && X>=40 THEN BREAK
IF DISPLAY()==0 && X>=50 THEN BREAK
LOCATE X,I
? " "*W;
NEXT
COLOR #TWHITE,0
END