pkontkanen@cc.helsinki.fi (12/04/89)
I want to make a textscroll routine, that uses blitter. I have an off- screen bitmap from which the characters should be copied to the on-screen bitmap. How is this routine actually made? I think I have to use bit shifts and masks but how? Another question. I saw once a demo source, which initialized an interrupt routine to the address $6C (autovector, level 3). What's the meaning of it? Could it be useful for my textscroll routine ? Petri Kontkanen The University of Helsinki, Finland
cmcmanis%pepper@Sun.COM (Chuck McManis) (12/11/89)
In article <1593.257a71a6@cc.helsinki.fi> pkontkanen@cc.helsinki.fi writes: > I want to make a textscroll routine, that uses blitter. I have an off- >screen bitmap from which the characters should be copied to the on-screen >bitmap. How is this routine actually made? I think I have to use bit shifts and >masks but how? There may not be a Finnish version of the ROM Kernel manual, but if there is you should consider it. From highest level to lowest level : BltBitMapRastPort() - This blits from a Bitmap structure into a rastport (which is attached to all windows when they are opened) To use it you would open a window, set up your text bitmap, and then call BBMRP(). That won't "scroll" so much as make the text just "appear". The windows rastport will have a Layer structure which will tell BBMRP() where to clip. OwnBlitter()/DoBlit()/DisownBlitter() - This grabs the blitter directly and you will have to do your own clipping. For a quick education in how the blitter works, use BlitLab by Tom Rokicki. It's available from the Euro Devcon 88 notes, and on a Fish Disk or two. > Another question. I saw once a demo source, which initialized an >interrupt routine to the address $6C (autovector, level 3). What's the meaning >of it? Could it be useful for my textscroll routine ? Generally routines that punch into the autovector list are broken. Kids who don't understand the Amiga sometimes figure out where various system structures are empirically and just change them rather than using the system routines. That kind of code always breaks eventually in stupid and quite predictable ways. In this case, then the autovector gets moved out of Chip ram, the code would break. Stick to the system interfaces and you will get performance that is just as good (because they legally just poke in new values) and it doesn't break later. --Chuck McManis uucp: {anywhere}!sun!cmcmanis BIX: cmcmanis ARPAnet: cmcmanis@Eng.Sun.COM These opinions are my own and no one elses, but you knew that didn't you. "If it didn't have bones in it, it wouldn't be crunchy now would it?!"