Subversion Repositories Kolibri OS

Rev

Rev 2135 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2135 Rev 2510
Line 5... Line 5...
5
;   €¢â®à - ˆ¢ ­ ®¤¤ã¡­ë©
5
;   €¢â®à - ˆ¢ ­ ®¤¤ã¡­ë©
6
;   e-mail: ivan-yar@bk.ru
6
;   e-mail: ivan-yar@bk.ru
7
;
7
;
8
;   Compile with flat assembler
8
;   Compile with flat assembler
9
;
9
;
-
 
10
;------------------------------------------------------------------------------
-
 
11
; version:	1.1
-
 
12
; last update:  27/03/2012
-
 
13
; changed by:   Marat Zakiyanov aka Mario79, aka Mario
-
 
14
; changes:      The program uses only 3404 bytes memory is now.
-
 
15
;               Optimisations and code refactoring.
-
 
16
;------------------------------------------------------------------------------
10
include 'lang.inc'
17
include 'lang.inc'
11
include '..\..\..\macros.inc'
18
include '..\..\..\macros.inc'
12
 
-
 
-
 
19
;------------------------------------------------------------------------------
13
meos_app_start
20
	use32
14
code
21
	org 0x0
15
 
-
 
16
  mov	eax, 48 		  ; ¯®«ãç¨âì á¨á⥬­ë¥ 梥â 
22
	db 'MENUET01'	; 8 byte id
17
  mov	ebx, 3
23
	dd 0x01		; header version
-
 
24
	dd START	; start of code
18
  mov	ecx, sc 		  ;   ¤à¥á áâàãªâãàë
25
	dd IM_END	; size of image
19
  mov	edx, sizeof.system_colors ;  ¨ ¥¥ à §¬¥à
26
	dd I_END	; memory for app
-
 
27
	dd stack_area	; esp
-
 
28
	dd 0		; boot parameters
20
  mcall
29
	dd 0		; path
-
 
30
;------------------------------------------------------------------------------
21
 
31
START:
22
  mov	eax,40	     ; ãáâ ­®¢¨¬ ¬ áªã ᮡë⨩
32
; ¯®«ãç¨âì á¨á⥬­ë¥ 梥â 
-
 
33
	mcall	48,3,sc,sizeof.system_colors
23
  mov	ebx,100000b  ; ­ á ¨­â¥à¥áã¥â ⮫쪮 ¬ëèì
34
; ãáâ ­®¢¨¬ ¬ áªã ᮡë⨩ - ­ á ¨­â¥à¥áã¥â ⮫쪮 ¬ëèì
24
  mcall
35
	mcall	40,100000b
-
 
36
;------------------------------------------------------------------------------
25
 
37
align 4
26
still:		     ; £« ¢­ë© 横« ®á­®¢­®£® ¯à®æ¥áá 
38
still:		     ; £« ¢­ë© 横« ®á­®¢­®£® ¯à®æ¥áá 
-
 
39
	mcall	10	; ¦¤ñ¬ ᮡëâ¨ï
Line 27... Line -...
27
 
-
 
28
  mov	eax,10	     ; ¦¤ñ¬ ᮡëâ¨ï
-
 
29
  mcall
-
 
30
 
40
 
31
  mov	eax,37	     ; ª ª¨¥ ­ ¦ âë ª¯®¯ª¨?
-
 
32
  mov	ebx,2
-
 
33
  mcall
-
 
34
 
41
	mcall	37,2	; ª ª¨¥ ­ ¦ âë ª¯®¯ª¨?
35
  cmp	eax,ebx        ; ¥á«¨ ­¥ ¯à ¢ ï, ¢®§¢à â
42
	cmp	eax,ebx	; ¥á«¨ ­¥ ¯à ¢ ï, ¢®§¢à â
36
  jne	still
-
 
37
 
43
	jne	still
38
;---¯®¥å «¨!---
-
 
39
 
44
;--------------------------------------
40
;  mov   eax,37       ; íâ® ¤«ï ®â« ¤ª¨ - ¥á«¨ ¬ëèì ¢ â®çª¥ (0;0), § ªà®¥¬áï
45
; íâ® ¤«ï ®â« ¤ª¨ - ¥á«¨ ¬ëèì ¢ â®çª¥ (0;0), § ªà®¥¬áï
41
;  xor   ebx,ebx
46
;	xor	ebx,ebx
42
;  mcall
47
;	mcall	37
43
;  test  eax,eax      ; ªãàá®à ¢ â®çª¥ (0;0), â.¥. eax = 0
48
;	test	eax,eax	; ªãàá®à ¢ â®çª¥ (0;0), â.¥. eax = 0
44
;  je    exit
-
 
45
 
-
 
-
 
49
;	je	exit
46
 
50
;--------------------------------------
47
  mov	eax,9	     ; ¯®«ã稬 ç¨á«® ¯à®æ¥áᮢ ¢ á¨á⥬¥
-
 
48
  mov	ebx,procinfo
51
; ¯®«ã稬 ç¨á«® ¯à®æ¥áᮢ ¢ á¨á⥬¥
49
  xor	ecx,ecx
