Subversion Repositories Kolibri OS

Rev

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

Rev 1439 Rev 1510
1
;************************************************************************
1
;************************************************************************
2
; v.015 08.03.2010
2
; v.015 08.03.2010
3
; Support for OpenDialog - Open and Save
3
; Support for OpenDialog - Open and Save
4
; Some optimization
4
; Some optimization
5
;************************************************************************
5
;************************************************************************
6
; v.014 05.02.2010
6
; v.014 05.02.2010
7
; 
7
; 
8
; PageUp, PageDown      - áâà ­¨æ  ¢¢¥àå/¢­¨§
8
; PageUp, PageDown      - áâà ­¨æ  ¢¢¥àå/¢­¨§
9
; Ctrl+UP, Ctrl+Down    - ¯à®ªàã⪠ áâà ­¨æë ­  áâப㠢¢¥àå/¢­¨§ ¡¥§ ᬥ饭¨ï ªãàá®à 
9
; Ctrl+UP, Ctrl+Down    - ¯à®ªàã⪠ áâà ­¨æë ­  áâப㠢¢¥àå/¢­¨§ ¡¥§ ᬥ饭¨ï ªãàá®à 
10
; Home,End              - ¢ ­ ç «®/ª®­¥æ áâப¨
10
; Home,End              - ¢ ­ ç «®/ª®­¥æ áâப¨
11
; Ctrl+Home, Ctrl+End   - ª ¯¥à¢®¬ã/¯®á«¥¤­¥¬ã ¡ ©âã ä ©« 
11
; Ctrl+Home, Ctrl+End   - ª ¯¥à¢®¬ã/¯®á«¥¤­¥¬ã ¡ ©âã ä ©« 
12
; Left, Right           - ªãàá®à ¢«¥¢®/¢¯à ¢®
12
; Left, Right           - ªãàá®à ¢«¥¢®/¢¯à ¢®
13
; Ctrl+O                - ®âªàëâì ä ©«
13
; Ctrl+O                - ®âªàëâì ä ©«
14
; Ctrl+S                - á®åà ­¨âì
14
; Ctrl+S                - á®åà ­¨âì
15
; Ctrl+F                - ¯®¨áª (+Tab ¤«ï OptionBox)
15
; Ctrl+F                - ¯®¨áª (+Tab ¤«ï OptionBox)
16
; Ctrl+G                - ¯¥à¥å®¤ ­  ᬥ饭¨¥ (+Tab ¤«ï OptionBox)
16
; Ctrl+G                - ¯¥à¥å®¤ ­  ᬥ饭¨¥ (+Tab ¤«ï OptionBox)
17
; Ctrl+B                - ¢ë¤¥«¨âì ¡«®ª
17
; Ctrl+B                - ¢ë¤¥«¨âì ¡«®ª
18
; ESC                   - á­ïâì ¢ë¤¥«¥­¨¥
18
; ESC                   - á­ïâì ¢ë¤¥«¥­¨¥
19
; Ctrl+C		- ª®¯¨à®¢ âì ¡«®ª
19
; Ctrl+C		- ª®¯¨à®¢ âì ¡«®ª
20
; Ctrl+V		- ¢áâ ¢¨âì ¢ ¢ë¤¥«¥­­ãî ®¡« áâì
20
; Ctrl+V		- ¢áâ ¢¨âì ¢ ¢ë¤¥«¥­­ãî ®¡« áâì
21
; Ctrl+X		- ¢ë१ âì ¢ë¤¥«¥­­ãî ®¡« áâì (¢ ¡ãä¥à)
21
; Ctrl+X		- ¢ë१ âì ¢ë¤¥«¥­­ãî ®¡« áâì (¢ ¡ãä¥à)
22
; n                     - ¨­¢¥àâ¨à®¢ âì ¡ ©â ¯®¤ ªãàá®à®¬
22
; n                     - ¨­¢¥àâ¨à®¢ âì ¡ ©â ¯®¤ ªãàá®à®¬
23
; Ins                   - ०¨¬ § ¬¥­ë/¢áâ ¢ª¨ (¯® 㬮«ç ­¨î)
23
; Ins                   - ०¨¬ § ¬¥­ë/¢áâ ¢ª¨ (¯® 㬮«ç ­¨î)
24
;   Del                 - ¢ ०¨¬¥ ¢áâ ¢ª¨ - 㤠«¨âì ¡ ©â ¯®¤ ªãàá®à®¬
24
;   Del                 - ¢ ०¨¬¥ ¢áâ ¢ª¨ - 㤠«¨âì ¡ ©â ¯®¤ ªãàá®à®¬
25
;   BackSpace           - ¢ ०¨¬¥ ¢áâ ¢ª¨ - 㤠«¨âì ¡ ©â ¯¥à¥¤ ªãàá®à®¬
25
;   BackSpace           - ¢ ०¨¬¥ ¢áâ ¢ª¨ - 㤠«¨âì ¡ ©â ¯¥à¥¤ ªãàá®à®¬
26
; ~                     - ᬥ­  ª®¤¨à®¢ª¨ (cp866,cp1251)
26
; ~                     - ᬥ­  ª®¤¨à®¢ª¨ (cp866,cp1251)
27
; Shift+~               - ᬥ­  ª®¤¨à®¢ª¨ (cp866 ¨«¨ cp1251,koi8-r)
27
; Shift+~               - ᬥ­  ª®¤¨à®¢ª¨ (cp866 ¨«¨ cp1251,koi8-r)
28
 
28
 
29
;  ¬ïâì ¯¥à¥à á¯à¥¤¥«ï¥âáï ­  㢥«¨ç¥­¨¥ i umen'shenie.
29
;  ¬ïâì ¯¥à¥à á¯à¥¤¥«ï¥âáï ­  㢥«¨ç¥­¨¥ i umen'shenie.
30
; ” ©« § £à㦠¥âáï 楫¨ª®¬.
30
; ” ©« § £à㦠¥âáï 楫¨ª®¬.
31
 
31
 
32
; Œ ªà®áë load_lib.mac, editbox_ex ¨ ¡¨¡«¨®â¥ªã box_lib.obj ᮧ¤ «¨:
32
; Œ ªà®áë load_lib.mac, editbox_ex ¨ ¡¨¡«¨®â¥ªã box_lib.obj ᮧ¤ «¨:
33
;  - Alexey Teplov / €«¥ªá¥© ’¥¯«®¢
33
;  - Alexey Teplov / €«¥ªá¥© ’¥¯«®¢
34
; Mario79, Mario - Marat Zakiyanov / Œ à â ‡ ª¨ï­®¢
34
; Mario79, Mario - Marat Zakiyanov / Œ à â ‡ ª¨ï­®¢
35
; Diamondz - Evgeny Grechnikov / …¢£¥­¨© ƒà¥ç­¨ª®¢ ¨ ¤à.
35
; Diamondz - Evgeny Grechnikov / …¢£¥­¨© ƒà¥ç­¨ª®¢ ¨ ¤à.
36
;
36
;
37
; staper@inbox.ru
37
; staper@inbox.ru
38
; babalbes@yandex.ru
38
; babalbes@yandex.ru
39
 
39
 
40
use32
40
use32
41
	org	0x0
41
	org	0x0
42
	db	'MENUET01'
42
	db	'MENUET01'
43
	dd	0x1
43
	dd	0x1
44
	dd	START	;program start
44
	dd	START	;program start
45
	dd	I_END	;program image	size
45
	dd	I_END	;program image	size
46
	dd	(D_END+0x600) and not 3	;required amount of memory
46
	dd	(D_END+0x600) and not 3	;required amount of memory
47
	dd	(D_END+0x600) and not 3	;stack
47
	dd	(D_END+0x600) and not 3	;stack
48
	dd	0x0	;buf_cmd_lin
48
	dd	0x0	;buf_cmd_lin
49
	dd	cur_dir_path
49
	dd	cur_dir_path
50
 
50
 
51
_title	equ 'HeEd 0.15'
51
_title	equ 'HeEd 0.15'
52
 
52
 
53
include	'lang.inc'
53
include	'lang.inc'
54
include '../../../macros.inc'
54
include '../../../macros.inc'
55
include	'../../libraries/box_lib/trunk/box_lib.mac'
55
include	'../../libraries/box_lib/trunk/box_lib.mac'
56
include	'../../libraries/box_lib/load_lib.mac'
56
include	'../../libraries/box_lib/load_lib.mac'
57
include	'../../libraries/box_lib/asm/trunk/opendial.mac'
-
 
58
 
57
 
59
@use_library
-
 
60
use_OpenDialog
58
@use_library
61
 
59
 
62
times	16	dd	0
60
times	16	dd	0
63
 
61
 
64
frgrd_color	equ	0xfefefe
62
frgrd_color	equ	0xfefefe
65
bkgrd_color	equ	0x000000
63
bkgrd_color	equ	0x000000
66
kursred_color	equ	0x0039ff
64
kursred_color	equ	0x0039ff
67
kurstxt_color	equ	0x708090
65
kurstxt_color	equ	0x708090
68
text_color	equ	0xaaaaaa
66
text_color	equ	0xaaaaaa
69
 
67
 
70
panel_clr1	equ	0xe9e9e2
68
panel_clr1	equ	0xe9e9e2
71
panel_clr2	equ	0x8b8b89
69
panel_clr2	equ	0x8b8b89
72
panel_clr3	equ	0x777777;eaeae3
70
panel_clr3	equ	0x777777;eaeae3
73
 
71
 
74
 
72
 
75
palitra:
73
palitra:
76
.1	dd	frgrd_color,bkgrd_color	;梥⠭¥¢ë¤¥«¥­­®£® ᨬ¢®« 
74
.1	dd	frgrd_color,bkgrd_color	;梥⠭¥¢ë¤¥«¥­­®£® ᨬ¢®« 
77
.2	dd	frgrd_color,text_color	;«¥¢ë©,¯à ¢ë© á⮫¡æë,ç áâì ­¨¦­¥© áâப¨
75
.2	dd	frgrd_color,text_color	;«¥¢ë©,¯à ¢ë© á⮫¡æë,ç áâì ­¨¦­¥© áâப¨
78
.3	dd	kursred_color,frgrd_color	;ªãàá®à 
76
.3	dd	kursred_color,frgrd_color	;ªãàá®à 
79
.4	dd	kurstxt_color,bkgrd_color	;ªãàá®à  ¢ ⥪á⮢®© ®¡« áâ¨
77
.4	dd	kurstxt_color,bkgrd_color	;ªãàá®à  ¢ ⥪á⮢®© ®¡« áâ¨
80
.5	dd	panel_clr1,not	text_color	;­¨¦­ïï ¯ ­¥«ì
78
.5	dd	panel_clr1,not	text_color	;­¨¦­ïï ¯ ­¥«ì
81
 
79
 
82
FIRST_HEX equ 0*65536+24
80
FIRST_HEX equ 0*65536+24
83
scroll_width_size equ 15
81
scroll_width_size equ 15
84
 
82
 
85
struct	f70
83
struct	f70
86
	func_n	rd 1
84
	func_n	rd 1
87
	param1	rd 1
85
	param1	rd 1
88
	param2	rd 1
86
	param2	rd 1
89
	param3	rd 1
87
	param3	rd 1
90
	param4	rd 1
88
	param4	rd 1
91
	rezerv	rb 1
89
	rezerv	rb 1
92
	name	rd 1
90
	name	rd 1
93
ends
91
ends
94
 
92
 
95
START:
93
START:
96
	mcall	68,11
94
	mcall	68,11
-
 
95
 
-
 
96
load_libraries l_libs_start,end_l_libs
-
 
97
 
97
;OpenDialog	initialisation
98
;OpenDialog	initialisation
98
init_OpenDialog	OpenDialog_data
99
	push    dword OpenDialog_data
-
 
100
	call    [OpenDialog_Init]
99
 
101
 
100
	mov	edi,filename_area
102
	mov	edi,filename_area
101
	mov	esi,start_temp_file_name
103
	mov	esi,start_temp_file_name
102
	xor	eax,eax
104
	xor	eax,eax
103
	cld
105
	cld
104
@@:
106
@@:
105
	lodsb
107
	lodsb
106
	stosb
108
	stosb
107
	test	eax,eax
109
	test	eax,eax
108
	jnz	@b
110
	jnz	@b
109
 
-
 
110
	load_library	boxlib_name,cur_dir_path,buf_cmd_lin,system_path,\
-
 
111
	err_message_found_lib,head_f_l,myimport,err_message_import,head_f_i
-
 
112
 
111
 
113
	mcall	40,0x27
112
	mcall	40,0x27
114
 
113
 
115
	mcall	68,12,32*1024	;áâà ­¨ç­ë© ¡ãä¥à
114
	mcall	68,12,32*1024	;áâà ­¨ç­ë© ¡ãä¥à
116
	mov	[screen_table],eax
115
	mov	[screen_table],eax
117
	mcall	68,12,4*1024
116
	mcall	68,12,4*1024
118
;	mov	[blocks_table],eax
117
;	mov	[blocks_table],eax
119
	mov	[file_buffer],eax
118
	mov	[file_buffer],eax
120
;	mov	esi,eax
119
;	mov	esi,eax
121
;	mcall	68,12,4*1024
120
;	mcall	68,12,4*1024
122
;	mov	[esi],eax
121
;	mov	[esi],eax
123
;	mov	[blocks_counter],1
122
;	mov	[blocks_counter],1
124
 
123
 
125
;	mcall	68,12,1024	;Procinfo area for function 9 in MenuBar
124
;	mcall	68,12,1024	;Procinfo area for function 9 in MenuBar
126
;	mov	[menu_data_1.procinfo],eax
125
;	mov	[menu_data_1.procinfo],eax
127
;	mov	[menu_data_2.procinfo],eax
126
;	mov	[menu_data_2.procinfo],eax
128
	mcall	68,12,1024
127
	mcall	68,12,1024
129
	mov	[copy_buf],eax
128
	mov	[copy_buf],eax
130
 
129
 
131
 
130
 
132
	;à §¬¥à	⥪ã饣® ¯ãâ¨
131
	;à §¬¥à	⥪ã饣® ¯ãâ¨
133
	mov	esi,cur_dir_path
132
	mov	esi,cur_dir_path
134
@@:
133
@@:
135
	cmp	byte [esi],0
134
	cmp	byte [esi],0
136
	je	@f
135
	je	@f
137
	inc	esi
136
	inc	esi
138
	jmp	@b
137
	jmp	@b
139
@@:
138
@@:
140
	sub	esi,cur_dir_path
139
	sub	esi,cur_dir_path
141
	mov	[edit1.pos],esi
140
	mov	[edit1.pos],esi
142
	mov	[edit1.size],esi
141
	mov	[edit1.size],esi
143
 
142
 
144
	;®¡é¥á¨á⥬­ë¥ ª« ¢¨è¨ ¤«ï Shift+ªãàá®àë
143
	;®¡é¥á¨á⥬­ë¥ ª« ¢¨è¨ ¤«ï Shift+ªãàá®àë
145
;	mcall	66,4,75,1
144
;	mcall	66,4,75,1
146
;	mcall	66,,77
145
;	mcall	66,,77
147
;	mcall	66,,72
146
;	mcall	66,,72
148
;	mcall	66,,80
147
;	mcall	66,,80
149
 
148
 
150
	call	ready_screen_buffer
149
	call	ready_screen_buffer
151
;	jmp	open_file
150
;	jmp	open_file
152
 
151
 
153
redraw_all:
152
redraw_all:
154
	call	draw_window_1
153
	call	draw_window_1
155
still:
154
still:
156
	mcall	10
155
	mcall	10
157
 
156
 
158
	cmp	eax,6
157
	cmp	eax,6
159
	je	mouse
158
	je	mouse
160
	dec	al
159
	dec	al
161
	jz	redraw_all
160
	jz	redraw_all
162
	dec	al
161
	dec	al
163
	jz	key
162
	jz	key
164
	dec	al
163
	dec	al
165
	jz	button
164
	jz	button
166
	jmp	still
165
	jmp	still
167
 
166
 
168
red:	call	ready_screen_buffer
167
red:	call	ready_screen_buffer
169
	call	main_area
168
	call	main_area
170
	jmp	still
169
	jmp	still
171
 
170
 
172
draw_window_1:
171
draw_window_1:
173
	call	start_draw
172
	call	start_draw
174
	call	draw_window
173
	call	draw_window
175
	call	show_file_size
174
	call	show_file_size
176
	call	show_codepage
175
	call	show_codepage
177
	call	show_insert
176
	call	show_insert
178
	call	ready_screen_buffer
177
	call	ready_screen_buffer
179
	call	main_area
178
	call	main_area
180
	ret
179
	ret
181
 
180
 
182
key:
181
key:
183
	mcall	2
182
	mcall	2
184
	dec	al
183
	dec	al
185
	jz	still
184
	jz	still
186
	dec	al
185
	dec	al
187
	jz	key.syst
186
	jz	key.syst
188
	cmp	ah,2
187
	cmp	ah,2
189
	je	Ctrl_B	;¢ë¤¥«¨âì ¡«®ª
188
	je	Ctrl_B	;¢ë¤¥«¨âì ¡«®ª
190
	cmp	ah,3
189
	cmp	ah,3
191
	je	Ctrl_C	;copy
190
	je	Ctrl_C	;copy
192
	cmp	ah,6
191
	cmp	ah,6
193
	je	Ctrl_F	;find
192
	je	Ctrl_F	;find
194
	cmp	ah,7
193
	cmp	ah,7
195
	je	Ctrl_G	;go to
194
	je	Ctrl_G	;go to
196
	cmp	ah,8
195
	cmp	ah,8
197
	je	BackSpace
196
	je	BackSpace
198
	cmp	ah,15
197
	cmp	ah,15
199
	je	open_dialog ;open_file ;Ctrl+O
198
	je	open_dialog ;open_file ;Ctrl+O
200
	cmp	ah,19
199
	cmp	ah,19
201
	je	open_dialog_save ;save_file ;Ctrl+S
200
	je	open_dialog_save ;save_file ;Ctrl+S
202
	cmp	ah,22
201
	cmp	ah,22
203
	je	Ctrl_V	;paste
202
	je	Ctrl_V	;paste
204
	cmp	ah,24
203
	cmp	ah,24
205
	je	Ctrl_X	;cut
204
	je	Ctrl_X	;cut
206
	cmp	ah,27
205
	cmp	ah,27
207
	je	ESC
206
	je	ESC
208
	cmp	ah,48
207
	cmp	ah,48
209
	jb	still
208
	jb	still
210
	cmp	ah,57
209
	cmp	ah,57
211
	jbe	input_from_keyboard	;0-9
210
	jbe	input_from_keyboard	;0-9
212
	cmp	ah,65
211
	cmp	ah,65
213
	jb	still
212
	jb	still
214
	cmp	ah,70
213
	cmp	ah,70
215
	jbe	input_from_keyboard	;A-F
214
	jbe	input_from_keyboard	;A-F
216
	cmp	ah,81
215
	cmp	ah,81
217
	jne	@f
216
	jne	@f
218
	call	Ctrl_DOWN
217
	call	Ctrl_DOWN
219
	jmp	red
218
	jmp	red
220
@@:
219
@@:
221
	cmp	ah,82
220
	cmp	ah,82
222
	jne	@f
221
	jne	@f
223
	call	Ctrl_UP
222
	call	Ctrl_UP
224
	jmp	red
223
	jmp	red
225
@@:
224
@@:
226
	cmp	ah,84
225
	cmp	ah,84
227
	jne	@f
226
	jne	@f
228
	call	Ctrl_HOME
227
	call	Ctrl_HOME
229
	jmp	red
228
	jmp	red
230
@@:
229
@@:
231
	cmp	ah,85
230
	cmp	ah,85
232
	je	Ctrl_END
231
	je	Ctrl_END
233
	cmp	ah,96
232
	cmp	ah,96
234
	je	change_codepage	;⨫줠, cp866 - cp1251
233
	je	change_codepage	;⨫줠, cp866 - cp1251
235
	cmp	ah,97
234
	cmp	ah,97
236
	jb	still
235
	jb	still
237
	cmp	ah,102
236
	cmp	ah,102
238
	jbe	input_from_keyboard ;a-f
237
	jbe	input_from_keyboard ;a-f
239
	cmp	ah,126
238
	cmp	ah,126
240
	jne	@f
239
	jne	@f
241
	xor	ah,ah
240
	xor	ah,ah
242
	jmp	change_codepage	;Shift+~, koi8-r
241
	jmp	change_codepage	;Shift+~, koi8-r
243
@@:
242
@@:
244
	cmp	ah,110
243
	cmp	ah,110
245
	je	invert_byte ;n
244
	je	invert_byte ;n
246
	cmp	ah,176
245
	cmp	ah,176
247
	jne	@f
246
	jne	@f
248
	call	LEFT
247
	call	LEFT
249
	jmp	red
248
	jmp	red
250
@@:
249
@@:
251
	cmp	ah,177
250
	cmp	ah,177
252
	jne	@f
251
	jne	@f
253
	call	DOWN
252
	call	DOWN
254
	jmp	red
253
	jmp	red
255
@@:
254
@@:
256
	cmp	ah,178
255
	cmp	ah,178
257
	je	UP
256
	je	UP
258
	cmp	ah,179
257
	cmp	ah,179
259
	je	RIGHT
258
	je	RIGHT
260
	cmp	ah,180
259
	cmp	ah,180
261
	jne	@f
260
	jne	@f
262
	call	HOME
261
	call	HOME
263
	jmp	red
262
	jmp	red
264
@@:
263
@@:
265
	cmp	ah,181
264
	cmp	ah,181
266
	je	END_
265
	je	END_
267
	cmp	ah,182
266
	cmp	ah,182
268
	je	DEL
267
	je	DEL
269
	cmp	ah,183
268
	cmp	ah,183
270
	je	PGDN
269
	je	PGDN
271
	cmp	ah,184
270
	cmp	ah,184
272
	je	PGUP
271
	je	PGUP
273
	cmp	ah,185
272
	cmp	ah,185
274
	je	Insert
273
	je	Insert
275
	jmp	still
274
	jmp	still
276
.syst:
275
.syst:
277
	cmp	ah,72
276
	cmp	ah,72
278
	cmp	ah,75
277
	cmp	ah,75
279
	cmp	ah,77
278
	cmp	ah,77
280
	cmp	ah,80
279
	cmp	ah,80
281
	jmp	still
280
	jmp	still
282
 
281
 
283
button:
282
button:
284
	mcall	17
283
	mcall	17
285
	dec	ah
284
	dec	ah
286
	jnz	still
285
	jnz	still
287
	jmp	close_prog
286
	jmp	close_prog
288
 
287
 
289
align	4
288
align	4
290
mouse:
289
mouse:
291
	mcall	37,7
290
	mcall	37,7
292
	test	eax,eax
291
	test	eax,eax
293
	jz	.menu_bar_1;.mouse
292
	jz	.menu_bar_1;.mouse
294
	bt	eax,15
293
	bt	eax,15
295
	jc	@f	;®¡à ¡®âª  ª®«ñᨪ  ¬ëè¨
294
	jc	@f	;®¡à ¡®âª  ª®«ñᨪ  ¬ëè¨
296
	mov	ecx,eax
295
	mov	ecx,eax
297
	shl	ecx,2
296
	shl	ecx,2
298
.1:
297
.1:
299
	call	Ctrl_DOWN
298
	call	Ctrl_DOWN
300
	loop	.1
299
	loop	.1
301
	jmp	red
300
	jmp	red
302
@@:
301
@@:
303
	xor	ecx,ecx
302
	xor	ecx,ecx
304
	sub	cx,ax
303
	sub	cx,ax
305
	shl	cx,2
304
	shl	cx,2
306
.2:
305
.2:
307
	call	Ctrl_UP
306
	call	Ctrl_UP
308
	loop	.2
307
	loop	.2
309
	jmp	red
308
	jmp	red
310
 
309
 
311
.menu_bar_1:
310
.menu_bar_1:
312
	call	.set_mouse_flag
311
	call	.set_mouse_flag
313
@@:
312
@@:
314
	push	dword menu_data_1	;mouse event for Menu 1
313
	push	dword menu_data_1	;mouse event for Menu 1
315
	call	[menu_bar_mouse]
314
	call	[menu_bar_mouse]
316
	cmp	[menu_data_1.click],dword 1
315
	cmp	[menu_data_1.click],dword 1
317
	jne	.menu_bar_2
316
	jne	.menu_bar_2
318
	cmp	[menu_data_1.cursor_out],dword 0
317
	cmp	[menu_data_1.cursor_out],dword 0
319
	jne	.analyse_out_menu_1
318
	jne	.analyse_out_menu_1
320
	jmp	.menu_bar_1
319
	jmp	.menu_bar_1
321
.menu_bar_2:
320
.menu_bar_2:
322
	push	dword menu_data_2
321
	push	dword menu_data_2
323
	call	[menu_bar_mouse]
322
	call	[menu_bar_mouse]
324
	cmp	[menu_data_2.click],dword 1
323
	cmp	[menu_data_2.click],dword 1
325
	jne	.menu_bar_3
324
	jne	.menu_bar_3
326
	cmp	[menu_data_2.cursor_out],dword 0
325
	cmp	[menu_data_2.cursor_out],dword 0
327
	jne	.analyse_out_menu_2
326
	jne	.analyse_out_menu_2
328
	jmp	.menu_bar_1
327
	jmp	.menu_bar_1
329
.menu_bar_3:
328
.menu_bar_3:
330
	push	dword menu_data_3
329
	push	dword menu_data_3
331
	call	[menu_bar_mouse]
330
	call	[menu_bar_mouse]
332
	cmp	[menu_data_3.click],dword 1
331
	cmp	[menu_data_3.click],dword 1
333
	jne	.scroll_bar
332
	jne	.scroll_bar
334
	cmp	[menu_data_3.cursor_out],dword 0
333
	cmp	[menu_data_3.cursor_out],dword 0
335
	jne	.analyse_out_menu_3
334
	jne	.analyse_out_menu_3
336
	jmp	.menu_bar_1
335
	jmp	.menu_bar_1
337
 
336
 
338
.set_mouse_flag:
337
.set_mouse_flag:
339
	xor	eax,eax
338
	xor	eax,eax
340
	inc	eax
339
	inc	eax
341
	mov	[menu_data_1.get_mouse_flag],eax
340
	mov	[menu_data_1.get_mouse_flag],eax
342
	mov	[menu_data_2.get_mouse_flag],eax
341
	mov	[menu_data_2.get_mouse_flag],eax
343
	mov	[menu_data_3.get_mouse_flag],eax
342
	mov	[menu_data_3.get_mouse_flag],eax
344
	ret
343
	ret
345
 
344
 
346
.analyse_out_menu_1:
345
.analyse_out_menu_1:
347
	cmp	[menu_data_1.cursor_out],dword 1
346
	cmp	[menu_data_1.cursor_out],dword 1
348
	je	open_dialog
347
	je	open_dialog
349
	cmp	[menu_data_1.cursor_out],dword 2
348
	cmp	[menu_data_1.cursor_out],dword 2
350
	je	open_dialog_save	;save_file
349
	je	open_dialog_save	;save_file
351
	cmp	[menu_data_1.cursor_out],dword 3
350
	cmp	[menu_data_1.cursor_out],dword 3
352
	je	close_prog
351
	je	close_prog
353
	jmp	still
352
	jmp	still
354
 
353
 
355
.analyse_out_menu_2:
354
.analyse_out_menu_2:
356
	cmp	[menu_data_2.cursor_out],dword 1
355
	cmp	[menu_data_2.cursor_out],dword 1
357
	jne	@f
356
	jne	@f
358
	add	[bytes_per_line],4
357
	add	[bytes_per_line],4
359
	jmp	redraw_all
358
	jmp	redraw_all
360
@@:
359
@@:
361
	cmp	[menu_data_2.cursor_out],dword 2
360
	cmp	[menu_data_2.cursor_out],dword 2
362
	jne	@f
361
	jne	@f
363
	add	[bytes_per_line],8
362
	add	[bytes_per_line],8
364
	jmp	redraw_all
363
	jmp	redraw_all
365
@@:
364
@@:
366
	cmp	[menu_data_2.cursor_out],dword 3
365
	cmp	[menu_data_2.cursor_out],dword 3
367
	jne	@f
366
	jne	@f
368
	cmp	[bytes_per_line],4
367
	cmp	[bytes_per_line],4
369
	je	still
368
	je	still
370
	sub	[bytes_per_line],4
369
	sub	[bytes_per_line],4
371
	jmp	redraw_all
370
	jmp	redraw_all
372
@@:
371
@@:
373
	cmp	[menu_data_2.cursor_out],dword 4
372
	cmp	[menu_data_2.cursor_out],dword 4
374
	jne	still
373
	jne	still
375
	cmp	[bytes_per_line],8
374
	cmp	[bytes_per_line],8
376
	jbe	still
375
	jbe	still
377
	sub	[bytes_per_line],8
376
	sub	[bytes_per_line],8
378
	jmp	redraw_all
377
	jmp	redraw_all
379
 
378
 
380
.analyse_out_menu_3:	;analyse result of Menu 2
379
.analyse_out_menu_3:	;analyse result of Menu 2
381
	cmp	[menu_data_3.cursor_out],dword 1
380
	cmp	[menu_data_3.cursor_out],dword 1
382
	jne	still
381
	jne	still
383
	call	create_help_window
382
	call	create_help_window
384
	jmp	still
383
	jmp	still
385
 
384
 
386
.scroll_bar:
385
.scroll_bar:
387
;	mcall	37,2
386
;	mcall	37,2
388
;	test	eax,eax
387
;	test	eax,eax
389
;	jnz	@f
388
;	jnz	@f
390
;	btr	[flags],5
389
;	btr	[flags],5
391
;	btr	[flags],7
390
;	btr	[flags],7
392
;	jmp	still
391
;	jmp	still
393
 
392
 
394
.mouse:
393
.mouse:
395
.vertical:
394
.vertical:
396
	mcall	37,2
395
	mcall	37,2
397
	test	eax,eax
396
	test	eax,eax
398
	jnz	@f
397
	jnz	@f
399
	btr	[flags],5
398
	btr	[flags],5
400
	btr	[flags],7
399
	btr	[flags],7
401
	jmp	still
400
	jmp	still
402
@@:
401
@@:
403
	bt	[flags],5
402
	bt	[flags],5
404
	jc	@f
403
	jc	@f
405
	bt	[flags],7
404
	bt	[flags],7
406
	jc	.horizontal_0
405
	jc	.horizontal_0
407
 
406
 
408
	mcall	37,1
407
	mcall	37,1
409
	shr	eax,16
408
	shr	eax,16
410
	cmp	ax,[scroll_bar_data_vertical.start_x]
409
	cmp	ax,[scroll_bar_data_vertical.start_x]
411
	jb	.horizontal
410
	jb	.horizontal
412
	sub	ax,[scroll_bar_data_vertical.start_x]
411
	sub	ax,[scroll_bar_data_vertical.start_x]
413
	cmp	ax,[scroll_bar_data_vertical.size_x]
412
	cmp	ax,[scroll_bar_data_vertical.size_x]
414
	jge	still
413
	jge	still
415
 
414
 
416
 
415
 
417
@@:
416
@@:
418
;	cmp	[scroll_bar_data_vertictal.delta2],0
417
;	cmp	[scroll_bar_data_vertictal.delta2],0
419
	;	jne	.horizontal
418
	;	jne	.horizontal
420
 
419
 
421
;	mov	eax,[scroll_bar_data_vertical.max_area]
420
;	mov	eax,[scroll_bar_data_vertical.max_area]
422
;	cmp	eax,[scroll_bar_data_vertical.cur_area]
421
;	cmp	eax,[scroll_bar_data_vertical.cur_area]
423
;	jbe	.horizontal
422
;	jbe	.horizontal
424
 
