5 DIM X(75), Y(75) 10 L=1 20 Y0=-36 30 Y1=36 40 X0=-13.5 50 X1=13.5 60 GOSUB 1100 100 P=10 105 'GO TO STARTING POINT 110 X=12 120 Y=-36 130 GOSUB 1300 135 ' DRAW X AXIS 140 L=0 150 X=-12 160 GOSUB 1300 162 L=0 164 Y=36 166 X=-12 168 GOSUB 1300 170 X=-12 172 L=1 174 GOSUB 1300 175 GOSUB 600 176 Y9=-36 177 J=0 178 Y9=-36 180 FOR K=0 TO 5 185 L=1 190 X=-12 193 I=2*K+1 195 J=J+1 200 Y=Y9+I 202 Y(J)=Y 205 GOSUB 1300 210 L=0 215 X=-12 + (K+1) 216 X(J)=X 220 GOSUB 1300 225 Y9=Y 235 NEXT K 249 J=6 250 FOR K=5 TO 0 STEP -1 255 L=1 260 X=-12 265 I=2*K+1 269 J=J+1 270 Y=Y9+I 272 Y(J)=Y 275 GOSUB 1300 280 L=0 285 X=-12 + J 286 X(J)=X 290 GOSUB 1300 295 Y9=Y 300 NEXT K 309 J=12 310 FOR K=0 TO 5 315 L=1 320 X=12 325 I=2*K+1 329 J=J+1 330 Y=Y9 332 Y(J)=Y 335 GOSUB 1300 340 L=0 345 X=(J-1)-12 346 X(J)=X 350 GOSUB 1300 355 Y9=Y-I 360 NEXT K 379 J=18 380 FOR K=5 TO 0 STEP -1 385 L=1 390 X=12 395 I=2*K+1 399 J=J+1 400 Y=Y9 402 Y(J)=Y 405 GOSUB 1300 410 L=0 415 X=(J-1)-12 416 X(J)=X 420 GOSUB 1300 425 Y9=Y-I 430 NEXT K 440 L=1 445 X=-12 450 Y=-36 455 GOSUB 1300 460 FOR J=1 TO 24 465 L=0 470 X=X(J) 475 Y=Y(J) 480 GOSUB 1300 485 NEXT J 488 X=12 489 Y=-36 490 L=0 491 GOSUB 1300 495 GO TO 999 600 FOR K=1 TO 12 605 L=1 610 X=X+1 615 GOSUB 1300 620 L=0 625 Y=-36 630 GOSUB 1300 635 L=1 640 X=X+1 645 GOSUB 1300 650 L=0 655 Y=36 660 GOSUB 1300 665 NEXT K 670 RETURN 999 STOP 1100 ' INITIALIZATION 1110 PRINT 1120 PRINT CHR$(16); 1130 P9=0 1140 RETURN 1200 ' QUIT PLOTTING 1210 PRINT 1220 PRINT " "; 1230 RETURN 1300 ' POINT PLOTTER AT X,Y,L<>0 IS LIFT,X0,X1,Y0,Y1 1303 P8=0 1307 P6=0 1310 X2=INT(510*(X-X0)/(X1-X0))+INT(S)*P8 1320 Y2=INT(510*(Y-Y0)/(Y1-Y0))+INT(S)*P6 1330 IF L=0 THEN 1350 1340 L=64 1350 X3=X2-X3 1360 Y3=Y2-Y3 1370 P0=INT(ABS(X3)/50+ABS(Y3)/50)+1 1380 FOR P1=1 TO P0 1390 X4=X2-(X3/P0)*(P0-P1) 1400 Y4=Y2-(Y3/P0)*(P0-P1) 1410 P3=64+INT(X4/8) 1420 GOSUB 1700 1430 P3=64+INT(Y4/8) 1440 GOSUB 1700 1450 P3=INT(Y4)-INT(Y4/8)*8 1460 P3=P3+8*(INT(X4)-INT(X4/8)*8)+L 1470 IF P3<127 THEN 1490 1480 P3=126 1490 PRINT CHR$(P3); 1500 P9=P9+1 1510 IF P9<20 THEN 1540 1520 GOSUB 1100 1530 P9=0 1540 NEXT P1 1550 L=0 1560 X3=X2 1570 Y3=Y2 1580 RETURN 1700 IF P3<127 THEN 1720 1710 P3=63 1720 PRINT CHR$(P3); 1730 RETURN 1800 ' CHARACTER DRAWER AT X,Y,S=SIZE,C=CHARACTER (+SCALING) 1810 RESTORE 1820 FOR P0=0 TO C*14 1830 READ P8 1840 NEXT P0 1850 L=1 1860 FOR P7=1 TO 7 1870 READ P6 1880 IF P8=-1 THEN 1910 1885 IF P8=-2 THEN 1930 1890 GOSUB 1310 1895 READ P8 1900 NEXT P7 1910 L=1 1920 RETURN 1930 L=1 1940 GOTO 1895 2000 DATA 0,0,4,8,4,0,0,0,0,8,4,8,-1,-1 2003 DATA 0,6,2,8,2,0,0,0,4,0,-1,-1,-1,-1 2007 DATA 0,6,2,8,4,6,0,0,4,0,-1,-1,-1,-1 2010 DATA 0,8,4,8,2,4,4,4,4,0,0,0,-1,-1 2013 DATA 3,0,3,8,0,4,4,4,-1,-1,-1,-1,-1,-1 2017 DATA 4,8,0,8,0,5,2,5,4,3,2,0,0,0 2020 DATA 0,8,0,0,4,0,4,4,0,4,-1,-1,-1,-1 2023 DATA 0,8,4,8,0,0,-1,-1,-1,-1,-1,-1,-1,-1 2027 DATA 0,4,4,4,4,0,0,0,0,8,4,8,4,4 2030 DATA 4,0,4,8,0,8,0,4,4,4,-1,-1,-1,-1 2033 DATA 0,0,4,8,-2,0,0,8,4,0,-1,-1,-1,-1 2037 DATA 2,0,2,4,4,8,-2,0,0,8,2,4,-1,-1 2039 DATA -1,-1 2046 END