Quote:
Originally Posted by FrenchShark
the best case transfer rate scenario on a 68000 is by using MOVEM instructions. I have done that about 10 years ago when I rewrote the AT-Apollo.device for my AT-2000 IDE controller. I was able to have more than 1MB/s with a standard 68000 and some fast ram.
|
Using
MOVEM instruction on 68000 is relatively tricky.
"Note that the MOVEM instrudion has a side effect. An extra bus cycle occurs for memory operands, and an operand at one address higher than the last register in the list is accessed. This extra access is an 'overshoot' and has no effect as far as the programmer is concerned. However, it could cause a problem if the overshoot extended beyond the bounds of physical memory. Once again, remember that MOVEM.W sign-extends words when they are moved to data registers."
It can only be used when the hardware is designed in very appropriate way. To be able to transfer 8 long words using
MOVEM to/from IDE HDD data port that data port must be repeated exactly 16 times in continuous 16-bit wide memory range and the next address locations must be insensitive to non-intended reading and writing.
This can be achieved by proper address decoding but must be done very early on design specification stage.