VOGONS


First post, by jcarvalho

User metadata
Rank Member
Rank
Member

Hi guys, I have a strange problem and need your help.
I have an ET4000AX with 14 pins VGA connector and I opened the "closed hole" with a small drill. I noticed that the hidden pin was connected to the mobo internally, so I disconnected the pin.

The attachment tseng_D14.jpg is no longer available
The attachment tseng.jpg is no longer available

The strange thing is: When connecting the 40 pin IDE cable to the I/O card the computer freezes on boot staying like this:

The attachment boot.jpg is no longer available

And does nothing. When I disconnect the IDE cable from de I/O card the computer boots normally.
This only happens with the ET4000, the others cards that I have tried everything works (Trident 8900c and some OAK vga card). I would like to use the ET4000 because it is just better. The system is an 386 DX 40 with an unknown mobo.
I am using a cheap CF-IDE card with an NIC with XT-IDE

Many thanks for your kind help!!!
Regards,
Jorge

Reply 1 of 18, by Deunan

User metadata
Rank Oldbie
Rank
Oldbie

This could be an issue with ALE signal and DMA. An old mobo like this wouldn't normally use DMA for HDD but you are using XT-IDE as well.
First, does the problem go away if you remove XT-IDE? Second, take a look at the back side of that Tseng, and your other VGA cards. I bet the Tseng has ALE signal (B28 pin on ISA bus, look for pinout) connected but the other cards do not.

Reply 2 of 18, by jcarvalho

User metadata
Rank Member
Rank
Member
Deunan wrote on 2021-05-29, 22:40:

This could be an issue with ALE signal and DMA. An old mobo like this wouldn't normally use DMA for HDD but you are using XT-IDE as well.
First, does the problem go away if you remove XT-IDE? Second, take a look at the back side of that Tseng, and your other VGA cards. I bet the Tseng has ALE signal (B28 pin on ISA bus, look for pinout) connected but the other cards do not.

Hi!!! Thanks for you kind help. The problem goes away if I disconnect the IDE cable from I/O ISA card, I can keep connected the floppy flat cable, but not the IDE cable. Going to find the isa card pin out to find it!
If it is connected shoud I cut it ?
Small update the oak card has the pin B28

The ET4000 is older than the others from 89 and the B28 is not connected(I could not find probing with multimeter ) but the oak one from 93 is connected
Thanks!

Reply 3 of 18, by Deunan

User metadata
Rank Oldbie
Rank
Oldbie
jcarvalho wrote on 2021-05-29, 23:29:
Hi!!! Thanks for you kind help. The problem goes away if I disconnect the IDE cable from I/O ISA card, I can keep connected the […]
Show full quote

Hi!!! Thanks for you kind help. The problem goes away if I disconnect the IDE cable from I/O ISA card, I can keep connected the floppy flat cable, but not the IDE cable. Going to find the isa card pin out to find it!
If it is connected shoud I cut it ?
Small update the oak card has the pin B28

The ET4000 is older than the others from 89 and the B28 is not connected(I could not find probing with multimeter ) but the oak one from 93 is connected
Thanks!

First of all, don't cut any connections. Cards that use ALE signal need it. Some video chipsets can work with and without but that has to be configured - either by putting a certain level on this signal (it can be L or H) or there is another pin for that.

Usually the easiest way to tell is the B28 gold pad is missing - so can't be connected. Or it's there but there is no trace to anything. If there is a trace you can assume it's connected and used. So, maybe it's not DMA/ALE issue after all. Does the system work or hang when you try floppy read? Even just booting system from floppy is enough to test.

What about XT-IDE, does the system hang when you remove it? While the IDE cable is still connected?

Reply 4 of 18, by mkarcher

User metadata
Rank l33t
Rank
l33t

I don't think the poster means "XT-IDE" as in the 8-Bit Integrated Drive Electronics drives used in the late 80s (also known as 8-bit IDE or XTA), but instead talks about the improved IDE bios provided by Lo-Tech with their XT-IDE cards, which enable to connect 16-bit AT drives to 8-bit XT slots. The use case of the XT-IDE BIOS (put into the boot ROM socket of a network card in this case) i case of AT-compatible computers is the generally better IDE support than main board IDE BIOSes of that time, most importantly support for drives above 504MiB.

