lo-res vesa modes excluded

git-svn-id: svn://kolibrios.org@1508 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Artem Jerdev (art_zh) 2010-06-28 11:46:11 +00:00
parent 1b582176be
commit 090643ac3f
10 changed files with 159 additions and 331 deletions

View File

@ -1,6 +1,6 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;; ;; ;;
;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;; ;; Copyright (C) KolibriOS team 2004-2010. All rights reserved. ;;
;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa ;; ;; Copyright (C) MenuetOS 2000-2004 Ville Mikael Turjanmaa ;;
;; Distributed under terms of the GNU General Public License ;; ;; Distributed under terms of the GNU General Public License ;;
;; ;; ;; ;;
@ -196,13 +196,6 @@ if lang eq ru
mov ax, 1100h mov ax, 1100h
int 10h int 10h
; End set VGA russian font ; End set VGA russian font
else if lang eq et
mov bp, ET_FNT ; ET_FNT1
mov bx, 1000h ;
mov cx, 255 ; 256 symbols
xor dx, dx ; 0 - position of first symbol
mov ax, 1100h
int 10h
end if end if
; draw frames ; draw frames
@ -245,21 +238,21 @@ dfl1:
; TEST FOR 386+ ; TEST FOR 386+
jmp cpugood
mov bx, 0x4000 ; mov bx, 0x4000
pushf ; pushf
pop ax ; pop ax
mov dx, ax ; mov dx, ax
xor ax, bx ; xor ax, bx
push ax ; push ax
popf ; popf
pushf ; pushf
pop ax ; pop ax
and ax, bx ; and ax, bx
and dx, bx ; and dx, bx
cmp ax, dx ; cmp ax, dx
jnz cpugood ; jnz cpugood
mov si, not386 ; mov si, not386
sayerr: sayerr:
call print call print
jmp $ jmp $
@ -315,32 +308,32 @@ sayerr:
.nopci: .nopci:
; \end{Mario79} ; \end{Mario79}
mov al, 0xf6 ; Ñáðîñ êëàâèàòóðû, ðàçðåøèòü ñêàíèðîâàíèå ; mov al, 0xf6 ; Ñáðîñ êëàâèàòóðû, ðàçðåøèòü ñêàíèðîâàíèå
out 0x60, al ; out 0x60, al
xor cx, cx ; xor cx, cx
wait_loop: ; variant 2 ;wait_loop: ; variant 2
; reading state of port of 8042 controller ; reading state of port of 8042 controller
in al, 64h ; in al, 64h
and al, 00000010b ; ready flag ; and al, 00000010b ; ready flag
; wait until 8042 controller is ready ; wait until 8042 controller is ready
loopnz wait_loop ; loopnz wait_loop
;;;/diamond today 5.02.2008 ;;;/diamond 5.02.2008
; set keyboard typematic rate & delay ; set keyboard typematic rate & delay
mov al, 0xf3 ; mov al, 0xf3
out 0x60, al ; out 0x60, al
xor cx, cx ; xor cx, cx
@@: ;@@:
in al, 64h ; in al, 64h
test al, 2 ; test al, 2
loopnz @b ; loopnz @b
mov al, 0 ; mov al, 0
out 0x60, al ; out 0x60, al
xor cx, cx ; xor cx, cx
@@: ;@@:
in al, 64h ; in al, 64h
test al, 2 ; test al, 2
loopnz @b ; loopnz @b
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; --------------- APM --------------------- ; --------------- APM ---------------------
and word [es:0x9044], 0 ; ver = 0.0 (APM not found) and word [es:0x9044], 0 ; ver = 0.0 (APM not found)

View File

