Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!gatech!uflorida!haven!grebyn!ckp
From: ckp@grebyn.com (Checkpoint Technologies)
Newsgroups: comp.sys.amiga.tech
Subject: Re: DMA or polling (was Re: GVP controller)
Message-ID: <12269@grebyn.com>
Date: 14 Aug 89 19:13:15 GMT
References: <8908092130.AA23369@jade.berkeley.edu> <63241@linus.UUCP> <19160@usc.edu>
Reply-To: ckp@grebyn.UUCP (Checkpoint Technologies)
Organization: Grebyn Corp., Vienna, VA, USA
Lines: 26

In article <19160@usc.edu> addison@pollux.usc.edu (Richard Addison) writes:
>In article <63241@linus.UUCP> rachamp@mbunix (Champeaux) writes:
>>The minimum loop required for transferring words from GVP's onboard buffer to
>>main memory is the following:
>>
>>loop:	move  (a0)+,(a1)+	(24 clock cycles)
>>	dbra  d0,loop		(18 clock cycles)
>
>Try again.  This is an obvious way of doing it, but it is not the fastest.
>
>Richard Addison

	Well, assuming you have the registers available and the move is
a multiple of 12 longwords, how about this:

loop:	movem.l	(a0)+,d1-d7/a2-a6
	movem.l	d1-d7/a2-a6,(a1)+
	dbra	d0,loop

	Won't give you loop mode on the 68010, but it won't matter. You
get 24 words moved for each 6 words of instruction fetch.
-- 
First comes the logo: C H E C K P O I N T  T E C H N O L O G I E S      / /  
                                                                    \\ / /    
Then, the disclaimer:  All expressed opinions are, indeed, opinions. \  / o
Now for the witty part:    I'm pink, therefore, I'm spam!             \/