Home » Archimedes archive » Acorn User » AU 1997-02 B.adf » Regulars » StarInfo/circles/Jeffs/Pulse

StarInfo/circles/Jeffs/Pulse

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 » Archimedes archive » Acorn User » AU 1997-02 B.adf » Regulars
Filename: StarInfo/circles/Jeffs/Pulse
Read OK:
File size: 02AD bytes
Load address: 0000
Exec address: 0000
File contents
   10REM  Acorn User circle challenge
   20REM  Pulse/Throb - by R W Jeffs
   30:
   40MODE 27
   50sx%=640:sy%=480:F%=1024
   60FOR A%=30 TO 359 STEP 60:PROCtower(SIN(RAD(A%))*90,COS(RAD(A%))*90,8,100,0):NEXT
   70FOR A%=0 TO 359 STEP 60:PROCtower(SIN(RAD(A%))*60,COS(RAD(A%))*60,8,100,1):NEXT
   80PROCpulse
   90END
  100:
  110DEF PROCtower(X%,Y%,R%,S%,D%)
  120LOCAL Z%,H%,W%,col%
  130FOR Z%=1 TO S%*10
  140 H%=1024-Z%
  150 W%=(SIN(RAD(Z%))+2)*R%
  160 col%=(Z% DIV 5) MOD 15+1:IF D%=0 col%=16-col%
  170 GCOL0,col%
  180 CIRCLEFILL X%/H%*F%+sx%,Y%/H%*F%+sy%,W%/H%*F%
  190NEXT
  200ENDPROC
  210:
  220DEF PROCpulse
  230LOCAL S%,speed%,L%,C%,B%
  240S%=0:L%=0
  250REPEAT:WAIT
  260 speed%=COS(RAD(L%))*8-1
  270 FOR C%=1 TO 15
  280  B%=S%+C%*360/15:COLOUR 16-C%,(SIN(RAD(B%))+1)/2*127,0,0
  290 NEXT
  300 S%+=speed%:IF S%>=360 S%-=360
  310 L%+=1
  320UNTIL FALSE
  330ENDPROC