@ -187,15 +187,15 @@ calc_vmodes_table:
lfs si, [es:vi.VideoModePtr] lfs si, [es:vi.VideoModePtr]
mov bx,modes_table mov bx,modes_table
;save no vesa mode of work 320x200, EGA/CGA 256 梥⮢ and 640x480, VGA 16 梥⮢ ;save no vesa mode of work 320x200, EGA/CGA 256 colors and 640x480, VGA 16 cols
mov word [es:bx],640 ; mov word [es:bx],640
mov word [es:bx+2],480 ; mov word [es:bx+2],480
mov word [es:bx+6],0x13 ; mov word [es:bx+6],0x13
mov word [es:bx+10],640 ; mov word [es:bx+10],640
mov word [es:bx+12],480 ; mov word [es:bx+12],480
mov word [es:bx+16],0x12 ; mov word [es:bx+16],0x12
add bx,20 ; add bx,20
.next_mode: .next_mode:
mov cx,word [fs:si] ; mode number mov cx,word [fs:si] ; mode number
cmp cx,-1 cmp cx,-1
@ -215,23 +215,12 @@ calc_vmodes_table:
test [es:mi.ModeAttributes],10000000b ;LFB ? test [es:mi.ModeAttributes],10000000b ;LFB ?
jz @f jz @f
cmp [es:mi.BitsPerPixel], 24 ;It show only videomodes to have support 24 and 32 bpp cmp [es:mi.BitsPerPixel], 32 ;to show only 32 bpp videomodes
jb @f jb @f
; cmp [es:mi.BitsPerPixel],16
; jne .l0
; cmp [es:mi.GreenMaskSize],5
; jne .l0
; mov [es:mi.BitsPerPixel],15
.l0: .l0:
cmp [es:mi.XRes],640 cmp [es:mi.XRes],800 ; only 800x600 and higher
jb @f jb @f
cmp [es:mi.YRes],480
jb @f
; cmp [es:mi.BitsPerPixel],8
; jb @f
mov ax,[es:mi.XRes] mov ax,[es:mi.XRes]
mov [es:bx+0],ax ; +0[2] : resolution X mov [es:bx+0],ax ; +0[2] : resolution X
@ -257,46 +246,6 @@ calc_vmodes_table:
mov word[es:bx],-1 ;end video table mov word[es:bx],-1 ;end video table
mov word[end_cursor],bx ;save end cursor position mov word[end_cursor],bx ;save end cursor position
;;;;;;;;;;;;;;;;;;
;Sort array
; mov si,modes_table
;.new_mode:
; mov ax,word [es:si]
; cmp ax,-1
; je .exxit
; add ax,word [es:si+2]
; add ax,word [es:si+8]
; mov bp,si
;.again:
; add bp,12
; mov bx,word [es:bp]
; cmp bx,-1
; je .exit
; add bx,word [es:bp+2]
; add bx,word [es:bp+8]
;
; cmp ax,bx
; ja .loops
; jmp .again
;.loops:
; push dword [es:si]
; push dword [es:si+4]
; push dword [es:si+8]
; push dword [es:bp]
; push dword [es:bp+4]
; push dword [es:bp+8]
;
; pop dword [es:si+8]
; pop dword [es:si+4]
; pop dword [es:si]
; pop dword [es:bp+8]
; pop dword [es:bp+4]
; pop dword [es:bp]
; jmp .new_mode
;
;.exit: add si,12
; jmp .new_mode
;.exxit:
popad popad
ret ret
@ -366,18 +315,10 @@ check_first_parm:
call .loops call .loops
test ax,ax test ax,ax
jz .ok_found_mode jz .ok_found_mode
mov ax,640
mov bx,480
mov si,modes_table
call .loops
test ax,ax
jz .ok_found_mode
mov si,modes_table mov si,modes_table
jmp .ok_found_mode jmp .ok_found_mode
.no_zero: .no_zero:
mov bp,word [number_vm] mov bp,word [number_vm]
cmp bp,word [es:si+6] cmp bp,word [es:si+6]
@ -685,14 +626,14 @@ set_vmode:
mov word [es:0x900C],bx ; resolution Y mov word [es:0x900C],bx ; resolution Y
mov word [es:0x9008],cx ; number of mode mov word [es:0x9008],cx ; number of mode
cmp cx,0x12 ; cmp cx,0x12
je .mode0x12_0x13 ; je .mode0x12_0x13
cmp cx,0x13 ; cmp cx,0x13
je .mode0x12_0x13 ; je .mode0x12_0x13
cmp byte [s_vesa.ver],'2' ; cmp byte [s_vesa.ver],'2'
jb .vesa12 ; jb .vesa12
; VESA 2 and Vesa 3 ; VESA 2 and Vesa 3
@ -708,48 +649,43 @@ set_vmode:
mov ax, [es:di+BytesPerLine] mov ax, [es:di+BytesPerLine]
mov [es:0x9001], ax mov [es:0x9001], ax
; BPP ; BPP
cmp [es:mi.BitsPerPixel],16 ; cmp [es:mi.BitsPerPixel],16
jne .l0 ; jne .l0
cmp [es:mi.GreenMaskSize],5 ; cmp [es:mi.GreenMaskSize],5
jne .l0 ; jne .l0
mov [es:mi.BitsPerPixel],15 ; mov [es:mi.BitsPerPixel],15
.l0: .l0:
mov al, byte [es:di+0x19] mov al, byte [es:di+0x19]
mov [es:0x9000], al mov [es:0x9000], al
jmp .exit jmp .exit
.mode0x12_0x13: ;.mode0x12_0x13:
mov byte [es:0x9000], 32 ; mov byte [es:0x9000], 32
or dword [es:0x9018], 0xFFFFFFFF; 0x800000 ; or dword [es:0x9018], 0xFFFFFFFF; 0x800000
; VESA 1.2 PM BANK SWITCH ADDRESS ; VESA 1.2 PM BANK SWITCH ADDRESS
.vesa12: ;.vesa12:
mov ax,0x4f0A ; mov ax,0x4f0A
xor bx,bx ; xor bx,bx
int 0x10 ; int 0x10
xor eax,eax ; xor eax,eax
xor ebx,ebx ; xor ebx,ebx
mov ax,es ; mov ax,es
shl eax,4 ; shl eax,4
mov bx,di ; mov bx,di
add eax,ebx ; add eax,ebx
movzx ebx,word[es:di] ; movzx ebx,word[es:di]
add eax,ebx ; add eax,ebx
push 0x0000 ; push 0x0000
pop es ; pop es
mov [es:0x9014],eax ; mov [es:0x9014],eax
.exit: .exit:
ret ret
; mov dword[es:0x9018],0x000A0000
; ret
;=============================================================================
;=============================================================================
;============================================================================= ;=============================================================================

