Subversion Repositories Kolibri OS

Rev

Rev 1735 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1735 Rev 1755
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;                                                   ;
2
;                                                   ;
3
;    MENUBAR for KolibriOS  - Compile with fasm     ;
3
;    MENUBAR for KolibriOS  - Compile with fasm     ;
4
;                                                   ;
4
;                                                   ;
5
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6
 
6
 
7
use32
7
use32
8
  org  0x0
8
  org  0x0
9
  db   'MENUET01'   ; 8 byte id
9
  db   'MENUET01'   ; 8 byte id
10
  dd   0x01	    ; header version
10
  dd   0x01	    ; header version
11
  dd   START	    ; program start
11
  dd   START	    ; program start
12
  dd   I_END	    ; program image size
12
  dd   I_END	    ; program image size
13
  dd   0xA000	    ; reguired amount of memory - 10 Kb
13
  dd   0xA000	    ; reguired amount of memory - 10 Kb
14
  dd   0xA000	    ; esp
14
  dd   0xA000	    ; esp
15
  dd   0x0,0x0	    ; param, icon
15
  dd   0x0,0x0	    ; param, icon
16
 
16
 
17
include 'lang.inc'
17
include 'lang.inc'
18
include '..\..\..\macros.inc'
18
include '..\..\..\macros.inc'
19
include 'MOI.INC'   ;à áª« ¤ª¨ ª« ¢¨ âãàë
19
include 'MOI.INC'   ;à áª« ¤ª¨ ª« ¢¨ âãàë
20
 
20
 
21
time_bgr_color = 0x66cc
21
time_bgr_color = 0x66cc
22
 
22
 
23
width		dd  305
23
width		dd  305
24
buttons 	dd    1  ;  0 no frames  ; 1 frames
24
buttons 	dd    1  ;  0 no frames  ; 1 frames
25
soften_up	dd    1  ;  0 no         ; 1 yes
25
soften_up	dd    1  ;  0 no         ; 1 yes
26
soften_down	dd    0  ;  0 no         ; 1 yes
26
soften_down	dd    0  ;  0 no         ; 1 yes
27
minimize_left	dd    1
27
minimize_left	dd    1
28
minimize_right	dd    1
28
minimize_right	dd    1
29
icons_position	dd    95
29
icons_position	dd    95
30
menu_enable	dd    1
30
menu_enable	dd    1
31
setup_enable	dd    0
31
setup_enable	dd    0
32
graph_text	dd    1
32
graph_text	dd    1
33
soften_middle	dd    1  ;  0 no         ; 1 yes
33
soften_middle	dd    1  ;  0 no         ; 1 yes
34
icons		dd    1  ;  0 defaults   ; 1 activate
34
icons		dd    1  ;  0 defaults   ; 1 activate
35
 
35
 
36
PANEL_HEIGHT = 18
36
PANEL_HEIGHT = 18
37
 
37
 
38
 
38
 
39
handle_key:
39
handle_key:
40
 
40
 
41
    mcall 18, 7
41
    mcall 18, 7
42
    mov  [active_process],eax
42
    mov  [active_process],eax
43
 
43
 
44
	mcall 2
44
	mcall 2
45
	cmp	al, 2
45
	cmp	al, 2
46
	jnz	begin_1.ret
46
	jnz	begin_1.ret
47
	mov	ebx, exec_fileinfo
47
	mov	ebx, exec_fileinfo
48
	shr	eax, 8
48
	shr	eax, 8
49
	cmp	al, 0
49
	cmp	al, 0
50
	je	prod
50
	je	prod
51
	mov	[key_r],al
51
	mov	[key_r],al
52
	sub	[key_r],2
52
	sub	[key_r],2
53
	cmp	al, 2
53
	cmp	al, 2
54
	jz	alter
54
	jz	alter
55
	cmp	al, 3
55
	cmp	al, 3
56
	jz	alter
56
	jz	alter
57
	cmp	al, 4
57
	cmp	al, 4
58
	jz	alter
58
	jz	alter
59
	cmp	al, 5
59
	cmp	al, 5
60
	jz	alter
60
	jz	alter
61
	cmp	al, 6
61
	cmp	al, 6
62
	jz	alter
62
	jz	alter
63
	cmp	al, 7
63
	cmp	al, 7
64
	jz	alter
64
	jz	alter
65
	cmp	al, 8
65
	cmp	al, 8
66
	jz	alter
66
	jz	alter
67
prod:
67
prod:
68
	cmp	al, 15
68
	cmp	al, 15
69
	jz	alt_tab_pressed
69
	jz	alt_tab_pressed
70
	cmp	al, 88
70
	cmp	al, 88
71
	jz	start_end_application
71
	jz	start_end_application
72
	cmp	al, 91
72
	cmp	al, 91
73
	jz	start_menu_application
73
	jz	start_menu_application
74
	cmp	al, 92
74
	cmp	al, 92
75
	jz	start_menu_application
75
	jz	start_menu_application
76
	cmp	al, 62
76
	cmp	al, 62
77
	jz	kill_active_application
77
	jz	kill_active_application
78
;	cmp	al, 71
78
;	cmp	al, 71
79
;	jz	page_list_next
79
;	jz	page_list_next
80
;	cmp	al, 72
80
;	cmp	al, 72
81
;	jz	page_list_prev
81
;	jz	page_list_prev
82
	cmp	al, 69
82
	cmp	al, 69
83
	jz	start_mousemul_application
83
	jz	start_mousemul_application
84
	cmp	[current_alt_tab_app], -1
84
	cmp	[current_alt_tab_app], -1
85
	jz	@f
85
	jz	@f
86
	test	ah, 0x30
86
	test	ah, 0x30
87
	jz	alt_tab_released
87
	jz	alt_tab_released
88
@@:
88
@@:
89
; this is hotkey Ctrl+Shift ;or LShift+RShift
89
; this is hotkey Ctrl+Shift ;or LShift+RShift
90
 
90
 
91
	 jmp	 karu
91
	 jmp	 karu
92
;        mov     ebx, setup_exec
92
;        mov     ebx, setup_exec
93
;        test    ah, 001100b
93
;        test    ah, 001100b
94
;        jz      change_sys_lang
94
;        jz      change_sys_lang
95
change_key_lang:
95
change_key_lang:
96
	mov	dword [ebx+8], chlang
96
	mov	dword [ebx+8], chlang
97
	mcall	70
97
	mcall	70
98
	call	chlang_music
98
	call	chlang_music
99
;       mcall   5, 25
99
;       mcall   5, 25
100
begin_1:
100
begin_1:
101
    mov  ecx,[active_process]
101
    mov  ecx,[active_process]
102
    mcall 18, 3
102
    mcall 18, 3
103
    mcall 5, 25
103
    mcall 5, 25
104
.ret:
104
.ret:
105
	ret
105
	ret
106
 
106
 
107
;change_sys_lang:
107
;change_sys_lang:
108
;        mov     dword [ebx+8], syslang
108
;        mov     dword [ebx+8], syslang
109
;        mcall   70
109
;        mcall   70
110
;        call    syslang_music
110
;        call    syslang_music
111
;;       mcall   5, 25
111
;;       mcall   5, 25
112
;        jmp     begin_1
112
;        jmp     begin_1
113
 
113
 
114
  start_end_application:
114
  start_end_application:
115
	mov	dword [ebx+21], end_name
115
	mov	dword [ebx+21], end_name
116
	mcall	70
116
	mcall	70
117
	ret
117
	ret
118
  start_mousemul_application:
118
  start_mousemul_application:
119
	mov	dword [ebx+21], mousemul_name
119
	mov	dword [ebx+21], mousemul_name
120
	mcall	70
120
	mcall	70
121
	ret
121
	ret
122
 
122
 
123
   kill_active_application:
123
   kill_active_application:
124
;     mcall  18, 7
124
;     mcall  18, 7
125
;     mov    ecx,eax
125
;     mov    ecx,eax
126
;
126
;
127
;     ;//{SPraid.simba do not kill panel and icon
127
;     ;//{SPraid.simba do not kill panel and icon
128
;     push eax
128
;     push eax
129
;     mov eax,9
129
;     mov eax,9
130
;     mov ebx, process_info_buffer
130
;     mov ebx, process_info_buffer
131
;     int 0x40
131
;     int 0x40
132
;     mov eax,process_info_buffer
132
;     mov eax,process_info_buffer
133
;     add eax,10
133
;     add eax,10
134
;     mov ebx,[eax]
134
;     mov ebx,[eax]
135
;     cmp ebx,'ICON'
135
;     cmp ebx,'ICON'
136
;     je  no_kill
136
;     je  no_kill
137
;     cmp ebx,'@PAN'
137
;     cmp ebx,'@PAN'
138
;     jne  kill_app
138
;     jne  kill_app
139
;     add eax,4
139
;     add eax,4
140
;     mov ebx,[eax]
140
;     mov ebx,[eax]
141
;     and ebx,0x0000FFFF
141
;     and ebx,0x0000FFFF
142
;     cmp ebx,'EL'
142
;     cmp ebx,'EL'
143
;     je  no_kill
143
;     je  no_kill
144
;   kill_app:
144
;   kill_app:
145
;     pop ecx
145
;     pop ecx
146
;     mcall  18, 2
146
;     mcall  18, 2
147
;     jmp if_kill
147
;     jmp if_kill
148
;   no_kill:
148
;   no_kill:
149
;     pop eax
149
;     pop eax
150
;   if_kill:
150
;   if_kill:
151
;     ;// }SPraid.simba
151
;     ;// }SPraid.simba
152
	mcall 72,1,3,1
152
	mcall 72,1,3,1
153
 
153
 
154
     jmp    begin_1.ret
154
     jmp    begin_1.ret
155
 
155
 
156
   start_menu_application:
156
   start_menu_application:
157
	mov	[draw_window_1], 1
157
	mov	[draw_window_1], 1
158
	mov	dword [ebx+21], menu_name
158
	mov	dword [ebx+21], menu_name
159
	mcall	70
159
	mcall	70
160
	call	menu_music
160
	call	menu_music
161
     mcall 5,50
161
     mcall 5,50
162
     jmp   begin_1.ret
162
     jmp   begin_1.ret
163
 
163
 
164
;page_list_next:
164
;page_list_next:
165
;    cmp  [page_list],15
165
;    cmp  [page_list],15
166
;    je	   @f
166
;    je	   @f
167
;    inc  [page_list]
167
;    inc  [page_list]
168
;    mov  [draw_window_1],1
168
;    mov  [draw_window_1],1
169
;  @@:
169
;  @@:
170
;    jmp  begin_1.ret
170
;    jmp  begin_1.ret
171
;
171
;
172
;page_list_prev:
172
;page_list_prev:
173
;    cmp  [page_list],0
173
;    cmp  [page_list],0
174
;    je	   @f
174
;    je	   @f
175
;    dec  [page_list]
175
;    dec  [page_list]
176
;    mov  [draw_window_1],1
176
;    mov  [draw_window_1],1
177
;  @@:
177
;  @@:
178
;    jmp  begin_1.ret
178
;    jmp  begin_1.ret
179
 
179
 
180
alt_tab_pressed:
180
alt_tab_pressed:
181
; handle Alt+Tab and Alt+Shift+Tab
181
; handle Alt+Tab and Alt+Shift+Tab
182
	mov	ebp, eax
182
	mov	ebp, eax
183
	cmp	[current_alt_tab_app], -1
183
	cmp	[current_alt_tab_app], -1
184
	jnz	has_alt_tab_app
184
	jnz	has_alt_tab_app
185
; § ¯®«­ï¥¬ â ¡«¨æ㠯ਫ®¦¥­¨©, ¯®¤«¥¦ é¨å ¯¥à¥ª«î祭¨î
185
; § ¯®«­ï¥¬ â ¡«¨æ㠯ਫ®¦¥­¨©, ¯®¤«¥¦ é¨å ¯¥à¥ª«î祭¨î
186
	xor	edx, edx
186
	xor	edx, edx
187
	mov	ebx, 0x8000
187
	mov	ebx, 0x8000
188
	mov	ecx, 1
188
	mov	ecx, 1
189
	mov	eax, 9
189
	mov	eax, 9
190
.fill:
190
.fill:
191
	inc	ecx
191
	inc	ecx
192
	int	0x40
192
	int	0x40
193
	call	need_window_tab
193
	call	need_window_tab
194
	jz	@f
194
	jz	@f
195
	cmp	edx, 256
195
	cmp	edx, 256
196
	jz	@f
196
	jz	@f
197
	mov	[alt_tab_list+edx*8], ecx
197
	mov	[alt_tab_list+edx*8], ecx
198
	movzx	esi, word [ebx+4]
198
	movzx	esi, word [ebx+4]
199
	mov	[alt_tab_list+edx*8+4], esi
199
	mov	[alt_tab_list+edx*8+4], esi
200
	inc	edx
200
	inc	edx
201
@@:
201
@@:
202
	cmp	ecx, eax
202
	cmp	ecx, eax
203
	mov	eax, 9
203
	mov	eax, 9
204
	jb	.fill
204
	jb	.fill
205
	mov	[alt_tab_list_size], edx
205
	mov	[alt_tab_list_size], edx
206
	test	edx, edx
206
	test	edx, edx
207
	jz	begin_1.ret
207
	jz	begin_1.ret
208
	mcall	66,4,0,0	; «®¢¨¬ ¬®¬¥­â ®â¯ã᪠­¨ï ¢á¥å ã¯à ¢«ïîé¨å ª« ¢¨è
208
	mcall	66,4,0,0	; «®¢¨¬ ¬®¬¥­â ®â¯ã᪠­¨ï ¢á¥å ã¯à ¢«ïîé¨å ª« ¢¨è
209
	test	eax, eax
209
	test	eax, eax
210
	jnz	begin_1.ret
210
	jnz	begin_1.ret
211
	xor	edx, edx
211
	xor	edx, edx
212
	mov	eax, [alt_tab_list+4]
212
	mov	eax, [alt_tab_list+4]
213
	xor	ecx, ecx
213
	xor	ecx, ecx
214
	inc	ecx
214
	inc	ecx
215
.findmax:
215
.findmax:
216
	cmp	[alt_tab_list+ecx*8+4], eax
216
	cmp	[alt_tab_list+ecx*8+4], eax
217
	jb	@f
217
	jb	@f
218
	mov	edx, ecx
218
	mov	edx, ecx
219
	mov	eax, [alt_tab_list+ecx*8+4]
219
	mov	eax, [alt_tab_list+ecx*8+4]
220
@@:
220
@@:
221
	inc	ecx
221
	inc	ecx
222
	cmp	ecx, [alt_tab_list_size]
222
	cmp	ecx, [alt_tab_list_size]
223
	jb	.findmax
223
	jb	.findmax
224
	mov	[current_alt_tab_app], edx
224
	mov	[current_alt_tab_app], edx
225
has_alt_tab_app:
225
has_alt_tab_app:
226
	mov	eax, [current_alt_tab_app]
226
	mov	eax, [current_alt_tab_app]
227
	mov	edx, [alt_tab_list+eax*8+4]	; slot
227
	mov	edx, [alt_tab_list+eax*8+4]	; slot
228
	xor	ecx, ecx
228
	xor	ecx, ecx
229
	or	eax, -1
229
	or	eax, -1
230
	test	ebp, 300h
230
	test	ebp, 300h
231
	jz	.notshift
231
	jz	.notshift
232
	or	esi, -1
232
	or	esi, -1
233
.loop1:
233
.loop1:
234
	cmp	[alt_tab_list+ecx*8+4], edx
234
	cmp	[alt_tab_list+ecx*8+4], edx
235
	jbe	@f
235
	jbe	@f
236
	cmp	[alt_tab_list+ecx*8+4], esi
236
	cmp	[alt_tab_list+ecx*8+4], esi
237
	jae	@f
237
	jae	@f
238
	mov	eax, ecx
238
	mov	eax, ecx
239
	mov	esi, [alt_tab_list+ecx*8+4]
239
	mov	esi, [alt_tab_list+ecx*8+4]
240
@@:
240
@@:
241
	inc	ecx
241
	inc	ecx
242
	cmp	ecx, [alt_tab_list_size]
242
	cmp	ecx, [alt_tab_list_size]
243
	jb	.loop1
243
	jb	.loop1
244
	cmp	eax, -1
244
	cmp	eax, -1
245
	jnz	.found
245
	jnz	.found
246
	xor	edx, edx
246
	xor	edx, edx
247
	xor	ecx, ecx
247
	xor	ecx, ecx
248
	jmp	.loop1
248
	jmp	.loop1
249
.notshift:
249
.notshift:
250
	xor	esi, esi
250
	xor	esi, esi
251
.loop2:
251
.loop2:
252
	cmp	[alt_tab_list+ecx*8+4], edx
252
	cmp	[alt_tab_list+ecx*8+4], edx
253
	jae	@f
253
	jae	@f
254
	cmp	[alt_tab_list+ecx*8+4], esi
254
	cmp	[alt_tab_list+ecx*8+4], esi
255
	jbe	@f
255
	jbe	@f
256
	mov	eax, ecx
256
	mov	eax, ecx
257
	mov	esi, [alt_tab_list+ecx*8+4]
257
	mov	esi, [alt_tab_list+ecx*8+4]
258
@@:
258
@@:
259
	inc	ecx
259
	inc	ecx
260
	cmp	ecx, [alt_tab_list_size]
260
	cmp	ecx, [alt_tab_list_size]
261
	jb	.loop2
261
	jb	.loop2
262
	cmp	eax, -1
262
	cmp	eax, -1
263
	jnz	.found
263
	jnz	.found
264
	or	edx, -1
264
	or	edx, -1
265
	xor	ecx, ecx
265
	xor	ecx, ecx
266
	jmp	.loop2
266
	jmp	.loop2
267
.found:
267
.found:
268
	mov	[current_alt_tab_app], eax
268
	mov	[current_alt_tab_app], eax
269
	push	eax
269
	push	eax
270
	xor	edx, edx
270
	xor	edx, edx
271
	div	[max_applications]
271
	div	[max_applications]
272
	mov	[page_list], eax
272
	mov	[page_list], eax
273
	mov	[draw_window_1], 1
273
	mov	[draw_window_1], 1
274
	mov	edi, app_list
274
	mov	edi, app_list
275
	push	edi
275
	push	edi
276
	mov	ecx, 20
276
	mov	ecx, 20
277
	or	eax, -1
277
	or	eax, -1
278
	rep	stosd
278
	rep	stosd
279
	pop	edi
279
	pop	edi
280
	pop	ecx
280
	pop	ecx
281
	sub	ecx, edx
281
	sub	ecx, edx
282
@@:
282
@@:
283
	cmp	ecx, [alt_tab_list_size]
283
	cmp	ecx, [alt_tab_list_size]
284
	jae	redraw_window_tabs
284
	jae	redraw_window_tabs
