Why is DOS slow on a Pentium?

My workhorse PC is a 486DX2-66 with h/w disk cache running DRDOS6.  I program in MS "QuickBasic" (compiled) for DOS and for a 486 my PC is very fast.  I also have a P100 laptop (Toshiba 210CS).  In DOS this is much slower than the 486.  I think any instruction that writes to the text screen slows a program down.

Worse I now find that some (if not all) Pentiums have a more sinsiter speed problem.  I have written a QuickBasic front end controlling an interrupt-driven serial-port driver written in assembler.  Works fine on my 486.  On some Pentiums (e.g. a 166MHz) it misses great chunks of date e.g. incoming on COM1 at 9600 baud - often over 20 bytes in succession, so cant be solved by invoking 16550 16-byte buffer.  This makes my software unusable on Pentiums.  Does anyone know why this is?

Surely the 166MHz P cannot be inherently slower than a 486? It can't be anything simply if it affects an interrupt routine.  Is it some goblin put into modern BIOS's that aartificially slow down DOS software in an attempt to kill it dead?
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

LaphroaigConnect With a Mentor Commented:
Pentium Processor architecture is somewhat different from 486 architecture. Do you have a copy of Intels Programming Reference Manual and Instruction Sets for Pentium Processors.

If you are writing code purely based on 486's, then you are not taking advantage of newer, faster routines that Pentiums provide in their Instruction sets for trapping interupts etc. Pentiums provide faster routines for doing everything that previous *86's could do, but there is a trade off in speed against backward compatability.

At machine level, the faster the processor, and the faster the bus speed, then the faster your program will run. It does'nt matter about operating systems because you are writing code specifically for the processor.

Code compiled from Basic is clumsy to say the least. C++ is better, but Assembly is best of all because it is processor specific.

If you go to Intel's website then you can download their Programmers Reference Manual. It will give you all the info that you need to know.
microlitAuthor Commented:
Thanks for a starting point: I find it hard to believe that optimising the P for its "own code" leaves it so very much slower in backwards compatible X86 code, but I will do as you suggest and consult the Intel Prog Ref.  
microlitAuthor Commented:
having uploaded some stuff from Intel, and searched around their site, I regret I can find no info explaining my problem.

Intel do claim all thier chips are fully backward compatible as surely they must be.

I repeat, what I am bugging about is a GROSS reduction in speed that cannot I think be because a P is optimised for something else.  We are talking about a P166 going an estimated 10x slower than a 486-66.
All Courses

From novice to tech pro — start learning today.