Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!swrinde!elroy.jpl.nasa.gov!ncar!gatech!mcnc!beguine!next1.oit.unc.edu!utoddl From: utoddl@next1.oit.unc.edu (Todd M. Lewis) Newsgroups: comp.sys.amiga.programmer Subject: Block Moves Blits Summary: How does the blitter blit? Keywords: Blitter Message-ID: Date: 24 Jun 91 21:23:06 GMT Sender: usenet@beguine.UUCP Lines: 30 I've been putting off asking this because I really wanted to figure it out myself, but enough is enough. I have a working program that uses BltMaskBitMapRPort() quite a lot. Since I'm doing the same 10 or so blits over and over I thought I could save some time by doing the blitter register setups once at the beginning, then doing OwnBlitter()/stuff_blit_regs()/DisownBlitter() a la BlitLab when I actually need to blit. The problem is I've had a devil of a time figuring out all the details of how the blitter regs work with various shifts and ascending and descending blit modes. Some of them work as expected, others have obvious problems with modulos, etc. As an educational exercise I have undertaken to write BltMaskBitMapBitMap() with the intent of providing a well-anotated high-level example of how all these things interact and what must be taken into account to get blitter moves to work. Special case blits (like the ones in the program I mentioned) could be easily derived from this general case example. (At least it would be easier than working from the hardware ref. man.) I would hope it could at least save others the hours I've spent on this. So, I'm getting tired of scratching my head and reading the same FM and gazing at the screen trying to figure out why what should work doesn't. Does anybody out there have some advice for--or working examples of--how to use this wonderful but woefully underdocumented chip for doing block moves? Any help would be appreciated. Thanks, Todd M. Lewis utoddl@next1.oit.unc.edu