285
	mov	eax, [alt_tab_list+ecx*8]
285
	mov	eax, [alt_tab_list+ecx*8]
286
	stosd
286
	stosd
287
	inc	ecx
287
	inc	ecx
288
	jmp	@b
288
	jmp	@b
289
 
289
 
290
alt_tab_released:
290
alt_tab_released:
291
	mcall	66,5,0,0	; 㦥 ¯®©¬ «¨, 墠â¨â :)
291
	mcall	66,5,0,0	; 㦥 ¯®©¬ «¨, 墠â¨â :)
292
	or	eax, -1
292
	or	eax, -1
293
	xchg	eax, [current_alt_tab_app]
293
	xchg	eax, [current_alt_tab_app]
294
	mov	ecx, [alt_tab_list+eax*8]
294
	mov	ecx, [alt_tab_list+eax*8]
295
	mov	eax, 18
295
	mov	eax, 18
296
	mov	ebx, 3
296
	mov	ebx, 3
297
	int	0x40
297
	int	0x40
298
	jmp	redraw_window_tabs
298
	jmp	redraw_window_tabs
299
 
299
 
300
active_process	dd 0
300
active_process	dd 0
301
 
301
 
302
calendar_music:
302
calendar_music:
303
    mcall 55, eax, , , calendarmusic
303
    mcall 55, eax, , , calendarmusic
304
    ret
304
    ret
305
setup_music:
305
setup_music:
306
    mcall 55,eax, , ,setupmusic
306
    mcall 55,eax, , ,setupmusic
307
    ret
307
    ret
308
sysmeter_music:
308
sysmeter_music:
309
    mcall 55,eax, , ,sysmetermusic
309
    mcall 55,eax, , ,sysmetermusic
310
    ret
310
    ret
311
button_music:
311
button_music:
312
    mcall 55,eax, , ,buttonmusic
312
    mcall 55,eax, , ,buttonmusic
313
    ret
313
    ret
314
;syslang_music:
314
;syslang_music:
315
;    mcall 55, eax, , , syslangmusic
315
;    mcall 55, eax, , , syslangmusic
316
;    ret
316
;    ret
317
chlang_music:
317
chlang_music:
318
    mcall 55, eax, , , chlangmusic
318
    mcall 55, eax, , , chlangmusic
319
    ret
319
    ret
320
menu_music:
320
menu_music:
321
    mcall 55,eax, , ,menumusic
321
    mcall 55,eax, , ,menumusic
322
    ret
322
    ret
323
 
323
 
324
chlangmusic:	db 0x82,0x60,0x83,0x65,0x82,0x60,0
324
chlangmusic:	db 0x82,0x60,0x83,0x65,0x82,0x60,0
325
 
325
 
326
;syslangmusic:   db 0x82,0x65,0x83,0x70,0x82,0x65,0
326
;syslangmusic:   db 0x82,0x65,0x83,0x70,0x82,0x65,0
327
 
327
 
328
menumusic:	db 0x82,0x50,0x84,0x48,0x82,0x50,0x84,0x53,0x82,0x51,0
328
menumusic:	db 0x82,0x50,0x84,0x48,0x82,0x50,0x84,0x53,0x82,0x51,0
329
 
329
 
330
activatemusic:	db 0x83,0x30,0x85,0x60,0
330
activatemusic:	db 0x83,0x30,0x85,0x60,0
331
 
331
 
332
buttonmusic:	db 0x85,0x25,0x85,0x40,0
332
buttonmusic:	db 0x85,0x25,0x85,0x40,0
333
 
333
 
334
sysmetermusic:	db 0x85,0x35,0x85,0x45,0
334
sysmetermusic:	db 0x85,0x35,0x85,0x45,0
335
 
335
 
336
setupmusic:	db 0x85,0x40,0x85,0x50,0
336
setupmusic:	db 0x85,0x40,0x85,0x50,0
337
 
337
 
338
calendarmusic:	db 0x85,0x37,0x85,0x48,0
338
calendarmusic:	db 0x85,0x37,0x85,0x48,0
339
 
339
 
340
;  .exit: mcall -1
340
;  .exit: mcall -1
341
 
341
 
342
 
342
 
343
START:
343
START:
344
;       mov     eax, 51
344
;       mov     eax, 51
345
;       mov     ebx, 1
345
;       mov     ebx, 1
346
;       mov     ecx, detect_start
346
;       mov     ecx, detect_start
347
;       mov     edx, detect_stack
347
;       mov     edx, detect_stack
348
;       int     0x40
348
;       int     0x40
349
	mcall 66,4,0,2		; LShift+RShift
349
	mcall 66,4,0,2		; LShift+RShift
350
	mcall 66, , ,11h	; Ctrl+Shift
350
	mcall 66, , ,11h	; Ctrl+Shift
351
	mcall 66,,88,110h	; Alt+Ctrl+F12
351
	mcall 66,,88,110h	; Alt+Ctrl+F12
352
	mcall 66,,91,0h 	; LWin
352
	mcall 66,,91,0h 	; LWin
353
	mcall 66,,92 		; RWin
353
	mcall 66,,92 		; RWin
354
;	mcall 66,,91,100h	; Alt+LWin
354
;	mcall 66,,91,100h	; Alt+LWin
355
;	mcall 66,,92		; Alt+RWin
355
;	mcall 66,,92		; Alt+RWin
356
	mcall 66,,62,100h	; Alt+F4
356
	mcall 66,,62,100h	; Alt+F4
357
;	mcall 66,,71		; Alt+Home
357
;	mcall 66,,71		; Alt+Home
358
;	mcall 66,,72		; Alt+Up
358
;	mcall 66,,72		; Alt+Up
359
	mcall 66,,15		; Alt+Tab
359
	mcall 66,,15		; Alt+Tab
360
	mcall 66,,2		; Alt+1
360
	mcall 66,,2		; Alt+1
361
	mcall 66,,3		; Alt+2
361
	mcall 66,,3		; Alt+2
362
	mcall 66,,4		; Alt+3
362
	mcall 66,,4		; Alt+3
363
	mcall 66,,5		; Alt+4
363
	mcall 66,,5		; Alt+4
364
	mcall 66,,6		; Alt+5
364
	mcall 66,,6		; Alt+5
365
	mcall 66,,7		; Alt+6
365
	mcall 66,,7		; Alt+6
366
	mcall 66,,8		; Alt+7
366
	mcall 66,,8		; Alt+7
367
	mcall 66,,,101h 	; Alt+Shift+Tab
367
	mcall 66,,,101h 	; Alt+Shift+Tab
368
	mcall 66,,69		; Alt+Shift+NumLock
368
	mcall 66,,69		; Alt+Shift+NumLock
369
 
369
 
370
    mcall 18, 8, 1
370
    mcall 18, 8, 1
371
    test eax, eax
371
    test eax, eax
372
    jne  @f
372
    jne  @f
373
    mcall 18, 8, 2
373
    mcall 18, 8, 2
374
  @@:
374
  @@:
375
	mov	eax, 70
375
	mov	eax, 70
376
	mov	ebx, dat_fileinfo
376
	mov	ebx, dat_fileinfo
377
	int	0x40
377
	int	0x40
378
 
378
 
379
    mov  edi,width
379
    mov  edi,width
380
    mov  esi,I_END
380
    mov  esi,I_END
381
    xor  eax,eax
381
    xor  eax,eax
382
  new_number:
382
  new_number:
383
    cmp  [esi],byte ';'
383
    cmp  [esi],byte ';'
384
    je	 number_ready
384
    je	 number_ready
385
    imul eax,10
385
    imul eax,10
386
    movzx ebx,byte [esi]
386
    movzx ebx,byte [esi]
387
    sub  ebx,'0'
387
    sub  ebx,'0'
388
    add  eax,ebx
388
    add  eax,ebx
389
    inc  esi
389
    inc  esi
390
    jmp  new_number
390
    jmp  new_number
391
  number_ready:
391
  number_ready:
392
    stosd
392
    stosd
393
    xor  eax,eax
393
    xor  eax,eax
394
    inc  esi
394
    inc  esi
395
    cmp  [esi],byte 'x'
395
    cmp  [esi],byte 'x'
396
    jne  new_number
396
    jne  new_number
397
 
397
 
398
	mcall	14
398
	mcall	14
399
	mov	[screen_size],eax
399
	mov	[screen_size],eax
400
 
400
 
401
	;mcall  48,5            ; barsuk {
401
	;mcall  48,5            ; barsuk {
402
	mov	eax, 14
402
	mov	eax, 14
403
	int	0x40
403
	int	0x40
404
	mov	ecx,eax
404
	mov	ecx,eax
405
;eax = [xsize]*65536 + [ysize], £¤¥
405
;eax = [xsize]*65536 + [ysize], £¤¥
406
	shr	ecx, 16
406
	shr	ecx, 16
407
	and	eax, 0xFFFF
407
	and	eax, 0xFFFF
408
	lea	edx,[eax-PANEL_HEIGHT-1]
408
	lea	edx,[eax-PANEL_HEIGHT-1]
409
				; barsuk }
409
				; barsuk }
410
 
410
 
411
	mcall	48,6
411
	mcall	48,6
412
 
412
 
413
; // Alver 26.08.2007 // {
413
; // Alver 26.08.2007 // {
414
   mov	eax, 9			    ; info of process
414
   mov	eax, 9			    ; info of process
415
   mov	ebx, process_info_buffer
415
   mov	ebx, process_info_buffer
416
   mov	ecx, -1
416
   mov	ecx, -1
417
   mcall
417
   mcall
418
   mov	ecx, dword [process_info_buffer+30]
418
   mov	ecx, dword [process_info_buffer+30]
419
   mcall 18,21
419
   mcall 18,21
420
   mov	[this_slot], eax
420
   mov	[this_slot], eax
421
   mov	[max_slot], 255
421
   mov	[max_slot], 255
422
; } \\ Alver \\
422
; } \\ Alver \\
423
 
423
 
424
    call set_variables
424
    call set_variables
425
 
425
 
426
start_after_minimize:
426
start_after_minimize:
427
 
427
 
428
    call draw_window
428
    call draw_window
429
    call draw_info
429
    call draw_info
430
    call draw_running_applications
430
    call draw_running_applications
431
 
431
 
432
    mov  eax, 23
432
    mov  eax, 23
433
    mov  ebx, 30
433
    mov  ebx, 30
434
    int  0x40
434
    int  0x40
435
    call    load_ini
435
    call    load_ini
436
    call    fir_lng
436
    call    fir_lng
437
 
437
 
438
still:
438
still:
439
;     mcall  13,<390,70>,<3,11>,0xffffff
439
;     mcall  13,<390,70>,<3,11>,0xffffff
440
;     mov    ecx,[button_presssed_alt]
440
;     mov    ecx,[button_presssed_alt]
441
;     mcall  47,0x80100,ecx ,400 shl 16+5,0
441
;     mcall  47,0x80100,ecx ,400 shl 16+5,0
442
 
442
 
443
    call draw_info
443
    call draw_info
444
    call draw_running_applications
444
    call draw_running_applications
445
 
445
 
446
	mov	eax, 18 			; check if active window changed
446
	mov	eax, 18 			; check if active window changed
447
	mov	ebx, 7				; barsuk
447
	mov	ebx, 7				; barsuk
448
	int	0x40
448
	int	0x40
449
	cmp	eax, [last_active_window]
449
	cmp	eax, [last_active_window]
450
	jz	@f
450
	jz	@f
451
 
451
 
452
; need_window_tab:
452
; need_window_tab:
453
; in: ebx->process info
453
; in: ebx->process info
454
; out: ZF set <=> do not draw
454
; out: ZF set <=> do not draw
455
 
455
 
456
	mov	ebx, [last_active_window]
456
	mov	ebx, [last_active_window]
457
	mov	[prev_active_window], ebx
457
	mov	[prev_active_window], ebx
458
	mov	[last_active_window], eax
458
	mov	[last_active_window], eax
459
 
459
 
460
	mov	ecx, eax
460
	mov	ecx, eax
461
	mov	eax, 9
461
	mov	eax, 9
462
	mov	ebx, process_info_buffer
462
	mov	ebx, process_info_buffer
463
	int	0x40
463
	int	0x40
464
 
464
 
465
	call	need_window_tab
465
	call	need_window_tab
466
	jnz	.need_repaint
466
	jnz	.need_repaint
467
 
467
 
468
	mov	eax, 9
468
	mov	eax, 9
469
	mov	ebx, process_info_buffer
469
	mov	ebx, process_info_buffer
470
	mov	ecx, [prev_active_window]
470
	mov	ecx, [prev_active_window]
471
	int	0x40
471
	int	0x40
472
	call	need_window_tab
472
	call	need_window_tab
473
	jz	@f
473
	jz	@f
474
 
474
 
475
.need_repaint:
475
.need_repaint:
476
	mov	dword [active_window_changed], 1
476
	mov	dword [active_window_changed], 1
477
 
477
 
478
@@:
478
@@:
479
 
479
 
480
    mov  eax, 23
480
    mov  eax, 23
481
    mov  ebx, 20
481
    mov  ebx, 20
482
    int  0x40
482
    int  0x40
483
 
483
 
484
    cmp  eax,1		; redraw ?
484
    cmp  eax,1		; redraw ?
485
    jz	 red
485
    jz	 red
486
    cmp  eax,3		; button ?
486
    cmp  eax,3		; button ?
487
    jz	 button
487
    jz	 button
488
	call	handle_key
488
	call	handle_key
489
 
489
 
490
	cmp  dword [active_window_changed], 0
490
	cmp  dword [active_window_changed], 0
491
	jnz   red_active
491
	jnz   red_active
492
 
492
 
493
	jmp	still
493
	jmp	still
494
 
494
 
495
  red_active:		; barsuk
495
  red_active:		; barsuk
496
 
496
 
497
  red:			 ; redraw window
497
  red:			 ; redraw window
498
 
498
 
499
	mov	dword [active_window_changed], 0
499
	mov	dword [active_window_changed], 0
500
 
500
 
501
	mcall	14
501
	mcall	14
502
	movzx	ecx,ax
502
	movzx	ecx,ax
503
	mov	edx,eax
503
	mov	edx,eax
504
	shr	edx,16
504
	shr	edx,16
505
	cmp	[screen_size.height],ax
505
	cmp	[screen_size.height],ax
506
	jne	@f
506
	jne	@f
507
	rol	eax,16
507
	rol	eax,16
508
	cmp	[screen_size.width],ax
508
	cmp	[screen_size.width],ax
509
	je	.lp1
509
	je	.lp1
510
	rol	eax,16
510
	rol	eax,16
511
    @@: mov	[screen_size],eax
511
    @@: mov	[screen_size],eax
512
	sub	ecx,PANEL_HEIGHT
512
	sub	ecx,PANEL_HEIGHT
513
	mcall	67,0,,,PANEL_HEIGHT
513
	mcall	67,0,,,PANEL_HEIGHT
514
 
514
 
515
  .lp1:
515
  .lp1:
516
 
516
 
517
    call draw_window
517
    call draw_window
518
    call draw_info
518
    call draw_info
519
    jmp  still
519
    jmp  still
520
 
520
 
521
  button:		 ; button
521
  button:		 ; button
522
    mov  eax,17
522
    mov  eax,17
523
    int  0x40
523
    int  0x40
524
 
-
 
-
 
524
							; dunkaist[
-
 
525
	test eax,	0xfffffe00	; is it close button? (signal from @panel)
-
 
526
	 jz  still				; if so - wait for another event, because @panel shouldn't be closed
-
 
527
							; dunkaist]
525
    cmp  al, 0			; barsuk
528
    cmp  al, 0			; barsuk
526
    jnz  right_mouse
529
    jnz  right_mouse
527
 
530
 
528
    cmp  ah,50
531
    cmp  ah,50
529
    jb	 no_activate
532
    jb	 no_activate
530
    cmp  ah,70
533
    cmp  ah,70
531
    jg	 no_activate
534
    jg	 no_activate
532
 
535
 
533
    movzx ecx,byte ah
536
    movzx ecx,byte ah
534
    sub  ecx,52
537
    sub  ecx,52
535
    shl  ecx,2
538
    shl  ecx,2
536
 
539
 
537
    mov  eax,18
540
    mov  eax,18
538
    mov  ebx,3
541
    mov  ebx,3
539
    mov  ecx,[app_list+ecx]
542
    mov  ecx,[app_list+ecx]
540
    int  0x40
543
    int  0x40
541
;    cmp  [music_type],0
544
;    cmp  [music_type],0
542
;    je   still
545
;    je   still
543
    mcall 55,eax, , ,activatemusic
546
    mcall 55,eax, , ,activatemusic
544
    jmp  still
547
    jmp  still
545
 
548
 
546
right_mouse:			; barsuk
549
right_mouse:			; barsuk
547
 
550
 
548
    cmp  ah,50
551
    cmp  ah,50
549
    jb	 still
552
    jb	 still
550
    cmp  ah,70
553
    cmp  ah,70
551
    jg	 still
554
    jg	 still
552
 
555
 
553
    movzx ecx,byte ah
556
    movzx ecx,byte ah
554
    sub  ecx,52
557
    sub  ecx,52
555
 
558
 
556
    cmp  ecx, [app_tab_count]
559
    cmp  ecx, [app_tab_count]
557
    jge  still
560
    jge  still
558
 
561
 
559
    shl  ecx,2
562
    shl  ecx,2
560
 
563
 
561
    mov  eax, 37
564
    mov  eax, 37
562
    mov  ebx, 0
565
    mov  ebx, 0
563
    int  0x40
566
    int  0x40
564
    mov  ebx, eax
567
    mov  ebx, eax
565
    shr  eax, 16
568
    shr  eax, 16
566
    mov  [x_coord], ax
569
    mov  [x_coord], ax
567
    and  ebx, 0xFFFF
570
    and  ebx, 0xFFFF
568
    mov  [y_coord], bx
571
    mov  [y_coord], bx
569
 
572
 
570
    mov  eax, 9
573
    mov  eax, 9
571
    mov  ecx,[app_list+ecx]	; ecx->selected app.slot
574
    mov  ecx,[app_list+ecx]	; ecx->selected app.slot
572
    mov  [n_slot], ecx
575
    mov  [n_slot], ecx
573
    mov  ebx, procinfo_for_detect
576
    mov  ebx, procinfo_for_detect
574
    int  0x40
577
    int  0x40
575
 
578
 
576
;    cmp  dword [procinfo_for_detect+process_information.slot_state],9
579
;    cmp  dword [procinfo_for_detect+process_information.slot_state],9
577
;    jz   still
580
;    jz   still
578
 
581
 
579
	mov	eax, 51
582
	mov	eax, 51
580
	mov	ebx, 1
583
	mov	ebx, 1
581
	mov	ecx, context_menu_start
584
	mov	ecx, context_menu_start
582
	mov	edx, ctx_menu_stack