Because no actual XT hard drive interface (XTA or ST-506, which would use DMA channel 3) is in use in this system, it is unlikely that the problem is caused by DMA issues. A more likely culprit is the 0WS line (ISA pin B8). Many ET4000 cards drive that pin aggressively whenever the card feels addressed, to fully deliver the fast ISA timings the ET4000 enables. Most ET4000 cards have a jumper you can pull to disconnect the 0WS line from the ISA bus (which of course comes with a performance penalty). If the ET4000 (mis-)activates the 0WS line when the CF card is accessed, strange things might happen. I remember random crashes on a 486DLC system with certain ET4000 cards, especially in 8-bit I/O-heavy software like demos running in Mode X, so a stray 0WS on 8-bit I/O, e.g. when polling the IDE drive status in a loop, might cause the crash on this system, too.

Reply 5 of 18, by jcarvalho

User metadata
Rank Member
Rank
Member

Hi guys, in fact I only have an 27c128 with the xt-ide bios burned and placed in an NE2000 compatible card, no xt-ide board. So mkarcher is right. I was probing the B28 pin from ISA connector of the ET4000AX with the near vias/traces around and could not find continuity. Grabbing the oak card I found almost immediately a connection. So does it means that I can't use my NE2000 with that boot rom in conjunction with ET4000?
My ET4000 is strange, has 2 jumpers with positions 1-2-3 and another set with 2 jumpers placed together, when I change them the screen started to roll vertically.
When the ide cable is not connected, I can dir floppy and the computer boots normally. With the ide cable, hangs like in the photo, keyboard locks also, can't do nothing. I have played with ALE setting on the bios but no luck. Always freezes.
It is a shame but I cant give up from xt-ide bios in the NIC because it helps a lot using my CF 8GB and coping data to it

Reply 6 of 18, by Deunan

User metadata
Rank Oldbie
Rank
Oldbie

I guess I didn't express myself properly. When I said remove the XT-IDE I meant the ROM or the entire NIC. It doesn't matter what kind of card the ROM is in, that's just a carrier with a bit of address decoding. So again, does it work or hang with the XT-IDE ROM removed (and IDE still connected)? In fact try both removing just the ROM and the NIC card itself, in case it's some sort of conflict between these cards.

If you can read the floppy with ET4000 card and nothing hangs, it's not ALE signal problem. Must be something else, possibly some incompatibility between XT-IDE and video BIOS. If you can, try different XT-IDE options, or different (smaller, dumber) image. I'm not familiar with Tseng cards so I can't say what the jumpers do, but perhaps one is forcing interlace or 50Hz mode, or different sync polarity for older monitors, so that's why you get a vertial roll. I don't think it's related though.

One other option to try out, if you have EPROM programmer, is maybe to look for a newer video BIOS for that Tseng card. Maybe it's a bug that is being triggered by XT-IDE code and newer BIOS would resolve it. Worth looking into if you want to keep using that card with this system.

Reply 7 of 18, by jcarvalho

User metadata
Rank Member
Rank
Member
Deunan wrote on 2021-05-30, 12:04:

I guess I didn't express myself properly. When I said remove the XT-IDE I meant the ROM or the entire NIC. It doesn't matter what kind of card the ROM is in, that's just a carrier with a bit of address decoding. So again, does it work or hang with the XT-IDE ROM removed (and IDE still connected)? In fact try both removing just the ROM and the NIC card itself, in case it's some sort of conflict between these cards.

If you can read the floppy with ET4000 card and nothing hangs, it's not ALE signal problem. Must be something else, possibly some incompatibility between XT-IDE and video BIOS. If you can, try different XT-IDE options, or different (smaller, dumber) image. I'm not familiar with Tseng cards so I can't say what the jumpers do, but perhaps one is forcing interlace or 50Hz mode, or different sync polarity for older monitors, so that's why you get a vertial roll. I don't think it's related though.

One other option to try out, if you have EPROM programmer, is maybe to look for a newer video BIOS for that Tseng card. Maybe it's a bug that is being triggered by XT-IDE code and newer BIOS would resolve it. Worth looking into if you want to keep using that card with this system.

