Subversion Repositories Kolibri OS

Rev

Rev 2245 | Rev 2475 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2245 Rev 2469
Line 13... Line 13...
13
GIF_SIZE equ 45000
13
GIF_SIZE equ 45000
14
REC_SIZE equ 80
14
REC_SIZE equ 80
15
ICONS_DAT equ '/sys/ICONS.DAT'
15
ICONS_DAT equ '/sys/ICONS.DAT'
16
ICON_APP equ '/sys/ICON'
16
ICON_APP equ '/sys/ICON'
17
ICON_STRIP equ '/sys/ICONSTRP.GIF'
17
ICON_STRIP equ '/sys/ICONSTRP.GIF'
18
 
-
 
-
 
18
;------------------------------------------------------------------------------
19
  use32
19
	use32
20
  org    0x0
20
	org 0x0
21
  db     'MENUET01'     ; 8 byte id
21
	db 'MENUET01'     ; 8 byte id
22
  dd     0x01           ; header version
22
	dd 0x01           ; header version
23
  dd     START          ; start of code
23
	dd START          ; start of code
24
  dd     I_END          ; size of image
24
	dd I_END          ; size of image
25
  dd     icon_data+0x30000        ; memory for app
25
	dd icon_data+0x30000        ; memory for app
26
  dd     icon_data+0x30000        ; esp
26
	dd stack_area        ; esp
27
  dd     I_Param , 0x0  ; I_Param , I_Icon
27
	dd I_Param , 0x0  ; I_Param , I_Icon
-
 
28
;------------------------------------------------------------------------------
28
include  '../../../macros.inc'
29
include '../../../macros.inc'
29
include  'lang.inc'
30
include 'lang.inc'
30
COLOR_ORDER equ MENUETOS
31
COLOR_ORDER equ MENUETOS
31
include  'gif_lite.inc'
32
include 'gif_lite.inc'
32
;include  'debug.inc'
33
;include 'debug.inc'
33
purge newline
34
purge newline
34
;******************************************************************************
35
;------------------------------------------------------------------------------
35
START:                       ; start of execution
36
START:                       ; start of execution
36
    mcall 70,finfo
37
	mcall	70,finfo
37
    cmp   ebx,GIF_SIZE
38
	cmp	ebx,GIF_SIZE
38
    ja    close
39
	ja	close
39
    mov   esi,gif_file
40
	mov	esi,gif_file
Line 50... Line 51...
50
      call  load_icon_list
51
	call	load_icon_list
51
 red:
52
red:
52
    call draw_window         ; at first, draw the window
53
	call	draw_window         ; at first, draw the window
53
    mov  esi,[current_icon]
54
	mov	esi,[current_icon]
54
    jmp  band
55
	jmp	band
-
 
56
;------------------------------------------------------------------------------
-
 
57
align 4
55
still:
58
still:
56
 
-
 
57
    mov  eax,10              ; wait here for event
59
	mcall	10	; wait here for event
58
    mcall
-
 
59
 
-
 
60
    dec  eax                   ; redraw request ?
60
	dec	eax                   ; redraw request ?
61
    jz   red
61
	jz	red
-
 
62
	
62
    dec  eax                   ; key in buffer ?
63
	dec	eax                   ; key in buffer ?
63
    jz   key
64
	jz	key
-
 
65
;------------------------------------------------------------------------------
64
 
66
align 4
65
  button:                    ; button
67
button:                    ; button
66
    mov  al,17              ; get id
68
	mcall	17	; get id
67
    mcall
-
 
68
 
-
 
69
    shr  eax,8
69
	shr	eax,8
Line -... Line 70...
-
 
70
 
-
 
71
;	dps	"button id: "
-
 
72
;	dpd	eax
-
 
73
;	newline_1
70
 
74
  
71
    cmp  eax,1               ; button id=1 ?
75
	cmp	eax,1               ; button id=1 ?
-
 
76
	je	close
-
 
77
;--------------------------------------
72
    je   close
78
align 4
73
  noclose:
79
noclose:
74
      mov  esi,[current_icon]
80
	mov	esi,[current_icon]
75
      add  esi,12
81
	add	esi,12
76
    mov  ebx,[cur_band];eax
82
	mov	ebx,[cur_band]	;eax
77
    cmp  eax,31
83
	cmp	eax,31	; right arrow to icons bar
-
 
84
	jne	.no_back
78
    jne  .no_back
85
 
79
    add  ebx,8
86
	add	ebx,8
80
    mov  eax,[icon_count]
87
	mov	eax,[icon_count]
81
    cmp  eax,ebx
88
	cmp	eax,ebx
-
 
89
	jae	.drwic2
82
    jae  .drwic2
90
 
83
    xor  ebx,ebx
91
	xor	ebx,ebx
-
 
92
	jmp	.drwic2
-
 
93
;--------------------------------------
84
    jmp  .drwic2
94
align 4
85
  .no_back:
95
.no_back:
86
    cmp  eax,30
96
	cmp	eax,30	; left arrow to icons bar
-
 
97
	jne	.no_side
87
    jne  .no_side
98
 
88
    test ebx,ebx
99
	test	ebx,ebx
-
 
100
	jnz	.dec
89
    jnz  .dec
101
 
90
    mov  ebx,[icon_count]
102
	mov	ebx,[icon_count]
91
         and  ebx,0xfffffff8
103
	and	ebx,0xfffffff8
-
 
104
	add	ebx,8
-
 
105
;--------------------------------------
92
    add  ebx,8
106
align 4
93
  .dec:
107
.dec:
-
 
108
	sub	ebx,8
-
 
109
;--------------------------------------
94
    sub  ebx,8
110
align 4
95
  .drwic2:
111
.drwic2:
-
 
112
	mov	[cur_band],ebx
-
 
113
;--------------------------------------
96
    mov  [cur_band],ebx
114
align 4
97
  .drwic1:
115
.drwic1:
98
    call draw_icon
116
	call	draw_icon
-
 
117
	jmp	still
-
 
118
;--------------------------------------
99
    jmp  still
119
align 4
100
    .no_side:
120
.no_side:
101
       cmp  eax,32
121
	cmp	eax,32
102
       jne  .no_ico
122
	jne	.no_ico
103
       push ebx
123
	push	ebx
Line 109... Line 129...
109
          xor  edx,edx
129
	xor	edx,edx
110
          div  edi
130
	div	edi
111
    lea  ecx,[ebx+eax]
131
	lea	ecx,[ebx+eax]
112
    cmp  ecx,[icon_count]
132
	cmp	ecx,[icon_count]
113
    jae  still
133
	jae	still
-
 
134
 
114
          mov  [sel_icon1],eax
135
	mov	[sel_icon1],eax
115
          mov  ecx,eax
136
	mov	ecx,eax
116
    add  eax,ebx
137
	add	eax,ebx
117
    call itoa
138
	call	itoa
118
          jmp  .drwic1
139
	jmp	.drwic1
-
 
140
;--------------------------------------
-
 
141
align 4
119
  .no_ico:
142
.no_ico:
120
    cmp  eax,11
143
	cmp	eax,11
121
    jb   no_str
144
	jb	no_str
122
    cmp  eax,13
145
	cmp	eax,13
123
    jg   no_str
146
	jg	no_str
124
    call read_string
147
	call	read_string
125
    jmp  still
148
	jmp	still
-
 
149
;--------------------------------------
-
 
150
align 4    
126
  no_str:
151
no_str:
127
 
-
 
128
 
-
 
129
    cmp  eax,21              ; apply changes
152
	cmp	eax,21              ; apply changes
130
    jne  no_apply
153
	jne	no_apply
131
 
-
 
132
    ; (1) save list
154
	; (1) save list
133
 
-
 
134
    mov  ebx,finfo							; Change by spraid
155
	mov	ebx,finfo	; Change by spraid
135
    mov  dword[ebx],2
156
	mov	dword[ebx],2
136
    mov  edx,REC_SIZE
157
	mov	edx,REC_SIZE
137
    imul edx,dword [icons]
158
	imul	edx,dword [icons]
138
    mov  [ebx+12],edx
159
	mov	[ebx+12],edx
139
    mov  esi,iconlst
160
	mov	esi,iconlst
140
    call lst_path
161
	call	lst_path
141
    mov eax,70
-
 
142
    mcall
162
	mcall	70
143
 
-
 
144
    ; (2) terminate all icons
163
	; (2) terminate all icons
145
    mov  eax,9
-
 
146
    mov  ebx,I_END
-
 
147
    or      ecx,-1
164
	or      ecx,-1
148
    mcall
165
	mcall	9,I_END
149
    mov  edi,[ebx+30]
166
	mov	edi,[ebx+30]
-
 
167
;--------------------------------------
-
 
168
align 4
150
     newread2:
169
newread2:
151
    mov  esi,1
170
	mov	esi,1
-
 
171
;--------------------------------------
-
 
172
align 4
152
   newread:
173
newread:
153
    inc  esi
174
	inc	esi
154
    mov  eax,9
-
 
155
    mov  ebx,I_END
-
 
156
    mov  ecx,esi
175
	mov	ecx,esi
157
    mcall
176
	mcall	9,I_END
158
    cmp  edi,[ebx+30]
177
	cmp	edi,[ebx+30]
159
    je   newread
178
	je	newread
-
 
179
 
160
    cmp  esi,eax
180
	cmp	esi,eax
161
    jg   all_terminated
181
	jg	all_terminated
Line 162... Line 182...
162
 
182
 
163
    mov  eax,[I_END+10]
