VOGONS


First post, by mxmxmx2

User metadata
Rank Newbie
Rank
Newbie

Spurred by another forum, I looked at an ET4000-based ISA graphics card (unbranded, PN 9201 Rev A) with one particular oddity: Pin 12 of the ET4000 (TC6100AF, in its usual 144-pin package) was connected to a clock selection pin on the clock generator IC.

According to the publicly available data book for the ET4000, this pin supposedly is DTEAL; an "output enable" signal for the video RAM.

dteal.png
Filename
dteal.png
File size
62.55 KiB
Views
1505 views
File license
Fair use/fair dealing exception

But it makes no sense to switch the main/pixel clock of the card depending on RAM access. It would make more sense if this pin were another clock-select output of the ET4000, like the adjacent pin 13 (CS2). For example, the newer ET4000W32i has more clock-select outputs under software control via CRTC register 0x31, bits 6-7.

w32i-clockselect.png
Filename
w32i-clockselect.png
File size
20.22 KiB
Views
1505 views
File license
Fair use/fair dealing exception

But this register is not even mentioned in the original ET4000 data book.

crtc-31-undocumented.png
Filename
crtc-31-undocumented.png
File size
217.68 KiB
Views
1505 views
File license
Fair use/fair dealing exception

However, by using a multimeter and writing these CRTC register bits on the card in question, I could confirm that the register does, in fact, exist in the ET4000. At least in the chip revision (marked TC6100AF) that I have. Bit 6 controls pin 12 (DTEAL, according to the data book); bit 7 controls pin 109 (DTEBL, allegedly yet another RAM "output enable").

My findings are free of doubt as I measured the voltages on these pins while changing the register.

But does a data sheet for the newer revision of the ET4000 exist that mentions the additional clock select pins? What are other undocumented features in there?

Reply 1 of 11, by weedeewee

User metadata
Rank l33t
Rank
l33t

Does the vga bios for that card have a function that writes to that register/bit?
Do other drivers exist that use that register/bit ?

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 2 of 11, by mxmxmx2

User metadata
Rank Newbie
Rank
Newbie

The video BIOS contains code to set bits 6-7 of CRTC register 0x31. See part of it in the following Ghidra disassembly. The clock select value to be programmed is in CH. Then it puts one bit into the (documented) "clock-select 2" bit of CRTC register 0x34, and the rest into CRTC register 0x31:

ghidra-tseng.png
Filename
ghidra-tseng.png
File size
36.38 KiB
Views
1477 views
File license
Fair use/fair dealing exception

(Note, though, that I run this card in a non-x86 system. So the video BIOS does not get executed and I can't say which specific values would be written into the register.)

Reply 3 of 11, by mxmxmx2

User metadata
Rank Newbie
Rank
Newbie

There is (in an IBM PS/2 document) a reference to a newer ET4000 data book, dated 1992. But no one seems to have scanned it?

databook.png
Filename
databook.png
File size
12.19 KiB
Views
1074 views
File license
Fair use/fair dealing exception

Reply 4 of 11, by pentiumspeed

User metadata
Rank l33t
Rank
l33t

Much of the VGA chips especially WD were made to interface with MCA bus as well but in practice I didn't see any produced besides cirrus logic.

Cheers,

Great Northern aka Canada.

Reply 5 of 11, by mxmxmx2

User metadata
Rank Newbie
Rank
Newbie

To be clear: I merely used the citation from the IBM document as evidence that a newer data book exists for the ET4000; newer than the 1990 edition that is on Bitsavers and archive.org. This thread is still about an ISA card.

Reply 6 of 11, by mattw

User metadata
Rank Oldbie
Rank
Oldbie
pentiumspeed wrote on 2023-02-06, 00:20:

Much of the VGA chips especially WD were made to interface with MCA bus as well but in practice I didn't see any produced...

I found at least 2 : "Matrox Magnum Graphics Controller MG-104, MG-108" and even all the software IBM released for them is preserved:

Re: 8bit PVGA1A OEM VGA for Olivetti. Drivers ?

but I confused WD95C01 with WD90C01, the real chip used in those is WD95C01.

Reply 7 of 11, by mxmxmx2

User metadata
Rank Newbie
Rank
Newbie

I got to test an the older revision of the ET4000, marked TC6058AF. In that revision, the chip behaves as described in the 1990 data book:

  • Pins 12 and 109 act as output enable for the video RAM,
  • CRTC register 0x31 does not exist. I.e., it always reads back as zero, regardless of what you write to it.

In contrast, as described above, in the newer TC6100AF revision of the ET4000...

  • pins 12 and 109 can be used as additional general purpose outputs, e.g., connected to the clock generator;
  • they are controlled by bits 6-7 of CRTC register 0x31, which can also be read back.

Since no one so far came up with the updated edition of the data sheet, there's no way of knowing what other features were added to the TC6100AF revision.

Reply 8 of 11, by mxmxmx2

User metadata
Rank Newbie
Rank
Newbie

PS: I forgot to mention: In the newer ET4000 (TC6100AF), the newly added, undocumented CRTC register 0x31 seems to work exactly as on the later ET4000W32i. As described, bits 6-7 control the clock select lines. Bits 4-5 are not implemented and always read back as 0. Bits 0-3 can be written and read, and probably serve as "scratch bits" without any functionality behind them.

Reply 10 of 11, by mxmxmx2

User metadata
Rank Newbie
Rank
Newbie

If the graphics card manufacturer took advantage of the additional clock select pins – like on the card that started this thread – he could easily have the card select between more than the usual 8 pixel-clock frequencies. For the end user: If the video BIOS and/or driver knows about this, this can add more video modes or additional refresh rates to existing video modes.

(And in my case: I'm not an end user; I work on low-level drivers for these cards.)

Reply 11 of 11, by Ozzuneoj

User metadata
Rank l33t
Rank
l33t
mxmxmx2 wrote on 2023-02-17, 17:26:

If the graphics card manufacturer took advantage of the additional clock select pins – like on the card that started this thread – he could easily have the card select between more than the usual 8 pixel-clock frequencies. For the end user: If the video BIOS and/or driver knows about this, this can add more video modes or additional refresh rates to existing video modes.

(And in my case: I'm not an end user; I work on low-level drivers for these cards.)

Okay, good to know! I was just curious as to what it meant from a practical standpoint, and I can see now why that'd be a big deal.

Also, thank you for your time in doing this. Not many people are out there doing driver work to expand the capabilities of vintage hardware. 😀

Now for some blitting from the back buffer.