Subversion Repositories Kolibri OS

Rev

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

Rev 3840 Rev 4631
1
;------------------------------------------------------------------------------
1
;------------------------------------------------------------------------------
2
draw_buttons_panel:
2
draw_buttons_panel:
3
	mov	ecx,[skin_high]
3
	mov	ecx,[skin_high]
4
	add	ecx,19
4
	add	ecx,19
5
	shl	ecx,16
5
	shl	ecx,16
6
	mov	cx,18
6
	mov	cx,18
7
	mov	ebx,[window_width]
7
	mov	ebx,[window_width]
8
	sub	ebx,9
8
	sub	ebx,9
9
	add	ebx,5 shl 16
9
	add	ebx,5 shl 16
10
	mcall	13,,,0xffffff
10
	mcall	13,,,0xffffff
11
	mov	edx,15 shl 16+20
11
	mov	edx,15 shl 16+20
12
	add	edx,[skin_high]
12
	add	edx,[skin_high]
13
	pusha
13
	pusha
14
	call	.calculate_button
14
	call	.calculate_button
15
	mcall	,,,150
15
	mcall	,,,150
16
	popa
16
	popa
17
	mcall	7,[buttons_img_start],<16,16>
17
	mcall	7,[buttons_img_start],<16,16>
18
	add	edx,26 shl 16
18
	add	edx,26 shl 16
19
	add	ebx,16*16*3
19
	add	ebx,16*16*3
20
	pusha
20
	pusha
21
	call	.calculate_button
21
	call	.calculate_button
22
	mcall	,,,151
22
	mcall	,,,151
23
	popa
23
	popa
24
	mcall
24
	mcall
25
	add	edx,26 shl 16
25
	add	edx,26 shl 16
26
	add	ebx,16*16*3
26
	add	ebx,16*16*3
27
	pusha
27
	pusha
28
	call	.calculate_button
28
	call	.calculate_button
29
	mcall	,,,152
29
	mcall	,,,152
30
	popa
30
	popa
31
	mcall
31
	mcall
32
	add	edx,26 shl 16
32
	add	edx,26 shl 16
33
	add	ebx,16*16*3
33
	add	ebx,16*16*3
34
	pusha
34
	pusha
35
	call	.calculate_button
35
	call	.calculate_button
36
	mcall	,,,153
36
	mcall	,,,153
37
	popa
37
	popa
38
	mcall
38
	mcall
39
	add	edx,26 shl 16
39
	add	edx,26 shl 16
40
	add	ebx,16*16*3
40
	add	ebx,16*16*3
41
	pusha
41
	pusha
42
	call	.calculate_button
42
	call	.calculate_button
43
	mcall	,,,154
43
	mcall	,,,154
44
	popa
44
	popa
45
	mcall
45
	mcall
46
	add	edx,26 shl 16
46
	add	edx,26 shl 16
47
	add	ebx,16*16*3
47
	add	ebx,16*16*3
48
	pusha
48
	pusha
49
	call	.calculate_button
49
	call	.calculate_button
50
	mcall	,,,155
50
	mcall	,,,155
51
	popa
51
	popa
52
	mcall
52
	mcall
53
	add	edx,26 shl 16
53
	add	edx,26 shl 16
54
	add	ebx,16*16*3
54
	add	ebx,16*16*3
55
	pusha
55
	pusha
56
	call	.calculate_button
56
	call	.calculate_button
57
	mcall	,,,156
57
	mcall	,,,156
58
	popa
58
	popa
59
	mcall
59
	mcall
60
	add	edx,26 shl 16
60
	add	edx,26 shl 16
61
	add	ebx,16*16*3
61
	add	ebx,16*16*3
62
	pusha
62
	pusha
63
	call	.calculate_button
63
	call	.calculate_button
64
	mcall	,,,157
64
	mcall	,,,157
65
	popa
65
	popa
66
	mcall
66
	mcall
67
	ret
67
	ret
68
;--------------------------------------
68
;--------------------------------------
69
.calculate_button:
69
.calculate_button:
70
	mov	esi,0xffffff
70
	mov	esi,0xffffff
71
	mov	ebx,edx
71
	mov	ebx,edx
72
	mov	bx,15
72
	mov	bx,15
73
	mov	ecx,edx
73
	mov	ecx,edx
74
	shl	ecx,16
74
	shl	ecx,16
75
	mov	cx,bx
75
	mov	cx,bx
76
	mov	eax,8
76
	mov	eax,8
77
	ret
77
	ret
78
;------------------------------------------------------------------------------
78
;------------------------------------------------------------------------------
79
draw_left_sort_button:
79
draw_left_sort_button:
80
	mov	bx,[left_panel_x.start_x]
80
	mov	bx,[left_panel_x.start_x]
81
	add	bx,[left_panel_x.size_x]
81
	add	bx,[left_panel_x.size_x]
82
	sub	ebx,50+15
82
	sub	ebx,50+15
83
	mov	cx,[left_panel_y.start_y]
83
	mov	cx,[left_panel_y.start_y]
84
	call	calclulate_sort_button_1
84
	call	calclulate_sort_button_1
85
	mov	edx,145
85
	mov	edx,145
86
;--------------------------------------
86
;--------------------------------------
87
.start:
87
.start:
88
	mov	esi,0xffffff
88
	mov	esi,0xffffff
89
	dec	ebp
89
	dec	ebp
90
	cmp	[left_sort_flag],ebp
90
	cmp	[left_sort_flag],ebp
91
	jne	@f
91
	jne	@f
92
 
92
 
93
	mov	esi,0xccccff
93
	mov	esi,0xccccff
94
;--------------------------------------
94
;--------------------------------------
95
@@:
95
@@:
96
	call	calclulate_sort_button_2
96
	call	calclulate_sort_button_2
97
	jnz	.start
97
	jnz	.start
98
 
98
 
99
	ret
99
	ret
100
;------------------------------------------------------------------------------
100
;------------------------------------------------------------------------------
101
calclulate_sort_button_1:
101
calclulate_sort_button_1:
102
	shl	ebx,16
102
	shl	ebx,16
103
	mov	bx,50
103
	mov	bx,50
104
	sub	cx,14
104
	sub	cx,14
105
	shl	ecx,16
105
	shl	ecx,16
106
	mov	cx,12
106
	mov	cx,12
107
	mov	eax,8
107
	mov	eax,8
108
	mov	ebp,4
108
	mov	ebp,4
109
	ret
109
	ret
110
;------------------------------------------------------------------------------
110
;------------------------------------------------------------------------------
111
calclulate_sort_button_2:
111
calclulate_sort_button_2:
112
	inc	ebp
112
	inc	ebp
113
	mcall
113
	mcall
114
	pusha
114
	pusha
115
	push	ebx
115
	push	ebx
116
	mov	eax,ebx
116
	mov	eax,ebx
117
	inc	eax
117
	inc	eax
118
	shl	eax,16
118
	shl	eax,16
119
	add	ebx,eax
119
	add	ebx,eax
120
	cmp	ebp,4
120
	cmp	ebp,4
121
	jne	@f
121
	jne	@f
122
 
122
 
123
	mov	bx,15
123
	mov	bx,15
124
	jmp	.continue
124
	jmp	.continue
125
;--------------------------------------
125
;--------------------------------------
126
@@:
126
@@:
127
	mov	bx,1
127
	mov	bx,1
128
;--------------------------------------
128
;--------------------------------------
129
.continue:
129
.continue:
130
	inc	ecx
130
	inc	ecx
131
	mcall	13,,,0xcccccc
131
	mcall	13,,,0xcccccc
132
	pop	ebx
132
	pop	ebx
133
	cmp	ebp,1
133
	cmp	ebp,1
134
	jne	@f
134
	jne	@f
135
 
135
 
136
	mov	eax,[temp_panel_end]
136
	mov	eax,[temp_panel_end]
137
	shl	eax,16
137
	shl	eax,16
138
	add	eax,[temp_panel_end]
138
	add	eax,[temp_panel_end]
139
	shr	eax,16
139
	shr	eax,16
140
	shr	ebx,16
140
	shr	ebx,16
141
	sub	ebx,eax
141
	sub	ebx,eax
142
	shl	ebx,16
142
	shl	ebx,16
143
	mov	bx,ax
143
	mov	bx,ax
144
	rol	ebx,16
144
	rol	ebx,16
145
	mcall	13
145
	mcall	13
146
	mov	[temp_panel_end],ebx
146
	mov	[temp_panel_end],ebx
147
;--------------------------------------
147
;--------------------------------------
148
@@:
148
@@:
149
	popa
149
	popa
150
	pusha
150
	pusha
151
	shr	ecx,16
151
	shr	ecx,16
152
	mov	bx,cx
152
	mov	bx,cx
153
	add	ebx,3 shl 16+2
153
	add	ebx,3 shl 16+2
154
	mov	edx,ebp
154
	mov	edx,ebp
155
	dec	edx
155
	dec	edx
156
	shl	edx,2
156
	shl	edx,2
157
	add	edx,sort_button_name
157
	add	edx,sort_button_name
158
	mov	eax,4
158
	mov	eax,4
159
	mov	esi,eax
159
	mov	esi,eax
160
	mcall	,,0x10000000
160
	mcall	,,0x10000000
161
	popa
161
	popa
162
	dec	edx
162
	dec	edx
163
	sub	ebx,38 shl 16
163
	sub	ebx,38 shl 16
164
	mov	bx,36
164
	mov	bx,36
165
	dec	ebp
165
	dec	ebp
166
	ret
166
	ret
167
;------------------------------------------------------------------------------
167
;------------------------------------------------------------------------------
168
draw_right_sort_button:
168
draw_right_sort_button:
169
	mov	bx,[right_panel_x.start_x]
169
	mov	bx,[right_panel_x.start_x]
170
	add	bx,[right_panel_x.size_x]
170
	add	bx,[right_panel_x.size_x]
171
	sub	ebx,50+15
171
	sub	ebx,50+15
172
	mov	cx,[right_panel_y.start_y]
172
	mov	cx,[right_panel_y.start_y]
