1  ' paint program for tandy 102
10 CLS:CLEAR:D=1:X=119:Y=31:KEY ON:S=1
20 ' d=1 draw, d=0 erase
30 PRINT @ 165, "Turn ON Num Lock NOW!":FOR Z=1 TO 100:SOUND 1,1:NEXT Z:CLS
40 CALL 16974
100 A$=INKEY$:IF A$<>"" THEN SOUND 1,1
110 IF D=1 THEN PRESET(X,Y):FOR Z=1 TO 20:NEXT Z:PSET(X,Y) ELSE PSET(X,Y):FOR Z=1 TO 20:NEXT Z:PRESET(X,Y)
120 IF A$="-" THEN D=0
130 IF A$="=" THEN D=1
140 IF A$="1" THEN X=X-S:Y=Y+S
150 IF A$="2" THEN Y=Y+S
160 IF A$="3" THEN Y=Y+S:X=X+S
170 IF A$="4" THEN X=X-S
180 'if a$="5" ?????????
190 IF A$="6" THEN X=X+S
200 IF A$="7" THEN X=X-S:Y=Y-S
210 IF A$="8" THEN Y=Y-S
220 IF A$="9" THEN X=X+S:Y=Y-S
230 'if a$="0" ?????????
240 IF A$=CHR$(28) THEN S=S+1
250 IF A$=CHR$(29) THEN S=S-1
260 IF A$=CHR$(30) THEN S=S+10
270 IF A$=CHR$(31) THEN S=S-10
280 ON KEY GOSUB 310,320,330,340,350,360,370,380
290 GOTO 400
310 X(1)=X:Y(1)=Y:SOUND 415,1:RETURN
320 X(2)=X:Y(2)=Y:SOUND 12538,1:RETURN
330 LINE (X(1),Y(1))-(X(2),Y(2)),1:RETURN
340 LINE (X(1),Y(1))-(X(2),Y(2)),0:RETURN
350 LINE (X(1),Y(1))-(X(2),Y(2)),1,B:RETURN
360 LINE (X(1),Y(1))-(X(2),Y(2)),0,B:RETURN
370 LINE (X(1),Y(1))-(X(2),Y(2)),1,BF:RETURN
380 LINE (X(1),Y(1))-(X(2),Y(2)),0,BF:RETURN
400 IF A$=CHR$(27) THEN GOTO 1000
410 IF A$=CHR$(9) THEN X=X(1):Y=Y(1)
420 IF A$=CHR$(8) THEN X=X(2):Y=Y(2)
430 IF A$="@" THEN CLS
440 IF A$="q" OR A$="Q" THEN X=3:Y=3
450 IF A$="w" OR A$="W" THEN X=119:Y=3
460 IF A$="e" OR A$="E" THEN X=236:Y=3
470 IF A$="a" OR A$="A" THEN X=3:Y=31
480 IF A$="s" OR A$="S" THEN X=119:Y=31
490 IF A$="d" OR A$="D" THEN X=236:Y=31
500 IF A$="z" OR A$="Z" THEN X=3:Y=60
510 IF A$="x" OR A$="X" THEN X=119:Y=60
520 IF A$="c" OR A$="C" THEN X=236:Y=60
900 IF S<1 THEN S=1 ELSE IF S>20 THEN S=20
910 IF X<0 THEN X=239 ELSE IF X>239 THEN X=0
920 IF Y<0 THEN Y=63 ELSE IF Y>63 THEN Y=0
999 GOTO 100
1000 M=179:PRINT @ 179,"";
1010 CALL 169691020 CALL 16959
1100 A$=INKEY$:IF A$<>"" THEN SOUND 1,1
1110 IF A$=CHR$(27) THEN CALL 16974:CALL 16964:CALL 17006:GOTO 100
1120 IF A$=CHR$(28) THEN M=M+1
1130 IF A$=CHR$(29) THEN M=M-1
1140 IF A$=CHR$(30) THEN M=M-40
1150 IF A$=CHR$(31)THEN M=M+40
1160 IF A$=CHR$(9) THEN M=M+5
1170 IF A$=CHR$(8) THEN M=M-5
1200 IF A$>CHR$(31) THEN PRINT @ M,A$;:M=M+1
1210 ON KEY GOSUB 1310,1320,1330,1340,1350,1360,1370,13801220 GOTO 1400
1310 CALL 17006:SOUND 10000,1:RETURN
1320 CALL 17001:SOUND 1000,1:RETURN
1330 RETURN
1340 RETURN
1350 RETURN
1360 RETURN
1370 RETURN
1380 RETURN
1400 IF A$=CHR$(13) THEN SOUND INT(RND(1)*12000+500),1
1880 IF M<0 THEN M=M+320
1890 IF M>319 THEN M=M-320
1910 PRINT @ M,"";
1990 GOTO 1100
2000 CALL 17006:CALL 16979:CALL 16964
