Rev 5098 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5098 | Rev 7134 | ||
---|---|---|---|
1 | ; 15/III 2010 staper@inbox.ru |
1 | ; 15/III 2010 staper@inbox.ru |
2 | 2 | ||
3 | appname equ 'à®£à ¬¬¨àã¥¬ë© ¬¨ªà®ª «ìªã«ïâ®à ' |
3 | appname equ 'à®£à ¬¬¨àã¥¬ë© ¬¨ªà®ª «ìªã«ïâ®à ' |
4 | version equ '' |
4 | version equ '' |
5 | 5 | ||
6 | include 'macros.inc' |
6 | include 'macros.inc' |
7 | 7 | ||
8 | header '01',1,START,I_END,(D_END+0x100),(D_END+0x100),0,cur_dir_path |
8 | __header '01',1,START,I_END,(D_END+0x100),(D_END+0x100),0,cur_dir_path |
9 | 9 | ||
10 | include 'opcodes.inc' |
10 | include 'opcodes.inc' |
11 | include 'proc32.inc' |
11 | include 'proc32.inc' |
12 | include 'MASMFpuLib.asm' |
12 | include 'MASMFpuLib.asm' |
13 | include 'editbox_ex.mac' |
13 | include 'editbox_ex.mac' |
14 | include 'load_lib.mac' |
14 | include 'load_lib.mac' |
15 | include 'macroPRMK.inc' |
15 | include 'macroPRMK.inc' |
16 | 16 | ||
17 | _flags = 0x0 |
17 | _flags = 0x0 |
18 | ;0 1 - ¨á¯®«¥¨¥ ¯à®£à ¬¬ë |
18 | ;0 1 - ¨á¯®«¥¨¥ ¯à®£à ¬¬ë |
19 | ;1 1 - ¢ à¨©ë© ®áâ ®¢, ¥ ¨á¯®«ì§ã¥âáï |
19 | ;1 1 - ¢ à¨©ë© ®áâ ®¢, ¥ ¨á¯®«ì§ã¥âáï |
20 | ;2- |
20 | ;2- |
21 | ;3 1 - ¦ â F |
21 | ;3 1 - ¦ â F |
22 | ;4 1 - ¦ â K |
22 | ;4 1 - ¦ â K |
23 | ;5 1 - ०¨¬ ¯à®£à ¬¬¨à®¢ ¨ï |
23 | ;5 1 - ०¨¬ ¯à®£à ¬¬¨à®¢ ¨ï |
24 | ;6 1 - § ¯®«¥¨¥ íªá¯®¥âë |
24 | ;6 1 - § ¯®«¥¨¥ íªá¯®¥âë |
25 | ;7 1 - ॣ¨áâàë ¯®¤ïâë |
25 | ;7 1 - ॣ¨áâàë ¯®¤ïâë |
26 | ;8 1 - ¤®¯®«¥¨¥ ª®¬ ¤ë (0å4?,0å6? ¨ ¯à.) |
26 | ;8 1 - ¤®¯®«¥¨¥ ª®¬ ¤ë (0å4?,0å6? ¨ ¯à.) |
27 | ;9 1 - ¤®§ ¯¨áì ª®¬ ¤ë ( ¤à¥á ¯¥à¥å®¤ ¯®á«¥ ) |
27 | ;9 1 - ¤®§ ¯¨áì ª®¬ ¤ë ( ¤à¥á ¯¥à¥å®¤ ¯®á«¥ ) |
28 | ;10 1 - ¥®¡å®¤¨¬® ®¡ã«¨âì íªà ãî áâபã, ® ¥ ¯®ª §ë¢ âì ¥ñ, ¯®¤ïâì ॣ¨áâàë |
28 | ;10 1 - ¥®¡å®¤¨¬® ®¡ã«¨âì íªà ãî áâபã, ® ¥ ¯®ª §ë¢ âì ¥ñ, ¯®¤ïâì ॣ¨áâàë |
29 | ;11 1 - ¦ â |
29 | ;11 1 - ¦ â |
30 | ;12 1 - ¦ â |
30 | ;12 1 - ¦ â |
31 | ;13 1 - áªàë¢ âì ॣ¨áâàë ¨ ¯à®£à ¬¬ã |
31 | ;13 1 - áªàë¢ âì ॣ¨áâàë ¨ ¯à®£à ¬¬ã |
32 | ;25-27 - ¨á¯®«ì§ãîâáï ¢ ¤¨ «®£¥ á®åà ¥¨¥ï/§ £à㧪¨ |
32 | ;25-27 - ¨á¯®«ì§ãîâáï ¢ ¤¨ «®£¥ á®åà ¥¨¥ï/§ £à㧪¨ |
33 | ;28- |
33 | ;28- |
34 | ;29 - "sk" ¢ key |
34 | ;29 - "sk" ¢ key |
35 | ;30 0 - âà á楤¥âë¥ äãªæ¨¨ ¯à¥¤áâ ¢«¥ë ¢ à ¤¨ å, ¨ ç¥ 31 |
35 | ;30 0 - âà á楤¥âë¥ äãªæ¨¨ ¯à¥¤áâ ¢«¥ë ¢ à ¤¨ å, ¨ ç¥ 31 |
36 | ;31 0/1 - âà á楤¥âë¥ äãªæ¨¨ ¯à¥¤áâ ¢«¥ë ¢ £à ¤ å/£à ¤ãá å |
36 | ;31 0/1 - âà á楤¥âë¥ äãªæ¨¨ ¯à¥¤áâ ¢«¥ë ¢ £à ¤ å/£à ¤ãá å |
37 | 37 | ||
38 | START: |
38 | START: |
39 | load_library boxlib_name,cur_dir_path,buf_cmd_lin,system_path,\ |
39 | load_library boxlib_name,cur_dir_path,buf_cmd_lin,system_path,\ |
40 | err_message_found_lib,head_f_l,myimport,err_message_import,head_f_i |
40 | err_message_found_lib,head_f_l,myimport,err_message_import,head_f_i |
41 | 41 | ||
42 | mcall 40,0x7 |
42 | mcall 40,0x7 |
43 | mcall 48,4 |
43 | mcall 48,4 |
44 | mov [scin_height],eax |
44 | mov [scin_height],eax |
45 | 45 | ||
46 | ;®¯à¥¤¥«ï¥¬ ¤«¨ã áâப¨ á ¯ à ¬¥âà ¬¨ |
46 | ;®¯à¥¤¥«ï¥¬ ¤«¨ã áâப¨ á ¯ à ¬¥âà ¬¨ |
47 | mov esi,buf_cmd_lin |
47 | mov esi,buf_cmd_lin |
48 | xor ecx,ecx |
48 | xor ecx,ecx |
49 | @@: cmp byte [esi+ecx],0 |
49 | @@: cmp byte [esi+ecx],0 |
50 | je @f |
50 | je @f |
51 | inc ecx |
51 | inc ecx |
52 | jmp @b |
52 | jmp @b |
53 | @@: mov dword [edit2.size],ecx |
53 | @@: mov dword [edit2.size],ecx |
54 | mov dword [edit2.pos],ecx |
54 | mov dword [edit2.pos],ecx |
55 | 55 | ||
56 | mcall 68,11 |
56 | mcall 68,11 |
57 | cmp dword [edit2.pos],0 |
57 | cmp dword [edit2.pos],0 |
58 | je @f |
58 | je @f |
59 | call load_prog |
59 | call load_prog |
60 | @@: |
60 | @@: |
61 | 61 | ||
62 | red: |
62 | red: |
63 | call draw_window |
63 | call draw_window |
64 | still: |
64 | still: |
65 | test [flags],(1 shl 0) |
65 | test [flags],(1 shl 0) |
66 | jnz main_loop |
66 | jnz main_loop |
67 | mcall 10 |
67 | mcall 10 |
68 | .0: dec eax |
68 | .0: dec eax |
69 | jz red |
69 | jz red |
70 | dec eax |
70 | dec eax |
71 | jz key |
71 | jz key |
72 | dec eax |
72 | dec eax |
73 | jz button |
73 | jz button |
74 | sub eax,3 |
74 | sub eax,3 |
75 | jz mouse |
75 | jz mouse |
76 | jmp still |
76 | jmp still |
77 | main_loop: |
77 | main_loop: |
78 | mcall 11 |
78 | mcall 11 |
79 | test eax,eax |
79 | test eax,eax |
80 | jnz still.0 |
80 | jnz still.0 |
81 | cmp [schk],-1 |
81 | cmp [schk],-1 |
82 | jne @f |
82 | jne @f |
83 | btr [flags],0 |
83 | btr [flags],0 |
84 | mcall 55,55,,,sound_data |
84 | mcall 55,55,,,sound_data |
85 | jmp still |
85 | jmp still |
86 | @@: movzx esi,[schk] |
86 | @@: movzx esi,[schk] |
87 | movzx eax, byte [esi+PMEM] |
87 | movzx eax, byte [esi+PMEM] |
88 | shl eax,2 |
88 | shl eax,2 |
89 | add eax,OPCODEtable |
89 | add eax,OPCODEtable |
90 | call dword [eax] |
90 | call dword [eax] |
91 | call draw_schk |
91 | call draw_schk |
92 | call draw_prog |
92 | call draw_prog |
93 | test [flags],(1 shl 0) |
93 | test [flags],(1 shl 0) |
94 | jz @f |
94 | jz @f |
95 | mcall 5,[_pause] |
95 | mcall 5,[_pause] |
96 | jmp still |
96 | jmp still |
97 | @@: mcall 55,55,,,sound_data |
97 | @@: mcall 55,55,,,sound_data |
98 | jmp still |
98 | jmp still |
99 | 99 | ||
100 | mouse: if 0 |
100 | mouse: if 0 |
101 | push dword scroll_bar_data_vertical |
101 | push dword scroll_bar_data_vertical |
102 | call [scrollbar_ver_mouse] |
102 | call [scrollbar_ver_mouse] |
103 | endf |
103 | endf |
104 | jmp still |
104 | jmp still |
105 | 105 | ||
106 | button: |
106 | button: |
107 | mcall 17 |
107 | mcall 17 |
108 | dec ah |
108 | dec ah |
109 | jnz @f |
109 | jnz @f |
110 | mcall -1 |
110 | mcall -1 |
111 | @@: cmp ah,31 |
111 | @@: cmp ah,31 |
112 | jae .grd |
112 | jae .grd |
113 | movzx eax,ah |
113 | movzx eax,ah |
114 | cmp eax,30 |
114 | cmp eax,30 |
115 | jg still |
115 | jg still |
116 | shl eax,2 |
116 | shl eax,2 |
117 | call dword [eax+but_table-4] |
117 | call dword [eax+but_table-4] |
118 | test [flags],(1 shl 5) |
118 | test [flags],(1 shl 5) |
119 | jz @f |
119 | jz @f |
120 | call ftos |
120 | call ftos |
121 | call draw_string |
121 | call draw_string |
122 | call draw_prog |
122 | call draw_prog |
123 | @@: call draw_schk |
123 | @@: call draw_schk |
124 | jmp still |
124 | jmp still |
125 | .grd: cmp ah,31 |
125 | .grd: cmp ah,31 |
126 | jne @f |
126 | jne @f |
127 | btr [flags],30 |
127 | btr [flags],30 |
128 | call set_but |
128 | call set_but |
129 | jmp still |
129 | jmp still |
130 | @@: cmp ah,32 |
130 | @@: cmp ah,32 |
131 | jne @f |
131 | jne @f |
132 | bts [flags],30 |
132 | bts [flags],30 |
133 | btr [flags],31 |
133 | btr [flags],31 |
134 | call set_but |
134 | call set_but |
135 | jmp still |
135 | jmp still |
136 | @@: cmp ah,33 |
136 | @@: cmp ah,33 |
137 | jne @f |
137 | jne @f |
138 | bts [flags],30 |
138 | bts [flags],30 |
139 | bts [flags],31 |
139 | bts [flags],31 |
140 | call set_but |
140 | call set_but |
141 | @@: cmp ah,34 |
141 | @@: cmp ah,34 |
142 | jne @f |
142 | jne @f |
143 | btc [flags],13 |
143 | btc [flags],13 |
144 | jc .331 |
144 | jc .331 |
145 | mcall 67,-1,-1,198,-1 |
145 | mcall 67,-1,-1,198,-1 |
146 | jmp still |
146 | jmp still |
147 | .331: |
147 | .331: |
148 | mcall 67,-1,-1,485,-1 |
148 | mcall 67,-1,-1,485,-1 |
149 | @@: jmp still |
149 | @@: jmp still |
150 | 150 | ||
151 | key: |
151 | key: |
152 | mcall 2 |
152 | mcall 2 |
153 | @@: cmp ah,12 ;load |
153 | @@: cmp ah,12 ;load |
154 | jne @f |
154 | jne @f |
155 | bt [flags],27 |
155 | bt [flags],27 |
156 | jc still |
156 | jc still |
157 | bt [flags],26 |
157 | bt [flags],26 |
158 | jc still |
158 | jc still |
159 | bts [flags],25 |
159 | bts [flags],25 |
160 | call window_load_save |
160 | call window_load_save |
161 | jmp still |
161 | jmp still |
162 | @@: cmp ah,19 ;save |
162 | @@: cmp ah,19 ;save |
163 | jne @f |
163 | jne @f |
164 | bt [flags],27 |
164 | bt [flags],27 |
165 | jc still |
165 | jc still |
166 | bt [flags],26 |
166 | bt [flags],26 |
167 | jc still |
167 | jc still |
168 | btr [flags],25 |
168 | btr [flags],25 |
169 | call window_load_save |
169 | call window_load_save |
170 | jmp still |
170 | jmp still |
171 | 171 | ||
172 | @@: push dword edit1 |
172 | @@: push dword edit1 |
173 | call [edit_box_key] |
173 | call [edit_box_key] |
174 | 174 | ||
175 | .0: call draw_schk |
175 | .0: call draw_schk |
176 | 176 | ||
177 | cmp [edit1.pos],2 |
177 | cmp [edit1.pos],2 |
178 | jb still |
178 | jb still |
179 | test [flags],(1 shl 29) |
179 | test [flags],(1 shl 29) |
180 | jnz @f |
180 | jnz @f |
181 | cmp word [txt.edbox],"sk"; or "BP" or "Bp" or "bP" |
181 | cmp word [txt.edbox],"sk"; or "BP" or "Bp" or "bP" |
182 | jne @f |
182 | jne @f |
183 | bts [flags],29 |
183 | bts [flags],29 |
184 | mov word [txt.edbox],0x2020 |
184 | mov word [txt.edbox],0x2020 |
185 | mov [edit1.size],0 |
185 | mov [edit1.size],0 |
186 | mov [edit1.pos],0 |
186 | mov [edit1.pos],0 |
187 | push dword edit1 |
187 | push dword edit1 |
188 | call [edit_box_draw] |
188 | call [edit_box_draw] |
189 | jmp key.0 |
189 | jmp key.0 |
190 | @@: mov ah,[txt.edbox] |
190 | @@: mov ah,[txt.edbox] |
191 | sub ah,48 |
191 | sub ah,48 |
192 | cmp ah,9 |
192 | cmp ah,9 |
193 | jbe .1 |
193 | jbe .1 |
194 | sub ah,7 |
194 | sub ah,7 |
195 | cmp ah,15 |
195 | cmp ah,15 |
196 | jbe .1 |
196 | jbe .1 |
197 | sub ah,32 |
197 | sub ah,32 |
198 | .1: mov al,[txt.edbox+1] |
198 | .1: mov al,[txt.edbox+1] |
199 | sub al,48 |
199 | sub al,48 |
200 | cmp al,9 |
200 | cmp al,9 |
201 | jbe .2 |
201 | jbe .2 |
202 | sub al,7 |
202 | sub al,7 |
203 | cmp al,15 |
203 | cmp al,15 |
204 | jbe .1 |
204 | jbe .1 |
205 | sub al,32 |
205 | sub al,32 |
206 | .2: shl al,4 |
206 | .2: shl al,4 |
207 | shr ax,4 |
207 | shr ax,4 |
208 | mov [edit1.size],0 |
208 | mov [edit1.size],0 |
209 | mov [edit1.pos],0 |
209 | mov [edit1.pos],0 |
210 | test [flags],(1 shl 29) |
210 | test [flags],(1 shl 29) |
211 | jnz .4 |
211 | jnz .4 |
212 | movzx ebx,[schk] |
212 | movzx ebx,[schk] |
213 | add ebx,PMEM |
213 | add ebx,PMEM |
214 | mov [ebx],al |
214 | mov [ebx],al |
215 | inc [schk] |
215 | inc [schk] |
216 | jmp .3 |
216 | jmp .3 |
217 | .4: mov [schk],al |
217 | .4: mov [schk],al |
218 | btr [flags],29 |
218 | btr [flags],29 |
219 | .3: call draw_schk |
219 | .3: call draw_schk |
220 | mov word [txt.edbox],0x2020 |
220 | mov word [txt.edbox],0x2020 |
221 | push dword edit1 |
221 | push dword edit1 |
222 | call [edit_box_draw] |
222 | call [edit_box_draw] |
223 | call draw_prog |
223 | call draw_prog |
224 | test [flags],(1 shl 5) |
224 | test [flags],(1 shl 5) |
225 | jz @f |
225 | jz @f |
226 | call ftos |
226 | call ftos |
227 | call draw_string |
227 | call draw_string |
228 | @@: jmp key.0 |
228 | @@: jmp key.0 |
229 | 229 | ||
230 | 230 | ||
231 | align 4 |
231 | align 4 |
232 | 232 | ||
233 | but_table: |
233 | but_table: |
234 | 234 | ||
235 | dd .Cx, .vp, .sign, .dot, .0 |
235 | dd .Cx, .vp, .sign, .dot, .0 |
236 | dd .up, .xy, _3_, _2_, _1_ |
236 | dd .up, .xy, _3_, _2_, _1_ |
237 | dd .min, .div, _6_, _5_, _4_ |
237 | dd .min, .div, _6_, _5_, _4_ |
238 | dd .plus, .x, _9_, _8_, _7_ |
238 | dd .plus, .x, _9_, _8_, _7_ |
239 | dd .PP, .BP, .p, .ip, .K |
239 | dd .PP, .BP, .p, .ip, .K |
240 | dd .Sp, .Vo, .shgl, .shgr, .F |
240 | dd .Sp, .Vo, .shgl, .shgr, .F |
241 | 241 | ||
242 | .BP: test [flags],(1 shl 5) |
242 | .BP: test [flags],(1 shl 5) |
243 | jnz @f |
243 | jnz @f |
244 | bts [flags],9 |
244 | bts [flags],9 |
245 | ret |
245 | ret |
246 | @@: movzx eax,[schk] |
246 | @@: movzx eax,[schk] |
247 | add eax,PMEM |
247 | add eax,PMEM |
248 | inc [schk] |
248 | inc [schk] |
249 | test [flags],(1 shl 3) |
249 | test [flags],(1 shl 3) |
250 | jnz @f |
250 | jnz @f |
251 | test [flags],(1 shl 4) |
251 | test [flags],(1 shl 4) |
252 | jz .BP0 |
252 | jz .BP0 |
253 | mov [dop8],0x80 |
253 | mov [dop8],0x80 |
254 | bts [flags],8 |
254 | bts [flags],8 |
255 | btr [flags],4 |
255 | btr [flags],4 |
256 | ret |
256 | ret |
257 | .BP0: mov byte [eax],0x51 |
257 | .BP0: mov byte [eax],0x51 |
258 | bts [flags],9 |
258 | bts [flags],9 |
259 | ret |
259 | ret |
260 | @@: mov byte [eax],0x58 |
260 | @@: mov byte [eax],0x58 |
261 | bts [flags],9 |
261 | bts [flags],9 |
262 | btr [flags],3 |
262 | btr [flags],3 |
263 | ret |
263 | ret |
264 | .shgl: test [flags],(1 shl 5) |
264 | .shgl: test [flags],(1 shl 5) |
265 | jnz @f |
265 | jnz @f |
266 | ret |
266 | ret |
267 | @@: test [flags],(1 shl 3) |
267 | @@: test [flags],(1 shl 3) |
268 | jnz @f |
268 | jnz @f |
269 | test [flags],(1 shl 4) |
269 | test [flags],(1 shl 4) |
270 | jz .shgl0 |
270 | jz .shgl0 |
271 | mov [dop8],0xE0 |
271 | mov [dop8],0xE0 |
272 | bts [flags],8 |
272 | bts [flags],8 |
273 | btr [flags],4 |
273 | btr [flags],4 |
274 | ret |
274 | ret |
275 | .shgl0: |
275 | .shgl0: |
276 | dec [schk] |
276 | dec [schk] |
277 | ret |
277 | ret |
278 | @@: movzx eax,[schk] |
278 | @@: movzx eax,[schk] |
279 | add eax,PMEM |
279 | add eax,PMEM |
280 | inc [schk] |
280 | inc [schk] |
281 | mov byte [eax],0x5E |
281 | mov byte [eax],0x5E |
282 | bts [flags],9 |
282 | bts [flags],9 |
283 | btr [flags],3 |
283 | btr [flags],3 |
284 | ret |
284 | ret |
285 | 285 | ||
286 | .shgr: test [flags],(1 shl 5) |
286 | .shgr: test [flags],(1 shl 5) |
287 | jnz @f |
287 | jnz @f |
288 | ret |
288 | ret |
289 | @@: test [flags],(1 shl 3) |
289 | @@: test [flags],(1 shl 3) |
290 | jnz @f |
290 | jnz @f |
291 | test [flags],(1 shl 4) |
291 | test [flags],(1 shl 4) |
292 | jz .shgr0 |
292 | jz .shgr0 |
293 | mov [dop8],0xC0 |
293 | mov [dop8],0xC0 |
294 | bts [flags],8 |
294 | bts [flags],8 |
295 | btr [flags],4 |
295 | btr [flags],4 |
296 | ret |
296 | ret |
297 | .shgr0: |
297 | .shgr0: |
298 | inc [schk] |
298 | inc [schk] |
299 | ret |
299 | ret |
300 | @@: movzx eax,[schk] |
300 | @@: movzx eax,[schk] |
301 | add eax,PMEM |
301 | add eax,PMEM |
302 | inc [schk] |
302 | inc [schk] |
303 | mov byte [eax],0x5C |
303 | mov byte [eax],0x5C |
304 | bts [flags],9 |
304 | bts [flags],9 |
305 | btr [flags],3 |
305 | btr [flags],3 |
306 | ret |
306 | ret |
307 | 307 | ||
308 | .PP: test [flags],(1 shl 5) |
308 | .PP: test [flags],(1 shl 5) |
309 | jnz .PPprg |
309 | jnz .PPprg |
310 | mov eax,0x53 |
310 | mov eax,0x53 |
311 | jmp .to_opcode |
311 | jmp .to_opcode |
312 | .PPprg: |
312 | .PPprg: |
313 | movzx eax,[schk] |
313 | movzx eax,[schk] |
314 | add eax,PMEM |
314 | add eax,PMEM |
315 | inc [schk] |
315 | inc [schk] |
316 | test [flags],(1 shl 3) |
316 | test [flags],(1 shl 3) |
317 | jnz @f |
317 | jnz @f |
318 | test [flags],(1 shl 4) |
318 | test [flags],(1 shl 4) |
319 | jz .PP0 |
319 | jz .PP0 |
320 | mov [dop8],0xA0 |
320 | mov [dop8],0xA0 |
321 | bts [flags],8 |
321 | bts [flags],8 |
322 | btr [flags],4 |
322 | btr [flags],4 |
323 | dec [schk] |
323 | dec [schk] |
324 | ret |
324 | ret |
325 | .PP0: |
325 | .PP0: |
326 | mov byte [eax],0x53 |
326 | mov byte [eax],0x53 |
327 | bts [flags],9 |
327 | bts [flags],9 |
328 | ret |
328 | ret |
329 | @@: mov byte [eax],0x5A |
329 | @@: mov byte [eax],0x5A |
330 | bts [flags],9 |
330 | bts [flags],9 |
331 | btr [flags],3 |
331 | btr [flags],3 |
332 | ret |
332 | ret |
333 | .Vo: test [flags],(1 shl 5) |
333 | .Vo: test [flags],(1 shl 5) |
334 | jnz .Voprg |
334 | jnz .Voprg |
335 | mov eax,0x52 |
335 | mov eax,0x52 |
336 | jmp .to_opcode |
336 | jmp .to_opcode |
337 | .Voprg: |
337 | .Voprg: |
338 | movzx eax,[schk] |
338 | movzx eax,[schk] |
339 | add eax,PMEM |
339 | add eax,PMEM |
340 | inc [schk] |
340 | inc [schk] |
341 | test [flags],(1 shl 3) |
341 | test [flags],(1 shl 3) |
342 | jnz @f |
342 | jnz @f |
343 | test [flags],(1 shl 4) |
343 | test [flags],(1 shl 4) |
344 | jz .Vo0 |
344 | jz .Vo0 |
345 | mov [dop8],0x90 |
345 | mov [dop8],0x90 |
346 | bts [flags],8 |
346 | bts [flags],8 |
347 | btr [flags],4 |
347 | btr [flags],4 |
348 | dec [schk] |
348 | dec [schk] |
349 | ret |
349 | ret |
350 | .Vo0: |
350 | .Vo0: |
351 | mov byte [eax],0x52 |
351 | mov byte [eax],0x52 |
352 | ret |
352 | ret |
353 | @@: mov byte [eax],0x59 |
353 | @@: mov byte [eax],0x59 |
354 | bts [flags],9 |
354 | bts [flags],9 |
355 | btr [flags],3 |
355 | btr [flags],3 |
356 | ret |
356 | ret |
357 | 357 | ||
358 | .Sp: test [flags],(1 shl 5) |
358 | .Sp: test [flags],(1 shl 5) |
359 | jnz .Spprg |
359 | jnz .Spprg |
360 | mov eax,0x50 |
360 | mov eax,0x50 |
361 | jmp .to_opcode |
361 | jmp .to_opcode |
362 | .Spprg: |
362 | .Spprg: |
363 | movzx eax,[schk] |
363 | movzx eax,[schk] |
364 | add eax,PMEM |
364 | add eax,PMEM |
365 | inc [schk] |
365 | inc [schk] |
366 | test [flags],(1 shl 3) |
366 | test [flags],(1 shl 3) |
367 | jnz @f |
367 | jnz @f |
368 | test [flags],(1 shl 4) |
368 | test [flags],(1 shl 4) |
369 | jz .Sp0 |
369 | jz .Sp0 |
370 | mov [dop8],0x70 |
370 | mov [dop8],0x70 |
371 | bts [flags],8 |
371 | bts [flags],8 |
372 | btr [flags],4 |
372 | btr [flags],4 |
373 | dec [schk] |
373 | dec [schk] |
374 | ret |
374 | ret |
375 | .Sp0: |
375 | .Sp0: |
376 | mov byte [eax],0x50 |
376 | mov byte [eax],0x50 |
377 | ret |
377 | ret |
378 | @@: mov byte [eax],0x57 |
378 | @@: mov byte [eax],0x57 |
379 | bts [flags],9 |
379 | bts [flags],9 |
380 | btr [flags],3 |
380 | btr [flags],3 |
381 | ret |
381 | ret |
382 | .ip: test [flags],(1 shl 5) |
382 | .ip: test [flags],(1 shl 5) |
383 | jnz .ipprg |
383 | jnz .ipprg |
384 | bts [flags],12 |
384 | bts [flags],12 |
385 | ret |
385 | ret |
386 | .ipprg: |
386 | .ipprg: |
387 | test [flags],(1 shl 3) |
387 | test [flags],(1 shl 3) |
388 | jnz @f |
388 | jnz @f |
389 | test [flags],(1 shl 4) |
389 | test [flags],(1 shl 4) |
390 | jz .ip0 |
390 | jz .ip0 |
391 | mov [dop8],0xD0 |
391 | mov [dop8],0xD0 |
392 | bts [flags],8 |
392 | bts [flags],8 |
393 | btr [flags],4 |
393 | btr [flags],4 |
394 | ret |
394 | ret |
395 | .ip0: |
395 | .ip0: |
396 | mov [dop8],0x60 |
396 | mov [dop8],0x60 |
397 | bts [flags],8 |
397 | bts [flags],8 |
398 | ret |
398 | ret |
399 | @@: movzx eax,[schk] |
399 | @@: movzx eax,[schk] |
400 | add eax,PMEM |
400 | add eax,PMEM |
401 | inc [schk] |
401 | inc [schk] |
402 | mov byte [eax],0x5D |
402 | mov byte [eax],0x5D |
403 | bts [flags],9 |
403 | bts [flags],9 |
404 | btr [flags],3 |
404 | btr [flags],3 |
405 | ret |
405 | ret |
406 | 406 | ||
407 | 407 | ||
408 | 408 | ||
409 | .p: test [flags],(1 shl 5) |
409 | .p: test [flags],(1 shl 5) |
410 | jnz .pprg |
410 | jnz .pprg |
411 | bts [flags],11 |
411 | bts [flags],11 |
412 | .nop: ret |
412 | .nop: ret |
413 | .pprg: |
413 | .pprg: |
414 | test [flags],(1 shl 3) |
414 | test [flags],(1 shl 3) |
415 | jnz @f |
415 | jnz @f |
416 | test [flags],(1 shl 4) |
416 | test [flags],(1 shl 4) |
417 | jz .p0 |
417 | jz .p0 |
418 | mov [dop8],0xB0 |
418 | mov [dop8],0xB0 |
419 | bts [flags],8 |
419 | bts [flags],8 |
420 | btr [flags],4 |
420 | btr [flags],4 |
421 | ret |
421 | ret |
422 | .p0: |
422 | .p0: |
423 | mov [dop8],0x40 |
423 | mov [dop8],0x40 |
424 | bts [flags],8 |
424 | bts [flags],8 |
425 | ret |
425 | ret |
426 | @@: movzx eax,[schk] |
426 | @@: movzx eax,[schk] |
427 | add eax,PMEM |
427 | add eax,PMEM |
428 | inc [schk] |
428 | inc [schk] |
429 | mov byte [eax],0x5B |
429 | mov byte [eax],0x5B |
430 | bts [flags],9 |
430 | bts [flags],9 |
431 | btr [flags],3 |
431 | btr [flags],3 |
432 | ret |
432 | ret |
433 | 433 | ||
434 | 434 | ||
435 | 435 | ||
436 | .F: bts [flags],3 |
436 | .F: bts [flags],3 |
437 | ret |
437 | ret |
438 | .K: bts [flags],4 |
438 | .K: bts [flags],4 |
439 | ret |
439 | ret |
440 | .Cx: test [flags],(1 shl 5) |
440 | .Cx: test [flags],(1 shl 5) |
441 | jnz .Cxprg |
441 | jnz .Cxprg |
442 | test [flags],(1 shl 11) |
442 | test [flags],(1 shl 11) |
443 | jnz .cx4d |
443 | jnz .cx4d |
444 | test [flags],(1 shl 12) |
444 | test [flags],(1 shl 12) |
445 | jnz .cx6d |
445 | jnz .cx6d |
446 | test [flags],(1 shl 9) |
446 | test [flags],(1 shl 9) |
447 | jnz .Cx0 |
447 | jnz .Cx0 |
448 | mov eax,0x0D |
448 | mov eax,0x0D |
449 | jmp .to_opcode |
449 | jmp .to_opcode |
450 | .cx4d: mov eax,0x4d |
450 | .cx4d: mov eax,0x4d |
451 | jmp .to_opcode |
451 | jmp .to_opcode |
452 | .cx6d: mov eax,0x6d |
452 | .cx6d: mov eax,0x6d |
453 | jmp .to_opcode |
453 | jmp .to_opcode |
454 | .Cxprg: |
454 | .Cxprg: |
455 | test [flags],(1 shl 8) |
455 | test [flags],(1 shl 8) |
456 | jz .Cx0 |
456 | jz .Cx0 |
457 | add [dop8],0x0D |
457 | add [dop8],0x0D |
458 | jmp .dop8 |
458 | jmp .dop8 |
459 | .Cx0: |
459 | .Cx0: |
460 | test [flags],(1 shl 9) |
460 | test [flags],(1 shl 9) |
461 | jz .Cx1 |
461 | jz .Cx1 |
462 | mov al,0x0D |
462 | mov al,0x0D |
463 | jmp .dop9 |
463 | jmp .dop9 |
464 | .Cx1: |
464 | .Cx1: |
465 | movzx eax,[schk] |
465 | movzx eax,[schk] |
466 | add eax,PMEM |
466 | add eax,PMEM |
467 | mov byte [eax],0x0D |
467 | mov byte [eax],0x0D |
468 | inc [schk] |
468 | inc [schk] |
469 | ret |
469 | ret |
470 | .vp: test [flags],(1 shl 3) |
470 | .vp: test [flags],(1 shl 3) |
471 | jnz .vpsetprg |
471 | jnz .vpsetprg |
472 | test [flags],(1 shl 5) |
472 | test [flags],(1 shl 5) |
473 | jnz .vpprg |
473 | jnz .vpprg |
474 | test [flags],(1 shl 11) |
474 | test [flags],(1 shl 11) |
475 | jnz .vp4c |
475 | jnz .vp4c |
476 | test [flags],(1 shl 12) |
476 | test [flags],(1 shl 12) |
477 | jnz .vp6c |
477 | jnz .vp6c |
478 | test [flags],(1 shl 9) |
478 | test [flags],(1 shl 9) |
479 | jnz .vp0 |
479 | jnz .vp0 |
480 | mov eax,0x0C |
480 | mov eax,0x0C |
481 | jmp .to_opcode |
481 | jmp .to_opcode |
482 | .vp4c: mov eax,0x4c |
482 | .vp4c: mov eax,0x4c |
483 | jmp .to_opcode |
483 | jmp .to_opcode |
484 | .vp6c: mov eax,0x6c |
484 | .vp6c: mov eax,0x6c |
485 | jmp .to_opcode |
485 | jmp .to_opcode |
486 | .vpsetprg: |
486 | .vpsetprg: |
487 | test [flags],(1 shl 5) |
487 | test [flags],(1 shl 5) |
488 | jz @f |
488 | jz @f |
489 | ret |
489 | ret |
490 | .vpprg: |
490 | .vpprg: |
491 | test [flags],(1 shl 8) |
491 | test [flags],(1 shl 8) |
492 | jz .vp0 |
492 | jz .vp0 |
493 | add [dop8],0x0c |
493 | add [dop8],0x0c |
494 | jmp .dop8 |
494 | jmp .dop8 |
495 | .vp0: |
495 | .vp0: |
496 | test [flags],(1 shl 9) |
496 | test [flags],(1 shl 9) |
497 | jz .vp1 |
497 | jz .vp1 |
498 | mov al,0x0C |
498 | mov al,0x0C |
499 | jmp .dop9 |
499 | jmp .dop9 |
500 | .vp1: |
500 | .vp1: |
501 | movzx eax,[schk] |
501 | movzx eax,[schk] |
502 | add eax,PMEM |
502 | add eax,PMEM |
503 | mov byte [eax],0x0C |
503 | mov byte [eax],0x0C |
504 | inc [schk] |
504 | inc [schk] |
505 | ret |
505 | ret |
506 | @@: bts [flags],5 |
506 | @@: bts [flags],5 |
507 | btr [flags],3 |
507 | btr [flags],3 |
508 | ret |
508 | ret |
509 | .sign: test [flags],(1 shl 5) |
509 | .sign: test [flags],(1 shl 5) |
510 | jnz .signprg |
510 | jnz .signprg |
511 | test [flags],(1 shl 11) |
511 | test [flags],(1 shl 11) |
512 | jnz .sign4b |
512 | jnz .sign4b |
513 | test [flags],(1 shl 12) |
513 | test [flags],(1 shl 12) |
514 | jnz .sign6b |
514 | jnz .sign6b |
515 | test [flags],(1 shl 9) |
515 | test [flags],(1 shl 9) |
516 | jnz .sign0 |
516 | jnz .sign0 |
517 | mov eax,0x0B |
517 | mov eax,0x0B |
518 | jmp .to_opcode |
518 | jmp .to_opcode |
519 | .sign4b: mov eax,0x4b |
519 | .sign4b: mov eax,0x4b |
520 | jmp .to_opcode |
520 | jmp .to_opcode |
521 | .sign6b: mov eax,0x6b |
521 | .sign6b: mov eax,0x6b |
522 | jmp .to_opcode |
522 | jmp .to_opcode |
523 | .signprg: |
523 | .signprg: |
524 | test [flags],(1 shl 8) |
524 | test [flags],(1 shl 8) |
525 | jz .sign0 |
525 | jz .sign0 |
526 | add [dop8],0x0B |
526 | add [dop8],0x0B |
527 | jmp .dop8 |
527 | jmp .dop8 |
528 | .sign0: test [flags],(1 shl 9) |
528 | .sign0: test [flags],(1 shl 9) |
529 | jz .sign1 |
529 | jz .sign1 |
530 | mov al,0x0B |
530 | mov al,0x0B |
531 | jmp .dop9 |
531 | jmp .dop9 |
532 | .sign1: test [flags],(1 shl 3) |
532 | .sign1: test [flags],(1 shl 3) |
533 | jnz @f |
533 | jnz @f |
534 | movzx eax,[schk] |
534 | movzx eax,[schk] |
535 | add eax,PMEM |
535 | add eax,PMEM |
536 | mov byte [eax],0x0B |
536 | mov byte [eax],0x0B |
537 | inc [schk] |
537 | inc [schk] |
538 | ret |
538 | ret |
539 | @@: btr [flags],5 |
539 | @@: btr [flags],5 |
540 | btr [flags],3 |
540 | btr [flags],3 |
541 | fld qword [S.X] |
541 | fld qword [S.X] |
542 | call ftos |
542 | call ftos |
543 | call draw_string |
543 | call draw_string |
544 | ret |
544 | ret |
545 | .up: test [flags],(1 shl 5) |
545 | .up: test [flags],(1 shl 5) |
546 | jnz .upprg |
546 | jnz .upprg |
547 | test [flags],(1 shl 3) |
547 | test [flags],(1 shl 3) |
548 | jnz .up0f |
548 | jnz .up0f |
549 | test [flags],(1 shl 4) |
549 | test [flags],(1 shl 4) |
550 | jnz .upK |
550 | jnz .upK |
551 | test [flags],(1 shl 11) |
551 | test [flags],(1 shl 11) |
552 | jnz .up4e |
552 | jnz .up4e |
553 | test [flags],(1 shl 12) |
553 | test [flags],(1 shl 12) |
554 | jnz .up6e |
554 | jnz .up6e |
555 | test [flags],(1 shl 9) |
555 | test [flags],(1 shl 9) |
556 | jnz .up0 |
556 | jnz .up0 |
557 | mov eax,0x0E |
557 | mov eax,0x0E |
558 | jmp .to_opcode |
558 | jmp .to_opcode |
559 | .up0f: mov eax,0x0F |
559 | .up0f: mov eax,0x0F |
560 | jmp .to_opcode |
560 | jmp .to_opcode |
561 | .up4e: mov eax,0x4e |
561 | .up4e: mov eax,0x4e |
562 | jmp .to_opcode |
562 | jmp .to_opcode |
563 | .up6e: mov eax,0x6e |
563 | .up6e: mov eax,0x6e |
564 | jmp .to_opcode |
564 | jmp .to_opcode |
565 | .upprg: |
565 | .upprg: |
566 | test [flags],(1 shl 8) |
566 | test [flags],(1 shl 8) |
567 | jz .up0 |
567 | jz .up0 |
568 | add [dop8],0x0E |
568 | add [dop8],0x0E |
569 | jmp .dop8 |
569 | jmp .dop8 |
570 | .up0: test [flags],(1 shl 9) |
570 | .up0: test [flags],(1 shl 9) |
571 | jz .up1 |
571 | jz .up1 |
572 | mov al,0x0E |
572 | mov al,0x0E |
573 | jmp .dop9 |
573 | jmp .dop9 |
574 | .up1: movzx eax,[schk] |
574 | .up1: movzx eax,[schk] |
575 | add eax,PMEM |
575 | add eax,PMEM |
576 | inc [schk] |
576 | inc [schk] |
577 | test [flags],(1 shl 3) |
577 | test [flags],(1 shl 3) |
578 | jnz @f |
578 | jnz @f |
579 | mov byte [eax],0x0E |
579 | mov byte [eax],0x0E |
580 | ret |
580 | ret |
581 | @@: mov byte [eax],0x0F |
581 | @@: mov byte [eax],0x0F |
582 | btr [flags],3 |
582 | btr [flags],3 |
583 | ret |
583 | ret |
584 | .upK: mov eax,0x3B |
584 | .upK: mov eax,0x3B |
585 | jmp .to_opcode |
585 | jmp .to_opcode |
586 | 586 | ||
587 | .xy: test [flags],(1 shl 5) |
587 | .xy: test [flags],(1 shl 5) |
588 | jnz .xyprg |
588 | jnz .xyprg |
589 | test [flags],(1 shl 3) |
589 | test [flags],(1 shl 3) |
590 | jnz .xy24 |
590 | jnz .xy24 |
591 | mov eax,0x14 |
591 | mov eax,0x14 |
592 | jmp .to_opcode |
592 | jmp .to_opcode |
593 | .xy24: mov eax,0x24 |
593 | .xy24: mov eax,0x24 |
594 | jmp .to_opcode |
594 | jmp .to_opcode |
595 | .xyprg: |
595 | .xyprg: |
596 | movzx eax,[schk] |
596 | movzx eax,[schk] |
597 | add eax,PMEM |
597 | add eax,PMEM |
598 | inc [schk] |
598 | inc [schk] |
599 | test [flags],(1 shl 3) |
599 | test [flags],(1 shl 3) |
600 | jnz @f |
600 | jnz @f |
601 | mov byte [eax],0x14 |
601 | mov byte [eax],0x14 |
602 | ret |
602 | ret |
603 | @@: mov byte [eax],0x24 |
603 | @@: mov byte [eax],0x24 |
604 | btr [flags],3 |
604 | btr [flags],3 |
605 | ret |
605 | ret |
606 | .min: test [flags],(1 shl 5) |
606 | .min: test [flags],(1 shl 5) |
607 | jnz .minprg |
607 | jnz .minprg |
608 | test [flags],(1 shl 3) |
608 | test [flags],(1 shl 3) |
609 | jnz .min21 |
609 | jnz .min21 |
610 | test [flags],(1 shl 9) |
610 | test [flags],(1 shl 9) |
611 | jnz .min0 |
611 | jnz .min0 |
612 | mov eax,0x11 |
612 | mov eax,0x11 |
613 | jmp .to_opcode |
613 | jmp .to_opcode |
614 | .min21: mov eax,0x21 |
614 | .min21: mov eax,0x21 |
615 | jmp .to_opcode |
615 | jmp .to_opcode |
616 | .minprg: |
616 | .minprg: |
617 | test [flags],(1 shl 8) |
617 | test [flags],(1 shl 8) |
618 | jz .min0 |
618 | jz .min0 |
619 | add [dop8],0x0F |
619 | add [dop8],0x0F |
620 | jmp .dop8 |
620 | jmp .dop8 |
621 | .min0: test [flags],(1 shl 9) |
621 | .min0: test [flags],(1 shl 9) |
622 | jz .min1 |
622 | jz .min1 |
623 | mov al,0x0F |
623 | mov al,0x0F |
624 | jmp .dop9 |
624 | jmp .dop9 |
625 | .min1: movzx eax,[schk] |
625 | .min1: movzx eax,[schk] |
626 | add eax,PMEM |
626 | add eax,PMEM |
627 | inc [schk] |
627 | inc [schk] |
628 | test [flags],(1 shl 3) |
628 | test [flags],(1 shl 3) |
629 | jnz @f |
629 | jnz @f |
630 | mov byte [eax],0x11 |
630 | mov byte [eax],0x11 |
631 | ret |
631 | ret |
632 | @@: mov byte [eax],0x21 |
632 | @@: mov byte [eax],0x21 |
633 | btr [flags],3 |
633 | btr [flags],3 |
634 | ret |
634 | ret |
635 | .div: test [flags],(1 shl 5) |
635 | .div: test [flags],(1 shl 5) |
636 | jnz .divprg |
636 | jnz .divprg |
637 | test [flags],(1 shl 3) |
637 | test [flags],(1 shl 3) |
638 | jnz .div23 |
638 | jnz .div23 |
639 | mov eax,0x13 |
639 | mov eax,0x13 |
640 | jmp .to_opcode |
640 | jmp .to_opcode |
641 | .div23: mov eax,0x23 |
641 | .div23: mov eax,0x23 |
642 | jmp .to_opcode |
642 | jmp .to_opcode |
643 | .divprg: |
643 | .divprg: |
644 | movzx eax,[schk] |
644 | movzx eax,[schk] |
645 | add eax,PMEM |
645 | add eax,PMEM |
646 | inc [schk] |
646 | inc [schk] |
647 | test [flags],(1 shl 3) |
647 | test [flags],(1 shl 3) |
648 | jnz @f |
648 | jnz @f |
649 | mov byte [eax],0x13 |
649 | mov byte [eax],0x13 |
650 | ret |
650 | ret |
651 | @@: mov byte [eax],0x23 |
651 | @@: mov byte [eax],0x23 |
652 | btr [flags],3 |
652 | btr [flags],3 |
653 | ret |
653 | ret |
654 | .plus: test [flags],(1 shl 5) |
654 | .plus: test [flags],(1 shl 5) |
655 | jnz .plusprg |
655 | jnz .plusprg |
656 | test [flags],(1 shl 3) |
656 | test [flags],(1 shl 3) |
657 | jnz .plus10 |
657 | jnz .plus10 |
658 | mov eax,0x10 |
658 | mov eax,0x10 |
659 | jmp .to_opcode |
659 | jmp .to_opcode |
660 | .plus10: mov eax,0x20 |
660 | .plus10: mov eax,0x20 |
661 | jmp .to_opcode |
661 | jmp .to_opcode |
662 | .plusprg: |
662 | .plusprg: |
663 | movzx eax,[schk] |
663 | movzx eax,[schk] |
664 | add eax,PMEM |
664 | add eax,PMEM |
665 | inc [schk] |
665 | inc [schk] |
666 | test [flags],(1 shl 3) |
666 | test [flags],(1 shl 3) |
667 | jnz @f |
667 | jnz @f |
668 | mov byte [eax],0x10 |
668 | mov byte [eax],0x10 |
669 | ret |
669 | ret |
670 | @@: mov byte [eax],0x20 |
670 | @@: mov byte [eax],0x20 |
671 | btr [flags],3 |
671 | btr [flags],3 |
672 | ret |
672 | ret |
673 | .x: test [flags],(1 shl 5) |
673 | .x: test [flags],(1 shl 5) |
674 | jnz .xprg |
674 | jnz .xprg |
675 | test [flags],(1 shl 3) |
675 | test [flags],(1 shl 3) |
676 | jnz .x22 |
676 | jnz .x22 |
677 | mov eax,0x12 |
677 | mov eax,0x12 |
678 | jmp .to_opcode |
678 | jmp .to_opcode |
679 | .x22: mov eax,0x22 |
679 | .x22: mov eax,0x22 |
680 | jmp .to_opcode |
680 | jmp .to_opcode |
681 | .xprg: |
681 | .xprg: |
682 | movzx eax,[schk] |
682 | movzx eax,[schk] |
683 | add eax,PMEM |
683 | add eax,PMEM |
684 | inc [schk] |
684 | inc [schk] |
685 | test [flags],(1 shl 3) |
685 | test [flags],(1 shl 3) |
686 | jnz @f |
686 | jnz @f |
687 | mov byte [eax],0x12 |
687 | mov byte [eax],0x12 |
688 | ret |
688 | ret |
689 | @@: mov byte [eax],0x22 |
689 | @@: mov byte [eax],0x22 |
690 | btr [flags],3 |
690 | btr [flags],3 |
691 | ret |
691 | ret |
692 | .dot: test [flags],(1 shl 5) |
692 | .dot: test [flags],(1 shl 5) |
693 | jnz .dotprg |
693 | jnz .dotprg |
694 | test [flags],(1 shl 3) |
694 | test [flags],(1 shl 3) |
695 | jnz .dot25 |
695 | jnz .dot25 |
696 | test [flags],(1 shl 11) |
696 | test [flags],(1 shl 11) |
697 | jnz .dot4a |
697 | jnz .dot4a |
698 | test [flags],(1 shl 12) |
698 | test [flags],(1 shl 12) |
699 | jnz .dot6a |
699 | jnz .dot6a |
700 | test [flags],(1 shl 9) |
700 | test [flags],(1 shl 9) |
701 | jnz .dot0 |
701 | jnz .dot0 |
702 | mov eax,0x0A |
702 | mov eax,0x0A |
703 | jmp .to_opcode |
703 | jmp .to_opcode |
704 | .dot25: mov eax,0x25 |
704 | .dot25: mov eax,0x25 |
705 | jmp .to_opcode |
705 | jmp .to_opcode |
706 | .dot4a: mov eax,0x4a |
706 | .dot4a: mov eax,0x4a |
707 | jmp .to_opcode |
707 | jmp .to_opcode |
708 | .dot6a: mov eax,0x6a |
708 | .dot6a: mov eax,0x6a |
709 | jmp .to_opcode |
709 | jmp .to_opcode |
710 | .dotprg: |
710 | .dotprg: |
711 | test [flags],(1 shl 8) |
711 | test [flags],(1 shl 8) |
712 | jz .dot0 |
712 | jz .dot0 |
713 | add [dop8],0x0A |
713 | add [dop8],0x0A |
714 | jmp .dop8 |
714 | jmp .dop8 |
715 | .dot0: test [flags],(1 shl 9) |
715 | .dot0: test [flags],(1 shl 9) |
716 | jz .dot1 |
716 | jz .dot1 |
717 | mov al,0x0A |
717 | mov al,0x0A |
718 | jmp .dop9 |
718 | jmp .dop9 |
719 | .dot1: movzx eax,[schk] |
719 | .dot1: movzx eax,[schk] |
720 | add eax,PMEM |
720 | add eax,PMEM |
721 | inc [schk] |
721 | inc [schk] |
722 | test [flags],(1 shl 3) |
722 | test [flags],(1 shl 3) |
723 | jnz @f |
723 | jnz @f |
724 | mov byte [eax],0x0A |
724 | mov byte [eax],0x0A |
725 | ret |
725 | ret |
726 | @@: mov byte [eax],0x25 |
726 | @@: mov byte [eax],0x25 |
727 | btr [flags],3 |
727 | btr [flags],3 |
728 | ret |
728 | ret |
729 | 729 | ||
730 | .0: test [flags],(1 shl 5) |
730 | .0: test [flags],(1 shl 5) |
731 | jnz .0prg |
731 | jnz .0prg |
732 | test [flags],(1 shl 3) |
732 | test [flags],(1 shl 3) |
733 | jnz .015 |
733 | jnz .015 |
734 | test [flags],(1 shl 11) |
734 | test [flags],(1 shl 11) |
735 | jnz .040 |
735 | jnz .040 |
736 | test [flags],(1 shl 12) |
736 | test [flags],(1 shl 12) |
737 | jnz .060 |
737 | jnz .060 |
738 | test [flags],(1 shl 9) |
738 | test [flags],(1 shl 9) |
739 | jnz .00 |
739 | jnz .00 |
740 | mov eax,0 |
740 | mov eax,0 |
741 | jmp .to_opcode |
741 | jmp .to_opcode |
742 | .015: mov eax,0x15 |
742 | .015: mov eax,0x15 |
743 | jmp .to_opcode |
743 | jmp .to_opcode |
744 | .040: mov eax,0x40 |
744 | .040: mov eax,0x40 |
745 | jmp .to_opcode |
745 | jmp .to_opcode |
746 | .060: mov eax,0x60 |
746 | .060: mov eax,0x60 |
747 | jmp .to_opcode |
747 | jmp .to_opcode |
748 | .0prg: |
748 | .0prg: |
749 | test [flags],(1 shl 8) |
749 | test [flags],(1 shl 8) |
750 | jz .00 |
750 | jz .00 |
751 | add [dop8],0x00 |
751 | add [dop8],0x00 |
752 | jmp .dop8 |
752 | jmp .dop8 |
753 | .00: test [flags],(1 shl 9) |
753 | .00: test [flags],(1 shl 9) |
754 | jz .01 |
754 | jz .01 |
755 | mov al,0 |
755 | mov al,0 |
756 | jmp .dop9 |
756 | jmp .dop9 |
757 | .01: movzx eax,[schk] |
757 | .01: movzx eax,[schk] |
758 | add eax,PMEM |
758 | add eax,PMEM |
759 | inc [schk] |
759 | inc [schk] |
760 | test [flags],(1 shl 4) |
760 | test [flags],(1 shl 4) |
761 | jz @f |
761 | jz @f |
762 | mov ebx,0 |
762 | mov ebx,0 |
763 | test [flags],(1 shl 8) |
763 | test [flags],(1 shl 8) |
764 | jnz .dop8 |
764 | jnz .dop8 |
765 | test [flags],(1 shl 9) |
765 | test [flags],(1 shl 9) |
766 | jnz .dop9 |
766 | jnz .dop9 |
767 | mov byte [eax],0x54 |
767 | mov byte [eax],0x54 |
768 | bts [flags],4 |
768 | bts [flags],4 |
769 | ret |
769 | ret |
770 | @@: test [flags],(1 shl 3) |
770 | @@: test [flags],(1 shl 3) |
771 | jnz @f |
771 | jnz @f |
772 | mov byte [eax],0x00 |
772 | mov byte [eax],0x00 |
773 | ret |
773 | ret |
774 | @@: mov byte [eax],0x15 |
774 | @@: mov byte [eax],0x15 |
775 | btr [flags],3 |
775 | btr [flags],3 |
776 | ret |
776 | ret |
777 | 777 | ||
778 | .dop8: movzx eax,[schk] |
778 | .dop8: movzx eax,[schk] |
779 | add eax,PMEM |
779 | add eax,PMEM |
780 | inc [schk] |
780 | inc [schk] |
781 | mov bl,[dop8] |
781 | mov bl,[dop8] |
782 | mov byte [eax],bl |
782 | mov byte [eax],bl |
783 | btr [flags],8 |
783 | btr [flags],8 |
784 | ret |
784 | ret |
785 | .dop9: cmp [mov3],0 |
785 | .dop9: cmp [mov3],0 |
786 | jne @f |
786 | jne @f |
787 | inc [mov3] |
787 | inc [mov3] |
788 | shl al,4 |
788 | shl al,4 |
789 | mov [dop9],al |
789 | mov [dop9],al |
790 | ret |
790 | ret |
791 | @@: mov [mov3],0 |
791 | @@: mov [mov3],0 |
792 | add al,[dop9] |
792 | add al,[dop9] |
793 | test [flags],(1 shl 5) |
793 | test [flags],(1 shl 5) |
794 | jz @f |
794 | jz @f |
795 | movzx ebx,[schk] |
795 | movzx ebx,[schk] |
796 | add ebx,PMEM |
796 | add ebx,PMEM |
797 | mov [ebx],al |
797 | mov [ebx],al |
798 | inc [schk] |
798 | inc [schk] |
799 | btr [flags],9 |
799 | btr [flags],9 |
800 | ret |
800 | ret |
801 | @@: mov [schk],al |
801 | @@: mov [schk],al |
802 | btr [flags],9 |
802 | btr [flags],9 |
803 | call draw_prog |
803 | call draw_prog |
804 | ret |
804 | ret |
805 | 805 | ||
806 | align 4 |
806 | align 4 |
807 | .to_opcode: |
807 | .to_opcode: |
808 | shl eax,2 |
808 | shl eax,2 |
809 | add eax,OPCODEtable |
809 | add eax,OPCODEtable |
810 | mov ebx,[eax] |
810 | mov ebx,[eax] |
811 | jmp ebx |
811 | jmp ebx |
812 | 812 | ||
813 | dop8 db 0 |
813 | dop8 db 0 |
814 | dop9 db 0 |
814 | dop9 db 0 |
815 | mov3 db 0 |
815 | mov3 db 0 |
816 | 816 | ||
817 | 817 | ||
818 | _1_: buttabnum 1,0x16,0x41,0x61,0 |
818 | _1_: buttabnum 1,0x16,0x41,0x61,0 |
819 | _2_: buttabnum 2,0x17,0x42,0x62,0 |
819 | _2_: buttabnum 2,0x17,0x42,0x62,0 |
820 | _3_: buttabnum 3,0x18,0x43,0x63,0 |
820 | _3_: buttabnum 3,0x18,0x43,0x63,0 |
821 | _4_: buttabnum 4,0x19,0x44,0x64,0x31 |
821 | _4_: buttabnum 4,0x19,0x44,0x64,0x31 |
822 | _5_: buttabnum 5,0x1A,0x45,0x65,0x32 |
822 | _5_: buttabnum 5,0x1A,0x45,0x65,0x32 |
823 | _6_: buttabnum 6,0x1B,0x46,0x66,0 |
823 | _6_: buttabnum 6,0x1B,0x46,0x66,0 |
824 | _7_: buttabnum 7,0x1C,0x47,0x67,0x34 |
824 | _7_: buttabnum 7,0x1C,0x47,0x67,0x34 |
825 | _8_: buttabnum 8,0x1D,0x48,0x68,0x35 |
825 | _8_: buttabnum 8,0x1D,0x48,0x68,0x35 |
826 | _9_: buttabnum 9,0x1E,0x49,0x69,0x36 |
826 | _9_: buttabnum 9,0x1E,0x49,0x69,0x36 |
827 | 827 | ||
828 | 828 | ||
829 | 829 | ||
830 | 830 | ||
831 | align 4 |
831 | align 4 |
832 | stof: |
832 | stof: |
833 | mov esi,string |
833 | mov esi,string |
834 | inc esi |
834 | inc esi |
835 | cmp word [esi],0x2030 |
835 | cmp word [esi],0x2030 |
836 | je .null |
836 | je .null |
837 | mov dword [buf],0 |
837 | mov dword [buf],0 |
838 | mov dword [buf+4],0 |
838 | mov dword [buf+4],0 |
839 | mov word [buf+8],0 |
839 | mov word [buf+8],0 |
840 | xor ecx,ecx |
840 | xor ecx,ecx |
841 | @@: cmp byte [esi+ecx],'.' |
841 | @@: cmp byte [esi+ecx],'.' |
842 | je .dot |
842 | je .dot |
843 | cmp byte [esi+ecx],0x20 |
843 | cmp byte [esi+ecx],0x20 |
844 | je .int |
844 | je .int |
845 | inc ecx |
845 | inc ecx |
846 | cmp ecx,8 |
846 | cmp ecx,8 |
847 | jne @b |
847 | jne @b |
848 | .int: dec ecx |
848 | .int: dec ecx |
849 | call .tobcd |
849 | call .tobcd |
850 | fbld [buf] |
850 | fbld [buf] |
851 | jmp .tosign |
851 | jmp .tosign |
852 | 852 | ||
853 | .dot: push ecx |
853 | .dot: push ecx |
854 | dec ecx |
854 | dec ecx |
855 | call .tobcd |
855 | call .tobcd |
856 | fbld [buf] |
856 | fbld [buf] |
857 | pop ecx |
857 | pop ecx |
858 | add esi,ecx |
858 | add esi,ecx |
859 | inc esi |
859 | inc esi |
860 | mov ebx,ecx |
860 | mov ebx,ecx |
861 | dec ebx |
861 | dec ebx |
862 | xor ecx,ecx |
862 | xor ecx,ecx |
863 | @@: cmp byte [esi+ecx],0x20 |
863 | @@: cmp byte [esi+ecx],0x20 |
864 | je @f |
864 | je @f |
865 | cmp ebx,8 |
865 | cmp ebx,8 |
866 | je @f |
866 | je @f |
867 | inc ecx |
867 | inc ecx |
868 | inc ebx |
868 | inc ebx |
869 | jmp @b |
869 | jmp @b |
870 | @@: cmp ecx,0 |
870 | @@: cmp ecx,0 |
871 | je .tosign |
871 | je .tosign |
872 | push ecx |
872 | push ecx |
873 | dec ecx |
873 | dec ecx |
874 | mov dword [buf],0 |
874 | mov dword [buf],0 |
875 | mov dword [buf+4],0 |
875 | mov dword [buf+4],0 |
876 | mov word [buf+8],0 |
876 | mov word [buf+8],0 |
877 | call .tobcd |
877 | call .tobcd |
878 | fbld [buf] |
878 | fbld [buf] |
879 | pop ecx |
879 | pop ecx |
880 | mov [perem],10 |
880 | mov [perem],10 |
881 | @@: fidiv [perem] |
881 | @@: fidiv [perem] |
882 | loop @b |
882 | loop @b |
883 | faddp |
883 | faddp |
884 | jmp .tosign |
884 | jmp .tosign |
885 | 885 | ||
886 | 886 | ||
887 | .tobcd: |
887 | .tobcd: |
888 | mov edi,buf |
888 | mov edi,buf |
889 | @@: mov al,[esi+ecx] |
889 | @@: mov al,[esi+ecx] |
890 | sub al,48 |
890 | sub al,48 |
891 | test ecx,ecx |
891 | test ecx,ecx |
892 | jz @f |
892 | jz @f |
893 | shl al,4 |
893 | shl al,4 |
894 | mov ah,[esi+ecx-1] |
894 | mov ah,[esi+ecx-1] |
895 | sub ah,48 |
895 | sub ah,48 |
896 | shr ax,4 |
896 | shr ax,4 |
897 | mov [edi],al |
897 | mov [edi],al |
898 | inc edi |
898 | inc edi |
899 | dec ecx |
899 | dec ecx |
900 | jz .tobcd1 |
900 | jz .tobcd1 |
901 | dec ecx |
901 | dec ecx |
902 | jnz @b |
902 | jnz @b |
903 | mov al,[esi] |
903 | mov al,[esi] |
904 | sub al,48 |
904 | sub al,48 |
905 | @@: mov [edi],al |
905 | @@: mov [edi],al |
906 | .tobcd1: |
906 | .tobcd1: |
907 | ret |
907 | ret |
908 | 908 | ||
909 | 909 | ||
910 | .tosign: |
910 | .tosign: |
911 | cmp byte [string],'-' |
911 | cmp byte [string],'-' |
912 | jne @f |
912 | jne @f |
913 | fchs |
913 | fchs |
914 | @@: cmp byte [string+12],0x20 |
914 | @@: cmp byte [string+12],0x20 |
915 | je .ret |
915 | je .ret |
916 | cmp byte [string+12],0x30 |
916 | cmp byte [string+12],0x30 |
917 | jne @f |
917 | jne @f |
918 | cmp byte [string+11],0x30 |
918 | cmp byte [string+11],0x30 |
919 | je .ret |
919 | je .ret |
920 | @@: mov al,[string+12] |
920 | @@: mov al,[string+12] |
921 | sub al,48 |
921 | sub al,48 |
922 | mov ah,[string+11] |
922 | mov ah,[string+11] |
923 | sub ah,48 |
923 | sub ah,48 |
924 | shl al,4 |
924 | shl al,4 |
925 | shr ax,4 |
925 | shr ax,4 |
926 | mov [buf],al |
926 | mov [buf],al |
927 | mov dword [buf+1],0 |
927 | mov dword [buf+1],0 |
928 | mov dword [buf+5],0 |
928 | mov dword [buf+5],0 |
929 | fbld [buf] |
929 | fbld [buf] |
930 | fistp [perem] |
930 | fistp [perem] |
931 | mov ecx,[perem] |
931 | mov ecx,[perem] |
932 | mov [perem],10 |
932 | mov [perem],10 |
933 | cmp byte [string+10],'-' |
933 | cmp byte [string+10],'-' |
934 | je .@@f |
934 | je .@@f |
935 | @@: fimul [perem] |
935 | @@: fimul [perem] |
936 | loop @b |
936 | loop @b |
937 | ret |
937 | ret |
938 | .@@f: fidiv [perem] |
938 | .@@f: fidiv [perem] |
939 | loop .@@f |
939 | loop .@@f |
940 | .ret: ret |
940 | .ret: ret |
941 | .null: fldz |
941 | .null: fldz |
942 | ret |
942 | ret |
943 | 943 | ||
944 | align 4 |
944 | align 4 |
945 | ftos: |
945 | ftos: |
946 | test [flags],(1 shl 5) |
946 | test [flags],(1 shl 5) |
947 | jnz .prg |
947 | jnz .prg |
948 | mov esi,string |
948 | mov esi,string |
949 | mov dword [esi],0x20202020 |
949 | mov dword [esi],0x20202020 |
950 | mov dword [esi+4],0x20202020 |
950 | mov dword [esi+4],0x20202020 |
951 | mov dword [esi+8],0x20202020 |
951 | mov dword [esi+8],0x20202020 |
952 | mov byte [esi+12],0x20 |
952 | mov byte [esi+12],0x20 |
953 | ; fld st0 |
953 | ; fld st0 |
954 | ; fxtract |
954 | ; fxtract |
955 | ; fstp st0 |
955 | ; fstp st0 |
956 | ; fabs |
956 | ; fabs |
957 | ; fistp [perem] |
957 | ; fistp [perem] |
958 | ; mov eax,[perem] |
958 | ; mov eax,[perem] |
959 | ; cmp eax,0x1a |
959 | ; cmp eax,0x1a |
960 | ; jg .1 |
960 | ; jg .1 |
961 | ; stdcall FpuFLtoA,0,8,buf2,SRC1_FPU or SRC1_REAL; or STR_SCI |
961 | ; stdcall FpuFLtoA,0,8,buf2,SRC1_FPU or SRC1_REAL; or STR_SCI |
962 | ; mov ecx,9 |
962 | ; mov ecx,9 |
963 | ; mov esi,string |
963 | ; mov esi,string |
964 | ; mov edi,buf2 |
964 | ; mov edi,buf2 |
965 | ;@@: mov al,[edi] |
965 | ;@@: mov al,[edi] |
966 | ; test al,al |
966 | ; test al,al |
967 | ; jz @f |
967 | ; jz @f |
968 | ; mov [esi],al |
968 | ; mov [esi],al |
969 | ; inc esi |
969 | ; inc esi |
970 | ; inc edi |
970 | ; inc edi |
971 | ; loop @b |
971 | ; loop @b |
972 | ;@@: ret |
972 | ;@@: ret |
973 | 973 | ||
974 | .1: stdcall FpuFLtoA,0,8,buf2,SRC1_FPU or SRC1_REAL or STR_SCI |
974 | .1: stdcall FpuFLtoA,0,8,buf2,SRC1_FPU or SRC1_REAL or STR_SCI |
975 | mov ecx,10 |
975 | mov ecx,10 |
976 | mov esi,string |
976 | mov esi,string |
977 | mov edi,buf2 |
977 | mov edi,buf2 |
978 | @@: mov al,[edi] |
978 | @@: mov al,[edi] |
979 | test al,al |
979 | test al,al |
980 | jz .ret |
980 | jz .ret |
981 | mov [esi],al |
981 | mov [esi],al |
982 | inc esi |
982 | inc esi |
983 | inc edi |
983 | inc edi |
984 | loop @b |
984 | loop @b |
985 | ; add edi,9 |
985 | ; add edi,9 |
986 | @@: cmp byte [edi],0 |
986 | @@: cmp byte [edi],0 |
987 | je @f |
987 | je @f |
988 | inc edi |
988 | inc edi |
989 | jmp @b |
989 | jmp @b |
990 | @@: mov ax,[edi-2] |
990 | @@: mov ax,[edi-2] |
991 | mov [string+11],ax |
991 | mov [string+11],ax |
992 | mov al,[edi-5] |
992 | mov al,[edi-5] |
993 | mov [string+10],al |
993 | mov [string+10],al |
994 | .ret: |
994 | .ret: |
995 | ; cmp word [string+11],0x2020 |
995 | ; cmp word [string+11],0x2020 |
996 | ; je .ret2 |
996 | ; je .ret2 |
997 | cmp byte [string+10],'-' |
997 | cmp byte [string+10],'-' |
998 | je .ret2 |
998 | je .ret2 |
999 | mov ax,[string+11] |
999 | mov ax,[string+11] |
1000 | sub ax,0x3030 |
1000 | sub ax,0x3030 |
1001 | xchg ah,al |
1001 | xchg ah,al |
1002 | shl al,4 |
1002 | shl al,4 |
1003 | shr ax,4 |
1003 | shr ax,4 |
1004 | cmp al,7 |
1004 | cmp al,7 |
1005 | jge .ret2 |
1005 | jge .ret2 |
1006 | mov word [string+10],' ' |
1006 | mov word [string+10],' ' |
1007 | mov byte [string+12],' ' |
1007 | mov byte [string+12],' ' |
1008 | cmp al,0 |
1008 | cmp al,0 |
1009 | je .ret2 |
1009 | je .ret2 |
1010 | xor edx,edx |
1010 | xor edx,edx |
1011 | @@: mov bl,[string+2+edx] |
1011 | @@: mov bl,[string+2+edx] |
1012 | mov bh,[string+2+edx+1] |
1012 | mov bh,[string+2+edx+1] |
1013 | xchg bh,bl |
1013 | xchg bh,bl |
1014 | mov [string+2+edx],bx |
1014 | mov [string+2+edx],bx |
1015 | inc edx |
1015 | inc edx |
1016 | dec al |
1016 | dec al |
1017 | jnz @b |
1017 | jnz @b |
1018 | .ret2: mov ecx,7 |
1018 | .ret2: mov ecx,7 |
1019 | @@: cmp byte [string+2+ecx],'0' |
1019 | @@: cmp byte [string+2+ecx],'0' |
1020 | jne @f |
1020 | jne @f |
1021 | mov byte [string+2+ecx],' ' |
1021 | mov byte [string+2+ecx],' ' |
1022 | loop @b |
1022 | loop @b |
1023 | @@: cmp byte [string+2+ecx],'.' |
1023 | @@: cmp byte [string+2+ecx],'.' |
1024 | jne @f |
1024 | jne @f |
1025 | mov byte [string+2+ecx],' ' |
1025 | mov byte [string+2+ecx],' ' |
1026 | @@: cmp byte [string+10],'+' |
1026 | @@: cmp byte [string+10],'+' |
1027 | jne @f |
1027 | jne @f |
1028 | mov byte [string+10],' ' |
1028 | mov byte [string+10],' ' |
1029 | @@: |
1029 | @@: |
1030 | ret |
1030 | ret |
1031 | .toascii: |
1031 | .toascii: |
1032 | shl ax,4 |
1032 | shl ax,4 |
1033 | shr al,4 |
1033 | shr al,4 |
1034 | cmp al,10 |
1034 | cmp al,10 |
1035 | sbb al,69h |
1035 | sbb al,69h |
1036 | das |
1036 | das |
1037 | rol ax,8 |
1037 | rol ax,8 |
1038 | cmp al,10 |
1038 | cmp al,10 |
1039 | sbb al,69h |
1039 | sbb al,69h |
1040 | das |
1040 | das |
1041 | ret |
1041 | ret |
1042 | .prg: mov eax,0x20202020 |
1042 | .prg: mov eax,0x20202020 |
1043 | mov dword [string],eax |
1043 | mov dword [string],eax |
1044 | mov dword [string+4],eax |
1044 | mov dword [string+4],eax |
1045 | mov dword [string+8],eax |
1045 | mov dword [string+8],eax |
1046 | xor eax,eax |
1046 | xor eax,eax |
1047 | mov al,[schk] |
1047 | mov al,[schk] |
1048 | mov ebx,eax |
1048 | mov ebx,eax |
1049 | call .toascii |
1049 | call .toascii |
1050 | mov [string+11],ax |
1050 | mov [string+11],ax |
1051 | cmp [schk],3 |
1051 | cmp [schk],3 |
1052 | jb @f |
1052 | jb @f |
1053 | movzx eax,byte [PMEM+ebx-3] |
1053 | movzx eax,byte [PMEM+ebx-3] |
1054 | call .toascii |
1054 | call .toascii |
1055 | mov [string+8],ax |
1055 | mov [string+8],ax |
1056 | @@: cmp [schk],2 |
1056 | @@: cmp [schk],2 |
1057 | jb @f |
1057 | jb @f |
1058 | movzx eax,byte [PMEM+ebx-2] |
1058 | movzx eax,byte [PMEM+ebx-2] |
1059 | call .toascii |
1059 | call .toascii |
1060 | mov [string+5],ax |
1060 | mov [string+5],ax |
1061 | @@: cmp [schk],1 |
1061 | @@: cmp [schk],1 |
1062 | jb @f |
1062 | jb @f |
1063 | movzx eax,byte [PMEM+ebx-1] |
1063 | movzx eax,byte [PMEM+ebx-1] |
1064 | call .toascii |
1064 | call .toascii |
1065 | mov [string+2],ax |
1065 | mov [string+2],ax |
1066 | @@: |
1066 | @@: |
1067 | ret |
1067 | ret |
1068 | 1068 | ||
1069 | 1069 | ||
1070 | ; ********************************************* |
1070 | ; ********************************************* |
1071 | ; ******* WINDOW DEFINITIONS AND DRAW ********* |
1071 | ; ******* WINDOW DEFINITIONS AND DRAW ********* |
1072 | ; ********************************************* |
1072 | ; ********************************************* |
1073 | 1073 | ||
1074 | draw_window: |
1074 | draw_window: |
1075 | mcall 12,1 |
1075 | mcall 12,1 |
1076 | 1076 | ||
1077 | mcall 48,3,sc,sizeof.system_colors |
1077 | mcall 48,3,sc,sizeof.system_colors |
1078 | 1078 | ||
1079 | mov edx,[sc.work] |
1079 | mov edx,[sc.work] |
1080 | or edx,0x34000000 |
1080 | or edx,0x34000000 |
1081 | mov ecx,200 |
1081 | mov ecx,200 |
1082 | shl ecx,16 |
1082 | shl ecx,16 |
1083 | add ecx,[scin_height] |
1083 | add ecx,[scin_height] |
1084 | add ecx,343 |
1084 | add ecx,343 |
1085 | mcall 0,160 shl 16+485,,,,title |
1085 | mcall 0,160 shl 16+485,,,,title |
1086 | 1086 | ||
1087 | mov ebp,smesh |
1087 | mov ebp,smesh |
1088 | mcall 65,bmp_file+8,185*65536+262,2*65536+75,4,palitra |
1088 | mcall 65,bmp_file+8,185*65536+262,2*65536+75,4,palitra |
1089 | 1089 | ||
1090 | mcall 13,13*65536+122,24*65536+20,0xffffff |
1090 | mcall 13,13*65536+122,24*65536+20,0xffffff |
1091 | 1091 | ||
1092 | call draw_string |
1092 | call draw_string |
1093 | 1093 | ||
1094 | mcall 13,137*65536+32,48*65536+12,0x888888 |
1094 | mcall 13,137*65536+32,48*65536+12,0x888888 |
1095 | 1095 | ||
1096 | call set_but |
1096 | call set_but |
1097 | call draw_registers |
1097 | call draw_registers |
1098 | call draw_stack |
1098 | call draw_stack |
1099 | call draw_prog |
1099 | call draw_prog |
1100 | 1100 | ||
1101 | mcall 8,176*65536+11,61*65536+10,35,0xdadada |
1101 | mcall 8,176*65536+11,61*65536+10,35,0xdadada |
1102 | 1102 | ||
1103 | mov edi,[sc.work] |
1103 | mov edi,[sc.work] |
1104 | or edi,0x34000000 |
1104 | or edi,0x34000000 |
1105 | mcall 4,133*65536+63,0x81000000,txt.perek |
1105 | mcall 4,133*65536+63,0x81000000,txt.perek |
1106 | mcall ,403*65536+4,,txt.prog |
1106 | mcall ,403*65536+4,,txt.prog |
1107 | mcall ,403*65536+12,,txt.prog1 |
1107 | mcall ,403*65536+12,,txt.prog1 |
1108 | mcall ,380*65536+323,,txt.sk |
1108 | mcall ,380*65536+323,,txt.sk |
1109 | 1109 | ||
1110 | if 0 |
1110 | if 0 |
1111 | mov [scroll_bar_data_vertical.all_redraw],1 |
1111 | mov [scroll_bar_data_vertical.all_redraw],1 |
1112 | push dword scroll_bar_data_vertical |
1112 | push dword scroll_bar_data_vertical |
1113 | call [scrollbar_ver_draw] |
1113 | call [scrollbar_ver_draw] |
1114 | mov [scroll_bar_data_vertical.all_redraw],0 |
1114 | mov [scroll_bar_data_vertical.all_redraw],0 |
1115 | endf |
1115 | endf |
1116 | push dword edit1 |
1116 | push dword edit1 |
1117 | call [edit_box_draw] |
1117 | call [edit_box_draw] |
1118 | 1118 | ||
1119 | ;CK |
1119 | ;CK |
1120 | call draw_schk |
1120 | call draw_schk |
1121 | 1121 | ||
1122 | ;®¡®§ 票ï ॣ¨áâ஢ |
1122 | ;®¡®§ 票ï ॣ¨áâ஢ |
1123 | mcall 4,240*65536+4,0x81000000,txt.regs |
1123 | mcall 4,240*65536+4,0x81000000,txt.regs |
1124 | mov word [perem],"0:" |
1124 | mov word [perem],"0:" |
1125 | mov byte [perem+2],0 |
1125 | mov byte [perem+2],0 |
1126 | mov ebx,210*65536+20 |
1126 | mov ebx,210*65536+20 |
1127 | mov edx,perem |
1127 | mov edx,perem |
1128 | push dword 15 |
1128 | push dword 15 |
1129 | @@: cmp dword [esp],5 |
1129 | @@: cmp dword [esp],5 |
1130 | je @f |
1130 | je @f |
1131 | .prevr: int 0x40 |
1131 | .prevr: int 0x40 |
1132 | add ebx,12 |
1132 | add ebx,12 |
1133 | inc byte [perem] |
1133 | inc byte [perem] |
1134 | dec dword [esp] |
1134 | dec dword [esp] |
1135 | jnz @b |
1135 | jnz @b |
1136 | jmp .nextr |
1136 | jmp .nextr |
1137 | @@: add byte [perem],7 |
1137 | @@: add byte [perem],7 |
1138 | jmp .prevr |
1138 | jmp .prevr |
1139 | .nextr: add esp,4 |
1139 | .nextr: add esp,4 |
1140 | 1140 | ||
1141 | ;®¡®§ 票ï á⥪ |
1141 | ;®¡®§ 票ï á⥪ |
1142 | mcall 4,240*65536+220,0x81000000,txt.stk |
1142 | mcall 4,240*65536+220,0x81000000,txt.stk |
1143 | mov word [perem],"T:" |
1143 | mov word [perem],"T:" |
1144 | mov byte [perem+2],0 |
1144 | mov byte [perem+2],0 |
1145 | mov ebx,210*65536+240 |
1145 | mov ebx,210*65536+240 |
1146 | mov edx,perem |
1146 | mov edx,perem |
1147 | push dword 5 |
1147 | push dword 5 |
1148 | .firsts: cmp dword [esp],4 |
1148 | .firsts: cmp dword [esp],4 |
1149 | jne @f |
1149 | jne @f |
1150 | mov byte [perem],"Z" |
1150 | mov byte [perem],"Z" |
1151 | jmp .prevs |
1151 | jmp .prevs |
1152 | @@: cmp dword [esp],3 |
1152 | @@: cmp dword [esp],3 |
1153 | jne @f |
1153 | jne @f |
1154 | mov byte [perem],"Y" |
1154 | mov byte [perem],"Y" |
1155 | jmp .prevs |
1155 | jmp .prevs |
1156 | @@: cmp dword [esp],2 |
1156 | @@: cmp dword [esp],2 |
1157 | jne @f |
1157 | jne @f |
1158 | mov byte [perem],"X" |
1158 | mov byte [perem],"X" |
1159 | jmp .prevs |
1159 | jmp .prevs |
1160 | @@: cmp dword [esp],1 |
1160 | @@: cmp dword [esp],1 |
1161 | jne .prevs |
1161 | jne .prevs |
1162 | mov dword [perem],"X1" |
1162 | mov dword [perem],"X1" |
1163 | .prevs: int 0x40 |
1163 | .prevs: int 0x40 |
1164 | add ebx,12 |
1164 | add ebx,12 |
1165 | dec dword [esp] |
1165 | dec dword [esp] |
1166 | jnz .firsts |
1166 | jnz .firsts |
1167 | .nexts: add esp,4 |
1167 | .nexts: add esp,4 |
1168 | 1168 | ||
1169 | mcall 12,2 |
1169 | mcall 12,2 |
1170 | ret |
1170 | ret |
1171 | 1171 | ||
1172 | align 4 |
1172 | align 4 |
1173 | draw_string: |
1173 | draw_string: |
1174 | ; mov edi,[sc.work] |
1174 | ; mov edi,[sc.work] |
1175 | or edi,0x34ffffff |
1175 | or edi,0x34ffffff |
1176 | mov edx,edi |
1176 | mov edx,edi |
1177 | mcall 13,20*65536+105,30*65536+7 |
1177 | mcall 13,20*65536+105,30*65536+7 |
1178 | mcall 4,20*65536+30,0x900000ff,string,, |
1178 | mcall 4,20*65536+30,0x900000ff,string,, |
1179 | ret |
1179 | ret |
1180 | 1180 | ||
1181 | align 4 |
1181 | align 4 |
1182 | draw_schk: |
1182 | draw_schk: |
1183 | test [flags],(1 shl 13) |
1183 | test [flags],(1 shl 13) |
1184 | jnz .ret |
1184 | jnz .ret |
1185 | mov edi,[sc.work] |
1185 | mov edi,[sc.work] |
1186 | or edi,0x34000000 |
1186 | or edi,0x34000000 |
1187 | movzx ecx,[schk] |
1187 | movzx ecx,[schk] |
1188 | mcall 47,0x020100,,400*65536+323,0x50000000, |
1188 | mcall 47,0x020100,,400*65536+323,0x50000000, |
1189 | .ret: |
1189 | .ret: |
1190 | ret |
1190 | ret |
1191 | 1191 | ||
1192 | align 4 |
1192 | align 4 |
1193 | set_but: |
1193 | set_but: |
1194 | mov ecx,34 |
1194 | mov ecx,34 |
1195 | mov eax,8 |
1195 | mov eax,8 |
1196 | @@: push ecx |
1196 | @@: push ecx |
1197 | lea ebx,[ecx+0x80000000+1] |
1197 | lea ebx,[ecx+0x80000000+1] |
1198 | int 0x40 |
1198 | int 0x40 |
1199 | pop ecx |
1199 | pop ecx |
1200 | loop @b |
1200 | loop @b |
1201 | 1201 | ||
1202 | xor edi,edi |
1202 | xor edi,edi |
1203 | mov esi,0xffffff |
1203 | mov esi,0xffffff |
1204 | bt [flags],30 |
1204 | bt [flags],30 |
1205 | jnc @f |
1205 | jnc @f |
1206 | mov esi,0x0 |
1206 | mov esi,0x0 |
1207 | @@: mcall 8,140*65536+7,50*65536+7,32 |
1207 | @@: mcall 8,140*65536+7,50*65536+7,32 |
1208 | mov esi,0x0 |
1208 | mov esi,0x0 |
1209 | add ebx,9*65536 |
1209 | add ebx,9*65536 |
1210 | inc edx |
1210 | inc edx |
1211 | bt [flags],30 |
1211 | bt [flags],30 |
1212 | jnc @f |
1212 | jnc @f |
1213 | bt [flags],31 |
1213 | bt [flags],31 |
1214 | jc @f |
1214 | jc @f |
1215 | mov esi,0xffffff |
1215 | mov esi,0xffffff |
1216 | @@: mcall |
1216 | @@: mcall |
1217 | mov esi,0 |
1217 | mov esi,0 |
1218 | add ebx,9*65536 |
1218 | add ebx,9*65536 |
1219 | inc edx |
1219 | inc edx |
1220 | bt [flags],30 |
1220 | bt [flags],30 |
1221 | jnc @f |
1221 | jnc @f |
1222 | bt [flags],31 |
1222 | bt [flags],31 |
1223 | jnc @f |
1223 | jnc @f |
1224 | mov esi,0xffffff |
1224 | mov esi,0xffffff |
1225 | @@: mcall |
1225 | @@: mcall |
1226 | 1226 | ||
1227 | mov ecx,30 |
1227 | mov ecx,30 |
1228 | push ecx |
1228 | push ecx |
1229 | mov ecx,89*65536+22 |
1229 | mov ecx,89*65536+22 |
1230 | .00: mov ebx,8*65536+27 |
1230 | .00: mov ebx,8*65536+27 |
1231 | .0: pop eax |
1231 | .0: pop eax |
1232 | lea edx,[eax+(1 shl 30) + 1] |
1232 | lea edx,[eax+(1 shl 30) + 1] |
1233 | push eax |
1233 | push eax |
1234 | mcall 8,,, |
1234 | mcall 8,,, |
1235 | mov eax,ecx |
1235 | mov eax,ecx |
1236 | pop ecx |
1236 | pop ecx |
1237 | dec ecx |
1237 | dec ecx |
1238 | jz .ret |
1238 | jz .ret |
1239 | push ecx |
1239 | push ecx |
1240 | cmp ecx,5 |
1240 | cmp ecx,5 |
1241 | je .1 |
1241 | je .1 |
1242 | cmp ecx,10 |
1242 | cmp ecx,10 |
1243 | je .1 |
1243 | je .1 |
1244 | cmp ecx,15 |
1244 | cmp ecx,15 |
1245 | je .1 |
1245 | je .1 |
1246 | cmp ecx,20 |
1246 | cmp ecx,20 |
1247 | je .1 |
1247 | je .1 |
1248 | cmp ecx,25 |
1248 | cmp ecx,25 |
1249 | je .1 |
1249 | je .1 |
1250 | add ebx,36*65536 |
1250 | add ebx,36*65536 |
1251 | mov ecx,eax |
1251 | mov ecx,eax |
1252 | jmp .0 |
1252 | jmp .0 |
1253 | .1: add eax,42*65536 |
1253 | .1: add eax,42*65536 |
1254 | mov ecx,eax |
1254 | mov ecx,eax |
1255 | jmp .00 |
1255 | jmp .00 |
1256 | .ret: |
1256 | .ret: |
1257 | ret |
1257 | ret |
1258 | 1258 | ||
1259 | align 4 |
1259 | align 4 |
1260 | draw_registers: |
1260 | draw_registers: |
1261 | test [flags],(1 shl 13) |
1261 | test [flags],(1 shl 13) |
1262 | jnz .ret |
1262 | jnz .ret |
1263 | mov esi,R.0 |
1263 | mov esi,R.0 |
1264 | mov ecx,15 |
1264 | mov ecx,15 |
1265 | mov edx,[sc.work] |
1265 | mov edx,[sc.work] |
1266 | or edx,0x34000000 |
1266 | or edx,0x34000000 |
1267 | push edx |
1267 | push edx |
1268 | mov ebx,220*65536+150 |
1268 | mov ebx,220*65536+150 |
1269 | push ebx |
1269 | push ebx |
1270 | mov ebx,20*65536+9 |
1270 | mov ebx,20*65536+9 |
1271 | push ebx |
1271 | push ebx |
1272 | push esi ecx |
1272 | push esi ecx |
1273 | @@: call .ftoa |
1273 | @@: call .ftoa |
1274 | mov ebx,[esp+12] |
1274 | mov ebx,[esp+12] |
1275 | mov ecx,[esp+8] |
1275 | mov ecx,[esp+8] |
1276 | mov edx,[esp+16] |
1276 | mov edx,[esp+16] |
1277 | mcall 13 |
1277 | mcall 13 |
1278 | mov ebx,[esp+12] |
1278 | mov ebx,[esp+12] |
1279 | mov eax,[esp+8] |
1279 | mov eax,[esp+8] |
1280 | shr eax,16 |
1280 | shr eax,16 |
1281 | mov bx,ax |
1281 | mov bx,ax |
1282 | mov ecx,0;[esp+16] |
1282 | mov ecx,0;[esp+16] |
1283 | add ecx,0x80000000 |
1283 | add ecx,0x80000000 |
1284 | mov edx,buf2 |
1284 | mov edx,buf2 |
1285 | mcall 4 |
1285 | mcall 4 |
1286 | dec dword [esp] |
1286 | dec dword [esp] |
1287 | jz @f |
1287 | jz @f |
1288 | add dword [esp+4],8 |
1288 | add dword [esp+4],8 |
1289 | mov esi,[esp+4] |
1289 | mov esi,[esp+4] |
1290 | add dword [esp+8],12*65536 |
1290 | add dword [esp+8],12*65536 |
1291 | jmp @b |
1291 | jmp @b |
1292 | @@: add esp,20 |
1292 | @@: add esp,20 |
1293 | .ret: |
1293 | .ret: |
1294 | ret |
1294 | ret |
1295 | 1295 | ||
1296 | .ftoa: |
1296 | .ftoa: |
1297 | fld qword [esi] |
1297 | fld qword [esi] |
1298 | fld st0 |
1298 | fld st0 |
1299 | fabs |
1299 | fabs |
1300 | fxtract |
1300 | fxtract |
1301 | fstp st0 |
1301 | fstp st0 |
1302 | fabs |
1302 | fabs |
1303 | fistp [perem] |
1303 | fistp [perem] |
1304 | mov eax,[perem] |
1304 | mov eax,[perem] |
1305 | cmp eax,0x1a+16383 |
1305 | cmp eax,0x1a+16383 |
1306 | jge @f |
1306 | jge @f |
1307 | cmp eax,0x1a |
1307 | cmp eax,0x1a |
1308 | jge @f |
1308 | jge @f |
1309 | stdcall FpuFLtoA,0,8,buf2,SRC1_FPU or SRC1_REAL; or STR_SCI |
1309 | stdcall FpuFLtoA,0,8,buf2,SRC1_FPU or SRC1_REAL; or STR_SCI |
1310 | fstp st0 |
1310 | fstp st0 |
1311 | ret |
1311 | ret |
1312 | @@: stdcall FpuFLtoA,0,8,buf2,SRC1_FPU or SRC1_REAL or STR_SCI |
1312 | @@: stdcall FpuFLtoA,0,8,buf2,SRC1_FPU or SRC1_REAL or STR_SCI |
1313 | fstp st0 |
1313 | fstp st0 |
1314 | ret |
1314 | ret |
1315 | 1315 | ||
1316 | align 4 |
1316 | align 4 |
1317 | draw_stack: |
1317 | draw_stack: |
1318 | ; test [flags],(1 shl 13) |
1318 | ; test [flags],(1 shl 13) |
1319 | ; jnz .ret |
1319 | ; jnz .ret |
1320 | mov esi,S.T |
1320 | mov esi,S.T |
1321 | mov ecx,5 |
1321 | mov ecx,5 |
1322 | mov edx,[sc.work] |
1322 | mov edx,[sc.work] |
1323 | or edx,0x34000000 |
1323 | or edx,0x34000000 |
1324 | push edx |
1324 | push edx |
1325 | mov ebx,220*65536+150 |
1325 | mov ebx,220*65536+150 |
1326 | push ebx |
1326 | push ebx |
1327 | mov ebx,240*65536+9 |
1327 | mov ebx,240*65536+9 |
1328 | push ebx |
1328 | push ebx |
1329 | push esi ecx |
1329 | push esi ecx |
1330 | @@: call draw_registers.ftoa |
1330 | @@: call draw_registers.ftoa |
1331 | mov ebx,[esp+12] |
1331 | mov ebx,[esp+12] |
1332 | mov ecx,[esp+8] |
1332 | mov ecx,[esp+8] |
1333 | mov edx,[esp+16] |
1333 | mov edx,[esp+16] |
1334 | mcall 13 |
1334 | mcall 13 |
1335 | mov ebx,[esp+12] |
1335 | mov ebx,[esp+12] |
1336 | mov eax,[esp+8] |
1336 | mov eax,[esp+8] |
1337 | shr eax,16 |
1337 | shr eax,16 |
1338 | mov bx,ax |
1338 | mov bx,ax |
1339 | mov ecx,0;[esp+16] |
1339 | mov ecx,0;[esp+16] |
1340 | add ecx,0x80000000 |
1340 | add ecx,0x80000000 |
1341 | mov edx,buf2 |
1341 | mov edx,buf2 |
1342 | mcall 4 |
1342 | mcall 4 |
1343 | dec dword [esp] |
1343 | dec dword [esp] |
1344 | jz @f |
1344 | jz @f |
1345 | sub dword [esp+4],8 |
1345 | sub dword [esp+4],8 |
1346 | mov esi,[esp+4] |
1346 | mov esi,[esp+4] |
1347 | add dword [esp+8],12*65536 |
1347 | add dword [esp+8],12*65536 |
1348 | jmp @b |
1348 | jmp @b |
1349 | @@: add esp,20 |
1349 | @@: add esp,20 |
1350 | ;.ret: |
1350 | ;.ret: |
1351 | ret |
1351 | ret |
1352 | 1352 | ||
1353 | align 4 |
1353 | align 4 |
1354 | draw_prog: |
1354 | draw_prog: |
1355 | test [flags],(1 shl 13) |
1355 | test [flags],(1 shl 13) |
1356 | jnz .ret |
1356 | jnz .ret |
1357 | pushd 26 |
1357 | pushd 26 |
1358 | movzx eax,[schk] |
1358 | movzx eax,[schk] |
1359 | mov [.sprog2],al |
1359 | mov [.sprog2],al |
1360 | xor edx,edx |
1360 | xor edx,edx |
1361 | div dword [esp] |
1361 | div dword [esp] |
1362 | xor edx,edx |
1362 | xor edx,edx |
1363 | mul dword [esp] |
1363 | mul dword [esp] |
1364 | mov [.sprog],al |
1364 | mov [.sprog],al |
1365 | mov edi,[sc.work] |
1365 | mov edi,[sc.work] |
1366 | or edi,0x34000000 |
1366 | or edi,0x34000000 |
1367 | movzx ecx, [.sprog] |
1367 | movzx ecx, [.sprog] |
1368 | add ecx,26 |
1368 | add ecx,26 |
1369 | sub ecx,[esp] |
1369 | sub ecx,[esp] |
1370 | mov esi,0x5000459a |
1370 | mov esi,0x5000459a |
1371 | push esi |
1371 | push esi |
1372 | cmp cl,[.sprog2] |
1372 | cmp cl,[.sprog2] |
1373 | jne @f |
1373 | jne @f |
1374 | mov esi,0x50cc0000 |
1374 | mov esi,0x50cc0000 |
1375 | @@: mcall 47,0x020100,,400*65536+24,, |
1375 | @@: mcall 47,0x020100,,400*65536+24,, |
1376 | pop esi |
1376 | pop esi |
1377 | add edx,30*65536 |
1377 | add edx,30*65536 |
1378 | movzx ecx,[.sprog] |
1378 | movzx ecx,[.sprog] |
1379 | add ecx,PMEM+26 |
1379 | add ecx,PMEM+26 |
1380 | sub ecx,[esp] |
1380 | sub ecx,[esp] |
1381 | movzx ecx, byte [ecx] |
1381 | movzx ecx, byte [ecx] |
1382 | mcall |
1382 | mcall |
1383 | sub edx,30*65536 |
1383 | sub edx,30*65536 |
1384 | @@: add edx,11 |
1384 | @@: add edx,11 |
1385 | dec dword [esp] |
1385 | dec dword [esp] |
1386 | jz @f |
1386 | jz @f |
1387 | movzx ecx, [.sprog] |
1387 | movzx ecx, [.sprog] |
1388 | add ecx,26 |
1388 | add ecx,26 |
1389 | sub ecx,[esp] |
1389 | sub ecx,[esp] |
1390 | push esi |
1390 | push esi |
1391 | cmp cl,[.sprog2] |
1391 | cmp cl,[.sprog2] |
1392 | jne .2 |
1392 | jne .2 |
1393 | mov esi,0x50cc0000 |
1393 | mov esi,0x50cc0000 |
1394 | .2: mcall |
1394 | .2: mcall |
1395 | pop esi |
1395 | pop esi |
1396 | add edx,30*65536 |
1396 | add edx,30*65536 |
1397 | movzx ecx,[.sprog] |
1397 | movzx ecx,[.sprog] |
1398 | add ecx,PMEM+26 |
1398 | add ecx,PMEM+26 |
1399 | sub ecx,[esp] |
1399 | sub ecx,[esp] |
1400 | movzx ecx, byte [ecx] |
1400 | movzx ecx, byte [ecx] |
1401 | mcall |
1401 | mcall |
1402 | sub edx,30*65536 |
1402 | sub edx,30*65536 |
1403 | jmp @b |
1403 | jmp @b |
1404 | @@: pop eax |
1404 | @@: pop eax |
1405 | .ret: |
1405 | .ret: |
1406 | ret |
1406 | ret |
1407 | .sprog db 0 |
1407 | .sprog db 0 |
1408 | .sprog2 db 0 |
1408 | .sprog2 db 0 |
1409 | 1409 | ||
1410 | 1410 | ||
1411 | 1411 | ||
1412 | 1412 | ||
1413 | 1413 | ||
1414 | window_load_save: |
1414 | window_load_save: |
1415 | popad |
1415 | popad |
1416 | mcall 51,1,.thread,(.threat_stack+32*4) |
1416 | mcall 51,1,.thread,(.threat_stack+32*4) |
1417 | pushad |
1417 | pushad |
1418 | ret |
1418 | ret |
1419 | .thread: |
1419 | .thread: |
1420 | bts [flags],26 |
1420 | bts [flags],26 |
1421 | .red: |
1421 | .red: |
1422 | mcall 12,1 |
1422 | mcall 12,1 |
1423 | mov edi,txt.load |
1423 | mov edi,txt.load |
1424 | bt [flags],25 |
1424 | bt [flags],25 |
1425 | jc @f |
1425 | jc @f |
1426 | mov edi,txt.save |
1426 | mov edi,txt.save |
1427 | @@: mcall 0,50*65536+300,0x70*65536+60,(0x34ffffff),, |
1427 | @@: mcall 0,50*65536+300,0x70*65536+60,(0x34ffffff),, |
1428 | mcall 8,<245,43>,<2,14>,100,0xaaaaaa |
1428 | mcall 8,<245,43>,<2,14>,100,0xaaaaaa |
1429 | mcall 4,<252,5>,(0x80000000),txt.enter |
1429 | mcall 4,<252,5>,(0x80000000),txt.enter |
1430 | push dword edit2 |
1430 | push dword edit2 |
1431 | call [edit_box_draw] |
1431 | call [edit_box_draw] |
1432 | mcall 12,2 |
1432 | mcall 12,2 |
1433 | .still: |
1433 | .still: |
1434 | mcall 10 |
1434 | mcall 10 |
1435 | dec al |
1435 | dec al |
1436 | jz .red |
1436 | jz .red |
1437 | dec al |
1437 | dec al |
1438 | jz .key |
1438 | jz .key |
1439 | dec al |
1439 | dec al |
1440 | jz .button |
1440 | jz .button |
1441 | jmp .still |
1441 | jmp .still |
1442 | .button: |
1442 | .button: |
1443 | mcall 17,1 |
1443 | mcall 17,1 |
1444 | cmp ah,1 |
1444 | cmp ah,1 |
1445 | jne @f |
1445 | jne @f |
1446 | .end: btr [flags],26 |
1446 | .end: btr [flags],26 |
1447 | mcall -1 |
1447 | mcall -1 |
1448 | @@: cmp ah,100 |
1448 | @@: cmp ah,100 |
1449 | jne .still |
1449 | jne .still |
1450 | bt [flags],25 |
1450 | bt [flags],25 |
1451 | jc .ld |
1451 | jc .ld |
1452 | .sv: call save_prog |
1452 | .sv: call save_prog |
1453 | jnc .end |
1453 | jnc .end |
1454 | jmp .err |
1454 | jmp .err |
1455 | .ld: call load_prog |
1455 | .ld: call load_prog |
1456 | jnc .end |
1456 | jnc .end |
1457 | .err: mcall 4,<5,19>,(0x80000000),txt.error |
1457 | .err: mcall 4,<5,19>,(0x80000000),txt.error |
1458 | jmp .still |
1458 | jmp .still |
1459 | 1459 | ||
1460 | 1460 | ||
1461 | .key: |
1461 | .key: |
1462 | mcall 2 |
1462 | mcall 2 |
1463 | cmp ah,13 |
1463 | cmp ah,13 |
1464 | jne @f |
1464 | jne @f |
1465 | bt [flags],25 |
1465 | bt [flags],25 |
1466 | jc .ld |
1466 | jc .ld |
1467 | jmp .sv |
1467 | jmp .sv |
1468 | @@: cmp ah,27 |
1468 | @@: cmp ah,27 |
1469 | je .end |
1469 | je .end |
1470 | push dword edit2 |
1470 | push dword edit2 |
1471 | call [edit_box_key] |
1471 | call [edit_box_key] |
1472 | jmp .still |
1472 | jmp .still |
1473 | 1473 | ||
1474 | .threat_stack: times 32 dd 0 |
1474 | .threat_stack: times 32 dd 0 |
1475 | 1475 | ||
1476 | 1476 | ||
1477 | save_prog: |
1477 | save_prog: |
1478 | mov [_size],256+8*(15+5)+6*3 |
1478 | mov [_size],256+8*(15+5)+6*3 |
1479 | mcall 68,12,[_size] |
1479 | mcall 68,12,[_size] |
1480 | test eax,eax |
1480 | test eax,eax |
1481 | jnz @f |
1481 | jnz @f |
1482 | stc |
1482 | stc |
1483 | ret |
1483 | ret |
1484 | 1484 | ||
1485 | @@: mov [_buffer],eax |
1485 | @@: mov [_buffer],eax |
1486 | mov esi,S.X1 |
1486 | mov esi,S.X1 |
1487 | mov edi,eax |
1487 | mov edi,eax |
1488 | mov byte [edi],"<" |
1488 | mov byte [edi],"<" |
1489 | mov dword [edi+1]," " |
1489 | mov dword [edi+1]," " |
1490 | mov byte [edi+5],">" |
1490 | mov byte [edi+5],">" |
1491 | add edi,6 |
1491 | add edi,6 |
1492 | mov ecx,5*2 |
1492 | mov ecx,5*2 |
1493 | cld |
1493 | cld |
1494 | @@: movsd |
1494 | @@: movsd |
1495 | loop @b |
1495 | loop @b |
1496 | mov esi,R.0 |
1496 | mov esi,R.0 |
1497 | mov byte [edi],"<" |
1497 | mov byte [edi],"<" |
1498 | mov dword [edi+1],"" |
1498 | mov dword [edi+1],"" |
1499 | mov byte [edi+5],">" |
1499 | mov byte [edi+5],">" |
1500 | add edi,6 |
1500 | add edi,6 |
1501 | mov ecx,15*2 |
1501 | mov ecx,15*2 |
1502 | cld |
1502 | cld |
1503 | @@: movsd |
1503 | @@: movsd |
1504 | loop @b |
1504 | loop @b |
1505 | mov esi,PMEM |
1505 | mov esi,PMEM |
1506 | mov byte [edi],"<" |
1506 | mov byte [edi],"<" |
1507 | mov dword [edi+1],"" |
1507 | mov dword [edi+1],"" |
1508 | mov byte [edi+5],">" |
1508 | mov byte [edi+5],">" |
1509 | add edi,6 |
1509 | add edi,6 |
1510 | mov ecx,256/4 |
1510 | mov ecx,256/4 |
1511 | cld |
1511 | cld |
1512 | @@: movsd |
1512 | @@: movsd |
1513 | loop @b |
1513 | loop @b |
1514 | 1514 | ||
1515 | mov [func_70.func_n],2 |
1515 | mov [func_70.func_n],2 |
1516 | push [_size] |
1516 | push [_size] |
1517 | pop [func_70.param3] |
1517 | pop [func_70.param3] |
1518 | push [_buffer] |
1518 | push [_buffer] |
1519 | pop [func_70.param4] |
1519 | pop [func_70.param4] |
1520 | mov [func_70.name],buf_cmd_lin |
1520 | mov [func_70.name],buf_cmd_lin |
1521 | mcall 70,func_70 |
1521 | mcall 70,func_70 |
1522 | cmp al,0 ;á®åà ñ 㤠ç®? |
1522 | cmp al,0 ;á®åà ñ 㤠ç®? |
1523 | je @f |
1523 | je @f |
1524 | mcall 68,13,[_buffer] |
1524 | mcall 68,13,[_buffer] |
1525 | stc |
1525 | stc |
1526 | ret |
1526 | ret |
1527 | @@: mcall 68,13,[_buffer] |
1527 | @@: mcall 68,13,[_buffer] |
1528 | clc |
1528 | clc |
1529 | ret |
1529 | ret |
1530 | 1530 | ||
1531 | load_prog: |
1531 | load_prog: |
1532 | mov [func_70.func_n],5 |
1532 | mov [func_70.func_n],5 |
1533 | mov [func_70.param3],0 |
1533 | mov [func_70.param3],0 |
1534 | mov [func_70.param4],bufferfinfo |
1534 | mov [func_70.param4],bufferfinfo |
1535 | mov [func_70.name],buf_cmd_lin |
1535 | mov [func_70.name],buf_cmd_lin |
1536 | mcall 70,func_70 |
1536 | mcall 70,func_70 |
1537 | test al,al ;ä ©« ©¤¥? |
1537 | test al,al ;ä ©« ©¤¥? |
1538 | jz @f |
1538 | jz @f |
1539 | stc |
1539 | stc |
1540 | ret |
1540 | ret |
1541 | @@: mov eax, dword [bufferfinfo+32] ;ª®¯¨à㥬 à §¬¥à ä ©« |
1541 | @@: mov eax, dword [bufferfinfo+32] ;ª®¯¨à㥬 à §¬¥à ä ©« |
1542 | cmp eax,256+8*(15+5)+6*3 |
1542 | cmp eax,256+8*(15+5)+6*3 |
1543 | jbe @f |
1543 | jbe @f |
1544 | stc |
1544 | stc |
1545 | ret |
1545 | ret |
1546 | 1546 | ||
1547 | _size dd 0 |
1547 | _size dd 0 |
1548 | _buffer dd 0 |
1548 | _buffer dd 0 |
1549 | 1549 | ||
1550 | @@: mov [_size],eax |
1550 | @@: mov [_size],eax |
1551 | mcall 68,12,[_size] |
1551 | mcall 68,12,[_size] |
1552 | test eax,eax |
1552 | test eax,eax |
1553 | jnz @f |
1553 | jnz @f |
1554 | stc |
1554 | stc |
1555 | ret ;®è¨¡ª ¢ë¤¥«¥¨¥ ¡«®ª |
1555 | ret ;®è¨¡ª ¢ë¤¥«¥¨¥ ¡«®ª |
1556 | @@: |
1556 | @@: |
1557 | mov [_buffer],eax |
1557 | mov [_buffer],eax |
1558 | mov [func_70.func_n],0 |
1558 | mov [func_70.func_n],0 |
1559 | mov [func_70.name],buf_cmd_lin |
1559 | mov [func_70.name],buf_cmd_lin |
1560 | push dword [_size] |
1560 | push dword [_size] |
1561 | pop dword [func_70.param3] |
1561 | pop dword [func_70.param3] |
1562 | push dword [_buffer] |
1562 | push dword [_buffer] |
1563 | pop dword [func_70.param4] |
1563 | pop dword [func_70.param4] |
1564 | mcall 70,func_70 |
1564 | mcall 70,func_70 |
1565 | test eax,eax |
1565 | test eax,eax |
1566 | jz @f |
1566 | jz @f |
1567 | stc |
1567 | stc |
1568 | ret ;®è¨¡ª ç⥨ï |
1568 | ret ;®è¨¡ª ç⥨ï |
1569 | @@: |
1569 | @@: |
1570 | 1570 | ||
1571 | mov esi,[_buffer] |
1571 | mov esi,[_buffer] |
1572 | mov ecx,[_size] |
1572 | mov ecx,[_size] |
1573 | @@: cmp byte [esi],"<" |
1573 | @@: cmp byte [esi],"<" |
1574 | je .@f1 |
1574 | je .@f1 |
1575 | inc esi |
1575 | inc esi |
1576 | loop @b |
1576 | loop @b |
1577 | .end: mcall 68,13,[_buffer] |
1577 | .end: mcall 68,13,[_buffer] |
1578 | clc |
1578 | clc |
1579 | ret |
1579 | ret |
1580 | .@f1: inc esi |
1580 | .@f1: inc esi |
1581 | cmp dword [esi]," " |
1581 | cmp dword [esi]," " |
1582 | je .st |
1582 | je .st |
1583 | cmp dword [esi],"" |
1583 | cmp dword [esi],"" |
1584 | je .rg |
1584 | je .rg |
1585 | cmp dword [esi],"" |
1585 | cmp dword [esi],"" |
1586 | je .pr |
1586 | je .pr |
1587 | jmp @b |
1587 | jmp @b |
1588 | .st: mov edi,S.X1 |
1588 | .st: mov edi,S.X1 |
1589 | add esi,5 |
1589 | add esi,5 |
1590 | mov ebx,5*2*4 |
1590 | mov ebx,5*2*4 |
1591 | cld |
1591 | cld |
1592 | .st@: movsb |
1592 | .st@: movsb |
1593 | cmp byte [esi],"<" |
1593 | cmp byte [esi],"<" |
1594 | jne .stB |
1594 | jne .stB |
1595 | inc esi |
1595 | inc esi |
1596 | cmp dword [esi],"" |
1596 | cmp dword [esi],"" |
1597 | je .rg |
1597 | je .rg |
1598 | cmp dword [esi],"" |
1598 | cmp dword [esi],"" |
1599 | je .pr |
1599 | je .pr |
1600 | dec esi |
1600 | dec esi |
1601 | .stB: dec ecx |
1601 | .stB: dec ecx |
1602 | jz .end |
1602 | jz .end |
1603 | dec ebx |
1603 | dec ebx |
1604 | jnz .st@ |
1604 | jnz .st@ |
1605 | jmp @b |
1605 | jmp @b |
1606 | .rg: mov edi,R.0 |
1606 | .rg: mov edi,R.0 |
1607 | add esi,5 |
1607 | add esi,5 |
1608 | mov ebx,15*2*4 |
1608 | mov ebx,15*2*4 |
1609 | cld |
1609 | cld |
1610 | .rg@: movsb |
1610 | .rg@: movsb |
1611 | cmp byte [esi],"<" |
1611 | cmp byte [esi],"<" |
1612 | jne .rgB |
1612 | jne .rgB |
1613 | inc esi |
1613 | inc esi |
1614 | cmp dword [esi]," " |
1614 | cmp dword [esi]," " |
1615 | je .st |
1615 | je .st |
1616 | cmp dword [esi],"" |
1616 | cmp dword [esi],"" |
1617 | je .pr |
1617 | je .pr |
1618 | dec esi |
1618 | dec esi |
1619 | .rgB: dec ecx |
1619 | .rgB: dec ecx |
1620 | jz .end |
1620 | jz .end |
1621 | dec ebx |
1621 | dec ebx |
1622 | jnz .rg@ |
1622 | jnz .rg@ |
1623 | jmp @b |
1623 | jmp @b |
1624 | .pr: mov edi,PMEM |
1624 | .pr: mov edi,PMEM |
1625 | mov eax,0 |
1625 | mov eax,0 |
1626 | mov ebx,256/4 |
1626 | mov ebx,256/4 |
1627 | .pr0: mov [edi],eax |
1627 | .pr0: mov [edi],eax |
1628 | add edi,4 |
1628 | add edi,4 |
1629 | dec ebx |
1629 | dec ebx |
1630 | jnz .pr0 |
1630 | jnz .pr0 |
1631 | mov edi,PMEM |
1631 | mov edi,PMEM |
1632 | add esi,5 |
1632 | add esi,5 |
1633 | mov ebx,256 |
1633 | mov ebx,256 |
1634 | cld |
1634 | cld |
1635 | .pr@: movsb |
1635 | .pr@: movsb |
1636 | cmp byte [esi],"<" |
1636 | cmp byte [esi],"<" |
1637 | jne .prB |
1637 | jne .prB |
1638 | inc esi |
1638 | inc esi |
1639 | cmp dword [esi]," " |
1639 | cmp dword [esi]," " |
1640 | je .st |
1640 | je .st |
1641 | cmp dword [esi],"" |
1641 | cmp dword [esi],"" |
1642 | je .rg |
1642 | je .rg |
1643 | dec esi |
1643 | dec esi |
1644 | .prB: dec ecx |
1644 | .prB: dec ecx |
1645 | jz .end |
1645 | jz .end |
1646 | dec ebx |
1646 | dec ebx |
1647 | jnz .pr@ |
1647 | jnz .pr@ |
1648 | jmp @b |
1648 | jmp @b |
1649 | 1649 | ||
1650 | 1650 | ||
1651 | 1651 | ||
1652 | 1652 | ||
1653 | 1653 | ||
1654 | 1654 | ||
1655 | align 4 |
1655 | align 4 |
1656 | 1656 | ||
1657 | S: |
1657 | S: |
1658 | .X1: dq 0.0 |
1658 | .X1: dq 0.0 |
1659 | .X: dq 0.0 |
1659 | .X: dq 0.0 |
1660 | .Y: dq 0.0 |
1660 | .Y: dq 0.0 |
1661 | .Z: dq 0.0 |
1661 | .Z: dq 0.0 |
1662 | .T: dq 0.0 |
1662 | .T: dq 0.0 |
1663 | 1663 | ||
1664 | RS: |
1664 | RS: |
1665 | times 10 db 0 |
1665 | times 10 db 0 |
1666 | 1666 | ||
1667 | align 4 |
1667 | align 4 |
1668 | R: |
1668 | R: |
1669 | .0: dq 0.0 |
1669 | .0: dq 0.0 |
1670 | .1: dq 0.0 |
1670 | .1: dq 0.0 |
1671 | .2: dq 0.0 |
1671 | .2: dq 0.0 |
1672 | .3: dq 0.0 |
1672 | .3: dq 0.0 |
1673 | .4: dq 0.0 |
1673 | .4: dq 0.0 |
1674 | .5: dq 0.0 |
1674 | .5: dq 0.0 |
1675 | .6: dq 0.0 |
1675 | .6: dq 0.0 |
1676 | .7: dq 0.0 |
1676 | .7: dq 0.0 |
1677 | .8: dq 0.0 |
1677 | .8: dq 0.0 |
1678 | .9: dq 0.0 |
1678 | .9: dq 0.0 |
1679 | .A: dq 0.0 |
1679 | .A: dq 0.0 |
1680 | .B: dq 0.0 |
1680 | .B: dq 0.0 |
1681 | .C: dq 0.0 |
1681 | .C: dq 0.0 |
1682 | .D: dq 0.0 |
1682 | .D: dq 0.0 |
1683 | .E: dq 0.0 |
1683 | .E: dq 0.0 |
1684 | .F: dq 0.0 |
1684 | .F: dq 0.0 |
1685 | dq 0.0 |
1685 | dq 0.0 |
1686 | 1686 | ||
1687 | 1687 | ||
1688 | align 4 |
1688 | align 4 |
1689 | myimport: |
1689 | myimport: |
1690 | edit_box_draw dd aEdit_box_draw |
1690 | edit_box_draw dd aEdit_box_draw |
1691 | edit_box_key dd aEdit_box_key |
1691 | edit_box_key dd aEdit_box_key |
1692 | edit_box_mouse dd aEdit_box_mouse |
1692 | edit_box_mouse dd aEdit_box_mouse |
1693 | version_ed dd aVersion_ed |
1693 | version_ed dd aVersion_ed |
1694 | 1694 | ||
1695 | scrollbar_ver_draw dd aScrollbar_ver_draw |
1695 | scrollbar_ver_draw dd aScrollbar_ver_draw |
1696 | scrollbar_ver_mouse dd aScrollbar_ver_mouse |
1696 | scrollbar_ver_mouse dd aScrollbar_ver_mouse |
1697 | version_scrollbar dd aVersion_scrollbar |
1697 | version_scrollbar dd aVersion_scrollbar |
1698 | 1698 | ||
1699 | dd 0 |
1699 | dd 0 |
1700 | dd 0 |
1700 | dd 0 |
1701 | 1701 | ||
1702 | aEdit_box_draw db 'edit_box',0 |
1702 | aEdit_box_draw db 'edit_box',0 |
1703 | aEdit_box_key db 'edit_box_key',0 |
1703 | aEdit_box_key db 'edit_box_key',0 |
1704 | aEdit_box_mouse db 'edit_box_mouse',0 |
1704 | aEdit_box_mouse db 'edit_box_mouse',0 |
1705 | aVersion_ed db 'version_ed',0 |
1705 | aVersion_ed db 'version_ed',0 |
1706 | 1706 | ||
1707 | aScrollbar_ver_draw db 'scrollbar_v_draw',0 |
1707 | aScrollbar_ver_draw db 'scrollbar_v_draw',0 |
1708 | aScrollbar_ver_mouse db 'scrollbar_v_mouse',0 |
1708 | aScrollbar_ver_mouse db 'scrollbar_v_mouse',0 |
1709 | aVersion_scrollbar db 'version_scrollbar',0 |
1709 | aVersion_scrollbar db 'version_scrollbar',0 |
1710 | 1710 | ||
1711 | if 0 |
1711 | if 0 |
1712 | 1712 | ||
1713 | align 4 |
1713 | align 4 |
1714 | scroll_bar_data_vertical: |
1714 | scroll_bar_data_vertical: |
1715 | .x: |
1715 | .x: |
1716 | .size_x dw 15;+0 |
1716 | .size_x dw 15;+0 |
1717 | .start_x dw 455 ;+2 |
1717 | .start_x dw 455 ;+2 |
1718 | .y: |
1718 | .y: |
1719 | .size_y dw 284 ;+4 |
1719 | .size_y dw 284 ;+4 |
1720 | .start_y dw 19 ;+6 |
1720 | .start_y dw 19 ;+6 |
1721 | .btn_high dd 15 ;+8 |
1721 | .btn_high dd 15 ;+8 |
1722 | .type dd 1 ;+12 |
1722 | .type dd 1 ;+12 |
1723 | .max_area dd 300+20 ;+16 |
1723 | .max_area dd 300+20 ;+16 |
1724 | .cur_area dd 50 ;+20 |
1724 | .cur_area dd 50 ;+20 |
1725 | .position dd 0 ;+24 |
1725 | .position dd 0 ;+24 |
1726 | .bckg_col dd 0xAAAAAA ;+28 |
1726 | .bckg_col dd 0xAAAAAA ;+28 |
1727 | .frnt_col dd 0xCCCCCC ;+32 |
1727 | .frnt_col dd 0xCCCCCC ;+32 |
1728 | .line_col dd 0 ;+36 |
1728 | .line_col dd 0 ;+36 |
1729 | .redraw dd 0 ;+40 |
1729 | .redraw dd 0 ;+40 |
1730 | .delta dw 0 ;+44 |
1730 | .delta dw 0 ;+44 |
1731 | .delta2 dw 0 ;+46 |
1731 | .delta2 dw 0 ;+46 |
1732 | .run_x: |
1732 | .run_x: |
1733 | .r_size_x dw 0 ;+48 |
1733 | .r_size_x dw 0 ;+48 |
1734 | .r_start_x dw 0 ;+50 |
1734 | .r_start_x dw 0 ;+50 |
1735 | .run_y: |
1735 | .run_y: |
1736 | .r_size_y dw 0 ;+52 |
1736 | .r_size_y dw 0 ;+52 |
1737 | .r_start_y dw 0 ;+54 |
1737 | .r_start_y dw 0 ;+54 |
1738 | .m_pos dd 0 ;+56 |
1738 | .m_pos dd 0 ;+56 |
1739 | .m_pos_2 dd 0 ;+60 |
1739 | .m_pos_2 dd 0 ;+60 |
1740 | .m_keys dd 0 ;+64 |
1740 | .m_keys dd 0 ;+64 |
1741 | .run_size dd 0 ;+68 |
1741 | .run_size dd 0 ;+68 |
1742 | .position2 dd 0 ;+72 |
1742 | .position2 dd 0 ;+72 |
1743 | .work_size dd 0 ;+76 |
1743 | .work_size dd 0 ;+76 |
1744 | .all_redraw dd 0 ;+80 |
1744 | .all_redraw dd 0 ;+80 |
1745 | .ar_offset dd 10 ;+84 |
1745 | .ar_offset dd 10 ;+84 |
1746 | 1746 | ||
1747 | endf |
1747 | endf |
1748 | 1748 | ||
1749 | func_70: |
1749 | func_70: |
1750 | .func_n dd ? |
1750 | .func_n dd ? |
1751 | .param1 dd 0 |
1751 | .param1 dd 0 |
1752 | .param2 dd 0 |
1752 | .param2 dd 0 |
1753 | .param3 dd ? |
1753 | .param3 dd ? |
1754 | .param4 dd ? |
1754 | .param4 dd ? |
1755 | .rezerv db 0 |
1755 | .rezerv db 0 |
1756 | .name dd ? |
1756 | .name dd ? |
1757 | 1757 | ||
1758 | flags dd _flags |
1758 | flags dd _flags |
1759 | 1759 | ||
1760 | _pause dd 10 |
1760 | _pause dd 10 |
1761 | string_zero db " 0 ",0 |
1761 | string_zero db " 0 ",0 |
1762 | buf: times 10 db 0 |
1762 | buf: times 10 db 0 |
1763 | perem dd 0 |
1763 | perem dd 0 |
1764 | buf2: times 25 db 0 |
1764 | buf2: times 25 db 0 |
1765 | string: db " 0 ",0 |
1765 | string: db " 0 ",0 |
1766 | buf3: times 25 db 0 |
1766 | buf3: times 25 db 0 |
1767 | schk db 0 |
1767 | schk db 0 |
1768 | 1768 | ||
1769 | title db appname,version,0 |
1769 | title db appname,version,0 |
1770 | 1770 | ||
1771 | txt: |
1771 | txt: |
1772 | .save db '®åà ¨âì (Ctrl+S)',0 |
1772 | .save db '®åà ¨âì (Ctrl+S)',0 |
1773 | .error db '訡ª ',0 |
1773 | .error db '訡ª ',0 |
1774 | .load db ' £à㧨âì (Ctrl+L)',0 |
1774 | .load db ' £à㧨âì (Ctrl+L)',0 |
1775 | .enter db 'Enter',0 |
1775 | .enter db 'Enter',0 |
1776 | .regs db "¥£¨áâàë",0 |
1776 | .regs db "¥£¨áâàë",0 |
1777 | .stk db "⥪",0 |
1777 | .stk db "⥪",0 |
1778 | .perek db " >",0 |
1778 | .perek db " >",0 |
1779 | .prog db "à®£à ¬¬ ",0 |
1779 | .prog db "à®£à ¬¬ ",0 |
1780 | .prog1 db " £ ®¤",0 |
1780 | .prog1 db " £ ®¤",0 |
1781 | .sk db ":",0 |
1781 | .sk db ":",0 |
1782 | .edbox db " ",0 |
1782 | .edbox db " ",0 |
1783 | 1783 | ||
1784 | system_path db '/sys/lib/' |
1784 | system_path db '/sys/lib/' |
1785 | boxlib_name db 'box_lib.obj',0 |
1785 | boxlib_name db 'box_lib.obj',0 |
1786 | head_f_i: |
1786 | head_f_i: |
1787 | head_f_l db 'error',0 |
1787 | head_f_l db 'error',0 |
1788 | err_message_found_lib db 'box_lib.obj was not found',0 |
1788 | err_message_found_lib db 'box_lib.obj was not found',0 |
1789 | err_message_import db 'box_lib.obj was not imported',0 |
1789 | err_message_import db 'box_lib.obj was not imported',0 |
1790 | 1790 | ||
1791 | edit1 edit_box 20,427,320,0xffffff,0x6a9480,0,0xAABBCC,0,2,txt.edbox,ed_focus,ed_focus,0,0 |
1791 | edit1 edit_box 20,427,320,0xffffff,0x6a9480,0,0xAABBCC,0,2,txt.edbox,ed_focus,ed_focus,0,0 |
1792 | edit2 edit_box 240,2,2,0xffffff,0x6a9480,0,0xAABBCC,0,4096,buf_cmd_lin,ed_focus,2,0,0 |
1792 | edit2 edit_box 240,2,2,0xffffff,0x6a9480,0,0xAABBCC,0,4096,buf_cmd_lin,ed_focus,2,0,0 |
1793 | 1793 | ||
1794 | virtual at 0 |
1794 | virtual at 0 |
1795 | file 'MK_b3-34_hand.bmp':0xA,4 |
1795 | file 'MK_b3-34_hand.bmp':0xA,4 |
1796 | load offbits dword from 0 |
1796 | load offbits dword from 0 |
1797 | end virtual |
1797 | end virtual |
1798 | 1798 | ||
1799 | palitra: |
1799 | palitra: |
1800 | file 'MK_b3-34_hand.bmp':0x36,offbits-0x36 |
1800 | file 'MK_b3-34_hand.bmp':0x36,offbits-0x36 |
1801 | 1801 | ||
1802 | sizey = 262 |
1802 | sizey = 262 |
1803 | sizex = 185 + 7 |
1803 | sizex = 185 + 7 |
1804 | smesh = 3 |
1804 | smesh = 3 |
1805 | 1805 | ||
1806 | bmp_file: |
1806 | bmp_file: |
1807 | file 'MK_b3-34_hand.bmp':110 |
1807 | file 'MK_b3-34_hand.bmp':110 |
1808 | repeat sizey/2 |
1808 | repeat sizey/2 |
1809 | y = % - 1 |
1809 | y = % - 1 |
1810 | z = sizey - % |
1810 | z = sizey - % |
1811 | repeat sizex/2/4 |
1811 | repeat sizex/2/4 |
1812 | load a dword from $ - sizex*sizey/2 + sizex*y/2+(%-1)*4 |
1812 | load a dword from $ - sizex*sizey/2 + sizex*y/2+(%-1)*4 |
1813 | load b dword from $ - sizex*sizey/2 + sizex*z/2+(%-1)*4 |
1813 | load b dword from $ - sizex*sizey/2 + sizex*z/2+(%-1)*4 |
1814 | store dword a at $ - sizex*sizey/2 + sizex*z/2+(%-1)*4 |
1814 | store dword a at $ - sizex*sizey/2 + sizex*z/2+(%-1)*4 |
1815 | store dword b at $ - sizex*sizey/2 + sizex*y/2+(%-1)*4 |
1815 | store dword b at $ - sizex*sizey/2 + sizex*y/2+(%-1)*4 |
1816 | end repeat |
1816 | end repeat |
1817 | end repeat |
1817 | end repeat |
1818 | 1818 | ||
1819 | sound_data: |
1819 | sound_data: |
1820 | db 40 |
1820 | db 40 |
1821 | dw 670 |
1821 | dw 670 |
1822 | db 0 |
1822 | db 0 |
1823 | 1823 | ||
1824 | I_END: |
1824 | I_END: |
1825 | 1825 | ||
1826 | sc system_colors |
1826 | sc system_colors |
1827 | 1827 | ||
1828 | procinfo: rb 1024 |
1828 | procinfo: rb 1024 |
1829 | buf_cmd_lin rb 0 |
1829 | buf_cmd_lin rb 0 |
1830 | cur_dir_path rb 4096 |
1830 | cur_dir_path rb 4096 |
1831 | 1831 | ||
1832 | 1832 | ||
1833 | PMEM: rb 256 |
1833 | PMEM: rb 256 |
1834 | 1834 | ||
1835 | bufferfinfo rb 40 |
1835 | bufferfinfo rb 40 |
1836 | scin_height rd 1 |
1836 | scin_height rd 1 |
1837 | 1837 | ||
1838 | D_END:" |
1838 | D_END:" |
1839 | >" |
1839 | >" |
1840 | >" |
1840 | >" |
1841 | >" |
1841 | >" |
1842 | >" |
1842 | >" |
1843 | >" |
1843 | >" |
1844 | >" |
1844 | >" |
1845 | >5,19>252,5>2,14>245,43> |
1845 | >5,19>252,5>2,14>245,43> |