Subject: Re: Retina console problems
To: None <>
From: Niklas Hallqvist <>
List: amiga-dev
Date: 01/31/1995 11:08:36
>>>>> "John" == John Vrolijk <> writes:

>> Hmm, from reading ite_rt.c, I get that the chip uses the read/write
>> cycles of the CPU, could it be that the Retina required some sort
>> of wait-states at the speed your CPU is running (which is?) which
>> your accellerator doesn't adhere to?  If so just slowing down the
>> code in screen_up would suffice, maybe redo those "addqb"s to a
>> load'n'store pair?  I'm way off my competence platform here,
>> HW-knowhow has never been my best skill.

John> My '040 runs at 33 MHz. Those 'addqb' statements in the code you
John> mentioned, are they a sort of 'wait loop' or what ?  When I
John> still had my 25 Mhz '030 it worked ok. So maybe it is the fact
John> that my CPU is 'too fast' now ;^)

I run at 28MHz, and have no problem, but it could of course be the
added speed, and maybe some faulty wait-state handling of your
accelerator.  Anyway, the addqb's are not a wait loop, but rather a
means to drive the databus with interleaved read & write cycles.  The
NCR chip somehow "steals" those buscycles transferring a memory area
from one place to another, somewhat like a "local" DMA.  Obviously the
writes work out OK, but every 2nd read seems in your case to not
happen.  What is strange, though, is that you say the effect is
characters copied to the *left*, if my reasoning holds, they should be
copied to the right.  Maybe, it's just that my reason is plain wrong.

Hmm, anyone knowledgeable, how does the 040 read bytes?  Maybe this
accelerators logic does byte-reads from Z2, by a word read at even
addresses and masking forward the byte the processor wants.  If so,
reading bytewise will just do two reads every even address, and the
NCR chip will latch in the wrong data every 2nd time.  Hmm, if this
the case, a CPU scrolling version will definitely be the answer.  It
shouldn't be much slower as it'll transfer 16-bits at full Z2

John> Can I just add some more of those 'addqb' statements to check
John> this ??

No, I guess your best bet is a CPU scroll method.  It shouldn't be
hard, really.