Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
31 halyavin 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;                                                   ;
2619 mario79 3
;   TASK PANEL for KolibriOS  - Compile with fasm   ;
31 halyavin 4
;                                                   ;
5
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2619 mario79 6
;------------------------------------------------------------------------------
3670 hidnplayr 7
; version:      2.23
2649 mario79 8
; last update:  26/04/2012
9
; changed by:   Marat Zakiyanov aka Mario79, aka Mario
10
; changes:      Using new  f18.23 - minimize all windows
11
;------------------------------------------------------------------------------
3670 hidnplayr 12
; version:      2.22
2638 mario79 13
; last update:  20/04/2012
14
; changed by:   Marat Zakiyanov aka Mario79, aka Mario
15
; changes:      Activation mechanism when trying to run an existing appl.
16
;               Forced redrawing the background after the clean desktop (Win+D)
17
;------------------------------------------------------------------------------
3670 hidnplayr 18
; version:      2.2
2630 mario79 19
; last update:  19/04/2012
20
; changed by:   Marat Zakiyanov aka Mario79, aka Mario
21
; changes:      Support PrintScreen for SCRSHOOT.
22
;               Path to run applications from the INI file.
23
;               Algorithm anti-duplication of applications for run with hotkey.
24
;               Added color selection for the Alt+Tab.
25
;               Alt+Ctrl+ArrowLeft - Page list next
26
;               Alt+Ctrl+ArrowRight - Page list previous
27
;------------------------------------------------------------------------------
3670 hidnplayr 28
; version:      2.1
2626 mario79 29
; last update:  18/04/2012
30
; changed by:   Marat Zakiyanov aka Mario79, aka Mario
31
; changes:      Added color selection for the text.
32
;               Show "change page list" only if the applications
33
;               does not fit in the panel.
34
;               Display file names up to 11 char previously displ. only 8 char.
35
;------------------------------------------------------------------------------
3670 hidnplayr 36
; version:      2.0
2619 mario79 37
; last update:  17/04/2012
38
; changed by:   Marat Zakiyanov aka Mario79, aka Mario
39
; changes:      New logic of switching windows (turnoff/restore)
40
;               New logic of button "clear desktop".
41
;               Win+D (restore/clear desktop), Win+R (start RUN application).
42
;               Using the library LibINI to set the parameters.
43
;               New style of panel. Start application Menu with boot options.
44
;               two versions of the location of the panel -
45
;               the bottom of the desktop and on top of the desktop.
46
;------------------------------------------------------------------------------
2532 mario79 47
; last update:  31/03/2012
48
; changed by:   Marat Zakiyanov aka Mario79, aka Mario
49
; changes:      The program uses only 20 Kb memory is now.
50
;               Code optimizing and refactoring.
51
;------------------------------------------------------------------------------
3670 hidnplayr 52
format binary as ""
53
 
54
        use32
55
        org 0x0
56
        db 'MENUET01'   ; 8 byte id
57
        dd 0x01         ; header version
58
        dd START        ; program start
59
        dd IM_END       ; program image size
60
        dd I_END        ; reguired amount of memory - 10 Kb
61
        dd stack_top    ; esp
62
        dd 0x0          ; boot parameters
63
        dd path         ; application pach
2619 mario79 64
;------------------------------------------------------------------------------
31 halyavin 65
include 'lang.inc'
2619 mario79 66
include '../../../macros.inc'
67
include '../../../proc32.inc'
3013 dunkaist 68
;include '../../../debug.inc'
3670 hidnplayr 69
include 'MOI.INC'       ;раскладки клавиатуры
2619 mario79 70
include '../../../develop/libraries/box_lib/load_lib.mac'
71
        @use_library    ;use load lib macros
72
;------------------------------------------------------------------------------
73
caps_lock_check fix 1
74
;------------------------------------------------------------------------------
1440 diamond 75
time_bgr_color = 0x66cc
2619 mario79 76
;PANEL_HEIGHT = 18
77
ML_SIZE = 10
78
MR_SIZE = 10
79
MENU_SIZE = 50
80
CLD_SIZE = 20
3670 hidnplayr 81
TAB_SIZE = 75   ;60
2619 mario79 82
TRAY_SIZE = 140
1440 diamond 83
 
2619 mario79 84
CLOCK_SIZE = 40
85
CPU_USAGE_SIZE = 10
86
CHLANG_SIZE = 20
87
PAGE_LIST_SIZE = 36
88
;------------------------------------------------------------------------------
2532 mario79 89
align 4
93 diamond 90
handle_key:
3670 hidnplayr 91
        mcall   18,7
92
        mov     [active_process],eax
31 halyavin 93
 
3670 hidnplayr 94
        mcall   2
95
 
96
;       dps     "panel key: "
97
;       dph     eax
98
;       newline
2619 mario79 99
 
3670 hidnplayr 100
        cmp     al, 2
101
        jnz     begin_1.ret
2532 mario79 102
 
3670 hidnplayr 103
        mov     ebx, exec_fileinfo
104
        shr     eax, 8
105
        cmp     al, 0
106
        je      prod
2532 mario79 107
 
3670 hidnplayr 108
        mov     [key_r],al
109
        sub     [key_r],2
110
        cmp     al, 2
111
        jz      alter
2532 mario79 112
 
3670 hidnplayr 113
        cmp     al, 3
114
        jz      alter
2532 mario79 115
 
3670 hidnplayr 116
        cmp     al, 4
117
        jz      alter
2532 mario79 118
 
3670 hidnplayr 119
        cmp     al, 5
120
        jz      alter
2532 mario79 121
 
3670 hidnplayr 122
        cmp     al, 6
123
        jz      alter
2532 mario79 124
 
3670 hidnplayr 125
        cmp     al, 7
126
        jz      alter
2532 mario79 127
 
3670 hidnplayr 128
        cmp     al, 8
129
        jz      alter
2532 mario79 130
;--------------------------------------
2619 mario79 131
;align 4
132
;prod:
2532 mario79 133
if caps_lock_check
3670 hidnplayr 134
        cmp     al,58   ;CAPS LOCK DOWN
135
        jne     @f
2532 mario79 136
 
3670 hidnplayr 137
        pusha
138
        mcall   26,2,9
139
        mov     ebx,eax
140
        mov     eax,2
141
;       call    draw_window ;;;???
142
        mov     [draw_flag_certainly],1
