VOGONS


Reply 21 of 58, by Horun

User metadata
Rank l33t++
Rank
l33t++

I think the Sunix PCI9050/PLX9050 is a type of PCI-ISA bridge and the Sun1688c is the actual Parallel port chip, cannot find any good data sheets but that same PCI/PLX 9050 was used on other Exsys/Sunix PCI cards mated with other more basic chips...
just a guess...http://www.sunix.com/en/product_detail.php?ci … gid=121&pid=204 says sun1888 is a Parallel controller and am guessing 1688 was it predecessor. just guesses 😀
I found a 2005 driver set that also list 4006A and the ID is same as all the others like in Oetker's 2004 driver set which does support 4006A with ID from .inf for Win9x (no ID under the Win2k or XP driver)
";P only
PCI 4006A Multi-I/O Adapter=DriverInstall, PCI\VEN_1409&DEV_7268&SUBSYS_01011409&REV_01"
That ID of PCI\VEN_10B5&DEV_9050 is for the PCI-ISA bridge afaik and should be transparent under Windows unless the 1688 is bad... just a guess or XP does not like the card or BIOS is mis-reading it...
The OP mentions using XP which the 4006 does not support AFAIK, the 4006A does and that can make a huge difference ... just all guess work at this point 😀
edit for typing before thinking 🤣

Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun

Reply 22 of 58, by Ethaniel

User metadata
Rank Newbie
Rank
Newbie

A new development: I wrote an e-mail to the italian subsidiary of Exsys, and they believe they have a copy of the old drivers. I'll keep you posted, if those drivers don't work, I'll try the debug commands and a few tests on Linux.

Reply 23 of 58, by Horun

User metadata
Rank l33t++
Rank
l33t++

Great ! even if they do not work can you post them here if they do send you something ?

Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun

Reply 24 of 58, by Ethaniel

User metadata
Rank Newbie
Rank
Newbie
Horun wrote on 2022-07-28, 23:22:

Great ! even if they do not work can you post them here if they do send you something ?

Of course! I'll post everything they have to offer. I'm also planning to put copies on Vogons Drivers and the Internet Archive. The last thing I was expecting with this card was to fall down a black hole between 1998 and 1999 with no driver backups...

Reply 25 of 58, by Ethaniel

User metadata
Rank Newbie
Rank
Newbie

Well, it seems Exsys Italy sent something to my e-mail... but Google decided to block it because of a «potential security threat», I guess Gmail doesn't like MS-DOS drivers.

I asked them to send the files again or put them in the Archive (or another hosting service), but I haven't heard from them since. It's Friday, I understand.

jakethompson1 wrote on 2022-07-27, 01:06:
In DOS, do DEBUG, then check output of: i a800 i a801 ... i a807 […]
Show full quote

In DOS, do DEBUG, then check output of:
i a800
i a801
...
i a807