View File

@ -1,12 +1,9 @@
@echo off @echo off
cls
set languages=en ru ge et
set drivers=sound sis infinity ensoniq ps2mouse com_mouse uart ati2d vmode
set targets=all kernel drivers skins clean
call :Check_Target %1 set languages=en ru
for %%a in (all kernel) do if %%a==%target% call :Check_Lang %2
call :Target_%target% call :Check_Lang en
call :Target_kernel
if ERRORLEVEL 0 goto Exit_OK if ERRORLEVEL 0 goto Exit_OK
@ -31,19 +28,6 @@ goto :eof
goto Check_Lang_loop goto Check_Lang_loop
goto :eof goto :eof
:Check_Target
set res=%1
:Check_Target_loop
for %%a in (%targets%) do if %%a==%res% set target=%res%
if defined target goto :eof
echo Target '%res%' is incorrect
echo Enter valid target [ %targets% ]:
set /P res=">
goto Check_Target_loop
goto :eof
:Target_kernel :Target_kernel
echo *** building kernel with language '%lang%' ... echo *** building kernel with language '%lang%' ...
@ -56,87 +40,14 @@ goto :eof
goto :eof goto :eof
:Target_all
call :Target_kernel
call :Target_drivers
call :Target_skins
goto :eof
:Target_drivers
echo *** building drivers ...
if not exist bin\drivers mkdir bin\drivers
cd drivers
for %%a in (%drivers%) do (
fasm -m 65536 %%a.asm ..\bin\drivers\%%a.obj
if not %errorlevel%==0 goto :Error_FasmFailed
)
cd ..
move bin\drivers\vmode.obj bin\drivers\vmode.mdr
kpack >nul 2>&1
if %errorlevel%==9009 goto :Error_KpackFailed
echo *
echo ##############################################
echo *
echo Kpack KolibriOS drivers?
echo *
set /P res=[y/n]?
if "%res%"=="y" (
echo *
echo Compressing system
echo *
for %%a in (bin\drivers\*.obj) do (
echo ================== kpack %%a
kpack %%a
if not %errorlevel%==0 goto :Error_KpackFailed
)
)
goto :eof
:Target_skins
echo *** building skins ...
if not exist bin\skins mkdir bin\skins
cd skin
fasm -m 65536 default.asm ..\bin\skins\default.skn
if not %errorlevel%==0 goto :Error_FasmFailed
cd ..
goto :eof
:Target_clean
echo *** cleaning ...
rmdir /S /Q bin
goto :Exit_OK
:Error_FasmFailed :Error_FasmFailed
echo error: fasm execution failed echo error: fasm execution failed
erase lang.inc >nul 2>&1 erase lang.inc
echo.
pause
exit 1
:Error_KpackFailed
echo *** NOTICE ***
echo If you want to pack all applications you may
echo place "kpack" in accessible directory or system %PATH%.
echo You can get this tool from KolibriOS distribution kit.
pause pause
exit 1 exit 1
:Exit_OK :Exit_OK
echo. echo all operations has been done
echo all operations have been done
pause pause
exit 0 exit 0