143
        call    draw_flag       ; language
144
        popa
145
        ret
2532 mario79 146
@@:
147
end if
3670 hidnplayr 148
        cmp     al, 15  ; Alt+Tab DOWN
149
        jz      alt_tab_pressed
2532 mario79 150
 
3670 hidnplayr 151
        cmp     al, 88  ; Ctrl+Alt+F12
152
        jz      start_end_application
2532 mario79 153
 
3670 hidnplayr 154
 
155
 
156
        cmp     al, 91  ; RWin DOWN
157
        jz      set_win_key_flag
2532 mario79 158
 
3670 hidnplayr 159
        cmp     al, 92  ; LWin DOWN
160
        jz      set_win_key_flag
161
 
162
 
163
        cmp     al, 219 ; RWin UP
164
        jz      cut_win_key_flag        ;start_menu_application
2532 mario79 165
 
3670 hidnplayr 166
        cmp     al, 220 ; LWin UP
167
        jz      cut_win_key_flag        ;start_menu_application
168
 
2619 mario79 169
 
3670 hidnplayr 170
        cmp     al, 62  ; Alt+F4
171
        jz      kill_active_application
2532 mario79 172
 
3670 hidnplayr 173
        cmp     al, 205
174
        jz      page_list_next
2532 mario79 175
 
3670 hidnplayr 176
        cmp     al, 203
177
        jz      page_list_prev
2532 mario79 178
 
3670 hidnplayr 179
        cmp     al, 69  ; Alt+Shift+NumLock
180
        jz      start_mousemul_application
181
 
182
        cmp     al, 19  ; Win+R
183
        jz      start_run_application
1920 Albom 184
 
3670 hidnplayr 185
        cmp     al, 32  ; Win+D
186
        jz      minimize_all_windows
187
 
188
        cmp     al, 55  ; PrintScreen DOWN
189
        jz      start_PrintScreen_application
2619 mario79 190
;--------------------------------------
191
align 4
192
prod:
3670 hidnplayr 193
;       cmp     eax,0x20000
194
;       je      start_menu_application
195
 
196
;       cmp     eax,0x40000
197
;       je      start_menu_application
2619 mario79 198
 
3670 hidnplayr 199
        cmp     [current_alt_tab_app], -1
200
        jz      @f
2532 mario79 201
 
3670 hidnplayr 202
        test    ah, 0x30        ; Alt+Tab UP
203
        jz      alt_tab_released
2532 mario79 204
;--------------------------------------
205
align 4
443 diamond 206
@@:
304 diamond 207
; this is hotkey Ctrl+Shift ;or LShift+RShift
3670 hidnplayr 208
        jmp     karu
209
;       mov     ebx, setup_exec
210
;       test    ah, 001100b
211
;       jz      change_sys_lang
2619 mario79 212
;------------------------------------------------------------------------------
2532 mario79 213
align 4
2619 mario79 214
set_win_key_flag:
3670 hidnplayr 215
        mov     [win_key_flag],1
216
        ret
2619 mario79 217
;------------------------------------------------------------------------------
218
align 4
219
cut_win_key_flag:
3670 hidnplayr 220
        xor     eax,eax
221
        mov     [win_key_flag],al
222
        xchg    [start_menu_flag],al
223
        test    al,al
224
        jz      start_menu_application
225
        ret
2619 mario79 226
;------------------------------------------------------------------------------
227
align 4
304 diamond 228
change_key_lang:
3670 hidnplayr 229
        mov     dword [ebx+8], chlang
230
        mcall   70
2532 mario79 231
;--------------------------------------
232
align 4
31 halyavin 233
begin_1:
3670 hidnplayr 234
        mov     ecx,[active_process]
235
        mcall   18, 3
236
        mcall   5, 25
2532 mario79 237
;--------------------------------------
238
align 4
93 diamond 239
.ret:
3670 hidnplayr 240
        ret
2619 mario79 241
;------------------------------------------------------------------------------
2532 mario79 242
;align 4
304 diamond 243
;change_sys_lang:
3670 hidnplayr 244
;       mov        dword [ebx+8], syslang
304 diamond 245
;        mcall   70
246
;        jmp     begin_1
2619 mario79 247
;------------------------------------------------------------------------------
2532 mario79 248
align 4
249
start_end_application:
3670 hidnplayr 250
        mov     esi,end_name
251
        call    algorithm_anti_duplication
252
        test    eax,eax
253
        jz      @f
2638 mario79 254
 
3670 hidnplayr 255
        mcall   18,3,edi
256
        ret
2630 mario79 257
;--------------------------------------
258
align 4
259
@@:
3670 hidnplayr 260
        mov     ebx, exec_fileinfo
261
        mov     dword [ebx+21],end_name
262
        mcall   70
263
        ret
2619 mario79 264
;------------------------------------------------------------------------------
2532 mario79 265
align 4
266
start_mousemul_application:
3670 hidnplayr 267
        mov     esi,mousemul_name
268
        call    algorithm_anti_duplication
269
        test    eax,eax
270
        jz      @f
271
        ret
2630 mario79 272
;--------------------------------------
273
align 4
274
@@:
3670 hidnplayr 275
        mov     ebx, exec_fileinfo
276
        mov     dword [ebx+21],mousemul_name
277
        mcall   70
278
        ret
2619 mario79 279
;------------------------------------------------------------------------------
2532 mario79 280
align 4
281
kill_active_application:
3670 hidnplayr 282
        mcall   72,1,3,1
283
        jmp     begin_1.ret
2619 mario79 284
;------------------------------------------------------------------------------
285
 
2532 mario79 286
align 4
287
start_menu_application:
3670 hidnplayr 288
        call    menu_handler
289
        jmp     begin_1.ret
2619 mario79 290
;------------------------------------------------------------------------------
291
align 4
292
start_run_application:
3670 hidnplayr 293
        cmp     [win_key_flag],1
294
        je      @f
295
        ret
2626 mario79 296
;--------------------------------------
297
align 4
2619 mario79 298
@@:
3670 hidnplayr 299
        mov     [start_menu_flag],1
300
 
301
        mov     esi,run_name
302
        call    algorithm_anti_duplication
303
        test    eax,eax
304
        jz      @f
2638 mario79 305
 
3670 hidnplayr 306
        mcall   18,3,edi
307
        ret