52
	xor	ecx,ecx
Line 50... Line 53...
50
  mcall
53
	mcall	9,procinfo
51
 
54
 
52
  inc	eax	     ; ⥯¥àì ¢ eax ᮤ¥à¦¨âáï ç¨á«® ¯à®æ¥áᮢ + 1
55
	inc	eax	     ; ⥯¥àì ¢ eax ᮤ¥à¦¨âáï ç¨á«® ¯à®æ¥áᮢ + 1
-
 
56
	mov	[processes],eax
53
  mov	[processes],eax
57
	mov	ecx,1
54
  mov	ecx,1
58
;--------------------------------------
55
 
59
align 4
56
 new_process:
60
new_process:
57
  pushad
61
	pushad
58
  mov	eax,9	     ; ¯®«ã稬 ¨­ä®à¬ æ¨î ® ¯à®æ¥áá¥; ­®¬¥à - ¢ ecx
-
 
59
  mov	ebx,procinfo
62
; ¯®«ã稬 ¨­ä®à¬ æ¨î ® ¯à®æ¥áá¥; ­®¬¥à - ¢ ecx
60
  mcall
63
	mcall	9,procinfo
61
  mov	eax,37	     ; ª®®à¤¨­ âë ªãàá®à 
64
; ª®®à¤¨­ âë ªãàá®à 
-
 
65
	xor	ebx,ebx
62
  xor	ebx,ebx
66
	mcall	37
63
  mcall
67
 
64
  mov	ebx,eax 		 ; eax = cursor_x
68
	mov	ebx,eax		; eax = cursor_x
65
  shr	eax,16			 ; ebx = cursor_y
69
	shr	eax,16		; ebx = cursor_y
66
  and	ebx,0xffff
70
	and	ebx,0xffff
Line 79... Line 83...
79
  mov	edx,[procinfo.box.height]
83
	mov	edx,[procinfo.box.height]
80
  add	edx,ebx 		 ; ecx = wnd_y_end
84
	add	edx,ebx 		 ; ecx = wnd_y_end
Line 81... Line 85...
81
 
85
 
82
  cmp	eax,[curx1]  ; wnd_x_start > cursor_x => ªãàá®à «¥¢¥¥ ®ª­ 
86
	cmp	eax,[curx1]  ; wnd_x_start > cursor_x => ªãàá®à «¥¢¥¥ ®ª­ 
-
 
87
	jg	ne_goden
83
  jg	ne_goden
88
 
84
  cmp	ecx,[curx1]  ; wnd_x_end   < cursor_x => ªãàá®à ¯à ¢¥¥ ®ª­ 
89
	cmp	ecx,[curx1]  ; wnd_x_end   < cursor_x => ªãàá®à ¯à ¢¥¥ ®ª­ 
-
 
90
	jl	ne_goden
85
  jl	ne_goden
91
 
86
  cmp	ebx,[cury1]  ; wnd_y_start > cursor_y => ªãàá®à ¢ëè¥ ®ª­ 
92
	cmp	ebx,[cury1]  ; wnd_y_start > cursor_y => ªãàá®à ¢ëè¥ ®ª­ 
-
 
93
	jg	ne_goden
87
  jg	ne_goden
94
 
88
  cmp	edx,[cury1]  ; wnd_y_end   < cursor_y => ªãàá®à ­¨¦¥ ®ª­ 
95
	cmp	edx,[cury1]  ; wnd_y_end   < cursor_y => ªãàá®à ­¨¦¥ ®ª­ 
-
 
96
	jl	ne_goden
89
  jl	ne_goden
97
;--------------------------------------
90
 
98
align 4
91
goden:		     ; ª«¨ª ¡ë« ¢­ãâਠª ª®£®-â® ®ª­ , ¯®í⮬㠭¨ç¥£® ­¥ ¤¥« ¥¬
99
goden:		     ; ª«¨ª ¡ë« ¢­ãâਠª ª®£®-â® ®ª­ , ¯®í⮬㠭¨ç¥£® ­¥ ¤¥« ¥¬
92
  popad
100
	popad
-
 
101
	jmp	still
93
  jmp	still
102
;--------------------------------------
94
 
103
align 4
95
ne_goden:	     ; ª«¨ª ¡ë« á­ à㦨 à áᬠâਢ ¥¬®£® ®ª­ , ¯®í⮬ã
104
ne_goden:	     ; ª«¨ª ¡ë« á­ à㦨 à áᬠâਢ ¥¬®£® ®ª­ , ¯®í⮬ã
96
  popad
105
	popad
97
  inc	ecx
106
	inc	ecx
98
  cmp	ecx,[processes]
107
	cmp	ecx,[processes]
99
  jl	new_process  ; «¨¡® ᬮਬ á«¥¤ãî饥 ®ª­®, «¨¡® § ¯ã᪠¥¬ ¬¥­î
-
 
-
 
108
	jl	new_process  ; «¨¡® ᬮਬ á«¥¤ãî饥 ®ª­®, «¨¡® § ¯ã᪠¥¬ ¬¥­î