423
 
425
	;	mouse event for Vertical ScrollBar
424
	;	mouse event for Vertical ScrollBar
426
	mov	edi,[screen_table]
425
	mov	edi,[screen_table]
427
	mov	edi,[edi]
426
	mov	edi,[edi]
428
	cmp	edi,[file_size]
427
	cmp	edi,[file_size]
429
	jae	still
428
	jae	still
430
	push	dword scroll_bar_data_vertical	;draw for Vertical ScrollBar
429
	push	dword scroll_bar_data_vertical	;draw for Vertical ScrollBar
431
	call	[scrollbar_ver_mouse]
430
	call	[scrollbar_ver_mouse]
432
 
431
 
433
	xor	edx,edx
432
	xor	edx,edx
434
	mov	ebx,[scroll_bar_data_vertical.max_area]
433
	mov	ebx,[scroll_bar_data_vertical.max_area]
435
	sub	ebx,[scroll_bar_data_vertical.cur_area]
434
	sub	ebx,[scroll_bar_data_vertical.cur_area]
436
	mov	eax,[file_size]
435
	mov	eax,[file_size]
437
	mov	esi,[bytes_per_line]
436
	mov	esi,[bytes_per_line]
438
	mov	ecx,[scroll_bar_data_vertical.position]
437
	mov	ecx,[scroll_bar_data_vertical.position]
439
	div	esi
438
	div	esi
440
	xor	edx,edx
439
	xor	edx,edx
441
	mul	ecx
440
	mul	ecx
442
	div	ebx
441
	div	ebx
443
	mul	esi
442
	mul	esi
444
	cmp	eax,[file_size]
443
	cmp	eax,[file_size]
445
	jng	@f
444
	jng	@f
446
	sub	eax,esi;[bytes_per_line]
445
	sub	eax,esi;[bytes_per_line]
447
@@:
446
@@:
448
	mov	ecx,[cursor]
447
	mov	ecx,[cursor]
449
	inc	ecx
448
	inc	ecx
450
	shr	ecx,1
449
	shr	ecx,1
451
	add	ecx,eax
450
	add	ecx,eax
452
@@:
451
@@:
453
	cmp	ecx,[file_size]
452
	cmp	ecx,[file_size]
454
	jle	@f
453
	jle	@f
455
	sub	ecx,esi;[bytes_per_line]
454
	sub	ecx,esi;[bytes_per_line]
456
	sub	eax,esi;[bytes_per_line]
455
	sub	eax,esi;[bytes_per_line]
457
	jmp	@b
456
	jmp	@b
458
@@:
457
@@:
459
	mov	[begin_offset],eax
458
	mov	[begin_offset],eax
460
	bts	[flags],5
459
	bts	[flags],5
461
 
460
 
462
	mov	eax,scroll_bar_data_vertical.redraw
461
	mov	eax,scroll_bar_data_vertical.redraw
463
	xor	ebx,ebx
462
	xor	ebx,ebx
464
;	cmp	[eax],ebx
463
;	cmp	[eax],ebx
465
;	je	@f
464
;	je	@f
466
	mov	[eax],ebx
465
	mov	[eax],ebx
467
	jmp	red
466
	jmp	red
468
;@@:
467
;@@:
469
;	cmp	[scroll_bar_data_vertical.delta2],0
468
;	cmp	[scroll_bar_data_vertical.delta2],0
470
;	jne	still
469
;	jne	still
471
.horizontal:
470
.horizontal:
472
	mov	eax,[scroll_bar_data_horizontal.max_area]
471
	mov	eax,[scroll_bar_data_horizontal.max_area]
473
	cmp	eax,[scroll_bar_data_horizontal.cur_area]
472
	cmp	eax,[scroll_bar_data_horizontal.cur_area]
474
	jbe	.other
473
	jbe	.other
475
 
474
 
476
	mcall	37,1
475
	mcall	37,1
477
	cmp	ax,[scroll_bar_data_horizontal.start_y]
476
	cmp	ax,[scroll_bar_data_horizontal.start_y]
478
	jb	still
477
	jb	still
479
	sub	ax,[scroll_bar_data_horizontal.start_y]
478
	sub	ax,[scroll_bar_data_horizontal.start_y]
480
	cmp	ax,[scroll_bar_data_horizontal.size_y]
479
	cmp	ax,[scroll_bar_data_horizontal.size_y]
481
	jge	still
480
	jge	still
482
 
481
 
483
	; mouse event for Horizontal ScrollBar
482
	; mouse event for Horizontal ScrollBar
484
.horizontal_0:
483
.horizontal_0:
485
;	mcall	37,2
484
;	mcall	37,2
486
;	test	eax,eax
485
;	test	eax,eax
487
;	jnz	@f
486
;	jnz	@f
488
;	btr	[flags],5
487
;	btr	[flags],5
489
;	btr	[flags],7
488
;	btr	[flags],7
490
;	jmp	still
489
;	jmp	still
491
;@@:;	bt	[flags],7
490
;@@:;	bt	[flags],7
492
;	jc	@f
491
;	jc	@f
493
 
492
 
494
;	mcall	37,1
493
;	mcall	37,1
495
;	shr	eax,16
494
;	shr	eax,16
496
;	cmp	ax,[scroll_bar_data_vertical.start_x]
495
;	cmp	ax,[scroll_bar_data_vertical.start_x]
497
;	jb	.horizontal
496
;	jb	.horizontal
498
;	sub	ax,[scroll_bar_data_vertical.start_x]
497
;	sub	ax,[scroll_bar_data_vertical.start_x]
499
;	cmp	ax,[scroll_bar_data_vertical.size_x]
498
;	cmp	ax,[scroll_bar_data_vertical.size_x]
500
;	jge	still
499
;	jge	still
501
;@@:
500
;@@:
502
	; mouse event for Vertical ScrollBar
501
	; mouse event for Vertical ScrollBar
503
 
502
 
504
	mov	eax,[ready_screen_buffer.string_size]
503
	mov	eax,[ready_screen_buffer.string_size]
505
	shr	eax,1
504
	shr	eax,1
506
	cmp	eax,[len_str_scr]
505
	cmp	eax,[len_str_scr]
507
	jle	still
506
	jle	still
508
	push	dword scroll_bar_data_horizontal	;draw for Horizontal ScrollBar
507
	push	dword scroll_bar_data_horizontal	;draw for Horizontal ScrollBar
509
	call	[scrollbar_hor_mouse]
508
	call	[scrollbar_hor_mouse]
510
 
509
 
511
	xor	edx,edx
510
	xor	edx,edx
512
	mov	eax,[scroll_bar_data_horizontal.position]
511
	mov	eax,[scroll_bar_data_horizontal.position]
513
	mov	ebx,[ready_screen_buffer.string_size]
512
	mov	ebx,[ready_screen_buffer.string_size]
514
	shr	ebx,1
513
	shr	ebx,1
515
	mul	ebx
514
	mul	ebx
516
	mov	ebx,[scroll_bar_data_horizontal.max_area]
515
	mov	ebx,[scroll_bar_data_horizontal.max_area]
517
	sub	ebx,[scroll_bar_data_horizontal.cur_area]
516
	sub	ebx,[scroll_bar_data_horizontal.cur_area]
518
	div	ebx
517
	div	ebx
519
	mov	[beg_str_scr],eax
518
	mov	[beg_str_scr],eax
520
	add	eax,[len_str_scr]
519
	add	eax,[len_str_scr]
521
	mov	ebx,[ready_screen_buffer.string_size]
520
	mov	ebx,[ready_screen_buffer.string_size]
522
	shr	ebx,1
521
	shr	ebx,1
523
	cmp	eax,ebx
522
	cmp	eax,ebx
524
	jle	@f
523
	jle	@f
525
	mov	eax,[ready_screen_buffer.string_size]
524
	mov	eax,[ready_screen_buffer.string_size]
526
	shr	eax,1
525
	shr	eax,1
527
	sub	eax,[len_str_scr]
526
	sub	eax,[len_str_scr]
528
	mov	[beg_str_scr],eax
527
	mov	[beg_str_scr],eax
529
@@:
528
@@:
530
	mov	eax,scroll_bar_data_horizontal.redraw
529
	mov	eax,scroll_bar_data_horizontal.redraw
531
	xor	ebx,ebx
530
	xor	ebx,ebx
532
	cmp	[eax],ebx
531
	cmp	[eax],ebx
533
	je	.other
532
	je	.other
534
	mov	[eax],ebx
533
	mov	[eax],ebx
535
;	call	draw_window
534
;	call	draw_window
536
	call	main_area
535
	call	main_area
537
	bts	[flags],7
536
	bts	[flags],7
538
	jmp	still
537
	jmp	still
539
.other:
538
.other:
540
;	cmp	[scroll_bar_data_vertical.delta2],0
539
;	cmp	[scroll_bar_data_vertical.delta2],0
541
;	jne	still
540
;	jne	still
542
;	cmp	[scroll_bar_data_horizontal.delta2],0
541
;	cmp	[scroll_bar_data_horizontal.delta2],0
543
;	jne	still
542
;	jne	still
544
	jmp	still
543
	jmp	still
545
 
544
 
546
 
545
 
547
 
546
 
548
;------------------------------------------------
547
;------------------------------------------------
549
 
548
 
550
;------------------------------------------------
549
;------------------------------------------------
551
 
550
 
552
 
551
 
553
align	4
552
align	4
554
ready_screen_buffer:
553
ready_screen_buffer:
555
	mov	[.fl],0
554
	mov	[.fl],0
556
	mov	esi,[screen_table]
555
	mov	esi,[screen_table]
557
	add	esi,4
556
	add	esi,4
558
	mov	ecx,[number_strings]
557
	mov	ecx,[number_strings]
559
	mov	[.number_strings],cx
558
	mov	[.number_strings],cx
560
	push	[cursor]
559
	push	[cursor]
561
	pop	[.cursor]
560
	pop	[.cursor]
562
	push	[file_size]
561
	push	[file_size]
563
	pop	[.length_to_end]
562
	pop	[.length_to_end]
564
	mov	edi,[begin_offset]
563
	mov	edi,[begin_offset]
565
 
564
 
566
	mov	[.shblock_end],0
565
	mov	[.shblock_end],0
567
	mov	[.shblock_beg],0
566
	mov	[.shblock_beg],0
568
	bt	[flags],8
567
	bt	[flags],8
569
	jnc	@f
568
	jnc	@f
570
	mov	eax,[shblock_beg]
569
	mov	eax,[shblock_beg]
571
	add	eax,[file_buffer]
570
	add	eax,[file_buffer]
572
	mov	[.shblock_beg],eax
571
	mov	[.shblock_beg],eax
573
	mov	eax,[shblock_end]
572
	mov	eax,[shblock_end]
574
	add	eax,[file_buffer]
573
	add	eax,[file_buffer]
575
	mov	[.shblock_end],eax
574
	mov	[.shblock_end],eax
576
@@:
575
@@:
577
	mov	[.offset],edi
576
	mov	[.offset],edi
578
	sub	[.length_to_end],edi
577
	sub	[.length_to_end],edi
579
	jz	.pre_next_string
578
	jz	.pre_next_string
580
	add	edi,[file_buffer]
579
	add	edi,[file_buffer]
581
 
580
 
582
.next_string:
581
.next_string:
583
	mov	word [esi],0x2020
582
	mov	word [esi],0x2020
584
	add	esi,2
583
	add	esi,2
585
	mov	eax,0x20302030
584
	mov	eax,0x20302030
586
	mov	dword [esi],eax
585
	mov	dword [esi],eax
587
	mov	dword [esi+4],eax
586
	mov	dword [esi+4],eax
588
	mov	dword [esi+8],eax
587
	mov	dword [esi+8],eax
589
	mov	dword [esi+12],eax
588
	mov	dword [esi+12],eax
590
	push	edi
589
	push	edi
591
	mov	ecx,8
590
	mov	ecx,8
592
	mov	edi,[.offset]
591
	mov	edi,[.offset]
593
@@:
592
@@:
594
	mov	eax,edi
593
	mov	eax,edi
595
	and	eax,0xF
594
	and	eax,0xF
596
	cmp	al,10
595
	cmp	al,10
597
	sbb	al,69h
596
	sbb	al,69h
598
	das
597
	das
599
	mov	[esi+ecx*2-2],al
598
	mov	[esi+ecx*2-2],al
600
	shr	edi,4
599
	shr	edi,4
601
	loop	@b
600
	loop	@b
602
	mov	word [esi+16],0x203a	;¤¢®¥â®ç¨¥
601
	mov	word [esi+16],0x203a	;¤¢®¥â®ç¨¥
603
	mov	eax,[bytes_per_line]
602
	mov	eax,[bytes_per_line]
604
	add	[.offset],eax
603
	add	[.offset],eax
605
	mov	[.string_size],2+4*4+4+2
604
	mov	[.string_size],2+4*4+4+2
606
	add	esi,4*4+4+2
605
	add	esi,4*4+4+2
607
	pop	edi
606
	pop	edi
608
	mov	[.temp],edi
607
	mov	[.temp],edi
609
	push	[.cursor]
608
	push	[.cursor]
610
	pop	[.cursor_temp]
609
	pop	[.cursor_temp]
611
 
610
 
612
	;hex	§­ ç¥­¨ï
611
	;hex	§­ ç¥­¨ï
613
	mov	dword [esi-4],0x20202020
612
	mov	dword [esi-4],0x20202020
614
 
613
 
615
	mov	edx,[bytes_per_line]
614
	mov	edx,[bytes_per_line]
616
.next_group:
615
.next_group:
617
	mov	ecx,[group_bytes]
616
	mov	ecx,[group_bytes]
618
 
617
 
619
.next_byte:
618
.next_byte:
620
	mov	al,[edi]
619
	mov	al,[edi]
621
	ror	ax,4
620
	ror	ax,4
622
	cmp	al,10
621
	cmp	al,10
623
	sbb	al,69h
622
	sbb	al,69h
624
	das
623
	das
625
	mov	[esi],al
624
	mov	[esi],al
626
	mov	byte [esi+1],0x20
625
	mov	byte [esi+1],0x20
627
	cmp	edi,[.shblock_end]
626
	cmp	edi,[.shblock_end]
628
	ja	@f
627
	ja	@f
629
	cmp	edi,[.shblock_beg]
628
	cmp	edi,[.shblock_beg]
630
	jl	@f
629
	jl	@f
631
	mov	byte [esi+1],(0x20+3*4)
630
	mov	byte [esi+1],(0x20+3*4)
632
@@:
631
@@:
633
	dec	[.cursor]
632
	dec	[.cursor]
634
	jnz	@f
633
	jnz	@f
635
	mov	byte [esi+1],(0x20+2*4)
634
	mov	byte [esi+1],(0x20+2*4)
636
@@:
635
@@:
637
	shr	ax,16-4
636
	shr	ax,16-4
638
	cmp	al,10
637
	cmp	al,10
639
	sbb	al,69h
638
	sbb	al,69h
640
	das
639
	das
641
	mov	[esi+2],al
640
	mov	[esi+2],al
642
	mov	byte [esi+3],0x20
641
	mov	byte [esi+3],0x20
643
	cmp	edi,[.shblock_end]
642
	cmp	edi,[.shblock_end]
644
	ja	@f
643
	ja	@f
645
	cmp	edi,[.shblock_beg]
644
	cmp	edi,[.shblock_beg]
646
	jl	@f
645
	jl	@f
647
	mov	byte [esi+3],(0x20+3*4)
646
	mov	byte [esi+3],(0x20+3*4)
648
@@:
647
@@:
649
	dec	[.cursor]
648
	dec	[.cursor]
650
	jnz	@f
649
	jnz	@f
651
	mov	byte [esi+3],(0x20+2*4)
650
	mov	byte [esi+3],(0x20+2*4)
652
@@:
651
@@:
653
	mov	word [esi+4],0x2020
652
	mov	word [esi+4],0x2020
654
	add	[.string_size],6
653
	add	[.string_size],6
655
	add	esi,6
654
	add	esi,6
656
	inc	edi
655
	inc	edi
657
	dec	[.length_to_end]
656
	dec	[.length_to_end]
658
	jz	.to_null
657
	jz	.to_null
659
	dec	ecx
658
	dec	ecx
660
	jz	@f
659
	jz	@f
661
	dec	edx
660
	dec	edx
662
	jnz	.next_byte
661
	jnz	.next_byte
663
	jz	.ascii
662
	jz	.ascii
664
@@:
663
@@:
665
	mov	word [esi],0x2020
664
	mov	word [esi],0x2020
666
	add	esi,2
665
	add	esi,2
667
	add	[.string_size],2
666
	add	[.string_size],2
668
	dec	edx
667
	dec	edx
669
	jnz	.next_group;byte
668
	jnz	.next_group;byte
670
	sub	esi,2
669
	sub	esi,2
671
	sub	[.string_size],2
670
	sub	[.string_size],2
672
	jz	.ascii
671
	jz	.ascii
673
.ascii:
672
.ascii:
674
	push	edi
673
	push	edi
675
	mov	edi,[.temp]
674
	mov	edi,[.temp]
676
	mov	word [esi],0x2020
675
	mov	word [esi],0x2020
677
	mov	ebx,[.cursor_temp]
676
	mov	ebx,[.cursor_temp]
678
	add	esi,2
677
	add	esi,2
679
	add	[.string_size],2
678
	add	[.string_size],2
680
	mov	ecx,[bytes_per_line]
679
	mov	ecx,[bytes_per_line]
681
@@:
680
@@:
682
	mov	al,[edi]
681
	mov	al,[edi]
683
	mov	[esi],al
682
	mov	[esi],al
684
	mov	byte [esi+1],0x20
683
	mov	byte [esi+1],0x20
685
	dec	ebx
684
	dec	ebx
686
	jnz	.s1
685
	jnz	.s1
687
	mov	byte [esi+1],(0x20+3*4)
686
	mov	byte [esi+1],(0x20+3*4)
688
.s1:
687
.s1:
689
	dec	ebx
688
	dec	ebx
690
	jnz	.s2
689
	jnz	.s2
691
	mov	byte [esi+1],(0x20+3*4)
690
	mov	byte [esi+1],(0x20+3*4)
692
.s2:
691
.s2:
693
	inc	edi
692
	inc	edi
694
	add	esi,2
693
	add	esi,2
695
	add	[.string_size],2
694
	add	[.string_size],2
696
	loop	@b
695
	loop	@b
697
	pop	edi
696
	pop	edi
698
	mov	edx,[bytes_per_line]
697
	mov	edx,[bytes_per_line]
699
	dec	[.number_strings]
698
	dec	[.number_strings]
700
	jnz	.next_string
699
	jnz	.next_string
701
	ret
700
	ret
702
 
701
 
703
.fl	db 0
702
.fl	db 0
704
.fl_buf	dd 0
703
.fl_buf	dd 0
705
.to_null:
704
.to_null:
706
	dec	[.fl]
705
	dec	[.fl]
707
	mov	[.fl_buf],edi
706
	mov	[.fl_buf],edi
708
	jmp	.pre_next_byte0
707
	jmp	.pre_next_byte0
709
 
708
 
710
.pre_next_string:
709
.pre_next_string:
711
	mov	word [esi],0x2020
710
	mov	word [esi],0x2020
712
	add	esi,2
711
	add	esi,2
713
	mov	eax,0x20302030
712
	mov	eax,0x20302030
714
	mov	dword [esi],eax
713
	mov	dword [esi],eax
715
	mov	dword [esi+4],eax
714
	mov	dword [esi+4],eax
716
	mov	dword [esi+8],eax
715
	mov	dword [esi+8],eax
717
	mov	dword [esi+12],eax
716
	mov	dword [esi+12],eax
718
	mov	ecx,8
717
	mov	ecx,8
719
	mov	edi,[.offset]
718
	mov	edi,[.offset]
720
@@:
719
@@:
721
	mov	eax,edi
720
	mov	eax,edi
722
	and	eax,0xF
721
	and	eax,0xF
723
	cmp	al,10
722
	cmp	al,10
724
	sbb	al,69h
723
	sbb	al,69h
725
	das
724
	das
726
	mov	[esi+ecx*2-2],al
725
	mov	[esi+ecx*2-2],al
727
	shr	edi,4
726
	shr	edi,4
728
	loop	@b
727
	loop	@b
729
	mov	word [esi+16],0x203a	;¤¢®¥â®ç¨¥
728
	mov	word [esi+16],0x203a	;¤¢®¥â®ç¨¥
730
	mov	eax,[bytes_per_line]
729
	mov	eax,[bytes_per_line]
731
	add	[.offset],eax
730
	add	[.offset],eax
732
	mov	[.string_size],2+4*4+4+2
731
	mov	[.string_size],2+4*4+4+2
733
	add	esi,4*4+4+2
732
	add	esi,4*4+4+2
734
	push	[.cursor]
733
	push	[.cursor]
735
	pop	[.cursor_temp]
734
	pop	[.cursor_temp]
736
 
735
 
737
	;hex §­ ç¥­¨ï
736
	;hex §­ ç¥­¨ï
738
	mov	dword [esi-4],0x20202020
737
	mov	dword [esi-4],0x20202020
739
 
738
 
740
	mov	edx,[bytes_per_line]
739
	mov	edx,[bytes_per_line]
741
.pre_next_group:
740
.pre_next_group:
742
	mov	ecx,[group_bytes]
741
	mov	ecx,[group_bytes]
743
 
742
 
744
.pre_next_byte:
743
.pre_next_byte:
745
	mov	dword [esi],0x20202020
744
	mov	dword [esi],0x20202020
746
	dec	[.cursor]
745
	dec	[.cursor]
747
	jnz	@f
746
	jnz	@f
748
	mov	byte [esi+1],(0x20+2*4)
747
	mov	byte [esi+1],(0x20+2*4)
749
@@:
748
@@:
750
	dec	[.cursor]
749
	dec	[.cursor]
751
	jnz	@f
750
	jnz	@f
752
	mov	byte [esi+3],(0x20+2*4)
751
	mov	byte [esi+3],(0x20+2*4)
753
@@:
752
@@:
754
	mov	word [esi+4],0x2020
753
	mov	word [esi+4],0x2020
755
	add	[.string_size],6
754
	add	[.string_size],6
756
	add	esi,6
755
	add	esi,6
757
.pre_next_byte0:
756
.pre_next_byte0:
758
	dec	ecx
757
	dec	ecx
759
	jz	@f
758
	jz	@f
760
	dec	edx
759
	dec	edx
761
	jnz	.pre_next_byte
760
	jnz	.pre_next_byte
762
	jz	.pre_ascii
761
	jz	.pre_ascii
763
@@:
762
@@:
764
	mov	word [esi],0x2020
763
	mov	word [esi],0x2020
765
	add	esi,2
764
	add	esi,2
766
	add	[.string_size],2
765
	add	[.string_size],2
767
	dec	edx
766
	dec	edx
768
	jnz	.pre_next_group;byte
767
	jnz	.pre_next_group;byte
769
	sub	esi,2
768
	sub	esi,2
770
	sub	[.string_size],2
769
	sub	[.string_size],2
771
	jz	.pre_ascii
770
	jz	.pre_ascii
772
 
771
 
773
.pre_ascii:
772
.pre_ascii:
774
	mov	word [esi],0x2020
773
	mov	word [esi],0x2020
775
	add	esi,2
774
	add	esi,2
776
	add	[.string_size],2
775
	add	[.string_size],2
777
	mov	ecx,[bytes_per_line]
776
	mov	ecx,[bytes_per_line]
778
	cmp	[.fl],0	;¯à®¢¥àª  ä« £ 
777
	cmp	[.fl],0	;¯à®¢¥àª  ä« £ 
779
	jne	.last_ascii
778
	jne	.last_ascii
780
	mov	ebx,[.cursor_temp]
779
	mov	ebx,[.cursor_temp]
781
@@:
780
@@:
782
	mov	word [esi],0x2020
781
	mov	word [esi],0x2020
783
	dec	ebx
782
	dec	ebx
784
	jnz	.ps1
783
	jnz	.ps1
785
	mov	byte [esi+1],(0x20+3*4)
784
	mov	byte [esi+1],(0x20+3*4)
786
.ps1:
785
.ps1:
787
	dec	ebx
786
	dec	ebx
788
	jnz	.ps2
787
	jnz	.ps2
789
	mov	byte [esi+1],(0x20+3*4)
788
	mov	byte [esi+1],(0x20+3*4)
790
.ps2:
789
.ps2:
791
	add	esi,2
790
	add	esi,2
792
	add	[.string_size],2
791
	add	[.string_size],2
793
.1:
792
.1:
794
	loop	@b
793
	loop	@b
795
	mov	edx,[bytes_per_line]
794
	mov	edx,[bytes_per_line]
796
	dec	[.number_strings]
795
	dec	[.number_strings]
797
	jnz	.pre_next_string
796
	jnz	.pre_next_string
798
	ret
797
	ret
799
 
798
 
800
;ª®à४⭮ ®¡à ¡ â뢠¥¬ 䨭 «ì­ãî áâபã ä ©« , ¤«¨­  ª®â®à®© ¢ à¨ â¨¢­ 
799
;ª®à४⭮ ®¡à ¡ â뢠¥¬ 䨭 «ì­ãî áâபã ä ©« , ¤«¨­  ª®â®à®© ¢ à¨ â¨¢­ 
801
.last_ascii:
800
.last_ascii:
802
	mov	ebx,[.fl_buf]
801
	mov	ebx,[.fl_buf]
803
	sub	ebx,[.temp]
802
	sub	ebx,[.temp]
804
	sub	ecx,ebx
803
	sub	ecx,ebx
805
	mov	edi,[.temp]
804
	mov	edi,[.temp]
806
	mov	[.fl],0
805
	mov	[.fl],0
807
@@:
806
@@:
808
	mov	al,[edi]
807
	mov	al,[edi]
809
	mov	[esi],al
808
	mov	[esi],al
810
	mov	byte [esi+1],0x20
809
	mov	byte [esi+1],0x20
811
	dec	[.cursor_temp]
810
	dec	[.cursor_temp]
812
	jnz	.la1
811
	jnz	.la1
813
	mov	byte [esi+1],(0x20+3*4)
812
	mov	byte [esi+1],(0x20+3*4)
814
.la1:
813
.la1:
815
	dec	[.cursor_temp]
814
	dec	[.cursor_temp]
816
	jnz	.la2
815
	jnz	.la2
817
	mov	byte [esi+1],(0x20+3*4)
816
	mov	byte [esi+1],(0x20+3*4)
818
.la2:
817
.la2:
819
	inc	edi
818
	inc	edi
820
	add	esi,2
819
	add	esi,2
821
	add	[.string_size],2
820
	add	[.string_size],2
822
	dec	ebx
821
	dec	ebx
823
	jnz	@b
822
	jnz	@b
824
	inc	ecx
823
	inc	ecx
825
	jmp	.1
824
	jmp	.1
826
 
825
 
827
.string_size	dd 16
826
.string_size	dd 16
828
.number_strings	dw 0
827
.number_strings	dw 0
829
.length_to_end	dd 0
828
.length_to_end	dd 0
830
.temp		dd 0
829
.temp		dd 0
831
.offset		dd 0
830
.offset		dd 0
832
.cursor		dd 0
831
.cursor		dd 0
833
.cursor_temp	dd 0
832
.cursor_temp	dd 0
834
.shblock_beg	dd 0
833
.shblock_beg	dd 0
835
.shblock_end	dd 0
834
.shblock_end	dd 0
836
 
835
 
837
 
836
 
838
align	4
837
align	4
839
main_area:
838
main_area:
840
	mov	ecx,[number_strings]
839
	mov	ecx,[number_strings]
841
	mov	[.number_strings],cx
840
	mov	[.number_strings],cx
842
	push	[len_str_scr]
841
	push	[len_str_scr]
843
	pop	[.len_str_scr]
842
	pop	[.len_str_scr]
844
	mov	eax,[ready_screen_buffer.string_size]
843
	mov	eax,[ready_screen_buffer.string_size]
845
	shr	eax,1
844
	shr	eax,1
846
	mov	[.string_size],eax
845
	mov	[.string_size],eax
847
	mov	edi,[screen_table]
846
	mov	edi,[screen_table]
848
	mov	edi,[edi]
847
	mov	edi,[edi]
849
	cmp	[file_size],edi
848
	cmp	[file_size],edi
850
	jbe	.4
849
	jbe	.4
851
	xor	edx,edx	;¯®«§ã­®ª
850
	xor	edx,edx	;¯®«§ã­®ª
852
	mov	ebx,[scroll_bar_data_vertical.max_area]
851
	mov	ebx,[scroll_bar_data_vertical.max_area]
853
	sub	ebx,[scroll_bar_data_vertical.cur_area]
852
	sub	ebx,[scroll_bar_data_vertical.cur_area]
854
	mov	ecx,[file_size]
853
	mov	ecx,[file_size]
855
	mov	eax,[current_offset]
854
	mov	eax,[current_offset]
856
	test	eax,eax
855
	test	eax,eax
857
	jnz	.3
856
	jnz	.3
858
	inc	eax
857
	inc	eax
859
.3:
858
.3:
860
	mul	ebx
859
	mul	ebx
861
	test	ecx,ecx
860
	test	ecx,ecx
862
	jnz	.5
861
	jnz	.5
863
	inc	ecx
862
	inc	ecx
864
.5:
863
.5:
865
	div	ecx
864
	div	ecx
866
	mov	[scroll_bar_data_vertical.position],eax
865
	mov	[scroll_bar_data_vertical.position],eax
867
 
866
 
868
	mcall	37,2	;ª¯®¯ª 	¬ëè¨ ­ ¦ â  - ­¥â á¬ëá«  ¯¥à¥à¨á®¢ë¢ âì ScrollBar
867
	mcall	37,2	;ª¯®¯ª 	¬ëè¨ ­ ¦ â  - ­¥â á¬ëá«  ¯¥à¥à¨á®¢ë¢ âì ScrollBar
869
	test	eax,eax
868
	test	eax,eax
870
	jnz	.4
869
	jnz	.4
871
	push	dword scroll_bar_data_vertical
870
	push	dword scroll_bar_data_vertical
872
	call	[scrollbar_ver_mouse]
871
	call	[scrollbar_ver_mouse]
873
 
872
 
874
	push	dword scroll_bar_data_vertical	;draw for Vertical ScrollBar
873
	push	dword scroll_bar_data_vertical	;draw for Vertical ScrollBar
875
	call	[scrollbar_ver_draw]
874
	call	[scrollbar_ver_draw]
876
 
875
 
877
;	push	dword scroll_bar_data_vertical	;draw for Vertical ScrollBar
876
;	push	dword scroll_bar_data_vertical	;draw for Vertical ScrollBar
878
;	call	[scrollbar_ver_draw]
877
;	call	[scrollbar_ver_draw]
879
 
878
 
880
;	xor	eax,eax
879
;	xor	eax,eax
881
;	inc	eax
880
;	inc	eax
882
;	mov	[scroll_bar_data_vertical.all_redraw],eax
881
;	mov	[scroll_bar_data_vertical.all_redraw],eax
883
;	push	dword scroll_bar_data_vertical	;draw for Vertical ScrollBar
882
;	push	dword scroll_bar_data_vertical	;draw for Vertical ScrollBar
884
;	call	[scrollbar_ver_draw]
883
;	call	[scrollbar_ver_draw]
885
;	xor	eax,eax	;reset	all_redraw	flag
884
;	xor	eax,eax	;reset	all_redraw	flag
886
;	mov	[scroll_bar_data_vertical.all_redraw],eax
885
;	mov	[scroll_bar_data_vertical.all_redraw],eax
887
 
886
 
888
.4:
887
.4:
889
	mov	esi,0x000001	;梥⠨ ç¨á«® ¡¨â ­  ¯¨ªá¥«ì
888
	mov	esi,0x000001	;梥⠨ ç¨á«® ¡¨â ­  ¯¨ªá¥«ì
