Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
205 heavyiron 1
;
341 heavyiron 2
;   RDsave для Kolibri (0.6.5.0 и старше)
1606 mario79 3
;
4
; version:	1.3
5
; last update:  08/09/2010
6
; written by:   Marat Zakiyanov aka Mario79, aka Mario
7
; changes:      select path with OpenDialog,
8
;               keys 1,2,3,4 for select options
9
;---------------------------------------------------------------------
205 heavyiron 10
;   Mario79 2005
341 heavyiron 11
;   Heavyiron 12.02.2007
1070 Lrz 12
;        11.05.2009 - для работы нужна системная библиотека box_lib.obj
341 heavyiron 13
;   Компилировать FASM'ом
14
;
15
;---------------------------------------------------------------------
205 heavyiron 16
include 'lang.inc'
485 heavyiron 17
include '..\..\..\macros.inc'
205 heavyiron 18
 
19
appname equ 'RDsave '
1606 mario79 20
version equ '1.3'
341 heavyiron 21
 
1606 mario79 22
use32 	     ; включить 32-битный режим ассемблера
23
org	 0x0	     ; адресация с нуля
205 heavyiron 24
 
1606 mario79 25
	db 'MENUET01'  ; 8-байтный идентификатор MenuetOS
26
	dd 0x01	     ; версия заголовка (всегда 1)
27
	dd START	     ; адрес первой команды
28
	dd IM_END	     ; размер программы
29
	dd I_END	     ; количество памяти
30
	dd stacktop     ; адрес вершины стэка
31
	dd 0x0	     ; адрес буфера для параметров (не используется)
32
	dd cur_dir_path
205 heavyiron 33
 
1070 Lrz 34
;include '..\..\..\develop\examples\editbox\trunk\editbox.inc'
1111 Lrz 35
include '../../../develop/libraries/box_lib/load_lib.mac'
1373 IgorA 36
include '../../../develop/libraries/box_lib/trunk/box_lib.mac'
1070 Lrz 37
	@use_library
38
 
39
;use_edit_box
1228 Lrz 40
;al equ eax      ; \ decrease kpack'ed size
41
;purge mov       ; /
205 heavyiron 42
 
341 heavyiron 43
;---------------------------------------------------------------------
44
;---  НАЧАЛО ПРОГРАММЫ  ----------------------------------------------
45
;---------------------------------------------------------------------
1070 Lrz 46
align 4
47
START:
1606 mario79 48
	mcall	68,11
49
 
50
load_libraries l_libs_start,end_l_libs
51
 
1373 IgorA 52
	cmp	eax,-1
53
	jz	close
205 heavyiron 54
 
1606 mario79 55
	mov	edi,filename_area
56
	mov	esi,start_temp_file_name
57
	xor	eax,eax
58
	cld
59
@@:
60
	lodsb
61
	stosb
62
	test	eax,eax
63
	jnz	@b
1228 Lrz 64
 
1606 mario79 65
 
66
	mov	edi,fname_buf
67
	mov	esi,path4
68
	xor	eax,eax
69
	cld
70
@@:
71
	lodsb
72
	stosb
73
	test	eax,eax
74
	jnz	@b
75
 
76
;OpenDialog	initialisation
77
	push    dword OpenDialog_data
78
	call    [OpenDialog_Init]
79
 
80
; prepare for PathShow
81
	push	dword PathShow_data_1
82
	call	[PathShow_prepare]
83
 
84
	mcall	40,100111b
1373 IgorA 85
red:			; перерисовать окно
1606 mario79 86
	mcall	48,3,sc,sizeof.system_colors
205 heavyiron 87
 
1606 mario79 88
	call	draw_window	; вызываем процедуру отрисовки окна
341 heavyiron 89
;---------------------------------------------------------------------
90
;---  ЦИКЛ ОБРАБОТКИ СОБЫТИЙ  ----------------------------------------
91
;---------------------------------------------------------------------
92
still:
1606 mario79 93
	mcall 10
205 heavyiron 94
 
1606 mario79 95
	dec	eax	 ; перерисовать окно?
96
	jz	red	 ; если да - на метку red
97
	dec	eax
98
	jz	key
99
	dec	eax
100
	jz	button
205 heavyiron 101
 