173
	call	calclulate_sort_button_1
173
	call	calclulate_sort_button_1
174
	mov	edx,149
174
	mov	edx,149
175
;--------------------------------------
175
;--------------------------------------
176
.start:
176
.start:
177
	mov	esi,0xffffff
177
	mov	esi,0xffffff
178
	dec	ebp
178
	dec	ebp
179
	cmp	[right_sort_flag],ebp
179
	cmp	[right_sort_flag],ebp
180
	jne	@f
180
	jne	@f
181
 
181
 
182
	mov	esi,0xccccff
182
	mov	esi,0xccccff
183
;--------------------------------------
183
;--------------------------------------
184
@@:
184
@@:
185
	call	calclulate_sort_button_2
185
	call	calclulate_sort_button_2
186
	jnz	.start
186
	jnz	.start
187
 
187
 
188
	ret
188
	ret
189
;------------------------------------------------------------------------------
189
;------------------------------------------------------------------------------
190
draw_left_select_disk_button:
190
draw_left_select_disk_button:
191
	mov	bx,[left_panel_x.start_x]
191
	mov	bx,[left_panel_x.start_x]
192
	mov	cx,[left_panel_y.start_y]
192
	mov	cx,[left_panel_y.start_y]
193
	mov	ebp,read_folder_name	      ;read_folder.name
193
	mov	ebp,read_folder_name	      ;read_folder.name
194
	mov	edx,0x40000000+140
194
	mov	edx,0x40000000+140
195
;--------------------------------------
195
;--------------------------------------
196
.1:
196
.1:
197
	shl	ebx,16
197
	shl	ebx,16
198
	mov	bx,60
198
	mov	bx,60
199
	sub	cx,14
199
	sub	cx,14
200
	shl	ecx,16
200
	shl	ecx,16
201
	mov	cx,13
201
	mov	cx,13
202
	mcall	8,,,,0xffffff
202
	mcall	8,,,,0xffffff
203
	mcall	13,,,0xffffff
203
	mcall	13,,,0xffffff
204
	pusha
204
	pusha
205
	mov	esi,ebp
205
	mov	esi,ebp
206
	add	esi,2
206
	add	esi,2
207
;--------------------------------------
207
;--------------------------------------
208
@@:
208
@@:
209
	inc	esi
209
	inc	esi
210
	cmp	[esi],byte 0
210
	cmp	[esi],byte 0
211
	je	@f
211
	je	@f
212
 
212
 
213
	cmp	[esi],byte '/'
213
	cmp	[esi],byte '/'
214
	jne	@r
214
	jne	@r
215
 
215
 
216
	add	esi,2
216
	add	esi,2
217
;--------------------------------------
217
;--------------------------------------
218
@@:
218
@@:
219
	sub	esi,ebp  ;read_folder.name
219
	sub	esi,ebp  ;read_folder.name
220
	add	ebx,1 shl 16
220
	add	ebx,1 shl 16
221
	shr	ecx,16
221
	shr	ecx,16
222
	mov	bx,cx
222
	mov	bx,cx
223
	add	ebx,3
223
	add	ebx,3
224
	mov	edx,ebp
224
	mov	edx,ebp
225
	mcall	4,,0  ;,read_folder.name
225
	mcall	4,,0  ;,read_folder.name
226
	popa
226
	popa
227
	add	ebx,50 shl 16
227
	add	ebx,50 shl 16
228
	mov	bx,10
228
	mov	bx,10
229
	mcall	,,,0x6060ff
229
	mcall	,,,0x6060ff
230
	mov	[temp_panel_end],ebx
230
	mov	[temp_panel_end],ebx
231
	add	ebx,1 shl 16
231
	add	ebx,1 shl 16
232
	shr	ecx,16
232
	shr	ecx,16
233
	mov	bx,cx
233
	mov	bx,cx
234
	add	ebx,3
234
	add	ebx,3
235
	mcall	4, ,0x80ffffff,select_disk_char
235
	mcall	4, ,0x80ffffff,select_disk_char
236
	add	ebx,1 shl 16
236
	add	ebx,1 shl 16
237
	mcall
237
	mcall
238
	ret
238
	ret
239
;------------------------------------------------------------------------------
239
;------------------------------------------------------------------------------
240
draw_right_select_disk_button:
240
draw_right_select_disk_button:
241
	mov	bx,[right_panel_x.start_x]
241
	mov	bx,[right_panel_x.start_x]
242
	mov	cx,[right_panel_y.start_y]
242
	mov	cx,[right_panel_y.start_y]
243
	mov	ebp,read_folder_1_name   ;read_folder_1.name
243
	mov	ebp,read_folder_1_name   ;read_folder_1.name
244
	mov	edx,0x40000000+141
244
	mov	edx,0x40000000+141
245
	jmp	draw_left_select_disk_button.1
245
	jmp	draw_left_select_disk_button.1
246
;------------------------------------------------------------------------------
246
;------------------------------------------------------------------------------
247
draw_device_button:
-
 
248
	mov	edi,device_present
-
 
249
	mov	edx,120
-
 
250
	mov	bx,[left_panel_x.start_x]
-
 
251
	mov	cx,[left_panel_y.start_y]
-
 
252
	mov	eax,[left_panel_x]
-
 
253
	mov	[temp_panel_end],eax
-
 
254
	mov	[temp_counter],0
-
 
255
	call	.draw
-
 
256
	mov	edx,130
-
 
257
	mov	bx,[right_panel_x.start_x]
-
 
258
	mov	cx,[right_panel_y.start_y]
-
 
259
	mov	eax,[right_panel_x]
-
 
260
	mov	[temp_panel_end],eax
-
 
261
	mov	[temp_counter],1
-
 
262
;--------------------------------------
-
 
263
.draw:
-
 
264
	shl	ebx,16
-
 
265
	mov	bx,25
-
 
266
	sub	cx,30
-
 
267
	shl	ecx,16
-
 
268
	mov	cx,12
-
 
269
	mov	eax,8
-
 
270
	mov	esi,0xaa00
-
 
271
	cmp	[edi],byte 1
-
 
272
	jne	@f
-
 
273
 
-
 
274
	mov	ebp,read_folder_device_name.rd
-
 
275
	call	.draw_1
-
 
276
;--------------------------------------
-
 
277
@@:
-
 
278
	inc	edx
-
 
279
	cmp	[edi+1],byte 1
-
 
280
	jne	@f
-
 
281
 
-
 
282
	mov	ebp,read_folder_device_name.fd
-
 
283
	call	.draw_1
-
 
284
;--------------------------------------
-
 
285
@@:
-
 
286
	inc	edx
-
 
287
	cmp	[edi+2],byte 1
-
 
288
	jne	@f
-
 
289
 
-
 
290
	mov	ebp,read_folder_device_name.hd0
-
 
291
	call	.draw_1
-
 
292
;--------------------------------------
-
 
293
@@:
-
 
294
	inc	edx
-
 
295
	cmp	[edi+3],byte 1
-
 
296
	jne	@f
-
 
297
 
-
 
298
	mov	ebp,read_folder_device_name.hd1
-
 
299
	call	.draw_1
-
 
300
;--------------------------------------
-
 
301
@@:
-
 
302
	inc	edx
-
 
303
	cmp	[edi+4],byte 1
-
 
304
	jne	@f
-
 
305
 
-
 
306
	mov	ebp,read_folder_device_name.hd2
-
 
307
	call	.draw_1
-
 
308
;--------------------------------------
-
 
309
@@:
-
 
310
	inc	edx
-
 
311
	cmp	[edi+5],byte 1
-
 
312
	jne	@f
-
 
313
 
-
 
314
	mov	ebp,read_folder_device_name.hd3
-
 
315
	call	.draw_1
-
 
316
;--------------------------------------
-
 
317
@@:
-
 
318
	inc	edx
-
 
319
	cmp	[edi+6],byte 1
-
 
320
	jne	@f
-
 
321
 
-
 
322
	mov	ebp,read_folder_device_name.cd0
-
 
323
	call	.draw_1
-
 
324
;--------------------------------------
-
 
325
@@:
-
 
326
	inc	edx
-
 
327
	cmp	[edi+7],byte 1
-
 
328
	jne	@f
-
 
329
 
-
 
330
	mov	ebp,read_folder_device_name.cd1
-
 
331
	call	.draw_1
-
 
332
;--------------------------------------
-
 
333
@@:
-
 
334
	inc	edx
-
 
335
	cmp	[edi+8],byte 1
-
 
336
	jne	@f
-
 
337
 
-
 
338
	mov	ebp,read_folder_device_name.cd2
-
 
339
	call	.draw_1
-
 
340
;--------------------------------------
-
 
341
@@:
-
 
342
	inc	edx
-
 
343
	cmp	[edi+9],byte 1
-
 
344
	jne	@f
-
 
345
 
-
 
346
	mov	ebp,read_folder_device_name.cd3
-
 
347
	call	.draw_1
-
 
348
;--------------------------------------
-
 
349
@@:
-
 
350
	push	ebx
-
 
351
	mov	ebx,[temp_panel_end]
-
 
352
	mov	ax,bx
-
 
353
	shr	ebx,16
-
 
354
	add	eax,ebx
-
 
355
	pop	ebx
-
 
356
	ror	ebx,16
-
 
357
	sub	ax,bx
-
 
358
	rol	ebx,16
-
 
359
	mov	bx,ax
-
 
360
	add	ecx,1
-
 
361
	add	ebx,1
-
 
362
	mcall	13,,,0xcccccc
-
 
363
	cmp	[temp_counter],0
-
 
364
	je	@f
-
 
365
 
-
 
366
	mov	ax,bx
-
 
367
	shr	ebx,16
-
 
368
	add	bx,ax
-
 
369
	mov	eax,[window_width]
-
 
370
	sub	eax,4
-
 
371
	sub	ax,bx
-
 
372
	cmp	eax,0
-
 
373
	jbe	@f
-
 
374
 
-
 
375
	shl	ebx,16
-
 
376
	mov	bx,ax
-
 
377
	mov	ax,[right_panel_y.size_y]
-
 
