??? 03/07/09 00:42 Modified: 03/07/09 00:45 Read: times |
#163187 - You're right! Responding to: ???'s previous message |
What I meant was to move 256 bytes as bytes, not words, from memory location A to A+255, starting on an odd byte-boundary to a fixed location B, which is a byte-wide destination, at exactly 60 ns _per byte_, since that's what the source and destination require. As it happens, that's the maximal rate at which the DS89C4x0 can do it without external hardware to help.
In reality, I use a set of 256 MOVX @DPTR,A instructions to do this, which occupies 256 bytes of code space, in addition to the few bytes that load the DPH and set the bit that enables the external hardware that makes the data flow from source to destination, and then to reverse that process and return. The MCU doesn't actually handle the data. It just behaves as an address generator, like the MC6844 DMAC. This has to occur in exactly 60 ns per byte (actually, it's in words, but the MCU doesn't care). External hardware (equivalent to a gate and two flipflops) makes the data transfer using those addresses happen. This thing's still a work in progress ... but at least that part works OK. RE |