Accessing ECP control port

nychold

n00b
Joined
Jul 1, 2005
Messages
8
I'm trying to get my parallel card into EPP mode by changing the high 3 bits of the ECP control register to 100, like it says in the documentation. (Not sure if this is true for all Parallel ports.) I know the port is located at base+0x402 (or base+402h), but the problem is my base address is 0xffe8, and 0xffe8+0x402 = 0x103ea or 0x03ea. So my question is, where is my ECP control port? (By the way, I did try writing and reading from 0x03ea, but I keep getting 0xff back.)

Note: This is a PCMCIA parallel card (SPP-100 from Quatech to be specific), so the ports can easily be moved if necessary.
 
Anyone have any clue?

Interesting side note. I wrote a simple program to probe all "similar" IO Ports (0xffe8 + 0x0400*n + 0x0002) mod (or bit-wise 'and' if you prefer) 0xffff for all numbers n from 1 to 64 for a non-0xFF byte. Since ports come in "pages" of 1096 (0x400) ports, maybe my ECP Control port got mapped somewhere else. Nothing except 0xffea (my SPP Control register). Every single port came back as 0xFF.

This is very puzzling...
 
I don't know if this might be the same thing but those USB to serial port adapters are not a real serial port so some programs won't work with them. I have a vague memory it is something to do with the registers being in software instead of hardware.
 
Well, according to Quatech, the ECP Control Register doesn't exist. (Big surprise there. LOL) They said the only way to change from EPP to SPP or vice versa is to change the settings with the device manager. Which naturally involves a restart because Windows sucks. Great, huh?

Anyway, all complaining aside, now I have another problem. I know how the EPP Handshake works for all four modes. I used a CPLD to create an EPP handshaker, so I could start using the EPP mode. Basically, I'm detecting which of the four modes is being requested (Data Write, Data Read, Address Write, and Address Read) and ORing the four results together, which ends up on the Write pin. The problem is ... it's not working. Here is the logic equation:

AS = Address Strobe
DS = Data Strobe
WR = Write
W = Wait

W = (WR + DS)' + (WR + AS)' + (WR' + DS)' + (WR' + AS)'

What am I doing wrong?
 
Beats me! I just changed the setting in BIOS which made LCDstudio work fine.
 
Back
Top