REM *** SAMPLE-PLAYER ***
REM by Simon Wiest ILYM&I
REM    © KICKSTART 1988

CHDIR "df0:"

LIBRARY "exec.library"                  'Library-Funktionen
DECLARE FUNCTION AllocMem& LIBRARY

LIBRARY "dos.library"
DECLARE FUNCTION xOpen& LIBRARY
DECLARE FUNCTION xRead& LIBRARY

Hardware&=14675968&                     'Magische Anfangsadresse
Speed=370                               'Geschwindigkeit

CLS
INPUT "Name des Samples :",f$

OPEN "I",#1,f$                          'Länge des
  Laenge&=LOF(1)                        'Soundfiles
CLOSE #1                                'ermitteln

PRINT "Länge :",Laenge&
IF Laenge&>131070& THEN PRINT "Ich spiele nur einen Teil !":Laenge&=131070&
Adresse&=AllocMem&(Laenge&,2&)          'Speicher reservieren
IF Adresse&=0 THEN PRINT "Nicht genug CHIP-Memory !":END

Handle&=xOpen&(SADD(f$),1005&)          'Datei öffnen
  erg&=xRead&(Handle&,Adresse&,Laenge&) 'Daten lesen
CALL xClose(Handle&)                    'Datei schließen 


POKEL Hardware&+160,Adresse&            'Anfang des Sounds
POKEW Hardware&+164,INT(Laenge&/2)      'Laenge in Worten
POKEW Hardware&+166,Speed               'Geschwindigkeit
POKEW Hardware&+168,64                  'volle Lautstärke

POKEW  Hardware&+150,32769&             'DMA ein = Sound los !

PRINT "Taste drücken..."
WHILE INKEY$="":WEND

POKEW  Hardware&+150,1                  'DMA aus = Sound aus
POKEW Hardware&+168,0                   'Lautstäke: aus
CALL Freemem(Adresse&,Laenge&)          'Speicher freigeben
PRINT "Good Byte !"

END

