24/05/95 DSPMOD96 User's Manual ==================== written by bITmASTER of TCE Hi Freaks, eigentlich muž ich an einer Diplomarbeit schreiben, aber sowas macht einfach kein Spaž ( ja genau: no DSP - no FUN, ok die Diplomarbeit hat auch was mit DSP's zu tun, so schlecht ist das Thema ( FFT ) nicht, aber ich schreibe nun mal nicht gerne irgendwelche Abhandlungen ) Falsch geraten, das ist nicht DSPMOD V 9.6 sondern DSPMOD96 V1.0 ! Die 96 steht fr 96 kByte d.h. alle Samples eines MOD's drfen max. 96 kBytes lang sein. Ist natrlich ein Nachteil, aber dafr sind die Samples komplett im DSP und die CPU hat weniger zu tun. Aužerdem wirken sich Einschr„nkungen ja immer positiv auf die Kreativit„t aus. Ich denke, daž gute MOD's auch mit 96 kByte Samples auskommen k”nnen. DSPMOD96 kann zur Zeit nur 4-Kanal-MODs abspielen. Aužerdem gibt es kein Surround ( kein Speicher mehr frei ) und keine Interpolation ( kommt sp„ter... ) Wenn man DSPMOD96.PRG startet ( MOD draufziehen, mit 640*480 / 2 Farben ) sieht man den Raster fr den Rechenzeitverbrauch. Natrlich k”nnte man den MOD-Interpreter noch optimieren. Ich habe den Player nicht grndlich getestet. Ich muž n„mlich wieder mal was fr die Diplomarbeit machen...... DSPMOD96 ist kein PD oder Shareware sondern No-Profit-Ware. Das bedeutet: - DSPMOD96 kann beliebig kopiert werden, aber nur ohne Profit-Absicht, d.h. DSPMOD darf nicht auf kommerziellen PD-Disk's, Coverdisk's oder CD's verkauft werden - DSPMOD96 kann ber Mailboxen verbreitet werden - DSPMOD96 kann in jeden nichtkommerziellen Programm ( Freeware ) verwendet werden ( z.B. Demos ) - wer DSPMOD96 in Sharewareprogrammen ( z.B. Games ) verwenden will, muá mir dies mitteilen. - kommerzielle Nutzung ist nur mit mein vorheriges Einverst„ndnis m”glich Die DSPMOD96-Funktionen: Offset Funktion 28 init 32 off 36 PlayerOn 40 PlayerOff 44 PlayMusic 48 PlayTime 52 ModType 56 fx 60 not used 61 Flags 62 SurroundDelay 64 DspTracks 66 PlayInfos 70 SampleSets init ==== Assembler: bsr DSPMOD96+28 in: - out: a0: Zeiger auf Version-String C: char *init( void ); Diese Funktion muž immer zuerst aufgerufen werden. u.a. wird die Soundmatrix initialisiert. Es wird der DSP-Output mit den Codec ( DA-Wandler ) verbunden. off === Assembler: bsr DSPMOD96+32 in: - out: - C: void off( void ) Deinstalliert DSPMOD96. Die Matrix wird wieder auf den alten Zustand zurckgesetzt. Diese Funktion muž bei beenden des Programm's, welches DSPMOD96 benutzt, ausgefhrt werden. PlayerOn ======== Assembler: bsr DSPMOD96+36 in: a0: Zeiger auf Modul, a1: Zeiger auf VolumeTab out: d0 = 0 wenn die Samples > 96kByte sind, MOD kann nicht abgespielt wwerden C: int PlayerOn( char *mod, int *vol_tab ) Spiel ein Modul ab. Die Volume-Tabelle besteht aus 8 Words, welche die SampleMainVol's festlegen. Zur Bestimmung der Volumes siehe "Volume- Calculation". PlayerOff ========= Assembler: bsr DSPMOD96+40 in: - out: - C: void PlayerOn( void ) Stoppt das Abspielen des Modules. Nach PlayerOff() kann mit PlayerOn() ein neues Modul gestartet werden. PlayMusic ========= Assembler: bsr DSPMOD96+44 in: - out: - C: void PlayMusic( void ) PlayMusic ist die Interruptroutine, sie muž regelm„žig aufgerufen werden. Die Interruptfrequenz kann zwischen 50...70 Hz liegen. Die Inhalter der Register d0-a6 werden dabei ver„ndert ! PlayTime ======== Assembler: bsr DSPMOD96+48 in: a0: Zeiger auf Modul out: d0: Playtime in BCD, z.B. $1234 = 12 Min, 34 Sek C: int PlayTime( char *mod ) Ermittelt die Spieldauer eine Modules. ModType ======= Assembler: bsr DSPMOD96+52 in: a0: Zeiger auf Modul out: d0: Anzahl der Tracks ( 4 oder 8 ), 0 bei unbekannten MOD C: int ModType( char *mod ) Es werden Module mit folgenden Magic erkannt: "M.K." "FLT4" "CD8 " "CD81" "FA08" Achtung: ein altes 15er Module wird nicht erkannt ( d0 = 0 ) ! fx == Assembler: bsr DSPMOD96+56: not used DSPMOD96+60: Kopierschutz-Byte ;-) DSPMOD96+61: not used DSPMOD96+62: not used DSPMOD96+64: dc.w immer 4 DSPMOD96+66: dc.l PlayInfos Zeiger auf Variablen des MOD-Interpreters DSPMOD96+70 Zeiger auf SampleSets[4] extern struct { char SampNr; char SampVol; char SampMainVol; char SampPos; int SampPer; } SampSets[]; EOF ( ich bin immer noch schreibfaul ) ich hoffe, daž die Doc einigermažen stimmt .....