Hi again! Tried some more recent bios but same results. Freeze PC with IDE cable connected, all working with it disconnected. It is just my legendary bad luck doing its thing.

Reply 8 of 18, by Deunan

User metadata
Rank Oldbie
Rank
Oldbie

I think the JP3 jumper on your Tseng controls 16-bit operation (vs 8-bit), did you also try the other position?

Reply 9 of 18, by jcarvalho

User metadata
Rank Member
Rank
Member
Deunan wrote on 2021-05-30, 19:38:

I think the JP3 jumper on your Tseng controls 16-bit operation (vs 8-bit), did you also try the other position?

Hi Sir, yes, I have tried, when I move to the other position, I can see squares in character size with various colours on screen in random places and no boot, just freezes. I tried all the combinations of JP3 with JP4 that is inline to the right using an boolean table

Reply 10 of 18, by Deunan

User metadata
Rank Oldbie
Rank
Oldbie

I don't have much experience with XT-IDE myself, I prefer to stick to smaller cards on older systems. Typically I use 512MB for 386 systems and 256MB for my 286. Which gives me one last idea, what address range did you assign to the ROM on NIC? Is it even configurable? I can see that Tseng has a lot of EPROMS, perhaps the issue is a simple address conflict with XT-IDE beause it's ROM is so big.

Try higher addresses like D8000 or E0000 for the NIC ROM base. If that doesn't work, maybe try a smaller XT-IDE image as I suggested earlier. And I don't have any more ideas for now.

Reply 11 of 18, by megatron-uk

User metadata
Rank l33t
Rank
l33t

What size eeprom is being used for the XTIDE ROM? You shouldn't need a chip any larger than 16kbyte.

I'm not familiar with the Realtek as a XTIDE host, but when using a 3com it definitely needs to have the ROM base address and ROM size set correctly so as not to clash with anything.

My collection database and technical wiki:
https://www.target-earth.net

Reply 12 of 18, by jcarvalho

User metadata
Rank Member
Rank
Member
megatron-uk wrote on 2021-05-31, 09:00:

What size eeprom is being used for the XTIDE ROM? You shouldn't need a chip any larger than 16kbyte.

I'm not familiar with the Realtek as a XTIDE host, but when using a 3com it definitely needs to have the ROM base address and ROM size set correctly so as not to clash with anything.

Hi Sir, I am using an 27C128 (16kbyte). I am using an NE2000 compatible NIC card.

Reply 13 of 18, by aitotat

User metadata
Rank Member
Rank
Member

That ET4000AX card has three ROM chips. I don't know how common that is for ET4000 cards but it is not common at all for other VGA cards. Two are common for older VGA cards since the BIOS is divided to two 8-bit ROMs for full 16-bit access. That is useful on old systems without shadow RAM. But three ROM chips?

I'm guessing those two with ver 8.01 are the odd and even ROMs that together provide the usual 32k VGA BIOS. But the third one is XL ROM v1.0. It must be some extension and likely locates right after VGA BIOS, so it would be at C800h. Not only that, it is 27C256 so it is a 32k ROM chip. Your card likely needs 64k in total! That would make D000h as the first segment available for XTIDE Universal BIOS. So you need to reconfigure your NIC ROM address to higher as already suggested in this thread.

Reply 14 of 18, by mkarcher

User metadata
Rank l33t
Rank
l33t
aitotat wrote on 2021-08-22, 04:28:

That ET4000AX card has three ROM chips. I don't know how common that is for ET4000 cards but it is not common at all for other VGA cards. Two are common for older VGA cards since the BIOS is divided to two 8-bit ROMs for full 16-bit access. That is useful on old systems without shadow RAM. But three ROM chips?

I'm guessing those two with ver 8.01 are the odd and even ROMs that together provide the usual 32k VGA BIOS. But the third one is XL ROM v1.0. It must be some extension and likely locates right after VGA BIOS

You are completely right about two of the ROM chips being an odd/even BIOS allowing 16-bit BIOS access. The third ROM chip (which is a second ROM chips on ET4000AX cards with 8-bit ROM BIOS access) is not mapped to ISA address space at all, but it contains a lookup table for translation between CGA/MDA/EGA register values and VGA register values. It is used for hardware emulation of these older video standards. "XL" seems to be an abbreviation for "translation".