378
	add	ax,[right_panel_y.start_y]
-
 
379
	shr	ecx,16
-
 
380
	sub	ax,cx
-
 
381
	shl	ecx,16
-
 
382
	mov	cx,ax
-
 
383
	mcall	13,,,0xcccccc
-
 
384
	ret
-
 
385
;--------------------------------------
-
 
386
.draw_1:
-
 
387
	mcall
-
 
388
	pusha
-
 
389
	mov	eax,ebx
-
 
390
	inc	eax
-
 
391
	shl	eax,16
-
 
392
	add	ebx,eax
-
 
393
	mov	bx,1
-
 
394
	inc	ecx
-
 
395
	mcall	13,,,0xcccccc
-
 
396
	popa
-
 
397
	pusha
-
 
398
	mov	edx,ebp
-
 
399
	shr	ecx,16
-
 
400
	mov	bx,cx
-
 
401
	add	ebx,2 shl 16 +3
-
 
402
	mcall	4,,0x90000000
-
 
403
	sub	ebx,1 shl 16 + 1
-
 
404
	mcall	,,0x90ffffff
-
 
405
	popa
-
 
406
	add	ebx,27 shl 16
-
 
407
;--------------------------------------
-
 
408
@@:
-
 
409
	ret
-
 
410
;------------------------------------------------------------------------------
-
 
411
draw_ATAPI_tray_control:
247
;draw_ATAPI_tray_control:
412
	ret
248
;	ret
413
;------------------------------------------------------------------------------
249
;------------------------------------------------------------------------------
414
calc_max_panel_line:
250
calc_max_panel_line:
415
	xor	eax,eax
251
	xor	eax,eax
416
	mov	ax,[left_panel_y.size_y]
252
	mov	ax,[left_panel_y.size_y]
417
	mov	ebx,10
253
	mov	ebx,10
418
	xor	edx,edx
254
	xor	edx,edx
419
	div	ebx
255
	div	ebx
420
	mov	[max_panel_line],eax
256
	mov	[max_panel_line],eax
421
	ret
257
	ret
422
;------------------------------------------------------------------------------
258
;------------------------------------------------------------------------------
423
draw_icon:
259
draw_icon:
424
	pusha
260
	pusha
425
	test	[edx-40],byte 0x10
261
	test	[edx-40],byte 0x10
426
	jnz	.draw_dir_pic
262
	jnz	.draw_dir_pic
427
 
263
 
428
	call	get_icon_number
264
	call	get_icon_number
429
	imul	ebx,270
265
	imul	ebx,270
430
	add	ebx,mem
266
	add	ebx,mem
431
	jmp	.draw
267
	jmp	.draw
432
;--------------------------------------
268
;--------------------------------------
433
.draw_dir_pic:
269
.draw_dir_pic:
434
	mov	ebx,mem
270
	mov	ebx,mem
435
	cmp	[edx],word '..'
271
	cmp	[edx],word '..'
436
	jne	 .draw
272
	jne	 .draw
437
 
273
 
438
	add	ebx,270   ;*17
274
	add	ebx,270   ;*17
439
;--------------------------------------
275
;--------------------------------------
440
.draw:
276
.draw:
441
	mov	edx,[esp+16]	;ebx
277
	mov	edx,[esp+16]	;ebx
442
	ror	edx,16
278
	ror	edx,16
443
	sub	edx,12
279
	sub	edx,12
444
	rol	edx,16
280
	rol	edx,16
445
	mcall	7, ,<10,9>
281
	mcall	7, ,<10,9>
446
	popa
282
	popa
447
	ret
283
	ret
448
;------------------------------------------------------------------------------
284
;------------------------------------------------------------------------------
449
;       ÏÅÐÅÂÎÄ 10-ÍÛÕ ×ÈÑÅË ÑÎ ÇÍÀÊÎÌ Â ÑÒÐÎÊÎÂÛÉ ÂÈÄ
285
;       ÏÅÐÅÂÎÄ 10-ÍÛÕ ×ÈÑÅË ÑÎ ÇÍÀÊÎÌ Â ÑÒÐÎÊÎÂÛÉ ÂÈÄ
450
;       Âõîä:
286
;       Âõîä:
451
;               AX - ÷èñëî
287
;               AX - ÷èñëî
452
;               EBX - àäðåñ ñòðîêè
288
;               EBX - àäðåñ ñòðîêè
453
;       Âûõîä:
289
;       Âûõîä:
454
;               ñòðîêà ñîäåðæèò ÷èñëî, êîíåö îòìå÷åí êîäîì 0
290
;               ñòðîêà ñîäåðæèò ÷èñëî, êîíåö îòìå÷åí êîäîì 0
455
;------------------------------------------------------------------------------
291
;------------------------------------------------------------------------------
456
decimal_string_2:
292
decimal_string_2:
457
	push	eax ebx ecx edx
293
	push	eax ebx ecx edx
458
	xor	ecx,ecx
294
	xor	ecx,ecx
459
	mov	[ebx],byte '0'
295
	mov	[ebx],byte '0'
460
	inc	ebx
296
	inc	ebx
461
;--------------------------------------
297
;--------------------------------------
462
.p3:
298
.p3:
463
	xor	edx,edx
299
	xor	edx,edx
464
	push	ebx
300
	push	ebx
465
	mov	ebx,10
301
	mov	ebx,10
466
	div	ebx
302
	div	ebx
467
	pop	ebx
303
	pop	ebx
468
	add	edx,48
304
	add	edx,48
469
	push	edx
305
	push	edx
470
	inc	ecx
306
	inc	ecx
471
	cmp	ax,0
307
	cmp	ax,0
472
	jne	.p3
308
	jne	.p3
473
 
309
 
474
	cmp	ecx,1
310
	cmp	ecx,1
475
	jbe	.p4
311
	jbe	.p4
476
 
312
 
477
	mov	ecx,2
313
	mov	ecx,2
478
	dec	ebx
314
	dec	ebx
479
;--------------------------------------
315
;--------------------------------------
480
.p4:
316
.p4:
481
	pop	edx
317
	pop	edx
482
	mov	[ebx],dl
318
	mov	[ebx],dl
483
	inc	ebx
319
	inc	ebx
484
	loop	.p4
320
	loop	.p4
485
	pop	edx ecx ebx eax
321
	pop	edx ecx ebx eax
486
	ret
322
	ret
487
;------------------------------------------------------------------------------
323
;------------------------------------------------------------------------------
488
decimal_string_4:
324
decimal_string_4:
489
	push	eax ecx edx
325
	push	eax ecx edx
490
	xor	ecx,ecx
326
	xor	ecx,ecx
491
	mov	[ebx],byte '0'
327
	mov	[ebx],byte '0'
492
	inc	ebx
328
	inc	ebx
493
;--------------------------------------
329
;--------------------------------------
494
.p3:
330
.p3:
495
	xor	edx,edx
331
	xor	edx,edx
496
	push	ebx
332
	push	ebx
497
	mov	ebx,10
333
	mov	ebx,10
498
	div	ebx
334
	div	ebx
499
	pop	ebx
335
	pop	ebx
500
	add	edx,48
336
	add	edx,48
501
	push	edx
337
	push	edx
502
	inc	ecx
338
	inc	ecx
503
	cmp	eax,0
339
	cmp	eax,0
504
	jne	.p3
340
	jne	.p3
505
 
341
 
506
	cmp	ecx,3
342
	cmp	ecx,3
507
	jbe	.p4
343
	jbe	.p4
508
 
344
 
509
	mov	ecx,4
345
	mov	ecx,4
510
	dec	ebx
346
	dec	ebx
511
;--------------------------------------
347
;--------------------------------------
512
.p4:
348
.p4:
513
	pop	edx
349
	pop	edx
514
	mov	[ebx],dl
350
	mov	[ebx],dl
515
	inc	ebx
351
	inc	ebx
516
	loop	.p4
352
	loop	.p4
517
 
353
 
518
	pop	edx ecx eax
354
	pop	edx ecx eax
519
	ret
355
	ret
520
;------------------------------------------------------------------------------
356
;------------------------------------------------------------------------------
521
draw_type_size_date:
357
draw_type_size_date:
522
	pusha
358
	pusha
523
	test	[edx-40],byte 0x10
359
	test	[edx-40],byte 0x10
524
	jz	.copy_type
360
	jz	.copy_type
525
 
361
 
526
	mov	[type_table],dword '
362
	mov	[type_table],dword '
527
	mov	[type_table+4],word '> '
363
	mov	[type_table+4],word '> '
528
	mov	[file_name_length],0
364
	mov	[file_name_length],0
529
	mov	[extension_size],0
365
	mov	[extension_size],0
530
	jmp	.start  ;.size
366
	jmp	.start  ;.size
531
;--------------------------------------
367
;--------------------------------------
532
.copy_type:
368
.copy_type:
533
	mov	[type_table],dword '    '
369
	mov	[type_table],dword '    '
534
	mov	[type_table+4],word '  '
370
	mov	[type_table+4],word '  '
535
;--------------------------------------
371
;--------------------------------------
536
.start:
372
.start:
537
	mov	esi,edx
373
	mov	esi,edx
538
	xor	eax,eax
374
	xor	eax,eax
539
;--------------------------------------
375
;--------------------------------------
540
@@:
376
@@:
541
	cld
377
	cld
542
	lodsb
378
	lodsb
543
	test	eax,eax
379
	test	eax,eax
544
	jnz	@b
380
	jnz	@b
545
 
381
 
546
	mov	[file_name_length],esi
382
	mov	[file_name_length],esi
547
	sub	[file_name_length],edx
383
	sub	[file_name_length],edx
548
	mov	[temp_counter_1],esi
384
	mov	[temp_counter_1],esi
549
	test	[edx-40],byte 0x10
385
	test	[edx-40],byte 0x10
550
	jnz	 .size
386
	jnz	 .size
551
 
387
 
552
	dec	esi
388
	dec	esi
553
	dec	edx
389
	dec	edx
554
;--------------------------------------
390
;--------------------------------------
555
@@:
391
@@:
556
	std
392
	std
557
	lodsb
