BIOS call from NTLDR: Int 10h / AX=1202h / BX=0301h
Posted: Thu Nov 29, 2012 8:28 pm
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.
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.