I'm looking through NTLDR, and I ran into a BIOS call I don't understand. This is some of the first code in NTLDR.
It calls int 10h with ax=1202h and bx=0301h.
Here is similar code from Microsoft's Singularity project. The interrupt I don't understand is in the function BlInitializeVideo.
https://singularity.svn.codeplex.com/sv ... ntry16.asm
From the comments, it looks like this is meant to be a call with BL=10h instead of BL=01h, which it is actually called with.
I stepped through the interrupt in Bochs, and found that in that environment, it does absolutely nothing. I examined the VBIOS of vmware to find that the int 10h handler looked similar to Bochs', and also seemed to ignore a call with these parameters.
Also, in my NTLDR, there also is a call to int 10h / AX=2000h / BX=0. While in the singularity source code, they call it with AX=0200h, which actually corresponds to a BIOS routine.
Does anyone know if these are just typos, or are they for some obscure environment? Thanks in advance.
BIOS call from NTLDR: Int 10h / AX=1202h / BX=0301h
- thepowersgang
- Member
- Posts: 734
- Joined: Tue Dec 25, 2007 6:03 am
- Libera.chat IRC: thePowersGang
- Location: Perth, Western Australia
- Contact:
Re: BIOS call from NTLDR: Int 10h / AX=1202h / BX=0301h
From Ralph Brown's Interrupt List - http://www.ctyme.com/intr/rb-0160.htm
Int 10/AH=12h: BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
Int 10/AH=12h: BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
Kernel Development, It's the brain surgery of programming.
Acess2 OS (c) | Tifflin OS (rust) | mrustc - Rust compiler
Currently Working on: mrustc
Acess2 OS (c) | Tifflin OS (rust) | mrustc - Rust compiler
Currently Working on: mrustc
- Kazinsal
- Member
- Posts: 559
- Joined: Wed Jul 13, 2011 7:38 pm
- Libera.chat IRC: Kazinsal
- Location: Vancouver
- Contact:
Re: BIOS call from NTLDR: Int 10h / AX=1202h / BX=0301h
Odd. BIOS Window Extension is a TSR, which wouldn't actually be useful at all in the environment NTLDR exists in.thepowersgang wrote:From Ralph Brown's Interrupt List - http://www.ctyme.com/intr/rb-0160.htm
Int 10/AH=12h: BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
Closest one that works (and most likely the actual one you want): http://www.ctyme.com/intr/rb-0167.htm
Re: BIOS call from NTLDR: Int 10h / AX=1202h / BX=0301h
Yeah, there's no TSRs. This is literally the first interrupt NTLDR calls (at least in this copy of XP I'm looking at), so I thought people would have seen this before. I thought maybe there was something really subtle that I might be missing. But now, I'm thinking that they really did mean to call it with BL=30h, but made a typo, and just didn't notice/care because it doesn't crash anything.Blacklight wrote: Odd. BIOS Window Extension is a TSR, which wouldn't actually be useful at all in the environment NTLDR exists in.
Closest one that works (and most likely the actual one you want): http://www.ctyme.com/intr/rb-0167.htm