393
	lodsb
558
	cmp	esi,edx
394
	cmp	esi,edx
559
	je	.extension_size_0
395
	je	.extension_size_0
560
 
396
 
561
	cmp	al,'.'
397
	cmp	al,'.'
562
	jnz	@b
398
	jnz	@b
563
 
399
 
564
	add	esi,2
400
	add	esi,2
565
	mov	[extension_start],esi
401
	mov	[extension_start],esi
566
	mov	ecx,[temp_counter_1]
402
	mov	ecx,[temp_counter_1]
567
	sub	ecx,esi
403
	sub	ecx,esi
568
	inc	ecx
404
	inc	ecx
569
	mov	[extension_size],ecx
405
	mov	[extension_size],ecx
570
	sub	[file_name_length],ecx
406
	sub	[file_name_length],ecx
571
	cmp	ecx,2
407
	cmp	ecx,2
572
	ja	@f
408
	ja	@f
573
 
409
 
574
	inc	[file_name_length]
410
	inc	[file_name_length]
575
;--------------------------------------
411
;--------------------------------------
576
@@:
412
@@:
577
	sub	ecx,2
413
	sub	ecx,2
578
	cmp	ecx,4
414
	cmp	ecx,4
579
	jbe	@f
415
	jbe	@f
580
 
416
 
581
	mov	ecx,4
417
	mov	ecx,4
582
	mov	[type_table+4],word '..'
418
	mov	[type_table+4],word '..'
583
;--------------------------------------
419
;--------------------------------------
584
@@:
420
@@:
585
	mov	edi,type_table  ;+1
421
	mov	edi,type_table  ;+1
586
	cld
422
	cld
587
	rep	movsb
423
	rep	movsb
588
	mov	[edi],byte ' '
424
	mov	[edi],byte ' '
589
	inc	edx
425
	inc	edx
590
	jmp	.size
426
	jmp	.size
591
;--------------------------------------
427
;--------------------------------------
592
.extension_size_0:
428
.extension_size_0:
593
	inc	edx
429
	inc	edx
594
	mov	[extension_size],0
430
	mov	[extension_size],0
595
;--------------------------------------
431
;--------------------------------------
596
.size:
432
.size:
597
	test	[edx-40],byte 0x10
433
	test	[edx-40],byte 0x10
598
	jz	.copy_size
434
	jz	.copy_size
599
 
435
 
600
	mov	[size_table],dword '----'
436
	mov	[size_table],dword '----'
601
	mov	[size_table+4],word '- '
437
	mov	[size_table+4],word '- '
602
	jmp	.date
438
	jmp	.date
603
;--------------------------------------
439
;--------------------------------------
604
.copy_size:
440
.copy_size:
605
;/0x40000000 - Gb
441
;/0x40000000 - Gb
606
;/0x100000 - Mb
442
;/0x100000 - Mb
607
;/0x400 Kb
443
;/0x400 Kb
608
	mov	[size_table],dword '    '
444
	mov	[size_table],dword '    '
609
	mov	[size_table+4],word '  '
445
	mov	[size_table+4],word '  '
610
	push	ebx
446
	push	ebx
611
	push	edx
447
	push	edx
612
	mov	eax,[edx-40+32]
448
	mov	eax,[edx-40+32]
613
	mov	ebx,0x40000000
449
	mov	ebx,0x40000000
614
	xor	edx,edx
450
	xor	edx,edx
615
	div	ebx
451
	div	ebx
616
	cmp	eax,0
452
	cmp	eax,0
617
	je	@f
453
	je	@f
618
 
454
 
619
	mov	ebx,size_table
455
	mov	ebx,size_table
620
	call	decimal_string_4
456
	call	decimal_string_4
621
	mov	[ebx],byte 'G'
457
	mov	[ebx],byte 'G'
622
	jmp	.size_convert_end
458
	jmp	.size_convert_end
623
;--------------------------------------
459
;--------------------------------------
624
@@:
460
@@:
625
	mov	edx,[esp]
461
	mov	edx,[esp]
626
	mov	eax,[edx-40+32]
462
	mov	eax,[edx-40+32]
627
	mov	ebx,0x100000
463
	mov	ebx,0x100000
628
	xor	edx,edx
464
	xor	edx,edx
629
	div	ebx
465
	div	ebx
630
	cmp	eax,0
466
	cmp	eax,0
631
	je	@f
467
	je	@f
632
 
468
 
633
	mov	ebx,size_table
469
	mov	ebx,size_table
634
	call	decimal_string_4
470
	call	decimal_string_4
635
	mov	[ebx],byte 'M'
471
	mov	[ebx],byte 'M'
636
	jmp	.size_convert_end
472
	jmp	.size_convert_end
637
;--------------------------------------
473
;--------------------------------------
638
@@:
474
@@:
639
	mov	edx,[esp]
475
	mov	edx,[esp]
640
	mov	eax,[edx-40+32]
476
	mov	eax,[edx-40+32]
641
	mov	ebx,0x400
477
	mov	ebx,0x400
642
	xor	edx,edx
478
	xor	edx,edx
643
	div	ebx
479
	div	ebx
644
	cmp	eax,0
480
	cmp	eax,0
645
	je	@f
481
	je	@f
646
 
482
 
647
	mov	ebx,size_table
483
	mov	ebx,size_table
648
	call	decimal_string_4
484
	call	decimal_string_4
649
	mov	[ebx],byte 'K'
485
	mov	[ebx],byte 'K'
650
	jmp	.size_convert_end
486
	jmp	.size_convert_end
651
;--------------------------------------
487
;--------------------------------------
652
@@:
488
@@:
653
	mov	edx,[esp]
489
	mov	edx,[esp]
654
	mov	eax,[edx-40+32]
490
	mov	eax,[edx-40+32]
655
;.size_convert:
491
;.size_convert:
656
	mov	ebx,size_table
492
	mov	ebx,size_table
657
	call	decimal_string_4
493
	call	decimal_string_4
658
;--------------------------------------
494
;--------------------------------------
659
.size_convert_end:
495
.size_convert_end:
660
	cmp	[size_table],byte '0'
496
	cmp	[size_table],byte '0'
661
	jne	@f
497
	jne	@f
662
 
498
 
663
	mov	[size_table],byte ' '
499
	mov	[size_table],byte ' '
664
;--------------------------------------
500
;--------------------------------------
665
@@:
501
@@:
666
	cmp	[size_table+4],byte ' '
502
	cmp	[size_table+4],byte ' '
667
	jne	@f
503
	jne	@f
668
 
504
 
669
	mov	esi,size_table+3
505
	mov	esi,size_table+3
670
	mov	edi,esi
506
	mov	edi,esi
671
	inc	edi
507
	inc	edi
672
	mov	ecx,5
508
	mov	ecx,5
673
	std
509
	std
674
	rep	movsb
510
	rep	movsb
675
	jmp	@r
511
	jmp	@r
676
;--------------------------------------
512
;--------------------------------------
677
@@:
513
@@:
678
	pop	edx
514
	pop	edx
679
	pop	ebx
515
	pop	ebx
680
;--------------------------------------
516
;--------------------------------------
681
.date:
517
.date:
682
	xor	eax,eax
518
	xor	eax,eax
683
	mov	al,[edx-40+28]
519
	mov	al,[edx-40+28]
684
	push	ebx
520
	push	ebx
685
	mov	ebx,date_table
521
	mov	ebx,date_table
686
	call	decimal_string_2
522
	call	decimal_string_2
687
	mov	al,[edx-40+29]
523
	mov	al,[edx-40+29]
688
	mov	ebx,date_table+3
524
	mov	ebx,date_table+3
689
	call	decimal_string_2
525
	call	decimal_string_2
690
	mov	ax,[edx-40+30]
526
	mov	ax,[edx-40+30]
691
	mov	ebx,year_table
527
	mov	ebx,year_table
692
	call	decimal_string_4
528
	call	decimal_string_4
693
	mov	ax,[year_table+2]
529
	mov	ax,[year_table+2]
694
	mov	[date_table+6],ax
530
	mov	[date_table+6],ax
695
	pop	ebx
531
	pop	ebx
696
	ror	ebx,16
532
	ror	ebx,16
697
	add	bx,[left_panel_x.size_x]
533
	add	bx,[left_panel_x.size_x]
698
	sub	ebx,122+12+15
534
	sub	ebx,122+12+15
699
	rol	ebx,16
535
	rol	ebx,16
700
	mov	ecx,0
536
	mov	ecx,0
701
	cmp	[marked_file],byte 0
537
	cmp	[marked_file],byte 0
702
	je	@f
538
	je	@f
703
 
539
 
704
	mov	ecx,0xff0000
540
	mov	ecx,0xff0000
705
;--------------------------------------
541
;--------------------------------------
706
@@:
542
@@:
707
	mcall	4,,,type_table,20
543
	mcall	4,,,type_table,20
708
	popa
544
	popa
709
	ret
545
	ret
710
;------------------------------------------------------------------------------
546
;------------------------------------------------------------------------------
711
draw_folder_data:
547
draw_folder_data:
712
	cmp	[drawing_panel_folder],1
548
	cmp	[drawing_panel_folder],1
713
	jne	.right_panel
549
	jne	.right_panel
714
 
550
 
715
	mov	eax,[left_folder_block]
551
	mov	eax,[left_folder_block]
716
	sub	eax,[max_panel_line]
552
	sub	eax,[max_panel_line]
717
	test	eax,0x8000000
553
	test	eax,0x8000000
718
	jz	.ok_left
554
	jz	.ok_left
719
 
555
 
720
	mov	[left_start_draw_line],0
556
	mov	[left_start_draw_line],0
721
	jmp	@f
557
	jmp	@f
722
;--------------------------------------
558
;--------------------------------------
723
.ok_left:
559
.ok_left:
724
	cmp	eax,[left_start_draw_line]
560
	cmp	eax,[left_start_draw_line]
725
	jae	@f
561
	jae	@f
726
 
562
 
727
	mov	[left_start_draw_line],eax
563
	mov	[left_start_draw_line],eax
