5646ab62dc
git-svn-id: svn://kolibrios.org@1817 a494cfbc-eb01-0410-851d-a64ba20cac60
119 lines
1.6 KiB
PHP
119 lines
1.6 KiB
PHP
|
|
; äëèíà ñòðîêè
|
|
macro strlen string
|
|
{
|
|
local .bcl,.ebcl
|
|
mov esi,string
|
|
mov ecx,0
|
|
.bcl:
|
|
cmp byte [esi+ecx],0
|
|
je .ebcl
|
|
inc ecx
|
|
jmp .bcl
|
|
.ebcl:
|
|
|
|
}
|
|
|
|
|
|
Clstext dd _Clstext
|
|
PrintString dd _PrintString
|
|
WaitForKeyPress dd _WaitForKeyPress
|
|
SetCursorPos dd _SetCursorPos
|
|
TextColor dd _TextColor
|
|
GetUserInput dd _GetUserInput
|
|
UpperCase dd _UpperCase
|
|
PrintChar dd _PrintChar
|
|
PrintCharCursor dd _PrintCharCursor
|
|
|
|
|
|
_Clstext:
|
|
call [con_cls]
|
|
ret
|
|
|
|
_PrintString:
|
|
pusha
|
|
push esi
|
|
call [con_write_asciiz]
|
|
popa
|
|
ret
|
|
|
|
_WaitForKeyPress:
|
|
pusha
|
|
call [con_getch]
|
|
popa
|
|
ret
|
|
|
|
_SetCursorPos:
|
|
pusha
|
|
mov ebx, eax
|
|
and ebx, 0xff
|
|
mov ecx, eax
|
|
and ecx, 0xff00
|
|
shr ecx, 8
|
|
push ecx
|
|
push ebx
|
|
call [con_set_cursor_pos]
|
|
popa
|
|
ret
|
|
|
|
_TextColor:
|
|
ret
|
|
|
|
_GetUserInput:
|
|
pusha
|
|
push new_line
|
|
call [con_write_asciiz]
|
|
push 256
|
|
push buffer
|
|
call [con_gets]
|
|
popa
|
|
mov edi, buffer
|
|
strlen edi
|
|
ret
|
|
|
|
_UpperCase: ; ñêîïèðîâàíî èç èñõîäíèêà DexOS
|
|
pushad
|
|
push es
|
|
; mov ax,sys_data ; <- ëèøíÿÿ äåòàëü :)
|
|
; mov es,ax
|
|
UcaseNextChar:
|
|
mov al,byte[es:edi]
|
|
cmp al,0
|
|
je UcaseDone
|
|
cmp al,0x61
|
|
jb DontUcaseChar
|
|
cmp al,0x7a
|
|
ja DontUcaseChar
|
|
sub al,0x20
|
|
mov byte[es:edi],al
|
|
DontUcaseChar:
|
|
inc edi
|
|
jmp UcaseNextChar
|
|
UcaseDone:
|
|
pop es
|
|
popad
|
|
ret
|
|
|
|
_PrintChar:
|
|
pusha
|
|
and eax, 0xff
|
|
push eax
|
|
push char_spec
|
|
call [con_printf]
|
|
add esp, 8
|
|
popa
|
|
ret
|
|
|
|
_PrintCharCursor:
|
|
pusha
|
|
and eax, 0xff
|
|
push eax
|
|
push char_spec
|
|
call [con_printf]
|
|
add esp, 8
|
|
popa
|
|
ret
|
|
|
|
|
|
|
|
char_spec db '%c',0 |