183
	mov	eax,[ebx+10]	;[I_END+10]
164
    and  eax,not 20202020h
184
	and	eax,not 20202020h
165
    cmp  eax,'@ICO'
185
	cmp	eax,'@ICO'
166
    jz   @f
186
	jz	@f
167
    cmp  eax,'ICON'
187
	cmp	eax,'ICON'
-
 
188
	jne	newread
-
 
189
;--------------------------------------
168
    jne  newread
190
align 4
169
   @@:
191
@@:
170
    mov  eax,51
192
	mov	eax,51
171
    cmp  eax,[I_END+42]
193
	cmp	eax,[ebx+42]	;[I_END+42]
-
 
194
	jne	newread
172
    jne  newread
195
 
173
    cmp  eax,[I_END+46]
196
	cmp	eax,[ebx+46]	;[I_END+46]
Line 174... Line -...
174
    jne  newread
-
 
175
 
-
 
176
    mov  eax,18
197
	jne	newread
177
    mov  ebx,2
198
 
178
    mov  ecx,esi
-
 
179
    mcall
199
	mov	ecx,esi
-
 
200
	mcall	18,2
180
 
201
	jmp	newread2
181
    jmp  newread2
202
;------------------------------------------------------------------------------
182
 
203
align 4
183
finfo_start:
204
finfo_start:
184
        dd      7
205
        dd      7
185
        dd      0
206
        dd      0
186
.params dd      0
207
.params dd      0
187
        dd      0
208
        dd      0
188
        dd      0
209
        dd      0
189
        db      0
-
 
190
        dd      finfo.path
-
 
-
 
210
        db      0
191
 
211
        dd      finfo.path
192
 
212
;------------------------------------------------------------------------------
193
 
213
align 4
194
finfo:
214
finfo:
195
        dd 0
215
        dd 0
196
        dd 0
216
        dd 0
197
        dd 0
217
        dd 0
198
        dd GIF_SIZE
218
        dd GIF_SIZE
199
        dd gif_file
219
        dd gif_file
200
  .path:
220
.path:
201
        db ICON_STRIP,0
-
 
-
 
221
        db ICON_STRIP,0
202
        rb 31-($-.path)
222
        rb 31-($-.path)
203
 
223
;------------------------------------------------------------------------------
204
 
-
 
205
   all_terminated:
224
align 4
206
 
-
 
207
   apply_changes:
225
all_terminated:
208
 
226
;apply_changes:
209
        mov     ebx, finfo_start
227
	mov	ebx, finfo_start
210
        mov     dword [ebx+8], boot_str+6
228
	mov	dword [ebx+8], boot_str+6
211
        mov     esi, iconname
-
 
212
        call    lst_path
229
	mov	esi, iconname
213
        mov     eax, 70
230
	call	lst_path
-
 
231
	mcall	70
214
        mcall
232
	jmp	still
215
    jmp   still
233
;------------------------------------------------------------------------------
216
 
-
 
217
  no_apply:
234
align 4
218
 
235
no_apply:
Line 219... Line -...
219
    cmp  eax,22                 ; user pressed the 'add icon' button
-
 
220
    jne  no_add_icon
236
	cmp	eax,22                 ; user pressed the 'add icon' button
221
 
-
 
222
    mov  eax,4
-
 
223
    mov  ebx,24*65536+250+8*14
237
	jne	no_add_icon
224
    mov  ecx,0xc0ff0000
-
 
Line 225... Line -...
225
    mov  edx,add_text
-
 
226
    mov  edi,0xffffff
238
 
227
    mcall
239
	mov	ebx,24*65536+250+8*14
228
 
240
	mcall	4,,0xc0ff0000,add_text,,0xffffff
229
    mov  eax,10
241
 
230
    mcall
242
	mcall	10
231
    cmp  eax,3
243
	cmp	eax,3
232
    jne  still
244
	jne	still
233
    mov  eax,17
245
 
234
    mcall
246
	mcall	17
235
    shr  eax,8
247
	shr	eax,8
Line 236... Line 248...
236
    cmp  eax,40
248
	cmp	eax,40
237
    jb   no_f
249
	jb	no_f
238
    mov  edi,eax
250
	mov	edi,eax
239
    sub  eax,40
251
	sub	eax,40
-
 
252
	
-
 
253
	xor	edx,edx  ; bcd -> 10
-
 
254
	mov	ebx,16
240
 
255
	div	ebx
Line 241... Line 256...
241
    xor  edx,edx  ; bcd -> 10
256
;	imul	eax,10
242
    mov  ebx,16
257
; multiply x10
243
    div  ebx
258
	shl	eax,1		; multiply x2
Line 271... Line 286...
271
    mov  ecx,REC_SIZE
286
	mov	ecx,REC_SIZE
272
    cld
287
	cld
273
    rep  movsb
288
	rep	movsb
274
    mov  esi,[current_icon]
289
	mov	esi,[current_icon]
275
    jmp  band
290
	jmp	band
-
 
291
;--------------------------------------
-
 
292
align 4
276
  no_f:
293
no_f:
277
 
-
 
278
    call draw_btns;draw_window
294
	call	draw_btns	;draw_window
279
 
-
 
280
    jmp  still
295
	jmp	still
-
 
296
;--------------------------------------
281
 
297
align 4
282
  no_add_icon:
298
no_add_icon:
283
 
-
 
284
 
-
 
285
    cmp  eax,23                     ; user pressed the remove icon button
299
	cmp	eax,23                     ; user pressed the remove icon button
286
    jne  no_remove_icon
300
	jne	no_remove_icon
Line 287... Line -...
287
 
-
 
288
    mov  eax,4
301
	
289
    mov  ebx,24*65536+250+8*14
-
 
290
    mov  ecx,0xc0ff0000
-
 
291
    mov  edx,rem_text
302
	mov	ebx,24*65536+250+8*14
292
    mov  edi,0xffffff
-
 
Line 293... Line -...
293
    mcall
-
 
294
 
303
	mcall	4,,0xc0ff0000,rem_text,,0xffffff
295
    mov  eax,10
304
	
296
    mcall
305
	mcall	10
297
    cmp  eax,3
306
	cmp	eax,3
298
    jne  no_f;ound
307
	jne	no_f;ound
299
    mov  eax,17
308
 
300
    mcall
309
	mcall	17
301
    shr  eax,8
310
	shr	eax,8
302
    cmp  eax,40
311
	cmp	eax,40
Line 303... Line 312...
303
    jb   red;no_f;ound
312
	jb	red;no_f;ound
304
    sub  eax,40
313
	sub	eax,40
305
 
314
	
306
    xor  edx,edx
315
	xor	edx,edx
-
 
316
	mov	ebx,16
-
 
317
	div	ebx
-
 
318
;	imul	eax,10
307
    mov  ebx,16
319
; multiply x10
Line 308... Line 320...
308
    div  ebx
320
	shl	eax,1		; multiply x2
309
    imul eax,10
321
	lea	eax,[eax+eax*4] ; multiply x5
310
    add  eax,edx
322
	add	eax,edx
Line 325... Line 337...
325
 
337
	
326
    mov  esi,icon_data
338
	mov	esi,icon_data
327
    mov  edi,REC_SIZE
339
	mov	edi,REC_SIZE
328
    imul edi,[icons]
340
	imul	edi,[icons]
-
 
341
	add	edi,icon_data
-
 
342
;--------------------------------------
329
    add  edi,icon_data
343
align 4 
330
  news:
344
news:
331
    cmp  word [esi],ax
345
	cmp	word [esi],ax
332
    je   foundi
346
	je	foundi
333
    add  esi,REC_SIZE
347
	add	esi,REC_SIZE
334
    cmp  esi,edi
348
	cmp	esi,edi
335
    jb   news
349
	jb	news
-
 
350
	jmp	red
336
    jmp  red
351
;--------------------------------------
337
 
352
align 4
338
  foundi:
-
 
339
 
353
foundi:
340
    mov  ecx,edi
354
	mov	ecx,edi
Line 341... Line 355...
341
    sub  ecx,esi
355
	sub	ecx,esi
342
 
356
	
Line 354... Line 368...
354
    sub  bx,'AA'
368
	sub	bx,'AA'
355
    shl  bl,4
369
	shl	bl,4
356
    shr  ebx,4
370
	shr	ebx,4
357
    add  ebx,40
371
	add	ebx,40
358
    mov  [cur_btn],ebx
372
	mov	[cur_btn],ebx
359
 
-
 
360
    jmp  red
373
	jmp	red
-
 
374
;--------------------------------------
361
 
375
align 4
362
  no_remove_icon:
376
no_remove_icon:
363
 
-
 
364
    cmp  eax,40                 ; user pressed button for icon position
377
	cmp	eax,40                 ; user pressed button for icon position
365
    jb   no_on_screen_button
378
	jb	still
366
    mov  edi,eax
379
	mov	edi,eax
367
    sub  eax,40
380
	sub	eax,40
368
    mov  edx,eax
381
	mov	edx,eax
369
    shl  eax,4
382
	shl	eax,4
370
    and  edx,0xf
383
	and	edx,0xf
371
    mov  dh,ah
384
	mov	dh,ah
372
    add  edx,65*256+65
385
	add	edx,65*256+65
373
 
-
 
374
    mov  esi,icon_data
386
	mov	esi,icon_data
375
    mov  ecx,[icons]
387
	mov	ecx,[icons]
376
    cld
388
	cld
-
 
389
;--------------------------------------
-
 
390
align 4
377
   findl1:
391
findl1:
378
    cmp  dx,[esi]