100
 
109
;--------------------------------------
101
 
110
align 4
102
@@:		; ¯®¤®¦¤ñ¬, ¯®ª  ¯®«ì§®¢ â¥«ì ­¥ ®â¯ãá⨫ ¯à ¢ãî ª­®¯ªã ¬ëè¨
-
 
103
  mov	eax,37
-
 
104
  mov	ebx,2	; äã­ªæ¨ï 37-2:
111
@@:		; ¯®¤®¦¤ñ¬, ¯®ª  ¯®«ì§®¢ â¥«ì ­¥ ®â¯ãá⨫ ¯à ¢ãî ª­®¯ªã ¬ëè¨
105
  mcall    ;   ­ ¦ âë «¨ ª­®¯ª¨ ¬ëè¨?
112
	mcall	37,2    ;   ­ ¦ âë «¨ ª­®¯ª¨ ¬ëè¨?
106
  test	eax,ebx ; ¥á«¨ ®â¯ãá⨫, (eax != 2)
113
	test	eax,ebx ; ¥á«¨ ®â¯ãá⨫, (eax != 2)
Line 107... Line 114...
107
  jz	@f	;   ¨¤ñ¬ ¢ ­ ç «® £« ¢­®£® 横« 
114
	jz	@f	;   ¨¤ñ¬ ¢ ­ ç «® £« ¢­®£® 横« 
-
 
115
 
108
 
116
	mcall	68,1	; ¨­ ç¥ ¯¥à¥ª«î稬áï ­  á«¥¤ãî騩 ¯®â®ª á¨áâ¥¬ë ¨ ª®£¤ 
109
  mov	eax,5	; ¨­ ç¥
117
	jmp	@b	; ¢ë¯®«­¥­¨¥ ¢¥à­¥âáï í⮬㠯®â®ªã, ¯à®¢¥à¨¬ ¬ëèì ®¯ïâì
110
  ;mov   ebx,2   ;   ¯®¤®¦¤ñ¬ 2 ¬á
-
 
111
  mcall
-
 
112
 
118
;--------------------------------------
113
  jmp	@b	;   ¨ ¯à®¢¥à¨¬ ¬ëèì ®¯ïâì
-
 
114
@@:
119
align 4	
115
 
-
 
116
; ¥á«¨ 㦥 ¡ë«® ®âªàëâ® ¬¥­î, ­ã¦­® ¯®¤®¦¤ âì, ¯®ª  ®­® § ªà®¥âáï:
120
@@:
117
@@:
121
; ¥á«¨ 㦥 ¡ë«® ®âªàëâ® ¬¥­î, ­ã¦­® ¯®¤®¦¤ âì, ¯®ª  ®­® § ªà®¥âáï:
118
  cmp	[menu_opened],0
122
	cmp	[menu_opened],0
119
  je	@f
123
	je	@f
120
  mov	eax,5
-
 
-
 
124
 
121
  mov	ebx,3  ; ¦¤ñ¬ 3 ¬á
125
	mcall	68,1	; ¯¥à¥ª«î稬áï ­  á«¥¤ãî騩 ¯®â®ª á¨á⥬ë 
-
 
126
			; ¡®«¥¥ íä䥪⨢­ë© ᯮᮡ § ¤¥à¦ª¨ 祬 mcall 5
-
 
127
	jmp	@b
122
  mcall
128
;--------------------------------------
123
  jmp	@b
-
 
124
@@:
129
align 4
125
 
-
 
126
  mov	eax,51		 ;   ⥯¥àì ¬®¦­® ᬥ«® § ¯ã᪠âì ¯à®æ¥áá (¯®â®ª) ¬¥­î
130
@@:
127
  mov	ebx,1		 ; ᮧ¤ ñ¬ ¯®â®ª (thread)
-
 
128
  mov	ecx,start_wnd	 ; â®çª  ¢å®¤  ¯®â®ª 
-
 
129
  mov	edx,stack_wnd	 ; ¢¥à設  áâíª  ¤«ï ¯®â®ª 
-
 
130
  mcall
131
;   ⥯¥àì ¬®¦­® ᬥ«® § ¯ã᪠âì ¯à®æ¥áá (¯®â®ª) ¬¥­î
131
 
-
 
132
  jmp	still
-
 
-
 
132
	mcall	51,1,start_wnd,stack_wnd
133
 
133
	jmp	still
134
 
134
;------------------------------------------------------------------------------	
135
 
135
align 4
-
 
136
exit_menu:	      ; ¥á«¨ ¢ë室¨¬ ¨§ ¬¥­î, ­ ¤® § ¯¨á âì ¢ [menu_opened] 0
-
 
137
	mov	[menu_opened],0
136
exit_menu:	      ; ¥á«¨ ¢ë室¨¬ ¨§ ¬¥­î, ­ ¤® § ¯¨á âì ¢ [menu_opened] 0
138
;--------------------------------------
137
  mov	[menu_opened],0