2630 mario79 308
;--------------------------------------
309
align 4
310
@@:
3670 hidnplayr 311
        mov     ebx, exec_fileinfo
312
        mov     dword [ebx+21], run_name
313
        mcall   70
314
        jmp     begin_1.ret
2619 mario79 315
;------------------------------------------------------------------------------
316
align 4
2630 mario79 317
start_PrintScreen_application:
3670 hidnplayr 318
        mov     esi,printscreen_name
319
        call    algorithm_anti_duplication
320
        test    eax,eax
321
        jz      @f
322
        mcall   18,3,edi
323
        ret
2630 mario79 324
;--------------------------------------
325
align 4
326
@@:
3670 hidnplayr 327
        mov     ebx, exec_fileinfo
328
        mov     dword [ebx+21],printscreen_name
329
        mov     [ebx+8],dword bootparam_printscreen
330
        mcall   70
331
        jmp     begin_1.ret
2630 mario79 332
;------------------------------------------------------------------------------
333
align 4
2619 mario79 334
minimize_all_windows:
3670 hidnplayr 335
        cmp     [win_key_flag],1
336
        je      @f
337
        ret
2626 mario79 338
;--------------------------------------
339
align 4
2619 mario79 340
@@:
3670 hidnplayr 341
        mov     [start_menu_flag],1
342
        call    clean_desktop
343
        ret
2619 mario79 344
;------------------------------------------------------------------------------
2630 mario79 345
align 4
346
algorithm_anti_duplication:
3670 hidnplayr 347
        cld
2630 mario79 348
;--------------------------------------
349
align 4
350
@@:
3670 hidnplayr 351
        lodsb
352
        test    al,al
353
        jnz     @r
2630 mario79 354
;--------------------------------------
355
align 4
356
@@:
3670 hidnplayr 357
        std
358
        lodsb
359
        cmp     al,'/'
360
        jnz     @r
361
        add     esi,2
362
        mov     edx,esi
363
 
364
        mov     edi,1
2630 mario79 365
;--------------------------------------
366
align 4
367
@@:
3670 hidnplayr 368
        inc     edi
369
        mov     ecx,edi
370
        mcall   9,procinfo_window_tabs
2630 mario79 371
 
3670 hidnplayr 372
        cmp     edi,eax
373
        jg      .apply_changes
2630 mario79 374
 
3670 hidnplayr 375
;       mov     eax,[ebx+10]
376
;       and     eax,not 20202020h
377
;       cmp     eax,'SCRS'
378
;       jz      @f
379
 
380
;       mov     eax,[ebx+14]
381
;       and     eax,not 20202020h
382
;       cmp     eax,'HOOT'
383
;       jne     @r
384
        mov     esi,edx
385
        mov     ecx,11
386
        add     ebx,9
387
        cld
2630 mario79 388
;--------------------------------------
389
align 4
390
.loop:
3670 hidnplayr 391
        lodsb
392
        inc     ebx
393
        cmp     al,[ebx]
394
        jne     @r
2630 mario79 395
 
3670 hidnplayr 396
        loop    .loop
2630 mario79 397
 
3670 hidnplayr 398
        mov     eax,1
399
        ret
2630 mario79 400
;--------------------------------------
401
align 4
402
.apply_changes:
3670 hidnplayr 403
        xor     eax,eax
404
        ret
2619 mario79 405
;------------------------------------------------------------------------------
2630 mario79 406
align 4
407
page_list_next:
3670 hidnplayr 408
        cmp     [page_list],50
409
        je      @f
2630 mario79 410
 
3670 hidnplayr 411
        xor     eax,eax
412
        cmp     [page_list_enable],eax
413
        je      @f
2630 mario79 414
 
3670 hidnplayr 415
        inc     [page_list]
416
        mov     [redraw_window_flag],1
2630 mario79 417
;--------------------------------------
418
align 4
419
@@:
3670 hidnplayr 420
        jmp     begin_1.ret
2619 mario79 421
;------------------------------------------------------------------------------
2532 mario79 422
align 4
2630 mario79 423
page_list_prev:
3670 hidnplayr 424
        xor     eax,eax
425
        cmp     [page_list],eax
426
        je      @f
2630 mario79 427
 
3670 hidnplayr 428
        cmp     [page_list_enable],eax
429
        je      @f
2630 mario79 430
 
3670 hidnplayr 431
        dec     [page_list]
432
        mov     [redraw_window_flag],1
2630 mario79 433
;--------------------------------------
434
align 4
435
@@:
3670 hidnplayr 436
        jmp     begin_1.ret
2630 mario79 437
;------------------------------------------------------------------------------
438
align 4
443 diamond 439
alt_tab_pressed:
440
; handle Alt+Tab and Alt+Shift+Tab
3670 hidnplayr 441
        mov     ebp, eax
442
        cmp     [current_alt_tab_app], -1
443
        jnz     has_alt_tab_app
443 diamond 444
; заполняем таблицу приложений, подлежащих переключению
3670 hidnplayr 445
        xor     edx, edx
446
        mov     ebx, procinfo_window_tabs
447
        mov     ecx, 1
2626 mario79 448
;--------------------------------------
449
align 4
443 diamond 450
.fill:
3670 hidnplayr 451
        inc     ecx
452
        mcall   9
453
        call    need_window_tab
454
        jz      @f
2532 mario79 455
 
3670 hidnplayr 456
        cmp     edx, 256
457
        jz      @f
2532 mario79 458
 
3670 hidnplayr 459
        mov     [alt_tab_list+edx*8], ecx
460
        movzx   esi, word [ebx+4]
461
        mov     [alt_tab_list+edx*8+4], esi
462
        inc     edx
2532 mario79 463
;--------------------------------------
464
align 4
443 diamond 465
@@:
3670 hidnplayr 466
        cmp     ecx,eax
467
        jb      .fill
2532 mario79 468
 
3670 hidnplayr 469
        mov     [alt_tab_list_size], edx
470
        test    edx, edx
471
        jz      begin_1.ret
2532 mario79 472
 
3670 hidnplayr 473
        mcall   66,4,0,0        ; ловим момент отпускания всех управляющих клавиш
474
        test    eax, eax
475
        jnz     begin_1.ret
2532 mario79 476
 
3670 hidnplayr 477
        xor     edx, edx
478
        mov     eax, [alt_tab_list+4]
479
        xor     ecx, ecx
480
        inc     ecx
