Rev 2254 | Rev 8271 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2254 | Rev 7674 | ||
---|---|---|---|
Line 8... | Line 8... | ||
8 | ; 1) ç¨á«® ¢ áâப®¢®¬ ¢¨¤¥ ¯¥à¥¢¥á⨠¢ 4 ¡ ©â (float) ¢ ¬ è¨ë© ¢¨¤ |
8 | ; 1) ç¨á«® ¢ áâப®¢®¬ ¢¨¤¥ ¯¥à¥¢¥á⨠¢ 4 ¡ ©â (float) ¢ ¬ è¨ë© ¢¨¤ |
9 | ; 2) ç¨á«® ¢ áâப®¢®¬ ¢¨¤¥ ¯¥à¥¢¥á⨠¢ 8 ¡ ©â (double) ¢ ¬ è¨ë© ¢¨¤ |
9 | ; 2) ç¨á«® ¢ áâப®¢®¬ ¢¨¤¥ ¯¥à¥¢¥á⨠¢ 8 ¡ ©â (double) ¢ ¬ è¨ë© ¢¨¤ |
10 | ; 3) ç¨á«® ¢ ¬ 訮¬ ¢¨¤¥ (float) ¯¥à¥¢¥á⨠¢ áâப®¢ë© ¢¨¤ (5 § ª®¢ ¯®á«¥ § ¯ï⮩) |
10 | ; 3) ç¨á«® ¢ ¬ 訮¬ ¢¨¤¥ (float) ¯¥à¥¢¥á⨠¢ áâப®¢ë© ¢¨¤ (5 § ª®¢ ¯®á«¥ § ¯ï⮩) |
Line 11... | Line 11... | ||
11 | 11 | ||
12 | use32 |
12 | use32 |
13 | org 0x0 |
13 | org 0 |
14 | db 'MENUET01' |
14 | db 'MENUET01' |
Line 15... | Line 15... | ||
15 | dd 0x01,start,i_end,e_end,e_end,0,sys_path |
15 | dd 1,start,i_end,e_end,e_end,0,sys_path |
16 | 16 | ||
- | 17 | include '../../../proc32.inc' |
|
17 | include '../../../proc32.inc' |
18 | include '../../../macros.inc' |
18 | include '../../../macros.inc' |
19 | include '../../../KOSfuncs.inc' |
- | 20 | include '../../../develop/libraries/box_lib/load_lib.mac' |
|
19 | include '../../../develop/libraries/box_lib/load_lib.mac' |
21 | include '../../../develop/libraries/box_lib/trunk/box_lib.mac' |
Line 20... | Line 22... | ||
20 | include '../../../develop/libraries/box_lib/trunk/box_lib.mac' |
22 | include '../../../develop/info3ds/info_fun_float.inc' |
Line 21... | Line 23... | ||
21 | include 'lang.inc' |
23 | include 'lang.inc' |
Line 27... | Line 29... | ||
27 | load_libraries l_libs_start,l_libs_end |
29 | load_libraries l_libs_start,l_libs_end |
28 | ;¯à®¢¥àª ᪮«ìª® ã¤ ç® § £ã§¨« áì è ¡¨¡«¨®â¥ª |
30 | ;¯à®¢¥àª ᪮«ìª® ã¤ ç® § £ã§¨« áì è ¡¨¡«¨®â¥ª |
29 | mov ebp,lib_0 |
31 | mov ebp,lib_0 |
30 | cmp dword [ebp+ll_struc_size-4],0 |
32 | cmp dword[ebp+ll_struc_size-4],0 |
31 | jz @f |
33 | jz @f |
32 | mcall -1 ;exit not correct |
34 | mcall SF_TERMINATE_PROCESS |
33 | @@: |
35 | @@: |
34 | mcall 40,0x27 |
36 | mcall SF_SET_EVENTS_MASK,0xC0000027 |
35 | mcall 48, 3, sys_colors, 40 |
37 | mcall SF_STYLE_SETTINGS,SSF_GET_COLORS, sys_colors, sizeof.system_colors |
36 | edit_boxes_set_sys_color edit1,editboxes_end,sys_colors |
38 | edit_boxes_set_sys_color edit1,editboxes_end,sys_colors |
37 | option_boxes_set_sys_color sys_colors,Option_boxes1 |
39 | option_boxes_set_sys_color sys_colors,Option_boxes1 |
Line 38... | Line 40... | ||
38 | 40 | ||
39 | align 4 |
41 | align 4 |
40 | red: |
42 | red: |
Line 41... | Line 43... | ||
41 | call draw_window |
43 | call draw_window |
42 | 44 | ||
43 | align 4 |
45 | align 4 |
Line 44... | Line 46... | ||
44 | still: |
46 | still: |
45 | mcall 10 ; äãªæ¨ï 10 - ¦¤ âì ᮡëâ¨ï |
47 | mcall SF_WAIT_EVENT |
46 | 48 | ||
47 | cmp eax,1 ; ¯¥à¥à¨á®¢ âì ®ª® ? |
49 | cmp eax,1 ; ¯¥à¥à¨á®¢ âì ®ª® ? |
Line 53... | Line 55... | ||
53 | cmp eax,6 |
55 | cmp eax,6 |
54 | je mouse |
56 | je mouse |
Line 55... | Line 57... | ||
55 | 57 | ||
Line 56... | Line -... | ||
56 | jmp still ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ç «® 横« |
- | |
- | 58 | jmp still ; ¥á«¨ ¤à㣮¥ ᮡë⨥ - ¢ ç «® 横« |
|
57 | 59 | ||
58 | ;--------------------------------------------------------------------- |
60 | align 4 |
59 | key: ; ¦ â ª« ¢¨è ª« ¢¨ âãॠ|
61 | key: ; ¦ â ª« ¢¨è ª« ¢¨ âãॠ|
60 | mcall 2 |
62 | mcall SF_GET_KEY |
61 | ;cmp ah,13 |
63 | ;cmp ah,13 |
Line 62... | Line -... | ||
62 | stdcall [edit_box_key], dword edit1 |
- | |
63 | jmp still ; ¢¥àãâìáï ª ç «ã 横« |
- | |
64 | - | ||
65 | ; ®«¨ç¥á⢮ § ª®¢ ç¨á« ¯®á«¥ § ¯ï⮩ (1-17) |
- | |
66 | NumberSymbolsAD DW 5 |
- | |
67 | ; ®áâ âë (10 ¢ á⥯¥¨ N) |
- | |
68 | MConst DQ 1.0E1,1.0E2,1.0E3,1.0E4,1.0E5 |
- | |
69 | DQ 1.0E6,1.0E7,1.0E8,1.0E9,1.0E10 |
- | |
70 | DQ 1.0E11,1.0E12,1.0E13,1.0E14,1.0E15 |
- | |
71 | DQ 1.0E16,1.0E17,1.0E18,1.0E19,1.0E20 |
- | |
72 | DQ 1.0E21,1.0E22,1.0E23,1.0E24,1.0E25 |
- | |
73 | DQ 1.0E26,1.0E27,1.0E28,1.0E29,1.0E30 |
- | |
74 | DQ 1.0E31,1.0E32,1.0E33,1.0E34,1.0E35 |
- | |
75 | DQ 1.0E36,1.0E37,1.0E38,1.0E39,1.0E40 |
- | |
76 | DQ 1.0E41,1.0E42,1.0E43,1.0E44,1.0E45 |
- | |
77 | DQ 1.0E46,1.0E47,1.0E48,1.0E49,1.0E50 |
- | |
78 | DQ 1.0E51,1.0E52,1.0E53,1.0E54,1.0E55 |
- | |
79 | DQ 1.0E56,1.0E57,1.0E58,1.0E59,1.0E60 |
- | |
80 | DQ 1.0E61,1.0E62,1.0E63,1.0E64,1.0E65 |
- | |
81 | DQ 1.0E66,1.0E67,1.0E68,1.0E69,1.0E70 |
- | |
82 | DQ 1.0E71,1.0E72,1.0E73,1.0E74,1.0E75 |
- | |
83 | DQ 1.0E76,1.0E77,1.0E78,1.0E79,1.0E80 |
- | |
84 | DQ 1.0E81,1.0E82,1.0E83,1.0E84,1.0E85 |
- | |
85 | DQ 1.0E86,1.0E87,1.0E88,1.0E89,1.0E90 |
- | |
86 | DQ 1.0E91,1.0E92,1.0E93,1.0E94,1.0E95 |
- | |
87 | DQ 1.0E96,1.0E97,1.0E98,1.0E99,1.0E100 |
- | |
88 | DQ 1.0E101,1.0E102,1.0E103,1.0E104,1.0E105 |
- | |
89 | DQ 1.0E106,1.0E107,1.0E108,1.0E109,1.0E110 |
- | |
90 | DQ 1.0E111,1.0E112,1.0E113,1.0E114,1.0E115 |
- | |
91 | DQ 1.0E116,1.0E117,1.0E118,1.0E119,1.0E120 |
- | |
92 | DQ 1.0E121,1.0E122,1.0E123,1.0E124,1.0E125 |
- | |
93 | DQ 1.0E126,1.0E127,1.0E128 |
- | |
94 | ; ¨á«® á ¯« ¢ î饩 § ¯ï⮩ ¤¢®©®© â®ç®á⨠|
- | |
95 | Data_Double DQ ? |
- | |
96 | ; ¨á«® ¢ BCD-ä®à¬ ⥠|
- | |
97 | Data_BCD DT ? |
- | |
98 | ; ᯮ¬®£ ⥫ìë© ä« £ |
- | |
99 | Data_Flag DB ? |
- | |
100 | ; ª १ã«ìâ â (¥á«¨ ¥ 0 - ®âà¨æ ⥫쮥 ç¨á«®) |
- | |
101 | Data_Sign DB ? |
- | |
102 | ; âப ¤«ï åà ¥¨ï ç¨á« ¢ ª®¤¥ ASCII |
- | |
103 | Data_String DB 32 DUP (?) |
- | |
104 | - | ||
105 | string1 db 32 dup (0) |
- | |
106 | string1_end: |
- | |
107 | - | ||
108 | - | ||
109 | - | ||
110 | ;******************************************************* |
- | |
111 | ;* * |
- | |
112 | ;* ¨á«® ¨¬¥¥â ä®à¬ â á 㤢®¥®© â®ç®áâìî, १ã«ìâ â * |
- | |
113 | ;* ¢ë¤ ¥âáï ¢ ¤¥áïâ¨ç®¬ ª®¤¥, ¢ "¡ë⮢®¬" ä®à¬ ⥠á * |
- | |
114 | ;* 䨪á¨à®¢ ë¬ ª®«¨ç¥á⢮¬ § ª®¢ ¯®á«¥ § ¯ï⮩. * |
- | |
115 | ;* å®¤ë¥ ¯ à ¬¥âàë: * |
- | |
116 | ;* Data_Double - ¯à¥®¡à §ã¥¬®¥ ç¨á«®; * |
- | |
117 | ;* NumberSymbolsAD - ª®«¨ç¥á⢮ § ª®¢ ¯®á«¥ * |
- | |
118 | ;* § ¯ï⮩ (0-17). * |
- | |
119 | ;* ëå®¤ë¥ ¯ à ¬¥âàë: * |
- | |
120 | ;* Data_String - áâப -१ã«ìâ â. * |
- | |
121 | ;******************************************************* |
- | |
122 | DoubleFloat_to_String: |
- | |
123 | pushad |
- | |
124 | ; ¥§ã«ìâ â § ¯¨áë¢ âì ¢ áâபã Data_String |
- | |
125 | mov EDI, Data_String |
- | |
126 | - | ||
127 | ; ¤¢¨£ ¥¬ ç¨á«® ¢«¥¢® NumberSymbolsAD |
- | |
128 | ; ¤¥áïâ¨çëå à §à冷¢ |
- | |
129 | fninit ;á¡à®á ᮯà®æ¥áá®à |
- | |
130 | fld [Data_Double] ;§ £à㧨âì ç¨á«® |
- | |
131 | xor ebx,ebx |
- | |
132 | mov BX,[NumberSymbolsAD] |
- | |
133 | cmp BX, 0 |
- | |
134 | je .NoShifts ;¥â æ¨äà ¯®á«¥ § ¯ï⮩ |
- | |
135 | jl .Error ;®è¨¡ª |
- | |
136 | dec BX |
- | |
137 | shl BX, 3 ;㬮¦ ¥¬ 8 |
- | |
138 | add EBX, MConst |
- | |
139 | fmul qword [EBX] ;㬮¦¨âì ª®áâ âã |
- | |
140 | .NoShifts: |
- | |
141 | ; §¢«¥çì ç¨á«® ¢ ª®¤¥ BCD |
- | |
142 | fbstp [Data_BCD] |
- | |
143 | ; ஢¥à¨âì १ã«ìâ â ¯¥à¥¯®«¥¨¥ |
- | |
144 | mov AX,word [Data_BCD + 8] |
- | |
145 | cmp AX,0FFFFh ;"¤¥áïâ¨ç®¥" ¯¥à¥¯®«¥¨¥? |
- | |
146 | je .Overflow |
- | |
147 | ; 뤥«¨âì § ª ç¨á« ¨ § ¯¨á âì ¥£® ¢ ASCII-ª®¤¥ |
- | |
148 | mov AL, byte [Data_BCD + 9] |
- | |
149 | and AL,AL |
- | |
150 | jz .NoSign |
- | |
151 | mov AL,'-' |
- | |
152 | stosb |
- | |
153 | .NoSign: |
- | |
154 | ; ᯠª®¢ âì ç¨á«® ¢ ª®¤ ASCII |
- | |
155 | mov ebx,8 ;ᬥ饨¥ ¯®á«¥¤¥© ¯ àë æ¨äà |
- | |
156 | mov ecx,9 ;áç¥â稪 ¯ à æ¨äà |
- | |
157 | ; ¯à¥¤¥«¨âì ¯®§¨æ¨î ¤¥áïâ¨ç®© â®çª¨ ¢ ç¨á«¥ |
- | |
158 | mov DX,18 |
- | |
159 | sub DX,[NumberSymbolsAD] |
- | |
160 | js .Error ;®è¨¡ª , ¥á«¨ ®âà¨æ ⥫ì ï |
- | |
161 | jz .Error ;¨«¨ ã«¥¢ ï ¯®§¨æ¨ï |
- | |
162 | .NextPair: |
- | |
163 | ; £à㧨âì ®ç¥à¥¤ãî ¯ àã à §à冷¢ |
- | |
164 | mov AL, byte [ebx + Data_BCD] |
- | |
165 | mov AH,AL |
- | |
166 | ; 뤥«¨âì, ¯¥à¥¢¥á⨠¢ ASCII ¨ |
- | |
167 | ; á®åà ¨âì áâ àèãî â¥âà ¤ã |
- | |
168 | shr AL,4 |
- | |
169 | add AL,'0' |
- | |
170 | stosb |
- | |
171 | dec DX |
- | |
172 | jnz .N0 |
- | |
173 | mov AL,'.' |
- | |
174 | stosb |
- | |
175 | .N0: ; 뤥«¨âì, ¯¥à¥¢¥á⨠¢ ASCII ¨ |
- | |
176 | ; á®åà ¨âì ¬« ¤èãî â¥âà ¤ã |
- | |
177 | mov AL,AH |
- | |
178 | and AL,0Fh |
- | |
179 | add AL,'0' |
- | |
180 | stosb |
- | |
181 | dec DX |
- | |
182 | jnz .N1 |
- | |
183 | mov AL,'.' |
- | |
184 | stosb |
- | |
185 | .N1: |
- | |
186 | dec BX |
- | |
187 | loop .NextPair |
- | |
188 | mov AL,0 |
- | |
189 | stosb |
- | |
190 | - | ||
191 | ; ¡à âì ¥§ ç 騥 㫨 á«¥¢ |
- | |
192 | mov EDI, Data_String |
- | |
193 | mov ESI, Data_String |
- | |
194 | ; யãáâ¨âì § ª ç¨á« , ¥á«¨ ® ¥áâì |
- | |
195 | cmp byte [ESI],'-' |
- | |
196 | jne .N2 |
- | |
197 | inc ESI |
- | |
198 | inc EDI |
- | |
199 | .N2: ; £à㧨âì ¢ áç¥â稪 横« ª®«¨ç¥á⢮ à §à冷¢ |
- | |
200 | ; ç¨á« ¯«îá 1 (¡ ©â ¤¥áïâ¨ç®© â®çª¨) |
- | |
201 | mov ecx,18+1+1 |
- | |
202 | ; யãáâ¨âì ¥§ ç 騥 㫨 |
- | |
203 | .N3: |
- | |
204 | cmp byte [ESI],'0' |
- | |
205 | jne .N4 |
- | |
206 | cmp byte [ESI+1],'.' |
- | |
207 | je .N4 |
- | |
208 | inc ESI |
- | |
209 | loop .N3 |
- | |
210 | ; 訡ª - ¥â § ç é¨å æ¨äà |
- | |
211 | jmp .Error |
- | |
212 | ; ª®¯¨à®¢ âì § ç éãî ç áâì ç¨á« ¢ ç «® áâப¨ |
- | |
213 | .N4: rep movsb |
- | |
214 | jmp .End |
- | |
215 | - | ||
216 | ; 訡ª |
- | |
217 | .Error: |
- | |
218 | mov AL,'E' |
- | |
219 | stosb |
- | |
220 | mov AL,'R' |
- | |
221 | stosb |
- | |
222 | mov AL,'R' |
- | |
223 | stosb |
- | |
224 | xor AL,AL |
- | |
225 | stosb |
- | |
226 | jmp .End |
- | |
227 | ; ¥à¥¯®«¥¨¥ à §à冷© á¥âª¨ |
- | |
228 | .Overflow: |
- | |
229 | mov AL,'#' |
- | |
230 | stosb |
- | |
231 | xor AL,AL |
- | |
232 | stosb |
- | |
233 | ; ®¥æ ¯à®æ¥¤ãàë |
- | |
234 | .End: |
- | |
235 | popad |
- | |
236 | ret |
- | |
237 | - | ||
238 | ;**************************************************** |
- | |
239 | ;* * |
- | |
240 | ;* (ç¨á«® ¨¬¥¥â ®¡ëçë©, "¡ë⮢®©" ä®à¬ â) * |
- | |
241 | ;* å®¤ë¥ ¯ à ¬¥âàë: * |
- | |
242 | ;* Data_String - ç¨á«® ¢ ª®¤¥ ASCII. * |
- | |
243 | ;* ëå®¤ë¥ ¯ à ¬¥âàë: * |
- | |
244 | ;* Data_Double - ç¨á«® ¢ ¤¢®¨ç®¬ ª®¤¥. * |
- | |
245 | ;**************************************************** |
- | |
246 | String_to_DoubleFloat: |
- | |
247 | pushad |
- | |
248 | cld |
- | |
249 | ; ç¨é ¥¬ Data_BCD |
- | |
250 | mov dword [Data_BCD],0 |
- | |
251 | mov dword [Data_BCD+4],0 |
- | |
252 | mov word [Data_BCD+8],0 |
- | |
253 | ; ç¨é ¥¬ ¡ ©â § ª |
- | |
254 | mov [Data_Sign],0 |
- | |
255 | ; ®á¨¬ ¢ SI 㪠§ ⥫ì áâபã |
- | |
256 | mov ESI, Data_String |
- | |
257 | ; யã᪠¥¬ ¯à®¡¥«ë ¯¥à¥¤ ç¨á«®¬ |
- | |
258 | mov ecx,64 ;§ é¨â ®â § 横«¨¢ ¨ï |
- | |
259 | .ShiftIgnore: |
- | |
260 | lodsb |
- | |
261 | cmp AL,' ' |
- | |
262 | jne .ShiftIgnoreEnd |
- | |
263 | loop .ShiftIgnore |
- | |
264 | jmp .Error |
- | |
265 | .ShiftIgnoreEnd: |
- | |
266 | ; ஢¥à塞 § ª ç¨á« |
- | |
267 | cmp AL,'-' |
- | |
268 | jne .Positive |
- | |
269 | mov [Data_Sign],80h |
- | |
270 | lodsb |
- | |
271 | .Positive: |
- | |
272 | mov [Data_Flag],0 ;¯à¨§ ª «¨ç¨ï â®çª¨ |
- | |
273 | mov DX,0 ;¯®§¨æ¨ï â®çª¨ |
- | |
274 | mov ecx,18 ;¬ ªá. ç¨á«® à §à冷¢ |
- | |
275 | .ASCIItoBCDConversion: |
- | |
276 | cmp AL,'.' ;â®çª ? |
- | |
277 | jne .NotDot |
- | |
278 | cmp [Data_Flag],0 ;â®çª ¥ ¢áâà¥ç « áì? |
- | |
279 | jne .Error |
- | |
280 | mov [Data_Flag],1 |
- | |
281 | lodsb |
- | |
282 | cmp AL,0 ;ª®¥æ áâப¨? |
- | |
283 | jne .NotDot |
- | |
284 | jmp .ASCIItoBCDConversionEnd |
- | |
285 | .NotDot: |
- | |
286 | ; ¢¥«¨ç¨âì 1 § 票¥ ¯®§¨æ¨¨ â®çª¨, |
- | |
287 | ; ¥á«¨ ® ¥é¥ ¥ ¢áâà¥ç « áì |
- | |
288 | cmp [Data_Flag],0 |
- | |
289 | jnz .Figures |
- | |
290 | inc DX |
- | |
291 | .Figures: |
- | |
292 | ; ¨¬¢®«ë ç¨á« ¤®«¦ë ¡ëâì æ¨äà ¬¨ |
- | |
293 | cmp AL,'0' |
- | |
294 | jb .Error |
- | |
295 | cmp AL,'9' |
- | |
296 | ja .Error |
- | |
297 | ; ¨è¥¬ ®ç¥à¥¤ãî æ¨äàã ¢ ¬« ¤èãî â¥âà ¤ã BCD |
- | |
298 | and AL,0Fh |
- | |
299 | or byte [Data_BCD],AL |
- | |
300 | ; ஢¥àª ª®¥æ áâப¨ |
- | |
301 | cmp byte [ESI],0 |
- | |
302 | je .ASCIItoBCDConversionEnd |
- | |
303 | ; ¤¢¨£ ¥¬ BCD 4 à §àï¤ ¢«¥¢® |
- | |
304 | ; (ᤢ¨£ ¥¬ áâ à訥 2 ¡ ©â ) |
- | |
305 | mov AX,word [Data_BCD+6] |
- | |
306 | shld word [Data_BCD+8],AX,4 |
- | |
307 | ; (ᤢ¨£ ¥¬ á।¨¥ 4 ¡ ©â ) |
- | |
308 | mov EAX, dword [Data_BCD] |
- | |
309 | shld dword [Data_BCD+4],EAX,4 |
- | |
310 | ; (ᤢ¨£ ¥¬ ¬« ¤è¨¥ 4 ¡ ©â ) |
- | |
311 | shl dword [Data_BCD],4 |
- | |
312 | ; £à㦠¥¬ á«¥¤ãî騩 ᨬ¢®« ¢ AL |
- | |
313 | lodsb |
- | |
314 | loop .ASCIItoBCDConversion |
- | |
315 | ; ᫨ 19-© ᨬ¢®« ¥ 0 ¨ ¥ â®çª , |
- | |
316 | ; â® ®è¨¡ª ¯¥à¥¯®«¥¨ï |
- | |
317 | cmp AL,'.' |
- | |
318 | jne .NotDot2 |
- | |
319 | inc ecx |
- | |
320 | lodsb |
- | |
321 | .NotDot2: |
- | |
322 | cmp AL,0 |
- | |
323 | jne .Error ;¯¥à¥¯®«¥¨¥ à §à冷© á¥âª¨ |
- | |
324 | - | ||
325 | ; BCD |
- | |
326 | .ASCIItoBCDConversionEnd: |
- | |
327 | ; ¯¨á âì § ª ¢ áâ à訩 ¡ ©â |
- | |
328 | mov AL,[Data_Sign] |
- | |
329 | mov byte [Data_BCD+9],AL |
- | |
330 | ; ¡à®á¨âì ॣ¨áâàë ᮯà®æ¥áá®à |
- | |
331 | fninit |
- | |
332 | ; £à㧨âì ¢ ᮯà®æ¥áá®à ç¨á«® ¢ BCD-ä®à¬ ⥠|
- | |
333 | fbld [Data_BCD] |
- | |
334 | ; ëç¨á«¨âì ®¬¥à ¤¥«¨â¥«ï |
- | |
335 | mov EBX,18+1 |
- | |
336 | sub BX,CX |
- | |
337 | sub BX,DX |
- | |
338 | cmp EBX,0 |
- | |
339 | je .NoDiv |
- | |
340 | dec EBX |
- | |
341 | shl EBX,3 ;㬮¦ ¥¬ 8 |
- | |
342 | add EBX, MConst |
- | |
343 | fdiv qword [EBX] ;à §¤¥«¨âì ª®áâ âã |
- | |
344 | .NoDiv:; ë£à㧨âì ç¨á«® ¢ ¤¢®¨ç®¬ ä®à¬ ⥠|
- | |
345 | fstp [Data_Double] |
- | |
346 | jmp .End |
- | |
347 | - | ||
348 | .Error:; ਠ«î¡®© ®è¨¡ª¥ ®¡ã«¨âì १ã«ìâ â |
- | |
349 | fldz ;§ ¥á⨠®«ì á á⥪ ᮯà®æ¥áá®à |
- | |
350 | fstp [Data_Double] |
- | |
351 | .End: |
- | |
352 | popad |
- | |
353 | ret |
- | |
354 | - | ||
355 | - | ||
356 | - | ||
357 | ;input: |
- | |
358 | ; buf - 㪠§ ⥫ì áâபã, ç¨á«® ¤®«¦® ¡ëâì ¢ 10 ¨«¨ 16 à¨ç®¬ ¢¨¤¥ |
- | |
359 | ;output: |
- | |
360 | ; eax - ç¨á«® |
- | |
361 | align 4 |
- | |
362 | proc conv_str_to_int, buf:dword |
- | |
363 | xor eax,eax |
- | |
364 | push ebx ecx esi |
- | |
365 | xor ebx,ebx |
- | |
366 | mov esi,[buf] |
- | |
367 | ;®¯à¥¤¥«¥¨¥ ®âà¨æ ⥫ìëå ç¨á¥« |
- | |
368 | xor ecx,ecx |
- | |
369 | inc ecx |
- | |
370 | cmp byte[esi],'-' |
- | |
371 | jne @f |
- | |
372 | dec ecx |
- | |
373 | inc esi |
- | |
374 | @@: |
- | |
375 | - | ||
376 | cmp word[esi],'0x' |
- | |
377 | je .load_digit_16 |
- | |
378 | - | ||
379 | .load_digit_10: ;áç¨âë¢ ¨¥ 10-â¨çëå æ¨äà |
- | |
380 | mov bl,byte[esi] |
- | |
381 | cmp bl,'0' |
- | |
382 | jl @f |
- | |
383 | cmp bl,'9' |
- | |
384 | jg @f |
- | |
385 | sub bl,'0' |
- | |
386 | imul eax,10 |
- | |
387 | add eax,ebx |
- | |
388 | inc esi |
- | |
389 | jmp .load_digit_10 |
- | |
390 | jmp @f |
- | |
391 | - | ||
392 | .load_digit_16: ;áç¨âë¢ ¨¥ 16-à¨çëå æ¨äà |
- | |
393 | add esi,2 |
- | |
394 | .cycle_16: |
- | |
395 | mov bl,byte[esi] |
- | |
396 | cmp bl,'0' |
- | |
397 | jl @f |
- | |
398 | cmp bl,'f' |
- | |
399 | jg @f |
- | |
400 | cmp bl,'9' |
- | |
401 | jle .us1 |
- | |
402 | cmp bl,'A' |
- | |
403 | jl @f ;®âᥨ¢ ¥¬ ᨬ¢®«ë >'9' ¨ <'A' |
- | |
404 | .us1: ;á®áâ ¢®¥ ãá«®¢¨¥ |
- | |
405 | cmp bl,'F' |
- | |
406 | jle .us2 |
- | |
407 | cmp bl,'a' |
- | |
408 | jl @f ;®âᥨ¢ ¥¬ ᨬ¢®«ë >'F' ¨ <'a' |
- | |
409 | sub bl,32 ;¯¥à¥¢®¤¨¬ ᨬ¢®«ë ¢ ¢¥à娩 ॣ¨áâà, ¤«ï ã¯à®é¥¨ï ¨å ¯®á«¥¤ã饩 ®¡à ¡®âª¨ |
- | |
410 | .us2: ;á®áâ ¢®¥ ãá«®¢¨¥ |
- | |
411 | sub bl,'0' |
- | |
412 | cmp bl,9 |
- | |
413 | jle .cor1 |
- | |
414 | sub bl,7 ;convert 'A' to '10' |
- | |
415 | .cor1: |
- | |
416 | shl eax,4 |
- | |
417 | add eax,ebx |
- | |
418 | inc esi |
- | |
419 | jmp .cycle_16 |
- | |
420 | @@: |
- | |
421 | cmp ecx,0 ;¥á«¨ ç¨á«® ®âà¨æ ⥫쮥 |
- | |
422 | jne @f |
- | |
423 | sub ecx,eax |
- | |
424 | mov eax,ecx |
- | |
425 | @@: |
- | |
426 | pop esi ecx ebx |
- | |
427 | ret |
- | |
428 | endp |
- | |
429 | - | ||
430 | 64 | stdcall [edit_box_key], edit1 |
|
431 | 65 | jmp still ; ¢¥àãâìáï ª ç «ã 横« |
|
432 | ;--------------------------------------------------------------------- |
66 | |
433 | align 4 |
67 | align 4 |
434 | button: |
68 | button: |
435 | mcall 17 ; 17 - ¯®«ãç¨âì ¨¤¥â¨ä¨ª â®à ¦ ⮩ ª®¯ª¨ |
69 | mcall SF_GET_BUTTON |
436 | cmp ah, 1 ; ¥á«¨ ¦ â ª®¯ª á ®¬¥à®¬ 1, |
70 | cmp ah, 1 ; ¥á«¨ ¦ â ª®¯ª á ®¬¥à®¬ 1, |
437 | jne @f |
71 | jne @f |
438 | mcall -1 |
72 | mcall SF_TERMINATE_PROCESS |
439 | @@: |
73 | @@: |
440 | cmp ah, 5 |
74 | cmp ah, 5 |
441 | jne @f |
75 | jne @f |
442 | cmp dword[option_group1],opt3 |
76 | cmp dword[option_group1],opt3 |
443 | jne .opt_3_end |
77 | jne .opt_3_end |
444 | stdcall conv_str_to_int,dword[edit1.text] |
78 | stdcall conv_str_to_int,[edit1.text] |
445 | mov dword[Data_Double],eax |
79 | mov dword[Data_Double],eax |
Line 446... | Line 80... | ||
446 | finit |
80 | finit |
447 | fld dword[Data_Double] |
81 | fld dword[Data_Double] |
448 | fstp qword[Data_Double] |
82 | fstp qword[Data_Double] |
- | 83 | ||
449 | 84 | ; Data_Double - ¯à¥®¡à §ã¥¬®¥ ç¨á«® |
|
450 | ; Data_Double - ¯à¥®¡à §ã¥¬®¥ ç¨á«® |
85 | mov word[NumberSymbolsAD],8 ; ª®«¨ç¥á⢮ § ª®¢ ç¨á« ¯®á«¥ § ¯ï⮩ (1-17) |
451 | ; NumberSymbolsAD - ª®«¨ç¥á⢮ § ª®¢ ¯®á«¥ § ¯ï⮩ (0-17) |
86 | call DoubleFloat_to_String |
Line 452... | Line 87... | ||
452 | call DoubleFloat_to_String |
87 | call String_crop_0 |
Line 469... | Line 104... | ||
469 | .opt_all_end: |
104 | .opt_all_end: |
470 | jmp red |
105 | jmp red |
471 | @@: |
106 | @@: |
472 | jmp still |
107 | jmp still |
Line -... | Line 108... | ||
- | 108 | ||
473 | 109 | align 4 |
|
474 | mouse: |
110 | mouse: |
475 | stdcall [edit_box_mouse], edit1 |
111 | stdcall [edit_box_mouse], edit1 |
476 | stdcall [option_box_mouse], Option_boxes1 |
112 | stdcall [option_box_mouse], Option_boxes1 |
Line 477... | Line 113... | ||
477 | jmp still |
113 | jmp still |
478 | 114 | ||
479 | ;------------------------------------------------ |
115 | ;------------------------------------------------ |
480 | align 4 |
116 | align 4 |
Line 481... | Line 117... | ||
481 | draw_window: |
117 | draw_window: |
482 | mcall 48, 3, sys_colors, sizeof.system_colors |
118 | mcall SF_STYLE_SETTINGS,SSF_GET_COLORS, sys_colors, sizeof.system_colors |
483 | 119 | ||
484 | mcall 12, 1 |
120 | mcall SF_REDRAW,SSF_BEGIN_DRAW |
Line 485... | Line 121... | ||
485 | mov edx, 0x14000000 |
121 | mov edx, 0x14000000 |
Line 486... | Line 122... | ||
486 | or edx, [sys_colors.work] |
122 | or edx, [sys_colors.work] |
487 | mcall 0, 200*65536+300, 200*65536+175, ,,title |
123 | mcall SF_CREATE_WINDOW, (200 shl 16)+300, (200 shl 16)+175, ,,title |
488 | 124 | ||
489 | mcall 8, (300-53)*65536+38,145*65536+ 15, 5,[sys_colors.work_button] ; ª®¯ª Ok |
125 | mcall SF_DEFINE_BUTTON, ((300-53) shl 16)+38, (145 shl 16)+15, 5, [sys_colors.work_button] ; ª®¯ª Ok |
490 | 126 | ||
491 | mov ecx, 0x80000000 |
127 | mov ecx, 0x80000000 |
492 | or ecx, [sys_colors.work_text] |
128 | or ecx, [sys_colors.work_text] |
Line 493... | Line 129... | ||
493 | mcall 4, 15*65536 +30,, binstr, |
129 | mcall SF_DRAW_TEXT, (15 shl 16) +30,, binstr, |
494 | mcall , 15*65536 +58,, decstr, |
130 | mcall , (15 shl 16) +58,, decstr, |
495 | mcall , (240-56*3)*65536 +58,, Data_String, |
131 | mcall , ((240-56*3) shl 16) +58,, Data_String, |
Line 496... | Line 132... | ||
496 | mcall , 15*65536 +72,, hexstr, |
132 | mcall , (15 shl 16) +72,, hexstr, |
497 | mcall , 15*65536+150,, numstr, |
133 | mcall , (15 shl 16)+150,, numstr, |
498 | 134 | ||
499 | mov ecx, 0x80000000 |
135 | mov ecx, 0x80000000 |
500 | or ecx, [sys_colors.work_button_text] |
136 | or ecx, [sys_colors.work_button_text] |
501 | mcall , (300-42)*65536+149, , Okstr,3 |
137 | mcall , ((300-42) shl 16)+149, , Okstr,3 |
Line 502... | Line 138... | ||
502 | 138 | ||
503 | cmp dword[option_group1],opt1 |
139 | cmp dword[option_group1],opt1 |
504 | je @f ;¥á«¨ ¢ë¡à float, â® áâ à訥 4 ¡ ©â (¨§ double) ¥ ¯¥ç â ¥¬ |
140 | je @f ;¥á«¨ ¢ë¡à float, â® áâ à訥 4 ¡ ©â (¨§ double) ¥ ¯¥ç â ¥¬ |
505 | cmp dword[option_group1],opt3 |
141 | cmp dword[option_group1],opt3 |
506 | je @f ;¥á«¨ ¢ë¡à float, â® áâ à訥 4 ¡ ©â (¨§ double) ¥ ¯¥ç â ¥¬ |
142 | je @f ;¥á«¨ ¢ë¡à float, â® áâ à訥 4 ¡ ©â (¨§ double) ¥ ¯¥ç â ¥¬ |
507 | mov ecx, dword[Data_Double+4] |
143 | mov ecx, dword[Data_Double+4] |
508 | mcall 47, 8*65536+256,,185*65536+72,[sys_colors.work_text] ; 16- ï |
144 | mcall SF_DRAW_NUMBER, (8 shl 16)+256,,(185 shl 16)+72,[sys_colors.work_text] ; 16- ï |
509 | 145 | ||
510 | mov ecx, dword[Data_Double+4] |
146 | mov ecx, dword[Data_Double+4] |
511 | mcall ,8*65536+512,,240*65536+30, ; 2- ï |
147 | mcall ,(8 shl 16)+512,,(240 shl 16)+30, ; 2- ï |
Line 512... | Line 148... | ||
512 | ror ecx, 8 |
148 | ror ecx, 8 |
513 | mcall ,,,(240-56)*65536+30, |
149 | mcall ,,,((240-56) shl 16)+30, |
Line 514... | Line 150... | ||
514 | ror ecx, 8 |
150 | ror ecx, 8 |
515 | mcall ,,,(240-56*2)*65536+30, |
151 | mcall ,,,((240-56*2) shl 16)+30, |
516 | ror ecx, 8 |
152 | ror ecx, 8 |
517 | mcall ,,,(240-56*3)*65536+30, |
153 | mcall ,,,((240-56*3) shl 16)+30, |
518 | ror ecx, 8 |
154 | ror ecx, 8 |
519 | @@: |
155 | @@: |
520 | 156 | ||
521 | mov ecx,dword[Data_Double] |
157 | mov ecx,dword[Data_Double] |
522 | mcall 47, 8*65536+256,,240*65536+72,[sys_colors.work_text] ; 16- ï |
158 | mcall SF_DRAW_NUMBER, (8 shl 16)+256,,(240 shl 16)+72,[sys_colors.work_text] ; 16- ï |
Line 523... | Line 159... | ||
523 | 159 | ||
524 | mov ecx,dword[Data_Double] |
160 | mov ecx,dword[Data_Double] |
525 | mcall , 8*65536+512,,240*65536+44, ; 2- ï |
161 | mcall , (8 shl 16)+512,,(240 shl 16)+44, ; 2- ï |
526 | ror ecx, 8 |
162 | ror ecx, 8 |
Line 527... | Line 163... | ||
527 | mcall ,,,(240-56)*65536+44, |
163 | mcall ,,,((240-56) shl 16)+44, |
Line -... | Line 164... | ||
- | 164 | ror ecx, 8 |
|
- | 165 | mcall ,,,((240-56*2) shl 16)+44, |
|
- | 166 | ror ecx, 8 |
|
- | 167 | mcall ,,,((240-56*3) shl 16)+44, |
|
- | 168 | ror ecx, 8 |
|
- | 169 | ||
- | 170 | mcall SF_DRAW_LINE, (15 shl 16)+300-15, (137 shl 16)+137, [sys_colors.work_graph] |
|
- | 171 | stdcall [edit_box_draw], edit1 |
|
- | 172 | stdcall [option_box_draw], Option_boxes1 |
|
- | 173 | mcall SF_REDRAW,SSF_END_DRAW |
|
- | 174 | ||
- | 175 | ret |
|
- | 176 | ||
- | 177 | ||
- | 178 | string1 db 32 dup (0) |
|
- | 179 | string1_end: |
|
- | 180 | ||
- | 181 | ||
- | 182 | ;input: |
|
- | 183 | ; buf - 㪠§ ⥫ì áâபã, ç¨á«® ¤®«¦® ¡ëâì ¢ 10 ¨«¨ 16 à¨ç®¬ ¢¨¤¥ |
|
- | 184 | ;output: |
|
- | 185 | ; eax - ç¨á«® |
|
- | 186 | align 4 |
|
- | 187 | proc conv_str_to_int uses ebx ecx esi, buf:dword |
|
- | 188 | xor eax,eax |
|
- | 189 | xor ebx,ebx |
|
- | 190 | mov esi,[buf] |
|
- | 191 | ;®¯à¥¤¥«¥¨¥ ®âà¨æ ⥫ìëå ç¨á¥« |
|
- | 192 | xor ecx,ecx |
|
- | 193 | inc ecx |
|
- | 194 | cmp byte[esi],'-' |
|
- | 195 | jne @f |
|
- | 196 | dec ecx |
|
- | 197 | inc esi |
|
- | 198 | @@: |
|
- | 199 | ||
- | 200 | cmp word[esi],'0x' |
|
- | 201 | je .load_digit_16 |
|
- | 202 | ||
- | 203 | .load_digit_10: ;áç¨âë¢ ¨¥ 10-â¨çëå æ¨äà |
|
- | 204 | mov bl,byte[esi] |
|
- | 205 | cmp bl,'0' |
|
- | 206 | jl @f |
|
- | 207 | cmp bl,'9' |
|
- | 208 | jg @f |
|
- | 209 | sub bl,'0' |
|
- | 210 | imul eax,10 |
|
- | 211 | add eax,ebx |
|
- | 212 | inc esi |
|
- | 213 | jmp .load_digit_10 |
|
- | 214 | jmp @f |
|
- | 215 | ||
- | 216 | .load_digit_16: ;áç¨âë¢ ¨¥ 16-à¨çëå æ¨äà |
|
- | 217 | add esi,2 |
|
- | 218 | .cycle_16: |
|
- | 219 | mov bl,byte[esi] |
|
- | 220 | cmp bl,'0' |
|
- | 221 | jl @f |
|
- | 222 | cmp bl,'f' |
|
- | 223 | jg @f |
|
- | 224 | cmp bl,'9' |
|
- | 225 | jle .us1 |
|
- | 226 | cmp bl,'A' |
|
- | 227 | jl @f ;®âᥨ¢ ¥¬ ᨬ¢®«ë >'9' ¨ <'A' |
|
- | 228 | .us1: ;á®áâ ¢®¥ ãá«®¢¨¥ |
|
- | 229 | cmp bl,'F' |
|
- | 230 | jle .us2 |
|
- | 231 | cmp bl,'a' |
|
- | 232 | jl @f ;®âᥨ¢ ¥¬ ᨬ¢®«ë >'F' ¨ <'a' |
|
- | 233 | sub bl,32 ;¯¥à¥¢®¤¨¬ ᨬ¢®«ë ¢ ¢¥à娩 ॣ¨áâà, ¤«ï ã¯à®é¥¨ï ¨å ¯®á«¥¤ã饩 ®¡à ¡®âª¨ |
|
- | 234 | .us2: ;á®áâ ¢®¥ ãá«®¢¨¥ |
|
- | 235 | sub bl,'0' |
|
- | 236 | cmp bl,9 |
|
- | 237 | jle .cor1 |
|
- | 238 | sub bl,7 ;convert 'A' to '10' |
|
528 | ror ecx, 8 |
239 | .cor1: |
529 | mcall ,,,(240-56*2)*65536+44, |
240 | shl eax,4 |
530 | ror ecx, 8 |
241 | add eax,ebx |
531 | mcall ,,,(240-56*3)*65536+44, |
242 | inc esi |
532 | ror ecx, 8 |
243 | jmp .cycle_16 |
Line 533... | Line 244... | ||
533 | 244 | @@: |
|
534 | mcall 38, 15*65536+300-15, 137*65536+137, [sys_colors.work_graph] |
245 | cmp ecx,0 ;¥á«¨ ç¨á«® ®âà¨æ ⥫쮥 |
535 | stdcall [edit_box_draw], edit1 |
246 | jne @f |
536 | stdcall [option_box_draw], Option_boxes1 |
247 | sub ecx,eax |
537 | mcall 12, 2 ; äãªæ¨ï 12: á®®¡é¨âì ®¡ ®âà¨á®¢ª¥ ®ª |
248 | mov eax,ecx |
- | 249 | @@: |
|
- | 250 | ret |
|
538 | 251 | endp |
|
539 | ret |
252 | |
540 | 253 | ;------------------------------------------------- |
|
541 | 254 | title db 'string to double 20.08.19',0 |
|
542 | ;------------------------------------------------- |
255 | hexstr db 'hex:',0 |
- | 256 | decstr db 'dec:',0 |
|
- | 257 | binstr db 'bin:',0 |
|
543 | title db 'string to double 07.09.11',0 |
258 | |
Line 544... | Line 259... | ||
544 | hexstr db 'hex:',0 |
259 | if lang eq ru |
545 | decstr db 'dec:',0 |
260 | numstr db '¨á«®:',0 |
546 | binstr db 'bin:',0 |
261 | Okstr db '¢®¤',0 |
Line 574... | Line 289... | ||
574 | option_group1 dd opt1 |
289 | option_group1 dd opt1 |
575 | Option_boxes1 dd opt1, opt2, opt3, 0 |
290 | Option_boxes1 dd opt1, opt2, opt3, 0 |
Line 576... | Line 291... | ||
576 | 291 | ||
577 | system_dir_0 db '/sys/lib/' |
292 | system_dir_0 db '/sys/lib/' |
578 | lib_name_0 db 'box_lib.obj',0 |
- | |
579 | err_msg_found_lib_0 db '¥ ©¤¥ ¡¨¡«¨®â¥ª ',39,'box_lib.obj',39,0 |
- | |
- | 293 | lib_name_0 db 'box_lib.obj',0 |
|
Line 580... | Line 294... | ||
580 | err_msg_import_0 db '訡ª ¯à¨ ¨¬¯®à⥠¡¨¡«¨®â¥ª¨ ',39,'box_lib',39,0 |
294 | |
581 | 295 | ||
582 | l_libs_start: |
296 | l_libs_start: |
583 | lib_0 l_libs lib_name_0, sys_path, library_path, system_dir_0,\ |
297 | lib_0 l_libs lib_name_0, sys_path, library_path, system_dir_0,\ |
Line 604... | Line 318... | ||
604 | aOption_box_mouse db 'option_box_mouse',0 |
318 | aOption_box_mouse db 'option_box_mouse',0 |
605 | ;aVersion_op db 'version_op',0 |
319 | ;aVersion_op db 'version_op',0 |
Line 606... | Line 320... | ||
606 | 320 | ||
607 | i_end: |
321 | i_end: |
608 | sys_colors system_colors |
322 | sys_colors system_colors |
609 | rb 0x400 ;stack |
323 | align 16 |
610 | sys_path rb 4096 |
324 | sys_path rb 4096 |
- | 325 | library_path rb 4096 |
|
611 | library_path rb 4096 |
326 | rb 0x400 ;stack |