139
align 4
138
exit:		      ; á ¬ë ¨¤ñ¬, ª®£¤  ¢ë室¨¬ ¨§ ®á­®¢­®£® ¯à®æ¥áá 
140
exit:		      ; á ¬ë ¨¤ñ¬, ª®£¤  ¢ë室¨¬ ¨§ ®á­®¢­®£® ¯à®æ¥áá 
139
  or	eax,-1	      ; eax = -1
-
 
140
  mcall
-
 
141
 
-
 
142
 
-
 
-
 
141
	or	eax,-1	      ; eax = -1
143
 
142
	mcall
-
 
143
;------------------------------------------------------------------------------	
-
 
144
; §¤¥áì áâ àâã¥â ¯à®æ¥áá ¬¥­î
144
 
145
;------------------------------------------------------------------------------	
145
; §¤¥áì áâ àâã¥â ¯à®æ¥áá ¬¥­î
146
align 4
146
start_wnd:
147
start_wnd:
-
 
148
	mov	[menu_opened],1
147
  mov	[menu_opened],1
149
; ãáâ ­®¢¨¬ ¬ áªã ¦¥« ¥¬ëå ᮡë⨩: ¬¥­î + ª­®¯ª¨ + ¯¥à¥à¨á®¢ª 
148
  mov	eax,40	    ; ãáâ ­®¢¨¬ ¬ áªã ¦¥« ¥¬ëå ᮡë⨩ ¤«ï í⮣® ¯à®æ¥áá 
150
	mcall	40,100101b
149
  mov	ebx,100101b ; ¬¥­î + ª­®¯ª¨ + ¯¥à¥à¨á®¢ª 
-
 
150
  mcall
151
;------------------------------------------------------------------------------	
151
 
152
align 4
-
 
153
red:
152
red:
154
	call	draw_window
153
  call	draw_window
155
;------------------------------------------------------------------------------	
154
 
-
 
155
still2: 	    ; £« ¢­ë© 横« ¯à®æ¥áá  ¬¥­î
156
align 4
156
 
-
 
Line 157... Line 157...
157
  mov	eax,10	    ; ¦¤ñ¬ ᮡëâ¨ï
157
still2: 	    ; £« ¢­ë© 横« ¯à®æ¥áá  ¬¥­î
158
  mcall
158
	mcall	10	; ¦¤ñ¬ ᮡëâ¨ï
-
 
159
 
159
 
160
	cmp	eax,1	    ; ¯¥à¥à¨á®¢ª ?
160
  cmp	eax,1	    ; ¯¥à¥à¨á®¢ª ?
161
	je	red
-
 
162
	
161
  je	red
163
	cmp	eax,3	    ; ª­®¯ª ?
162
  cmp	eax,3	    ; ª­®¯ª ?
164
	je	button
Line 163... Line 165...
163
  je	button
165
	
164
  cmp	eax,6	    ; ¬ëèì?
-
 
-
 
166
	cmp	eax,6	    ; ¬ëèì?
165
  je	mouse
167
	je	mouse
166
 
168
 
167
  jmp	still2	    ; ¢¥à­ñ¬áï ¢ ­ ç «® £« ¢­®£® 横« 
169
	jmp	still2	    ; ¢¥à­ñ¬áï ¢ ­ ç «® £« ¢­®£® 横« 
168
 
-
 
169
 
170
;------------------------------------------------------------------------------	
170
; Ž€Ž’—ˆŠ Œ›˜ˆ
-
 
171
mouse:		  ; ª®£¤  ¯®«ì§®¢ â¥«ì ­ ¦¬ñâ ª­®¯ªã ¬ëè¨, § ªà®¥¬áï
171
align 4
172
  mov	eax,37
172
; Ž€Ž’—ˆŠ Œ›˜ˆ
Line 173... Line 173...
173
  mov	ebx,2	  ; ª ª¨¥ ª­®¯ª¨ ­ ¦ âë?
173
mouse:		  ; ª®£¤  ¯®«ì§®¢ â¥«ì ­ ¦¬ñâ ª­®¯ªã ¬ëè¨, § ªà®¥¬áï
-
 
174
	mcall	37,2	; ª ª¨¥ ª­®¯ª¨ ­ ¦ âë?
174
  mcall
175
	test	eax,eax   ; ­¨ª ª¨¥? - ⮣¤  ¯à¥ªà á­®! ¢¥à­ñ¬áï ¢ £« ¢­ë© 横«
175
  test	eax,eax   ; ­¨ª ª¨¥? - ⮣¤  ¯à¥ªà á­®! ¢¥à­ñ¬áï ¢ £« ¢­ë© 横«
176
	jz	still2
176
  jz	still2
177
 
177
 
178
        mcall   37,0
-
 
179
 
178
        mcall   37, 0
180
        mov     esi, eax
179
        mov     esi, eax
181
        shr     esi, 16
180
        shr     esi, 16
182
        movzx   edi, ax
-
 
183
        mcall   9, procinfo, -1
181
        movzx   edi, ax
184
	
182
        mcall   9, procinfo2, -1
185
        mov     eax, [procinfo.box.left]