585
	mov	edx, ctx_menu_stack
583
	int	0x40
586
	int	0x40
584
 
587
 
585
	mov	[ctx_menu_PID], eax
588
	mov	[ctx_menu_PID], eax
586
 
589
 
587
    jmp  still
590
    jmp  still
588
 
591
 
589
 
592
 
590
  no_activate:
593
  no_activate:
591
 
594
 
592
 
595
 
593
    cmp  ah,101 	  ; minimize to left
596
    cmp  ah,101 	  ; minimize to left
594
    je	 left_button
597
    je	 left_button
595
 
598
 
596
    cmp  ah,102 	  ; minimize to right
599
    cmp  ah,102 	  ; minimize to right
597
    je	 right_button
600
    je	 right_button
598
 
601
 
599
; // Alver 26.08.2007 // {
602
; // Alver 26.08.2007 // {
600
    cmp  ah, 103
603
    cmp  ah, 103
601
    je	 clean_desktop		    ; minimize all windows
604
    je	 clean_desktop		    ; minimize all windows
602
    cmp  ah, 104
605
    cmp  ah, 104
603
    je	 restore_desktop	    ; restore minimized windows
606
    je	 restore_desktop	    ; restore minimized windows
604
    cmp  ah, 105
607
    cmp  ah, 105
605
    je	 swap_minimized_desktop     ; minimize normal windows, and restore minimized windows
608
    je	 swap_minimized_desktop     ; minimize normal windows, and restore minimized windows
606
; } \\ Alver \\
609
; } \\ Alver \\
607
 
610
 
608
    cmp  ah,byte 1	  ; start/terminate menu
611
    cmp  ah,byte 1	  ; start/terminate menu
609
    jnz  noselect
612
    jnz  noselect
610
    call menu_handler
613
    call menu_handler
611
;    cmp  [music_type],0
614
;    cmp  [music_type],0
612
;    je   still
615
;    je   still
613
    call menu_music
616
    call menu_music
614
    jmp  still
617
    jmp  still
615
  noselect:
618
  noselect:
616
 
619
 
617
	mov	ebx, exec_fileinfo
620
	mov	ebx, exec_fileinfo
618
    cmp  ah,byte 2	       ; start calendar
621
    cmp  ah,byte 2	       ; start calendar
619
    jnz  noid15  ;noclock
622
    jnz  noid15  ;noclock
620
	mov	dword [ebx+21], calendar_name
623
	mov	dword [ebx+21], calendar_name
621
	mov	eax, 70
624
	mov	eax, 70
622
	int	0x40
625
	int	0x40
623
    call calendar_music
626
    call calendar_music
624
    jmp  still
627
    jmp  still
625
 
628
 
626
  noid15:
629
  noid15:
627
    cmp  ah,16
630
    cmp  ah,16
628
    jne  noid16
631
    jne  noid16
629
	mov	ebx, setup_exec
632
	mov	ebx, setup_exec
630
	mov	dword [ebx+8], chlang
633
	mov	dword [ebx+8], chlang
631
	mov	eax, 70
634
	mov	eax, 70
632
	int	0x40
635
	int	0x40
633
    call chlang_music
636
    call chlang_music
634
    mcall 5, 25
637
    mcall 5, 25
635
    jmp  still
638
    jmp  still
636
 
639
 
637
  noid16:
640
  noid16:
638
;    cmp  ah,17
641
;    cmp  ah,17
639
;    jne  noid17
642
;    jne  noid17
640
;        mov     ebx, setup_exec
643
;        mov     ebx, setup_exec
641
;        mov     dword [ebx+8], syslang
644
;        mov     dword [ebx+8], syslang
642
;        mov     eax, 70
645
;        mov     eax, 70
643
;        int     0x40
646
;        int     0x40
644
;    call syslang_music
647
;    call syslang_music
645
;    mcall 5, 25
648
;    mcall 5, 25
646
;    jmp  still
649
;    jmp  still
647
;
650
;
648
;  noid17:
651
;  noid17:
649
    cmp  ah,18
652
    cmp  ah,18
650
    jne  noid18
653
    jne  noid18
651
	mov	dword [ebx+21], sysmeter_name
654
	mov	dword [ebx+21], sysmeter_name
652
	mov	eax, 70
655
	mov	eax, 70
653
	int	0x40
656
	int	0x40
654
    call sysmeter_music
657
    call sysmeter_music
655
    jmp  still
658
    jmp  still
656
 
659
 
657
  noid18:
660
  noid18:
658
    cmp  ah,19
661
    cmp  ah,19
659
    jne  noid19
662
    jne  noid19
660
;    inc  [music_type]
663
;    inc  [music_type]
661
;    and  [music_type],1
664
;    and  [music_type],1
662
    mcall 18,8,2
665
    mcall 18,8,2
663
;    mcall 18,8
666
;    mcall 18,8
664
;    mov [sound_flag],al
667
;    mov [sound_flag],al
665
 
668
 
666
;    mcall 15,4,2
669
;    mcall 15,4,2
667
    mcall 15,3
670
    mcall 15,3
668
    jmp  red
671
    jmp  red
669
 
672
 
670
  noid19:
673
  noid19:
671
    cmp  ah,20		   ; start system setup
674
    cmp  ah,20		   ; start system setup
672
    jnz  noid20
675
    jnz  noid20
673
	mov	ebx, setup_exec
676
	mov	ebx, setup_exec
674
	and	dword [ebx+8], 0
677
	and	dword [ebx+8], 0
675
	mov	eax, 70
678
	mov	eax, 70
676
	int	0x40
679
	int	0x40
677
    call setup_music
680
    call setup_music
678
    jmp still
681
    jmp still
679
 
682
 
680
 noid20:
683
 noid20:
681
    cmp  ah,21
684
    cmp  ah,21
682
    jnz  noid21
685
    jnz  noid21
683
; // Alver 25.08.2007 // {
686
; // Alver 25.08.2007 // {
684
    cmp  [page_list], 99
687
    cmp  [page_list], 99
685
    jnc  @f
688
    jnc  @f
686
  ;  cmp  [page_list],15
689
  ;  cmp  [page_list],15
687
  ;  je    @f
690
  ;  je    @f
688
; } \\ Alver \\
691
; } \\ Alver \\
689
    inc  [page_list]
692
    inc  [page_list]
690
    jmp  red
693
    jmp  red
691
  @@:
694
  @@:
692
    jmp still
695
    jmp still
693
 
696
 
694
 noid21:
697
 noid21:
695
    cmp  ah,22
698
    cmp  ah,22
696
    jnz  noid22
699
    jnz  noid22
697
    cmp  [page_list],0
700
    cmp  [page_list],0
698
    je	   @f
701
    je	   @f
699
    dec  [page_list]
702
    dec  [page_list]
700
    jmp  red
703
    jmp  red
701
  @@:
704
  @@:
702
    jmp  still
705
    jmp  still
703
 
706
 
704
 noid22:
707
 noid22:
705
 
708
 
706
    jmp  still
709
    jmp  still
707
 
710
 
708
; // Alver 26.08.2007 //{
711
; // Alver 26.08.2007 //{
709
restore_desktop:
712
restore_desktop:
710
    mcall   9,process_info_buffer,-1
713
    mcall   9,process_info_buffer,-1
711
    mov     [max_slot], eax
714
    mov     [max_slot], eax
712
    mov     ecx, 2
715
    mov     ecx, 2
713
    mov     edx, 2
716
    mov     edx, 2
714
@@:
717
@@:
715
    mcall   18, 22
718
    mcall   18, 22
716
    inc     edx
719
    inc     edx
717
    cmp     edx, [max_slot]
720
    cmp     edx, [max_slot]
718
    jbe     @b
721
    jbe     @b
719
    jmp  still
722
    jmp  still
720
 
723
 
721
swap_minimized_desktop:
724
swap_minimized_desktop:
722
    xor  esi, esi
725
    xor  esi, esi
723
    inc esi
726
    inc esi
724
    jmp  min_swap_desktop
727
    jmp  min_swap_desktop
725
clean_desktop:
728
clean_desktop:
726
    xor esi,esi
729
    xor esi,esi
727
 min_swap_desktop:		   ; input esi 0 - min, <>0 swap
730
 min_swap_desktop:		   ; input esi 0 - min, <>0 swap
728
     mov    ecx, 2		   ;  ç «ì­ë© ­®¬¥à á«®â  ¯à®æ¥áá 
731
     mov    ecx, 2		   ;  ç «ì­ë© ­®¬¥à á«®â  ¯à®æ¥áá 
729
     mov    ebx, process_info_buffer
732
     mov    ebx, process_info_buffer
730
 
733
 
731
.loop1:
734
.loop1:
732
     cmp    ecx, [this_slot]
735
     cmp    ecx, [this_slot]
733
     je     .loop1xx
736
     je     .loop1xx
734
     mcall  9
737
     mcall  9
735
     mov    [max_slot], eax
738
     mov    [max_slot], eax
736
     mov    dx, word [process_info_buffer+50]
739
     mov    dx, word [process_info_buffer+50]
737
     cmp    dx, 9		    ; à®¢¥àª  ᢮¡®¤¥­ «¨ ¤ ­­ë© á«®â
740
     cmp    dx, 9		    ; à®¢¥àª  ᢮¡®¤¥­ «¨ ¤ ­­ë© á«®â
738
     jz     .loop1xx
741
     jz     .loop1xx
739
     mov    edx, dword [ebx+10]
742
     mov    edx, dword [ebx+10]
740
     cmp    dl, '@'
743
     cmp    dl, '@'
741
     je     .loop1xx
744
     je     .loop1xx
742
     cmp    dword [ebx+10], 'ICON'
745
     cmp    dword [ebx+10], 'ICON'
743
     jnz    @f
746
     jnz    @f
744
     cmp    [ebx+42], dword 51
747
     cmp    [ebx+42], dword 51
745
     jnz    @f
748
     jnz    @f
746
     cmp    [ebx+46], dword 51
749
     cmp    [ebx+46], dword 51
747
     jz     .loop1xx
750
     jz     .loop1xx
748
@@:
751
@@:
749
     cmp    [ebx+10], dword '    '
752
     cmp    [ebx+10], dword '    '
750
     jz     .loop1xx
753
     jz     .loop1xx
751
 
754
 
752
     pushad
755
     pushad
753
     mov    edx, ecx
756
     mov    edx, ecx
754
     xor    ecx, ecx
757
     xor    ecx, ecx
755
     or     esi, esi
758
     or     esi, esi
756
     jz     @f
759
     jz     @f
757
     movzx  eax, byte [process_info_buffer+70]
760
     movzx  eax, byte [process_info_buffer+70]
758
     and    eax, 2	      ; mask minimize
761
     and    eax, 2	      ; mask minimize
759
     jz     @f
762
     jz     @f
760
     mov    ecx, 2	      ; restore
763
     mov    ecx, 2	      ; restore
761
@@:
764
@@:
762
     mcall  18, 22
765
     mcall  18, 22
763
     popad
766
     popad
764
.loop1xx:
767
.loop1xx:
765
     inc    ecx
768
     inc    ecx
766
     cmp    ecx, [max_slot]
769
     cmp    ecx, [max_slot]
767
     jbe    .loop1
770
     jbe    .loop1
768
     jmp    still
771
     jmp    still
769
; } \\ Alver \\
772
; } \\ Alver \\
770
 
773
 
771
draw_running_applications:
774
draw_running_applications:
772
 
775
 
773
    pusha
776
    pusha
774
 
777
 
775
    cmp  [icons],1
778
    cmp  [icons],1
776
    jne  dr_ret
779
    jne  dr_ret
777
 
780
 
778
    call calculate_applications
781
    call calculate_applications
779
 
782
 
780
    cmp  edi,[running_applications]
783
    cmp  edi,[running_applications]
781
    jne  noret
784
    jne  noret
782
    popa
785
    popa
783
    ret
786
    ret
784
  noret:
787
  noret:
785
 
788
 
786
;    cmp  edi,[running_applications]
789
;    cmp  edi,[running_applications]
787
;    jge  no_application_decrease
790
;    jge  no_application_decrease
788
    call draw_window
791
    call draw_window
789
;  no_application_decrease:
792
;  no_application_decrease:
790
 
793
 
791
    mov  [running_applications],edi
794
    mov  [running_applications],edi
792
 
795
 
793
	call	redraw_window_tabs
796
	call	redraw_window_tabs
794
 
797
 
795
  dr_ret:
798
  dr_ret:
796
 
799
 
797
    popa
800
    popa
798
 
801
 
799
    ret
802
    ret
800
 
803
 
801
need_window_tab:
804
need_window_tab:
802
; in: ebx->process info
805
; in: ebx->process info
803
; out: ZF set <=> do not draw
806
; out: ZF set <=> do not draw
804
	cmp	byte [ebx+10], '@'
807
	cmp	byte [ebx+10], '@'
805
	jz	.nodraw
808
	jz	.nodraw
806
; \begin{diamond}[29.03.2007]
809
; \begin{diamond}[29.03.2007]
807
; do not draw undefined (zero-sized) windows
810
; do not draw undefined (zero-sized) windows
808
	cmp	dword [ebx+42], 0
811
	cmp	dword [ebx+42], 0
809
	jnz	@f
812
	jnz	@f
810
	cmp	dword [ebx+46], 0
813
	cmp	dword [ebx+46], 0
811
	jz	.nodraw
814
	jz	.nodraw
812
@@:
815
@@:
813
; \end{diamond}[29.03.2007]
816
; \end{diamond}[29.03.2007]
814
;  (pterox)[12.10.2010] 
817
;  (pterox)[12.10.2010] 
815
; do not draw OpenDialog windows
818
; do not draw OpenDialog windows
816
	push	EDI
819
	push	EDI
817
	mov	EDI, dword [EBX+10]
820
	mov	EDI, dword [EBX+10]
818
	or	EDI, 0x20202020
821
	or	EDI, 0x20202020
819
	cmp	EDI, 'open'
822
	cmp	EDI, 'open'
820
	jne	@f
823
	jne	@f
821
	mov	EDI, dword [EBX+14]
824
	mov	EDI, dword [EBX+14]
822
	or	EDI, 0x20202020
825
	or	EDI, 0x20202020
823
	cmp	dword [EBX+14], 'dial'
826
	cmp	dword [EBX+14], 'dial'
824
	jne	@f
827
	jne	@f
825
	pop	EDI
828
	pop	EDI
826
	jmp	.nodraw
829
	jmp	.nodraw
827
 
830
 
828
@@:
831
@@:
829
	pop	EDI
832
	pop	EDI
830
;  (pterox)[12.10.2010] 
833
;  (pterox)[12.10.2010] 
831
	cmp	dword [ebx+10], 'ICON'
834
	cmp	dword [ebx+10], 'ICON'
832
	jnz	@f
835
	jnz	@f
833
	cmp	[ebx+42], dword 51
836
	cmp	[ebx+42], dword 51
834
	jnz	@f
837
	jnz	@f
835
	cmp	[ebx+46], dword 51
838
	cmp	[ebx+46], dword 51
836
	jz	.nodraw
839
	jz	.nodraw
837
@@:
840
@@:
838
	cmp	[ebx+10], dword '    '
841
	cmp	[ebx+10], dword '    '
839
.nodraw:
842
.nodraw:
840
	ret
843
	ret
841
 
844
 
842
redraw_window_tabs:
845
redraw_window_tabs:
843
	xor	edi, edi
846
	xor	edi, edi
844
	mov	[contrast], 0
847
	mov	[contrast], 0
845
 
848
 
846
	push	ebp			; barsuk {
849
	push	ebp			; barsuk {
847
	mov	eax, 18
850
	mov	eax, 18
848
	mov	ebx, 7
851
	mov	ebx, 7
849
	int	0x40
852
	int	0x40
850
	mov	ebp, eax		; barsuk }
853
	mov	ebp, eax		; barsuk }
851
 
854
 
852
.loop:
855
.loop:
853
	mov	ecx, [app_list+edi*4]
856
	mov	ecx, [app_list+edi*4]
854
	cmp	ecx, -1
857
	cmp	ecx, -1
855
	jz	.done
858
	jz	.done
856
 
859
 
857
	push	ecx
860
	push	ecx
858
	mov	eax, 9
861
	mov	eax, 9
859
	mov	ebx, 0x8000
862
	mov	ebx, 0x8000
860
	int	0x40
863
	int	0x40
861
 
864
 
862
	mov	eax, 13
865
	mov	eax, 13
863
	imul	ebx, edi, 6*10*10000h
866
	imul	ebx, edi, 6*10*10000h
864
; // Alver 26.08.2007 // {
867
; // Alver 26.08.2007 // {
865
;       add     ebx, 6*10*10000h + 7*10000h + 54
868
;       add     ebx, 6*10*10000h + 7*10000h + 54
866
	add	ebx, 12*10*10000h + 7*10000h + 54
869
	add	ebx, 12*10*10000h + 7*10000h + 54
867
; } // Alver //
870
; } // Alver //
868
	mov	ecx, 3*10000h + 14
871
	mov	ecx, 3*10000h + 14
869
 
872
 
870
;       xor     edx, edx
873
;       xor     edx, edx
871
	mov	edx, 0x383838		; barsuk
874
	mov	edx, 0x383838		; barsuk
872
	int	0x40
875
	int	0x40
873
	sub	ebx, 10000h + 53
876
	sub	ebx, 10000h + 53
874
	mov	ecx, 4*10000h + 12
877
	mov	ecx, 4*10000h + 12
875
	int	0x40
878
	int	0x40
876
	sub	ebx, 10000h
879
	sub	ebx, 10000h
877
	mov	ecx, 5*10000h + 10
880
	mov	ecx, 5*10000h + 10
878
	int	0x40
881
	int	0x40
879
	add	ebx, 56*10000h
882
	add	ebx, 56*10000h
880
	mov	ecx, 4*10000h + 12
883
	mov	ecx, 4*10000h + 12
881
	int	0x40
884
	int	0x40
882
	add	ebx, 10000h
885
	add	ebx, 10000h
883
	mov	ecx, 5*10000h + 10
886
	mov	ecx, 5*10000h + 10
884
	int	0x40
887
	int	0x40
885
 
888
 
886
	mov	edx, [wcolor]	; barsuk
889
	mov	edx, [wcolor]	; barsuk
887
	pop	ecx
890
	pop	ecx
888
	cmp	ebp, ecx	; ecx=active slot number
891
	cmp	ebp, ecx	; ecx=active slot number
889
	jnz	@f
892
	jnz	@f
890
	mov	edx, [system_colours.work_button]
893
	mov	edx, [system_colours.work_button]
891
@@:
894
@@:
892
	mov	esi, [current_alt_tab_app]
895
	mov	esi, [current_alt_tab_app]
893
	cmp	esi, -1
896
	cmp	esi, -1
894
	jz	@f
897
	jz	@f
895
	cmp	ecx, [alt_tab_list+esi*8]
