VOGONS


3 (+3 more) retro battle stations

Topic actions

Reply 2500 of 2507, 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 2507, 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 2507, 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 2507, 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 2507, 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 2507, 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.