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