183
        mov     eax, [procinfo2.box.left]
186
        cmp     esi, eax
-
 
187
        jl      exit_menu
184
        cmp     esi, eax
188
 
185
        jl      exit_menu
189
        add     eax, [procinfo.box.width]
186
        add     eax, [procinfo2.box.width]
190
        cmp     esi, eax
-
 
191
        jge     exit_menu
187
        cmp     esi, eax
192
 
188
        jge     exit_menu
193
        mov     eax, [procinfo.box.top]
189
        mov     eax, [procinfo2.box.top]
194
        cmp     edi, eax
Line 190... Line 195...
190
        cmp     edi, eax
195
        jl      exit_menu
-
 
196
 
191
        jl      exit_menu
197
        add     eax, [procinfo.box.height]
192
        add     eax, [procinfo2.box.height]
198
        cmp     edi, eax
193
        cmp     edi, eax
199
        jge     exit_menu
194
        jge     exit_menu
200
 
195
 
-
 
Line 196... Line 201...
196
        jmp     still2
201
        jmp     still2
197
 
202
;------------------------------------------------------------------------------	
Line 198... Line 203...
198
; €†€’€ ŠŽŠ€
203
align 4
199
button:
204
; €†€’€ ŠŽŠ€
200
  mov	eax,17	      ; ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
205
button:
201
  mcall
206
	mcall	17	; ¯®«ãç¨âì ¨¤¥­â¨ä¨ª â®à ­ ¦ â®© ª­®¯ª¨
-
 
207
 
-
 
208
	sub	ah,10	      ; áà ¢­¨¢ ¥¬ á 10
202
 
209
	jl	nofuncbtns    ; ¥á«¨ ¬¥­ìè¥ - § ªà뢠¥¬ ¬¥­î
203
  sub	ah,10	      ; áà ¢­¨¢ ¥¬ á 10
210
 
204
  jl	nofuncbtns    ; ¥á«¨ ¬¥­ìè¥ - § ªà뢠¥¬ ¬¥­î
211
	movzx	ebx,ah	      ; ¯®«ã稫¨ ­®¬¥à ¯à®£à ¬¬ë ¢ ᯨ᪥ ¢ ebx
205
 
212
	mov	esi,[startapps + ebx*4]
206
  movzx ebx,ah	      ; ¯®«ã稫¨ ­®¬¥à ¯à®£à ¬¬ë ¢ ᯨ᪥ ¢ ebx
213
	mov	edi,start_info.path
Line 216... Line 223...
216
 
223
 
217
;  mov   eax,5         ; ¯®¤®¦¤ñ¬, ¯®ª  ¯à®£à ¬¬  § ¯ãáâ¨âìáï
224
;	mov	eax,5         ; ¯®¤®¦¤ñ¬, ¯®ª  ¯à®£à ¬¬  § ¯ãáâ¨âìáï
218
;  mov   ebx,1         ;   â® ¥ñ ®ª­® ­¥ ¡ã¤¥â ®âà¨á®¢ ­® (¡ £ ¢ ï¤à¥???)
225
;	mov	ebx,1         ;   â® ¥ñ ®ª­® ­¥ ¡ã¤¥â ®âà¨á®¢ ­® (¡ £ ¢ ï¤à¥???)
219
;  mcall          ; à áª®¬¬¥­â¨àã©â¥ í⨠áâப¨, ¥á«¨ ã ¢ á ¯à®¡«¥¬ë
226
;	mcall          ; à áª®¬¬¥­â¨àã©â¥ í⨠áâப¨, ¥á«¨ ã ¢ á ¯à®¡«¥¬ë
-
 
227
		       ; á ®âà¨á®¢ª®©
220
		       ; á ®âà¨á®¢ª®©
228
;--------------------------------------
221
 
229
align 4
222
nofuncbtns:	      ; § ªà뢠¥¬ ¬¥­î
230
nofuncbtns:	      ; § ªà뢠¥¬ ¬¥­î
223
  jmp	exit_menu
-
 
224
 
-
 
225
 
-
 
-
 
231
	jmp	exit_menu
226
 
232
;------------------------------------------------------------------------------	
Line 227... Line 233...
227
_BTNS_		  = 6	  ; ª®«¨ç¥á⢮ ª­®¯®ª ("¯ã­ªâ®¢ ¬¥­î")
233
_BTNS_		  = 6	  ; ª®«¨ç¥á⢮ ª­®¯®ª ("¯ã­ªâ®¢ ¬¥­î")
228
 
234
 
229
if lang eq ru
235
if lang eq ru
Line 235... Line 241...
235
  font		  = 0x10000000
241
  font		  = 0x10000000
236
  string_length   = 12		; ¤«¨­  áâப¨
242
  string_length   = 12		; ¤«¨­  áâப¨
237
  wnd_x_size	  = 105 	; è¨à¨­  ®ª­ 
243
  wnd_x_size	  = 105 	; è¨à¨­  ®ª­ 
238
  title_pos	 = 23 shl 16 + 7
244
  title_pos	 = 23 shl 16 + 7
