diff --git a/kernel/trunk/boot/bootcode.inc b/kernel/trunk/boot/bootcode.inc index 4ef1315dc4..bc45b6c13b 100644 --- a/kernel/trunk/boot/bootcode.inc +++ b/kernel/trunk/boot/bootcode.inc @@ -806,6 +806,9 @@ end if .change_a: call clear_vmodes_table ;clear vmodes_table + + mov si, word [cursor_pos] + mov word [cursor_pos_old], si .loops: call draw_vmodes_table _setcursor 25,0 ; out of screen @@ -816,8 +819,12 @@ end if mov si, word [cursor_pos] cmp al, 27 ; If ESC was pressed, do not change the value - jz .esc_pressed ; Just exit the resolution selection box - + jnz @f ; Just exit the resolution selection box + + mov si, word [cursor_pos_old] + mov word [cursor_pos], si + jmp .esc_pressed +@@: cmp ah, 0x48;x,0x48E0 ; up jne .down cmp si, modes_table diff --git a/kernel/trunk/boot/bootvesa.inc b/kernel/trunk/boot/bootvesa.inc index 985305849a..724b2ba0c0 100644 --- a/kernel/trunk/boot/bootvesa.inc +++ b/kernel/trunk/boot/bootvesa.inc @@ -79,6 +79,7 @@ virtual at $A000 modes_table: end virtual cursor_pos dw 0 ;временное хранение курсора. +cursor_pos_old dw 0 home_cursor dw 0 ;current shows rows a table end_cursor dw 0 ;end of position current shows rows a table scroll_start dw 0 ;start position of scroll bar