Subversion Repositories Kolibri OS

Rev

Rev 386 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 386 Rev 478
Line 33... Line 33...
33
  dd 0x200000
33
  dd 0x200000
34
  dd 0x07FFF0
34
  dd 0x07FFF0
35
  dd 0
35
  dd 0
36
  dd 0
36
  dd 0
Line -... Line 37...
-
 
37
 
-
 
38
include 'macros.inc'
-
 
39
;__CPU_type	equ	p6  ; charge it
37
 
40
 
Line 38... Line 41...
38
include 'proc32.inc'
41
include 'proc32.inc'
Line 63... Line 66...
63
 
66
 
64
locRedrawEvent: 			; CODE XREF: start+3Cj
67
locRedrawEvent: 			; CODE XREF: start+3Cj
Line 65... Line 68...
65
		call	subDrawMainWindow
68
		call	subDrawMainWindow
66
 
-
 
67
locWaitForEvent:			; CODE XREF: start+6Cj start:loc_B3j ...
-
 
68
		mov	eax, 23
69
 
69
		mov	ebx, 20
70
locWaitForEvent:			; CODE XREF: start+6Cj start:loc_B3j ...
70
		int	0x40		 ; Kolibri - WAIT FOR EVENT WITH TIMEOUT
71
		mcall	23, 20		; Kolibri - WAIT FOR EVENT WITH TIMEOUT
71
					; ebx = timeout
72
					; ebx = timeout
72
					; Return: eax = event
73
					; Return: eax = event
Line 91... Line 92...
91
 
92
 
92
loc_87: 				; CODE XREF: start+55j
93
loc_87: 				; CODE XREF: start+55j
93
		btr	word[wFlags], 1
94
		btr	word[wFlags], 1
94
		jnb	locWaitForEvent
95
		jnb	locWaitForEvent
95
		call	subDelay100ms
-
 
96
		mov	eax, 12h
-
 
97
		mov	ebx, 3
-
 
98
		mov	ecx, [dwMainWndSlot]
96
		call	subDelay100ms
99
		int	0x40		 ; Kolibri - ACTIVATE WINDOW
97
		mcall	0x12, 3, [dwMainWndSlot]	; Kolibri - ACTIVATE WINDOW
100
					; ecx = slot
98
					; ecx = slot
Line 101... Line 99...
101
		call	subDelay100ms
99
		call	subDelay100ms
102
 
100
 
Line 110... Line 108...
110
 
108
 
Line 111... Line 109...
111
; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
109
; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
112
 
-
 
113
 
-
 
114
proc		subGetThreadInfo	; CODE XREF: start+5p start:loc_36p
110
 
115
		mov	eax, 9
111
 
116
		mov	ebx, APP_MEM_END
112
proc		subGetThreadInfo	; CODE XREF: start+5p start:loc_36p
117
		int	0x40		 ; Kolibri - GET THREAD INFO
113
		mcall	9, APP_MEM_END	; Kolibri - GET THREAD INFO
118
					; ebx -> buffer, ecx = slot (-1 for self)
114
					; ebx -> buffer, ecx = slot (-1 for self)
Line 119... Line 115...
119
					; Return: eax = maximum slot
115
					; Return: eax = maximum slot
Line 120... Line 116...
120
		retn
116
		retn
121
endp
-
 
122
 
-
 
123
 
117
endp
124
; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
118
 
125
 
119
 
126
 
120
; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
Line 127... Line 121...
127
proc		subDelay100ms		; CODE XREF: start+6Ep start+85p
121
 
128
		mov	eax, 5
122
 
Line 129... Line 123...
129
		mov	ebx, 0Ah
123
proc		subDelay100ms		; CODE XREF: start+6Ep start+85p
130
		int	0x40		 ; Kolibri - DELAY
-
 
131
					; ebx = time (in 1/100th of second)
124
		mcall	5, 0x0a 	; Kolibri - DELAY
132
		retn
125
					; ebx = time (in 1/100th of second)
133
endp
126
		retn
134
 
127
endp
135
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
128
 
136
; START OF FUNCTION CHUNK FOR start
129
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Line 151... Line 144...
151
		jz	locActionSave
144
		jz	locActionSave
152
		jmp	locWaitForEvent
145
		jmp	locWaitForEvent
153
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
146
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Line 154... Line 147...
154
 
147
 
155
locButtonEvent: 			; CODE XREF: start:loc_6Aj
-
 
156
		mov	eax, 11h
148
locButtonEvent: 			; CODE XREF: start:loc_6Aj
157
		int	0x40		 ; Kolibri - GET PRESSED BUTTON
149
		mcall	0x11		; Kolibri - GET PRESSED BUTTON
158
					; Return: ah = button ID
150
					; Return: ah = button ID
159
		cmp	ah, 1
151
		cmp	ah, 1
160
		jnz	locNotClose
-
 
161
		mov	eax, -1
152
		jnz	locNotClose
Line 162... Line 153...
162
		int	0x40		 ; Kolibri - FINISH EXECUTION
153
		mcall	-1		; Kolibri - FINISH EXECUTION
163
 
154
 
164
locNotClose:				; CODE XREF: start+E6j
155
locNotClose:				; CODE XREF: start+E6j
Line 165... Line 156...
165
		cmp	ah, 2
156
		cmp	ah, 2
166
		jnz	locNotTest
157
		jnz	locNotTest
167
 
158
 
168
locActionTest:				; CODE XREF: start+B5j
-
 
169
		bts	[wFlags], 0
-
 
170
		jb	locWaitForEvent
159
locActionTest:				; CODE XREF: start+B5j
171
		mov	eax, 5
160
		bts	[wFlags], 0
Line 172... Line 161...
172
		mov	ebx, 50