1373 IgorA 102
	jmp	still
1606 mario79 103
;---------------------------------------------------------------------
341 heavyiron 104
button:
1606 mario79 105
	mcall	17	; получить идентификатор нажатой кнопки
106
	cmp	ah,1		 ; кнопка с id=1("закрыть")?
107
	jne	noclose
1070 Lrz 108
close:
1606 mario79 109
	or	 eax,-1 	 ; функция -1: завершить программу
110
	mcall
205 heavyiron 111
 
341 heavyiron 112
noclose:
1373 IgorA 113
	push	eax
114
	call	clear_err
115
	pop	eax
116
	push	16
1606 mario79 117
	xor	ebx,ebx
1373 IgorA 118
	inc	ebx	; 16.1 = save to /FD/1
1606 mario79 119
	cmp	ah,2
1373 IgorA 120
	je	doit
121
	inc	ebx	; 16.2 = save to /FD/2
1606 mario79 122
	cmp	ah,3
1373 IgorA 123
	je	doit
124
	pop	ebx
125
	push	18
1606 mario79 126
	mov	bl,6	; 18.6 = save to specified folder
1373 IgorA 127
	mov	ecx, path3
1606 mario79 128
	cmp	ah,4
1373 IgorA 129
	je	doit
1606 mario79 130
 
131
; invoke OpenDialog
132
	push    dword OpenDialog_data
133
	call    [OpenDialog_Start]
134
	cmp	[OpenDialog_data.status],1
135
	jne	still
136
 
137
; prepare for PathShow
138
	push	dword PathShow_data_1
139
	call	[PathShow_prepare]
140
 
141
	call	draw_PathShow
142
 
143
	mov	ecx,fname_buf ;path4
532 diamond 144
doit:
1373 IgorA 145
	pop	eax
146
	mcall
147
	call	check_for_error
148
	jmp	still
1606 mario79 149
;---------------------------------------------------------------------
150
key:
151
	mcall	2
152
	cmp	ah,0x31
153
	jb	still
154
	cmp	ah,0x34
155
	ja	still
156
	sub	ah,0x30
157
	inc	ah
158
	jmp	noclose
159
;---------------------------------------------------------------------
1373 IgorA 160
check_for_error:		      ;Обработчик ошибок
1606 mario79 161
	mov	ecx,[sc.work_text]
162
	mov	edx,ok
163
	test	eax,eax
1373 IgorA 164
	jz	print
1606 mario79 165
	mov	ecx,0xdd2222
166
	add	edx,error3 - ok
1373 IgorA 167
	dec	eax
168
	dec	eax
169
	jz	print
1606 mario79 170
	add	edx,error5 - error3
1373 IgorA 171
	dec	eax
172
	dec	eax
173
	jz	print
1606 mario79 174
	add	edx,error8 - error5
1373 IgorA 175
	dec	eax
176
	dec	eax
177
	dec	eax
178
	jz	print
1606 mario79 179
	add	edx,error9 - error8
1373 IgorA 180
	dec	eax
181
	jz	print
1606 mario79 182
	add	edx,error10 - error9
1373 IgorA 183
	dec	eax
184
	jz	print
1606 mario79 185
	add	edx,error11 - error10
1373 IgorA 186
	dec	eax
187
	jz	print
1606 mario79 188
	add	edx,aUnknownError - error11
189
print:
190
	mov	eax,4				   ;надписи
191
	mov	ebx,20 shl 16 + 148
192
	or	ecx,0x80000000
193
	mcall
194
	ret
195
;---------------------------------------------------------------------
341 heavyiron 196
clear_err:
1606 mario79 197
	mov	eax,13
198
	mov	ebx,15 shl 16 + 240
199
	mov	ecx,145 shl 16 +15
200
	mov	edx,[sc.work]
201
	mcall
202
	ret
341 heavyiron 203
;---------------------------------------------------------------------
1606 mario79 204
draw_PathShow:
205
	pusha
206
	mcall	13,<8,172>,<110,15>,0xffffff
207
; draw for PathShow
208
	push	dword PathShow_data_1
209
	call	[PathShow_draw]
210
	popa
211
	ret
