diff --git a/reactos/boot/freeldr/bootsect/isoboot.asm b/reactos/boot/freeldr/bootsect/isoboot.asm index 0c97f4236ea..054fc5bee78 100644 --- a/reactos/boot/freeldr/bootsect/isoboot.asm +++ b/reactos/boot/freeldr/bootsect/isoboot.asm @@ -898,41 +898,23 @@ kaboom: sti mov si, err_bootfailed call writestr - call getchar + xor ax, ax ; Wait for keypress + int 16h cli mov word [BIOS_magic], 0 ; Cold reboot jmp 0F000h:0FFF0h ; Reset vector address -getchar: -.again: - mov ah, 1 ; Poll keyboard - int 16h - jz .again -.kbd: - xor ax, ax ; Get keyboard input - int 16h -.func_key: - ret - ; ; pollchar_and_empty: check if we have an input character pending (ZF = 0) and empty the input buffer afterwards ; pollchar_and_empty: pushad - mov ah, 1 ; Poll keyboard + mov ah, 1 ; Did the user press a key? int 16h - jz .end -.empty_buffer: - mov ah, 0 ; Read from keyboard + jz .end ; No, then we're done + mov ah, 0 ; Otherwise empty the buffer by reading it int 16h - - mov ah, 1 ; Poll keyboard again - int 16h - jz .buffer_emptied - jmp .empty_buffer -.buffer_emptied: - and ax, ax ; ZF = 0 .end: popad ret