890
	mov	edx,FIRST_HEX	;ª®®à¤¨­ âë ¯¥à¢®£® hex
889
	mov	edx,FIRST_HEX	;ª®®à¤¨­ âë ¯¥à¢®£® hex
891
	call	show_current_offset
890
	call	show_current_offset
892
	mov	edi,[screen_table]
891
	mov	edi,[screen_table]
893
	add	edi,4
892
	add	edi,4
894
	mov	ecx,[beg_str_scr]
893
	mov	ecx,[beg_str_scr]
895
	sub	[.string_size],ecx
894
	sub	[.string_size],ecx
896
	shl	ecx,1
895
	shl	ecx,1
897
	add	edi,ecx
896
	add	edi,ecx
898
.out:
897
.out:
899
	push	edi
898
	push	edi
900
	movzx	ebx,byte [edi]
899
	movzx	ebx,byte [edi]
901
	cmp	bl,128	;¯à®¢¥àª  ­  ¯à¨­ ¤«¥¦­®áâì ᨬ¢®«  ª à áè¨à¥­­®© â ¡«¨æ¥
900
	cmp	bl,128	;¯à®¢¥àª  ­  ¯à¨­ ¤«¥¦­®áâì ᨬ¢®«  ª à áè¨à¥­­®© â ¡«¨æ¥
902
	jb	.7
901
	jb	.7
903
	add	ebx,[codepage_offset]
902
	add	ebx,[codepage_offset]
904
.7:
903
.7:
905
	movzx	edi,byte [edi+1]
904
	movzx	edi,byte [edi+1]
906
	lea	edi,[(edi*2-0x40)]
905
	lea	edi,[(edi*2-0x40)]
907
	add	edi,palitra
906
	add	edi,palitra
908
	shl	bx,4
907
	shl	bx,4
909
	add	ebx,font_buffer
908
	add	ebx,font_buffer
910
	mov	ecx,8*65536+16
909
	mov	ecx,8*65536+16
911
	mov	ebp,0
910
	mov	ebp,0
912
	mcall	65
911
	mcall	65
913
	pop	edi
912
	pop	edi
914
 
913
 
915
	add	edi,2
914
	add	edi,2
916
	add	edx,8*65536
915
	add	edx,8*65536
917
 
916
 
918
	dec	[.len_str_scr]
917
	dec	[.len_str_scr]
919
	jz	.loop_str
918
	jz	.loop_str
920
	dec	[.string_size]
919
	dec	[.string_size]
921
	jz	.next_string
920
	jz	.next_string
922
 
921
 
923
	push	edi
922
	push	edi
924
	movzx	ebx,byte [edi]
923
	movzx	ebx,byte [edi]
925
	cmp	bl,128
924
	cmp	bl,128
926
	jb	.8
925
	jb	.8
927
	add	ebx,[codepage_offset]
926
	add	ebx,[codepage_offset]
928
.8:
927
.8:
929
	movzx	edi,byte [edi+1]
928
	movzx	edi,byte [edi+1]
930
	lea	edi,[(edi*2-0x40)]
929
	lea	edi,[(edi*2-0x40)]
931
	add	edi,palitra
930
	add	edi,palitra
932
	shl	bx,4
931
	shl	bx,4
933
	add	ebx,font_buffer
932
	add	ebx,font_buffer
934
	mcall
933
	mcall
935
	pop	edi
934
	pop	edi
936
 
935
 
937
	add	edi,2
936
	add	edi,2
938
	add	edx,8*65536
937
	add	edx,8*65536
939
 
938
 
940
	dec	[.len_str_scr]
939
	dec	[.len_str_scr]
941
	jz	.loop_str
940
	jz	.loop_str
942
	dec	[.string_size]
941
	dec	[.string_size]
943
	jnz	.out
942
	jnz	.out
944
	jz	.next_string
943
	jz	.next_string
945
 
944
 
946
.string_size	dd 0
945
.string_size	dd 0
947
.number_strings	dw 0
946
.number_strings	dw 0
948
.len_str_scr	dd 0
947
.len_str_scr	dd 0
949
 
948
 
950
@@:
949
@@:
951
	pushad
950
	pushad
952
	mov	ecx,edx
951
	mov	ecx,edx
953
	shl	ecx,16
952
	shl	ecx,16
954
	mov	ebx,edx
953
	mov	ebx,edx
955
	shr	ebx,16
954
	shr	ebx,16
956
	cmp	bx,[scroll_bar_data_vertical.start_x]
955
	cmp	bx,[scroll_bar_data_vertical.start_x]
957
	jge	.ls1
956
	jge	.ls1
958
	mov	ax,[scroll_bar_data_vertical.start_x]
957
	mov	ax,[scroll_bar_data_vertical.start_x]
959
	sub	ax,bx
958
	sub	ax,bx
960
	shl	ebx,16
959
	shl	ebx,16
961
	mov	bx,ax
960
	mov	bx,ax
962
	mov	cx,16
961
	mov	cx,16
963
	mcall	13,,,frgrd_color
962
	mcall	13,,,frgrd_color
964
.ls1:
963
.ls1:
965
	popad
964
	popad
966
	jmp	@f
965
	jmp	@f
967
.loop_str:
966
.loop_str:
968
	bt	[flags],6
967
	bt	[flags],6
969
	jc	@b
968
	jc	@b
970
@@:
969
@@:
971
	dec	[.string_size]
970
	dec	[.string_size]
972
	jz	.next_string
971
	jz	.next_string
973
	add	edi,2
972
	add	edi,2
974
	add	edx,8*65536
973
	add	edx,8*65536
975
	jmp	@b
974
	jmp	@b
976
 
975
 
977
@@:;®ç¨á⪠ ä®­®¢ë¬ 梥⮬ ­¥§ ªà è¥­­ëå ®¡« á⥩
976
@@:;®ç¨á⪠ ä®­®¢ë¬ 梥⮬ ­¥§ ªà è¥­­ëå ®¡« á⥩
978
	pushad
977
	pushad
979
	ror	edx,16
978
	ror	edx,16
980
	mov	dx,16
979
	mov	dx,16
981
	mov	ecx,edx
980
	mov	ecx,edx
982
	mov	edx,frgrd_color
981
	mov	edx,frgrd_color
983
	movzx	ebx,[scroll_bar_data_vertical.start_x]
982
	movzx	ebx,[scroll_bar_data_vertical.start_x]
984
	sub	ecx,2*65536
983
	sub	ecx,2*65536
985
	mov	cx,2
984
	mov	cx,2
986
	mcall	13
985
	mcall	13
987
	popad
986
	popad
988
 
987
 
989
	pushad
988
	pushad
990
	mov	ecx,edx
989
	mov	ecx,edx
991
	shl	ecx,16
990
	shl	ecx,16
992
	mov	ebx,edx
991
	mov	ebx,edx
993
	shr	ebx,16
992
	shr	ebx,16
994
	cmp	bx,[scroll_bar_data_vertical.start_x]
993
	cmp	bx,[scroll_bar_data_vertical.start_x]
995
	jge	.10
994
	jge	.10
996
	mov	ax,[scroll_bar_data_vertical.start_x]
995
	mov	ax,[scroll_bar_data_vertical.start_x]
997
	sub	ax,bx
996
	sub	ax,bx
998
	shl	ebx,16
997
	shl	ebx,16
999
	mov	bx,ax
998
	mov	bx,ax
1000
	mov	cx,16
999
	mov	cx,16
1001
	mcall	13,,,frgrd_color
1000
	mcall	13,,,frgrd_color
1002
.10:
1001
.10:
1003
	popad
1002
	popad
1004
	jmp	@f
1003
	jmp	@f
1005
.next_string:
1004
.next_string:
1006
	bt	[flags],6
1005
	bt	[flags],6
1007
	jc	@b
1006
	jc	@b
1008
@@:
1007
@@:
1009
	push	[len_str_scr]
1008
	push	[len_str_scr]
1010
	pop	[.len_str_scr]
1009
	pop	[.len_str_scr]
1011
	mov	eax,[ready_screen_buffer.string_size]
1010
	mov	eax,[ready_screen_buffer.string_size]
1012
	shr	eax,1
1011
	shr	eax,1
1013
	mov	[.string_size],eax	;ª®à४æ¨ï ᬥ饭¨ï ¢å®¤­ëå ¤ ­­ëå
1012
	mov	[.string_size],eax	;ª®à४æ¨ï ᬥ饭¨ï ¢å®¤­ëå ¤ ­­ëå
1014
	mov	ecx,[beg_str_scr]
1013
	mov	ecx,[beg_str_scr]
1015
	sub	[.string_size],ecx
1014
	sub	[.string_size],ecx
1016
	sub	eax,ecx
1015
	sub	eax,ecx
1017
	shl	ecx,1
1016
	shl	ecx,1
1018
	add	edi,ecx
1017
	add	edi,ecx
1019
 
1018
 
1020
	shl	eax,19
1019
	shl	eax,19
1021
	sub	edx,eax
1020
	sub	edx,eax
1022
	add	edx,18
1021
	add	edx,18
1023
	dec	[.number_strings]
1022
	dec	[.number_strings]
1024
	jnz	.out
1023
	jnz	.out
1025
	btr	[flags],6
1024
	btr	[flags],6
1026
	jmp	end_draw
1025
	jmp	end_draw
1027
 
1026
 
1028
 
1027
 
1029
align	4
1028
align	4
1030
show_current_offset:
1029
show_current_offset:
1031
	pushad
1030
	pushad
1032
	push	edx	;¢ë¢®¤ ⥪ã饣® ᬥ饭¨ï ¢ ä ©«¥
1031
	push	edx	;¢ë¢®¤ ⥪ã饣® ᬥ饭¨ï ¢ ä ©«¥
1033
	mov	edi,palitra.5
1032
	mov	edi,palitra.5
1034
	mov	eax,[begin_offset]
1033
	mov	eax,[begin_offset]
1035
	mov	ebx,[cursor]
1034
	mov	ebx,[cursor]
1036
	dec	ebx
1035
	dec	ebx
1037
	shr	bx,1
1036
	shr	bx,1
1038
	add	ebx,eax
1037
	add	ebx,eax
1039
	mov	[current_offset],ebx
1038
	mov	[current_offset],ebx
1040
	mov	edx,[low_area]
1039
	mov	edx,[low_area]
1041
	lea	eax,[8*8+8+8]
1040
	lea	eax,[8*8+8+8]
1042
	shl	eax,16
1041
	shl	eax,16
1043
	add	edx,eax
1042
	add	edx,eax
1044
	mov	ecx,8
1043
	mov	ecx,8
1045
	call	hex_output
1044
	call	hex_output
1046
	lea	eax,[8*8+14]
1045
	lea	eax,[8*8+14]
1047
	shl	eax,16
1046
	shl	eax,16
1048
	add	edx,eax
1047
	add	edx,eax
1049
	push	edx
1048
	push	edx
1050
	;¤¢®¨ç­®¥ §­ ç¥­¨¥ ¡ ©â 
1049
	;¤¢®¨ç­®¥ §­ ç¥­¨¥ ¡ ©â 
1051
	mov	edx,[file_buffer]
1050
	mov	edx,[file_buffer]
1052
	add	edx,ebx;[current_offset]
1051
	add	edx,ebx;[current_offset]
1053
	xor	eax,eax
1052
	xor	eax,eax
1054
	cmp	ebx,[file_size]
1053
	cmp	ebx,[file_size]
1055
	jae	@f
1054
	jae	@f
1056
	mov	al,[edx]
1055
	mov	al,[edx]
1057
@@:
1056
@@:
1058
	mov	bx,2
1057
	mov	bx,2
1059
	mov	ebp,8
1058
	mov	ebp,8
1060
	xor	ecx,ecx
1059
	xor	ecx,ecx
1061
	xor	edx,edx
1060
	xor	edx,edx
1062
@@:
1061
@@:
1063
	div	bx
1062
	div	bx
1064
	or	cl,dl
1063
	or	cl,dl
1065
	ror	ecx,4
1064
	ror	ecx,4
1066
	dec	ebp
1065
	dec	ebp
1067
	jnz	@b
1066
	jnz	@b
1068
	mov	ebx,ecx
1067
	mov	ebx,ecx
1069
	pop	edx
1068
	pop	edx
1070
	mov	ecx,8
1069
	mov	ecx,8
1071
	call	hex_output
1070
	call	hex_output
1072
 
1071
 
1073
	;¤¥áïâ¨ç­®¥
1072
	;¤¥áïâ¨ç­®¥
1074
	push	edx
1073
	push	edx
1075
	mov	edx,[file_buffer]
1074
	mov	edx,[file_buffer]
1076
	mov	ebx,[current_offset]
1075
	mov	ebx,[current_offset]
1077
	add	edx,ebx
1076
	add	edx,ebx
1078
	xor	eax,eax
1077
	xor	eax,eax
1079
	inc	ebx
1078
	inc	ebx
1080
	cmp	ebx,[file_size]	;0 ¥á«¨ §  £à ­¨æ¥© ä ©« 
1079
	cmp	ebx,[file_size]	;0 ¥á«¨ §  £à ­¨æ¥© ä ©« 
1081
	jb	@f
1080
	jb	@f
1082
	mov	edx,D_END
1081
	mov	edx,D_END
1083
@@:
1082
@@:
1084
	mov	al,[edx]
1083
	mov	al,[edx]
1085
	xor	ebx,ebx
1084
	xor	ebx,ebx
1086
;	mov	ebp,3
1085
;	mov	ebp,3
1087
	mov	cl,10
1086
	mov	cl,10
1088
@@:
1087
@@:
1089
	div	cl
1088
	div	cl
1090
	mov	bl,ah
1089
	mov	bl,ah
1091
	xor	ah,ah
1090
	xor	ah,ah
1092
	shl	ebx,8
1091
	shl	ebx,8
1093
	test	al,al
1092
	test	al,al
1094
;	dec	ebp
1093
;	dec	ebp
1095
	jnz	@b
1094
	jnz	@b
1096
	shr	ebx,8
1095
	shr	ebx,8
1097
	cmp	byte [edx],100
1096
	cmp	byte [edx],100
1098
	jb	.1
1097
	jb	.1
1099
	mov	ebp,3
1098
	mov	ebp,3
1100
	jmp	@f
1099
	jmp	@f
1101
.1:
1100
.1:
1102
	mov	ebp,1
1101
	mov	ebp,1
1103
	cmp	byte [edx],10
1102
	cmp	byte [edx],10
1104
	jb	@f
1103
	jb	@f
1105
	mov	ebp,2
1104
	mov	ebp,2
1106
@@:
1105
@@:
1107
	mov	al,bl
1106
	mov	al,bl
1108
	shr	ebx,8
1107
	shr	ebx,8
1109
	cmp	al,10
1108
	cmp	al,10
1110
	sbb	al,69h
1109
	sbb	al,69h
1111
	das
1110
	das
1112
	shl	eax,8
1111
	shl	eax,8
1113
;	test	bx,bx
1112
;	test	bx,bx
1114
	dec	ebp
1113
	dec	ebp
1115
	jnz	@b
1114
	jnz	@b
1116
 
1115
 
1117
	mov	ecx,8*65536+16
1116
	mov	ecx,8*65536+16
1118
	pop	edx
1117
	pop	edx
1119
	add	edx,(8*8+30)*65536;268*65536
1118
	add	edx,(8*8+30)*65536;268*65536
1120
	mov	edi,palitra.5
1119
	mov	edi,palitra.5
1121
	mov	ebp,0
1120
	mov	ebp,0
1122
	push	dword 3
1121
	push	dword 3
1123
@@:
1122
@@:
1124
	shr	eax,8
1123
	shr	eax,8
1125
	xor	ebx,ebx
1124
	xor	ebx,ebx
1126
	mov	bl,al
1125
	mov	bl,al
1127
	shl	ebx,4
1126
	shl	ebx,4
1128
	add	ebx,font_buffer
1127
	add	ebx,font_buffer
1129
	push	eax
1128
	push	eax
1130
	mcall	65
1129
	mcall	65
1131
	pop	eax
1130
	pop	eax
1132
	sub	edx,8*65536
1131
	sub	edx,8*65536
1133
	dec	dword [esp]
1132
	dec	dword [esp]
1134
	jnz	@b
1133
	jnz	@b
1135
	add	esp,4
1134
	add	esp,4
1136
;	mov	edx,[low_area]	;¢ë¢®¤ esp
1135
;	mov	edx,[low_area]	;¢ë¢®¤ esp
1137
;	add	edx,298*65536
1136
;	add	edx,298*65536
1138
;	mov	ebx,esp
1137
;	mov	ebx,esp
1139
;	mov	ecx,8
1138
;	mov	ecx,8
1140
;	call	hex_output
1139
;	call	hex_output
1141
	pop	edx
1140
	pop	edx
1142
	popad
1141
	popad
1143
	ret
1142
	ret
1144
 
1143
 
1145
 
1144
 
1146
align	4
1145
align	4
1147
hex_output:	;¢ë¢®¤ hex áâப¨ ¨§ 8 ᨬ¢®«®¢
1146
hex_output:	;¢ë¢®¤ hex áâப¨ ¨§ 8 ᨬ¢®«®¢
1148
	pushad
1147
	pushad
1149
	mov	edi,(hex8_string)	; ¤à¥á ¡ãä¥à 
1148
	mov	edi,(hex8_string)	; ¤à¥á ¡ãä¥à 
1150
	mov	dword [edi],0x30303030
1149
	mov	dword [edi],0x30303030
1151
	mov	dword [edi+4],0x30303030
1150
	mov	dword [edi+4],0x30303030
1152
	push	ecx
1151
	push	ecx
1153
.1:
1152
.1:
1154
	mov	eax,ebx
1153
	mov	eax,ebx
1155
	and	eax,0xF
1154
	and	eax,0xF
1156
	cmp	al,10
1155
	cmp	al,10
1157
	sbb	al,69h
1156
	sbb	al,69h
1158
	das
1157
	das
1159
	mov	[edi+ecx-1],al
1158
	mov	[edi+ecx-1],al
1160
	shr	ebx,4
1159
	shr	ebx,4
1161
	loop	.1
1160
	loop	.1
1162
	mov	ecx,8*65536+16
1161
	mov	ecx,8*65536+16
1163
.2:
1162
.2:
1164
	push	edi
1163
	push	edi
1165
	xor	ebx,ebx
1164
	xor	ebx,ebx
1166
	mov	al,[edi]
1165
	mov	al,[edi]
1167
	shl	eax,4
1166
	shl	eax,4
1168
	add	eax,font_buffer
1167
	add	eax,font_buffer
1169
	xchg	eax,ebx
1168
	xchg	eax,ebx
1170
	mov	edi,palitra.5
1169
	mov	edi,palitra.5
1171
	mov	ebp,0
1170
	mov	ebp,0
1172
	mcall	65
1171
	mcall	65
1173
	add	edx,8*65536
1172
	add	edx,8*65536
1174
	pop	edi
1173
	pop	edi
1175
	inc	edi
1174
	inc	edi
1176
	dec	dword [esp]
1175
	dec	dword [esp]
1177
	jnz	.2
1176
	jnz	.2
1178
	add	esp,4
1177
	add	esp,4
1179
	popad
1178
	popad
1180
	ret
1179
	ret
1181
;------------------------------------------------------
1180
;------------------------------------------------------
1182
align	4
1181
align	4
1183
input_from_keyboard:
1182
input_from_keyboard:
1184
	xor	al,al
1183
	xor	al,al
1185
	sub	ah,48
1184
	sub	ah,48
1186
	cmp	ah,9
1185
	cmp	ah,9
1187
	jle	.1
1186
	jle	.1
1188
	sub	ah,7
1187
	sub	ah,7
1189
	cmp	ah,15
1188
	cmp	ah,15
1190
	jle	.1
1189
	jle	.1
1191
	sub	ah,32
1190
	sub	ah,32
1192
.1:
1191
.1:
1193
	bt	[flags],1
1192
	bt	[flags],1
1194
	jnc	.2
1193
	jnc	.2
1195
	mov	ebx,[cursor]
1194
	mov	ebx,[cursor]
1196
	and	bl,1
1195
	and	bl,1
1197
	jz	.2
1196
	jz	.2
1198
	inc	[file_size]
1197
	inc	[file_size]
1199
	call	raspred_mem
1198
	call	raspred_mem
1200
	mov	edi,[current_offset]
1199
	mov	edi,[current_offset]
1201
	add	edi,[file_buffer]
1200
	add	edi,[file_buffer]
1202
	mov	esi,[file_buffer]
1201
	mov	esi,[file_buffer]
1203
	add	esi,[file_size]
1202
	add	esi,[file_size]
1204
	dec	esi
1203
	dec	esi
1205
@@:
1204
@@:
1206
	cmp	edi,esi
1205
	cmp	edi,esi
1207
	ja	@f
1206
	ja	@f
1208
	mov	bl,[esi]
1207
	mov	bl,[esi]
1209
	mov	[esi+1],bl
1208
	mov	[esi+1],bl
1210
	dec	esi
1209
	dec	esi
1211
	jmp	@b
1210
	jmp	@b
1212
@@:
1211
@@:
1213
	call	show_file_size
1212
	call	show_file_size
1214
	mov	ebx,[current_offset]
1213
	mov	ebx,[current_offset]
1215
	add	ebx,[file_buffer]
1214
	add	ebx,[file_buffer]
1216
	mov	byte [ebx],0
1215
	mov	byte [ebx],0
1217
.2:
1216
.2:
1218
	mov	ecx,[current_offset]
1217
	mov	ecx,[current_offset]
1219
	add	ecx,[file_buffer]
1218
	add	ecx,[file_buffer]
1220
	;á¬.	¯¥à¢ãî	¢¥àá¨î	heed.asm
1219
	;á¬.	¯¥à¢ãî	¢¥àá¨î	heed.asm
1221
	mov	dl,[ecx]	;®à¨£¨­ «ì­ë© ¡ ©â
1220
	mov	dl,[ecx]	;®à¨£¨­ «ì­ë© ¡ ©â
1222
	mov	ebx,[cursor]
1221
	mov	ebx,[cursor]
1223
	and	bl,1	;­¥ç¥â - । ªâ¨à㥬 áâ à訩 ¯®«ã¡ ©â
1222
	and	bl,1	;­¥ç¥â - । ªâ¨à㥬 áâ à訩 ¯®«ã¡ ©â
1224
	jnz	.hi_half_byte ;çñâ - áâ à訩
1223
	jnz	.hi_half_byte ;çñâ - áâ à訩
1225
	and	dl,0xf0	;®¡­ã«ï¥¬ ¬«. ¯-¡ ©â ®à¨£¨­ «ì­®£® ¡ ©â 
1224
	and	dl,0xf0	;®¡­ã«ï¥¬ ¬«. ¯-¡ ©â ®à¨£¨­ «ì­®£® ¡ ©â 
1226
	jmp	.patch_byte
1225
	jmp	.patch_byte
1227
.hi_half_byte:	;®¤­®¢à¥¬¥­­® ᤢ¨£ ¥¬ ­ã¦­®¥ §­ ç¥­¨¥ ¢ áâ ¯-â ¨ ®¡­ã«ï¥¬ ¬« ¤è¨©
1226
.hi_half_byte:	;®¤­®¢à¥¬¥­­® ᤢ¨£ ¥¬ ­ã¦­®¥ §­ ç¥­¨¥ ¢ áâ ¯-â ¨ ®¡­ã«ï¥¬ ¬« ¤è¨©
1228
	shl	ax,4
1227
	shl	ax,4
1229
	and	dl,0x0f	;®¡­ã«ï¥¬ áâ à訩 ¯®«ã¡ ©â 㠮ਣ¨­ «ì­®£® ¡ ©â 
1228
	and	dl,0x0f	;®¡­ã«ï¥¬ áâ à訩 ¯®«ã¡ ©â 㠮ਣ¨­ «ì­®£® ¡ ©â 
1230
.patch_byte:
1229
.patch_byte:
1231
	or	ah,dl
1230
	or	ah,dl
1232
	mov	[ecx],ah
1231
	mov	[ecx],ah
1233
	jmp	RIGHT
1232
	jmp	RIGHT
1234
 
1233
 
1235
raspred_mem:
1234
raspred_mem:
1236
	pushad
1235
	pushad
1237
	xor	edx,edx
1236
	xor	edx,edx
1238
	mov	ecx,4096
1237
	mov	ecx,4096
1239
	mov	eax,[file_size]
1238
	mov	eax,[file_size]
1240
	inc	eax
1239
	inc	eax
1241
	div	ecx
1240
	div	ecx
1242
	cmp	eax,[prev_f_size_bl]
1241
	cmp	eax,[prev_f_size_bl]
1243
	ja	@f
1242
	ja	@f
1244
	je	.ret
1243
	je	.ret
1245
	cmp	[file_size],4096
1244
	cmp	[file_size],4096
1246
	jbe	.ret
1245
	jbe	.ret
1247
	mov	[prev_f_size_bl],eax
1246
	mov	[prev_f_size_bl],eax
1248
	xor	edx,edx
1247
	xor	edx,edx
1249
	mul	ecx
1248
	mul	ecx
1250
	mov	ecx,eax
1249
	mov	ecx,eax
1251
	jmp	.1
1250
	jmp	.1
1252
@@:
1251
@@:
1253
	mov	[prev_f_size_bl],eax
1252
	mov	[prev_f_size_bl],eax
1254
	xor	edx,edx
1253
	xor	edx,edx
1255
	mul	ecx
1254
	mul	ecx
1256
	add	ecx,eax
1255
	add	ecx,eax
1257
.1:
1256
.1:
1258
	mcall	68,20,,[file_buffer]
1257
	mcall	68,20,,[file_buffer]
1259
.ret:
1258
.ret:
1260
	popad
1259
	popad
1261
	ret
1260
	ret
1262
;---------------------------------------
1261
;---------------------------------------
1263
 
1262
 
1264
align	4
1263
align	4
1265
show_file_size:
1264
show_file_size:
1266
	mov	ebx,[file_size]
1265
	mov	ebx,[file_size]
1267
	mov	edx,[low_area];
1266
	mov	edx,[low_area];
1268
	mov	esi,1
1267
	mov	esi,1
1269
	mov	ecx,8
1268
	mov	ecx,8
1270
	call	hex_output
1269
	call	hex_output
1271
	ret
1270
	ret
1272
 
1271
 
1273
 
1272
 
1274
align	4
1273
align	4
1275
draw_window:
1274
draw_window:
1276
	mcall	0,100*65536+653,100*65536+360,((0x73 shl 24) + frgrd_color),,title
1275
	mcall	0,100*65536+653,100*65536+360,((0x73 shl 24) + frgrd_color),,title
1277
	mcall	9,threath_buf,-1
1276
	mcall	9,threath_buf,-1
1278
	cmp	byte [threath_buf+70],3	;®ª­® á¢ñà­ãâ® ¢ § £®«®¢®ª?
1277
	cmp	byte [threath_buf+70],3	;®ª­® á¢ñà­ãâ® ¢ § £®«®¢®ª?
1279
	jnae	@f
1278
	jnae	@f
1280
.@d:
1279
.@d:
1281
	call	end_draw
1280
	call	end_draw
1282
	add	esp,4
1281
	add	esp,4
1283
	jmp	still
1282
	jmp	still
1284
@@:
1283
@@:
1285
	cmp	dword [threath_buf+66],(24*4)	;¯à®¢¥àª  ¬¨­¨¬ «ì­®© ¢ëá®âë
1284
	cmp	dword [threath_buf+66],(24*4)	;¯à®¢¥àª  ¬¨­¨¬ «ì­®© ¢ëá®âë
1286
	jae	@f
1285
	jae	@f
1287
	mov	esi,dword [threath_buf+46]
1286
	mov	esi,dword [threath_buf+46]
1288
	sub	esi,dword [threath_buf+66]
1287
	sub	esi,dword [threath_buf+66]
1289
	add	esi,24*4
1288
	add	esi,24*4
1290
	mcall	67,-1,-1,-1,
1289
	mcall	67,-1,-1,-1,
1291
	jmp	.@d
1290
	jmp	.@d
1292
@@:
1291
@@:
1293
	cmp	dword [threath_buf+62],(26*6)	;¯à®¢¥àª  ¬¨­¨¬ «ì­®© è¨à¨­ë
1292
	cmp	dword [threath_buf+62],(26*6)	;¯à®¢¥àª  ¬¨­¨¬ «ì­®© è¨à¨­ë
1294
	jae	@f
1293
	jae	@f
1295
	mov	edx,dword [threath_buf+42]
1294
	mov	edx,dword [threath_buf+42]
1296
	sub	edx,dword [threath_buf+62]
1295
	sub	edx,dword [threath_buf+62]
1297
	add	edx,26*6
1296
	add	edx,26*6
1298
	mcall	67,-1,-1,,-1
1297
	mcall	67,-1,-1,,-1
1299
	jmp	.@d
1298
	jmp	.@d
1300
@@:
1299
@@:
1301
	mov	eax,[file_size]
1300
	mov	eax,[file_size]
1302
	mov	ebx,[bytes_per_line]
1301
	mov	ebx,[bytes_per_line]
1303
	xor	edx,edx
1302
	xor	edx,edx
1304
	div	ebx
1303
	div	ebx
1305
	mov	[scroll_bar_data_vertical.size_x],0
1304
	mov	[scroll_bar_data_vertical.size_x],0
1306
	cmp	eax,[number_strings]
1305
	cmp	eax,[number_strings]
1307
	jl	@f
1306
	jl	@f
1308
	mov	[scroll_bar_data_vertical.size_x],scroll_width_size
1307
	mov	[scroll_bar_data_vertical.size_x],scroll_width_size
1309
@@:
1308
@@:
1310
	mov	eax,dword [threath_buf+62]	;è¨à¨­  ª«¨¥­â᪮© ®¡« áâ¨
1309
	mov	eax,dword [threath_buf+62]	;è¨à¨­  ª«¨¥­â᪮© ®¡« áâ¨
1311
	sub	ax,[scroll_bar_data_vertical.size_x]
1310
	sub	ax,[scroll_bar_data_vertical.size_x]
1312
	mov	[scroll_bar_data_vertical.start_x],ax
1311
	mov	[scroll_bar_data_vertical.start_x],ax
1313
	mov	eax,dword [threath_buf+66]	;¢ëá®â  ª«¨¥­â᪮© ®¡« áâ¨
1312
	mov	eax,dword [threath_buf+66]	;¢ëá®â  ª«¨¥­â᪮© ®¡« áâ¨
1314
	sub	eax,24+24-11
1313
	sub	eax,24+24-11
1315
	mov	[scroll_bar_data_vertical.size_y],ax
1314
	mov	[scroll_bar_data_vertical.size_y],ax
1316
	mov	ebx,eax
1315
	mov	ebx,eax
1317
	push	eax
1316
	push	eax
1318
	add	ebx,20
1317
	add	ebx,20
1319
	mov	[scroll_bar_data_vertical.max_area],ebx
1318
	mov	[scroll_bar_data_vertical.max_area],ebx
1320
	mov	ebx,[scroll_bar_data_vertical.btn_high]
1319
	mov	ebx,[scroll_bar_data_vertical.btn_high]
1321
	shl	ebx,1
1320
	shl	ebx,1
1322
	add	ebx,20
1321
	add	ebx,20
1323
	mov	[scroll_bar_data_vertical.cur_area],ebx
1322
	mov	[scroll_bar_data_vertical.cur_area],ebx
1324
	pop	eax
1323
	pop	eax
1325
	sub	eax,3
1324
	sub	eax,3
1326
	mov	ebx,18
1325
	mov	ebx,18
1327
	xor	edx,edx
1326
	xor	edx,edx
1328
	div	bx
1327
	div	bx
1329
	mov	[number_strings],eax	;ª®«-¢® hex áâப ¢ ®ª­¥