161
		jb	locWaitForEvent
173
		int	0x40		 ; Kolibri - DELAY
-
 
174
					; ebx = time (in 1/100th of second)
-
 
175
 
-
 
176
loc_132:
-
 
177
		mov	eax, 51
162
		mcall	5, 50		; Kolibri - DELAY
178
		mov	ebx, 1
163
					; ebx = time (in 1/100th of second)
179
		mov	ecx, subTestWndProc
164
 
180
		mov	edx, 0x17FFF0
165
loc_132:
181
		int	0x40		 ; Kolibri - CREATE THREAD
166
		mcall	51, 1, subTestWndProc, 0x17FFF0; Kolibri - CREATE THREAD
182
					; ebx = 1 - unique subfunction
167
					; ebx = 1 - unique subfunction
Line 239... Line 224...
239
 
224
 
Line 240... Line 225...
240
; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
225
; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
241
 
-
 
242
 
-
 
243
proc		subCreateOpenSaveDlg	  ; CODE XREF: start+15Ap start+1A9p ...
-
 
244
		mov	eax, 51
-
 
245
		mov	ebx, 1
226
 
246
		mov	ecx, subOpenSaveDlgProc
227
 
247
		mov	edx, 0x19FFF0
228
proc		subCreateOpenSaveDlg	  ; CODE XREF: start+15Ap start+1A9p ...
248
		int	0x40		 ; Kolibri - CREATE THREAD
229
		mcall	51, 1, subOpenSaveDlgProc, 0x19FFF0; Kolibri - CREATE THREAD
249
					; ebx = 1 - unique subfunction
230
					; ebx = 1 - unique subfunction
250
					; ecx = starting eip
231
					; ecx = starting eip
Line 280... Line 261...
280
		jb	locDrawNextWindow
261
		jb	locDrawNextWindow
281
		mov	[results_table+TEST_REC_SIZE*0], edi
262
		mov	[results_table+TEST_REC_SIZE*0], edi
282
		call	subInitTestTimer
263
		call	subInitTestTimer
Line 283... Line 264...
283
 
264
 
284
locDrawNextBar: 			; CODE XREF: seg000:00000269j
-
 
285
		mov	eax, 0Dh
-
 
286
		mov	ebx, 0A0064h
-
 
287
		mov	ecx, 1E00FAh
-
 
288
		mov	edx, 6A73D0h
265
locDrawNextBar: 			; CODE XREF: seg000:00000269j
289
		int	0x40		 ; Kolibri - DRAW RECTANGLE
266
		mcall	0x0d, 0x0A0064, 0x1E00FA, 0x6A73D0; Kolibri - DRAW RECTANGLE
290
					; ebx = [xstart]*65536+[xsize], ecx = [ystart]*65536+[ysize]
267
					; ebx = [xstart]*65536+[xsize], ecx = [ystart]*65536+[ysize]
291
					; edx = 0xRRGGBB or 0x80RRGGBB for gradient
268
					; edx = 0xRRGGBB or 0x80RRGGBB for gradient
292
		call	subIfTimeElapsed
269
		call	subIfTimeElapsed
293
		jb	locDrawNextBar
270
		jb	locDrawNextBar
294
		mov	[results_table+TEST_REC_SIZE*1], edi
271
		mov	[results_table+TEST_REC_SIZE*1], edi
Line 295... Line 272...
295
		call	subInitTestTimer
272
		call	subInitTestTimer
296
 
-
 
297
locDrawNextLine:			; CODE XREF: seg000:00000291j
-
 
298
		mov	eax, 38
-
 
299
		mov	ebx, 8C008Ch
273
 
300
		mov	ecx, 1E017Ch
274
locDrawNextLine:			; CODE XREF: seg000:00000291j
301
		mov	edx, 1090207Fh
275
		; Kolibri - DRAW LINE
302
		int	0x40		 ; Kolibri - DRAW LINE
276
		mcall	38, 0x8C008C, 0x1E017C, 0x1090207F
303
					; ebx = [xstart]*65536+[xend], ecx = [ystart]*65536+[yend]
277
					; ebx = [xstart]*65536+[xend], ecx = [ystart]*65536+[yend]
304
					; edx = 0x00RRGGBB - color or 0x01****** - inversed line
278
					; edx = 0x00RRGGBB - color or 0x01****** - inversed line
305
		call	subIfTimeElapsed
279
		call	subIfTimeElapsed
306
		jb	locDrawNextLine
280
		jb	locDrawNextLine
Line 307... Line 281...
307
		mov	[results_table+TEST_REC_SIZE*2], edi
281
		mov	[results_table+TEST_REC_SIZE*2], edi
308
		call	subInitTestTimer
-
 
309
 
282
		call	subInitTestTimer
310
locDrawNextText1:			; CODE XREF: seg000:000002BEj
-
 
311
		mov	eax, 4
-
 
312
		mov	ebx, 0A012Ch
-
 
313
		mov	ecx, 0AA66h
283
 
314
		mov	edx, aTestText ;        "This is a 34-charachters test text"
284
locDrawNextText1:			; CODE XREF: seg000:000002BEj
315
		mov	esi, 34
285
		; Kolibri - DRAW STRING
316
		int	0x40		 ; Kolibri - DRAW STRING
286
		mcall	4, 0x0A012C, 0x0AA66, aTestText, 34
317
					; ebx = [xstart]*65536+[ystart]
287
					; ebx = [xstart]*65536+[ystart]
318
					; ecx = 0xX0RRGGBB, edx -> string
288
					; ecx = 0xX0RRGGBB, edx -> string
319
		call	subIfTimeElapsed
289
		call	subIfTimeElapsed
Line 320... Line 290...
320
		jb	locDrawNextText1