898
	cmp	ecx, [alt_tab_list+esi*8]
896
	jnz	@f
899
	jnz	@f
897
;	xor	edx, 0xFFFFFF
900
;	xor	edx, 0xFFFFFF
898
	mov	edx, 0xFF8000
901
	mov	edx, 0xFF8000
899
@@:
902
@@:
900
	sub	ebx, 55*10000h - 53
903
	sub	ebx, 55*10000h - 53
901
	mov	ecx, 4*10000h + 12
904
	mov	ecx, 4*10000h + 12
902
	int	0x40
905
	int	0x40
903
	sub	ebx, 10000h + 53
906
	sub	ebx, 10000h + 53
904
	mov	ecx, 5*10000h + 10
907
	mov	ecx, 5*10000h + 10
905
	int	0x40
908
	int	0x40
906
	add	ebx, 55*10000h
909
	add	ebx, 55*10000h
907
	int	0x40
910
	int	0x40
908
 
911
 
909
	mov	eax, 4
912
	mov	eax, 4
910
	sub	ebx, 51*10000h - 6
913
	sub	ebx, 51*10000h - 6
911
	mov	ecx, [system_colours.work_button_text]	;0xffffff
914
	mov	ecx, [system_colours.work_button_text]	;0xffffff
912
	mov	edx, 0x8000+10
915
	mov	edx, 0x8000+10
913
	mov	esi, 11
916
	mov	esi, 11
914
	int	0x40
917
	int	0x40
915
 
918
 
916
.nodraw:
919
.nodraw:
917
	inc	edi
920
	inc	edi
918
	cmp	edi, [max_applications]
921
	cmp	edi, [max_applications]
919
	jb	.loop
922
	jb	.loop
920
.done:
923
.done:
921
	pop	ebp
924
	pop	ebp
922
	ret
925
	ret
923
 
926
 
924
calculate_applications:
927
calculate_applications:
925
 
928
 
926
    mov  eax,[max_applications]
929
    mov  eax,[max_applications]
927
    mul  [page_list]
930
    mul  [page_list]
928
    test eax,eax
931
    test eax,eax
929
    je	  @f
932
    je	  @f
930
    inc  eax
933
    inc  eax
931
  @@:
934
  @@:
932
    mov  [draw_start_position],eax
935
    mov  [draw_start_position],eax
933
 
936
 
934
    mov  edi,app_list
937
    mov  edi,app_list
935
    mov  ecx,20
938
    mov  ecx,20
936
    mov  eax,-1
939
    mov  eax,-1
937
    cld
940
    cld
938
    rep  stosd
941
    rep  stosd
939
 
942
 
940
    mov  edi,0
943
    mov  edi,0
941
    mov  ecx,2
944
    mov  ecx,2
942
 
945
 
943
  cnewpr:
946
  cnewpr:
944
 
947
 
945
    mov  eax,9
948
    mov  eax,9
946
    mov  ebx,0x8000
949
    mov  ebx,0x8000
947
    int  0x40
950
    int  0x40
948
 
951
 
949
	call	need_window_tab
952
	call	need_window_tab
950
	jz	cnorpl
953
	jz	cnorpl
951
	sub	[draw_start_position], 1
954
	sub	[draw_start_position], 1
952
	jg	cnorpl
955
	jg	cnorpl
953
 
956
 
954
    mov  [app_list+edi*4],ecx
957
    mov  [app_list+edi*4],ecx
955
 
958
 
956
    inc  edi
959
    inc  edi
957
 
960
 
958
  cnorpl:
961
  cnorpl:
959
    inc  ecx
962
    inc  ecx
960
 
963
 
961
    cmp  eax,ecx
964
    cmp  eax,ecx
962
    jge  cnewpr
965
    jge  cnewpr
963
 
966
 
964
    mov  [app_tab_count], edi	; barsuk
967
    mov  [app_tab_count], edi	; barsuk
965
 
968
 
966
    ret
969
    ret
967
 
970
 
968
 
971
 
969
draw_application_buttons:
972
draw_application_buttons:
970
 
973
 
971
    pusha
974
    pusha
972
 
975
 
973
    cmp [icons],1
976
    cmp [icons],1
974
    jne da_ret
977
    jne da_ret
975
 
978
 
976
    mov  eax,14
979
    mov  eax,14
977
    int  0x40
980
    int  0x40
978
 
981
 
979
    shr  eax,16
982
    shr  eax,16
980
 
983
 
981
; // Alver 25.08.2007 // {
984
; // Alver 25.08.2007 // {
982
 ;   cmp  eax,639
985
 ;   cmp  eax,639
983
 ;   jne  now1
986
 ;   jne  now1
984
 ;   mov  [max_applications],7  ;6
987
 ;   mov  [max_applications],7  ;6
985
 ; now1:
988
 ; now1:
986
 ;   cmp  eax,799
989
 ;   cmp  eax,799
987
 ;   jne  now2
990
 ;   jne  now2
988
 ;   mov  [max_applications],9 ;10    ;8
991
 ;   mov  [max_applications],9 ;10    ;8
989
 ; now2:
992
 ; now2:
990
 ;   cmp  eax,1023
993
 ;   cmp  eax,1023
991
 ;   jne  now3
994
 ;   jne  now3
992
 ;   mov  [max_applications],12 ;13   ;8
995
 ;   mov  [max_applications],12 ;13   ;8
993
 ; now3:
996
 ; now3:
994
 ;   cmp  eax,1279
997
 ;   cmp  eax,1279
995
 ;   jne  now4
998
 ;   jne  now4
996
 ;   mov  [max_applications],17 ;18    ;8
999
 ;   mov  [max_applications],17 ;18    ;8
997
 ; now4:
1000
 ; now4:
998
 ;   mov  edi,1
1001
 ;   mov  edi,1
999
 
1002
 
1000
     sub  eax, 281
1003
     sub  eax, 281
1001
     jnc  ._01
1004
     jnc  ._01
1002
     xor  eax, eax
1005
     xor  eax, eax
1003
._01:
1006
._01:
1004
     mov  bl, 60
1007
     mov  bl, 60
1005
     div  bl
1008
     div  bl
1006
     xor  ah, ah		       ; eax - ª®«¨ç¥á⢮ 㬥é îè¨åáï ¯¨ªâ®¢
1009
     xor  ah, ah		       ; eax - ª®«¨ç¥á⢮ 㬥é îè¨åáï ¯¨ªâ®¢
1007
     mov  [max_applications], eax
1010
     mov  [max_applications], eax
1008
     mov  edi,1
1011
     mov  edi,1
1009
;  } \\ Alver \\
1012
;  } \\ Alver \\
1010
 
1013
 
1011
  nb:
1014
  nb:
1012
 
1015
 
1013
    mov  eax,8
1016
    mov  eax,8
1014
    mov  ebx,edi
1017
    mov  ebx,edi
1015
    shl  ebx,16
1018
    shl  ebx,16
1016
    imul ebx,6*10	     ;13
1019
    imul ebx,6*10	     ;13
1017
    add  ebx,75*65536+10*6-1 ; << Alver 25.08.2007 >> 15*65536+10*6-1  ;13
1020
    add  ebx,75*65536+10*6-1 ; << Alver 25.08.2007 >> 15*65536+10*6-1  ;13
1018
    mov  ecx,1*65536+17
1021
    mov  ecx,1*65536+17
1019
    mov  edx,edi
1022
    mov  edx,edi
1020
    add  edx,51
1023
    add  edx,51
1021
    cmp  [buttons],1
1024
    cmp  [buttons],1
1022
    je	 bufr
1025
    je	 bufr
1023
    or	 edx,0x60000000
1026
    or	 edx,0x60000000
1024
  bufr:
1027
  bufr:
1025
    mov  esi,[wcolor]
1028
    mov  esi,[wcolor]
1026
    sub  ebx,11 shl 16
1029
    sub  ebx,11 shl 16
1027
    int  0x40
1030
    int  0x40
1028
 
1031
 
1029
    inc  edi
1032
    inc  edi
1030
    cmp  edi,[max_applications]
1033
    cmp  edi,[max_applications]
1031
    jbe  nb
1034
    jbe  nb
1032
 
1035
 
1033
  da_ret:
1036
  da_ret:
1034
 
1037
 
1035
    popa
1038
    popa
1036
 
1039
 
1037
    ret
1040
    ret
1038
 
1041
 
1039
 
1042
 
1040
menu_handler:
1043
menu_handler:
1041
	mov	eax, 70
1044
	mov	eax, 70
1042
	mov	ebx, exec_fileinfo
1045
	mov	ebx, exec_fileinfo
1043
	mov	dword [ebx+21], menu_name
1046
	mov	dword [ebx+21], menu_name
1044
	int	0x40
1047
	int	0x40
1045
	ret
1048
	ret
1046
 
1049
 
1047
draw_small_right:
1050
draw_small_right:
1048
 
1051
 
1049
    pusha
1052
    pusha
1050
 
1053
 
1051
    mov  eax,12
1054
    mov  eax,12
1052
    mov  ebx,1
1055
    mov  ebx,1
1053
    int  0x40
1056
    int  0x40
1054
 
1057
 
1055
    mov  eax,0
1058
    mov  eax,0
1056
    mov  edx,[wcolor]
1059
    mov  edx,[wcolor]
1057
    mov  esi,edx
1060
    mov  esi,edx
1058
    mov  edi,edx
1061
    mov  edi,edx
1059
    or	 edx, 0x01000000
1062
    or	 edx, 0x01000000
1060
    int  0x40
1063
    int  0x40
1061
 
1064
 
1062
    mov  eax,8
1065
    mov  eax,8
1063
    mov  ebx,0*65536+9
1066
    mov  ebx,0*65536+9
1064
    mov  ecx,0*65536
1067
    mov  ecx,0*65536
1065
    mov  cx,[b_size_y]
1068
    mov  cx,[b_size_y]
1066
    mov  edx,1
1069
    mov  edx,1
1067
    mov  esi,[wcolor]
1070
    mov  esi,[wcolor]
1068
    int  0x40
1071
    int  0x40
1069
 
1072
 
1070
    mov  eax,4
1073
    mov  eax,4
1071
    mov  ebx,2*65536+16
1074
    mov  ebx,2*65536+16
1072
    cmp  [graph_text],1
1075
    cmp  [graph_text],1
1073
    jne  nos3
1076
    jne  nos3
1074
    mov  ebx,2*65536+7
1077
    mov  ebx,2*65536+7
1075
  nos3:
1078
  nos3:
1076
    mov  ecx,[wcolor]
1079
    mov  ecx,[wcolor]
1077
    add  ecx,0x303030
1080
    add  ecx,0x303030
1078
    mov  edx,hidetext
1081
    mov  edx,hidetext
1079
    mov  esi,1
1082
    mov  esi,1
1080
    int  0x40
1083
    int  0x40
1081
 
1084
 
1082
    mov  eax,12
1085
    mov  eax,12
1083
    mov  ebx,2
1086
    mov  ebx,2
1084
    int  0x40
1087
    int  0x40
1085
 
1088
 
1086
    popa
1089
    popa
1087
 
1090
 
1088
    ret
1091
    ret
1089
 
1092
 
1090
 
1093
 
1091
 
1094
 
1092
draw_small_left:
1095
draw_small_left:
1093
 
1096
 
1094
    pusha
1097
    pusha
1095
 
1098
 
1096
    mov  eax,12
1099
    mov  eax,12
1097
    mov  ebx,1
1100
    mov  ebx,1
1098
    int  0x40
1101
    int  0x40
1099
 
1102
 
1100
    mov  eax,0
1103
    mov  eax,0
1101
    mov  edx,[wcolor]
1104
    mov  edx,[wcolor]
1102
    mov  esi,edx
1105
    mov  esi,edx
1103
    mov  edi,edx
1106
    mov  edi,edx
1104
    or	 edx, 0x01000000
1107
    or	 edx, 0x01000000
1105
    int  0x40
1108
    int  0x40
1106
 
1109
 
1107
    cmp  [graph_text],1
1110
    cmp  [graph_text],1
1108
    je	 nos4
1111
    je	 nos4
1109
 
1112
 
1110
    mov  eax,8
1113
    mov  eax,8
1111
    mov  ebx,0*65536+9
1114
    mov  ebx,0*65536+9
1112
    mov  ecx,0*65536+18-6
1115
    mov  ecx,0*65536+18-6
1113
    mov  edx,2
1116
    mov  edx,2
1114
    mov  esi,[wcolor]
1117
    mov  esi,[wcolor]
1115
    int  0x40
1118
    int  0x40
1116
 
1119
 
1117
    mov  eax,4
1120
    mov  eax,4
1118
    mov  ebx,2*65536+4
1121
    mov  ebx,2*65536+4
1119
    mov  ecx,[wcolor]
1122
    mov  ecx,[wcolor]
1120
    add  ecx,0x303030
1123
    add  ecx,0x303030
1121
    mov  edx,hidetext+2
1124
    mov  edx,hidetext+2
1122
    mov  esi,1
1125
    mov  esi,1
1123
    int  0x40
1126
    int  0x40
1124
 
1127
 
1125
  nos4:
1128
  nos4:
1126
 
1129
 
1127
    mov  eax,8
1130
    mov  eax,8
1128
    mov  ebx,0*65536+9
1131
    mov  ebx,0*65536+9
1129
    mov  ecx,13*65536+25
1132
    mov  ecx,13*65536+25
1130
    cmp  [graph_text],1
1133
    cmp  [graph_text],1
1131
    jne  nos6
1134
    jne  nos6
1132
    mov  ecx,0*65536
1135
    mov  ecx,0*65536
1133
    mov  cx,word [b_size_y]
1136
    mov  cx,word [b_size_y]
1134
  nos6:
1137
  nos6:
1135
    mov  edx,1
1138
    mov  edx,1
1136
    mov  esi,[wcolor]
1139
    mov  esi,[wcolor]
1137
    int  0x40
1140
    int  0x40
1138
 
1141
 
1139
    mov  eax,4
1142
    mov  eax,4
1140
    mov  ebx,3*65536+22
1143
    mov  ebx,3*65536+22
1141
    cmp  [graph_text],1
1144
    cmp  [graph_text],1
1142
    jne  nos7
1145
    jne  nos7
1143
    mov  ebx,3*65536+7
1146
    mov  ebx,3*65536+7
1144
  nos7:
1147
  nos7:
1145
    mov  ecx,[wcolor]
1148
    mov  ecx,[wcolor]
1146
    add  ecx,0x303030
1149
    add  ecx,0x303030
1147
    mov  edx,hidetext+1
1150
    mov  edx,hidetext+1
1148
    mov  esi,1
1151
    mov  esi,1
1149
    int  0x40
1152
    int  0x40
1150
 
1153
 
1151
    mov  eax,12
1154
    mov  eax,12
1152
    mov  ebx,2
1155
    mov  ebx,2
1153
    int  0x40
1156
    int  0x40
1154
 
1157
 
1155
    popa
1158
    popa
1156
    ret
1159
    ret
1157
 
1160
 
1158
 
1161
 
1159
;-------------------------------------------------
1162
;-------------------------------------------------
1160
 
1163
 
1161
right_button:
1164
right_button:
1162
 
1165
 
1163
    call button_music
1166
    call button_music
1164
 
1167
 
1165
    mov  [small_draw],dword draw_small_right
1168
    mov  [small_draw],dword draw_small_right
1166
 
1169
 
1167
    mcall 14
1170
    mcall 14
1168
    shr eax, 16
1171
    shr eax, 16
1169
    mov ebx, eax
1172
    mov ebx, eax
1170
    mov ecx, -1
1173
    mov ecx, -1
1171
    mov edx, 9
1174
    mov edx, 9
1172
    sub ebx, edx
1175
    sub ebx, edx
1173
    mov esi, -1
1176
    mov esi, -1
1174
    mcall 67
1177
    mcall 67
1175
 
1178
 
1176
    call draw_small_right
1179
    call draw_small_right
1177
 
1180
 
1178
    jmp  small_wait
1181
    jmp  small_wait
1179
 
1182
 
1180
;-------------------------------------------------
1183
;-------------------------------------------------
1181
 
1184
 
1182
left_button:
1185
left_button:
1183
 
1186
 
1184
    call  button_music
1187
    call  button_music
1185
 
1188
 
1186
    mov  [small_draw],dword draw_small_left
1189
    mov  [small_draw],dword draw_small_left
1187
 
1190
 
1188
    mov   ebx, 0
1191
    mov   ebx, 0
1189
    mov   edx, 9
1192
    mov   edx, 9
1190
    mov   ecx, -1
1193
    mov   ecx, -1
1191
    mov   esi, -1
1194
    mov   esi, -1
1192
    mcall 67
1195
    mcall 67
1193
 
1196
 
1194
    call draw_small_left
1197
    call draw_small_left
1195
 
1198
 
1196
;-------------------------------------------------
1199
;-------------------------------------------------
1197
 
1200
 
1198
  small_wait:
1201
  small_wait:
1199
 
1202
 
1200
    mov  eax, 10
1203
    mov  eax, 10
1201
    int  0x40
1204
    int  0x40
1202
 
1205
 
1203
    cmp  eax,1
1206
    cmp  eax,1
1204
    jne  no_win
1207
    jne  no_win
1205
    call [small_draw]
1208
    call [small_draw]
1206
    jmp  small_wait
1209
    jmp  small_wait
1207
  no_win:
1210
  no_win:
1208
    cmp  eax,2
1211
    cmp  eax,2
1209
    jne  no_key
1212
    jne  no_key
1210
    call handle_key
1213
    call handle_key
1211
    jmp  small_wait
1214
    jmp  small_wait
1212
no_key:
1215
no_key:
1213
 
1216
 
1214
    mov  eax,17
1217
    mov  eax,17
1215
    int  0x40
1218
    int  0x40
1216
 
1219
 
1217
    cmp  ah,1
1220
    cmp  ah,1
1218
    jne  no_full
1221
    jne  no_full
1219
 
1222
 
1220
    mov   eax, 14		    ; get screen max x & max y
1223
    mov   eax, 14		    ; get screen max x & max y
1221
    int   0x40
1224
    int   0x40
1222
    mov   edx, eax
1225
    mov   edx, eax
1223
    shr   edx, 16
1226
    shr   edx, 16
1224
    xor   ebx, ebx
1227
    xor   ebx, ebx
1225
    mov   ecx, -1
1228
    mov   ecx, -1
1226
    mov   esi, -1
1229
    mov   esi, -1
1227
    mcall 67 ; x0 y0 xs ys
1230
    mcall 67 ; x0 y0 xs ys
1228
 
1231
 
1229
    call  button_music
1232
    call  button_music
1230
 
1233
 
1231
    jmp   still
1234
    jmp   still
1232
 
1235
 
1233
 
1236
 
1234
  no_full:
1237
  no_full:
1235
 
1238
 
1236
    call menu_handler
