home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / demo / mag / ModsDocsLLFB.lha / DocsAudio-Modified.AMOS / DocsAudio-Modified.amosSourceCode < prev    next >
Encoding:
AMOS Source Code  |  1996-10-23  |  2.8 KB  |  93 lines

  1. 'Doc's Audio 1.0 - Kamikaze (LLFB) 
  2. 'Changes...V.-1.1: PROTRACKER-Player library adapted by Lobo (LLFB) (HI KAMIKAZE!) 
  3. Break Off 
  4. Led Off 
  5. Global M,MD_POINTER,MD_NAME$
  6. Unpack 6 To 0
  7. Erase 6
  8. Limit Mouse 128,42 To 436,286
  9. Reserve Zone 3
  10. Set Zone 1,147,433 To 242,486 : Set Zone 2,282,433 To 374,486 : Set Zone 3,415,433 To 502,486
  11. 'Llamada a la libreria (Usa canal 2 de lib open para compatibilidad con mi procedure de Doc's.)
  12. If Exist("LIBS:ptreplay.library") Then Lib Open 2,"ptreplay.library",0 Else End 
  13. Proc MENU
  14. Procedure MENU
  15.    Do 
  16.       Screen 0
  17.       MZ=Mouse Zone : MK=Mouse Click
  18.       If(MZ=1 and MK=1) Then Proc CARGAR
  19.       If(MZ=2 and MK=1 and MD_POINTER>0 and M=0) Then M=1 : Proc MD_CON[1]
  20.       If(MZ=3 and MK=1 and MD_POINTER>0 and M=1) Then M=0 : Proc MD_CON[2]
  21.       If Key State(69) Then Exit 
  22.       Wait Vbl 
  23.    Loop 
  24.    Proc SALIDA
  25. End Proc
  26. Procedure CARGAR
  27.    F$=Fsel$("","","Elige el modulo a cargar")
  28.    If F$="" Then Pop Proc
  29.    If F$<>""
  30.       Open In 1,F$
  31.       Line Input #1,L$
  32.       'Protracker seguro?
  33.       Pof(1)=1080
  34.       FMA$=Input$(1,4)
  35.       Close 1
  36.       If FMA$="M.K." or FMA$="M!K!" or FMA$="FLT4"
  37.          If MD_POINTER>0
  38.             Proc MD_CON[2]
  39.             Proc MD_CON[3]
  40.          End If 
  41.          MD_POINTER=0
  42.          MD_NAME$=F$
  43.          L$=L$-Chr$(10)
  44.          L$=L$-Chr$(13)
  45.          Proc MD_CON[4]
  46.          Ink 2,1
  47.          Cls 1,0,498 To 640,511
  48.          Text 200,498,"Memoria CHIP libre: "+Str$(Chip Free)
  49.          Text 200,506,"Modulo: "+L$
  50.          M=1 : Proc MD_CON[1]
  51.       End If 
  52.    End If 
  53. End Proc
  54. Procedure MD_CON[CONTROL]
  55.    'Control variable: (Valores implementados) 
  56.    '1=play 2=stop 3=eliminar mod. 4=cargar mod. 
  57.    'Master, control. Procedure BY Lobo (Kickin' ass!) 
  58.    If CONTROL>4 or CONTROL<1 Then Pop Proc[-1]
  59.    ' * Play muzak!
  60.    If CONTROL=1
  61.       If MD_POINTER=0 : RESULT=-1 : Pop Proc[RESULT] : End If 
  62.       Areg(0)=MD_POINTER
  63.       RESULT=Lib Call(2,-42)
  64.    End If 
  65.    ' * Stop muzak!
  66.    If CONTROL=2
  67.       If MD_POINTER=0 : RESULT=-1 : Pop Proc[RESULT] : End If 
  68.       Areg(0)=MD_POINTER
  69.       RESULT=Lib Call(2,-48)
  70.    End If 
  71.    ' * WipEoUt muzak
  72.    If CONTROL=3
  73.       If MD_POINTER=0 : RESULT=-1 : Pop Proc[RESULT] : End If 
  74.       Areg(0)=MD_POINTER
  75.       RESULT=Lib Call(2,-48)
  76.       Wait Vbl 
  77.       Areg(0)=MD_POINTER
  78.       RESULT=Lib Call(2,-36)
  79.    End If 
  80.    'Llamada a la libreria para cargar el modulo (NO SOPORTA AMOS TRACKER-BANK!) 
  81.    If CONTROL=4
  82.       If MD_NAME$="" : RESULT=-1 : Pop Proc[RESULT] : End If 
  83.       Areg(0)=Varptr(MD_NAME$)
  84.       MD_POINTER=Lib Call(2,-30)
  85.    End If 
  86.    'OJO!, LAS VARIABLES MD_POINTER y MD_NAME$ HAN DE SER GLOBALES!!!, si no, esto no va!... 
  87.    Led Off : Wait Vbl 
  88. End Proc[RESULT]
  89. Procedure SALIDA
  90. If MD_POINTER>0 : Proc MD_CON[2] : Proc MD_CON[3] : End If 
  91. Lib Close 2
  92. End 
  93. End Proc