728
;--------------------------------------
564
;--------------------------------------
729
@@:
565
@@:
730
	mov	bx,[left_panel_x.start_x]
566
	mov	bx,[left_panel_x.start_x]
731
	add	bx,12
567
	add	bx,12
732
	shl	ebx,16
568
	shl	ebx,16
733
	mov	bx,[left_panel_y.start_y]
569
	mov	bx,[left_panel_y.start_y]
734
	inc	bx
570
	inc	bx
735
	mov	edx,[left_start_draw_line]
571
	mov	edx,[left_start_draw_line]
736
	imul	edx,304
572
	imul	edx,304
737
	add	edx,[left_folder_data]
573
	add	edx,[left_folder_data]
738
	add	edx,32+40
574
	add	edx,32+40
739
	mov	[temp_counter],0
575
	mov	[temp_counter],0
740
	jmp	.type_folder
576
	jmp	.type_folder
741
;--------------------------------------
577
;--------------------------------------
742
.right_panel:
578
.right_panel:
743
	mov	eax,[right_folder_block]
579
	mov	eax,[right_folder_block]
744
	sub	eax,[max_panel_line]
580
	sub	eax,[max_panel_line]
745
	test	eax,0x8000000
581
	test	eax,0x8000000
746
	jz	.ok_right
582
	jz	.ok_right
747
 
583
 
748
	mov	[right_start_draw_line],0
584
	mov	[right_start_draw_line],0
749
	jmp	@f
585
	jmp	@f
750
;--------------------------------------
586
;--------------------------------------
751
.ok_right:
587
.ok_right:
752
	cmp	eax,[right_start_draw_line]
588
	cmp	eax,[right_start_draw_line]
753
	jae	@f
589
	jae	@f
754
 
590
 
755
	mov	[right_start_draw_line],eax
591
	mov	[right_start_draw_line],eax
756
;--------------------------------------
592
;--------------------------------------
757
@@:
593
@@:
758
	mov	bx,[right_panel_x.start_x]
594
	mov	bx,[right_panel_x.start_x]
759
	add	bx,12
595
	add	bx,12
760
	shl	ebx,16
596
	shl	ebx,16
761
	mov	bx,[right_panel_y.start_y]
597
	mov	bx,[right_panel_y.start_y]
762
	inc	bx
598
	inc	bx
763
	mov	edx,[right_start_draw_line]
599
	mov	edx,[right_start_draw_line]
764
	imul	edx,304
600
	imul	edx,304
765
	add	edx,[right_folder_data]
601
	add	edx,[right_folder_data]
766
	add	edx,32+40
602
	add	edx,32+40
767
	mov	[temp_counter],1
603
	mov	[temp_counter],1
768
;--------------------------------------
604
;--------------------------------------
769
.type_folder:
605
.type_folder:
770
	xor	eax,eax
606
	xor	eax,eax
771
;--------------------------------------
607
;--------------------------------------
772
.start:
608
.start:
773
	pusha
609
	pusha
774
	mov	eax,edx
610
	mov	eax,edx
775
	cmp	[temp_counter],1
611
	cmp	[temp_counter],1
776
	je	@f
612
	je	@f
777
 
613
 
778
	sub	eax,[left_folder_data]
614
	sub	eax,[left_folder_data]
779
	sub	eax,32+40
615
	sub	eax,32+40
780
	xor	edx,edx
616
	xor	edx,edx
781
	mov	ebx,304
617
	mov	ebx,304
782
	div	ebx
618
	div	ebx
783
	cmp	eax,[left_folder_block]
619
	cmp	eax,[left_folder_block]
784
	je	.end_1
620
	je	.end_1
785
 
621
 
786
	jmp	.continue_1
622
	jmp	.continue_1
787
;--------------------------------------
623
;--------------------------------------
788
@@:
624
@@:
789
	sub	eax,[right_folder_data]
625
	sub	eax,[right_folder_data]
790
	sub	eax,32+40
626
	sub	eax,32+40
791
	xor	edx,edx
627
	xor	edx,edx
792
	mov	ebx,304
628
	mov	ebx,304
793
	div	ebx
629
	div	ebx
794
	cmp	eax,[right_folder_block]
630
	cmp	eax,[right_folder_block]
795
	je	.end_1
631
	je	.end_1
796
;--------------------------------------
632
;--------------------------------------
797
.continue_1:
633
.continue_1:
798
	popa
634
	popa
799
	cmp	eax,[max_panel_line]	;  20
635
	cmp	eax,[max_panel_line]	;  20
800
	je	.end_2
636
	je	.end_2
801
 
637
 
802
	mov	[marked_file],0
638
	mov	[marked_file],0
803
	cmp	[edx+299-40],byte 0
639
	cmp	[edx+299-40],byte 0
804
	je	@f
640
	je	@f
805
 
641
 
806
	mov	[marked_file],1
642
	mov	[marked_file],1
807
;--------------------------------------
643
;--------------------------------------
808
@@:
644
@@:
809
	call	clear_line
645
	call	clear_line
810
	call	draw_type_size_date
646
	call	draw_type_size_date
811
	call	draw_icon
647
	call	draw_icon
812
	push	eax
648
	push	eax
813
	xor	eax,eax
649
	xor	eax,eax
814
	mov	ax,[left_panel_x.size_x]
650
	mov	ax,[left_panel_x.size_x]
815
	push	ebx edx
651
	push	ebx edx
816
	mov	ebx,6
652
	mov	ebx,6
817
	xor	edx,edx
653
	xor	edx,edx
818
	div	ebx
654
	div	ebx
819
	pop	edx ebx
655
	pop	edx ebx
820
	sub	eax,23+2+2
656
	sub	eax,23+2+2
821
	mov	esi,[file_name_length]
657
	mov	esi,[file_name_length]
822
	mov	[temp_counter_1],0
658
	mov	[temp_counter_1],0
823
	cmp	esi,eax
659
	cmp	esi,eax
824
	jbe	@f
660
	jbe	@f
825
 
661
 
826
	mov	esi,eax
662
	mov	esi,eax
827
	mov	[temp_counter_1],1
663
	mov	[temp_counter_1],1
828
;--------------------------------------
664
;--------------------------------------
829
@@:
665
@@:
830
	mov	ecx,0
666
	mov	ecx,0
831
	cmp	[marked_file],byte 0
667
	cmp	[marked_file],byte 0
832
	je	@f
668
	je	@f
833
 
669
 
834
	mov	ecx,0xff0000
670
	mov	ecx,0xff0000
835
;--------------------------------------
671
;--------------------------------------
836
@@:
672
@@:
837
	mcall	4
673
	mcall	4
838
	cmp	[temp_counter_1],0
674
	cmp	[temp_counter_1],0
839
	je	.continue
675
	je	.continue
840
 
676
 
841
	mov	eax,esi ;[file_name_length]
677
	mov	eax,esi ;[file_name_length]
842
	imul	eax,6
678
	imul	eax,6
843
	shl	eax,16
679
	shl	eax,16
844
	push	ebx edx
680
	push	ebx edx
845
	add	ebx,eax
681
	add	ebx,eax
846
	mcall	4,,0xff0000,truncated_filename_char,2
682
	mcall	4,,0xff0000,truncated_filename_char,2
847
	add	ebx,1 shl 16
683
	add	ebx,1 shl 16
848
	mcall
684
	mcall
849
	pop	edx ebx
685
	pop	edx ebx
850
;--------------------------------------
686
;--------------------------------------
851
.continue:
687
.continue:
852
	add	ebx,10
688
	add	ebx,10
853
	add	edx,304 ;10
689
	add	edx,304 ;10
854
	pop	eax
690
	pop	eax
855
	inc	eax
691
	inc	eax
856
	jmp	.start
692
	jmp	.start
857
;--------------------------------------
693
;--------------------------------------
858
.end_1:
694
.end_1:
859
	popa
695
	popa
860
;--------------------------------------
696
;--------------------------------------
861
.end_2:    
697
.end_2:    
862
	mov	ax,[left_panel_y.start_y]
698
	mov	ax,[left_panel_y.start_y]
863
	add	ax,[left_panel_y.size_y]
699
	add	ax,[left_panel_y.size_y]
864
	mov	cx,bx
700
	mov	cx,bx
865
	dec	cx
701
	dec	cx
866
	rol	ecx,16
702
	rol	ecx,16
867
	mov	cx,ax
703
	mov	cx,ax
868
	mov	eax,ecx
704
	mov	eax,ecx
869
	shr	eax,16
705
	shr	eax,16
870
	sub	cx,ax
706
	sub	cx,ax
871
	cmp	cx,0
707
	cmp	cx,0
872
	jbe	@f
708
	jbe	@f
873
 
709
 
874
	mov	bx,[left_panel_x.size_x]
710
	mov	bx,[left_panel_x.size_x]
875
	sub	ebx,12 shl 16
711
	sub	ebx,12 shl 16
876
	mcall	13,,,0xffffff
712
	mcall	13,,,0xffffff
877
;--------------------------------------
713
;--------------------------------------
878
@@:
714
@@:
879
.end:
715
.end:
880
	cmp	[drawing_panel_folder],1
716
	cmp	[drawing_panel_folder],1
881
	jne	@f
717
	jne	@f
882
 
718
 
883
	call	draw_scroll_bar_left
719
	call	draw_scroll_bar_left
884
	ret
720
	ret
885
;--------------------------------------
721
;--------------------------------------
886
@@:
722
@@:
887
	call	draw_scroll_bar_right
723
	call	draw_scroll_bar_right
888
	ret
724
	ret
889
;------------------------------------------------------------------------------
725
;------------------------------------------------------------------------------
890
clear_line:
726
clear_line:
891
	cmp	[not_clear_lines],0
727
	cmp	[not_clear_lines],0
892
	jne	.end_1
728
	jne	.end_1
893
 
729
 
894
	pusha
730
	pusha
895
	shl	ebx,16
731
	shl	ebx,16
896
	shr	ebx,16
732
	shr	ebx,16
897
	dec	ebx
733
	dec	ebx
898
	cmp	[drawing_panel_folder],1
