Subversion Repositories Kolibri OS

Rev

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

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