392
	cmp	dx,[esi]
379
    je   foundl1
393
	je	foundl1
380
    add  esi,REC_SIZE
394
	add	esi,REC_SIZE
381
    loop findl1
395
	loop	findl1
382
    jmp  still
396
	jmp	still
-
 
397
;--------------------------------------
383
 
398
align 4
384
   foundl1:
399
foundl1:
385
 
-
 
386
    mov  [current_icon],esi
400
	mov	[current_icon],esi
387
    mov  [cur_btn],edi
401
	mov	[cur_btn],edi
-
 
402
;--------------------------------------
-
 
403
align 4
388
   band:
404
band:
389
    add  esi,12
405
	add	esi,12
390
    call atoi
406
	call	atoi
391
    and  eax,0xfffff8
407
	and	eax,0xfffff8
392
    mov  [cur_band],eax
408
	mov	[cur_band],eax
393
    call draw_btns
409
	call	draw_btns
394
 
-
 
395
    jmp  still
-
 
396
 
-
 
397
  no_on_screen_button:
-
 
398
 
-
 
399
 
-
 
400
    jmp  still
410
	jmp	still
401
 
-
 
402
 
-
 
-
 
411
;------------------------------------------------------------------------------
403
current_icon dd icon_data
412
current_icon	dd icon_data
404
 
-
 
-
 
413
;------------------------------------------------------------------------------
405
 
414
align 4
406
print_strings:
415
print_strings:
407
 
-
 
408
    pusha
416
	pusha
409
 
-
 
410
    mov  eax,13              ; clear text area
417
	mcall	13,<100,180>,<278+12,40>,0xffffff	; clear text area
411
    mov  ebx,100*65536+180
-
 
412
    mov  ecx,(278+12)*65536+40
-
 
413
    mov  edx,0xffffff
-
 
414
    mcall
-
 
415
 
-
 
416
          xor  edi,edi
418
	xor	edi,edi
417
    mov  eax,4               ; icon text
419
	mov	eax,4               ; icon text
418
    mov  ebx,100*65536+278+14
420
	mov	ebx,100*65536+278+14
419
    mov  ecx,3
421
	mov	ecx,3
-
 
422
;--------------------------------------
-
 
423
align 4
420
  .ll:
424
.ll:
421
    push ecx
425
	push	ecx
422
    mov  ecx,0x000000
426
	mov	ecx,0x000000
423
    mov  edx,[current_icon]
427
	mov	edx,[current_icon]
424
    add  edx,[positions+edi*4]
428
	add	edx,[positions+edi*4]
Line 429... Line 433...
429
    pop  ecx
433
	pop	ecx
430
    loop .ll
434
	loop	.ll
Line 431... Line 435...
431
 
435
 
432
    popa
436
	popa
433
    ret
-
 
-
 
437
	ret
434
 
438
;------------------------------------------------------------------------------
-
 
439
iconlst	db ICONS_DAT,0
435
iconlst db ICONS_DAT,0
440
;------------------------------------------------------------------------------
436
 
441
align 4
437
load_icon_list:
-
 
438
 
442
load_icon_list:
439
    mov   edi,icons_reserved   ; clear reserved area
443
	mov	edi,icons_reserved   ; clear reserved area
440
    mov   eax,32
444
	mov	eax,32
441
    mov   ecx,10*9
445
	mov	ecx,10*9
442
    cld
446
	cld
Line 443... Line 447...
443
    rep   stosb
447
	rep	stosb
444
 
448
 
-
 
449
	mov	ecx,[icons]          ; set used icons to reserved area
-
 
450
	mov	esi,icon_data
445
    mov   ecx,[icons]          ; set used icons to reserved area
451
;--------------------------------------
446
    mov   esi,icon_data
452
align 4
447
  ldl1:
453
ldl1:
448
    movzx ebx,byte [esi+1]
454
	movzx	ebx,byte [esi+1]
-
 
455
	sub	ebx,65
-
 
456
;	imul	ebx,10
-
 
457
; multiply x10
449
    sub   ebx,65
458
	shl	ebx,1		; multiply x2
450
    imul  ebx,10
459
	lea	ebx,[ebx+ebx*4] ; multiply x5
451
    movzx eax,byte [esi]
460
	movzx	eax,byte [esi]
452
    add   ebx,eax
461
	add	ebx,eax
453
    sub   ebx,65
462
	sub	ebx,65
454
    add   ebx,icons_reserved
463
	add	ebx,icons_reserved
455
    mov   [ebx],byte 'x'
464
	mov	[ebx],byte 'x'
456
    add   esi,REC_SIZE
465
	add	esi,REC_SIZE
-
 
466
	loop	ldl1
457
    loop  ldl1
467
	ret
458
    ret
468
;------------------------------------------------------------------------------
459
 
469
align 4
460
lst_path:
470
lst_path:
461
    mov   ecx,30
471
	mov	ecx,30
462
    mov   edi,finfo.path
472
	mov	edi,finfo.path
-
 
473
	rep	movsb
463
    rep   movsb
474
	ret
464
    ret
475
;------------------------------------------------------------------------------
465
 
476
align 4
466
load_ic:
477
load_ic:
467
    mov   ebx,finfo
478
	mov	ebx,finfo
468
    mov   dword[ebx+12],48*REC_SIZE
479
	mov	dword[ebx+12],48*REC_SIZE
Line 474... Line 485...
474
    xor   edx,edx
485
	xor	edx,edx
475
    mov   ebx,REC_SIZE
486
	mov	ebx,REC_SIZE
476
    div   ebx
487
	div	ebx
477
    mov   [icons],eax
488
	mov	[icons],eax
478
        ret
489
	ret
479
 
-
 
-
 
490
;------------------------------------------------------------------------------
480
 
491
align 4
481
positions dd 3,16,47
492
positions	dd 3,16,47
482
str_lens db 8,30,30
493
str_lens	db 8,30,30
-
 
494
;------------------------------------------------------------------------------
483
 
495
align 4
484
read_string:
496
read_string:
485
    pusha
497
	pusha
486
    sub  eax,11
498
	sub	eax,11
487
    movzx ecx,byte[str_lens+eax]
499
	movzx	ecx,byte[str_lens+eax]
488
    mov  [cur_str],ecx
500
	mov	[cur_str],ecx
489
    mov  eax,[positions+eax*4]
501
	mov	eax,[positions+eax*4]
490
 
-
 
491
    mov  edi,[current_icon]
502
	mov	edi,[current_icon]
492
    add  edi,eax
503
	add	edi,eax
493
    mov  [addr],edi
504
	mov	[addr],edi
494
 
-
 
495
          add  edi,ecx
505
	add	edi,ecx
-
 
506
;--------------------------------------
496
 
507
align 4
497
  .l1:
508
.l1:
498
    dec  edi
509
	dec	edi
499
    cmp  byte[edi],' '
510
	cmp	byte[edi],' '
500
    jne  .found
511
	jne	.found
-
 
512
 
501
    mov  byte[edi],'_'
513
	mov	byte[edi],'_'
502
    loop .l1
514
	loop	.l1
-
 
515
 
503
    dec  edi
516
	dec	edi
-
 
517
;--------------------------------------
-
 
518
align 4
504
  .found:
519
.found:
505
    inc  edi
520
	inc	edi
506
    push  edi
521
	push	edi
507
    call print_strings
522
	call	print_strings
508
 
-
 
509
    pop  edi
523
	pop	edi
-
 
524
;--------------------------------------
-
 
525
align 4
510
  f11:
526
f11:
511
    mov  eax,10
-
 
512
    mcall
527
	mcall	10
513
    cmp  eax,2
528
	cmp	eax,2
514
    jz   fbu
529
	jz	fbu
515
    jmp  rs_done
530
	jmp	rs_done
-
 
531
;--------------------------------------
-
 
532
align 4
516
  fbu:
533
fbu:
517
    mov  eax,2
-
 
518
    mcall
534
	mcall	2
519
    shr  eax,8
535
	shr	eax,8
520
    cmp  eax,13
536
	cmp	eax,13
521
    je   rs_done
537
	je	rs_done
522
    cmp  eax,8
538
	cmp	eax,8
523
    jnz  nobsl
539
	jnz	nobsl
Line 525... Line 541...
525
    jz   f11
541
	jz	f11
526
    dec  edi
542
	dec	edi
527
    mov  [edi],byte '_'
543
	mov	[edi],byte '_'
528
    call print_strings
544
	call	print_strings
529
    jmp  f11
545
	jmp	f11
-
 
546
;--------------------------------------
-
 
547
align 4
530
  nobsl:
548
nobsl:
531
    cmp  eax,31
549
	cmp	eax,31
532
    jbe  f11
550
	jbe	f11
533
    mov  [edi],al
551
	mov	[edi],al
534
    call print_strings
552
	call	print_strings
535
 
-
 
536
    inc  edi
553
	inc	edi
537
    mov  esi,[addr]
554
	mov	esi,[addr]
538
    add  esi,[cur_str]
555
	add	esi,[cur_str]
539
    cmp  esi,edi
556
	cmp	esi,edi
540
    jnz  f11
557
	jnz	f11
-
 
558
;--------------------------------------
541
 
559
align 4
542
   rs_done:
560
rs_done:
543
 
-
 
544
    mov  ecx,[addr]
561
	mov	ecx,[addr]
545
    add  ecx,[cur_str]
562
	add	ecx,[cur_str]
546
    sub  ecx,edi
563
	sub	ecx,edi
547
    mov  eax,32
