home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AMOS PD CD
/
amospdcd.iso
/
276-300
/
apd280
/
sampleconv.amos
/
sampleconv.amosSourceCode
< prev
Wrap
AMOS Source Code
|
1989-06-05
|
3KB
|
82 lines
Dim FR(7) : FR(1)=65 : FR(2)=131 : FR(3)=262 : FR(4)=523 : FR(5)=1046 : FR(6)=2093 : FR(7)=4186
Global CD,Q$,FR(),OCT,LSAM,ADSAM,ADRAW,FREQ,L1,L2,AD2,VOL,NAME$
MAIN
Procedure MAIN
Screen Open 1,212,10,2,Lowres : Curs Off
Screen Display 1,,50,,
Screen Open 0,320,100,16,Lowres : Curs Off : Flash Off : Unpack 2 To 0
Def Scroll 1,56,75 To 264,83,-1,0
S["AMOS SAMPLE CONVERTER V1.0"] : CK : W
S["WRITTEN BY JOHN.A.KINSELLA"] : CK : W
LED=Min(NED,16) : Reserve Zone 50
Get Bob 1,136,16 To 176,48 : Get Bob 2,0,0 To 8,8
For P=0 To 4 : Print At(17+P,2)+Zone$("*",40+P*2); : Print At(17+P,5)+Zone$(" ",41+P*2); : Next
Ink 0 : Bar 136,16 To 175,46 : Bar 0,0 To 7,7 : Curs Off
Paste Bob 136,16,1 : Paste Bob 0,0,2 : Erase 1
Set Zone 1,30,26 To 71,38
Set Zone 2,83,18 To 124,30
Set Zone 3,83,34 To 124,46
Set Zone 4,188,22 To 229,42
SEL["Load Sample"] : LD_SAMP[Q$] : PL_SAMP
End Proc
Procedure LD_SAMP[N$]
Open In 1,N$ : LSAM=Lof(1) : Close
Erase 5 : Reserve As Chip Work 5,LSAM+24 : AD=Start(5)
A$="Samples " : Loke AD-8,Leek(Varptr(A$)) : Loke AD-4,Leek(Varptr(A$)+4)
Doke AD,1 : Add AD,2 : Loke AD,6 : Add AD,4 : Add AD,8
FREQ=8363 : Doke AD,FREQ : Add AD,2 : Loke AD,LSAM : Add AD,4
ADRAW=AD : Bload N$,AD
L1=Deek(ADSAM+$16)*2 : L2=Deek(ADSAM+$1C)*2 : If L2=2 : L2=0 : End If
AD2=Deek(ADSAM+$1A)*2 : VOL=Deek(ADSAM+$18)
If L1+L2>LSAM : L1=LSAM-L2 : End If
End Proc[E-22]
Procedure SEL[O$]
1 Q$=Fsel$("","",O$) : If Q$="" Then Goto 1
If CD=0 Then If Not Exist(Q$) Then Goto 1
End Proc[Q$]
Procedure PL_SAMP
FREQ=8363 : OCT=4
Do : F$="00000" : A$=Str$(FREQ)-" " : Mid$(F$,6-Len(A$))=A$ : Doke Start(5)+14,FREQ
Do : Ink 1,0 : Text 136,35,F$
If MK=1 : While Mouse Key : Wend : End If
Repeat
Z=Mouse Zone : MK=Mouse Key : A$=Inkey$
Wait 5 : If A$=" " : Z=30+OCT-1 : MK=1 : End If
Until Z>=1 and MK<>0
If Z=1
Erase 5 : SSA=0
End If
If Z=2
CD=0 : SEL["Load Sample"] : LD_SAMP[Q$]
End If
If Z=3
CD=1 : SEL["Save Sample"] : Save Q$,5
End If
If Z=4
If Length(5)>1
Sam Play 15,1
End If
End If
If Z>=40
ZZ=(Z-40)/2 : A$=Mid$(F$,ZZ+1,1)
If Btst(0,Z)=0
A$=Chr$(Asc(A$)+1)
If A$>"9" : A$="0" : End If
Else
A$=Chr$(Asc(A$)-1)
If A$<"0" : A$="9" : End If
End If : Mid$(F$,ZZ+1)=A$ : FREQ=Val(F$)
Exit 1
End If : Loop : Loop
End Proc
Procedure S[A$]
Screen 1 : Text 0,8,A$ : For X=0 To 207 : Screen 0
If Mouse Key>0 Then Pop Proc
Scroll 1 : Screen Copy 1,X,0,X+1,10 To 0,263,74 : Wait Vbl : Next
End Proc
Procedure W
Screen 0 : For X=0 To 104 Step 2 : Ink 0 : Box 56+X,75 To 56+X+1,83 : Box 264-X,75 To 264-X-1,83 : Wait Vbl : Next
End Proc
Procedure CK
Repeat : Until Mouse Key>0
End Proc