Subversion Repositories Kolibri OS

Rev

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

Rev 4913 Rev 4914
Line 154... Line 154...
154
        jz      dodraw
154
        jz      dodraw
155
        dec     eax
155
        dec     eax
156
        jz      keypressed
156
        jz      keypressed
157
        dec     eax
157
        dec     eax
158
        jnz     waitevent
158
        jnz     waitevent
-
 
159
;button pressed
-
 
160
        mcall   17
-
 
161
        test    al, al
-
 
162
        jnz     waitevent
-
 
163
        movzx   eax, ah
159
        ; button pressed - we have only one button (close)
164
        jmp     dword [.jmp_table+eax*4]
-
 
165
 
-
 
166
.close:
160
        mcall   -1
167
        mcall -1
-
 
168
.mmx:
-
 
169
        movzx   edx, [fpu_mode]
-
 
170
        xor     dl, 1
-
 
171
        mov     [fpu_mode], dl
-
 
172
        push    edx
-
 
173
        jnz     .fpu
-
 
174
        call    draw_mmx_regs
-
 
175
        jmp     .draw_label
-
 
176
.fpu:
-
 
177
        call    draw_fpu_regs
-
 
178
.draw_label:
-
 
179
        pop     edx
-
 
180
        mov     edx, [btn2_tab+edx*4]
-
 
181
        mov     edi, COLOR_BG_NORMAL
-
 
182
        mov     ecx, (COLOR_TXT_NORMAL or 0x40000000)
-
 
183
        mov     esi, 7
-
 
184
        mov     ebx, [registers_x_pos_dd]
-
 
185
        add     ebx, 4*10000h+registers_y_pos+2
-
 
186
        mcall   4
-
 
187
        jmp     waitevent
-
 
188
 
-
 
189
align 4
-
 
190
.jmp_table:
-
 
191
        dd waitevent
-
 
192
        dd .close
-
 
193
        dd .mmx
-
 
194
 
Line 161... Line 195...
161
 
195
 
162
; TODO: split in more independent function
196
; TODO: split in more independent function
163
keypressed:
197
keypressed:
164
        mov     al, 2
198
        mov     al, 2
Line 931... Line 965...
931
 
965
 
932
.do_label:
966
.do_label:
Line 933... Line 967...
933
        ; draw a text string in the window
967
        ; draw a text string in the window
934
 
968
 
935
        mov     eax, 4
969
        mov     eax, 4
936
        mov     esi, 21
970
        mov     esi, 23
937
        mov     edx, .str_buf
971
        mov     edx, .str_buf
Line 938... Line 972...
938
        mov     edi, COLOR_BG_NORMAL
972
        mov     edi, COLOR_BG_NORMAL
Line 949... Line 983...
949
;
983
;
950
; in: ebp index, ebx = coord
984
; in: ebp index, ebx = coord
Line 951... Line 985...
951
 
985
 
Line -... Line 986...
-
 
986
draw_mmx_register_2:
-
 
987
 
-
 
988
        sub     esp, 24
952
draw_mmx_register_2:
989
        lea     edi, [esp+4]
-
 
990
 
-
 
991
        shl     ebp, 4
-
 
992
        mov     eax, ebp
-
 
993
        shl     eax, 16-4
-
 
994
        add     eax, 'MM0:'
-
 
995
        mov     [esp], eax
-
 
996
 
-
 
997
        mov     edx, dword [_mm0+ebp+4]
-
 
998
        call    .hex_2_str
-
 
999
        mov     al, ' '
-
 
1000
        stosb
-
 
1001
        call    .hex_2_str
-
 
1002
        mov     al, ' '
-
 
1003
        stosb
-
 
1004
 
-
 
1005
        mov     edx, dword [_mm0+ebp]
-
 
1006
        call    .hex_2_str
-
 
1007
        mov     al, ' '
Line 953... Line 1008...
953
 
1008
        stosb
954
        shl     ebp, 4
1009
        call    .hex_2_str
955
 
1010
 
956
        mov     ecx, (COLOR_TXT_INACTIVE or 0x40000000)
1011
        mov     ecx, (COLOR_TXT_INACTIVE or 0x40000000)
Line 970... Line 1025...
970
        je     .cd
1025
        je     .cd
Line 971... Line 1026...
971
 
1026
 
972
.scol:
1027
.scol:
973
        mov     ecx, (COLOR_TXT_CHANGED or 0x40000000)
