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