VOGONS


3 (+3 more) retro battle stations

Topic actions

Reply 2500 of 2511, by rasz_pl

User metadata
Rank l33t
Rank
l33t
sqpat wrote on 2026-04-17, 14:59:

BTW, if int 0x1a modifies 32 bit registers

int 0x1a is provided by computer BIOS

sqpat wrote on 2026-04-17, 14:59:

Just returning after stc will make the pci version of the card not work

my point is you should NOT NEED to modify anything. This piece of VGA BIOS code detects if its running in a computer with PCI bus. Computers with PCI buis are always 32bit, computers without can be 16bit.
TLDR this function doesnt need any patching. Others might (I havent looked at the code), but not this one.

https://github.com/raszpl/sigrok-disk FM/MFM/RLL decoder
https://github.com/raszpl/FIC-486-GAC-2-Cache-Module (AT&T Globalyst)
https://github.com/raszpl/386RC-16 ram board
https://github.com/raszpl/440BX Reference Design adapted to Kicad

Reply 2501 of 2511, by sqpat

User metadata
Rank Newbie
Rank
Newbie

The code you are commenting on is not the original code, you are referring to the modifications pshipkov made. The original 1.02 code is this:

2FEA  66 50                      push    eax
2FEC 66 53 push ebx
2FEE 66 52 push edx
2FF0 E8 27 00 call 0x301a

; String: "fZf[fXs"
2FF3 66 5A pop edx
2FF5 66 5B pop ebx
2FF7 66 58 pop eax

...

301A 66 BB 00 00 00 80 mov ebx, 0x80000000
3020 BA F8 0C mov dx, 0xcf8
3023 66 8B C3 mov eax, ebx
3026 66 EF out dx, eax
3028 66 ED in eax, dx
302A 66 3B C3 cmp eax, ebx
302D 75 29 jne 0x3058
302F BA FC 0C mov dx, 0xcfc
3032 66 ED in eax, dx
3034 66 3D 13 10 A8 00 cmp eax, 0xa81013
303A 74 1E je 0x305a
303C 81 C3 00 08 add bx, 0x800
3040 81 FB 00 B0 cmp bx, 0xb000
3044 75 DA jne 0x3020
3046 2B DB sub bx, bx
3048 66 81 C3 00 00 01 00 add ebx, 0x10000
304F 66 81 FB 00 00 00 81 cmp ebx, 0x81000000
3056 75 C8 jne 0x3020
3058 F9 stc

So this absolutely needs patching because of 32-bit register use.
pshipkov's modified version replaces push eax, ebx, edx with push ax, bx, dx for 286 compatibility then uses int 0x1a instead of a port based check for pci devices, which i suppose is fine on a 286 if it 0x1a returns with carry flag set. I already confirmed a few hours ago on a 286 this works on real hardware.

https://mirror.math.princeton.edu/pub/oldlinu … tml/rb-2371.htm

Is this reference correct? It says several 32 bit registers are modified as return values. If so a 486 with pci bus responds and modifies 32 bit registers, returns, and the outer scope is no longer preserving 32 bit registers as the original code did, because push eax is now push ax, etc.

---

Anyway, we know the bios is not the problem, there is some hardware difference that needs to be determined.

I searched all over vogons, google, cannot find any reference to a HW mod or HW issue. Looked over the pictures of other cards online, compared with mine. Some small changes of via placements but it seems they are still connected the same way as best I can tell. I'm sure someone will figure it out soon. If not, I will examine my cards in early May when I am back and I will figure it out I'm sure. I'd love to hear other people's benchmark results with the card eventually though.

Reply 2503 of 2511, by pshipkov

User metadata
Rank l33t
Rank
l33t

@sqpat
Since these ROMs do not work on several 286 motherboards, maybe it is your 286 SCAMP guy who is handling it somehow?
I sold my SCAMP board last year. Remember having this feeling at the time that i will probably regret it later since the chipset is not well studied.
So the ball is with you to test with other boards and confirm working/non-working.

@rasz_pl
Yeah. But needs to be tested.

retro bits and bytes | DOS media library

Reply 2505 of 2511, by pshipkov

User metadata
Rank l33t
Rank
l33t

