Windows MBR bootloader: reduce CPU usage during password prompt (Credit: Jason Pyeron of CipherShed project 00ea00e8e6)

This commit is contained in:
Mounir IDRASSI 2017-08-02 17:25:06 +02:00
parent 21fc5a8750
commit 2fde7f0b47
No known key found for this signature in database
GPG Key ID: DD0C382D5FCFB8FC
1 changed files with 22 additions and 1 deletions

View File

@ -238,11 +238,32 @@ byte GetKeyboardChar ()
return GetKeyboardChar (nullptr);
}
/*
inline void Sleep ()
{
__asm
{
mov al, 0
mov ah, 0x86
// Sleep for 250 milliseconds = 250 000 microseconds = 0x0003D090
mov cx, 0x0003
mov dx, 0xD090
int 0x15
}
}
*/
byte GetKeyboardChar (byte *scanCode)
{
// Work around potential BIOS bugs (Windows boot manager polls the keystroke buffer)
while (!IsKeyboardCharAvailable());
while (!IsKeyboardCharAvailable())
{
// reduce CPU usage by halting CPU until the next external interrupt is fired
__asm
{
hlt
}
}
byte asciiCode;
byte scan;