212
;---------------------------------------------------------------------
341 heavyiron 213
;---  ОПРЕДЕЛЕНИЕ И ОТРИСОВКА ОКНА  ----------------------------------
214
;---------------------------------------------------------------------
205 heavyiron 215
draw_window:
1606 mario79 216
	mcall	12,1	; функция 12: сообщить ОС об отрисовке окна
217
			; 1 - начинаем рисовать
1373 IgorA 218
					 ; СОЗДАЁМ ОКНО
1606 mario79 219
	xor	eax,eax			 ; функция 0 : определить и отрисовать окно
220
	mov	ebx,200 shl 16 + 300	 ; [x старт] *65536 + [x размер]
221
	mov	ecx,200 shl 16 + 190	 ; [y старт] *65536 + [y размер]
222
	mov	edx,[sc.work]		 ; цвет рабочей области  RRGGBB,8->color gl
223
	or	edx,0x34000000
224
	mov	edi,title			; ЗАГОЛОВОК ОКНА
225
	mcall
205 heavyiron 226
 
1606 mario79 227
	call	draw_PathShow
205 heavyiron 228
 
1606 mario79 229
;отрисовка теней кнопок
230
	mcall	13,<194,60>,<34,15>,0x444444
1070 Lrz 231
 
1606 mario79 232
	add	ecx,20 shl 16
233
	mcall
205 heavyiron 234
 
1606 mario79 235
	add	ecx,20 shl 16
236
	mcall
205 heavyiron 237
 
1606 mario79 238
	add	ecx,40 shl 16
239
	mcall
240
;отрисовка кнопок
241
	sub	ebx,4 shl 16
242
	sub	ecx,4 shl 16
243
	mcall	8,,,5,[sc.work_button]
205 heavyiron 244
 
1606 mario79 245
	sub	ecx,40 shl 16
246
	dec	edx
247
	mcall
205 heavyiron 248
 
1606 mario79 249
	sub	ecx,20 shl 16
250
	dec	edx
251
	mcall
205 heavyiron 252
 
1606 mario79 253
	sub	ecx,20 shl 16
254
	dec	edx
255
	mcall
256
; надписи
257
	mov	ecx,[sc.work_text]
258
	or	ecx,0x80000000
259
	mcall	4,<45,12>,,label1
205 heavyiron 260
 
1606 mario79 261
	mov	ebx,150 shl 16 + 35
262
	mov	edx,path1
263
	mcall
341 heavyiron 264
 
1606 mario79 265
	add	ebx,20
266
	mov	edx,path2
267
	mcall
341 heavyiron 268
 
1606 mario79 269
	mov	ebx,75 shl 16 + 75
270
	mov	edx,path3
271
	mcall
341 heavyiron 272
 
1606 mario79 273
	mov	ebx,30 shl 16 + 97
274
	mov	edx,label2
275
	mcall
341 heavyiron 276
 
1606 mario79 277
	mov	ebx,40 shl 16 + 135
278
	mov	edx,label3
279
	mcall
341 heavyiron 280
 
1606 mario79 281
	mov	ecx,[sc.work_button_text]
282
	or	ecx,0x80000000
283
	mov	ebx,195 shl 16 + 35
284
	mov	edx,save
285
	mcall
341 heavyiron 286
 
1606 mario79 287
	push	edx
288
	mov	edx,key_help
289
	call	key_help_correct
290
	pop	edx
341 heavyiron 291
 
1606 mario79 292
	add ebx,20
293
	mcall
341 heavyiron 294
 
1606 mario79 295
	push	edx
296
	mov	edx,key_help+2
297
	call	key_help_correct
298
	pop	edx
341 heavyiron 299
 
1606 mario79 300
	add ebx,20
301
	mcall
341 heavyiron 302
 
1606 mario79 303
	push	edx
304
	mov	edx,key_help+4
305
	call	key_help_correct
306
	pop	edx
341 heavyiron 307
 
1606 mario79 308
	mov	edx,select
309
	add ebx,40
310
	mcall
341 heavyiron 311
 
1606 mario79 312
	mov	edx,key_help+6
313
	call	key_help_correct
341 heavyiron 314
 
1606 mario79 315
	mcall	12,2	; функция 12: сообщить ОС об отрисовке окна
316
			; 2, закончили рисовать
317
	ret		; выходим из процедуры
