On 6 Apr 2007 at 17:13, Ethan Dicks wrote:
That's handy to know - every once in a while, I
long for a machine
with 2 or 3 parallel adapters, for things like old Connectix cameras,
LCD displays and the like. I've never assembled an ISA machine with
more than one printer adapter. I know that it really doesn't matter
to your own code what the I/O address is, but I wasn't sure how
flexible the underlying hardware might be to being assigned to
alternate addresses.
2P+2S ISA adapters aren't particularly difficult to find. Some of
them will even support EPP and ECP modes. I seem to recall that
there were 3 "stock" port addresses (3BCh, 378h, 278h), but others
were possible, because, in a moment of sanity, IBM decided to
dedicate some memory at 40:8 et seq. to actually record the base port
addresses of the parallel port adapters one had.
So, rather than compiling the possible port addresses into one's
application, it was only necessary to look at low memory. For
example, if one had a parallel port adapter set for 378h and an MDA
at 3BCh, DOS and the BIOS would normally assign LPT1: to 3BCh and
LPT2: to 378h. However, if an application exchanged the two words at
40:0008 and 40:000A, the reverse mapping would hold.
Cheers,
Chuck