Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations IamaSherpa on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

PC Standards

Status
Not open for further replies.

straiph

Programmer
Mar 4, 2002
193
GB
Hi,

I thought that the BIOS interface (ie interrupts) always have the same usage regardless of the manufacturer.

I thought that the machine code for 80x86 series processors are always the same regardless of manufacture.

I dont understand why my real mode program works on some PCs and not on others.

worked on Pentium III, Pentium 200Hz
failed on Celeron, AMD K6/2, Cyrix MII

OK, im starting to see a pattern here. whats the difference in the machine code for these processors?

"People who have nothing to say, say it too loud and have little knowledge. It's the quiet ones you need to worry about!"
 
come on AmkG or Bertv100, someone must have some ideas why a real mode program works on one PC but not another.
"People who have nothing to say, say it too loud and have little knowledge. It's the quiet ones you need to worry about!"
 
maybe, the bios usage HAS changed slightly over the last few years?

and this real mode program only works on older BIOSs?

do you know where i can get the latest BIOS spec?

Thanks very much
Straiph
"People who have nothing to say, say it too loud and have little knowledge. It's the quiet ones you need to worry about!"
 
Tell us more about the Problem...

Do you run the Program from the Boot-Sektor or from DOS or Windows?
Are there different Systems installed?
Wich BIOS calls are used?
What do the Programm...?
Use the Programm any non 8086-Code ? MMX and ISS ?
What is going wrong? System-Crash, Hang Up, Program Abort, Runtime-Error...

 
Ahem, yes that would be a good idea to tell you something about the program...

tested PCs:
1st PC - Award Modular BIOS v4.60PGA - AMD-K6D
2nd PC - Award Modular BIOS v6.00PG - PentiumIII
3rd PC - Phoenix BIOS - Pentium4
4th PC - Phoenix BIOS 4.0 R6 02TE - Celeron500
5th PC - ? - Pentium 200Hz
6th PC - ? - PentiumIII

it worked on 2,5,6 - failed on 1,3,4 and more.

i think the bios manufacturer on 5,6 is award.

the program is a 16bit real mode boot loader.
the boot strap loads and executes.
this loads the boot loader and starts execution
enables gate A20
configurs the PICs to use interrupt 020h consecutively and copies the vectors accordingly.
loads additional files using standard BIOS calls.

the PCs lockup during loading the first additional file.

anyway my point is it works fine on some PCs and not on others which leads me to beleive that all PCs are not quite standard. my program doesnt do anything unreasonable as the methods are well documented.

the reason i posted this is that i heard MS had the same problem with win95 and they produced a patch. i just wondered if anyone knew about the patch and what it did to overcome the differences.

or does anyone have any ideas?
Thanks very much
Straiph
"People who have nothing to say, say it too loud and have little knowledge. It's the quiet ones you need to worry about!"
 
an idea came to me in an email

it could be a difference in chip sets where gate A20 is involved. the different chip sets may not behave in the same manor and are causing unexpected results.

i will have to do some testing!

"People who have nothing to say, say it too loud and have little knowledge. It's the quiet ones you need to worry about!"
 
Maybe it has something to do with the fact that your IRQ's were moved, when the BIOS expects them at certain locations?

Not likely anyway? You can always try swapping those bits of code.

Alternatively, it's entirely possible that the problem IS the A20 gate... IIRC there is a service to determine if an A20 gate is present. You can also try looking in 'Ralph Brown's Interrupt List' 'course it's a bit of a read to find anything there if you don't have a hardcopy...
"Information has a tendency to be free. Which means someone will always tell you something you don't want to know."
 
the problem was with a routine that i wrote for 16bit real mode. On the PC that i was working with at the time allowed me to use segements greater than 64k hence i never picked up on the situation at developement. However, when this PC went to the bin my replacement didnt. It took me a while to find the problem including the act of committing all of ralf browns notes to memory ;)
Thanks all the same.
"People who have nothing to say, say it too loud and have little knowledge. It's the quiet ones you need to worry about!"
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top