Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 654 → Rev 655

/kernel/trunk/docs/sysfuncr.txt
2198,12 → 2198,13
* eax = 47 - ­®¬¥à ä㭪樨
* ebx = ¯ à ¬¥âàë ¯à¥®¡à §®¢ ­¨ï ç¨á«  ¢ ⥪áâ:
* bl = 0 - ecx ᮤ¥à¦¨â ç¨á«®
* bl = 1 - ecx ᮤ¥à¦¨â 㪠§ â¥«ì ­  dword-ç¨á«®
* bl = 1 - ecx ᮤ¥à¦¨â 㪠§ â¥«ì ­  dword-ç¨á«®, «¨¡® qword-ç¨á«®
* bh = 0 - ®â®¡à ¦ âì ¢ ¤¥áïâ¨ç­®© á¨á⥬¥ áç¨á«¥­¨ï
* bh = 1 - ®â®¡à ¦ âì ¢ è¥áâ­ ¤æ â¥à¨ç­®© á¨á⥬¥
* bh = 2 - ®â®¡à ¦ âì ¢ ¤¢®¨ç­®© á¨á⥬¥
* ¡¨âë 16-21 = ᪮«ìª® æ¨äà ®â®¡à ¦ âì
* ¡¨âë 22-30 § à¥§¥à¢¨à®¢ ­ë ¨ ¤®«¦­ë ¡ëâì ãáâ ­®¢«¥­ë ¢ 0
* ¡¨âë 22-29 § à¥§¥à¢¨à®¢ ­ë ¨ ¤®«¦­ë ¡ëâì ãáâ ­®¢«¥­ë ¢ 0
* ¡¨â 30 - ãáâ ­®¢«¥­ ¢ 1, ¥á«¨ âॡã¥âáï ¢ë¢®¤ qword (64-¡¨â­®£®) ç¨á« 
* ¡¨â 31 - ãáâ ­®¢«¥­ ¢ 1, ¥á«¨ âॡã¥âáï ¢ë¢®¤ ç¨á«  ¡¥§ ¯ãáâëå ­ã«¥© ¢ áâ àè¨å à §à鸞å
* ecx = ç¨á«® (¯à¨ bl=0) ¨«¨ 㪠§ â¥«ì (¯à¨ bl=1)
* edx = [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
/kernel/trunk/docs/sysfuncs.txt
2169,12 → 2169,13
* eax = 47 - function number
* ebx = parameters of conversion number to text:
* bl = 0 - ecx contains number
* bl = 1 - ecx contains pointer to dword-number
* bl = 1 - ecx contains pointer to dword-number, or qword-number
* bh = 0 - display in decimal number system
* bh = 1 - display in hexadecimal system
* bh = 2 - display in binary system
* bits 16-21 = how many digits to display
* bits 22-30 reserved and must be set to 0
* bits 22-29 reserved and must be set to 0
* bit 30 - set in 1, if the output of qword (64-bites) number
* bit 31 - set in 1, if the output of number without empty zero in high bits is required
* ecx = number (if bl=0) or pointer (if bl=1)
* edx = [coordinate on axis x]*65536 + [coordinate on axis y]
/kernel/trunk/kernel.asm
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