2532 mario79 481
;--------------------------------------
482
align 4
443 diamond 483
.findmax:
3670 hidnplayr 484
        cmp     [alt_tab_list+ecx*8+4], eax
485
        jb      @f
2532 mario79 486
 
3670 hidnplayr 487
        mov     edx, ecx
488
        mov     eax, [alt_tab_list+ecx*8+4]
2532 mario79 489
;--------------------------------------
490
align 4
443 diamond 491
@@:
3670 hidnplayr 492
        inc     ecx
493
        cmp     ecx, [alt_tab_list_size]
494
        jb      .findmax
2532 mario79 495
 
3670 hidnplayr 496
        mov     [current_alt_tab_app], edx
2532 mario79 497
;--------------------------------------
498
align 4
443 diamond 499
has_alt_tab_app:
3670 hidnplayr 500
        mov     eax, [current_alt_tab_app]
501
        mov     edx, [alt_tab_list+eax*8+4]     ; slot
502
        xor     ecx, ecx
503
        or      eax, -1
504
        test    ebp, 300h
505
        jz      .notshift
2532 mario79 506
 
3670 hidnplayr 507
        or      esi, -1
2532 mario79 508
;--------------------------------------
509
align 4
443 diamond 510
.loop1:
3670 hidnplayr 511
        cmp     [alt_tab_list+ecx*8+4], edx
512
        jbe     @f
2532 mario79 513
 
3670 hidnplayr 514
        cmp     [alt_tab_list+ecx*8+4], esi
515
        jae     @f
2532 mario79 516
 
3670 hidnplayr 517
        mov     eax, ecx
518
        mov     esi, [alt_tab_list+ecx*8+4]
2532 mario79 519
;--------------------------------------
520
align 4
443 diamond 521
@@:
3670 hidnplayr 522
        inc     ecx
523
        cmp     ecx, [alt_tab_list_size]
524
        jb      .loop1
2532 mario79 525
 
3670 hidnplayr 526
        cmp     eax, -1
527
        jnz     .found
2532 mario79 528
 
3670 hidnplayr 529
        xor     edx, edx
530
        xor     ecx, ecx
531
        jmp     .loop1
2532 mario79 532
;--------------------------------------
533
align 4
443 diamond 534
.notshift:
3670 hidnplayr 535
        xor     esi, esi
2532 mario79 536
;--------------------------------------
537
align 4
443 diamond 538
.loop2:
3670 hidnplayr 539
        cmp     [alt_tab_list+ecx*8+4], edx
540
        jae     @f
2532 mario79 541
 
3670 hidnplayr 542
        cmp     [alt_tab_list+ecx*8+4], esi
543
        jbe     @f
2532 mario79 544
 
3670 hidnplayr 545
        mov     eax, ecx
546
        mov     esi, [alt_tab_list+ecx*8+4]
2532 mario79 547
;--------------------------------------
548
align 4
443 diamond 549
@@:
3670 hidnplayr 550
        inc     ecx
551
        cmp     ecx, [alt_tab_list_size]
552
        jb      .loop2
2532 mario79 553
 
3670 hidnplayr 554
        cmp     eax, -1
555
        jnz     .found
2532 mario79 556
 
3670 hidnplayr 557
        or      edx, -1
558
        xor     ecx, ecx
559
        jmp     .loop2
2532 mario79 560
;--------------------------------------
561
align 4
443 diamond 562
.found:
3670 hidnplayr 563
        mov     [current_alt_tab_app], eax
564
        push    eax
565
        xor     edx, edx
566
        div     [max_applications]
567
        mov     [page_list], eax
568
        mov     edi, app_list
569
        push    edi
570
        mov     ecx, 20
571
        or      eax, -1
572
        rep     stosd
573
        pop     edi
574
        pop     ecx
575
        sub     ecx, edx
2532 mario79 576
;--------------------------------------
577
align 4
443 diamond 578
@@:
3670 hidnplayr 579
        cmp     ecx, [alt_tab_list_size]
580
        jae     redraw_window_tabs
2532 mario79 581
 
3670 hidnplayr 582
        mov     eax, [alt_tab_list+ecx*8]
583
        stosd
584
        inc     ecx
585
        jmp     @b
2532 mario79 586
;--------------------------------------
587
align 4
443 diamond 588
alt_tab_released:
3670 hidnplayr 589
        mcall   66,5,0,0        ; уже поймали, хватит :)
2619 mario79 590
 
3670 hidnplayr 591
        or      eax, -1
592
        xchg    eax, [current_alt_tab_app]
593
        mov     ecx, [alt_tab_list+eax*8]
594
        mcall   18,3
2619 mario79 595
 
3670 hidnplayr 596
        jmp     redraw_window_tabs
2619 mario79 597
;------------------------------------------------------------------------------
2532 mario79 598
align 4
3670 hidnplayr 599
active_process  dd 0
31 halyavin 600
 
2619 mario79 601
exit:
3670 hidnplayr 602
        mcall -1
2619 mario79 603
;------------------------------------------------------------------------------
604
START:
3670 hidnplayr 605
        mcall   68,11
606
        mcall   66,1,1
607
 
608
        mcall   9,process_info_buffer,-1
609
        mov     ecx,[ebx+30]    ; PID
610
        mcall   18,21
611
        mov     [my_active_slot],eax    ; WINDOW SLOT
612
 
613
 
2619 mario79 614
load_libraries l_libs_start,end_l_libs
31 halyavin 615
 
3670 hidnplayr 616
        test    eax,eax
617
        jnz     exit
31 halyavin 618
 
3670 hidnplayr 619
        call    Get_ini
2619 mario79 620
 
3670 hidnplayr 621
        mcall   48,1,[button_style]
622
 
623
        mcall   66,4,0,2        ; LShift+RShift
624
        mcall   66,,,11h        ; Ctrl+Shift
625
        mcall   66,,88,110h     ; Alt+Ctrl+F12
626
;       mcall   66,,75          ; Alt+Ctrl+ArrowLeft DOWN
627
        mcall   66,,203         ; Alt+Ctrl+ArrowLeft UP
628
;       mcall   66,,77          ; Alt+Ctrl+ArrowRight DOWN
629
        mcall   66,,205         ; Alt+Ctrl+ArrowRight UP
630
 
631
        mcall   66,,91,0h       ; RWin DOWN
632
        mcall   66,,92          ; LWin DOWN
633
        mcall   66,,219         ; RWin UP
