forked from KolibriOS/kolibrios
bugfix
git-svn-id: svn://kolibrios.org@6331 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
b141c63200
commit
ff6211368f
@ -2,9 +2,9 @@
|
||||
; Mad Mouse
|
||||
;---------------------------------------------------------------------
|
||||
; version: 0.2
|
||||
; last update: 03/06/2012
|
||||
; changed by: Marat Zakiyanov aka Mario79, aka Mario
|
||||
; changes: Some optimizations.
|
||||
; last update: 03/06/2012
|
||||
; changed by: Marat Zakiyanov aka Mario79, aka Mario
|
||||
; changes: Some optimizations.
|
||||
;---------------------------------------------------------------------
|
||||
; €¢â®à í⮣® 㦠ᮠáâ६®£® ª®¤ : Sourcerer, 23.04.2010
|
||||
; popovpa (29.05.2012)
|
||||
@ -13,10 +13,10 @@
|
||||
; 3. Ž¯â¨¬¨§ æ¨ï ª®¤ .
|
||||
;------------------------------------------------------------------------------
|
||||
use32 ; âà á«ïâ®à, ¨á¯®«ì§ãî騩 32-å à §àï¤ë¥ ª®¬ ¤ë
|
||||
org 0x0 ; ¡ §®¢ë© ¤à¥á ª®¤ , ¢á¥£¤ 0x0
|
||||
org 0x0 ; ¡ §®¢ë© ¤à¥á ª®¤ , ¢á¥£¤ 0x0
|
||||
|
||||
db 'MENUET01' ; 1. ¨¤¥â¨ä¨ª â®à ¨á¯®«ï¥¬®£® ä ©« (8 ¡ ©â)
|
||||
dd 0x01 ; 2. ¢¥àá¨ï ä®à¬ â § £®«®¢ª ¨á¯®«ï¥¬®£® ä ©«
|
||||
db 'MENUET01' ; 1. ¨¤¥â¨ä¨ª â®à ¨á¯®«ï¥¬®£® ä ©« (8 ¡ ©â)
|
||||
dd 0x01 ; 2. ¢¥àá¨ï ä®à¬ â § £®«®¢ª ¨á¯®«ï¥¬®£® ä ©«
|
||||
dd START ; 3. ¤à¥á, ª®â®àë© á¨á⥬ ¯¥à¥¤ ñâ ã¯à ¢«¥¨¥
|
||||
; ¯®á«¥ § £à㧪¨ ¯à¨«®¦¥¨ï ¢ ¯ ¬ïâì
|
||||
dd IM_END ; 4. à §¬¥à ¯à¨«®¦¥¨ï
|
||||
@ -30,10 +30,7 @@
|
||||
dd 0x0 ; 8. 㪠§ ⥫ì áâபã, ¢ ª®â®àãî § ¯¨á ¯ãâì,
|
||||
; ®âªã¤ § ¯ã饮 ¯à¨«®¦¥¨¥
|
||||
;------------------------------------------------------------------------------
|
||||
; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§ì ¯à®£à ¬¬¨áâ
|
||||
include '../../macros.inc'
|
||||
;------------------------------------------------------------------------------
|
||||
;--- <20>€—€‹Ž <20><>Žƒ<C5BD>€ŒŒ› ----------------------------------------------
|
||||
;--- <20>€—€‹Ž <20><>Žƒ<C5BD>€ŒŒ› ----------------------------------------------
|
||||
;------------------------------------------------------------------------------
|
||||
START: ; ¤à¥á ç « ¯à®£à ¬¬ë
|
||||
mov eax,40 ;ãáâ ®¢¨âì ¬ áªã ¤«ï ®¦¨¤ ¥¬ëå ᮡë⨩.
|
||||
@ -53,18 +50,18 @@ still:
|
||||
mov ebx,eax
|
||||
shl ebx,16
|
||||
shr ebx,16
|
||||
mov edi,ebx ;á®åà ¨¬ ã
|
||||
mov edi,ebx ;á®åà ¨¬ ã
|
||||
shr eax,16 ;ᤢ¨£ ¥¬ eax ¢¯à ¢® 16 - ¯®«ãç ¥¬ x
|
||||
mov esi,eax ;á®åà ¨¬ x
|
||||
mov esi,eax ;á®åà ¨¬ x
|
||||
;¯®«ãç ¥¬ ª®®à¤¨ âë ªãàá®à
|
||||
mov eax,37 ;äãªæ¨ï 37 - à ¡®â á ¬ëèìî
|
||||
xor ebx,ebx ;¯®¤äãªæ¨ï 0 - ª®®à¤¨ âë ¬ëè¨
|
||||
xor ebx,ebx ;¯®¤äãªæ¨ï 0 - ª®®à¤¨ âë ¬ëè¨
|
||||
;®â®á¨â¥«ì® íªà
|
||||
int 0x40
|
||||
|
||||
mov ebx,eax ;§ ¯®¬¨ ¥¬ ª®®à¤¨ âë
|
||||
mov ebx,eax ;§ ¯®¬¨ ¥¬ ª®®à¤¨ âë
|
||||
shr eax,16 ;⥯¥àì ã á ⮫쪮 x. 㦥 ¨ y
|
||||
mov ecx,eax ;§ ¯®¬¨ ¥¬ x
|
||||
mov ecx,eax ;§ ¯®¬¨ ¥¬ x
|
||||
shl ebx,16 ;ᤢ¨¥¬ ¢«¥® 16
|
||||
shr ebx,16 ;ᤢ¨¥¬¢ ¯à ¢® 16, ã á ¥áâì ã
|
||||
;------------------------------------------------------------------------------
|
||||
@ -72,26 +69,26 @@ still:
|
||||
;¢ ecx ¨ ebx ª®®à¤¨ âë ªãàá®à X ¨ Y ᮮ⢥⢥®
|
||||
;------------------------------------------------------------------------------
|
||||
;áà ¢¥¨¥ ª®®à¤¨ â x
|
||||
test ecx,ecx ;à ¢ 0?
|
||||
test ecx,ecx ;à ¢ 0?
|
||||
jz left_border ;¯¥à¥å®¤ ª ®¡à ¡®âª¥ ã «¥¢®£® ªà ï
|
||||
|
||||
cmp ecx,esi ;à ¢ è¨à¨¥ íªà ?
|
||||
jz right_border ;¯¥à¥å®¤¨¬ ª ®¡à ¡®âª¥ ã ¯à ¢®£® ªà ï
|
||||
cmp ecx,esi ;à ¢ è¨à¨¥ íªà ?
|
||||
jz right_border ;¯¥à¥å®¤¨¬ ª ®¡à ¡®âª¥ ã ¯à ¢®£® ªà ï
|
||||
;áà ¢¥¨¥ ª®®à¤¨ â y
|
||||
test ebx,ebx ;à ¢ 0?
|
||||
test ebx,ebx ;à ¢ 0?
|
||||
jz top_border ;¥á«¨ ¤ § ç¨â ªãàá®à ¢¢¥àåã
|
||||
|
||||
cmp ebx,edi ;à ¢ ¢ëá®â¥ íªà ?
|
||||
cmp ebx,edi ;à ¢ ¢ëá®â¥ íªà ?
|
||||
jz bottom_border ;¯¥à¥å®¤ ª ®¡à ¡®âª¥ ã ¨¦¥£® ªà ï
|
||||
|
||||
jmp still ;¨ ç¥ ¨ç¥£® ¤¥« âì ¥ 㦮
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
left_border:
|
||||
mov edx,esi ;¢ edx ¨¬¥¥¬ è¨à¨ã íªà
|
||||
mov edx,esi ;¢ edx ¨¬¥¥¬ è¨à¨ã íªà
|
||||
dec edx ;㬥ì訬 1
|
||||
shl edx,16 ;⥯¥àì edx=(x-1)*65536
|
||||
add edx,ebx ; ⥯¥àì edx=(x-1)*65536+y
|
||||
add edx,ebx ; ⥯¥àì edx=(x-1)*65536+y
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
set_mouse_position:
|
||||
@ -108,26 +105,26 @@ right_border: ;
|
||||
xor edx,edx
|
||||
inc edx ;edx=1
|
||||
shl edx,16 ;edx = 1*65536
|
||||
add edx,ebx ;edx=1*65536+y
|
||||
add edx,ebx ;edx=1*65536+y
|
||||
jmp set_mouse_position
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
top_border: ;ªãàá®à ã ¢¥à奣® ªà ï
|
||||
|
||||
mov edx,ecx ;• ª®®à¤¨ â ªãàá®à
|
||||
mov edx,ecx ;• ª®®à¤¨ â ªãàá®à
|
||||
shl edx,16 ;⥯¥àì edx=(x)*65536
|
||||
add edx,edi ; ⥯¥àì edx=(x)*65536+y
|
||||
add edx,edi ; ⥯¥àì edx=(x)*65536+y
|
||||
dec edx ; ⥯¥àì edx=(x)*65536+(ã-1)
|
||||
jmp set_mouse_position
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
bottom_border: ;ªãàá®à ã ¨¦¥£® ªà ï
|
||||
mov edx,ecx ;edx=ecx x ª®®à¤¨ â ªãàá®à
|
||||
mov edx,ecx ;edx=ecx x ª®®à¤¨ â ªãàá®à
|
||||
shl edx,16 ;edx = å*65536
|
||||
;ã ª®®à¤¨ â à ¢ 0
|
||||
inc edx ;ã ª®®à¤¨ â à ¢ 1
|
||||
jmp set_mouse_position
|
||||
;------------------------------------------------------------------------------
|
||||
IM_END: ; ¬¥âª ª®æ ª®¤
|
||||
IM_END: ; ¬¥âª ª®æ ª®¤
|
||||
;------------------------------------------------------------------------------
|
||||
align 4
|
||||
rb 1024
|
||||
|
Loading…
Reference in New Issue
Block a user