VOGONS


First post, by clb

User metadata
Rank Member
Rank
Member

Hello,

I have this ISA VGA graphics card that is apparently branded ViewTOP (FCC ID finds Britek Electronics Co Ltd):
- https://fccid.io/ILLVGPDW
- https://dosdays.co.uk/topics/Manufacturers/viewtop.php

which has a WD90C30-LR graphics chip.

It has this DIP switch box at the back that made me curious what they are there for and Google did not find a hit, so spent an evening flipping them and reverse-engineering how they work. Half-way doing that, I got a clue and revised some search terms and found out that they correspond with this information: https://stason.org/TULARC/pc/graphics-cards/U … GA-WD90C30.html but at least on this particular card, there is one more setting combo for 1024x768 behavior compared to the data on that page.

Here is a more detailed DIP switch configuration guide for this card:

-----------------------------

DIP1,DIP2: 800x600 video mode control

The card provides four SVGA 800x600 video mode numbers:
1. 58h: 800x600x16 colors
2. 5Ch: 800x600x256 colors
3. 63h: 800x600x256 colors @ 56 Hz
4. 6Ah: 800x600x16 colors again

Mode 63h is always fixed to 56 Hz refresh rate, but the three other modes change their refresh rates based on DIP1 and DIP 2 states:
- DIP1=OFF, DIP2=OFF: 56 Hz,
- DIP1=ON, DIP2=OFF: 72 Hz,
- DIP1=OFF, DIP2=ON: 60 Hz,
- DIP1=ON, DIP2=ON: 56 Hz again, same as when both switches are OFF.

----------------------------------

DIP3, DIP4: 1024x768 video mode control

The card provides two SVGA 1024x768 video modes:
1. 5Dh: 1024x768x16 colors
2. 60h: 1024x768x256 colors

which are affected by the state of DIP3 and DIP4 switches:
- DIP3=OFF, DIP4=OFF: 87 Hz interlaced (one full frame every two fields, at 43.5 Hz)
- DIP3=ON, DIP4=OFF: 70 Hz progressive
- DIP3=OFF, DIP4=ON: 60 Hz progressive
- DIP3=ON, DIP4=ON: 72 Hz progressive

-------------------------------

DIP5 switch is the most interesting one. If this switch is off, video timings are "normal", with hsync of modes at 31.5 kHz, and vsync being either 70 Hz or 60 Hz, depending on mode.

When DIP5=ON, then the card changes the oscillator clocks from the standard 25.2 MHz and 28.2 MHz VGA clocks up to 31.6 MHz and 34.2 MHz respectively (+25% and +21% higher) . Timing geometry of video modes stay unchanged, which has the effect of increasing video mode hsync rate from 31.5 kHz up to ~40kHz, and vsync rate up from 70Hz up to ~90Hz (well, 88.118 Hz to be exact) for all the standard CGA/EGA video modes:
- CGA 00h/01h 40x25 text,
- CGA 02h/03h, MDA 07h 80x25 text,
- CGA 04h/05h, EGA 0Dh 320x200 gfx,
- CGA 06h, EGA 0Eh 640x200 gfx,
- EGA 0Fh/10h 640x350 gfx

For VGA video modes, the effect of switching DIP5=OFF -> ON is as follows:
- VGA 11h/12h 640x480 gfx: pixel clock=25.2 MHz -> 31.65 MHz, hsync=31.5kHz -> 40 kHz, vsync=60 Hz -> 75 Hz,
- VGA 13h 320x200 gfx: pixel clock=12.6 MHz -> 15.8 MHz, hsync=31.5kHz -> 40 kHz, vsync=70 Hz -> 90 Hz (measured on the board, hence the "halved" pixel clock compared to VGA output)

And finally there are two SVGA text video modes that also are affected by switching DIP5=OFF -> ON:
SVGA 66h 80x50 text: pixel clock=28.2 MHz -> 36 MHz, hsync=31.5kHz -> 40Hz, vsync=70 Hz -> 90Hz,
SVGA 67h 80x43 text: same as above

Other SVGA video mode numbers (14h, 21h, 41h, 47h, 54h, 55h, 5Eh, 5Fh, 63h, 64h, 69h, 6Ch) do not change behavior depending on the DIP1-5 switch settings.

It looks like the VGA card latches the state of the DIP switches at power-on so toggling them while the PC is running has no effect. Also a soft ctrl-alt-del reboot is not enough for it to read the new DIP switch states, but a hard power-off is required after changing the DIP switch states.

Overall, I find the effect of changing VGA mode 13h from 70 Hz up to 90 Hz pretty quirky and cool. Maybe useless, but fun 😀. Mode-X games up their refresh rate from 60 Hz up to 75 Hz.

It looks like this change is not based on adjusting the default BIOS settings for video modes, but the refresh rate is also changed for games that manually program the VGA registers.

