BIOS call from NTLDR: Int 10h / AX=1202h / BX=0301h

Programming, for all ages and all languages.
Post Reply
atfel
Posts: 2
Joined: Thu Nov 29, 2012 7:50 pm

BIOS call from NTLDR: Int 10h / AX=1202h / BX=0301h

Post by atfel »

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.
User avatar
thepowersgang
Member
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

Post by thepowersgang »

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
Kernel Development, It's the brain surgery of programming.
Acess2 OS (c) | Tifflin OS (rust) | mrustc - Rust compiler
Currently Working on: mrustc
User avatar
Kazinsal
Member
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

Post by Kazinsal »

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
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
atfel
Posts: 2
Joined: Thu Nov 29, 2012 7:50 pm

Re: BIOS call from NTLDR: Int 10h / AX=1202h / BX=0301h

Post by atfel »

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
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.
Post Reply