Subversion Repositories Kolibri OS

Rev

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