239
end if
245
end if
240
 
-
 
-
 
246
;------------------------------------------------------------------------------	
241
;*******************************
247
;*******************************
242
;********  ˆ‘“…Œ ŽŠŽ  ********
248
;********  ˆ‘“…Œ ŽŠŽ  ********
243
;*******************************
249
;*******************************
244
 
-
 
245
draw_window:
250
draw_window:
246
 
-
 
247
  mov	eax,12		 ; ­ ç¨­ ¥¬ "à¨á®¢ âì"
251
	mcall	12,1	; ­ ç¨­ ¥¬ "à¨á®¢ âì"
248
  mov	ebx,1
-
 
249
  mcall
-
 
Line 250... Line 252...
250
 
252
 
251
  mov	eax,[curx1]	 ; ⥪ã騥 ª®®à¤¨­ âë ªãàá®à 
253
	mov	eax,[curx1]	 ; ⥪ã騥 ª®®à¤¨­ âë ªãàá®à 
252
  mov	[curx],eax	 ; § ¯¨è¥¬ ¢ ª®®à¤¨­ âë ®ª­ 
254
	mov	[curx],eax	 ; § ¯¨è¥¬ ¢ ª®®à¤¨­ âë ®ª­ 
253
  mov	eax,[cury1]
255
	mov	eax,[cury1]
254
  mov	[cury],eax
-
 
255
 
256
	mov	[cury],eax
256
; ⥯¥àì ¡ã¤¥¬ áç¨â âì ª®®à¤¨­ âë ®ª­ , çâ®¡ë ®­® §  ªà © íªà ­  ­¥ ¢ë«¥§«®
257
; ⥯¥àì ¡ã¤¥¬ áç¨â âì ª®®à¤¨­ âë ®ª­ , çâ®¡ë ®­® §  ªà © íªà ­  ­¥ ¢ë«¥§«®
257
  mov	eax,14		      ; ¯®«ã稬 à §¬¥à íªà ­ 
258
	mcall	14		; ¯®«ã稬 à §¬¥à íªà ­ 
258
  mcall
259
 
259
  mov	ebx,eax
260
	mov	ebx,eax
260
  shr	eax,16		      ; ¢ eax - x_screen
261
	shr	eax,16			; ¢ eax - x_screen
261
  and	ebx,0xffff	      ; ¢ ebx - y_screen
262
	and	ebx,0xffff		; ¢ ebx - y_screen
262
  add	eax,-wnd_x_size       ; eax = [x_screen - è¨à¨­  ®ª­ ]
263
	add	eax,-wnd_x_size		; eax = [x_screen - è¨à¨­  ®ª­ ]
Line 263... Line 264...
263
  add	ebx,-_BTNS_*15-21     ; ebx = [y_screen - ¢ëá®â  ®ª­ ]
264
	add	ebx,-_BTNS_*15-21	; ebx = [y_screen - ¢ëá®â  ®ª­ ]
264
 
265
 
265
  cmp	eax,[curx]
266
	cmp	eax,[curx]
-
 
267
	jg	.okx			; ¥á«¨ ®ª­® ᫨誮¬ ¡«¨§ª® ª ¯à ¢®¬ã ªà î,
-
 
268
	add	[curx],-wnd_x_size	; ᤢ¨­¥¬ ¥£® ¢«¥¢® ­  100
266
  jg	.okx		      ; ¥á«¨ ®ª­® ᫨誮¬ ¡«¨§ª® ª ¯à ¢®¬ã ªà î,
269
;--------------------------------------
267
  add	[curx],-wnd_x_size    ; ᤢ¨­¥¬ ¥£® ¢«¥¢® ­  100
-
 
268
 .okx:
270
align 4
269
 
271
.okx:
270
  cmp	ebx, [cury]
272
	cmp	ebx, [cury]
-
 
273
	jg	.oky			; ¯® ¢¥à⨪ «¨ â®ç­® â ª¦¥
-
 
274
	add	[cury], -_BTNS_*15-21
271
  jg	.oky		      ; ¯® ¢¥à⨪ «¨ â®ç­® â ª¦¥
275
;--------------------------------------
272
  add	[cury], -_BTNS_*15-21
-
 
273
 .oky:
276
align 4
274
 
277
.oky:
275
  xor	eax, eax	   ; äã­ªæ¨ï 0 - ᮧ¤ âì ®ª­®
278
	xor	eax, eax	   ; äã­ªæ¨ï 0 - ᮧ¤ âì ®ª­®
276
  mov	ebx, [curx]	   ;  ebx = [ª®®à¤¨­ â  ¯® x] shl 16 + [è¨à¨­ ]
279
	mov	ebx, [curx]	   ;  ebx = [ª®®à¤¨­ â  ¯® x] shl 16 + [è¨à¨­ ]
277
  shl	ebx, 16
280
	shl	ebx, 16
Line 287... Line 290...
287
 
290
 
288
  mov	eax, 4		   ; § £®«®¢®ª
291
	mov	eax, 4		   ; § £®«®¢®ª
289
  mov	ebx, title_pos	  ;  [x] shl 16 + [y]