Tried this out with a few games on my Cyrix 486 80 MHz PC, and for example:
- Jazz Jackrabbit upgrades to run at 75.076 Hz instead of 60 Hz, and gameplay is smooth at that rate. The game logic does speed up by that factor, sprite animations run faster, for even more crazier gameplay. Music and SFX do not go out of whack. Video is synced smoothly at 75.091 Hz (+0.019% deviation, one synced frame lost every ~67 seconds) to my ASUS ProART PA248QV, which has 75 Hz max refresh rate (I am testing this using CRT Terminator)
- Pinball Fantasies: runs at 89.457 Hz instead of the usual 70 Hz, game runs faster, music and sfx ok. Unfortunately I don't have a multisync CRT at hand to test how this would feel like in smooth motion, but I have to frameskip the output rate to 75 Hz max.
- Psycho Pinball: changes from 67.449 Hz up to 85.634 Hz refresh rate. Oddly, game speed *slows* down instead of speeding up. The whole thing plays like in -30% slo-mo or so. Curious.
- Pinball Illusions: this updates from 70 Hz up to 89.457 Hz , game speed updates accordingly. Gameplay becomes pretty crazy to keep up.
- Lemmings, Xenon 2 Megablast, Prince of Persia, Commander Keen 5: do not seem to be bothered by this change, they render at 88.118 Hz but gameplay is unaffected. No audio glitches.
- OMF 2097: game logic speeds up from 70hz -> 90hz, pretty wild and crazy. Audio effects become glitchy, but music is ok.

Pretty neat 😀

Attachments

Reply 1 of 4, by Thermalwrong

User metadata
Rank Oldbie
Rank
Oldbie

Thank you so much for sharing this information and looking in-depth into how this card works 😀
I have a WD90C30-LR card that's pretty much the same but it omits the dip switches in favour of jumpers, and your pictures show which jumpers line up to which dip-switch.

It's a really fast ISA card but I just put some more RAM on it and found that running higher resolutions would cause my LCD monitor to give an 'out of range' notice - the settings you've shared let me set it to 72hz for 800x600 & 1024x768 so those now display nicely. Running 1024x768 in Windows 98 on this card feels a bit wrong and it certainly does show that it's not a GUI accelerator card at such high res, but the picture was pretty sharp.

IMG_1747 (2) (Custom).JPG
Filename
IMG_1747 (2) (Custom).JPG
File size
1.13 MiB
Views
497 views
File license
CC-BY-4.0

Although I notice that trying to set 16-bit colour just gives a blank display which I expect is down to the RAMDAC being probably 8-bit only.

I was testing out all my ISA VGA cards yesterday and it's one of the fastest for running Quake on the ISA bus:

QuakeBenchmarks-ISA-VGA.png
Filename
QuakeBenchmarks-ISA-VGA.png
File size
57.37 KiB
Views
497 views
File license
CC-BY-4.0

The LCD didn't like when I changed dip switch number 5 though so I haven't tested that 😁

Reply 2 of 4, by clb

User metadata
Rank Member
Rank
Member

One additional nugget of information I found was that on my board, there are jumpers marked JP3 and JP1 (no jumper JP2, not even an unpopulated text JP2 anywhere on the PCB), unlike in the diagram in the stason.org link that I pasted, which documented jumpers JP1 and JP2.

Also, both JP1 and JP3 are two-pin jumpers, whereas on stason.org diagram they were marked three-pin. (Probably one of the pins there was just a conveniency park pin)

JP3 on my board controls Zero Wait State, like what JP2 is referred to be on stason.org. When running SNOOP.EXE: (S)VGA adapter info tool and CRT Terminator config utility , I observe that the pixel write speed improves from 1077.586 KB/sec to 1225.490 KB/sec, a +13.7% speed increase. Attached screenshots of SNOOP with JP3 Open vs Closed.

I have not been able to figure out what JP1 does however. stason.org diagram hinted towards 512KB/1024KB memory configuration. Oddly, having the jumper in either state, my board advertises 768 KB of VRAM, as seen in the SNOOP screenshots.

On the board there are 8x M514256B memory chips, which are 256K*4bit VRAM, so should total 1024 KBytes of memory on the card. It is possible that one of the VRAM chips has gone bad, and the board autodetects to a smaller amount of memory.

If JP1 was a 512KB memory config jumper on my board, then I'd think that it would cause it to at least flip between 512KB and 768 KB configurations even with supposed bad VRAM, but that does not seem to be happening.

Also I was thinking maybe JP1 might be controlling IRQ2 Vertical Retrace Interrupt feature, but that does not seem to be the case, or at least SNOOP is not detecting IRQ2 support on the card.

Attachments

Reply 3 of 4, by Thermalwrong

User metadata
Rank Oldbie
Rank
Oldbie

Are you just testing with the snoop software? I wonder if Speedsys or Windows would report the same thing - I know that my card when tested in Windows 98 showed 1MB after I put the extra RAM on it.

But I pulled it out today and it also shows 768kb memory in Speedsys on my 386sx test computer:

IMG_1835 (Medium).JPG
Filename
IMG_1835 (Medium).JPG
File size
108.89 KiB
Views
413 views
File license
CC-BY-4.0

I'm pretty sure the full 1MB is working since I could use the higher resolutions than before, so your card is unlikely to also have a fault. Probably just an oddity of how the WD90C30 handles memory or reports it

Reply 4 of 4, by clb

User metadata
Rank Member
Rank
Member

Yeah, SNOOP also queries VESA for the reported video memory, so it is expected that any other card that reads VESA would agree.

The highest VESA resolution the card supports is 1024x768@256c that takes up that 768 KBytes. Maybe they didn't have any video mode to offer that would have taken up full 1MB and thought it would not make sense to report 1MB RAM via VESA then, and decided to report there the max amount that any video mode uses up.