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 - указатель на буфер, куда будет скопировано слово