Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape17a_acorn_eu_1990_december.wav » Fourier

Fourier

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_tape17a_acorn_eu_1990_december.wav
Filename: Fourier
Read OK:
File size: 09E9 bytes
Load address: FFFF1A00
Exec address: FFFF8023
Duplicates

There are 3 duplicate copies of this file in the archive:

File contents
   10REM MAKING WAVES
   20REM by P.L.Houghton
   30REM (c) The Micro User
   40MODE135:IFHIMEM=&8000:M%=128:ELSEM%=4
   50MODEM%:PROCscreen
   60VDU23;8202;0;0;0;30
   70PRINT"Complex Waves from Sinusoidal Signals":PRINT
   80PROCaxis(1,1):PROCDC_COMP
   90F%(J%)=FNval("Please enter the frequency as a multiple of the fundamental (1 for fundamental, 2 for 2nd harmonic etc.) then press Return")
  100V(J%)=FNval("Enter the peak value of the waveform & press Return (a value of 200 is suggested for the fundamental then other harmonics may be easily scaled)")
  110P%(J%)=FNval("Enter any phase shift from fundamental (in degrees between 0 and 359) and press Return")
  120PROCwave("Now plotting y=")
  130IFFNy("Draw another frequency")J%=J%+1:V(J%+1)=-999:F%(J%+1)=-999:P%(J%+1)=-999:GOTO90
  140CLS:IFNOTFNy("View the resultant complex wave") THEN 170
  150CLS:IFFNy("Clear components first")CLG
  160PROCSUM_WAVE
  170IFFNy("Do you want a printout")PROCprint
  180CLS:PRINT
  190IFFNy("Clear components & re-plot")CLG:GOTO160
  200CLS:IFFNy("Run program again")RUN
  210CLS:PRINT"BYE":PRINT:END
  220DEF PROCscreen
  224IFM%=4J%=39:ELSEJ%=79
  225VDU28,0,6,J%,0,12
  230DIM A%(1279),V(20),F%(20)
  240DIM P%(20),G%(359)
  250V(0)=100:V(1)=-999:F%(0)=1
  260F%(1)=-999:P%(0)=0:P%(1)=-999
  270J%=0:ENDPROC
  280DEFPROCaxis(L%,I%)
  285LOCAL@%,J%,K%,S%,T%
  290GCOL0,1:MOVE0,0:DRAW0,800
  300MOVE0,400:DRAW1279,400:MOVE0,0
  310DRAW1279,0
  320IFM%=4K%=120:J%=-48:ELSEK%=90:J%=0
  330FORS%=0TO1170STEPK%:MOVES%,0
  340DRAWS%,20:MOVES%+J%,50:VDU5
  350PRINT;S%;:VDU4:NEXT
  360GCOL0,L%:MOVE1279,0:DRAW 1279,800
  370MOVE1260,0
  380FOR T%=0 TO 800 STEP 50
  390MOVE1260,T%:DRAW1279,T%
  395IFM%=4J%=0:ELSEJ%=48
  400MOVE1132+J%,T%+16:VDU5
  410PRINT(T%-400)/I%:VDU4:NEXT:ENDPROC
  420DEF PROCwave(A$):CLS
  430PRINT"Calculating...please wait";
  440FOR X%=0 TO 359
  450H=(P%(J%)+(F%(J%)*X%))*1.7453E-2
  460G%(X%)=V(J%)*SINH
  470PLOT69,X%,G%(X%)+400
  480A%(X%)=A%(X%)+G%(X%):NEXT:CLS
  490PRINTA$FNW(J%)
  500FOR C%=360 TO 1440 STEP 360
  510FORX%=0+C%TO359+C%
  520IFX%<1171A%(X%)=A%(X%)+G%(X%-C%):PLOT69,X%,G%(X%-C%)+400:ELSEX%=1799:C%=1440
  530NEXT:NEXT:ENDPROC
  540DEFFNW(J%)=FNs(V(J%))+"sin("+STR$F%(J%)+"x+"+STR$P%(J%)+")"
  550DEFFNs(V)LOCALL%,v$:v$=STR$INT(V*100):L%=LENv$:IFL%>2:=LEFT$(v$,L%-2)+"."+RIGHT$(v$,2)ELSE="0."+RIGHT$("0"+v$,2)
  560DEF PROCDC_COMP
  570D=FNval("Please enter DC level & press Return")
  580IFD:Y%=INTD:FORX%=0TO1170:A%(X%)=A%(X%)+Y%:PLOT 69,X%,Y%+400:NEXT
  590ENDPROC
  600DEF PROCSUM_WAVE:PROCaxis(1,1):CLS
  610PROCout("Plotting resultant complex waveform:"):T$="y="+STR$D
  620J%=0:REPEAT T$=T$+" + "+FNW(J%)
  630J%=J%+1:UNTIL V(J%)=-999
  640PRINT:PROCout(T$)
  650MOVE0,400:GCOL0,1:FORX%=0TO1170
  660DRAWX%,A%(X%)+400:NEXT:ENDPROC
  670DEF PROCPRINT
  680*GDUMP 0 1 1 1
  690ENDPROC
  700DEFFNy(T$)PROCout(T$+"? (y/n)")
  710LOCALI%:REPEATI%=INSTR("YyNn",GET$):UNTILI%:=I%<3
  720DEFFNval(T$)LOCALV:CLS:PROCout(T$):INPUT'"?"V:=V
  730DEFPROCout(T$)LOCALL%,W%
  740IFM%=4:W%=40:ELSEW%=80
  750REPEAT w$=FNw:L%=LENw$
  760IFCOUNT+L%>=W%-1PRINTELSEIFCOUNT>0PRINT" ";
  770PRINTw$;:UNTILT$="":ENDPROC
  780DEFFNw:LOCALL%
  790L%=INSTR(T$+" "," ")
  800w$=MID$(T$,1,L%-1)
  810T$=MID$(T$,L%+1):=w$

