File CAM1.BAS

Directory of image this file is from
This file as a plain text file

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



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search