Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!wuarchive!uunet!mcsun!unido!uniol!Frank.Neumann From: Frank.Neumann@arbi.informatik.uni-oldenburg.de (Frank Neumann) Newsgroups: comp.sys.amiga.programmer Subject: Re: Mouse blanking Message-ID: Date: 8 May 91 10:14:27 GMT References: <9107@crash.cts.com> Organization: University of Oldenburg, Germany Lines: 49 Hi, mwm@pa.dec.com (Mike (My Watch Has Windows) Meyer) writes: >As one of those authors, I can tell you it's not avoidable. Turning >off sprite DMA (the safe way to turn it off) turns off all the >sprites. That's the way the hardware works. Since MouseOff is a >commodity, use Exchange to disable it when you're running JRComm (or >anything else that needs sprites). I still wonder if switching off sprite DMA by directly addressing the custom chips is a 'legal' way, according to Commodore's programmer guidelines ? I've got the same problem in these days, and other ways like SetPointer() from intuition.library or ChangeSprite() from graphics.library just don't do exactly what I want - turn off ALL sprites, no matter if they are already occupied or not.. >Now, if you want to suggest another way to turn off the cursor that's >2.0 safe (doesn't even need to work in 1.3), I'll gladly consider it. I'll be glad to hear such suggestions, too.. >Matt, what does DMouse do to prevent the sprite dma from being turned >off while a sprite is being displayed? I'm still trying to find a good >solution to that. Although I'm not Matt ;^), I had a short look into dmouse-handler.c: > * note, sometimes the sprite gets turned on again, so > * we re-off it every mouse-ptr-timeout > */ > if (doipcmsg(0x81) == 0) { > WaitTOF(); > OFF_SPRITE; > custom.spr[0].dataa=0; /* sprite0 DMA */ > custom.spr[0].datab=0; /* data register */ > sproff = 1; > } So - before switching off sprite DMA, he waits for the top of the frame - in this time there is for sure NO sprite DMA, so it is a safe way - however, one might think about what would happen if just after the WaitTOF() the scheduler would do his work to give the CPU to another task...but this should happen so rarely.. :} So long, Frank -- + Frank Neumann, Hauptstr. 107, 2900 Oldenburg, FRG The Amiga is it. + + InterNet: Frank.Neumann@arbi.informatik.uni-oldenburg.de + + UUCP: neumann@uniol.uucp \\// InHouse:amigo@faramir + + Zerberus: neumann@uniol.zer BitNet:295391@DOLUNI1.BITNET IRC: Franky + + Alan Turing's letzte Worte: 'Mein Gott - es ist voller Blanks..' (ME) +