Right on - SCAT but not SCAMP.
Ok, going forward please make sure to bring at least 2 different 286 motherboards when on a business trip.

retro bits and bytes | DOS media library

Reply 2506 of 2511, by pshipkov

User metadata
Rank l33t
Rank
l33t

tried few more things with version 1.02 of the CL-GD5434 ROM - eliminated all PCI codepaths (there are few of them in there), few more smaller tweaks - nothing made a difference - no screen. But i can type by memory something and start a game (hear music playing), etc., so the system is functional, just the video card is not doing something right.
Also, tried different ISA speeds - just in case.
Reporting for visibility.

retro bits and bytes | DOS media library

Reply 2507 of 2511, by sqpat

User metadata
Rank Newbie
Rank
Newbie

OK, I was able to get ahold of a Headland HT-18 board (Protech PM286) . No post. I get stuck at POST code 31 after 2F. 2f is Video memory tested, 31 is Alternate Video Adapter tested. If its testing an alternate video adapter then perhaps something failed during the video bios initialization? I do not get the machine running in the background at all, it just hangs. Cant ctrl alt delete, toggle caps lock, or anything like that.

By the way, comparing pins present on speedstar pro and speedstar 64 i only see 4 different pins populated.

Speedstar 64 Adds: MEMR MEMW (16 bit on front side)
Speedstar 64 Removes: SMEMR SMEMW (8 bit on back side)

