ben@epmooch.UUCP (Rev. Ben A. Mesander) (04/03/91)
I'm frustrated by SoundTracker/NoiseTracker module players that are buggy and refuse to play at the right speed on NTSC machines. Although I'm a rank beginner at 68000 assembler, it seems from the following fragment of a module player that the timebase is coming from the vertical blank interrupt: section "play",CODE include "exec/types.i" include "libraries/dos.i" include "streplay_lib.i" xdef mt_start xdef mt_brems ^^^^^------- Is this "end" or something in German? call MACRO xref _LVO\1 jsr _LVO\1(a6) ENDM even mt_start: movem.l d2-d7/a2-a6,-(sp) bsr mt_init move.l 4,a6 ^---------- AbsExecBase? lea intnode(pc),a1 moveq #5,d0 ^^--------- I think this is INTB_VERTB call AddIntServer movem.l (sp)+,d2-d7/a2-a6 rts mt_brems: movem.l d2-d7/a2-a6,-(sp) lea intnode(pc),a1 moveq #5,d0 ^^--------- I think this is INTB_VERTB move.l 4,a6 ^---------- AbsExecBase? call RemIntServer bsr mt_end movem.l (sp)+,d2-d7/a2-a6 rts intnode: dc.l 0,0 dc.b 2,0 dc.l intname,0,mt_call intname: dc.b "STReplay_Lib Interrupt",0 even mt_init: [rest of source deleted] I assume the speed problem is the 50Hz/PAL vs. 60Hz/NTSC thing. So I would guess that the thing to do to fix this code (besides replacing manifest constants with symbols :-) would be to change it to derive a 50Hz timebase from a CIA timer. Would this be INTB_PORTS? How do I tell the CIA that I want to be interrupted at 50Hz? Thanks in advance... -- | ben@epmooch.UUCP (Ben Mesander) | "Cash is more important than | | ben%servalan.UUCP@uokmax.ecn.uoknor.edu | your mother." - Al Shugart, | | !chinet!uokmax!servalan!epmooch!ben | CEO, Seagate Technologies |
peterk@cbmger.UUCP (Peter Kittel GERMANY) (04/04/91)
In article <ben.5586@epmooch.UUCP> ben@epmooch.UUCP (Rev. Ben A. Mesander) writes: > > xdef mt_brems > ^^^^^------- Is this "end" or something in German? No, "bremsen" means "to break", "get slower". In a program, I would guess for a wait routine. But this doesn't look like a wait routine, when calling RemoveInterruptServ: >mt_brems: > movem.l d2-d7/a2-a6,-(sp) > lea intnode(pc),a1 > moveq #5,d0 > ^^--------- I think this is INTB_VERTB > move.l 4,a6 > ^---------- AbsExecBase? > call RemIntServer > bsr mt_end > movem.l (sp)+,d2-d7/a2-a6 > rts -- Best regards, Dr. Peter Kittel // E-Mail to \\ Only my personal opinions... Commodore Frankfurt, Germany \X/ {uunet|pyramid|rutgers}!cbmvax!cbmger!peterk