EDASSTKSB$˙˙RePlay.ASM˙==========˙˙&Fuer mit SoundMonitor Professional˙&!erstelle Musikstuecke! (V1.2)˙!˙$Kann So assembliert werden, dann˙$&aber ueber Sprungtabelle aufrufen!˙&˙ F,R,I˙ ˙ $3000˙ Sprungtabelle˙ Mp.Init˙ Mp.Play˙˙MusicPlayer V1.2˙!belegt ZP-Adresse $00 & $01 !˙!#Parametertabelle Abspielroutine˙#˙Mp.pos0Position˙!Mp.ptp0,0Pos. im Pattern˙!Mp.spd0Zaehler Geschw.˙Mp.tim0Abspielgeschw.˙"Mp.len0Laenge Musikstueck˙"$Mp.par%00000000% Audio-Werte˙$Mp.ctl0Audio-Control˙% Mp.TrkAdr0Abspielreihenfolge˙%- Mp.TrkBas0Basisadresse Trackspeicher˙-' Mp.HulBas0Basisadresse Huellk.˙'˙$FlagTab% % 16˙$˙!Mp.pat0,0,0,0Pattern-Nr.˙!'Mp.hkp0,0,0,0Zeiger Huellkurve˙'%Mp.fmp0,0,0,0Zeiger FM-Kurve˙% Mp.hkn0,0,0,0Huellkurve˙ Mp.ton0,0,0,0Tonfreq.˙"Mp.vol0,0,0,0Kanal-Volume˙"Mp.not0,0,0,0Noten-Nr.˙Mp.eff0,0,0,0Effekt˙ Mp.cnt0Interner Zaehler˙ Mp.wrk0Arbeitsbereich !˙ Mp.ende0˙˙Initialisierungsroutine˙$Adresse des ungep. Songs in X/Y!˙$Mp.Init0 0˙1 1˙Mp.ende-FlagTab˙0˙Mp.i1/ FlagTab˙˙  Mp.i1˙ 7˙ / Mp.tim˙ 0˙ / Mp.ctl˙ Mp.i21˙ / Mp.spd˙ 32˙ / Mp.ptp˙ 3˙ / Skctl˙ 0˙ / $d208˙ 7˙Mp.i3/ $d200˙ / Mp.par˙ ˙  Mp.i3˙ 3˙0˙ / Mp.len˙ 'Basisadresse Trk-Abspielreihenfolge˙' 0˙ ˙5˙/ Mp.TrkAdr˙ 1˙0˙/ Mp.TrkAdr+1˙  Mp.len˙ / Mp.wrk˙ 0˙/ Mp.wrk+1˙1˙Mp.i4 Mp.wrk˙' Mp.wrk+1˙˙  Mp.i4˙  Mp.wrk˙  ˙ Mp.trkAdr˙/ Mp.TrkBas˙ Mp.wrk+1˙ Mp.TrkAdr+1˙/ Mp.TrkBas+1˙2˙0Anzahl Pattern˙ / Mp.wrk˙ 0˙/ Mp.wrk+1˙5˙Mp.i5 Mp.wrk˙' Mp.wrk+1˙˙  Mp.i5˙  Mp.wrk˙  ˙ Mp.TrkBas˙/ Mp.HulBas˙ Mp.wrk+1˙ Mp.TrkBas+1˙/ Mp.HulBas+1˙ -1˙ / Mp.pos˙ ˙#Routine laeuft in Mp.PLay 'rein˙##fuer 1. Initialisierungsphase !˙#˙(Mp.Play alle 1/50 sekunden aufrufen!˙(˙Mp.Play8˙Mp.p1 Mp.par˙ / $d200˙ ˙  Mp.p1˙  Mp.spd˙  Mp.p1a˙  Mp.DoSnd˙Mp.p1a Mp.ptp+1˙ Mp.p1a1˙,˙+1˙ / Mp.pos˙ 31˙ / Mp.ptp˙ 0˙/ Mp.ptp+1˙Mp.p1a1 Mp.tim˙ / Mp.spd˙ naechste Note im Pattern !˙  Mp.ptp˙  Mp.ptp˙ 32˙  Mp.p2˙ naechstes Pattern˙0˙ / Mp.ptp˙  Mp.pos˙  Mp.pos˙  Mp.lenEnde ?˙  Mp.p1b˙ 0˙ 0 Mp.pos˙ Mp.p1b˙ 5˙ ˙ Mp.TrkAdr˙/ 0˙0˙ Mp.TrkAdr+1˙/ 1˙0˙0˙Mp.p1c0˙ / Mp.pat˙  0˙ ˙  Mp.len˙ / 0˙  Mp.p1d˙  1˙Mp.p1d˙4˙  Mp.p1c˙ Mp.p2˙ 3Kanal˙ / Mp.cnt˙ Mp.p3˙  Mp.cnt˙ 0˙/ 1˙  Mp.pat˙ 5˙Mp.p3a˙' 1˙˙  Mp.p3a˙  ˙ Mp.TrkBas˙/ 0˙ 1˙ Mp.TrkBas+1˙/ 1˙  Mp.ptp˙ 0Note + >hk˙ / Mp.wrk˙  ˙ ˙0˙ Mp.paronly˙ / Mp.not˙ 0˙ / Mp.hkp˙ / Mp.fmp˙  Mp.ptp˙  ˙ 32˙ 3˙0parameter+