Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!cbmvax!phillip From: phillip@cbmvax.UUCP Newsgroups: comp.sys.amiga Subject: Re: Need help: Interrupt servers & Graphics calls Message-ID: <1842@cbmvax.cbmvax.cbm.UUCP> Date: Wed, 6-May-87 16:17:30 EDT Article-I.D.: cbmvax.1842 Posted: Wed May 6 16:17:30 1987 Date-Received: Fri, 8-May-87 05:15:04 EDT References: <1089@crash.CTS.COM> Distribution: world Organization: Commodore Technology, West Chester, PA Lines: 41 in article <1089@crash.CTS.COM>, mercurio@crash.CTS.COM (Phil Mercurio) says: > > [-] > > I need help with a function being called by another function attached > to the vertical blanking interval interrupt. The purpose of the > function is to scroll text onto the screen; it calls ScrollRaster() > and BltBitMap(). > However, if I try to scroll on a couple of lines of text in close > succession, I get a really neat fireworks display and a guru of > 0000000B.. Pretty, but not what the > program is supposed to do. It's not nice to push too many cycles in a interrupt! Since ScrollRaster() calls LockLayer() which in turn calls ObtainSemaphore which calls Wait() you cannot safely use scrollraster() in a interrupt. I have not checked BltBitMap(), but I would probably come to the same conclusion. -phil BTW, important info follows signature... ============================================================================== Phillip (Flip)Lindsay - Commodore Business Machines - Amiga Technical Support UUCP: {ihnp4|seismo|caip}!cbmvax!phillip - Phone: (215) 431-9180 No warranty is implied or otherwise given in the form of suggestion or example. Any opinions found here are of my making. ------------------ Here is something Andy Finkel Posted a while back: These Exec functions should never be used from interrupt code: SuperState, UserState, SetIntVector, AddIntServer, RemIntServer Allocate, Deallocate, AllocMem, AllocAbs, FreeMem, AvailMem AllocEntry, FreeEntry, AddTask, RemTask, FindTask(0) SetSignal, SetExcept, Wait, AllocSignal, FreeSignal, AllocTrap FreeTrap, AddPort, RemPort, WaitPort, FindPort, AddLibrary, RemLibrary, OpenLibrary, CloseLibrary, SetFunction, SumLibrary AddDevice, RemDevice, OpenDevice, CloseDevice, DoIO, SendIO, CheckIO, WaitIO, AbortIO, AddResource, RemResource, OpenResource Using these in interrupt code may result in a NOP, or in some cases, total obliteration. Don't take any chances; check your code. -------------