forked from KolibriOS/kolibrios
61 system function.
git-svn-id: svn://kolibrios.org@1497 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
229210896d
commit
c30c9e5b52
@ -163,7 +163,7 @@ iglobal
|
|||||||
dd file_system ; 58-Common file system interface
|
dd file_system ; 58-Common file system interface
|
||||||
dd 0
|
dd 0
|
||||||
dd 0
|
dd 0
|
||||||
dd sys_gs ; 61-Direct graphics access
|
dd 0
|
||||||
dd sys_pci ; 62-PCI functions
|
dd sys_pci ; 62-PCI functions
|
||||||
dd sys_msg_board ; 63-System message board
|
dd sys_msg_board ; 63-System message board
|
||||||
|
|
||||||
@ -234,7 +234,7 @@ iglobal
|
|||||||
dd cross_order ; 58-Common file system interface
|
dd cross_order ; 58-Common file system interface
|
||||||
dd undefined_syscall ; 59-reserved
|
dd undefined_syscall ; 59-reserved
|
||||||
dd sys_IPC ; 60-Inter Process Communication
|
dd sys_IPC ; 60-Inter Process Communication
|
||||||
dd cross_order ; 61-Direct graphics access
|
dd sys_gs ; 61-Direct graphics access
|
||||||
dd cross_order ; 62-PCI functions
|
dd cross_order ; 62-PCI functions
|
||||||
dd cross_order ; 63-System message board
|
dd cross_order ; 63-System message board
|
||||||
dd sys_resize_app_memory ; 64-Resize application memory usage
|
dd sys_resize_app_memory ; 64-Resize application memory usage
|
||||||
|
@ -4569,35 +4569,47 @@ sys_process_def:
|
|||||||
mov [esp+32], edx
|
mov [esp+32], edx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; 61 sys function. ;;
|
||||||
|
;; in eax=61,ebx in [1..3] ;;
|
||||||
|
;; out eax ;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
iglobal
|
||||||
|
align 4
|
||||||
|
f61call:
|
||||||
|
dd sys_gs.1 ; resolution
|
||||||
|
dd sys_gs.2 ; bits per pixel
|
||||||
|
dd sys_gs.3 ; bytes per scanline
|
||||||
|
endg
|
||||||
|
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
|
|
||||||
sys_gs: ; direct screen access
|
sys_gs: ; direct screen access
|
||||||
|
dec ebx
|
||||||
|
cmp ebx,2
|
||||||
|
ja .not_support
|
||||||
|
jmp dword [f61call+ebx*4]
|
||||||
|
.not_support:
|
||||||
|
or [esp+32],dword -1
|
||||||
|
ret
|
||||||
|
|
||||||
cmp eax,1 ; resolution
|
|
||||||
jne no_gs1
|
.1: ; resolution
|
||||||
mov eax,[Screen_Max_X]
|
mov eax,[Screen_Max_X]
|
||||||
shl eax,16
|
shl eax,16
|
||||||
mov ax,[Screen_Max_Y]
|
mov ax,[Screen_Max_Y]
|
||||||
add eax,0x00010001
|
add eax,0x00010001
|
||||||
mov [esp+36],eax
|
mov [esp+32],eax
|
||||||
ret
|
ret
|
||||||
no_gs1:
|
.2: ; bits per pixel
|
||||||
|
|
||||||
cmp eax,2 ; bits per pixel
|
|
||||||
jne no_gs2
|
|
||||||
movzx eax,byte [ScreenBPP]
|
movzx eax,byte [ScreenBPP]
|
||||||
mov [esp+36],eax
|
mov [esp+32],eax
|
||||||
ret
|
ret
|
||||||
no_gs2:
|
.3: ; bytes per scanline
|
||||||
|
|
||||||
cmp eax,3 ; bytes per scanline
|
|
||||||
jne no_gs3
|
|
||||||
mov eax,[BytesPerScanLine]
|
mov eax,[BytesPerScanLine]
|
||||||
mov [esp+36],eax
|
mov [esp+32],eax
|
||||||
ret
|
|
||||||
no_gs3:
|
|
||||||
|
|
||||||
or [esp+36],dword -1
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user