and look for an interesting value (we're looking for the parallel port status register)
Probably best to do this without the Covox connected.

So, based on the recommendation by «jakethompson1», I punched some DEBUG commands:

i a800 = 00
i a801 = 7F
i a802 = E4
i a803 = FF
i a804 = FF
i a805 = FF
i a806 = FF
i a807 = FF

Looks like there is «something» on a801 and a802, but the rest is beyond me. I wanted to try a Covox Player for Linux (found it here), and just when I was booting my copy of Bodhi... the computer shuts down. The motherboard seems to be suffering from a hard short somewhere. I took everything apart, tested the PSU (with a jumper between green and black, starts fine), took all the cards out, disks out, even the motherboard out of the case, nothing. The fans twitch, and it stops.

So, this is the point where everything explodes on my face, hair on fire and a dumb look. Good news, I have parts to continue with this project. Bad news, I have to disassemble three computers to get them. This is fun... this is fun.

Reply 26 of 58, by Horun

User metadata
Rank l33t++
Rank
l33t++
Ethaniel wrote on 2022-07-29, 21:32:

Well, it seems Exsys Italy sent something to my e-mail... but Google decided to block it because of a «potential security threat», I guess Gmail doesn't like MS-DOS drivers.

I asked them to send the files again or put them in the Archive (or another hosting service), but I haven't heard from them since. It's Friday, I understand.

That has been an issue with Gmail since it started, one my friends insisted using it and every time I tried to send a file it had to be "double" archived or else Google would see .com/.exe/whatever inside a zip or rar and auto-block as a virus.
I bet it is the "install or setup.exe" My trick was to RAR any .zip archive OR zip any RAR archive (double archived ;p ) . If plain .exe file then zip first then rar it...
Hopefully they can resend it.

Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun

Reply 27 of 58, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
Ethaniel wrote on 2022-07-29, 21:32:
So, based on the recommendation by «jakethompson1», I punched some DEBUG commands: […]
Show full quote

So, based on the recommendation by «jakethompson1», I punched some DEBUG commands:

i a800 = 00
i a801 = 7F
i a802 = E4
i a803 = FF
i a804 = FF
i a805 = FF
i a806 = FF
i a807 = FF

A parallel port is a data register, a status register, and a control register, so this is a good sign.
Once you get the computer working again, you could do
DEBUG
e 40:08 00 a8
q

Which changes the LPT1: port address until the next boot. As stated, this will only work for programs that actually read the BIOS data area, but given that LPT1 can either be 3BC or 378 normally, hopefully your software does. And no guarantees that the a800 port won't change as you change anything with your PCI bus (it would be best to have a little utility that makes PCI BIOS calls to find the card and then dynamically pulls the port address).

Reply 28 of 58, by Ethaniel

User metadata
Rank Newbie
Rank
Newbie

Okay, yes Covox! 😁

I ended up changing the entire platform, new CPU and motherboard, an old FM2 APU with a single PCI slot available. I installed the LPT card, ran Bodhi again, one quick lspci -vv and the address changed to c080. After that, I tried your DEBUG command with the new address, loaded MFED and... it works! (sorry about the background noise, there was a movie on the other TV)

Looks like FastDoom doesn't like the DEBUG hack very much, and TEMU doesn't seem to do anything at this point, but I don't care right now. Having «Elysium» on the speakers is a mission accomplished. The LPT card works (only needs proper drivers, fingers crossed!), and most importantly, my first Covox ever worked perfectly from the start without adjustments, a true miracle considering some «Derek Zoolander moments» during my soldering. (?)

In other words, this is a victory. Now, I'll be waiting for new e-mails, hoping that someone has a copy of those old drivers.

Reply 29 of 58, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
Ethaniel wrote on 2022-07-31, 00:52:
Okay, yes Covox! :D […]
Show full quote

Okay, yes Covox! 😁

I ended up changing the entire platform, new CPU and motherboard, an old FM2 APU with a single PCI slot available. I installed the LPT card, ran Bodhi again, one quick lspci -vv and the address changed to c080. After that, I tried your DEBUG command with the new address, loaded MFED and... it works! (sorry about the background noise, there was a movie on the other TV)

Looks like FastDoom doesn't like the DEBUG hack very much, and TEMU doesn't seem to do anything at this point, but I don't care right now. Having «Elysium» on the speakers is a mission accomplished. The LPT card works (only needs proper drivers, fingers crossed!), and most importantly, my first Covox ever worked perfectly from the start without adjustments, a true miracle considering some «Derek Zoolander moments» during my soldering. (?)

In other words, this is a victory. Now, I'll be waiting for new e-mails, hoping that someone has a copy of those old drivers.

Looks like fastdoom is hardcoded to 0x378: https://github.com/viti95/FastDoom/blob/maste … STDOOM/ns_lpt.c
You could probably look through your binary a mov dx,378h ... out dx,al and change it assuming it isn't packed... or just recompile...

Reply 30 of 58, by Ethaniel

User metadata
Rank Newbie
Rank
Newbie
jakethompson1 wrote on 2022-07-31, 01:06:

Looks like fastdoom is hardcoded to 0x378: https://github.com/viti95/FastDoom/blob/maste … STDOOM/ns_lpt.c
You could probably look through your binary a mov dx,378h ... out dx,al and change it assuming it isn't packed... or just recompile...

... that's assembler, right? 😁

Okay, maybe I could try recompiling. Or, the developer could add a custom address option for the Covox selection on the setup. No answer from Exsys Italy yet, at this rate I'll end up changing motherboards again...

Reply 31 of 58, by Ethaniel

User metadata
Rank Newbie
Rank
Newbie

Okay, I have some good news, and some bad news.

Good news first: I've got the driver! Finally, Exsys Italy pointed me in the right direction. Right at the bottom of the entry for their EX-40032 card is the correct driver. Of course, I'm putting a copy here for future reference, and I'll try to drop two more in Vogons Drivers and the Archive. The Exsys EX-4006 (and the rest of the old «4000-series») has drivers fos DOS, Win9x, and WinNT 4.0. Windows 3.x uses the DOS drivers.

Now the bad news: Not a single program seems to detect the port correctly once the driver is loaded. The only way to make it work is without loading the driver and using the DEBUG hack. I even managed to start TEMU that way (with some changes in memory management), but if I use the official driver, silence. Now, I believe the problem is related to IRQ assignment. I can't change nor force the IRQ for the PCI slot, and the driver assigns «IRQ b» to LPT1 base 0x378. I don't remember any IRQ b, and if that's hexadecimal, «b» should be... 11?

IMG_20220802_170817.jpg
Filename
IMG_20220802_170817.jpg
File size
178.52 KiB
Views
1366 views
File comment
Card initialized. What's «IRQ b»?
File license
CC-BY-4.0

There are two DOS drivers: SXPCIMIO.sys (ver 2.0) and PCIMIO.sys (ver 2.1). Both show the same behavior (card initializes, but nothing can see the port). At this point, I don't know what to do anymore. Maybe try an older version of MS-DOS? FreeDOS, maybe? Those .sys files don't seem to have any modifiers that I can try.

Attachments

  • Filename
    PLX-Version_2.3.zip
    File size
    1.39 MiB
    Downloads
    45 downloads
    File comment
    Exsys EX-4006 (non-a) drivers for DOS, Win9x and WinNT40
    File license
    Fair use/fair dealing exception

Reply 33 of 58, by digger

User metadata
Rank Oldbie
Rank
Oldbie

As a more generic solution, have you guys every heard of the PRTADD utility?

It detects a wide range of chipsets in parallel port and serial port PCI/PCIe adapters, and then registers their I/O ports as devices in the BIOS data area, making them "visible" to well-written DOS applications through LPTx and COMx device handles.

The list of supported chipsets can be found at http://www.baddinsbits.altervista.org/files/bbbd/devlist.txt
Baddin's Bits Bootable disk, which contains the PRTADD utility among other stuff, can be downloaded from http://www.baddinsbits.altervista.org/bbboot.html

To make the utility detect and add ports on supported PCI/PCIe parallel and serial devices to the BIOS data area, run `prtadd /A`, and make sure that the `A` in the `/A` option is capitalized, otherwise it won't work.

It will count up, and take existing on-board parallel and serial devices into account. So if you already have an integrated LPT1 port on your system, and your PCI card gets detected by the tool, it will be registered as LPT2. Well-written applications and games that actually query the I/O ports from the BIOS data area instead of having base ports 378h, 278h and/or 3BCh hard-coded should work.

I could not find the brand and model number on the main chip of your card in the list of supported chipsets, but it might still be worth trying. You could perhaps also try getting in touch with the maintainer of the tool and request to have support added for this particular chipset.

At the end of the day, I believe that all this tool does is the following:

  • look up any installed PCI or PCIe cards by a list of supported combinations of vendor and device IDs
  • obtain the base I/O ports of any detected cards by querying their I/O base addresses in the PCI configuration space
  • register those I/O base addresses as LPT and COM devices in the BIOS data area

Of course, the tool would have to be reloaded after each reboot, but you could just simply add it to your AUTOEXEC.BAT file. I don't believe it even needs to stay resident, so it likely doesn't take up any RAM either. It also doesn't perform any port-trapping or forwarding. There are other tools for that.

I've successfully used this tool to make the parallel and serial ports on a PCIe add-on card accessible in DOS. I've found the OPL2LPT Utilities to work well with such non-legacy parallel ports, for instance.

Reply 34 of 58, by Ethaniel

User metadata
Rank Newbie
Rank
Newbie
digger wrote on 2022-08-02, 22:33:
As a more generic solution, have you guys every heard of the PRTADD utility? […]
Show full quote

As a more generic solution, have you guys every heard of the PRTADD utility?

It detects a wide range of chipsets in parallel port and serial port PCI/PCIe adapters, and then registers their I/O ports as devices in the BIOS data area, making them "visible" to well-written DOS applications through LPTx and COMx device handles.

The list of supported chipsets can be found at http://www.baddinsbits.altervista.org/files/bbbd/devlist.txt
Baddin's Bits Bootable disk, which contains the PRTADD utility among other stuff, can be downloaded from http://www.baddinsbits.altervista.org/bbboot.html

To make the utility detect and add ports on supported PCI/PCIe parallel and serial devices to the BIOS data area, run `prtadd /A`, and make sure that the `A` in the `/A` option is capitalized, otherwise it won't work.

It will count up, and take existing on-board parallel and serial devices into account. So if you already have an integrated LPT1 port on your system, and your PCI card gets detected by the tool, it will be registered as LPT2. Well-written applications and games that actually query the I/O ports from the BIOS data area instead of having base ports 378h, 278h and/or 3BCh hard-coded should work.

I could not find the brand and model number on the main chip of your card in the list of supported chipsets, but it might still be worth trying. You could perhaps also try getting in touch with the maintainer of the tool and request to have support added for this particular chipset.

At the end of the day, I believe that all this tool does is the following:

  • it looks up any installed PCI or PCIe cards by a list of supported combinations of vendor and device IDs
  • it obtains the base I/O ports of any detected cards by querying their I/O base addresses in the PCI configuration space
  • It registers those I/O base addresses as LPT and COM devices in the BIOS data area

Of course, the tool would have to be reloaded after each reboot, but you could just simply add it to your AUTOEXEC.BAT file. I don't believe it even needs to stay resident, so it likely doesn't take up any RAM either. It also doesn't perform any port-trapping or forwarding. There are other tools for that.

I've successfully used this tool to make the parallel and serial ports on a PCIe add-on card accessible in DOS. I've found the OPL2LPT Utilities to work well with such non-legacy parallel ports, for instance.

Close, but no cigar. The Sun1688 is mentioned for ISA cards. On PCI support, it only mentions the Sun1888 and the PLX9016 with a similar Vendor ID. PRTADD /A doesn't do anything by itself, but reports «LPT1 0378 IRQ 7» if the official driver is installed. Sadly, my apps refuse to work in this way. MFED, Galaxy Music Player, TEMU... nothing, no sound. Only the DEBUG hack without official drivers seems to do the trick, and I don't even understand it to be honest.

What it actually works is combining the DEBUG hack with PRTLIST. If I use PRTLIST with the official driver, it only shows «LPT1», but if I apply the hack and then run PRTLIST, the output changes to «LPT1 SPP detected». Maybe I could contact the developer, I can always send one more e-mail...

Reply 35 of 58, by Horun

User metadata
Rank l33t++
Rank
l33t++

Yeah that driver at Exsys, Italy they pointed you to appears to be made for Serial Port ISA cards not PCI Parallel AFAIK....
Here it does not show a DOS driver for any 4006 variant: http://web.archive.org/web/20041111070028/htt … i_io_driver.htm
or here: http://web.archive.org/web/20020322140530/htt … E/pci_io_de.htm
Sure they may have removed DOS support but all things appear maybe it never had good DOS support ?
If so would think it would be listed on the exsys.it/driver/english/pci_io_driver.htm page link above

Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun

Reply 36 of 58, by Ethaniel

User metadata
Rank Newbie
Rank
Newbie
Horun wrote on 2022-08-02, 23:33:
Yeah that driver at Exsys, Italy they pointed you to appears to be made for Serial Port ISA cards not PCI Parallel AFAIK.... Her […]
Show full quote

Yeah that driver at Exsys, Italy they pointed you to appears to be made for Serial Port ISA cards not PCI Parallel AFAIK....
Here it does not show a DOS driver for any 4006 variant: http://web.archive.org/web/20041111070028/htt … i_io_driver.htm
or here: http://web.archive.org/web/20020322140530/htt … E/pci_io_de.htm
Sure they may have removed DOS support but all things appear maybe it never had good DOS support ?
If so would think it would be listed on the exsys.it/driver/english/pci_io_driver.htm page link above

Both SYS files on the drivers clearly have entries for the 4006 PCI card, and the driver wouldn't even install if the card wasn't detected in the first place. Right now, I dare to say the driver and the card «works», but there is some additional conflict caused by the UEFI/BIOS on my motherboard (lack of IRQ priority for the PCI slot, inability to disable Plug and Play, and such). I'll try FreeDOS next, and then, I don't know, put the DEBUG hack on a batch file somehow...?

Reply 37 of 58, by Horun

User metadata
Rank l33t++
Rank
l33t++
Ethaniel wrote on 2022-08-02, 23:51:

Both SYS files on the drivers clearly have entries for the 4006 PCI card, and the driver wouldn't even install if the card wasn't detected in the first place. Right now, I dare to say the driver and the card «works», but there is some additional conflict caused by the UEFI/BIOS on my motherboard (lack of IRQ priority for the PCI slot, inability to disable Plug and Play, and such). I'll try FreeDOS next, and then, I don't know, put the DEBUG hack on a batch file somehow...?

Ahh I missed that when Hex checking the install somehow, yes it does..I wondered about the motherboards BIOS as my older ones have ability to set PCI slot IRQ's.
You never mentioned what motherboard you were using.....(just curious as one of my Giga Soc 478 allows PCI IRQ setting, forgot the Asrock it was removed in later bios).
Maybe you need to try it in a different board ? ;p

Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun

Reply 38 of 58, by Ethaniel

User metadata
Rank Newbie
Rank
Newbie
Horun wrote on 2022-08-03, 00:41:
Ahh I missed that when Hex checking the install somehow, yes it does..I wondered about the motherboards BIOS as my older ones ha […]
Show full quote
Ethaniel wrote on 2022-08-02, 23:51:

Both SYS files on the drivers clearly have entries for the 4006 PCI card, and the driver wouldn't even install if the card wasn't detected in the first place. Right now, I dare to say the driver and the card «works», but there is some additional conflict caused by the UEFI/BIOS on my motherboard (lack of IRQ priority for the PCI slot, inability to disable Plug and Play, and such). I'll try FreeDOS next, and then, I don't know, put the DEBUG hack on a batch file somehow...?

Ahh I missed that when Hex checking the install somehow, yes it does..I wondered about the motherboards BIOS as my older ones have ability to set PCI slot IRQ's.
You never mentioned what motherboard you were using.....(just curious as one of my Giga Soc 478 allows PCI IRQ setting, forgot the Asrock it was removed in later bios).
Maybe you need to try it in a different board ? ;p

This is the last one that I have with a PCI slot, Gigabyte F2A55M-S1. If I can't automate the DEBUG hack, I'll have to try something else, or throw the towel with DOS and use some Linux distro with DOSBox-X on top, configured to use the external Covox (and not the emulation). One way or the other, it will have to wait until the weekend, but I'm happy anyways. The card works (with caveats), my Covox works (first one I made), and I found the driver.

Reply 39 of 58, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
Ethaniel wrote on 2022-08-02, 23:51:
Horun wrote on 2022-08-02, 23:33:
Yeah that driver at Exsys, Italy they pointed you to appears to be made for Serial Port ISA cards not PCI Parallel AFAIK.... Her […]
Show full quote

Yeah that driver at Exsys, Italy they pointed you to appears to be made for Serial Port ISA cards not PCI Parallel AFAIK....
Here it does not show a DOS driver for any 4006 variant: http://web.archive.org/web/20041111070028/htt … i_io_driver.htm
or here: http://web.archive.org/web/20020322140530/htt … E/pci_io_de.htm
Sure they may have removed DOS support but all things appear maybe it never had good DOS support ?
If so would think it would be listed on the exsys.it/driver/english/pci_io_driver.htm page link above

Both SYS files on the drivers clearly have entries for the 4006 PCI card, and the driver wouldn't even install if the card wasn't detected in the first place. Right now, I dare to say the driver and the card «works», but there is some additional conflict caused by the UEFI/BIOS on my motherboard (lack of IRQ priority for the PCI slot, inability to disable Plug and Play, and such). I'll try FreeDOS next, and then, I don't know, put the DEBUG hack on a batch file somehow...?

I doubt it has anything to do with IRQs. Using interrupts with the parallel port is optional. DOS doesn't use them when you print to lpt1 as a file for example. And using interrupts for the Covox sound stuff wouldn't make any sense. Instead that fastdoom code uses a timer to pace the writing of values to the Covox device.