This might be more to your liking, it creates a Text Coordinate based Circle with a Radius of 2, I had to then find out how to Draw each point, a Circle with a Radius of 2 Draws a Circle with 16 points, so Dividing 360/16 gave me 22.5. The message then becomes 16 characters long, which I filled with Hash Characters.

Earlier, in my Diamond example I'd realised my initial c Loop isn't incrementing c at all and Line 130 isn't really doing anything as well as Lines 220-230 because it's stuck in an Infinite Loop, so removing those won't change anything.

The problem with these Circle examples is when the radius changes, the steps between each point changes and then the Length of the Message needs to change.

My first example uses a Radius of 2 which produces a Squarish circle using 16 points, so my String Message is 16 points long and is adjusted accordingly in Line 160. The steps for this becomes 360/16 = 22.5 and incremented in line 1010. The radius of 2 is set on Line 1020.

`100 MODE 0`

110 DEG

120 a$=CHR$(127)+"HELLO"+STRING$(10,127)

130 p=1:p2=1:a=0:c=0

140 WHILE 1

150 GOSUB 1000

160 p2=p2+1:IF p2=16 THEN p2=1

170 WEND

1000 WHILE c=a

1010 a=a+22.5

1020 x=10-2*COS(a):y=10-2*SIN(a)

1030 LOCATE x,y:PRINT MID$(a$,p2,1);

1040 WEND

1050 c=a

1060 RETURN

The second example I've altered the Radius to 5, so it looks more like a Circle, initially I had an odd looking Circle, which I fixed when I set 'a' and 'c' to 0 in line 130, the string size in 120 has been altered to 28 characters, which is the number of points used when a Circle with a Radius of 5 is created and apart from that the other change is the Length of the message in Line 160 to reflect the length of the message and the Radius itself in line 1020 becomes 5 instead of 2.

100 MODE 0

110 DEG

120 a$=CHR$(127)+"HELLO"+STRING$(22,127)

130 p=1:p2=1:a=0:c=0

140 WHILE 1

150 GOSUB 1000

160 p2=p2+1:IF p2=28 THEN p2=1

170 WEND

1000 WHILE c=a

1010 a=a+12.8571429

1020 x=10-5*COS(a):y=10-5*SIN(a)

1030 LOCATE x,y:PRINT MID$(a$,p2,1);

1040 WEND

1050 c=a

1060 RETURN

**EDIT:**In my last example with the Circle becomming larger, the whole drawing process slows down and it's only really necessary to Move the Hello Message along with the 1st character of the Hash, so here's an alternative which Draws the Circle initially (along with HELLO in it) and then works out where it has to move to.

`100 MODE 0`

110 DEG

120 a$=CHR$(127)+"HELLO"+STRING$(22,127)

130 p=1:p2=1:a=0:c=0:c2=1:f=1

140 FOR p2=1 TO 28:GOSUB 1000:NEXT p2

150 a=0:c=0:c2=1:p2=1:f=1

160 WHILE 1

170 GOSUB 1000

180 p2=p2+1:IF p2=28 THEN p2=1:f=1

190 IF p2>7 THEN f=0

200 WEND

1000 WHILE c<>c2

1010 a=a+12.8571429:c=c+1

1020 x=10-5*COS(a):y=10-5*SIN(a)

1030 IF f=1 THEN LOCATE x,y:PRINT MID$(a$,p2,1);

1040 WEND

1050 c=0

1060 RETURN

**EDIT2:**And if you don't like the Message moving backwards, it can be made to move Forwards like this:

`100 MODE 0`

110 DEG

120 a$=CHR$(127)+"HELLO"+STRING$(22,127)

130 a=0:c=0:c2=1:f=1

140 FOR p=1 TO 28:GOSUB 1000:NEXT p

150 a=0:c=0:c2=1:p=2:f=1

160 WHILE 1

170 GOSUB 1000

180 p=p+1:IF p=28 THEN p=1:f=1

190 IF p>7 THEN f=0

200 WEND

1000 WHILE c<>c2

1010 a=a-12.8571429:c=c+1

1020 x=10+5*COS(a):y=10+5*SIN(a)

1030 IF f=1 THEN LOCATE x,y:PRINT MID$(a$,p,1);

1040 WEND

1050 c=0

1060 RETURN