35,9 → 35,6 |
dd 0 |
dd 0 |
|
include 'macros.inc' |
;__CPU_type equ p6 ; charge it |
|
include 'proc32.inc' |
|
; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
68,7 → 65,9 |
call subDrawMainWindow |
|
locWaitForEvent: ; CODE XREF: start+6Cj start:loc_B3j ... |
mcall 23, 20 ; Kolibri - WAIT FOR EVENT WITH TIMEOUT |
mov eax, 23 |
mov ebx, 20 |
int 0x40 ; Kolibri - WAIT FOR EVENT WITH TIMEOUT |
; ebx = timeout |
; Return: eax = event |
cmp eax, 1 |
94,7 → 93,10 |
btr word[wFlags], 1 |
jnb locWaitForEvent |
call subDelay100ms |
mcall 0x12, 3, [dwMainWndSlot] ; Kolibri - ACTIVATE WINDOW |
mov eax, 12h |
mov ebx, 3 |
mov ecx, [dwMainWndSlot] |
int 0x40 ; Kolibri - ACTIVATE WINDOW |
; ecx = slot |
call subDelay100ms |
|
110,7 → 112,9 |
|
|
proc subGetThreadInfo ; CODE XREF: start+5p start:loc_36p |
mcall 9, APP_MEM_END ; Kolibri - GET THREAD INFO |
mov eax, 9 |
mov ebx, APP_MEM_END |
int 0x40 ; Kolibri - GET THREAD INFO |
; ebx -> buffer, ecx = slot (-1 for self) |
; Return: eax = maximum slot |
retn |
121,7 → 125,9 |
|
|
proc subDelay100ms ; CODE XREF: start+6Ep start+85p |
mcall 5, 0x0a ; Kolibri - DELAY |
mov eax, 5 |
mov ebx, 0Ah |
int 0x40 ; Kolibri - DELAY |
; ebx = time (in 1/100th of second) |
retn |
endp |
130,7 → 136,8 |
; START OF FUNCTION CHUNK FOR start |
|
locKeyEvent: ; CODE XREF: start+41j |
mcall 2 ; Kolibri - GET KEY CODE |
mov eax, 2 |
int 0x40 ; Kolibri - GET KEY CODE |
; Return: ah = keycode |
cmp ah, 't' |
jz locActionTest |
146,11 → 153,13 |
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
|
locButtonEvent: ; CODE XREF: start:loc_6Aj |
mcall 0x11 ; Kolibri - GET PRESSED BUTTON |
mov eax, 11h |
int 0x40 ; Kolibri - GET PRESSED BUTTON |
; Return: ah = button ID |
cmp ah, 1 |
jnz locNotClose |
mcall -1 ; Kolibri - FINISH EXECUTION |
mov eax, -1 |
int 0x40 ; Kolibri - FINISH EXECUTION |
|
locNotClose: ; CODE XREF: start+E6j |
cmp ah, 2 |
159,11 → 168,17 |
locActionTest: ; CODE XREF: start+B5j |
bts [wFlags], 0 |
jb locWaitForEvent |
mcall 5, 50 ; Kolibri - DELAY |
mov eax, 5 |
mov ebx, 50 |
int 0x40 ; Kolibri - DELAY |
; ebx = time (in 1/100th of second) |
|
loc_132: |
mcall 51, 1, subTestWndProc, 0x17FFF0; Kolibri - CREATE THREAD |
mov eax, 51 |
mov ebx, 1 |
mov ecx, subTestWndProc |
mov edx, 0x17FFF0 |
int 0x40 ; Kolibri - CREATE THREAD |
; ebx = 1 - unique subfunction |
; ecx = starting eip |
; edx = starting esp |
226,7 → 241,11 |
|
|
proc subCreateOpenSaveDlg ; CODE XREF: start+15Ap start+1A9p ... |
mcall 51, 1, subOpenSaveDlgProc, 0x19FFF0; Kolibri - CREATE THREAD |
mov eax, 51 |
mov ebx, 1 |
mov ecx, subOpenSaveDlgProc |
mov edx, 0x19FFF0 |
int 0x40 ; Kolibri - CREATE THREAD |
; ebx = 1 - unique subfunction |
; ecx = starting eip |
; edx = starting esp |
263,7 → 282,11 |
call subInitTestTimer |
|
locDrawNextBar: ; CODE XREF: seg000:00000269j |
mcall 0x0d, 0x0A0064, 0x1E00FA, 0x6A73D0; Kolibri - DRAW RECTANGLE |
mov eax, 0Dh |
mov ebx, 0A0064h |
mov ecx, 1E00FAh |
mov edx, 6A73D0h |
int 0x40 ; Kolibri - DRAW RECTANGLE |
; ebx = [xstart]*65536+[xsize], ecx = [ystart]*65536+[ysize] |
; edx = 0xRRGGBB or 0x80RRGGBB for gradient |
call subIfTimeElapsed |
272,8 → 295,11 |
call subInitTestTimer |
|
locDrawNextLine: ; CODE XREF: seg000:00000291j |
; Kolibri - DRAW LINE |
mcall 38, 0x8C008C, 0x1E017C, 0x1090207F |
mov eax, 38 |
mov ebx, 8C008Ch |
mov ecx, 1E017Ch |
mov edx, 1090207Fh |
int 0x40 ; Kolibri - DRAW LINE |
; ebx = [xstart]*65536+[xend], ecx = [ystart]*65536+[yend] |
; edx = 0x00RRGGBB - color or 0x01****** - inversed line |
call subIfTimeElapsed |
282,8 → 308,12 |
call subInitTestTimer |
|
locDrawNextText1: ; CODE XREF: seg000:000002BEj |
; Kolibri - DRAW STRING |
mcall 4, 0x0A012C, 0x0AA66, aTestText, 34 |
mov eax, 4 |
mov ebx, 0A012Ch |
mov ecx, 0AA66h |
mov edx, aTestText ; "This is a 34-charachters test text" |
mov esi, 34 |
int 0x40 ; Kolibri - DRAW STRING |
; ebx = [xstart]*65536+[ystart] |
; ecx = 0xX0RRGGBB, edx -> string |
call subIfTimeElapsed |
292,8 → 322,12 |
call subInitTestTimer |
|
locDrawNextText2: ; CODE XREF: seg000:000002EBj |
; Kolibri - DRAW STRING |
mcall 4, 0x0A015E, 0x10E7B850, aTestText, 34 |
mov eax, 4 |
mov ebx, 0A015Eh |
mov ecx, 10E7B850h |
mov edx, aTestText ; "This is a 34-charachters test text" |
mov esi, 34 |
int 0x40 ; Kolibri - DRAW STRING |
; ebx = [xstart]*65536+[ystart] |
; ecx = 0xX0RRGGBB, edx -> string |
call subIfTimeElapsed |
302,7 → 336,12 |
call subInitTestTimer |
|
locDrawNextNumber: ; CODE XREF: seg000:00000318j |
; Kolibri - DRAW NUMBER |
mov eax, 47 |
mov ebx, 80000h |
mov ecx, 12345678 |
mov edx, 140172h |
mov esi, 0E0B27Bh |
int 0x40 ; Kolibri - DRAW NUMBER |
; bl = 0/1 - ecx is number/pointer |
; bh = 0/1/2 - dec/hex/bin |
; highword(ebx) = number of digits |
309,10 → 348,6 |
; ecx = number/pointer |
; edx = [x]*65536+[y] |
; esi = 0xX0RRGGBB |
mcall 47, 80000h, 12345678, 140172h, 0E0B27Bh |
|
|
|
call subIfTimeElapsed |
jb locDrawNextNumber |
mov [results_table+TEST_REC_SIZE*5], edi |
319,9 → 354,12 |
call subInitTestTimer |
|
locDrawNextPixel: ; CODE XREF: seg000:00000340j |
; Kolibri - PUT PIXEL |
mov eax, 1 |
mov ebx, 100 |
mov ecx, 100 |
mov edx, 0FFFFFFh |
int 0x40 ; Kolibri - PUT PIXEL |
; ebx = x, ecx = y, edx = color |
mcall 1, 100, 100, 0x0FFFFFF |
call subIfTimeElapsed |
jb locDrawNextPixel |
mov [results_table+TEST_REC_SIZE*6], edi |
328,8 → 366,8 |
} |
bts word[wFlags], 1 |
btr word[wFlags], 0 |
; Kolibri - FINISH EXECUTION |
mcall -1 |
mov eax, -1 |
int 0x40 ; Kolibri - FINISH EXECUTION |
|
; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ |
|
339,7 → 377,7 |
xor edi, edi |
mov eax, 26 |
mov ebx, 9 |
mcall ; Kolibri - GET SYSTEM PARAMETERS - TIME COUNTER |
int 0x40 ; Kolibri - GET SYSTEM PARAMETERS - TIME COUNTER |
; Return: eax = time counter |
inc eax |
mov ecx, eax |
348,7 → 386,7 |
|
locWait10ms: ; CODE XREF: subInitTestTimer+22j |
mov eax, 26 |
mcall ; Kolibri - GET SYSTEM PARAMETERS - TIME COUNTER |
int 0x40 ; Kolibri - GET SYSTEM PARAMETERS - TIME COUNTER |
; Return: eax = time counter |
cmp eax, ecx |
jb locWait10ms |
364,7 → 402,7 |
inc edi |
mov eax, 26 |
mov ebx, 9 |
mcall ; Kolibri - GET SYSTEM PARAMETERS - TIME COUNTER |
int 0x40 ; Kolibri - GET SYSTEM PARAMETERS - TIME COUNTER |
; Return: eax = time counter |
cmp eax, [dwTestEndTime] |
retn |
401,10 → 439,10 |
proc subDrawMainWindow ; CODE XREF: start:locRedrawEventp |
mov eax, 12 |
mov ebx, 1 |
mcall ; Kolibri - BEGIN WINDOW REDRAW |
int 0x40 ; Kolibri - BEGIN WINDOW REDRAW |
mov eax,48 |
mov ebx,4 |
mcall |
int 0x40 |
mov ebx, 100*65536+72*5+14;640145h |
mov ecx, 80*65536+TESTS_NUM*LINE_HEIGHT+15+20+35 |
add cx, ax |
411,7 → 449,7 |
mov edx, 33000000h |
mov edi, aCaption |
xor eax, eax |
mcall |
int 0x40 |
mov eax, 8 |
mov ebx, 050036h+12 |
mov ecx, 5*65536+20 |
419,7 → 457,7 |
mov esi, 0x00007F7F;702050h |
|
locDrawButtonsLoop: ; CODE XREF: subDrawMainWindow+3Bj |
mcall ; Kolibri - DEFINE/DELETE BUTTON |
int 0x40 ; Kolibri - DEFINE/DELETE BUTTON |
; ebx = [xstart]*65536+[xsize] |
; ecx = [ystart]*65536+[ysize] |
; edx = 0xXYnnnnnn, esi = color |
437,7 → 475,7 |
mov ebx, 27*65536+12 |
mov ecx, 0x80DDEEFF |
mov edx, aButtonsText ; "Test Comment+ Pattern+ Open "... |
mcall ; Kolibri - DRAW STRING |
int 0x40 ; Kolibri - DRAW STRING |
; ebx = [xstart]*65536+[ystart] |
; ecx = 0xX0RRGGBB, edx -> string |
call subDrawBars |
449,7 → 487,7 |
|
mov eax, 12 |
mov ebx, 2 |
mcall ; Kolibri - END WINDOW REDRAW |
int 0x40 ; Kolibri - END WINDOW REDRAW |
retn |
endp |
|
456,7 → 494,7 |
proc drawSeparator |
mov eax,1 |
mov ebx,3 |
@@: mcall |
@@: int 0x40 |
add ebx,2 |
dec esi |
jnz @b |
471,7 → 509,7 |
mov ebx, 640145h |
mov ecx, 4F0190h |
mov edx, 3000000h |
mcall |
int 0x40 |
retn |
endp |
|
480,7 → 518,7 |
mov ebx, 0A0064h |
mov ecx, 1E00FAh |
mov edx, 6A73D0h |
mcall |
int 0x40 |
retn |
endp |
|
489,7 → 527,7 |
mov ebx, 0 |
mov ecx, 90*65536+123 |
mov edx, 15*65536+33 |
mcall |
int 0x40 |
retn |
endp |
|
498,7 → 536,7 |
mov ebx, 300*65536+300 ;8C008Ch |
mov ecx, 30*65536+380 ;1E017Ch |
mov edx, 1090207Fh |
mcall |
int 0x40 |
retn |
endp |
|
507,7 → 545,7 |
mov ebx, 30*65536+300 ;20008Ch |
mov ecx, 380*65536+380 ;17C017Ch |
mov edx, 1090207Fh |
mcall |
int 0x40 |
retn |
endp |
|
516,7 → 554,7 |
mov ebx, 30*65536+300 ;20008Ch |
mov ecx, 380*65536+30 ;17C001Eh |
mov edx, 1090207Fh |
mcall |
int 0x40 |
retn |
endp |
|
526,7 → 564,7 |
mov ecx, 0AA66h |
mov edx, aTestText |
mov esi, 34 |
mcall |
int 0x40 |
retn |
endp |
|
536,7 → 574,7 |
mov ecx, 10E7B850h |
mov edx, aTestText |
mov esi, 34 |
mcall |
int 0x40 |
retn |
endp |
|
546,7 → 584,7 |
mov ecx, 12345678 |
mov edx, 2A014Ah |
mov esi, 0E0B27Bh |
mcall |
int 0x40 |
retn |
endp |
|
555,7 → 593,7 |
mov ebx, 100 |
mov ecx, 100 |
mov edx, 0FFFFFFh |
mcall |
int 0x40 |
retn |
endp |
|
577,7 → 615,7 |
mov cx,LINE_HEIGHT |
mov ebx,0*65536+72*5+5 |
xor edx,edx |
mcall |
int 0x40 |
pop ebx |
|
and ebx,0x0000FFFF |
585,7 → 623,7 |
mov edx,[edi+TEST_REC_SIZE-4] |
mov ecx,0x8000CCCC ; 0x00E7E05A |
mov eax,4 |
mcall |
int 0x40 |
|
push '=' 0x00FFFF00 0x00FFFF7F 0x00FFFF7F |
mov eax,[edi+0] |
608,7 → 646,7 |
mov edx,APP_MEM_END |
mov esi,8 |
mov eax,4 |
mcall |
int 0x40 |
|
pop ecx |
mov eax,[edi+4] |
615,13 → 653,13 |
call int2str |
add ebx,(6*8+6+10)*65536 |
mov eax,4 |
mcall |
int 0x40 |
|
pop ecx |
add ebx,(-6-5)*65536 |
mov edx,esp |
mov esi,1 |
mcall |
int 0x40 |
add esp,4 |
|
add edi,TEST_REC_SIZE |
633,31 → 671,31 |
mov ebx, 0*65536+72*5+5 |
mov ecx, (TESTS_NUM*LINE_HEIGHT+15+25)*65536+26 |
xor edx, edx |
mcall |
int 0x40 |
|
mov eax, 4 |
mov ebx, 5*65536+(TESTS_NUM*LINE_HEIGHT+15+27) |
mov ecx, 0x8000CCCC |
mov edx, aLeft |
mcall ; Kolibri - DRAW STRING |
int 0x40 ; Kolibri - DRAW STRING |
|
add ebx, (6*10)*65536 |
mov ecx, 0x00FFFF00 |
mov edx, aComment1 |
mov esi, 42 |
mcall ; Kolibri - DRAW STRING |
int 0x40 ; Kolibri - DRAW STRING |
|
mov eax, 4 |
mov ebx, 5*65536+(TESTS_NUM*LINE_HEIGHT+15+27+12) |
mov ecx, 0x8000CCCC |
mov edx, aRight |
mcall ; Kolibri - DRAW STRING |
int 0x40 ; Kolibri - DRAW STRING |
|
add ebx, (6*10)*65536 |
mov ecx, 0x00FFFF00 |
mov edx, aComment2 |
mov esi, 42 |
mcall ; Kolibri - DRAW STRING |
int 0x40 ; Kolibri - DRAW STRING |
|
retn |
endp |
688,7 → 726,7 |
mov eax, 4 |
|
locDrawCommentsLoop: ; CODE XREF: subDrawResultComments+1Cj |
mcall ; Kolibri - DRAW STRING |
int 0x40 ; Kolibri - DRAW STRING |
; ebx = [xstart]*65536+[ystart] |
; ecx = 0xX0RRGGBB, edx -> string |
add bx, 13;55 |
715,7 → 753,7 |
|
locDrawNumbersLoop: ; CODE XREF: subDrawResultNumbers+1Ej |
call subGetDigitsCount |
mcall ; Kolibri - |
int 0x40 ; Kolibri - |
add dx, 13;55 |
add ecx, 4 |
inc edi |
763,7 → 801,7 |
locOSDWaitForEvent: ; CODE XREF: seg000:000005ADj |
; seg000:000005C3j ... |
mov eax, 10 |
mcall ; Kolibri - |
int 0x40 ; Kolibri - |
cmp eax, 1 |
jz subOpenSaveDlgProc |
cmp eax, 2 |
775,7 → 813,7 |
|
locOSDKeyEvent: ; CODE XREF: seg000:000005A2j |
mov eax, 2 |
mcall ; Kolibri - GET KEY CODE |
int 0x40 ; Kolibri - GET KEY CODE |
; Return: ah = keycode |
cmp ah, 0B3h |
jnz locOSDNotRightKey |
844,7 → 882,7 |
bts word[wFlags], 2 |
mov eax,70 ; 58 |
mov ebx,stFileInfoBlock |
mcall |
int 0x40 |
mov esi,APP_MEM_END+100 |
mov edi,results_table+4 |
cld |
877,7 → 915,7 |
rep movsb |
mov eax,70 ; 58 |
mov ebx,stFileInfoBlock |
mcall |
int 0x40 |
jmp locCloseOSD |
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |
|
903,7 → 941,7 |
|
locOSDButtonEvent: ; CODE XREF: seg000:000005A7j |
mov eax, 17 |
mcall ; Kolibri - GET PRESSED BUTTON |
int 0x40 ; Kolibri - GET PRESSED BUTTON |
; Return: ah = button ID |
cmp ah, 1 |
jnz locNotCloseOSD |
915,7 → 953,7 |
bts [wFlags], 1 |
btr [wFlags], 0 |
mov eax, -1 |
mcall ; Kolibri - FINISH EXECUTION |
int 0x40 ; Kolibri - FINISH EXECUTION |
|
locNotCloseOSD: ; CODE XREF: seg000:000006DFj |
cmp ah, 2 |
922,7 → 960,7 |
jnz locNotSetCaretOSD |
mov eax, 37 |
mov ebx, 1 |
mcall ; Kolibri - GET MOUSE COORDINATES, WINDOW-RELATIVE |
int 0x40 ; Kolibri - GET MOUSE COORDINATES, WINDOW-RELATIVE |
; Return: eax = [x]*65536 + [y] |
shr eax, 16 |
sub eax, 21 |
960,12 → 998,12 |
proc subDrawOpenSaveDlg ; CODE XREF: seg000:subOpenSaveDlgProcp |
mov eax, 12 |
mov ebx, 1 |
mcall ; Kolibri - BEGIN WINDOW REDRAW |
int 0x40 ; Kolibri - BEGIN WINDOW REDRAW |
xor eax, eax |
mov ebx, 64012Ch |
mov ecx, 640050h |
mov edx, 3780078h |
mcall ; Kolibri - DEFINE/DRAW WINDOW |
int 0x40 ; Kolibri - DEFINE/DRAW WINDOW |
; ebx = [xstart]*65536+[xsize] |
; ecx = [ystart]*65536+[ysize] |
mov eax, 4 |
973,13 → 1011,13 |
mov ecx, 10DDEEFFh |
mov edx, [dwEditLabel] |
mov esi, [dwEditLabelLen] |
mcall ; Kolibri - DRAW STRING |
int 0x40 ; Kolibri - DRAW STRING |
; ebx = [xstart]*65536+[ystart] |
; ecx = 0xX0RRGGBB, edx -> string |
call subDrawOpenSaveDlgControls |
mov eax, 12 |
mov ebx, 2 |
mcall ; Kolibri - END WINDOW REDRAW |
int 0x40 ; Kolibri - END WINDOW REDRAW |
retn |
endp |
|
994,13 → 1032,13 |
mov ebx, 150102h |
mov ecx, 28000Fh |
mov edx, 40000002h |
mcall ; Kolibri - DEFINE/DELETE BUTTON |
int 0x40 ; Kolibri - DEFINE/DELETE BUTTON |
; ebx = [xstart]*65536+[xsize] |
; ecx = [ystart]*65536+[ysize] |
; edx = 0xXYnnnnnn, esi = color |
mov eax, 13 |
mov edx, 0E0E0E0h |
mcall ; Kolibri - DRAW RECTANGLE |
int 0x40 ; Kolibri - DRAW RECTANGLE |
; ebx = [xstart]*65536+[xsize], ecx = [ystart]*65536+[ysize] |
; edx = 0xRRGGBB or 0x80RRGGBB for gradient |
push eax |
1010,13 → 1048,13 |
mov ebx, eax |
pop eax |
mov edx, 6A73D0h |
mcall ; Kolibri - |
int 0x40 ; Kolibri - |
mov eax, 4 |
mov ebx, 15002Ch |
xor ecx, ecx |
mov edx, [dwBufferPtr] |
mov esi, 43 |
mcall ; Kolibri - DRAW STRING |
int 0x40 ; Kolibri - DRAW STRING |
; ebx = [xstart]*65536+[ystart] |
; ecx = 0xX0RRGGBB, edx -> string |
popa |