1328
	mov	[number_strings],eax	;ª®«-¢® hex áâப ¢ ®ª­¥
1330
	mov	ebx,[bytes_per_line]
1329
	mov	ebx,[bytes_per_line]
1331
	mul	ebx
1330
	mul	ebx
1332
	mov	edi,[screen_table]	;ª®«-¢® ¡ ©â®¢ ¤«ï ¢ë¢®¤ 
1331
	mov	edi,[screen_table]	;ª®«-¢® ¡ ©â®¢ ¤«ï ¢ë¢®¤ 
1333
	mov	dword [edi],eax
1332
	mov	dword [edi],eax
1334
 
1333
 
1335
	push	eax
1334
	push	eax
1336
 
1335
 
1337
	mov	ebx,dword [threath_buf+62]
1336
	mov	ebx,dword [threath_buf+62]
1338
	inc	ebx
1337
	inc	ebx
1339
	mov	ecx,(FIRST_HEX-18)
1338
	mov	ecx,(FIRST_HEX-18)
1340
	ror	ecx,16
1339
	ror	ecx,16
1341
	mov	cx,18
1340
	mov	cx,18
1342
	ror	ecx,16
1341
	ror	ecx,16
1343
	mcall	13,,,frgrd_color	;¯®«®á  ᢥàåã
1342
	mcall	13,,,frgrd_color	;¯®«®á  ᢥàåã
1344
 
1343
 
1345
	mcall	,,18,panel_clr1	;¢¥àå­ïï ¯ ­¥«ì
1344
	mcall	,,18,panel_clr1	;¢¥àå­ïï ¯ ­¥«ì
1346
 
1345
 
1347
	dec	ebx
1346
	dec	ebx
1348
	mcall	38,,<18,18>,panel_clr2
1347
	mcall	38,,<18,18>,panel_clr2
1349
	mov	ecx,dword [threath_buf+66]
1348
	mov	ecx,dword [threath_buf+66]
1350
	sub	cx,18
1349
	sub	cx,18
1351
	push	cx
1350
	push	cx
1352
	shl	ecx,16
1351
	shl	ecx,16
1353
	pop	cx
1352
	pop	cx
1354
	mcall	,,,panel_clr3	;­¨¦­ïï ¯ ­¥«ì
1353
	mcall	,,,panel_clr3	;­¨¦­ïï ¯ ­¥«ì
1355
	add	ecx,1*65536
1354
	add	ecx,1*65536
1356
	mov	cx,18
1355
	mov	cx,18
1357
;	inc	ebx
1356
;	inc	ebx
1358
	mcall	13,,,panel_clr1
1357
	mcall	13,,,panel_clr1
1359
 
1358
 
1360
 
1359
 
1361
	mov	eax,dword [threath_buf+62]
1360
	mov	eax,dword [threath_buf+62]
1362
	sub	eax,scroll_width_size
1361
	sub	eax,scroll_width_size
1363
	shr	eax,3	;div 8
1362
	shr	eax,3	;div 8
1364
	mov	[len_str_scr],eax
1363
	mov	[len_str_scr],eax
1365
 
1364
 
1366
 
1365
 
1367
	mov	eax,[len_str_scr]
1366
	mov	eax,[len_str_scr]
1368
	shl	eax,1
1367
	shl	eax,1
1369
	cmp	eax,[ready_screen_buffer.string_size]
1368
	cmp	eax,[ready_screen_buffer.string_size]
1370
	jae	@f
1369
	jae	@f
1371
 
1370
 
1372
	mov	edi,[screen_table]
1371
	mov	edi,[screen_table]
1373
	mov	eax,[bytes_per_line]
1372
	mov	eax,[bytes_per_line]
1374
	sub	dword [edi],eax
1373
	sub	dword [edi],eax
1375
	dec	[number_strings]
1374
	dec	[number_strings]
1376
 
1375
 
1377
@@:
1376
@@:
1378
	shr	ecx,16
1377
	shr	ecx,16
1379
	mov	edx,ecx
1378
	mov	edx,ecx
1380
	mov	ecx,(FIRST_HEX)
1379
	mov	ecx,(FIRST_HEX)
1381
	shr	ecx,16
1380
	shr	ecx,16
1382
	mov	eax,[number_strings]
1381
	mov	eax,[number_strings]
1383
	lea	ebx,[eax*8];*18
1382
	lea	ebx,[eax*8];*18
1384
	lea	ebx,[ebx*2]
1383
	lea	ebx,[ebx*2]
1385
	lea	eax,[eax*2]
1384
	lea	eax,[eax*2]
1386
	add	eax,ebx
1385
	add	eax,ebx
1387
	add	cx,ax
1386
	add	cx,ax
1388
	add	cx,21
1387
	add	cx,21
1389
	sub	dx,cx
1388
	sub	dx,cx
1390
	shl	ecx,16
1389
	shl	ecx,16
1391
	add	cx,dx
1390
	add	cx,dx
1392
	sub	ecx,1*65536
1391
	sub	ecx,1*65536
1393
	movzx	ebx,	word [scroll_bar_data_vertical.start_x]
1392
	movzx	ebx,	word [scroll_bar_data_vertical.start_x]
1394
	mcall	13,,,frgrd_color
1393
	mcall	13,,,frgrd_color
1395
 
1394
 
1396
	pop	eax
1395
	pop	eax
1397
 
1396
 
1398
	cmp	eax,[file_size]
1397
	cmp	eax,[file_size]
1399
	jge	@f
1398
	jge	@f
1400
;	push	dword scroll_bar_data_vertical
1399
;	push	dword scroll_bar_data_vertical
1401
;	call	[scrollbar_ver_mouse]
1400
;	call	[scrollbar_ver_mouse]
1402
	xor	eax,eax
1401
	xor	eax,eax
1403
	inc	eax
1402
	inc	eax
1404
	mov	[scroll_bar_data_vertical.all_redraw],eax
1403
	mov	[scroll_bar_data_vertical.all_redraw],eax
1405
	push	dword scroll_bar_data_vertical	;draw for Vertical ScrollBar
1404
	push	dword scroll_bar_data_vertical	;draw for Vertical ScrollBar
1406
	call	[scrollbar_ver_draw]
1405
	call	[scrollbar_ver_draw]
1407
	xor	eax,eax	;reset all_redraw flag
1406
	xor	eax,eax	;reset all_redraw flag
1408
	mov	[scroll_bar_data_vertical.all_redraw],eax
1407
	mov	[scroll_bar_data_vertical.all_redraw],eax
1409
@@:
1408
@@:
1410
	push	dword menu_data_1	;draw for Menu 1
1409
	push	dword menu_data_1	;draw for Menu 1
1411
	call	[menu_bar_draw]
1410
	call	[menu_bar_draw]
1412
	push	dword menu_data_2	;draw for Menu 2
1411
	push	dword menu_data_2	;draw for Menu 2
1413
	call	[menu_bar_draw]
1412
	call	[menu_bar_draw]
1414
	push	dword menu_data_3	;draw for Menu 3
1413
	push	dword menu_data_3	;draw for Menu 3
1415
	call	[menu_bar_draw]
1414
	call	[menu_bar_draw]
1416
 
1415
 
1417
;;;
1416
;;;
1418
 
1417
 
1419
	mov	eax,dword [threath_buf+66]
1418
	mov	eax,dword [threath_buf+66]
1420
	add	eax,8*65536-15
1419
	add	eax,8*65536-15
1421
	mov	[low_area],eax
1420
	mov	[low_area],eax
1422
 
1421
 
1423
	mov	ebx,[beg_str_scr]
1422
	mov	ebx,[beg_str_scr]
1424
	mov	[beg_str_scr],0
1423
	mov	[beg_str_scr],0
1425
	mov	eax,[len_str_scr]
1424
	mov	eax,[len_str_scr]
1426
	shl	eax,1
1425
	shl	eax,1
1427
	cmp	eax,[ready_screen_buffer.string_size]
1426
	cmp	eax,[ready_screen_buffer.string_size]
1428
	jae	@f
1427
	jae	@f
1429
 
1428
 
1430
	mov	[beg_str_scr],ebx
1429
	mov	[beg_str_scr],ebx
1431
	movzx	eax,word [threath_buf+66]
1430
	movzx	eax,word [threath_buf+66]
1432
	sub	eax,34
1431
	sub	eax,34
1433
	mov	[scroll_bar_data_horizontal.start_y],ax
1432
	mov	[scroll_bar_data_horizontal.start_y],ax
1434
 
1433
 
1435
;cur_area/(size_x-30)=len_str_scr/string_size
1434
;cur_area/(size_x-30)=len_str_scr/string_size
1436
 
1435
 
1437
	mov	eax,dword [threath_buf+62]
1436
	mov	eax,dword [threath_buf+62]
1438
	sub	ax,[scroll_bar_data_vertical.size_x]
1437
	sub	ax,[scroll_bar_data_vertical.size_x]
1439
	mov	[scroll_bar_data_horizontal.size_x],ax
1438
	mov	[scroll_bar_data_horizontal.size_x],ax
1440
	sub	eax,[scroll_bar_data_horizontal.btn_high]
1439
	sub	eax,[scroll_bar_data_horizontal.btn_high]
1441
	sub	eax,[scroll_bar_data_horizontal.btn_high]
1440
	sub	eax,[scroll_bar_data_horizontal.btn_high]
1442
	mov	[scroll_bar_data_horizontal.max_area],eax
1441
	mov	[scroll_bar_data_horizontal.max_area],eax
1443
	xor	edx,edx
1442
	xor	edx,edx
1444
	mov	ebx,[len_str_scr]
1443
	mov	ebx,[len_str_scr]
1445
	mul	ebx
1444
	mul	ebx
1446
	mov	ebx,[ready_screen_buffer.string_size]
1445
	mov	ebx,[ready_screen_buffer.string_size]
1447
	shr	ebx,1
1446
	shr	ebx,1
1448
	div	ebx
1447
	div	ebx
1449
	mov	[scroll_bar_data_horizontal.cur_area],eax
1448
	mov	[scroll_bar_data_horizontal.cur_area],eax
1450
 
1449
 
1451
	push	dword scroll_bar_data_horizontal	;draw for Horizontal ScrollBar
1450
	push	dword scroll_bar_data_horizontal	;draw for Horizontal ScrollBar
1452
	call	[scrollbar_hor_mouse]
1451
	call	[scrollbar_hor_mouse]
1453
	xor	eax,eax
1452
	xor	eax,eax
1454
	inc	eax
1453
	inc	eax
1455
	mov	[scroll_bar_data_horizontal.all_redraw],eax
1454
	mov	[scroll_bar_data_horizontal.all_redraw],eax
1456
	push	dword scroll_bar_data_horizontal	;draw for Vertical ScrollBar
1455
	push	dword scroll_bar_data_horizontal	;draw for Vertical ScrollBar
1457
	call	[scrollbar_hor_draw]
1456
	call	[scrollbar_hor_draw]
1458
	xor	eax,eax	;reset all_redraw flag
1457
	xor	eax,eax	;reset all_redraw flag
1459
	mov	[scroll_bar_data_horizontal.all_redraw],eax
1458
	mov	[scroll_bar_data_horizontal.all_redraw],eax
1460
@@:
1459
@@:
1461
	mov	eax,[low_area]
1460
	mov	eax,[low_area]
1462
	mov	edi,[screen_table]
1461
	mov	edi,[screen_table]
1463
	mov	esi,[bytes_per_line]
1462
	mov	esi,[bytes_per_line]
1464
	mov	ecx,esi
1463
	mov	ecx,esi
1465
	shl	ecx,1
1464
	shl	ecx,1
1466
	mov	eax,[edi]
1465
	mov	eax,[edi]
1467
	mov	ebx,[cursor]
1466
	mov	ebx,[cursor]
1468
	inc	ebx
1467
	inc	ebx
1469
	shr	ebx,1
1468
	shr	ebx,1
1470
@@:
1469
@@:
1471
	cmp	eax,ebx
1470
	cmp	eax,ebx
1472
	jge	@f
1471
	jge	@f
1473
	add	[begin_offset],esi
1472
	add	[begin_offset],esi
1474
	sub	[cursor],ecx
1473
	sub	[cursor],ecx
1475
	sub	ebx,esi
1474
	sub	ebx,esi
1476
	jmp	@b
1475
	jmp	@b
1477
@@:
1476
@@:
1478
	bts	[flags],6
1477
	bts	[flags],6
1479
	ret
1478
	ret
1480
 
1479
 
1481
align	4
1480
align	4
1482
start_draw:
1481
start_draw:
1483
	mcall	12,1
1482
	mcall	12,1
1484
	ret
1483
	ret
1485
 
1484
 
1486
end_draw:
1485
end_draw:
1487
	mcall	12,2
1486
	mcall	12,2
1488
	ret
1487
	ret
1489
 
1488
 
1490
close_prog:
1489
close_prog:
1491
	mcall	-1
1490
	mcall	-1
1492
;-------------------------------------------------------------------------------
1491
;-------------------------------------------------------------------------------
1493
change_codepage:	;¬¥­ï¥¬ ¢â®àãî ¯®«®¢¨­ã â ¡«¨æë
1492
change_codepage:	;¬¥­ï¥¬ ¢â®àãî ¯®«®¢¨­ã â ¡«¨æë
1494
	test	ah,ah
1493
	test	ah,ah
1495
	jnz	@f
1494
	jnz	@f
1496
	btc	[flags],4
1495
	btc	[flags],4
1497
	jc	.1
1496
	jc	.1
1498
	push	[codepage_offset]
1497
	push	[codepage_offset]
1499
	pop	[codepage_offset_previous]
1498
	pop	[codepage_offset_previous]
1500
	mov	[codepage_offset],2*128
1499
	mov	[codepage_offset],2*128
1501
	jmp	.end
1500
	jmp	.end
1502
.1:
1501
.1:
1503
	push	[codepage_offset_previous]
1502
	push	[codepage_offset_previous]
1504
	pop	[codepage_offset]
1503
	pop	[codepage_offset]
1505
	jmp	.end
1504
	jmp	.end
1506
@@:
1505
@@:
1507
	cmp	[codepage_offset],0
1506
	cmp	[codepage_offset],0
1508
	jne	@f
1507
	jne	@f
1509
	add	[codepage_offset],128
1508
	add	[codepage_offset],128
1510
	jmp	.end
1509
	jmp	.end
1511
@@:
1510
@@:
1512
	mov	[codepage_offset],0
1511
	mov	[codepage_offset],0
1513
.end:
1512
.end:
1514
	call	show_codepage
1513
	call	show_codepage
1515
	jmp	red
1514
	jmp	red
1516
 
1515
 
1517
show_codepage:
1516
show_codepage:
1518
	mov	ebp,6
1517
	mov	ebp,6
1519
	mov	edx,dword [threath_buf+62]
1518
	mov	edx,dword [threath_buf+62]
1520
	sub	edx,73
1519
	sub	edx,73
1521
	shl	edx,16
1520
	shl	edx,16
1522
	add	edx,[low_area]
1521
	add	edx,[low_area]
1523
	mov	edi,string_cp866
1522
	mov	edi,string_cp866
1524
	cmp	[codepage_offset],0
1523
	cmp	[codepage_offset],0
1525
	je	@f
1524
	je	@f
1526
	add	edi,6
1525
	add	edi,6
1527
	cmp	[codepage_offset],128
1526
	cmp	[codepage_offset],128
1528
	je	@f
1527
	je	@f
1529
	add	edi,6
1528
	add	edi,6
1530
@@:
1529
@@:
1531
	mov	ecx,8*65536+16
1530
	mov	ecx,8*65536+16
1532
	mov	esi,1
1531
	mov	esi,1
1533
	push	ebp
1532
	push	ebp
1534
	mov	ebp,0
1533
	mov	ebp,0
1535
@@:
1534
@@:
1536
	xor	ebx,ebx
1535
	xor	ebx,ebx
1537
	push	edi
1536
	push	edi
1538
	mov	bl,[edi]
1537
	mov	bl,[edi]
1539
	shl	bx,4
1538
	shl	bx,4
1540
	add	ebx,font_buffer
1539
	add	ebx,font_buffer
1541
	mov	edi,palitra.5
1540
	mov	edi,palitra.5
1542
	mcall	65
1541
	mcall	65
1543
	add	edx,8*65536
1542
	add	edx,8*65536
1544
	pop	edi
1543
	pop	edi
1545
	inc	edi
1544
	inc	edi
1546
	dec	dword [esp]
1545
	dec	dword [esp]
1547
	jnz	@b
1546
	jnz	@b
1548
	add	esp,4
1547
	add	esp,4
1549
	ret
1548
	ret
1550
 
1549
 
1551
show_insert:	;®â®¡à ¦¥­¨¥ ०¨¬  ¢áâ ¢ª¨/§ ¬¥­ë
1550
show_insert:	;®â®¡à ¦¥­¨¥ ०¨¬  ¢áâ ¢ª¨/§ ¬¥­ë
1552
	mov	ebp,3
1551
	mov	ebp,3
1553
	mov	edx,dword [threath_buf+62]
1552
	mov	edx,dword [threath_buf+62]
1554
	sub	edx,120
1553
	sub	edx,120
1555
	shl	edx,16	; mov edx,428*65536+335
1554
	shl	edx,16	; mov edx,428*65536+335
1556
	add	edx,[low_area]
1555
	add	edx,[low_area]
1557
	mov	edi,string_ins
1556
	mov	edi,string_ins
1558
	push	ebp
1557
	push	ebp
1559
	mov	ecx,8*65536+16
1558
	mov	ecx,8*65536+16
1560
	mov	esi,1
1559
	mov	esi,1
1561
	mov	ebp,0
1560
	mov	ebp,0
1562
.1:
1561
.1:
1563
	xor	ebx,ebx
1562
	xor	ebx,ebx
1564
	push	edi
1563
	push	edi
1565
	bt	[flags],1
1564
	bt	[flags],1
1566
	jnc	.2
1565
	jnc	.2
1567
	mov	bl,[edi]
1566
	mov	bl,[edi]
1568
	shl	bx,4
1567
	shl	bx,4
1569
.2:
1568
.2:
1570
	add	ebx,font_buffer
1569
	add	ebx,font_buffer
1571
	mov	edi,palitra.5
1570
	mov	edi,palitra.5
1572
	mcall	65
1571
	mcall	65
1573
	add	edx,8*65536
1572
	add	edx,8*65536
1574
	pop	edi
1573
	pop	edi
1575
	inc	edi
1574
	inc	edi
1576
	dec	dword [esp]
1575
	dec	dword [esp]
1577
	jnz	.1
1576
	jnz	.1
1578
	add	esp,4
1577
	add	esp,4
1579
	ret
1578
	ret
1580
;-------------------------------------------------------------------------------
1579
;-------------------------------------------------------------------------------
1581
	;help window
1580
	;help window
1582
create_help_window:
1581
create_help_window:
1583
	pushad
1582
	pushad
1584
	mcall	51,1,.thread,(.threat_stack+16*4)
1583
	mcall	51,1,.thread,(.threat_stack+16*4)
1585
	popad
1584
	popad
1586
	ret
1585
	ret
1587
.thread:
1586
.thread:
1588
	call	.window
1587
	call	.window
1589
.still:
1588
.still:
1590
	mcall	10
1589
	mcall	10
1591
	dec	al
1590
	dec	al
1592
	jz	.red
1591
	jz	.red
1593
	dec	al
1592
	dec	al
1594
	jz	.key
1593
	jz	.key
1595
	dec	al
1594
	dec	al
1596
	jz	.button
1595
	jz	.button
1597
	jmp	.still
1596
	jmp	.still
1598
	mcall	-1
1597
	mcall	-1
1599
.button:
1598
.button:
1600
	mcall	17,1
1599
	mcall	17,1
1601
	cmp	ah,1
1600
	cmp	ah,1
1602
	jne	@f
1601
	jne	@f
1603
	mcall	-1
1602
	mcall	-1
1604
@@:
1603
@@:
1605
	cmp	ah,2
1604
	cmp	ah,2
1606
	jne	@f
1605
	jne	@f
1607
	mov	edi,(help_end-help_text)/51
1606
	mov	edi,(help_end-help_text)/51
1608
	movzx	eax,[cur_help_string]
1607
	movzx	eax,[cur_help_string]
1609
	sub	edi,13
1608
	sub	edi,13
1610
	sub	edi,eax
1609
	sub	edi,eax
1611
	jz	.still
1610
	jz	.still
1612
	inc	[cur_help_string]
1611
	inc	[cur_help_string]
1613
	jmp	.red
1612
	jmp	.red
1614
@@:
1613
@@:
1615
	cmp	ah,3
1614
	cmp	ah,3
1616
	jne	.still
1615
	jne	.still
1617
	cmp	[cur_help_string],0
1616
	cmp	[cur_help_string],0
1618
	je	.still
1617
	je	.still
1619
	dec	[cur_help_string]
1618
	dec	[cur_help_string]
1620
	jmp	.red
1619
	jmp	.red
1621
 
1620
 
1622
.key:
1621
.key:
1623
	mcall	2
1622
	mcall	2
1624
	jmp	.still
1623
	jmp	.still
1625
 
1624
 
1626
.red:
1625
.red:
1627
	call	.window
1626
	call	.window
1628
	jmp	.still
1627
	jmp	.still
1629
 
1628
 
1630
.window:
1629
.window:
1631
	pushad
1630
	pushad
1632
	mcall	12,1
1631
	mcall	12,1
1633
	mcall	0,50*65536+320,0x70*65536+240,0x13000000,,help_but_text
1632
	mcall	0,50*65536+320,0x70*65536+240,0x13000000,,help_but_text
1634
	mcall	8,<130,20>,<6,12>,2,0xaaaaaa
1633
	mcall	8,<130,20>,<6,12>,2,0xaaaaaa
1635
	mcall	,<150,20>,,3,
1634
	mcall	,<150,20>,,3,
1636
	mov	ebx,8*65536+15
1635
	mov	ebx,8*65536+15
1637
	mov	ecx,0x00DDDDDD
1636
	mov	ecx,0x00DDDDDD
1638
	xor	edx,edx
1637
	xor	edx,edx
1639
	movzx	eax,byte [cur_help_string]
1638
	movzx	eax,byte [cur_help_string]
1640
	mov	edi,(help_end-help_text)/51
1639
	mov	edi,(help_end-help_text)/51
1641
	sub	edi,eax
1640
	sub	edi,eax
1642
	mov	esi,51
1641
	mov	esi,51
1643
	mul	si
1642
	mul	si
1644
	mov	edx,help_text
1643
	mov	edx,help_text
1645
	add	edx,eax
1644
	add	edx,eax
1646
	mov	eax,4
1645
	mov	eax,4
1647
@@:
1646
@@:
1648
	add	ebx,0x10
1647
	add	ebx,0x10
1649
	mcall
1648
	mcall
1650
	add	edx,51
1649
	add	edx,51
1651
	dec	edi
1650
	dec	edi
1652
	jnz	@b
1651
	jnz	@b
1653
	mcall	12,2
1652
	mcall	12,2
1654
	popad
1653
	popad
1655
	ret
1654
	ret
1656
 
1655
 
1657
.threat_stack:	times	16	dd	0
1656
.threat_stack:	times	16	dd	0
1658
;-------------------------------------------------
1657
;-------------------------------------------------
1659
 
1658
 
1660
open_file:
1659
open_file:
1661
	mov	dword [ed_box_data],1
-
 
1662
	mov	dword [ed_box_data+4],edit1
-
 
1663
	call	draw_ed_box	;à¨á㥬 editbox
-
 
1664
	;à §¬¥à ä ©« ?
-
 
1665
.0:
-
 
1666
	mov	[func_70.func_n],5
1660
	mov	[func_70.func_n],5
1667
	mov	[func_70.param1],0
1661
	mov	[func_70.param1],0
1668
	mov	[func_70.param2],0
1662
	mov	[func_70.param2],0
1669
	mov	[func_70.param3],0
1663
	mov	[func_70.param3],0
1670
	mov	[func_70.param4],bufferfinfo
1664
	mov	[func_70.param4],bufferfinfo
1671
	mov	[func_70.rezerv],0
1665
	mov	[func_70.rezerv],0
1672
	mov	[func_70.name],file_name
1666
	mov	[func_70.name],file_name
1673
	mcall	70,func_70
1667
	mcall	70,func_70
1674
 
1668
 
1675
	test	al,al	;ä ©« ­ ©¤¥­?
1669
	test	al,al	;ä ©« ­ ©¤¥­?
1676
	jz	@f
1670
	jz	@f
1677
	mcall	4,400*65536+31,0x80CC0000,error_open_file_string
1671
	mcall	4,400*65536+31,0x80CC0000,error_open_file_string
1678
	jmp	open_file
1672
	jmp	open_file
1679
@@:
1673
@@:
1680
;	mov	edx,[blocks_counter]
1674
;	mov	edx,[blocks_counter]
1681
;	mov	edi,[blocks_table]
1675
;	mov	edi,[blocks_table]
1682
;	@@:	mov	ecx,[edi]	;¢ë᢮¡®¦¤ ¥¬:
1676
;	@@:	mov	ecx,[edi]	;¢ë᢮¡®¦¤ ¥¬:
1683
;	mcall	68,13	;¡«®ª¨ ä ©« 
1677
;	mcall	68,13	;¡«®ª¨ ä ©« 
1684
;	add	edi,8
1678
;	add	edi,8
1685
;	dec	edx
1679
;	dec	edx
1686
;	jnz	@b
1680
;	jnz	@b
1687
;	mcall	68,13,[blocks_table]	;â ¡«¨æã
1681
;	mcall	68,13,[blocks_table]	;â ¡«¨æã
1688
 
1682
 
1689
	mov	eax,	dword [bufferfinfo+32]	;ª®¯¨à㥬 à §¬¥à ä ©« 
1683
	mov	eax,	dword [bufferfinfo+32]	;ª®¯¨à㥬 à §¬¥à ä ©« 
1690
	mov	[file_size],eax
1684
	mov	[file_size],eax
1691
 
1685
 
1692
;	mov	ebx,65536	;64Š ¡«®ª
1686
;	mov	ebx,65536	;64Š ¡«®ª
1693
;	xor	edx,edx
1687
;	xor	edx,edx
1694
;	div	ebx
1688
;	div	ebx
1695
;	push	dx	;¤«¨­  ¯®á«¥¤­¥£® ¡«®ª 
1689
;	push	dx	;¤«¨­  ¯®á«¥¤­¥£® ¡«®ª 
1696
;	test	dx,dx
1690
;	test	dx,dx
1697
;	jz	@f
1691
;	jz	@f
1698
;	inc	eax
1692
;	inc	eax
1699
;	@@:	test	eax,eax
1693
;	@@:	test	eax,eax
1700
;	jnz	@f
1694
;	jnz	@f
1701
;	inc	eax
1695
;	inc	eax
1702
;	@@:	mov	[blocks_counter],eax
1696
;	@@:	mov	[blocks_counter],eax
1703
;	sal	eax,3;*8	;à §¬¥à â ¡«¨æë á ¨­¤¥ªá ¬¨ ¡«®ª®¢
1697
;	sal	eax,3;*8	;à §¬¥à â ¡«¨æë á ¨­¤¥ªá ¬¨ ¡«®ª®¢
1704
;;	add	eax,32	;à¥è ¥¬	¯à®¡«¥¬ã á 32Œ ä ©« ¬¨
1698
;;	add	eax,32	;à¥è ¥¬	¯à®¡«¥¬ã á 32Œ ä ©« ¬¨
1705
 
1699
 
1706
;	mov	ecx,eax	;¢ë¤¥«ï¥¬ ¯ ¬ïâì:
1700
;	mov	ecx,eax	;¢ë¤¥«ï¥¬ ¯ ¬ïâì:
1707
;	mcall	68,12	;¯®¤ â ¡«¨æã
1701
;	mcall	68,12	;¯®¤ â ¡«¨æã
1708
;	mov	[blocks_table],eax
1702
;	mov	[blocks_table],eax
1709
;	mov	edi,eax
1703
;	mov	edi,eax
1710
;	mov	ecx,[blocks_counter]
1704
;	mov	ecx,[blocks_counter]
1711
;	@@:	mov	dword [edi+4],65536
1705
;	@@:	mov	dword [edi+4],65536
1712
;	add	edi,8
1706
;	add	edi,8
1713
;	loop	@b
1707
;	loop	@b
1714
;	xor	edx,edx
1708
;	xor	edx,edx
1715
;	pop	dx	;¤«¨­  ¯®á«¥¤­¥£® ¡«®ª 
1709
;	pop	dx	;¤«¨­  ¯®á«¥¤­¥£® ¡«®ª 
1716
;	mov	dword [edi-4],edx
1710
;	mov	dword [edi-4],edx
1717
 
1711
 
1718
;	mov	edx,[blocks_counter]
1712
;	mov	edx,[blocks_counter]
1719
;	mov	edi,[blocks_table]
1713
;	mov	edi,[blocks_table]
1720
;@@:	mcall	68,12,[edi+4]	;¯®¤ ¡«®ª
1714
;@@:	mcall	68,12,[edi+4]	;¯®¤ ¡«®ª
1721
;	mov	[edi],eax
1715
;	mov	[edi],eax
1722
;	add	edi,8
1716
;	add	edi,8
1723
;	dec	edx
1717
;	dec	edx
1724
;	jnz	@b
1718
;	jnz	@b
1725
 
1719
 
1726
	mcall	68,13,[file_buffer]
1720
	mcall	68,13,[file_buffer]
1727
	test	eax,eax
1721
	test	eax,eax
1728
	jnz	@f
1722
	jnz	@f
1729
	;§¤¥áì ®è¨¡ª  ­  ­¥ ®á¢®¡®¦¤¥­¨¥ ¡«®ª 
1723
	;§¤¥áì ®è¨¡ª  ­  ­¥ ®á¢®¡®¦¤¥­¨¥ ¡«®ª 
1730
@@:
1724
@@:
1731
	mcall	68,12,[file_size]
1725
	mcall	68,12,[file_size]
1732
	mov	[file_buffer],eax
1726
	mov	[file_buffer],eax
1733
 
1727
 
1734
;;¨¬¥¥¬ â ¡«¨æã: [ DWORD 㪠§ â¥«ì ­  ¯¥à¢ë© í«¥¬¥­â ¡«®ª  : DWORD ¤«¨­  ¡«®ª  ]
1728
;;¨¬¥¥¬ â ¡«¨æã: [ DWORD 㪠§ â¥«ì ­  ¯¥à¢ë© í«¥¬¥­â ¡«®ª  : DWORD ¤«¨­  ¡«®ª  ]
1735
 
1729
 
1736
;	mov	ecx,[blocks_counter]	;®âªà뢠¥¬ ä ©«
1730
;	mov	ecx,[blocks_counter]	;®âªà뢠¥¬ ä ©«
1737
;	mov	edi,[blocks_table]
1731
;	mov	edi,[blocks_table]
1738
	mov	[func_70.func_n],0
1732
	mov	[func_70.func_n],0
1739
	mov	[func_70.param1],0
1733
	mov	[func_70.param1],0
1740
	mov	[func_70.param2],0
1734
	mov	[func_70.param2],0
1741
	mov	[func_70.rezerv],0
1735
	mov	[func_70.rezerv],0
1742
	mov	[func_70.name],file_name
1736
	mov	[func_70.name],file_name
1743
;@@:
1737
;@@:
1744
	push	dword [file_size];dword [edi+4]
1738
	push	dword [file_size];dword [edi+4]
1745
	pop	dword [func_70.param3]
1739
	pop	dword [func_70.param3]
1746
	push	dword [file_buffer];dword [edi]
1740
	push	dword [file_buffer];dword [edi]
1747
	pop	dword [func_70.param4]
1741
	pop	dword [func_70.param4]
1748
	mcall	70,func_70