View File

@ -28,14 +28,13 @@ $Revision: 1463 $
; ;
;*************************************************************************** ;***************************************************************************
mmio_pcie_cfg_addr dd 0x0 ; intel pcie space may be defined here mmio_pcie_cfg_addr dd 0x00000000 ; pcie space may be defined here
mmio_pcie_cfg_lim dd 0x0 ; upper pcie space address mmio_pcie_cfg_lim dd 0x000FFFFF ; upper pcie space address
align 4 align 4
pci_ext_config: pci_ext_config:
mov ebx, [mmio_pcie_cfg_addr] mov ebx, [mmio_pcie_cfg_addr]
or ebx,ebx or ebx,ebx
jz @f jz @f
@ -99,8 +98,8 @@ pci_ext_config:
.pcie_cfg_mapped: .pcie_cfg_mapped:
; -- glad to have the extended PCIe config field found ; -- glad to have the extended PCIe config field found
; mov esi, boot_pcie_ok mov esi, boot_pcie_ok
; call boot_log call boot_log
ret ; <<<<<<<<<<< OK >>>>>>>>>>> ret ; <<<<<<<<<<< OK >>>>>>>>>>>
.no_pcie_cfg: .no_pcie_cfg:
@ -112,7 +111,7 @@ pci_ext_config:
cmp bl, 0xC0 ; MMIO regs lay below this offset cmp bl, 0xC0 ; MMIO regs lay below this offset
jb .check_HT_mmio jb .check_HT_mmio
.pcie_failed: .pcie_failed:
; mov esi, boot_pcie_fail mov esi, boot_pcie_fail
; call boot_log call boot_log
ret ; <<<<<<<<< FAILURE >>>>>>>>> ret ; <<<<<<<<< FAILURE >>>>>>>>>

View File

@ -378,7 +378,6 @@ pci_write_reg_err:
dec eax dec eax
ret ret
if defined mmio_pci_addr ; must be set above
;*************************************************************************** ;***************************************************************************
; Function ; Function
; pci_mmio_init ; pci_mmio_init
@ -388,15 +387,11 @@ if defined mmio_pci_addr ; must be set above
; Returns eax = phys. address of user-accessible DMA block ; Returns eax = phys. address of user-accessible DMA block
; Error codes ; Error codes
; eax = -1 : PCI user access blocked, ; eax = -1 : PCI user access blocked,
; eax = -2 : device not registered for uMMIO service
; eax = -3 : user heap initialization failure ; eax = -3 : user heap initialization failure
;*************************************************************************** ;***************************************************************************
pci_mmio_init: pci_mmio_init:
cmp bx, [mmio_pci_addr] mov [mmio_pci_addr],bx
jz @f
mov eax,-2
ret
@@:
call init_heap ; (if not initialized yet) call init_heap ; (if not initialized yet)
or eax,eax or eax,eax
jz @f jz @f
@ -521,8 +516,6 @@ pci_mmio_unmap:
stdcall user_free, ebx stdcall user_free, ebx
ret ret
end if
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
uglobal uglobal
align 4 align 4