1239
    call menu_handler
1237
 
1240
 
1238
    jmp  small_wait
1241
    jmp  small_wait
1239
 
1242
 
1240
 
1243
 
1241
 
1244
 
1242
set_variables:
1245
set_variables:
1243
 
1246
 
1244
     pusha
1247
     pusha
1245
 
1248
 
1246
     mov  [b_size_y],dword 38
1249
     mov  [b_size_y],dword 38
1247
     cmp  [graph_text],1
1250
     cmp  [graph_text],1
1248
     jne  noy2
1251
     jne  noy2
1249
     mov  [b_size_y],dword 18
1252
     mov  [b_size_y],dword 18
1250
   noy2:
1253
   noy2:
1251
 
1254
 
1252
     mov  [button_frames],0x0
1255
     mov  [button_frames],0x0
1253
     cmp  [buttons],0
1256
     cmp  [buttons],0
1254
     jne  no_frames
1257
     jne  no_frames
1255
     mov  [button_frames],0x40000000
1258
     mov  [button_frames],0x40000000
1256
   no_frames:
1259
   no_frames:
1257
 
1260
 
1258
 
1261
 
1259
     mov  eax,48	   ; 3d button look
1262
     mov  eax,48	   ; 3d button look
1260
     mov  ebx,1
1263
     mov  ebx,1
1261
     mov  ecx,1
1264
     mov  ecx,1
1262
     int  0x40
1265
     int  0x40
1263
 
1266
 
1264
     mov  eax,0x40404040   ; dividers for processes
1267
     mov  eax,0x40404040   ; dividers for processes
1265
     mov  edi,pros
1268
     mov  edi,pros
1266
     mov  ecx,10
1269
     mov  ecx,10
1267
     cld
1270
     cld
1268
     rep  stosd
1271
     rep  stosd
1269
 
1272
 
1270
     popa
1273
     popa
1271
     ret
1274
     ret
1272
 
1275
 
1273
 
1276
 
1274
 
1277
 
1275
; eax = number (1 or 2)
1278
; eax = number (1 or 2)
1276
; ebx = language id
1279
; ebx = language id
1277
draw_flag:
1280
draw_flag:
1278
    pusha
1281
    pusha
1279
 
1282
 
1280
;    cmp  [graph_text],0
1283
;    cmp  [graph_text],0
1281
;    je   mini_flag
1284
;    je   mini_flag
1282
 
1285
 
1283
; eax = 2 BIG
1286
; eax = 2 BIG
1284
; eax = 1 small
1287
; eax = 1 small
1285
 
1288
 
1286
    mov  edx,ebx
1289
    mov  edx,ebx
1287
 
1290
 
1288
    mov  ebx,[maxx]
1291
    mov  ebx,[maxx]
1289
    and  eax,1
1292
    and  eax,1
1290
    imul eax,17  ;17
1293
    imul eax,17  ;17
1291
    sub  ebx,eax
1294
    sub  ebx,eax
1292
    sub  ebx,76 ;79 ;28
1295
    sub  ebx,76 ;79 ;28
1293
 
1296
 
1294
    pushad
1297
    pushad
1295
;    dec  ebx
1298
;    dec  ebx
1296
    sub  ebx,2
1299
    sub  ebx,2
1297
    shl  ebx, 16
1300
    shl  ebx, 16
1298
    add  ebx, 15 ;25
1301
    add  ebx, 15 ;25
1299
    mov  ecx, 4*65536+13
1302
    mov  ecx, 4*65536+13
1300
    mov  edx,0
1303
    mov  edx,0
1301
    mov  eax,13
1304
    mov  eax,13
1302
    int  0x40
1305
    int  0x40
1303
    add  ebx,1 shl 16
1306
    add  ebx,1 shl 16
1304
    sub  ebx,2
1307
    sub  ebx,2
1305
    mov  ecx, 5 shl 16+11
1308
    mov  ecx, 5 shl 16+11
1306
    cmp  [type_lang],1
1309
    cmp  [type_lang],1
1307
    je	label_1
1310
    je	label_1
1308
    mov  edx,0xff ;[wcolor]
1311
    mov  edx,0xff ;[wcolor]
1309
    jmp  label_2
1312
    jmp  label_2
1310
label_1:
1313
label_1:
1311
    mov  edx,0x7700
1314
    mov  edx,0x7700
1312
label_2:
1315
label_2:
1313
    mov  eax, 13
1316
    mov  eax, 13
1314
    int  0x40
1317
    int  0x40
1315
    popad
1318
    popad
1316
 
1319
 
1317
    shl  ebx,16
1320
    shl  ebx,16
1318
    add  ebx,7	;24
1321
    add  ebx,7	;24
1319
 
1322
 
1320
    mov  ecx,[bte] ; color
1323
    mov  ecx,[bte] ; color
1321
 
1324
 
1322
    dec  edx
1325
    dec  edx
1323
    shl  edx,1
1326
    shl  edx,1
1324
    add  edx,flag_text
1327
    add  edx,flag_text
1325
    mov  esi,2
1328
    mov  esi,2
1326
    mov  eax,4
1329
    mov  eax,4
1327
    int  0x40
1330
    int  0x40
1328
 
1331
 
1329
    mov  ebx,[maxx]
1332
    mov  ebx,[maxx]
1330
    sub  ebx,48
1333
    sub  ebx,48
1331
    shl  ebx,16
1334
    shl  ebx,16
1332
    mov  bx,34
1335
    mov  bx,34
1333
    mov  ecx,3 shl 16+14
1336
    mov  ecx,3 shl 16+14
1334
    xor  edx,edx
1337
    xor  edx,edx
1335
    mov  eax,13
1338
    mov  eax,13
1336
    int  0x40
1339
    int  0x40
1337
    add  ebx,1 shl 16
1340
    add  ebx,1 shl 16
1338
    sub  ebx,2
1341
    sub  ebx,2
1339
    mov  ecx,4 shl 16+12
1342
    mov  ecx,4 shl 16+12
1340
    mov  edx,time_bgr_color
1343
    mov  edx,time_bgr_color
1341
    int  0x40
1344
    int  0x40
1342
 
1345
 
1343
    popa
1346
    popa
1344
    ret
1347
    ret
1345
 
1348
 
1346
;mini_flag:
1349
;mini_flag:
1347
;    popa
1350
;    popa
1348
;    ret
1351
;    ret
1349
 
1352
 
1350
 
1353
 
1351
 
1354
 
1352
 
1355
 
1353
; ***************************************************
1356
; ***************************************************
1354
; ********* WINDOW DEFINITIONS AND DRAW *************
1357
; ********* WINDOW DEFINITIONS AND DRAW *************
1355
; ***************************************************
1358
; ***************************************************
1356
 
1359
 
1357
 
1360
 
1358
draw_window:
1361
draw_window:
1359
 
1362
 
1360
    pusha
1363
    pusha
1361
 
1364
 
1362
    mov  [running_applications],-1
1365
    mov  [running_applications],-1
1363
    mov  [checks],-1
1366
    mov  [checks],-1
1364
 
1367
 
1365
    mov  eax, 12		   ; tell os about redraw
1368
    mov  eax, 12		   ; tell os about redraw
1366
    mov  ebx, 1
1369
    mov  ebx, 1
1367
    int  0x40
1370
    int  0x40
1368
 
1371
 
1369
    mov  eax, 48
1372
    mov  eax, 48
1370
    mov  ebx, 3
1373
    mov  ebx, 3
1371
    mov  ecx, system_colours
1374
    mov  ecx, system_colours
1372
    mov  edx, 10*4
1375
    mov  edx, 10*4
1373
    int  0x40
1376
    int  0x40
1374
 
1377
 
1375
    mov  eax, [system_colours+4*6]
1378
    mov  eax, [system_colours+4*6]
1376
    sub  eax, 0x101010
1379
    sub  eax, 0x101010
1377
    mov  [wcolor], eax
1380
    mov  [wcolor], eax
1378
 
1381
 
1379
    mov  eax,14 		   ; get screen max x & max y
1382
    mov  eax,14 		   ; get screen max x & max y
1380
    int  0x40
1383
    int  0x40
1381
 
1384
 
1382
    cmp  [width],0
1385
    cmp  [width],0
1383
    je	 no_def_width
1386
    je	 no_def_width
1384
    and  eax,0xffff
1387
    and  eax,0xffff
1385
    mov  ebx,[width]
1388
    mov  ebx,[width]
1386
    shl  ebx,16
1389
    shl  ebx,16
1387
    add  eax,ebx
1390
    add  eax,ebx
1388
  no_def_width:
1391
  no_def_width:
1389
 
1392
 
1390
    mov  ebx,eax
1393
    mov  ebx,eax
1391
    mov  [screenxy],ebx
1394
    mov  [screenxy],ebx
1392
    shr  ebx,16
1395
    shr  ebx,16
1393
    sub  ax,38
1396
    sub  ax,38
1394
    shl  eax,16
1397
    shl  eax,16
1395
    mov  ecx,eax
1398
    mov  ecx,eax
1396
    add  ecx,0*65536+38
1399
    add  ecx,0*65536+38
1397
    cmp  [graph_text],1
1400
    cmp  [graph_text],1
1398
    jne  no_text_1
1401
    jne  no_text_1
1399
    mov  cx,PANEL_HEIGHT
1402
    mov  cx,PANEL_HEIGHT
1400
    add  ecx,20*65536
1403
    add  ecx,20*65536
1401
  no_text_1:
1404
  no_text_1:
1402
    mov  eax, 0 		    ; DEFINE AND DRAW WINDOW
1405
    mov  eax, 0 		    ; DEFINE AND DRAW WINDOW
1403
    mov  edx, [wcolor]
1406
    mov  edx, [wcolor]
1404
    or	 edx, 0x01000000 ; do not draw the window
1407
    or	 edx, 0x01000000 ; do not draw the window
1405
    mov  esi, [wcolor]
1408
    mov  esi, [wcolor]
1406
    or	 esi, 0x01000000 ; unmovable window
1409
    or	 esi, 0x01000000 ; unmovable window
1407
    mov  edi, [wcolor]
1410
    mov  edi, [wcolor]
1408
 
1411
 
1409
    mov  [panel_x_pos], ebx
1412
    mov  [panel_x_pos], ebx
1410
    mov  [panel_y_pos], ecx	 ; ®ª  çâ® â ª.
1413
    mov  [panel_y_pos], ecx	 ; ®ª  çâ® â ª.
1411
 
1414
 
1412
    int  0x40
1415
    int  0x40
1413
 
1416
 
1414
    movzx ebx,word [screenxy+2]
1417
    movzx ebx,word [screenxy+2]
1415
    mov  ecx,0*65536+0
1418
    mov  ecx,0*65536+0
1416
    mov  edx,[wcolor]
1419
    mov  edx,[wcolor]
1417
    add  edx,0x161616
1420
    add  edx,0x161616
1418
  newline_:			; debug.inc has macros with the same name
1421
  newline_:			; debug.inc has macros with the same name
1419
    sub  edx,0x040404
1422
    sub  edx,0x040404
1420
    mov  eax,38
1423
    mov  eax,38
1421
    cmp  [soften_up],1
1424
    cmp  [soften_up],1
1422
    jne  no_su
1425
    jne  no_su
1423
    and  edx,0x00FFFFFF
1426
    and  edx,0x00FFFFFF
1424
    int  0x40
1427
    int  0x40
1425
  no_su:
1428
  no_su:
1426
 
1429
 
1427
    pusha
1430
    pusha
1428
    cmp  [soften_down],1
1431
    cmp  [soften_down],1
1429
    jne  no_sd
1432
    jne  no_sd
1430
    sub  edx,0x141414
1433
    sub  edx,0x141414
1431
    mov  edi,[b_size_y]
1434
    mov  edi,[b_size_y]
1432
    shl  edi,16
1435
    shl  edi,16
1433
    add  edi,[b_size_y]
1436
    add  edi,[b_size_y]
1434
    add  ecx,edi
1437
    add  ecx,edi
1435
    sub  ecx,3*65536+3
1438
    sub  ecx,3*65536+3
1436
    and  edx,0x00FFFFFF
1439
    and  edx,0x00FFFFFF
1437
    int  0x40
1440
    int  0x40
1438
  no_sd:
1441
  no_sd:
1439
    popa
1442
    popa
1440
 
1443
 
1441
    add  ecx,1*65536+1
1444
    add  ecx,1*65536+1
1442
    cmp  cx,5
1445
    cmp  cx,5
1443
    jb	 newline_
1446
    jb	 newline_
1444
 
1447
 
1445
    cmp   [soften_middle],1
1448
    cmp   [soften_middle],1
1446
    jne   no_sm
1449
    jne   no_sm
1447
 
1450
 
1448
    movzx ebx,word [screenxy+2]
1451
    movzx ebx,word [screenxy+2]
1449
    mov   ecx,5*65536+5
1452
    mov   ecx,5*65536+5
1450
    mov   esi,stripe
1453
    mov   esi,stripe
1451
    mov   edx,[wcolor]
1454
    mov   edx,[wcolor]
1452
  newline3:
1455
  newline3:
1453
    add  edx,[esi]
1456
    add  edx,[esi]
1454
    add  esi,4
1457
    add  esi,4
1455
 
1458
 
1456
    mov  eax,38
1459
    mov  eax,38
1457
    and  edx,0x00FFFFFF
1460
    and  edx,0x00FFFFFF
1458
    int  0x40
1461
    int  0x40
1459
    add  ecx,1*65536+1
1462
    add  ecx,1*65536+1
1460
    cmp  cx,15
1463
    cmp  cx,15
1461
    jb	 newline3
1464
    jb	 newline3
1462
 
1465
 
1463
  no_sm:
1466
  no_sm:
1464
 
1467
 
1465
    cmp  [minimize_left],1
1468
    cmp  [minimize_left],1
1466
    jne  no_mleft
1469
    jne  no_mleft
1467
    mov  eax,8				     ; ABS LEFT
1470
    mov  eax,8				     ; ABS LEFT
1468
    mov  ebx,0 *65536+9
1471
    mov  ebx,0 *65536+9
1469
    mov  ecx,1 *65536
1472
    mov  ecx,1 *65536
1470
    add  ecx,[b_size_y]
1473
    add  ecx,[b_size_y]
1471
    dec  ecx
1474
    dec  ecx
1472
    mov  edx,101
1475
    mov  edx,101
1473
    add  edx,[button_frames]
1476
    add  edx,[button_frames]
1474
    mov  esi,[wcolor]
1477
    mov  esi,[wcolor]
1475
    int  0x40
1478
    int  0x40
1476
    mov  eax,4				     ; HIDE TEXT
1479
    mov  eax,4				     ; HIDE TEXT
1477
    mov  ebx,2*65536+17
1480
    mov  ebx,2*65536+17
1478
    cmp  [graph_text],1
1481
    cmp  [graph_text],1
1479
    jne  no_y1
1482
    jne  no_y1
1480
    mov  bx,7
1483
    mov  bx,7
1481
  no_y1:
1484
  no_y1:
1482
    mov  ecx,[wcolor]
1485
    mov  ecx,[wcolor]
1483
    add  ecx,0x303030
1486
    add  ecx,0x303030
1484
    mov  edx,hidetext
1487
    mov  edx,hidetext
1485
    mov  esi,1
1488
    mov  esi,1
1486
    int  0x40
1489
    int  0x40
1487
  no_mleft:
1490
  no_mleft:
1488
 
1491
 
1489
    movzx eax,word [screenxy+2]
1492
    movzx eax,word [screenxy+2]
1490
    mov  [maxx],eax
1493
    mov  [maxx],eax
1491
 
1494
 
1492
    cmp  [minimize_right],1
1495
    cmp  [minimize_right],1
1493
    jne  no_mright
1496
    jne  no_mright
1494
    mov  eax,[maxx]
1497
    mov  eax,[maxx]
1495
    sub  eax,77
1498
    sub  eax,77
1496
    shl  eax,16
1499
    shl  eax,16
1497
    mov  ebx,eax
1500
    mov  ebx,eax
1498
    add  ebx,67
1501
    add  ebx,67
1499
    mov  eax,8				     ; ABS RIGHT
1502
    mov  eax,8				     ; ABS RIGHT
1500
    mov  ecx,1 *65536
1503
    mov  ecx,1 *65536
1501
    add  ecx,[b_size_y]
1504
    add  ecx,[b_size_y]
1502
    dec  ecx
1505
    dec  ecx
1503
    add  ebx,68*65536
1506
    add  ebx,68*65536
1504
    mov  bx,9
1507
    mov  bx,9
1505
    mov  edx,102
1508
    mov  edx,102
1506
    add  edx,[button_frames]
1509
    add  edx,[button_frames]
1507
    mov  esi,[wcolor]
1510
    mov  esi,[wcolor]
1508
    int  0x40
1511
    int  0x40
1509
    mov  edx,hidetext+1
1512
    mov  edx,hidetext+1
1510
    mov  eax,4
1513
    mov  eax,4
1511
    mov  ebx,[maxx]
1514
    mov  ebx,[maxx]
1512
    sub  ebx,6
1515
    sub  ebx,6
1513
    shl  ebx,16
1516
    shl  ebx,16
1514
    mov  bx,17
1517
    mov  bx,17
1515
    cmp  [graph_text],1
1518
    cmp  [graph_text],1
1516
    jne  no_y2
1519
    jne  no_y2
1517
    mov  bx,7
1520
    mov  bx,7
1518
  no_y2:
1521
  no_y2:
1519
    mov  ecx,[wcolor]
1522
    mov  ecx,[wcolor]
1520
    add  ecx,0x303030
1523
    add  ecx,0x303030
1521
    mov  esi,1
1524
    mov  esi,1
1522
    int  0x40
1525
    int  0x40
1523
  no_mright:
1526
  no_mright:
1524
 
1527
 
1525
    call draw_menuet_icon
1528
    call draw_menuet_icon
1526
 
1529
 
1527
    call draw_program_icons
1530
    call draw_program_icons
1528
 
1531
 
1529
    mov  [ptime],0
1532
    mov  [ptime],0
1530
    call draw_info
1533
    call draw_info
1531
 
1534
 
1532
    call draw_application_buttons
1535
    call draw_application_buttons
1533
 
1536
 
1534
;     mov    ecx,[button_presssed_alt]
1537
;     mov    ecx,[button_presssed_alt]
1535
;     mcall  47,0x80100,ecx ,400 shl 16+5,0
1538
;     mcall  47,0x80100,ecx ,400 shl 16+5,0
1536
 
1539
 
1537
    mov  eax,12
1540
    mov  eax,12
1538
    mov  ebx,2
1541
    mov  ebx,2
1539
    int  0x40
1542
    int  0x40
1540
 
1543
 
1541
    popa
1544
    popa
1542
    ret
1545
    ret
1543
 
1546
 