Having a translation ROM (sometimes called "sync ROM") is very common on ET4000 cards.

Reply 15 of 18, by superfury

User metadata
Rank l33t++
Rank
l33t++
mkarcher wrote on 2021-08-22, 07:02:
aitotat wrote on 2021-08-22, 04:28:

That ET4000AX card has three ROM chips. I don't know how common that is for ET4000 cards but it is not common at all for other VGA cards. Two are common for older VGA cards since the BIOS is divided to two 8-bit ROMs for full 16-bit access. That is useful on old systems without shadow RAM. But three ROM chips?

I'm guessing those two with ver 8.01 are the odd and even ROMs that together provide the usual 32k VGA BIOS. But the third one is XL ROM v1.0. It must be some extension and likely locates right after VGA BIOS

You are completely right about two of the ROM chips being an odd/even BIOS allowing 16-bit BIOS access. The third ROM chip (which is a second ROM chips on ET4000AX cards with 8-bit ROM BIOS access) is not mapped to ISA address space at all, but it contains a lookup table for translation between CGA/MDA/EGA register values and VGA register values. It is used for hardware emulation of these older video standards. "XL" seems to be an abbreviation for "translation".

Having a translation ROM (sometimes called "sync ROM") is very common on ET4000 cards.

Any idea how a single 32KB ROM is wired onto the Tseng ET4000AX card, if it's present? The documentation only seems to mention one read and one write ROM (both 32KB large)?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 16 of 18, by mkarcher

User metadata
Rank l33t
Rank
l33t
superfury wrote on 2024-09-06, 14:59:

Any idea how a single 32KB ROM is wired onto the Tseng ET4000AX card, if it's present? The documentation only seems to mention one read and one write ROM (both 32KB large)?

I have the "Tseng ET4000 Graphics Controller Data Book" at hand, with a Copyright 1989, 1990. It shows schematics for an ISA implementation (only with a translation write ROM) followed by an MCA implementation (with both a read and a write translation ROM). Having a read translation ROM seems pointless for legacy emulation, as both 6845 and the EGA CRTC were write-only, so legacy software is never going to read those registers anyway. Possibly the MCA variant contains the read translation ROM because maybe IBM mandated that there must not be any write-only registers affecting hardware state on MCA cards, or the MCA read translation ROM is also used to provide the MCA hardware ID. The "optional write translation ROM" on the AT schematics is wired to ISA data bits 0-7 on A0..A7, the ET4000 data/address bits 8..14 on A8..A14 and the ET4000 address/data bits 0..7 on Q0..Q7.

Reply 17 of 18, by superfury

User metadata
Rank l33t++
Rank
l33t++
mkarcher wrote on 2024-09-06, 21:00:
superfury wrote on 2024-09-06, 14:59:

Any idea how a single 32KB ROM is wired onto the Tseng ET4000AX card, if it's present? The documentation only seems to mention one read and one write ROM (both 32KB large)?

I have the "Tseng ET4000 Graphics Controller Data Book" at hand, with a Copyright 1989, 1990. It shows schematics for an ISA implementation (only with a translation write ROM) followed by an MCA implementation (with both a read and a write translation ROM). Having a read translation ROM seems pointless for legacy emulation, as both 6845 and the EGA CRTC were write-only, so legacy software is never going to read those registers anyway. Possibly the MCA variant contains the read translation ROM because maybe IBM mandated that there must not be any write-only registers affecting hardware state on MCA cards, or the MCA read translation ROM is also used to provide the MCA hardware ID. The "optional write translation ROM" on the AT schematics is wired to ISA data bits 0-7 on A0..A7, the ET4000 data/address bits 8..14 on A8..A14 and the ET4000 address/data bits 0..7 on Q0..Q7.

So my current implementation that:
- Follows the ET4000 wrt the generating the BDB15:0 bits (bits 7:0 are the input bits from CPU or register). Output is given to the CPU or register(depending on direction).
- When on AT, the read ROM is internally bypassed (it's done by the top positioned LS245 chip in the ET4000 documentation's description of the first page mentioning it's chip pinouts and connected hardware). It's the chip with the -RDML and +DIR inputs in the bottom left corner of the LS245 chip).

