[comp.sys.amiga.tech] Textscroll & interrupt

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?!"