Appears on
One of a series of library tapes. Programs on these tapes were renamed to a number series. This tape contained programs 20083 to 20120. These tapes were compiled by Tony Willing.
Source Code
5 DIM S$(255) 10 GO SUB 5000 11 GO SUB 1000 15 CLS 20 GO SUB 7000 35 IF P=1 THEN GO TO 200 40 LET R$=INKEY$: IF R$="" THEN GO TO 40 41 LET S$(A)=R$ 42 LET A=A+1 43 IF A=255 THEN PRINT "BUFFER FULL": STOP 44 IF R$="E" THEN GO TO 10 50 GO SUB 3000 60 GO SUB 2000 70 DRAW C-PEEK (23677),D-PEEK (23678) 80 GO TO 40 200 GO SUB 6000 204 LET R$=INKEY$: IF R$="" THEN GO TO 205 210 GO TO 10 1000 LET S=L*L+M*M 1010 LET T=S+N*N 1020 LET Q=SQR (T) 1030 LET H=SQR (S) 1040 RETURN 2000 LET O=T-U*L-V*M-W*N 2010 LET C=T*(V*L-U*M)*4/(H*O)+128 2020 LET D=96+3*Q*(W*S-N*(U*L+V*M))/(H*O) 2286 RETURN 3000 IF R$="U" THEN LET W=W+G 3010 IF R$="D" THEN LET W=W-G 3020 IF R$="R" THEN LET U=U-G 3030 IF R$="L" THEN LET U=U+G 3040 IF R$="B" THEN LET V=V-G 3050 IF R$="F" THEN LET V=V+G 3060 RETURN 5000 CLS 5010 INPUT "SIZE?";G 5020 INPUT "X VIEWPOINT?";L 5030 INPUT "Y VIEWPOINT?";M 5040 INPUT "Z VIEWPOINT?";N 5050 LET A=1 5061 PRINT "'G'-GET"'"'P'-PUT"'"'R'-RANDOM" 5070 LET R$=INKEY$: IF R$="" THEN GO TO 5070 5080 IF R$="G" THEN LET P=1: GO TO 5110 5090 IF R$="P" THEN LET P=0: GO TO 5110 5093 IF R$="R" THEN GO TO 8000 5100 GO TO 5070 5110 RETURN 6000 GO SUB 7000 6010 LET R$=S$(A) 6020 GO SUB 3000 6030 GO SUB 2000 6040 DRAW C-PEEK (23677),D-PEEK (23678) 6050 LET A=A+1 6060 IF S$(A)<>"E" AND A<>255 THEN GO TO 6010 6070 RETURN 7000 LET W=0: LET U=0: LET V=0: GO SUB 2000 7010 PLOT C,D 7020 RETURN 8000 LET A=1: LET G=20: LET L=RND*100: LET M=RND*100: LET N=RND*100 8003 CLS 8010 GO SUB 6000 8030 GO TO 8000 9000 SAVE "3-D" 9010 STOP