[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [MiNT] strange memory violation
Hmm, I see my dumb question started quite nice discussion :)
First you need to know that what works on TOS, MagiC, etc., will not
work on MiNT (may work without MP, but such stuff is the root of
unstable system).
All your arguments come from the fact _if_ my software crash it will
hang the system. I agree, it isn't the good practice but let's say on
some alternative:
The optimal solution would be to write a device driver (XDD) to play
the modules. Then you have much larger control, the player would be
available to any application via /dev/mod, for example, into which you
can write the modfile you want to play .. and it plays. If you want your
player to work on non-MiNT machines, you would need to write two version
of your app. The MiNT version would consist of a 'modplay.xdd' and your
player application, whereas the other version will be 'normal'. Perhaps
Konrad has a few more hints on this .. Konrad?
and let's add the comment about /dev/audio. And for let's say XMs we
need /dev/xm and for S3M /dev/s3m. So this will lead us to
/dev/modplayer (I remember some library with similar functionality,
libmikmod?) and we've got what? General-purpose mod player? And what is
the difference between 'normal' app and this one? NONE. Ask you why?
Since if (again that if) my kernel module crash, it will hang whole
system (since it modifies important HW registers) and we're in the
beginning. So I think good approach isn't to avoid supervisor oriented
applications completely but to write safe and public (open) code so
everyone can track bugs.
Of course I don't say kernel modules aren't better but show me a guy who
will take every replay routine, adapt it to kernel module, do the
interface to it and then make another, separate version for
TOS/MagiC/MiNT-NP. So theory is maybe nice thing but we have to think in
the range of our possibilities.
Btw, exactly why do you need Timer D?
I use it in demos since it's free timer in (nearly) every case since A
is for DMA/samples tracking, B for HBL and C for AES (iirc).
--
----------------------------------------------------------------------------
MiKRO Atari XE/XL/Mega STE/Falcon060 http://mikro.atari.org
----------------------------------------------------------------------------