341 heavyiron 318
;---------------------------------------------------------------------
1606 mario79 319
key_help_correct:
320
	push	ebx
321
	ror	ebx,16
322
	mov	bx,270
323
	rol	ebx,16
324
	pusha
325
	mov	ecx,ebx
326
	sub	ebx,3 shl 16
327
	mov	bx,13
328
	sub	cx,3
329
	shl	ecx,16
330
	mov	cx,13
331
	mcall	13,,,0xffffff
332
	popa
333
	mcall
334
	pop	ebx
335
	ret
336
;---------------------------------------------------------------------
341 heavyiron 337
;---  ДАННЫЕ ПРОГРАММЫ  ----------------------------------------------
338
;---------------------------------------------------------------------
339
 
1606 mario79 340
title	db appname,version,0
341 heavyiron 341
 
1606 mario79 342
;---------------------------------------------------------------------
343
PathShow_data_1:
344
.type			dd 0	;+0
345
.start_y		dw 113	;+4
346
.start_x		dw 10	;+6
347
.font_size_x		dw 6	;+8	; 6 - for font 0, 8 - for font 1
348
.area_size_x		dw 170	;+10
349
.font_number		dd 0	;+12	; 0 - monospace, 1 - variable
350
.background_flag	dd 0	;+16
351
.font_color		dd 0x0	;+20
352
.background_color	dd 0x0	;+24
353
.text_pointer		dd fname_buf	;+28
354
.work_area_pointer	dd text_work_area	;+32
355
.temp_text_length	dd 0	;+36
356
;---------------------------------------------------------------------
205 heavyiron 357
if lang eq ru
1606 mario79 358
save		db 'Сохранить',0
359
select		db ' Выбрать',0
360
label1		db 'Выберите один из вариантов:',0
361
label2		db 'Или выберите полный путь к файлу:',0
362
label3		db 'Все папки должны существовать',0
363
ok		db 'RAM-диск сохранен успешно',0
364
error3		db 'Неизвестная файловая система',0
365
error5		db 'Несуществующий путь',0
366
error8		db 'Нет места на диске',0
367
error9		db 'Таблица FAT разрушена',0
368
error10 	db 'Доступ запрещен',0
369
error11 	db 'Ошибка устройства',0
370
aUnknownError 	db 'Неизвестная ошибка',0
371
;---------------------------------------------------------------------
605 kaitz 372
else if lang eq et
1606 mario79 373
save		db 'Salvesta',0
374
select		db ' Valige',0
375
label1		db 'Vali №ks variantidest:',0
376
label2		db 'Vїi valige teekond failinimeni:',0
377
label3		db 'Kїik kataloogid peavad eksisteerima',0
378
ok		db 'RAM-ketas salvestatud edukalt',0
379
error3		db 'Tundmatu failis№steem',0
380
error5		db 'Vigane teekond',0
381
error8		db 'Ketas tфis',0
382
error9		db 'FAT tabel vigane',0
383
error10 	db 'Juurdepффs keelatud',0
384
error11 	db 'Seadme viga',0
385
aUnknownError 	db 'Tundmatu viga',0
386
;---------------------------------------------------------------------
205 heavyiron 387
else
1606 mario79 388
save		db '  Save',0
389
select		db ' Select',0
390
label1		db 'Select one of the variants:',0
391
label2		db '  Or select full path to file:',0
392
label3		db '    All folders must exist',0
393
ok		db 'RAM-drive was saved successfully',0
394
error3		db 'Unknown file system',0
395
error5		db 'Incorrect path',0
396
error8		db 'Disk is full',0
397
error9		db 'FAT table corrupted',0
398
error10 	db 'Access denied',0
399
error11 	db 'Device error',0
400
aUnknownError 	db 'Unknown error',0
205 heavyiron 401
 
402
end if
1070 Lrz 403
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
404
;DATA данные
405
;Всегда соблюдать последовательность в имени.
1606 mario79 406
system_dir_Boxlib	db '/sys/lib/box_lib.obj',0
407
system_dir_ProcLib	db '/sys/lib/proc_lib.obj',0
1070 Lrz 408
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
205 heavyiron 409
 
1070 Lrz 410
head_f_i:
1373 IgorA 411
head_f_l	db 'System error',0
1606 mario79 412
 
