forked from KolibriOS/kolibrios
Function 25 - put image area on the background layer
git-svn-id: svn://kolibrios.org@2509 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -145,7 +145,7 @@ iglobal
|
|||||||
dd sys_settime ; 22-setting date,time,clock and alarm-clock
|
dd sys_settime ; 22-setting date,time,clock and alarm-clock
|
||||||
dd sys_wait_event_timeout ; 23-TimeOutWaitForEvent
|
dd sys_wait_event_timeout ; 23-TimeOutWaitForEvent
|
||||||
dd syscall_cdaudio ; 24-PlayCdTrack,StopCd and GetCdPlaylist
|
dd syscall_cdaudio ; 24-PlayCdTrack,StopCd and GetCdPlaylist
|
||||||
dd undefined_syscall ; 25-reserved
|
dd syscall_putarea_backgr ; 25-Put Area to background
|
||||||
dd sys_getsetup ; 26-GetMidiBase,GetKeymap,GetShiftKeymap,.
|
dd sys_getsetup ; 26-GetMidiBase,GetKeymap,GetShiftKeymap,.
|
||||||
dd undefined_syscall ; 27-reserved
|
dd undefined_syscall ; 27-reserved
|
||||||
dd undefined_syscall ; 28-reserved
|
dd undefined_syscall ; 28-reserved
|
||||||
|
@@ -1506,6 +1506,26 @@ dd 1675
|
|||||||
* <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ন<EFBFBD><E0A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><><EFBFBD> ATAPI-<2D><><EFBFBD>ன<EFBFBD><E0AEA9><EFBFBD> (CD <20> DVD).
|
* <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ন<EFBFBD><E0A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><><EFBFBD> ATAPI-<2D><><EFBFBD>ன<EFBFBD><E0AEA9><EFBFBD> (CD <20> DVD).
|
||||||
* <20>ਬ<EFBFBD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 <><EFA2AB><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CD_tray.
|
* <20>ਬ<EFBFBD> <20>ᯮ<EFBFBD>짮<EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨 <><EFA2AB><EFBFBD><EFBFBD><EFBFBD> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CD_tray.
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
========== <20>㭪<EFBFBD><E3ADAA><EFBFBD> 25 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <> 䮭<>. ===============
|
||||||
|
======================================================================
|
||||||
|
<EFBFBD><EFBFBD>ࠬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||||
|
* eax = 25 - <20><><EFBFBD><EFBFBD><EFBFBD> <20>㭪樨
|
||||||
|
* ebx = 㪠<><E3AAA0>⥫<EFBFBD> <20><> <20>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD>⥫쭮 <20>뤥<EFBFBD><EBA4A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||||
|
<20><><EFBFBD> ࠧ<><E0A0A7>饭<EFBFBD> <20><>室<EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><>ଠ<EFBFBD><E0ACA0> BBGGRRTTBBGGRRTT...
|
||||||
|
* ecx = [ࠧ<><E0A0A7><EFBFBD> <20><> <20><><EFBFBD> x]*65536 + [ࠧ<><E0A0A7><EFBFBD> <20><> <20><><EFBFBD> y]
|
||||||
|
* edx = [<5B><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> x]*65536 + [<5B><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> y]
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>:
|
||||||
|
* <20>㭪<EFBFBD><E3ADAA><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頥<EFBFBD> <20><><EFBFBD>祭<EFBFBD><E7A5AD>
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>砭<EFBFBD><EFBFBD>:
|
||||||
|
* <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD> <20><><EFBFBD>न<EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD>孥<EFBFBD><E5ADA5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 㣫<>
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⭮<EFBFBD><E2ADAE>⥫쭮 <20><>࠭<EFBFBD>.
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4*xsize*ysize.
|
||||||
|
* TT - <20><><EFBFBD><EFBFBD> 㪠<><E3AAA0>⥫<EFBFBD> <20><EFBFBD><E0AEA7>筮<EFBFBD><E7ADAE><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>饥 <20>६<EFBFBD>:
|
||||||
|
<20><> 1 <20><> FF - <20><><EFBFBD><EFBFBD><E0AEA7>筮, <20><> 0 - <20><EFBFBD><E0AEA7>筮.
|
||||||
|
* <20>㭪<EFBFBD><E3ADAA><EFBFBD> ࠧ<><E0A0A7>頥<EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> <20><> <20><> 䮭<><E4AEAD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ࠦ<EFBFBD><E0A0A6><EFBFBD><EFBFBD> (<28>.15),
|
||||||
|
<20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> LFB. <20><>樨 <20>.15 <20><><EFBFBD> <20>. 25 <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>.
|
||||||
|
|
||||||
======================================================================
|
======================================================================
|
||||||
===== <20>㭪<EFBFBD><E3ADAA><EFBFBD> 26, <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD> 1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> MPU MIDI. =====
|
===== <20>㭪<EFBFBD><E3ADAA><EFBFBD> 26, <20><><EFBFBD><EFBFBD>㭪<EFBFBD><E3ADAA><EFBFBD> 1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> MPU MIDI. =====
|
||||||
======================================================================
|
======================================================================
|
||||||
|
@@ -1492,6 +1492,26 @@ Remarks:
|
|||||||
* The function is supported only for ATAPI devices (CD and DVD).
|
* The function is supported only for ATAPI devices (CD and DVD).
|
||||||
* An example of usage of the function is the application CD_tray.
|
* An example of usage of the function is the application CD_tray.
|
||||||
|
|
||||||
|
======================================================================
|
||||||
|
======= Function 25 - put image area on the background layer. ========
|
||||||
|
======================================================================
|
||||||
|
Paramters:
|
||||||
|
* eax = 25 - function number
|
||||||
|
* ebx = pointer to the previously allocated memory area,
|
||||||
|
where placed the source images in a format BBGGRRTTBBGGRRTT...
|
||||||
|
* ecx = [size on axis x]*65536 + [size on axis y]
|
||||||
|
* edx = [coordinate on axis x]*65536 + [coordinate on axis y]
|
||||||
|
Returned value:
|
||||||
|
* function does not return value
|
||||||
|
Remarks:
|
||||||
|
* Coordinates of the image are coordinates of the upper left corner
|
||||||
|
of the image relative to the screen.
|
||||||
|
* Size of the image in bytes is 4*xsize*ysize
|
||||||
|
* TT - byte pointer of transparency, at current version:
|
||||||
|
1 to FF - opaque, 0 - transparent.
|
||||||
|
* The function places the image directly to LFB. It is not for
|
||||||
|
background image f.15. Options f.15 to f.25 does not make sense.
|
||||||
|
|
||||||
======================================================================
|
======================================================================
|
||||||
======== Function 26, subfunction 1 - get MPU MIDI base port. ========
|
======== Function 26, subfunction 1 - get MPU MIDI base port. ========
|
||||||
======================================================================
|
======================================================================
|
||||||
|
@@ -4687,9 +4687,8 @@ syscall_getpixel: ; GetPixel
|
|||||||
call dword [GETPIXEL]; eax - x, ebx - y
|
call dword [GETPIXEL]; eax - x, ebx - y
|
||||||
mov [esp + 32], ecx
|
mov [esp + 32], ecx
|
||||||
ret
|
ret
|
||||||
|
;-----------------------------------------------------------------------------
|
||||||
align 4
|
align 4
|
||||||
|
|
||||||
syscall_getarea:
|
syscall_getarea:
|
||||||
;eax = 36
|
;eax = 36
|
||||||
;ebx = pointer to bufer for img BBGGRRBBGGRR...
|
;ebx = pointer to bufer for img BBGGRRBBGGRR...
|
||||||
@@ -4725,9 +4724,12 @@ syscall_getarea:
|
|||||||
add ebp, edi
|
add ebp, edi
|
||||||
|
|
||||||
add ebx, edx
|
add ebx, edx
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
.start_y:
|
.start_y:
|
||||||
push ecx edx
|
push ecx edx
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
.start_x:
|
.start_x:
|
||||||
push eax ebx ecx
|
push eax ebx ecx
|
||||||
add eax, ecx
|
add eax, ecx
|
||||||
@@ -4749,9 +4751,89 @@ syscall_getarea:
|
|||||||
jnz .start_y
|
jnz .start_y
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
;-----------------------------------------------------------------------------
|
||||||
align 4
|
align 4
|
||||||
|
syscall_putarea_backgr:
|
||||||
|
;eax = 25
|
||||||
|
;ebx = pointer to bufer for img BBGGRRBBGGRR...
|
||||||
|
;ecx = [size x]*65536 + [size y]
|
||||||
|
;edx = [start x]*65536 + [start y]
|
||||||
|
pushad
|
||||||
|
mov edi, ebx
|
||||||
|
mov eax, edx
|
||||||
|
shr eax, 16
|
||||||
|
mov ebx, edx
|
||||||
|
and ebx, 0xffff
|
||||||
|
dec eax
|
||||||
|
dec ebx
|
||||||
|
; eax - x, ebx - y
|
||||||
|
mov edx, ecx
|
||||||
|
shr ecx, 16
|
||||||
|
and edx, 0xffff
|
||||||
|
mov esi, ecx
|
||||||
|
; ecx - size x, edx - size y
|
||||||
|
mov ebp, edx
|
||||||
|
dec ebp
|
||||||
|
shl ebp, 2
|
||||||
|
|
||||||
|
imul ebp, esi
|
||||||
|
|
||||||
|
mov esi, ecx
|
||||||
|
dec esi
|
||||||
|
shl esi, 2
|
||||||
|
|
||||||
|
add ebp, esi
|
||||||
|
add ebp, edi
|
||||||
|
|
||||||
|
add ebx, edx
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
|
.start_y:
|
||||||
|
push ecx edx
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
|
.start_x:
|
||||||
|
push eax ecx
|
||||||
|
add eax, ecx
|
||||||
|
|
||||||
|
mov ecx, [ebp]
|
||||||
|
rol ecx, 8
|
||||||
|
test cl, cl ; transparensy = 0
|
||||||
|
jz .no_put
|
||||||
|
|
||||||
|
xor cl, cl
|
||||||
|
ror ecx, 8
|
||||||
|
|
||||||
|
pushad
|
||||||
|
mov edx, [d_width_calc_area + ebx*4]
|
||||||
|
add edx, [_WinMapAddress]
|
||||||
|
movzx edx, byte [eax+edx]
|
||||||
|
cmp dl, byte 1
|
||||||
|
jne @f
|
||||||
|
|
||||||
|
call dword [PUTPIXEL]; eax - x, ebx - y
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
|
@@:
|
||||||
|
popad
|
||||||
|
;--------------------------------------
|
||||||
|
align 4
|
||||||
|
.no_put:
|
||||||
|
pop ecx eax
|
||||||
|
|
||||||
|
sub ebp, 4
|
||||||
|
dec ecx
|
||||||
|
jnz .start_x
|
||||||
|
|
||||||
|
pop edx ecx
|
||||||
|
dec ebx
|
||||||
|
dec edx
|
||||||
|
jnz .start_y
|
||||||
|
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
;-----------------------------------------------------------------------------
|
||||||
|
align 4
|
||||||
syscall_drawline: ; DrawLine
|
syscall_drawline: ; DrawLine
|
||||||
|
|
||||||
mov edi, [TASK_BASE]
|
mov edi, [TASK_BASE]
|
||||||
|
Reference in New Issue
Block a user