From 102d7cd4b64608032617b642d1889540fcdbbf11 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Fri, 12 Apr 2013 00:15:39 +0000 Subject: [PATCH] cmm: update libs git-svn-id: svn://kolibrios.org@3467 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/cmm/eolite/Eolite.c | 12 +++++--- programs/cmm/eolite/imgs/icons.txt | 2 +- programs/cmm/eolite/imgs/left_p.txt | 2 +- programs/cmm/lib/file_system.h | 2 +- programs/cmm/lib/kolibri.h | 10 ++++++- programs/cmm/lib/strings.h | 45 +---------------------------- 6 files changed, 21 insertions(+), 52 deletions(-) diff --git a/programs/cmm/eolite/Eolite.c b/programs/cmm/eolite/Eolite.c index 845f370863..61af30c4cc 100644 --- a/programs/cmm/eolite/Eolite.c +++ b/programs/cmm/eolite/Eolite.c @@ -460,7 +460,10 @@ void List_ReDraw() void Line_ReDraw(dword color, filenum){ - dword text_col=0, name_len=0, y=filenum*files.line_h+57; + dword text_col=0, + name_len=0, + attr, + y=filenum*files.line_h+57; DrawBar(files.x,y,3,files.line_h,color); DrawBar(files.x+19,y,files.w-19,files.line_h,color); DrawBar(files.x+3,y+17,16,1,color); @@ -468,8 +471,9 @@ void Line_ReDraw(dword color, filenum){ if (files.line_h>15) DrawBar(files.x+3,y,16,files.line_h-15,color); off=file_mas[filenum+files.first]*304 + buf+72; + attr = ESDWORD[off - 40]; - if (!TestBit(ESDWORD[off-40], 4)) //file or folder? + if (! TestBit(attr, 4) ) //file or folder? { Put_icon(off+_strrchr(off,'.'), files.line_h/2-7+y, color); WriteText(7-strlen(ConvertMemSize(ESDWORD[off-8]))*6+onLeft(75,0),files.line_h-6/2+y,0x80,0,ConvertMemSize(ESDWORD[off-8])); //size @@ -479,10 +483,10 @@ void Line_ReDraw(dword color, filenum){ Put_icon("..", files.line_h/2-7+y, color); else Put_icon("", files.line_h/2-7+y, color); - if (TestBit(ESDWORD[off-40],1)) || (TestBit(ESDWORD[off-40],2)) text_col=0xA6A6B7; //system or hiden? + if ( TestBit(attr, 1) ) || ( TestBit(attr, 2) ) text_col=0xA6A6B7; //system or hiden? if (color!=0xFFFfff) { - itdir=TestBit(ESDWORD[off-40], 4); + itdir = TestBit(attr, 4); strcpy(#file_name, off); strcpy(#file_path, #path); strcat(#file_path, #file_name); diff --git a/programs/cmm/eolite/imgs/icons.txt b/programs/cmm/eolite/imgs/icons.txt index fa2f4064b1..a22b3c7fbe 100644 --- a/programs/cmm/eolite/imgs/icons.txt +++ b/programs/cmm/eolite/imgs/icons.txt @@ -4,4 +4,4 @@ dword ficons_pal[] = {0xFCFEFC,0x5C627C,0xCCCCD0,0x848AA4,0xFCF2F5,0xF4F4FA,0x9498AF,0xE4DEEC,0x9CA4B6,0xE4E2E4,0xF4EDFB,0xACABAC,0x74799A,0xECEDEE,0xC4C2C9,0xE4E5EC,0xECF2F3,0xDBDCE4,0xD4CEDC,0x00D4D3DA,0xC6CBE2,0x5C6684,0x5C568C,0xFCB694,0xC4C6D4,0x7C829C,0xBCBECC,0xFC9D73,0xBBBCC3,0xC4BEC7,0xD7E2EF,0x515870,0x5C7AA4,0x647EA4,0xA4A3AC,0x8CA2BC,0xE4EBF0,0xCCD5D9,0x7896B8,0xBCC2D4,0xDCF0FC,0xD4EAFC,0x6C86A7,0xC4CBD1,0x9CADC4,0x748EAC,0xB5E2FC,0xC4DEFC,0x00B9CDE4,0x7CAADA,0xABAEBC,0xCCDBE4,0x578FC4,0x5484B8,0x6482A4,0xABB2C4,0x5C89BC,0xA47868,0x644A44,0x7C603C,0x6C4F26,0xFCFD9F,0xBA9D40,0xFCE274,0xFCDE60,0xC4A650,0x644E44,0xF4D27C,0xA29880,0xFCDA84,0xFCC354,0xECB847,0xFCC24C,0x9C8E74,0xE4AA54,0xDCA24C,0x9B6A55,0x543A34,0x6EBEE0,0x64BEDC,0xB4DEF4,0x7CBAE4,0xECFEFC,0xA4CAF4,0x99C5F1,0xA4C6EA,0x040204,0x94BAE4,0x64718B,0xB4B2B4,0xF43E4C,0x44CE3C,0x4CDA44,0x047CBC,0xFCBB3C,0x1C62AC,0x00FBD65C,0xC4B6A4,0xD59A52,0x7B7C7E,0x7B828A,0xC48A34,0x54463C,0xAB5A04,0xFCDE98,0xAC6A14,0xF4EED4,0xFCE8A1,0xFCCA34,0xECB624,0x34120C,0xD2A226,0xAEC5DA,0x7C9DCC,0x5C7A9C,0x84AAD4,0x2C72BD,0x518AC2,0x447EBC,0x3C7AB4,0x247AB4,0x2669B1,0x8BB5E0,0xBCD2EC,0x6C9CC9,0x008496BC,0xEC8D99,0xD49694,0x8C8C8C,0x949392,0xCC8387,0xFCFBD3,0xE4FED4,0xBC7A24,0xA47A04,0xE7C267,0x8C5A14,0xDCBA54,0xBC6A1C,0xCC923F,0xB0722C,0xF0DAB4,0x8C522C,0x9C5204,0x945204,0xC49204,0xCC9A14,0xFCF6BC,0xFCEAC4,0xF8E4B4,0xF4D67C,0xECD274,0x7CBE7C,0x1C8E1C,0x00A98D04,0x1C8204,0x90D280,0x2C9018,0xBCFAAC,0x3CC234,0x488404,0x54AE4C,0xC8F7A4,0x84F26C,0x5CE64C,0x24AE1C,0xB4D6A4,0x49A939,0xA8F694,0x44E63C,0x149E0C,0x848204,0x97B951,0x5C9D2F,0x6FCB4C,0x8CE264,0x4C9A24,0x509224,0x749224,0xECCA7C,0xDCBE74,0x349E2C,0x5CAE3C,0x84B64C,0xD0EC90,0x9CDA64,0x70B63C,0xBCE274,0xC4BA4C,0xDCB23C,0xC4E6F4,0x94CDC6,0x3CA674,0x51A389,0x74BAAC,0x2C8E64,0x3C8E94,0x1C6E5C,0x84AEA4,0x2489B9,0x1C6A84,0x145A6C,0x0064827C,0xACBEA4,0x0C4E5C,0x4CA6CC,0x84BAB4,0xB4CEA4,0xA4CEAC,0x0796D9,0x1C96CC,0x2496CC,0x54CAFC,0x30A6D8,0xBC2E34,0x946684,0x447684,0x34867C,0x449664,0xA4CA94,0xF46264,0x8C6E34,0xACEE64,0x9C2624,0xE42A3C,0xDC1A2C,0x846224,0x84C73F,0x8C4644,0x3C7A24,0x547A44,0x00E15671,0x6492CC,0x5C8614,0xC44244,0xDC4A6C,0x84BA1C,0x04A6F4,0xE4627C,0xEC7E94,0xB45A04,0x848387,0x9C9D9E,0xFCD94A,0xC9FEA4,0xFCCE1C,0xFCC514,0x464F6A,0x343644,0xFC0204,0xFCCBCC}; -unsigned char ficons[6240] = FROM "imgs\icons.raw"; \ No newline at end of file +unsigned char ficons[sizeof(file "imgs\icons.raw")] = FROM "imgs\icons.raw"; \ No newline at end of file diff --git a/programs/cmm/eolite/imgs/left_p.txt b/programs/cmm/eolite/imgs/left_p.txt index f35e5314c6..73a9ffc020 100644 --- a/programs/cmm/eolite/imgs/left_p.txt +++ b/programs/cmm/eolite/imgs/left_p.txt @@ -1,4 +1,4 @@ -unsigned char blue_hl[190*268]= FROM "imgs\blue_hl8.raw"; +unsigned char blue_hl[sizeof(file "imgs\blue_hl8.raw")]= FROM "imgs\blue_hl8.raw"; dword blue_hl_pal[]= {0x0001699C,0x0000699C,0x00026A9C,0x0002699C, 0x00036A9C,0x00046B9C,0x00046A9C,0x00056B9D,0x00046B9D,0x00066C9D, diff --git a/programs/cmm/lib/file_system.h b/programs/cmm/lib/file_system.h index cfb2cce5e6..14a9b1ce40 100644 --- a/programs/cmm/lib/file_system.h +++ b/programs/cmm/lib/file_system.h @@ -167,7 +167,7 @@ char isdir(dword fpath) { BDVK fpath_atr; GetFileInfo(fpath, #fpath_atr); - if (TestBit(fpath_atr.attr, 4)==1) return 1; else return 0; + if ( $test fpath_atr.attr, 4 ) return 1; else return 0; } :int GetFile(dword buf, filesize, read_path) { diff --git a/programs/cmm/lib/kolibri.h b/programs/cmm/lib/kolibri.h index df43749ca7..767e2fea6e 100644 --- a/programs/cmm/lib/kolibri.h +++ b/programs/cmm/lib/kolibri.h @@ -416,6 +416,14 @@ void WriteText(dword x,y,byte fontType, dword color, EDX) $int 0x40; } +dword WriteBufText(dword x,y,byte fontType, dword color, EDX, EDI) +{ + EAX = 4; + EBX = x<<16+y; + ECX = fontType<<24+color; + $int 0x40; +} + void WriteNumber(dword x,y,byte fontType, dword color, count, ECX) { EAX = 47; @@ -433,7 +441,7 @@ void CopyScreen(dword EBX, x, y, w, h) $int 0x40; } -dword GetPixelColor(dword x, x_size, y) +:dword GetPixelColor(dword x, x_size, y) { $mov eax, 35 EBX= y*x_size+x; diff --git a/programs/cmm/lib/strings.h b/programs/cmm/lib/strings.h index 65d698fcb0..7446014c9a 100644 --- a/programs/cmm/lib/strings.h +++ b/programs/cmm/lib/strings.h @@ -367,52 +367,9 @@ void debugi(dword d_int) } -/* strtok( LPSTR dest, src, divs); -src - указатель на исходную строку или результат предыдущего вызова -dest - указатель на буфер, куда будет скопировано слово -divs - указатель на строку, содержащую символы-разделители -Возвращает: 0, если слов больше нет - не 0, если слово скопировано в dest (передайте это значение - в качестве src для последующего поиска) */ - -inline fastcall dword strtok( EDX, ESI, EBX) -{ - asm { - XOR ECX, ECX - MOV EDI, EBX - XOR EAX, EAX - DEC ECX - REPNE SCASB - XOR ECX, 0FFFFFFFFH - DEC ECX - PUSH ECX -L1: LODSB - OR AL, AL - JZ L4 - MOV EDI, EBX - MOV ECX, SSDWORD[ ESP] - REPNE SCASB - JZ L1 - DEC ESI -L2: LODSB - MOV EDI, EBX - MOV ECX, SSDWORD[ ESP] - REPNE SCASB - JZ L3 - MOV DSBYTE[ EDX], AL - INC EDX - JMP SHORT L2 -L3: MOV EAX, ESI -L4: POP ECX - } DSBYTE[ EDX] = 0; -} #define strncpy strcpyn #define strnmov strmovn #define stricmp strcmpi #define strcmpn strncmp -#define strncmpi strcmpni -#define stricmpn strcmpni -#define strnicmp strcmpni -#define strincmp strcmpni -#define strcmpin strcmpni +