Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1816 → Rev 1817

/programs/games/eliza/myDex.inc
0,0 → 1,119
 
; äëèíà ñòðîêè
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