634
        mcall   66,,220         ; LWin UP
2619 mario79 635
 
3670 hidnplayr 636
;       mcall   66,,147,0h      ; Win+R UP
637
        mcall   66,,19,0h       ; Win+R DOWN
2619 mario79 638
 
3670 hidnplayr 639
;       mcall   66,,23,0h       ; Win+I DOWN
2619 mario79 640
 
3670 hidnplayr 641
        mcall   66,,32,0h       ; Win+D DOWN
642
;       mcall   66,,160,0h      ; Win+D UP
2619 mario79 643
 
3670 hidnplayr 644
        mcall   66,,55,0h       ; PrintScreen DOWN
645
;       mcall   66,,183,0h      ; PrintScreen UP
2619 mario79 646
 
2630 mario79 647
 
3670 hidnplayr 648
;       mcall   66,,91,100h     ; Alt+LWin
649
;       mcall   66,,92          ; Alt+RWin
650
        mcall   66,,62,300h     ; Alt+F4
651
;       mcall   66,,71          ; Alt+Home
652
;       mcall   66,,72          ; Alt+Up
653
        mcall   66,,2           ; Alt+1
654
        mcall   66,,3           ; Alt+2
655
        mcall   66,,4           ; Alt+3
656
        mcall   66,,5           ; Alt+4
657
        mcall   66,,6           ; Alt+5
658
        mcall   66,,7           ; Alt+6
659
        mcall   66,,8           ; Alt+7
660
        mcall   66,,15          ; Alt+Tab DOWN
661
        mcall   66,,15,301h     ; Alt+Shift+Tab DOWN
662
        mcall   66,,69          ; Alt+Shift+NumLock
870 barsuk 663
 
2532 mario79 664
if caps_lock_check
3670 hidnplayr 665
        xor     edx,edx
666
        mcall   66,4,58
2532 mario79 667
end if
3670 hidnplayr 668
        mcall   14
669
        mov     [screen_size],eax
31 halyavin 670
 
3670 hidnplayr 671
 
672
        mov     ecx,eax
870 barsuk 673
;eax = [xsize]*65536 + [ysize], где
3670 hidnplayr 674
        shr     ecx,16
675
        and     eax,0xFFFF
676
 
677
        cmp     [place_attachment],1
678
        je      @f
679
        ror     eax,16
680
        add     eax,[height]
681
        rol     eax,16
682
        mov     edx,eax
683
        jmp     .selected
2619 mario79 684
;--------------------------------------
685
align 4
686
@@:
3670 hidnplayr 687
        sub     eax,[height]
688
        mov     edx, eax
2619 mario79 689
;--------------------------------------
690
align 4
691
.selected:
3670 hidnplayr 692
        mcall   48,6
51 mikedld 693
 
3670 hidnplayr 694
        mcall   9,process_info_buffer,-1
695
        mov     ecx,[process_info_buffer+30]
696
        mcall   18,21
697
        mov     [this_slot],eax
698
        mov     [max_slot],255
2532 mario79 699
;--------------------------------------
700
align 4
31 halyavin 701
start_after_minimize:
3670 hidnplayr 702
        call    draw_window
703
;       call    draw_tray
704
        call    draw_running_applications
31 halyavin 705
 
3670 hidnplayr 706
        mcall   23,30
707
        call    load_ini
708
        call    fir_lng
2532 mario79 709
;------------------------------------------------------------------------------
710
align 4
31 halyavin 711
still:
3670 hidnplayr 712
;       call    draw_tray
713
        call    draw_time
714
        call    draw_cpu_usage
715
        call    draw_running_applications
31 halyavin 716
 
3670 hidnplayr 717
        mcall   18,7    ; check if active window changed
718
        cmp     eax, [last_active_window]
719
        jz      @f
870 barsuk 720
; need_window_tab:
721
; in: ebx->process info
722
; out: ZF set <=> do not draw
3670 hidnplayr 723
        mov     ebx,[last_active_window]
724
        mov     [prev_active_window], ebx
725
        mov     [last_active_window], eax
870 barsuk 726
 
3670 hidnplayr 727
        mov     ecx, eax
728
        mcall   9,process_info_buffer
870 barsuk 729
 
3670 hidnplayr 730
        call    need_window_tab
731
        jnz     .need_repaint
870 barsuk 732
 
3670 hidnplayr 733
        mcall   9,process_info_buffer,[prev_active_window]
734
        call    need_window_tab
735
        jz      @f
2532 mario79 736
;--------------------------------------
737
align 4
870 barsuk 738
.need_repaint:
3670 hidnplayr 739
        mov     dword [active_window_changed], 1
2532 mario79 740
;--------------------------------------
741
align 4
870 barsuk 742
@@:
3670 hidnplayr 743
        mcall   23,20
744
 
745
        push    eax
746
        mcall   18,7
747
        cmp     [my_active_slot],eax
748
        je      @f
2630 mario79 749
 
3670 hidnplayr 750
        mov     [current_active_slot],eax
2630 mario79 751
;--------------------------------------
752
align 4
2619 mario79 753
@@:
3670 hidnplayr 754
        pop     eax
755
 
756
        cmp     eax,1           ; redraw ?
757
        jz      red
870 barsuk 758
 
3670 hidnplayr 759
        push    eax
760
        mov     eax,[redraw_window_flag]
761
        test    eax,eax
762
        jz      @f
2630 mario79 763
 
3670 hidnplayr 764
        call    draw_window
2630 mario79 765
;--------------------------------------
766
align 4
2626 mario79 767
@@:
3670 hidnplayr 768
        pop     eax
769
 
770
        cmp     eax,2
771
        jnz     @f
772
        call    handle_key
773
        jmp     .key
2630 mario79 774
;--------------------------------------
775
align 4
2619 mario79 776
@@:
3670 hidnplayr 777
        cmp     eax,3           ; button ?
778
        jz      button
31 halyavin 779
 
3670 hidnplayr 780
;       call    handle_key
2630 mario79 781
;--------------------------------------
782
align 4
2619 mario79 783
.key:
3670 hidnplayr 784
        cmp     dword [active_window_changed], 0
785
        jnz     red_active
870 barsuk 786
 
3670 hidnplayr 787
        call    draw_flag       ; language
788
        jmp     still
