Subversion Repositories Kolibri OS

Rev

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

Rev 4886 Rev 4888
Line 27... Line 27...
27
        COLOR_TXT_NORMAL          = 0xffffff
27
        COLOR_TXT_NORMAL          = 0xffffff
28
        COLOR_TXT_INACTIVE        = 0x8f7948
28
        COLOR_TXT_INACTIVE        = 0x8f7948
29
        COLOR_TXT_CHANGED         = 0xec9300
29
        COLOR_TXT_CHANGED         = 0xec9300
30
        COLOR_TXT_LABEL           = 0x22b14c
30
        COLOR_TXT_LABEL           = 0x22b14c
31
        COLOR_TXT_SELECTED        = 0x1d272f
31
        COLOR_TXT_SELECTED        = 0x1d272f
32
        COLOR_TXT_ADDR            = 0xec9300
32
        COLOR_TXT_HEX             = 0xec9300
33
        COLOR_TXT_BREAKPOINT      = 0xec9300
33
        COLOR_TXT_BREAKPOINT      = 0xec9300
Line 34... Line 34...
34
 
34
 
Line 35... Line 35...
35
else if COLOR_THEME eq WHITE_ON_BLACK
35
else if COLOR_THEME eq WHITE_ON_BLACK
Line 41... Line 41...
41
        COLOR_TXT_NORMAL          = 0xFFFFFF ; white
41
        COLOR_TXT_NORMAL          = 0xFFFFFF ; white
42
        COLOR_TXT_INACTIVE        = 0x808080 ; grey
42
        COLOR_TXT_INACTIVE        = 0x808080 ; grey
43
        COLOR_TXT_CHANGED         = 0x00AA00 ; green
43
        COLOR_TXT_CHANGED         = 0x00AA00 ; green
44
        COLOR_TXT_LABEL           = COLOR_TXT_NORMAL
44
        COLOR_TXT_LABEL           = COLOR_TXT_NORMAL
45
        COLOR_TXT_SELECTED        = 0xFFFFFF ; white
45
        COLOR_TXT_SELECTED        = 0xFFFFFF ; white
46
        COLOR_TXT_ADDR            = COLOR_TXT_NORMAL
46
        COLOR_TXT_HEX             = COLOR_TXT_NORMAL
47
        COLOR_TXT_BREAKPOINT      = COLOR_TXT_NORMAL
47
        COLOR_TXT_BREAKPOINT      = COLOR_TXT_NORMAL
Line 48... Line 48...
48
 
48
 
Line 49... Line 49...
49
else  ; BLACK ON WHITE
49
else  ; BLACK ON WHITE
Line 55... Line 55...
55
        COLOR_TXT_NORMAL          = 0x000000 ; black
55
        COLOR_TXT_NORMAL          = 0x000000 ; black
56
        COLOR_TXT_INACTIVE        = 0x808080 ; grey
56
        COLOR_TXT_INACTIVE        = 0x808080 ; grey
57
        COLOR_TXT_CHANGED         = 0x00AA00 ; green
57
        COLOR_TXT_CHANGED         = 0x00AA00 ; green
58
        COLOR_TXT_LABEL           = COLOR_TXT_NORMAL
58
        COLOR_TXT_LABEL           = COLOR_TXT_NORMAL
59
        COLOR_TXT_SELECTED        = 0xFFFFFF ; white
59
        COLOR_TXT_SELECTED        = 0xFFFFFF ; white
60
        COLOR_TXT_ADDR            = COLOR_TXT_NORMAL
60
        COLOR_TXT_HEX             = COLOR_TXT_NORMAL
61
        COLOR_TXT_BREAKPOINT      = COLOR_TXT_NORMAL
61
        COLOR_TXT_BREAKPOINT      = COLOR_TXT_NORMAL
Line 62... Line 62...
62
 
62
 