1028
        mov     ecx, (COLOR_TXT_CHANGED or 0x40000000)
974
.cd:
-
 
975
        mov     eax, ebp
-
 
976
        shl     eax, 16-4
-
 
977
        add     eax, 'MM0='
-
 
978
        push    eax                           ;write label into stack
-
 
979
 
1029
.cd:
Line 980... Line 1030...
980
        ; draw a text string in the window
1030
        ; draw a text string in the window
981
 
1031
 
982
        mov     eax, 4
1032
        mov     eax, 4
983
        mov     esi, eax
1033
        mov     esi, 23
984
        mov     edx, esp
1034
        mov     edx, esp
-
 
1035
        mov     edi, COLOR_BG_NORMAL
-
 
1036
        int     0x40
-
 
1037
        shr     ebp, 4
Line -... Line 1038...
-
 
1038
        add     esp, 24
985
        mov     edi, COLOR_BG_NORMAL
1039
        ret
986
        int     0x40
1040
 
987
 
1041
align 4
988
        mov     esi, ecx
1042
.hex_2_str:
989
        mov     [esp], ebx
1043
        mov     ecx, 4
990
 
1044
@@:
991
        mov     ecx, dword [_mm0+ebp+4]
1045
        xor     eax, eax
992
        rol     ecx, 16
-
 
993
        lea     edx, [ebx+0x180000]
-
 
994
        mov     ebx, 0x00040100
1046
        shld    eax, edx, 4
995
        mcall   47                        ;word #3
1047
        aaa
996
 
-
 
997
        shr     ecx, 16
-
 
998
        add     edx, (4*6+3) shl 16
1048
        adc     al, 0x30
999
        mcall   47                        ;word #2
1049
        aad     16
1000
 
-
 
1001
        mov     ecx, dword [_mm0+ebp]
-
 
1002
        rol     ecx, 16
-
 
1003
        add     edx, (4*6+3) shl 16
1050
        shl     edx, 4
1004
        mcall   47                        ;word #1
-
 
1005
 
-
 
Line -... Line 1051...
-
 
1051
        stosb
-
 
1052
        loop @B
-
 
1053
        ret
-
 
1054
 
-
 
1055
align 4
-
 
1056
draw_fpu_regs:
-
 
1057
        push    ebp
-
 
1058
        push    8
-
 
1059
        xor     ebp, ebp
-
 
1060
        mov     ebx, [registers_x_pos_dd]
-
 
1061
        add     ebx, 2*10000h+registers_y_pos+142
-
 
1062
        mov     edi, COLOR_BG_NORMAL
-
 
1063
.draw_regs:
-
 
1064
        call    draw_fpu_register_2
-
 
1065
        add     ebx, 10
1006
        shr     ecx, 16
1066
        inc     ebp
-
 
1067
        dec     dword [esp]
Line -... Line 1068...
-
 
1068
        jnz     .draw_regs
-
 
1069
        pop     eax                         ;restore stack
-
 
1070
        pop     ebp
-
 
1071
        ret
1007
        add     edx, (4*6+3) shl 16
1072
 
-
 
1073
align 4
-
 
1074
draw_mmx_regs:
-
 
1075
        push    ebp
-
 
1076
        push    8
-
 
1077
        xor     ebp, ebp
-
 
1078
        mov     ebx, [registers_x_pos_dd]
-
 
1079
        add     ebx, 2*10000h+registers_y_pos+142
-
 
1080
;        mov     edi, COLOR_BG_NORMAL
-
 
1081
.draw_regs:
-
 
1082
        call    draw_mmx_register_2
-
 
1083
        add     ebx, 10
1008
        mcall   47                        ;word #0
1084
        inc     ebp
Line 1009... Line 1085...
1009
 
1085
        dec     dword [esp]
1010
        pop     ebx
1086
        jnz     .draw_regs
Line 1062... Line 1138...
1062
        mov     esi, 7
1138
        mov     esi, 7
1063
        cmp     [reg_mode], REG_MODE_CPU
1139
        cmp     [reg_mode], REG_MODE_CPU
1064
        jz      @f
1140
        jz      @f
1065
        mov     ecx, (COLOR_TXT_INACTIVE or 0x40000000)
1141
        mov     ecx, (COLOR_TXT_INACTIVE or 0x40000000)
1066
    @@:
1142
    @@:
1067
        mov     edx, aMain
1143
        movzx   edx, [fpu_mode]