2619 mario79 789
;------------------------------------------------------------------------------
2532 mario79 790
align 4
791
red_active:
792
red:
3670 hidnplayr 793
        mov     dword [active_window_changed], 0
870 barsuk 794
 
3670 hidnplayr 795
        mcall   14
796
        movzx   ecx,ax
797
        mov     edx,eax
798
        shr     edx,16
799
        cmp     [screen_size.height],ax
800
        jne     @f
2532 mario79 801
 
3670 hidnplayr 802
        rol     eax,16
803
        cmp     [screen_size.width],ax
804
        je      .lp1
2630 mario79 805
 
3670 hidnplayr 806
        rol     eax,16
2630 mario79 807
;--------------------------------------
808
align 4
2532 mario79 809
@@:
3670 hidnplayr 810
        mov     [screen_size],eax
811
        sub     ecx,[height]
812
        mcall   67,0,,,[height]
2532 mario79 813
;--------------------------------------
814
align 4
815
.lp1:
3670 hidnplayr 816
        call    draw_window
817
;       call    draw_tray
818
        jmp     still
2619 mario79 819
;------------------------------------------------------------------------------
2532 mario79 820
align 4
821
button:
3670 hidnplayr 822
        mcall   17
823
        test    eax,0xfffffe00  ; is it close button? (signal from @panel)
824
        jz      still           ; if so - wait for another event, because @panel shouldn't be closed
51 mikedld 825
 
3670 hidnplayr 826
        cmp     al, 0
827
        jnz     right_mouse
870 barsuk 828
 
3670 hidnplayr 829
        cmp     ah,50
830
        jb      no_activate
831
        cmp     ah,70
832
        jg      no_activate
31 halyavin 833
 
3670 hidnplayr 834
        movzx   ecx,byte ah
835
        sub     ecx,52
836
        shl     ecx,2
870 barsuk 837
 
3670 hidnplayr 838
        mov     ecx,[app_list+ecx]
839
 
840
        mcall   9,process_info_buffer
2619 mario79 841
 
3670 hidnplayr 842
        test    [ebx+70],dword 10b      ; window is minimized to panel
843
        jnz     @f
2619 mario79 844
 
3670 hidnplayr 845
        cmp     ecx,[current_active_slot]
846
        je      .turn_off
2630 mario79 847
;--------------------------------------
848
align 4
2619 mario79 849
@@:
3670 hidnplayr 850
        mcall   18,3,
851
        jmp     .task_switching
2619 mario79 852
;--------------------------------------
2532 mario79 853
align 4
2619 mario79 854
.turn_off:
3670 hidnplayr 855
        mov     edx,ecx
856
        mcall   18,22,0
2630 mario79 857
;--------------------------------------
858
align 4
2619 mario79 859
.task_switching:
3670 hidnplayr 860
        mcall   68,1
861
        jmp     still
2619 mario79 862
;------------------------------------------------------------------------------
863
align 4
2532 mario79 864
right_mouse:
3670 hidnplayr 865
        cmp     ah,50
866
        jb      still
31 halyavin 867
 
3670 hidnplayr 868
        cmp     ah,70
869
        jg      still
870 barsuk 870
 
3670 hidnplayr 871
        movzx   ecx,byte ah
872
        sub     ecx,52
870 barsuk 873
 
3670 hidnplayr 874
        cmp     ecx, [app_tab_count]
875
        jge     still
870 barsuk 876
 
3670 hidnplayr 877
        shl     ecx,2
878
        mcall   37,0
879
        mov     ebx, eax
880
        shr     eax, 16
881
        mov     [x_coord], ax
882
        and     ebx, 0xFFFF
883
        mov     [y_coord], bx
870 barsuk 884
 
3670 hidnplayr 885
        mov     ecx,[app_list+ecx]      ; ecx->selected app.slot
886
        mov     [n_slot], ecx
887
        mcall   9,procinfo_for_detect
870 barsuk 888
 
3670 hidnplayr 889
        mcall   51,1,context_menu_start,ctx_menu_stack
870 barsuk 890
 
3670 hidnplayr 891
        mov     [ctx_menu_PID], eax
892
        jmp     still
2619 mario79 893
;------------------------------------------------------------------------------
2532 mario79 894
align 4
895
no_activate:
3670 hidnplayr 896
        cmp     ah,101    ; minimize to left
897
        je      left_button
870 barsuk 898
 
3670 hidnplayr 899
        cmp     ah,102    ; minimize to right
900
        je      right_button
870 barsuk 901
 
3670 hidnplayr 902
        cmp     ah, 103
903
        je      clean_desktop_1             ; minimize all windows
870 barsuk 904
 
3670 hidnplayr 905
;       cmp     ah, 104
906
;       je      restore_desktop     ; restore minimized windows
31 halyavin 907
 
3670 hidnplayr 908
;       cmp     ah, 105
909
;       je      swap_minimized_desktop     ; minimize normal windows, and restore minimized windows
31 halyavin 910
 
3670 hidnplayr 911
        cmp     ah,byte 1         ; start/terminate menu
912
        jnz     noselect
31 halyavin 913
 
3670 hidnplayr 914
        call    menu_handler
31 halyavin 915
 
3670 hidnplayr 916
        jmp     still
2532 mario79 917
;--------------------------------------
2619 mario79 918
align 4
919
clean_desktop_1:
3670 hidnplayr 920
        call    clean_desktop
921
        jmp     still
2619 mario79 922
;--------------------------------------
3670 hidnplayr 923
align 4
2532 mario79 924
noselect:
3670 hidnplayr 925
        mov     ebx, exec_fileinfo
926
        cmp     ah,byte 2              ; start calendar
927
        jnz     noid15  ;noclock
633 diamond 928
 
3670 hidnplayr 929
        mov     esi,calendar_name
930
        call    algorithm_anti_duplication
931
        test    eax,eax
932
        jz      @f
2630 mario79 933
 
3670 hidnplayr 934
        mcall   18,3,edi
935
        jmp     still
2638 mario79 936
;--------------------------------------
937
align 4
938
@@:
3670 hidnplayr 939
        mov     ebx, exec_fileinfo
940
        mov     dword [ebx+21], calendar_name
941
        mcall   70
942
        jmp     still
2532 mario79 943
;--------------------------------------
3670 hidnplayr 944
align 4
2532 mario79 945
noid15:
3670 hidnplayr 946
        cmp     ah,16
947
        jne     noid16
31 halyavin 948
 