564
	mov	eax,32
548
    cld
565
	cld
549
    rep  stosb
566
	rep	stosb
550
    call print_strings
567
	call	print_strings
551
    popa
568
	popa
552
    ret
569
	ret
-
 
570
;------------------------------------------------------------------------------
553
 
571
align 4
554
 key:                       ; key
572
key:                       ; key
555
    mov  al,2               ; just read it and ignore
573
	mcall	2               ; just read it and ignore
556
    mcall
-
 
557
    jmp  still
574
	jmp	still
558
 
-
 
-
 
575
;------------------------------------------------------------------------------
559
;   *********************************************
576
;   *********************************************
560
;   *******  WINDOW DEFINITIONS AND DRAW ********
577
;   *******  WINDOW DEFINITIONS AND DRAW ********
561
;   *********************************************
578
;   *********************************************
562
 
-
 
563
 
579
align 4
564
draw_window:
580
draw_window:
565
 
-
 
566
    mov  eax,12                    ; function 12:tell os about windowdraw
-
 
567
    mov  ebx,1                     ; 1, start of draw
-
 
568
    mcall
581
	mcall	12,1
569
 
-
 
570
                                   ; DRAW WINDOW
582
                                   ; DRAW WINDOW
571
    xor  eax,eax
583
	xor	eax,eax
572
    mov  ebx,210*65536+300
584
	xor	esi,esi
573
    mov  ecx,30*65536+390-14
585
	mcall	,<210,300>,<30,(390-14)>,0x14ffffff,,title
574
    mov  edx,0x14ffffff
-
 
575
    mov  edi,title       ; WINDOW LABEL
-
 
576
    mcall
-
 
Line 577... Line 586...
577
 
586
 
578
    mov  eax,13                    ; WINDOW AREA
-
 
579
    mov  ebx,20*65536+260
-
 
580
    mov  ecx,35*65536+200
-
 
581
    mov  edx,0x3366cc
-
 
Line 582... Line 587...
582
    mcall
587
	mcall	13,<20,260>,<35,200>,0x3366cc	; WINDOW AREA
583
 
-
 
584
    mov  eax,38                    ; VERTICAL LINE ON WINDOW AREA
-
 
585
    mov  ebx,150*65536+150
-
 
586
    mov  ecx,35*65536+235
-
 
Line 587... Line 588...
587
    mov  edx,0xffffff
588
 
588
    mcall
-
 
-
 
589
	mcall	38,<150,150>,<35,235>,0xffffff	; VERTICAL LINE ON WINDOW AREA
589
 
590
 
590
    mov  eax,38                    ; HOROZONTAL LINE ON WINDOW AREA
-
 
591
    mov  ebx,20*65536+280
-
 
Line 592... Line -...
592
    mov  ecx,135*65536+135
-
 
593
    mov  edx,0xffffff
-
 
594
    mcall
-
 
595
 
-
 
596
    mov  eax,8                     ; TEXT ENTER BUTTONS
-
 
597
    mov  ebx,20*65536+72
-
 
598
    mov  ecx,(275+1+14)*65536+13-2
591
	mcall	,<20,280>,<135,135>	; HOROZONTAL LINE ON WINDOW AREA
599
    mov  edx,11
592
 
600
    mov  esi,[bcolor]
593
	mcall	8,<20,72>,<(275+1+14),(13-2)>,11,[bcolor]	;id 11 TEXT ENTER BUTTONS
-
 
594
	
601
    mcall
595
	inc	edx
602
    inc  edx
596
	add	ecx,14*65536
603
    add  ecx,14*65536
597
	mcall			; id 12
Line 604... Line 598...
604
    mcall
598
	
605
    inc  edx
-
 
606
    add  ecx,14*65536
-
 
607
    mcall
-
 
608
 
-
 
609
;    mov  eax,8                     ; APPLY AND SAVE CHANGES BUTTON
-
 
Line 610... Line -...
610
    mov  ebx,20*65536+259
-
 
611
    mov  ecx,(329+2)*65536+15-4
-
 
612
    mov  edx,21
599
	inc	edx
613
    mov  esi,[bcolor]
600
	add	ecx,14*65536
614
    mcall
601
	mcall			; id 13
Line 615... Line -...
615
 
-
 
616
;    mov  eax,8                     ; ADD ICON BUTTON
602
 
617
    mov  ebx,20*65536+129-2
603
	mcall	,<20,259>,<(329+2),(15-4)>,21	; id 21 APPLY AND SAVE CHANGES BUTTON
618
    add  ecx,14*65536
604
 
-
 
605
	add	ecx,14*65536
-
 
606
	inc	edx
Line 619... Line -...
619
    inc  edx
-
 
620
    mcall
607
	mcall	,<20,(129-2)>	; id 22 ADD ICON BUTTON
621
 
608
 
622
;    mov  eax,8                     ; REMOVE ICON BUTTON
609
	add	ebx,(130+2)*65536
-
 
610
	inc	edx
623
    add  ebx,(130+2)*65536
611
	mcall			; id 23 REMOVE ICON BUTTON
624
    inc  edx
612
 
625
    mcall
613
	mcall	,<(20-14),8>,<(260-23),32>,30 + 1 shl 30	; id 30 IMAGE BUTTON
626
 
614
 
-
 
615
	inc	edx
627
    mcall ,<20-14,8>,<260-23,32>,30+1 shl 30    ; IMAGE BUTTON
616
	add	ebx,(36*7+26) shl 16
628
    inc  edx
617
	mcall		; id 31
629
    add  ebx,(36*7+26) shl 16
618
 
-
 
619
	add	edx,1 + 1 shl 29
630
    mcall
620
	mcall	,<(33-19),(34*8)>	; id 32
631
    add  edx,1+1 shl 29
621
	
-
 
622
	mcall	4,<(23-15),(273-24)>,0,arrows,1
632
    mov  ebx,(33-19) shl 16+(34*8)
623
 
633
    mcall
-
 
634
    mcall 4,<23-15,273-24>,0,arrows,1
624
	add	ebx,(36*7+27)shl 16
Line 635... Line -...
635
    add  ebx,(36*7+27)shl 16
-
 
636
    add  edx,2
625
	add	edx,2
637
    mcall
626
	mcall
638
    dec  edx
627
 
639
    mcall ,<120,250>
628
	dec	edx
640
    lea  edx,[ebx+8 shl 16]
629
	mcall	,<120,250>
-
 
630
 
-
 
631
	lea	edx,[ebx+8 shl 16]
641
    mov  ecx,[icon_count]
632
	mcall	47,0x30000,[icon_count],,0
642
    mcall 47,0x30000,,,0
633
 
643
 
634
	mov	eax,4
644
;;
635
	mov	ebx,24 shl 16+(250+14+14+14)
645
    mov  eax,4
636
	mov	ecx,0xffffff
646
    mov  ebx,24*65536+250+14+14+14
637
	mov	edx,text
647
    mov  ecx,0xffffff
638
	mov	esi,47
648
    mov  edx,text
639
;--------------------------------------
-
 
640
align 4
-
 
641
newline:
649
    mov  esi,47
642
	mov	ecx,[edx]
650
  newline:
-
 
651
    mov  ecx,[edx]
643
	add	edx,4
652
    add  edx,4
644
	mcall
653
    mcall
645
	add	ebx,14
654
    add  ebx,14
646
	add	edx,47
655
    add  edx,47
647
	cmp	[edx],byte 'x'
-
 
648
	jne	newline
-
 
649
;--------------------------------------
656
    cmp  [edx],byte 'x'
650
align 4
657
    jne  newline
-
 
658
draw_btns:
651
draw_btns:
659
;;
652
	mov	eax,0                     ; DRAW BUTTONS ON WINDOW AREA
Line 660... Line 653...
660
    mov  eax,0                     ; DRAW BUTTONS ON WINDOW AREA
653
	mov	ebx,20 shl 16+25
661
    mov  ebx,20*65536+25
654
	mov	ecx,35 shl 16+19
662
    mov  ecx,35*65536+19
655
	mov	edi,icon_table
-
 
656
	mov	edx,40
663
    mov  edi,icon_table
657
;--------------------------------------
664
    mov  edx,40
658
align 4
665
   newbline:
659
newbline:
-
 
660
	cmp	[edi],byte 'x'
666
 
661
	jne	no_button
-
 
662
 
-
 
663
	mov	esi,0x5577cc
667
    cmp  [edi],byte 'x'
664
	cmp	[edi+90],byte 'x'
668
    jne  no_button
-
 
669
 
665
	jne	nores
670
    mov  esi,0x5577cc
-
 
671
    cmp  [edi+90],byte 'x'
666
 
672
    jne  nores
667
	mov	esi,0xcc5555
-
 
668
	cmp	edx,[cur_btn]
673
    mov  esi,0xcc5555
669
	jne	nores
674
    cmp  edx,[cur_btn]
670
 
675
    jne  nores
-
 
676
    mov  esi,0xe7e05a
671
	mov	esi,0xe7e05a
Line 677... Line 672...
677
  nores:
672
;--------------------------------------
678
 
673
align 4
679
    push eax
-
 
680
    mov  eax,8
674
nores:
681
    mcall
675
	push	eax
682
    pop  eax
676
	mcall	8
683
 
-
 
Line -... Line 677...
-
 
677
	pop	eax
684
  no_button:
678
;--------------------------------------
685
 
-
 
686
    add  ebx,26*65536
679
align 4
687
 
680
no_button:
688
    inc  edi
681
	add	ebx,26 shl 16
689
    inc  edx
