home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / sourcecode / various / sine_wave_creator.amos / sine_wave_creator.amosSourceCode
AMOS Source Code  |  1991-08-01  |  2KB  |  90 lines

  1. '(c) 1990 G.Shilvock 
  2. '
  3. ' Program To Write The X & Y Co-ords of a Sine Wave To Screen Or File. 
  4. '
  5. Do 
  6.    CALC
  7. Loop 
  8. '
  9. '
  10. Procedure CALC
  11.    Screen Open 1,640,8,2,Hires : Cls 0 : Palette $0,$FFF
  12.    Hide : Curs Off 
  13.    Locate 0,0 : Centre "Sine Calculator (c) 1990 G.Shilvock"
  14.    Screen Open 0,640,256,2,Hires : Cls 0
  15.    Palette $0,$FAC
  16.    Screen To Front 1
  17.    COUNT=0 : Hide : Curs Off 
  18.    Locate 0,4
  19.    Input "Amplitude Of Wave         : ";RAD
  20.    If RAD=0
  21.       RAD=60
  22.    End If 
  23.    Input "Offset From Top Of Screen : ";OFFSET
  24.    If OFFSET=0
  25.       OFFSET=100
  26.    End If 
  27.    Input "Step ( 1-Fine, 10-Rough ) : ";STP#
  28.    If STP#=0.0
  29.       STP#=1.0
  30.    End If 
  31.    ST#=STP#/100
  32.    Input "Write To Screen Or File (S/F): ";WHERE$
  33.    If WHERE$=""
  34.       WHERE$="s"
  35.    End If 
  36.    Input "View Wave ? :";ANS$
  37.    If ANS$=""
  38.       ANS$="n"
  39.    End If 
  40.    If ANS$="y"
  41.       Cls 0
  42.       X=0
  43.       For B#=0 To 2*Pi# Step ST#
  44.          Y=Sin(B#)*RAD+OFFSET
  45.          Inc X : 
  46.          Plot X,Y,$FFF
  47.       Next 
  48.    End If 
  49.    Locate 0,29 : Centre "Press Any Key To Calculate Data."
  50.    Wait Key 
  51.    Cls 
  52.    If WHERE$="s"
  53.       COUNT=0
  54.       Locate 0,4
  55.       X=0
  56.       For A#=0 To 2*Pi# Step ST#
  57.          Inc X
  58.          Y=Sin(A#)*RAD+OFFSET
  59.          Print "data ";
  60.          Print Hex$(X);
  61.          Print ",";
  62.          Print Hex$(Y)
  63.          Inc COUNT
  64.          If COUNT=25
  65.             Locate 0,29 : Centre "Press Any Key To Continue"
  66.             Wait Key 
  67.             Cls 
  68.             Locate 0,4
  69.             COUNT=0
  70.          End If 
  71.       Next 
  72.    End If 
  73.    Locate 0,29 : Centre "End Of Calculation - Press Any Key To Re-Run"
  74.    Wait Key 
  75.    If WHERE$="f"
  76.       X=0
  77.       Open Out 1,"SinData.ASC"
  78.       For A#=0 To 2*Pi# Step ST#
  79.          Inc X
  80.          Y=Sin(A#)*RAD+OFFSET
  81.          OP$="data "
  82.          OP$=OP$+Hex$(X)
  83.          OP$=OP$+","
  84.          OP$=OP$+Hex$(Y)
  85.          Print #1,OP$
  86.          OP$=""
  87.       Next 
  88.       Close 1
  89.    End If 
  90. End Proc