3670 hidnplayr 949
;       mov     ebx, setup_exec
950
;       mov     dword [ebx+8], chlang
951
;       mcall   70
952
        call    karu
953
        call    draw_flag       ; language
954
        jmp     still
2532 mario79 955
;--------------------------------------
3670 hidnplayr 956
align 4
2532 mario79 957
noid16:
3670 hidnplayr 958
;       cmp     ah,17
959
;       jne     noid17
304 diamond 960
;
3670 hidnplayr 961
;       mov     ebx, setup_exec
962
;       mov     dword [ebx+8], syslang
963
;       mcall   70
964
;       jmp     still
2532 mario79 965
;--------------------------------------
3670 hidnplayr 966
;align 4
304 diamond 967
;  noid17:
3670 hidnplayr 968
        cmp     ah,18
969
        jne     noid18
2532 mario79 970
 
3670 hidnplayr 971
        mov     esi,sysmeter_name
972
        call    algorithm_anti_duplication
973
        test    eax,eax
974
        jz      @f
2630 mario79 975
 
3670 hidnplayr 976
        mcall   18,3,edi
977
        jmp     still
2638 mario79 978
;--------------------------------------
3670 hidnplayr 979
align 4
2638 mario79 980
@@:
3670 hidnplayr 981
        mov     ebx, exec_fileinfo
982
        mov     dword [ebx+21], sysmeter_name
983
        mcall   70
984
        jmp     still
2532 mario79 985
;--------------------------------------
3670 hidnplayr 986
align 4
2532 mario79 987
noid18:
3670 hidnplayr 988
;       cmp     ah,19   ; speaker
989
;       jne     noid19
31 halyavin 990
 
3670 hidnplayr 991
;       mcall   18,8,2
992
;       mcall   15,3
993
;       jmp     red
2532 mario79 994
;--------------------------------------
3670 hidnplayr 995
;align 4
2619 mario79 996
;noid19:
3670 hidnplayr 997
;       cmp     ah,20              ; start system setup
998
;       jnz     noid20
2619 mario79 999
;
3670 hidnplayr 1000
;       mov     ebx, setup_exec
1001
;       and     dword [ebx+8], 0
1002
;       mcall   70
1003
;       jmp     still
2532 mario79 1004
;--------------------------------------
3670 hidnplayr 1005
;align 4
2619 mario79 1006
;noid20:
3670 hidnplayr 1007
        cmp     ah,21
1008
        jnz     noid21
31 halyavin 1009
 
3670 hidnplayr 1010
        cmp     [page_list],50
1011
        jnc     still
1012
        inc     [page_list]
1013
        jmp     red
2532 mario79 1014
;--------------------------------------
3670 hidnplayr 1015
align 4
2532 mario79 1016
noid21:
3670 hidnplayr 1017
        cmp     ah,22
1018
        jnz     still
31 halyavin 1019
 
3670 hidnplayr 1020
        cmp     [page_list],0
1021
        je      still
31 halyavin 1022
 
3670 hidnplayr 1023
        dec     [page_list]
1024
        jmp     red
2619 mario79 1025
;------------------------------------------------------------------------------
2532 mario79 1026
align 4
633 diamond 1027
restore_desktop:
3670 hidnplayr 1028
        mcall   9,process_info_buffer,-1
1029
        mov     [max_slot], eax
1030
        mov     ecx, 2
1031
        mov     edx, 2
2532 mario79 1032
;--------------------------------------
3670 hidnplayr 1033
align 4
633 diamond 1034
@@:
3670 hidnplayr 1035
        mcall   18, 22
1036
        inc     edx
1037
        cmp     edx, [max_slot]
1038
        jbe     @b
1039
        ret
2619 mario79 1040
;------------------------------------------------------------------------------
2532 mario79 1041
align 4
633 diamond 1042
clean_desktop:
3670 hidnplayr 1043
        mcall   18,23
1044
        test    eax,eax
1045
        jnz     @f
1046
        call    restore_desktop
2630 mario79 1047
;--------------------------------------
1048
align 4
443 diamond 1049
@@:
3670 hidnplayr 1050
        ret
2619 mario79 1051
;------------------------------------------------------------------------------
2532 mario79 1052
align 4
2619 mario79 1053
conversion_HEX_to_ASCII:
3670 hidnplayr 1054
        ror     eax,12
1055
        mov     ecx,4
2532 mario79 1056
;--------------------------------------
1057
align 4
443 diamond 1058
.loop:
3670 hidnplayr 1059
        mov     bl,al
1060
        rol     eax,4
1061
        and     bl,0xf
1062
        cmp     bl,0xA  ; check for ABCDEF
1063
        jae     @f
31 halyavin 1064
 
3670 hidnplayr 1065
        add     bl,0x30 ; 0-9
1066
        jmp     .store
2532 mario79 1067
;--------------------------------------
1068
align 4
443 diamond 1069
@@:
3670 hidnplayr 1070
        add     bl,0x57 ; A-F
2532 mario79 1071
;--------------------------------------
1072
align 4
2619 mario79 1073
.store:
3670 hidnplayr 1074
;       dps     "param_store: "
1075
        mov     [edi],bl
1076
        inc     edi
1077
        dec     ecx
1078
        jnz     .loop
1079
        ret
2619 mario79 1080
;------------------------------------------------------------------------------
2532 mario79 1081
align 4
2619 mario79 1082
menu_handler:
3670 hidnplayr 1083
        mov     edi,bootparam
1084
 
1085
        mov     eax,[menu_button_x.start]
1086
        call    conversion_HEX_to_ASCII
31 halyavin 1087
 
3670 hidnplayr 1088
        mov     eax,[menu_button_x.size]
1089
        call    conversion_HEX_to_ASCII
1090
 
1091
        mov     eax,[menu_button_y.start]
1092
        call    conversion_HEX_to_ASCII
1093
 
1094
        mov     eax,[menu_button_y.size]
1095
        call    conversion_HEX_to_ASCII
1096
 
1097
        mov     eax,[height]
1098
        call    conversion_HEX_to_ASCII
1099
 
1100
        mov     eax,[place_attachment]
1101
        call    conversion_HEX_to_ASCII
1102
 
1103
        xor     eax,eax ; terminator for boot parameters string
1104
        stosd
1105
 
1106
        mov     ebx, exec_fileinfo
1107
        mov     [ebx+21],dword menu_name
