10 PRINT CHR$(26)
20 GRAF$="S"
30 M=15:M1=25:M2=75
40 GOSUB 80
50 M=30:M1=38:M2=68
60 GOSUB 80
70 END
80 FOR N = M1 TO M2 STEP 25
90 FOR X1 = -15 TO 15
100 Y1 = INT(.65*(SQR(15^2 - X1^2))+.5)
110 X = X1+N
120 Y = M + Y1
130 GOSUB 10000
140 Y = M - Y1
150 GOSUB 10000
160 NEXT X1
170 NEXT N
180 RETURN
10000 IF (X<0) OR (X>255) OR (Y<0) OR (Y>63) THEN RETURN
10010 GRAFPOHJA = PEEK(61440! + INT(Y/2)*128+INT(X/2))
10020 IF INT(X/2)<X/2 THEN GRAFX=3 ELSE GRAFX=12
10030 IF INT(Y/2)<Y/2 THEN GRAFY=5 ELSE GRAFY=10
10040 GRAFOS=GRAFX AND GRAFY
10050 GRAFTAUL$="`GTDFXBCRNWEAZQV"
10060 GRAFNUM=16
10070 WHILE ASC(MID$(GRAFTAUL$,GRAFNUM))-64 <> GRAFPOHJA
10080 GRAFNUM=GRAFNUM-1:IF GRAFNUM=1 THEN GRAFPOHJA=32
10090 WEND
10100 GRAFNUM=GRAFNUM-1
10110 GRAFMASKI=GRAFNUM OR GRAFOS
10120 IF GRAF$="C" THEN GRAFMASKI=GRAFNUM AND NOT(GRAFOS)
10130 IF GRAF$="X" THEN GRAFMASKI=GRAFNUM XOR GRAFOS
10140 GRAFKOODI=ASC(MID$(GRAFTAUL$,GRAFMASKI+1))-64
10150 PRINT CHR$(27)+"="+CHR$(INT(Y/2)+32)+CHR$(INT(X/2)+32);
10160 PRINT CHR$(27)+CHR$(103)+CHR$(GRAFKOODI)+CHR$(27)+CHR$(71)
10170 RETURN
