Tom's Guide | Tom's Hardware | Tom's Games
![]() |
![]() |
![]() |
Do you mean changing BIOS settings or rewriting your BIOS?
If you mean rewriting your BIOS, don't even try your computer won't boot again unless you use the manufacturors BIOS update in which they give you a utility to update it with.

are you thinking of changing 1 or 2 byte of data in BIOS? think assembly will give you that power. :)
wtk

If you really want to run the risk of rendering your computer usless, you could probably do it in C++.
I think you will find that the BIOS is port addressed, the CMOS memory certainly is. Finding out which ports do what will be difficult as the BIOS addressing is not well documented. Mainly becasue it is not something any sensible person would want to do.
Stuart

G'day,
Yes, seems to be a bit of confusion here. Do you want to write to your CMOS settings or the actual BIOS routines themselves??
If you want to change CMOS settings then I don't know how you would that (as Stuart suggests, you would have to now the port addresses). Hoever, the BIOS rountines are memory mapped, usually at the top of the 1M i86 address space (I'm not sure how this is set up in WIN2000 and above).
You can use the C peek() and poke() (and their word counterparts peekw()and pokew()) to look and change memory locations anywhere in the address space.
But, you have a problem here; the BIOS routines are usually in non volatile memory.
In older machines, this consisted of an EPROM of some kind. These cannot be changed in situ (you need to take them out and reprogram them completely)In the newer machines have FLASH memory and they can be programmed in situ, but not "on the fly".
You have to disable the write protection and then use a utility programme to again re-write the entire chip- you can't just change one or two locations.
The only other option you have is if your computer has "shadowed" the BIOS. This is when the BIOS is mapped into volatile RAM to speed up data transfers.
If you can find out where it is mapped to (your CMOS setup might tell you- sometimes it used to be put in unused mono video area or C000 and D000 segments)then you can peek() and poke() the area.
Finally, to echo the sentiments of the others posts:these routines are critical to the efficient functioning of the computer, and if you change anything you will almost certainly crash the machine
There would be no problem looking, though, but if you want to do that use DEBUG. It can be found in the windows/command folder. Just type debug at the DOS prompt and you will get the "-" prompt.Type U and the starting address of your BIOS and it will unassemble chunks starting at that address.
Good luck.
regards,
Elric

Hi,
Does anyone know how to access SMBIOS interface routines from Windows.Are there any Windows APIs to do this.
Thanks in Advance
Shyam.

I've already seen the standards and have downloaded the docs.But that is not enough for me.How can i access the APIs provided there from Windows dev.environment APIs such as Windows SDK.
Thanks in Advance
Shyam.

Hello People, does anybody of you know if it is possible to flash the bios of a computer through the com port, connecting a laptop(with an appropriate software).
TNX !!

![]() |
![]() |
![]() |

This post is quite old and has been locked from receiving new replies. Please create a new posting instead.
| Ads by Google |