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 " ¤®  ¢â®¬ â¨ç¥áª®£® ¯à®¤®«¦¥­¨ï",13,10,0 db " ¤®  ¢â®¬ â¨ç¥áª®£® ¯à®¤®«¦¥­¨ï",13,10,0
current_cfg_msg db "’¥ªã騥 ­ áâனª¨:",13,10,0 current_cfg_msg db "’¥ªã騥 ­ áâனª¨:",13,10,0
curvideo_msg db " [a] ‚¨¤¥®à¥¦¨¬: ",0 curvideo_msg db " [a] ‚¨¤¥®à¥¦¨¬: ",0
modevesa20 db " á LFB",0 ;modevesa20 db " á 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 "‡ ¯®¬­¨âì ⥪ã騥 ­ áâனª¨? [y/n]: ",0 save_quest db "‡ ¯®¬­¨âì ⥪ã騥 ­ áâனª¨? [y/n]: ",0
loader_block_error db "Žè¨¡ª  ¢ ¤ ­­ëå ­ ç «ì­®£® § £àã§ç¨ª , ¯à®¤®«¦¥­¨¥ ­¥¢®§¬®¦­®.",0 loader_block_error db "Žè¨¡ª  ¢ ¤ ­­ëå ­ ç «ì­®£® § £àã§ç¨ª , ¯à®¤®«¦¥­¨¥ ­¥¢®§¬®¦­®.",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,' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ¿',13,10,0 _st db 186,' ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ¿',13,10,0
_r1 db 186,' ³ 320x200 EGA/CGA 256 梥⮢ ³ ³',13,10,0 _r1 db 186,' ³ 320x200 EGA/CGA 256 梥⮢ ³ ³',13,10,0
@ -101,16 +88,6 @@ _r2 db 186,'
_rs db 186,' ³ ????x????@?? SVGA VESA ³ ³',13,10,0 _rs db 186,' ³ ????x????@?? SVGA VESA ³ ³',13,10,0
_bt db 186,' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÙ',13,10,0 _bt db 186,' ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÙ',13,10,0
;_tl db 186,' ÚÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄ¿',13,10,\
; 186,' ³ 4 ³ 8 ³ 15 ³ 16 ³ 24 ³ 32 ³',13,10,\
; 186,' ÚÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄ¿',13,10,0
;_rs db 186,' ³ ????x???? ³ ³ ³ ³ ³ ³ ³Û³',13,10,0
;_bt db 186,' ÀÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÙ',13,10,0
;_sel1 db 0x1A,0
;_sel2 db 0x1B,0
;_selc db ' ',0
remark1 db "‡­ ç¥­¨ï ¯® 㬮«ç ­¨î ¢ë¡à ­ë ¤«ï 㤮¡á⢠ ¡®«ì設á⢠, ­® ­¥ ¢á¥å.",0 remark1 db "‡­ ç¥­¨ï ¯® 㬮«ç ­¨î ¢ë¡à ­ë ¤«ï 㤮¡á⢠ ¡®«ì設á⢠, ­® ­¥ ¢á¥å.",0
remark2 db "…᫨ ã ‚ á LCD-¬®­¨â®à, ®âª«îç¨â¥ VRR ¢ ¯ã­ªâ¥ [c] - ®­ ‚ ¬ ­¥ ­ã¦¥­.",0 remark2 db "…᫨ ã ‚ á LCD-¬®­¨â®à, ®âª«îç¨â¥ VRR ¢ ¯ã­ªâ¥ [c] - ®­ ‚ ¬ ­¥ ­ã¦¥­.",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)