home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
pc
/
0600
/
CCE_0616.ZIP
/
CCE_0616.PD
/
AUDIOFUN
/
SWK_BIND.BAS
< prev
next >
Wrap
BASIC Source File
|
1993-05-30
|
11KB
|
252 lines
63000 '*************************************************************************
63001 '* *
63002 '* SWK_BIND.BAS *
63003 '* ------------ *
63004 '* *
63005 '* Binding für SOUNDWORKER V1.0 *
63006 '* *
63007 '* Sprache: OMIKRON.BASIC *
63008 '* *
63009 '*************************************************************************
63010 '
63011 '
63012 '
63013 '*************************************************************************
63014 '* *
63015 '* SWK_LOAD *
63016 '* *
63017 '* Eingabe: Filename$ *
63018 '* *
63019 '* Ausgabe: 1 -> Erfolgreich geladen *
63020 '* 0 -> falsche Datei *
63021 '* *
63022 '*************************************************************************
63023 '
63024 DEF PROC Swk_Load(R Lret%,Filename$)
63025 '
63026 LOCAL Size%,I%
63027 LOCAL Swk_Id$="SOUNDWORKER V1.0"
63028 '
63029 OPEN "I",1,Filename$
63030 Size%= LOF(1)
63031 CLOSE 1
63032 IF Size%<>5024 THEN
63033 Lret%=0
63034 ELSE
63035 DIM Swk_Array%(2512)
63036 Swk_Adr%L= LPEEK( VARPTR(Swk_Array%(0)))+ LPEEK( SEGPTR +20)
63037 Swk_Ptr%L= LPEEK( VARPTR(Swk_Id$))+ LPEEK( SEGPTR +28)
63038 BLOAD Filename$,Swk_Adr%L
63039 Lret%=1
63040 FOR I%=0 TO 3 STEP 4
63041 IF LPEEK(Swk_Adr%L+I%)<> LPEEK(Swk_Ptr%L+I%) THEN
63042 Lret%=0
63043 EXIT
63044 ENDIF
63045 NEXT I%
63046 ENDIF
63047 '
63048 RETURN
63049 '
63050 '
63051 '
63052 '*************************************************************************
63053 '* *
63054 '* SWK_START *
63055 '* *
63056 '*************************************************************************
63057 '
63058 DEF PROC Swk_Start
63059 '
63060 Swk_Ptr%L=Swk_Adr%L+48
63061 XBIOS (,38, HIGH(Swk_Ptr%L), LOW(Swk_Ptr%L))
63062 '
63063 RETURN
63064 '
63065 '
63066 '
63067 '*************************************************************************
63068 '* *
63069 '* SWK_STOP *
63070 '* *
63071 '*************************************************************************
63072 '
63073 DEF PROC Swk_Stop
63074 '
63075 Swk_Ptr%L=Swk_Adr%L+52
63076 XBIOS (,38, HIGH(Swk_Ptr%L), LOW(Swk_Ptr%L))
63077 '
63078 RETURN
63079 '
63080 '
63081 '
63082 '*************************************************************************
63083 '* *
63084 '* SWK_PLAY *
63085 '* *
63086 '* Eingabe: Channel -> 0 ... 2 *
63087 '* Part -> +/- 1 ... 8 startet den Kanal *
63088 '* sonst stummschalten *
63089 '* *
63090 '*************************************************************************
63091 '
63092 DEF PROC Swk_Play(Channel%,Part%)
63093 '
63094 IF Channel%>=0 AND Channel%<=2 THEN Swk_Array%(9+Channel%)=Part%
63095 '
63096 RETURN
63097 '
63098 '
63099 '
63100 '*************************************************************************
63101 '* *
63102 '* SWK_TILL *
63103 '* *
63104 '* Eingabe: Channel -> 0 ... 2 *
63105 '* Last -> Anzahl der zu spielenden Töne *
63106 '* *
63107 '*************************************************************************
63108 '
63109 DEF PROC Swk_Till(Channel%,Last%)
63110 '
63111 IF Channel%>=0 AND Channel%<=2 THEN Swk_Array%(12+Channel%)=Last%
63112 '
63113 RETURN
63114 '
63115 '
63116 '*************************************************************************
63117 '* *
63118 '* SWK_EXEC *
63119 '* *
63120 '* Eingabe: Channel -> 0 ... 2 *
63121 '* Begin -> Taktnummer zum Starten der Routine *
63122 '* Routine -> Startadresse der Routine *
63123 '* *
63124 '*************************************************************************
63125 '
63126 DEF PROC Swk_Exec(Channel%,Begin%,Routine%L)
63127 '
63128 IF Channel%>=0 AND Channel%<=2 THEN
63129 Swk_Array%(12+Channel%)=Begin%
63130 Channel%=Channel%+Channel%
63131 Swk_Array%(15+Channel%)= HIGH(Routine%L)
63132 Swk_Array%(16+Channel%)= LOW(Routine%L)
63133 ENDIF
63134 '
63135 RETURN
63136 '
63137 '
63138 '
63139 '*************************************************************************
63140 '* *
63141 '* SWK_TIME *
63142 '* *
63143 '* Eingabe: channel -> 0 ... 2 *
63144 '* *
63145 '* Ausgabe: momentan gespielter Takt oder Null, wenn stumm *
63146 '* *
63147 '*************************************************************************
63148 '
63149 DEF PROC Swk_Time(R Tret%,Channel%)
63150 '
63151 IF Channel%>=0 AND Channel%<=2 THEN
63152 Tret%=Swk_Array%(9+Channel%) AND $FF
63153 ENDIF
63154 '
63155 RETURN
63156 '
63157 '
63158 '
63159 '*************************************************************************
63160 '* *
63161 '* SWK_PART *
63162 '* *
63163 '* Eingabe: channel -> 0 ... 2 *
63164 '* *
63165 '* Ausgabe: momentan gespielter Part oder Null, wenn stumm *
63166 '* *
63167 '*************************************************************************
63168 '
63169 DEF PROC Swk_Part(R Pret%,Channel%)
63170 '
63171 IF Channel%>=0 AND Channel%<=2 THEN Pret%=Swk_Array%(9+Channel%) SHR 8
63172 '
63173 RETURN
63174 '
63175 '
63176 '
63177 '*************************************************************************
63178 '* *
63179 '* JOY_START *
63180 '* *
63181 '*************************************************************************
63182 '
63183 DEF PROC Joy_Start
63184 '
63185 Swk_Ptr%L=Swk_Adr%L+56
63186 XBIOS (,38, HIGH(Swk_Ptr%L), LOW(Swk_Ptr%L))
63187 '
63188 RETURN
63189 '
63190 '
63191 '
63192 '*************************************************************************
63193 '* *
63194 '* JOY_STOP *
63195 '* *
63196 '*************************************************************************
63197 '
63198 DEF PROC Joy_Stop
63199 '
63200 Swk_Ptr%L=Swk_Adr%L+60
63201 XBIOS (,38, HIGH(Swk_Ptr%L), LOW(Swk_Ptr%L))
63202 '
63203 RETURN
63204 '
63205 '
63206 '
63207 '*************************************************************************
63208 '* *
63209 '* JOY_LAST *
63210 '* *
63211 '*************************************************************************
63212 '
63213 DEF PROC Joy_Last(R Jlast%)
63214 '
63215 Jlast%=Swk_Array%(21)
63216 '
63217 RETURN
63218 '
63219 '
63220 '
63221 '*************************************************************************
63222 '* *
63223 '* JOY_0 *
63224 '* *
63225 '*************************************************************************
63226 '
63227 DEF PROC Joy_0(R Stick_0%)
63228 '
63229 Stick_0%=Swk_Array%(22)
63230 '
63231 RETURN
63232 '
63233 '
63234 '
63235 '*************************************************************************
63236 '* *
63237 '* JOY_1 *
63238 '* *
63239 '*************************************************************************
63240 '
63241 DEF PROC Joy_1(R Stick_1%)
63242 '
63243 Stick_1%=Swk_Array%(23)
63244 '
63245 RETURN
63246 '
63247 '
63248 '
63249 '/* EOF */
ə