Home » CEEFAX disks » telesoftware7.adl » PICCY
PICCY
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » CEEFAX disks » telesoftware7.adl |
Filename: | PICCY |
Read OK: | ✔ |
File size: | 0592 bytes |
Load address: | 0800 |
Exec address: | 802B |
File contents
10REM 20REM 30REM 40REM 50MODE0:PROCvdu 60ltx%=-1:lty%=1:ltz%=-1 70sr=SQR(ltx%*ltx%+lty%*lty%+ltz%*ltz%) 80np%=790:s%=12 90DIM nd%(np%/s%+1),cd%(np%/s%+1) 100v%=50:cv=COSRAD(v%):sv=SINRAD(v%) 110T$="COS(2*r)*8" 120wx%=0:wy%=200:lx%=0:ly%=0 130hx%=10:hy%=10:mx%=(lx%+hx%)/2 140lz%=0:hz%=150:my%=(ly%+hy%)/2 150dx=(hx%-lx%)/np%:dy=(hy%-ly%)/np% 160dz=(hz%-lz%)/np% 170FORy%=np% TO 0 STEP -s% 180FORA%=1 TO np%/s%:cd%(A%)=nd%(A%):NEXT 190FORx%=0 TO np% STEP s% 200x=x%*dx+lx%:y=y%*dy+ly% 210r=SQR((mx%-x)*(mx%-x)+(my%-y)*(my%-y)) 220z%=EVAL(T$)/dz:nd%(x%/s%)=z% 230IF x%=0 OR y%=np% ELSE PROCplot(x%,y%,z%) 240z1%=z%:NEXT:NEXT:VDU4:END 250DEFPROCplot(x%,y%,z%) 260col%=FNcol(x%,y%,z%,x%-s%,y%,z1%,x%-s%,y%+s%,cd%(x%/s%-1),x%,y%+s%,cd%(x%/s%)) 270col%=col%/2.22 280xs%=wx%+x%+y%*cv:ys%=wy%+z%+y%*sv 290MOVE xs%,ys%:GCOL 2,0:VDU 137:GCOL 0,3:MOVE xs%,ys%:VDU 128+col% 300ENDPROC 310DEFFNcol(a1%,b1%,c1%,a2%,b2%,c2%,a3%,b3%,c3%,a4%,b4%,c4%) 320xc%=a1%-a3%:yc%=b1%-b3%:zc%=c1%-c3% 330xh%=a2%-a4%:yh%=b2%-b4%:zh%=c2%-c4% 340ann%=DEG(ACS((xc%*ltx%+yc%*lty%+zc%*ltz%)/(SQR(xc%*xc%+yc%*yc%+zc%*zc%)*sr))) 350ano%=DEG(ACS((xh%*ltx%+yh%*lty%+zh%*ltz%)/(SQR(xh%*xh%+yh%*yh%+zh%*zh%)*sr))) 360IF ann%>90 ann%=180-ann% 370IF ano%>90 ano%=180-ano% 380=ann%*ano%/405 390DEFPROCvdu:VDU23,128,0;0;0;0; 400VDU23,129,0;0;0;0,128 410VDU23,130,0;0;0,64,0,128 420VDU23,131,0;0;0,64,128,32 430VDU23,132,0;0;0,160,32,64 440VDU23,133,0;0;0,160,32,160 450VDU23,134,0;0;0,160,96,160 460VDU23,135,0;0;0,192,96,160 470VDU23,136,0;0;0,192,192,160 480VDU23,137,0;0;0,224,224,224,5 490ENDPROC
� � � (� 2�0:�vdu <ltx%=-1:lty%=1:ltz%=-1 F'sr=�(ltx%*ltx%+lty%*lty%+ltz%*ltz%) Pnp%=790:s%=12 Z!� nd%(np%/s%+1),cd%(np%/s%+1) dv%=50:cv=��(v%):sv=��(v%) nT$="COS(2*r)*8" xwx%=0:wy%=200:lx%=0:ly%=0 �!hx%=10:hy%=10:mx%=(lx%+hx%)/2 �!lz%=0:hz%=150:my%=(ly%+hy%)/2 �%dx=(hx%-lx%)/np%:dy=(hy%-ly%)/np% �dz=(hz%-lz%)/np% ��y%=np% � 0 � -s% �$�A%=1 � np%/s%:cd%(A%)=nd%(A%):� ��x%=0 � np% � s% �x=x%*dx+lx%:y=y%*dy+ly% �(r=�((mx%-x)*(mx%-x)+(my%-y)*(my%-y)) �z%=�(T$)/dz:nd%(x%/s%)=z% �%� x%=0 � y%=np% � �plot(x%,y%,z%) �z1%=z%:�:�:�4:� ���plot(x%,y%,z%) Qcol%=�col(x%,y%,z%,x%-s%,y%,z1%,x%-s%,y%+s%,cd%(x%/s%-1),x%,y%+s%,cd%(x%/s%)) col%=col%/2.22 %xs%=wx%+x%+y%*cv:ys%=wy%+z%+y%*sv "4� xs%,ys%:� 2,0:� 137:� 0,3:� xs%,ys%:� 128+col% ,� 6:ݤcol(a1%,b1%,c1%,a2%,b2%,c2%,a3%,b3%,c3%,a4%,b4%,c4%) @'xc%=a1%-a3%:yc%=b1%-b3%:zc%=c1%-c3% J'xh%=a2%-a4%:yh%=b2%-b4%:zh%=c2%-c4% TKann%=�(�((xc%*ltx%+yc%*lty%+zc%*ltz%)/(�(xc%*xc%+yc%*yc%+zc%*zc%)*sr))) ^Kano%=�(�((xh%*ltx%+yh%*lty%+zh%*ltz%)/(�(xh%*xh%+yh%*yh%+zh%*zh%)*sr))) h� ann%>90 ann%=180-ann% r� ano%>90 ano%=180-ano% |=ann%*ano%/405 ���vdu:�23,128,0;0;0;0; ��23,129,0;0;0;0,128 ��23,130,0;0;0,64,0,128 ��23,131,0;0;0,64,128,32 ��23,132,0;0;0,160,32,64 ��23,133,0;0;0,160,32,160 ��23,134,0;0;0,160,96,160 ��23,135,0;0;0,192,96,160 ��23,136,0;0;0,192,192,160 ��23,137,0;0;0,224,224,224,5 �� �
00000000 0d 00 0a 05 f4 0d 00 14 05 f4 0d 00 1e 05 f4 0d |................| 00000010 00 28 05 f4 0d 00 32 0b eb 30 3a f2 76 64 75 0d |.(....2..0:.vdu.| 00000020 00 3c 1a 6c 74 78 25 3d 2d 31 3a 6c 74 79 25 3d |.<.ltx%=-1:lty%=| 00000030 31 3a 6c 74 7a 25 3d 2d 31 0d 00 46 27 73 72 3d |1:ltz%=-1..F'sr=| 00000040 b6 28 6c 74 78 25 2a 6c 74 78 25 2b 6c 74 79 25 |.(ltx%*ltx%+lty%| 00000050 2a 6c 74 79 25 2b 6c 74 7a 25 2a 6c 74 7a 25 29 |*lty%+ltz%*ltz%)| 00000060 0d 00 50 11 6e 70 25 3d 37 39 30 3a 73 25 3d 31 |..P.np%=790:s%=1| 00000070 32 0d 00 5a 21 de 20 6e 64 25 28 6e 70 25 2f 73 |2..Z!. nd%(np%/s| 00000080 25 2b 31 29 2c 63 64 25 28 6e 70 25 2f 73 25 2b |%+1),cd%(np%/s%+| 00000090 31 29 0d 00 64 1d 76 25 3d 35 30 3a 63 76 3d 9b |1)..d.v%=50:cv=.| 000000a0 b2 28 76 25 29 3a 73 76 3d b5 b2 28 76 25 29 0d |.(v%):sv=..(v%).| 000000b0 00 6e 13 54 24 3d 22 43 4f 53 28 32 2a 72 29 2a |.n.T$="COS(2*r)*| 000000c0 38 22 0d 00 78 1d 77 78 25 3d 30 3a 77 79 25 3d |8"..x.wx%=0:wy%=| 000000d0 32 30 30 3a 6c 78 25 3d 30 3a 6c 79 25 3d 30 0d |200:lx%=0:ly%=0.| 000000e0 00 82 21 68 78 25 3d 31 30 3a 68 79 25 3d 31 30 |..!hx%=10:hy%=10| 000000f0 3a 6d 78 25 3d 28 6c 78 25 2b 68 78 25 29 2f 32 |:mx%=(lx%+hx%)/2| 00000100 0d 00 8c 21 6c 7a 25 3d 30 3a 68 7a 25 3d 31 35 |...!lz%=0:hz%=15| 00000110 30 3a 6d 79 25 3d 28 6c 79 25 2b 68 79 25 29 2f |0:my%=(ly%+hy%)/| 00000120 32 0d 00 96 25 64 78 3d 28 68 78 25 2d 6c 78 25 |2...%dx=(hx%-lx%| 00000130 29 2f 6e 70 25 3a 64 79 3d 28 68 79 25 2d 6c 79 |)/np%:dy=(hy%-ly| 00000140 25 29 2f 6e 70 25 0d 00 a0 14 64 7a 3d 28 68 7a |%)/np%....dz=(hz| 00000150 25 2d 6c 7a 25 29 2f 6e 70 25 0d 00 aa 15 e3 79 |%-lz%)/np%.....y| 00000160 25 3d 6e 70 25 20 b8 20 30 20 88 20 2d 73 25 0d |%=np% . 0 . -s%.| 00000170 00 b4 24 e3 41 25 3d 31 20 b8 20 6e 70 25 2f 73 |..$.A%=1 . np%/s| 00000180 25 3a 63 64 25 28 41 25 29 3d 6e 64 25 28 41 25 |%:cd%(A%)=nd%(A%| 00000190 29 3a ed 0d 00 be 14 e3 78 25 3d 30 20 b8 20 6e |):......x%=0 . n| 000001a0 70 25 20 88 20 73 25 0d 00 c8 1b 78 3d 78 25 2a |p% . s%....x=x%*| 000001b0 64 78 2b 6c 78 25 3a 79 3d 79 25 2a 64 79 2b 6c |dx+lx%:y=y%*dy+l| 000001c0 79 25 0d 00 d2 28 72 3d b6 28 28 6d 78 25 2d 78 |y%...(r=.((mx%-x| 000001d0 29 2a 28 6d 78 25 2d 78 29 2b 28 6d 79 25 2d 79 |)*(mx%-x)+(my%-y| 000001e0 29 2a 28 6d 79 25 2d 79 29 29 0d 00 dc 1d 7a 25 |)*(my%-y))....z%| 000001f0 3d a0 28 54 24 29 2f 64 7a 3a 6e 64 25 28 78 25 |=.(T$)/dz:nd%(x%| 00000200 2f 73 25 29 3d 7a 25 0d 00 e6 25 e7 20 78 25 3d |/s%)=z%...%. x%=| 00000210 30 20 84 20 79 25 3d 6e 70 25 20 8b 20 f2 70 6c |0 . y%=np% . .pl| 00000220 6f 74 28 78 25 2c 79 25 2c 7a 25 29 0d 00 f0 13 |ot(x%,y%,z%)....| 00000230 7a 31 25 3d 7a 25 3a ed 3a ed 3a ef 34 3a e0 0d |z1%=z%:.:.:.4:..| 00000240 00 fa 14 dd f2 70 6c 6f 74 28 78 25 2c 79 25 2c |.....plot(x%,y%,| 00000250 7a 25 29 0d 01 04 51 63 6f 6c 25 3d a4 63 6f 6c |z%)...Qcol%=.col| 00000260 28 78 25 2c 79 25 2c 7a 25 2c 78 25 2d 73 25 2c |(x%,y%,z%,x%-s%,| 00000270 79 25 2c 7a 31 25 2c 78 25 2d 73 25 2c 79 25 2b |y%,z1%,x%-s%,y%+| 00000280 73 25 2c 63 64 25 28 78 25 2f 73 25 2d 31 29 2c |s%,cd%(x%/s%-1),| 00000290 78 25 2c 79 25 2b 73 25 2c 63 64 25 28 78 25 2f |x%,y%+s%,cd%(x%/| 000002a0 73 25 29 29 0d 01 0e 12 63 6f 6c 25 3d 63 6f 6c |s%))....col%=col| 000002b0 25 2f 32 2e 32 32 0d 01 18 25 78 73 25 3d 77 78 |%/2.22...%xs%=wx| 000002c0 25 2b 78 25 2b 79 25 2a 63 76 3a 79 73 25 3d 77 |%+x%+y%*cv:ys%=w| 000002d0 79 25 2b 7a 25 2b 79 25 2a 73 76 0d 01 22 34 ec |y%+z%+y%*sv.."4.| 000002e0 20 78 73 25 2c 79 73 25 3a e6 20 32 2c 30 3a ef | xs%,ys%:. 2,0:.| 000002f0 20 31 33 37 3a e6 20 30 2c 33 3a ec 20 78 73 25 | 137:. 0,3:. xs%| 00000300 2c 79 73 25 3a ef 20 31 32 38 2b 63 6f 6c 25 0d |,ys%:. 128+col%.| 00000310 01 2c 05 e1 0d 01 36 3a dd a4 63 6f 6c 28 61 31 |.,....6:..col(a1| 00000320 25 2c 62 31 25 2c 63 31 25 2c 61 32 25 2c 62 32 |%,b1%,c1%,a2%,b2| 00000330 25 2c 63 32 25 2c 61 33 25 2c 62 33 25 2c 63 33 |%,c2%,a3%,b3%,c3| 00000340 25 2c 61 34 25 2c 62 34 25 2c 63 34 25 29 0d 01 |%,a4%,b4%,c4%)..| 00000350 40 27 78 63 25 3d 61 31 25 2d 61 33 25 3a 79 63 |@'xc%=a1%-a3%:yc| 00000360 25 3d 62 31 25 2d 62 33 25 3a 7a 63 25 3d 63 31 |%=b1%-b3%:zc%=c1| 00000370 25 2d 63 33 25 0d 01 4a 27 78 68 25 3d 61 32 25 |%-c3%..J'xh%=a2%| 00000380 2d 61 34 25 3a 79 68 25 3d 62 32 25 2d 62 34 25 |-a4%:yh%=b2%-b4%| 00000390 3a 7a 68 25 3d 63 32 25 2d 63 34 25 0d 01 54 4b |:zh%=c2%-c4%..TK| 000003a0 61 6e 6e 25 3d 9d 28 95 28 28 78 63 25 2a 6c 74 |ann%=.(.((xc%*lt| 000003b0 78 25 2b 79 63 25 2a 6c 74 79 25 2b 7a 63 25 2a |x%+yc%*lty%+zc%*| 000003c0 6c 74 7a 25 29 2f 28 b6 28 78 63 25 2a 78 63 25 |ltz%)/(.(xc%*xc%| 000003d0 2b 79 63 25 2a 79 63 25 2b 7a 63 25 2a 7a 63 25 |+yc%*yc%+zc%*zc%| 000003e0 29 2a 73 72 29 29 29 0d 01 5e 4b 61 6e 6f 25 3d |)*sr)))..^Kano%=| 000003f0 9d 28 95 28 28 78 68 25 2a 6c 74 78 25 2b 79 68 |.(.((xh%*ltx%+yh| 00000400 25 2a 6c 74 79 25 2b 7a 68 25 2a 6c 74 7a 25 29 |%*lty%+zh%*ltz%)| 00000410 2f 28 b6 28 78 68 25 2a 78 68 25 2b 79 68 25 2a |/(.(xh%*xh%+yh%*| 00000420 79 68 25 2b 7a 68 25 2a 7a 68 25 29 2a 73 72 29 |yh%+zh%*zh%)*sr)| 00000430 29 29 0d 01 68 1b e7 20 61 6e 6e 25 3e 39 30 20 |))..h.. ann%>90 | 00000440 61 6e 6e 25 3d 31 38 30 2d 61 6e 6e 25 0d 01 72 |ann%=180-ann%..r| 00000450 1b e7 20 61 6e 6f 25 3e 39 30 20 61 6e 6f 25 3d |.. ano%>90 ano%=| 00000460 31 38 30 2d 61 6e 6f 25 0d 01 7c 12 3d 61 6e 6e |180-ano%..|.=ann| 00000470 25 2a 61 6e 6f 25 2f 34 30 35 0d 01 86 1a dd f2 |%*ano%/405......| 00000480 76 64 75 3a ef 32 33 2c 31 32 38 2c 30 3b 30 3b |vdu:.23,128,0;0;| 00000490 30 3b 30 3b 0d 01 90 17 ef 32 33 2c 31 32 39 2c |0;0;.....23,129,| 000004a0 30 3b 30 3b 30 3b 30 2c 31 32 38 0d 01 9a 1a ef |0;0;0;0,128.....| 000004b0 32 33 2c 31 33 30 2c 30 3b 30 3b 30 2c 36 34 2c |23,130,0;0;0,64,| 000004c0 30 2c 31 32 38 0d 01 a4 1b ef 32 33 2c 31 33 31 |0,128.....23,131| 000004d0 2c 30 3b 30 3b 30 2c 36 34 2c 31 32 38 2c 33 32 |,0;0;0,64,128,32| 000004e0 0d 01 ae 1b ef 32 33 2c 31 33 32 2c 30 3b 30 3b |.....23,132,0;0;| 000004f0 30 2c 31 36 30 2c 33 32 2c 36 34 0d 01 b8 1c ef |0,160,32,64.....| 00000500 32 33 2c 31 33 33 2c 30 3b 30 3b 30 2c 31 36 30 |23,133,0;0;0,160| 00000510 2c 33 32 2c 31 36 30 0d 01 c2 1c ef 32 33 2c 31 |,32,160.....23,1| 00000520 33 34 2c 30 3b 30 3b 30 2c 31 36 30 2c 39 36 2c |34,0;0;0,160,96,| 00000530 31 36 30 0d 01 cc 1c ef 32 33 2c 31 33 35 2c 30 |160.....23,135,0| 00000540 3b 30 3b 30 2c 31 39 32 2c 39 36 2c 31 36 30 0d |;0;0,192,96,160.| 00000550 01 d6 1d ef 32 33 2c 31 33 36 2c 30 3b 30 3b 30 |....23,136,0;0;0| 00000560 2c 31 39 32 2c 31 39 32 2c 31 36 30 0d 01 e0 1f |,192,192,160....| 00000570 ef 32 33 2c 31 33 37 2c 30 3b 30 3b 30 2c 32 32 |.23,137,0;0;0,22| 00000580 34 2c 32 32 34 2c 32 32 34 2c 35 0d 01 ea 05 e1 |4,224,224,5.....| 00000590 0d ff |..| 00000592