home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
No Fragments Archive 4: The Falcon Archive
/
nf_archive_four_v1.0.iso
/
ARCHIVE
/
DEMOS
/
INTER
/
SCHWAB2.ZIP
/
DSPMOD96.TXT
< prev
next >
Wrap
Text File
|
1995-05-24
|
5KB
|
228 lines
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 für 96 kByte d.h. alle Samples eines MOD's dürfen
max. 96 kBytes lang sein. Ist natürlich ein Nachteil, aber dafür
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 für den Rechenzeitverbrauch. Natürlich
könnte man den MOD-Interpreter noch optimieren. Ich habe den Player
nicht gründlich getestet. Ich muß nämlich wieder mal was für 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
zurückgesetzt. Diese Funktion muß bei beenden des Programm's, welches
DSPMOD96 benutzt, ausgeführt 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 .....