292
	mov	ebx, title_pos	  ;  [x] shl 16 + [y]
290
  mov	ecx, [sc.grab_text];  èà¨äâ ¨ 梥â (á¥àë©)
293
	mov	ecx, [sc.grab_text];  èà¨äâ ¨ 梥â (á¥àë©)
291
  or	ecx, 0x10000000
-
 
-
 
294
	or	ecx, 0x10000000
292
;  add   ecx, -0x333333
295
 
293
  push	ecx
296
	push	ecx
294
  push	ecx
297
	push	ecx
-
 
298
	xor	edx,edx
-
 
299
;--------------------------------------
295
  xor	edx,edx
300
align 4
296
.dec_color:
301
.dec_color:
297
  sub	byte [esp+edx], 0x33
302
	sub	byte [esp+edx], 0x33
298
  jae	@f
303
	jae	@f
-
 
304
	mov	byte [esp+edx], 0
-
 
305
;--------------------------------------
299
  mov	byte [esp+edx], 0
306
align 4
300
@@:
307
@@:
301
  inc	edx
308
	inc	edx
302
  jnp	.dec_color
309
	jnp	.dec_color
303
  pop	ecx
310
	pop	ecx
Line 311... Line 318...
311
  mov	ebx, 1*65536+wnd_x_size-2  ; ­ ç¨­ ¥¬ ¤¥« âì ª­®¯ª¨
318
	mov	ebx, 1*65536+wnd_x_size-2  ; ­ ç¨­ ¥¬ ¤¥« âì ª­®¯ª¨
312
  mov	ecx, 20*65536+15
319
	mov	ecx, 20*65536+15
313
  mov	edx, 10 or 0x40000000 ; ¡¨â 30 ãáâ ­®¢«¥­ => ª­®¯ª  ­¥ à¨áã¥âáï
320
	mov	edx, 10 or 0x40000000 ; ¡¨â 30 ãáâ ­®¢«¥­ => ª­®¯ª  ­¥ à¨áã¥âáï
Line 314... Line 321...
314
 
321
 
-
 
322
	mov	edi,_BTNS_	     ; ª®«¨ç¥á⢮ ª­®¯®ª (áçñâ稪)
315
  mov	edi,_BTNS_	     ; ª®«¨ç¥á⢮ ª­®¯®ª (áçñâ稪)
323
;--------------------------------------
316
 
324
align 4
317
 newbtn:		     ; ­ ç «® 横« 
325
newbtn:		     ; ­ ç «® 横« 
318
  mov	eax,8		     ;  ᮧ¤ ñ¬ ª­®¯ªã
-
 
Line 319... Line 326...
319
  mcall
326
	mcall	8		;  ᮧ¤ ñ¬ ª­®¯ªã
320
 
327
 
321
			     ;  ¯¨è¥¬ ⥪áâ ­  ª­®¯ª¥
328
			     ;  ¯¨è¥¬ ⥪áâ ­  ª­®¯ª¥
322
  pushad		     ;   ᯠᠥ¬ ॣ¨áâàë
329
	pushad		     ;   ᯠᠥ¬ ॣ¨áâàë
Line 328... Line 335...
328
  or	ecx, font
335
	or	ecx, font
329
  add	edx, -10	     ;   edx = ­®¬¥à ª­®¯ª¨;
336
	add	edx, -10	     ;   edx = ­®¬¥à ª­®¯ª¨;
330
  imul	edx, string_length   ;   edx *= ¤«¨­  áâப¨;
337
	imul	edx, string_length   ;   edx *= ¤«¨­  áâப¨;
331
  add	edx, text	     ;   edx += text;  ⥯¥àì ¢ edx  ¤à¥á áâப¨
338
	add	edx, text	     ;   edx += text;  ⥯¥àì ¢ edx  ¤à¥á áâப¨
332
  mov	esi, string_length   ;   ¢ esi - ¤«¨­  áâப¨
339
	mov	esi, string_length   ;   ¢ esi - ¤«¨­  áâப¨
333
  mov	eax, 4		     ;   äã­ªæ¨ï 4 - ¢ë¢®¤ ⥪áâ 
-
 
334
  mcall
340
	mcall	4
335
  popad
341
	popad
Line 336... Line 342...
336
 
342
 
337
  inc	edx		     ;  ­®¬¥à ª­®¯ª¨++;
343
	inc	edx		     ;  ­®¬¥à ª­®¯ª¨++;
338
  add	ecx,15*65536	     ;  㢥«¨ç¨¬ ᬥ饭¨¥ ¯® y
344
	add	ecx,15*65536	     ;  㢥«¨ç¨¬ ᬥ饭¨¥ ¯® y
339
  dec	edi		     ;  㬥­ì訬 áçñâ稪
345
	dec	edi		     ;  㬥­ì訬 áçñâ稪
Line 340... Line 346...
340
  jnz	newbtn		     ; ¥á«¨ ­¥ ­®«ì, ¯®¢â®à¨¬ ¢áñ ¥éñ à §
