124,9 → 124,6 |
mov esi, begin_str |
call put_message_nodraw |
; set event mask - default events and debugging events |
;push 40 |
;pop eax |
;mov ebx, 0x107 |
mcall 40, 0x107 |
; set debug messages buffer |
mov ecx, dbgbufsize |
149,8 → 146,6 |
call draw_window |
|
waitevent: |
;push 10 |
;pop eax |
mcall 10 |
cmp al, 9 |
jz debugmsg |
161,8 → 156,6 |
dec eax |
jnz waitevent |
; button pressed - we have only one button (close) |
;push -1 |
;pop eax |
mcall -1 |
|
; TODO: split in more independent function |
382,8 → 375,6 |
mov ebx, [cmdline_pos] |
mov ecx, [cmdline_len] |
sub ecx, ebx |
;push 13 |
;pop eax |
imul ebx, 6 |
imul ecx, 6 |
inc ecx |
391,8 → 382,6 |
shl ebx, 16 |
or ebx, ecx |
mov ecx, cmdline_y_pos*10000h + cmdline_y_size |
; setting up container color scheme |
; COLOR_BG_NORMAL was 0xFFFFFF |
mov edx, COLOR_BG_NORMAL |
; draw container rectangle/box for cmdline |
mcall 13 |
409,10 → 398,7 |
@@: |
mov esi, [cmdline_len] |
sub esi, ebx |
;push 4 |
;pop eax |
; setting up text color scheme and attributes |
; was 'xor ecx, ecx' |
|
mov ecx, COLOR_TXT_NORMAL |
lea edx, [cmdline+ebx] |
imul ebx, 6 |
419,7 → 405,7 |
add ebx, cmdline_x_pos |
shl ebx, 16 |
or ebx, cmdline_y_pos+1 |
; draw a text string in the window, color in ecx |
; draw a text string in the window |
mcall 4 |
ret |
|
524,21 → 510,12 |
call put_message_nodraw |
|
draw_messages: |
;push 13 |
;pop eax |
;mov edx, 0xFFFFFF |
;mov ebx, messages_x_pos*10000h+messages_x_size |
;mov ecx, messages_y_pos*10000h+messages_y_size |
; draw container rectanle/box |
; COLOR_BG_NORMAL was 0xFFFFFF |
; draw container rectangle/box |
mcall 13, messages_x_pos*10000h+messages_x_size, messages_y_pos*10000h+messages_y_size, COLOR_BG_NORMAL |
mov edx, messages |
push messages_width |
pop esi |
; setting up text color scheme/attributes |
; was 'xor ecx, ecx' |
mov ecx, COLOR_TXT_NORMAL |
;mov al, 4 |
mov ebx, messages_x_pos*10000h+messages_y_pos |
|
@@: |
600,20 → 577,10 |
|
; FIXME: something wrong here |
redraw_title: |
;push 13 |
;pop eax |
;mov edx, 0xFFFFFF |
;mov ebx, title_x_pos*10000h + data_x_pos+data_x_size-title_x_pos |
;mov ecx, title_y_pos*10000h + title_y_size |
; draw container rectangle/box |
; color was 0xFFFFFF |
mcall 13, title_x_pos*10000h+data_x_pos+data_x_size-title_x_pos, title_y_pos*10000h+title_y_size, COLOR_BG_NORMAL |
|
draw_title: |
;mov al, 38 |
;mov ebx, (data_x_pos-2)*10000h + title_x_pos-5 |
;mov ecx, (title_y_pos+5)*10001h |
; draw line with COLOR_LINE (in edx) |
mcall 38, (data_x_pos-2)*10000h+title_x_pos-5, (title_y_pos+5)*10001h, COLOR_LINE |
push NoPrgLoaded_len |
pop esi |
689,17 → 656,13 |
push esi |
mov eax, esi |
mov esi, ecx |
; setting up registers colors |
; can be usual, inactive and changed |
; inactive color |
; was 0x40808080 - grey |
|
mov ecx, (COLOR_TXT_INACTIVE or 0x40000000) |
cmp [debuggee_pid], 0 |
jz .cd |
cmp [bSuspended], 0 |
jz .cd |
; normal color |
; was 0x40000000 - black |
|
mov ecx, (COLOR_TXT_NORMAL or 0x40000000) |
push edi |
mov edi, [eax] |
706,23 → 669,17 |
cmp dword [eax+oldcontext-context], edi |
pop edi |
jz .cd |
; changed register color |
; was 0x4000AA00 - green |
mov ecx, (COLOR_TXT_CHANGED or 0x40000000) |
|
.cd: |
;push 4 |
;pop eax |
; draw a text string in the window |
mcall 4 |
imul esi, 60000h |
lea edx, [ebx+esi] |
;mov al, 47 |
;mov ebx, 80101h |
mov esi, ecx |
pop ecx |
|
; draw a number in the window |
; color in the esi (same value as for usual text) |
mcall 47, 80101h |
lea ebx, [edx+60000h*18] |
mov esi, ecx |
741,17 → 698,13 |
push esi |
mov eax, esi |
mov esi, ecx |
; setting up registers color |
; can be usual, inactive and changed |
; inactive color |
; was 0x40808080 - grey |
|
mov ecx, (COLOR_TXT_INACTIVE or 0x40000000) |
cmp [debuggee_pid], 0 |
jz .cd |
cmp [bSuspended], 0 |
jz .cd |
; normal color |
; was 0x40000000 - black |
|
mov ecx, (COLOR_TXT_NORMAL or 0x40000000) |
push edi |
mov edi, [eax] |
765,19 → 718,13 |
jz .cd |
|
.scol: |
; changed register color |
; was 0x4000AA00 - green |
mov ecx, (COLOR_TXT_CHANGED or 0x40000000) |
|
.cd: |
;push 4 |
;pop eax |
; draw a text string in the window |
mcall 4 |
imul esi, 60000h |
lea edx, [ebx+esi] |
;mov al, 47 |
;mov ebx, 40100101h ; [20] show 16 chars set [30] bit - qword |
mov esi, ecx |
pop ecx |
; draw a number in the window |
801,17 → 748,13 |
push esi |
mov eax, esi |
mov esi, ecx |
; setting up registers color |
; can be usual, inactive and changed |
; inactive color |
; was 0x40808080 - grey |
|
mov ecx, (COLOR_TXT_INACTIVE or 0x40000000) |
cmp [debuggee_pid], 0 |
jz .cd |
cmp [bSuspended], 0 |
jz .cd |
; normal color |
; was 0x40000000 - black |
|
mov ecx, (COLOR_TXT_NORMAL or 0x40000000) |
push edi |
mov edi, [eax] |
825,19 → 768,14 |
jz .cd |
|
.scol: |
; changed color |
; was 0x4000AA00 - green |
mov ecx, (COLOR_TXT_CHANGED or 0x40000000) |
|
.cd: |
;push 4 |
;pop eax |
; draw a text string in the window |
mcall 4 |
|
imul esi, 60000h |
lea edx, [ebx+esi] |
;mov al, 47 |
;mov ebx, 40100101h ; [20] show 16 chars set [30] bit - qword |
mov esi, ecx |
pop ecx |
; draw a number in the window |
867,17 → 805,12 |
and byte [edx], not 20h |
|
.onoff: |
; setting up registers colors |
; can be usual, inactive and changed |
; inactive color |
; was 0x40808080 - grey |
mov ecx, (COLOR_TXT_INACTIVE or 0x40000000) |
cmp [debuggee_pid], 0 |
jz .doit |
cmp [bSuspended], 0 |
jz .doit |
; normal color |
; was 0x40000000 - black |
|
mov ecx, (COLOR_TXT_NORMAL or 0x40000000) |
bt [_eflags], edi |
lahf |
885,14 → 818,10 |
rcl ah, 1 |
test ah, 3 |
jp .doit |
; changed color |
; was 0x4000AA00 - green |
mov ecx, (COLOR_TXT_CHANGED or 0x40000000) |
|
.doit: |
mov ah, 0 |
; background color for text string or number |
; was 0xFFFFFF - white |
mov edi, COLOR_BG_NORMAL |
; draw a text string in the window in one case |
; and a number in another |
1002,10 → 931,7 |
mov ebx, (registers_x_pos+2)*10000h+registers_y_pos+212 |
add esi, _mm7-_mm6 |
call draw_mmx_register |
;mov al, 4 |
; setting up text color |
; inactive color |
; was 0x808080 - grey |
|
mov ecx, COLOR_TXT_INACTIVE |
cmp [debuggee_pid], 0 |
jz @f |
1200,19 → 1126,8 |
;----------------------------------------------------------------------------- |
; Display disassembled code |
|
; @@@@@ WAS: |
; redraw_disasm: |
; push 13 |
; pop eax |
; mov edx, 0xFFFFFF |
; mov ebx, data_x_pos*10000h + data_x_size |
; mov ecx, (disasm_y_pos-1)*10000h + (disasm_y_size+1) |
; mcall |
; |
; @@@@@ NOW: |
draw_disasm: |
|
.redraw: |
mov eax, [disasm_start_pos] |
mov [disasm_cur_pos], eax |
and [disasm_cur_str], 0 |
1229,9 → 1144,6 |
mov cl, 11 |
; setting up background color for disassembled text |
mov edx, COLOR_BG_NORMAL |
;mov ebx, data_x_pos*10000h + data_x_size |
;push 13 |
;pop eax |
; draw container rectangle/box with color COLOR_BG_NORMAL (was 0xFFFFFF - white) |
mcall 13, data_x_pos*10000h+data_x_size |
pop ebx |
1302,15 → 1214,13 |
; draw container rectangle/box for disassembled text |
; color in edx |
mcall 13 |
;mov al, 47 |
;mov ebx, 80100h |
|
mov edx, [disasm_cur_str] |
imul edx, 10 |
add edx, data_x_pos*10000h + disasm_y_pos |
;mov ecx, ebp |
; draw a number in the window, color in esi |
mcall 47, 80100h, ebp |
;mov al, 4 |
|
lea ebx, [edx+8*6*10000h] |
mov ecx, esi ; text color |
push 2 |
1347,7 → 1257,7 |
cmp esi, ebp |
pop esi |
jbe .drawhex |
;mov al, 4 |
|
lea ebx, [edx-6*10000h] |
; copy color value from esi |
mov ecx, esi |
1370,7 → 1280,7 |
mov ebx, [disasm_cur_str] |
imul ebx, 10 |
add ebx, (data_x_pos+6*40)*10000h+disasm_y_pos |
;mov al, 4 |
|
; draw a text string in the window, color in ecx |
mcall 4 |
inc [disasm_cur_str] |
1387,14 → 1297,8 |
sub eax, ecx |
shl eax, 16 |
add ecx, eax |
;push 13 |
;pop eax |
;mov ebx, data_x_pos*65536 + data_x_size |
; set backroung color for disassembly container |
; was 0xFFFFFF - white |
mov edx, COLOR_BG_NORMAL |
; draw container rectangle/box with color COLOR_BG_NORMAL (in edx) |
mcall 13, data_x_pos*65536+data_x_size |
; Draw filled rectangle |
mcall 13, data_x_pos*10000h+data_x_size, , COLOR_BG_NORMAL |
|
@@: |
ret |
1417,7 → 1321,7 |
|
@@: |
cmp [_eip], eax |
jz draw_disasm.redraw |
jz draw_disasm |
push ecx |
call disasm_instr |
pop ecx |
1433,14 → 1337,7 |
update_disasm: |
cmp [debuggee_pid], 0 |
jz .no |
;push 69 |
;pop eax |
;push 6 |
;pop ebx |
;mov ecx, [debuggee_pid] |
;mov edi, disasm_buffer |
;mov edx, 256 |
;mov esi, [disasm_start_pos] |
|
mcall 69, 6, [debuggee_pid], 256, [disasm_start_pos], disasm_buffer |
cmp eax, -1 |
jnz @f |
1453,7 → 1350,7 |
@@: |
mov [disasm_buf_size], eax |
call restore_from_breaks |
jmp draw_disasm.redraw |
jmp draw_disasm |
|
|
;----------------------------------------------------------------------------- |
1563,7 → 1460,7 |
call redraw_title |
call draw_registers |
call draw_dump |
call draw_disasm.redraw |
call draw_disasm |
|
; end of window redraw |
mcall 12, 2 |