Okay, here is an example using the latest Grammer features for grayscale-- a grayscale cursor!
π9872→P ;This sets P equal to 9872h. This will be the location of the other buffer.
ClrDrawP ;Clears the buffer at P
Disp ºP ;Sets the buffer at P as the gray buffer
Lbl ".→Z ;Locates label named "." and stores that to Z. Better to search once than every loop!
0→X→Y
Repeat getKey(15 ;repeats the loop until clear is pressed
Repeat 1 ;repeats until 1 is not zero (so it only cycles once). This is a great trick.
.. ;This is a label. Sub routines use the End statement to end and so does Repeat >.>
Line(X,Y,6,6,2,P ;Draws an inverted filled rectangle at X,Y of size 6x6 on the buffer P (the gray buffer)
Line(X,Y,6,6,2 ;This inverts the same region on the main buffer.
End ;Ends the repeat loop/subroutine
DispGraph ;Updates the LCD (in grayscale)
prgmZ ;executes the sub routine pointed to by Z
getKey(56 ;tests the delete key
If +getKey(9 ;tests if Ans or getKey(9 is valid
Line(X,Y,6,6,1-getKey(56 ;draws a white rectangle if delete is pressed, black otherwise
X+getKey(3
-getKey(2→X
Y+getKey(1
-getKey(4→Y
End
Stop
CRSRGRAY is 143 bytes on calc >.>