Could this be significant? I am trying to read up on it, seems that the 8 bit SMEMR/SMEMW and is only active during reads/writes on the first 1MB of system memory (so that 8 bit cards aren't signalled when writes outside of their addressable range happens) while MEMR/MEMW should always be active. Could it be for some reason some motherboards are not sending the signals to the 16 bit memr/memw portion of the card...? Or only during bios initialization? I don't have enough knowledge/context for this.

---

I also tried MCLK on the card. I was able to run the dram clock higher (up from 50 mhz to 70 mhz). This did not seem to improve performance any way I could measure in DOS. I read that the 5434 BIOS supposedly resets the dram clk on resolution/screen mode changes but I don't think I observed this behavior. I'm still learning about tweaking the card though.

Reply 2508 of 2511, by rasz_pl

User metadata
Rank l33t
Rank
l33t

>MEMR MEMW SMEMR SMEMW

tldr normal classic graphic cards wire up SMEMR SMEMW as they only live under 1MB. Later VESA 2.0 capable cards started wiring MEMR MEMW in order to support LFB Linear framebuffer access that on ISA systems is mapped at 15-16MB and has to be explicitly supported by chipset/BIOS doing 15-16MB memory hole for it when system has more than 15MB of ram.
afaik the only difference is SMEMR SMEMW cards can ever support VESA LFB and thats it.

https://github.com/raszpl/sigrok-disk FM/MFM/RLL decoder
https://github.com/raszpl/FIC-486-GAC-2-Cache-Module (AT&T Globalyst)
https://github.com/raszpl/386RC-16 ram board
https://github.com/raszpl/440BX Reference Design adapted to Kicad

Reply 2509 of 2511, by sqpat

User metadata
Rank Newbie
Rank
Newbie

OK, I created a thread about this on vcfed and have investigated on and off but the TLDR is

My HT-12 286 started to work with the 5434 card by:
- Setting up a ROM Card (I used 3Com etherlink) to mount ROM at C000
- Put the 5434 rom on BOTH the ethernet card and the video card. There seems to be a 'switchover' point where the video card activates and it's ROM becomes detectable... not sure why. Possibly related to EROM pin (see below).
- I got the error beeps (1 long 3 short), but the video appeared after that. This is also a particular motherboard where the machine continued to post with no video otherwise. I feel like this might be BIOS dependent. Maybe some BIOS would just fail out?

Some notes:
- Basically, the video bios is not detectable by the machine. You can confirm by booting MDA or CGA with the 5434 also present, and going into debug and you see nothing in C000.
- I'm guessing maybe this is motherboard dependent where some motherboards with their bus steering logic that handle 8 bit accesses (for the ROM) do not assert MEMR/MEMW for 8 bit ROM reads?
- There's some details in the 5434 databook having to do with pins MEMR, EROM, that go into implementation details.
- VLSI SCAMP (and maybe TOPCQT) , C&T SCAT, Citygate TD90 worked with the card as is. Nothing else worked including HT18/21, though 386sx HT18 boards work with the card.
- Because of the lack of presence of SMEMW/SMEMR a hardware mod would maybe involve soldering pins from the ISA socket itself rather than an on-board mod which sounds annoying.

No idea how any of this affects LFB. Has anyone ever tried LFB features on a 286 anyway?

I'm in the progress of soldering some of the 5434 PCBs from that repo online, I just noticed they use SMEMR/SMEMW on the 8 bit side of the card. This I think means they don't support LFB at all, but probably means they will work as is on the 286? I will update in a few weeks once i have all the rest of the parts and finish up a card.

Reply 2510 of 2511, by JonnyAmps

User metadata
Rank Newbie
Rank
Newbie

I figured out a neat trick to boost the HT18/HT21 286 chipsets to near top tier performance. I finally got my Amprton VLSI Turbo to clock-for-clock performance with pshipkov's Dunson. And then promptly mananged to incapacitate the board. So I went back to trying to mess around with the control registers for the HT18/21 that are shown in the chipset documentation. The HT18/21 default to Page mode memory access. Combined with 2/4 memory interleaving this is good for sequential memory access. The HT12 and VLSI VL82CPCAT don't use page mode which I'm guessing works better for pointer chasing that you normally see in games and 3d graphics.

Anyways, settng control register 1 bit 7 to a 1 to disable page mode and then setting control register 2 D5 to 1 to enable 0 wait state boosts performance to within 5-10% of the per clock VL82CPCAT numbers. On my HT18 I can use a second crystal to boost the ISA speeds to get a tad more out of it. There are some memory timings also that may be adjusted. There also a high speed I/O mode in control register 4 which runs the ISA Bus at processor clock, but my CF card can't handle this. I don't have a combination of CPU/memory/CF Disk that can go past 27.5 yet.

The attached benchmarks are at 27Mhz with a STB Horizon GD5429 on a HT18C PM286. I haven't found any VGA to be faster than that. It was on a clock basis in line with pshipkov's Micro Labs ET4000 on the VLSI Turbo, which makes me wonder if the GD5434 will actually provide a boost in DOS.

Reply 2511 of 2511, by pshipkov

User metadata
Rank l33t
Rank
l33t

@sqpat
Good story with the ROM card approach to avoid BIOS patches.
The issue is clearly chipset/bios/mobo specific.
Looks like HW mod will be needed to resolve the current MEMR MEMW 8bit ROM culprit.

About
Speedstar 64 Adds: MEMR MEMW (16 bit on front side)
Speedstar 64 Removes: SMEMR SMEMW (8 bit on back side)
I never looked at the pins of 5434. Pass a pic for a reference about what you are looking at on the cards.

About LFB - i cannot think of a game/application that uses this mode and can run on 286 class hardware. So, no concern at all in my opinion.

@JonnyAmps
So, you silenced the Amptron VLSI VL82CPCAT-16QC board?
That sucks.

Great info and results for the HT18 chipset. Is it long term stable? I am eager to test this now.
It is very difficult to go past 27.5fps with 0 wait states on 286 class hardware.

Looked up things as well, without actually testing. Here is my prep for it so far:
CR1 bit 7: page mode, 1 = enabled, 0 = disabled
CR2 bit 5: non-page mode, 1 = 0 wait-state, 0 = 1 wait-state
CR2 bits 6 and 7: must be set to 1
CR4 bit 3: fast ISA I/O - you reported CF card issues - at minimum this is the well-known write access issues, or the local storage subsystem not functioning at all

Attached 2 executables.
Both disable page mode, set 0 wait state memory access.
The second one enables fastest ISA I/O.

Didn't test yet as the bench desk is covered with ISA cards - doing a bit of a deep-dive on the ISA graphics subject that i hope to post about at some point soon.
Because of that i have fresh evidence that Cirrus Logic GD-5424, 5426, 5428, 5429, 5430, 5434 are slightly faster than ET4000AX, ET4000/W32, ET4000/W32i for VGA graphics in DOS.
Titles like Wodlenstein3D, Doom, etc. clearly show that.

retro bits and bytes | DOS media library