1544
; // Alver 26.08.2007 // {
1547
; // Alver 26.08.2007 // {
1545
dr_button_clean:
1548
dr_button_clean:
1546
    mov  ecx, 3*65536+13
1549
    mov  ecx, 3*65536+13
1547
    mcall 8
1550
    mcall 8
1548
    ret
1551
    ret
1549
; } \\ Alver \\
1552
; } \\ Alver \\
1550
 
1553
 
1551
draw_menuet_icon:
1554
draw_menuet_icon:
1552
 
1555
 
1553
    pusha
1556
    pusha
1554
 
1557
 
1555
; // Alver 26.08.2007 // {
1558
; // Alver 26.08.2007 // {
1556
; Inserted code for drowing buttons 103, 104, 105 (Clean, Restore, Exchange windows)
1559
; Inserted code for drowing buttons 103, 104, 105 (Clean, Restore, Exchange windows)
1557
    mov  esi, dword [system_colours+24]    ; drawing buttons
1560
    mov  esi, dword [system_colours+24]    ; drawing buttons
1558
    and  esi, 0x00ffffff
1561
    and  esi, 0x00ffffff
1559
    mov  edx, 103
1562
    mov  edx, 103
1560
    mov  ebx, 67*65536+13
1563
    mov  ebx, 67*65536+13
1561
    call dr_button_clean
1564
    call dr_button_clean
1562
    inc  edx
1565
    inc  edx
1563
    mov  ebx, 86*65536+13
1566
    mov  ebx, 86*65536+13
1564
    call dr_button_clean
1567
    call dr_button_clean
1565
    inc  edx
1568
    inc  edx
1566
    mov  ebx, 105*65536+13
1569
    mov  ebx, 105*65536+13
1567
    call dr_button_clean
1570
    call dr_button_clean
1568
    mov  ecx, dword [system_colours+28]
1571
    mov  ecx, dword [system_colours+28]
1569
    and  ecx, 0x00ffffff
1572
    and  ecx, 0x00ffffff
1570
    xor  esi, esi
1573
    xor  esi, esi
1571
    inc  esi
1574
    inc  esi
1572
    mov  edx, page_clean_but
1575
    mov  edx, page_clean_but
1573
    mov  eax, 4
1576
    mov  eax, 4
1574
    mov  ebx, 71*65536+6
1577
    mov  ebx, 71*65536+6
1575
    int  0x40
1578
    int  0x40
1576
    inc  edx
1579
    inc  edx
1577
    mov  ebx, 90*65536+6
1580
    mov  ebx, 90*65536+6
1578
    int  0x40
1581
    int  0x40
1579
    inc  edx
1582
    inc  edx
1580
    mov  ebx, 109*65536+6
1583
    mov  ebx, 109*65536+6
1581
    int  0x40
1584
    int  0x40
1582
; } \\ Alver \\
1585
; } \\ Alver \\
1583
 
1586
 
1584
    cmp  [menu_enable],1
1587
    cmp  [menu_enable],1
1585
    jne  no_menu
1588
    jne  no_menu
1586
 
1589
 
1587
 
1590
 
1588
    mov  eax, 8 			      ; M BUTTON
1591
    mov  eax, 8 			      ; M BUTTON
1589
    mov  ebx, 10*65536 + 47
1592
    mov  ebx, 10*65536 + 47
1590
    cmp  [minimize_left], 0
1593
    cmp  [minimize_left], 0
1591
    jne  @f
1594
    jne  @f
1592
    sub  ebx, 10*65536
1595
    sub  ebx, 10*65536
1593
  @@:
1596
  @@:
1594
    mov  ecx, 1*65536
1597
    mov  ecx, 1*65536
1595
    add  ecx, [b_size_y]
1598
    add  ecx, [b_size_y]
1596
    dec  ecx
1599
    dec  ecx
1597
    mov  edx, 0x20000001
1600
;    mov  edx, 0x20000001			; dunkaist[
-
 
1601
    mov  edx, 0x20d1ff01			; dunkaist]
1598
    add  edx, [button_frames]
1602
    add  edx, [button_frames]
1599
    mov  esi, [wcolor]
1603
    mov  esi, [wcolor]
1600
    int  0x40
1604
    int  0x40
1601
 
1605
 
1602
    cmp  [graph_text], 1
1606
    cmp  [graph_text], 1
1603
    jne  no_mtext
1607
    jne  no_mtext
1604
 
1608
 
1605
    push ebx
1609
    push ebx
1606
    mov  eax,13
1610
    mov  eax,13
1607
    mov  ebx,12 shl 16+44  ;51
1611
    mov  ebx,12 shl 16+44  ;51
1608
    mov  ecx,1 shl 16+17
1612
    mov  ecx,1 shl 16+17
1609
;    xor  edx,edx
1613
;    xor  edx,edx
1610
    mov edx, 0x383838
1614
    mov edx, 0x383838
1611
    int  0x40
1615
    int  0x40
1612
;    mov  ebx,63 shl 16+1
1616
;    mov  ebx,63 shl 16+1
1613
    mov  ebx,56 shl 16+1
1617
    mov  ebx,56 shl 16+1
1614
    mov  ecx,2 shl 16+15
1618
    mov  ecx,2 shl 16+15
1615
    int  0x40
1619
    int  0x40
1616
    mov  ebx,57 shl 16+1
1620
    mov  ebx,57 shl 16+1
1617
    mov  ecx,4 shl 16+11
1621
    mov  ecx,4 shl 16+11
1618
    int  0x40
1622
    int  0x40
1619
    mov  ebx,58 shl 16+1
1623
    mov  ebx,58 shl 16+1
1620
    mov  ecx,6	shl 16+7
1624
    mov  ecx,6	shl 16+7
1621
    int  0x40
1625
    int  0x40
1622
;    mov  ebx,66  shl 16+1
1626
;    mov  ebx,66  shl 16+1
1623
;    mov  ecx,9 shl 16+1
1627
;    mov  ecx,9 shl 16+1
1624
;    int  0x40
1628
;    int  0x40
1625
    mov  ebx,13 shl 16+43 ;50
1629
    mov  ebx,13 shl 16+43 ;50
1626
    mov  ecx,2 shl 16+15
1630
    mov  ecx,2 shl 16+15
1627
    mov  edx,0x7700
1631
    mov  edx,0x7700
1628
    int  0x40
1632
    int  0x40
1629
;    mov  ebx,62 shl 16+1
1633
;    mov  ebx,62 shl 16+1
1630
;    mov  ecx,3 shl 16+14
1634
;    mov  ecx,3 shl 16+14
1631
;    int  0x40
1635
;    int  0x40
1632
    mov  ebx,56 shl 16+1
1636
    mov  ebx,56 shl 16+1
1633
    mov  ecx,4 shl 16+11
1637
    mov  ecx,4 shl 16+11
1634
    int  0x40
1638
    int  0x40
1635
    mov  ebx,57 shl 16+1
1639
    mov  ebx,57 shl 16+1
1636
    mov  ecx,6 shl 16+7
1640
    mov  ecx,6 shl 16+7
1637
    int  0x40
1641
    int  0x40
1638
    pop  ebx
1642
    pop  ebx
1639
 
1643
 
1640
    mov  eax, 4
1644
    mov  eax, 4
1641
    mov  bx,  7
1645
    mov  bx,  7
1642
    add  ebx, 8*65536
1646
    add  ebx, 8*65536
1643
    mov  ecx, 0x10ffffff
1647
    mov  ecx, 0x10ffffff
1644
    mov  edx, m_text
1648
    mov  edx, m_text
1645
    mov  esi, 4
1649
    mov  esi, 4
1646
    int  0x40
1650
    int  0x40
1647
 
1651
 
1648
    popa
1652
    popa
1649
    ret
1653
    ret
1650
 
1654
 
1651
  no_mtext:
1655
  no_mtext:
1652
 
1656
 
1653
 
1657
 
1654
 
1658
 
1655
    mov  eax,[wcolor]
1659
    mov  eax,[wcolor]
1656
    mov  [m_icon+4],eax
1660
    mov  [m_icon+4],eax
1657
 
1661
 
1658
; load & display menuet.bmp
1662
; load & display menuet.bmp
1659
	mov	eax, 70
1663
	mov	eax, 70
1660
	mov	ebx, m_bmp_fileinfo
1664
	mov	ebx, m_bmp_fileinfo
1661
	int	0x40
1665
	int	0x40
1662
 
1666
 
1663
    mov  eax,40
1667
    mov  eax,40
1664
    mov  ebx,0
1668
    mov  ebx,0
1665
    mov  edi,image+53
1669
    mov  edi,image+53
1666
 
1670
 
1667
   new_m_pix:
1671
   new_m_pix:
1668
 
1672
 
1669
;    movzx ecx,byte [edi]
1673
;    movzx ecx,byte [edi]
1670
;    shr  ecx,5
1674
;    shr  ecx,5
1671
 
1675
 
1672
    cmp    byte [edi], 10
1676
    cmp    byte [edi], 10
1673
    jb	   nopix
1677
    jb	   nopix
1674
    cmp    byte [edi+1], 10
1678
    cmp    byte [edi+1], 10
1675
    jb	   nopix
1679
    jb	   nopix
1676
    cmp    byte [edi+2], 10
1680
    cmp    byte [edi+2], 10
1677
    jb	   nopix
1681
    jb	   nopix
1678
 
1682
 
1679
    pusha
1683
    pusha
1680
    cmp  [minimize_left],0
1684
    cmp  [minimize_left],0
1681
    jne  no_m_s2
1685
    jne  no_m_s2
1682
    sub  ebx,10
1686
    sub  ebx,10
1683
  no_m_s2:
1687
  no_m_s2:
1684
;    mov  edx,[ecx*4+m_icon]
1688
;    mov  edx,[ecx*4+m_icon]
1685
    mov  edx,[edi+1]
1689
    mov  edx,[edi+1]
1686
 
1690
 
1687
    mov  ecx,eax
1691
    mov  ecx,eax
1688
    mov  eax,1
1692
    mov  eax,1
1689
    add  ebx,12
1693
    add  ebx,12
1690
    int  0x40
1694
    int  0x40
1691
    popa
1695
    popa
1692
 
1696
 
1693
   nopix:
1697
   nopix:
1694
 
1698
 
1695
    add  edi,3
1699
    add  edi,3
1696
    add  ebx,1
1700
    add  ebx,1
1697
    cmp  ebx,40
1701
    cmp  ebx,40
1698
    jnz  new_m_pix
1702
    jnz  new_m_pix
1699
 
1703
 
1700
    mov  ebx,0
1704
    mov  ebx,0
1701
    dec  eax
1705
    dec  eax
1702
    jnz  new_m_pix
1706
    jnz  new_m_pix
1703
 
1707
 
1704
  no_menu:
1708
  no_menu:
1705
 
1709
 
1706
    popa
1710
    popa
1707
    ret
1711
    ret
1708
 
1712
 
1709
 
1713
 
1710
draw_program_icons:
1714
draw_program_icons:
1711
 
1715
 
1712
    pusha
1716
    pusha
1713
 
1717
 
1714
    cmp  [icons],0
1718
    cmp  [icons],0
1715
    jne  dp_ret
1719
    jne  dp_ret
1716
 
1720
 
1717
    mov  edi,1
1721
    mov  edi,1
1718
    push edi
1722
    push edi
1719
 
1723
 
1720
  new_icon_file:
1724
  new_icon_file:
1721
 
1725
 
1722
    pusha
1726
    pusha
1723
    mov  edx,[esp+32]
1727
    mov  edx,[esp+32]
1724
    add  edx,10
1728
    add  edx,10
1725
    push edx
1729
    push edx
1726
    mov  esi,[wcolor]
1730
    mov  esi,[wcolor]
1727
    mov  ecx,1*65536
1731
    mov  ecx,1*65536
1728
    add  ecx,[b_size_y]
1732
    add  ecx,[b_size_y]
1729
    dec  ecx
1733
    dec  ecx
1730
    mov  eax,edi
1734
    mov  eax,edi
1731
    dec  eax
1735
    dec  eax
1732
    imul eax,40
1736
    imul eax,40
1733
    mov  ebx,eax
1737
    mov  ebx,eax
1734
    add  ebx,[icons_position]
1738
    add  ebx,[icons_position]
1735
    shl  ebx,16
1739
    shl  ebx,16
1736
    mov  bx,39
1740
    mov  bx,39
1737
    pop  edx
1741
    pop  edx
1738
    add  edx,[button_frames]
1742
    add  edx,[button_frames]
1739
    or	 edx, 0x20000000
1743
    or	 edx, 0x20000000
1740
    mov  eax,8
1744
    mov  eax,8
1741
    int  0x40
1745
    int  0x40
1742
    popa
1746
    popa
1743
 
1747
 
1744
    mov  ecx,[esp]
1748
    mov  ecx,[esp]
1745
    add  ecx,48
1749
    add  ecx,48
1746
    mov  [iconf+6],cl
1750
    mov  [iconf+6],cl
1747
 
1751
 
1748
	mov	eax, 70
1752
	mov	eax, 70
1749
	mov	ebx, iconf_fileinfo
1753
	mov	ebx, iconf_fileinfo
1750
	int	0x40
1754
	int	0x40
1751
 
1755
 
1752
    mov  eax,0
1756
    mov  eax,0
1753
    mov  ebx,32
1757
    mov  ebx,32
1754
    mov  edi,image+51+32*33*3
1758
    mov  edi,image+51+32*33*3
1755
 
1759
 
1756
   np2: 			    ; new pixel of file
1760
   np2: 			    ; new pixel of file
1757
 
1761
 
1758
    mov  edx,[edi]
1762
    mov  edx,[edi]
1759
    and  edx,0xffffff
1763
    and  edx,0xffffff
1760
 
1764
 
1761
    cmp  eax,3			    ; Y draw limits
1765
    cmp  eax,3			    ; Y draw limits
1762
    jb	 nopix2
1766
    jb	 nopix2
1763
    cmp  eax,36
1767
    cmp  eax,36
1764
    jg	 nopix2
1768
    jg	 nopix2
1765
    cmp  ebx,38 		    ; X draw limits
1769
    cmp  ebx,38 		    ; X draw limits
1766
    jg	 nopix2
1770
    jg	 nopix2
1767
    cmp  ebx,2
1771
    cmp  ebx,2
1768
    jb	 nopix2
1772
    jb	 nopix2
1769
 
1773
 
1770
    cmp  edx,0
1774
    cmp  edx,0
1771
    jz	 nopix2
1775
    jz	 nopix2
1772
 
1776
 
1773
    cmp  [graph_text],1
1777
    cmp  [graph_text],1
1774
    jne  no_icon_text
1778
    jne  no_icon_text
1775
 
1779
 
1776
    pusha
1780
    pusha
1777
 
1781
 
1778
    mov  ebx,[esp+32]
1782
    mov  ebx,[esp+32]
1779
    dec  ebx
1783
    dec  ebx
1780
    imul ebx,40
1784
    imul ebx,40
1781
    add  ebx,8
1785
    add  ebx,8
1782
    add  ebx,[icons_position]
1786
    add  ebx,[icons_position]
1783
    shl  ebx,16
1787
    shl  ebx,16
1784
    mov  bx,7
1788
    mov  bx,7
1785
 
1789
 
1786
    mov  eax,4
1790
    mov  eax,4
1787
    mov  ecx,0xffffff
1791
    mov  ecx,0xffffff
1788
    mov  edx,[esp+32]
1792
    mov  edx,[esp+32]
1789
    dec  edx
1793
    dec  edx
1790
    imul edx,4
1794
    imul edx,4
1791
    add  edx,mi_text
1795
    add  edx,mi_text
1792
    mov  esi,4
1796
    mov  esi,4
1793
    int  0x40
1797
    int  0x40
1794
 
1798
 
1795
    popa
1799
    popa
1796
 
1800
 
1797
    jmp  nopix2
1801
    jmp  nopix2
1798
 
1802
 
1799
  no_icon_text:
1803
  no_icon_text:
1800
 
1804
 
1801
    mov  esi,[esp]
1805
    mov  esi,[esp]
1802
    pusha
1806
    pusha
1803
    push edx
1807
    push edx
1804
    mov  ecx,eax
1808
    mov  ecx,eax
1805
    add  ecx,2
1809
    add  ecx,2
1806
    mov  eax,esi
1810
    mov  eax,esi
1807
    dec  eax
1811
    dec  eax
1808
    imul eax,40
1812
    imul eax,40
1809
    add  ebx,eax
1813
    add  ebx,eax
1810
    add  ebx,3
1814
    add  ebx,3
1811
    add  ebx,[icons_position]
1815
    add  ebx,[icons_position]
1812
    pop  edx
1816
    pop  edx
1813
    mov  eax,1
1817
    mov  eax,1
1814
    int  0x40
1818
    int  0x40
1815
    popa
1819
    popa
1816
 
1820
 
1817
  nopix2:
1821
  nopix2:
1818
 
1822
 
1819
    sub  edi,3
1823
    sub  edi,3
1820
    dec  ebx
1824
    dec  ebx
1821
    jnz  np2
1825
    jnz  np2
1822
 
1826
 
1823
    mov  ebx,32
1827
    mov  ebx,32
1824
    add  eax,1
1828
    add  eax,1
1825
    cmp  eax,32
1829
    cmp  eax,32
1826
    jnz  np2
1830
    jnz  np2
1827
 
1831
 
1828
    add  dword [esp],1
1832
    add  dword [esp],1
1829
    mov  edi,[esp]
1833
    mov  edi,[esp]
1830
    cmp  dword [esp],4
1834
    cmp  dword [esp],4
1831
    jbe  new_icon_file
1835
    jbe  new_icon_file
1832
    add  esp,4
1836
    add  esp,4
1833
 
1837
 
1834
    mov  eax,4
1838
    mov  eax,4
1835
    mov  ebx,40
1839
    mov  ebx,40
1836
    imul ebx,3
1840
    imul ebx,3
1837
    add  ebx,[icons_position]
1841
    add  ebx,[icons_position]
1838
    add  ebx,10
1842
    add  ebx,10
1839
    shl  ebx,16
1843
    shl  ebx,16
1840
    mov  bx,23
1844
    mov  bx,23
1841
    mov  ecx,[wcolor]
1845
    mov  ecx,[wcolor]
1842
    mov  edx,gpl
1846
    mov  edx,gpl
1843
    mov  esi,3
1847
    mov  esi,3
1844
    int  0x40
1848
    int  0x40
1845
 
1849
 
1846
  dp_ret:
1850
  dp_ret:
1847
 
1851
 
1848
    popa
1852
    popa
1849
    ret
1853
    ret
1850
 
1854
 
1851
 
1855
 
1852
 
1856
 
1853
draw_info:    ; draw cpu usage, time, date
1857
draw_info:    ; draw cpu usage, time, date
1854
 
1858
 
1855
    pusha
1859
    pusha
1856
 
1860
 
1857
    cmp  [setup_enable],1
