Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape23a_acorn_eu_1991_june.wav » Duffing

Duffing

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 » Personal collection » Acorn tapes » Electron_User » Electron_User_tape23a_acorn_eu_1991_june.wav
Filename: Duffing
Read OK:
File size: 0300 bytes
Load address: FFFF1A00
Exec address: FFFF8023
File contents
   10REM >DUFFING1
   20CLS
   30PRINT"Strange Attractors 2"
   40PRINT"The Duffing oscillator"
   50PRINT"By Mike Cook"
   60PRINT"Defined by - AX^3 + BY + CX + F COS(Z)"
   70PRINT"Press Space Bar to repeat and rescale"
   80PRINT"Press Escape to end"
   90PRINT"Try A=1  B=0.3  C=0  F=10 to start with"
  100PRINT"Enter the four parameters"
  110INPUT" A ",A
  120INPUT" B ",B
  130INPUT" C ",C
  140INPUT" F ",F
  150MODE 0
  160XSC=130
  170YSC=60
  180Z=0:X=-0.1:Y=0.1
  190D=0.1/25
  200XMX=0:YMX=0
  210REPEAT
  220PRINT TAB(0,0);"Duffing oscillator By Mike Cook"
  230REPEAT
  240IF ABS(X)>1E6 OR ABS(Y)>1E6 THEN GOTO 400
  250IF ABS(X)>XMX THEN XMX=ABS(X)
  260IF ABS(Y)>YMX THEN YMX=ABS(Y)
  270PLOT 69,(X*XSC)+640,(Y*YSC)+512
  280D1=Y
  290D2=-(A*X*X*X+C*X+B*Y)+F*COS(Z)
  300X=X+D1*D
  310Y=Y+D2*D
  320Z=Z+D
  330UNTIL INKEY(-99)
  340REPEAT UNTIL NOT(INKEY(-99))
  350XSC=640/XMX
  360YSC=512/YMX
  370XMX=0:YMX=0
  380CLS
  390UNTIL FALSE
  400PRINT"Point out of range"

� >DUFFING1
�
�"Strange Attractors 2"
(�"The Duffing oscillator"
2�"By Mike Cook"
<-�"Defined by - AX^3 + BY + CX + F COS(Z)"
F,�"Press Space Bar to repeat and rescale"
P�"Press Escape to end"
Z.�"Try A=1  B=0.3  C=0  F=10 to start with"
d �"Enter the four parameters"
n�" A ",A
x�" B ",B
��" C ",C
��" F ",F
�� 0
�XSC=130
�
YSC=60
�Z=0:X=-0.1:Y=0.1
�D=0.1/25
�XMX=0:YMX=0
��
�-� �0,0);"Duffing oscillator By Mike Cook"
��
�"� �(X)>1E6 � �(Y)>1E6 � � �tPA
�� �(X)>XMX � XMX=�(X)
� �(Y)>YMX � YMX=�(Y)
 � 69,(X*XSC)+640,(Y*YSC)+512