1742
	mcall	70,func_70
1749
;	add	edi,8
1743
;	add	edi,8
1750
;	add	dword [func_70.param1],65536
1744
;	add	dword [func_70.param1],65536
1751
;	loop	@b
1745
;	loop	@b
1752
 
1746
 
1753
	test	eax,eax
1747
	test	eax,eax
1754
	jz	@f
1748
	jz	@f
1755
	;®è¨¡ª  ç⥭¨ï
1749
	;®è¨¡ª  ç⥭¨ï
1756
@@:
1750
@@:
1757
	call	Ctrl_HOME
1751
	call	Ctrl_HOME
1758
 
1752
 
1759
	jmp	redraw_all
1753
	jmp	redraw_all
1760
;-------------------------------------------------------------------------------
1754
;-------------------------------------------------------------------------------
1761
open_dialog_save:
1755
open_dialog_save:
1762
	mov	[OpenDialog_data.type],1	; Save
1756
	mov	[OpenDialog_data.type],1	; Save
-
 
1757
 
1763
	start_OpenDialog	OpenDialog_data
1758
	push    dword OpenDialog_data
-
 
1759
	call    [OpenDialog_Start]
-
 
1760
 
1764
	cmp	[OpenDialog_data.status],2	; OpenDialog does not start
1761
;	cmp	[OpenDialog_data.status],2	; OpenDialog does not start
1765
;	je	.sysxtree	; some kind of alternative, instead OpenDialog
1762
;;	je	.sysxtree	; some kind of alternative, instead OpenDialog
1766
	je	save_file
1763
;	je	save_file
1767
	cmp	[OpenDialog_data.status],1
1764
	cmp	[OpenDialog_data.status],1
1768
	jne	still
1765
	jne	still
1769
	mov	esi,fname_buf
1766
	mov	esi,fname_buf
1770
	mov	edi,file_name
1767
	mov	edi,file_name
1771
	cld
1768
	cld
1772
@@:
1769
@@:
1773
	cmp	byte [esi],0
1770
	cmp	byte [esi],0
1774
	je	@f
1771
	je	@f
1775
	movsb
1772
	movsb
1776
	jmp	@b
1773
	jmp	@b
1777
@@:
1774
@@:
1778
	mov	byte [edi],0
1775
	mov	byte [edi],0
1779
	sub	esi,path
1776
	sub	esi,path
1780
	mov	[edit1.size],esi
1777
	mov	[edit1.size],esi
1781
	mov	[edit1.pos],esi
1778
	mov	[edit1.pos],esi
1782
	jmp	save_file.1
1779
;	jmp	save_file
1783
;-------------------------------------------------------------------------------
1780
;-------------------------------------------------------------------------------
1784
save_file:	;á®å࠭塞 ä ©«
1781
save_file:	;á®å࠭塞 ä ©«
1785
	mov	dword [ed_box_data],1
-
 
1786
	mov	dword [ed_box_data+4],edit1
-
 
1787
	call	draw_ed_box
-
 
1788
.1:
-
 
1789
	mov	[func_70.func_n],2
1782
	mov	[func_70.func_n],2
1790
	mov	[func_70.param1],0
1783
	mov	[func_70.param1],0
1791
	mov	[func_70.param2],0
1784
	mov	[func_70.param2],0
1792
	push	[file_size]
1785
	push	[file_size]
1793
	pop	[func_70.param3]
1786
	pop	[func_70.param3]
1794
	push	[file_buffer]
1787
	push	[file_buffer]
1795
	pop	[func_70.param4]
1788
	pop	[func_70.param4]
1796
	mov	[func_70.rezerv],0
1789
	mov	[func_70.rezerv],0
1797
	mov	[func_70.name],file_name
1790
	mov	[func_70.name],file_name
1798
	mcall	70,func_70
1791
	mcall	70,func_70
1799
	cmp	al,0	;á®åà ­ñ­ 㤠筮?
1792
	cmp	al,0	;á®åà ­ñ­ 㤠筮?
1800
	je	redraw_all
1793
	je	redraw_all
1801
	mcall	4,400*65536+31,0x80CC0000,error_save_file_string
1794
	mcall	4,400*65536+31,0x80CC0000,error_save_file_string
1802
	jmp	save_file
1795
	jmp	save_file
1803
;-------------------------------------------------------------------------------
1796
;-------------------------------------------------------------------------------
1804
draw_ed_box:	;à¨á®¢ ­¨¥ edit box' 
1797
draw_ed_box:	;à¨á®¢ ­¨¥ edit box' 
1805
.1:
1798
.1:
1806
	push	eax	ebx	ecx	edx
1799
	push	eax	ebx	ecx	edx
1807
	mcall	13,180*65536+220,25*65536+70,0xaaaaaa
1800
	mcall	13,180*65536+220,25*65536+70,0xaaaaaa
1808
	bt	[flags],9
1801
	bt	[flags],9
1809
	jnc	@f
1802
	jnc	@f
1810
	mcall	4,246*65536+35,0x80ffffff,sel_text
1803
	mcall	4,246*65536+35,0x80ffffff,sel_text
1811
@@:
1804
@@:
1812
	bt	[flags],2
1805
	bt	[flags],2
1813
	jnc	@f
1806
	jnc	@f
1814
	push	dword Option_boxs
1807
	push	dword Option_boxs
1815
	call	[option_box_draw]
1808
	call	[option_box_draw]
1816
@@:
1809
@@:
1817
	bt	[flags],3
1810
	bt	[flags],3
1818
	jnc	@f
1811
	jnc	@f
1819
	push	dword Option_boxs2
1812
	push	dword Option_boxs2
1820
	call	[option_box_draw]
1813
	call	[option_box_draw]
1821
@@:
1814
@@:
1822
	mov	eax,ed_box_data
1815
	mov	eax,ed_box_data
1823
	mov	ecx,[eax]
1816
	mov	ecx,[eax]
1824
@@:
1817
@@:
1825
	add	eax,4
1818
	add	eax,4
1826
	push	dword [eax]
1819
	push	dword [eax]
1827
	call	[edit_box_draw]
1820
	call	[edit_box_draw]
1828
	loop	@b
1821
	loop	@b
1829
	pop	edx	ecx	ebx	eax
1822
	pop	edx	ecx	ebx	eax
1830
.2:
1823
.2:
1831
	mcall	10
1824
	mcall	10
1832
	cmp	al,6
1825
	cmp	al,6
1833
	je	.mouse
1826
	je	.mouse
1834
	cmp	al,3
1827
	cmp	al,3
1835
	je	.button
1828
	je	.button
1836
	cmp	al,2
1829
	cmp	al,2
1837
	je	.keys
1830
	je	.keys
1838
	cmp	al,1
1831
	cmp	al,1
1839
	jne	.2
1832
	jne	.2
1840
	call	draw_window
1833
	call	draw_window
1841
	call	main_area
1834
	call	main_area
1842
	bt	[flags],2
1835
	bt	[flags],2
1843
	jnc	@f
1836
	jnc	@f
1844
	push	dword Option_boxs
1837
	push	dword Option_boxs
1845
	call	[option_box_draw]
1838
	call	[option_box_draw]
1846
@@:
1839
@@:
1847
	bt	[flags],3
1840
	bt	[flags],3
1848
	jnc	@f
1841
	jnc	@f
1849
	push	dword Option_boxs2
1842
	push	dword Option_boxs2
1850
	call	[option_box_draw]
1843
	call	[option_box_draw]
1851
@@:
1844
@@:
1852
	jmp	.1
1845
	jmp	.1
1853
 
1846
 
1854
.mouse:
1847
.mouse:
1855
	bt	[flags],2
1848
	bt	[flags],2
1856
	jnc	@f
1849
	jnc	@f
1857
	push	dword Option_boxs
1850
	push	dword Option_boxs
1858
	call	[option_box_mouse]
1851
	call	[option_box_mouse]
1859
@@:
1852
@@:
1860
	bt	[flags],3
1853
	bt	[flags],3
1861
	jnc	@f
1854
	jnc	@f
1862
	push	dword Option_boxs2
1855
	push	dword Option_boxs2
1863
	call	[option_box_mouse]
1856
	call	[option_box_mouse]
1864
@@:
1857
@@:
1865
	jmp	.2
1858
	jmp	.2
1866
 
1859
 
1867
.keys:
1860
.keys:
1868
	mcall	2
1861
	mcall	2
1869
	cmp	ah,13
1862
	cmp	ah,13
1870
	je	.4
1863
	je	.4
1871
	cmp	ah,27
1864
	cmp	ah,27
1872
	je	.3
1865
	je	.3
1873
 
1866
 
1874
	bt	[flags],2	;¯à®¢¥àª  ­  ¯à¨¬¥­¨¬®áâì ᨬ¢®«®¢ 0-9,a-b
1867
	bt	[flags],2	;¯à®¢¥àª  ­  ¯à¨¬¥­¨¬®áâì ᨬ¢®«®¢ 0-9,a-b
1875
	jnc	.eb2
1868
	jnc	.eb2
1876
.eb1:
1869
.eb1:
1877
	cmp	ah,9
1870
	cmp	ah,9
1878
	jne	.eb1_1
1871
	jne	.eb1_1
1879
	push	edx
1872
	push	edx
1880
	mov	edx,[option_group1]
1873
	mov	edx,[option_group1]
1881
	cmp	edx,op1
1874
	cmp	edx,op1
1882
	jne	@f
1875
	jne	@f
1883
	mov	edx,op2
1876
	mov	edx,op2
1884
	jmp	.eb1_2
1877
	jmp	.eb1_2
1885
@@:
1878
@@:
1886
	cmp	edx,op2
1879
	cmp	edx,op2
1887
	jne	@f
1880
	jne	@f
1888
	mov	edx,op3
1881
	mov	edx,op3
1889
	jmp	.eb1_2
1882
	jmp	.eb1_2
1890
@@:
1883
@@:
1891
	mov	edx,op1
1884
	mov	edx,op1
1892
.eb1_2:
1885
.eb1_2:
1893
	mov	[option_group1],edx
1886
	mov	[option_group1],edx
1894
	pop	edx
1887
	pop	edx
1895
	jmp	.1
1888
	jmp	.1
1896
.eb1_1:
1889
.eb1_1:
1897
	cmp	ah,48
1890
	cmp	ah,48
1898
	jb	.eb1_3
1891
	jb	.eb1_3
1899
	cmp	ah,57
1892
	cmp	ah,57
1900
	jbe	.eb
1893
	jbe	.eb
1901
	cmp	ah,102
1894
	cmp	ah,102
1902
	jg	.eb1_3
1895
	jg	.eb1_3
1903
	cmp	ah,97
1896
	cmp	ah,97
1904
	jge	.eb
1897
	jge	.eb
1905
.eb1_3:
1898
.eb1_3:
1906
	cmp	ah,182
1899
	cmp	ah,182
1907
	je	.eb
1900
	je	.eb
1908
	cmp	ah,8
1901
	cmp	ah,8
1909
	je	.eb
1902
	je	.eb
1910
	cmp	ah,176
1903
	cmp	ah,176
1911
	je	.eb
1904
	je	.eb
1912
	cmp	ah,179
1905
	cmp	ah,179
1913
	je	.eb
1906
	je	.eb
1914
	dec	[edit2.shift]
1907
	dec	[edit2.shift]
1915
	dec	[edit2.shift+4]
1908
	dec	[edit2.shift+4]
1916
 
1909
 
1917
	push	dword [ed_box_data+4];	[esp]
1910
	push	dword [ed_box_data+4];	[esp]
1918
	call	[edit_box_draw]
1911
	call	[edit_box_draw]
1919
	jmp	.2
1912
	jmp	.2
1920
 
1913
 
1921
.eb2:
1914
.eb2:
1922
	bt	[flags],3
1915
	bt	[flags],3
1923
	jnc	.eb3
1916
	jnc	.eb3
1924
	cmp	ah,9
1917
	cmp	ah,9
1925
	jne	.eb2_2
1918
	jne	.eb2_2
1926
	push	edx
1919
	push	edx
1927
	mov	edx,[option_group2]
1920
	mov	edx,[option_group2]
1928
	cmp	edx,op11
1921
	cmp	edx,op11
1929
	jne	@f
1922
	jne	@f
1930
	mov	edx,op12
1923
	mov	edx,op12
1931
	jmp	.eb2_1
1924
	jmp	.eb2_1
1932
@@:
1925
@@:
1933
	mov	edx,op11
1926
	mov	edx,op11
1934
.eb2_1:
1927
.eb2_1:
1935
	mov	[option_group2],edx
1928
	mov	[option_group2],edx
1936
	pop	edx
1929
	pop	edx
1937
	jmp	.1
1930
	jmp	.1
1938
.eb2_2:
1931
.eb2_2:
1939
	cmp	ah,182
1932
	cmp	ah,182
1940
	je	.eb
1933
	je	.eb
1941
	cmp	ah,8
1934
	cmp	ah,8
1942
	je	.eb
1935
	je	.eb
1943
	cmp	ah,176
1936
	cmp	ah,176
1944
	je	.eb
1937
	je	.eb
1945
	cmp	ah,179
1938
	cmp	ah,179
1946
	je	.eb
1939
	je	.eb
1947
	mov	edx,[option_group2]
1940
	mov	edx,[option_group2]
1948
	cmp	edx,op11
1941
	cmp	edx,op11
1949
	jne	.eb
1942
	jne	.eb
1950
	cmp	ah,48
1943
	cmp	ah,48
1951
	jb	.eb2_3
1944
	jb	.eb2_3
1952
	cmp	ah,57
1945
	cmp	ah,57
1953
	jbe	.eb
1946
	jbe	.eb
1954
	cmp	ah,102
1947
	cmp	ah,102
1955
	jg	.eb2_3
1948
	jg	.eb2_3
1956
	cmp	ah,97
1949
	cmp	ah,97
1957
	jge	.eb
1950
	jge	.eb
1958
.eb2_3:
1951
.eb2_3:
1959
	dec	[edit3.shift]
1952
	dec	[edit3.shift]
1960
	dec	[edit3.shift+4]
1953
	dec	[edit3.shift+4]
1961
	push	dword [ed_box_data+4];[esp]
1954
	push	dword [ed_box_data+4];[esp]
1962
	call	[edit_box_draw]
1955
	call	[edit_box_draw]
1963
	jmp	.2
1956
	jmp	.2
1964
.eb3:
1957
.eb3:
1965
	bt	[flags],9
1958
	bt	[flags],9
1966
	jnc	.eb
1959
	jnc	.eb
1967
	cmp	ah,9
1960
	cmp	ah,9
1968
	je	.eb3_1
1961
	je	.eb3_1
1969
	cmp	ah,182
1962
	cmp	ah,182
1970
	je	.eb3_2
1963
	je	.eb3_2
1971
	cmp	ah,8
1964
	cmp	ah,8
1972
	je	.eb3_2
1965
	je	.eb3_2
1973
	cmp	ah,176
1966
	cmp	ah,176
1974
	je	.eb3_2
1967
	je	.eb3_2
1975
	cmp	ah,179
1968
	cmp	ah,179
1976
	je	.eb3_2
1969
	je	.eb3_2
1977
	cmp	ah,48
1970
	cmp	ah,48
1978
	jb	.eb3_3
1971
	jb	.eb3_3
1979
	cmp	ah,57
1972
	cmp	ah,57
1980
	jbe	.eb3_2
1973
	jbe	.eb3_2
1981
	cmp	ah,102
1974
	cmp	ah,102
1982
	jg	.eb3_3
1975
	jg	.eb3_3
1983
	cmp	ah,97
1976
	cmp	ah,97
1984
	jge	.eb3_2
1977
	jge	.eb3_2
1985
.eb3_3:
1978
.eb3_3:
1986
	push	edx
1979
	push	edx
1987
	mov	edx,[edit4.flags]
1980
	mov	edx,[edit4.flags]
1988
	and	edx,2
1981
	and	edx,2
1989
	jz	@f
1982
	jz	@f
1990
	pop	edx
1983
	pop	edx
1991
	dec	[edit4.shift]
1984
	dec	[edit4.shift]
1992
	dec	[edit4.shift+4]
1985
	dec	[edit4.shift+4]
1993
	jmp	.2
1986
	jmp	.2
1994
@@:
1987
@@:
1995
	pop	edx
1988
	pop	edx
1996
	dec	[edit5.shift]
1989
	dec	[edit5.shift]
1997
	dec	[edit5.shift+4]
1990
	dec	[edit5.shift+4]
1998
	jmp	.2
1991
	jmp	.2
1999
.eb3_1:
1992
.eb3_1:
2000
	push	edx
1993
	push	edx
2001
	mov	edx,[edit4.flags]
1994
	mov	edx,[edit4.flags]
2002
	and	edx,2
1995
	and	edx,2
2003
	jz	@f
1996
	jz	@f
2004
	pop	edx
1997
	pop	edx
2005
	mov	[edit5.flags],2
1998
	mov	[edit5.flags],2
2006
	mov	[edit4.flags],0
1999
	mov	[edit4.flags],0
2007
	jmp	.eb3_2
2000
	jmp	.eb3_2
2008
@@:
2001
@@:
2009
	pop	edx
2002
	pop	edx
2010
	mov	[edit4.flags],2
2003
	mov	[edit4.flags],2
2011
	mov	[edit5.flags],0
2004
	mov	[edit5.flags],0
2012
.eb3_2:
2005
.eb3_2:
2013
	push	dword [ed_box_data+4]
2006
	push	dword [ed_box_data+4]
2014
	call	[edit_box_key]
2007
	call	[edit_box_key]
2015
	push	dword [ed_box_data+8]
2008
	push	dword [ed_box_data+8]
2016
	call	[edit_box_key]
2009
	call	[edit_box_key]
2017
	jmp	.1
2010
	jmp	.1
2018
 
2011
 
2019
.eb:
2012
.eb:
2020
	push	dword [ed_box_data+4];[esp]
2013
	push	dword [ed_box_data+4];[esp]
2021
	call	[edit_box_key]
2014
	call	[edit_box_key]
2022
	jmp	.2
2015
	jmp	.2
2023
 
2016
 
2024
.button:
2017
.button:
2025
	mcall	17
2018
	mcall	17
2026
	cmp	ah,1
2019
	cmp	ah,1
2027
	jne	.2
2020
	jne	.2
2028
	jmp	close_prog
2021
	jmp	close_prog
2029
.3:
2022
.3:
2030
	btr	[flags],2
2023
	btr	[flags],2
2031
	btr	[flags],3
2024
	btr	[flags],3
2032
	add	esp,4
2025
	add	esp,4
2033
	jmp	redraw_all
2026
	jmp	redraw_all
2034
.4:
2027
.4:
2035
	mcall	13,180*65536+220,25*65536+70,frgrd_color
2028
	mcall	13,180*65536+220,25*65536+70,frgrd_color
2036
	ret
2029
	ret
2037
 
2030
 
2038
 
2031
 
2039
;-------------------------------------------------
2032
;-------------------------------------------------
2040
;-------------------------------------------------
2033
;-------------------------------------------------
2041
;-------------------------------------------------
2034
;-------------------------------------------------
2042
 
2035
 
2043
strtohex:
2036
strtohex:
2044
;enter: edi - pointer to string,ebx - pointer to size of string; exit: eax in hex
2037
;enter: edi - pointer to string,ebx - pointer to size of string; exit: eax in hex
2045
	mov	esi,hex8_string
2038
	mov	esi,hex8_string
2046
@@:
2039
@@:
2047
	mov	ah,[edi+ecx-1]	;®¡à ¡®âª  ¢¢¥¤ñ­­ëå ᨬ¢®«®¢
2040
	mov	ah,[edi+ecx-1]	;®¡à ¡®âª  ¢¢¥¤ñ­­ëå ᨬ¢®«®¢
2048
	sub	ah,48
2041
	sub	ah,48
2049
	cmp	ah,9
2042
	cmp	ah,9
2050
	jbe	.1
2043
	jbe	.1
2051
	sub	ah,7
2044
	sub	ah,7
2052
	cmp	ah,15
2045
	cmp	ah,15
2053
	jbe	.1
2046
	jbe	.1
2054
	sub	ah,32
2047
	sub	ah,32
2055
.1:
2048
.1:
2056
	mov	[esi+ecx-1],ah
2049
	mov	[esi+ecx-1],ah
2057
	dec	ecx
2050
	dec	ecx
2058
	jnz	@b
2051
	jnz	@b
2059
	mov	ecx,[ebx]
2052
	mov	ecx,[ebx]
2060
	xor	eax,eax
2053
	xor	eax,eax
2061
.2:
2054
.2:
2062
	shl	eax,4
2055
	shl	eax,4
2063
	or	al,[esi]
2056
	or	al,[esi]
2064
	inc	esi
2057
	inc	esi
2065
	dec	ecx
2058
	dec	ecx
2066
	jnz	.2
2059
	jnz	.2
2067
	ret
2060
	ret
2068
 
2061
 
2069
Ctrl_G:
2062
Ctrl_G:
2070
	bts	[flags],2
2063
	bts	[flags],2
2071
	mov	dword [ed_box_data],1
2064
	mov	dword [ed_box_data],1
2072
	mov	dword [ed_box_data+4],edit2
2065
	mov	dword [ed_box_data+4],edit2
2073
	call	draw_ed_box
2066
	call	draw_ed_box
2074
	btr	[flags],2
2067
	btr	[flags],2
2075
	mov	ecx,[edit2.size]
2068
	mov	ecx,[edit2.size]
2076
	test	ecx,ecx
2069
	test	ecx,ecx
2077
	jz	.end
2070
	jz	.end
2078
	cmp	ecx,8
2071
	cmp	ecx,8
2079
	jg	Ctrl_G
2072
	jg	Ctrl_G
2080
 
2073
 
2081
	mov	edi,go_to_string
2074
	mov	edi,go_to_string
2082
	mov	ebx,edit2.size
2075
	mov	ebx,edit2.size
2083
	call	strtohex
2076
	call	strtohex
2084
 
2077
 
2085
	cmp	eax,[file_size]	;¢ë¡®à check_box' 
2078
	cmp	eax,[file_size]	;¢ë¡®à check_box' 
2086
	jg	Ctrl_G
2079
	jg	Ctrl_G
2087
	mov	edx,[option_group1]
2080
	mov	edx,[option_group1]
2088
	cmp	edx,op1	;abs
2081
	cmp	edx,op1	;abs
2089
	je	.abs
2082
	je	.abs
2090
	cmp	edx,op2
2083
	cmp	edx,op2
2091
	jne	.back
2084
	jne	.back
2092
	add	eax,[current_offset]	;forward
2085
	add	eax,[current_offset]	;forward
2093
	cmp	eax,[file_size]
2086
	cmp	eax,[file_size]
2094
	jg	Ctrl_G
2087
	jg	Ctrl_G
2095
	mov	edi,[screen_table]
2088
	mov	edi,[screen_table]
2096
	mov	edi,[edi]
2089
	mov	edi,[edi]
2097
	xor	edx,edx
2090
	xor	edx,edx
2098
@@:
2091
@@:
2099
	add	edx,edi
2092
	add	edx,edi
2100
	cmp	eax,edx
2093
	cmp	eax,edx
2101
	jg	@b
2094
	jg	@b
2102
	sub	edx,edi
2095
	sub	edx,edi
2103
	mov	[begin_offset],edx
2096
	mov	[begin_offset],edx
2104
	sub	eax,edx
2097
	sub	eax,edx
2105
	shl	eax,1
2098
	shl	eax,1
2106
	inc	eax
2099
	inc	eax
2107
	mov	[cursor],eax
2100
	mov	[cursor],eax
2108
	jmp	.end
2101
	jmp	.end
2109
 
2102
 
2110
.back:
2103
.back:
2111
	cmp	eax,[current_offset]	;back
2104
	cmp	eax,[current_offset]	;back
2112
	jg	Ctrl_G
2105
	jg	Ctrl_G
2113
	mov	edi,[screen_table]
2106
	mov	edi,[screen_table]
2114
	mov	edi,[edi]
2107
	mov	edi,[edi]
2115
	mov	ebx,[current_offset]
2108
	mov	ebx,[current_offset]
2116
	sub	ebx,eax
2109
	sub	ebx,eax
2117
	xor	edx,edx
2110
	xor	edx,edx
2118
@@:
2111
@@:
2119
	add	edx,edi
2112
	add	edx,edi
2120
	cmp	edx,ebx
2113
	cmp	edx,ebx
2121
	jb	@b
2114
	jb	@b
2122
	sub	edx,edi
2115
	sub	edx,edi
2123
	mov	[begin_offset],edx
2116
	mov	[begin_offset],edx
2124
	sub	ebx,edx
2117
	sub	ebx,edx
2125
	mov	edx,ebx
2118
	mov	edx,ebx
2126
	shl	edx,1
2119
	shl	edx,1
2127
	inc	edx
2120
	inc	edx
2128
	mov	[cursor],edx
2121
	mov	[cursor],edx
2129
	jmp	.end
2122
	jmp	.end
2130
.abs:
2123
.abs:
2131
	mov	esi,[screen_table]
2124
	mov	esi,[screen_table]
2132
	mov	esi,[esi]
2125
	mov	esi,[esi]
2133
	xor	ebx,ebx
2126
	xor	ebx,ebx
2134
.3:
2127
.3:
2135
	add	ebx,esi
2128
	add	ebx,esi
2136
	cmp	eax,ebx
2129
	cmp	eax,ebx
2137
	jg	.3
2130
	jg	.3
2138
	sub	ebx,esi
2131
	sub	ebx,esi
2139
	cmp	ebx,[file_size]
2132
	cmp	ebx,[file_size]
2140
	jg	Ctrl_G
2133
	jg	Ctrl_G
2141
	mov	[begin_offset],ebx
2134
	mov	[begin_offset],ebx
2142
	sub	eax,ebx
2135
	sub	eax,ebx
2143
	shl	eax,1
2136
	shl	eax,1
2144
	inc	eax
2137
	inc	eax
2145
	mov	[cursor],eax
2138
	mov	[cursor],eax
2146
.end:
2139
.end:
2147
	jmp	red
2140
	jmp	red
2148
 
2141
 
2149
Ctrl_B:
2142
Ctrl_B:
2150
	bts	[flags],9
2143
	bts	[flags],9
2151
	mov	dword [ed_box_data],2
2144
	mov	dword [ed_box_data],2
2152
	mov	dword [ed_box_data+4],edit4
2145
	mov	dword [ed_box_data+4],edit4
2153
	mov	dword [ed_box_data+8],edit5
2146
	mov	dword [ed_box_data+8],edit5
2154
	call	draw_ed_box
2147
	call	draw_ed_box
2155
	btr	[flags],9
2148
	btr	[flags],9
2156
 
2149
 
2157
	mov	ecx,[edit4.size]
2150
	mov	ecx,[edit4.size]
2158
	test	ecx,ecx
2151
	test	ecx,ecx
2159
	jz	.end
2152
	jz	.end
2160
	cmp	ecx,8
2153
	cmp	ecx,8
2161
	jg	Ctrl_B
2154
	jg	Ctrl_B
2162
 
2155
 
2163
	mov	edi,sel1_string
2156
	mov	edi,sel1_string
2164
	mov	ebx,edit4.size
2157
	mov	ebx,edit4.size
2165
	call	strtohex
2158
	call	strtohex
2166
 
2159
 
2167
	cmp	eax,[file_size]
2160
	cmp	eax,[file_size]
2168
	jge	Ctrl_B
2161
	jge	Ctrl_B
2169
	push	eax	;from
2162
	push	eax	;from
2170
	mov	ecx,[edit5.size]
2163
	mov	ecx,[edit5.size]
2171
	test	ecx,ecx
2164
	test	ecx,ecx
2172
	jz	.end
2165
	jz	.end
2173
	cmp	ecx,8
2166
	cmp	ecx,8
2174
	jg	Ctrl_B
2167
	jg	Ctrl_B
2175
 
2168
 
2176
	mov	edi,sel2_string
2169
	mov	edi,sel2_string
2177
	mov	ebx,edit5.size
2170
	mov	ebx,edit5.size
2178
	call	strtohex
2171
	call	strtohex
2179
 
2172
 
2180
	cmp	eax,[file_size]
2173
	cmp	eax,[file_size]
2181
	jb	@f
2174
	jb	@f
2182
	pop	eax
2175
	pop	eax
2183
	jmp	Ctrl_B
2176
	jmp	Ctrl_B
2184
@@:
2177
@@:
2185
	pop	[shblock_beg]
2178
	pop	[shblock_beg]
2186
	cmp	eax,[shblock_beg]
2179
	cmp	eax,[shblock_beg]
2187
	jae	@f
2180
	jae	@f
2188
	xchg	eax,[shblock_beg]
2181
	xchg	eax,[shblock_beg]
2189
@@:
2182
@@:
2190
	mov	[shblock_end],eax
2183
	mov	[shblock_end],eax
2191
	bts	[flags],8
2184
	bts	[flags],8
2192
.end:
2185
.end:
2193
	jmp	red
2186
	jmp	red
2194
 
2187
 
2195
Ctrl_F:
2188
Ctrl_F:
2196
	bts	[flags],3
2189
	bts	[flags],3
2197
	mov	dword [ed_box_data],1
2190
	mov	dword [ed_box_data],1
2198
	mov	dword [ed_box_data+4],edit3
2191
	mov	dword [ed_box_data+4],edit3
2199
	call	draw_ed_box
2192
	call	draw_ed_box
2200
	btr	[flags],3
2193
	btr	[flags],3
2201
	mov	ecx,[edit3.size]
2194
	mov	ecx,[edit3.size]
2202
	test	ecx,ecx
2195
	test	ecx,ecx
2203
	jz	.end
2196
	jz	.end
2204
	cmp	ecx,8
2197
	cmp	ecx,8
2205
	jg	Ctrl_F
2198
	jg	Ctrl_F
2206
	mov	edi,find_string
2199
	mov	edi,find_string
2207
	mov	edx,[option_group2]
2200
	mov	edx,[option_group2]
2208
	cmp	edx,op11
2201
	cmp	edx,op11
2209
	jne	.find
2202
	jne	.find
2210
	mov	eax,find_string
2203
	mov	eax,find_string
2211
	push	dword [eax]
2204
	push	dword [eax]
2212
	push	dword [eax+4]
2205
	push	dword [eax+4]
2213
	bts	[flags],0
2206
	bts	[flags],0
2214
	mov	ebx,edit3.size
2207
	mov	ebx,edit3.size
2215
	call	strtohex
2208
	call	strtohex
2216
	mov	ecx,[edit3.size]
2209
	mov	ecx,[edit3.size]
2217
	bt	cx,0
2210
	bt	cx,0
2218
	jnc	.3
2211
	jnc	.3
2219
	inc	ecx
2212
	inc	ecx
2220
	shl	eax,4
2213
	shl	eax,4
2221
.3:
2214
.3:
2222
	shr	ecx,1
2215
	shr	ecx,1
2223
.4:
2216
.4:
2224
	mov	[edi+ecx-1],al
2217
	mov	[edi+ecx-1],al
2225
	shr	eax,8
2218
	shr	eax,8
2226
	loop	.4
2219
	loop	.4
2227
.find:
2220
.find:
2228
	mov	esi,[current_offset]
2221
	mov	esi,[current_offset]
2229
	mov	ebx,[file_size]
2222
	mov	ebx,[file_size]
2230
	mov	eax,ebx
2223
	mov	eax,ebx
2231
	add	eax,[file_buffer]
2224
	add	eax,[file_buffer]
2232
	add	esi,[file_buffer]
2225
	add	esi,[file_buffer]
2233
.5:
2226
.5:
2234
	mov	ecx,[edit3.size]
2227
	mov	ecx,[edit3.size]
2235
	cmp	edx,op11
2228
	cmp	edx,op11
2236
	jne	.7
2229
	jne	.7
