Subversion Repositories Kolibri OS

Rev

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

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