1329,7 → 1329,7 |
xor edi, edi |
display_number_force: |
push eax |
and eax,0x7fffffff |
and eax,0x3fffffff |
cmp eax,0xffff ; length > 0 ? |
pop eax |
jge cont_displ |
1336,7 → 1336,7 |
ret |
cont_displ: |
push eax |
and eax,0x7fffffff |
and eax,0x3fffffff |
cmp eax,61*0x10000 ; length <= 60 ? |
pop eax |
jb cont_displ2 |
1347,6 → 1347,9 |
|
cmp al,1 ; ecx is a pointer ? |
jne displnl1 |
mov ebp,ebx |
add ebp,4 |
mov ebp,[ebp+std_application_base_address] |
mov ebx,[ebx+std_application_base_address] |
displnl1: |
sub esp,64 |
1354,7 → 1357,7 |
cmp ah,0 ; DECIMAL |
jne no_display_desnum |
shr eax,16 |
and eax,0x803f |
and eax,0xC03f |
; and eax,0x3f |
push eax |
and eax,0x3f |
1365,6 → 1368,7 |
mov ebx,10 |
d_desnum: |
xor edx,edx |
call division_64_bits |
div ebx |
add dl,48 |
mov [edi],dl |
1381,7 → 1385,7 |
cmp ah,0x01 ; HEXADECIMAL |
jne no_display_hexnum |
shr eax,16 |
and eax,0x803f |
and eax,0xC03f |
; and eax,0x3f |
push eax |
and eax,0x3f |
1392,6 → 1396,7 |
mov ebx,16 |
d_hexnum: |
xor edx,edx |
call division_64_bits |
div ebx |
add edx,hexletters |
mov dl,[edx] |
1409,7 → 1414,7 |
cmp ah,0x02 ; BINARY |
jne no_display_binnum |
shr eax,16 |
and eax,0x803f |
and eax,0xC03f |
; and eax,0x3f |
push eax |
and eax,0x3f |
1420,6 → 1425,7 |
mov ebx,2 |
d_binnum: |
xor edx,edx |
call division_64_bits |
div ebx |
add dl,48 |
mov [edi],dl |
1453,8 → 1459,17 |
and eax,0x3f |
ret |
|
division_64_bits: |
test [esp+1+4],byte 0x40 |
jz .continue |
push eax |
mov eax,ebp |
div ebx |
mov ebp,eax |
pop eax |
.continue: |
ret |
|
|
draw_num_text: |
|
; dtext |