View File

@ -394,11 +394,11 @@ proc init_userDMA
add eax, 0x007FFFF0 add eax, 0x007FFFF0
and eax, 0xFF800000 ; align at 8M boundary and eax, 0xFF800000 ; align at 8M boundary
mov [UserDMAaddr], eax mov [UserDMAaddr], eax
or eax, PG_UW + PG_NOCACHE ; or eax, PG_UW + PG_NOCACHE
mov ebx, USER_DMA_BUFFER ; mov ebx, USER_DMA_BUFFER
mov ecx, 2048 ; 8M, to be sure ; mov ecx, 2048 ; 8M, to be sure
call commit_pages ; call commit_pages
mov eax, [UserDMAaddr] ; mov eax, [UserDMAaddr]
or eax, PG_LARGE + PG_UW + PG_NOCACHE or eax, PG_LARGE + PG_UW + PG_NOCACHE
mov ebx, sys_pgdir + (USER_DMA_BUFFER shr 20) mov ebx, sys_pgdir + (USER_DMA_BUFFER shr 20)
mov [ebx], eax mov [ebx], eax

View File

@ -67,6 +67,8 @@ keymap_alt:
boot_pal_vga db 'Setting VGA 640x480 palette',0 boot_pal_vga db 'Setting VGA 640x480 palette',0
boot_failed db 'Failed to start first app',0 boot_failed db 'Failed to start first app',0
boot_mtrr db 'Setting MTRR',0 boot_mtrr db 'Setting MTRR',0
boot_pcie_ok db 'PCIe config set OK',0
boot_pcie_fail db 'PCIe config XXX failed XXX',0
if preboot_blogesc if preboot_blogesc
boot_tasking db 'All set - press ESC to start',0 boot_tasking db 'All set - press ESC to start',0
end if end if

View File