290
		jb	locDrawNextText1
321
		mov	[results_table+TEST_REC_SIZE*3], edi
-
 
322
		call	subInitTestTimer
291
		mov	[results_table+TEST_REC_SIZE*3], edi
323
 
-
 
324
locDrawNextText2:			; CODE XREF: seg000:000002EBj
-
 
325
		mov	eax, 4
-
 
326
		mov	ebx, 0A015Eh
292
		call	subInitTestTimer
327
		mov	ecx, 10E7B850h
293
 
328
		mov	edx, aTestText ;        "This is a 34-charachters test text"
294
locDrawNextText2:			; CODE XREF: seg000:000002EBj
329
		mov	esi, 34
295
		; Kolibri - DRAW STRING
330
		int	0x40		 ; Kolibri - DRAW STRING
296
		mcall	4, 0x0A015E, 0x10E7B850, aTestText, 34
331
					; ebx = [xstart]*65536+[ystart]
297
					; ebx = [xstart]*65536+[ystart]
332
					; ecx = 0xX0RRGGBB, edx -> string
298
					; ecx = 0xX0RRGGBB, edx -> string
Line 333... Line 299...
333
		call	subIfTimeElapsed
299
		call	subIfTimeElapsed
334
		jb	locDrawNextText2
-
 
335
		mov	[results_table+TEST_REC_SIZE*4], edi
-
 
336
		call	subInitTestTimer
-
 
337
 
-
 
338
locDrawNextNumber:			; CODE XREF: seg000:00000318j
-
 
339
		mov	eax, 47
300
		jb	locDrawNextText2
340
		mov	ebx, 80000h
301
		mov	[results_table+TEST_REC_SIZE*4], edi
341
		mov	ecx, 12345678
302
		call	subInitTestTimer
342
		mov	edx, 140172h
303
 
343
		mov	esi, 0E0B27Bh
304
locDrawNextNumber:			; CODE XREF: seg000:00000318j
344
		int	0x40		 ; Kolibri - DRAW NUMBER
305
					; Kolibri - DRAW NUMBER
345
					; bl = 0/1 - ecx is number/pointer
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]
346
					; bh = 0/1/2 - dec/hex/bin
311
					; esi = 0xX0RRGGBB
347
					; highword(ebx) = number of digits
312
		mcall	47, 80000h, 12345678, 140172h, 0E0B27Bh
348
					; ecx = number/pointer
313
 
349
					; edx = [x]*65536+[y]
314
 
Line 350... Line 315...
350
					; esi = 0xX0RRGGBB
315
 
351
		call	subIfTimeElapsed
-
 
352
		jb	locDrawNextNumber
-
 
353
		mov	[results_table+TEST_REC_SIZE*5], edi
-
 
354
		call	subInitTestTimer
-
 
355
 
316
		call	subIfTimeElapsed
356
locDrawNextPixel:			; CODE XREF: seg000:00000340j
317
		jb	locDrawNextNumber
-
 
318
		mov	[results_table+TEST_REC_SIZE*5], edi
357
		mov	eax, 1
319
		call	subInitTestTimer
358
		mov	ebx, 100
320
 
359
		mov	ecx, 100
321
locDrawNextPixel:			; CODE XREF: seg000:00000340j
360
		mov	edx, 0FFFFFFh
322
					; Kolibri - PUT PIXEL
361
		int	0x40		 ; Kolibri - PUT PIXEL
323
					; ebx = x, ecx = y, edx = color
362
					; ebx = x, ecx = y, edx = color
324
		mcall	1, 100, 100, 0x0FFFFFF
363
		call	subIfTimeElapsed
-
 
364
		jb	locDrawNextPixel
325
		call	subIfTimeElapsed
-
 
326
		jb	locDrawNextPixel
Line 365... Line 327...
365
		mov	[results_table+TEST_REC_SIZE*6], edi
327
		mov	[results_table+TEST_REC_SIZE*6], edi
Line 366... Line 328...
366
}
328
}
367
		bts	word[wFlags], 1
329
		bts	word[wFlags], 1
368
		btr	word[wFlags], 0
330
		btr	word[wFlags], 0
369
		mov	eax, -1
331
		; Kolibri - FINISH EXECUTION
370
		int	0x40		 ; Kolibri - FINISH EXECUTION
332
		mcall	-1
371
 
333
 
372
; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
334
; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
373
 
335
 
374
 
336
 
375
proc		subInitTestTimer	; CODE XREF: seg000:subTestWndProcp
337
proc		subInitTestTimer	; CODE XREF: seg000:subTestWndProcp
376
					; seg000:00000249p ...
338
					; seg000:00000249p ...
Line 377... Line 339...
377
		xor	edi, edi
339
		xor	edi, edi
378
		mov	eax, 26
340
		mov	eax, 26
379
		mov	ebx, 9
341
		mov	ebx, 9
380
		int	0x40		 ; Kolibri - GET SYSTEM PARAMETERS - TIME COUNTER
342
		mcall		 ; Kolibri - GET SYSTEM PARAMETERS - TIME COUNTER
381
					; Return: eax = time counter
343
					; Return: eax = time counter
382
		inc	eax
344
		inc	eax
383
		mov	ecx, eax
345
		mov	ecx, eax
384
		add	eax, 100
346
		add	eax, 100
Line 400... Line 362...
400
proc		subIfTimeElapsed	; CODE XREF: seg000:0000023Cp
362
proc		subIfTimeElapsed	; CODE XREF: seg000:0000023Cp
401
					; seg000:00000264p ...
363
					; seg000:00000264p ...
402
		inc	edi
364
		inc	edi
403
		mov	eax, 26
365
		mov	eax, 26
404
		mov	ebx, 9
366
		mov	ebx, 9