682
 
690
 
-
 
691
    inc  al
683
	inc	edi
692
    cmp  al,9
684
	inc	edx
693
    jbe  newbline
685
	inc	al
-
 
686
	cmp	al,9
694
    mov  al,0
687
	jbe	newbline
695
 
688
	
696
    add  edx,6
-
 
697
 
-
 
698
    ror  ebx,16
689
	mov	al,0
699
    mov  bx,20
-
 
700
    ror  ebx,16
690
	add	edx,6
-
 
691
	ror	ebx,16
701
    add  ecx,20*65536
692
	mov	bx,20
702
 
693
	ror	ebx,16
703
    inc  ah
694
	add	ecx,20 shl 16
704
    cmp  ah,8;9
695
	inc	ah
705
    jbe  newbline
696
	cmp	ah,8	;9
706
    call print_strings
697
	jbe	newbline
707
    call draw_icon
698
 
708
    mov  eax,12                    ; function 12:tell os about windowdraw
699
	call	print_strings
Line 723... Line 714...
723
    cmp  eax,7
714
	cmp	eax,7
724
    ja   .nou
715
	ja	.nou
725
    imul eax,34 shl 16
716
	imul	eax,34 shl 16
726
    lea  ebx,[eax+(33-19) shl 16]
717
	lea	ebx,[eax+(33-19) shl 16]
727
    mov  bx,34
718
	mov	bx,34
728
    mcall 13,,<236+35,3>,0xff0000
719
	mcall	13,,<(236+35),3>,0xff0000
729
    mov  eax,[esp]
720
	mov	eax,[esp]
-
 
721
;--------------------------------------
-
 
722
align 4
730
  .nou:
723
.nou:
731
    mov  eax,[cur_band]
724
	mov	eax,[cur_band]
732
    and  eax,0xfffffff8
725
	and	eax,0xfffffff8
733
    push eax
726
	push	eax
734
    imul eax,ICON_SIZE
727
	imul	eax,ICON_SIZE
735
    lea  ebx,[strip_file+8+eax]
728
	lea	ebx,[strip_file+8+eax]
736
    mov  ecx,8
729
	mov	ecx,8
737
    mov  edx,(33-18) shl 16+238
730
	mov	edx,(33-18) shl 16+238
-
 
731
;--------------------------------------
-
 
732
align 4
738
  .nxt:
733
.nxt:
739
    push ecx
734
	push	ecx
740
    mcall 7,,<32,32>
735
	mcall	7,,<32,32>
741
    pop  ecx
736
	pop	ecx
742
    add  ebx,ICON_SIZE
737
	add	ebx,ICON_SIZE
Line 745... Line 740...
745
 
740
 
746
    mcall 4,<45,280-2>,0,rep_text,rep_text_len-rep_text
741
	mcall	4,<45,280-2>,0,rep_text,rep_text_len-rep_text
747
    lea  edx,[ebx+(8*5)shl 16]
742
	lea	edx,[ebx+(8*5)shl 16]
748
    pop  ecx
743
	pop	ecx
-
 
744
	mcall	47,0x30000,,,0xff
749
    mcall 47,0x30000,,,0xff
745
	
750
    add  ecx,7
746
	add	ecx,7
751
    add  edx,(3*8+4)shl 16
747
	add	edx,(3*8+4)shl 16
752
    mcall
-
 
-
 
748
	mcall
753
    mov  ecx,[icon_count]
749
	
754
    add  edx,(5*8+4)shl 16
750
	add	edx,(5*8+4)shl 16
-
 
751
	mcall	,,[icon_count]
755
    mcall
752
	
756
    pop  ecx
753
	pop	ecx
757
    add  edx,(10*8+4)shl 16
754
	add	edx,(10*8+4)shl 16
758
    mcall ,,,,0xff0000
755
	mcall	,,,,0xff0000
759
    ret
-
 
-
 
756
	ret
760
 
757
;------------------------------------------------------------------------------
761
; DATA AREA
-
 
762
 
-
 
763
 
758
; DATA AREA
764
bcolor dd 0x335599
-
 
-
 
759
bcolor dd 0x335599
765
 
760
;------------------------------------------------------------------------------
766
icon_table:
-
 
767
 
761
icon_table:
768
    times 4  db  'xxxx  xxxx'
762
	times 4  db  'xxxx  xxxx'
769
    times 2  db  '          '
763
	times 2  db  '          '
770
    times 1  db  '          '
764
	times 1  db  '          '
771
    times 2  db  'xxxx  xxxx'
765
	times 2  db  'xxxx  xxxx'
772
;    times 1  db  '          '
-
 
-
 
766
;	times 1  db  '          '
773
 
767
;------------------------------------------------------------------------------
774
icons_reserved:
768
icons_reserved:
775
    times 9  db  '          '
-
 
-
 
769
	times 9  db  '          '
776
 
770
;------------------------------------------------------------------------------
777
if lang eq ru
771
if lang eq ru
778
  text:
772
text:
779
      db 255,255,255,0,   '   ’…Š‘’                                       '
773
	db 255,255,255,0,   '   ’…Š‘’                                       '
780
      db 255,255,255,0,   ' Žƒ€ŒŒ€                                     '
774
	db 255,255,255,0,   ' Žƒ€ŒŒ€                                     '
Line 814... Line 808...
814
add_text               db 'CLICK ON A NOT USED POSITION                 ',0
808
add_text	db 'CLICK ON A NOT USED POSITION                 ',0
815
rem_text               db 'CLICK ICON POSITION; YOU WANT TO DELETE      ',0
809
rem_text	db 'CLICK ICON POSITION; YOU WANT TO DELETE      ',0
816
title                 db 'Icon Manager',0
810
title		db 'Icon Manager',0
Line 817... Line 811...
817
 
811
 
818
end if
-
 
-
 
812
end if
819
 
813
;------------------------------------------------------------------------------
-
 
814
arrows	db ''
820
arrows db ''
815
;------------------------------------------------------------------------------
821
iconname:
816
iconname:
822
      db ICON_APP,0
-
 
-
 
817
	db ICON_APP,0
823
 
818
;------------------------------------------------------------------------------
824
icon_default:
819
icon_default:
825
   db   'AA-SYSXTREE-000-/RD/1/SYSXTREE                '
820
	db 'AA-SYSXTREE-000-/RD/1/SYSXTREE                '
826
   db   '-                              *'
821
	db '-                              *'
827
   db   13,10
-
 
-
 
822
	db 13,10
828
 
823
;------------------------------------------------------------------------------
829
rep_text:
824
rep_text:
830
if lang eq ru
825
if lang eq ru
831
     db '‡€—Šˆ    -     ˆ‡    , ‚›€ #'
826
	db '‡€—Šˆ    -     ˆ‡    , ‚›€ #'
832
else
827
else
833
     db 'ICONS     -     OF    , SELECTED'
828
	db 'ICONS     -     OF    , SELECTED'
Line 834... Line 829...
834
end if
829
end if
-
 
830
 
835
 
831
rep_text_len:
836
rep_text_len:
-
 
837
 
832
;------------------------------------------------------------------------------
838
;//////////////////////////
-
 
839
get_bg_info:
-
 
840
    mov  eax,39
833
align 4
841
    mov  ebx,4
834
get_bg_info:
Line 842... Line 835...
842
    mcall
835
	mcall	39,4
843
    mov  [bgrdrawtype],eax
-
 
844
 
-
 
845
    mov  eax,39     ; get background size
836
	mov	[bgrdrawtype],eax
Line 846... Line 837...
846
    mov  ebx,1
837
 
847
    mcall
838
	mcall	39,1	; get background size
848
    mov  [bgrxy],eax
839
	mov	[bgrxy],eax
849
 
840
 
850
    mov  ebx,eax
841
	mov	ebx,eax
851
    shr  eax,16
842
	shr	eax,16
-
 
843
	and	ebx,0xffff
852
    and  ebx,0xffff
844
	mov	[bgrx],eax
853
    mov  [bgrx],eax
845
	mov	[bgry],ebx
854
    mov  [bgry],ebx
846
	ret
855
    ret
847
;------------------------------------------------------------------------------
856
 
848
align 4
857
calc_icon_pos:
849
calc_icon_pos:
-
 
850
	movzx	eax,byte [ebp-20]    ; x position
858
    movzx eax,byte [ebp-20]    ; x position
851
	sub	eax,'A'        ;eax - number of letter
859
    sub  eax,'A'        ;eax - number of letter
852
	cmp	eax,4
860
    cmp  eax,4
853
	jg	no_left
861
    jg     no_left
854
 
862
    shl  eax,6 ;imul eax,64
855
	shl	eax,6	;imul eax,64
-
 
856
	add	eax,16
863
    add  eax,16
857
	movzx	ebx,[warea.left]
864
    movzx ebx,[warea.left]
858
	add	eax,ebx
865
    add  eax,ebx
859
	jmp	x_done
866
    jmp  x_done
860
;--------------------------------------
867
 
861
align 4
868
  no_left:
862
no_left:
869
    sub  eax,9
863
	sub	eax,9
-
 
864
	sal	eax,6	;imul eax,64
-
 
865
	sub	eax,16+52-1
870
    sal  eax,6 ;imul eax,64
866
	movzx	ebx,[warea.right]
871
    sub  eax,16+52-1
867
	add	eax,ebx
872
    movzx ebx,[warea.right]
-
 
873
    add  eax,ebx
868
;--------------------------------------
874
  x_done:
869
align 4
875
    mov  [ebp-12],eax
870
x_done:
876
 