413
err_message_found_lib1	db 'box_lib.obj - Not found!',0
414
err_message_found_lib2	db 'proc_lib.obj - Not found!',0
415
 
416
err_message_import1	db 'box_lib.obj - Wrong import!',0
417
err_message_import2	db 'proc_lib.obj - Wrong import!',0
418
 
419
;---------------------------------------------------------------------
420
l_libs_start:
421
 
422
library01  l_libs system_dir_Boxlib+9, cur_dir_path, library_path, system_dir_Boxlib, \
423
err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i
424
 
425
library02  l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \
426
err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
427
 
428
end_l_libs:
429
;---------------------------------------------------------------------
430
OpenDialog_data:
431
.type			dd 1	; Save
432
.procinfo		dd procinfo	;+4
433
.com_area_name		dd communication_area_name	;+8
434
.com_area		dd 0	;+12
435
.opendir_pach		dd temp_dir_pach	;+16
436
.dir_default_pach	dd communication_area_default_pach	;+20
437
.start_path		dd open_dialog_path	;+24
438
.draw_window		dd draw_window	;+28
439
.status			dd 0	;+32
440
.openfile_pach 		dd fname_buf	;+36
441
.filename_area		dd filename_area	;+40
442
.filter_area		dd Filter
443
.x:
444
.x_size			dw 420 ;+48 ; Window X size
445
.x_start		dw 10 ;+50 ; Window X position
446
.y:
447
.y_size			dw 320 ;+52 ; Window y size
448
.y_start		dw 10 ;+54 ; Window Y position
449
 
450
communication_area_name:
451
	db 'FFFFFFFF_open_dialog',0
452
open_dialog_path:
453
	db '/sys/File Managers/opendial',0
454
communication_area_default_pach:
455
	db '/hd0/1/kolibri',0
456
 
457
Filter:
458
dd	Filter.end - Filter.1
459
.1:
460
db	'IMG',0
461
db	'IMA',0
462
.end:
463
db	0
464
 
465
start_temp_file_name:	db 'kolibri.img',0
466
 
467
;---------------------------------------------------------------------
1070 Lrz 468
align 4
1606 mario79 469
ProcLib_import:
470
OpenDialog_Init		dd aOpenDialog_Init
471
OpenDialog_Start	dd aOpenDialog_Start
472
;OpenDialog__Version	dd aOpenDialog_Version
473
        dd      0
474
        dd      0
475
aOpenDialog_Init	db 'OpenDialog_init',0
476
aOpenDialog_Start	db 'OpenDialog_start',0
477
;aOpenDialog_Version	db 'Version_OpenDialog',0
478
;---------------------------------------------------------------------
479
align 4
480
Box_lib_import:
481
;init_lib		dd a_init
482
;version_lib		dd a_version
485 heavyiron 483
 
1070 Lrz 484
 
1606 mario79 485
;edit_box_draw		dd aEdit_box_draw
486
;edit_box_key		dd aEdit_box_key
487
;edit_box_mouse		dd aEdit_box_mouse
488
;version_ed		dd aVersion_ed
1070 Lrz 489
 
1606 mario79 490
;check_box_draw		dd aCheck_box_draw
491
;check_box_mouse	dd aCheck_box_mouse
492
;version_ch		dd aVersion_ch
1070 Lrz 493
 
1606 mario79 494
;option_box_draw	dd aOption_box_draw
495
;option_box_mouse	dd aOption_box_mouse
496
;version_op		dd aVersion_op
1070 Lrz 497
 
1606 mario79 498
;scrollbar_ver_draw	dd aScrollbar_ver_draw
499
;scrollbar_ver_mouse	dd aScrollbar_ver_mouse
500
;scrollbar_hor_draw	dd aScrollbar_hor_draw
501
;scrollbar_hor_mouse	dd aScrollbar_hor_mouse
502
;version_scrollbar	dd aVersion_scrollbar
1070 Lrz 503
 
1606 mario79 504
;dinamic_button_draw	dd aDbutton_draw
505
;dinamic_button_mouse	dd aDbutton_mouse
506
;version_dbutton	dd aVersion_dbutton
507
 