@ -127,14 +127,9 @@ include "boot/preboot.inc"
if lang eq en if lang eq en
include "boot/booteng.inc" ; english system boot messages include "boot/booteng.inc" ; english system boot messages
else if lang eq ru else
include "boot/bootru.inc" ; russian system boot messages include "boot/bootru.inc" ; russian system boot messages
include "boot/ru.inc" ; Russian font include "boot/ru.inc" ; Russian font
else if lang eq et
include "boot/bootet.inc" ; estonian system boot messages
include "boot/et.inc" ; Estonian font
else
include "boot/bootge.inc" ; german system boot messages
end if end if
include "boot/bootcode.inc" ; 16 bit system boot code include "boot/bootcode.inc" ; 16 bit system boot code
@ -395,31 +390,31 @@ high_code:
mov eax,[BOOT_VAR+0x9018] mov eax,[BOOT_VAR+0x9018]
mov [LFBAddress],eax mov [LFBAddress],eax
cmp [SCR_MODE],word 0100000000000000b ;== cmp [SCR_MODE],word 0100000000000000b
jge setvesa20 ; jge setvesa20
cmp [SCR_MODE],word 0x13 ; cmp [SCR_MODE],word 0x13
je v20ga32 ; je v20ga32
mov [PUTPIXEL],dword Vesa12_putpixel24 ; Vesa 1.2 ; mov [PUTPIXEL],dword Vesa12_putpixel24 ; Vesa 1.2
mov [GETPIXEL],dword Vesa12_getpixel24 ; mov [GETPIXEL],dword Vesa12_getpixel24
cmp [ScreenBPP],byte 24 ; cmp [ScreenBPP],byte 24
jz ga24 ; jz ga24
mov [PUTPIXEL],dword Vesa12_putpixel32 ; mov [PUTPIXEL],dword Vesa12_putpixel32
mov [GETPIXEL],dword Vesa12_getpixel32 ; mov [GETPIXEL],dword Vesa12_getpixel32
ga24: ; ga24:
jmp v20ga24 ; jmp v20ga24
setvesa20: setvesa20:
mov [PUTPIXEL],dword Vesa20_putpixel24 ; Vesa 2.0 ; mov [PUTPIXEL],dword Vesa20_putpixel24 ; Vesa 2.0
mov [GETPIXEL],dword Vesa20_getpixel24 ; mov [GETPIXEL],dword Vesa20_getpixel24
cmp [ScreenBPP],byte 24 ; cmp [ScreenBPP],byte 24
jz v20ga24 ; jz v20ga24
v20ga32: v20ga32:
mov [PUTPIXEL],dword Vesa20_putpixel32 mov [PUTPIXEL],dword Vesa20_putpixel32
mov [GETPIXEL],dword Vesa20_getpixel32 mov [GETPIXEL],dword Vesa20_getpixel32
v20ga24: ; v20ga24:
cmp [SCR_MODE],word 0x12 ; 16 C VGA 640x480 ; cmp [SCR_MODE],word 0x12 ; 16 C VGA 640x480
jne no_mode_0x12 ; jne no_mode_0x12
mov [PUTPIXEL],dword VGA_putpixel ; mov [PUTPIXEL],dword VGA_putpixel
mov [GETPIXEL],dword Vesa20_getpixel32 ; mov [GETPIXEL],dword Vesa20_getpixel32
no_mode_0x12: no_mode_0x12:
; -------- Fast System Call init ---------- ; -------- Fast System Call init ----------
@ -814,19 +809,19 @@ end if
; PALETTE FOR 320x200 and 640x480 16 col ; PALETTE FOR 320x200 and 640x480 16 col
cmp [SCR_MODE],word 0x12 ; cmp [SCR_MODE],word 0x12
jne no_pal_vga ; jne no_pal_vga
mov esi,boot_pal_vga ; mov esi,boot_pal_vga
call boot_log ; call boot_log
call paletteVGA ; call paletteVGA
no_pal_vga: ; no_pal_vga:
cmp [SCR_MODE],word 0x13 ; cmp [SCR_MODE],word 0x13
jne no_pal_ega ; jne no_pal_ega
mov esi,boot_pal_ega ; mov esi,boot_pal_ega
call boot_log ; call boot_log
call palette320x200 ; call palette320x200
no_pal_ega: ; no_pal_ega:
; LOAD DEFAULT SKIN ; LOAD DEFAULT SKIN
@ -1023,8 +1018,8 @@ boot_log:
inc edi inc edi
call dtext call dtext
mov [novesachecksum],1000 ; mov [novesachecksum],1000
call checkVga_N13 ; call checkVga_N13
popad popad
@ -1041,7 +1036,7 @@ osloop:
call window_check_events call window_check_events
call mouse_check_events call mouse_check_events
call checkmisc call checkmisc
call checkVga_N13 ; call checkVga_N13
call stack_handler call stack_handler
call checkidle call checkidle
call check_fdd_motor_status call check_fdd_motor_status
@ -3801,9 +3796,9 @@ drawbackground:
dbrv12: dbrv12:
cmp [SCR_MODE],word 0100000000000000b cmp [SCR_MODE],word 0100000000000000b
jge dbrv20 jge dbrv20
cmp [SCR_MODE],word 0x13 ; cmp [SCR_MODE],word 0x13
je dbrv20 ; je dbrv20
call vesa12_drawbackground ; call vesa12_drawbackground
dec [mouse_pause] dec [mouse_pause]
call [draw_pointer] call [draw_pointer]
ret ret
@ -3843,16 +3838,14 @@ sys_putimage:
mov ebp, putimage_get24bpp mov ebp, putimage_get24bpp
mov esi, putimage_init24bpp mov esi, putimage_init24bpp
sys_putimage_bpp: sys_putimage_bpp:
; call [disable_mouse] ; this will be done in xxx_putimage ; cmp [SCR_MODE], word 0x12
; mov eax, vga_putimage ; jz @f ;.doit
cmp [SCR_MODE], word 0x12 ; mov eax, vesa12_putimage
jz @f ;.doit ; cmp [SCR_MODE], word 0100000000000000b
mov eax, vesa12_putimage ; jae @f
cmp [SCR_MODE], word 0100000000000000b ; cmp [SCR_MODE], word 0x13
jae @f ; jnz .doit
cmp [SCR_MODE], word 0x13 ;@@:
jnz .doit
@@:
mov eax, vesa20_putimage mov eax, vesa20_putimage
.doit: .doit:
inc [mouse_pause] inc [mouse_pause]
@ -4140,14 +4133,14 @@ __sys_drawbar:
cmp [SCR_MODE],word 0x12 cmp [SCR_MODE],word 0x12
je dbv20 je dbv20
sdbv20: sdbv20:
cmp [SCR_MODE],word 0100000000000000b ; cmp [SCR_MODE],word 0100000000000000b
jge dbv20 ; jge dbv20
cmp [SCR_MODE],word 0x13 ; cmp [SCR_MODE],word 0x13
je dbv20 ; je dbv20
call vesa12_drawbar ; call vesa12_drawbar
dec [mouse_pause] ; dec [mouse_pause]
call [draw_pointer] ; call [draw_pointer]
ret ; ret
dbv20: dbv20:
call vesa20_drawbar call vesa20_drawbar
dec [mouse_pause] dec [mouse_pause]

