home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1979-12-31 | 2.8 KB | 85 lines |
- 10 REM ***************************
- 20 REM * MICRO-CAP *
- 25 REM * COPYRIGHT 1982 *
- 28 REM * WAVEGEN MODULE *
- 30 REM * SPECTRUM SOFTWARE *
- 50 REM ***************************
- 90 DIM VX(101)
- 100 KEY OFF
- 110 CLS:LOCATE 12:PRINT "PRESS M TO MODIFY THE WAVEFORM CODE ANY OTHER KEY TO GENERATE THE DISK FILE"
- 120 T$=INKEY$:IF T$="" THEN 120
- 121 PRINT T$:IF T$="M" THEN 2050
- 130 CLS:LOCATE 10:INPUT "ENTER TMAX FOR THE WAVEFORM ";TM
- 140 PRINT
- 150 N=1000
- 155 INPUT "ENTER THE FILE # TO SAVE THE WAVEFORM UNDER (0-9) ";XO$
- 200 PRINT
- 210 PRINT "ENTER THE MAXIMUM PEAK TO PEAK ";:INPUT "AMPLITUDE OF THE WAVEFORM ";PP
- 220 REM
- 230 IF PP=0 THEN 210
- 240 VS=150/PP
- 260 DT=TM/N:T= -DT
- 270 HS=600/TM
- 280 VS= -VS
- 290 SCREEN 2
- 300 FOR X=0 TO 600 STEP 60:LINE (X,0)-(X,150):NEXT
- 310 FOR Y=0 TO 150 STEP 15:LINE (0,Y)-(600,Y):NEXT
- 320 REM
- 330 FOR L=0 TO N-1
- 340 T=T+DT
- 350 GOSUB 1000
- 359 LOCATE 21,1:PRINT V" "
- 360 GOSUB 2212
- 370 X=HS*T:Y=VS*V+75
- 380 REM
- 390 IF Y>0 AND YS>0 AND Y<159 AND YS<159 THEN LINE(X,Y)-(XS,YS)
- 400 XS=X:YS=Y
- 410 NEXT
- 430 SCREEN 0
- 440 REM
- 450 REM
- 460 CLS:PRINT "TO RETURN TO THE EDITOR, FIRST TYPE "
- 461 PRINT "SYSTEM <ENTER> THEN,"
- 462 PRINT "EDITOR <ENTER>"
- 463 END
- 1000 REM ***************************
- 1010 REM ** USER AREA **
- 1020 REM ** BEGINS HERE **
- 1030 REM ** V=WAVEFORM VOLTAGE **
- 1040 REM ** T=TIME IN SECONDS **
- 1050 REM ** LINE 1500 IS **
- 1060 REM ** DEMO CODE **
- 1070 REM ** REMOVE BEFORE USE **
- 1080 REM ***************************
- 1500 V=5*EXP(-T/1.99E-07)*SIN(T/1.8E-08)
- 1940 RETURN
- 1950 RETURN
- 1960 RETURN
- 1970 REM ***************************
- 1980 REM ** USER AREA **
- 1990 REM ** ENDS HERE **
- 2000 REM ***************************
- 2010 REM RETURN IN NEXT LINE IS FOR POSSIBILITY THAT USER ZAPS THE REGULAR RETURN FROM GOSUB 1000
- 2020 RETURN
- 2050 CLS:PRINT "THE USER AREA BEGINS AT LINE 1000 AND ENDS AT 2000."
- 2060 PRINT "YOU MAY PLACE ANY BASIC CODE IN THE USER AREA, INCLUDING FUCTIONS, DATA STATEMENTS,EQUATIONS ETC."
- 2070 PRINT "THE USER CODE GENERATES THE WAVEFORM."
- 2080 PRINT
- 2090 PRINT "AS SUPPLIED THE USER CODE CONTAINS A DEMO FUNCTION WHICH GENERATES AN EXPONENTIALLY DECAYING SINUSOID, USING LINE 1500."
- 2130 PRINT "REMOVE LINE 1500 BEFORE INSTALLING YOUR CODE."
- 2140 PRINT "AFTER PLACING YOUR CODE IN THE USER AREA, TYPE RUN, PRESS <ENTER> TWICE"
- 2150 PRINT "AND THE PROGRAM WILL ENTER THE GENERATE MODE."
- 2170 PRINT:PRINT "REMEMBER, UNLESS YOU SAVE THE BASIC PROGRAM UNDER THE NAME..WAVEGEN AFTER"
- 2180 PRINT "MODIFYING THE USER CODE AND BEFORE ACTUALLY GENERATING THE WAVEFORM, YOUR USER CODE WILL BE LOST."
- 2210 END
- 2212 J=INT(T*N/TM+0.5):JJ=INT((J)/100):JX=INT((J+1)/100):VX(J-100*JJ)=V
- 2213 IF JL=JX THEN RETURN ELSE IF JL=JX THEN RETURN
- 2214 JL=JX
- 2215 F$="USER"+XO$+STR$(JL-1)
- 2220 FILE$="B:"+F$
- 2225 LOCATE 22,1:PRINT"SAVING WAVEFORM SECTION ";JL-1
- 2230 OPEN FILE$ FOR OUTPUT AS #1
- 2260 FOR W=0 TO 99:PRINT #1,VX(W):NEXT
- 2270 CLOSE #1
- 2280 RETURN
-