Path: utzoo!attcan!uunet!mcsun!hp4nl!phigate!ehviea!leo From: leo@ehviea.ine.philips.nl (Leo de Wit) Newsgroups: comp.sys.atari.st.tech Subject: Re: Using Timer A to replay a sample Message-ID: <892@ehviea.ine.philips.nl> Date: 27 Sep 90 09:30:03 GMT References: <1990Sep24.122920.15704@irscscm.UUCP> <891@ehviea.ine.philips.nl> Reply-To: leo@ehviea.UUCP (Leo de Wit) Organization: Philips I&E Eindhoven Lines: 26 In article <891@ehviea.ine.philips.nl> leo@ehviea.UUCP (Leo de Wit) writes: |Your do_snd routine must be coded as an interrupt routine; that is, it |must end in a rte instruction; not only that, it must also mark |(clear?) a bit in the I/O range (sorry, have to look this up), The sequence for timer A is (I looked it up): my_timint ... do your stuff here ... bclr #5,$fffa0f rte The documentation I have says that in order to clear a bit in a MFP register, you have to write 1's into the other bits; this is in contradiction with the above (which is analogous to the ROM code). The bclr instruction to memory does both read and write a byte (correct me if I'm wrong), but this does not guarantee that 1's are written to the other bits (they must have been there already). The explanation for this instruction was something like: the 68K notifies the MFP that interrupts may be delivered; I wonder what happens if one is being delivered before the rte (this is theoretically possible, and my spurious interrupt problem seems to indicate practically too). Leo.