Line 63... Line 63...
63
end if
63
end if
Line 553... Line 553...
553
;-----------------------------------------------------------------------------
553
;-----------------------------------------------------------------------------
554
;                     Show/hide cursor in command line
554
;                     Show/hide cursor in command line
Line 555... Line 555...
555
 
555
 
556
; TODO: make it cursor.draw and cursor.hide ???
556
; TODO: make it cursor.draw and cursor.hide ???
557
draw_cursor:
-
 
558
        ;push   38
-
 
559
        ;pop    eax
557
draw_cursor:
560
        mov     ecx, cmdline_y_pos*10001h+cmdline_y_size-1
558
        mov     ecx, cmdline_y_pos*10001h+cmdline_y_size-1
561
        mov     ebx, [cmdline_pos]
559
        mov     ebx, [cmdline_pos]
562
        imul    ebx, 6
560
        imul    ebx, 6
563
        add     ebx, cmdline_x_pos
561
        add     ebx, cmdline_x_pos
564
        mov     edx, ebx
562
        mov     edx, ebx
565
        shl     ebx, 16
563
        shl     ebx, 16
566
        or      ebx, edx
-
 
567
        ; setting line color
-
 
568
        ; was 'xor     edx, edx' - black
564
        or      ebx, edx
569
        mov     edx, COLOR_LINE
565
        mov     edx, COLOR_TXT_NORMAL
570
        ; draw line, color in edx
566
        ; draw line
571
        mcall   38
567
        mcall   38
Line 572... Line 568...
572
        ret
568
        ret
573
 
569
 
574
hide_cursor:
-
 
575
        mov     ebx, [cmdline_pos]
-
 
576
        ;push   13
570
hide_cursor:
577
        ;pop    eax
571
        mov     ebx, [cmdline_pos]
578
        imul    ebx, 6
572
        imul    ebx, 6
579
        add     ebx, cmdline_x_pos
573
        add     ebx, cmdline_x_pos
580
        shl     ebx, 16
574
        shl     ebx, 16
581
        inc     ebx
-
 
582
        mov     ecx, cmdline_y_pos*10000h + cmdline_y_size
-
 
583
        ; setting up rectangle color
575
        inc     ebx
584
        ; was 0xFFFFFF
576
        mov     ecx, cmdline_y_pos*10000h + cmdline_y_size
585
        mov     edx, COLOR_BG_NORMAL
577
        mov     edx, COLOR_BG_NORMAL
586
        ; draw container rectangle/box
578
        ; draw container rectangle/box
587
        mcall   13
579
        mcall   13
588
        mov     ebx, [cmdline_pos]
580
        mov     ebx, [cmdline_pos]
589
        cmp     ebx, [cmdline_len]
-
 
590
        jae     .ret
581
        cmp     ebx, [cmdline_len]
591
        ;mov    al, 4
-
 
592
        ; setting up text color scheme and attributes
582
        jae     .ret
593
        ;was 'xor     ecx, ecx'
583
        ; setting up text color scheme and attributes
594
        mov     ecx, COLOR_TXT_NORMAL
584
        mov     ecx, COLOR_TXT_NORMAL
595
        lea     edx, [cmdline+ebx]
585
        lea     edx, [cmdline+ebx]
596
        imul    ebx, 6
586
        imul    ebx, 6
Line 913... Line 903...
913
;-----------------------------------------------------------------------------
903
;-----------------------------------------------------------------------------
914
;                      Draw registers frame title
904
;                      Draw registers frame title
Line 915... Line 905...
915
 
905
 
916
; Also show current register set (common + MMX, SSE or AVX)
906
; Also show current register set (common + MMX, SSE or AVX)
917
draw_reg_title:
-
 
918
        ;push   4
-
 
919
        ;pop    eax
-
 
920
    ; setting up text backround color
-
 
921
        ; was 0xFFFFFF - white
907
draw_reg_title:
922
        mov     edi, COLOR_BG_NORMAL
-
 
923
    ; setting up text color