346
	jnz	newbtn		     ; ¥á«¨ ­¥ ­®«ì, ¯®¢â®à¨¬ ¢áñ ¥éñ à §
341
 
-
 
342
  mov	eax,12		     ; § ª®­ç¨«¨ "à¨á®¢ âì"
-
 
343
  mov	ebx,2
-
 
344
  mcall
347
 
345
 
-
 
346
ret			     ; ¢®§¢à â
-
 
-
 
348
	mcall	12,2	; § ª®­ç¨«¨ "à¨á®¢ âì"
347
 
349
	ret			     ; ¢®§¢à â
348
 
350
;------------------------------------------------------------------------------	
349
 
-
 
Line 350... Line 351...
350
; „€›… Žƒ€ŒŒ›
351
align 4
351
DATA
352
; „€›… Žƒ€ŒŒ›
352
 
353
 
353
  macro strtbl name, [string]
354
  macro strtbl name, [string]
Line 383... Line 384...
383
    ru, ' áâனª  ®ª®­      ',\
384
    ru, ' áâனª  ®ª®­      ',\
384
    ru, '“¯à ¢«¥­¨¥ ¨ª®­ª ¬¨ ',\
385
    ru, '“¯à ¢«¥­¨¥ ¨ª®­ª ¬¨ ',\
385
    ru, ' áâனª  ãáâனá⢠',\
386
    ru, ' áâனª  ãáâனá⢠',\
386
    ru, ' áâனª  ¬®­¨â®à   ',\
387
    ru, ' áâனª  ¬®­¨â®à   ',\
387
    ru, 'à®æ¥ááë            '
388
    ru, 'à®æ¥ááë            '
-
 
389
;------------------------------------------------------------------------------	
388
 
390
align 4
389
start_info:
391
start_info:
390
	.mode	dd	7
392
	.mode	dd 7
391
		dd	0
393
		dd 0
392
	.params dd	0
394
	.params dd 0
393
		dd	0
395
		dd 0
394
		dd	0
396
		dd 0
395
		db	0
397
		db 0
396
		dd	start_info.path
398
		dd start_info.path
-
 
399
;------------------------------------------------------------------------------
-
 
400
IM_END:	
397
 
401
align 4
398
; …ˆˆ–ˆ€‹ˆ‡ˆŽ‚€›… „€›…
402
; …ˆˆ–ˆ€‹ˆ‡ˆŽ‚€›… „€›…
399
UDATA
-
 
400
  processes   dd ?		; ª®«¨ç¥á⢮ ¯à®æ¥áᮢ ¢ á¨á⥬¥
403
  processes	dd ?	; ª®«¨ç¥á⢮ ¯à®æ¥áᮢ ¢ á¨á⥬¥
401
  curx1       dd ?		; ª®®à¤¨­ âë ªãàá®à 
404
  curx1		dd ?	; ª®®à¤¨­ âë ªãàá®à 
402
  cury1       dd ?
405
  cury1		dd ?
403
  curx	      dd ?		; ª®®à¤¨­ âë ®ª­  ¬¥­î
406
  curx		dd ?	; ª®®à¤¨­ âë ®ª­  ¬¥­î
404
  cury	      dd ?
407
  cury		dd ?
Line 405... Line 408...
405
 
408
 
406
  menu_opened db ?		; ®âªàëâ® ¬¥­î ¨«¨ ­¥â? (1-¤ , 0-­¥â)
-
 
-
 
409
  menu_opened	db ?	; ®âªàëâ® ¬¥­î ¨«¨ ­¥â? (1-¤ , 0-­¥â)
407
 
410
;------------------------------------------------------------------------------	
408
align 4
411
align 4
-
 
412
start_info.path	rb 256
409
start_info.path rb 256
413
;------------------------------------------------------------------------------	
410
 
414
align 4
-
 
415
sc	system_colors	; á¨á⥬­ë¥ 梥â 
-
 
416
;------------------------------------------------------------------------------	
411
  sc	   system_colors	; á¨á⥬­ë¥ 梥â 
417
align 4
412
  procinfo process_information	; ¨­ä®à¬ æ¨ï ® ¯à®æ¥áá¥
418
procinfo process_information	; ¨­ä®à¬ æ¨ï ® ¯à®æ¥áá¥
413
  procinfo2 process_information
419
;------------------------------------------------------------------------------	
414
 
420
align 4
415
  rb 1024			; áâíª ¤«ï ®ª­  ¬¥­î - 墠â¨â ¨ 1 Š¡
-
 
416
  align 32
421
	rb 512			; áâíª ¤«ï ®ª­  ¬¥­î - 墠â¨â ¨ 1 Š¡
-
 
422
stack_wnd:
417
  stack_wnd:
423
;------------------------------------------------------------------------------	
418
 
424
align 4
-
 
425
	rb 512
-
 
426
stack_area:
419
 
427
;------------------------------------------------------------------------------	
-
 
428
I_END:
420
MEOS_APP_END
429
;------------------------------------------------------------------------------	
-
 
430
; ŠŽ…– Žƒ€ŒŒ›