405
		int	0x40		 ; Kolibri - GET SYSTEM PARAMETERS - TIME COUNTER
367
		mcall		 ; Kolibri - GET SYSTEM PARAMETERS - TIME COUNTER
406
					; Return: eax = time counter
368
					; Return: eax = time counter
407
		cmp	eax, [dwTestEndTime]
369
		cmp	eax, [dwTestEndTime]
408
		retn
370
		retn
409
endp
371
endp
Line 437... Line 399...
437
 
399
 
438
 
400
 
439
proc		subDrawMainWindow	; CODE XREF: start:locRedrawEventp
401
proc		subDrawMainWindow	; CODE XREF: start:locRedrawEventp
440
		mov	eax, 12
402
		mov	eax, 12
441
		mov	ebx, 1
403
		mov	ebx, 1
442
		int	0x40		 ; Kolibri - BEGIN WINDOW REDRAW
404
		mcall		 ; Kolibri - BEGIN WINDOW REDRAW
443
		mov	eax,48
405
		mov	eax,48
444
		mov	ebx,4
406
		mov	ebx,4
445
		int	0x40
407
		mcall
446
		mov	ebx, 100*65536+72*5+14;640145h
408
		mov	ebx, 100*65536+72*5+14;640145h
447
		mov	ecx, 80*65536+TESTS_NUM*LINE_HEIGHT+15+20+35
409
		mov	ecx, 80*65536+TESTS_NUM*LINE_HEIGHT+15+20+35
448
		add	cx, ax
410
		add	cx, ax
449
		mov	edx, 33000000h
411
		mov	edx, 33000000h
450
		mov	edi, aCaption
412
		mov	edi, aCaption
451
		xor	eax, eax
413
		xor	eax, eax
452
		int	0x40
414
		mcall
453
		mov	eax, 8
415
		mov	eax, 8
454
		mov	ebx, 050036h+12
416
		mov	ebx, 050036h+12
455
		mov	ecx, 5*65536+20
417
		mov	ecx, 5*65536+20
Line 456... Line 418...
456
		mov	edx, 2
418
		mov	edx, 2
457
		mov	esi, 0x00007F7F;702050h
419
		mov	esi, 0x00007F7F;702050h
458
 
420
 
459
locDrawButtonsLoop:			; CODE XREF: subDrawMainWindow+3Bj
421
locDrawButtonsLoop:			; CODE XREF: subDrawMainWindow+3Bj
460
		int	0x40		 ; Kolibri - DEFINE/DELETE BUTTON
422
		mcall		 ; Kolibri - DEFINE/DELETE BUTTON
461
					; ebx = [xstart]*65536+[xsize]
423
					; ebx = [xstart]*65536+[xsize]
462
					; ecx = [ystart]*65536+[ysize]
424
					; ecx = [ystart]*65536+[ysize]
Line 473... Line 435...
473
 
435
 
474
		mov	eax, 4
436
		mov	eax, 4
475
		mov	ebx, 27*65536+12
437
		mov	ebx, 27*65536+12
476
		mov	ecx, 0x80DDEEFF
438
		mov	ecx, 0x80DDEEFF
477
		mov	edx, aButtonsText ; "Test    Comment+  Pattern+   Open     "...
439
		mov	edx, aButtonsText ; "Test    Comment+  Pattern+   Open     "...
478
		int	0x40		 ; Kolibri - DRAW STRING
440
		mcall		 ; Kolibri - DRAW STRING
479
					; ebx = [xstart]*65536+[ystart]
441
					; ebx = [xstart]*65536+[ystart]
480
					; ecx = 0xX0RRGGBB, edx -> string
442
					; ecx = 0xX0RRGGBB, edx -> string
Line 481... Line 443...
481
		call	subDrawBars
443
		call	subDrawBars
Line 485... Line 447...
485
		mov	esi,(72*5)/2
447
		mov	esi,(72*5)/2
486
		call	drawSeparator
448
		call	drawSeparator
Line 487... Line 449...
487
 
449
 
488
		mov	eax, 12
450
		mov	eax, 12
489
		mov	ebx, 2
451
		mov	ebx, 2
490
		int	0x40		 ; Kolibri - END WINDOW REDRAW
452
		mcall		 ; Kolibri - END WINDOW REDRAW
491
		retn
453
		retn
Line 492... Line 454...
492
endp
454
endp
493
 
455
 
494
proc		drawSeparator
456
proc		drawSeparator
495
		mov	eax,1
457
		mov	eax,1
496
		mov	ebx,3
458
		mov	ebx,3
497
	    @@: int	0x40
459
	    @@: mcall
498
		add	ebx,2
460
		add	ebx,2
499
		dec	esi
461
		dec	esi
500
		jnz	@b
462
		jnz	@b
Line 507... Line 469...
507
proc		testDrawWindow
469
proc		testDrawWindow
508
		xor	eax, eax
470
		xor	eax, eax
509
		mov	ebx, 640145h
471
		mov	ebx, 640145h
510
		mov	ecx, 4F0190h
472
		mov	ecx, 4F0190h
511
		mov	edx, 3000000h
473
		mov	edx, 3000000h
512
		int	0x40
474
		mcall
513
		retn
475
		retn
514
endp
476
endp
Line 515... Line 477...
515
 
477
 
516
proc		testDrawBar
478
proc		testDrawBar
517
		mov	eax, 13
479
		mov	eax, 13
518
		mov	ebx, 0A0064h
480
		mov	ebx, 0A0064h
519
		mov	ecx, 1E00FAh
481
		mov	ecx, 1E00FAh
520
		mov	edx, 6A73D0h
482
		mov	edx, 6A73D0h
521
		int	0x40
483
		mcall
522
		retn
