On Mon, Dec 23, 2013 at 2:58 PM, Nigel Williams
<nw at retrocomputingtasmania.com> wrote:
On Tue, Dec 24, 2013 at 6:04 AM, Peter Corlett
<abuse at cabal.org.uk> wrote:
If you had contrived the hardware design to have
suitable incomplete decoding,
you could have exploited the movem hack that copies 56 bytes in 72 cycles,
which would give you north of 5MB/s on a 7.09MHz CPU.
Thanks for the reminder, here is a reference for the curious, although
this one does 48-bytes per loop cycle:
https://groups.google.com/forum/#!msg/comp.sys.amiga.programmer/LpdAw8SZcdY…
That is great for moving plain memory, but it doesn't work when the
source or destination is an 8-bit I/O register (SCSI chip) or a patch
of shared memory that initiates a 16-bit DMA cycle with a host
(COMBOARD).
You can unroll the loop and get more pure .B or .W moves per loop by
testing your byte-count less often (especially with block-oriented I/O
that is likely to be an even multiple of 256 bytes), but you can't do
32-bit moves of your data without extra hardware to latch and
aggregate the data (we did that for our bus interface between the
68000 and BIIC so we didn't have to redesign our board from a 68000 to
a 68020 to match the bus widths going from a 16-bit MCU to a 32-bit
system bus).
-ethan