871
	mov	[ebp-12],eax
-
 
872
	movzx	eax,byte [ebp-20+1]  ; y position
877
    movzx eax,byte [ebp-20+1]  ; y position
873
	sub	eax,'A'        ; eax - number of letter
878
    sub  eax,'A'        ; eax - number of letter
874
	cmp	eax,4
879
    cmp  eax,4
875
	jg	no_up
880
    jg     no_up
876
 
881
    shl  eax,6            ;imul eax,80
877
	shl	eax,6            ;imul eax,80
-
 
878
	add	eax,16
-
 
879
	movzx	ebx,[warea.top]
882
    add  eax,16
880
	add	eax,ebx
883
    movzx ebx,[warea.top]
881
	jmp	y_done
884
    add  eax,ebx
882
;--------------------------------------
885
    jmp  y_done
883
align 4
886
  no_up:
884
no_up:
887
    sub  eax,9
885
	sub	eax,9
-
 
886
	shl	eax,6            ;imul eax,80
-
 
887
	sub	eax,16-1
888
    shl  eax,6            ;imul eax,80
888
	movzx	ebx,[warea.bottom]
889
    sub  eax,16-1
889
	add	eax,ebx
890
    movzx ebx,[warea.bottom]
890
;--------------------------------------
-
 
891
align 4
891
    add  eax,ebx
892
y_done:
892
  y_done:
893
	mov	[ebp-8],eax
893
    mov  [ebp-8],eax
894
	ret
894
    ret
895
;--------------------------------------
Line 895... Line 896...
895
 
896
align 4
896
;START2:
897
;START2:
897
load_icon_list2:
898
load_icon_list2:
Line 898... Line -...
898
    call  get_bg_info
-
 
899
 
899
	call	get_bg_info
900
        mcall   48,5
900
 
901
        mov     [warea.by_x],eax
901
	mcall	48,5
-
 
902
	mov	[warea.by_x],eax
902
        mov     [warea.by_y],ebx
903
	mov	[warea.by_y],ebx
903
 
904
 
904
        mov     eax,14
-
 
905
        mcall
905
	mcall	14
906
        add     eax,0x00010001
906
	add	eax,0x00010001
907
        mov     [scrxy],eax
907
	mov	[scrxy],eax
-
 
908
;--------------------------------------
908
 
909
align 4
909
apply_changes2:
910
apply_changes2:
910
 
911
	mov	edi,[icons]
911
    mov  edi,[icons]
912
	mov	esi,icon_data
912
    mov  esi,icon_data
913
	mov	ebp,0x5000	; threads stack starting point
Line 913... Line -...
913
    mov  ebp,0x5000 ; threads stack starting point
-
 
914
 
-
 
915
  start_new:
-
 
916
    mov eax,[esi]
914
;--------------------------------------
917
    mov [ebp-20],eax
915
align 4
918
    call calc_icon_pos
916
start_new:
919
 
917
	mov	eax,[esi]
Line 920... Line 918...
920
    mov  eax,51
918
	mov	[ebp-20],eax
921
    mov  ebx,1
919
	call	calc_icon_pos
-
 
920
 
-
 
921
	mov	edx,ebp
922
    mov  ecx,thread
922
	mov	dword[ebp-4],esi
923
    mov  edx,ebp
923
	mcall	51,1,thread
924
    mov  dword[ebp-4],esi
924
	add	ebp,0x100
925
    mcall
925
 
926
    add  ebp,0x100
926
	mov	eax,5
-
 
927
	mov	ebx,1
-
 
928
;--------------------------------------
927
 
929
align 4
928
    mov  eax,5
930
wait_thread_start:         ;wait until thread draw itself first time
929
    mov  ebx,1
-
 
930
wait_thread_start:         ;wait until thread draw itself first time
-
 
931
    cmp  [create_thread_event],bl
931
	cmp	[create_thread_event],bl
932
    jz     wait_thread_end
932
	jz	wait_thread_end
933
    mcall
933
	mcall
-
 
934
	jmp	wait_thread_start
-
 
935
;--------------------------------------
934
    jmp  wait_thread_start
936
align 4
935
wait_thread_end:
937
wait_thread_end:
936
    dec  [create_thread_event]     ;reset event
938
	dec	[create_thread_event]     ;reset event
-
 
939
	add	esi,REC_SIZE
937
 
940
	dec	edi
938
 
941
	jnz	start_new
939
    add  esi,REC_SIZE
942
;--------------------------------------
940
    dec  edi
943
align 4
941
    jnz  start_new
944
close:
942
  close:
945
	or	eax,-1
943
    or     eax,-1
946
	mcall
944
    mcall
947
;------------------------------------------------------------------------------
945
 
-
 
946
thread:
948
align 4
-
 
949
thread:
947
;   pop  ebp ;ebp - address of our icon
950
;   pop  ebp ;ebp - address of our icon
948
    sub  esp,12
-
 
949
    mov  ebp,esp
951
	sub	esp,12
950
    sub  esp,16
-
 
951
    call draw_window2
952
	mov	ebp,esp
952
    mov  [create_thread_event],1
-
 
953
    mov  eax,40
953
	sub	esp,16
954
    mov  ebx,010101b
954
	call	draw_window2
-
 
955
	mov	[create_thread_event],1
955
    mcall
956
	mcall	40,010101b
956
 
957
;------------------------------------------------------------------------------
Line 957... Line 958...
957
still2:
958
align 4
958
    mov  eax,10
959
still2:
959
    mcall
960
	mcall	10
960
 
961
	cmp	eax,1
Line 961... Line 962...
961
    cmp  eax,1
962
	je	red2
-
 
963
 
962
    je     red2
964
	cmp	eax,3
963
    cmp  eax,3
965
	je	button2
964
    je     button2
966
	
965
 
967
	call	get_bg_info
966
    call  get_bg_info
968
	mov	eax,5
967
    mov   eax,5
969
	mov	ebx,1
Line 985... Line 987...
985
        cmp     eax,[ebp+0]
987
	cmp	eax,[ebp+0]
986
        jne     @f
988
	jne	@f
987
        mov     eax,[I_END+process_information.box.top]
989
	mov	eax,[I_END+process_information.box.top]
988
        cmp     eax,[ebp+4]
990
	cmp	eax,[ebp+4]
989
        je      .lp1
991
	je	.lp1
-
 
992
;--------------------------------------
-
 
993
align 4
-
 
994
@@:
990
    @@: call    get_bg_info
995
	call	get_bg_info
991
        mcall   67,[ebp+0],[ebp+4],51,51
996
	mcall	67,[ebp+0],[ebp+4],51,51
-
 
997
;--------------------------------------
992
 
998
align 4
993
  .lp1:
999
.lp1:
994
	call    draw_window2
1000
	call	draw_window2
995
        jmp     still2
1001
	jmp	still2
-
 
1002
;------------------------------------------------------------------------------
996
 
1003
align 4
997
  button2:
1004
button2:
998
    mov  al,17
-
 
999
    mcall
1005
	mcall	17
1000
 
-
 
1001
	cmp	ah, 2
1006
	cmp	ah, 2
1002
	jnz	still2
1007
	jnz	still2
Line 1003... Line 1008...
1003
 
1008
 
1004
	mcall	9,I_END,-1
1009
	mcall	9,I_END,-1
Line 1009... Line 1014...
1009
	cmp	edx,eax	; compare with active SLOT
1014
	cmp	edx,eax	; compare with active SLOT
1010
	jne	@f
1015
	jne	@f
1011
	mov	ecx,edx
1016
	mov	ecx,edx
1012
	mcall	18,1	; set to down
1017
	mcall	18,1	; set to down
1013
	call	draw_window2
1018
	call	draw_window2
-
 
1019
;--------------------------------------
-
 
1020
align 4
1014
@@:
1021
@@:
1015
	
-
 
1016
    mov  esi,[ebp+8]
1022
	mov	esi,[ebp+8]
1017
          mov  ebx,1
1023
	mov	ebx,1
1018
          mov  edi,finfo.path
1024
	mov	edi,finfo.path
1019
          call fill_paths
1025
	call	fill_paths
1020
          inc  ebx
1026
	inc	ebx
Line 1022... Line 1028...
1022
    mov  dword[finfo_start+8],edi
1028
	mov	dword[finfo_start+8],edi
1023
          call fill_paths
1029
	call	fill_paths
1024
          cmp  byte[edi],0
1030
	cmp	byte[edi],0
1025
    jne  .no0
1031
	jne	.no0
1026
    and  dword[finfo_start+8],0
1032
	and	dword[finfo_start+8],0
-
 
1033
;--------------------------------------
-
 
1034
align 4
1027
  .no0:
1035
.no0:
1028
    mov  ebx,finfo_start
1036
	mov	ebx,finfo_start
1029
    mov  eax,70
-
 
1030
    mcall
1037
	mcall	70
1031
    jmp  still2
1038
	jmp	still2
-
 
1039
;------------------------------------------------------------------------------
1032
 
1040
align 4
1033
fill_paths:
1041
fill_paths:
1034
        push esi edi
1042
	push	esi edi
1035
;        dps  '>'
1043
;	dps	'>'
1036
        movzx ecx,byte[str_lens+ebx]
1044
	movzx	ecx,byte[str_lens+ebx]
1037
        add  esi,[positions+ebx*4]
1045
	add	esi,[positions+ebx*4]
1038
        push esi
1046
	push	esi
1039
        add  esi,ecx
1047
	add	esi,ecx
-
 
1048
;--------------------------------------
1040
 
