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 >
Text File  |  1995-05-24  |  5KB  |  228 lines

  1.                                                             24/05/95
  2.  
  3.                 DSPMOD96 User's Manual
  4.                 ====================
  5.                       written by bITmASTER of TCE
  6.  
  7.  
  8. Hi Freaks,
  9.  
  10. eigentlich muß ich an einer Diplomarbeit schreiben, aber sowas macht
  11. einfach kein Spaß ( ja genau: no DSP - no FUN, ok die Diplomarbeit
  12. hat auch was mit DSP's zu tun, so schlecht ist das Thema ( FFT ) 
  13. nicht, aber ich schreibe nun mal nicht gerne irgendwelche 
  14. Abhandlungen  )
  15.  
  16. Falsch geraten, das ist nicht DSPMOD V 9.6 sondern DSPMOD96 V1.0 !
  17. Die 96 steht für 96 kByte d.h. alle Samples eines MOD's dürfen
  18. max. 96 kBytes lang sein. Ist natürlich ein Nachteil, aber dafür
  19. sind die Samples komplett im DSP und die CPU hat weniger zu tun.
  20. Außerdem wirken sich Einschränkungen ja immer positiv auf die 
  21. Kreativität aus. Ich denke, daß gute MOD's auch mit 96 kByte
  22. Samples auskommen können.
  23.  
  24. DSPMOD96 kann zur Zeit nur 4-Kanal-MODs abspielen. Außerdem
  25. gibt es kein Surround ( kein Speicher mehr frei ) und keine 
  26. Interpolation ( kommt später... )
  27.  
  28. Wenn man DSPMOD96.PRG startet ( MOD draufziehen, mit 640*480 / 2 
  29. Farben ) sieht man den Raster für den Rechenzeitverbrauch. Natürlich
  30. könnte man den MOD-Interpreter noch optimieren. Ich habe den Player 
  31. nicht gründlich getestet. Ich muß nämlich wieder mal was für die
  32. Diplomarbeit machen......
  33.  
  34.  
  35. DSPMOD96 ist kein PD oder Shareware sondern No-Profit-Ware. Das bedeutet:
  36.  
  37. - DSPMOD96 kann beliebig kopiert werden, aber nur ohne Profit-Absicht,
  38.   d.h. DSPMOD darf nicht auf kommerziellen PD-Disk's, Coverdisk's oder
  39.   CD's verkauft werden
  40.  
  41. - DSPMOD96 kann über Mailboxen verbreitet werden
  42.  
  43. - DSPMOD96 kann in jeden nichtkommerziellen Programm ( Freeware )
  44.   verwendet werden ( z.B. Demos )
  45.  
  46. - wer DSPMOD96 in Sharewareprogrammen ( z.B. Games ) verwenden will,
  47.   muβ mir dies mitteilen.
  48.  
  49. - kommerzielle Nutzung ist nur mit mein vorheriges Einverständnis
  50.   möglich
  51.  
  52. Die DSPMOD96-Funktionen:
  53.  
  54. Offset  Funktion
  55.  28    init
  56.  32     off
  57.  36    PlayerOn
  58.  40    PlayerOff
  59.  44    PlayMusic
  60.  48    PlayTime
  61.  52    ModType
  62.  56    fx
  63.  60    not used
  64.  61    Flags
  65.  62    SurroundDelay
  66.  64    DspTracks
  67.  66    PlayInfos
  68.  70    SampleSets
  69.  
  70. init
  71. ====
  72.  
  73. Assembler:
  74.  
  75. bsr DSPMOD96+28
  76. in:    -
  77. out:       a0: Zeiger auf Version-String
  78.  
  79. C:
  80.  
  81. char *init( void );
  82.  
  83. Diese Funktion muß immer zuerst aufgerufen werden.
  84. u.a. wird die Soundmatrix initialisiert. Es wird der DSP-Output
  85. mit den Codec ( DA-Wandler ) verbunden.
  86.  
  87. off
  88. ===
  89.  
  90. Assembler:
  91.  
  92. bsr DSPMOD96+32
  93. in:    -
  94. out:    -
  95.  
  96. C:
  97.  
  98. void off( void )
  99.  
  100. Deinstalliert DSPMOD96. Die Matrix wird wieder auf den alten Zustand
  101. zurückgesetzt. Diese Funktion muß bei beenden des Programm's, welches
  102. DSPMOD96 benutzt, ausgeführt werden.
  103.  
  104. PlayerOn
  105. ========
  106.  
  107. Assembler:
  108.  
  109. bsr DSPMOD96+36
  110. in:    a0: Zeiger auf Modul, a1: Zeiger auf VolumeTab
  111. out:    d0 = 0 wenn die Samples > 96kByte sind, MOD kann nicht
  112.         abgespielt wwerden
  113.  
  114. C:
  115.  
  116. int PlayerOn( char *mod, int *vol_tab )
  117.  
  118. Spiel ein Modul ab. Die Volume-Tabelle besteht aus 8 Words, welche die
  119. SampleMainVol's festlegen. Zur Bestimmung der Volumes siehe "Volume-
  120. Calculation".
  121.  
  122. PlayerOff
  123. =========
  124.  
  125. Assembler:
  126.  
  127. bsr DSPMOD96+40
  128. in:    -
  129. out:    -
  130.  
  131. C:
  132.  
  133. void PlayerOn( void )
  134.  
  135. Stoppt das Abspielen des Modules. Nach PlayerOff() kann mit PlayerOn()
  136. ein neues Modul gestartet werden.
  137.  
  138.  
  139.  
  140. PlayMusic
  141. =========
  142.  
  143. Assembler:
  144.  
  145. bsr DSPMOD96+44
  146. in:    -
  147. out:    -
  148.  
  149. C:
  150.  
  151. void PlayMusic( void )
  152.  
  153. PlayMusic ist die Interruptroutine, sie muß regelmäßig aufgerufen
  154. werden. Die Interruptfrequenz kann zwischen 50...70 Hz liegen.
  155. Die Inhalter der Register d0-a6 werden dabei verändert !
  156.  
  157.  
  158. PlayTime
  159. ========
  160.  
  161. Assembler:
  162.  
  163. bsr DSPMOD96+48
  164. in:    a0: Zeiger auf Modul
  165. out:    d0: Playtime in BCD, z.B. $1234 = 12 Min, 34 Sek
  166.  
  167. C:
  168.  
  169. int PlayTime( char *mod )
  170.  
  171. Ermittelt die Spieldauer eine Modules.
  172.  
  173. ModType
  174. =======
  175.  
  176. Assembler:
  177.  
  178. bsr DSPMOD96+52
  179. in:    a0: Zeiger auf Modul
  180. out:    d0: Anzahl der Tracks ( 4 oder 8 ), 0 bei unbekannten MOD
  181.  
  182. C:
  183.  
  184. int ModType( char *mod )
  185.  
  186. Es werden Module mit folgenden Magic erkannt:
  187. "M.K."
  188. "FLT4"
  189. "CD8 "
  190. "CD81"
  191. "FA08"
  192. Achtung: ein altes 15er Module wird nicht erkannt ( d0 = 0 ) !
  193.  
  194. fx
  195. ==
  196.  
  197. Assembler:
  198.  
  199. bsr DSPMOD96+56:     not used
  200.  
  201. DSPMOD96+60:        Kopierschutz-Byte ;-)
  202.  
  203. DSPMOD96+61:        not used
  204.  
  205.  
  206. DSPMOD96+62:        not used
  207.  
  208.  
  209. DSPMOD96+64:    dc.w    immer 4
  210.  
  211. DSPMOD96+66:    dc.l    PlayInfos
  212. Zeiger auf Variablen des MOD-Interpreters
  213.  
  214. DSPMOD96+70     Zeiger auf SampleSets[4]
  215.  
  216.  
  217. extern struct {
  218.     char SampNr;
  219.     char SampVol;
  220.     char SampMainVol;
  221.     char SampPos;
  222.     int     SampPer;
  223. } SampSets[];
  224.  
  225.  
  226. EOF ( ich bin immer noch schreibfaul )
  227. ich hoffe, daß die Doc einigermaßen stimmt .....
  228.