Changes
From a software point of view, just read the port and add its value to your position variable.
== Text Cursor ==
<pre>
10 MODE 2:BORDER 0
20 s=1:'sensitivity can also be fractional
30 w=80:h=25
40 x=w*0.5:y=h*0.5
50 LOCATE x,y:PRINT"*":
60 xp=x:yp=y
70 xo=INP(&F994):yo=INP(&F995):a=INP(&F991)
80 IF xo>7 THEN xo=xo-255
90 IF yo>7 THEN yo=yo-255
100 x=x+xo*s
110 y=y+yo*s
120 LOCATE 1,1:IF a AND 16 THEN PRINT"LEFT " ELSE IF a AND 32 THEN PRINT"RIGHT " ELSE IF a AND 64 THEN PRINT"MIDDLE" ELSE PRINT" "
130 IF x<1 THEN x=1
140 IF x>w THEN x=w
150 IF y<1 THEN y=1
160 IF y>h THEN y=h
170 IF x<>xp OR y<>yp THEN FRAME:LOCATE xp,yp:PRINT" ";:LOCATE x,y:PRINT"*";
180 GOTO 60
</pre>
== Graphics Cursor ==
<pre>
10 MODE 2:BORDER 0
20 s=8:'sensitivity can also be fractional
30 w=640:h=400
40 x=w*0.5:y=h*0.5
50 TAG:MOVE x,h-y:PRINT"^";
60 xp=x:yp=y
70 xo=INP(&F994):yo=INP(&F995):a=INP(&F991)
80 IF xo>7 THEN xo=xo-255
90 IF yo>7 THEN yo=yo-255
100 x=x+xo*s
110 y=y+yo*s
120 TAGOFF:LOCATE 1,1:IF a AND 16 THEN PRINT"LEFT " ELSE IF a AND 32 THEN PRINT"RIGHT " ELSE IF a AND 64 THEN PRINT"MIDDLE" ELSE PRINT" "
130 IF x<1 THEN x=1
140 IF x>w THEN x=w
150 IF y<1 THEN y=1
160 IF y>h THEN y=h
170 IF x<>xp OR y<>yp THEN FRAME:TAG:MOVE xp,h-yp:PRINT" ";:MOVE x,h-y:PRINT"^";
180 GOTO 60
</pre>
== Downloads ==