508
;menu_bar_draw		dd aMenu_bar_draw
509
;menu_bar_mouse		dd aMenu_bar_mouse
510
;menu_bar_activate	dd aMenu_bar_activate
511
;version_menu_bar	dd aVersion_menu_bar
512
 
513
;FileBrowser_draw	dd aFileBrowser_draw
514
;FileBrowser_mouse	dd aFileBrowser_mouse
515
;FileBrowser_key	dd aFileBrowser_key
516
;Version_FileBrowser	dd aVersion_FileBrowser
517
 
518
PathShow_prepare	dd sz_PathShow_prepare
519
PathShow_draw		dd sz_PathShow_draw
520
;Version_path_show	dd szVersion_path_show
521
			dd 0
522
			dd 0
523
 
524
;a_init			db 'lib_init',0
525
;a_version		db 'version',0
526
 
527
;aEdit_box_draw		db 'edit_box',0
528
;aEdit_box_key		db 'edit_box_key',0
529
;aEdit_box_mouse	db 'edit_box_mouse',0
530
;aVersion_ed		db 'version_ed',0
531
 
532
;aCheck_box_draw	db 'check_box_draw',0
533
;aCheck_box_mouse	db 'check_box_mouse',0
534
;aVersion_ch		db 'version_ch',0
535
 
536
;aOption_box_draw	db 'option_box_draw',0
537
;aOption_box_mouse	db 'option_box_mouse',0
538
;aVersion_op		db 'version_op',0
539
 
540
;aScrollbar_ver_draw	db 'scrollbar_v_draw',0
541
;aScrollbar_ver_mouse	db 'scrollbar_v_mouse',0
542
;aScrollbar_hor_draw	db 'scrollbar_h_draw',0
543
;aScrollbar_hor_mouse	db 'scrollbar_h_mouse',0
544
;aVersion_scrollbar	db 'version_scrollbar',0
545
 
546
;aDbutton_draw		db 'dbutton_draw',0
547
;aDbutton_mouse		db 'dbutton_mouse',0
548
;aVersion_dbutton	db 'version_dbutton',0
549
 
550
;aMenu_bar_draw		db 'menu_bar_draw',0
551
;aMenu_bar_mouse		db 'menu_bar_mouse',0
552
;aMenu_bar_activate	db 'menu_bar_activate',0
553
;aVersion_menu_bar	db 'version_menu_bar',0
554
 
555
;aFileBrowser_draw	db 'FileBrowser_draw',0
556
;aFileBrowser_mouse	db 'FileBrowser_mouse',0
557
;aFileBrowser_key	db 'FileBrowser_key',0
558
;aVersion_FileBrowser	db 'version_FileBrowser',0
559
 
560
sz_PathShow_prepare	db 'PathShow_prepare',0
561
sz_PathShow_draw	db 'PathShow_draw',0
562
;szVersion_path_show	db 'version_PathShow',0
563
;---------------------------------------------------------------------
564
 
1373 IgorA 565
path1	db '/fd/1/',0
566
path2	db '/fd/2/',0
567
path3	db '/hd0/1/kolibri.img',0
568
path4	db '/hd0/1/kolibri/kolibri.img',0  ;для резервного сохранения
485 heavyiron 569
;---------------------------------------------------------------------
1606 mario79 570
key_help:
571
	db '1',0
572
	db '2',0
573
	db '3',0
574
	db '4',0
575
;---------------------------------------------------------------------
576
IM_END:
577
;---------------------------------------------------------------------
485 heavyiron 578
sc     system_colors
1214 Lrz 579
mouse_dd	rd 1
1606 mario79 580
;---------------------------------------------------------------------
581
cur_dir_path:
582
	rb 4096
583
;---------------------------------------------------------------------
584
library_path:
585
	rb 4096
586
;---------------------------------------------------------------------
587
temp_dir_pach:
588
	rb 4096
589
;---------------------------------------------------------------------
590
fname_buf:
591
	rb 4096
592
;---------------------------------------------------------------------
593
procinfo:
594
	rb 1024
595
;---------------------------------------------------------------------
596
filename_area:
597
	rb 256
598
;---------------------------------------------------------------------
599
text_work_area:
600
	rb 1024
601
;---------------------------------------------------------------------
833 Lrz 602
align 4
1606 mario79 603
	rb 4096
604
stacktop:
605
I_END:	; метка конца программы