Pete Turnbull wrote:
I'm not sure either of those actually have drivers
for an RXV21. That
card will work OK in a 22-bit system without clashing with any memory
addresses, but is only useful if the driver (exists and) understands
to put the DMA buffers in the lowest 256KB. Some OS versions do
exactly that: they tell the card to transfer data to/from low memory
and then the CPU moves it if necessary (later version of RT-11 do
that, for example).
The DEC version of the DY.SYS device driver for an
unmapped monitor only knows about the first 64 KB
of memory, as does the RT-11 monitor. Thus only
16 bit addresses are used for the RT11FB monitor
and the DY.SYS device driver.
For the DYX.SYS device driver running under the
RT11XM monitor, the DMA on the card can handle
ONLY buffers within an 18 bit address or the first
256 KB of memory.
Thus far, you are entirely correct for the DEC versions
of the DY(X).SYS device driver.
HOWEVER, I know for certain that there is no bounce
buffer capability (which is what you have described in
your answer that the CPU moves the data if necessary)
in the DEC distribution for the DYX.SYS device driver
which runs under a mapped version of RT-11.
The reason that I know is that I enhanced DYX.SYS to
use a bounce buffer, as well as being able to handle
double sided double density 8" floppy media which
are supported on DSD 880/30 drives. The controller
on these drives is also limited to using ONLY 18 bit
addresses for the memory, hence the requirement for
a bounce buffer.
The first attempt ran well on a PDP-11/73, but slowed
to a crawl on a PDP-11/23 since the code attempted to
bounce the buffer before the I/O for the next sector was
initiated. While the code became a bit more complicated
to initiate the I/O for the next sector and then bounce the
buffer, that allowed a PDP-11/23 to keep up the normal
speed of the floppy.
Jerome Fine