484
		retn
Line 523... Line 485...
523
endp
485
endp
524
 
486
 
525
proc		testDrawPicture
487
proc		testDrawPicture
526
		mov	eax, 7
488
		mov	eax, 7
527
		mov	ebx, 0
489
		mov	ebx, 0
528
		mov	ecx, 90*65536+123
490
		mov	ecx, 90*65536+123
529
		mov	edx, 15*65536+33
491
		mov	edx, 15*65536+33
530
		int	0x40
492
		mcall
Line 531... Line 493...
531
		retn
493
		retn
532
endp
494
endp
533
 
495
 
534
proc		testDrawVertLine
496
proc		testDrawVertLine
535
		mov	eax, 38
497
		mov	eax, 38
536
		mov	ebx, 300*65536+300 ;8C008Ch
498
		mov	ebx, 300*65536+300 ;8C008Ch
537
		mov	ecx, 30*65536+380  ;1E017Ch
499
		mov	ecx, 30*65536+380  ;1E017Ch
538
		mov	edx, 1090207Fh
500
		mov	edx, 1090207Fh
Line 539... Line 501...
539
		int	0x40
501
		mcall
540
		retn
502
		retn
541
endp
503
endp
542
 
504
 
543
proc		testDrawHorzLine
505
proc		testDrawHorzLine
544
		mov	eax, 38
506
		mov	eax, 38
545
		mov	ebx, 30*65536+300  ;20008Ch
507
		mov	ebx, 30*65536+300  ;20008Ch
546
		mov	ecx, 380*65536+380 ;17C017Ch
508
		mov	ecx, 380*65536+380 ;17C017Ch
Line 547... Line 509...
547
		mov	edx, 1090207Fh
509
		mov	edx, 1090207Fh
548
		int	0x40
510
		mcall
549
		retn
511
		retn
550
endp
512
endp
551
 
513
 
552
proc		testDrawFreeLine
514
proc		testDrawFreeLine
553
		mov	eax, 38
515
		mov	eax, 38
554
		mov	ebx, 30*65536+300  ;20008Ch
516
		mov	ebx, 30*65536+300  ;20008Ch
Line 555... Line 517...
555
		mov	ecx, 380*65536+30  ;17C001Eh
517
		mov	ecx, 380*65536+30  ;17C001Eh
556
		mov	edx, 1090207Fh
518
		mov	edx, 1090207Fh
557
		int	0x40
519
		mcall
558
		retn
520
		retn
559
endp
521
endp
560
 
522
 
561
proc		testDrawText1
523
proc		testDrawText1
562
		mov	eax, 4
524
		mov	eax, 4
563
		mov	ebx, 0C012Ch
525
		mov	ebx, 0C012Ch
Line 564... Line 526...
564
		mov	ecx, 0AA66h
526
		mov	ecx, 0AA66h
565
		mov	edx, aTestText
527
		mov	edx, aTestText
566
		mov	esi, 34
528
		mov	esi, 34
567
		int	0x40
529
		mcall
568
		retn
530
		retn
569
endp
531
endp
570
 
532
 
571
proc		testDrawText2
533
proc		testDrawText2
572
		mov	eax, 4
534
		mov	eax, 4
Line 573... Line 535...
573
		mov	ebx, 1B013Bh
535
		mov	ebx, 1B013Bh
574
		mov	ecx, 10E7B850h
536
		mov	ecx, 10E7B850h
575
		mov	edx, aTestText
537
		mov	edx, aTestText
576
		mov	esi, 34
538
		mov	esi, 34
577
		int	0x40
539
		mcall
578
		retn
540
		retn
579
endp
541
endp
580
 
542
 
581
proc		testDrawNumber
543
proc		testDrawNumber
Line 582... Line 544...
582
		mov	eax, 47
544
		mov	eax, 47
583
		mov	ebx, 80000h
545
		mov	ebx, 80000h
584
		mov	ecx, 12345678
546
		mov	ecx, 12345678
585
		mov	edx, 2A014Ah
547
		mov	edx, 2A014Ah
586
		mov	esi, 0E0B27Bh
548
		mov	esi, 0E0B27Bh
587
		int	0x40
549
		mcall
588
		retn
550
		retn
589
endp
551
endp
Line 590... Line 552...
590
 
552
 
Line 613... Line 575...
613
		add	ecx,-2
575
		add	ecx,-2
614
		shl	ecx,16
576
		shl	ecx,16
615
		mov	cx,LINE_HEIGHT
577
		mov	cx,LINE_HEIGHT
616
		mov	ebx,0*65536+72*5+5
578
		mov	ebx,0*65536+72*5+5
617
		xor	edx,edx
579
		xor	edx,edx
618
		int	0x40
580
		mcall
619
		pop	ebx
581
		pop	ebx
Line 620... Line 582...
620
 
582
 
621
		and	ebx,0x0000FFFF
583
		and	ebx,0x0000FFFF
622
		or	ebx,5*65536
584
		or	ebx,5*65536
623
		mov	edx,[edi+TEST_REC_SIZE-4]
585
		mov	edx,[edi+TEST_REC_SIZE-4]
624
		mov	ecx,0x8000CCCC ; 0x00E7E05A
586
		mov	ecx,0x8000CCCC ; 0x00E7E05A
625
		mov	eax,4
587
		mov	eax,4
Line 626... Line 588...
626
		int	0x40
588
		mcall
627
 
589
 
628
		push	'=' 0x00FFFF00 0x00FFFF7F 0x00FFFF7F
590
		push	'=' 0x00FFFF00 0x00FFFF7F 0x00FFFF7F
629
		mov	eax,[edi+0]
591
		mov	eax,[edi+0]
Line 644... Line 606...
644
		call	int2str