-
 
924
    ; can be usual and inactive
-
 
925
        ; normal color
-
 
926
        ; was 0x40000000 - black
908
        mov     edi, COLOR_BG_NORMAL
927
        mov     ecx, (COLOR_TXT_NORMAL or 0x40000000)
909
        mov     ecx, (COLOR_TXT_NORMAL or 0x40000000)
928
        mov     esi, 7
910
        mov     esi, 7
929
        cmp     [reg_mode], REG_MODE_CPU
911
        cmp     [reg_mode], REG_MODE_CPU
930
        jz      @f
-
 
931
        ; inactive color
-
 
932
        ; was 0x40808080 - grey
912
        jz      @f
933
        mov     ecx, (COLOR_TXT_INACTIVE or 0x40000000)
-
 
934
 
913
        mov     ecx, (COLOR_TXT_INACTIVE or 0x40000000)
935
    @@:
914
    @@:
936
        mov     edx, aMain
-
 
937
        ;mov    ebx, (registers_x_pos+4)*10000h + registers_y_pos+2
915
        mov     edx, aMain
938
        ; draw a text string in the window
916
        ; draw a text string in the window
-
 
917
        mcall   4, (registers_x_pos+4)*10000h+registers_y_pos+2
939
        mcall   4, (registers_x_pos+4)*10000h+registers_y_pos+2
918
 
940
        cmp     [reg_mode], REG_MODE_SSE
919
        cmp     [reg_mode], REG_MODE_SSE
941
        jz      @f
-
 
942
        ; inactive color
-
 
943
        ; was 0x40808080 - grey
920
        jz      @f
944
        mov     ecx, (COLOR_TXT_INACTIVE or 0x40000000)
-
 
945
 
921
        mov     ecx, (COLOR_TXT_INACTIVE or 0x40000000)
946
    @@:
922
    @@:
947
        mov     edx, aSSE
-
 
948
        ;mov        ebx, (registers_x_pos+46)*10000h + registers_y_pos+2
923
        mov     edx, aSSE
949
        ; draw a text string in the window
924
        ; draw a text string in the window
-
 
925
        mcall   4, (registers_x_pos+46)*10000h+registers_y_pos+2
950
        mcall   4, (registers_x_pos+46)*10000h+registers_y_pos+2
926
 
951
        cmp     [reg_mode], REG_MODE_AVX
927
        cmp     [reg_mode], REG_MODE_AVX
952
        jz      @f
-
 
953
        ; inactive color
-
 
954
        ; was 0x40808080 - grey
928
        jz      @f
955
        mov     ecx, (COLOR_TXT_INACTIVE or 0x40000000)
-
 
956
 
929
        mov     ecx, (COLOR_TXT_INACTIVE or 0x40000000)
957
    @@:
930
    @@:
958
        mov     edx, aAVX
-
 
959
        ;mov    ebx, (registers_x_pos+88)*10000h + registers_y_pos+2
931
        mov     edx, aAVX
960
        ; draw a text string in the window
932
        ; draw a text string in the window
961
        mcall   4, (registers_x_pos+88)*10000h+registers_y_pos+2
933
        mcall   4, (registers_x_pos+88)*10000h+registers_y_pos+2
Line 962... Line 934...
962
        ret
934
        ret
963
 
935
 
Line 964... Line 936...
964
;-----------------------------------------------------------------------------
936
;-----------------------------------------------------------------------------
965
;                Display common registers set + MMX + FPU
-
 
966
 
-
 
967
draw_main_registers:
-
 
968
        ;push    13
-
 
969
        ;pop     eax
-
 
970
        ;mov     edx, 0xFFFFFF
-
 
971
        ;mov     ebx, (registers_x_pos-1)*10000h + (registers_x_size+2)
-
 
972
        ;mov     ecx, (registers_y_pos-1)*10000h + (registers_y_size+2)
-
 
973
        ; draw container rectangle/box with COLOR_BG_NORMAL