734
	cmp	[drawing_panel_folder],1
899
	jne	.right
735
	jne	.right
900
 
736
 
901
	cmp	[select_panel_counter],0
737
	cmp	[select_panel_counter],0
902
	jne	.continue
738
	jne	.continue
903
 
739
 
904
	mov	ax,[left_start_draw_cursor_line]
740
	mov	ax,[left_start_draw_cursor_line]
905
	add	ax,[left_panel_y.start_y]
741
	add	ax,[left_panel_y.start_y]
906
	cmp	bx,ax
742
	cmp	bx,ax
907
	je	.end
743
	je	.end
908
 
744
 
909
	jmp	.continue
745
	jmp	.continue
910
;--------------------------------------
746
;--------------------------------------
911
.right:
747
.right:
912
	cmp	[select_panel_counter],0
748
	cmp	[select_panel_counter],0
913
	je	.continue
749
	je	.continue
914
 
750
 
915
	mov	ax,[right_start_draw_cursor_line]
751
	mov	ax,[right_start_draw_cursor_line]
916
	add	ax,[right_panel_y.start_y]
752
	add	ax,[right_panel_y.start_y]
917
	cmp	bx,ax
753
	cmp	bx,ax
918
	je	.end
754
	je	.end
919
;--------------------------------------
755
;--------------------------------------
920
.continue:
756
.continue:
921
	mov	ebx,[esp+16]
757
	mov	ebx,[esp+16]
922
	mov	cx,bx
758
	mov	cx,bx
923
	dec	cx
759
	dec	cx
924
	rol	ecx,16
760
	rol	ecx,16
925
	mov	cx,10
761
	mov	cx,10
926
	mov	bx,[left_panel_x.size_x]
762
	mov	bx,[left_panel_x.size_x]
927
	cmp	[drawing_panel_folder],1
763
	cmp	[drawing_panel_folder],1
928
	je	@f
764
	je	@f
929
 
765
 
930
	dec	ebx
766
	dec	ebx
931
;--------------------------------------
767
;--------------------------------------
932
@@:
768
@@:
933
	sub	ebx,12 shl 16+15
769
	sub	ebx,12 shl 16+15
934
	mcall	13,,,0xffffff
770
	mcall	13,,,0xffffff
935
;--------------------------------------
771
;--------------------------------------
936
.end:
772
.end:
937
	popa
773
	popa
938
;--------------------------------------
774
;--------------------------------------
939
.end_1:
775
.end_1:
940
	ret
776
	ret
941
;------------------------------------------------------------------------------
777
;------------------------------------------------------------------------------
942
draw_left_panel:
778
draw_left_panel:
943
	call	clear_left_panel
779
	call	clear_left_panel
944
	call	calc_max_panel_line
780
	call	calc_max_panel_line
945
	call	draw_left_panel_selection
781
	call	draw_left_panel_selection
946
	mov	[drawing_panel_folder],1
782
	mov	[drawing_panel_folder],1
947
	call	draw_folder_data
783
	call	draw_folder_data
948
	call	draw_left_panel_patch
784
	call	draw_left_panel_patch
949
	ret
785
	ret
950
;------------------------------------------------------------------------------
786
;------------------------------------------------------------------------------
951
draw_right_panel:
787
draw_right_panel:
952
	call	clear_right_panel
788
	call	clear_right_panel
953
	call	calc_max_panel_line
789
	call	calc_max_panel_line
954
	call	draw_right_panel_selection
790
	call	draw_right_panel_selection
955
	mov	[drawing_panel_folder],2
791
	mov	[drawing_panel_folder],2
956
	call	draw_folder_data
792
	call	draw_folder_data
957
	call	draw_right_panel_patch
793
	call	draw_right_panel_patch
958
	ret
794
	ret
959
;------------------------------------------------------------------------------
795
;------------------------------------------------------------------------------
960
draw_left_panel_patch:
796
draw_left_panel_patch:
961
	cmp	[select_panel_counter],0
797
	cmp	[select_panel_counter],0
962
	jne	.end
798
	jne	.end
963
 
799
 
964
	mov	edx,read_folder_name	   ;read_folder.name
800
	mov	edx,read_folder_name	   ;read_folder.name
965
;--------------------------------------
801
;--------------------------------------
966
.1:
802
.1:
967
	call	clear_patch_area
803
	call	clear_patch_area
968
	mov	ebx,[window_high]
804
	mov	ebx,[window_high]
969
	sub	ebx,33
805
	sub	ebx,33
970
	add	ebx,8 shl 16
806
	add	ebx,8 shl 16
971
	mcall	4,,0x80000000  ; ,read_folder.name
807
	mcall	4,,0x80000000  ; ,read_folder.name
972
;--------------------------------------
808
;--------------------------------------
973
.end:
809
.end:
974
	ret
810
	ret
975
;------------------------------------------------------------------------------
811
;------------------------------------------------------------------------------
976
draw_right_panel_patch:
812
draw_right_panel_patch:
977
	cmp	[select_panel_counter],1
813
	cmp	[select_panel_counter],1
978
	jne	draw_left_panel_patch.end
814
	jne	draw_left_panel_patch.end
979
 
815
 
980
	mov	edx,read_folder_1_name    ;read_folder_1.name
816
	mov	edx,read_folder_1_name    ;read_folder_1.name
981
	jmp	draw_left_panel_patch.1
817
	jmp	draw_left_panel_patch.1
982
;------------------------------------------------------------------------------
818
;------------------------------------------------------------------------------
983
clear_patch_area:
819
clear_patch_area:
984
	push	edx
820
	push	edx
985
	mov	ebx,[window_width]
821
	mov	ebx,[window_width]
986
	sub	ebx,9
822
	sub	ebx,9
987
	add	ebx,5 shl 16
823
	add	ebx,5 shl 16
988
	mov	ecx,[window_high]
824
	mov	ecx,[window_high]
989
	sub	ecx,35
825
	sub	ecx,35
990
	shl	ecx,16
826
	shl	ecx,16
991
	mov	cx,12
827
	mov	cx,12
992
	mcall	13,,,0xffffcc
828
	mcall	13,,,0xffffcc
993
	pop	edx
829
	pop	edx
994
	ret
830
	ret
995
;------------------------------------------------------------------------------
831
;------------------------------------------------------------------------------
996
draw_left_panel_selection:
832
draw_left_panel_selection:
997
	cmp	[select_panel_counter],0
833
	cmp	[select_panel_counter],0
998
	jne	.end
834
	jne	.end
999
 
835
 
1000
	mov	eax,[left_folder_block]
836
	mov	eax,[left_folder_block]
1001
	sub	eax,[left_start_draw_line]
837
	sub	eax,[left_start_draw_line]
1002
	mov	edx,left_start_draw_cursor_line
838
	mov	edx,left_start_draw_cursor_line
1003
	mov	cx,[edx]
839
	mov	cx,[edx]
1004
	call	for_all_panel_selection
840
	call	for_all_panel_selection
1005
	mov	eax,[left_folder_block]
841
	mov	eax,[left_folder_block]
1006
	dec	eax
842
	dec	eax
1007
	imul	eax,10
843
	imul	eax,10
1008
	cmp	ax,cx
844
	cmp	ax,cx
1009
	jae	 @f
845
	jae	 @f
1010
 
846
 
1011
	mov	cx,ax
847
	mov	cx,ax
1012
;--------------------------------------
848
;--------------------------------------
1013
@@:
849
@@:
1014
	mov	[edx],cx
850
	mov	[edx],cx
1015
	mov	ebx,[left_panel_x]
851
	mov	ebx,[left_panel_x]
1016
	add	cx,[left_panel_y.start_y]
852
	add	cx,[left_panel_y.start_y]
1017
;--------------------------------------
853
;--------------------------------------
1018
.1:
854
.1:
1019
	shl	ecx,16
855
	shl	ecx,16
1020
	mov	cx,10
856
	mov	cx,10
1021
	sub	ebx,15
857
	sub	ebx,15
1022
	mcall	13,,,0xbbddff
858
	mcall	13,,,0xbbddff
1023
;--------------------------------------
859
;--------------------------------------
1024
.end:
860
.end:
1025
	ret
861
	ret
1026
;------------------------------------------------------------------------------
862
;------------------------------------------------------------------------------
1027
draw_right_panel_selection:
863
draw_right_panel_selection:
1028
	cmp	[select_panel_counter],1
864
	cmp	[select_panel_counter],1
1029
	jne	draw_left_panel_selection.end
865
	jne	draw_left_panel_selection.end
1030
 
866
 
1031
	mov	eax,[right_folder_block]
867
	mov	eax,[right_folder_block]
1032
	sub	eax,[right_start_draw_line]
868
	sub	eax,[right_start_draw_line]
1033
	mov	edx,right_start_draw_cursor_line
869
	mov	edx,right_start_draw_cursor_line
1034
	mov	cx,[edx]
870
	mov	cx,[edx]
1035
	call	for_all_panel_selection
871
	call	for_all_panel_selection
1036
	mov	eax,[right_folder_block]
872
	mov	eax,[right_folder_block]
1037
	dec	eax
873
	dec	eax
1038
	imul	eax,10
874
	imul	eax,10
1039
	cmp	ax,cx
875
	cmp	ax,cx
1040
	jae	 @f
876
	jae	 @f
1041
 
877
 
1042
	mov	cx,ax
878
	mov	cx,ax
1043
;--------------------------------------
879
;--------------------------------------
1044
@@:
880
@@:
1045
	mov	[edx],cx
881
	mov	[edx],cx
1046
	mov	ebx,[right_panel_x]
882
	mov	ebx,[right_panel_x]
1047
	add	cx,[right_panel_y.start_y]
883
	add	cx,[right_panel_y.start_y]
1048
	jmp	draw_left_panel_selection.1
884
	jmp	draw_left_panel_selection.1
1049
;------------------------------------------------------------------------------
885
;------------------------------------------------------------------------------
1050
for_all_panel_selection:
886
for_all_panel_selection:
1051
	imul	eax,10
887
	imul	eax,10
1052
	cmp	ax,cx
888
	cmp	ax,cx