606
		call	int2str
645
		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
646
		mov	edx,APP_MEM_END
608
		mov	edx,APP_MEM_END
647
		mov	esi,8
609
		mov	esi,8
648
		mov	eax,4
610
		mov	eax,4
649
		int	0x40
611
		mcall
Line 650... Line 612...
650
 
612
 
651
		pop	ecx
613
		pop	ecx
652
		mov	eax,[edi+4]
614
		mov	eax,[edi+4]
653
		call	int2str
615
		call	int2str
654
		add	ebx,(6*8+6+10)*65536
616
		add	ebx,(6*8+6+10)*65536
655
		mov	eax,4
617
		mov	eax,4
Line 656... Line 618...
656
		int	0x40
618
		mcall
657
 
619
 
658
		pop	ecx
620
		pop	ecx
659
		add	ebx,(-6-5)*65536
621
		add	ebx,(-6-5)*65536
660
		mov	edx,esp
622
		mov	edx,esp
661
		mov	esi,1
623
		mov	esi,1
Line 662... Line 624...
662
		int	0x40
624
		mcall
663
		add	esp,4
625
		add	esp,4
664
 
626
 
Line 669... Line 631...
669
 
631
 
670
		mov	eax, 13
632
		mov	eax, 13
671
		mov	ebx, 0*65536+72*5+5
633
		mov	ebx, 0*65536+72*5+5
672
		mov	ecx, (TESTS_NUM*LINE_HEIGHT+15+25)*65536+26
634
		mov	ecx, (TESTS_NUM*LINE_HEIGHT+15+25)*65536+26
673
		xor	edx, edx
635
		xor	edx, edx
Line 674... Line 636...
674
		int	0x40
636
		mcall
675
 
637
 
676
		mov	eax, 4
638
		mov	eax, 4
677
		mov	ebx, 5*65536+(TESTS_NUM*LINE_HEIGHT+15+27)
639
		mov	ebx, 5*65536+(TESTS_NUM*LINE_HEIGHT+15+27)
678
		mov	ecx, 0x8000CCCC
640
		mov	ecx, 0x8000CCCC
Line 679... Line 641...
679
		mov	edx, aLeft
641
		mov	edx, aLeft
680
		int	0x40		 ; Kolibri - DRAW STRING
642
		mcall		 ; Kolibri - DRAW STRING
681
 
643
 
682
		add	ebx, (6*10)*65536
644
		add	ebx, (6*10)*65536
683
		mov	ecx, 0x00FFFF00
645
		mov	ecx, 0x00FFFF00
Line 684... Line 646...
684
		mov	edx, aComment1
646
		mov	edx, aComment1
685
		mov	esi, 42
647
		mov	esi, 42
686
		int	0x40		 ; Kolibri - DRAW STRING
648
		mcall		 ; Kolibri - DRAW STRING
687
 
649
 
688
		mov	eax, 4
650
		mov	eax, 4
Line 689... Line 651...
689
		mov	ebx, 5*65536+(TESTS_NUM*LINE_HEIGHT+15+27+12)
651
		mov	ebx, 5*65536+(TESTS_NUM*LINE_HEIGHT+15+27+12)
690
		mov	ecx, 0x8000CCCC
652
		mov	ecx, 0x8000CCCC
691
		mov	edx, aRight
653
		mov	edx, aRight
692
		int	0x40		 ; Kolibri - DRAW STRING
654
		mcall		 ; Kolibri - DRAW STRING
693
 
655
 
Line 694... Line 656...
694
		add	ebx, (6*10)*65536
656
		add	ebx, (6*10)*65536
695
		mov	ecx, 0x00FFFF00
657
		mov	ecx, 0x00FFFF00
Line 696... Line 658...
696
		mov	edx, aComment2
658
		mov	edx, aComment2
Line 724... Line 686...
724
					; subDrawBars+AFp ...
686
					; subDrawBars+AFp ...
725
		xor	di, di
687
		xor	di, di
726
		mov	eax, 4
688
		mov	eax, 4
Line 727... Line 689...
727
 
689
 
728
locDrawCommentsLoop:			; CODE XREF: subDrawResultComments+1Cj
690
locDrawCommentsLoop:			; CODE XREF: subDrawResultComments+1Cj
729
		int	0x40		 ; Kolibri - DRAW STRING
691
		mcall		 ; Kolibri - DRAW STRING
730
					; ebx = [xstart]*65536+[ystart]
692
					; ebx = [xstart]*65536+[ystart]
731
					; ecx = 0xX0RRGGBB, edx -> string
693
					; ecx = 0xX0RRGGBB, edx -> string
732
		add	bx, 13;55
694
		add	bx, 13;55
733
		bt	edi, 31
695
		bt	edi, 31
Line 751... Line 713...
751
		mov	eax, 47
713
		mov	eax, 47
752
		mov	esi, 0DDEEFFh
714
		mov	esi, 0DDEEFFh
Line 753... Line 715...
753
 
715
 
754
locDrawNumbersLoop:			; CODE XREF: subDrawResultNumbers+1Ej
716
locDrawNumbersLoop:			; CODE XREF: subDrawResultNumbers+1Ej
755
		call	subGetDigitsCount
717
		call	subGetDigitsCount
756
		int	0x40		 ; Kolibri -
718
		mcall		 ; Kolibri -
757
		add	dx, 13;55
719
		add	dx, 13;55
758
		add	ecx, 4
720
		add	ecx, 4
759
		inc	edi
721
		inc	edi
760
		cmp	edi, 7
722
		cmp	edi, 7
Line 799... Line 761...
799
		call	subDrawOpenSaveDlg
761
		call	subDrawOpenSaveDlg
Line 800... Line 762...
800
 
762
 
