From 562beb7d6af37a940ac86b1fceb94e6e8cecec84 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Wed, 23 Nov 2016 10:04:07 +0000 Subject: [PATCH] cmm: decrease apps size git-svn-id: svn://kolibrios.org@6742 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/cmm/lib/keyboard.h | 2 -- programs/cmm/lib/kolibri.h | 24 ++++++++++++++++-------- programs/cmm/lib/strings.h | 14 +++++++------- programs/cmm/pixie/pixie.c | 2 -- 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/programs/cmm/lib/keyboard.h b/programs/cmm/lib/keyboard.h index 39c0581d8a..d9dc49f675 100644 --- a/programs/cmm/lib/keyboard.h +++ b/programs/cmm/lib/keyboard.h @@ -50,8 +50,6 @@ #define KEY_LWIN 01000000000b #define KEY_RWIN 10000000000b -dword calc(EAX) { return EAX; } - inline fastcall word GetKey() //+Gluk fix { $push edx diff --git a/programs/cmm/lib/kolibri.h b/programs/cmm/lib/kolibri.h index fc9c974298..6e27f04b75 100644 --- a/programs/cmm/lib/kolibri.h +++ b/programs/cmm/lib/kolibri.h @@ -66,6 +66,8 @@ char program_path[4096]; #include "../lib/mouse.h" #include "../lib/keyboard.h" +:dword calc(EAX) { return EAX; } + :struct raw_image { dword w, h, data; }; @@ -329,7 +331,7 @@ inline fastcall int TestBit( EAX, CL) //------------------------------------------------------------------------------ -void DefineAndDrawWindow(dword x, y, size_w, size_h, byte WindowType,dword WindowAreaColor, EDI, ESI) +:void DefineAndDrawWindow(dword x, y, size_w, size_h, byte WindowType,dword WindowAreaColor, bgcolor, title) { EAX = 12; // function 12:tell os about windowdraw EBX = 1; @@ -338,10 +340,12 @@ void DefineAndDrawWindow(dword x, y, size_w, size_h, byte WindowType,dword Windo $xor EAX,EAX EBX = x << 16 + size_w; ECX = y << 16 + size_h; - EDX = WindowType << 24 | WindowAreaColor; + EDI = bgcolor; + ESI = title; $int 0x40 + EAX = 12; // function 12:tell os about windowdraw EBX = 2; $int 0x40 @@ -381,15 +385,17 @@ inline fastcall void DrawTitle( ECX) $int 0x40; } -dword WriteBufText(dword x,y,byte fontType, dword color, EDX, EDI) +:dword WriteBufText(dword x,y,byte fontType, dword color, str_offset, buf_offset) { EAX = 4; EBX = x<<16+y; ECX = fontType<<24+color; + EDX = str_offset; + EDI = buf_offset; $int 0x40; } -void WriteNumber(dword x,y,byte fontType, dword color, count, number_or_offset) +:void WriteNumber(dword x,y,byte fontType, dword color, count, number_or_offset) { EAX = 47; EBX = count<<16; @@ -431,7 +437,7 @@ void PutPaletteImage(dword EBX,w,h,x,y,ESI,EDI) EDX = x<<16+y; EBP = 0; $int 0x40 -} +} inline fastcall void PutPixel( EBX,ECX,EDX) { @@ -439,12 +445,13 @@ inline fastcall void PutPixel( EBX,ECX,EDX) $int 0x40 } -void DrawBar(dword x,y,w,h,EDX) +:void DrawBar(dword x,y,w,h,color) { if (h<=0) || (h>60000) || (w<=0) || (w>60000) return; //bad boy :) EAX = 13; EBX = x<<16+w; ECX = y<<16+h; + EDX = color; $int 0x40 } @@ -473,11 +480,13 @@ inline RefreshWindow(dword ID_REFRESH,ID_ACTIVE) $int 0x40 } -void UnsafeDefineButton(dword x,y,w,h,EDX,ESI) +:void UnsafeDefineButton(dword x,y,w,h,id,color) { EAX = 8; EBX = x<<16+w; ECX = y<<16+h; + EDX = id; + ESI = color; $int 0x40 } @@ -608,7 +617,6 @@ void ______INIT______() screen.width = GetScreenWidth(); screen.height = GetScreenHeight(); - //program_path_length = strlen(I_Path); DOUBLE_CLICK_DELAY = GetMouseDoubleClickDelay(); __generator = GetStartTime(); diff --git a/programs/cmm/lib/strings.h b/programs/cmm/lib/strings.h index 5c36f8ca2c..087afa9c37 100644 --- a/programs/cmm/lib/strings.h +++ b/programs/cmm/lib/strings.h @@ -356,9 +356,9 @@ inline fastcall void strcat( EDI, ESI) } } -void strncat(dword text1, text2, signed len) - signed o1,o2; - char s; +:void strncat(dword text1, text2, signed len) +signed o1,o2; +char s; { s = DSBYTE[text1]; while(s){ @@ -413,13 +413,13 @@ inline fastcall signed int strrchr( ESI,BL) } -int chrnum(dword searchin, char symbol) +inline fastcall unsigned int chrnum( ESI, BL) { int num = 0; - while(DSBYTE[searchin]) + while(DSBYTE[ESI]) { - if (DSBYTE[searchin] == symbol) num++; - searchin++; + if (DSBYTE[ESI] == BL) num++; + ESI++; } return num; } diff --git a/programs/cmm/pixie/pixie.c b/programs/cmm/pixie/pixie.c index 670d7b1e28..b6e2ba4f54 100644 --- a/programs/cmm/pixie/pixie.c +++ b/programs/cmm/pixie/pixie.c @@ -102,11 +102,9 @@ void main() { int id; - byte mouse_clicked; dword tmp_x,tmp_y; dword z1,z2; - mem_Init(); load_dll(boxlib, #box_lib_init,0); load_dll(libio, #libio_init,1); load_dll(libimg, #libimg_init,1);