"�  Acorn User circle challenge
!�  Pulse/Throb - by R W Jeffs
:
(� 27
2sx%=640:sy%=480:F%=1024
<@� A%=30 � 359 � 60:�tower(�(�(A%))*90,�(�(A%))*90,8,100,0):�
F?� A%=0 � 359 � 60:�tower(�(�(A%))*60,�(�(A%))*60,8,100,1):�
P
�pulse
Z�
d:
n� �tower(X%,Y%,R%,S%,D%)
x� Z%,H%,W%,col%
�� Z%=1 � S%*10
� H%=1024-Z%
� W%=(�(�(Z%))+2)*R%
�- col%=(Z% � 5) � 15+1:� D%=0 col%=16-col%
� �0,col%
�, ȏȐ X%/H%*F%+sx%,Y%/H%*F%+sy%,W%/H%*F%
��
��
�:
�� �pulse
�� S%,speed%,L%,C%,B%
�
S%=0:L%=0
��:Ȗ
 speed%=�(�(L%))*8-1
 � C%=1 � 15
4  B%=S%+C%*360/15:� 16-C%,(�(�(B%))+1)/2*127,0,0
" �
,! S%+=speed%:� S%>=360 S%-=360
6
 L%+=1
@� �
J�
�
00000000  0d 00 0a 22 f4 20 20 41  63 6f 72 6e 20 55 73 65  |...".  Acorn Use|
00000010  72 20 63 69 72 63 6c 65  20 63 68 61 6c 6c 65 6e  |r circle challen|
00000020  67 65 0d 00 14 21 f4 20  20 50 75 6c 73 65 2f 54  |ge...!.  Pulse/T|
00000030  68 72 6f 62 20 2d 20 62  79 20 52 20 57 20 4a 65  |hrob - by R W Je|
00000040  66 66 73 0d 00 1e 05 3a  0d 00 28 08 eb 20 32 37  |ffs....:..(.. 27|
00000050  0d 00 32 1b 73 78 25 3d  36 34 30 3a 73 79 25 3d  |..2.sx%=640:sy%=|
00000060  34 38 30 3a 46 25 3d 31  30 32 34 0d 00 3c 40 e3  |480:F%=1024..<@.|
00000070  20 41 25 3d 33 30 20 b8  20 33 35 39 20 88 20 36  | A%=30 . 359 . 6|
00000080  30 3a f2 74 6f 77 65 72  28 b5 28 b2 28 41 25 29  |0:.tower(.(.(A%)|
00000090  29 2a 39 30 2c 9b 28 b2  28 41 25 29 29 2a 39 30  |)*90,.(.(A%))*90|
000000a0  2c 38 2c 31 30 30 2c 30  29 3a ed 0d 00 46 3f e3  |,8,100,0):...F?.|
000000b0  20 41 25 3d 30 20 b8 20  33 35 39 20 88 20 36 30  | A%=0 . 359 . 60|
000000c0  3a f2 74 6f 77 65 72 28  b5 28 b2 28 41 25 29 29  |:.tower(.(.(A%))|
000000d0  2a 36 30 2c 9b 28 b2 28  41 25 29 29 2a 36 30 2c  |*60,.(.(A%))*60,|
000000e0  38 2c 31 30 30 2c 31 29  3a ed 0d 00 50 0a f2 70  |8,100,1):...P..p|
000000f0  75 6c 73 65 0d 00 5a 05  e0 0d 00 64 05 3a 0d 00  |ulse..Z....d.:..|
00000100  6e 1c dd 20 f2 74 6f 77  65 72 28 58 25 2c 59 25  |n.. .tower(X%,Y%|
00000110  2c 52 25 2c 53 25 2c 44  25 29 0d 00 78 13 ea 20  |,R%,S%,D%)..x.. |
00000120  5a 25 2c 48 25 2c 57 25  2c 63 6f 6c 25 0d 00 82  |Z%,H%,W%,col%...|
00000130  12 e3 20 5a 25 3d 31 20  b8 20 53 25 2a 31 30 0d  |.. Z%=1 . S%*10.|
00000140  00 8c 0f 20 48 25 3d 31  30 32 34 2d 5a 25 0d 00  |... H%=1024-Z%..|
00000150  96 17 20 57 25 3d 28 b5  28 b2 28 5a 25 29 29 2b  |.. W%=(.(.(Z%))+|
00000160  32 29 2a 52 25 0d 00 a0  2d 20 63 6f 6c 25 3d 28  |2)*R%...- col%=(|
00000170  5a 25 20 81 20 35 29 20  83 20 31 35 2b 31 3a e7  |Z% . 5) . 15+1:.|
00000180  20 44 25 3d 30 20 63 6f  6c 25 3d 31 36 2d 63 6f  | D%=0 col%=16-co|
00000190  6c 25 0d 00 aa 0c 20 e6  30 2c 63 6f 6c 25 0d 00  |l%.... .0,col%..|
000001a0  b4 2c 20 c8 8f c8 90 20  58 25 2f 48 25 2a 46 25  |., .... X%/H%*F%|
000001b0  2b 73 78 25 2c 59 25 2f  48 25 2a 46 25 2b 73 79  |+sx%,Y%/H%*F%+sy|
000001c0  25 2c 57 25 2f 48 25 2a  46 25 0d 00 be 05 ed 0d  |%,W%/H%*F%......|
000001d0  00 c8 05 e1 0d 00 d2 05  3a 0d 00 dc 0c dd 20 f2  |........:..... .|
000001e0  70 75 6c 73 65 0d 00 e6  18 ea 20 53 25 2c 73 70  |pulse..... S%,sp|
000001f0  65 65 64 25 2c 4c 25 2c  43 25 2c 42 25 0d 00 f0  |eed%,L%,C%,B%...|
00000200  0d 53 25 3d 30 3a 4c 25  3d 30 0d 00 fa 08 f5 3a  |.S%=0:L%=0.....:|
00000210  c8 96 0d 01 04 18 20 73  70 65 65 64 25 3d 9b 28  |...... speed%=.(|
00000220  b2 28 4c 25 29 29 2a 38  2d 31 0d 01 0e 10 20 e3  |.(L%))*8-1.... .|
00000230  20 43 25 3d 31 20 b8 20  31 35 0d 01 18 34 20 20  | C%=1 . 15...4  |
00000240  42 25 3d 53 25 2b 43 25  2a 33 36 30 2f 31 35 3a  |B%=S%+C%*360/15:|
00000250  fb 20 31 36 2d 43 25 2c  28 b5 28 b2 28 42 25 29  |. 16-C%,(.(.(B%)|
00000260  29 2b 31 29 2f 32 2a 31  32 37 2c 30 2c 30 0d 01  |)+1)/2*127,0,0..|
00000270  22 06 20 ed 0d 01 2c 21  20 53 25 2b 3d 73 70 65  |". ...,! S%+=spe|
00000280  65 64 25 3a e7 20 53 25  3e 3d 33 36 30 20 53 25  |ed%:. S%>=360 S%|
00000290  2d 3d 33 36 30 0d 01 36  0a 20 4c 25 2b 3d 31 0d  |-=360..6. L%+=1.|
000002a0  01 40 07 fd 20 a3 0d 01  4a 05 e1 0d ff           |.@.. ...J....|
000002ad