1053
	jae	@f
889
	jae	@f
1054
 
890
 
1055
	mov	cx,ax
891
	mov	cx,ax
1056
;--------------------------------------
892
;--------------------------------------
1057
@@:
893
@@:
1058
	mov	eax,[max_panel_line]
894
	mov	eax,[max_panel_line]
1059
	dec	eax
895
	dec	eax
1060
	imul	eax,10
896
	imul	eax,10
1061
	cmp	ax,cx
897
	cmp	ax,cx
1062
	jae	@f
898
	jae	@f
1063
 
899
 
1064
	mov	cx,ax
900
	mov	cx,ax
1065
;--------------------------------------
901
;--------------------------------------
1066
@@:
902
@@:
1067
	ret
903
	ret
1068
;------------------------------------------------------------------------------
904
;------------------------------------------------------------------------------
1069
clear_left_panel:
905
clear_left_panel:
1070
	mov	ebx,7 shl 16
906
	mov	ebx,7 shl 16
1071
	add	ebx,[window_width]
907
	add	ebx,[window_width]
1072
	shr	bx,1
908
	shr	bx,1
1073
	sub	ebx,6+1
909
	sub	ebx,6+1
1074
	mov	[left_panel_x],ebx
910
	mov	[left_panel_x],ebx
1075
	call	calculate_panel_1
911
	call	calculate_panel_1
1076
	mov	[left_panel_y],ecx
912
	mov	[left_panel_y],ecx
1077
	xor	eax,eax
913
	xor	eax,eax
1078
	mov	ax,cx
914
	mov	ax,cx
1079
	xor	edx,edx
915
	xor	edx,edx
1080
	mov	ebx,10
916
	mov	ebx,10
1081
	div	ebx
917
	div	ebx
1082
; óìíîæåíèå íà 10
918
; óìíîæåíèå íà 10
1083
	shl	eax,1      ; óìíîæåíèå íà 2
919
	shl	eax,1      ; óìíîæåíèå íà 2
1084
	lea	eax,[eax+eax*4] ; óìíîæåíèå íà 5
920
	lea	eax,[eax+eax*4] ; óìíîæåíèå íà 5
1085
	mov	[left_panel_y_correct_size_y],ax
921
	mov	[left_panel_y_correct_size_y],ax
1086
	ret
922
	ret
1087
;------------------------------------------------------------------------------
923
;------------------------------------------------------------------------------
1088
calculate_panel_1:
924
calculate_panel_1:
1089
	mov	ecx,[skin_high]
925
	mov	ecx,[skin_high]
1090
	add	ecx,70
926
	add	ecx,70
1091
	shl	ecx,16
927
	shl	ecx,16
1092
	add	ecx,[window_high]
928
	add	ecx,[window_high]
1093
	sub	ecx,129
929
	sub	ecx,129
1094
	ret
930
	ret
1095
;------------------------------------------------------------------------------
931
;------------------------------------------------------------------------------
1096
clear_right_panel:
932
clear_right_panel:
1097
	mov	ebx,[window_width]
933
	mov	ebx,[window_width]
1098
	shr	ebx,1
934
	shr	ebx,1
1099
	add	ebx,3
935
	add	ebx,3
1100
	shl	ebx,16
936
	shl	ebx,16
1101
	add	ebx,[window_width]
937
	add	ebx,[window_width]
1102
	shr	bx,1
938
	shr	bx,1
1103
	sub	bx,2+6
939
	sub	bx,2+6
1104
	mov	[right_panel_x],ebx
940
	mov	[right_panel_x],ebx
1105
	call	calculate_panel_1
941
	call	calculate_panel_1
1106
	mov	[right_panel_y],ecx
942
	mov	[right_panel_y],ecx
1107
	xor	eax,eax
943
	xor	eax,eax
1108
	mov	ax,cx
944
	mov	ax,cx
1109
	xor	edx,edx
945
	xor	edx,edx
1110
	mov	ebx,10
946
	mov	ebx,10
1111
	div	ebx
947
	div	ebx
1112
; óìíîæåíèå íà 10
948
; óìíîæåíèå íà 10
1113
	shl	eax,1      ; óìíîæåíèå íà 2
949
	shl	eax,1      ; óìíîæåíèå íà 2
1114
	lea	eax,[eax+eax*4] ; óìíîæåíèå íà 5
950
	lea	eax,[eax+eax*4] ; óìíîæåíèå íà 5
1115
	mov	[right_panel_y_correct_size_y],ax
951
	mov	[right_panel_y_correct_size_y],ax
1116
	ret
952
	ret
1117
;------------------------------------------------------------------------------
953
;------------------------------------------------------------------------------
1118
erase_fbutton:
954
erase_fbutton:
1119
	mov	edx,0x80000065
955
	mov	edx,0x80000065
1120
	mov	eax,8
956
	mov	eax,8
1121
	mov	ebp,12
957
	mov	ebp,12
1122
;--------------------------------------
958
;--------------------------------------
1123
.start:
959
.start:
1124
	mcall
960
	mcall
1125
	dec	ebp
961
	dec	ebp
1126
	jnz	.start
962
	jnz	.start
1127
 
963
 
1128
	ret
964
	ret
1129
;------------------------------------------------------------------------------
965
;------------------------------------------------------------------------------
1130
draw_fbutton:
966
draw_fbutton:
1131
	test	[window_status],100b	; window is rolled up
967
	test	[window_status],100b	; window is rolled up
1132
	jnz	.exit
968
	jnz	.exit
1133
 
969
 
1134
	test	[window_status],10b	; window is minimized to panel
970
	test	[window_status],10b	; window is minimized to panel
1135
	jnz	.exit
971
	jnz	.exit
1136
 
972
 
1137
	mov	ecx,[window_high]
973
	mov	ecx,[window_high]
1138
	sub	ecx,20
974
	sub	ecx,20
1139
	shl	ecx,16
975
	shl	ecx,16
1140
	add	ecx,15
976
	add	ecx,15
1141
	mov	eax,[window_width]
977
	mov	eax,[window_width]
1142
	mov	ebx,12
978
	mov	ebx,12
1143
	xor	edx,edx
979
	xor	edx,edx
1144
	div	ebx
980
	div	ebx
1145
	mov	[fbutton_width],eax
981
	mov	[fbutton_width],eax
1146
	mov	ebx,5 shl 16
982
	mov	ebx,5 shl 16
1147
	add	ebx,eax
983
	add	ebx,eax
1148
	sub	ebx,2
984
	sub	ebx,2
1149
	mov	esi,0xaa00
985
	mov	esi,0xaa00
1150
	mov	edx,101
986
	mov	edx,101
1151
	mov	eax,8
987
	mov	eax,8
1152
	mov	ebp,12
988
	mov	ebp,12
1153
;--------------------------------------
989
;--------------------------------------
1154
.start:
990
.start:
1155
	cmp	ebp,1
991
	cmp	ebp,1
1156
	jne	@f
992
	jne	@f
1157
 
993
 
1158
	mov	eax,ebx
994
	mov	eax,ebx
1159
	shr	eax,16
995
	shr	eax,16
1160
	mov	bx,ax
996
	mov	bx,ax
1161
	mov	eax,[window_width]
997
	mov	eax,[window_width]
1162
	sub	ax,bx
998
	sub	ax,bx
1163
	sub	ax,5
999
	sub	ax,5
1164
	mov	bx,ax
1000
	mov	bx,ax
1165
	mov	eax,8
1001
	mov	eax,8
1166
;--------------------------------------
1002
;--------------------------------------
1167
@@:
1003
@@:
1168
	mcall
1004
	mcall
1169
	push	eax ebx edx
1005
	push	eax ebx edx
1170
	mov	edx,0x6060ff
1006
	mov	edx,0x6060ff
1171
	mov	bx,10
1007
	mov	bx,10
1172
	cmp	ebp,4
1008
	cmp	ebp,4
1173
	jae	@f
1009
	jae	@f
1174
 
1010
 
1175
	mov	bx,18
1011
	mov	bx,18
1176
;--------------------------------------
1012
;--------------------------------------
1177
@@:
1013
@@:
1178
	mcall	13
1014
	mcall	13
1179
	cmp	ebp,1
1015
	cmp	ebp,1
1180
	je	@f
1016
	je	@f
1181
 
1017
 
1182
	ror	ebx,16
1018
	ror	ebx,16
1183
	add	ebx,[fbutton_width]
1019
	add	ebx,[fbutton_width]
1184
	dec	ebx
1020
	dec	ebx
1185
	rol	ebx,16
1021
	rol	ebx,16
1186
	mov	bx,1
1022
	mov	bx,1
1187
	inc	ecx
1023
	inc	ecx
1188
	mcall	,,,0xcccccc
1024
	mcall	,,,0xcccccc
1189
	dec	ecx
1025
	dec	ecx
1190
;--------------------------------------
1026
;--------------------------------------
1191
@@:
1027
@@:
1192
	pop	edx ebx eax
1028
	pop	edx ebx eax
1193
	call	.rol_ror
1029
	call	.rol_ror
1194
	inc	edx
1030
	inc	edx
1195
	dec	ebp
1031
	dec	ebp
1196
	jnz	.start
1032
	jnz	.start
1197
 
1033
 
1198
	call	draw_fbutton_name
1034
	call	draw_fbutton_name
1199
	ret
1035
	ret
1200
;--------------------------------------
1036
;--------------------------------------
1201
.rol_ror:
1037
.rol_ror:
1202
	rol	ebx,16
1038
	rol	ebx,16
1203
	add	ebx,[fbutton_width]
1039
	add	ebx,[fbutton_width]
1204
	ror	ebx,16
1040
	ror	ebx,16
1205
;--------------------------------------
1041
;--------------------------------------
1206
.exit:
1042
.exit:
1207
	ret
1043
	ret
1208
;------------------------------------------------------------------------------
1044
;------------------------------------------------------------------------------
1209
draw_fbutton_name:
1045
draw_fbutton_name:
1210
	mov	ebx, 7 shl 16
1046
	mov	ebx, 7 shl 16