1861
    cmp  [setup_enable],1
1858
    jne  no_setup
1862
    jne  no_setup
1859
 
1863
 
1860
    cmp  [minimize_right],0
1864
    cmp  [minimize_right],0
1861
    jne  no_m_r
1865
    jne  no_m_r
1862
    add  [maxx],10
1866
    add  [maxx],10
1863
 
1867
 
1864
   no_m_r:
1868
   no_m_r:
1865
 
1869
 
1866
    mov  eax,3
1870
    mov  eax,3
1867
    int  0x40
1871
    int  0x40
1868
    cmp  eax,[ptime]
1872
    cmp  eax,[ptime]
1869
    jz	 _ret
1873
    jz	 _ret
1870
    mov  [ptime],eax
1874
    mov  [ptime],eax
1871
 
1875
 
1872
    call draw_cpu_usage
1876
    call draw_cpu_usage
1873
 
1877
 
1874
    mov  eax,[maxx]   ; blink sec
1878
    mov  eax,[maxx]   ; blink sec
1875
    sub  eax,33
1879
    sub  eax,33
1876
    shl  eax,16
1880
    shl  eax,16
1877
    mov  ebx,eax
1881
    mov  ebx,eax
1878
    add  ebx,9
1882
    add  ebx,9
1879
    mov  eax,3
1883
    mov  eax,3
1880
    int  0x40
1884
    int  0x40
1881
    cmp  [graph_text],1
1885
    cmp  [graph_text],1
1882
    jne  no_y4
1886
    jne  no_y4
1883
    sub  bx,2
1887
    sub  bx,2
1884
  no_y4:
1888
  no_y4:
1885
    mov  ecx,eax
1889
    mov  ecx,eax
1886
    shr  ecx,16
1890
    shr  ecx,16
1887
    and  ecx,1
1891
    and  ecx,1
1888
    mov  edx,[bte]
1892
    mov  edx,[bte]
1889
    sub  edx,time_bgr_color;[wcolor]
1893
    sub  edx,time_bgr_color;[wcolor]
1890
    imul ecx,edx
1894
    imul ecx,edx
1891
    add  ecx,time_bgr_color;[wcolor]
1895
    add  ecx,time_bgr_color;[wcolor]
1892
    mov  edx,sec
1896
    mov  edx,sec
1893
    mov  eax,4
1897
    mov  eax,4
1894
    mov  esi,1
1898
    mov  esi,1
1895
    int  0x40
1899
    int  0x40
1896
 
1900
 
1897
 
1901
 
1898
;    mov  eax,26          ; check for change in time or country
1902
;    mov  eax,26          ; check for change in time or country
1899
;    mov  ebx,5
1903
;    mov  ebx,5
1900
;    int  0x40
1904
;    int  0x40
1901
;    mov  edx,eax
1905
;    mov  edx,eax
1902
    mov  eax,26
1906
    mov  eax,26
1903
    mov  ebx,2
1907
    mov  ebx,2
1904
    mov  ecx,9
1908
    mov  ecx,9
1905
    int  0x40
1909
    int  0x40
1906
;    add  edx,eax
1910
;    add  edx,eax
1907
    mov  edx,eax
1911
    mov  edx,eax
1908
    mov  eax,3
1912
    mov  eax,3
1909
    int  0x40
1913
    int  0x40
1910
    and  eax,0xffff
1914
    and  eax,0xffff
1911
    add  edx,eax
1915
    add  edx,eax
1912
    cmp  edx,[checks]
1916
    cmp  edx,[checks]
1913
    je	 _ret
1917
    je	 _ret
1914
    mov  [checks],edx
1918
    mov  [checks],edx
1915
 
1919
 
1916
    mov  ebx,[maxx]
1920
    mov  ebx,[maxx]
1917
    sub  ebx,48 ;;94 ;;74
1921
    sub  ebx,48 ;;94 ;;74
1918
    shl  ebx,16
1922
    shl  ebx,16
1919
    add  ebx,33 ;;84 ;;64
1923
    add  ebx,33 ;;84 ;;64
1920
 
1924
 
1921
    mov  eax,8		     ; time/date button
1925
    mov  eax,8		     ; time/date button
1922
    mov  ecx,3 *65536
1926
    mov  ecx,3 *65536
1923
    add  ecx,[b_size_y]
1927
    add  ecx,[b_size_y]
1924
;    dec  ecx
1928
;    dec  ecx
1925
    sub  cx,5
1929
    sub  cx,5
1926
    mov  edx,2+0x20000000
1930
    mov  edx,2+0x20000000
1927
    mov  esi,[wcolor]
1931
    mov  esi,[wcolor]
1928
    int  0x40
1932
    int  0x40
1929
    pusha
1933
    pusha
1930
    mov  eax,13
1934
    mov  eax,13
1931
    add  ebx,10*65536-16
1935
    add  ebx,10*65536-16
1932
    add  ecx,5*65536-8
1936
    add  ecx,5*65536-8
1933
    mov  edx,[wcolor]
1937
    mov  edx,[wcolor]
1934
    int  0x40
1938
    int  0x40
1935
    popa
1939
    popa
1936
    and  edx,0xffff
1940
    and  edx,0xffff
1937
    add  edx,[button_frames]
1941
    add  edx,[button_frames]
1938
    int  0x40
1942
    int  0x40
1939
 
1943
 
1940
    mov  eax,8
1944
    mov  eax,8
1941
    mov  ebx,[maxx]
1945
    mov  ebx,[maxx]
1942
    sub  ebx,77 ;80
1946
    sub  ebx,77 ;80
1943
    shl  ebx,16
1947
    shl  ebx,16
1944
    add  ebx,12
1948
    add  ebx,12
1945
    mov  ecx,5 shl 16+10
1949
    mov  ecx,5 shl 16+10
1946
    mov  edx,16+0x20000000  ;button 16
1950
    mov  edx,16+0x20000000  ;button 16
1947
    mov  esi,[wcolor]
1951
    mov  esi,[wcolor]
1948
    int  0x40
1952
    int  0x40
1949
    sub  ebx,17 shl 16
1953
    sub  ebx,17 shl 16
1950
    inc  edx		    ;button 17
1954
    inc  edx		    ;button 17
1951
;    int  0x40
1955
;    int  0x40
1952
    add  ebx,33 shl 16
1956
    add  ebx,33 shl 16
1953
    mov  bx,8
1957
    mov  bx,8
1954
    inc  edx		    ;button 18
1958
    inc  edx		    ;button 18
1955
    int  0x40
1959
    int  0x40
1956
    sub  ebx,30 shl 16
1960
    sub  ebx,30 shl 16
1957
    mov  bx,10
1961
    mov  bx,10
1958
    inc  edx		    ;button 19
1962
    inc  edx		    ;button 19
1959
    int  0x40
1963
    int  0x40
1960
    sub  ebx,14 shl 16
1964
    sub  ebx,14 shl 16
1961
    inc  edx		    ;button 20
1965
    inc  edx		    ;button 20
1962
    int  0x40
1966
    int  0x40
1963
    sub  ebx,12 shl 16
1967
    sub  ebx,12 shl 16
1964
    mov  bx,8
1968
    mov  bx,8
1965
    mov  ecx,6 shl 16+10
1969
    mov  ecx,6 shl 16+10
1966
    inc  edx	    ;button 21
1970
    inc  edx	    ;button 21
1967
    int  0x40
1971
    int  0x40
1968
    sub  ebx,24 shl 16	; << Alver 25.08.2007 >> 18 shl 16
1972
    sub  ebx,24 shl 16	; << Alver 25.08.2007 >> 18 shl 16
1969
    inc  edx	    ;button 22
1973
    inc  edx	    ;button 22
1970
    int  0x40
1974
    int  0x40
1971
 
1975
 
1972
    ; flags
1976
    ; flags
1973
 
1977
 
1974
;    mov  eax,26
1978
;    mov  eax,26
1975
;    mov  ebx,5
1979
;    mov  ebx,5
1976
;    int  0x40
1980
;    int  0x40
1977
;    mov  ebx,eax
1981
;    mov  ebx,eax
1978
;
1982
;
1979
;    mov  eax,1
1983
;    mov  eax,1
1980
;    mov  [type_lang],al
1984
;    mov  [type_lang],al
1981
;    call draw_flag
1985
;    call draw_flag
1982
 
1986
 
1983
    mov  eax,26
1987
    mov  eax,26
1984
    mov  ebx,2
1988
    mov  ebx,2
1985
    mov  ecx,9
1989
    mov  ecx,9
1986
    int  0x40
1990
    int  0x40
1987
    mov  ebx,eax
1991
    mov  ebx,eax
1988
 
1992
 
1989
    mov  eax,2
1993
    mov  eax,2
1990
    mov  [type_lang],al
1994
    mov  [type_lang],al
1991
    call draw_flag
1995
    call draw_flag
1992
 
1996
 
1993
    mcall 18,8,1
1997
    mcall 18,8,1
1994
    mov  [sound_flag],al
1998
    mov  [sound_flag],al
1995
 
1999
 
1996
    mov  ebx,[maxx]
2000
    mov  ebx,[maxx]
1997
    sub  ebx,92 ;109 ;112 ;28
2001
    sub  ebx,92 ;109 ;112 ;28
1998
    shl  ebx,16
2002
    shl  ebx,16
1999
    mov  bx,12
2003
    mov  bx,12
2000
    mov  ecx, 4*65536+13
2004
    mov  ecx, 4*65536+13
2001
    mov  edx,0
2005
    mov  edx,0
2002
    mov  eax,13
2006
    mov  eax,13
2003
    int  0x40
2007
    int  0x40
2004
    add  ebx,1 shl 16
2008
    add  ebx,1 shl 16
2005
    sub  bx,2
2009
    sub  bx,2
2006
    mov  ecx,5 shl 16+11
2010
    mov  ecx,5 shl 16+11
2007
    mov  edx,0xcc
2011
    mov  edx,0xcc
2008
    int  0x40
2012
    int  0x40
2009
    add  ebx,1 shl 16
2013
    add  ebx,1 shl 16
2010
    mov  bx,5
2014
    mov  bx,5
2011
    mov  ecx,8 shl 16+5
2015
    mov  ecx,8 shl 16+5
2012
    mov  edx,0xdddd00
2016
    mov  edx,0xdddd00
2013
    int  0x40
2017
    int  0x40
2014
    add  ebx,5 shl 16
2018
    add  ebx,5 shl 16
2015
    mov  bx,1
2019
    mov  bx,1
2016
    mov  ecx,7 shl 16+7
2020
    mov  ecx,7 shl 16+7
2017
    int  0x40
2021
    int  0x40
2018
    add  ebx,1 shl 16
2022
    add  ebx,1 shl 16
2019
    mov  ecx,6 shl 16+9
2023
    mov  ecx,6 shl 16+9
2020
    int  0x40
2024
    int  0x40
2021
    add  ebx,1 shl 16
2025
    add  ebx,1 shl 16
2022
    mov  ecx,5 shl 16+11
2026
    mov  ecx,5 shl 16+11
2023
    int  0x40
2027
    int  0x40
2024
 
2028
 
2025
;    cmp  [music_type],0
2029
;    cmp  [music_type],0
2026
;    jne   dalshe
2030
;    jne   dalshe
2027
    cmp  [sound_flag],0
2031
    cmp  [sound_flag],0
2028
    je	 dalshe
2032
    je	 dalshe
2029
 
2033
 
2030
    sub  ebx,8 shl 16
2034
    sub  ebx,8 shl 16
2031
    ror  ebx,16
2035
    ror  ebx,16
2032
    mov  cx,bx
2036
    mov  cx,bx
2033
    rol  ebx,16
2037
    rol  ebx,16
2034
    mov  bx,cx
2038
    mov  bx,cx
2035
    add  bx,8
2039
    add  bx,8
2036
    mov  ecx,5 shl 16+15
2040
    mov  ecx,5 shl 16+15
2037
    mov  edx,0xff0000
2041
    mov  edx,0xff0000
2038
    mov  eax,38
2042
    mov  eax,38
2039
    int  0x40
2043
    int  0x40
2040
    add  ebx,1 shl 16
2044
    add  ebx,1 shl 16
2041
    inc  bx
2045
    inc  bx
2042
    int  0x40
2046
    int  0x40
2043
    rol  ecx,16
2047
    rol  ecx,16
2044
    int  0x40
2048
    int  0x40
2045
    sub  ebx,1 shl 16
2049
    sub  ebx,1 shl 16
2046
    dec  bx
2050
    dec  bx
2047
    int  0x40
2051
    int  0x40
2048
 
2052
 
2049
dalshe:
2053
dalshe:
2050
 
2054
 
2051
    mov  ebx,[maxx]
2055
    mov  ebx,[maxx]
2052
    sub  ebx,106;123
2056
    sub  ebx,106;123
2053
    shl  ebx,16
2057
    shl  ebx,16
2054
    mov  bx,12
2058
    mov  bx,12
2055
    mov  ecx, 4*65536+13
2059
    mov  ecx, 4*65536+13
2056
    mov  edx,0
2060
    mov  edx,0
2057
    mov  eax,13
2061
    mov  eax,13
2058
    int  0x40
2062
    int  0x40
2059
    add  ebx,1 shl 16
2063
    add  ebx,1 shl 16
2060
    sub  bx,2
2064
    sub  bx,2
2061
    mov  ecx,5 shl 16+11
2065
    mov  ecx,5 shl 16+11
2062
    mov  edx,0xffcc00
2066
    mov  edx,0xffcc00
2063
    int  0x40
2067
    int  0x40
2064
    mov  eax,4
2068
    mov  eax,4
2065
    mov  ebx,[maxx]
2069
    mov  ebx,[maxx]
2066
    sub  ebx,104;121
2070
    sub  ebx,104;121
2067
    shl  ebx,16
2071
    shl  ebx,16
2068
    mov  bx,7
2072
    mov  bx,7
2069
    mov  ecx,0x10000000
2073
    mov  ecx,0x10000000
2070
    mov  edx,file_sys
2074
    mov  edx,file_sys
2071
    mov  esi,1
2075
    mov  esi,1
2072
    int  0x40
2076
    int  0x40
2073
    add  ebx,1 shl 16
2077
    add  ebx,1 shl 16
2074
    int  0x40
2078
    int  0x40
2075
 
2079
 
2076
    mov  edx,0
2080
    mov  edx,0
2077
    mov  eax,13
2081
    mov  eax,13
2078
    mov  ebx,[maxx]
2082
    mov  ebx,[maxx]
2079
    sub  ebx,117;134
2083
    sub  ebx,117;134
2080
    shl  ebx,16
2084
    shl  ebx,16
2081
    mov  bx,9
2085
    mov  bx,9
2082
    mov  ecx,6 shl 16+11
2086
    mov  ecx,6 shl 16+11
2083
    int  0x40
2087
    int  0x40
2084
; // Alver 25.08.2007 // {
2088
; // Alver 25.08.2007 // {
2085
  ;  sub  ebx,18 shl 16
2089
  ;  sub  ebx,18 shl 16
2086
  ;  int  0x40
2090
  ;  int  0x40
2087
  ;  add  ebx,19 shl 16
2091
  ;  add  ebx,19 shl 16
2088
    sub  ebx,24 shl 16 ; 18 shl 16
2092
    sub  ebx,24 shl 16 ; 18 shl 16
2089
    int  0x40
2093
    int  0x40
2090
    add  ebx,25 shl 16 ; 19 shl 16
2094
    add  ebx,25 shl 16 ; 19 shl 16
2091
; } \\ Alver \\
2095
; } \\ Alver \\
2092
    sub  bx,2
2096
    sub  bx,2
2093
    mov  ecx,7 shl 16+9
2097
    mov  ecx,7 shl 16+9
2094
    mov  edx,0xffffff
2098
    mov  edx,0xffffff
2095
    int  0x40
2099
    int  0x40
2096
; // Alver 25.08.2007 // {
2100
; // Alver 25.08.2007 // {
2097
 ;   sub  ebx,18 shl 16
2101
 ;   sub  ebx,18 shl 16
2098
    sub  ebx,24 shl 16
2102
    sub  ebx,24 shl 16
2099
; } \\ Alver \\
2103
; } \\ Alver \\
2100
    int  0x40
2104
    int  0x40
2101
 
2105
 
2102
    mov  eax,4
2106
    mov  eax,4
2103
    mov  edx,page_a1
2107
    mov  edx,page_a1
2104
    mov  ebx,[maxx]
2108
    mov  ebx,[maxx]
2105
; // Alver 25.08.2007 // {
2109
; // Alver 25.08.2007 // {
2106
   ; sub  ebx,133;150
2110
   ; sub  ebx,133;150
2107
    sub  ebx, 139
2111
    sub  ebx, 139
2108
; } \\ Alver \\
2112
; } \\ Alver \\
2109
    shl  ebx,16
2113
    shl  ebx,16
2110
    mov  bx,8
2114
    mov  bx,8
2111
    mov  esi,5	   ;4
2115
    mov  esi,5	   ;4
2112
    int  0x40
2116
    int  0x40
2113
    add  ebx,1 shl 16
2117
    add  ebx,1 shl 16
2114
    int  0x40
2118
    int  0x40
2115
 
2119
 
2116
    mov  eax,47
2120
    mov  eax,47