-
 
1144
        mov     edx, [btn2_tab+edx*4]
-
 
1145
 
1068
        ; draw a text string in the window
1146
        ; draw a text string in the window
1069
        mov     ebx, [registers_x_pos_dd]
1147
        mov     ebx, [registers_x_pos_dd]
1070
        add     ebx, 4*10000h+registers_y_pos+2
1148
        add     ebx, 4*10000h+registers_y_pos+2
1071
        mcall   4
1149
        mcall   4
Line 1140... Line 1218...
1140
        add     ebx, 2*10000h+registers_y_pos+112
1218
        add     ebx, 2*10000h+registers_y_pos+112
Line 1141... Line 1219...
1141
 
1219
 
1142
        mov     cl, 7
1220
        mov     cl, 7
1143
        add     esi, _eflags-_eip
1221
        add     esi, _eflags-_eip
1144
        call    draw_register
-
 
1145
        mov     cl, 4
-
 
1146
 
-
 
1147
    ; MMX registers
-
 
1148
 
-
 
1149
        push    ebp
-
 
1150
 
-
 
1151
        push    8
-
 
1152
        xor     ebp, ebp
-
 
1153
        mov     ebx, [registers_x_pos_dd]
-
 
1154
        add     ebx, 2*10000h+registers_y_pos+142
-
 
1155
 
-
 
1156
align 4
-
 
1157
.draw_mmx_regs:
-
 
1158
 
-
 
1159
        call    draw_mmx_register_2
-
 
1160
        add     ebx, 10
-
 
1161
        inc     ebp
-
 
1162
        dec     dword [esp]
-
 
1163
        jnz     .draw_mmx_regs
-
 
1164
 
-
 
1165
;FPU registers
-
 
1166
 
-
 
1167
        ;int3
-
 
1168
        ;nop
-
 
1169
 
-
 
1170
        mov     [esp], byte 8
-
 
1171
        xor     ebp, ebp
-
 
1172
        mov     ebx, [registers_x_pos_dd]
-
 
1173
        add     ebx, 2*10000h+registers_y_pos+232
-
 
1174
 
-
 
1175
align 4
-
 
1176
.draw_fpu_regs:
-
 
1177
 
-
 
1178
        call    draw_fpu_register_2
-
 
1179
        add     ebx, 10
-
 
1180
        inc     ebp
-
 
1181
        dec     dword [esp]
-
 
1182
        jnz     .draw_fpu_regs
-
 
1183
        pop     eax                         ;restore stack
-
 
Line -... Line 1222...
-
 
1222
        call    draw_register
-
 
1223
 
-
 
1224
        cmp     [fpu_mode], 1
-
 
1225
        je      .fpu
-
 
1226
        call    draw_mmx_regs
-
 
1227
        jmp     @f
-
 
1228
.fpu:
1184
        pop     ebp
1229
        call    draw_fpu_regs
1185
 
1230
@@:
1186
        mov     ecx, COLOR_TXT_INACTIVE
1231
        mov     ecx, COLOR_TXT_INACTIVE
1187
        cmp     [debuggee_pid], 0
1232
        cmp     [debuggee_pid], 0
1188
        jz      @f
1233
        jz      @f
Line 1772... Line 1817...
1772
        mov     ebx, [data_x_size_dd+4]
1817
        mov     ebx, [data_x_size_dd+4]
1773
        add     ebx, (data_x_pos-2)*10000h + (data_x_pos+2)
1818
        add     ebx, (data_x_pos-2)*10000h + (data_x_pos+2)
1774
        mov     ecx, (disasm_y_pos-4)*10001h
1819
        mov     ecx, (disasm_y_pos-4)*10001h
1775
        mcall
1820
        mcall
Line -... Line 1821...
-
 
1821
 
-
 
1822
        mov     ebx, [registers_x_pos_dd]
-
 
1823
        add     ebx, (4 shl 16) + 42
-
 
1824
        mov     ecx, (registers_y_pos shl 16) + 11
-
 
1825
        mov     edx, (1 shl 30)+2
-
 
1826
        mov     esi, 0x00808080
-
 
1827
        mcall   8
-
 
1828
 
1776
 
1829
 
1777
        ; redraw whole window again
1830
        ; redraw whole window again
1778
        call    redraw_title
1831
        call    redraw_title
1779
        call    draw_registers
1832
        call    draw_registers
1780
        call    draw_dump
1833
        call    draw_dump