kolibrios-gitea/programs/games/eliza/myConsole.inc

85 lines
1.5 KiB
PHP
Raw Normal View History

lib_console_init:
; load DLL
mov eax, 68
mov ebx, 19
mov ecx, dll_name
int 0x40
test eax, eax
jz exit
; initialize import
mov edx, eax
mov esi, myimport
import_loop:
lodsd
test eax, eax
jz import_done
push edx
import_find:
mov ebx, [edx]
test ebx, ebx
jz exit;import_not_found
push eax
@@:
mov cl, [eax]
cmp cl, [ebx]
jnz import_find_next
test cl, cl
jz import_found
inc eax
inc ebx
jmp @b
import_find_next:
pop eax
add edx, 8
jmp import_find
import_found:
pop eax
mov eax, [edx+4]
mov [esi-4], eax
pop edx
jmp import_loop
import_done:
ret
exit:
or eax, -1
int 0x40
new_line db 13, 10, 0
dll_name db '/sys/lib/console.obj',0
caption db 'Eliza for KolibriOS', 0
align 4
myimport:
dll_start dd aStart
dll_ver dd aVersion
con_init dd aConInit
con_write_asciiz dd aConWriteAsciiz
con_exit dd aConExit
con_getch dd aCon_getch
con_cls dd aCon_cls
con_set_cursor_pos dd aCon_set_cursor_pos
con_gets dd aCon_gets
con_printf dd aCon_printf
dd 0
aStart db 'START',0
aVersion db 'version',0
aConInit db 'con_init',0
aConWriteAsciiz db 'con_write_asciiz',0
aConExit db 'con_exit',0
aCon_getch db 'con_getch',0
aCon_cls db 'con_cls',0
aCon_set_cursor_pos db 'con_set_cursor_pos',0
aCon_gets db 'con_gets',0
aCon_printf db 'con_printf',0
buffer rb 1024