Subversion Repositories Kolibri OS

Rev

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

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