Rev 551 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 551 | Rev 1621 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ;============================================================================= |
1 | ;============================================================================= |
2 | ; |
- | |
- | 2 | ; Kolibri Graphics Benchmark 0.4 |
|
3 | ; MGB - Menuet Graphics Benchmark 0.3 |
3 | ; MGB - Menuet Graphics Benchmark 0.3 |
4 | ; Compile with FASM |
4 | ; Compile with FASM |
5 | ; |
5 | ; |
6 | ;============================================================================= |
6 | ;============================================================================= |
7 | ; |
7 | ; version: 0.4 |
- | 8 | ; last update: 18/09//2010 |
|
- | 9 | ; written by: Marat Zakiyanov aka Mario79, aka Mario |
|
- | 10 | ; changes: select path with OpenDialog, |
|
- | 11 | ; use of Box_Lib and Proc_Lib, |
|
- | 12 | ; support start with path for *.mgb file |
|
- | 13 | ; optimization code and size of use memory |
|
- | 14 | ;--------------------------------------------------------------------- |
|
8 | ; Original author and copyrights holder: |
15 | ; Original author and copyrights holder: |
9 | ; Mikhail Lisovin a.k.a. Mihasik |
16 | ; Mikhail Lisovin a.k.a. Mihasik |
10 | ; lisovin@26.ru |
17 | ; lisovin@26.ru |
11 | ; |
18 | ; |
12 | ; Disassembled with IDA 5.0.0.879: |
19 | ; Disassembled with IDA 5.0.0.879: |
Line 27... | Line 34... | ||
27 | use32 |
34 | use32 |
Line 28... | Line 35... | ||
28 | 35 | ||
29 | db 'MENUET01' |
36 | db 'MENUET01' |
30 | dd 1 |
37 | dd 1 |
31 | dd start |
38 | dd start |
32 | dd APP_MEM_END |
39 | dd IM_END |
33 | dd 0x200000 |
40 | dd I_END ;0x200000 |
34 | dd 0x07FFF0 |
41 | dd stacktop ;0x07FFF0 |
35 | dd 0 |
42 | dd fname_buf |
Line 36... | Line 43... | ||
36 | dd 0 |
43 | dd cur_dir_path |
37 | 44 | ||
- | 45 | include '..\..\..\macros.inc' |
|
- | 46 | include '..\..\..\proc32.inc' |
|
- | 47 | include '../../../develop/libraries/box_lib/trunk/box_lib.mac' |
|
- | 48 | include '../../../develop/libraries/box_lib/load_lib.mac' |
|
38 | include '..\..\..\macros.inc' |
49 | @use_library |
39 | ;__CPU_type equ p6 ; charge it |
50 | ;--------------------------------------------------------------------- |
40 | 51 | start: |
|
41 | include 'proc32.inc' |
52 | mcall 68,11 |
42 | 53 | ||
- | 54 | load_libraries l_libs_start,end_l_libs |
|
43 | ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
55 | |
- | 56 | cmp eax,-1 |
|
- | 57 | jz close |
|
44 | 58 | ;--------------------------------------------------------------------- |
|
- | 59 | mov edi,filename_area |
|
Line 45... | Line -... | ||
45 | - | ||
46 | proc start ; DATA XREF: seg000:off_Co |
- | |
47 | - | ||
48 | ; FUNCTION CHUNK AT 000000CF SIZE 00000147 BYTES |
- | |
49 | 60 | mov esi,start_temp_file_name |
|
50 | mov ecx, -1 |
61 | call copy_str_1 |
51 | call subGetThreadInfo |
- | |
52 | mov edx, [dwMainPID] |
- | |
53 | mov ecx, eax |
62 | |
Line 54... | Line -... | ||
54 | - | ||
55 | loc_36: ; CODE XREF: start+20j |
63 | mov edi,comment_string_1 |
56 | call subGetThreadInfo |
64 | mov esi,aComment1 |
57 | - | ||
58 | loc_3B: |
65 | call copy_str_1 |
59 | cmp edx, [dwMainPID] |
66 | |
60 | jz loc_46 |
67 | mov edi,comment_string_2 |
61 | dec ecx |
68 | mov esi,aComment2 |
62 | jnz loc_36 |
69 | call copy_str_1 |
- | 70 | ||
63 | 71 | mov edi,fname_buf |
|
64 | loc_46: ; CODE XREF: start+1Dj |
72 | cmp [edi],byte 0 |
65 | mov [dwMainWndSlot], ecx |
73 | jne @f |
- | 74 | mov esi,path4 |
|
- | 75 | call copy_str_1 |
|
- | 76 | jmp .OpenDialog |
|
66 | 77 | @@: |
|
67 | locRedrawEvent: ; CODE XREF: start+3Cj |
78 | call locLoadFile |
68 | call subDrawMainWindow |
79 | xor dword [wFlags],1 |
- | 80 | .OpenDialog: |
|
- | 81 | ;OpenDialog initialisation |
|
- | 82 | push dword OpenDialog_data |
|
69 | 83 | call [OpenDialog_Init] |
|
- | 84 | ;--------------------------------------------------------------------- |
|
- | 85 | mcall 40,0x27 |
|
70 | locWaitForEvent: ; CODE XREF: start+6Cj start:loc_B3j ... |
86 | red: |
71 | mcall 23, 20 ; Kolibri - WAIT FOR EVENT WITH TIMEOUT |
- | |
72 | ; ebx = timeout |
- | |
73 | ; Return: eax = event |
87 | call draw_window |
74 | cmp eax, 1 |
88 | still: |
75 | jz locRedrawEvent |
89 | mcall 10 |
76 | 90 | cmp eax,1 |
|
77 | loc_62: |
- | |
78 | cmp eax, 2 |
- | |
79 | jz locKeyEvent |
91 | jz red |
80 | cmp eax, 3 |
- | |
81 | - | ||
82 | loc_6A: |
- | |
83 | jz locButtonEvent |
92 | cmp eax,2 |
84 | - | ||
85 | loc_70: |
- | |
86 | ;btr word[wFlags], 2 |
93 | jz key |
87 | ;jnb loc_87 |
- | |
88 | ;mov eax, 58 |
- | |
89 | ;mov ebx, stFileInfoBlock |
- | |
90 | ;int 0x40 ; Kolibri - ACCESS TO FILE SYSTEM (obsolete) |
- | |
91 | ; ebx -> fileinfo struc |
- | |
92 | 94 | cmp eax,3 |
|
93 | loc_87: ; CODE XREF: start+55j |
- | |
94 | btr word[wFlags], 1 |
95 | jz button |
95 | jnb locWaitForEvent |
96 | jmp still |
96 | call subDelay100ms |
97 | ;--------------------------------------------------------------------- |
97 | mcall 0x12, 3, [dwMainWndSlot] ; Kolibri - ACTIVATE WINDOW |
98 | copy_str_1: |
98 | ; ecx = slot |
- | |
99 | call subDelay100ms |
- | |
100 | 99 | xor eax,eax |
|
101 | loc_AE: |
100 | cld |
102 | call subDrawBars |
101 | @@: |
103 | - | ||
104 | loc_B3: |
- | |
105 | jmp locWaitForEvent |
- | |
106 | endp |
- | |
107 | - | ||
108 | - | ||
109 | ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
- | |
110 | - | ||
111 | - | ||
112 | proc subGetThreadInfo ; CODE XREF: start+5p start:loc_36p |
102 | lodsb |
113 | mcall 9, APP_MEM_END ; Kolibri - GET THREAD INFO |
- | |
114 | ; ebx -> buffer, ecx = slot (-1 for self) |
- | |
115 | ; Return: eax = maximum slot |
- | |
116 | retn |
- | |
117 | endp |
- | |
118 | - | ||
119 | 103 | stosb |
|
120 | ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
- | |
121 | - | ||
122 | 104 | test eax,eax |
|
123 | proc subDelay100ms ; CODE XREF: start+6Ep start+85p |
105 | jnz @b |
124 | mcall 5, 0x0a ; Kolibri - DELAY |
- | |
125 | ; ebx = time (in 1/100th of second) |
- | |
126 | retn |
- | |
127 | endp |
- | |
128 | - | ||
129 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
- | |
130 | ; START OF FUNCTION CHUNK FOR start |
- | |
131 | 106 | ret |
|
132 | locKeyEvent: ; CODE XREF: start+41j |
107 | ;--------------------------------------------------------------------- |
133 | mcall 2 ; Kolibri - GET KEY CODE |
108 | key: |
134 | ; Return: ah = keycode |
109 | mcall 2 |
135 | cmp ah, 't' |
110 | cmp ah,'t' |
136 | jz locActionTest |
111 | jz ActionTest |
137 | cmp ah, 'c' |
112 | cmp ah,'c' |
138 | jz locActionComment |
113 | jz ActionComment |
139 | cmp ah, 'p' |
114 | cmp ah,'p' |
140 | jz locActionPattern |
115 | jz ActionPattern |
141 | cmp ah, 'o' |
116 | cmp ah,'o' |
142 | jz locActionOpen |
117 | jz ActionOpen |
143 | cmp ah, 's' |
118 | cmp ah,'s' |
144 | jz locActionSave |
- | |
145 | jmp locWaitForEvent |
119 | jz ActionSave |
146 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
- | |
147 | 120 | jmp still |
|
148 | locButtonEvent: ; CODE XREF: start:loc_6Aj |
121 | ;--------------------------------------------------------------------- |
- | 122 | button: |
|
149 | mcall 0x11 ; Kolibri - GET PRESSED BUTTON |
123 | mcall 17 |
150 | ; Return: ah = button ID |
- | |
151 | cmp ah, 1 |
124 | cmp ah,1 |
152 | jnz locNotClose |
125 | jnz NotClose |
153 | mcall -1 ; Kolibri - FINISH EXECUTION |
126 | close: |
154 | - | ||
155 | locNotClose: ; CODE XREF: start+E6j |
127 | mcall -1 |
156 | cmp ah, 2 |
128 | NotClose: |
157 | jnz locNotTest |
129 | cmp ah,2 |
158 | 130 | jnz locNotTest |
|
159 | locActionTest: ; CODE XREF: start+B5j |
- | |
160 | bts [wFlags], 0 |
- | |
161 | jb locWaitForEvent |
131 | ActionTest: |
162 | mcall 5, 50 ; Kolibri - DELAY |
132 | test dword [wFlags],1 |
163 | ; ebx = time (in 1/100th of second) |
- | |
164 | - | ||
165 | loc_132: |
- | |
166 | mcall 51, 1, subTestWndProc, 0x17FFF0; Kolibri - CREATE THREAD |
133 | jnz still |
167 | ; ebx = 1 - unique subfunction |
- | |
168 | ; ecx = starting eip |
- | |
169 | ; edx = starting esp |
- | |
170 | jmp locWaitForEvent |
134 | mcall 51,1,TestWndProc,thread_stack1 |
171 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
135 | jmp still |
172 | - | ||
173 | locNotTest: ; CODE XREF: start+F2j |
136 | ;--------------------------------------------------------------------- |
174 | cmp ah, 3 |
137 | locNotTest: |
175 | jnz locNotComment |
138 | cmp ah,3 |
176 | - | ||
177 | locActionComment: ; CODE XREF: start+BAj |
- | |
178 | bts [wFlags], 0 |
- | |
179 | jb locWaitForEvent |
139 | jnz NotComment |
180 | mov [dwBufferPtr], aComment1 ; "Current "... |
140 | ActionComment: |
181 | mov [dwEditLabel], aComment ; "Comment" |
141 | test dword [wFlags],1 |
182 | mov [dwEditLabelLen], 7 |
- | |
183 | call subCreateOpenSaveDlg |
142 | jnz still |
184 | jmp locWaitForEvent |
143 | mcall 51,1,thread_comment,thread_stack2 |
185 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
144 | jmp still |
- | 145 | ;--------------------------------------------------------------------- |
|
- | 146 | NotComment: |
|
- | 147 | cmp ah,4 |
|
- | 148 | jnz NotPattern |
|
- | 149 | ActionPattern: |
|
186 | 150 | test dword [wFlags],1 |
|
- | 151 | jnz still |
|
- | 152 | mov esi,results_table |
|
- | 153 | cld |
|
187 | locNotComment: ; CODE XREF: start+12Cj |
154 | @@: |
- | 155 | lodsd |
|
- | 156 | mov [esi],eax |
|
- | 157 | add esi,TEST_REC_SIZE-4 |
|
188 | cmp ah, 4 |
158 | cmp dword [esi+TEST_REC_SIZE-4],0 |
189 | jnz locNotPattern |
159 | jne @b |
190 | 160 | mov esi,comment_string_1 |
|
191 | locActionPattern: ; CODE XREF: start+BFj |
161 | mov edi,comment_string_2 |
192 | call subSavePattern |
- | |
193 | call subDrawBars |
162 | call copy_str_1 |
194 | jmp locWaitForEvent |
163 | call DrawBars |
195 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
164 | jmp still |
196 | - | ||
197 | locNotPattern: ; CODE XREF: start+167j |
165 | ;--------------------------------------------------------------------- |
198 | cmp ah, 5 |
166 | NotPattern: |
199 | jnz locNotOpen |
167 | cmp ah,5 |
200 | - | ||
201 | locActionOpen: ; CODE XREF: start+C8j |
168 | jnz NotOpen |
202 | bts [wFlags], 0 |
169 | ActionOpen: |
- | 170 | test dword [wFlags],1 |
|
203 | jb locWaitForEvent |
171 | jnz still |
204 | mov [dwBufferPtr], aPatternPath ; "/rd/1/pattern.mgb "... |
172 | mov [OpenDialog_data.type],0 ; open |
205 | mov [dwEditLabel], aOpenFile ; "Open file" |
- | |
206 | mov [dwEditLabelLen], 9 |
173 | call OpenDialog_Start_1 |
- | 174 | jne .1 |
|
- | 175 | call locLoadFile |
|
- | 176 | call DrawBars |
|
- | 177 | .1: |
|
- | 178 | xor dword [wFlags],1 |
|
- | 179 | jmp still |
|
207 | call subCreateOpenSaveDlg |
180 | ;--------------------------------------------------------------------- |
- | 181 | OpenDialog_Start_1: |
|
- | 182 | push dword OpenDialog_data |
|
- | 183 | call [OpenDialog_Start] |
|
208 | jmp locWaitForEvent |
184 | cmp [OpenDialog_data.status],1 |
209 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
185 | ret |
210 | - | ||
211 | locNotOpen: ; CODE XREF: start+17Bj |
186 | ;--------------------------------------------------------------------- |
212 | cmp ah, 6 |
187 | NotOpen: |
213 | jnz locWaitForEvent |
188 | cmp ah,6 |
214 | - | ||
215 | locActionSave: ; CODE XREF: start+D1j |
189 | jnz still |
216 | bts [wFlags], 0 |
190 | ActionSave: |
217 | jb locWaitForEvent |
191 | test dword [wFlags],1 |
218 | mov [dwBufferPtr], aPatternPath ; "/rd/1/pattern.mgb "... |
192 | jnz still |
219 | mov [dwEditLabel], aSaveAs ; "Save as..." |
193 | mov [OpenDialog_data.type],1 ; save |
220 | mov [dwEditLabelLen], 0Ah |
- | |
221 | call subCreateOpenSaveDlg |
- | |
222 | jmp locWaitForEvent |
- | |
223 | ; END OF FUNCTION CHUNK FOR start |
- | |
224 | - | ||
225 | ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
194 | call OpenDialog_Start_1 |
226 | - | ||
227 | 195 | jne ActionOpen.1 |
|
228 | proc subCreateOpenSaveDlg ; CODE XREF: start+15Ap start+1A9p ... |
196 | call locSaveFile |
229 | mcall 51, 1, subOpenSaveDlgProc, 0x19FFF0; Kolibri - CREATE THREAD |
- | |
230 | ; ebx = 1 - unique subfunction |
- | |
231 | ; ecx = starting eip |
- | |
232 | ; edx = starting esp |
- | |
233 | retn |
- | |
234 | endp |
- | |
235 | - | ||
236 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
197 | jmp ActionOpen.1 |
237 | - | ||
238 | subTestWndProc: ; DATA XREF: start+118o |
- | |
239 | 198 | ;--------------------------------------------------------------------- |
|
240 | mov esi,results_table+8 |
- | |
241 | .next_test: call subInitTestTimer |
- | |
242 | - | ||
243 | align 4 |
- | |
244 | @@: push esi |
- | |
245 | call dword[esi] |
- | |
246 | pop esi |
- | |
247 | call subIfTimeElapsed |
- | |
248 | jb @b |
- | |
249 | mov [esi-8],edi |
199 | TestWndProc: |
250 | - | ||
251 | add esi,TEST_REC_SIZE |
- | |
252 | cmp dword[esi],0 |
- | |
253 | jnz .next_test |
- | |
254 | macro unused { |
- | |
255 | call subInitTestTimer |
- | |
256 | - | ||
257 | locDrawNextWindow: ; CODE XREF: seg000:00000241j |
- | |
258 | mov ecx, 4F0190h |
- | |
259 | call testDrawWindow |
- | |
260 | call subIfTimeElapsed |
- | |
261 | jb locDrawNextWindow |
- | |
262 | mov [results_table+TEST_REC_SIZE*0], edi |
- | |
263 | call subInitTestTimer |
- | |
264 | - | ||
265 | locDrawNextBar: ; CODE XREF: seg000:00000269j |
- | |
266 | mcall 0x0d, 0x0A0064, 0x1E00FA, 0x6A73D0; Kolibri - DRAW RECTANGLE |
- | |
267 | ; ebx = [xstart]*65536+[xsize], ecx = [ystart]*65536+[ysize] |
- | |
268 | ; edx = 0xRRGGBB or 0x80RRGGBB for gradient |
- | |
269 | call subIfTimeElapsed |
- | |
270 | jb locDrawNextBar |
- | |
271 | mov [results_table+TEST_REC_SIZE*1], edi |
- | |
272 | call subInitTestTimer |
- | |
273 | - | ||
274 | locDrawNextLine: ; CODE XREF: seg000:00000291j |
- | |
275 | ; Kolibri - DRAW LINE |
- | |
276 | mcall 38, 0x8C008C, 0x1E017C, 0x1090207F |
- | |
277 | ; ebx = [xstart]*65536+[xend], ecx = [ystart]*65536+[yend] |
- | |
278 | ; edx = 0x00RRGGBB - color or 0x01****** - inversed line |
- | |
279 | call subIfTimeElapsed |
- | |
280 | jb locDrawNextLine |
- | |
281 | mov [results_table+TEST_REC_SIZE*2], edi |
- | |
282 | call subInitTestTimer |
- | |
283 | - | ||
284 | locDrawNextText1: ; CODE XREF: seg000:000002BEj |
- | |
285 | ; Kolibri - DRAW STRING |
- | |
286 | mcall 4, 0x0A012C, 0x0AA66, aTestText, 34 |
- | |
287 | ; ebx = [xstart]*65536+[ystart] |
- | |
288 | ; ecx = 0xX0RRGGBB, edx -> string |
- | |
289 | call subIfTimeElapsed |
- | |
290 | jb locDrawNextText1 |
- | |
291 | mov [results_table+TEST_REC_SIZE*3], edi |
- | |
292 | call subInitTestTimer |
- | |
293 | - | ||
294 | locDrawNextText2: ; CODE XREF: seg000:000002EBj |
- | |
295 | ; Kolibri - DRAW STRING |
- | |
296 | mcall 4, 0x0A015E, 0x10E7B850, aTestText, 34 |
- | |
297 | ; ebx = [xstart]*65536+[ystart] |
- | |
298 | ; ecx = 0xX0RRGGBB, edx -> string |
- | |
299 | call subIfTimeElapsed |
- | |
300 | jb locDrawNextText2 |
- | |
301 | mov [results_table+TEST_REC_SIZE*4], edi |
- | |
302 | call subInitTestTimer |
- | |
303 | - | ||
304 | locDrawNextNumber: ; CODE XREF: seg000:00000318j |
- | |
305 | ; Kolibri - DRAW NUMBER |
- | |
306 | ; bl = 0/1 - ecx is number/pointer |
- | |
307 | ; bh = 0/1/2 - dec/hex/bin |
- | |
308 | ; highword(ebx) = number of digits |
- | |
309 | ; ecx = number/pointer |
- | |
310 | ; edx = [x]*65536+[y] |
- | |
311 | ; esi = 0xX0RRGGBB |
- | |
312 | mcall 47, 80000h, 12345678, 140172h, 0E0B27Bh |
- | |
313 | - | ||
314 | - | ||
315 | - | ||
316 | call subIfTimeElapsed |
- | |
317 | jb locDrawNextNumber |
- | |
318 | mov [results_table+TEST_REC_SIZE*5], edi |
- | |
319 | call subInitTestTimer |
- | |
320 | - | ||
321 | locDrawNextPixel: ; CODE XREF: seg000:00000340j |
- | |
322 | ; Kolibri - PUT PIXEL |
- | |
323 | ; ebx = x, ecx = y, edx = color |
- | |
324 | mcall 1, 100, 100, 0x0FFFFFF |
- | |
325 | call subIfTimeElapsed |
- | |
326 | jb locDrawNextPixel |
- | |
327 | mov [results_table+TEST_REC_SIZE*6], edi |
- | |
328 | } |
- | |
329 | bts word[wFlags], 1 |
- | |
330 | btr word[wFlags], 0 |
- | |
331 | ; Kolibri - FINISH EXECUTION |
- | |
332 | mcall -1 |
- | |
333 | - | ||
334 | ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
- | |
335 | 200 | or dword [wFlags],1 |
|
336 | - | ||
337 | proc subInitTestTimer ; CODE XREF: seg000:subTestWndProcp |
201 | mov esi,results_table+8 |
338 | ; seg000:00000249p ... |
- | |
339 | xor edi, edi |
- | |
340 | mov eax, 26 |
202 | align 4 |
341 | mov ebx, 9 |
203 | .next_test: |
342 | mcall ; Kolibri - GET SYSTEM PARAMETERS - TIME COUNTER |
204 | xor edi,edi |
343 | ; Return: eax = time counter |
205 | mcall 26,9 |
- | 206 | inc eax |
|
344 | inc eax |
207 | mov ecx,eax |
345 | mov ecx, eax |
- | |
346 | add eax, 100 |
208 | add eax,100 |
347 | mov [dwTestEndTime], eax |
- | |
348 | - | ||
349 | locWait10ms: ; CODE XREF: subInitTestTimer+22j |
209 | mov [dwTestEndTime],eax |
350 | mov eax, 26 |
- | |
351 | mcall ; Kolibri - GET SYSTEM PARAMETERS - TIME COUNTER |
210 | align 4 |
352 | ; Return: eax = time counter |
211 | @@: |
353 | cmp eax, ecx |
- | |
354 | jb locWait10ms |
- | |
355 | retn |
- | |
356 | endp |
212 | mcall 26 |
357 | 213 | cmp eax,ecx |
|
358 | 214 | jb @r |
|
359 | ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
215 | align 4 |
360 | 216 | @@: |
|
361 | - | ||
362 | proc subIfTimeElapsed ; CODE XREF: seg000:0000023Cp |
217 | push esi |
363 | ; seg000:00000264p ... |
- | |
364 | inc edi |
- | |
365 | mov eax, 26 |
218 | call dword [esi] |
366 | mov ebx, 9 |
219 | pop esi |
367 | mcall ; Kolibri - GET SYSTEM PARAMETERS - TIME COUNTER |
220 | inc edi |
368 | ; Return: eax = time counter |
- | |
369 | cmp eax, [dwTestEndTime] |
- | |
370 | retn |
- | |
371 | endp |
- | |
Line 372... | Line -... | ||
372 | - | ||
373 | - | ||
374 | ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
- | |
375 | - | ||
376 | - | ||
377 | proc subSavePattern ; CODE XREF: start:locActionPatternp |
- | |
378 | ; mov esi, dwDrawWindowTime |
- | |
379 | ; mov edi, dwDrawWindowTime2 |
- | |
380 | ; mov ecx, 18 |
- | |
381 | ; cld |
- | |
382 | ; rep movsd |
221 | mcall 26,9 |
383 | mov esi,results_table |
222 | cmp eax,[dwTestEndTime] |
384 | cld |
- | |
385 | @@: lodsd |
223 | jb @b |
386 | mov [esi],eax |
224 | mov [esi-8],edi |
387 | add esi,TEST_REC_SIZE-4 |
225 | |
388 | cmp dword[esi+TEST_REC_SIZE-4],0 |
- | |
389 | jne @b |
- | |
390 | mov esi,aComment1 |
- | |
391 | mov edi,aComment2 |
- | |
392 | mov ecx,44/4 |
- | |
393 | rep movsd |
- | |
394 | retn |
- | |
395 | endp |
- | |
396 | 226 | add esi,TEST_REC_SIZE |
|
397 | - | ||
398 | ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
- | |
399 | - | ||
400 | 227 | cmp dword [esi],0 |
|
401 | proc subDrawMainWindow ; CODE XREF: start:locRedrawEventp |
228 | jnz .next_test |
402 | mov eax, 12 |
229 | xor dword [wFlags],1 |
403 | mov ebx, 1 |
230 | mcall -1 |
404 | mcall ; Kolibri - BEGIN WINDOW REDRAW |
231 | ;--------------------------------------------------------------------- |
405 | mov eax,48 |
232 | draw_window: |
406 | mov ebx,4 |
- | |
407 | mcall |
- | |
408 | mov ebx, 100*65536+72*5+14;640145h |
233 | mcall 12,1 |
409 | mov ecx, 80*65536+TESTS_NUM*LINE_HEIGHT+15+20+35 |
234 | mcall 48,4 |
- | 235 | mov ebx,100*65536+72*5+14 |
|
- | 236 | mov ecx,80*65536+TESTS_NUM*LINE_HEIGHT+15+20+35 |
|
410 | add cx, ax |
237 | add cx,ax |
411 | mov edx, 34000000h |
238 | xor eax,eax |
412 | mov edi, aCaption |
239 | xor esi,esi |
413 | xor eax, eax |
240 | mcall ,,,34000000h,,aCaption |
414 | mcall |
241 | |
415 | mov eax, 8 |
242 | mov eax,8 |
416 | mov ebx, 050036h+12 |
- | |
417 | mov ecx, 5*65536+20 |
243 | mov ebx,050036h+12 |
418 | mov edx, 2 |
- | |
419 | mov esi, 0x00007F7F;702050h |
- | |
420 | - | ||
421 | locDrawButtonsLoop: ; CODE XREF: subDrawMainWindow+3Bj |
244 | mov ecx,5*65536+20 |
422 | mcall ; Kolibri - DEFINE/DELETE BUTTON |
245 | mov edx,2 |
423 | ; ebx = [xstart]*65536+[xsize] |
246 | mov esi,0x00007F7F |
424 | ; ecx = [ystart]*65536+[ysize] |
247 | @@: |
Line 425... | Line 248... | ||
425 | ; edx = 0xXYnnnnnn, esi = color |
248 | mcall |
426 | add ebx, 72*65536 |
249 | add ebx,72*65536 |
427 | inc edx |
250 | inc edx |
428 | cmp edx, 7 |
251 | cmp edx,7 |
Line 429... | Line -... | ||
429 | jb locDrawButtonsLoop |
- | |
430 | - | ||
431 | mov ecx,31 |
252 | jb @r |
432 | mov edx,0x00007F7F |
- | |
433 | mov esi,(72*5)/2 |
- | |
434 | call drawSeparator |
- | |
435 | - | ||
436 | mov eax, 4 |
253 | |
Line 437... | Line 254... | ||
437 | mov ebx, 27*65536+12 |
254 | mov ecx,31 |
438 | mov ecx, 0x80DDEEFF |
255 | mov edx,0x00007F7F |
439 | mov edx, aButtonsText ; "Test Comment+ Pattern+ Open "... |
256 | mov esi,(72*5)/2 |
440 | mcall ; Kolibri - DRAW STRING |
257 | call drawSeparator |
441 | ; ebx = [xstart]*65536+[ystart] |
- | |
442 | ; ecx = 0xX0RRGGBB, edx -> string |
- | |
443 | call subDrawBars |
258 | |
444 | - | ||
445 | mov ecx,TESTS_NUM*LINE_HEIGHT+15+21 |
259 | mcall 4,<27,12>,0x80DDEEFF,aButtonsText |
446 | mov edx,0x00007F7F |
- | |
447 | mov esi,(72*5)/2 |
- | |
- | 260 | call DrawBars |
|
448 | call drawSeparator |
261 | |
449 | 262 | mov ecx,TESTS_NUM*LINE_HEIGHT+15+21 |
|
450 | mov eax, 12 |
263 | mov edx,0x00007F7F |
- | 264 | mov esi,(72*5)/2 |
|
451 | mov ebx, 2 |
265 | call drawSeparator |
452 | mcall ; Kolibri - END WINDOW REDRAW |
266 | mcall 12,2 |
453 | retn |
267 | ret |
454 | endp |
268 | ;--------------------------------------------------------------------- |
455 | 269 | drawSeparator: |
|
- | 270 | mov eax,1 |
|
456 | proc drawSeparator |
271 | mov ebx,3 |
457 | mov eax,1 |
- | |
458 | mov ebx,3 |
- | |
459 | @@: mcall |
- | |
460 | add ebx,2 |
- | |
461 | dec esi |
272 | @@: |
462 | jnz @b |
273 | mcall |
463 | retn |
- | |
464 | endp |
- | |
465 | 274 | add ebx,2 |
|
466 | ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
- | |
467 | 275 | dec esi |
|
- | 276 | jnz @b |
|
468 | 277 | ret |
|
469 | proc testDrawWindow |
- | |
470 | xor eax, eax |
278 | ;--------------------------------------------------------------------- |
471 | mov ebx, 640145h |
- | |
472 | mov ecx, 4F0190h |
- | |
473 | mov edx, 3000000h |
- | |
474 | mcall |
279 | align 4 |
475 | retn |
- | |
476 | endp |
280 | testDrawWindow: |
- | 281 | xor eax,eax |
|
477 | 282 | mcall ,640145h,4F0190h,3000000h |
|
478 | proc testDrawBar |
- | |
479 | mov eax, 13 |
283 | ret |
480 | mov ebx, 0A0064h |
- | |
481 | mov ecx, 1E00FAh |
284 | ;--------------------------------------------------------------------- |
482 | mov edx, 6A73D0h |
285 | align 4 |
483 | mcall |
- | |
484 | retn |
- | |
485 | endp |
286 | testDrawBar: |
- | 287 | mcall 13,0A0064h,1E00FAh,6A73D0h |
|
486 | 288 | ret |
|
487 | proc testDrawPicture |
- | |
488 | mov eax, 7 |
289 | ;--------------------------------------------------------------------- |
489 | mov ebx, 0 |
- | |
490 | mov ecx, 90*65536+123 |
- | |
491 | mov edx, 15*65536+33 |
290 | align 4 |
492 | mcall |
- | |
493 | retn |
- | |
494 | endp |
291 | testDrawPicture: |
- | 292 | xor ebx,ebx |
|
495 | 293 | mcall 7,,<90,123>,<15,33> |
|
496 | proc testDrawVertLine |
- | |
497 | mov eax, 38 |
294 | ret |
498 | mov ebx, 300*65536+300 ;8C008Ch |
- | |
499 | mov ecx, 30*65536+380 ;1E017Ch |
- | |
500 | mov edx, 1090207Fh |
295 | ;--------------------------------------------------------------------- |
501 | mcall |
- | |
502 | retn |
- | |
503 | endp |
296 | align 4 |
- | 297 | testDrawVertLine: |
|
504 | 298 | mcall 38,<300,300>,<30,380>,1090207Fh |
|
505 | proc testDrawHorzLine |
- | |
506 | mov eax, 38 |
299 | ret |
507 | mov ebx, 30*65536+300 ;20008Ch |
- | |
508 | mov ecx, 380*65536+380 ;17C017Ch |
- | |
509 | mov edx, 1090207Fh |
300 | ;--------------------------------------------------------------------- |
510 | mcall |
- | |
511 | retn |
- | |
512 | endp |
301 | align 4 |
- | 302 | testDrawHorzLine: |
|
513 | 303 | mcall 38,<30,300>,<380,380>,1090207Fh |
|
514 | proc testDrawFreeLine |
- | |
515 | mov eax, 38 |
304 | ret |
516 | mov ebx, 30*65536+300 ;20008Ch |
- | |
517 | mov ecx, 380*65536+30 ;17C001Eh |
- | |
518 | mov edx, 1090207Fh |
- | |
519 | mcall |
305 | ;--------------------------------------------------------------------- |
520 | retn |
- | |
521 | endp |
- | |
522 | 306 | align 4 |
|
- | 307 | testDrawFreeLine: |
|
523 | proc testDrawText1 |
308 | mcall 38,<30,300>,<380,30>,1090207Fh |
524 | mov eax, 4 |
- | |
525 | mov ebx, 0C012Ch |
309 | ret |
526 | mov ecx, 0AA66h |
- | |
527 | mov edx, aTestText |
- | |
528 | mov esi, 34 |
- | |
529 | mcall |
310 | ;--------------------------------------------------------------------- |
530 | retn |
- | |
531 | endp |
- | |
532 | 311 | align 4 |
|
- | 312 | testDrawText1: |
|
533 | proc testDrawText2 |
313 | mcall 4,0C012Ch,0AA66h,aTestText,34 |
534 | mov eax, 4 |
- | |
535 | mov ebx, 1B013Bh |
314 | ret |
536 | mov ecx, 10E7B850h |
- | |
537 | mov edx, aTestText |
- | |
538 | mov esi, 34 |
- | |
539 | mcall |
- | |
540 | retn |
315 | ;--------------------------------------------------------------------- |
541 | endp |
- | |
542 | 316 | align 4 |
|
- | 317 | testDrawText2: |
|
543 | proc testDrawNumber |
318 | mcall 4,1B013Bh,10E7B850h,aTestText,34 |
544 | mov eax, 47 |
- | |
545 | mov ebx, 80000h |
319 | ret |
546 | mov ecx, 12345678 |
- | |
547 | mov edx, 2A014Ah |
- | |
548 | mov esi, 0E0B27Bh |
- | |
549 | mcall |
320 | ;--------------------------------------------------------------------- |
550 | retn |
- | |
551 | endp |
321 | align 4 |
552 | - | ||
553 | proc testDrawPixel |
- | |
554 | mov eax, 1 |
- | |
555 | mov ebx, 100 |
- | |
556 | mov ecx, 100 |
- | |
557 | mov edx, 0FFFFFFh |
- | |
558 | mcall |
322 | testDrawNumber: |
- | 323 | mcall 47,80000h,12345678,2A014Ah,0E0B27Bh |
|
559 | retn |
324 | ret |
560 | endp |
325 | ;--------------------------------------------------------------------- |
- | 326 | align 4 |
|
561 | 327 | testDrawPixel: |
|
562 | 328 | mcall 1,100,100,0FFFFFFh |
|
Line 563... | Line 329... | ||
563 | ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
329 | ret |
564 | - | ||
565 | 330 | ;--------------------------------------------------------------------- |
|
566 | proc subDrawBars ; CODE XREF: start:loc_AEp start+16Ep ... |
331 | DrawBars: |
567 | mov edi,results_table |
332 | mov edi,results_table |
568 | mov ebx,30+7 |
333 | mov ebx,30+7 |
569 | .next_result: cmp dword[edi+TEST_REC_SIZE-4],0 |
334 | .next_result: |
570 | je .exit |
335 | cmp dword[edi+TEST_REC_SIZE-4],0 |
571 | 336 | je .exit |
|
572 | push ebx |
337 | |
Line 573... | Line 338... | ||
573 | mov eax,13 |
338 | push ebx |
574 | movzx ecx,bx |
339 | movzx ecx,bx |
575 | add ecx,-2 |
340 | add ecx,-2 |
576 | shl ecx,16 |
341 | shl ecx,16 |
577 | mov cx,LINE_HEIGHT |
- | |
578 | mov ebx,0*65536+72*5+5 |
- | |
Line 579... | Line 342... | ||
579 | xor edx,edx |
342 | mov cx,LINE_HEIGHT |
580 | mcall |
343 | mov ebx,0*65536+72*5+5 |
581 | pop ebx |
344 | xor edx,edx |
582 | 345 | mcall 13 |
|
583 | and ebx,0x0000FFFF |
346 | pop ebx |
584 | or ebx,5*65536 |
347 | |
585 | mov edx,[edi+TEST_REC_SIZE-4] |
348 | and ebx,0x0000FFFF |
586 | mov ecx,0x8000CCCC ; 0x00E7E05A |
349 | or ebx,5*65536 |
587 | mov eax,4 |
350 | mov edx,[edi+TEST_REC_SIZE-4] |
- | 351 | mcall 4,,0x8000CCCC |
|
588 | mcall |
352 | |
589 | 353 | push '=' 0x00FFFF00 0x00FFFF7F 0x00FFFF7F |
|
590 | push '=' 0x00FFFF00 0x00FFFF7F 0x00FFFF7F |
354 | mov eax,[edi+0] |
591 | mov eax,[edi+0] |
355 | cmp eax,[edi+4] |
592 | cmp eax,[edi+4] |
356 | je @f |
593 | je @f |
357 | jb .lp1 |
594 | jb .lp1 |
358 | mov dword[esp+0],0x007FFF7F |
595 | mov dword[esp+0],0x007FFF7F |
359 | mov dword[esp+4],0x00FF7F7F |
596 | mov dword[esp+4],0x00FF7F7F |
360 | mov dword[esp+8],0x0000FF00 |
597 | mov dword[esp+8],0x0000FF00 |
361 | mov byte[esp+12],'>' |
598 | mov byte[esp+12],'>' |
- | |
599 | .lp1: ja @f |
- | |
600 | mov dword[esp+0],0x00FF7F7F |
- | |
Line 601... | Line 362... | ||
601 | mov dword[esp+4],0x007FFF7F |
362 | .lp1: |
602 | mov dword[esp+8],0x00FF0000 |
363 | ja @f |
603 | mov byte[esp+12],'<' |
364 | mov dword[esp+0],0x00FF7F7F |
604 | @@: |
365 | mov dword[esp+4],0x007FFF7F |
605 | pop ecx |
- | |
606 | call int2str |
366 | mov dword[esp+8],0x00FF0000 |
Line 607... | Line 367... | ||
607 | add ebx,(72*5-6*8*2-6-10-5)*65536 ; 196 |
367 | mov byte[esp+12],'<' |
608 | mov edx,APP_MEM_END |
368 | @@: |
609 | mov esi,8 |
369 | pop ecx |
610 | mov eax,4 |
370 | call int2str |
Line 626... | Line 386... | ||
626 | 386 | ||
627 | add edi,TEST_REC_SIZE |
387 | add edi,TEST_REC_SIZE |
628 | add bx,LINE_HEIGHT |
388 | add bx,LINE_HEIGHT |
629 | jmp .next_result |
389 | jmp .next_result |
630 | .exit: |
- | |
631 | - | ||
632 | mov eax, 13 |
390 | .exit: |
633 | mov ebx, 0*65536+72*5+5 |
391 | mov ebx, 0*65536+72*5+5 |
634 | mov ecx, (TESTS_NUM*LINE_HEIGHT+15+25)*65536+26 |
392 | mov ecx, (TESTS_NUM*LINE_HEIGHT+15+25)*65536+26 |
635 | xor edx, edx |
393 | xor edx, edx |
Line 636... | Line -... | ||
636 | mcall |
- | |
637 | 394 | mcall 13 |
|
638 | mov eax, 4 |
395 | |
639 | mov ebx, 5*65536+(TESTS_NUM*LINE_HEIGHT+15+27) |
- | |
640 | mov ecx, 0x8000CCCC |
- | |
Line 641... | Line 396... | ||
641 | mov edx, aLeft |
396 | mov ebx, 5*65536+(TESTS_NUM*LINE_HEIGHT+15+27) |
642 | mcall ; Kolibri - DRAW STRING |
- | |
643 | - | ||
644 | add ebx, (6*10)*65536 |
- | |
645 | mov ecx, 0x00FFFF00 |
397 | mcall 4,,0x8000CCCC,aLeft |
Line 646... | Line -... | ||
646 | mov edx, aComment1 |
- | |
647 | mov esi, 42 |
398 | |
648 | mcall ; Kolibri - DRAW STRING |
399 | add ebx, (6*10)*65536 |
649 | - | ||
650 | mov eax, 4 |
- | |
Line 651... | Line 400... | ||
651 | mov ebx, 5*65536+(TESTS_NUM*LINE_HEIGHT+15+27+12) |
400 | mcall ,,0x80FFFF00,comment_string_1 |
652 | mov ecx, 0x8000CCCC |
- | |
653 | mov edx, aRight |
- | |
654 | mcall ; Kolibri - DRAW STRING |
- | |
655 | 401 | ||
656 | add ebx, (6*10)*65536 |
- | |
657 | mov ecx, 0x00FFFF00 |
402 | mov ebx, 5*65536+(TESTS_NUM*LINE_HEIGHT+15+27+12) |
658 | mov edx, aComment2 |
- | |
659 | mov esi, 42 |
- | |
- | 403 | mcall ,,0x8000CCCC,aRight |
|
660 | mcall ; Kolibri - DRAW STRING |
404 | |
661 | 405 | add ebx, (6*10)*65536 |
|
662 | retn |
406 | mcall ,,0x80FFFF00,comment_string_2 |
663 | endp |
407 | ret |
664 | 408 | ;--------------------------------------------------------------------- |
|
665 | proc int2str |
409 | int2str: |
- | 410 | push eax ecx edx edi |
|
666 | push eax ecx edx edi |
411 | mov edi,textarea+7 |
667 | mov edi,APP_MEM_END+7 |
412 | mov dword[textarea+0],' ' |
668 | mov dword[APP_MEM_END+0],' ' |
413 | mov dword[textarea+4],' ' |
669 | mov dword[APP_MEM_END+4],' ' |
414 | mov ecx,10 |
670 | mov ecx,10 |
415 | @@: |
671 | @@: xor edx,edx |
416 | xor edx,edx |
672 | div ecx |
417 | div ecx |
673 | add dl,'0' |
418 | add dl,'0' |
674 | mov [edi],dl |
419 | mov [edi],dl |
675 | dec edi |
- | |
676 | or eax,eax |
- | |
677 | jnz @b |
- | |
678 | pop edi edx ecx eax |
- | |
679 | retn |
- | |
680 | endp |
- | |
681 | - | ||
682 | ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
- | |
683 | - | ||
684 | - | ||
685 | proc subDrawResultComments ; CODE XREF: subDrawBars+92p |
420 | dec edi |
686 | ; subDrawBars+AFp ... |
- | |
687 | xor di, di |
- | |
688 | mov eax, 4 |
- | |
689 | - | ||
690 | locDrawCommentsLoop: ; CODE XREF: subDrawResultComments+1Cj |
- | |
691 | mcall ; Kolibri - DRAW STRING |
- | |
692 | ; ebx = [xstart]*65536+[ystart] |
- | |
693 | ; ecx = 0xX0RRGGBB, edx -> string |
- | |
694 | add bx, 13;55 |
- | |
695 | bt edi, 31 |
- | |
696 | jnb loc_52F |
- | |
697 | add edx, esi |
421 | or eax,eax |
698 | - | ||
699 | loc_52F: ; CODE XREF: subDrawResultComments+12j |
- | |
700 | inc di |
- | |
701 | cmp di, 7 |
- | |
702 | jb locDrawCommentsLoop |
- | |
703 | retn |
- | |
704 | endp |
- | |
705 | - | ||
706 | - | ||
707 | ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
- | |
708 | - | ||
709 | - | ||
710 | proc subDrawResultNumbers ; CODE XREF: subDrawBars+CDp |
- | |
711 | ; subDrawBars+DCp |
- | |
712 | xor edi, edi |
- | |
713 | mov eax, 47 |
- | |
714 | mov esi, 0DDEEFFh |
- | |
715 | - | ||
716 | locDrawNumbersLoop: ; CODE XREF: subDrawResultNumbers+1Ej |
- | |
717 | call subGetDigitsCount |
- | |
718 | mcall ; Kolibri - |
- | |
719 | add dx, 13;55 |
- | |
720 | add ecx, 4 |
- | |
721 | inc edi |
- | |
722 | cmp edi, 7 |
- | |
723 | jb locDrawNumbersLoop |
- | |
724 | retn |
- | |
725 | endp |
- | |
726 | - | ||
727 | - | ||
728 | ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
- | |
729 | - | ||
730 | - | ||
731 | proc subGetDigitsCount ; CODE XREF: subDrawResultNumbers:locDrawNumbersLoopp |
- | |
732 | xor ebx, ebx |
- | |
733 | mov bh, 6 |
- | |
734 | cmp dword[ecx], 99999 |
- | |
735 | ja loc_589 |
- | |
736 | dec bh |
- | |
737 | cmp dword[ecx], 9999 |
- | |
738 | ja loc_589 |
- | |
739 | dec bh |
- | |
740 | cmp dword[ecx], 999 |
- | |
741 | ja loc_589 |
422 | jnz @b |
742 | dec bh |
- | |
743 | cmp dword[ecx], 99 |
- | |
744 | ja loc_589 |
- | |
745 | dec bh |
- | |
746 | cmp dword[ecx], 9 |
- | |
747 | ja loc_589 |
- | |
748 | dec bh |
- | |
749 | - | ||
750 | loc_589: ; CODE XREF: subGetDigitsCount+Aj |
- | |
751 | ; subGetDigitsCount+14j ... |
- | |
752 | bswap ebx |
- | |
753 | inc bl |
- | |
754 | retn |
- | |
755 | endp |
- | |
756 | - | ||
757 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
- | |
758 | - | ||
759 | subOpenSaveDlgProc: ; CODE XREF: seg000:0000059Dj |
- | |
760 | ; DATA XREF: subCreateOpenSaveDlg+Ao |
- | |
761 | call subDrawOpenSaveDlg |
- | |
762 | - | ||
763 | locOSDWaitForEvent: ; CODE XREF: seg000:000005ADj |
- | |
764 | ; seg000:000005C3j ... |
- | |
765 | mov eax, 10 |
- | |
766 | mcall ; Kolibri - |
- | |
767 | cmp eax, 1 |
- | |
768 | jz subOpenSaveDlgProc |
- | |
769 | cmp eax, 2 |
- | |
770 | jz locOSDKeyEvent |
- | |
771 | cmp eax, 3 |
- | |
772 | jz locOSDButtonEvent |
- | |
773 | jmp locOSDWaitForEvent |
- | |
774 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
- | |
775 | - | ||
776 | locOSDKeyEvent: ; CODE XREF: seg000:000005A2j |
- | |
777 | mov eax, 2 |
- | |
778 | mcall ; Kolibri - GET KEY CODE |
- | |
779 | ; Return: ah = keycode |
- | |
780 | cmp ah, 0B3h |
- | |
781 | jnz locOSDNotRightKey |
- | |
782 | mov eax, [dwOSDCaretPos] |
- | |
783 | cmp eax, 41 |
- | |
784 | ja locOSDWaitForEvent |
- | |
785 | inc eax |
- | |
786 | mov [dwOSDCaretPos], eax |
- | |
787 | call subDrawOpenSaveDlgControls |
- | |
788 | jmp locOSDWaitForEvent |
- | |
789 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
- | |
790 | - | ||
791 | locOSDNotRightKey: ; CODE XREF: seg000:000005B9j |
- | |
792 | cmp ah, 0B0h |
- | |
793 | jnz locOSDNotLeftKey |
- | |
794 | mov eax, [dwOSDCaretPos] |
- | |
795 | test eax, eax |
- | |
796 | jz locOSDWaitForEvent |
- | |
797 | dec eax |
- | |
798 | mov [dwOSDCaretPos], eax |
- | |
799 | call subDrawOpenSaveDlgControls |
423 | pop edi edx ecx eax |
800 | jmp locOSDWaitForEvent |
- | |
801 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
- | |
802 | - | ||
803 | locOSDNotLeftKey: ; CODE XREF: seg000:000005D5j |
- | |
804 | cmp ah, 0B6h |
- | |
805 | jnz locOSDNotDeleteKey |
- | |
806 | call subOSDDeleteChar |
- | |
807 | call subDrawOpenSaveDlgControls |
- | |
808 | jmp locOSDWaitForEvent |
- | |
809 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
- | |
810 | - | ||
811 | locOSDNotDeleteKey: ; CODE XREF: seg000:000005F0j |
- | |
812 | cmp ah, 8 |
- | |
813 | jnz locOSDNotBackspaceKey |
- | |
814 | mov eax, [dwOSDCaretPos] |
- | |
815 | test eax, eax |
- | |
816 | jz locOSDWaitForEvent |
- | |
817 | dec eax |
- | |
818 | mov [dwOSDCaretPos], eax |
- | |
819 | call subOSDDeleteChar |
- | |
820 | call subDrawOpenSaveDlgControls |
- | |
821 | jmp locOSDWaitForEvent |
- | |
822 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
- | |
823 | - | ||
824 | locOSDNotBackspaceKey: ; CODE XREF: seg000:00000601j |
- | |
825 | cmp ah, 0Dh |
424 | ret |
826 | jnz locOSDNotReturnKey |
- | |
827 | - | ||
828 | locOSDReturnKey: ; CODE XREF: seg000:000006E1j |
- | |
829 | mov al, ' ' |
- | |
830 | mov edi, [dwBufferPtr] |
425 | ;--------------------------------------------------------------------- |
- | 426 | thread_comment: |
|
- | 427 | or dword [wFlags],1 |
|
- | 428 | mcall 40,0x27 |
|
- | 429 | mov esi,comment_string_1 |
|
- | 430 | cld |
|
- | 431 | @@: |
|
831 | add edi,43 |
432 | lodsb |
832 | mov ecx,43 |
433 | test al,al |
- | 434 | jne @r |
|
- | 435 | sub esi,comment_string_1 |
|
- | 436 | mov eax,esi |
|
- | 437 | dec eax |
|
- | 438 | mov edi, edit1 |
|
- | 439 | mov [edi+48], eax ;ed_size |
|
- | 440 | mov [edi+52], eax ;ed_pos |
|
- | 441 | ;--------------------------------------------------------------------- |
|
- | 442 | .red: |
|
- | 443 | call .draw_window |
|
- | 444 | .still: |
|
- | 445 | mcall 10 ; wait here for event |
|
- | 446 | cmp eax,1 ; redraw request ? |
|
- | 447 | je .red |
|
- | 448 | cmp eax,2 ; key in buffer ? |
|
- | 449 | je .key |
|
- | 450 | cmp eax,3 ; button in buffer ? |
|
833 | std |
451 | je .button |
- | 452 | ||
- | 453 | push dword name_editboxes |
|
- | 454 | call [edit_box_mouse] |
|
- | 455 | jmp .still |
|
- | 456 | ;--------------------------------------------------------------------- |
|
834 | repe scasb |
457 | .key: ; key |
- | 458 | mcall 2 |
|
- | 459 | cmp ah,13 |
|
- | 460 | je .close ;.close_with_open_file |
|
- | 461 | cmp ah,27 |
|
- | 462 | je .close |
|
- | 463 | ||
- | 464 | push dword name_editboxes |
|
- | 465 | call [edit_box_key] |
|
- | 466 | jmp .still |
|
- | 467 | ;--------------------------------------------------------------------- |
|
- | 468 | .button: ; button |
|
- | 469 | mcall 17 |
|
- | 470 | cmp ah,1 ; button id=1 ? |
|
- | 471 | jne .still |
|
- | 472 | .close: |
|
- | 473 | xor dword [wFlags],1 |
|
- | 474 | mcall -1 |
|
835 | cld |
475 | ;--------------------------------------------------------------------- |
- | 476 | .draw_window: |
|
- | 477 | mcall 12,1 |
|
- | 478 | xor eax,eax |
|
- | 479 | xor esi,esi |
|
- | 480 | mcall ,<100,300>,<100,80>,0x34780078,,aComment |
|
836 | inc edi |
481 | push dword name_editboxes |
837 | mov byte[edi+1], 0 |
482 | call [edit_box_draw] |
838 | cmp [dwBufferPtr], aPatternPath ; "/rd/1/pattern.mgb "... |
- | |
839 | jnz locCloseOSD |
483 | mcall 12,2 |
840 | cmp [dwEditLabel], aOpenFile ; "Open file" |
- | |
841 | jnz locSaveFile |
484 | ret |
842 | mov [stFileInfoBlock], 0 |
- | |
843 | mov [dwDataSize], TESTS_NUM*4+44 |
485 | ;--------------------------------------------------------------------- |
844 | bts word[wFlags], 2 |
486 | locLoadFile: |
845 | mov eax,70 ; 58 |
487 | mov [stFileInfoBlock], 0 |
- | 488 | or dword [wFlags],1 |
|
846 | mov ebx,stFileInfoBlock |
489 | mcall 70,stFileInfoBlock |
847 | mcall |
490 | mov esi,mgb_data |
848 | mov esi,APP_MEM_END+100 |
491 | mov edi,results_table+4 |
849 | mov edi,results_table+4 |
492 | cld |
850 | cld |
493 | @@: |
851 | @@: cmp dword[edi+TEST_REC_SIZE-8],0 |
494 | cmp dword[edi+TEST_REC_SIZE-8],0 |
852 | je @f |
495 | je @f |
853 | movsd |
496 | movsd |
854 | add edi,TEST_REC_SIZE-4 |
497 | add edi,TEST_REC_SIZE-4 |
855 | jmp @b |
498 | jmp @b |
856 | @@: |
499 | @@: |
857 | mov edi,aComment2 |
- | |
858 | mov ecx,44 |
500 | mov edi,comment_string_2 |
859 | rep movsb |
501 | mov ecx,44 |
860 | jmp locCloseOSD |
- | |
861 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
502 | rep movsb |
862 | 503 | ret |
|
863 | locSaveFile: ; CODE XREF: seg000:00000654j |
504 | ;--------------------------------------------------------------------- |
864 | mov [stFileInfoBlock], 2 ; 1 |
505 | locSaveFile: |
- | 506 | mov [stFileInfoBlock], 2 |
|
865 | mov [dwDataSize], TESTS_NUM*4+44 |
507 | or dword [wFlags],1 |
866 | bts word[wFlags], 2 |
508 | mov esi,results_table+4 |
867 | mov esi,results_table+4 |
509 | mov edi,mgb_data |
868 | mov edi,APP_MEM_END+100 |
510 | cld |
869 | cld |
511 | @@: |
- | 512 | cmp dword[esi+TEST_REC_SIZE-8],0 |
|
870 | @@: cmp dword[esi+TEST_REC_SIZE-8],0 |
513 | je @f |
871 | je @f |
514 | movsd |
872 | movsd |
515 | add esi,TEST_REC_SIZE-4 |
873 | add esi,TEST_REC_SIZE-4 |
- | |
874 | jmp @b |
516 | jmp @b |
875 | @@: mov esi,aComment2 |
- | |
876 | mov ecx,44 |
- | |
877 | rep movsb |
- | |
878 | mov eax,70 ; 58 |
- | |
879 | mov ebx,stFileInfoBlock |
- | |
880 | mcall |
- | |
881 | jmp locCloseOSD |
- | |
882 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
- | |
883 | - | ||
884 | locOSDNotReturnKey: ; CODE XREF: seg000:00000624j |
- | |
885 | cmp [dwOSDCaretPos], 42 |
- | |
886 | jnb locOSDWaitForEvent |
- | |
887 | mov edi, [dwBufferPtr] |
- | |
888 | add edi, 42 |
- | |
889 | mov esi, edi |
- | |
890 | dec esi |
- | |
891 | mov ecx, 42 |
- | |
892 | sub ecx, [dwOSDCaretPos] |
- | |
893 | std |
- | |
894 | rep movsb |
- | |
895 | shr eax, 8 |
- | |
896 | mov esi, [dwBufferPtr] |
- | |
897 | add esi, [dwOSDCaretPos] |
- | |
898 | mov [esi], al |
- | |
899 | inc [dwOSDCaretPos] |
- | |
900 | call subDrawOpenSaveDlgControls |
- | |
901 | jmp locOSDWaitForEvent |
- | |
902 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
- | |
903 | - | ||
904 | locOSDButtonEvent: ; CODE XREF: seg000:000005A7j |
- | |
905 | mov eax, 17 |
- | |
906 | mcall ; Kolibri - GET PRESSED BUTTON |
- | |
907 | ; Return: ah = button ID |
- | |
908 | cmp ah, 1 |
- | |
909 | jnz locNotCloseOSD |
- | |
910 | jmp locOSDReturnKey |
- | |
911 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
- | |
912 | - | ||
913 | locCloseOSD: ; CODE XREF: seg000:00000644j |
- | |
914 | ; seg000:0000066Cj ... |
- | |
915 | bts [wFlags], 1 |
- | |
916 | btr [wFlags], 0 |
- | |
917 | mov eax, -1 |
- | |
918 | mcall ; Kolibri - FINISH EXECUTION |
- | |
919 | - | ||
920 | locNotCloseOSD: ; CODE XREF: seg000:000006DFj |
- | |
921 | cmp ah, 2 |
- | |
922 | jnz locNotSetCaretOSD |
- | |
923 | mov eax, 37 |
- | |
924 | mov ebx, 1 |
- | |
925 | mcall ; Kolibri - GET MOUSE COORDINATES, WINDOW-RELATIVE |
- | |
926 | ; Return: eax = [x]*65536 + [y] |
- | |
927 | shr eax, 16 |
- | |
928 | sub eax, 21 |
- | |
929 | xor edx, edx |
- | |
930 | mov ebx, 6 |
- | |
931 | div ebx |
- | |
932 | mov [dwOSDCaretPos], eax |
- | |
933 | call subDrawOpenSaveDlgControls |
- | |
934 | jmp locOSDWaitForEvent |
- | |
935 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
- | |
936 | - | ||
937 | locNotSetCaretOSD: ; CODE XREF: seg000:00000700j |
- | |
938 | jmp locOSDWaitForEvent |
- | |
939 | - | ||
940 | ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
- | |
941 | - | ||
942 | - | ||
943 | proc subOSDDeleteChar ; CODE XREF: seg000:000005F2p |
- | |
944 | ; seg000:00000612p |
- | |
945 | mov edi, [dwBufferPtr] |
- | |
946 | add edi, [dwOSDCaretPos] |
- | |
947 | mov esi, edi |
- | |
948 | inc esi |
- | |
949 | mov ecx, 43 |
- | |
950 | sub ecx, [dwOSDCaretPos] |
- | |
951 | cld |
- | |
952 | rep movsb |
- | |
953 | retn |
- | |
954 | endp |
- | |
955 | - | ||
956 | - | ||
957 | ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
- | |
958 | - | ||
959 | - | ||
960 | proc subDrawOpenSaveDlg ; CODE XREF: seg000:subOpenSaveDlgProcp |
- | |
961 | mov eax, 12 |
- | |
962 | mov ebx, 1 |
- | |
963 | mcall ; Kolibri - BEGIN WINDOW REDRAW |
- | |
964 | xor eax, eax |
- | |
965 | mov ebx, 64012Ch |
- | |
966 | mov ecx, 640050h |
- | |
967 | mov edx, 3780078h |
- | |
968 | mcall ; Kolibri - DEFINE/DRAW WINDOW |
- | |
969 | ; ebx = [xstart]*65536+[xsize] |
- | |
970 | ; ecx = [ystart]*65536+[ysize] |
- | |
971 | mov eax, 4 |
- | |
972 | mov ebx, 80008h |
- | |
973 | mov ecx, 10DDEEFFh |
- | |
974 | mov edx, [dwEditLabel] |
- | |
975 | mov esi, [dwEditLabelLen] |
- | |
976 | mcall ; Kolibri - DRAW STRING |
- | |
977 | ; ebx = [xstart]*65536+[ystart] |
- | |
978 | ; ecx = 0xX0RRGGBB, edx -> string |
517 | @@: |
979 | call subDrawOpenSaveDlgControls |
- | |
980 | mov eax, 12 |
- | |
981 | mov ebx, 2 |
- | |
982 | mcall ; Kolibri - END WINDOW REDRAW |
- | |
983 | retn |
- | |
984 | endp |
- | |
985 | - | ||
986 | - | ||
987 | ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
- | |
988 | - | ||
989 | - | ||
990 | proc subDrawOpenSaveDlgControls ; CODE XREF: seg000:000005CBp |
- | |
991 | ; seg000:000005E6p ... |
- | |
992 | pusha |
- | |
993 | mov eax, 8 |
- | |
994 | mov ebx, 150102h |
- | |
995 | mov ecx, 28000Fh |
- | |
996 | mov edx, 40000002h |
- | |
997 | mcall ; Kolibri - DEFINE/DELETE BUTTON |
- | |
998 | ; ebx = [xstart]*65536+[xsize] |
- | |
999 | ; ecx = [ystart]*65536+[ysize] |
518 | mov esi,comment_string_2 |
1000 | ; edx = 0xXYnnnnnn, esi = color |
- | |
1001 | mov eax, 13 |
- | |
1002 | mov edx, 0E0E0E0h |
- | |
1003 | mcall ; Kolibri - DRAW RECTANGLE |
- | |
1004 | ; ebx = [xstart]*65536+[xsize], ecx = [ystart]*65536+[ysize] |
- | |
1005 | ; edx = 0xRRGGBB or 0x80RRGGBB for gradient |
- | |
1006 | push eax |
- | |
1007 | mov eax, 60000h |
- | |
1008 | mul [dwOSDCaretPos] |
- | |
1009 | add eax, 150006h |
- | |
1010 | mov ebx, eax |
- | |
1011 | pop eax |
- | |
1012 | mov edx, 6A73D0h |
- | |
1013 | mcall ; Kolibri - |
- | |
1014 | mov eax, 4 |
- | |
1015 | mov ebx, 15002Ch |
- | |
1016 | xor ecx, ecx |
- | |
1017 | mov edx, [dwBufferPtr] |
- | |
1018 | mov esi, 43 |
- | |
1019 | mcall ; Kolibri - DRAW STRING |
- | |
1020 | ; ebx = [xstart]*65536+[ystart] |
- | |
1021 | ; ecx = 0xX0RRGGBB, edx -> string |
- | |
1022 | popa |
- | |
1023 | retn |
- | |
1024 | endp |
- | |
1025 | - | ||
1026 | ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
- | |
1027 | - | ||
1028 | dwMainWndSlot dd 0 ; DATA XREF: start:loc_46w start+7Dr |
- | |
1029 | dwBufferPtr dd 0 ; DATA XREF: start+13Cw start+18Bw ... |
- | |
1030 | dwEditLabel dd 0 ; DATA XREF: start+146w start+195w ... |
- | |
1031 | dwEditLabelLen dd 0 ; DATA XREF: start+150w start+19Fw ... |
- | |
1032 | aComment db 'Comment' ; DATA XREF: start+146o |
- | |
1033 | aOpenFile db 'Open file' ; DATA XREF: start+195o |
- | |
1034 | ; seg000:0000064Ao |
- | |
1035 | aSaveAs db 'Save as...' ; DATA XREF: start+1D4o |
- | |
1036 | dwOSDCaretPos dd 0 ; DATA XREF: seg000:000005BBr |
- | |
1037 | ; seg000:000005C6w ... |
- | |
1038 | macro unused { |
- | |
1039 | stFileInfoBlock dd 0 ; DATA XREF: start+5Co |
- | |
1040 | ; seg000:00000658w ... |
- | |
1041 | dd 0 |
- | |
1042 | dwDataSize dd 1 ; DATA XREF: seg000:0000065Ew |
- | |
1043 | ; seg000:00000678w |
519 | mov ecx,44 |
1044 | dd APP_MEM_END+100 |
520 | rep movsb |
1045 | dd APP_MEM_END |
521 | mcall 70,stFileInfoBlock |
1046 | aPatternPath db '/hd0/1/pattern.mgb ' ; DATA XREF: start+18Bo |
522 | ret |
1047 | } |
- | |
1048 | align 4 |
523 | ;--------------------------------------------------------------------- |
1049 | stFileInfoBlock dd 0,0,0 |
524 | align 4 |
1050 | dwDataSize dd 1 |
525 | stFileInfoBlock dd 0,0,0 |
1051 | dd APP_MEM_END+100 |
526 | dwDataSize dd TESTS_NUM*4+44 ;1 |
1052 | aPatternPath db '/hd0/1/pattern.mgb ' ; DATA XREF: start+18Bo |
527 | dd mgb_data |
1053 | 528 | db 0 |
|
1054 | ; start+1CAo ... |
529 | dd fname_buf |
1055 | wFlags dd 0 ; DATA XREF: start:loc_70w |
530 | ;--------------------------------------------------------------------- |
1056 | ; start:loc_87w ... |
531 | wFlags dd 0 |
1057 | dwTestEndTime dd 0 ; DATA XREF: subInitTestTimer+14w |
532 | ;--------------------------------------------------------------------- |
1058 | ; subIfTimeElapsed+Dr |
533 | align 4 |
Line 1066... | Line 541... | ||
1066 | ?,?,testDrawText1,aDrawingText1,\ |
541 | ?,?,testDrawText1,aDrawingText1,\ |
1067 | ?,?,testDrawText2,aDrawingText2,\ |
542 | ?,?,testDrawText2,aDrawingText2,\ |
1068 | ?,?,testDrawNumber,aDrawingNumber,\ |
543 | ?,?,testDrawNumber,aDrawingNumber,\ |
1069 | ?,?,testDrawPixel,aDrawingPixel,\ |
544 | ?,?,testDrawPixel,aDrawingPixel,\ |
1070 | 0,0,0,0 |
545 | 0,0,0,0 |
1071 | - | ||
- | 546 | ;--------------------------------------------------------------------- |
|
1072 | LINE_HEIGHT = 13 |
547 | LINE_HEIGHT = 13 |
1073 | TEST_REC_SIZE = 16 |
548 | TEST_REC_SIZE = 16 |
1074 | TESTS_NUM = ($ - results_table) / TEST_REC_SIZE - 1 |
549 | TESTS_NUM = ($ - results_table) / TEST_REC_SIZE - 1 |
1075 | - | ||
1076 | macro cstr name,str { |
- | |
1077 | local ..end |
- | |
1078 | name db ..end-name-1,str |
550 | ;--------------------------------------------------------------------- |
1079 | ..end: |
- | |
1080 | } |
- | |
1081 | - | ||
1082 | aDrawingWindow db 'Window Of Type #3, 325x400 px',0 |
551 | aDrawingWindow db 'Window Of Type #3, 325x400 px',0 |
1083 | aDrawingBar db 'Filled Rectangle, 100x250 px',0 |
552 | aDrawingBar db 'Filled Rectangle, 100x250 px',0 |
1084 | aDrawingPicture db 'Picture, 55x123, px',0 |
553 | aDrawingPicture db 'Picture, 55x123, px',0 |
1085 | aDrawingVLine db 'Vertical Line, 350 px',0 |
554 | aDrawingVLine db 'Vertical Line, 350 px',0 |
1086 | aDrawingHLine db 'Horizontal Line, 270 px',0 |
555 | aDrawingHLine db 'Horizontal Line, 270 px',0 |
Line 1088... | Line 557... | ||
1088 | aDrawingText1 db 'Fixed-width Text, 34 chars',0 |
557 | aDrawingText1 db 'Fixed-width Text, 34 chars',0 |
1089 | aDrawingText2 db 'Proportional Text, 34 chars',0 |
558 | aDrawingText2 db 'Proportional Text, 34 chars',0 |
1090 | aDrawingNumber db 'Decimal Number, 8 digits',0 |
559 | aDrawingNumber db 'Decimal Number, 8 digits',0 |
1091 | aDrawingPixel db 'Single Pixel',0 |
560 | aDrawingPixel db 'Single Pixel',0 |
Line 1092... | Line 561... | ||
1092 | 561 | ||
1093 | aTestText db 'This is a 34-charachters test text' ; DATA XREF: seg000:000002ADo |
- | |
1094 | ; seg000:000002DAo |
562 | aTestText db 'This is a 34-charachters test text' |
1095 | aButtonsText db 'Test Comment+ Pattern+ Open Save',0 |
- | |
1096 | ; DATA XREF: subDrawMainWindow+5Do |
563 | aButtonsText db 'Test Comment+ Pattern+ Open Save',0 |
Line 1097... | Line 564... | ||
1097 | aCaption db 'Menuet Graphical Benchmark 0.3',0 ; DATA XREF: subDrawMainWindow+4Co |
564 | aCaption db 'Kolibri Graphical Benchmark 0.4',0 |
1098 | 565 | ||
Line -... | Line 566... | ||
- | 566 | aLeft db 'Left :',0 |
|
- | 567 | aRight db 'Right :',0 |
|
- | 568 | ||
- | 569 | aComment1 db 'current',0 |
|
- | 570 | aComment2 db 'no pattern',0 |
|
- | 571 | aComment db 'Comment',0 |
|
1099 | aLeft db 'Left :',0 |
572 | ;--------------------------------------------------------------------- |
- | 573 | system_dir_Boxlib db '/sys/lib/box_lib.obj',0 |
|
1100 | aRight db 'Right :',0 |
574 | system_dir_ProcLib db '/sys/lib/proc_lib.obj',0 |
- | 575 | ;--------------------------------------------------------------------- |
|
- | 576 | head_f_i: |
|
- | 577 | head_f_l db 'System error',0 |
|
- | 578 | ||
- | 579 | err_message_found_lib1 db 'box_lib.obj - Not found!',0 |
|
- | 580 | err_message_found_lib2 db 'proc_lib.obj - Not found!',0 |
|
- | 581 | ||
- | 582 | err_message_import1 db 'box_lib.obj - Wrong import!',0 |
|
- | 583 | err_message_import2 db 'proc_lib.obj - Wrong import!',0 |
|
- | 584 | ;--------------------------------------------------------------------- |
|
- | 585 | align 4 |
|
1101 | 586 | l_libs_start: |
|
- | 587 | ||
- | 588 | library01 l_libs system_dir_Boxlib+9, cur_dir_path, library_path, system_dir_Boxlib, \ |
|
1102 | aComment1 db 'current ' ; DATA XREF: start+13Co |
589 | err_message_found_lib1, head_f_l, Box_lib_import, err_message_import1, head_f_i |
- | 590 | ||
- | 591 | library02 l_libs system_dir_ProcLib+9, cur_dir_path, library_path, system_dir_ProcLib, \ |
|
- | 592 | err_message_found_lib2, head_f_l, ProcLib_import, err_message_import2, head_f_i |
|
- | 593 | ||
- | 594 | end_l_libs: |
|
1103 | ; subDrawBars+9Co |
595 | ;--------------------------------------------------------------------- |
- | 596 | align 4 |
|
- | 597 | OpenDialog_data: |
|
1104 | ;dwDrawWindowTime2 dd 0 ; DATA XREF: subSubSavePattern+5o |
598 | .type dd 1 ; Save |
- | 599 | .procinfo dd procinfo ;+4 |
|
- | 600 | .com_area_name dd communication_area_name ;+8 |
|
- | 601 | .com_area dd 0 ;+12 |
|
- | 602 | .opendir_pach dd temp_dir_pach ;+16 |
|
- | 603 | .dir_default_pach dd communication_area_default_pach ;+20 |
|
- | 604 | .start_path dd open_dialog_path ;+24 |
|
- | 605 | .draw_window dd draw_window ;+28 |
|
- | 606 | .status dd 0 ;+32 |
|
- | 607 | .openfile_pach dd fname_buf ;+36 |
|
- | 608 | .filename_area dd filename_area ;+40 |
|
- | 609 | .filter_area dd Filter |
|
- | 610 | .x: |
|
- | 611 | .x_size dw 420 ;+48 ; Window X size |
|
- | 612 | .x_start dw 10 ;+50 ; Window X position |
|
- | 613 | .y: |
|
- | 614 | .y_size dw 320 ;+52 ; Window y size |
|
- | 615 | .y_start dw 10 ;+54 ; Window Y position |
|
- | 616 | ||
- | 617 | communication_area_name: |
|
- | 618 | db 'FFFFFFFF_open_dialog',0 |
|
- | 619 | open_dialog_path: |
|
- | 620 | db '/sys/File Managers/opendial',0 |
|
- | 621 | communication_area_default_pach: |
|
1105 | ; ; subDrawBars+18o ... |
622 | db '/rd0/1/',0 |
- | 623 | ||
- | 624 | Filter: |
|
- | 625 | dd Filter.end - Filter |
|
- | 626 | .1: |
|
- | 627 | db 'MGB',0 |
|
- | 628 | .end: |
|
- | 629 | db 0 |
|
- | 630 | ||
- | 631 | start_temp_file_name: db 'pattern.mgb',0 |
|
- | 632 | ||
- | 633 | path4 db '/rd/1/pattern.mgb',0 |
|
- | 634 | ;--------------------------------------------------------------------- |
|
- | 635 | align 4 |
|
- | 636 | ProcLib_import: |
|
1106 | ; dd 0 |
637 | OpenDialog_Init dd aOpenDialog_Init |
1107 | ; dd 0 |
638 | OpenDialog_Start dd aOpenDialog_Start |
- | 639 | ;OpenDialog__Version dd aOpenDialog_Version |
|
- | 640 | dd 0 |
|
- | 641 | dd 0 |
|
- | 642 | aOpenDialog_Init db 'OpenDialog_init',0 |
|
- | 643 | aOpenDialog_Start db 'OpenDialog_start',0 |
|
- | 644 | ;aOpenDialog_Version db 'Version_OpenDialog',0 |
|
1108 | ; dd 0 |
645 | ;--------------------------------------------------------------------- |
- | 646 | align 4 |
|
- | 647 | Box_lib_import: |
|
- | 648 | ;init_lib dd a_init |
|
- | 649 | ;version_lib dd a_version |
|
- | 650 | ||
- | 651 | ||
- | 652 | edit_box_draw dd aEdit_box_draw |
|
- | 653 | edit_box_key dd aEdit_box_key |
|
- | 654 | edit_box_mouse dd aEdit_box_mouse |
|
- | 655 | ;version_ed dd aVersion_ed |
|
- | 656 | ||
- | 657 | ;check_box_draw dd aCheck_box_draw |
|
- | 658 | ;check_box_mouse dd aCheck_box_mouse |
|
- | 659 | ;version_ch dd aVersion_ch |
|
- | 660 | ||
- | 661 | ;option_box_draw dd aOption_box_draw |
|
- | 662 | ;option_box_mouse dd aOption_box_mouse |
|
- | 663 | ;version_op dd aVersion_op |
|
- | 664 | ||
- | 665 | ;scrollbar_ver_draw dd aScrollbar_ver_draw |
|
- | 666 | ;scrollbar_ver_mouse dd aScrollbar_ver_mouse |
|
- | 667 | ;scrollbar_hor_draw dd aScrollbar_hor_draw |
|
- | 668 | ;scrollbar_hor_mouse dd aScrollbar_hor_mouse |
|
- | 669 | ;version_scrollbar dd aVersion_scrollbar |
|
- | 670 | ||
- | 671 | ;dinamic_button_draw dd aDbutton_draw |
|
- | 672 | ;dinamic_button_mouse dd aDbutton_mouse |
|
- | 673 | ;version_dbutton dd aVersion_dbutton |
|
1109 | ; dd 0 |
674 | |
- | 675 | ;menu_bar_draw dd aMenu_bar_draw |
|
- | 676 | ;menu_bar_mouse dd aMenu_bar_mouse |
|
- | 677 | ;menu_bar_activate dd aMenu_bar_activate |
|
- | 678 | ;version_menu_bar dd aVersion_menu_bar |
|
- | 679 | ||
- | 680 | ;FileBrowser_draw dd aFileBrowser_draw |
|
- | 681 | ;FileBrowser_mouse dd aFileBrowser_mouse |
|
- | 682 | ;FileBrowser_key dd aFileBrowser_key |
|
1110 | ; dd 0 |
683 | ;Version_FileBrowser dd aVersion_FileBrowser |
- | 684 | ||
- | 685 | ;PathShow_prepare dd sz_PathShow_prepare |
|
- | 686 | ;PathShow_draw dd sz_PathShow_draw |
|
- | 687 | ;Version_path_show dd szVersion_path_show |
|
- | 688 | dd 0 |
|
1111 | ; dd 0 |
689 | dd 0 |
- | 690 | ||
- | 691 | ;a_init db 'lib_init',0 |
|
- | 692 | ;a_version db 'version',0 |
|
- | 693 | ||
- | 694 | aEdit_box_draw db 'edit_box',0 |
|
- | 695 | aEdit_box_key db 'edit_box_key',0 |
|
- | 696 | aEdit_box_mouse db 'edit_box_mouse',0 |
|
- | 697 | ;aVersion_ed db 'version_ed',0 |
|
- | 698 | ||
- | 699 | ;aCheck_box_draw db 'check_box_draw',0 |
|
- | 700 | ;aCheck_box_mouse db 'check_box_mouse',0 |
|
- | 701 | ;aVersion_ch db 'version_ch',0 |
|
- | 702 | ||
- | 703 | ;aOption_box_draw db 'option_box_draw',0 |
|
- | 704 | ;aOption_box_mouse db 'option_box_mouse',0 |
|
- | 705 | ;aVersion_op db 'version_op',0 |
|
- | 706 | ||
1112 | aComment2 db 'no pattern ' |
707 | ;aScrollbar_ver_draw db 'scrollbar_v_draw',0 |
- | 708 | ;aScrollbar_ver_mouse db 'scrollbar_v_mouse',0 |
|
- | 709 | ;aScrollbar_hor_draw db 'scrollbar_h_draw',0 |
|
- | 710 | ;aScrollbar_hor_mouse db 'scrollbar_h_mouse',0 |
|
1113 | ; DATA XREF: subDrawBars+72o |
711 | ;aVersion_scrollbar db 'version_scrollbar',0 |
- | 712 | ||
- | 713 | ;aDbutton_draw db 'dbutton_draw',0 |
|
- | 714 | ;aDbutton_mouse db 'dbutton_mouse',0 |
|
- | 715 | ;aVersion_dbutton db 'version_dbutton',0 |
|
- | 716 | ||
- | 717 | ;aMenu_bar_draw db 'menu_bar_draw',0 |
|
- | 718 | ;aMenu_bar_mouse db 'menu_bar_mouse',0 |
|
- | 719 | ;aMenu_bar_activate db 'menu_bar_activate',0 |
|
1114 | ; subDrawBars+B9o |
720 | ;aVersion_menu_bar db 'version_menu_bar',0 |
- | 721 | ||
- | 722 | ;aFileBrowser_draw db 'FileBrowser_draw',0 |
|
- | 723 | ;aFileBrowser_mouse db 'FileBrowser_mouse',0 |
|
- | 724 | ;aFileBrowser_key db 'FileBrowser_key',0 |
|
- | 725 | ;aVersion_FileBrowser db 'version_FileBrowser',0 |
|
- | 726 | ||
- | 727 | ;sz_PathShow_prepare db 'PathShow_prepare',0 |
|
- | 728 | ;sz_PathShow_draw db 'PathShow_draw',0 |
|
- | 729 | ;szVersion_path_show db 'version_PathShow',0 |
|
- | 730 | ;--------------------------------------------------------------------- |
|
- | 731 | ; for EDITBOX |
|
- | 732 | align 4 |
|
- | 733 | name_editboxes: |
|
- | 734 | edit1 edit_box 200,10,30,0xffffff,0xbbddff,0,0,0,255,comment_string_1,mouse_dd,ed_focus+ed_always_focus,0 |
|
- | 735 | name_editboxes_end: |
|
- | 736 | ;--------------------------------------------------------------------- |
|
- | 737 | ||
- | 738 | IM_END: |
|
- | 739 | mouse_dd rd 1 |
|
- | 740 | align 4 |
|
- | 741 | dwTestEndTime dd ? |
|
- | 742 | dwMainPID dd ? |
|
- | 743 | ;--------------------------------------------------------------------- |
|
- | 744 | textarea: |
|
- | 745 | rb 8 |
|
- | 746 | ;--------------------------------------------------------------------- |
|
- | 747 | comment_string_1: |
|
- | 748 | rb 44 |
|
- | 749 | ;--------------------------------------------------------------------- |
|
- | 750 | comment_string_2: |
|
- | 751 | rb 44 |
|
- | 752 | ;--------------------------------------------------------------------- |
|
- | 753 | mgb_data: |
|
- | 754 | rb 100 |
|
- | 755 | ;--------------------------------------------------------------------- |
|
- | 756 | procinfo: |
|
- | 757 | rb 1024 |
|
- | 758 | ;--------------------------------------------------------------------- |
|
- | 759 | cur_dir_path: |
|
- | 760 | rb 4096 |
|
- | 761 | ;--------------------------------------------------------------------- |
|
- | 762 | library_path: |
|
- | 763 | rb 4096 |
|
- | 764 | ;--------------------------------------------------------------------- |
|
- | 765 | temp_dir_pach: |
|
- | 766 | rb 4096 |
|
- | 767 | ;--------------------------------------------------------------------- |
|
- | 768 | fname_buf: |
|
- | 769 | rb 4096 |
|
- | 770 | ;--------------------------------------------------------------------- |
|
- | 771 | filename_area: |
|
- | 772 | rb 256 |
|
- | 773 | ;--------------------------------------------------------------------- |
|
- | 774 | rb 4096 |
|
- | 775 | thread_stack2: |
|
- | 776 | ;--------------------------------------------------------------------- |
|
- | 777 | rb 4096 |
|
- | 778 | thread_stack1: |
|
- | 779 | ;--------------------------------------------------------------------- |
|
1115 | APP_MEM_END: rb 30 ; ; DATA XREF: seg000:off_10o |
780 | rb 4096 |