2237
	bt	cx,0
2230
	bt	cx,0
2238
	jnc	.6
2231
	jnc	.6
2239
	inc	ecx
2232
	inc	ecx
2240
.6:
2233
.6:
2241
	shr	ecx,1
2234
	shr	ecx,1
2242
.7:
2235
.7:
2243
	cld
2236
	cld
2244
@@:
2237
@@:
2245
	cmp	esi,eax
2238
	cmp	esi,eax
2246
	jg	.end
2239
	jg	.end
2247
	cmpsb
2240
	cmpsb
2248
	je	.8
2241
	je	.8
2249
	mov	edi,find_string
2242
	mov	edi,find_string
2250
	jmp	.5
2243
	jmp	.5
2251
.8:
2244
.8:
2252
	loop	@b
2245
	loop	@b
2253
	sub	esi,[file_buffer]
2246
	sub	esi,[file_buffer]
2254
	mov	ecx,[edit3.size]
2247
	mov	ecx,[edit3.size]
2255
	cmp	edx,op11
2248
	cmp	edx,op11
2256
	jne	.10
2249
	jne	.10
2257
	bt	cx,0
2250
	bt	cx,0
2258
	jnc	.9
2251
	jnc	.9
2259
	inc	ecx
2252
	inc	ecx
2260
.9:
2253
.9:
2261
	shr	ecx,1
2254
	shr	ecx,1
2262
.10:
2255
.10:
2263
	sub	esi,ecx
2256
	sub	esi,ecx
2264
	xor	edx,edx
2257
	xor	edx,edx
2265
	mov	edi,[screen_table]
2258
	mov	edi,[screen_table]
2266
	mov	edi,[edi]
2259
	mov	edi,[edi]
2267
@@:
2260
@@:
2268
	add	edx,edi
2261
	add	edx,edi
2269
	cmp	edx,esi
2262
	cmp	edx,esi
2270
	jb	@b
2263
	jb	@b
2271
	sub	edx,edi
2264
	sub	edx,edi
2272
	mov	[begin_offset],edx
2265
	mov	[begin_offset],edx
2273
	sub	esi,edx
2266
	sub	esi,edx
2274
	shl	esi,1
2267
	shl	esi,1
2275
	inc	esi
2268
	inc	esi
2276
	mov	[cursor],esi
2269
	mov	[cursor],esi
2277
.end:
2270
.end:
2278
	bt	[flags],0
2271
	bt	[flags],0
2279
	jnc	@f
2272
	jnc	@f
2280
	mov	eax,find_string
2273
	mov	eax,find_string
2281
	pop	dword [eax+4]
2274
	pop	dword [eax+4]
2282
	pop	dword [eax]
2275
	pop	dword [eax]
2283
	btr	[flags],0
2276
	btr	[flags],0
2284
@@:
2277
@@:
2285
	jmp	red
2278
	jmp	red
2286
 
2279
 
2287
invert_byte:
2280
invert_byte:
2288
	mov	ebx,[current_offset]
2281
	mov	ebx,[current_offset]
2289
	cmp	ebx,[file_size]
2282
	cmp	ebx,[file_size]
2290
	jae	still
2283
	jae	still
2291
	add	ebx,[file_buffer]
2284
	add	ebx,[file_buffer]
2292
	not	byte [ebx]
2285
	not	byte [ebx]
2293
	jmp	red
2286
	jmp	red
2294
 
2287
 
2295
 
2288
 
2296
Insert:	;¯¥à¥ª«î祭¨¥	०¨¬ 	¢áâ ¢ª¨/§ ¬¥­ë
2289
Insert:	;¯¥à¥ª«î祭¨¥	०¨¬ 	¢áâ ¢ª¨/§ ¬¥­ë
2297
	btc	[flags],1	;not [insert_mod]
2290
	btc	[flags],1	;not [insert_mod]
2298
	call	show_insert
2291
	call	show_insert
2299
	jmp	red
2292
	jmp	red
2300
 
2293
 
2301
 
2294
 
2302
DEL:
2295
DEL:
2303
	bt	[flags],1
2296
	bt	[flags],1
2304
	jnc	still
2297
	jnc	still
2305
	mov	edi,[current_offset]
2298
	mov	edi,[current_offset]
2306
	mov	esi,[file_buffer]
2299
	mov	esi,[file_buffer]
2307
	mov	edx,[file_size]
2300
	mov	edx,[file_size]
2308
	test	edx,edx
2301
	test	edx,edx
2309
	jz	still
2302
	jz	still
2310
	dec	edx
2303
	dec	edx
2311
	cmp	edi,edx
2304
	cmp	edi,edx
2312
	jbe	@f
2305
	jbe	@f
2313
	call	LEFT
2306
	call	LEFT
2314
	call	LEFT
2307
	call	LEFT
2315
	jmp	red
2308
	jmp	red
2316
@@:
2309
@@:
2317
	jb	@f
2310
	jb	@f
2318
	call	LEFT
2311
	call	LEFT
2319
	call	LEFT
2312
	call	LEFT
2320
@@:
2313
@@:
2321
	cmp	edi,edx
2314
	cmp	edi,edx
2322
	je	@f
2315
	je	@f
2323
	mov	al,[edi+esi+1]
2316
	mov	al,[edi+esi+1]
2324
	mov	[edi+esi],al
2317
	mov	[edi+esi],al
2325
	inc	edi
2318
	inc	edi
2326
	jmp	@b
2319
	jmp	@b
2327
@@:
2320
@@:
2328
	dec	[file_size]
2321
	dec	[file_size]
2329
	call	show_file_size
2322
	call	show_file_size
2330
	jmp	red
2323
	jmp	red
2331
 
2324
 
2332
 
2325
 
2333
BackSpace:
2326
BackSpace:
2334
	bt	[flags],1	;cmp [insert_mod],0
2327
	bt	[flags],1	;cmp [insert_mod],0
2335
	jnc	still	;je still
2328
	jnc	still	;je still
2336
	mov	edi,[current_offset]
2329
	mov	edi,[current_offset]
2337
	mov	esi,[file_buffer]
2330
	mov	esi,[file_buffer]
2338
	mov	edx,[file_size]
2331
	mov	edx,[file_size]
2339
	test	edx,edx
2332
	test	edx,edx
2340
	jz	still
2333
	jz	still
2341
	test	edi,edi
2334
	test	edi,edi
2342
	jz	still
2335
	jz	still
2343
	call	LEFT
2336
	call	LEFT
2344
	call	LEFT
2337
	call	LEFT
2345
	cmp	[cursor],2
2338
	cmp	[cursor],2
2346
	jne	@f
2339
	jne	@f
2347
	cmp	edx,1
2340
	cmp	edx,1
2348
	jne	@f
2341
	jne	@f
2349
	dec	[cursor]
2342
	dec	[cursor]
2350
@@:
2343
@@:
2351
	cmp	edi,edx
2344
	cmp	edi,edx
2352
	jge	@f
2345
	jge	@f
2353
	mov	al,[edi+esi]
2346
	mov	al,[edi+esi]
2354
	mov	[edi+esi-1],al
2347
	mov	[edi+esi-1],al
2355
	inc	edi
2348
	inc	edi
2356
	jmp	@b
2349
	jmp	@b
2357
@@:
2350
@@:
2358
	dec	[file_size]
2351
	dec	[file_size]
2359
	call	show_file_size
2352
	call	show_file_size
2360
	jmp	red
2353
	jmp	red
2361
 
2354
 
2362
 
2355
 
2363
Ctrl_UP:
2356
Ctrl_UP:
2364
	cmp	[begin_offset],0
2357
	cmp	[begin_offset],0
2365
	je	@f
2358
	je	@f
2366
	mov	eax,[bytes_per_line]
2359
	mov	eax,[bytes_per_line]
2367
	sub	[begin_offset],eax
2360
	sub	[begin_offset],eax
2368
@@:
2361
@@:
2369
	ret
2362
	ret
2370
 
2363
 
2371
 
2364
 
2372
Ctrl_DOWN:
2365
Ctrl_DOWN:
2373
	mov	eax,[cursor]
2366
	mov	eax,[cursor]
2374
	dec	eax
2367
	dec	eax
2375
	shr	eax,1
2368
	shr	eax,1
2376
	add	eax,[begin_offset]
2369
	add	eax,[begin_offset]
2377
	mov	ebx,[bytes_per_line]
2370
	mov	ebx,[bytes_per_line]
2378
	add	eax,ebx
2371
	add	eax,ebx
2379
	cmp	eax,[file_size]
2372
	cmp	eax,[file_size]
2380
	jge	@f
2373
	jge	@f
2381
	add	[begin_offset],ebx
2374
	add	[begin_offset],ebx
2382
@@:
2375
@@:
2383
	ret
2376
	ret
2384
 
2377
 
2385
 
2378
 
2386
UP:
2379
UP:
2387
	mov	eax,[current_offset]
2380
	mov	eax,[current_offset]
2388
	cmp	eax,[bytes_per_line]
2381
	cmp	eax,[bytes_per_line]
2389
	jb	still
2382
	jb	still
2390
	mov	eax,[cursor]
2383
	mov	eax,[cursor]
2391
	dec	ax
2384
	dec	ax
2392
	shr	ax,1
2385
	shr	ax,1
2393
	cmp	eax,[bytes_per_line]
2386
	cmp	eax,[bytes_per_line]
2394
	jge	@f
2387
	jge	@f
2395
	mov	eax,[bytes_per_line]
2388
	mov	eax,[bytes_per_line]
2396
	sub	[begin_offset],eax
2389
	sub	[begin_offset],eax
2397
	jmp	red
2390
	jmp	red
2398
@@:
2391
@@:
2399
	mov	eax,[bytes_per_line]
2392
	mov	eax,[bytes_per_line]
2400
	shl	ax,1
2393
	shl	ax,1
2401
	sub	[cursor],eax
2394
	sub	[cursor],eax
2402
	jmp	red
2395
	jmp	red
2403
 
2396
 
2404
 
2397
 
2405
DOWN:	;­ 	áâபã	¢­¨§
2398
DOWN:	;­ 	áâபã	¢­¨§
2406
	mov	eax,[current_offset]
2399
	mov	eax,[current_offset]
2407
	add	eax,[bytes_per_line]
2400
	add	eax,[bytes_per_line]
2408
	bt	[flags],1
2401
	bt	[flags],1
2409
	jnc	@f
2402
	jnc	@f
2410
	dec	eax
2403
	dec	eax
2411
@@:
2404
@@:
2412
	cmp	eax,[file_size]
2405
	cmp	eax,[file_size]
2413
	jge	still	;¥á«¨ ¬ë ­  ¯®á«¥¤­¥© áâப¥ ä ©« , â® á⮯
2406
	jge	still	;¥á«¨ ¬ë ­  ¯®á«¥¤­¥© áâப¥ ä ©« , â® á⮯
2414
	mov	eax,[screen_table]
2407
	mov	eax,[screen_table]
2415
	mov	eax,[eax]
2408
	mov	eax,[eax]
2416
	mov	edx,[cursor]
2409
	mov	edx,[cursor]
2417
	dec	dx
2410
	dec	dx
2418
	shr	dx,1
2411
	shr	dx,1
2419
	add	edx,[bytes_per_line]
2412
	add	edx,[bytes_per_line]
2420
	cmp	eax,edx	;­  ¯®á«¥¤­¥© áâப¥?
2413
	cmp	eax,edx	;­  ¯®á«¥¤­¥© áâப¥?
2421
	jbe	@f
2414
	jbe	@f
2422
	mov	eax,[bytes_per_line]
2415
	mov	eax,[bytes_per_line]
2423
	shl	ax,1
2416
	shl	ax,1
2424
	add	[cursor],eax
2417
	add	[cursor],eax
2425
	ret
2418
	ret
2426
@@:
2419
@@:
2427
	mov	eax,[bytes_per_line]
2420
	mov	eax,[bytes_per_line]
2428
	add	[begin_offset],eax
2421
	add	[begin_offset],eax
2429
	ret
2422
	ret
2430
 
2423
 
2431
 
2424
 
2432
LEFT:
2425
LEFT:
2433
	cmp	[cursor],1
2426
	cmp	[cursor],1
2434
	jbe	@f
2427
	jbe	@f
2435
	dec	[cursor]
2428
	dec	[cursor]
2436
	jmp	.end
2429
	jmp	.end
2437
@@:
2430
@@:
2438
	cmp	[begin_offset],0	;ªãàá®à	­  ¯¥à¢®© áâப¥ ᮠᬥ饭¨¥¬ 0?
2431
	cmp	[begin_offset],0	;ªãàá®à	­  ¯¥à¢®© áâப¥ ᮠᬥ饭¨¥¬ 0?
2439
	jne	@f	;¨­ ç¥ ᬥ頥¬ á ¯à®ªàã⪮© ¢¢¥àå ¢¢¥àå ¨ ¢ ª®­¥æ áâப¨
2432
	jne	@f	;¨­ ç¥ ᬥ頥¬ á ¯à®ªàã⪮© ¢¢¥àå ¢¢¥àå ¨ ¢ ª®­¥æ áâப¨
2440
;	inc	[cursor]
2433
;	inc	[cursor]
2441
	jmp	.end;still	;⮣¤  á⮯
2434
	jmp	.end;still	;⮣¤  á⮯
2442
@@:
2435
@@:
2443
	mov	eax,[bytes_per_line]
2436
	mov	eax,[bytes_per_line]
2444
	sub	[begin_offset],eax
2437
	sub	[begin_offset],eax
2445
	shl	ax,1
2438
	shl	ax,1
2446
	dec	eax
2439
	dec	eax
2447
	add	[cursor],eax
2440
	add	[cursor],eax
2448
.end:
2441
.end:
2449
	ret
2442
	ret
2450
 
2443
 
2451
 
2444
 
2452
RIGHT:
2445
RIGHT:
2453
	mov	ecx,[begin_offset]	;¢ëç¨á«ï¥¬ ᬥ饭¨¥ ªãàá®à 
2446
	mov	ecx,[begin_offset]	;¢ëç¨á«ï¥¬ ᬥ饭¨¥ ªãàá®à 
2454
	mov	edx,[cursor]	;¤«ï ¯à®¢¥àª¨ áãé¥á⢮¢ ­¨ï
2447
	mov	edx,[cursor]	;¤«ï ¯à®¢¥àª¨ áãé¥á⢮¢ ­¨ï
2455
	shr	edx,1	;á«¥¤ãî饣® ᨬ¢®« 
2448
	shr	edx,1	;á«¥¤ãî饣® ᨬ¢®« 
2456
	add	ecx,edx
2449
	add	ecx,edx
2457
	bt	[flags],1
2450
	bt	[flags],1
2458
	jnc	@f
2451
	jnc	@f
2459
	dec	ecx	;áà ¢­¨¢ ¥¬ á à §¬¥à®¬ ä ©« 
2452
	dec	ecx	;áà ¢­¨¢ ¥¬ á à §¬¥à®¬ ä ©« 
2460
@@:
2453
@@:
2461
	cmp	ecx,[file_size]	;¯®«®¦¥­¨¥¬ ªãàá®à  - ­¥ ¤ «¥¥ 1 ¡ ©â  ®â ª®­æ  ä ©« 
2454
	cmp	ecx,[file_size]	;¯®«®¦¥­¨¥¬ ªãàá®à  - ­¥ ¤ «¥¥ 1 ¡ ©â  ®â ª®­æ  ä ©« 
2462
	jge	red
2455
	jge	red
2463
	cmp	[file_size],0
2456
	cmp	[file_size],0
2464
	je	still
2457
	je	still
2465
	mov	eax,[screen_table]
2458
	mov	eax,[screen_table]
2466
	mov	eax,[eax]
2459
	mov	eax,[eax]
2467
	mov	ecx,[begin_offset]
2460
	mov	ecx,[begin_offset]
2468
	cmp	eax,edx	;áà ¢­¥­¨¥ ­  ­¨¦­îî áâபã
2461
	cmp	eax,edx	;áà ¢­¥­¨¥ ­  ­¨¦­îî áâபã
2469
	jbe	@f
2462
	jbe	@f
2470
	inc	[cursor]	;ªãàá®à ¢¯à ¢®
2463
	inc	[cursor]	;ªãàá®à ¢¯à ¢®
2471
	jmp	red
2464
	jmp	red
2472
@@:
2465
@@:
2473
	mov	ecx,[bytes_per_line]	;ᬥ頥¬áï ­  áâà®çªã ¢­¨§
2466
	mov	ecx,[bytes_per_line]	;ᬥ頥¬áï ­  áâà®çªã ¢­¨§
2474
	add	[begin_offset],ecx	;á ¯à®ªàã⪮©
2467
	add	[begin_offset],ecx	;á ¯à®ªàã⪮©
2475
	shl	cx,1
2468
	shl	cx,1
2476
	dec	cx
2469
	dec	cx
2477
	sub	[cursor],ecx
2470
	sub	[cursor],ecx
2478
	jmp	red
2471
	jmp	red
2479
 
2472
 
2480
 
2473
 
2481
PGDN:
2474
PGDN:
2482
	mov	edi,[screen_table]
2475
	mov	edi,[screen_table]
2483
	mov	eax,[edi]
2476
	mov	eax,[edi]
2484
	shl	eax,1
2477
	shl	eax,1
2485
	add	eax,[begin_offset]
2478
	add	eax,[begin_offset]
2486
	cmp	eax,[file_size]	;¥áâì «¨ ¢®§¬®¦­®áâì ᬥáâ¨âìáï ­  áâà ­¨æã?
2479
	cmp	eax,[file_size]	;¥áâì «¨ ¢®§¬®¦­®áâì ᬥáâ¨âìáï ­  áâà ­¨æã?
2487
	jg	Ctrl_END
2480
	jg	Ctrl_END
2488
	mov	eax,[edi]
2481
	mov	eax,[edi]
2489
	add	[begin_offset],eax
2482
	add	[begin_offset],eax
2490
;	mov	ebx,[cursor]
2483
;	mov	ebx,[cursor]
2491
;	dec	ebx
2484
;	dec	ebx
2492
;	xor	ecx,ecx
2485
;	xor	ecx,ecx
2493
;	bt	ebx,0
2486
;	bt	ebx,0
2494
;	jnc	@f
2487
;	jnc	@f
2495
;	inc	ecx
2488
;	inc	ecx
2496
;	@@:	shr	ebx,1
2489
;	@@:	shr	ebx,1
2497
;	add	ebx,eax
2490
;	add	ebx,eax
2498
;	@@:	cmp	ebx,[file_size]
2491
;	@@:	cmp	ebx,[file_size]
2499
;	jbe	@f
2492
;	jbe	@f
2500
;	sub	ebx,[bytes_per_line]
2493
;	sub	ebx,[bytes_per_line]
2501
;	jmp	@b
2494
;	jmp	@b
2502
;	@@:	sub	ebx,eax
2495
;	@@:	sub	ebx,eax
2503
;	shl	ebx,1
2496
;	shl	ebx,1
2504
;	inc	ebx
2497
;	inc	ebx
2505
;	add	ebx,ecx
2498
;	add	ebx,ecx
2506
;	mov	[cursor],ebx
2499
;	mov	[cursor],ebx
2507
	jmp	red
2500
	jmp	red
2508
 
2501
 
2509
 
2502
 
2510
PGUP:
2503
PGUP:
2511
	mov	eax,[screen_table]
2504
	mov	eax,[screen_table]
2512
	mov	eax,[eax]
2505
	mov	eax,[eax]
2513
	mov	edx,[begin_offset]
2506
	mov	edx,[begin_offset]
2514
	cmp	eax,edx
2507
	cmp	eax,edx
2515
	jbe	@f
2508
	jbe	@f
2516
	call	Ctrl_HOME
2509
	call	Ctrl_HOME
2517
	jmp	red
2510
	jmp	red
2518
@@:
2511
@@:
2519
	sub	[begin_offset],eax
2512
	sub	[begin_offset],eax
2520
	jmp	red
2513
	jmp	red
2521
 
2514
 
2522
 
2515
 
2523
HOME:
2516
HOME:
2524
	mov	eax,[cursor]
2517
	mov	eax,[cursor]
2525
	dec	ax
2518
	dec	ax
2526
	shr	ax,1
2519
	shr	ax,1
2527
	mov	ecx,[bytes_per_line]
2520
	mov	ecx,[bytes_per_line]
2528
	xor	edx,edx
2521
	xor	edx,edx
2529
	div	ecx
2522
	div	ecx
2530
	shl	dx,1
2523
	shl	dx,1
2531
	sub	[cursor],edx
2524
	sub	[cursor],edx
2532
	bt	[cursor],0
2525
	bt	[cursor],0
2533
	jc	@f
2526
	jc	@f
2534
	dec	[cursor]
2527
	dec	[cursor]
2535
@@:
2528
@@:
2536
	ret
2529
	ret
2537
 
2530
 
2538
 
2531
 
2539
END_:
2532
END_:
2540
	mov	eax,[cursor]
2533
	mov	eax,[cursor]
2541
	dec	ax
2534
	dec	ax
2542
	shr	ax,1
2535
	shr	ax,1
2543
	mov	ecx,[bytes_per_line]
2536
	mov	ecx,[bytes_per_line]
2544
	xor	edx,edx
2537
	xor	edx,edx
2545
	div	ecx
2538
	div	ecx
2546
	mov	eax,[current_offset]
2539
	mov	eax,[current_offset]
2547
	sub	eax,edx
2540
	sub	eax,edx
2548
	add	eax,[bytes_per_line]
2541
	add	eax,[bytes_per_line]
2549
	mov	edx,[file_size]
2542
	mov	edx,[file_size]
2550
	cmp	eax,edx
2543
	cmp	eax,edx
2551
	jbe	@f
2544
	jbe	@f
2552
	sub	edx,eax
2545
	sub	edx,eax
2553
	add	eax,edx
2546
	add	eax,edx
2554
@@:
2547
@@:
2555
	sub	eax,[begin_offset]
2548
	sub	eax,[begin_offset]
2556
	shl	eax,1
2549
	shl	eax,1
2557
	test	eax,eax
2550
	test	eax,eax
2558
	jz	red
2551
	jz	red
2559
	dec	eax
2552
	dec	eax
2560
	mov	[cursor],eax
2553
	mov	[cursor],eax
2561
	jmp	red
2554
	jmp	red
2562
 
2555
 
2563
 
2556
 
2564
Ctrl_HOME:
2557
Ctrl_HOME:
2565
	mov	[begin_offset],0
2558
	mov	[begin_offset],0
2566
	mov	[cursor],1
2559
	mov	[cursor],1
2567
	ret
2560
	ret
2568
 
2561
 
2569
 
2562
 
2570
Ctrl_END:
2563
Ctrl_END:
2571
	mov	eax,[file_size]
2564
	mov	eax,[file_size]
2572
	mov	ecx,[screen_table]
2565
	mov	ecx,[screen_table]
2573
	mov	ecx,[ecx]
2566
	mov	ecx,[ecx]
2574
	xor	edx,edx
2567
	xor	edx,edx
2575
	div	ecx
2568
	div	ecx
2576
	test	dx,dx
2569
	test	dx,dx
2577
	jnz	@f
2570
	jnz	@f
2578
	test	eax,eax
2571
	test	eax,eax
2579
	jz	@f
2572
	jz	@f
2580
	mov	edx,ecx
2573
	mov	edx,ecx
2581
	dec	eax
2574
	dec	eax
2582
@@:
2575
@@:
2583
	push	dx
2576
	push	dx
2584
	xor	dx,dx
2577
	xor	dx,dx
2585
	mul	ecx
2578
	mul	ecx
2586
	pop	dx
2579
	pop	dx
2587
	shl	edx,1
2580
	shl	edx,1
2588
	cmp	edx,1
2581
	cmp	edx,1
2589
	jg	@f
2582
	jg	@f
2590
	mov	edx,2
2583
	mov	edx,2
2591
@@:
2584
@@:
2592
	dec	edx
2585
	dec	edx
2593
	mov	[begin_offset],eax
2586
	mov	[begin_offset],eax
2594
	mov	[cursor],edx
2587
	mov	[cursor],edx
2595
	jmp	red
2588
	jmp	red
2596
 
2589
 
2597
 
2590
 
2598
ESC:
2591
ESC:
2599
	btr	[flags],8
2592
	btr	[flags],8
2600
	jmp	red
2593
	jmp	red
2601
 
2594
 
2602
copy_to_buf:
2595
copy_to_buf:
2603
	bt	[flags],8
2596
	bt	[flags],8
2604
	jnc	.1
2597
	jnc	.1
2605
	mov	eax,[shblock_end]
2598
	mov	eax,[shblock_end]
2606
	sub	eax,[shblock_beg]
2599
	sub	eax,[shblock_beg]
2607
	inc	eax
2600
	inc	eax
2608
	mov	ecx,eax
2601
	mov	ecx,eax
2609
	mov	[copy_len],eax
2602
	mov	[copy_len],eax
2610
	mcall	68,20,,[copy_buf]
2603
	mcall	68,20,,[copy_buf]
2611
	mov	esi,[shblock_beg]
2604
	mov	esi,[shblock_beg]
2612
	mov	edi,[copy_buf]
2605
	mov	edi,[copy_buf]
2613
	add	esi,[file_buffer]
2606
	add	esi,[file_buffer]
2614
	mov	ecx,[copy_len]
2607
	mov	ecx,[copy_len]
2615
	cld
2608
	cld
2616
@@:
2609
@@:
2617
	movsb
2610
	movsb
2618
	loop	@b
2611
	loop	@b
2619
	bts	[flags],10
2612
	bts	[flags],10
2620
	xor	eax,eax
2613
	xor	eax,eax
2621
	ret
2614
	ret
2622
.1:
2615
.1:
2623
	or	eax,-1
2616
	or	eax,-1
2624
	ret
2617
	ret
2625
 
2618
 
2626
Ctrl_C:
2619
Ctrl_C:
2627
	call	copy_to_buf
2620
	call	copy_to_buf
2628
	jmp	still
2621
	jmp	still
2629
 
2622
 
2630
shblock_sz	dd	0
2623
shblock_sz	dd	0
2631
 
2624
 
2632
Ctrl_V:
2625
Ctrl_V:
2633
	bt	[flags],10
2626
	bt	[flags],10
2634
	jnc	still
2627
	jnc	still
2635
	bt	[flags],8
2628
	bt	[flags],8
2636
	jnc	.past_kurs
2629
	jnc	.past_kurs
2637
;¢áâ ¢«ï¥¬ ¡«®ª ¢ ¢ë¤¥«¥­­ãî ®¡« áâì
2630
;¢áâ ¢«ï¥¬ ¡«®ª ¢ ¢ë¤¥«¥­­ãî ®¡« áâì
2638
	mov	ebx,[shblock_end]
2631
	mov	ebx,[shblock_end]
2639
	sub	ebx,[shblock_beg]
2632
	sub	ebx,[shblock_beg]
2640
	inc	ebx
2633
	inc	ebx
2641
	mov	[shblock_sz],ebx
2634
	mov	[shblock_sz],ebx
2642
	mov	esi,[copy_buf]
2635
	mov	esi,[copy_buf]
2643
	mov	edi,[file_buffer]
2636
	mov	edi,[file_buffer]
2644
	add	edi,[shblock_beg]
2637
	add	edi,[shblock_beg]
2645
	mov	eax,[copy_len]
2638
	mov	eax,[copy_len]
2646
.1:
2639
.1:
2647
	cld
2640
	cld
2648
@@:
2641
@@:
2649
	movsb
2642
	movsb
2650
	dec	eax
2643
	dec	eax
2651
	jz	.del
2644
	jz	.del
2652
	dec	ebx
2645
	dec	ebx
2653
	jnz	@b
2646
	jnz	@b
2654
.add:
2647
.add:
2655
	push	esi	edi	eax
2648
	push	esi	edi	eax
2656
	push	[file_size]
2649
	push	[file_size]
2657
	add	[file_size],eax
2650
	add	[file_size],eax
2658
	call	raspred_mem
2651
	call	raspred_mem
2659
	pop	ecx
2652
	pop	ecx
2660
	mov	edi,[esp+4]
2653
	mov	edi,[esp+4]
2661
	add	ecx,[file_buffer]
2654
	add	ecx,[file_buffer]
2662
	sub	ecx,edi
2655
	sub	ecx,edi
2663
	inc	ecx
2656
	inc	ecx
2664
	mov	edi,[file_size]
2657
	mov	edi,[file_size]
2665
	add	edi,[file_buffer]
2658
	add	edi,[file_buffer]
2666
	mov	esi,edi
2659
	mov	esi,edi
2667
	sub	esi,eax
2660
	sub	esi,eax
2668
	std
2661
	std
2669
@@:
2662
@@:
2670
	movsb
2663
	movsb
2671
	loop	@b
2664
	loop	@b
2672
	pop	eax edi esi
2665
	pop	eax edi esi
2673
	cld
2666
	cld
2674
@@:
2667
@@:
2675
	movsb
2668
	movsb
2676
	dec	eax
2669
	dec	eax
2677
	jnz	@b
2670
	jnz	@b
2678
	mov	eax,[shblock_beg]
2671
	mov	eax,[shblock_beg]
2679
	add	eax,[copy_len]
2672
	add	eax,[copy_len]
2680
	dec	eax
2673
	dec	eax
2681
	mov	[shblock_end],eax
2674
	mov	[shblock_end],eax
2682
	jmp	red
2675
	jmp	red
2683
.del:
2676
.del:
2684
	dec	ebx
2677
	dec	ebx
2685
	jz	red
2678
	jz	red
2686
	mov	ecx,[file_size]
2679
	mov	ecx,[file_size]
2687
	add	ecx,[file_buffer]
2680
	add	ecx,[file_buffer]
2688
	sub	ecx,edi
2681
	sub	ecx,edi
2689
	mov	esi,edi
2682
	mov	esi,edi
2690
	add	esi,ebx
2683
	add	esi,ebx
2691
	cld
2684
	cld
2692
@@:	movsb
2685
@@:	movsb
2693
	loop	@b
2686
	loop	@b
2694
	sub	[file_size],ebx
2687
	sub	[file_size],ebx
2695
	call	raspred_mem
2688
	call	raspred_mem
2696
	mov	eax,[shblock_beg]
2689
	mov	eax,[shblock_beg]
2697
	add	eax,[copy_len]
2690
	add	eax,[copy_len]
2698
	dec	eax
2691
	dec	eax
2699
	mov	[shblock_end],eax
2692
	mov	[shblock_end],eax
2700
	jmp	red
2693
	jmp	red
2701
 
2694
 
2702
;¥á«¨ ¡«®ª ­¥ ¢ë¤¥«¥­, â® ¢áâ ¢«ï¥¬ ¡«®ª ¯¥à¥¤ ªãàá®à®¬ 
2695
;¥á«¨ ¡«®ª ­¥ ¢ë¤¥«¥­, â® ¢áâ ¢«ï¥¬ ¡«®ª ¯¥à¥¤ ªãàá®à®¬ 
2703
.past_kurs:
2696
.past_kurs:
2704
;	bt	[flags],1
2697
;	bt	[flags],1
2705
;	jnc	still
2698
;	jnc	still
2706
;	mov	esi,[file_buffer]
2699
;	mov	esi,[file_buffer]
2707
;	add	esi,[current_offset]
2700
;	add	esi,[current_offset]
2708
;	jmp	red
2701
;	jmp	red
2709
	jmp	still
2702
	jmp	still
2710
 
2703
 
2711
Ctrl_X:
2704
Ctrl_X:
2712
	bt	[flags],1
2705
	bt	[flags],1
2713
	jnc	still
2706
	jnc	still
2714
	call	copy_to_buf
2707
	call	copy_to_buf
2715
	test	eax,eax
2708
	test	eax,eax
2716
	jnz	still
2709
	jnz	still
2717
 
2710
 