1049
align 4
1041
    .l1:
1050
.l1:
1042
        dec  esi
1051
	dec	esi
1043
        cmp  byte[esi],' '
1052
	cmp	byte[esi],' '
1044
        jnz   .found
1053
	jnz	.found
1045
        loop .l1
1054
	loop	.l1
1046
  pop  esi
1055
	pop	esi
1047
  jmp  .noms
1056
	jmp	.noms
-
 
1057
;--------------------------------------
-
 
1058
align 4
1048
    .found:
1059
.found:
1049
        lea  ecx,[esi+1]
1060
	lea	ecx,[esi+1]
1050
        pop  esi
1061
	pop	esi
1051
        sub  ecx,esi
1062
	sub	ecx,esi
1052
        rep  movsb
1063
	rep	movsb
-
 
1064
;--------------------------------------
-
 
1065
align 4
1053
 .noms:
1066
.noms:
1054
        and  byte[edi],0
1067
        and	byte[edi],0
1055
;        call debug_outstr
1068
;	call	debug_outstr
1056
;        dps  <'<',13,10>
1069
;	dps	<'<',13,10>
1057
        pop  edi esi
1070
	pop	edi esi
1058
        ret
1071
	ret
-
 
1072
;--------------------------------------
1059
 
1073
align 4
1060
atoi:
1074
atoi:
1061
        push esi
1075
	push	esi
1062
        xor  eax,eax
1076
	xor	eax,eax
1063
        xor  ebx,ebx
1077
	xor	ebx,ebx
-
 
1078
;--------------------------------------
-
 
1079
align 4
1064
  .nxt:
1080
.nxt:
1065
    lodsb
1081
	lodsb
1066
    cmp  al,'0'
1082
	cmp	al,'0'
1067
    jb   .done
1083
	jb	.done
1068
    cmp  al,'9'
1084
	cmp	al,'9'
1069
    ja   .done
1085
	ja	.done
1070
    sub  eax,'0'
1086
	sub	eax,'0'
1071
    imul ebx,10
1087
; multiply x10
-
 
1088
	shl	ebx,1		; multiply x2
-
 
1089
	lea	ebx,[ebx+ebx*4] ; multiply x5
1072
    add  ebx,eax
1090
	add	ebx,eax
1073
    jmp  .nxt
1091
	jmp	.nxt
-
 
1092
;--------------------------------------
-
 
1093
align 4
1074
  .done:
1094
.done:
1075
      pop  esi
1095
	pop	esi
1076
      mov  eax,ebx
1096
	mov	eax,ebx
1077
        ret
1097
	ret
-
 
1098
;--------------------------------------
1078
 
1099
align 4
1079
itoa:
1100
itoa:
1080
        add  esi,2
1101
	add	esi,2
1081
    mov ebx,10
1102
	mov	ebx,10
1082
    mov ecx,3
1103
	mov	ecx,3
-
 
1104
;--------------------------------------
-
 
1105
align 4
1083
  .l0:
1106
.l0:
1084
    xor edx,edx
1107
	xor	edx,edx
1085
    div ebx
1108
	div	ebx
1086
    add dl,'0'
1109
	add	dl,'0'
1087
    mov [esi],dl
1110
	mov	[esi],dl
1088
    dec esi
1111
	dec	esi
1089
    loop .l0
1112
	loop	.l0
1090
        ret
1113
	ret
-
 
1114
;------------------------------------------------------------------------------
1091
 
1115
align 4
1092
draw_picture:
1116
draw_picture:
1093
    mov  [image],0x3000
1117
	mov	[image],0x3000
1094
    mov  edi,[ebp+8]
1118
	mov	edi,[ebp+8]
1095
    lea  esi,[edi+12]
1119
	lea	esi,[edi+12]
1096
    call atoi
1120
	call	atoi
1097
          cmp  eax,[icon_count]
1121
	cmp	eax,[icon_count]
1098
          ja  toponly.ex
1122
	ja	toponly.ex
1099
          imul eax,(32*3*32)
1123
;	imul	eax,(32*3*32)
-
 
1124
	lea	eax,[eax+eax*2]	; multiply x3
-
 
1125
	shl	eax,10		; multiply x1024
-
 
1126
	
1100
          lea  edi,[eax+strip_file+8]
1127
	lea	edi,[eax+strip_file+8]
1101
    xor  ebx,ebx
1128
	xor	ebx,ebx
1102
    xor  ecx,ecx
1129
	xor	ecx,ecx
1103
    mov  esi,edi;strip_file+8+(32*3*32)*2
1130
	mov	esi,edi;strip_file+8+(32*3*32)*2
Line 1104... Line 1131...
1104
 
1131
 
-
 
1132
	mov	[pixpos],0
-
 
1133
;--------------------------------------
-
 
1134
; loop start
1105
    mov  [pixpos],0
1135
align 4
1106
  newb:
1136
newb:
1107
    push ebx
1137
	push	ebx
Line 1108... Line 1138...
1108
    push ecx
1138
	push	ecx
Line 1115... Line 1145...
1115
    jg     yesbpix
1145
	jg	yesbpix
Line 1116... Line 1146...
1116
 
1146
 
1117
    push esi
1147
	push	esi
1118
    mov  esi,edi
1148
	mov	esi,edi
-
 
1149
	add	esi,[pixpos]
1119
    add  esi,[pixpos]
1150
;--------------------------------------
1120
 
1151
align 4
1121
no_correction_pixpos:
1152
no_correction_pixpos:
1122
    add  [pixpos],3
1153
	add	[pixpos],3
1123
    mov  eax,[esi]
1154
	mov	eax,[esi]
Line 1128... Line 1159...
1128
    cmp eax,0
1159
	cmp	eax,0
1129
    je    yesbpix
1160
	je	yesbpix
1130
    cmp eax,0xfffcff ;f5f5f5
1161
	cmp	eax,0xfffcff	;f5f5f5
1131
    je    yesbpix
1162
	je	yesbpix
1132
    jmp nobpix
1163
	jmp	nobpix
-
 
1164
;--------------------------------------
1133
 
1165
align 4
1134
  yesbpix:
1166
yesbpix:
1135
 
-
 
1136
  stretch:
1167
stretch:
1137
    cmp   [bgrdrawtype],dword 2
1168
	cmp	[bgrdrawtype],dword 2
1138
    jne   nostretch
1169
	jne	nostretch
1139
    mov   eax,[ebp+4]
1170
	mov	eax,[ebp+4]
1140
    add   eax,ecx
1171
	add	eax,ecx
Line 1150... Line 1181...
1150
    cdq
1181
	cdq
1151
    movzx ebx,word [scrxy+2]
1182
	movzx	ebx,word [scrxy+2]
1152
    div   ebx
1183
	div	ebx
1153
    add   eax,[esp]
1184
	add	eax,[esp]
1154
    add   esp,4
1185
	add	esp,4
1155
 
-
 
1156
    jmp   notiled
1186
	jmp	notiled
-
 
1187
;--------------------------------------
1157
 
1188
align 4
1158
  nostretch:
1189
nostretch:
1159
 
-
 
1160
    cmp   [bgrdrawtype],dword 1
1190
	cmp	[bgrdrawtype],dword 1
1161
    jne   notiled
1191
	jne	notiled
1162
    mov   eax,[ebp+4]
1192
	mov	eax,[ebp+4]
1163
    add   eax,ecx
1193
	add	eax,ecx
1164
    cdq
1194
	cdq
Line 1173... Line 1203...
1173
    cdq
1203
	cdq
1174
    div   ebx
1204
	div	ebx
1175
    mov   eax,edx
1205
	mov	eax,edx
1176
    add   eax,[esp]
1206
	add	eax,[esp]
1177
    add   esp,4
1207
	add	esp,4
-
 
1208
;--------------------------------------
1178
 
1209
align 4
1179
  notiled:
1210
notiled:
1180
 
-
 
1181
    lea  ecx,[eax+eax*2]
1211
	lea	ecx,[eax+eax*2]
1182
    mov  eax,39
1212
	mcall	39,2
1183
    mov  ebx,2
1213
;--------------------------------------
1184
    mcall
1214
align 4
1185
 
-
 
1186
  nobpix:
1215
nobpix:
1187
 
-
 
1188
    pop  ecx
1216
	pop	ecx
1189
    pop  ebx
1217
	pop	ebx
Line 1190... Line 1218...
1190
 
1218
 
1191
    mov  edx,eax
1219
	mov	edx,eax
Line 1206... Line 1234...
1206
    cmp  ebx,eax
1234
	cmp	ebx,eax
1207
    jnz  newb
1235
	jnz	newb
1208
    xor  ebx,ebx
1236
	xor	ebx,ebx
Line 1209... Line 1237...
1209
 
1237
 
1210
    inc  ecx
-
 
1211
 
1238
	inc	ecx
1212
    mov  eax,[ya]
1239
	mov	eax,[ya]
Line 1213... Line 1240...
1213
    add  [pixpos],eax
1240
	add	[pixpos],eax
1214
 
1241
 
-
 
1242
	cmp	[top],1
1215
    cmp  [top],1
1243
	jne	notop
1216
    jne  notop
1244
 
-
 
1245
	cmp	ecx,38
1217
    cmp  ecx,38
1246
	je	toponly
1218
    je     toponly
1247
;--------------------------------------
1219
 
-
 
1220
  notop:
1248
align 4
1221
 
1249
notop:
-
 
1250
	cmp	ecx,52
1222
    cmp  ecx,52
1251
	jnz	newb
