home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 276-300 / apd280 / sampleconv.amos / sampleconv.amosSourceCode < prev   
AMOS Source Code  |  1989-06-05  |  3KB  |  82 lines

  1. Dim FR(7) : FR(1)=65 : FR(2)=131 : FR(3)=262 : FR(4)=523 : FR(5)=1046 : FR(6)=2093 : FR(7)=4186
  2. Global CD,Q$,FR(),OCT,LSAM,ADSAM,ADRAW,FREQ,L1,L2,AD2,VOL,NAME$
  3. MAIN
  4. Procedure MAIN
  5. Screen Open 1,212,10,2,Lowres : Curs Off 
  6. Screen Display 1,,50,,
  7. Screen Open 0,320,100,16,Lowres : Curs Off : Flash Off : Unpack 2 To 0
  8. Def Scroll 1,56,75 To 264,83,-1,0
  9. S["AMOS SAMPLE CONVERTER V1.0"] : CK : W
  10. S["WRITTEN BY JOHN.A.KINSELLA"] : CK : W
  11. LED=Min(NED,16) : Reserve Zone 50
  12. Get Bob 1,136,16 To 176,48 : Get Bob 2,0,0 To 8,8
  13. For P=0 To 4 : Print At(17+P,2)+Zone$("*",40+P*2); : Print At(17+P,5)+Zone$(" ",41+P*2); : Next 
  14. Ink 0 : Bar 136,16 To 175,46 : Bar 0,0 To 7,7 : Curs Off 
  15. Paste Bob 136,16,1 : Paste Bob 0,0,2 : Erase 1
  16. Set Zone 1,30,26 To 71,38
  17. Set Zone 2,83,18 To 124,30
  18. Set Zone 3,83,34 To 124,46
  19. Set Zone 4,188,22 To 229,42
  20. SEL["Load Sample"] : LD_SAMP[Q$] : PL_SAMP
  21. End Proc
  22. Procedure LD_SAMP[N$]
  23. Open In 1,N$ : LSAM=Lof(1) : Close 
  24. Erase 5 : Reserve As Chip Work 5,LSAM+24 : AD=Start(5)
  25. A$="Samples " : Loke AD-8,Leek(Varptr(A$)) : Loke AD-4,Leek(Varptr(A$)+4)
  26. Doke AD,1 : Add AD,2 : Loke AD,6 : Add AD,4 : Add AD,8
  27. FREQ=8363 : Doke AD,FREQ : Add AD,2 : Loke AD,LSAM : Add AD,4
  28. ADRAW=AD : Bload N$,AD
  29. L1=Deek(ADSAM+$16)*2 : L2=Deek(ADSAM+$1C)*2 : If L2=2 : L2=0 : End If 
  30. AD2=Deek(ADSAM+$1A)*2 : VOL=Deek(ADSAM+$18)
  31. If L1+L2>LSAM : L1=LSAM-L2 : End If 
  32. End Proc[E-22]
  33. Procedure SEL[O$]
  34. 1 Q$=Fsel$("","",O$) : If Q$="" Then Goto 1
  35. If CD=0 Then If Not Exist(Q$) Then Goto 1
  36. End Proc[Q$]
  37. Procedure PL_SAMP
  38. FREQ=8363 : OCT=4
  39. Do : F$="00000" : A$=Str$(FREQ)-" " : Mid$(F$,6-Len(A$))=A$ : Doke Start(5)+14,FREQ
  40. Do : Ink 1,0 : Text 136,35,F$
  41. If MK=1 : While Mouse Key : Wend : End If 
  42. Repeat 
  43. Z=Mouse Zone : MK=Mouse Key : A$=Inkey$
  44. Wait 5 : If A$=" " : Z=30+OCT-1 : MK=1 : End If 
  45. Until Z>=1 and MK<>0
  46. If Z=1
  47. Erase 5 : SSA=0
  48. End If 
  49. If Z=2
  50. CD=0 : SEL["Load Sample"] : LD_SAMP[Q$]
  51. End If 
  52. If Z=3
  53. CD=1 : SEL["Save Sample"] : Save Q$,5
  54. End If 
  55. If Z=4
  56. If Length(5)>1
  57. Sam Play 15,1
  58. End If 
  59. End If 
  60. If Z>=40
  61. ZZ=(Z-40)/2 : A$=Mid$(F$,ZZ+1,1)
  62. If Btst(0,Z)=0
  63. A$=Chr$(Asc(A$)+1)
  64. If A$>"9" : A$="0" : End If 
  65. Else 
  66. A$=Chr$(Asc(A$)-1)
  67. If A$<"0" : A$="9" : End If 
  68. End If : Mid$(F$,ZZ+1)=A$ : FREQ=Val(F$)
  69. Exit 1
  70. End If : Loop : Loop 
  71. End Proc
  72. Procedure S[A$]
  73. Screen 1 : Text 0,8,A$ : For X=0 To 207 : Screen 0
  74. If Mouse Key>0 Then Pop Proc
  75. Scroll 1 : Screen Copy 1,X,0,X+1,10 To 0,263,74 : Wait Vbl : Next 
  76. End Proc
  77. Procedure W
  78. 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 
  79. End Proc
  80. Procedure CK
  81. Repeat : Until Mouse Key>0
  82. End Proc