1 ' ETCH 3-D written by DAve Stewart 2 ' for the CLUB 100 5 CLS:GOTO 5000 10 CLEAR:RESTORE:CLS:DIM X(50),Y(50),XX(50),YY(50) 20 A=0:X=31:Y=31:BEEP:SOUND 9999,10:SOUND 8000,5:CLS 25 LINE (201,0)-(201,63) 99 'place points (corners) routine 100 PSET(X,Y):PRESET(X,Y):A$=INKEY$ 110 IF A$=CHR$(28) THEN X=X+1:IF X>199 THEN X=199:BEEP 120 IF A$=CHR$(29) THEN X=X-1 130 IF A$=CHR$(30) THEN Y=Y-1 140 IF A$=CHR$(31) THEN Y=Y+1:IF Y>62 THEN Y=62:BEEP 150 PSET(X,Y):SOUND 1,1:PRESET(X,Y) 200 IF A$=" " THEN A=A+1:X(A)=X:Y(A)=Y:PSET(X,Y):PSET(X-1,Y):PSET(X+1,Y):PSET(X,Y-1):PSET(X,Y+1):X=X-1:Y=Y-1:IF A>49 THEN GOTO 1000 210 IF Y<1 THEN Y=1:BEEP: ELSE IF X<1 THEN X=1:BEEP 300 PSET(X,Y):PRESET(X,Y):PSET(X,Y):PRESET(X,Y) 500 IF A$=CHR$(13) THEN GOTO 1000 999 GOTO 100 1000 CLS:FOR Z=2 TO A:LINE (X(Z-1),Y(Z-1))-(X(Z),Y(Z)):NEXT Z:LINE (X(A),Y(A))-(X(1),Y(1)) 1010 FOR Z=100 TO 10000 STEP 500:SOUND Z,3:NEXT Z 1020 FOR Z=1 TO A:XX(Z)=X(Z):YY(Z)=Y(Z):NEXT Z 1100 A$=INKEY$ 1110 IF A$=" " THEN 1200 1120 IF A$=CHR$(13) THEN 2000 1199 SOUND 100,1:GOTO 1100 1200 FOR Z=1 TO A 1210 XX(Z)=XX(Z)+1:IF XX(Z)>238 THEN Z=A:NEXT Z:GOTO 2000 1220 LINE (X(Z),Y(Z))-(XX(Z),YY(Z)) 1230 NEXT Z 1240 GOTO 1100 2000 A$="":FOR Z=2 TO A:LINE (XX(Z-1),YY(Z-1))-(XX(Z),YY(Z)):NEXT Z:LINE (XX(A),YY(A))-(XX(1),YY(1)) 2100 A$=INKEY$:IF A$<>CHR$(13) THEN GOTO 2100 ELSE GOTO 10 5000 PRINT:PRINT " ETCH 3-D, by DAve Stewart":PRINT 5010 PRINT "Use the cursor keys to plot your points." 5020 PRINT "Watch the moving pixel, press space when"; 5030 PRINT "you want to SET a point.":INPUT " (press [ENTER]) ";A$ 5040 CLS:PRINT:PRINT " Press [ENTER] when all points (up to" 5050 PRINT "50) are plotted. Use Space bar to 5060 PRINT "determine width. Press [ENTER] again. 5070 PRINT "Program will finish 3-D plot. 5080 INPUT Q 5090 CLS:PRINT:PRINT " To make your 3-D pictures look better,"; 5100 PRINT "offset your points, don't have two" 5110 PRINT "points on the same HORIZONTAL plane" 5120 INPUT " (press [ENTER]) ";A$:GOTO 10