Subversion Repositories Kolibri OS

Rev

Rev 478 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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