blue screen: save selected resolution instead of VESA mode number (thanks to Serge)

git-svn-id: svn://kolibrios.org@746 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Alexey Teplov (
2008-02-18 11:37:45 +00:00
parent bb54223b35
commit 89d030e950
4 changed files with 29 additions and 34 deletions

View File

@@ -582,7 +582,13 @@ cfgmanager:
.enter: cmp al,0x0D;x,0x1C0D ; enter .enter: cmp al,0x0D;x,0x1C0D ; enter
jne .loops jne .loops
push word [cursor_pos] push word [cursor_pos]
pop word [preboot_graph] ;save choose pop bp
push word [es:bp]
pop word [x_save]
push word [es:bp+2]
pop word [y_save]
mov word [preboot_graph],bp ;save choose
jmp .d jmp .d
.change_b: .change_b:

View File

@@ -58,8 +58,8 @@ time_str db " 5 ᥪ㭤 "
db " <20><> <20><><EFBFBD><E2AEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AAAE> <20><EFBFBD><E0AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",13,10,0 db " <20><> <20><><EFBFBD><E2AEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1AAAE> <20><EFBFBD><E0AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",13,10,0
current_cfg_msg db "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><E0AEA9>:",13,10,0 current_cfg_msg db "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><E0AEA9>:",13,10,0
curvideo_msg db " [a] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A5A6>: ",0 curvideo_msg db " [a] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A5A6>: ",0
modevesa20 db " <20> LFB",0 ;modevesa20 db " <20> LFB",0
modevesa12 db ", VESA 1.2 Bnk",0 ;modevesa12 db ", VESA 1.2 Bnk",0
mode0 db "320x200, EGA/CGA 256 梥⮢",13,10,0 mode0 db "320x200, EGA/CGA 256 梥⮢",13,10,0
mode9 db "640x480, VGA 16 梥⮢",13,10,0 mode9 db "640x480, VGA 16 梥⮢",13,10,0
@@ -81,19 +81,6 @@ loading_msg db "
save_quest db "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><20><><EFBFBD><EFBFBD><EFBFBD><E0AEA9>? [y/n]: ",0 save_quest db "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><20><><EFBFBD><EFBFBD><EFBFBD><E0AEA9>? [y/n]: ",0
loader_block_error db "<EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>砫쭮<E7A0AB><ECADAE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><EFBFBD><E0AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.",0 loader_block_error db "<EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>砫쭮<E7A0AB><ECADAE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><EFBFBD><E0AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.",0
;_oem db 'oem: ',0
;db 5
;s_ven_intel db 'Intel'
;db 2
;s_ven_s3 db 'S3'
;;db 5
;s_ven_bochs db 'Bochs'
;db 8
;s_ven_vmware db 'V M ware'
;s_mode db " ????-????-?? (?) ",0
;s_mode1 db " 0640-0480-04 (a) 0320-0200-08 (b) ",13,10,0
_st db 186,' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ',13,10,0 _st db 186,' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ',13,10,0
_r1 db 186,' <20> 320x200 EGA/CGA 256 梥⮢ <20> <20>',13,10,0 _r1 db 186,' <20> 320x200 EGA/CGA 256 梥⮢ <20> <20>',13,10,0
@@ -101,16 +88,6 @@ _r2 db 186,'
_rs db 186,' <20> ????x????@?? SVGA VESA <20> <20>',13,10,0 _rs db 186,' <20> ????x????@?? SVGA VESA <20> <20>',13,10,0
_bt db 186,' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',13,10,0 _bt db 186,' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',13,10,0
;_tl db 186,' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ',13,10,\
; 186,' <20> 4 <20> 8 <20> 15 <20> 16 <20> 24 <20> 32 <20>',13,10,\
; 186,' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ',13,10,0
;_rs db 186,' <20> ????x???? <20> <20> <20> <20> <20> <20> <20>۳',13,10,0
;_bt db 186,' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',13,10,0
;_sel1 db 0x1A,0
;_sel2 db 0x1B,0
;_selc db ' ',0
remark1 db "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><><EFBFBD><E7A0AD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><><E3A4AE><20><><EFBFBD><EFBFBD><EFBFBD>⢠, <20><> <20><> <20><><EFBFBD><EFBFBD>.",0 remark1 db "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><><EFBFBD><E7A0AD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><><E3A4AE><20><><EFBFBD><EFBFBD><EFBFBD>⢠, <20><> <20><> <20><><EFBFBD><EFBFBD>.",0
remark2 db "<EFBFBD><20> <20><><EFBFBD> LCD-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><EFBFBD><E2AAAB><EFBFBD><EFBFBD><EFBFBD> VRR <20> <20><EFBFBD><E3ADAA> [c] - <20><> <20><><EFBFBD> <20><> <20><EFBFBD>.",0 remark2 db "<EFBFBD><20> <20><><EFBFBD> LCD-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><EFBFBD><E2AAAB><EFBFBD><EFBFBD><EFBFBD> VRR <20> <20><EFBFBD><E3ADAA> [c] - <20><> <20><><EFBFBD> <20><> <20><EFBFBD>.",0

View File

@@ -363,20 +363,29 @@ check_first_parm:
jz .ok_found_mode jz .ok_found_mode
mov si,modes_table mov si,modes_table
jmp .ok_found_mode
.no_zero:
mov ax,word [x_save]
mov bx,word [y_save]
mov si,modes_table
call .loops
test ax,ax
jz .ok_found_mode
; cmp ax,modes_table
; jb .zerro ;check on correct if bellow
; cmp ax,word [end_cursor]
; ja .zerro ;check on correct if anymore
.ok_found_mode: .ok_found_mode:
mov word [home_cursor],si mov word [home_cursor],si
; mov word [cursor_pos],si ; mov word [cursor_pos],si
mov word [preboot_graph],si mov word [preboot_graph],si
mov ax,si mov ax,si
.no_zero:
cmp ax,modes_table
jb .zerro ;check on correct if bellow
cmp ax,word [end_cursor]
ja .zerro ;check on correct if anymore
mov ecx,long_v_table mov ecx,long_v_table
.loop: add ax,size_of_step .loop: add ax,size_of_step
@@ -414,7 +423,7 @@ check_first_parm:
;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------
default_vmode: ;default_vmode:
;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------
draw_vmodes_table: draw_vmodes_table:

View File

@@ -17,7 +17,10 @@ display_modechg db 0 ; display mode change for text, yes/no (0 or 2)
display_atboot db 0 ; show boot screen messages ( 2-no ) display_atboot db 0 ; show boot screen messages ( 2-no )
preboot_graph db 0 ; graph mode preboot_graph dw 0 ; graph mode
x_save dw 0 ; x
y_save dw 0 ; y
;pixel_save dw 0 ; per to pixel
preboot_gprobe db 0 ; probe vesa3 videomodes (1-no, 2-yes) preboot_gprobe db 0 ; probe vesa3 videomodes (1-no, 2-yes)
preboot_vrrm db 0 ; use VRR_M (1-yes, 2- no) preboot_vrrm db 0 ; use VRR_M (1-yes, 2- no)
preboot_dma db 0 ; use DMA for access to HDD (1-always, 2-only for read, 3-never) preboot_dma db 0 ; use DMA for access to HDD (1-always, 2-only for read, 3-never)