2718
	mov	ecx,[file_size]
2711
	mov	ecx,[file_size]
2719
	sub	ecx,[copy_len]
2712
	sub	ecx,[copy_len]
2720
	sub	ecx,[shblock_beg]
2713
	sub	ecx,[shblock_beg]
2721
	inc	ecx
2714
	inc	ecx
2722
	mov	ebx,[file_size]
2715
	mov	ebx,[file_size]
2723
	mov	edi,[shblock_beg]
2716
	mov	edi,[shblock_beg]
2724
	mov	esi,[shblock_end]
2717
	mov	esi,[shblock_end]
2725
	inc	esi
2718
	inc	esi
2726
	add	esi,[file_buffer]
2719
	add	esi,[file_buffer]
2727
	add	edi,[file_buffer]
2720
	add	edi,[file_buffer]
2728
	add	ebx,[file_buffer]
2721
	add	ebx,[file_buffer]
2729
	cld
2722
	cld
2730
@@:
2723
@@:
2731
	cmp	esi,ebx
2724
	cmp	esi,ebx
2732
	je	.1
2725
	je	.1
2733
	movsb
2726
	movsb
2734
	loop	@b
2727
	loop	@b
2735
.1:
2728
.1:
2736
	mov	eax,[file_size]
2729
	mov	eax,[file_size]
2737
	sub	eax,[copy_len]
2730
	sub	eax,[copy_len]
2738
	mov	[file_size],eax
2731
	mov	[file_size],eax
2739
	btr	[flags],8
2732
	btr	[flags],8
2740
 
2733
 
2741
	mov	eax,[shblock_beg]
2734
	mov	eax,[shblock_beg]
2742
	mov	esi,[screen_table]
2735
	mov	esi,[screen_table]
2743
	mov	esi,[esi]
2736
	mov	esi,[esi]
2744
	xor	ebx,ebx
2737
	xor	ebx,ebx
2745
.3:
2738
.3:
2746
	add	ebx,esi
2739
	add	ebx,esi
2747
	cmp	eax,ebx
2740
	cmp	eax,ebx
2748
	jg	.3
2741
	jg	.3
2749
	sub	ebx,esi
2742
	sub	ebx,esi
2750
;	cmp	ebx,[file_size]
2743
;	cmp	ebx,[file_size]
2751
;	jg	Ctrl_G
2744
;	jg	Ctrl_G
2752
	mov	[begin_offset],ebx
2745
	mov	[begin_offset],ebx
2753
	sub	eax,ebx
2746
	sub	eax,ebx
2754
	shl	eax,1
2747
	shl	eax,1
2755
	inc	eax
2748
	inc	eax
2756
	mov	[cursor],eax
2749
	mov	[cursor],eax
2757
	jmp	red
2750
	jmp	red
2758
 
2751
 
2759
;---------------------------------------------------------------------
2752
;---------------------------------------------------------------------
2760
open_dialog:
2753
open_dialog:
2761
	mov	[OpenDialog_data.type],0	; Open
2754
	mov	[OpenDialog_data.type],0	; Open
-
 
2755
 
2762
	start_OpenDialog	OpenDialog_data
2756
	push    dword OpenDialog_data
-
 
2757
	call    [OpenDialog_Start]
-
 
2758
 
2763
	cmp	[OpenDialog_data.status],2	; OpenDialog does not start
2759
;	cmp	[OpenDialog_data.status],2	; OpenDialog does not start
2764
	je	.sysxtree	; some kind of alternative, instead OpenDialog
2760
;	je	.sysxtree	; some kind of alternative, instead OpenDialog
2765
	cmp	[OpenDialog_data.status],1
2761
	cmp	[OpenDialog_data.status],1
2766
	jne	still
2762
	jne	still
2767
	mov	esi,fname_buf
2763
	mov	esi,fname_buf
2768
	jmp	.load
-
 
2769
.sysxtree:
-
 
2770
	call	opendialog
-
 
2771
	jc	still
-
 
2772
	mov	esi,path
-
 
2773
.load:
2764
.load:
2774
	mov	edi,file_name
2765
	mov	edi,file_name
2775
	cld
2766
	cld
2776
@@:
2767
@@:
2777
	cmp	byte [esi],0
2768
	cmp	byte [esi],0
2778
	je	@f
2769
	je	@f
2779
	movsb
2770
	movsb
2780
	jmp	@b
2771
	jmp	@b
2781
@@:
2772
@@:
2782
	mov	byte [edi],0
2773
	mov	byte [edi],0
2783
	sub	esi,path
2774
	sub	esi,path
2784
	mov	[edit1.size],esi
2775
	mov	[edit1.size],esi
2785
	mov	[edit1.pos],esi
2776
	mov	[edit1.pos],esi
2786
	jmp	open_file.0
-
 
2787
;---------------------------------------------------------------------
-
 
2788
;##################################
-
 
2789
opendialog:
-
 
2790
;
-
 
2791
; STEP 1 Run SYSXTREE with parametrs MYPID 4 bytes in dec,
-
 
2792
; 1 byte space, 1 byte type of dialog (O - Open ,S - Save)
-
 
2793
;
-
 
2794
	mov	edi,path
-
 
2795
	xor	eax,eax
-
 
2796
	mov	ecx,(1024+16)/4
-
 
2797
	rep	stosd
-
 
2798
 
-
 
2799
	mov	[dlg_pid_get],0
-
 
2800
 
-
 
2801
; Get my PID in dec format 4 bytes
-
 
2802
	mov	eax,9
-
 
2803
	mov	ebx,procinfo
-
 
2804
	or	ecx,-1
-
 
2805
	mcall
-
 
2806
 
-
 
2807
; convert eax bin to param dec
-
 
2808
	mov	eax,dword [procinfo+30]	;offset of myPID
-
 
2809
	mov	edi,param+4-1	;offset to 4 bytes
-
 
2810
	mov	ecx,4
-
 
2811
	mov	ebx,10
-
 
2812
.new_d:
-
 
2813
	xor	edx,edx
-
 
2814
	div	ebx
-
 
2815
	add	dl,'0'
-
 
2816
	mov	[edi],dl
-
 
2817
	dec	edi
-
 
2818
	loop	.new_d
-
 
2819
 
-
 
2820
; wirite 1 byte space to param
-
 
2821
	mov	[param+4],byte 32	;Space for next parametr
-
 
2822
; and 1 byte type of dialog to param
-
 
2823
	mov	[param+5],byte 'O'	;Get Open dialog (Use 'S' for Save dialog)
-
 
2824
 
-
 
2825
;
-
 
2826
; STEP2 prepare IPC area for get messages
-
 
2827
;
-
 
2828
 
-
 
2829
; prepare IPC area
-
 
2830
	mov	[path],dword 0
-
 
2831
	mov	[path+4],dword 8
-
 
2832
 
-
 
2833
; define IPC memory
-
 
2834
	mov	eax,60
-
 
2835
	mov	ebx,1		; define IPC
-
 
2836
	mov	ecx,path	; offset of area
-
 
2837
	mov	edx,1024+16	; size
-
 
2838
	mcall
-
 
2839
 
-
 
2840
; change wanted events list 7-bit IPC event
-
 
2841
	mov	eax,40
-
 
2842
	mov	ebx,01000111b
-
 
2843
;	cmp	[image],0
-
 
2844
;	jnz	@f
-
 
2845
;	mov	bl,01000110b
-
 
2846
;@@:
-
 
2847
	mcall
-
 
2848
 
-
 
2849
;
-
 
2850
; STEP 3 run SYSTEM XTREE with parameters
-
 
2851
;
-
 
2852
	mov	eax,70
-
 
2853
	mov	ebx,run_fileinfo
-
 
2854
	mcall
-
 
2855
	bt	eax,31
-
 
2856
	jnc	@f
-
 
2857
	mcall	40,0x27
-
 
2858
	add	esp,4
-
 
2859
	jmp	open_file
2777
	jmp	open_file
2860
@@:
-
 
2861
	mov	[get_loops],0
-
 
2862
.getmesloop:
-
 
2863
	mov	eax,23
-
 
2864
	mov	ebx,50	;0.5 sec
-
 
2865
	mcall
-
 
2866
	dec	eax
-
 
2867
	jz	.mred
-
 
2868
	dec	eax
-
 
2869
	jz	.mkey
-
 
2870
	dec	eax
-
 
2871
	jz	.mbutton
-
 
2872
	cmp	al,	7-3
-
 
2873
	jz	.mgetmes
-
 
2874
; Get number of procces
-
 
2875
	mov	ebx,procinfo
-
 
2876
	mov	ecx,-1
-
 
2877
	mov	eax,9
-
 
2878
	mcall
-
 
2879
	mov	ebp,eax
-
 
2880
 
-
 
2881
.loox:
-
 
2882
	mov	eax,9
-
 
2883
	mov	ebx,procinfo
-
 
2884
	mov	ecx,ebp
-
 
2885
	mcall
-
 
2886
	mov	eax,[DLGPID]
-
 
2887
	cmp	[procinfo+30],eax	;IF Dialog find
-
 
2888
	je	.dlg_is_work	;jmp to dlg_is_work
-
 
2889
	dec	ebp
-
 
2890
	jnz	.loox
-
 
2891
 
-
 
2892
	jmp	.erroff
-
 
2893
 
-
 
2894
.dlg_is_work:
-
 
2895
	cmp	[procinfo+50],word 9	;If slot state 9 - dialog is terminated
2778
;---------------------------------------------------------------------
2896
	je	.erroff	;TESTODP2 terminated too
-
 
2897
 
-
 
2898
	cmp	[dlg_pid_get],dword 1
-
 
2899
	je	.getmesloop
-
 
2900
	inc	[get_loops]
-
 
2901
	cmp	[get_loops],4	;2 sec if DLG_PID not get TESTOP2 terminated
-
 
2902
	jae	.erroff
-
 
2903
	jmp	.getmesloop
-
 
2904
 
-
 
2905
.mred:
-
 
2906
;	cmp	[image],	0
-
 
2907
;	jz	.getmesloop
-
 
2908
;	call	redraw_all
-
 
2909
	call	draw_window_1
-
 
2910
	jmp	.getmesloop
-
 
2911
.mkey:
-
 
2912
	mov	eax,2
-
 
2913
	mcall	;	read (eax=2)
-
 
2914
	jmp	.getmesloop
-
 
2915
.mbutton:
-
 
2916
	mov	eax,17	; get id
-
 
2917
	mcall
-
 
2918
	cmp	ah,1	; button id=1 ?
-
 
2919
	jne	.getmesloop
-
 
2920
	mov	eax,-1	; close this program
-
 
2921
	mcall
-
 
2922
.mgetmes:
-
 
2923
 
-
 
2924
; If dlg_pid_get then second message get jmp to still
-
 
2925
	cmp	[dlg_pid_get],dword 1
-
 
2926
	je	.ready
-
 
2927
 
-
 
2928
; First message is number of PID SYSXTREE dialog
-
 
2929
 
-
 
2930
; convert PID dec to PID bin
-
 
2931
	movzx	eax,byte [path+16]
-
 
2932
	sub	eax,48
-
 
2933
	imul	eax,10
-
 
2934
	movzx	ebx,byte [path+16+1]
-
 
2935
	add	eax,ebx
-
 
2936
	sub	eax,48
-
 
2937
	imul	eax,10
-
 
2938
	movzx	ebx,byte [path+16+2]
-
 
2939
	add	eax,ebx
-
 
2940
	sub	eax,48
-
 
2941
	imul	eax,10
-
 
2942
	movzx	ebx,byte [path+16+3]
-
 
2943
	add	eax,ebx
-
 
2944
	sub	eax,48
-
 
2945
	mov	[DLGPID],eax
-
 
2946
 
-
 
2947
; Claear and prepare IPC area for next message
-
 
2948
	mov	[path],dword 0
-
 
2949
	mov	[path+4],dword 8
-
 
2950
	mov	[path+8],dword 0
-
 
2951
	mov	[path+12],dword 0
-
 
2952
	mov	[path+16],dword 0
-
 
2953
 
-
 
2954
; Set dlg_pid_get for get next message
-
 
2955
	mov	[dlg_pid_get],dword 1
-
 
2956
;	cmp	[image],0
-
 
2957
;	jz	.getmesloop
-
 
2958
;	call	redraw_all
-
 
2959
	call	draw_window_1
-
 
2960
	jmp	.getmesloop
-
 
2961
 
-
 
2962
.ready:
-
 
2963
;
-
 
2964
; The second message get
-
 
2965
; Second message is 100 bytes path to SAVE/OPEN file
-
 
2966
; shl path string on 16 bytes
-
 
2967
;
-
 
2968
	mov	esi,path+16
-
 
2969
	mov	edi,path
-
 
2970
	mov	ecx,1024/4
-
 
2971
	rep	movsd
-
 
2972
	mov	[edi],byte 0
-
 
2973
 
-
 
2974
.openoff:
-
 
2975
	mcall	40,0x27
-
 
2976
	clc
-
 
2977
	ret
-
 
2978
 
-
 
2979
.erroff:
-
 
2980
	mcall	40,0x27
-
 
2981
	stc
-
 
2982
	ret
-
 
2983
;##################################
-
 
2984
 
2779
 
2985
;	DATA	AREA
2780
;	DATA	AREA
2986
 
2781
 
2987
 
2782
 
2988
;---------------------------------------------------------
2783
;---------------------------------------------------------
2989
;----------------------- DATA AREA------------------------
2784
;----------------------- DATA AREA------------------------
2990
;---------------------------------------------------------
2785
;---------------------------------------------------------
2991
align	4
2786
align 4
2992
myimport:
2787
ProcLib_import:
-
 
2788
OpenDialog_Init		dd aOpenDialog_Init
-
 
2789
OpenDialog_Start	dd aOpenDialog_Start
-
 
2790
;OpenDialog__Version	dd aOpenDialog_Version
-
 
2791
        dd      0
-
 
2792
        dd      0
-
 
2793
aOpenDialog_Init	db 'OpenDialog_init',0
-
 
2794
aOpenDialog_Start	db 'OpenDialog_start',0
-
 
2795
;aOpenDialog_Version	db 'Version_OpenDialog',0
-
 
2796
;---------------------------------------------------------------------
-
 
2797
align	4
-
 
2798
Box_lib_import:
2993
edit_box_draw		dd aEdit_box_draw
2799
edit_box_draw		dd aEdit_box_draw
2994
edit_box_key		dd aEdit_box_key
2800
edit_box_key		dd aEdit_box_key
2995
edit_box_mouse		dd aEdit_box_mouse
2801
edit_box_mouse		dd aEdit_box_mouse
2996
version_ed		dd aVersion_ed
2802
version_ed		dd aVersion_ed
2997
 
2803
 
2998
option_box_draw		dd aOption_box_draw
2804
option_box_draw		dd aOption_box_draw
2999
option_box_mouse	dd aOption_box_mouse
2805
option_box_mouse	dd aOption_box_mouse
3000
version_op		dd aVersion_op
2806
version_op		dd aVersion_op
3001
 
2807
 
3002
scrollbar_ver_draw	dd aScrollbar_ver_draw
2808
scrollbar_ver_draw	dd aScrollbar_ver_draw
3003
scrollbar_ver_mouse	dd aScrollbar_ver_mouse
2809
scrollbar_ver_mouse	dd aScrollbar_ver_mouse
3004
scrollbar_hor_draw	dd aScrollbar_hor_draw
2810
scrollbar_hor_draw	dd aScrollbar_hor_draw
3005
scrollbar_hor_mouse	dd aScrollbar_hor_mouse
2811
scrollbar_hor_mouse	dd aScrollbar_hor_mouse
3006
version_scrollbar	dd aVersion_scrollbar
2812
version_scrollbar	dd aVersion_scrollbar
3007
 
2813
 
3008
menu_bar_draw		dd aMenu_bar_draw
2814
menu_bar_draw		dd aMenu_bar_draw
3009
menu_bar_mouse		dd aMenu_bar_mouse
2815
menu_bar_mouse		dd aMenu_bar_mouse
3010
version_menu_bar	dd aVersion_menu_bar
2816
version_menu_bar	dd aVersion_menu_bar
3011
 
2817
 
3012
	dd 0
2818
	dd 0
3013
	dd 0
2819
	dd 0
3014
 
2820
 
3015
aEdit_box_draw		db 'edit_box',0
2821
aEdit_box_draw		db 'edit_box',0
3016
aEdit_box_key		db 'edit_box_key',0
2822
aEdit_box_key		db 'edit_box_key',0
3017
aEdit_box_mouse		db 'edit_box_mouse',0
2823
aEdit_box_mouse		db 'edit_box_mouse',0
3018
aVersion_ed		db 'version_ed',0
2824
aVersion_ed		db 'version_ed',0
3019
 
2825
 
3020
aOption_box_draw	db 'option_box_draw',0
2826
aOption_box_draw	db 'option_box_draw',0
3021
aOption_box_mouse	db 'option_box_mouse',0
2827
aOption_box_mouse	db 'option_box_mouse',0
3022
aVersion_op		db 'version_op',0
2828
aVersion_op		db 'version_op',0
3023
 
2829
 
3024
aScrollbar_ver_draw	db 'scrollbar_v_draw',0
2830
aScrollbar_ver_draw	db 'scrollbar_v_draw',0
3025
aScrollbar_ver_mouse	db 'scrollbar_v_mouse',0
2831
aScrollbar_ver_mouse	db 'scrollbar_v_mouse',0
3026
aScrollbar_hor_draw	db 'scrollbar_h_draw',0
2832
aScrollbar_hor_draw	db 'scrollbar_h_draw',0
3027
aScrollbar_hor_mouse	db 'scrollbar_h_mouse',0
2833
aScrollbar_hor_mouse	db 'scrollbar_h_mouse',0
3028
aVersion_scrollbar	db 'version_scrollbar',0
2834
aVersion_scrollbar	db 'version_scrollbar',0
3029
 
2835
 
3030
aMenu_bar_draw		db 'menu_bar_draw',0
2836
aMenu_bar_draw		db 'menu_bar_draw',0
3031
aMenu_bar_mouse		db 'menu_bar_mouse',0
2837
aMenu_bar_mouse		db 'menu_bar_mouse',0
3032
aVersion_menu_bar	db 'version_menu_bar',0
2838
aVersion_menu_bar	db 'version_menu_bar',0
3033
;---------------------------------------------------------------------
2839
;---------------------------------------------------------------------
3034
align	4
2840
align	4
3035
scroll_bar_data_vertical:
2841
scroll_bar_data_vertical:
3036
.x:
2842
.x:
3037
.size_x		dw scroll_width_size;+0
2843
.size_x		dw scroll_width_size;+0
3038
.start_x	dw 565	;+2
2844
.start_x	dw 565	;+2
3039
.y:
2845
.y:
3040
.size_y		dw 284	;+4
2846
.size_y		dw 284	;+4
3041
.start_y	dw 19	;+6
2847
.start_y	dw 19	;+6
3042
.btn_high	dd scroll_width_size	;+8
2848
.btn_high	dd scroll_width_size	;+8
3043
.type		dd 1	;+12
2849
.type		dd 1	;+12
3044
.max_area	dd 300+20	;+16
2850
.max_area	dd 300+20	;+16
3045
.cur_area	dd 50	;+20
2851
.cur_area	dd 50	;+20
3046
.position	dd 0	;+24
2852
.position	dd 0	;+24
3047
.bckg_col	dd 0xAAAAAA	;+28
2853
.bckg_col	dd 0xAAAAAA	;+28
3048
.frnt_col	dd 0xCCCCCC	;+32
2854
.frnt_col	dd 0xCCCCCC	;+32
3049
.line_col	dd 0	;+36
2855
.line_col	dd 0	;+36
3050
.redraw		dd 0	;+40
2856
.redraw		dd 0	;+40
3051
.delta		dw 0	;+44
2857
.delta		dw 0	;+44
3052
.delta2		dw 0	;+46
2858
.delta2		dw 0	;+46
3053
.run_x:
2859
.run_x:
3054
.r_size_x	dw 0	;+48
2860
.r_size_x	dw 0	;+48
3055
.r_start_x	dw 0	;+50
2861
.r_start_x	dw 0	;+50
3056
.run_y:
2862
.run_y:
3057
.r_size_y	dw 0	;+52
2863
.r_size_y	dw 0	;+52
3058
.r_start_y	dw 0	;+54
2864
.r_start_y	dw 0	;+54
3059
.m_pos		dd 0	;+56
2865
.m_pos		dd 0	;+56
3060
.m_pos_2	dd 0	;+60
2866
.m_pos_2	dd 0	;+60
3061
.m_keys		dd 0	;+64
2867
.m_keys		dd 0	;+64
3062
.run_size	dd 0	;+68
2868
.run_size	dd 0	;+68
3063
.position2	dd 0	;+72
2869
.position2	dd 0	;+72
3064
.work_size	dd 0	;+76
2870
.work_size	dd 0	;+76
3065
.all_redraw	dd 0	;+80
2871
.all_redraw	dd 0	;+80
3066
.ar_offset	dd 10	;+84
2872
.ar_offset	dd 10	;+84
3067
;---------------------------------------------------------------------
2873
;---------------------------------------------------------------------
3068
align	4
2874
align	4
3069
scroll_bar_data_horizontal:
2875
scroll_bar_data_horizontal:
3070
.x:
2876
.x:
3071
.size_x		dw 300	;0	;+0
2877
.size_x		dw 300	;0	;+0
3072
.start_x	dw 0	;0	;+2
2878
.start_x	dw 0	;0	;+2
3073
.y:
2879
.y:
3074
.size_y		dw scroll_width_size	;0	;+4
2880
.size_y		dw scroll_width_size	;0	;+4
3075
.start_y	dw 300	;0	;+6
2881
.start_y	dw 300	;0	;+6
3076
.btn_high	dd scroll_width_size	;+8
2882
.btn_high	dd scroll_width_size	;+8
3077
.type		dd 1	;+12
2883
.type		dd 1	;+12
3078
.max_area	dd 300	;+16
2884
.max_area	dd 300	;+16
3079
.cur_area	dd 30	;+20
2885
.cur_area	dd 30	;+20
3080
.position	dd 1	;+24
2886
.position	dd 1	;+24
3081
.bckg_col	dd 0xAAAAAA	;+28
2887
.bckg_col	dd 0xAAAAAA	;+28
3082
.frnt_col	dd 0xCCCCCC	;+32
2888
.frnt_col	dd 0xCCCCCC	;+32
3083
.line_col	dd 0	;+36
2889
.line_col	dd 0	;+36
3084
.redraw		dd 0	;+40
2890
.redraw		dd 0	;+40
3085
.delta		dw 0	;+44
2891
.delta		dw 0	;+44
3086
.delta2		dw 0	;+46
2892
.delta2		dw 0	;+46
3087
.run_x:
2893
.run_x:
3088
.r_size_x	dw 0	;+48
2894
.r_size_x	dw 0	;+48
3089
.r_start_x	dw 0	;+50
2895
.r_start_x	dw 0	;+50
3090
.run_y:
2896
.run_y:
3091
.r_size_y	dw 0	;+52
2897
.r_size_y	dw 0	;+52
3092
.r_start_y	dw 0	;+54
2898
.r_start_y	dw 0	;+54
3093
.m_pos		dd 0	;+56
2899
.m_pos		dd 0	;+56
3094
.m_pos_2	dd 0	;+60
2900
.m_pos_2	dd 0	;+60
3095
.m_keys		dd 0	;+64
2901
.m_keys		dd 0	;+64
3096
.run_size	dd 0	;+68
2902
.run_size	dd 0	;+68
3097
.position2	dd 0	;+72
2903
.position2	dd 0	;+72
3098
.work_size	dd 0	;+76
2904
.work_size	dd 0	;+76
3099
.all_redraw	dd 0	;+80
2905
.all_redraw	dd 0	;+80
3100
.ar_offset	dd 10	;+84
2906
.ar_offset	dd 10	;+84
3101
;---------------------------------------------------------------------
2907
;---------------------------------------------------------------------
3102
align	4
2908
align	4
3103
menu_data_1:
2909
menu_data_1:
3104
.type:		dd 0	;+0
2910
.type:		dd 0	;+0
3105
.x:
2911
.x:
3106
.size_x		dw 40	;+4
2912
.size_x		dw 40	;+4
3107
.start_x	dw 2	;+6
2913
.start_x	dw 2	;+6
3108
.y:
2914
.y:
3109
.size_y		dw 15	;+8
2915
.size_y		dw 15	;+8
3110
.start_y	dw 2	;+10
2916
.start_y	dw 2	;+10
3111
.text_pointer:	dd menu_text_area	;0	;+12
2917
.text_pointer:	dd menu_text_area	;0	;+12
3112
.pos_pointer:	dd menu_text_area.1	;0	;+16
2918
.pos_pointer:	dd menu_text_area.1	;0	;+16
3113
.text_end	dd menu_text_area.end	;0	;+20
2919
.text_end	dd menu_text_area.end	;0	;+20
3114
.mouse_pos	dd 0	;+24
2920
.mouse_pos	dd 0	;+24
3115
.mouse_keys	dd 0	;+28
2921
.mouse_keys	dd 0	;+28
3116
.x1:
2922
.x1:
3117
.size_x1	dw 40	;+32
2923
.size_x1	dw 40	;+32
3118
.start_x1	dw 2	;+34
2924
.start_x1	dw 2	;+34
3119
.y1:
2925
.y1:
3120
.size_y1	dw 100	;+36
2926
.size_y1	dw 100	;+36
3121
.start_y1	dw 18	;+38
2927
.start_y1	dw 18	;+38
3122
.bckg_col	dd 0xeeeeee	;+40
2928
.bckg_col	dd 0xeeeeee	;+40
3123
.frnt_col	dd 0xff	;+44
2929
.frnt_col	dd 0xff	;+44
3124
.menu_col	dd 0xffffff	;+48
2930
.menu_col	dd 0xffffff	;+48
3125
.select		dd 0	;+52
2931
.select		dd 0	;+52
3126
.out_select	dd 0	;+56
2932
.out_select	dd 0	;+56
3127
.buf_adress	dd 0	;+60
2933
.buf_adress	dd 0	;+60
3128
.procinfo	dd 0	;+64
2934
.procinfo	dd 0	;+64
3129
.click		dd 0	;+68
2935
.click		dd 0	;+68
3130
.cursor		dd 0	;+72
2936
.cursor		dd 0	;+72
3131
.cursor_old	dd 0	;+76
2937
.cursor_old	dd 0	;+76
3132
.interval	dd 16	;+80
2938
.interval	dd 16	;+80
3133
.cursor_max	dd 0	;+84
2939
.cursor_max	dd 0	;+84
3134
.extended_key	dd 0	;+88
2940
.extended_key	dd 0	;+88
3135
.menu_sel_col	dd 0x00cc00	;+92
2941
.menu_sel_col	dd 0x00cc00	;+92
3136
.bckg_text_col	dd 0	;+96
2942
.bckg_text_col	dd 0	;+96
3137
.frnt_text_col	dd 0xffffff	;+100
2943
.frnt_text_col	dd 0xffffff	;+100
3138
.mouse_keys_old	dd 0	;+104
2944
.mouse_keys_old	dd 0	;+104
3139
.font_height	dd 8	;+108
2945
.font_height	dd 8	;+108
3140
.cursor_out	dd 0	;+112
2946
.cursor_out	dd 0	;+112
3141
.get_mouse_flag	dd 0	;+116
2947
.get_mouse_flag	dd 0	;+116
3142
 
2948
 
3143
menu_text_area:
2949
menu_text_area:
3144
	db 'File',0
2950
	db 'File',0
3145
.1:
2951
.1:
3146
	db 'Open',0
2952
	db 'Open',0
3147
	db 'Save',0
2953
	db 'Save',0
3148
	db 'Exit',0
2954
	db 'Exit',0
3149
.end:
2955
.end:
3150
	db 0
2956
	db 0
3151
;---------------------------------------------------------------------
2957
;---------------------------------------------------------------------
3152
align	4
2958
align	4
3153
menu_data_2:
2959
menu_data_2:
3154
.type:		dd 0	;+0
2960
.type:		dd 0	;+0
3155
.x:
2961
.x:
3156
.size_x		dw 40	;+4
2962
.size_x		dw 40	;+4
3157
.start_x	dw 43	;+6
2963
.start_x	dw 43	;+6
3158
.y:
2964
.y:
3159
.size_y		dw 15	;+8
2965
.size_y		dw 15	;+8
3160
.start_y	dw 2	;+10
2966
.start_y	dw 2	;+10
3161
.text_pointer:	dd menu_text_area_2	;0	;+12
2967
.text_pointer:	dd menu_text_area_2	;0	;+12
3162
.pos_pointer:	dd menu_text_area_2.1	;0	;+16
2968
.pos_pointer:	dd menu_text_area_2.1	;0	;+16
3163
.text_end	dd menu_text_area_2.end	;0	;+20
2969
.text_end	dd menu_text_area_2.end	;0	;+20
3164
.mouse_pos	dd 0	;+24
2970
.mouse_pos	dd 0	;+24
3165
.mouse_keys	dd 0	;+28
2971
.mouse_keys	dd 0	;+28
3166
.x1:
2972
.x1:
3167
.size_x1	dw 50	;+32
2973
.size_x1	dw 50	;+32
3168
.start_x1	dw 43	;+34
2974
.start_x1	dw 43	;+34
3169
.y1:
2975
.y1:
3170
.size_y1	dw 100	;+36
2976
.size_y1	dw 100	;+36
3171
.start_y1	dw 18	;+38
2977
.start_y1	dw 18	;+38
3172
.bckg_col	dd 0xeeeeee	;+40
2978
.bckg_col	dd 0xeeeeee	;+40
3173
.frnt_col	dd 0xff	;+44
2979
.frnt_col	dd 0xff	;+44
3174
.menu_col	dd 0xffffff	;+48
2980
.menu_col	dd 0xffffff	;+48
3175
.select		dd 0	;+52
2981
.select		dd 0	;+52
3176
.out_select	dd 0	;+56
2982
.out_select	dd 0	;+56
3177
.buf_adress	dd 0	;+60
2983
.buf_adress	dd 0	;+60
3178
.procinfo	dd 0	;+64
2984
.procinfo	dd 0	;+64
3179
.click		dd 0	;+68
2985
.click		dd 0	;+68
3180
.cursor		dd 0	;+72
2986
.cursor		dd 0	;+72
3181
.cursor_old	dd 0	;+76
2987
.cursor_old	dd 0	;+76
3182
.interval	dd 16	;+80
2988
.interval	dd 16	;+80
3183
.cursor_max	dd 0	;+84
2989
.cursor_max	dd 0	;+84
3184
.extended_key	dd 0	;+88
2990
.extended_key	dd 0	;+88
3185
.menu_sel_col	dd 0x00cc00	;+92
2991
.menu_sel_col	dd 0x00cc00	;+92
3186
.bckg_text_col	dd 0	;	+96
2992
.bckg_text_col	dd 0	;	+96
3187
.frnt_text_col	dd 0xffffff	;+100
2993
.frnt_text_col	dd 0xffffff	;+100
3188
.mouse_keys_old	dd 0	;+104
2994
.mouse_keys_old	dd 0	;+104
3189
.font_height	dd 8	;+108
2995
.font_height	dd 8	;+108
3190
.cursor_out	dd 0	;+112
2996
.cursor_out	dd 0	;+112
3191
.get_mouse_flag	dd 0	;+116
2997
.get_mouse_flag	dd 0	;+116
3192
 
2998
 
3193
menu_text_area_2:
2999
menu_text_area_2:
3194
	db 'View',0
3000
	db 'View',0
3195
.1:
3001
.1:
3196
	db 'Add 4',0
3002
	db 'Add 4',0
3197
	db 'Add 8',0
3003
	db 'Add 8',0
3198
	db 'Sub 4',0