-
 
974
        ; color in edx, was 0xFFFFFF - white
937
;                Display common registers set + MMX + FPU
975
        mcall   13, (registers_x_pos-1)*10000h+(registers_x_size+2), (registers_y_pos-1)*10000h+(registers_y_size+2), COLOR_BG_NORMAL
-
 
976
 
-
 
977
    ; TODO: add support for FPU ST0-ST7 registers
-
 
978
    .redraw:
938
 
979
        ; setting up background color for text and numbers output
939
draw_main_registers:
980
        ; was 0xFFFFFF - white
940
; TODO: add support for FPU ST0-ST7 registers
981
        mov     edi, COLOR_BG_NORMAL
941
        mov     edi, COLOR_BG_NORMAL
982
        mov     esi, _eax
942
        mov     esi, _eax
Line 1073... Line 1033...
1073
 
1033
 
1074
;-----------------------------------------------------------------------------
1034
;-----------------------------------------------------------------------------
Line 1075... Line 1035...
1075
;                  Draw SSE registers set
1035
;                  Draw SSE registers set
1076
 
1036
 
1077
draw_sse_registers:
1037
draw_sse_registers:
Line 1078... Line 1038...
1078
    .redraw:
1038
 
1079
        ret
1039
        ret
Line 1080... Line 1040...
1080
 
1040
 
1081
;-----------------------------------------------------------------------------
1041
;-----------------------------------------------------------------------------
1082
;                  Draw AVX registers set
1042
;                  Draw AVX registers set
Line 1083... Line 1043...
1083
 
1043
 
1084
draw_avx_registers:
1044
draw_avx_registers:
1085
    .redraw:
1045
 
-
 
1046
        ret
-
 
1047
 
-
 
1048
;-----------------------------------------------------------------------------
1086
        ret
1049
;                 Draw all registers sets
-
 
1050
draw_registers:
-
 
1051
 
1087
 
1052
        ; draw container rectangle/box with COLOR_BG_NORMAL
1088
;-----------------------------------------------------------------------------
1053
        mcall   13, (registers_x_pos-1)*10000h+(registers_x_size+2), (registers_y_pos-1)*10000h+(registers_y_size+2), COLOR_BG_NORMAL
1089
;                 Draw all registers sets
1054
        call    draw_reg_title
1090
draw_registers:
1055
 
Line 1102... Line 1067...
1102
 
1067
 
1103
    @@:
1068
    @@:
1104
        call    draw_avx_registers
1069
        call    draw_avx_registers
Line 1105... Line -...
1105
        ret
-
 
1106
 
-
 
1107
    .redraw:
-
 
1108
        call    draw_reg_title
-
 
1109
        cmp     [reg_mode], REG_MODE_CPU
-
 
1110
        jnz     @f
-
 
1111
        call    draw_main_registers.redraw
-
 
1112
        ret
-
 
1113
 
-
 
1114
    @@:
-
 
1115
        cmp     [reg_mode], REG_MODE_SSE
-
 
1116
        jnz     @f
-
 
1117
        call    draw_sse_registers.redraw
-
 
1118
        ret
-
 
1119
 
-
 
1120
    @@:
-
 
1121
        call    draw_avx_registers.redraw
-
 
1122
        ret
1070
        ret
1123
 
1071
 
Line 1124... Line 1072...
1124
;-----------------------------------------------------------------------------
1072
;-----------------------------------------------------------------------------
1125
;                     Display memory dump
-
 
1126
 
-
 
1127
draw_dump:
-
 
1128
        ;push    13
-
 
1129
        ;pop     eax
-
 
1130
        ;mov     edx, 0xFFFFFF
1073
;                     Display memory dump
1131
        ;mov     ebx, data_x_pos*10000h + data_x_size
-
 
1132
        ;mov     ecx, dump_y_pos*10000h + dump_y_size
1074
 
