diff --git a/programs/cmm/browser/HTMLv.c b/programs/cmm/browser/HTMLv.c
index cbc539bbaa..d5e1b6e4ae 100644
--- a/programs/cmm/browser/HTMLv.c
+++ b/programs/cmm/browser/HTMLv.c
@@ -185,7 +185,7 @@ void main()
case evKey:
key = GetKey();
- if (edit1.flags == 66) || (edit1.flags == 98) SWITCH(key) //если активна строка адреса игнорируем некоторые кнопки
+ if (edit1.flags & 0b10) SWITCH(key) //если активна строка адреса игнорируем некоторые кнопки
{ CASE 52: CASE 53: CASE 54: goto _EDIT_MARK; }
WB1.Scan(key);
diff --git a/programs/cmm/browser/TWB.h b/programs/cmm/browser/TWB.h
index 1b8988d2e3..4031139223 100644
--- a/programs/cmm/browser/TWB.h
+++ b/programs/cmm/browser/TWB.h
@@ -142,7 +142,7 @@ void TWebBrowser::Scan(int id)
if (strcmp(get_URL_part(5),"http:")<>0) RunProgram("/rd/1/tinypad", #URL); else RunProgram("/rd/1/tinypad", #download_path);
return;
case 054: //F5
- IF(edit1.flags == 66) break;
+ IF(edit1.flags & 0b10) break;
case REFRESH:
if (GetProcessSlot(downloader_id)<>0)
{
diff --git a/programs/cmm/lib/file_system.h b/programs/cmm/lib/file_system.h
index 0408ee3fcc..2671189616 100644
--- a/programs/cmm/lib/file_system.h
+++ b/programs/cmm/lib/file_system.h
@@ -165,7 +165,7 @@ BDVK getinfo_file_info;
{
mem_Init();
cBufer = mem_Alloc(CopyFile_atr.sizelo);
- if (! ReadFile(dword 0, CopyFile_atr.sizelo, cBufer, copy_from))
+ if (! ReadFile(0, CopyFile_atr.sizelo, cBufer, copy_from))
if (! WriteFile(CopyFile_atr.sizelo, cBufer, copy_in)) return 1;
}
@@ -205,4 +205,4 @@ inline fastcall void GetCurDir( ECX, EDX)
void notify(dword notify_param)
{
RunProgram("@notify", notify_param);
-}
\ No newline at end of file
+}
diff --git a/programs/cmm/lib/kolibri.h b/programs/cmm/lib/kolibri.h
index a466175f6a..073baffb60 100644
--- a/programs/cmm/lib/kolibri.h
+++ b/programs/cmm/lib/kolibri.h
@@ -335,6 +335,13 @@ done:
$pop ecx
$pop ebx
}
+
+inline fastcall void debugch( ECX)
+{
+ $mov eax,63
+ $mov ebx,1
+ $int 0x40
+}
//------------------------------------------------------------------------------
void DefineAndDrawWindow(dword x,y, sizeX,sizeY, byte WindowType,dword WindowAreaColor, EDI, ESI)
@@ -460,4 +467,4 @@ inline fastcall void DeleteButton( EDX)
EAX = 8;
EDX += BT_DEL;
$int 0x40;
-}
\ No newline at end of file
+}
diff --git a/programs/cmm/lib/network.h b/programs/cmm/lib/network.h
new file mode 100644
index 0000000000..8659e63ebf
--- /dev/null
+++ b/programs/cmm/lib/network.h
@@ -0,0 +1,85 @@
+//Network library
+
+dword network_lib = #a_network_lib;
+char a_network_lib[21]="/sys/lib/network.obj\0";
+
+dword network_lib_init = #aLib_init;
+dword inet_addr = #aInet_addr; //"192.168.0.1" -> dword IP
+dword inet_ntoa = #aInet_ntoa;
+dword getaddrinfo = #aGetaddrinfo;
+dword getaddrinfo_start = #aGetaddrinfo_start;
+dword getaddrinfo_process = #aGetaddrinfo_process;
+dword getaddrinfo_abort = #aGetaddrinfo_abort;
+dword freeaddrinfo = #aFreeaddrinfo;
+
+dword am3__ = 0x0;
+dword bm3__ = 0x0;
+
+char aLib_init[9] = "lib_init\0";
+char aInet_addr[10] = "inet_addr\0";
+char aInet_ntoa[10] = "inet_ntoa\0";
+char aGetaddrinfo[12] = "getaddrinfo\0";
+char aGetaddrinfo_start[18] = "getaddrinfo_start\0";
+char aGetaddrinfo_process[20] = "getaddrinfo_process\0";
+char aGetaddrinfo_abort[18] = "getaddrinfo_abort\0";
+char aFreeaddrinfo[13] = "freeaddrinfo\0";
+
+/*
+addr соответствует IP 10.101.102.103
+itoa((addr&0xFF000000)>>24) равно 103
+itoa((addr&0xFF0000)>>16) —это 102
+itoa((addr&0xFF00)>>8) — это 101
+itoa(addr&0xFF) — это 10
+*/
+
+dword GetIPfromAdress(dword addr)
+{
+ dword lpointer;
+ getaddrinfo stdcall (addr, 0, 0, #lpointer);
+ if (EAX!=0) return 0; //если ошибка
+ return DSDWORD[DSDWORD[lpointer+24]+4];
+}
+
+/*dword GetIPfromAdressASM(dword addr)
+{
+ dword lpointer;
+
+ ESP=#lpointer;
+ $push esp // lpointer
+ $push esp // fourth parameter
+ $push 0 // third parameter
+ $push 0 // second parameter
+ EAX = addr;
+ $push eax // first parameter
+ $call getaddrinfo
+ if (EAX!=0) return 0; //ошибка
+ $pop esi
+ $mov ebx, DSDWORD[lpointer+24]
+ $mov eax, DSDWORD[EBX+4]
+
+ return EAX;
+}*/
+
+
+/*
+//Convert the string from standard IPv4 dotted notation to integer IP addr.
+inet_addr stdcall ("192.168.0.1");
+server_IP = EAX;
+
+
+char* __stdcall inet_ntoa(struct in_addr in);
+Convert the Internet host address to standard IPv4 dotted notation.
+
+getaddrinfo(__in const char* hostname, __in const char* servname,
+ __in const struct addrinfo* hints, __out struct addrinfo **res);
+struct addrinfo {
+ int ai_flags;
+ int ai_family;
+ int ai_socktype;
+ int ai_protocol;
+ size_t ai_addrlen;
+ struct sockaddr *ai_addr;
+ char *ai_canonname;
+ struct addrinfo *ai_next;
+};
+*/
diff --git a/programs/cmm/lib/socket.h b/programs/cmm/lib/socket.h
new file mode 100644
index 0000000000..0b1df403c1
--- /dev/null
+++ b/programs/cmm/lib/socket.h
@@ -0,0 +1,52 @@
+#define SOCKET_PASSIVE 0
+#define SOCKET_ACTIVE 1
+inline fastcall dword OpenSocket( ECX, EDX, ESI, EDI)
+{
+ $mov eax,53
+ $mov ebx,5
+ $int 0x40
+}
+
+inline fastcall int StatusSocket( ECX)
+{
+ $mov eax,53
+ $mov ebx,6
+ $int 0x40
+}
+
+inline fastcall dword ReadSocket( ECX)
+{
+ $mov eax,53
+ $mov ebx,3
+ $int 0x40
+ return BL;
+}
+
+inline fastcall dword PollSocket( ECX)
+{
+ $mov eax,53
+ $mov ebx,2
+ $int 0x40
+}
+
+
+inline fastcall dword WriteSocket( ECX, EDX, ESI)
+{
+ $mov eax,53
+ $mov ebx,7
+ $int 0x40
+}
+
+inline fastcall int IsPortFree( ECX)
+{
+ $mov eax,53
+ $mov ebx,9
+ $int 0x40
+}
+
+unsigned int GetFreePort(int port_i)
+{
+ for (; port_i<65535; port_i++;)
+ if (IsPortFree(port_i)==1) return port_i;
+ return 0;
+}
diff --git a/programs/cmm/lib/strings.h b/programs/cmm/lib/strings.h
index 8d71313fd6..f6035ee5e4 100644
--- a/programs/cmm/lib/strings.h
+++ b/programs/cmm/lib/strings.h
@@ -130,6 +130,18 @@ inline fastcall strcat( EDI, ESI)
}
}
+/*void strcat(char *to, char *from) //тоже работает
+{
+ while(*to) to++;
+ while(*from)
+ {
+ *to = *from;
+ to++;
+ from++;
+ }
+ *to = '\0';
+}*/
+
dword itoa( ESI)
{
unsigned char buffer[11];
@@ -333,4 +345,4 @@ L4: POP ECX
#define stricmpn strcmpni
#define strnicmp strcmpni
#define strincmp strcmpni
-#define strcmpin strcmpni
\ No newline at end of file
+#define strcmpin strcmpni
diff --git a/programs/cmm/notify/@notify b/programs/cmm/notify/@notify
deleted file mode 100644
index e13de8369f..0000000000
Binary files a/programs/cmm/notify/@notify and /dev/null differ
diff --git a/programs/cmm/tmpdisk/t_window.c b/programs/cmm/tmpdisk/t_window.c
index 3951415fa6..6109aa933b 100644
--- a/programs/cmm/tmpdisk/t_window.c
+++ b/programs/cmm/tmpdisk/t_window.c
@@ -84,7 +84,7 @@ void Main_Window()
param[0]='d';
param[1]=disk_list[selected].Item[3];
Console_Work();
- Pause(15);
+ pause(15);
GetDisks();
DrawTmpDisks();
}
@@ -213,7 +213,7 @@ void AddDisk()
}
param[1]=i+48;
Console_Work();
- Pause(5);
+ pause(5);
GetDisks();
DrawTmpDisks();
}