2117
    mov  ebx,0x20000  ; 0x10100 (
2121
    mov  ebx,0x20000  ; 0x10100 (
2118
    mov  ecx,[page_list]
2122
    mov  ecx,[page_list]
2119
    mov  edx,[maxx]
2123
    mov  edx,[maxx]
2120
    sub  edx,130 ; 124 (
2124
    sub  edx,130 ; 124 (
2121
    shl  edx,16
2125
    shl  edx,16
2122
    mov  dx,7
2126
    mov  dx,7
2123
    mov  esi,0xffffff
2127
    mov  esi,0xffffff
2124
    int  0x40
2128
    int  0x40
2125
 
2129
 
2126
;    sub  ebx,14 shl 16
2130
;    sub  ebx,14 shl 16
2127
;    mov  bx,7
2131
;    mov  bx,7
2128
;    mov  edx,turn_text
2132
;    mov  edx,turn_text
2129
;    mov  esi,1
2133
;    mov  esi,1
2130
 
2134
 
2131
;    mov  ecx,0x60a060 ;[wcolor]
2135
;    mov  ecx,0x60a060 ;[wcolor]
2132
;    add  ecx,0x303030
2136
;    add  ecx,0x303030
2133
;    mov  eax,4
2137
;    mov  eax,4
2134
;    int  0x40
2138
;    int  0x40
2135
;    add  ebx,1 shl 16
2139
;    add  ebx,1 shl 16
2136
;    int  0x40
2140
;    int  0x40
2137
;    add  ebx,1 shl 16
2141
;    add  ebx,1 shl 16
2138
;    int  0x40
2142
;    int  0x40
2139
;    add  ebx,1 shl 16
2143
;    add  ebx,1 shl 16
2140
;    int  0x40
2144
;    int  0x40
2141
 
2145
 
2142
;    add  ebx,1 shl 16
2146
;    add  ebx,1 shl 16
2143
;    mov  ecx,0x60a060 ;[wcolor]
2147
;    mov  ecx,0x60a060 ;[wcolor]
2144
;    int  0x40
2148
;    int  0x40
2145
;    add  ebx,1 shl 16
2149
;    add  ebx,1 shl 16
2146
;    int  0x40
2150
;    int  0x40
2147
;    add  ebx,1 shl 16
2151
;    add  ebx,1 shl 16
2148
;    sub  ecx,0x303030
2152
;    sub  ecx,0x303030
2149
;    int  0x40
2153
;    int  0x40
2150
 
2154
 
2151
;    sub  ebx,6 shl 16
2155
;    sub  ebx,6 shl 16
2152
;    mov  bx,1
2156
;    mov  bx,1
2153
;    mov  ecx,2 shl 16+15
2157
;    mov  ecx,2 shl 16+15
2154
;    mov  edx,0x60a060  ;[wcolor]
2158
;    mov  edx,0x60a060  ;[wcolor]
2155
;    add  edx,0x303030
2159
;    add  edx,0x303030
2156
;    mov  eax,13
2160
;    mov  eax,13
2157
;    int  0x40
2161
;    int  0x40
2158
;    add  ebx,1 shl 16
2162
;    add  ebx,1 shl 16
2159
;    mov  bx,1
2163
;    mov  bx,1
2160
;    mov  edx,0x60a060  ;[wcolor]
2164
;    mov  edx,0x60a060  ;[wcolor]
2161
;    int  0x40
2165
;    int  0x40
2162
;    add  ebx,1 shl 16
2166
;    add  ebx,1 shl 16
2163
;    mov  bx,1
2167
;    mov  bx,1
2164
;    sub  edx,0x303030
2168
;    sub  edx,0x303030
2165
;    int  0x40
2169
;    int  0x40
2166
;    add  ebx,1 shl 16
2170
;    add  ebx,1 shl 16
2167
;    mov  edx,[wcolor]
2171
;    mov  edx,[wcolor]
2168
;    int  0x40
2172
;    int  0x40
2169
 
2173
 
2170
    mov  eax,3			; get time
2174
    mov  eax,3			; get time
2171
    int  0x40
2175
    int  0x40
2172
 
2176
 
2173
    movzx ebx,al
2177
    movzx ebx,al
2174
    shr   eax,8
2178
    shr   eax,8
2175
    movzx ecx,al
2179
    movzx ecx,al
2176
    shr   eax,8
2180
    shr   eax,8
2177
    movzx edx,al
2181
    movzx edx,al
2178
 
2182
 
2179
    ; ebx ecx edx h m s
2183
    ; ebx ecx edx h m s
2180
 
2184
 
2181
    push ebx
2185
    push ebx
2182
    push ecx
2186
    push ecx
2183
 
2187
 
2184
    mov  eax,[maxx]
2188
    mov  eax,[maxx]
2185
    sub  eax,32
2189
    sub  eax,32
2186
    shl  eax,16
2190
    shl  eax,16
2187
    mov  ebx,eax
2191
    mov  ebx,eax
2188
    add  ebx,9
2192
    add  ebx,9
2189
 
2193
 
2190
    mov  ecx,[bte]
2194
    mov  ecx,[bte]
2191
 
2195
 
2192
    cmp  [graph_text],1
2196
    cmp  [graph_text],1
2193
    jne  no_y3
2197
    jne  no_y3
2194
    sub  bx,2
2198
    sub  bx,2
2195
    mov  ecx,0xffffff
2199
    mov  ecx,0xffffff
2196
  no_y3:
2200
  no_y3:
2197
 
2201
 
2198
 
2202
 
2199
    mov  edx,[esp]	       ; __:_X
2203
    mov  edx,[esp]	       ; __:_X
2200
    and  edx,15
2204
    and  edx,15
2201
    mov  eax,4
2205
    mov  eax,4
2202
    add  ebx,10*65536
2206
    add  ebx,10*65536
2203
    add  edx,text
2207
    add  edx,text
2204
    mov  esi,1
2208
    mov  esi,1
2205
    int  0x40
2209
    int  0x40
2206
 
2210
 
2207
    pop  edx			; __:X_
2211
    pop  edx			; __:X_
2208
    shr  edx,4
2212
    shr  edx,4
2209
    and  edx,15
2213
    and  edx,15
2210
    mov  eax,4
2214
    mov  eax,4
2211
    sub  ebx,6*65536
2215
    sub  ebx,6*65536
2212
    add  edx,text
2216
    add  edx,text
2213
    mov  esi,1
2217
    mov  esi,1
2214
    int  0x40
2218
    int  0x40
2215
 
2219
 
2216
    mov  edx,[esp]	       ; _X:__
2220
    mov  edx,[esp]	       ; _X:__
2217
    and  edx,15
2221
    and  edx,15
2218
    mov  eax,4
2222
    mov  eax,4
2219
    sub  ebx,11*65536
2223
    sub  ebx,11*65536
2220
    add  edx,text
2224
    add  edx,text
2221
    mov  esi,1
2225
    mov  esi,1
2222
    int  0x40
2226
    int  0x40
2223
 
2227
 
2224
    pop  edx			; X_:__
2228
    pop  edx			; X_:__
2225
    shr  edx,4
2229
    shr  edx,4
2226
    and  edx,15
2230
    and  edx,15
2227
    mov  eax,4
2231
    mov  eax,4
2228
    sub  ebx,6*65536
2232
    sub  ebx,6*65536
2229
    add  edx,text
2233
    add  edx,text
2230
    mov  esi,1
2234
    mov  esi,1
2231
    int  0x40
2235
    int  0x40
2232
 
2236
 
2233
    call draw_cpu_usage
2237
    call draw_cpu_usage
2234
 
2238
 
2235
  _ret:
2239
  _ret:
2236
 
2240
 
2237
    cmp  [minimize_right],0
2241
    cmp  [minimize_right],0
2238
    jne  no_m_r2
2242
    jne  no_m_r2
2239
    sub  [maxx],10
2243
    sub  [maxx],10
2240
   no_m_r2:
2244
   no_m_r2:
2241
 
2245
 
2242
   no_setup:
2246
   no_setup:
2243
 
2247
 
2244
    popa
2248
    popa
2245
    ret
2249
    ret
2246
 
2250
 
2247
 
2251
 
2248
 
2252
 
2249
draw_cpu_usage:
2253
draw_cpu_usage:
2250
 
2254
 
2251
    pushad
2255
    pushad
2252
 
2256
 
2253
    mov  [ysi],30
2257
    mov  [ysi],30
2254
    cmp  [graph_text],1
2258
    cmp  [graph_text],1
2255
    jne  @f
2259
    jne  @f
2256
    mov  [ysi],12
2260
    mov  [ysi],12
2257
  @@:
2261
  @@:
2258
 
2262
 
2259
 
2263
 
2260
    mov  eax,18    ; TSC / SEC
2264
    mov  eax,18    ; TSC / SEC
2261
    mov  ebx,5
2265
    mov  ebx,5
2262
    int  0x40
2266
    int  0x40
2263
    shr  eax,20
2267
    shr  eax,20
2264
    push eax
2268
    push eax
2265
    mov  eax,18    ; IDLE / SEC
2269
    mov  eax,18    ; IDLE / SEC
2266
    mov  ebx,4
2270
    mov  ebx,4
2267
    int  0x40
2271
    int  0x40
2268
    shr  eax,20
2272
    shr  eax,20
2269
    xor  edx,edx
2273
    xor  edx,edx
2270
    imul eax,[ysi]
2274
    imul eax,[ysi]
2271
 
2275
 
2272
    cdq
2276
    cdq
2273
    pop  ebx
2277
    pop  ebx
2274
    inc  ebx
2278
    inc  ebx
2275
    div  ebx
2279
    div  ebx
2276
    cmp  eax,[ysi]
2280
    cmp  eax,[ysi]
2277
    jng  no_bug
2281
    jng  no_bug
2278
    mov  eax,[ysi]
2282
    mov  eax,[ysi]
2279
no_bug:
2283
no_bug:
2280
    push eax
2284
    push eax
2281
 
2285
 
2282
    mov  eax,13
2286
    mov  eax,13
2283
    mov  ebx,[maxx]
2287
    mov  ebx,[maxx]
2284
    sub  ebx,60
2288
    sub  ebx,60
2285
    shl  ebx,16
2289
    shl  ebx,16
2286
    add  ebx,8
2290
    add  ebx,8
2287
    mov  ecx,5 shl 16
2291
    mov  ecx,5 shl 16
2288
    add  ecx,[ysi]
2292
    add  ecx,[ysi]
2289
    mov  edx,0xdd2222
2293
    mov  edx,0xdd2222
2290
    int  0x40
2294
    int  0x40
2291
 
2295
 
2292
    pop  eax
2296
    pop  eax
2293
    mov  ecx,5 shl 16
2297
    mov  ecx,5 shl 16
2294
    add  ecx,eax
2298
    add  ecx,eax
2295
    mov  eax,13
2299
    mov  eax,13
2296
    mov  edx,0x44aa44
2300
    mov  edx,0x44aa44
2297
    int  0x40
2301
    int  0x40
2298
 
2302
 
2299
    popad
2303
    popad
2300
    ret
2304
    ret
2301
 
2305
 
2302
;;;include 'detect.asm'
2306
;;;include 'detect.asm'
2303
include 'ctx_menu.asm'
2307
include 'ctx_menu.asm'
2304
 
2308
 
2305
; DATA
2309
; DATA
2306
 
2310
 
2307
stripe:
2311
stripe:
2308
    dd	-0x010101
2312
    dd	-0x010101
2309
    dd	-0x010101
2313
    dd	-0x010101
2310
    dd	-0x020202
2314
    dd	-0x020202
2311
    dd	-0x010101
2315
    dd	-0x010101
2312
    dd	-0x000000
2316
    dd	-0x000000
2313
 
2317
 
2314
    dd	 0x000000
2318
    dd	 0x000000
2315
    dd	 0x010101
2319
    dd	 0x010101
2316
    dd	 0x020202
2320
    dd	 0x020202
2317
    dd	 0x010101
2321
    dd	 0x010101
2318
    dd	 0x010101
2322
    dd	 0x010101
2319
 
2323
 
2320
m_icon:
2324
m_icon:
2321
    dd	0x0
2325
    dd	0x0
2322
    dd	0x808080
2326
    dd	0x808080
2323
    dd	0x000000
2327
    dd	0x000000
2324
    dd	0x000000
2328
    dd	0x000000
2325
    dd	0xffffff
2329
    dd	0xffffff
2326
 
2330
 
2327
 
2331
 
2328
lsz m_text,\
2332
lsz m_text,\
2329
  ru, "Œ…ž",\
2333
  ru, "Œ…ž",\
2330
  en, "MENU",\
2334
  en, "MENU",\
2331
  et, "MEN--"
2335
  et, "MEN--"
2332
 
2336
 
2333
mi_text   db   'WAVETETRBGRDGPL '
2337
mi_text   db   'WAVETETRBGRDGPL '
2334
 
2338
 
2335
flag_text db 'EnFiGeRuFrEtUa'
2339
flag_text db 'EnFiGeRuFrEtUa'
2336
 
2340
 
2337
type_lang db 0
2341
type_lang db 0
2338
;music_type db 1
2342
;music_type db 1
2339
sound_flag db 0
2343
sound_flag db 0
2340
button_frames  dd  0x0
2344
button_frames  dd  0x0
2341
 
2345
 
2342
checks	  dd -1
2346
checks	  dd -1
2343
hidetext  db 0x11,0x10,0x1e
2347
hidetext  db 0x11,0x10,0x1e
2344
 
2348
 
2345
turn_text db  '><'
2349
turn_text db  '><'
2346
gpl	  db  'GPL'
2350
gpl	  db  'GPL'
2347
 
2351
 
2348
chlang db 'LANG',0
2352
chlang db 'LANG',0
2349
;syslang db 'SLAN',0
2353
;syslang db 'SLAN',0
2350
 
2354
 
2351
contrast  db 0
2355
contrast  db 0
2352
 
2356
 
2353
running_applications  dd  0x100
2357
running_applications  dd  0x100
2354
max_applications      dd  11
2358
max_applications      dd  11
2355
 
2359
 
2356
current_alt_tab_app	dd	-1
2360
current_alt_tab_app	dd	-1
2357
 
2361
 
2358
page_list  dd 0
2362
page_list  dd 0
2359
draw_start_position dd 0
2363
draw_start_position dd 0
2360
draw_window_1 db 0
2364
draw_window_1 db 0
2361
 
2365
 
2362
b_size_y:  dd  0x0
2366
b_size_y:  dd  0x0
2363
ysi  dd  0
2367
ysi  dd  0
2364
small_draw dd 0x0
2368
small_draw dd 0x0
2365
 
2369
 
2366
ptime	dd 0x0
2370
ptime	dd 0x0
2367
maxx	dd 0x0
2371
maxx	dd 0x0
2368
text	db '0123456789'
2372
text	db '0123456789'
2369
; // Alver 25.08.2007 // {
2373
; // Alver 25.08.2007 // {
2370
;page_a1 db '<  >'
2374
;page_a1 db '<  >'
2371
page_a1        db '<   >'
2375
page_a1        db '<   >'
2372
page_clean_but db 25,24,18
2376
page_clean_but db 25,24,18
2373
; } \\ Alver \\
2377
; } \\ Alver \\
2374
bte	dd 0xccddee
2378
bte	dd 0xccddee
2375
 
2379
 
2376
wcolor	dd 0x506070
2380
wcolor	dd 0x506070
2377
 
2381
 
2378
sec	db ': '
2382
sec	db ': '
2379
pros	db '                                                  '
2383
pros	db '                                                  '
2380
	db '                                                  '
2384
	db '                                                  '
2381
 
2385
 
2382
screenxy    dd	0x0
2386
screenxy    dd	0x0
2383
stcount     dd	0x0
2387
stcount     dd	0x0
2384
 
2388
 
2385
setup_exec:
2389
setup_exec:
2386
	dd	7
2390
	dd	7
2387
	dd	0
2391
	dd	0
2388
.cmdline dd	?
2392
.cmdline dd	?
2389
	dd	0
2393
	dd	0
2390
	dd	0
2394
	dd	0
2391
	db	'/sys/'
2395
	db	'/sys/'
2392
file_sys db	'SETUP',0
2396
file_sys db	'SETUP',0
2393
 
2397
 
2394
exec_fileinfo:
2398
exec_fileinfo:
2395
	dd	7
2399
	dd	7
2396
	dd	0
2400
	dd	0
2397
	dd	0
2401
	dd	0
2398
	dd	0
2402
	dd	0
2399
	dd	0
2403
	dd	0
2400
	db	0
2404
	db	0
2401
.name	dd	?
2405
.name	dd	?
2402
 
2406
 
2403
end_name	db	'/sys/END',0
2407
end_name	db	'/sys/END',0
2404
menu_name	db	'/sys/@MENU',0
2408
menu_name	db	'/sys/@MENU',0
2405
calendar_name	db	'/sys/CALENDAR',0
2409
calendar_name	db	'/sys/CALENDAR',0
2406
sysmeter_name	db	'/sys/GMON',0
2410
sysmeter_name	db	'/sys/GMON',0
2407
mousemul_name	db	'/sys/MOUSEMUL',0
2411
mousemul_name	db	'/sys/MOUSEMUL',0
2408
 
2412
 
2409
dat_fileinfo:
2413
dat_fileinfo:
2410
	dd	0
2414
	dd	0
2411
	dd	0
2415
	dd	0
2412
	dd	0
2416
	dd	0
2413
	dd	1024
2417
	dd	1024
2414
	dd	I_END
2418
	dd	I_END
2415
	db	'/sys/PANEL.DAT',0
2419
	db	'/sys/PANEL.DAT',0
2416
 
2420
 
2417
m_bmp_fileinfo:
2421
m_bmp_fileinfo:
2418
	dd	0
2422
	dd	0
2419
	dd	0
2423
	dd	0
2420
	dd	0
2424
	dd	0
2421
	dd	8192
2425
	dd	8192
2422
	dd	image
2426
	dd	image
2423
	db	'/sys/MENUET.BMP',0
2427
	db	'/sys/MENUET.BMP',0
2424
 
2428
 
2425
iconf_fileinfo:
2429
iconf_fileinfo:
2426
	dd	0
2430
	dd	0
2427
	dd	0
2431
	dd	0
2428
	dd	0
2432
	dd	0
2429
	dd	8192
2433
	dd	8192
2430
	dd	image
2434
	dd	image
2431
	db	'/sys/'
2435
	db	'/sys/'
2432
iconf	db	'MBAR_IX.BMP',0
2436
iconf	db	'MBAR_IX.BMP',0
2433
 
2437
 
2434
I_END:
2438
I_END:
2435
 
2439
 
2436
screen_size:
2440
screen_size:
2437
  .height dw ?
2441
  .height dw ?
2438
  .width  dw ?
2442
  .width  dw ?
2439
 
2443
 
2440
this_slot      dd 0	      ; Slot of this process
2444
this_slot      dd 0	      ; Slot of this process
2441
max_slot       dd 255
2445
max_slot       dd 255
2442
system_colours	system_colors ; rd 10
2446
system_colours	system_colors ; rd 10
2443
app_list rd 50
2447
app_list rd 50
2444
alt_tab_list	rd	256*2
2448
alt_tab_list	rd	256*2
2445
alt_tab_list_size dd	?
2449
alt_tab_list_size dd	?
2446
process_info_buffer  rb 1024
2450
process_info_buffer  rb 1024
2447
procinfo_for_detect  rb 1024
2451
procinfo_for_detect  rb 1024
2448
tictable:
2452
tictable:
2449
  rd 256
2453
  rd 256
2450
 
2454
 
2451
	rb	256
2455
	rb	256
2452
detect_stack:
2456
detect_stack:
2453
	rb	256
2457
	rb	256
2454
ctx_menu_stack:
2458
ctx_menu_stack:
2455
 
2459
 
2456
panel_x_pos	rd	1
2460
panel_x_pos	rd	1
2457
panel_y_pos	rd	1
2461
panel_y_pos	rd	1
2458
 
2462
 
2459
last_active_window	dd	0
2463
last_active_window	dd	0
2460
prev_active_window	dd	0
2464
prev_active_window	dd	0
2461
active_window_changed	dd	0
2465
active_window_changed	dd	0
2462
app_tab_count		dd	0
2466
app_tab_count		dd	0
2463
 
2467
 
2464
image:
2468
image:
2465
gpl>
2469
gpl>
2466
>
2470
>
2467
>
2471
>