View File

@ -247,7 +247,7 @@ include "sound/playnote.inc" ; player Note for Speaker PC
; display ; display
include "video/vesa12.inc" ; Vesa 1.2 functions ;include "video/vesa12.inc" ; Vesa 1.2 functions
include "video/vesa20.inc" ; Vesa 2.0 functions include "video/vesa20.inc" ; Vesa 2.0 functions
include "video/vga.inc" ; VGA 16 color functions include "video/vga.inc" ; VGA 16 color functions
include "video/cursors.inc" ; cursors functions include "video/cursors.inc" ; cursors functions

View File

@ -123,8 +123,8 @@
; FE08 dword screen y multiplier ; FE08 dword screen y multiplier
; FE0C dword screen mode ; FE0C dword screen mode
; FE10 -> FE7F free (112) ; FE10 -> FE7F free (112)
; FE80 dword address of LFB in physical ; FE80 dword physical address of LFB
; FE84 dword address of applications memory start in physical ? ; FE84 dword physical address of user-accessible static system buffer
; FE88 dword address of button list ; FE88 dword address of button list
; FE8C dword memory to use ; FE8C dword memory to use
; FE90 -> FEFF free (112) ; FE90 -> FEFF free (112)
@ -253,9 +253,10 @@
; 0x80800000 -> kernel heap ; 0x80800000 -> kernel heap
; 0x80FFFFFF heap min limit ; 0x80FFFFFF heap min limit
; 0xFDBFFFFF heap max limit ; 0xEFFFFFFF heap max limit
; 0xF0000000 -> 0xF1FFFFFF PCI-express extended config space ; 0xF0000000 -> 0xF1FFFFFF PCI-express extended config space
; 0xFD000000 -> 0xFD3FFFFF static system buffer 4Mb
; 0xFDC00000 -> 0xFDFFFFFF page tables 4Mb ; 0xFDC00000 -> 0xFDFFFFFF page tables 4Mb
; 0xFE000000 -> 0xFFFFFFFF LFB 32Mb ; 0xFE000000 -> 0xFFFFFFFF LFB 32Mb
; 0xFE000000 -> 0xFE7FFFFF application available LFB 8Mb ; 0xFE000000 -> 0xFE7FFFFF application available LFB 8Mb