119 lines
1.6 KiB
PHP
119 lines
1.6 KiB
PHP
|
|
|||
|
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
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: ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DexOS
|
|||
|
pushad
|
|||
|
push es
|
|||
|
; mov ax,sys_data ; <- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> :)
|
|||
|
; 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
|