On Jul 23, 1:34, <rogersda(a)cox.net> wrote:
Jerome Fine <jhfinexgs2(a)compsys.to> wrote:
[...] In addition,
I also added a bounce buffer in DYX.SYS so that
a user buffer above 256 KBytes could be used
with the 18-bit hardware addresses in the floppy.
Actually, for device I/O, it doesn't matter whether
one is using 16, 18, or 22 bit addressing. The PDP-11
I/O page is defined as from 28KW-32KW, which is entirely
within the range of 16bit addressing.
It's true that the I/O page always appears *to software* at *logical*
addresses 160000-177777. This is fine for the processor, which has
logic to deal with it. Nevertheless, the *hardware* addresses which
appear on the bus need to be 160000-177777, 760000-777777, or
17760000-17777777 depending on whether the system uses 16, 18, or
22-bit addressing. To make life easier, DEC provide a "Bus Bank Select
7" signal, which most I/O devices use to detect access to the I/O page.
What Jerome is referring to, however, is the DMA operation. An RXV21
or RLV11 (and some other devices) can only perform data transfers to
18-bit addresses. Data is transferred only by DMA; you can't transfer
data from the device controller, only commands and status. Most DEC
operating systems expect data transfers to be able to load/save from
data buffers at arbitrary (physical) addresses; therefore drivers in
some operating systems have the option to use a bounce buffer mapped to
low memory, for 18-bit devices. They therefore transfer the data in
two stages: under program control between the bounce buffer and the
required address, and letting the DMA transfer between bounce buffer
and actual device.
--
Pete Peter Turnbull
Network Manager
University of York