VOGONS


First post, by Boohyaka

User metadata
Rank Oldbie
Rank
Oldbie

OK this one was quite a ride and it took a lot of systematic trial and error to get to the bottom of it...and is completely new to me. I'm writing in case it helps, and with the hope that someone more knowledgeable has any kind of explanation?

How it started: toying with a socket 4 batman's revenge motherboard and a POD133. BIOS is the latest 1.00.13.AF2.
Noticed performance was unexpectedly slow. Board has a turbo header but no connected switch, and a BIOS setting to start in turbo or "deturbo" mode. It was set as turbo which is the default.
Checking with TOPBENCH, it reports a score of 70-80, which is high 286/mid 386 territory so definitely not normal.

I'll keep it short and spare you from all the details and troubleshooting pathway, but of course my first focus was on the turbo header and settings. If I short the turbo header on the mainboard, it would slow down to a crawl (score of 16 in topbench), then removing the short, it would jump up to 300, which is the expected range for a P133! Rebooted the computer...and it was back to the shitty score of 70-80 unless I redid the whole turbo-jumping shenanigans.

Wasted a lot of time toying with BIOS settings, turbo keyboard shortcuts, reading the board docs, sometimes the problem would NOT happen and unfortunately I didn't understand why, as I know now I was still far from the right track and missed the crucial step of going to a very basic setup earlier...

Anyway long story short, by luck I realized that the problem was the CD-ROM. If I disconnected it...problem didn't happen. Huh? Tried another known working drive, same problem. Tried all combinations of master/slave and IDE channels, even tried to add more hard drives to see if it was linked to sharing an IDE channel, and the result was still as binary as it gets: CD drive connected anywhere problem, no CD connected no problem. I was really puzzled and looking around the web for similar problems I couldn't find anything relevant whatsoever, bummer.

And then at some point doing tests it struck me: the CD driver. Let's put that out of the way. Tried VIDECDD instead of my trusted TEAC CDI that never gave me any trouble (and that I like because in addition to being small it has a handy speed parameter) - and there it was! Problem gone. Tried both SHSUCDX and MSCDEX in conjuction with both VIDECDD and TEAC drivers to make 100% sure - consistent in both cases. The culprit was indeed the TEAC driver.

I am really puzzled by this issue and the CD drivers slowing the whole system, and the fact that triggering the Turbo jumper on and off "solves" it? A few somewhat interesting observations from my tentative of a thorough and systematic troubleshooting:
- CPUCHK when the problem is happening, reports a clock of 44MHz...but all other benchmarks have tried (SPEEDSYS, CkPro, ...) still report the CPU as running at 133MHz. So doesn't look like a true downclock to me?
- Talking about SpeedSys, it's the memory specs that seem to be way off between the two situations. I'll add some screenshots below.
- In topbench, I am not sure how the individual scores are calculated, but there wasn't a specific score that seemed off. Everything looked slower than it should be across the board.

I think that's it for my little tale and many hours wasted.. I just couldn't believe it, felt so weird being a device driver in the end, that's a new one to me. But maybe it's something completely logical and hopefully I will learn something today 😀

The attachment Untitled.jpg is no longer available

Reply 1 of 5, by dominusprog

User metadata
Rank Oldbie
Rank
Oldbie

This is interesting. I've used the VIDECDD driver on a Pentium 120MHz build but I didn't notice any performance issue, try DOSIDLE to see if it makes any difference.

Duke_2600.png
A-Trend ATC-1020 V1.1 ❇ Cyrix 6x86 150+ @ 120MHz ❇ 32MiB EDO RAM (8MiBx4) ❇ A-Trend S3 Trio64V2 2MiB
Aztech Pro16 II-3D PnP ❇ 8.4GiB Quantum Fireball ❇ Win95 OSR2 Plus!

Reply 2 of 5, by weedeewee

User metadata
Rank l33t
Rank
l33t
Boohyaka wrote on 2024-10-08, 15:11:

Were you using the TEAC_CDI.SYS driver with a speed parameter ?

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 3 of 5, by Boohyaka

User metadata
Rank Oldbie
Rank
Oldbie

Nope, thought about it too but wasn't the case in this config

Reply 4 of 5, by rasz_pl

User metadata
Rank l33t
Rank
l33t

For this to happen driver would have to constantly pool the drive - inject itself as a timer interrupt handler, or maybe pokes where it shouldnt and changes some undocumented I/O your board uses to control turbo?

https://github.com/raszpl/FIC-486-GAC-2-Cache-Module for AT&T Globalyst
https://github.com/raszpl/386RC-16 memory board
https://github.com/raszpl/440BX Reference Design adapted to Kicad
https://github.com/raszpl/Zenith_ZBIOS MFM-300 Monitor

Reply 5 of 5, by Boohyaka

User metadata
Rank Oldbie
Rank
Oldbie
dominusprog wrote on 2024-10-08, 15:30:

This is interesting. I've used the VIDECDD driver on a Pentium 120MHz build but I didn't notice any performance issue, try DOSIDLE to see if it makes any difference.

Thank you, I didn't know about DOSIDLE, interesting software! But alas, just tested, and does not make a difference.

rasz_pl wrote on 2024-10-09, 11:14:

For this to happen driver would have to constantly pool the drive - inject itself as a timer interrupt handler, or maybe pokes where it shouldnt and changes some undocumented I/O your board uses to control turbo?

I'm really curious, because I have decent experience with PC's and DOS since the 80's and I can't think of anything as weird as this right now. But it must have a logical explanation, just one out of my knowledge 😀

EDIT: your undocumented I/O comment is pretty much my best guess at this stage. The fact shorting the Turbo header brings it to a crawl (even lower than the regular "deturbo" mode), it sounds logical that what happens is that it applies to the faulty slow state whatever underclocking the turbo circuitry is made for (ending up with a very, very slow computer) but removing the short (=set back to regular "turbo" mode) resets it all, including whatever wrong state the TEAC_CDI driver did set when booting.