Line 1133... Line 1075...
1133
        ; draw container rectangle/box in the window
1075
draw_dump:
1134
        ; with color in COLOR_BG_NORMAL (was 0xFFFFFF - white)
1076
        ; draw container rectangle/box in the window
1135
        mcall   13, data_x_pos*10000h+data_x_size, dump_y_pos*10000h+dump_y_size, COLOR_BG_NORMAL
-
 
1136
 
1077
        mcall   13, data_x_pos*10000h+data_x_size, dump_y_pos*10000h+dump_y_size, COLOR_BG_NORMAL
1137
    .redraw:
1078
 
1138
    ; addresses
1079
    .redraw:
1139
        ;mov    al, 47
-
 
1140
        mov     ebx, 80100h
-
 
1141
        mov     edx, data_x_pos*10000h + dump_y_pos
1080
        ; addresses
1142
        mov     ecx, [dumppos]
-
 
1143
        ; background color for text string
-
 
1144
        ; was 0xFFFFFF - white
1081
        mov     ebx, 80100h
1145
        mov     edi, COLOR_BG_NORMAL
1082
        mov     edx, data_x_pos*10000h + dump_y_pos
1146
        ; inactive color
1083
        mov     ecx, [dumppos]
1147
        ; was 0x40808080 - grey
1084
        mov     edi, COLOR_BG_NORMAL
1148
        mov     esi, (COLOR_TXT_INACTIVE or 0x40000000)
1085
        mov     esi, (COLOR_TXT_INACTIVE or 0x40000000)
1149
        cmp     [debuggee_pid], 0
-
 
1150
        jz      @f
-
 
1151
        cmp     [bSuspended], 0
1086
        cmp     [debuggee_pid], 0
1152
        jz      @f
-
 
1153
        ; normal color
1087
        jz      @f
1154
        ; was 0x40000000 - black
1088
        cmp     [bSuspended], 0
1155
        mov     esi, (COLOR_TXT_NORMAL or 0x40000000)
1089
        jz      @f
1156
 
1090
        mov     esi, (COLOR_TXT_NORMAL or 0x40000000)
1157
    @@:
1091
    @@:
1158
        ; draw a number in the window, color in esi
1092
        ; draw a number in the window
1159
        mcall   47
1093
        mcall   47
Line 1170... Line 1104...
1170
        jz      .hexdumpdone1
1104
        jz      .hexdumpdone1
Line 1171... Line 1105...
1171
 
1105
 
1172
    .hexdumploop1:
1106
    .hexdumploop1:
1173
        push    ebx
1107
        push    ebx
1174
        mov     ebx, 20101h
1108
        mov     ebx, 20101h
1175
        ; draw a number in the window, color in esi
1109
        ; draw a number in the window
1176
        mcall
1110
        mcall
1177
        pop     ebx
1111
        pop     ebx
1178
        add     edx, 3*6*10000h
1112
        add     edx, 3*6*10000h
1179
        inc     ecx
1113
        inc     ecx
Line 1393... Line 1327...
1393
        lea     edx, [ebx+2*6*10000h]
1327
        lea     edx, [ebx+2*6*10000h]
1394
        mov     ecx, ebp
1328
        mov     ecx, ebp
1395
        sub     ecx, [disasm_start_pos]
1329
        sub     ecx, [disasm_start_pos]
1396
        add     ecx, disasm_buffer
1330
        add     ecx, disasm_buffer
Line 1397... Line 1331...
1397
 
1331
 
1398
        mov     esi, COLOR_TXT_ADDR
1332
        mov     esi, COLOR_TXT_HEX
1399
        mov     eax, [_eip]
1333
        mov     eax, [_eip]
1400
        cmp     eax, ebp
1334
        cmp     eax, ebp
1401
        jnz     @f
1335
        jnz     @f
1402
        mov     esi, COLOR_TXT_SELECTED
1336
        mov     esi, COLOR_TXT_SELECTED