1211
	add	ebx,[window_high]
1047
	add	ebx,[window_high]
1212
	sub	ebx,15
1048
	sub	ebx,15
1213
	mov	eax,4
1049
	mov	eax,4
1214
	mov	ecx,0x90000000
1050
	mov	ecx,0x90000000
1215
	push	ebx
1051
	push	ebx
1216
	call	.type_1
1052
	call	.type_1
1217
	pop	ebx
1053
	pop	ebx
1218
	mov	ecx,0x90ffffff
1054
	mov	ecx,0x90ffffff
1219
	sub	ebx,1 shl 16 + 1
1055
	sub	ebx,1 shl 16 + 1
1220
;--------------------------------------
1056
;--------------------------------------
1221
.type_1:
1057
.type_1:
1222
	cmp	[shift_flag],1
1058
	cmp	[shift_flag],1
1223
	je	.type_shift
1059
	je	.type_shift
1224
 
1060
 
1225
	cmp	[ctrl_flag],1
1061
	cmp	[ctrl_flag],1
1226
	je	.type_ctrl
1062
	je	.type_ctrl
1227
 
1063
 
1228
	cmp	[alt_flag],1
1064
	cmp	[alt_flag],1
1229
	je	.type_alt
1065
	je	.type_alt
1230
;--------------------------------------
1066
;--------------------------------------
1231
.type:
1067
.type:
1232
	mov	edx,fbutton_name.f1
1068
	mov	edx,fbutton_name.f1
1233
	call	.type_all
1069
	call	.type_all
1234
	mov	edx,fbutton_name.f2
1070
	mov	edx,fbutton_name.f2
1235
	call	.type_all
1071
	call	.type_all
1236
	mov	edx,fbutton_name.f3
1072
	mov	edx,fbutton_name.f3
1237
	call	.type_all
1073
	call	.type_all
1238
	mov	edx,fbutton_name.f4
1074
	mov	edx,fbutton_name.f4
1239
	call	.type_all
1075
	call	.type_all
1240
	mov	edx,fbutton_name.f5
1076
	mov	edx,fbutton_name.f5
1241
	call	.type_all
1077
	call	.type_all
1242
	mov	edx,fbutton_name.f6
1078
	mov	edx,fbutton_name.f6
1243
	call	.type_all
1079
	call	.type_all
1244
	mov	edx,fbutton_name.f7
1080
	mov	edx,fbutton_name.f7
1245
	call	.type_all
1081
	call	.type_all
1246
	mov	edx,fbutton_name.f8
1082
	mov	edx,fbutton_name.f8
1247
	call	.type_all
1083
	call	.type_all
1248
	mov	edx,fbutton_name.f9
1084
	mov	edx,fbutton_name.f9
1249
	call	.type_all
1085
	call	.type_all
1250
	mov	edx,fbutton_name.f10
1086
	mov	edx,fbutton_name.f10
1251
	call	.type_all
1087
	call	.type_all
1252
	mov	edx,fbutton_name.f11
1088
	mov	edx,fbutton_name.f11
1253
	call	.type_all
1089
	call	.type_all
1254
	mov	edx,fbutton_name.f12
1090
	mov	edx,fbutton_name.f12
1255
	mcall
1091
	mcall
1256
	ret
1092
	ret
1257
;--------------------------------------
1093
;--------------------------------------
1258
.type_shift:
1094
.type_shift:
1259
	mov	edx,fbutton_name_shift.f1
1095
	mov	edx,fbutton_name_shift.f1
1260
	call	.type_all
1096
	call	.type_all
1261
	mov	edx,fbutton_name_shift.f2
1097
	mov	edx,fbutton_name_shift.f2
1262
	call	.type_all
1098
	call	.type_all
1263
	mov	edx,fbutton_name_shift.f3
1099
	mov	edx,fbutton_name_shift.f3
1264
	call	.type_all
1100
	call	.type_all
1265
	mov	edx,fbutton_name_shift.f4
1101
	mov	edx,fbutton_name_shift.f4
1266
	call	.type_all
1102
	call	.type_all
1267
	mov	edx,fbutton_name_shift.f5
1103
	mov	edx,fbutton_name_shift.f5
1268
	call	.type_all
1104
	call	.type_all
1269
	mov	edx,fbutton_name_shift.f6
1105
	mov	edx,fbutton_name_shift.f6
1270
	call	.type_all
1106
	call	.type_all
1271
	mov	edx,fbutton_name_shift.f7
1107
	mov	edx,fbutton_name_shift.f7
1272
	call	.type_all
1108
	call	.type_all
1273
	mov	edx,fbutton_name_shift.f8
1109
	mov	edx,fbutton_name_shift.f8
1274
	call	.type_all
1110
	call	.type_all
1275
	mov	edx,fbutton_name_shift.f9
1111
	mov	edx,fbutton_name_shift.f9
1276
	call	.type_all
1112
	call	.type_all
1277
	mov	edx,fbutton_name_shift.f10
1113
	mov	edx,fbutton_name_shift.f10
1278
	call	.type_all
1114
	call	.type_all
1279
	mov	edx,fbutton_name_shift.f11
1115
	mov	edx,fbutton_name_shift.f11
1280
	call	.type_all
1116
	call	.type_all
1281
	mov	edx,fbutton_name_shift.f12
1117
	mov	edx,fbutton_name_shift.f12
1282
	mcall
1118
	mcall
1283
	ret
1119
	ret
1284
;--------------------------------------
1120
;--------------------------------------
1285
.type_ctrl:
1121
.type_ctrl:
1286
	mov	edx,fbutton_name_ctrl.f1
1122
	mov	edx,fbutton_name_ctrl.f1
1287
	call	.type_all
1123
	call	.type_all
1288
	mov	edx,fbutton_name_ctrl.f2
1124
	mov	edx,fbutton_name_ctrl.f2
1289
	call	.type_all
1125
	call	.type_all
1290
	mov	edx,fbutton_name_ctrl.f3
1126
	mov	edx,fbutton_name_ctrl.f3
1291
	call	.type_all
1127
	call	.type_all
1292
	mov	edx,fbutton_name_ctrl.f4
1128
	mov	edx,fbutton_name_ctrl.f4
1293
	call	.type_all
1129
	call	.type_all
1294
	mov	edx,fbutton_name_ctrl.f5
1130
	mov	edx,fbutton_name_ctrl.f5
1295
	call	.type_all
1131
	call	.type_all
1296
	mov	edx,fbutton_name_ctrl.f6
1132
	mov	edx,fbutton_name_ctrl.f6
1297
	call	.type_all
1133
	call	.type_all
1298
	mov	edx,fbutton_name_ctrl.f7
1134
	mov	edx,fbutton_name_ctrl.f7
1299
	call	.type_all
1135
	call	.type_all
1300
	mov	edx,fbutton_name_ctrl.f8
1136
	mov	edx,fbutton_name_ctrl.f8
1301
	call	.type_all
1137
	call	.type_all
1302
	mov	edx,fbutton_name_ctrl.f9
1138
	mov	edx,fbutton_name_ctrl.f9
1303
	call	.type_all
1139
	call	.type_all
1304
	mov	edx,fbutton_name_ctrl.f10
1140
	mov	edx,fbutton_name_ctrl.f10
1305
	call	.type_all
1141
	call	.type_all
1306
	mov	edx,fbutton_name_ctrl.f11
1142
	mov	edx,fbutton_name_ctrl.f11
1307
	call	.type_all
1143
	call	.type_all
1308
	mov	edx,fbutton_name_ctrl.f12
1144
	mov	edx,fbutton_name_ctrl.f12
1309
	mcall
1145
	mcall
1310
	ret
1146
	ret
1311
;--------------------------------------
1147
;--------------------------------------
1312
.type_alt:
1148
.type_alt:
1313
	mov	edx,fbutton_name_alt.f1
1149
	mov	edx,fbutton_name_alt.f1
1314
	call	.type_all
1150
	call	.type_all
1315
	mov	edx,fbutton_name_alt.f2
1151
	mov	edx,fbutton_name_alt.f2
1316
	call	.type_all
1152
	call	.type_all
1317
	mov	edx,fbutton_name_alt.f3
1153
	mov	edx,fbutton_name_alt.f3
1318
	call	.type_all
1154
	call	.type_all
1319
	mov	edx,fbutton_name_alt.f4
1155
	mov	edx,fbutton_name_alt.f4
1320
	call	.type_all
1156
	call	.type_all
1321
	mov	edx,fbutton_name_alt.f5
1157
	mov	edx,fbutton_name_alt.f5
1322
	call	.type_all
1158
	call	.type_all
1323
	mov	edx,fbutton_name_alt.f6
1159
	mov	edx,fbutton_name_alt.f6
1324
	call	.type_all
1160
	call	.type_all
1325
	mov	edx,fbutton_name_alt.f7
1161
	mov	edx,fbutton_name_alt.f7
1326
	call	.type_all
1162
	call	.type_all
1327
	mov	edx,fbutton_name_alt.f8
1163
	mov	edx,fbutton_name_alt.f8
1328
	call	.type_all
1164
	call	.type_all
1329
	mov	edx,fbutton_name_alt.f9
1165
	mov	edx,fbutton_name_alt.f9
1330
	call	.type_all
1166
	call	.type_all
1331
	mov	edx,fbutton_name_alt.f10
1167
	mov	edx,fbutton_name_alt.f10
1332
	call	.type_all
1168
	call	.type_all
1333
	mov	edx,fbutton_name_alt.f11
1169
	mov	edx,fbutton_name_alt.f11
1334
	call	.type_all
1170
	call	.type_all
1335
	mov	edx,fbutton_name_alt.f12
1171
	mov	edx,fbutton_name_alt.f12
1336
;--------------------------------------
1172
;--------------------------------------
1337
.type_all:
1173
.type_all:
1338
	mcall
1174
	mcall
1339
	call	draw_fbutton.rol_ror
1175
	call	draw_fbutton.rol_ror
1340
	ret
1176
	ret
1341
;------------------------------------------------------------------------------
1177
;------------------------------------------------------------------------------
1342
>
1178
>