That only the write chip is supported I already deduced from those schematics. Said LSL245 internal chip (the topmost chip drawn inside the ET4000 chip on the first page of the ET4000 AT schematic inside the manual (2.1 typical board-level configuration, within chapter 2.0 application notes, at page 14 (or page 15 including the book cover as page 1)). The chip has 2F printed above it, positioned below the 16-bit extension that works in the same way (it's the bus tranceiver for the data bus lines I think (DB0-7))?
From what I can see, DIR low(thus a read) with RDML low(access to translation ROM in progress) means that it's enabled the bus, from Bx to Ax, so DB(CPU) to BDB(internal)? So that's a read operation. Raising DIR would reverse the direction, outputting internal BDB to DB(CPU) instead? And raising RDML causes it to deactivate (raises OE, so the chip blocks the bus output in both directions)?'

I also noticed something interesting. If on the AT version of the card the read translation ROM is enabled, it effectively won't translate it due to the way the ROM works and is driven? So the CPU receives the untranslated value in that case?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 18 of 18, by superfury

User metadata
Rank l33t++
Rank
l33t++
superfury wrote on 2024-09-06, 21:34:
So my current implementation that: - Follows the ET4000 wrt the generating the BDB15:0 bits (bits 7:0 are the input bits from CP […]
Show full quote
mkarcher wrote on 2024-09-06, 21:00:
superfury wrote on 2024-09-06, 14:59:

Any idea how a single 32KB ROM is wired onto the Tseng ET4000AX card, if it's present? The documentation only seems to mention one read and one write ROM (both 32KB large)?

I have the "Tseng ET4000 Graphics Controller Data Book" at hand, with a Copyright 1989, 1990. It shows schematics for an ISA implementation (only with a translation write ROM) followed by an MCA implementation (with both a read and a write translation ROM). Having a read translation ROM seems pointless for legacy emulation, as both 6845 and the EGA CRTC were write-only, so legacy software is never going to read those registers anyway. Possibly the MCA variant contains the read translation ROM because maybe IBM mandated that there must not be any write-only registers affecting hardware state on MCA cards, or the MCA read translation ROM is also used to provide the MCA hardware ID. The "optional write translation ROM" on the AT schematics is wired to ISA data bits 0-7 on A0..A7, the ET4000 data/address bits 8..14 on A8..A14 and the ET4000 address/data bits 0..7 on Q0..Q7.

So my current implementation that:
- Follows the ET4000 wrt the generating the BDB15:0 bits (bits 7:0 are the input bits from CPU or register). Output is given to the CPU or register(depending on direction).
- When on AT, the read ROM is internally bypassed (it's done by the top positioned LS245 chip in the ET4000 documentation's description of the first page mentioning it's chip pinouts and connected hardware). It's the chip with the -RDML and +DIR inputs in the bottom left corner of the LS245 chip).

That only the write chip is supported I already deduced from those schematics. Said LSL245 internal chip (the topmost chip drawn inside the ET4000 chip on the first page of the ET4000 AT schematic inside the manual (2.1 typical board-level configuration, within chapter 2.0 application notes, at page 14 (or page 15 including the book cover as page 1)). The chip has 2F printed above it, positioned below the 16-bit extension that works in the same way (it's the bus tranceiver for the data bus lines I think (DB0-7))?
From what I can see, DIR low(thus a read) with RDML low(access to translation ROM in progress) means that it's enabled the bus, from Bx to Ax, so DB(CPU) to BDB(internal)? So that's a read operation. Raising DIR would reverse the direction, outputting internal BDB to DB(CPU) instead? And raising RDML causes it to deactivate (raises OE, so the chip blocks the bus output in both directions)?'

I also noticed something interesting. If on the AT version of the card the read translation ROM is enabled, it effectively won't translate it due to the way the ROM works and is driven? So the CPU receives the untranslated value in that case?

Is there a way to verify that the translation ROM mechanism is working properly? Was the ROM I'm testing with right now (of the Orchid Prodesigner 2 XL card) made by simply writing to the registers with translation mode enabled, then reading them back with translation mode disabled?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io