801
locOSDWaitForEvent:			; CODE XREF: seg000:000005ADj
763
locOSDWaitForEvent:			; CODE XREF: seg000:000005ADj
802
					; seg000:000005C3j ...
764
					; seg000:000005C3j ...
803
		mov	eax, 10
765
		mov	eax, 10
804
		int	0x40		 ; Kolibri -
766
		mcall		 ; Kolibri -
805
		cmp	eax, 1
767
		cmp	eax, 1
806
		jz	subOpenSaveDlgProc
768
		jz	subOpenSaveDlgProc
807
		cmp	eax, 2
769
		cmp	eax, 2
808
		jz	locOSDKeyEvent
770
		jz	locOSDKeyEvent
Line 811... Line 773...
811
		jmp	locOSDWaitForEvent
773
		jmp	locOSDWaitForEvent
812
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
774
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Line 813... Line 775...
813
 
775
 
814
locOSDKeyEvent: 			; CODE XREF: seg000:000005A2j
776
locOSDKeyEvent: 			; CODE XREF: seg000:000005A2j
815
		mov	eax, 2
777
		mov	eax, 2
816
		int	0x40		 ; Kolibri - GET KEY CODE
778
		mcall		 ; Kolibri - GET KEY CODE
817
					; Return: ah = keycode
779
					; Return: ah = keycode
818
		cmp	ah, 0B3h
780
		cmp	ah, 0B3h
819
		jnz	locOSDNotRightKey
781
		jnz	locOSDNotRightKey
820
		mov	eax, [dwOSDCaretPos]
782
		mov	eax, [dwOSDCaretPos]
Line 880... Line 842...
880
		mov	[stFileInfoBlock], 0
842
		mov	[stFileInfoBlock], 0
881
		mov	[dwDataSize], TESTS_NUM*4+44
843
		mov	[dwDataSize], TESTS_NUM*4+44
882
		bts	word[wFlags], 2
844
		bts	word[wFlags], 2
883
		mov	eax,70 ; 58
845
		mov	eax,70 ; 58
884
		mov	ebx,stFileInfoBlock
846
		mov	ebx,stFileInfoBlock
885
		int	0x40
847
		mcall
886
		mov	esi,APP_MEM_END+100
848
		mov	esi,APP_MEM_END+100
887
		mov	edi,results_table+4
849
		mov	edi,results_table+4
888
		cld
850
		cld
889
	    @@: cmp	dword[edi+TEST_REC_SIZE-8],0
851
	    @@: cmp	dword[edi+TEST_REC_SIZE-8],0
890
		je	@f
852
		je	@f
Line 913... Line 875...
913
	    @@: mov	esi,aComment2
875
	    @@: mov	esi,aComment2
914
		mov	ecx,44
876
		mov	ecx,44
915
		rep	movsb
877
		rep	movsb
916
		mov	eax,70 ; 58
878
		mov	eax,70 ; 58
917
		mov	ebx,stFileInfoBlock
879
		mov	ebx,stFileInfoBlock
918
		int	0x40
880
		mcall
919
		jmp	locCloseOSD
881
		jmp	locCloseOSD
920
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
882
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Line 921... Line 883...
921
 
883
 
922
locOSDNotReturnKey:			; CODE XREF: seg000:00000624j
884
locOSDNotReturnKey:			; CODE XREF: seg000:00000624j
Line 939... Line 901...
939
		jmp	locOSDWaitForEvent
901
		jmp	locOSDWaitForEvent
940
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
902
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Line 941... Line 903...
941
 
903
 
942
locOSDButtonEvent:			; CODE XREF: seg000:000005A7j
904
locOSDButtonEvent:			; CODE XREF: seg000:000005A7j
943
		mov	eax, 17
905
		mov	eax, 17
944
		int	0x40		 ; Kolibri - GET PRESSED BUTTON
906
		mcall		 ; Kolibri - GET PRESSED BUTTON
945
					; Return: ah = button ID
907
					; Return: ah = button ID
946
		cmp	ah, 1
908
		cmp	ah, 1
947
		jnz	locNotCloseOSD
909
		jnz	locNotCloseOSD
948
		jmp	locOSDReturnKey
910
		jmp	locOSDReturnKey
Line 951... Line 913...
951
locCloseOSD:				; CODE XREF: seg000:00000644j
913
locCloseOSD:				; CODE XREF: seg000:00000644j
952
					; seg000:0000066Cj ...
914
					; seg000:0000066Cj ...
953
		bts	[wFlags], 1
915
		bts	[wFlags], 1
954
		btr	[wFlags], 0
916
		btr	[wFlags], 0
955
		mov	eax, -1
917
		mov	eax, -1
956
		int	0x40		 ; Kolibri - FINISH EXECUTION
918
		mcall		 ; Kolibri - FINISH EXECUTION
Line 957... Line 919...
957
 
919
 
958
locNotCloseOSD: 			; CODE XREF: seg000:000006DFj
920
locNotCloseOSD: 			; CODE XREF: seg000:000006DFj
959
		cmp	ah, 2
921
		cmp	ah, 2
960
		jnz	locNotSetCaretOSD
922
		jnz	locNotSetCaretOSD
961
		mov	eax, 37
923
		mov	eax, 37
962
		mov	ebx, 1
924
		mov	ebx, 1
963
		int	0x40		 ; Kolibri - GET MOUSE COORDINATES, WINDOW-RELATIVE
925
		mcall		 ; Kolibri - GET MOUSE COORDINATES, WINDOW-RELATIVE
964
					; Return: eax = [x]*65536 + [y]
926
					; Return: eax = [x]*65536 + [y]
965
		shr	eax, 16
927
		shr	eax, 16
966
		sub	eax, 21
928
		sub	eax, 21