D1=Y
" D2=-(A*X*X*X+C*X+B*Y)+F*�(Z)
,X=X+D1*D
6Y=Y+D2*D
@	Z=Z+D
J� �(-99)
T� � �(�(-99))
^XSC=640/XMX
hYSC=512/YMX
rXMX=0:YMX=0
|�
�� �
��"Point out of range"
�
00000000  0d 00 0a 0f f4 20 3e 44  55 46 46 49 4e 47 31 0d  |..... >DUFFING1.|
00000010  00 14 05 db 0d 00 1e 1b  f1 22 53 74 72 61 6e 67  |........."Strang|
00000020  65 20 41 74 74 72 61 63  74 6f 72 73 20 32 22 0d  |e Attractors 2".|
00000030  00 28 1d f1 22 54 68 65  20 44 75 66 66 69 6e 67  |.(.."The Duffing|
00000040  20 6f 73 63 69 6c 6c 61  74 6f 72 22 0d 00 32 13  | oscillator"..2.|
00000050  f1 22 42 79 20 4d 69 6b  65 20 43 6f 6f 6b 22 0d  |."By Mike Cook".|
00000060  00 3c 2d f1 22 44 65 66  69 6e 65 64 20 62 79 20  |.<-."Defined by |
00000070  2d 20 41 58 5e 33 20 2b  20 42 59 20 2b 20 43 58  |- AX^3 + BY + CX|
00000080  20 2b 20 46 20 43 4f 53  28 5a 29 22 0d 00 46 2c  | + F COS(Z)"..F,|
00000090  f1 22 50 72 65 73 73 20  53 70 61 63 65 20 42 61  |."Press Space Ba|
000000a0  72 20 74 6f 20 72 65 70  65 61 74 20 61 6e 64 20  |r to repeat and |
000000b0  72 65 73 63 61 6c 65 22  0d 00 50 1a f1 22 50 72  |rescale"..P.."Pr|
000000c0  65 73 73 20 45 73 63 61  70 65 20 74 6f 20 65 6e  |ess Escape to en|
000000d0  64 22 0d 00 5a 2e f1 22  54 72 79 20 41 3d 31 20  |d"..Z.."Try A=1 |
000000e0  20 42 3d 30 2e 33 20 20  43 3d 30 20 20 46 3d 31  | B=0.3  C=0  F=1|
000000f0  30 20 74 6f 20 73 74 61  72 74 20 77 69 74 68 22  |0 to start with"|
00000100  0d 00 64 20 f1 22 45 6e  74 65 72 20 74 68 65 20  |..d ."Enter the |
00000110  66 6f 75 72 20 70 61 72  61 6d 65 74 65 72 73 22  |four parameters"|
00000120  0d 00 6e 0c e8 22 20 41  20 22 2c 41 0d 00 78 0c  |..n.." A ",A..x.|
00000130  e8 22 20 42 20 22 2c 42  0d 00 82 0c e8 22 20 43  |." B ",B....." C|
00000140  20 22 2c 43 0d 00 8c 0c  e8 22 20 46 20 22 2c 46  | ",C....." F ",F|
00000150  0d 00 96 07 eb 20 30 0d  00 a0 0b 58 53 43 3d 31  |..... 0....XSC=1|
00000160  33 30 0d 00 aa 0a 59 53  43 3d 36 30 0d 00 b4 14  |30....YSC=60....|
00000170  5a 3d 30 3a 58 3d 2d 30  2e 31 3a 59 3d 30 2e 31  |Z=0:X=-0.1:Y=0.1|
00000180  0d 00 be 0c 44 3d 30 2e  31 2f 32 35 0d 00 c8 0f  |....D=0.1/25....|
00000190  58 4d 58 3d 30 3a 59 4d  58 3d 30 0d 00 d2 05 f5  |XMX=0:YMX=0.....|
000001a0  0d 00 dc 2d f1 20 8a 30  2c 30 29 3b 22 44 75 66  |...-. .0,0);"Duf|
000001b0  66 69 6e 67 20 6f 73 63  69 6c 6c 61 74 6f 72 20  |fing oscillator |
000001c0  42 79 20 4d 69 6b 65 20  43 6f 6f 6b 22 0d 00 e6  |By Mike Cook"...|
000001d0  05 f5 0d 00 f0 22 e7 20  94 28 58 29 3e 31 45 36  |.....". .(X)>1E6|
000001e0  20 84 20 94 28 59 29 3e  31 45 36 20 8c 20 e5 20  | . .(Y)>1E6 . . |
000001f0  8d 74 50 41 0d 00 fa 19  e7 20 94 28 58 29 3e 58  |.tPA..... .(X)>X|
00000200  4d 58 20 8c 20 58 4d 58  3d 94 28 58 29 0d 01 04  |MX . XMX=.(X)...|
00000210  19 e7 20 94 28 59 29 3e  59 4d 58 20 8c 20 59 4d  |.. .(Y)>YMX . YM|
00000220  58 3d 94 28 59 29 0d 01  0e 20 f0 20 36 39 2c 28  |X=.(Y)... . 69,(|
00000230  58 2a 58 53 43 29 2b 36  34 30 2c 28 59 2a 59 53  |X*XSC)+640,(Y*YS|
00000240  43 29 2b 35 31 32 0d 01  18 08 44 31 3d 59 0d 01  |C)+512....D1=Y..|
00000250  22 20 44 32 3d 2d 28 41  2a 58 2a 58 2a 58 2b 43  |" D2=-(A*X*X*X+C|
00000260  2a 58 2b 42 2a 59 29 2b  46 2a 9b 28 5a 29 0d 01  |*X+B*Y)+F*.(Z)..|
00000270  2c 0c 58 3d 58 2b 44 31  2a 44 0d 01 36 0c 59 3d  |,.X=X+D1*D..6.Y=|
00000280  59 2b 44 32 2a 44 0d 01  40 09 5a 3d 5a 2b 44 0d  |Y+D2*D..@.Z=Z+D.|
00000290  01 4a 0c fd 20 a6 28 2d  39 39 29 0d 01 54 11 f5  |.J.. .(-99)..T..|
000002a0  20 fd 20 ac 28 a6 28 2d  39 39 29 29 0d 01 5e 0f  | . .(.(-99))..^.|
000002b0  58 53 43 3d 36 34 30 2f  58 4d 58 0d 01 68 0f 59  |XSC=640/XMX..h.Y|
000002c0  53 43 3d 35 31 32 2f 59  4d 58 0d 01 72 0f 58 4d  |SC=512/YMX..r.XM|
000002d0  58 3d 30 3a 59 4d 58 3d  30 0d 01 7c 05 db 0d 01  |X=0:YMX=0..|....|
000002e0  86 07 fd 20 a3 0d 01 90  19 f1 22 50 6f 69 6e 74  |... ......"Point|
000002f0  20 6f 75 74 20 6f 66 20  72 61 6e 67 65 22 0d ff  | out of range"..|
00000300
Duffing.m0
Duffing.m1
Duffing.m2
Duffing.m4
Duffing.m5