3004
	db 'Sub 4',0
3199
	db 'Sub 8',0
3005
	db 'Sub 8',0
3200
.end:
3006
.end:
3201
	db 0
3007
	db 0
3202
;---------------------------------------------------------------------
3008
;---------------------------------------------------------------------
3203
align	4
3009
align	4
3204
menu_data_3:
3010
menu_data_3:
3205
.type:		dd 0	;+0
3011
.type:		dd 0	;+0
3206
.x:
3012
.x:
3207
.size_x		dw 40	;+4
3013
.size_x		dw 40	;+4
3208
.start_x	dw 84	;+6
3014
.start_x	dw 84	;+6
3209
.y:
3015
.y:
3210
.size_y		dw 15	;+8
3016
.size_y		dw 15	;+8
3211
.start_y	dw 2	;+10
3017
.start_y	dw 2	;+10
3212
.text_pointer:	dd menu_text_area_3	;0	;+12
3018
.text_pointer:	dd menu_text_area_3	;0	;+12
3213
.pos_pointer:	dd menu_text_area_3.1	;0	;+16
3019
.pos_pointer:	dd menu_text_area_3.1	;0	;+16
3214
.text_end	dd menu_text_area_3.end	;0	;+20
3020
.text_end	dd menu_text_area_3.end	;0	;+20
3215
.mouse_pos	dd 0	;+24
3021
.mouse_pos	dd 0	;+24
3216
.mouse_keys	dd 0	;+28
3022
.mouse_keys	dd 0	;+28
3217
.x1:
3023
.x1:
3218
.size_x1	dw 40	;+32
3024
.size_x1	dw 40	;+32
3219
.start_x1	dw 84	;+34
3025
.start_x1	dw 84	;+34
3220
.y1:
3026
.y1:
3221
.size_y1	dw 100	;+36
3027
.size_y1	dw 100	;+36
3222
.start_y1	dw 18	;+38
3028
.start_y1	dw 18	;+38
3223
.bckg_col	dd 0xeeeeee	;+40
3029
.bckg_col	dd 0xeeeeee	;+40
3224
.frnt_col	dd 0xff	;+44
3030
.frnt_col	dd 0xff	;+44
3225
.menu_col	dd 0xffffff	;+48
3031
.menu_col	dd 0xffffff	;+48
3226
.select		dd 0	;+52
3032
.select		dd 0	;+52
3227
.out_select	dd 0	;+56
3033
.out_select	dd 0	;+56
3228
.buf_adress	dd 0	;+60
3034
.buf_adress	dd 0	;+60
3229
.procinfo	dd 0	;+64
3035
.procinfo	dd 0	;+64
3230
.click		dd 0	;+68
3036
.click		dd 0	;+68
3231
.cursor		dd 0	;+72
3037
.cursor		dd 0	;+72
3232
.cursor_old	dd 0	;+76
3038
.cursor_old	dd 0	;+76
3233
.interval	dd 16	;+80
3039
.interval	dd 16	;+80
3234
.cursor_max	dd 0	;+84
3040
.cursor_max	dd 0	;+84
3235
.extended_key	dd 0	;+88
3041
.extended_key	dd 0	;+88
3236
.menu_sel_col	dd 0x00cc00	;+92
3042
.menu_sel_col	dd 0x00cc00	;+92
3237
.bckg_text_col	dd 0	;	+96
3043
.bckg_text_col	dd 0	;	+96
3238
.frnt_text_col	dd 0xffffff	;+100
3044
.frnt_text_col	dd 0xffffff	;+100
3239
.mouse_keys_old	dd 0	;+104
3045
.mouse_keys_old	dd 0	;+104
3240
.font_height	dd 8	;+108
3046
.font_height	dd 8	;+108
3241
.cursor_out	dd 0	;+112
3047
.cursor_out	dd 0	;+112
3242
.get_mouse_flag	dd 0	;+116
3048
.get_mouse_flag	dd 0	;+116
3243
 
3049
 
3244
menu_text_area_3:
3050
menu_text_area_3:
3245
	db 'Help',0
3051
	db 'Help',0
3246
.1:
3052
.1:
3247
	db 'Help',0
3053
	db 'Help',0
3248
.end:
3054
.end:
3249
	db 0
3055
	db 0
3250
;---------------------------------------------------------------------
3056
;---------------------------------------------------------------------
3251
edit1	edit_box 200,190,27,0xffffff,0x6a9480,0,0xAABBCC,0,134,cur_dir_path,ed_focus,ed_focus,6,6	;ä ©«	®âªàëâì\á®åà ­¨âì
3057
edit1	edit_box 200,190,27,0xffffff,0x6a9480,0,0xAABBCC,0,134,cur_dir_path,ed_focus,ed_focus,6,6	;ä ©«	®âªàëâì\á®åà ­¨âì
3252
edit2	edit_box 55,260,29,0xeeeeee,0x6a9480,0,0xAABBCC,4,8,go_to_string,ed_focus,ed_focus,0,0	;¯¥à¥å®¦¤	­ 	ᬥ饭¨¥
3058
edit2	edit_box 55,260,29,0xeeeeee,0x6a9480,0,0xAABBCC,4,8,go_to_string,ed_focus,ed_focus,0,0	;¯¥à¥å®¦¤	­ 	ᬥ饭¨¥
3253
edit3	edit_box 55,260,29,0xeeeeee,0x6a9480,0,0xAABBCC,4,8,find_string,ed_focus,ed_focus,0,0	;¯®¨áª
3059
edit3	edit_box 55,260,29,0xeeeeee,0x6a9480,0,0xAABBCC,4,8,find_string,ed_focus,ed_focus,0,0	;¯®¨áª
3254
edit4	edit_box 55,220,49,0xeeeeee,0x6a9480,0,0xAABBCC,4,8,sel1_string,ed_focus,ed_focus,0,0	;¢ë¤¥«¨âì	¡«®ª	­ ç.ᬥé.
3060
edit4	edit_box 55,220,49,0xeeeeee,0x6a9480,0,0xAABBCC,4,8,sel1_string,ed_focus,ed_focus,0,0	;¢ë¤¥«¨âì	¡«®ª	­ ç.ᬥé.
3255
edit5	edit_box 55,300,49,0xeeeeee,0x6a9480,0,0xAABBCC,4,8,sel2_string,ed_focus,0,0,0	;¢ë¤¥«¨âì	¡«®ª	ª®­.ᬥé.
3061
edit5	edit_box 55,300,49,0xeeeeee,0x6a9480,0,0xAABBCC,4,8,sel2_string,ed_focus,0,0,0	;¢ë¤¥«¨âì	¡«®ª	ª®­.ᬥé.
3256
 
3062
 
3257
op1	option_box option_group1,210,50,6,12,0xffffff,0,0,op_text.1,op_text.e1-op_text.1,1
3063
op1	option_box option_group1,210,50,6,12,0xffffff,0,0,op_text.1,op_text.e1-op_text.1,1
3258
op2	option_box option_group1,310,50,6,12,0xFFFFFF,0,0,op_text.2,op_text.e2-op_text.2
3064
op2	option_box option_group1,310,50,6,12,0xFFFFFF,0,0,op_text.2,op_text.e2-op_text.2
3259
op3	option_box option_group1,210,65,6,12,0xffffff,0,0,op_text.3,op_text.e3-op_text.3
3065
op3	option_box option_group1,210,65,6,12,0xffffff,0,0,op_text.3,op_text.e3-op_text.3
3260
op11	option_box option_group2,210,50,6,12,0xffffff,0,0,op_text2.11,op_text2.e11-op_text2.11
3066
op11	option_box option_group2,210,50,6,12,0xffffff,0,0,op_text2.11,op_text2.e11-op_text2.11
3261
op12	option_box option_group2,310,50,6,12,0xffffff,0,0,op_text2.21,op_text2.e21-op_text2.21
3067
op12	option_box option_group2,310,50,6,12,0xffffff,0,0,op_text2.21,op_text2.e21-op_text2.21
3262
 
3068
 
3263
option_group1	dd op1	;㪠§ â¥«¨, ®­¨ ®â®¡à ¦ îâáï ¯® 㬮«ç ­¨î, ª®£¤  ¢ë¢®¤¨âáï
3069
option_group1	dd op1	;㪠§ â¥«¨, ®­¨ ®â®¡à ¦ îâáï ¯® 㬮«ç ­¨î, ª®£¤  ¢ë¢®¤¨âáï
3264
option_group2	dd op11	;¯à¨«®¦¥­¨¥
3070
option_group2	dd op11	;¯à¨«®¦¥­¨¥
3265
Option_boxs	dd op1,op2,op3,0
3071
Option_boxs	dd op1,op2,op3,0
3266
Option_boxs2	dd op11,op12,0
3072
Option_boxs2	dd op11,op12,0
3267
 
3073
 
3268
op_text:	; ‘®¯à®¢®¦¤ î騩 ⥪áâ ¤«ï 祪 ¡®ªá®¢
3074
op_text:	; ‘®¯à®¢®¦¤ î騩 ⥪áâ ¤«ï 祪 ¡®ªá®¢
3269
.1	db 'Absolutely'
3075
.1	db 'Absolutely'
3270
.e1:
3076
.e1:
3271
.2	db 'Forward'
3077
.2	db 'Forward'
3272
.e2:
3078
.e2:
3273
.3	db 'Back'
3079
.3	db 'Back'
3274
.e3:
3080
.e3:
3275
 
3081
 
3276
op_text2:
3082
op_text2:
3277
.11	db 'Hex'
3083
.11	db 'Hex'
3278
.e11:
3084
.e11:
3279
.21	db 'ASCII'
3085
.21	db 'ASCII'
3280
.e21:
3086
.e21:
3281
 
3087
 
3282
 
3088
 
3283
system_path	db '/sys/lib/'
3089
system_dir_Boxlib			db '/sys/lib/box_lib.obj',0
3284
boxlib_name	db 'box_lib.obj',0
3090
system_dir_ProcLib			db '/sys/lib/proc_lib.obj',0
3285
 
3091
 
3286
head_f_i:
3092
head_f_i:
3287
head_f_l	db 'error',0
3093
head_f_l	db 'error',0
3288
err_message_found_lib	db 'box_lib.obj was not found',0
3094
err_message_found_lib1		db 'box_lib.obj - Not found!',0
-
 
3095
err_message_found_lib2		db 'proc_lib.obj - Not found!',0
-
 
3096
 
3289
err_message_import	db 'box_lib.obj was not imported',0
3097
err_message_import1			db 'box_lib.obj - Wrong import!',0
-
 
3098
err_message_import2			db 'proc_lib.obj - Wrong import!',0
3290
 
3099
 
3291
sel_text	db "From to",0
3100
sel_text	db "From to",0
3292
 
3101
 
3293
help_but_text	= menu_text_area_3 ;db	'Help',0
3102
help_but_text	= menu_text_area_3 ;db	'Help',0
3294
error_open_file_string	db "Isn't found!",0
3103
error_open_file_string	db "Isn't found!",0
3295
error_save_file_string	db "Isn't saved!",0
3104
error_save_file_string	db "Isn't saved!",0
3296
string_cp866	db ' cp866'
3105
string_cp866	db ' cp866'
3297
string_cp1251	db 'cp1251'
3106
string_cp1251	db 'cp1251'
3298
string_koi8r	db 'koi8-r'
3107
string_koi8r	db 'koi8-r'
3299
string_ins	db 'Ins'
3108
string_ins	db 'Ins'
3300
 
3109
 
3301
 
3110
 
3302
align	4
3111
align	4
3303
number_strings	dd 16	;ª®«¨ç¥á⢮ áâப ­  «¨áâ¥
3112
number_strings	dd 16	;ª®«¨ç¥á⢮ áâப ­  «¨áâ¥
3304
;bytes_per_line	dd 16	;ª®«-¢® á⮫¡æ®¢
3113
;bytes_per_line	dd 16	;ª®«-¢® á⮫¡æ®¢
3305
 
3114
 
3306
group_bytes	dd 8
3115
group_bytes	dd 8
3307
bytes_per_line	dd 16
3116
bytes_per_line	dd 16
3308
 
3117
 
3309
 
3118
 
3310
 
3119
 
3311
;blocks_counter	dd 1
3120
;blocks_counter	dd 1
3312
;blocks_table	dd 0
3121
;blocks_table	dd 0
3313
cursor	dd 1
3122
cursor	dd 1
3314
 
3123
 
3315
flags	dw 001000010b
3124
flags	dw 001000010b
3316
;¡¨â	0: ¢ edit_box - ¢®á¯à¨ï⨥/(­¥)	¢á¥å ¢¢®¤¨¬ëå ᨬ¢®«®¢
3125
;¡¨â	0: ¢ edit_box - ¢®á¯à¨ï⨥/(­¥)	¢á¥å ¢¢®¤¨¬ëå ᨬ¢®«®¢
3317
;1:	0/1 - ०¨¬ § ¬¥­ë/¢áâ ¢ª¨
3126
;1:	0/1 - ०¨¬ § ¬¥­ë/¢áâ ¢ª¨
3318
;2:	¢ edit_box - ®¡à ¡®âª  Ctrl_G
3127
;2:	¢ edit_box - ®¡à ¡®âª  Ctrl_G
3319
;3:	¢ edit_box - ®¡à ¡®âª  Ctrl_F
3128
;3:	¢ edit_box - ®¡à ¡®âª  Ctrl_F
3320
;4:	¢ change_codepage - ¥á«¨ ¯®¤­ïâ, â® ¢®ááâ ­®¢¨âì ¯à¥¤ë¤ãéãî ª®¤¨à®¢ªã
3129
;4:	¢ change_codepage - ¥á«¨ ¯®¤­ïâ, â® ¢®ááâ ­®¢¨âì ¯à¥¤ë¤ãéãî ª®¤¨à®¢ªã
3321
;5:	vertical_scroll_bar move
3130
;5:	vertical_scroll_bar move
3322
;6:	¯®«­ ï	¯¥à¥à¨á®¢ª  ®ª­ 
3131
;6:	¯®«­ ï	¯¥à¥à¨á®¢ª  ®ª­ 
3323
;7:	horizontal_scroll_bar move
3132
;7:	horizontal_scroll_bar move
3324
;8:	1 - ¢ë¤¥«¥­ ¡«®ª
3133
;8:	1 - ¢ë¤¥«¥­ ¡«®ª
3325
;9:	¢ edit_box - ®¡à ¡®âª  Ctrl_B
3134
;9:	¢ edit_box - ®¡à ¡®âª  Ctrl_B
3326
;10:	¢ ¯ ¬ï⨠"¢¨á¨â" ᪮¯¨à®¢ ­­ë© ¡«®ª
3135
;10:	¢ ¯ ¬ï⨠"¢¨á¨â" ᪮¯¨à®¢ ­­ë© ¡«®ª
3327
 
3136
 
3328
help_text:
3137
help_text:
3329
if lang eq ru
3138
if lang eq ru
3330
 db 'Ctrl+O              - ®âªàëâì ä ©«                 '
3139
 db 'Ctrl+O              - ®âªàëâì ä ©«                 '
3331
 db 'Ctrl+S              - á®åà ­¨âì                    '
3140
 db 'Ctrl+S              - á®åà ­¨âì                    '
3332
 db 'PageUp, PageDown    - áâà ­¨æ  ¢¢¥àå/¢­¨§          '
3141
 db 'PageUp, PageDown    - áâà ­¨æ  ¢¢¥àå/¢­¨§          '
3333
 db 'Ctrl+UP, Ctrl+Down  - ¯à®ªàã⪠ áâà ­¨æë ­  áâà®-  '
3142
 db 'Ctrl+UP, Ctrl+Down  - ¯à®ªàã⪠ áâà ­¨æë ­  áâà®-  '
3334
 db '                 ªã ¢¢¥àå/¢­¨§ ¡¥§ ᬥ饭¨ï ªãàá®à '
3143
 db '                 ªã ¢¢¥àå/¢­¨§ ¡¥§ ᬥ饭¨ï ªãàá®à '
3335
 db 'Home,End            - ¢ ­ ç «®/ª®­¥æ áâப¨        '
3144
 db 'Home,End            - ¢ ­ ç «®/ª®­¥æ áâப¨        '
3336
 db 'Ctrl+Home, Ctrl+End - ¢ ­ ç «®/ª®­¥æ ä ©«          '
3145
 db 'Ctrl+Home, Ctrl+End - ¢ ­ ç «®/ª®­¥æ ä ©«          '
3337
 db 'Left, Right, UP, DN - ªãàá®à ¢«¥¢®/¢¯à ¢®/¢ëè¥/­¨¦¥'
3146
 db 'Left, Right, UP, DN - ªãàá®à ¢«¥¢®/¢¯à ¢®/¢ëè¥/­¨¦¥'
3338
 db 'n                   - ¨­¢¥àâ¨à®¢ âì ¡ ©â           '
3147
 db 'n                   - ¨­¢¥àâ¨à®¢ âì ¡ ©â           '
3339
 db 'Ins                 - ०¨¬ § ¬¥­ë/¢áâ ¢ª¨         '
3148
 db 'Ins                 - ०¨¬ § ¬¥­ë/¢áâ ¢ª¨         '
3340
 db '  Del               - 㤠«¨âì ¡ ©â ¯®¤ ªãàá®à®¬    '
3149
 db '  Del               - 㤠«¨âì ¡ ©â ¯®¤ ªãàá®à®¬    '
3341
 db '  BackSpace         - 㤠«¨âì ¡ ©â ¯¥à¥¤ ªãàá®à®¬  '
3150
 db '  BackSpace         - 㤠«¨âì ¡ ©â ¯¥à¥¤ ªãàá®à®¬  '
3342
 db '~                   - ᬥ­  ª®¤¨à®¢®ª cp866,cp1251 '
3151
 db '~                   - ᬥ­  ª®¤¨à®¢®ª cp866,cp1251 '
3343
 db 'Shift+~             - cp866/cp1251,koi8r           '
3152
 db 'Shift+~             - cp866/cp1251,koi8r           '
3344
 db 'Ctrl+F              - ¯®¨áª                        '
3153
 db 'Ctrl+F              - ¯®¨áª                        '
3345
 db 'Ctrl+G              - ¯¥à¥å®¤ ­  ᬥ饭¨¥          '
3154
 db 'Ctrl+G              - ¯¥à¥å®¤ ­  ᬥ饭¨¥          '
3346
 db 'Ctrl+B              - ¢ë¤¥«¨âì ¡«®ª                '
3155
 db 'Ctrl+B              - ¢ë¤¥«¨âì ¡«®ª                '
3347
 db 'ESC                 - á­ïâì ¢ë¤¥«¥­¨¥              '
3156
 db 'ESC                 - á­ïâì ¢ë¤¥«¥­¨¥              '
3348
 db 'Ctrl+C              - ª®¯¨à®¢ âì ¡«®ª              '
3157
 db 'Ctrl+C              - ª®¯¨à®¢ âì ¡«®ª              '
3349
 db 'Ctrl+V              - ¢áâ ¢¨âì ¢ ¢ë¤¥«¥­­ãî ®¡« áâì'
3158
 db 'Ctrl+V              - ¢áâ ¢¨âì ¢ ¢ë¤¥«¥­­ãî ®¡« áâì'
3350
 db 'Ctrl+X              - ¢ë१ âì ¢ ¡ãä¥à             '
3159
 db 'Ctrl+X              - ¢ë१ âì ¢ ¡ãä¥à             '
3351
else
3160
else
3352
 db 'Ctrl+O              - open file                    '
3161
 db 'Ctrl+O              - open file                    '
3353
 db 'Ctrl+S              - save file                    '
3162
 db 'Ctrl+S              - save file                    '
3354
 db 'PageUp, PageDown    - page up/down                 '
3163
 db 'PageUp, PageDown    - page up/down                 '
3355
 db 'Ctrl+UP, Ctrl+Down  - scroll page by one string    '
3164
 db 'Ctrl+UP, Ctrl+Down  - scroll page by one string    '
3356
 db '                    up/down without cursor movement'
3165
 db '                    up/down without cursor movement'
3357
 db 'Home,End            - at the start/end of string   '
3166
 db 'Home,End            - at the start/end of string   '
3358
 db 'Ctrl+Home, Ctrl+End - at the start/end of file     '
3167
 db 'Ctrl+Home, Ctrl+End - at the start/end of file     '
3359
 db 'Left, Right, Up, Dn - move cursor to the lft/rght..'
3168
 db 'Left, Right, Up, Dn - move cursor to the lft/rght..'
3360
 db 'n                   - invert byte                  '
3169
 db 'n                   - invert byte                  '
3361
 db 'Ins                 - replace/past mode            '
3170
 db 'Ins                 - replace/past mode            '
3362
 db '  Del               - delete byte under cursor     '
3171
 db '  Del               - delete byte under cursor     '
3363
 db '  BackSpace         - delete byte before cursor    '
3172
 db '  BackSpace         - delete byte before cursor    '
3364
 db '~                   - change codepages cp866,cp1251'
3173
 db '~                   - change codepages cp866,cp1251'
3365
 db 'Shift+~             - cp866/cp1251,koi8r           '
3174
 db 'Shift+~             - cp866/cp1251,koi8r           '
3366
 db 'Ctrl+F              - find                         '
3175
 db 'Ctrl+F              - find                         '
3367
 db 'Ctrl+G              - go to offset                 '
3176
 db 'Ctrl+G              - go to offset                 '
3368
 db 'Ctrl+B              - select area                  '
3177
 db 'Ctrl+B              - select area                  '
3369
 db 'ESC                 - deselect area                '
3178
 db 'ESC                 - deselect area                '
3370
 db 'Ctrl+C              - copy area                    '
3179
 db 'Ctrl+C              - copy area                    '
3371
 db 'Ctrl+V              - past into area from buf      '
3180
 db 'Ctrl+V              - past into area from buf      '
3372
 db 'Ctrl+X              - cut area into buffer         '
3181
 db 'Ctrl+X              - cut area into buffer         '
3373
end if
3182
end if
3374
help_end:
3183
help_end:
3375
 
3184
 
3376
 
3185
 
3377
 
3186
 
3378
 
3187
 
3379
;align	4096
3188
;align	4096
3380
font_buffer	file 'cp866-8x16'	;ASCII+cp866	(+ð,ñ)
3189
font_buffer	file 'cp866-8x16'	;ASCII+cp866	(+ð,ñ)
3381
cp1251		file 'cp1251-8x16'
3190
cp1251		file 'cp1251-8x16'
3382
koi8_r		file 'koi8-r-8x16'
3191
koi8_r		file 'koi8-r-8x16'
3383
 
3192
 
3384
 
3193
 
3385
;##########################	open_dial
3194
;##########################	open_dial
3386
get_loops	dd 0
3195
get_loops	dd 0
3387
dlg_pid_get	dd 0
3196
dlg_pid_get	dd 0
3388
DLGPID	dd 0
3197
DLGPID	dd 0
3389
param:
3198
param:
3390
	dd 0	; My dec PID
3199
	dd 0	; My dec PID
3391
	dd 0,0	; Type of dialog
3200
	dd 0,0	; Type of dialog
3392
run_fileinfo:
3201
run_fileinfo:
3393
	dd 7
3202
	dd 7
3394
	dd 0
3203
	dd 0
3395
	dd param
3204
	dd param
3396
	dd 0
3205
	dd 0
3397
	dd 0
3206
	dd 0
3398
;run_filepath
3207
;run_filepath
3399
	db '/sys/SYSXTREE',0
3208
	db '/sys/SYSXTREE',0
3400
readdir_fileinfo:
3209
readdir_fileinfo:
3401
	dd 1
3210
	dd 1
3402
	dd 0
3211
	dd 0
3403
	dd 0
3212
	dd 0
3404
readblocks	dd	0
3213
readblocks	dd	0
3405
directory_ptr	dd	0
3214
directory_ptr	dd	0
3406
 
3215
 
3407
;##########################	
3216
;##########################	
3408
 
3217
 
3409
 
3218
 
3410
title	db	_title
3219
title	db	_title
3411
;---------------------------------------------------------------------
3220
;---------------------------------------------------------------------
-
 
3221
l_libs_start:
-
 
3222
;	load_library	boxlib_name,cur_dir_path,buf_cmd_lin,system_path,\
-
 
3223
;	err_message_found_lib,head_f_l,myimport,err_message_import,head_f_i
-
 
3224
 
-
 
3225
library01  l_libs system_dir_Boxlib+9, cur_dir_path, buf_cmd_lin, system_dir_Boxlib, \
-
 
3226
err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i
-
 
3227
 
-
 
3228
library02  l_libs system_dir_ProcLib+9, cur_dir_path, buf_cmd_lin, system_dir_ProcLib, \
-
 
3229
err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i
-
 
3230
 
-
 
3231
end_l_libs:
-
 
3232
;---------------------------------------------------------------------
3412
OpenDialog_data:
3233
OpenDialog_data:
3413
.type			dd 0
3234
.type			dd 0
3414
.procinfo		dd procinfo	;+4
3235
.procinfo		dd procinfo	;+4
3415
.com_area_name		dd communication_area_name	;+8
3236
.com_area_name		dd communication_area_name	;+8
3416
.com_area		dd 0	;+12
3237
.com_area		dd 0	;+12
3417
.opendir_pach		dd temp_dir_pach	;+16
3238
.opendir_pach		dd temp_dir_pach	;+16
3418
.dir_default_pach	dd communication_area_default_pach	;+20
3239
.dir_default_pach	dd communication_area_default_pach	;+20
3419
.start_path		dd open_dialog_path	;+24
3240
.start_path		dd open_dialog_path	;+24
3420
.draw_window		dd draw_window_1	;+28
3241
.draw_window		dd draw_window_1	;+28
3421
.status			dd 0	;+32
3242
.status			dd 0	;+32
3422
.openfile_pach 		dd fname_buf	;+36
3243
.openfile_pach 		dd fname_buf	;+36
3423
.filename_area		dd filename_area	;+40
3244
.filename_area		dd filename_area	;+40
3424
.filter_area		dd Filter
3245
.filter_area		dd Filter
3425
 
3246
 
3426
communication_area_name:
3247
communication_area_name:
3427
	db 'FFFFFFFF_open_dialog',0
3248
	db 'FFFFFFFF_open_dialog',0
3428
open_dialog_path:
3249
open_dialog_path:
3429
	db '/sys/File Managers/opendial',0
3250
	db '/sys/File Managers/opendial',0
3430
communication_area_default_pach:
3251
communication_area_default_pach:
3431
	db '/rd/1',0
3252
	db '/rd/1',0
3432
 
3253
 
3433
Filter:
3254
Filter:
3434
dd	Filter.end - Filter.1
3255
dd	Filter.end - Filter.1
3435
.1:
3256
.1:
3436
;db	'BIN',0
3257
;db	'BIN',0
3437
;db	'DAT',0
3258
;db	'DAT',0
3438
.end:
3259
.end:
3439
db	0
3260
db	0
3440
 
3261
 
3441
start_temp_file_name:	db 'temp.bin',0
3262
start_temp_file_name:	db 'temp.bin',0
3442
;---------------------------------------------------------------------
3263
;---------------------------------------------------------------------
3443
 
3264
 
3444
I_END:
3265
I_END:
3445
file_name:
3266
file_name:
3446
cur_dir_path	rb 4096
3267
cur_dir_path	rb 4096
3447
buf_cmd_lin	rb 0
3268
buf_cmd_lin	rb 0
3448
procinfo:	;opendialog
3269
procinfo:	;opendialog
3449
threath_buf	rb 0x400
3270
threath_buf	rb 0x400
3450
path:
3271
path:
3451
		rb 1024+16	;opendialog
3272
		rb 1024+16	;opendialog
3452
 
3273
 
3453
screen_table	rd 1
3274
screen_table	rd 1
3454
begin_offset	rd 1
3275
begin_offset	rd 1
3455
file_buffer	rd 1
3276
file_buffer	rd 1
3456
 
3277
 
3457
copy_buf	rd 1
3278
copy_buf	rd 1
3458
copy_len	rd 1
3279
copy_len	rd 1
3459
 
3280
 
3460
current_offset	rd 1
3281
current_offset	rd 1
3461
;	rd	1 ;¯®¤ áâ à訩 dword
3282
;	rd	1 ;¯®¤ áâ à訩 dword
3462
codepage_offset	rd 1
3283
codepage_offset	rd 1
3463
codepage_offset_previous	rd 1
3284
codepage_offset_previous	rd 1
3464
low_area	rd 1	;ª®®à¤¨­ âë ­¨¦­¥© áâப¨
3285
low_area	rd 1	;ª®®à¤¨­ âë ­¨¦­¥© áâப¨
3465
right_table_xy	rd 1
3286
right_table_xy	rd 1
3466
 
3287
 
3467
prev_f_size_bl	rd 1
3288
prev_f_size_bl	rd 1
3468
 
3289
 
3469
len_str_scr	rd 1
3290
len_str_scr	rd 1
3470
beg_str_scr	rd 1
3291
beg_str_scr	rd 1
3471
 
3292
 
3472
shblock_beg	rd 1	;ᬥ饭¨¥ ­ ç «  ¡«®ª 
3293
shblock_beg	rd 1	;ᬥ饭¨¥ ­ ç «  ¡«®ª 
3473
shblock_end	rd 1	;ᬥ饭¨¥ ª®­æ  ¡«®ª 
3294
shblock_end	rd 1	;ᬥ饭¨¥ ª®­æ  ¡«®ª 
3474
 
3295
 
3475
;mouse_flag	rd 1
3296
;mouse_flag	rd 1
3476
file_size	rd 1
3297
file_size	rd 1
3477
;	rd	1 ;¯®¤ áâ à訩 dword
3298
;	rd	1 ;¯®¤ áâ à訩 dword
3478
 
3299
 
3479
ed_box_data:	rd 8	;¯¥à¢ë© dword -ª®«-¢® í«¥¬¥­â®¢ ¤«ï ®¡à ¡®âª¨, ¤ «¥¥ 㪠§ â¥«¨ ­  editX;
3300
ed_box_data:	rd 8	;¯¥à¢ë© dword -ª®«-¢® í«¥¬¥­â®¢ ¤«ï ®¡à ¡®âª¨, ¤ «¥¥ 㪠§ â¥«¨ ­  editX;
3480
 
3301
 
3481
bufferfinfo	rb 40
3302
bufferfinfo	rb 40
3482
hex8_string	rb 9	;¡ãä¥à ¤«ï hex_output
3303
hex8_string	rb 9	;¡ãä¥à ¤«ï hex_output
3483
go_to_string	rb 9
3304
go_to_string	rb 9
3484
find_string	rb 17
3305
find_string	rb 17
3485
sel1_string	rb 9
3306
sel1_string	rb 9
3486
sel2_string	rb 9
3307
sel2_string	rb 9
3487
cur_help_string	rb 1	;­®¬¥à áâப¨, á ª®â®à®© ¢ë¢®¤¨âáï ⥪áâ ¢ help - ®ª­¥
3308
cur_help_string	rb 1	;­®¬¥à áâப¨, á ª®â®à®© ¢ë¢®¤¨âáï ⥪áâ ¢ help - ®ª­¥
3488
 
3309
 
3489
func_70	f70
3310
func_70	f70
3490
;---------------------------------------------------------------------
3311
;---------------------------------------------------------------------
3491
fname_buf:
3312
fname_buf:
3492
	rb 4096
3313
	rb 4096
3493
;---------------------------------------------------------------------
3314
;---------------------------------------------------------------------
3494
temp_dir_pach:
3315
temp_dir_pach:
3495
	rb 4096
3316
	rb 4096
3496
;---------------------------------------------------------------------
3317
;---------------------------------------------------------------------
3497
filename_area:
3318
filename_area:
3498
	rb 256
3319
	rb 256
3499
;---------------------------------------------------------------------
3320
;---------------------------------------------------------------------
3500
D_END:
3321
D_END: