Subversion Repositories Kolibri OS

Rev

Rev 1339 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1338 IgorA 1
;Огромная благодарность Maxxxx32, Diamond, Heavyiron
2
;и другим программистам, а также
3
;Теплову Алексею ( www.lrz.land.ru)
4
 
5
 
6
use32
7
  org 0x0
8
  db 'MENUET01' ;идентиф. исполняемого файла всегда 8 байт
9
  dd 0x01
10
  dd start
11
  dd i_end ; размер приложения
12
  dd mem
13
  dd stacktop
14
  dd file_name;buf_cmd_lin
15
  dd sys_path
16
 
17
MAX_COLOR_WORD_LEN equ 40
18
maxChars equ 100002 ;(...+2)
19
BUF_SIZE equ 1000 ;bufer for copy|paste
20
maxColWords equ 10000
21
 
22
 
23
include '../../macros.inc'
24
;include '../../develop/libraries/box_lib/load_lib.mac'
25
include 'load_lib.mac' ;include old file
26
include '../../develop/libraries/box_lib/trunk/tree_list.mac'
27
include '../../develop/libraries/box_lib/trunk/editbox_ex.mac'
28
 
29
include 't_data.inc'
30
include 'strlen.inc'
31
include 't_work.inc' ;text work functions
32
include 't_draw.inc' ;draw main window functions
33
include 't_button.inc'
34
 
35
@use_library
36
 
37
start:
38
  mov eax,48
39
  mov ebx,3
40
  mov ecx,sc
41
  mov edx,sizeof.system_colors
42
  mcall
43
 
44
  m2m [wScr.bckg_col],[sc.work]
45
  m2m [wScr.frnt_col],[sc.work_button]
46
  m2m [wScr.line_col],[sc.work_button_text]
47
 
48
  m2m [hScr.bckg_col],[sc.work]
49
  m2m [hScr.frnt_col],[sc.work_button]
50
  m2m [hScr.line_col],[sc.work_button_text]
51
 
52
 
53
  mcall 68,11
54
  or eax,eax
55
  jz button.exit
56
 
57
  mcall 66,1,1 ;scan code
58
  ;mcall 26,2,1,conv_tabl
59
 
60
  mov ecx,sizeof.symbol*maxChars
61
  call mem_Alloc
62
  mov [tex],eax
63
  mov [tex_1],eax
64
  add [tex_1],sizeof.symbol
65
  mov [tex_end],eax
66
  add [tex_end],sizeof.symbol*maxChars
67
 
68
  mcall 40,0x27
69
 
70
  call Clear
71
 
72
;-------------------------------------------------
73
  mov ecx,maxColWords*sizeof.TexColViv
74
  add ecx,40
75
  call mem_Alloc
76
  mov [options_file],eax
77
  mov [options_file_end],eax
78
  add [options_file_end],maxColWords*sizeof.TexColViv
79
  add [options_file_end],40
80
 
81
;-------------------------------------------------
82
; init bmp file
83
  mov ecx,1200*18
84
  call mem_Alloc
85
  mov [bmp_icon],eax
86
 
87
  mov esi,file_name
88
  call strlen
89
  mov ecx,eax
90
  mov edi,buf_cmd_lin
91
  rep movsb
92
 
93
  copy_path fn_icon,sys_path,file_name
94
 
95
  mov eax,70 ;load icon file
96
  mov [run_file_70.func_n], 0
97
  mov [run_file_70.param1], 54
98
  mov [run_file_70.param2], 0
99
  mov [run_file_70.param3], 1200*18
100
  m2m [run_file_70.param4], [bmp_icon]
101
  mov [run_file_70.rezerv], 0
102
  mov [run_file_70.name], file_name
103
  mov ebx,run_file_70
104
  int 0x40
105
 
106
  cmp ebx,-1
107
  mov [err_ini0],1
108
  je @f ;if open file
109
    mov [err_ini0],0
110
  @@:
111
 
112
load_libraries l_libs_start,load_lib_end
113
 
114
;Їа®ўҐаЄ  ­  бЄ®«мЄ® г¤ з­® § Јг§Ё« бм ­ и  «ЁЎ 
115
	mov	ebp,lib0
116
	cmp	dword [ebp+ll_struc_size-4],0
117
	jz	@f
118
	mcall	-1	;exit not correct
119
@@:
120
	mov	ebp,lib1 ;
121
	cmp	dword [ebp+ll_struc_size-4],0
122
	jz	@f
123
	mcall	-1	;exit not correct
124
@@:
125
 
126
 
127
;---------------------------------------------------------------------
128
  push dword tree1
129
  call dword[tl_data_init]
130
;---------------------------------------------------------------------
131
; читаем bmp файл с курсорами и линиями
132
  copy_path fn_icon_tl_sys,sys_path,file_name
133
 
134
  mov ecx,3*256*13
135
  call mem_Alloc
136
  mov dword[tree1.data_img_sys],eax
137
 
138
  mov [run_file_70.func_n], 0
139
  mov [run_file_70.param1], 54
140
  mov [run_file_70.param2], 0
141
  mov [run_file_70.param3], 3*256*13
142
  mov [run_file_70.param4], eax
143
  mov [run_file_70.rezerv], 0
144
  mov [run_file_70.name], file_name
145
 
146
  mov eax,70 ;load icon file
147
  mov ebx,run_file_70
148
  int 0x40
149
  cmp ebx,0
150
  jg @f
151
    mov dword[tree1.data_img_sys],0
152
  @@:
153
;---------------------------------------------------------------------
154
; читаем bmp файл с иконками узлов
155
  copy_path fn_icon_tl_nod,sys_path,file_name
156
 
157
  mov ecx,3*256*2
158
  call mem_Alloc
159
  mov dword[tree1.data_img],eax
160
 
161
;  mov [run_file_70.func_n], 0
162
;  mov [run_file_70.param1], 54
163
;  mov [run_file_70.param2], 0
164
  mov [run_file_70.param3], 3*256*2
165
  mov [run_file_70.param4], eax
166
;  mov [run_file_70.rezerv], 0
167
;  mov [run_file_70.name], file_name
168
 
169
  mov eax,70 ;load icon file
170
  mov ebx,run_file_70
171
  int 0x40
172
  cmp ebx,0
173
  jg @f
174
    mov dword[tree1.data_img],0
175
  @@:
176
;------------------------------------------------------------------------------
177
  copy_path fn_syntax_dir,sys_path,file_name ;берем путь к папке с файлами синтаксиса
178
  mov eax,70
179
  mov ebx,tree_file_struct
180
  int 0x40
181
 
182
cmp ebx,-1
183
je .end_dir_init
184
 
185
  mov eax,dir_mem
186
  add eax,32+4+1+3+4*6+8
187
mov ecx,ebx
188
@@:
189
  cmp byte[eax],'.' ;фильтруем файлы с именами '.' и '..'
190
  je .filter
191
    push dword tree1
192
    push dword 0x10000 ;1*2^16 - где 1 номер иконки с книгой
193
    push dword eax
194
    call dword[tl_node_add]
195
 
196
    push dword tree1
197
    call dword[tl_cur_next]
198
  .filter:
199
  add eax,304
200
  loop @b
201
.end_dir_init:
202
 
203
;  push dword tree1
204
;  push dword 0
205
;  push dword file_name
206
;  call dword[tl_node_add]
207
 
208
 
209
;--- load color option file ---
210
  call InitColText
211
 
212
;--- get cmd line ---
213
  cmp byte[buf_cmd_lin+3],0 ;buf_cmd_lin
214
  je @f ;if file names exist
215
    mov esi,buf_cmd_lin
216
    call strlen ;eax=strlen
217
    mov [edit1.size],eax
218
    call but_OpenFile
219
  @@:
220
 
221
 
222
red_win:
223
  mov eax,12
224
  mov ebx,1
225
  mcall
226
 
227
  xor eax,eax
228
  mov ebx,10*65536+485
229
  mov ecx,10*65536+280
230
  mov edx,[sc.work]
231
  or  edx,0x73000000
232
  mov edi,hed
233
  mcall
234
 
235
  mcall 9,procinfo,-1
236
  call EvSize
237
 
238
  mov eax,13 ;rect
239
  xor ebx,ebx
240
  xor ecx,ecx
241
  mov bx,word [procinfo.client_box.width]
242
  inc bx
243
  mov cx,word [wndMain.top]
244
  mcall
245
 
246
  push dword edit1
247
  call [edit_box_draw]
248
 
249
; draw for Menu 1
250
  push dword menu_data_1
251
  call [menu_bar_draw]
252
 
253
  call draw_but_toolbar
254
 
255
  cmp [err_ini0],1
256
  jne @f
257
    mov eax,4
258
    mov ebx,[wndMain.left]
259
    add ebx,[recMain.left]
260
    shl ebx,16
261
    add ebx,[wndMain.top]
262
    add ebx,[recMain.top]
263
    mov ecx,0x80ff0000
264
    mov edx,txtErrIni0
265
    int 0x40
266
 
267
    add ebx,10 ;move <--y-->
268
    mov ecx,0x80ff0080
269
    mov edx,file_name
270
    int 0x40
271
  @@:
272
 
273
  cmp [err_ini0],1
274
  je @f
275
    call draw_main_win
276
  @@:
277
 
278
  cmp [err_opn],1
279
  jne @f
280
    ;mov eax,4