1108
        mov     [ebx+8],dword bootparam
1109
        mcall   70
1110
        mov     [ebx+8],dword 0
1111
        ret
2619 mario79 1112
;------------------------------------------------------------------------------
2532 mario79 1113
align 4
31 halyavin 1114
draw_small_right:
3670 hidnplayr 1115
        pusha
1116
        mcall   12,1
31 halyavin 1117
 
3670 hidnplayr 1118
        xor     eax,eax
1119
        mov     edx,[wcolor]
1120
        mov     esi,edx
1121
        mov     edi,edx
1122
        or      edx, 0x01000000
1123
        mcall
31 halyavin 1124
 
3670 hidnplayr 1125
        xor     ecx,ecx
1126
        mov     cx,[height]
1127
        mcall   8,<0,10>,,1,[wcolor]
31 halyavin 1128
 
3670 hidnplayr 1129
        mov     ebx,2*65536     ;+6
1130
        mov     bx,[height]
1131
        shr     bx,1
1132
        sub     bx,3
1133
;       mov     ecx,[wcolor]
1134
;       add     ecx,0x303030
1135
        mov     edx,[wcolor]
1136
        mov     eax,COLOR_CHANGE_MAGNITUDE_2
1137
        call    add_color_change_magnitude
1138
        mov     ecx,edx
1139
        mcall   4,,,hidetext,1
31 halyavin 1140
 
3670 hidnplayr 1141
        mcall   12,2
1142
        popa
1143
        ret
2619 mario79 1144
;------------------------------------------------------------------------------
2532 mario79 1145
align 4
31 halyavin 1146
draw_small_left:
3670 hidnplayr 1147
        pusha
1148
        mcall   12,1
31 halyavin 1149
 
3670 hidnplayr 1150
        xor     eax,eax
1151
        mov     edx,[wcolor]
1152
        mov     esi,edx
1153
        mov     edi,edx
1154
        or      edx, 0x01000000
1155
        mcall
31 halyavin 1156
 
3670 hidnplayr 1157
        xor     ecx,ecx
1158
        mov     cx,[height]
1159
        mcall   8,<0,9>,,1,[wcolor]
31 halyavin 1160
 
3670 hidnplayr 1161
        mov     ebx,3*65536     ;+6
1162
        mov     bx,[height]
1163
        shr     bx,1
1164
        sub     bx,3
1165
;       mov     ecx,[wcolor]
1166
;       add     ecx,0x303030
1167
        mov     edx,[wcolor]
1168
        mov     eax,COLOR_CHANGE_MAGNITUDE_2
1169
        call    add_color_change_magnitude
1170
        mov     ecx,edx
1171
        mcall   4,,,hidetext+1,1
31 halyavin 1172
 
3670 hidnplayr 1173
        mcall   12,2
1174
        popa
1175
        ret
2619 mario79 1176
;------------------------------------------------------------------------------
2532 mario79 1177
align 4
31 halyavin 1178
right_button:
3670 hidnplayr 1179
        mov     [small_draw],dword draw_small_right
31 halyavin 1180
 
3670 hidnplayr 1181
        mcall   14
31 halyavin 1182
 
3670 hidnplayr 1183
        shr     eax, 16
1184
        mov     ebx, eax
1185
        mov     ecx, -1
1186
        mov     edx, 9
1187
        sub     ebx, edx
1188
        mov     esi, -1
1189
        mcall   67
31 halyavin 1190
 
3670 hidnplayr 1191
        call    draw_small_right
1192
        jmp     small_wait
2619 mario79 1193
;------------------------------------------------------------------------------
2532 mario79 1194
align 4
31 halyavin 1195
left_button:
3670 hidnplayr 1196
        mov     [small_draw],dword draw_small_left
31 halyavin 1197
 
3670 hidnplayr 1198
        xor     ebx,ebx
1199
        mcall   67,,-1,9,-1
31 halyavin 1200
 
3670 hidnplayr 1201
        call    draw_small_left
2532 mario79 1202
;--------------------------------------
1203
align 4
1204
small_wait:
3670 hidnplayr 1205
        mcall   10
1206
        cmp     eax,1
1207
        jne     no_win
31 halyavin 1208
 
3670 hidnplayr 1209
        call    [small_draw]
1210
        jmp     small_wait
2532 mario79 1211
;--------------------------------------
1212
align 4
1213
no_win:
3670 hidnplayr 1214
        cmp     eax,2
1215
        jne     no_key
31 halyavin 1216
 
3670 hidnplayr 1217
        call    handle_key
1218
        jmp     small_wait
2532 mario79 1219
;--------------------------------------
1220
align 4
93 diamond 1221
no_key:
3670 hidnplayr 1222
        mcall   17
1223
        cmp     ah,1
1224
        jne     no_full
31 halyavin 1225
 
3670 hidnplayr 1226
        mcall   14      ; get screen max x & max y
31 halyavin 1227
 
3670 hidnplayr 1228
        mov     edx, eax
1229
        shr     edx, 16
1230
        xor     ebx, ebx
1231
        mcall   67,,-1,,-1 ; x0 y0 xs ys
31 halyavin 1232
 
3670 hidnplayr 1233
        jmp     still
2532 mario79 1234
;--------------------------------------
1235
align 4
1236
no_full:
3670 hidnplayr 1237
        call    menu_handler
1238
        jmp     small_wait
2619 mario79 1239
;------------------------------------------------------------------------------
1240
include 'libini.inc'
1241
;------------------------------------------------------------------------------
3014 dunkaist 1242
include '../../../dll.inc'
2619 mario79 1243
;------------------------------------------------------------------------------
1244
include 'drawappl.inc'
1245
;------------------------------------------------------------------------------
1246
include 'drawbutt.inc'
1247
;------------------------------------------------------------------------------
1248
include 'drawwind.inc'
1249
;------------------------------------------------------------------------------
1250
include 'drawtray.inc'
1251
;------------------------------------------------------------------------------
601 Rus 1252
include 'ctx_menu.asm'
2619 mario79 1253
;------------------------------------------------------------------------------
1254
include 'i_data.inc'
1255
;------------------------------------------------------------------------------
2532 mario79 1256
IM_END:
1257
;------------------------------------------------------------------------------
2619 mario79 1258
include 'u_data.inc'
1259
;------------------------------------------------------------------------------
1260
I_END:
1261
;------------------------------------------------------------------------------