� MAKING WAVES
� by P.L.Houghton
� (c) The Micro User
(�135:�=&8000:M%=128:�M%=4
2�M%:�screen
<�23;8202;0;0;0;30
F.�"Complex Waves from Sinusoidal Signals":�
P�axis(1,1):�DC_COMP
Z�F%(J%)=�val("Please enter the frequency as a multiple of the fundamental (1 for fundamental, 2 for 2nd harmonic etc.) then press Return")
d�V(J%)=�val("Enter the peak value of the waveform & press Return (a value of 200 is suggested for the fundamental then other harmonics may be easily scaled)")
niP%(J%)=�val("Enter any phase shift from fundamental (in degrees between 0 and 359) and press Return")
x�wave("Now plotting y=")
�W�y("Draw another frequency")J%=J%+1:V(J%+1)=-999:F%(J%+1)=-999:P%(J%+1)=-999:�DZ@
�4�:笤y("View the resultant complex wave") � �tj@
�$�:�y("Clear components first")�
�
�SUM_WAVE
�'�y("Do you want a printout")�print
��:�
�,�y("Clear components & re-plot")�:�t`@
��:�y("Run program again")�
��:�"BYE":�:�
�
� �screen
��M%=4J%=39:�J%=79
��28,0,6,J%,0,12
�� A%(1279),V(20),F%(20)
�� P%(20),G%(359)
�V(0)=100:V(1)=-999:F%(0)=1
!F%(1)=-999:P%(0)=0:P%(1)=-999

J%=0:�
��axis(L%,I%)
�@%,J%,K%,S%,T%
"�0,1:�0,0:�0,800
,�0,400:�1279,400:�0,0
6�1279,0
@"�M%=4K%=120:J%=-48:�K%=90:J%=0
J�S%=0�1170�K%:�S%,0
T�S%,20:�S%+J%,50:�5
^�;S%;:�4:�
h�0,L%:�1279,0:� 1279,800
r�1260,0
|� T%=0 � 800 � 50
��1260,T%:�1279,T%
��M%=4J%=0:�J%=48
��1132+J%,T%+16:�5
��(T%-400)/I%:�4:�:�
�� �wave(A$):�
�!�"Calculating...please wait";
�� X%=0 � 359
�$H=(P%(J%)+(F%(J%)*X%))*1.7453E-2
�G%(X%)=V(J%)*�H
��69,X%,G%(X%)+400
�A%(X%)=A%(X%)+G%(X%):�:�
�
�A$�W(J%)
�� C%=360 � 1440 � 360
��X%=0+C%�359+C%
I�X%<1171A%(X%)=A%(X%)+G%(X%-C%):�69,X%,G%(X%-C%)+400:�X%=1799:C%=1440
	�:�:�
5ݤW(J%)=�s(V(J%))+"sin("+�F%(J%)+"x+"+�P%(J%)+")"
&Qݤs(V)�L%,v$:v$=è(V*100):L%=�v$:�L%>2:=�v$,L%-2)+"."+�v$,2)�="0."+�"0"+v$,2)
0� �DC_COMP
:2D=�val("Please enter DC level & press Return")
D9�D:Y%=�D:�X%=0�1170:A%(X%)=A%(X%)+Y%:� 69,X%,Y%+400:�
N�
X� �SUM_WAVE:�axis(1,1):�
b;�out("Plotting resultant complex waveform:"):T$="y="+�D
lJ%=0:� T$=T$+" + "+�W(J%)
vJ%=J%+1:� V(J%)=-999
��:�out(T$)
��0,400:�0,1:�X%=0�1170
��X%,A%(X%)+400:�:�
�� �PRINT
�*GDUMP 0 1 1 1
��
�ݤy(T$)�out(T$+"? (y/n)")
� �I%:�I%=�"YyNn",�):�I%:=I%<3
�$ݤval(T$)�V:�:�out(T$):�'"?"V:=V
���out(T$)�L%,W%
��M%=4:W%=40:�W%=80
�� w$=�w:L%=�w$
��+L%>=W%-1��>0�" ";
�w$;:�T$="":�
ݤw:�L%
L%=�T$+" "," ")
 w$=�T$,1,L%-1)
*T$=�T$,L%+1):=w$
�
00000000  0d 00 0a 12 f4 20 4d 41  4b 49 4e 47 20 57 41 56  |..... MAKING WAV|
00000010  45 53 0d 00 14 15 f4 20  62 79 20 50 2e 4c 2e 48  |ES..... by P.L.H|
00000020  6f 75 67 68 74 6f 6e 0d  00 1e 18 f4 20 28 63 29  |oughton..... (c)|
00000030  20 54 68 65 20 4d 69 63  72 6f 20 55 73 65 72 0d  | The Micro User.|
00000040  00 28 1e eb 31 33 35 3a  e7 93 3d 26 38 30 30 30  |.(..135:..=&8000|
00000050  3a 4d 25 3d 31 32 38 3a  8b 4d 25 3d 34 0d 00 32  |:M%=128:.M%=4..2|
00000060  0f eb 4d 25 3a f2 73 63  72 65 65 6e 0d 00 3c 15  |..M%:.screen..<.|
00000070  ef 32 33 3b 38 32 30 32  3b 30 3b 30 3b 30 3b 33  |.23;8202;0;0;0;3|
00000080  30 0d 00 46 2e f1 22 43  6f 6d 70 6c 65 78 20 57  |0..F.."Complex W|
00000090  61 76 65 73 20 66 72 6f  6d 20 53 69 6e 75 73 6f  |aves from Sinuso|
000000a0  69 64 61 6c 20 53 69 67  6e 61 6c 73 22 3a f1 0d  |idal Signals":..|
000000b0  00 50 17 f2 61 78 69 73  28 31 2c 31 29 3a f2 44  |.P..axis(1,1):.D|
000000c0  43 5f 43 4f 4d 50 0d 00  5a 8d 46 25 28 4a 25 29  |C_COMP..Z.F%(J%)|
000000d0  3d a4 76 61 6c 28 22 50  6c 65 61 73 65 20 65 6e  |=.val("Please en|
000000e0  74 65 72 20 74 68 65 20  66 72 65 71 75 65 6e 63  |ter the frequenc|
000000f0  79 20 61 73 20 61 20 6d  75 6c 74 69 70 6c 65 20  |y as a multiple |
00000100  6f 66 20 74 68 65 20 66  75 6e 64 61 6d 65 6e 74  |of the fundament|
00000110  61 6c 20 28 31 20 66 6f  72 20 66 75 6e 64 61 6d  |al (1 for fundam|
00000120  65 6e 74 61 6c 2c 20 32  20 66 6f 72 20 32 6e 64  |ental, 2 for 2nd|
00000130  20 68 61 72 6d 6f 6e 69  63 20 65 74 63 2e 29 20  | harmonic etc.) |
00000140  74 68 65 6e 20 70 72 65  73 73 20 52 65 74 75 72  |then press Retur|
00000150  6e 22 29 0d 00 64 a1 56  28 4a 25 29 3d a4 76 61  |n")..d.V(J%)=.va|
00000160  6c 28 22 45 6e 74 65 72  20 74 68 65 20 70 65 61  |l("Enter the pea|
00000170  6b 20 76 61 6c 75 65 20  6f 66 20 74 68 65 20 77  |k value of the w|
00000180  61 76 65 66 6f 72 6d 20  26 20 70 72 65 73 73 20  |aveform & press |
00000190  52 65 74 75 72 6e 20 28  61 20 76 61 6c 75 65 20  |Return (a value |
000001a0  6f 66 20 32 30 30 20 69  73 20 73 75 67 67 65 73  |of 200 is sugges|
000001b0  74 65 64 20 66 6f 72 20  74 68 65 20 66 75 6e 64  |ted for the fund|
000001c0  61 6d 65 6e 74 61 6c 20  74 68 65 6e 20 6f 74 68  |amental then oth|
000001d0  65 72 20 68 61 72 6d 6f  6e 69 63 73 20 6d 61 79  |er harmonics may|
000001e0  20 62 65 20 65 61 73 69  6c 79 20 73 63 61 6c 65  | be easily scale|
000001f0  64 29 22 29 0d 00 6e 69  50 25 28 4a 25 29 3d a4  |d)")..niP%(J%)=.|
00000200  76 61 6c 28 22 45 6e 74  65 72 20 61 6e 79 20 70  |val("Enter any p|
00000210  68 61 73 65 20 73 68 69  66 74 20 66 72 6f 6d 20  |hase shift from |
00000220  66 75 6e 64 61 6d 65 6e  74 61 6c 20 28 69 6e 20  |fundamental (in |
00000230  64 65 67 72 65 65 73 20  62 65 74 77 65 65 6e 20  |degrees between |
00000240  30 20 61 6e 64 20 33 35  39 29 20 61 6e 64 20 70  |0 and 359) and p|
00000250  72 65 73 73 20 52 65 74  75 72 6e 22 29 0d 00 78  |ress Return")..x|
00000260  1c f2 77 61 76 65 28 22  4e 6f 77 20 70 6c 6f 74  |..wave("Now plot|
00000270  74 69 6e 67 20 79 3d 22  29 0d 00 82 57 e7 a4 79  |ting y=")...W..y|
00000280  28 22 44 72 61 77 20 61  6e 6f 74 68 65 72 20 66  |("Draw another f|
00000290  72 65 71 75 65 6e 63 79  22 29 4a 25 3d 4a 25 2b  |requency")J%=J%+|
000002a0  31 3a 56 28 4a 25 2b 31  29 3d 2d 39 39 39 3a 46  |1:V(J%+1)=-999:F|
000002b0  25 28 4a 25 2b 31 29 3d  2d 39 39 39 3a 50 25 28  |%(J%+1)=-999:P%(|
000002c0  4a 25 2b 31 29 3d 2d 39  39 39 3a e5 8d 44 5a 40  |J%+1)=-999:..DZ@|
000002d0  0d 00 8c 34 db 3a e7 ac  a4 79 28 22 56 69 65 77  |...4.:...y("View|
000002e0  20 74 68 65 20 72 65 73  75 6c 74 61 6e 74 20 63  | the resultant c|
000002f0  6f 6d 70 6c 65 78 20 77  61 76 65 22 29 20 8c 20  |omplex wave") . |
00000300  8d 74 6a 40 0d 00 96 24  db 3a e7 a4 79 28 22 43  |.tj@...$.:..y("C|
00000310  6c 65 61 72 20 63 6f 6d  70 6f 6e 65 6e 74 73 20  |lear components |
00000320  66 69 72 73 74 22 29 da  0d 00 a0 0d f2 53 55 4d  |first")......SUM|
00000330  5f 57 41 56 45 0d 00 aa  27 e7 a4 79 28 22 44 6f  |_WAVE...'..y("Do|
00000340  20 79 6f 75 20 77 61 6e  74 20 61 20 70 72 69 6e  | you want a prin|
00000350  74 6f 75 74 22 29 f2 70  72 69 6e 74 0d 00 b4 07  |tout").print....|
00000360  db 3a f1 0d 00 be 2c e7  a4 79 28 22 43 6c 65 61  |.:....,..y("Clea|
00000370  72 20 63 6f 6d 70 6f 6e  65 6e 74 73 20 26 20 72  |r components & r|
00000380  65 2d 70 6c 6f 74 22 29  da 3a e5 8d 74 60 40 0d  |e-plot").:..t`@.|
00000390  00 c8 1f db 3a e7 a4 79  28 22 52 75 6e 20 70 72  |....:..y("Run pr|
000003a0  6f 67 72 61 6d 20 61 67  61 69 6e 22 29 f9 0d 00  |ogram again")...|
000003b0  d2 10 db 3a f1 22 42 59  45 22 3a f1 3a e0 0d 00  |...:."BYE":.:...|
000003c0  dc 0d dd 20 f2 73 63 72  65 65 6e 0d 00 e0 15 e7  |... .screen.....|
000003d0  4d 25 3d 34 4a 25 3d 33  39 3a 8b 4a 25 3d 37 39  |M%=4J%=39:.J%=79|
000003e0  0d 00 e1 13 ef 32 38 2c  30 2c 36 2c 4a 25 2c 30  |.....28,0,6,J%,0|
000003f0  2c 31 32 0d 00 e6 1b de  20 41 25 28 31 32 37 39  |,12..... A%(1279|
00000400  29 2c 56 28 32 30 29 2c  46 25 28 32 30 29 0d 00  |),V(20),F%(20)..|
00000410  f0 14 de 20 50 25 28 32  30 29 2c 47 25 28 33 35  |... P%(20),G%(35|
00000420  39 29 0d 00 fa 1e 56 28  30 29 3d 31 30 30 3a 56  |9)....V(0)=100:V|
00000430  28 31 29 3d 2d 39 39 39  3a 46 25 28 30 29 3d 31  |(1)=-999:F%(0)=1|
00000440  0d 01 04 21 46 25 28 31  29 3d 2d 39 39 39 3a 50  |...!F%(1)=-999:P|
00000450  25 28 30 29 3d 30 3a 50  25 28 31 29 3d 2d 39 39  |%(0)=0:P%(1)=-99|
00000460  39 0d 01 0e 0a 4a 25 3d  30 3a e1 0d 01 18 11 dd  |9....J%=0:......|
00000470  f2 61 78 69 73 28 4c 25  2c 49 25 29 0d 01 1d 13  |.axis(L%,I%)....|
00000480  ea 40 25 2c 4a 25 2c 4b  25 2c 53 25 2c 54 25 0d  |.@%,J%,K%,S%,T%.|
00000490  01 22 14 e6 30 2c 31 3a  ec 30 2c 30 3a df 30 2c  |."..0,1:.0,0:.0,|
000004a0  38 30 30 0d 01 2c 19 ec  30 2c 34 30 30 3a df 31  |800..,..0,400:.1|
000004b0  32 37 39 2c 34 30 30 3a  ec 30 2c 30 0d 01 36 0b  |279,400:.0,0..6.|
000004c0  df 31 32 37 39 2c 30 0d  01 40 22 e7 4d 25 3d 34  |.1279,0..@".M%=4|
000004d0  4b 25 3d 31 32 30 3a 4a  25 3d 2d 34 38 3a 8b 4b  |K%=120:J%=-48:.K|
000004e0  25 3d 39 30 3a 4a 25 3d  30 0d 01 4a 17 e3 53 25  |%=90:J%=0..J..S%|
000004f0  3d 30 b8 31 31 37 30 88  4b 25 3a ec 53 25 2c 30  |=0.1170.K%:.S%,0|
00000500  0d 01 54 17 df 53 25 2c  32 30 3a ec 53 25 2b 4a  |..T..S%,20:.S%+J|
00000510  25 2c 35 30 3a ef 35 0d  01 5e 0e f1 3b 53 25 3b  |%,50:.5..^..;S%;|
00000520  3a ef 34 3a ed 0d 01 68  1c e6 30 2c 4c 25 3a ec  |:.4:...h..0,L%:.|
00000530  31 32 37 39 2c 30 3a df  20 31 32 37 39 2c 38 30  |1279,0:. 1279,80|
00000540  30 0d 01 72 0b ec 31 32  36 30 2c 30 0d 01 7c 15  |0..r..1260,0..|.|
00000550  e3 20 54 25 3d 30 20 b8  20 38 30 30 20 88 20 35  |. T%=0 . 800 . 5|
00000560  30 0d 01 86 15 ec 31 32  36 30 2c 54 25 3a df 31  |0.....1260,T%:.1|
00000570  32 37 39 2c 54 25 0d 01  8b 14 e7 4d 25 3d 34 4a  |279,T%.....M%=4J|
00000580  25 3d 30 3a 8b 4a 25 3d  34 38 0d 01 90 15 ec 31  |%=0:.J%=48.....1|
00000590  31 33 32 2b 4a 25 2c 54  25 2b 31 36 3a ef 35 0d  |132+J%,T%+16:.5.|
000005a0  01 9a 17 f1 28 54 25 2d  34 30 30 29 2f 49 25 3a  |....(T%-400)/I%:|
000005b0  ef 34 3a ed 3a e1 0d 01  a4 11 dd 20 f2 77 61 76  |.4:.:...... .wav|
000005c0  65 28 41 24 29 3a db 0d  01 ae 21 f1 22 43 61 6c  |e(A$):....!."Cal|
000005d0  63 75 6c 61 74 69 6e 67  2e 2e 2e 70 6c 65 61 73  |culating...pleas|
000005e0  65 20 77 61 69 74 22 3b  0d 01 b8 10 e3 20 58 25  |e wait";..... X%|
000005f0  3d 30 20 b8 20 33 35 39  0d 01 c2 24 48 3d 28 50  |=0 . 359...$H=(P|
00000600  25 28 4a 25 29 2b 28 46  25 28 4a 25 29 2a 58 25  |%(J%)+(F%(J%)*X%|
00000610  29 29 2a 31 2e 37 34 35  33 45 2d 32 0d 01 cc 13  |))*1.7453E-2....|
00000620  47 25 28 58 25 29 3d 56  28 4a 25 29 2a b5 48 0d  |G%(X%)=V(J%)*.H.|
00000630  01 d6 15 f0 36 39 2c 58  25 2c 47 25 28 58 25 29  |....69,X%,G%(X%)|
00000640  2b 34 30 30 0d 01 e0 1c  41 25 28 58 25 29 3d 41  |+400....A%(X%)=A|
00000650  25 28 58 25 29 2b 47 25  28 58 25 29 3a ed 3a db  |%(X%)+G%(X%):.:.|
00000660  0d 01 ea 0d f1 41 24 a4  57 28 4a 25 29 0d 01 f4  |.....A$.W(J%)...|
00000670  19 e3 20 43 25 3d 33 36  30 20 b8 20 31 34 34 30  |.. C%=360 . 1440|
00000680  20 88 20 33 36 30 0d 01  fe 13 e3 58 25 3d 30 2b  | . 360.....X%=0+|
00000690  43 25 b8 33 35 39 2b 43  25 0d 02 08 49 e7 58 25  |C%.359+C%...I.X%|
000006a0  3c 31 31 37 31 41 25 28  58 25 29 3d 41 25 28 58  |<1171A%(X%)=A%(X|
000006b0  25 29 2b 47 25 28 58 25  2d 43 25 29 3a f0 36 39  |%)+G%(X%-C%):.69|
000006c0  2c 58 25 2c 47 25 28 58  25 2d 43 25 29 2b 34 30  |,X%,G%(X%-C%)+40|
000006d0  30 3a 8b 58 25 3d 31 37  39 39 3a 43 25 3d 31 34  |0:.X%=1799:C%=14|
000006e0  34 30 0d 02 12 09 ed 3a  ed 3a e1 0d 02 1c 35 dd  |40.....:.:....5.|
000006f0  a4 57 28 4a 25 29 3d a4  73 28 56 28 4a 25 29 29  |.W(J%)=.s(V(J%))|
00000700  2b 22 73 69 6e 28 22 2b  c3 46 25 28 4a 25 29 2b  |+"sin("+.F%(J%)+|
00000710  22 78 2b 22 2b c3 50 25  28 4a 25 29 2b 22 29 22  |"x+"+.P%(J%)+")"|
00000720  0d 02 26 51 dd a4 73 28  56 29 ea 4c 25 2c 76 24  |..&Q..s(V).L%,v$|
00000730  3a 76 24 3d c3 a8 28 56  2a 31 30 30 29 3a 4c 25  |:v$=..(V*100):L%|
00000740  3d a9 76 24 3a e7 4c 25  3e 32 3a 3d c0 76 24 2c  |=.v$:.L%>2:=.v$,|
00000750  4c 25 2d 32 29 2b 22 2e  22 2b c2 76 24 2c 32 29  |L%-2)+"."+.v$,2)|
00000760  8b 3d 22 30 2e 22 2b c2  22 30 22 2b 76 24 2c 32  |.="0."+."0"+v$,2|
00000770  29 0d 02 30 0e dd 20 f2  44 43 5f 43 4f 4d 50 0d  |)..0.. .DC_COMP.|
00000780  02 3a 32 44 3d a4 76 61  6c 28 22 50 6c 65 61 73  |.:2D=.val("Pleas|
00000790  65 20 65 6e 74 65 72 20  44 43 20 6c 65 76 65 6c  |e enter DC level|
000007a0  20 26 20 70 72 65 73 73  20 52 65 74 75 72 6e 22  | & press Return"|
000007b0  29 0d 02 44 39 e7 44 3a  59 25 3d a8 44 3a e3 58  |)..D9.D:Y%=.D:.X|
000007c0  25 3d 30 b8 31 31 37 30  3a 41 25 28 58 25 29 3d  |%=0.1170:A%(X%)=|
000007d0  41 25 28 58 25 29 2b 59  25 3a f0 20 36 39 2c 58  |A%(X%)+Y%:. 69,X|
000007e0  25 2c 59 25 2b 34 30 30  3a ed 0d 02 4e 05 e1 0d  |%,Y%+400:...N...|
000007f0  02 58 1c dd 20 f2 53 55  4d 5f 57 41 56 45 3a f2  |.X.. .SUM_WAVE:.|
00000800  61 78 69 73 28 31 2c 31  29 3a db 0d 02 62 3b f2  |axis(1,1):...b;.|
00000810  6f 75 74 28 22 50 6c 6f  74 74 69 6e 67 20 72 65  |out("Plotting re|
00000820  73 75 6c 74 61 6e 74 20  63 6f 6d 70 6c 65 78 20  |sultant complex |
00000830  77 61 76 65 66 6f 72 6d  3a 22 29 3a 54 24 3d 22  |waveform:"):T$="|
00000840  79 3d 22 2b c3 44 0d 02  6c 1d 4a 25 3d 30 3a f5  |y="+.D..l.J%=0:.|
00000850  20 54 24 3d 54 24 2b 22  20 2b 20 22 2b a4 57 28  | T$=T$+" + "+.W(|
00000860  4a 25 29 0d 02 76 18 4a  25 3d 4a 25 2b 31 3a fd  |J%)..v.J%=J%+1:.|
00000870  20 56 28 4a 25 29 3d 2d  39 39 39 0d 02 80 0e f1  | V(J%)=-999.....|
00000880  3a f2 6f 75 74 28 54 24  29 0d 02 8a 1a ec 30 2c  |:.out(T$).....0,|
00000890  34 30 30 3a e6 30 2c 31  3a e3 58 25 3d 30 b8 31  |400:.0,1:.X%=0.1|
000008a0  31 37 30 0d 02 94 16 df  58 25 2c 41 25 28 58 25  |170.....X%,A%(X%|
000008b0  29 2b 34 30 30 3a ed 3a  e1 0d 02 9e 0c dd 20 f2  |)+400:.:...... .|
000008c0  50 52 49 4e 54 0d 02 a8  12 2a 47 44 55 4d 50 20  |PRINT....*GDUMP |
000008d0  30 20 31 20 31 20 31 0d  02 b2 05 e1 0d 02 bc 1d  |0 1 1 1.........|
000008e0  dd a4 79 28 54 24 29 f2  6f 75 74 28 54 24 2b 22  |..y(T$).out(T$+"|
000008f0  3f 20 28 79 2f 6e 29 22  29 0d 02 c6 20 ea 49 25  |? (y/n)")... .I%|
00000900  3a f5 49 25 3d a7 22 59  79 4e 6e 22 2c be 29 3a  |:.I%=."YyNn",.):|
00000910  fd 49 25 3a 3d 49 25 3c  33 0d 02 d0 24 dd a4 76  |.I%:=I%<3...$..v|
00000920  61 6c 28 54 24 29 ea 56  3a db 3a f2 6f 75 74 28  |al(T$).V:.:.out(|
00000930  54 24 29 3a e8 27 22 3f  22 56 3a 3d 56 0d 02 da  |T$):.'"?"V:=V...|
00000940  13 dd f2 6f 75 74 28 54  24 29 ea 4c 25 2c 57 25  |...out(T$).L%,W%|
00000950  0d 02 e4 16 e7 4d 25 3d  34 3a 57 25 3d 34 30 3a  |.....M%=4:W%=40:|
00000960  8b 57 25 3d 38 30 0d 02  ee 12 f5 20 77 24 3d a4  |.W%=80..... w$=.|
00000970  77 3a 4c 25 3d a9 77 24  0d 02 f8 1a e7 9c 2b 4c  |w:L%=.w$......+L|
00000980  25 3e 3d 57 25 2d 31 f1  8b e7 9c 3e 30 f1 22 20  |%>=W%-1....>0." |
00000990  22 3b 0d 03 02 11 f1 77  24 3b 3a fd 54 24 3d 22  |";.....w$;:.T$="|
000009a0  22 3a e1 0d 03 0c 0b dd  a4 77 3a ea 4c 25 0d 03  |":.......w:.L%..|
000009b0  16 13 4c 25 3d a7 54 24  2b 22 20 22 2c 22 20 22  |..L%=.T$+" "," "|
000009c0  29 0d 03 20 12 77 24 3d  c1 54 24 2c 31 2c 4c 25  |).. .w$=.T$,1,L%|
000009d0  2d 31 29 0d 03 2a 14 54  24 3d c1 54 24 2c 4c 25  |-1)..*.T$=.T$,L%|
000009e0  2b 31 29 3a 3d 77 24 0d  ff                       |+1):=w$..|
000009e9
Fourier.m0
Fourier.m1
Fourier.m2
Fourier.m4
Fourier.m5