967
		xor	edx, edx
929
		xor	edx, edx
Line 996... Line 958...
996
 
958
 
997
 
959
 
998
proc		subDrawOpenSaveDlg	; CODE XREF: seg000:subOpenSaveDlgProcp
960
proc		subDrawOpenSaveDlg	; CODE XREF: seg000:subOpenSaveDlgProcp
999
		mov	eax, 12
961
		mov	eax, 12
1000
		mov	ebx, 1
962
		mov	ebx, 1
1001
		int	0x40		 ; Kolibri - BEGIN WINDOW REDRAW
963
		mcall		 ; Kolibri - BEGIN WINDOW REDRAW
1002
		xor	eax, eax
964
		xor	eax, eax
1003
		mov	ebx, 64012Ch
965
		mov	ebx, 64012Ch
1004
		mov	ecx, 640050h
966
		mov	ecx, 640050h
1005
		mov	edx, 3780078h
967
		mov	edx, 3780078h
1006
		int	0x40		 ; Kolibri - DEFINE/DRAW WINDOW
968
		mcall		 ; Kolibri - DEFINE/DRAW WINDOW
1007
					; ebx = [xstart]*65536+[xsize]
969
					; ebx = [xstart]*65536+[xsize]
1008
					; ecx = [ystart]*65536+[ysize]
970
					; ecx = [ystart]*65536+[ysize]
1009
		mov	eax, 4
971
		mov	eax, 4
1010
		mov	ebx, 80008h
972
		mov	ebx, 80008h
1011
		mov	ecx, 10DDEEFFh
973
		mov	ecx, 10DDEEFFh
1012
		mov	edx, [dwEditLabel]
974
		mov	edx, [dwEditLabel]
1013
		mov	esi, [dwEditLabelLen]
975
		mov	esi, [dwEditLabelLen]
1014
		int	0x40		 ; Kolibri - DRAW STRING
976
		mcall		 ; Kolibri - DRAW STRING
1015
					; ebx = [xstart]*65536+[ystart]
977
					; ebx = [xstart]*65536+[ystart]
1016
					; ecx = 0xX0RRGGBB, edx -> string
978
					; ecx = 0xX0RRGGBB, edx -> string
1017
		call	subDrawOpenSaveDlgControls
979
		call	subDrawOpenSaveDlgControls
1018
		mov	eax, 12
980
		mov	eax, 12
1019
		mov	ebx, 2
981
		mov	ebx, 2
1020
		int	0x40		 ; Kolibri - END WINDOW REDRAW
982
		mcall		 ; Kolibri - END WINDOW REDRAW
Line 1021... Line 983...
1021
		retn
983
		retn
Line 1030... Line 992...
1030
		pusha
992
		pusha
1031
		mov	eax, 8
993
		mov	eax, 8
1032
		mov	ebx, 150102h
994
		mov	ebx, 150102h
1033
		mov	ecx, 28000Fh
995
		mov	ecx, 28000Fh
1034
		mov	edx, 40000002h
996
		mov	edx, 40000002h
1035
		int	0x40		 ; Kolibri - DEFINE/DELETE BUTTON
997
		mcall		 ; Kolibri - DEFINE/DELETE BUTTON
1036
					; ebx = [xstart]*65536+[xsize]
998
					; ebx = [xstart]*65536+[xsize]
1037
					; ecx = [ystart]*65536+[ysize]
999
					; ecx = [ystart]*65536+[ysize]
1038
					; edx = 0xXYnnnnnn, esi = color
1000
					; edx = 0xXYnnnnnn, esi = color
1039
		mov	eax, 13
1001
		mov	eax, 13
1040
		mov	edx, 0E0E0E0h
1002
		mov	edx, 0E0E0E0h
1041
		int	0x40		 ; Kolibri - DRAW RECTANGLE
1003
		mcall		 ; Kolibri - DRAW RECTANGLE
1042
					; ebx = [xstart]*65536+[xsize], ecx = [ystart]*65536+[ysize]
1004
					; ebx = [xstart]*65536+[xsize], ecx = [ystart]*65536+[ysize]
1043
					; edx = 0xRRGGBB or 0x80RRGGBB for gradient
1005
					; edx = 0xRRGGBB or 0x80RRGGBB for gradient
1044
		push	eax
1006
		push	eax
1045
		mov	eax, 60000h
1007
		mov	eax, 60000h
1046
		mul	[dwOSDCaretPos]
1008
		mul	[dwOSDCaretPos]
1047
		add	eax, 150006h
1009
		add	eax, 150006h
1048
		mov	ebx, eax
1010
		mov	ebx, eax
1049
		pop	eax
1011
		pop	eax
1050
		mov	edx, 6A73D0h
1012
		mov	edx, 6A73D0h
1051
		int	0x40		 ; Kolibri -
1013
		mcall		 ; Kolibri -
1052
		mov	eax, 4
1014
		mov	eax, 4
1053
		mov	ebx, 15002Ch
1015
		mov	ebx, 15002Ch
1054
		xor	ecx, ecx
1016
		xor	ecx, ecx
1055
		mov	edx, [dwBufferPtr]
1017
		mov	edx, [dwBufferPtr]
1056
		mov	esi, 43
1018
		mov	esi, 43
1057
		int	0x40		 ; Kolibri - DRAW STRING
1019
		mcall		 ; Kolibri - DRAW STRING
1058
					; ebx = [xstart]*65536+[ystart]
1020
					; ebx = [xstart]*65536+[ystart]
1059
					; ecx = 0xX0RRGGBB, edx -> string
1021
					; ecx = 0xX0RRGGBB, edx -> string
1060
		popa
1022
		popa
1061
		retn
1023
		retn
1062
endp
1024
endp