1223
    jnz  newb
1252
;--------------------------------------
1224
 
-
 
1225
  toponly:
-
 
1226
 
-
 
1227
    mov  eax,7
-
 
1228
    mov  ebx,0x3000
1253
align 4
-
 
1254
toponly:
-
 
1255
	xor	edx,edx
1229
    mov  ecx,52 shl 16 + 52
1256
	mcall	7,0x3000,<52,52>
1230
    xor  edx,edx
1257
;--------------------------------------
1231
    mcall
1258
align 4	
1232
  .ex:
1259
.ex:
-
 
1260
	mov	[load_pic],0
1233
    mov  [load_pic],0
1261
	ret
1234
    ret
1262
;------------------------------------------------------------------------------
1235
 
-
 
1236
draw_text:
1263
align 4
1237
 
1264
draw_text:
1238
    mov  esi,[ebp+8]
1265
	mov	esi,[ebp+8]
1239
    add  esi,3
1266
	add	esi,3
1240
    push edi
1267
	push	edi
-
 
1268
	mov	edi,title
-
 
1269
;	mov	ecx,8
-
 
1270
;	cld
1241
    mov  edi,title
1271
;	rep	movsb
1242
    mov  ecx,8
1272
	mov	ecx,8/4
1243
    cld
1273
	cld
1244
    rep  movsb
1274
	rep	movsd
-
 
1275
	pop	edi
-
 
1276
	mov	eax,title
1245
    pop  edi
1277
;--------------------------------------
1246
    mov   eax,title
1278
align 4
1247
  news2:
1279
news2:
1248
    cmp   [eax],byte 33
1280
	cmp	[eax],byte 33
1249
    jb      founde
1281
	jb	founde
1250
    inc   eax
1282
	inc	eax
-
 
1283
	cmp	eax,title+8	;11
-
 
1284
	jb	news2
1251
    cmp   eax,title+8;11
1285
;--------------------------------------
1252
    jb      news2
1286
align 4
1253
   founde:
1287
founde:
Line 1254... Line 1288...
1254
    sub   eax,title
1288
	sub	eax,title
1255
    mov   [tl],eax
1289
	mov	[tl],eax
1256
 
1290
	
Line 1257... Line 1291...
1257
    mov   eax,[tl]
1291
	mov	eax,[tl]
1258
    lea   eax,[eax+eax*2]  ; eax *= char_width/2
1292
	lea	eax,[eax+eax*2]  ; eax *= char_width/2
Line 1259... Line -...
1259
    shl   eax,16
-
 
1260
 
1293
	shl	eax,16
1261
    mov   ebx,27*65536+40
-
 
1262
    sub   ebx,eax
-
 
1263
 
1294
	
1264
    mov   eax,4
1295
	mov	ebx,27 shl 16+40
-
 
1296
	sub	ebx,eax
1265
    xor   ecx,ecx         ; black shade of text
1297
	
1266
    mov   edx,title
1298
	xor	ecx,ecx         ; black shade of text
-
 
1299
	add	ebx,1 shl 16      ;*65536+1
1267
    mov   esi,[tl]
1300
	mcall	4,,,title,[tl]
1268
    add   ebx,1 shl 16      ;*65536+1
1301
 
-
 
1302
	inc	ebx
1269
    mcall
1303
	mcall
1270
    inc   ebx
1304
 
-
 
1305
	add	ebx,1 shl 16
1271
    mcall
1306
	mcall
1272
    add   ebx,1 shl 16
1307
 
-
 
1308
	inc	ebx
1273
    mcall
1309
	mcall
1274
    inc   ebx
1310
 
1275
    mcall
1311
	sub	ebx,1 shl 16
-
 
1312
	mcall
1276
    sub   ebx,1 shl 16
1313
 
1277
    mcall
1314
	dec	ebx
1278
    dec   ebx
1315
	sub	ebx,1 shl 16
-
 
1316
	mcall
1279
    sub   ebx,1 shl 16
1317
 
1280
    mcall
1318
	sub	ebx,1 shl 16
1281
    sub   ebx,1 shl 16
1319
	dec	ebx
1282
    dec   ebx
-
 
1283
    mcall
-
 
Line 1284... Line 1320...
1284
    dec   ebx
1320
	mcall
-
 
1321
 
1285
    add   ebx,1 shl 16
1322
	dec	ebx
1286
    mcall
1323
	add	ebx,1 shl 16
1287
    inc   ebx
-
 
-
 
1324
	mcall
1288
    mov   ecx,0xffffff
1325
 
1289
 
1326
	inc	ebx
1290
    mcall
1327
	mcall	,,0xffffff
1291
    mov   [draw_pic],0
-
 
1292
    ret
1328
	mov   [draw_pic],0
1293
 
1329
	ret
1294
;   *********************************************
-
 
1295
;   *******  WINDOW DEFINITIONS AND DRAW ********
-
 
1296
;   *********************************************
-
 
1297
 
1330
;------------------------------------------------------------------------------
Line 1298... Line 1331...
1298
 
1331
;   *********************************************
1299
draw_window2:
1332
;   *******  WINDOW DEFINITIONS AND DRAW ********
1300
 
1333
;   *********************************************
1301
    mov  eax,12            ; function 12:tell os about windowdraw
1334
align 4
1302
    mov  ebx,1               ; 1, start of draw
1335
draw_window2:
1303
    mcall
1336
	mcall	12,1
1304
 
1337
 
1305
                   ; DRAW WINDOW
1338
	; DRAW WINDOW
Line 1306... Line 1339...
1306
    xor  eax,eax             ; function 0 : define and draw window
1339
	xor	eax,eax             ; function 0 : define and draw window
1307
    mov  ebx,[ebp+0-2]
-
 
1308
    mov  ecx,[ebp+4-2]
-
 
1309
    add  ebx,[yw]           ; [x start] *65536 + [x size]
-
 
1310
    add  ecx,51            ; [y start] *65536 + [y size]
-
 
Line 1311... Line 1340...
1311
    mov  edx,0x41000000        ; color of work area RRGGBB,8->color gl
1340
	mov	ebx,[ebp+0-2]
1312
    mcall
1341
	mov	ecx,[ebp+4-2]
-
 
1342
	add	ebx,[yw]           ; [x start] *65536 + [x size]
-
 
1343
	add	ecx,51            ; [y start] *65536 + [y size]
1313
 
1344
	mov	edx,0x41000000        ; color of work area RRGGBB,8->color gl
1314
    mov  eax,8      ; button
1345
	mcall
1315
    mov  ebx,51
1346
	
1316
    mov  ecx,50
1347
	mcall	8,51,50,0x40000002 ; button
1317
    mov  edx,0x40000002
1348
	
1318
    mcall
1349
	mov	eax,5
-
 
1350
	mov	ebx,1
-
 
1351
;--------------------------------------
1319
 
1352
align 4
1320
    mov  eax,5
-
 
1321
    mov  ebx,1
1353
draw_icon2:
1322
draw_icon2:
1354
	xchg	[load_pic],bl
-
 
1355
	test	bl,bl
-
 
1356
	je	draw_icon_end
1323
    xchg [load_pic],bl
1357
	mcall
1324
    test bl,bl
1358
	jmp	draw_icon2
1325
    je     draw_icon_end
1359
;--------------------------------------
1326
    mcall
1360
align 4
1327
    jmp  draw_icon2
1361
draw_icon_end:
1328
draw_icon_end:
1362
	mov	eax,5
-
 
1363
	mov	ebx,1
-
 
1364
;--------------------------------------
1329
 
1365
align 4
1330
    mov  eax,5
-
 
1331
    mov  ebx,1
-
 
1332
draw_icon_2:
1366
draw_icon_2:
1333
    xchg [draw_pic],bl
-
 
1334
    test bl,bl
-
 
1335
    je     draw_icon_end_2
-
 
1336
    mcall
1367
	xchg	[draw_pic],bl
1337
    jmp  draw_icon_2
1368
	test	bl,bl
1338
draw_icon_end_2:
-
 
1339
 
-
 
1340
    mov  eax,9
-
 
1341
    mov  ebx,process_table
1369
	je	draw_icon_end_2
1342
    mov  ecx,-1
-
 
1343
    mcall
1370
	mcall
1344
 
-
 
-
 
1371
	jmp	draw_icon_2
1345
    call draw_picture
1372
;--------------------------------------
1346
    call draw_text
1373
align 4
1347
 
1374
draw_icon_end_2:
1348
    mov  eax,12
1375
	mcall	9,process_table,-1
Line 1349... Line 1376...
1349
    mov  ebx,2
1376
	call	draw_picture
1350
    mcall
1377
	call	draw_text
1351
 
1378
	mcall	12,2
Line 1352... Line -...
1352
    ret
-
 
1353
 
1379
	ret
Line 1354... Line 1380...
1354
tl        dd      8
1380
;------------------------------------------------------------------------------
1355
yw        dd     51
1381
tl	dd 8
-
 
1382
yw	dd 51
1356
ya        dd      0
1383
ya	dd 0
Line 1357... Line 1384...
1357
cur_btn   dd 40
1384
cur_btn	dd 40
1358
 
1385
 
1359
draw_pic    db      0
1386
draw_pic	db 0
Line 1396... Line 1423...
1396
strip_file rb RAW_SIZE
1423
strip_file	rb	RAW_SIZE
Line 1397... Line 1424...
1397
 
1424
 
Line 1398... Line 1425...
1398
IncludeUGlobals
1425
IncludeUGlobals
-
 
1426
 
1399
 
1427
I_END: