Subversion Repositories Kolibri OS

Rev

Rev 601 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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