From 5a0f87bd4c6d751e9d5734443f552b7473b9f51a Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Sat, 17 Nov 2012 17:25:04 +0000 Subject: [PATCH] HTMLv fix, lib update git-svn-id: svn://kolibrios.org@3054 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/network/htmlv/browser/HTMLv.c | 5 +- programs/network/htmlv/lib/file_system.h | 5 ++ programs/network/htmlv/lib/kolibri.h | 34 ++++++++++++ programs/network/htmlv/lib/strings.h | 71 +++++++++++------------- 4 files changed, 73 insertions(+), 42 deletions(-) diff --git a/programs/network/htmlv/browser/HTMLv.c b/programs/network/htmlv/browser/HTMLv.c index ef87b94846..375371c857 100644 --- a/programs/network/htmlv/browser/HTMLv.c +++ b/programs/network/htmlv/browser/HTMLv.c @@ -106,9 +106,8 @@ void main() if (load_dll2(libimg, #libimg_init,1)!=0) debug("Не удалось подключить библиотеку libimg"w); if (load_dll2(boxlib, #edit_box_draw,0)!=0) {RunProgram("@notify", "System Error: library doesn't exists /rd/1/lib/box_lib.obj"); ExitProcess();} load_dll2(#abox_lib, #boxlib_init,0); - if (load_dll2(libtruetype, #truetype,0)!=0) {debug("Не удалось подключить библиотеку TrueType"w); use_truetype = 2;} - - init_font(#fontlol); + if (load_dll2(libtruetype, #truetype,0)!=0) {debug("Не удалось подключить библиотеку TrueType"w); use_truetype = 2; } + else init_font(#fontlol); if (!URL) strcpy(#URL, "/sys/home.htm"); strcpy(#editURL, #URL); diff --git a/programs/network/htmlv/lib/file_system.h b/programs/network/htmlv/lib/file_system.h index 05cba0fc76..0408ee3fcc 100644 --- a/programs/network/htmlv/lib/file_system.h +++ b/programs/network/htmlv/lib/file_system.h @@ -200,4 +200,9 @@ inline fastcall void GetCurDir( ECX, EDX) $mov eax,30 $mov ebx,2 $int 0x40 +} + +void notify(dword notify_param) +{ + RunProgram("@notify", notify_param); } \ No newline at end of file diff --git a/programs/network/htmlv/lib/kolibri.h b/programs/network/htmlv/lib/kolibri.h index f15e4753de..4de530b514 100644 --- a/programs/network/htmlv/lib/kolibri.h +++ b/programs/network/htmlv/lib/kolibri.h @@ -24,6 +24,8 @@ char program_path[4096]; #define true 1 #define false 0 +#define NULL 0 + //Button options #define BT_DEL 0x80000000 #define BT_HIDE 0x40000000 @@ -149,6 +151,30 @@ inline fastcall word GetButtonID() //---------------------------------------- +inline fastcall dword GetFreeRAM() +{ + $mov eax, 18 + $mov ebx, 16 + $int 0x40 + //return eax = размер свободной памяти в килобайтах +} + +inline fastcall dword LoadDriver( ECX) //ECX - имя драйвера +{ + $mov eax, 68 + $mov ebx, 16 + $int 0x40 + //return 0 - неудача, иначе eax = хэндл драйвера +} + +inline fastcall dword RuleDriver( ECX) //указатель на управляющую структуру +{ + $mov eax, 68 + $mov ebx, 17 + $int 0x40 + //return eax = определяется драйвером +} + struct proc_info { #define SelfInfo -1 @@ -368,6 +394,14 @@ void PutImage(dword EBX,w,h,x,y) $int 0x40 } +void _PutImage(dword x,y, w,h, EBX) +{ + EAX = 7; + ECX = w<<16+h; + EDX = x<<16+y; + $int 0x40 +} + void PutPaletteImage(dword EBX,w,h,x,y,ESI,EDI) { EAX = 65; diff --git a/programs/network/htmlv/lib/strings.h b/programs/network/htmlv/lib/strings.h index aa33f4c809..5d77ecd7da 100644 --- a/programs/network/htmlv/lib/strings.h +++ b/programs/network/htmlv/lib/strings.h @@ -9,7 +9,7 @@ // itoa( ESI) // atoi( EAX) // strupr( ESI) -// strlwr( ESI) +// strlwr( ESI) ----- возможно не поддерживает кириллицу // strttl( EDX) // strtok( ESI) //------------------------------------------------------------------------------ @@ -130,38 +130,42 @@ inline fastcall strcat( EDI, ESI) } } -char buffer[11]; -inline fastcall dword itoa( ESI) +dword itoa( ESI) { - $mov edi, #buffer - $mov ecx, 10 - $test esi, esi - $jns f1 - $mov al, '-' - $stosb - $neg esi -f1: - $mov eax, esi - $push -'0' + unsigned char buffer[11]; + EDI = #buffer; + ECX = 10; + if (ESI < 0) + { + $mov al, '-' + $stosb + $neg esi + } + + $mov eax, esi + $push -'0' f2: - $xor edx, edx - $div ecx - $push edx - $test eax, eax - $jnz f2 + $xor edx, edx + $div ecx + $push edx + $test eax, eax + $jnz f2 f3: - $pop eax - $add al, '0' - $stosb - $jnz f3 - $mov eax, #buffer - $ret + $pop eax + $add al, '0' + $stosb + $jnz f3 + + $mov al, '\0' + $stosb + + return #buffer; } + inline fastcall dword atoi( EDI) { - //ESI=EDI=EAX; ESI=EDI; IF(DSBYTE[ESI]=='-')ESI++; EAX=0; @@ -175,7 +179,7 @@ inline fastcall dword atoi( EDI) } -inline fastcall unsigned int strchr( ESI,BL) +inline fastcall signed int strchr( ESI,BL) { int jj=0; do{ @@ -183,10 +187,11 @@ inline fastcall unsigned int strchr( ESI,BL) $lodsb IF(AL==BL) return jj; } while(AL!=0); + return 0; } -inline fastcall unsigned int strrchr( ESI,BL) +inline fastcall signed int strrchr( ESI,BL) { int jj=0, last=-1; do{ @@ -280,18 +285,6 @@ LS3: - - - - - - - - - - - - /* strtok( LPSTR dest, src, divs); src - указатель на исходную строку или результат предыдущего вызова dest - указатель на буфер, куда будет скопировано слово