From 30f46956859b14cf13c457a065ba3870e38f7d55 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Mon, 11 Mar 2013 18:16:24 +0000 Subject: [PATCH] cmm: uploading all, part 1 git-svn-id: svn://kolibrios.org@3363 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/cmm/browser/HTMLv.c | 7 +- programs/cmm/browser/TWB.h | 107 +- programs/cmm/browser/compile.bat | 9 +- programs/cmm/browser/include/some_code.h | 2 +- programs/cmm/buildall.bat | 67 + programs/cmm/dict/compile.bat | 5 - programs/cmm/dict/dicty_.c | 306 -- programs/cmm/dicty/compile.bat | 5 + programs/cmm/{dict => dicty}/dicty.c | 218 +- programs/cmm/dicty/speaker.ico | Bin 0 -> 7798 bytes programs/cmm/dicty/speaker.raw | 1 + programs/cmm/end/compile.bat | 5 + programs/cmm/{new_end => end}/end.c | 74 +- programs/cmm/{new_end => end}/moon.bmp | Bin programs/cmm/{new_end => end}/moon.raw | Bin programs/cmm/eolite/Eolite.c | 817 +++ programs/cmm/eolite/compile.bat | 5 + programs/cmm/eolite/imgs/actions.raw | Bin 0 -> 2112 bytes programs/cmm/eolite/imgs/blue_hl8.raw | Bin 0 -> 50920 bytes programs/cmm/eolite/imgs/dev.raw | Bin 0 -> 3276 bytes programs/cmm/eolite/imgs/goto_about.raw | Bin 0 -> 1904 bytes programs/cmm/eolite/imgs/icons.raw | Bin 0 -> 6240 bytes programs/cmm/eolite/imgs/icons.txt | 7 + programs/cmm/eolite/imgs/left_p.txt | 59 + programs/cmm/eolite/imgs/logo8b.raw | Bin 0 -> 7225 bytes programs/cmm/eolite/imgs/png/Eolite-Sun.png | Bin 0 -> 3469 bytes programs/cmm/eolite/imgs/png/blue_hl81.png | Bin 0 -> 6121 bytes programs/cmm/eolite/imgs/png/dev.png | Bin 0 -> 1526 bytes programs/cmm/eolite/imgs/png/file_actions.png | Bin 0 -> 694 bytes programs/cmm/eolite/imgs/png/icons.png | Bin 0 -> 5347 bytes programs/cmm/eolite/imgs/png/rb.png | Bin 0 -> 1329 bytes programs/cmm/eolite/imgs/png/toolbar.png | Bin 0 -> 2588 bytes programs/cmm/eolite/imgs/toolbar.txt | 537 ++ programs/cmm/eolite/include/about_dialog.h | 40 + programs/cmm/eolite/include/history.h | 57 + programs/cmm/eolite/include/icons_f.h | 301 ++ programs/cmm/eolite/include/ini.h | 134 + programs/cmm/eolite/include/left_panel.h | 192 + programs/cmm/eolite/include/some_code.h | 69 + programs/cmm/eolite/include/sorting.h | 51 + programs/cmm/eolite/txt/History.txt | 569 +++ programs/cmm/eolite/txt/ReadMe_en.txt | 32 + programs/cmm/eolite/txt/ReadMe_ru.txt | 31 + programs/cmm/example/compile.bat | 9 +- programs/cmm/example/example.c | 5 +- programs/cmm/installer/compile.bat | 5 + programs/cmm/installer/copyf.c | 173 + programs/cmm/installer/hallo.c | 48 + programs/cmm/installer/img/logo.ico | Bin 0 -> 3326 bytes programs/cmm/installer/img/logo.raw | Bin 0 -> 2304 bytes programs/cmm/installer/installation.c | 102 + programs/cmm/installer/main.c | 65 + programs/cmm/installer/main.lst | 4363 +++++++++++++++++ programs/cmm/installer/tmp_add.c | 38 + programs/cmm/kolibrin/compile.bat | 5 + programs/cmm/kolibrin/kolibrin.c | 47 + programs/cmm/lib/figures.h | 54 +- programs/cmm/lib/file_system.h | 77 +- programs/cmm/lib/kolibri.h | 37 +- programs/cmm/lib/lib.obj/box_lib.h | 74 +- programs/cmm/lib/lib.obj/iconv.h | 27 +- programs/cmm/lib/strings.h | 18 +- programs/cmm/new_end/compile.bat | 6 - programs/cmm/notify/notify.c | 26 +- programs/cmm/rb/rb.c | 39 +- 65 files changed, 8282 insertions(+), 643 deletions(-) create mode 100644 programs/cmm/buildall.bat delete mode 100644 programs/cmm/dict/compile.bat delete mode 100644 programs/cmm/dict/dicty_.c create mode 100644 programs/cmm/dicty/compile.bat rename programs/cmm/{dict => dicty}/dicty.c (50%) create mode 100644 programs/cmm/dicty/speaker.ico create mode 100644 programs/cmm/dicty/speaker.raw create mode 100644 programs/cmm/end/compile.bat rename programs/cmm/{new_end => end}/end.c (63%) rename programs/cmm/{new_end => end}/moon.bmp (100%) rename programs/cmm/{new_end => end}/moon.raw (100%) create mode 100644 programs/cmm/eolite/Eolite.c create mode 100644 programs/cmm/eolite/compile.bat create mode 100644 programs/cmm/eolite/imgs/actions.raw create mode 100644 programs/cmm/eolite/imgs/blue_hl8.raw create mode 100644 programs/cmm/eolite/imgs/dev.raw create mode 100644 programs/cmm/eolite/imgs/goto_about.raw create mode 100644 programs/cmm/eolite/imgs/icons.raw create mode 100644 programs/cmm/eolite/imgs/icons.txt create mode 100644 programs/cmm/eolite/imgs/left_p.txt create mode 100644 programs/cmm/eolite/imgs/logo8b.raw create mode 100644 programs/cmm/eolite/imgs/png/Eolite-Sun.png create mode 100644 programs/cmm/eolite/imgs/png/blue_hl81.png create mode 100644 programs/cmm/eolite/imgs/png/dev.png create mode 100644 programs/cmm/eolite/imgs/png/file_actions.png create mode 100644 programs/cmm/eolite/imgs/png/icons.png create mode 100644 programs/cmm/eolite/imgs/png/rb.png create mode 100644 programs/cmm/eolite/imgs/png/toolbar.png create mode 100644 programs/cmm/eolite/imgs/toolbar.txt create mode 100644 programs/cmm/eolite/include/about_dialog.h create mode 100644 programs/cmm/eolite/include/history.h create mode 100644 programs/cmm/eolite/include/icons_f.h create mode 100644 programs/cmm/eolite/include/ini.h create mode 100644 programs/cmm/eolite/include/left_panel.h create mode 100644 programs/cmm/eolite/include/some_code.h create mode 100644 programs/cmm/eolite/include/sorting.h create mode 100644 programs/cmm/eolite/txt/History.txt create mode 100644 programs/cmm/eolite/txt/ReadMe_en.txt create mode 100644 programs/cmm/eolite/txt/ReadMe_ru.txt create mode 100644 programs/cmm/installer/compile.bat create mode 100644 programs/cmm/installer/copyf.c create mode 100644 programs/cmm/installer/hallo.c create mode 100644 programs/cmm/installer/img/logo.ico create mode 100644 programs/cmm/installer/img/logo.raw create mode 100644 programs/cmm/installer/installation.c create mode 100644 programs/cmm/installer/main.c create mode 100644 programs/cmm/installer/main.lst create mode 100644 programs/cmm/installer/tmp_add.c create mode 100644 programs/cmm/kolibrin/compile.bat create mode 100644 programs/cmm/kolibrin/kolibrin.c delete mode 100644 programs/cmm/new_end/compile.bat diff --git a/programs/cmm/browser/HTMLv.c b/programs/cmm/browser/HTMLv.c index 59106339c0..6544822faf 100644 --- a/programs/cmm/browser/HTMLv.c +++ b/programs/cmm/browser/HTMLv.c @@ -4,6 +4,7 @@ //home icon - rachel fu, GPL licence //libraries +#define MEMSIZE 0x100000 #include "..\lib\kolibri.h" #include "..\lib\strings.h" #include "..\lib\figures.h" @@ -42,7 +43,7 @@ proc_info Form; #define WIN_H 480 -dword stak[100]; // +char stak[100]; // mouse m; #include "TWB.h" @@ -234,13 +235,13 @@ void Draw_Window() if (Form.width<280) MoveSize(OLD,OLD,280,OLD); PutPaletteImage(#toolbar,200,42,0,0,8,#toolbar_pal); - if (GetProcessSlot(downloader_id)<>0) PutImage(#stop_btn,24,24,88,10); + if (GetProcessSlot(downloader_id)<>0) _PutImage(88,10, 24,24, #stop_btn); DrawBar(200,0,onLeft(200,9),43,0xE4DFE1); // DrawBar(0,42,onLeft(5,4),1,0xE2DBDC); // DrawBar(0,43,onLeft(5,4),1,0xD2CED0); // for (j=0; j<5; j++) DefineButton(j*37+11, 7, 29, 29, 300+j+BT_HIDE, 0xE4DFE1); - PutImage(#URLgoto,40,19,onLeft(57,0),14); + _PutImage(onLeft(57,0),14, 40,19, #URLgoto); DefineButton(onLeft(37,0),15, 18, 16, GOTOURL+BT_HIDE, 0xE4DFE1); DefineButton(onLeft(56,0),15, 17, 16, SEARCHWEB+BT_HIDE, 0xE4DFE1); DrawRectangle(205,14,onLeft(58,205),18,0x94AECE); // diff --git a/programs/cmm/browser/TWB.h b/programs/cmm/browser/TWB.h index 76d7a53584..d5215b5ee7 100644 --- a/programs/cmm/browser/TWB.h +++ b/programs/cmm/browser/TWB.h @@ -475,7 +475,7 @@ void TWebBrowser::ParseHTML(dword bword){ if (line[strlen(#line)-1]==' ') break; // 2 if (!stolbec) && (!line) break; // } - if (strlen(#line) lines.column_max) { @@ -828,65 +828,64 @@ void Images(int left1, top1, width1) char img_path[4096], alt[4096]; int w=0, h=0, img_lines_first=0, cur_pic=0; - if (GetFileInfo(libimg)<>0) return; // - do{ - if (!strcmp(#parametr,"src=")) // GetNewUrl() + do{ + if (!strcmp(#parametr,"src=")) // GetNewUrl() + { + if (downloader_id) strcpy(#img_path, #history_list[history_current-1].Item); + else strcpy(#img_path, BrowserHistory.CurrentUrl()); // + + if (strcmpn(#img_path, "http:", 5)!=0) || (strcmpn(#options, "http:", 5)!=0) { - if (downloader_id) strcpy(#img_path, #history_list[history_current-1].Item); - else strcpy(#img_path, BrowserHistory.CurrentUrl()); // + img_path[strrchr(#img_path, '/')] = '\0'; // / + strcat(#img_path, #options); - if (strcmpn(#img_path, "http:", 5)!=0) || (strcmpn(#options, "http:", 5)!=0) + cur_pic=GetOrSetPicNum(#img_path); + if (!pics[cur_pic].path) { - img_path[strrchr(#img_path, '/')] = '\0'; // / - strcat(#img_path, #options); - - cur_pic=GetOrSetPicNum(#img_path); - if (!pics[cur_pic].path) - { - pics[cur_pic].image=load_image(#img_path); - strcpy(#pics[cur_pic].path, #img_path); - } + pics[cur_pic].image=load_image(#img_path); + strcpy(#pics[cur_pic].path, #img_path); } } - if (!strcmp(#parametr,"alt=")) - { - strcpy(#alt, "["); - strcat(#alt, #options); - strcat(#alt, "]"); - } + } + if (!strcmp(#parametr,"alt=")) + { + strcpy(#alt, "["); + strcat(#alt, #options); + strcat(#alt, "]"); + } - } while(GetNextParam()); - - if (!pics[cur_pic].image) - { - if (alt) && (link) strcat(#line, #alt); - return; - } - - w=DSWORD[pics[cur_pic].image+4]; - h=DSWORD[pics[cur_pic].image+8]; - if (w>width1) w=width1; - - if (stroka==0) DrawBar(WB1.left, WB1.top, WB1.width-15, 15, bg_color); // - stroka+=h/10; - if (top1+hWB1.top+WB1.height-10) return; // Ѩ - if (top1WB1.top+WB1.height-h-15) // - { - h=WB1.top+WB1.height-top1-15; - } - if (h<=0) return; - if (anchor) return; - - img_draw stdcall (pics[cur_pic].image,left1-5,top1+10,w, h,0,img_lines_first); - DrawBar(left1+w - 5, top1 + 10, width1-w + 5, h, bg_color); - IF (link) DefineButton(left1 - 5, top1+10, w, h, blink + BT_HIDE, 0xB5BFC9); + } while(GetNextParam()); + + if (!pics[cur_pic].image) + { + if (alt) && (link) strcat(#line, #alt); + return; + } + + w=DSWORD[pics[cur_pic].image+4]; + h=DSWORD[pics[cur_pic].image+8]; + if (w>width1) w=width1; + + if (stroka==0) DrawBar(WB1.left, WB1.top, WB1.width-15, 15, bg_color); // + stroka+=h/10; + if (top1+hWB1.top+WB1.height-10) return; // Ѩ + if (top1WB1.top+WB1.height-h-15) // + { + h=WB1.top+WB1.height-top1-15; + } + if (h<=0) return; + if (anchor) return; + + img_draw stdcall (pics[cur_pic].image,left1-5,top1+10,w, h,0,img_lines_first); + DrawBar(left1+w - 5, top1 + 10, width1-w + 5, h, bg_color); + IF (link) DefineButton(left1 - 5, top1+10, w, h, blink + BT_HIDE, 0xB5BFC9); } diff --git a/programs/cmm/browser/compile.bat b/programs/cmm/browser/compile.bat index 7f8a5a3696..79f0e3d1a9 100644 --- a/programs/cmm/browser/compile.bat +++ b/programs/cmm/browser/compile.bat @@ -1,6 +1,5 @@ ..\C--\c-- HTMLv.c /lst -del HTMLv -rename HTMLv.com HTMLv -rem ..\C--\kpack HTMLv -del warning.txt -pause \ No newline at end of file +@del HTMLv +@rename HTMLv.com HTMLv +@del warning.txt +@pause \ No newline at end of file diff --git a/programs/cmm/browser/include/some_code.h b/programs/cmm/browser/include/some_code.h index 8fd6afc0a6..d679e067f1 100644 --- a/programs/cmm/browser/include/some_code.h +++ b/programs/cmm/browser/include/some_code.h @@ -62,7 +62,7 @@ inline void Skew(dword x,y,w,h) CopyScreen(italic_buf, x+Form.left+2, y+Form.top+skin_height, w, h); FOR (i=0;i*tile_height cur_dict - -#include "..\lib\kolibri.h" -#include "..\lib\strings.h" -#include "..\lib\file_system.h" -#include "..\lib\mem.h" -#include "..\lib\dll.h" -#include "..\lib\edit_box_lib.h" - -unsigned char title[]= "Dictionary v1.0"; -unsigned char direction[] = "Translate direction:"; -unsigned char translate_caption[] = "Translate"; -unsigned char dict_not_found[] = "Dictionary not found"; -unsigned char dict_opened[] = "Dictionary loaded"; -unsigned char empty_word[] = "Type a word to translate"; -//char direction[] = " :"w; - - -int mouse_dd; -edit_box edit1= {200,20,16,0xffffff,0x94AECE,0x94AECE,0x94AECE,0,248,#edword,#mouse_dd,100000000000010b}; - -system_colors sc; -proc_info Form; - -unsigned char edword[4096], translate_result[4096], search_word[4096], cur_dict[4096]; -#define DEFAULT_DICT_DIRECROTY "dictionaries/" -#define DEFAULT_DICT "eng - rus.dict"; -dword files_buf; -dword buff, fsize; - - -void main() -{ - int id; - word key; - - mem_Init(); - load_dll2(boxlib, #edit_box_draw,0); - - - program_path[strrchr(#program_path, '/')] = 0; // / - strcpy(#program_path+strlen(#program_path), DEFAULT_DICT_DIRECROTY); - SetCurDir(#program_path); - - strcpy(#cur_dict, DEFAULT_DICT); - OpenDictionary(#cur_dict); - - if (param) - { - strcpy(#edword, #param); - edit1.size=edit1.pos=strlen(#edword); - Translate(); - } - - SetEventMask(0x27); - loop() - { - switch(WaitEvent()) - { - case evMouse: - edit_box_mouse stdcall (#edit1); - break; - - case evButton: - id=GetButtonID(); - if (id==1) ExitProcess(); - if (id==10) - { - Translate(); - DrawTranslation(); - } - - if (id==11) - { - ShowDictList(); - break; - } - if (id==12) - { - Draw_Window(); - break; - } - - if (id>=20) - { - strcpy(#cur_dict, id-20*304+files_buf+72); - OpenDictionary(#cur_dict); - } - break; - - case evKey: - key = GetKey(); - IF (key==013) //Enter - { - Translate(); - DrawTranslation(); - } - - EAX=key<<8; - edit_box_key stdcall(#edit1); - - //LiveSearch(); - break; - - case evReDraw: - Draw_Window(); - break; - } - } -} - -/*void LiveSearch() -{ - dword bj, i; - byte IsNativeWord=1; - unsigned char native[256]; - unsigned char bukovka; - - for (bj=0; bjnative[i]) goto __NE_RAVNO; - debug(#native); - __NE_RAVNO: - native = '\0'; - IsNativeWord = 0; - } - if (IsNativeWord==1) native[strlen(#native)] = bukovka; - } -}*/ - - -void Translate() -{ - dword tj; - char w_native[100], w_translation[100], bukva[1]; - - byte InfType; - #define NATIVE_WORD 0 - #define TRANSLATION 1 - #define IGNORE 2 - - if (!fsize) return; - - translate_result = 0; - strcpy(#search_word, #edword); - strupr(#search_word); - - if (!edword) - { - strcpy(#translate_result, #empty_word); - return; - } - - for (tj=0; tjsearch_word) InfType = IGNORE; // - } - if (InfType==TRANSLATION) strcat(#w_translation, #bukva); - } - } - if (!translate_result) strcpy(#translate_result, "Word is'nt found in the dictionary"); -} - - -void OpenDictionary(dword dict_path) -{ - dword j, words_count=0; - - mem_Free(buff); - buff = mem_Alloc(3500576); - ReadFile(0, 3500576, buff, dict_path); - IF (EAX<>6) - { - fsize=0; - strcpy(#translate_result, #dict_not_found); - Draw_Window(); - return; - } - fsize=EBX; - - strcpy(#search_word, dict_path); - strcpy(#translate_result, #dict_opened); - Draw_Window(); -} - - -void ShowDictList() -{ - int j, fcount=10; - - mem_Free(files_buf); - files_buf= mem_Alloc(32); - ReadDir(0, files_buf, #program_path); - fcount=ESDWORD[files_buf+8]; - mem_Free(files_buf); - files_buf = mem_Alloc(fcount+1*304+32); - - ReadDir(fcount, files_buf, #program_path); - - fcount-=2; - mem_Move(files_buf,files_buf+608,fcount*304); - - - DefineButton(0,0, Form.width,Form.height, 12+BT_HIDE+BT_NOFRAME, sc.work_button); - for (j=0; jstrlen(#draw_buf)) - { - WriteText(10, y_pos+21, 0x80, 0, #draw_buf, 0); - return; - } - while (draw_buf[text_break]<>' ') && (text_break>0) text_break--; - strcpy(#tt, #draw_buf+text_break+1); - draw_buf[text_break]=0x0; - WriteText(10, y_pos+21, 0x80, 0, #draw_buf, 0); - strcpy(#draw_buf, #tt); - y_pos+=12; - if (y_pos+24+skin_height+12>Form.height) return; // - } -} - - -void Draw_Window() -{ - sc.get(); - DefineAndDrawWindow(215,120,400,250,0x73,sc.work,#title); - GetProcessInfo(#Form, SelfInfo); - if (Form.status_window>2) return; // , - if (Form.height<140) MoveSize(OLD,OLD,OLD,140); - if (Form.width<400) MoveSize(OLD,OLD,400,OLD); - - DrawBar(0, 0, Form.width-9, 69, sc.work); - edit1.focus_border_color=sc.work_graph; - edit1.width=Form.width-edit1.left-edit1.left-9; - edit_box_draw stdcall(#edit1); // - DefineButton(edit1.left+edit1.width-80,35, 80,20, 10, sc.work_button); - WriteText(edit1.left+edit1.width-80+14,35+7,0x80,sc.work_button_text,#translate_caption, 0); - DrawBar(0, 69, Form.width-9, 1, sc.work_graph); - - WriteText(edit1.left,35+7,0x80,sc.work_text,#direction, 0); - DefineButton(edit1.left+130,35, 120,20, 11, sc.work_button); - WriteText(edit1.left+130+112,35+7,0x80,sc.work_button_text,"\x19", 0); - DrawBar(edit1.left+130+1,36, 107,19, 0xFFFFFF); - WriteText(edit1.left+130+8,35+7,0x80,0x000000,#cur_dict, 0); - - DrawTranslation(); -} - - -stop: diff --git a/programs/cmm/dicty/compile.bat b/programs/cmm/dicty/compile.bat new file mode 100644 index 0000000000..6a11c79741 --- /dev/null +++ b/programs/cmm/dicty/compile.bat @@ -0,0 +1,5 @@ +..\C--\C-- dicty +@del dicty +@rename dicty.com dicty +@del warning.txt +@pause \ No newline at end of file diff --git a/programs/cmm/dict/dicty.c b/programs/cmm/dicty/dicty.c similarity index 50% rename from programs/cmm/dict/dicty.c rename to programs/cmm/dicty/dicty.c index 541d47cf9b..ec4b9f355e 100644 --- a/programs/cmm/dict/dicty.c +++ b/programs/cmm/dicty/dicty.c @@ -1,53 +1,54 @@ +#define MEMSIZE 0x8000 #include "..\lib\kolibri.h" -#include "..\lib\strings.h" -#include "..\lib\file_system.h" +#include "..\lib\strings.h" #include "..\lib\mem.h" +#include "..\lib\file_system.h" +#include "..\lib\figures.h" #include "..\lib\dll.h" #include "..\lib\edit_box_lib.h" -char title[]= "Dictionary v1.0"; + +unsigned char speaker[23*40*3]= FROM "speaker.raw"; +char title[]= "Dictionary v1.3"; char direction[] = "Translate direction:"; char translate_caption[] = "Translate"; char dict_not_found[] = "Dictionary not found"; char dict_opened[] = "Dictionary loaded"; char empty_word[] = "Type a word to translate"; -//char direction[] = " :"w; -int mouse_dd; -edit_box edit1= {200,20,16,0xffffff,0x94AECE,0x94AECE,0x94AECE,0,248,#edword,#mouse_dd,100000000000010b}; - system_colors sc; proc_info Form; -char edword[4096], translate_result[4096], search_word[4096], cur_dict[4096]; -#define DEFAULT_DICT_DIRECROTY "dictionaries/" -#define DEFAULT_DICT "eng - rus.dict"; -dword files_buf; -dword buff, fsize; +char edword[256], search_word[256], translate_result[4096], dict_folder[4096], cur_dict[256]; +#define DICT_DIRECROTY "dictionaries" +#define PRONOUNCED_FILE "/tmp9/1/dicty/pronounced.txt" +#define SPEECH_PATH "/tmp9/1/media/speech/speech" +dword dir_buf, file_buf, fsize; + +int mouse_dd, speaker_id; +edit_box edit1= {200,20,16,0xffffff,0x94AECE,0x94AECE,0x94AECE,0,248,#edword,#mouse_dd,100000000000010b}; void main() { - int id; - word key; - + int id, key; mem_Init(); load_dll2(boxlib, #edit_box_draw,0); - - program_path[strrchr(#program_path, '/')] = 0; // / - strcpy(#program_path+strlen(#program_path), DEFAULT_DICT_DIRECROTY); - SetCurDir(#program_path); - - strcpy(#cur_dict, DEFAULT_DICT); - OpenDictionary(#cur_dict); + program_path[strrchr(#program_path, '/')] = 0; + strcpy(#dict_folder, #program_path); + strcat(#dict_folder, DICT_DIRECROTY); + SetCurDir(#dict_folder); + OpenDictionary(0); if (param) { strcpy(#edword, #param); edit1.size=edit1.pos=strlen(#edword); Translate(); + DrawTranslation(); + edit_box_draw stdcall(#edit1); } SetEventMask(0x27); @@ -62,28 +63,25 @@ void main() case evButton: id=GetButtonID(); if (id==1) ExitProcess(); - if (id==10) + if (id==10) { Translate(); DrawTranslation(); } + if (id==11) ShowDictList(); + if (id==12) DrawWindowContent(); + if (id==15) { - Translate(); - DrawTranslation(); - } - - if (id==11) - { - ShowDictList(); - break; - } - if (id==12) - { - Draw_Window(); - break; - } - - if (id>=20) - { - strcpy(#cur_dict, id-20*304+files_buf+72); - OpenDictionary(#cur_dict); + if (GetProcessSlot(speaker_id)!=0)) + { + KillProcess(speaker_id); + pause(50); + } + else + { + if (WriteFile(strlen(#translate_result)+1, #translate_result, PRONOUNCED_FILE)!=0) break; + pause(50); + speaker_id = RunProgram(SPEECH_PATH, PRONOUNCED_FILE); + } + SpeakerDraw(Form.cwidth-38, Form.cheight-32); } + if (id>=20) OpenDictionary(id - 20); break; case evKey: @@ -93,91 +91,51 @@ void main() Translate(); DrawTranslation(); } - + EAX=key<<8; edit_box_key stdcall(#edit1); + + //LiveSearch(); break; case evReDraw: - Draw_Window(); + DrawWindowContent(); break; } } } -void Draw_Window() +void DrawWindowContent() { sc.get(); DefineAndDrawWindow(215,120,400,250,0x73,sc.work,#title); GetProcessInfo(#Form, SelfInfo); - if (Form.status_window>2) return; // , + if (Form.status_window>2) return; if (Form.height<140) MoveSize(OLD,OLD,OLD,140); if (Form.width<400) MoveSize(OLD,OLD,400,OLD); - - DrawBar(0, 0, Form.width-9, 69, sc.work); edit1.focus_border_color=sc.work_graph; edit1.width=Form.width-edit1.left-edit1.left-9; - edit_box_draw stdcall(#edit1); // - DefineButton(edit1.left+edit1.width-80,35, 80,20, 10, sc.work_button); - WriteText(edit1.left+edit1.width-80+14,35+7,0x80,sc.work_button_text,#translate_caption); + + DrawBar(0, 0, Form.width-9, 69, sc.work); + edit_box_draw stdcall(#edit1); + DrawCaptButton(edit1.left+edit1.width-80,35, 80,20, 10, sc.work_button, sc.work_button_text,#translate_caption); DrawBar(0, 69, Form.width-9, 1, sc.work_graph); - + WriteText(edit1.left,35+7,0x80,sc.work_text,#direction); DefineButton(edit1.left+130,35, 120,20, 11, sc.work_button); - WriteText(edit1.left+130+112,35+7,0x80,sc.work_button_text,"\x19"); DrawBar(edit1.left+130+1,36, 107,19, 0xFFFFFF); - WriteText(edit1.left+130+8,35+7,0x80,0x000000,#cur_dict); - + WriteText(edit1.left+130+112,35+7,0x80,sc.work_button_text,"\x19"); + WriteText(edit1.left+130+8,35+7,0x80,0x000000,#cur_dict); DrawTranslation(); } - -void OpenDictionary(dword dict_path) +void SpeakerDraw(dword x, y) { - dword j, words_count=0; - - mem_Free(buff); - buff = mem_Alloc(3500576); - ReadFile(0, 3500576, buff, dict_path); - IF (EAX<>6) - { - fsize=0; - strcpy(#translate_result, #dict_not_found); - Draw_Window(); - return; - } - fsize=EBX; - - strcpy(#search_word, dict_path); - strcpy(#translate_result, #dict_opened); - Draw_Window(); -} - -void ShowDictList() -{ - int j, fcount=10; - - mem_Free(files_buf); - files_buf= mem_Alloc(32); - ReadDir(0, files_buf, #program_path); - fcount=ESDWORD[files_buf+8]; - mem_Free(files_buf); - files_buf = mem_Alloc(fcount+1*304+32); - - ReadDir(fcount, files_buf, #program_path); - - fcount-=2; - memmov(files_buf,files_buf+608,fcount*304); - - - DefineButton(0,0, Form.width,Form.height, 12+BT_HIDE+BT_NOFRAME, sc.work_button); - for (j=0; jsearch_word) InfType = IGNORE; // } - if (InfType==TRANSLATION) strcat(#w_translation, #bukva); + if (InfType==TRANSLATION) chrcat(#w_translation, bukva); } } if (!translate_result) strcpy(#translate_result, "Word is'nt found in the dictionary"); } +void OpenDictionary(dword fileid) +{ + if (!dir_buf) ShowDictList(); + if (!dir_buf) strcpy(#cur_dict, "none"); + else strcpy(#cur_dict, fileid*304+dir_buf+72); + fsize = ESDWORD[fileid*304 + dir_buf+64]; + + free(file_buf); + file_buf = malloc(fsize); + ReadFile(0, fsize, file_buf, #cur_dict); + IF (EAX<>0) + { + fsize = 0; + strcpy(#search_word, "Error #"); + strcat(#search_word, itoa(EAX)); + strcpy(#translate_result, #dict_not_found); + DrawWindowContent(); + return; + } + strcpy(#search_word, #cur_dict); + strcpy(#translate_result, #dict_opened); + DrawWindowContent(); +} + + +void ShowDictList() +{ + int j, fcount, error; + + free(dir_buf); + error = GetDir(#dir_buf, #fcount, #dict_folder); + if (!error) + { + DefineButton(0,0, Form.width,Form.height, 12+BT_HIDE+BT_NOFRAME, sc.work_button); + for (j=0; jstrlen(#draw_buf)) { WriteText(10, y_pos+21, 0x80, 0, #draw_buf); - return; + break; } while (draw_buf[text_break]<>' ') && (text_break>0) text_break--; strcpy(#tt, #draw_buf+text_break+1); @@ -266,8 +267,9 @@ void DrawTranslation() WriteText(10, y_pos+21, 0x80, 0, #draw_buf); strcpy(#draw_buf, #tt); y_pos+=12; - if (y_pos+24+skin_height+12>Form.height) return; // + if (y_pos+24+8>Form.cheight) break; // } + SpeakerDraw(Form.cwidth-38, Form.cheight-32); } diff --git a/programs/cmm/dicty/speaker.ico b/programs/cmm/dicty/speaker.ico new file mode 100644 index 0000000000000000000000000000000000000000..23415bdbf05575fe1d1b425969243ef4a694d7c2 GIT binary patch literal 7798 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 Y>oP5cjO^E%kL`!jHZqpX=mF0E0bOV|AOHXW literal 0 HcmV?d00001 diff --git a/programs/cmm/dicty/speaker.raw b/programs/cmm/dicty/speaker.raw new file mode 100644 index 0000000000..b5ff4e707d --- /dev/null +++ b/programs/cmm/dicty/speaker.raw @@ -0,0 +1 @@ +D;AmgkC;AC;ASJPEDF>DF>DF>DᰬH?EH?EH?EH?EH?EH?EIAG{tygafIAGIAGIAGIAGIAGIAG󘑕KBH{c\aKBHKBHKBHKBHKBHKBH쑎LDJ_X^LDJLDJLDJLDJLDJLDJ䕐NEKbZ_NEKNEKNEKNEKNEKNEK䛖OFL|hafOFLOFLOFLOFLOFLOFL쥠QHN{~pinQHNQHNQHNQHNQHNQHNTKQRIORIORIORIORIOd\aSKQSKQSKQSKQy}ULRULRULRWOUVNTІ@8>D=CD;AG>DB9?mgkC;AC;ATLRC;AJBHRJPDDF>DF>DF>DF>DF>DF>DVNTᯬG?EG?EG?EG?EG?EG?Ey~G?ESLQG?EG?E󜗙I@F{sxg_dI@FI@FI@FI@FI@FI@FI@FI@FI@FI@F֖JBH{c\aJBHJBHJBHJBHJBHJBHJBHJBHKCIJBHLCI_W]LCILCILCILCILCILCIULRLCI`X]LCIMEKbZ_MEKMEKMEKMEKMEKMEKVNTMEKbZ_MEKOFL|hafOFLOFLOFLOFLOFLOFLOFLOFLPGMOFLPHN{~oinPHNPHNPHNPHNPHNPHNPHNPHNPHNPHNTKQRIORIORIORIORIORIO]U[RIORIOd[`SJPSJPSJPSJPSJPSJPSJPbY_y}ULRULRULRULRbZ_XOUULRWNTVMSZQWVMS\SYЄ\TZWOUYPV]TZ \ No newline at end of file diff --git a/programs/cmm/end/compile.bat b/programs/cmm/end/compile.bat new file mode 100644 index 0000000000..2909fc8046 --- /dev/null +++ b/programs/cmm/end/compile.bat @@ -0,0 +1,5 @@ +..\C--\C-- end.c +@del end +@rename end.com end +@del warning.txt +@pause diff --git a/programs/cmm/new_end/end.c b/programs/cmm/end/end.c similarity index 63% rename from programs/cmm/new_end/end.c rename to programs/cmm/end/end.c index a320a266e0..10085df1e6 100644 --- a/programs/cmm/new_end/end.c +++ b/programs/cmm/end/end.c @@ -1,3 +1,4 @@ +#define MEMSIZE 0x3E80 #include "..\lib\kolibri.h" #include "..\lib\figures.h" #include "..\lib\strings.h" @@ -38,19 +39,45 @@ dword stars_col[4]={0xD2CF19, 0x716900, 0x002041}; //0x005BFF - +:void ShadowScreen(dword img, w, h) +{ + dword to = w*h*3 + img; + for ( ; img < to; img+=4) { ESDWORD[img] >>= 1; $and ESDWORD[img], 7F7F7F7Fh } + //for ( ; img < to; img+=4) { ESDWORD[img] >>= 2; $and ESDWORD[img], 3F3F3F3Fh } +} + void main() { int key; - - pause(10); - + dword s1,s2, s3, s4, sides_w; + + mem_Init(); WIN_SIZE_X=GetScreenWidth()+1; WIN_SIZE_Y=GetScreenHeight()+1; - PANEL_X=WIN_SIZE_X-PANEL_SIZE_X/2; PANEL_Y=WIN_SIZE_Y-PANEL_SIZE_Y/2; - + + sides_w = WIN_SIZE_X-PANEL_SIZE_X/2; + s1 = mem_Alloc(WIN_SIZE_X*PANEL_Y*3); + s2 = mem_Alloc(sides_w*PANEL_Y*3); + s3 = mem_Alloc(sides_w*PANEL_Y*3); + s4 = mem_Alloc(WIN_SIZE_X*PANEL_Y*3); + + CopyScreen(s1, 0, 0, WIN_SIZE_X, PANEL_Y); + ShadowScreen(s1, WIN_SIZE_X, PANEL_Y); + + CopyScreen(s2, 0, PANEL_Y, sides_w, PANEL_SIZE_Y+1); + ShadowScreen(s2, sides_w, PANEL_SIZE_Y+1); + + CopyScreen(s3, sides_w+PANEL_SIZE_X+1, PANEL_Y, sides_w-1, PANEL_SIZE_Y+1); + ShadowScreen(s3, sides_w, PANEL_SIZE_Y+1); + + CopyScreen(s4, 0, PANEL_Y+PANEL_SIZE_Y+1, WIN_SIZE_X, PANEL_Y-1); + ShadowScreen(s4, WIN_SIZE_X, PANEL_Y-1); + + + goto _DRAW; loop() { WaitEventTimeout(130); @@ -76,39 +103,22 @@ void main() break; case evReDraw: - draw_window(); + sc.get(); + DefineAndDrawWindow(0,0,WIN_SIZE_X, WIN_SIZE_Y, 0x01, 0, 0, 0x01fffFFF); + //_PutImage(0,0,WIN_SIZE_X,WIN_SIZE_Y,shadow_buf); + _PutImage(0,0,WIN_SIZE_X, PANEL_Y,s1); + draw_main_area(PANEL_X, PANEL_Y, PANEL_SIZE_X, PANEL_SIZE_Y); + _PutImage(0,PANEL_Y,sides_w, PANEL_SIZE_Y+1,s2); + _PutImage(sides_w+PANEL_SIZE_X+1,PANEL_Y,sides_w-1, PANEL_SIZE_Y+1,s3); + _PutImage(0,PANEL_Y+PANEL_SIZE_Y+1,WIN_SIZE_X, PANEL_Y-1,s4); break; - default: + default: _DRAW: draw_stars(); } } } - -void draw_window() -{ - int x, y; - sc.get(); - - DefineAndDrawWindow(0,0,WIN_SIZE_X, WIN_SIZE_Y, 0x01, 0, 0, 0x01fffFFF); - - draw_main_area(PANEL_X, PANEL_Y, PANEL_SIZE_X, PANEL_SIZE_Y); - - //draw grid - for (y=0; yPANEL_Y) && (y0) strcat(#path, "/"); // , + "/" + } + else + strcpy(#path, "/rd/1/"); + + Open_Dir(#path,ONLY_OPEN); + loop() switch(WaitEvent()) + { + case evMouse: + IF (del_active) break; + + id=GetProcessSlot(Form.ID); + IF (id<>GetActiveProcess()) break; // + + IF (rename_active) edit_box_mouse stdcall(#edit2); + + m.get(); + + /*if (m.pkm) && (m.x > 192) && (m.y > 57) can_show = 1; + if (!m.pkm) && (can_show) + { + SwitchToAnotherThread(); + CreateThread(#FileMenu,#stak2); + can_show = 0; + }*/ + + if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>40) && (m.y<57) + { + IF (m.lkm==1) DrawRectangle3D(onLeft(26,0),41,14,14,0xC7C7C7,0xFFFFFF); + WHILE (m.lkm==1) && (za_kadrom>0) + { + pause(10); + za_kadrom--; + List_ReDraw(); + m.get(); + } + DrawRectangle3D(onLeft(26,0),41,14,14,0xFFFFFF,0xC7C7C7); + } + + if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>onTop(22,0)+1) && (m.y0) + { + if (za_kadrom>0) za_kadrom--; + if (curbtn0) za_kadrom--; + if (curbtn0) curbtn--; + List_ReDraw(); + if (za_kadrom0) curbtn--; + List_ReDraw(); + } + // + if (!m.lkm) && (scroll_used) { scroll_used=NULL; TVScroll(); } + if (m.x>=Form.width-26) && (m.x<=Form.width-6) && (m.y>56) && (m.ym.y) || (m.y<0) || (m.y>4000) m.y=scroll_size/2+57; // + id=za_kadrom; // + j= scroll_size/2; + za_kadrom = m.y -j -57 * count; + za_kadrom /= onTop(22,57); + IF (f_visible+za_kadrom>count) za_kadrom=count-f_visible; + IF (id<>za_kadrom) List_ReDraw(); // + } + break; +//Button pressed----------------------------------------------------------------------------- + case evButton: + id=GetButtonID(); + IF (id==1) ExitProcess(); + + IF (del_active) + { + IF (id==301) || (id==302) Del_File(302-id); + break; + } + switch(id) + { + case 21: //Back + GoBack(); + break; + case 22: //Forward + if (HistoryPath(GO_FORWARD)) + { + za_kadrom=curbtn=NULL; // + Open_Dir(#path,WITH_REDRAW); + } + break; + case 23: //up! + Dir_Up(); + break; + case 24: //cut + key=24; + case 25: //copy + goto CTRLC_MARK; + case 26: //paste + Paste(); + break; + case 31...33: //sort + IF(sort_num==1) DrawFilledBar(onLeft(192,168)/2+210,42,6,10); + IF(sort_num==2) DrawFilledBar(onLeft(115,0),42,6,10); + IF(sort_num==3) DrawFilledBar(onLeft(44,0),42,6,10); + sort_num=id-30; + Open_Dir(#path,1); + break; + case 30: //about + SwitchToAnotherThread(); + CreateThread(#about_dialog,#stak1); + break; + case 77: + IF (show_actions==1) show_actions=0; ELSE show_actions=1; + DrawLeftPanel(); + break; + case 78: //rescan devices + Tip(56, "Devices", 78, "-"); + pause(10); + GetIni(1); + GetSystemDiscs(); + Open_Dir(#path,WITH_REDRAW); + DrawLeftPanel(); + break; + case 80: //rename + goto REN_MARK; + case 81: //Delete file + Del_Form(); + break; + case 82: //create folder + NEW_FOLDER_MARK: + strcpy(#temp, #path); + strcat(#temp, "New folder"); + CreateDir(#temp); + IF (!EAX){ + SelectFile("New folder"); + goto REN_MARK; + } + ELSE + { + Write_Error(EAX); + ShowMessage("Folder can not be created."); + } + break; + case 100...120: + DEVICE_MARK: + DrawRectangle3D(17,id-100*16+74,159,16, 0, 0); // + strcpy(#path, #disk_list[id-100].Item); + za_kadrom=curbtn=0; + Open_Dir(#path,1); + pause(5); + DrawRectangle3D(17,id-100*16+74,159,16, 0xFFFFFF, 0xFFFFFF); + break; + case 130...160: + tmp_disk_del_param[1]=disk_list[id-130].Item[4]; + RunProgram("/sys/tmpdisk", #tmp_disk_del_param); + pause(10); + GetSystemDiscs(); + Open_Dir(#path,WITH_REDRAW); + DrawLeftPanel(); + break; + default: + if (id<200) break; // + if (curbtn!=id-201) {FileList_ReDraw(id-201-curbtn); break;} + else + { + OPEN_MARK: + if (!isdir) + { + GetIni(0); + } + else + { + if (!strcmp(#file_name,"..")) { Dir_Up(); break; } + OPEN_DEV: + strcpy(#path, #file_path); + IF (strcmp(#path+strlen(#path)-1,"/")<>0) strcat(#path,"/"); // , + "/" + za_kadrom=curbtn=0; + Open_Dir(#path,1); + } + } + } + break; +//Key pressed----------------------------------------------------------------------------- + case evKey: + key = GetKey(); + if (Form.status_window>2) break; + IF (del_active) + { + IF (key==013) Del_File(true); + IF (key==027) Del_File(false); + break; + } + IF (edit2.flags<>64) && (key<>13) && (key<>27) + { + EAX=key<<8; + edit_box_key stdcall (#edit2); + break; + } + switch (key) + { + case 209...217: + id=key-110; + IF (id-100>=disc_num) break; + GOTO DEVICE_MARK; + case 8: // + //GoBack(); + Dir_Up(); + break; + case 004: //Ctrl+D + strcpy(#temp, "\\S__"); + strcat(#temp, #file_path); + RunProgram("/sys/media/kiv", #temp); + break; + case 014: //Ctrl+N + IF (Form.left==98) MoveSize(Form.left-20,Form.top-20,OLD,OLD); + RunProgram("/sys/File Managers/Eolite", #path); + break; + case 024: //Ctrl+X + case 003: //Ctrl+C + CTRLC_MARK: + IF (isdir) break; // + strcpy(#copy_file, #file_path); // + IF (key==24) cut_active=1; ELSE cut_active=0; + break; + case 022: //Ctrl+V + Paste(); + break; + case 027: //Esc + IF (rename_active==1) ReName(false); + break; + case 013: //Enter + IF (rename_active==1) {ReName(true); break;} + GOTO OPEN_MARK; + break; + case 55: //F6 - new folder + goto NEW_FOLDER_MARK; + case 56: //IF (rename_active==1) break;//up + case 178: //up + FileList_ReDraw(-1); + break; + case 177: //down + FileList_ReDraw(1); + break; + case 180: //home + za_kadrom=0; + curbtn=0; + List_ReDraw(); + break; + case 181: //end + za_kadrom=count-f_visible; + curbtn=f_visible-1; + List_ReDraw(); + break; + case 183: //Page Down + FileList_ReDraw(f_visible-1); + break; + case 184: //Page Up + FileList_ReDraw(-f_visible+1); + break; + case 051: // F2 + REN_MARK: + if (!count) break; + DeleteButton(curbtn+201); // + edit2.flags=66; // + edit2.width=onLeft(24,217); + edit2.top=curbtn*BUTTON_HEIGHT+59; + edit2.size=edit2.pos=strlen(#file_name); + edit_box_draw stdcall (#edit2); + DrawBar(213,curbtn*BUTTON_HEIGHT+58,edit2.width+1,1,0xFFFFCC); // + rename_active=1; + break; + case 052: // F3 + IF (!isdir) RunProgram("/sys/tinypad", #file_path); + break; + case 053: // F4 + IF (!isdir) RunProgram("/sys/develop/heed", #file_path); + break; + case 054: //F5 + Open_Dir(#path,1); + break; + case 182: //delete file + Del_Form(); + break; + default: + for (i=curbtn+za_kadrom+1; i2) break; + min_win_h = disc_num*16+195; + if (Form.height < min_win_h) MoveSize(OLD,OLD,OLD,min_win_h); + if (Form.width<480) MoveSize(OLD,OLD,480,OLD); + draw_window(); + } +} + + +inline fastcall void draw_window() +{ + //toolbar buttons + PutPaletteImage(#toolbar,246,34,0,0,8,#toolbar_pal); + for (j=0; j<3; j++) DefineButton(toolbar_buttons_x[j]+2,5+2,31-5,29-5,21+j+BT_HIDE,col_work); + for (j=3; j<6; j++) DefineButton(toolbar_buttons_x[j],5,31,29,21+j+BT_HIDE,col_work); + // + DrawBar(246,0,onLeft(246,60),12, col_work); // + DrawBar(246,29,onLeft(246,60),5,col_work); // + DrawRectangle3D(246,12,onLeft(66,246),16,col_border,col_border); // + DefineButton(onLeft(34,0),6,27,28,30+BT_HIDE+BT_NOFRAME,col_work); //about + PutPaletteImage(#goto_about,56,34,Form.width-65,0,8,#goto_about_pal); + // + DrawRectangle3D(1,40,Form.cwidth-3,onTop(46,0),col_border,col_border); // + DrawRectangle3D(0,39,Form.cwidth-1,onTop(44,0),col_palette[4],col_palette[4]); // + for (i=0; i<5; i++) DrawBar(0, 34+i, Form.cwidth, 1, col_palette[8-i]); + DrawLeftPanel(); + //SortButtons + DrawFlatButton(192,40,onLeft(192,168),16,31,col_work,"File"); + DrawFlatButton(onLeft(168,0),40,73,16,32,col_work,"Type"); + DrawFlatButton(onLeft(95,0),40,68,16,33,col_work,"Size"); + // + Open_Dir(#path,ONLY_SHOW); + // + DrawBar(onLeft(27,0),57,1,onTop(22,57),col_border); // + DrawFlatButton(onLeft(27,0),40,16,16,0,col_work,"\x18"); // + DrawFlatButton(onLeft(27,0),onTop(22,0),16,16,0,col_work,"\x19");// + if (del_active) Del_Form(); + DefineButton(onLeft(34,0),6,27,28,30+BT_HIDE+BT_NOFRAME,col_work); //about +} + + +void KEdit() +{ + PathShow.area_size_x = Form.cwidth-306; + DrawBar(PathShow.start_x-3, PathShow.start_y-4, PathShow.area_size_x+2, 15, 0xFFFfff); + PathShow_prepare stdcall(#PathShow); + PathShow_draw stdcall(#PathShow); +} + + +void FileList_ReDraw(int curbtn_) +{ + if (curbtn_<=0) // + { + IF (za_kadrom==0) && (curbtn<=0) return; + IF (-curbtn_-1curbtn_) + { + Line_ReDraw(0xFFFFFF, curbtn); // + curbtn+=curbtn_; + Line_ReDraw(col_selec, curbtn); // + return; + } + else + { + IF(za_kadrom+curbtn+curbtn_>=count) + { + za_kadrom=count-f_visible; + curbtn=curbtn_-za_kadrom+curbtn; + } + ELSE + { + za_kadrom+=curbtn_+curbtn-f_visible+1; + curbtn=f_visible-1; + } + + IF (curbtn<0) || (curbtn>f_visible) + { + curbtn=f_visible-1; + } + List_ReDraw(); + } + } +} + + + + +void List_ReDraw() +{ + int paint_x=f_visible*BUTTON_HEIGHT+57; + IF (count-za_kadromf_visible-1) // + { za_kadrom=count-f_visible; curbtn=f_visible-1; } // + + FOR (j=0; jj) Line_ReDraw(0xFFFFFF, j); ELSE Line_ReDraw(col_selec, curbtn); + DrawBar(192,paint_x,onLeft(27,192),onTop(paint_x,6),0xFFFFFF); // + DrawBar(onLeft(168,0),paint_x,1,onTop(paint_x,6),col_work); // 1 + DrawBar(onLeft(95,0),paint_x,1,onTop(paint_x,6),col_work); // 2 + TVScroll(); +} + +void Line_ReDraw(dword color, filenum){ + dword text_col=0, name_len=0, y=filenum*BUTTON_HEIGHT+57; // Y + IF (rename_active==1) ReName(false); + DefineButton(192,y,onLeft(28,192),BUTTON_HEIGHT,201+filenum+BT_HIDE+BT_NOFRAME,color); // + //, , + DrawBar(192,y,3,BUTTON_HEIGHT,color); + DrawBar(192+19,y,onLeft(46,192),BUTTON_HEIGHT,color); DrawBar(195,y+17,16,1,color); + if (BUTTON_HEIGHT>18) DrawBar(195,y+18,16,BUTTON_HEIGHT-18,color); + if (BUTTON_HEIGHT>15) DrawBar(195,y,16,BUTTON_HEIGHT-15,color); + + off=file_mas[filenum+za_kadrom]*304 + buf+72; + + if (!TestBit(ESDWORD[off-40], 4)) // ? + { + strcpy(#temp, off); + Put_icon(#temp+_strrchr(#temp,'.'), BUTTON_HEIGHT/2-7+y, color); + WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),BUTTON_HEIGHT-6/2+y,0x80,0,ConvertSize(ESDWORD[off-8])); //size + } + else + if (!strcmp("..",off)) + Put_icon("..", BUTTON_HEIGHT/2-7+y, color); + else + Put_icon("", BUTTON_HEIGHT/2-7+y, color); + + if (TestBit(ESDWORD[off-40],1)) || (TestBit(ESDWORD[off-40],2)) text_col=0xA6A6B7; // ? + if (color<>0xFFFfff) + { + isdir=TestBit(ESDWORD[off-40], 4); + strcpy(#file_name, off); + strcpy(#file_path, #path); + strcat(#file_path, #file_name); // + if (text_col==0xA6A6B7) text_col=0xFFFFFF; + } + FileShow.font_color = text_col; + FileShow.area_size_x = Form.width - 380; + FileShow.text_pointer = off; + FileShow.start_y = BUTTON_HEIGHT/2-3+y; + PathShow_prepare stdcall(#FileShow); + PathShow_draw stdcall(#FileShow); + + DrawBar(onLeft(168,0),y,1,BUTTON_HEIGHT,col_work); // 1 + DrawBar(onLeft(95,0),y,1,BUTTON_HEIGHT,col_work); // 2 +} + + +void Open_Dir(dword temp_, redraw){ + int errornum, max_count; + char path_[4096], + somelen=strlen(temp_)-1; + + if (redraw<>ONLY_SHOW) + { + strcpy(#path_, temp_); + if (somelen) path_[somelen]=NULL; + + if (buf) free(buf); + buf = malloc(32); + errornum=ReadDir(0, buf, #path_); + if (errornum<>0) // + { + HistoryPath(ADD_NEW_PATH); + GoBack(); + Write_Error(errornum); + return; + } + count = ESDWORD[buf+8]; + buf = realloc(buf, count * 304 + 32); + ReadDir(count, buf, #path_); + count=EBX; + max_count = sizeof(file_mas)/sizeof(dword)-1; + if (count>max_count) count=max_count; + + } + if (count<>-1) + { + KEdit(); + HistoryPath(ADD_NEW_PATH); + IF (!strcmp(".",buf+72)) {count--; memmov(buf,buf+304,count*304);} // "." + FOR (j=0;jONLY_SHOW) Sorting(); // + IF (redraw<>ONLY_OPEN) List_ReDraw(); + } + IF (count==-1) && (redraw<>ONLY_OPEN) {f_visible=count=0; List_ReDraw();} +} + + + +inline Sorting() +{ + dword k=0, l=1; + int i; + if (!strcmp(#path,"/")) // "/" + { + FOR(k=1;k=0; j--, off-=304;) // , + { + strttl(off+40); + if (TestBit(ESDWORD[off],4)) //? + { + file_mas[k]=j; + k++; + } + else + { + file_mas[count-l]=j; + l++; + } + } + // : , + Sort_by_Name(0,k-1); + IF (sort_num==1) Sort_by_Name(k,count-1); + IF (sort_num==2) Sort_by_Type(k,count-1); + IF (sort_num==3) Sort_by_Size(k,count-1); + // ".." , + IF (k>0) && (strcmp(file_mas[0]*304+buf+72,"..")<>0) FOR(k--; k>0; k--;) IF (!strcmp(file_mas[k]*304+buf+72,"..")) file_mas[k]>0) + { + Write_Error(del_file_rez); + IF ( isdir) ShowMessage("Error. Folder isn't empty."); + IF (!isdir) ShowMessage("Error. Filesystem read-only."); + } + } + del_active=0; + DeleteButton(301); DeleteButton(302); // Yes/No + Open_Dir(#path,1); +} + +void Paste() +{ + char new_copy_path[4096]; + int copy_rezult; + + IF (!copy_file) return; //, + strcpy(#new_copy_path, #path); + strcat(#new_copy_path, #copy_file+strrchr(#copy_file,'/')); + if (!strcmp(#copy_file,#new_copy_path)) // + { + strcpy(#new_copy_path, #path); + strcat(#new_copy_path, "new_"); + strcat(#new_copy_path, #copy_file+strrchr(#copy_file,'/')); + } + copy_rezult=CopyFile(#copy_file,#new_copy_path); + IF (copy_rezult<>0) // + { + Write_Error(copy_rezult); + DrawFlatButton(Form.width/2-13,160,200,80,0,0xFFB6B5, "Error. You can't paste here."); + pause(150); + } + IF (cut_active) // + { + strcpy(#file_path, #copy_file); + Del_File(true); + copy_file=NULL; + cut_active=false; + } + SelectFile(#new_copy_path+strrchr(#new_copy_path,'/')); +} + + +void ReName(byte rename) +{ + int del_file_rez; + char edit_name[256]; + rename_active=0; + edit2.flags=64; + DefineButton(192,curbtn*BUTTON_HEIGHT+57,onLeft(27,192),BUTTON_HEIGHT,curbtn+201+BT_HIDE+BT_NOFRAME,0xFFFFFF); + if (rename==true) + { + strcpy(#temp, #path); + strcpy(#edit_name, #file_name); // , , + strcat(#temp, #file_name); + if (strcmp(#file_path,#temp)<>0) && (file_name) + IF (isdir) + { + del_file_rez = DeleteFile(#file_path); + IF (del_file_rez<>0) + { + Write_Error(del_file_rez); + ShowMessage("Error. Folder isn't empty."); + return; + } + ELSE CreateDir(#temp); + Open_Dir(#path,1); + } + ELSE + { + CopyFile(#file_path,#temp); + Del_File(true); + } + SelectFile(#edit_name); + } + Line_ReDraw(col_selec,curbtn); +} + + +void SelectFile(dword that_file) +{ + za_kadrom=curbtn=0; // + Open_Dir(#path,ONLY_OPEN); + strttl(that_file); + for (i=count-1; i>=0; i--;) + if (!strcmp(file_mas[i]*304+buf+72,that_file)) break; + FileList_ReDraw(i); + List_ReDraw(); +} + + +void Dir_Up() +{ + char cur_folder[4096]; + i=strlen(#path)-1; + if (i==0) return; + path[i]=0x00; + i = strrchr(#path, '/'); + strcpy(#cur_folder, #path+i); + path[i]=0x00; + SelectFile(#cur_folder); +} + + +inline fastcall void GoBack() // , , +{ + char cur_folder[4096]; + strcpy(#cur_folder, GetCurrentFolder()); + if (HistoryPath(GO_BACK)) SelectFile(#cur_folder); +} + +stop: + +char stak1[100]; +char stak2[100]; \ No newline at end of file diff --git a/programs/cmm/eolite/compile.bat b/programs/cmm/eolite/compile.bat new file mode 100644 index 0000000000..6cfad3bd3a --- /dev/null +++ b/programs/cmm/eolite/compile.bat @@ -0,0 +1,5 @@ +@del Eolite +..\C--\c-- Eolite.c /lst +@rename Eolite.com Eolite +@del warning.txt +@pause \ No newline at end of file diff --git a/programs/cmm/eolite/imgs/actions.raw b/programs/cmm/eolite/imgs/actions.raw new file mode 100644 index 0000000000000000000000000000000000000000..7b958bb240761a275d1758811137c7d0b5229672 GIT binary patch literal 2112 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 literal 0 HcmV?d00001 diff --git a/programs/cmm/eolite/imgs/icons.raw b/programs/cmm/eolite/imgs/icons.raw new file mode 100644 index 0000000000000000000000000000000000000000..e17c8710bb803171fd2c5a6a234139801f00c84d GIT binary patch literal 6240 zcmcJTk3&<}6~}K>~c4M-DtQ}5Y zg>{yumO+`7;g8yG>uRl3HgN^qO7}yhx=~y3Z`nEbSMCe0*meDqyn8?AoO|v)d6)NI zLWqUSN|-FHxzEB477`Z+rUf=`KnBD8Ho^=RVn@TmZ$Ta$Y9aB|;8?Usa6Gdla88V8 z2EjIN5S+vfg00*j*uf2wxj`@?$q7_!K2e}pALqraPFU{)*t^fd4V}cg z)AXhB>oXRwUI1GH84MdTmaN`@TY@sd`4`e1z}RB7TEU0KBFGz%k;H|Dq=%Y1AT9fF***`4!9=H|_ryxxsDZt!mgKd(0{FF!y3 z(JcHIVEM9h@^iAXlzJccJTA60A>LTwUXIG^B?XEgoD}#9eBwp9piqkW3klKqi;geE zy-al%|CWM+sDF#sn^543j!!^V{J?hbCnRX>Wk**0z+3E!AYY6`<+9yslEq@etujn@ zoF-W;&LXF?s0fbGI-S6xOAU%29n`NTz<5<(pXEYXC#HO_*IeIRjvWx)3)qA6iOUri z49N}<7$x%n$>@g&$zRovbHW?Pn-sfRZ%p}f&!@TmIpOq@5S@bElFa-Bsu%?~D~O+u zx1pXyvH1BoIva~O^V}7iEwS~*vN<|hUx}v#CK8;T?b+_h&W>`P%jL?GT;g#(<$22G zDdF)Rzu!}e2VhK8;_-vukA9k{EIY5fyqu0_iORA)M2F%0JP|KCcD2gssi<(M zpG-yN+6u{41n_Bzf$9LF7_o!YxB`HDL{&{qwQFZUj@VHRxU)7O5(KJUuAQ~DwRJpS zfKsq(2cIC|stpDK>(g7?)!uXTCe!VYMVQ{B<6$T^*+|~-JC1CW68>AasHlj*3*K-50pWqQcVillV^};Lq#Q&p=@z*}cnq`ozbxPX zcYTC3NwH-&eUIxI&bxTPF3!UKb=u^{rY6jn+_-x;wDyepmGw=m-LspJ@9)|B>^|V< znnU|Sz(3fx_t|w2_grZ2-u=+7YucCb{7ORh?+UH|A+%)Ok20_!`=4hm_Tl-?q!w$s zNgG;FE7H?f@Qz+tS!ruYPjC700r+c4N3KLZK;RD;ZzRl5sK2$fm9p^TZ3q27K|y?M ze$({n>88~o@EetAzA_U%PLJcGp-Vpi$vW~}zp@DChi607y^fzRf2?25C)UTNiv#;z z*B3ipGL8?ML`Ylv!FH)I;|{L&pAr&qA9M?L3x0vB!~G)o^AF~CaLyOZ2ju^Z`&I7f z>^Q{L5dc5%&$;e}53BKq2|0YI^N<*S2)NTELXH@yBXo1)!FUPeHx$mz%{}U;Q5a_& z?TV_~0Ol^%5F^+4g%sog&Xog@yNukIg&24JQV6-*=sG5Z+-`IWJcew%;*ZMU>lbT) zIx59phnC-@WHHc**4snPvfiFoslj-O)f;*3_-heS@Aj9Ez24JX{Htiaef_;X#c#YG z;q{jF*Ypk)7r**zR`2!`{r$af_VoAnv3if4JoyIlNm@Uxm->}@2YXK(e^aUVMDOu| z6H2|mK>@S%-+R4k?RV*mM6zw~%00@J+tqFu?L$N2^bHLmcPm0Zr3hJ^TWpcVxy2S) zo=oTf!*i7)I1fsxxQLvUuN_x87QI=Ipt1=a35u-hPK^!8^#m{T;`avfm@WE3~ZaU1a%Xv(QeauDq2DC6652O;5#+_5c8K2Gj4yhE^!kvlH;434NQd7@bPYRtbEDqas9QBnAH$B` z+@Pm6=o+p;Z)iYH6)97Z_cW*imTp~7{j09mv$@!Wls}fzfkQF=kS^UH>+56uz_>gi z{TZk#@KMg~RM^_#+XwyFJV2Vw4r;uYx)5b|0jGKDl z)0?gl(&|V{yG5)MR&w*^&E9{Jk$;281pM7f>+PK;*OTG*Ch8y8G>1-FKRbQ;_H7t% zx8KsnKPT4f@C{tElKWG-?Qzpql3a0ns|M^$N!gzG1;pK$9$%!{$ifXNDPPb9-z_f7kQsWEhnbmJgLJWu*YMP^E8B|wMFnB2&Ud!`cBZ<3f_EdD>3BO`JE literal 0 HcmV?d00001 diff --git a/programs/cmm/eolite/imgs/icons.txt b/programs/cmm/eolite/imgs/icons.txt new file mode 100644 index 0000000000..bc007e3e67 --- /dev/null +++ b/programs/cmm/eolite/imgs/icons.txt @@ -0,0 +1,7 @@ +///////////////////////// +// // +///////////////////////// + +dword ficons_pal[] = {0x00FFFFFF,0x00606078,0x00D0D0D8,0x008888A8,0x00F8F8F8,0x009098B0,0x00E0E0E0,0x00A0A0B8,0x00F0F0F8,0x00A8A8C0,0x007880A0,0x00E8E8F0,0x00C8C8D0,0x00C8C8C8,0x00F0F8FF,0x00E0E0E8,0x00D8D8E0,0x00F8F8FF,0x00C8C8D8,0x00FFB898,0x008080A0,0x00C0C0C8,0x00FFA078,0x00586080,0x005878A8,0x006880A0,0x00D0D8E0,0x0080A0C0,0x00586078,0x00E0E8F0,0x008898B8,0x00B8C0D8,0x00D8E8F0,0x00D8F0FF,0x007088A8,0x00A8B0C0,0x007890B0,0x00C8E8F8,0x00F8F8F0,0x00E0E8E8,0x00D0D8D8,0x00C0C8E0,0x0080A0E0,0x007098C8,0x006090C8,0x005888C0,0x00A8B0C8,0x00A87868,0x00604840,0x00786038,0x00705028,0x00685048,0x00FFF8B8,0x00B89848,0x00F8E070,0x00C0A850,0x00F8D858,0x00A09880,0x00F8C050,0x00F0B848,0x00E0A850,0x00986860,0x00583830,0x00707898,0x0068C0D8,0x00B0E0F8,0x0070B8E0,0x00F8FFFF,0x00A0C8F0,0x00000000,0x00F84050,0x0048D040,0x000078B8,0x00F8C048,0x00A06858,0x00FFE898,0x00989070,0x00F8B840,0x00FFF8F0,0x00C0B8A8,0x00D8B040,0x00788088,0x00E8F0F0,0x00C08830,0x00584840,0x00A85800,0x00FFE8A8,0x00A86818,0x00F0F0D8,0x00F8C830,0x00F0B828,0x00381010,0x00D8A028,0x00B0C8E0,0x0078A0D0,0x0098B8E8,0x0088A8D0,0x0098B8E0,0x003070B8,0x00A0C8E8,0x005090C8,0x004888C0,0x003078C0,0x00B8D0E8,0x002068A8,0x0088B0E0,0x0080B0D8,0x0090B8E0,0x002068B0,0x00B8D0F0,0x002060A8,0x0070A0C8,0x002868B0,0x002870B0,0x002868A8,0x00687088,0x00E89090,0x00D09898,0x00909088,0x00C88080,0x00B87820,0x00B86818,0x00E8C068,0x00885810,0x00D09850,0x00B07028,0x00F0D8B0,0x00A87028,0x00B05800,0x00885028,0x00C89048,0x00C89038,0x00985000,0x00E8D8B0,0x00C89810,0x00FFF8D8,0x00FFFFC8,0x00F8E8A8,0x00F8E098,0x00FFE8C0,0x00F8D888,0x00F8D880,0x00F0D078,0x00D8A020,0x0088E068,0x00209018,0x00A87800,0x00188000,0x00A0D868,0x00309018,0x00C8F8A0,0x00289018,0x00608818,0x0050A830,0x0030A028,0x00A8F068,0x00808000,0x0088C840,0x0070C848,0x00D8C070,0x0080C840,0x00C0B850,0x00F8E0A0,0x00F8E090,0x00D8E0F8,0x0098D0D0,0x0038A878,0x0058A890,0x00309068,0x00308880,0x00105870,0x002890B8,0x00186880,0x00105058,0x0048A8C8,0x001098D8,0x0078B8E0,0x002098C8,0x002898C8,0x0058C8FF,0x002088B8,0x0030A0D8,0x00C84048,0x002078B0,0x0030A8D8,0x00808080,0x00407888,0x0040A060,0x0080B820,0x00A02828,0x00F86068,0x00E02040,0x00E01828,0x00A8A8A8,0x00B8B8C0,0x00787878,0x00407828,0x00406040,0x007898C8,0x00E85878,0x00E04870,0x000098E0,0x0008A8F8,0x00D85868,0x00E86080,0x00E88098,0x00E888A0,0x00888888,0x00E8E8E8,0x00A0A0A0,0x00F0E0B8,0x00FFD850,0x00B8B8C8,0x00606080,0x00FFC818,0x00505870,0x00D8D0D8,0x0098C8F0,0x00606880,0x00405068,0x00303840,0x00FF0000,0x00F8C8C8}; + +unsigned char ficons[6240] = 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 new file mode 100644 index 0000000000..ddd99f3ff6 --- /dev/null +++ b/programs/cmm/eolite/imgs/left_p.txt @@ -0,0 +1,59 @@ +unsigned char blue_hl[190*268]= FROM "imgs\blue_hl8.raw"; + +dword blue_hl_pal[]= {0x0001699C,0x0000699C,0x00026A9C,0x0002699C, +0x00036A9C,0x00046B9C,0x00046A9C,0x00056B9D,0x00046B9D,0x00066C9D, +0x00066C9E,0x00056C9D,0x00076D9E,0x00086E9F,0x00066D9E,0x00086D9E, +0x00096E9F,0x00076C9E,0x000A6FA0,0x000B6FA0,0x000A6E9F,0x000B70A1, +0x00096F9F,0x000A6F9F,0x000C70A1,0x000B70A0,0x000D71A1,0x000C71A1, +0x000D71A2,0x000E71A2,0x00086D9F,0x000F72A2,0x000E72A2,0x001072A2, +0x001172A2,0x000C70A0,0x001273A2,0x001373A2,0x001374A2,0x001474A3, +0x001475A3,0x001474A2,0x001272A2,0x001575A3,0x001676A4,0x001576A3, +0x001576A4,0x001777A4,0x001777A5,0x001878A5,0x001877A5,0x001776A4, +0x001675A3,0x001978A6,0x001978A5,0x001A78A6,0x001B78A6,0x001676A3, +0x000D70A1,0x001A77A6,0x001977A5,0x001977A6,0x001876A4,0x001876A5, +0x001776A5,0x001675A4,0x001775A4,0x001574A3,0x001574A2,0x001473A2, +0x000E71A1,0x001775A3,0x001674A3,0x001A79A6,0x001B79A7,0x001B79A6, +0x001A78A5,0x001C7AA7,0x001C79A7,0x001A77A5,0x001D7AA8,0x001D7AA7, +0x001173A2,0x001E7BA8,0x001D7BA8,0x001977A4,0x001F7CA8,0x001F7BA8, +0x001E7AA8,0x001C79A6,0x001575A4,0x00207CA8,0x001E7AA7,0x001D79A7, +0x001976A4,0x00217CA8,0x00227CA8,0x00207BA8,0x001976A5,0x001473A3,0}; + +unsigned char devices[14*78]= FROM "imgs\dev.raw"; + +unsigned char factions[16*44] = FROM "imgs\actions.raw"; + +unsigned char logo[7225] = FROM "imgs\logo8b.raw"; + +dword logo_pal[]= {0x8096C0,0x7D93BC,0x7D76B0,0x8094BE,0x7C83B3,0x7D0C82, +0x7B73AC,0x7B90B7,0x7D7AB0,0x8C1B8C,0x74378B,0x7488AE,0x7C8EB8,0x846BAB, +0xAF63B0,0x821C89,0x697A9C,0x768AB1,0x8B66A9,0xBF80BF,0x993399,0x6B5C90, +0x975EA9,0xC48BC4,0xA955A9,0x72438B,0x7083A7,0x798DB5,0xA45CAA,0xC993C9, +0xB164B1,0x793A8C,0x8185B5,0xB46CB5,0xC791C7,0xB873B8,0x84328F,0x7D54A0, +0x840B84,0x82238B,0x7C539D,0x8A4C9F,0x8C3B95,0x637393,0x824399,0x9D409D, +0x942B94,0x83288E,0x7B599E,0x833C94,0xA043A0,0x8B4194,0xA264AA,0xAC5BAC, +0x9C3B9C,0x7982AE,0x861588,0xBC7BBC,0x7E4C90,0xAC6AB0,0xC083C0,0x7F4199, +0xA650A6,0x68628B,0x7D73A6,0xB670B7,0x95449A,0x7D6BAA,0x953195,0x8B5C9B, +0x60708E,0x8E519F,0x835598,0x7E65A9,0x7E2D91,0x7D5AA2,0x64648A,0xAD61AE, +0x8B3594,0x8D218E,0x796BA5,0x902390,0x735B90,0x7384AA,0x756294,0xA752A8, +0x76669F,0x8C2A91,0x965DA1,0x5D6C89,0x6C7EA2,0x8175AF,0x7474A5,0xB773B8, +0x6E80A4,0x9254A2,0x814D9B,0x6B6B98,0x832F91,0x9F60A7,0x8D419A,0x6B6992, +0x933A9A,0x8089B6,0x9C52A3,0x696492,0xA44AA4,0x606A8B,0x666690,0x75689F, +0x79498E,0x7D3492,0x8C2791,0x795390,0x71709C,0x964E9D,0x7E1E89,0x7B2A8B, +0x95539E,0x9C4A9B,0x645B88,0x7C4C9C,0x8E5FA8,0x891489,0x7D238B,0x824D95, +0x963398,0x6B5A8A,0x774B94,0x810481,0x7A7CAE,0x7C2386,0x814494,0x753B89, +0x861186,0x6F3C85,0x7C3D94,0x782D86,0x5C6B87,0x7C63A5,0x685187,0x6B5089, +0xA4499B,0xB9656E,0xC77647,0xD08131,0xD1842C,0x8060A3,0xAB528D,0xCA7937, +0xDE9408,0xE19808,0xE3A01C,0xE6AB36,0xE4A426,0xE29D14,0x655785,0x745A9A, +0xBC6655,0xE6AE42,0x705593,0x717AA4,0x843291,0x7B308E,0xA34285,0x694B86, +0x7F0280,0x7667A0,0x743484,0x615A85,0x7478A8,0x676892,0x703C86,0x9A3290, +0x862186,0x6E5491,0x6F3E89,0xAD5066,0x764F98,0xC06947,0xCE8031,0x6F75A1, +0xE3DEE0,0xE1DCDE,0xDAD5D7,0xC0ABBD,0x7F027F,0xBF6948,0x914490,0xCAC5C8, +0xB38CB1,0xAA4964,0xE8B247,0xA887A6,0xD4CDD1,0xB089AE,0x8E1C84,0xE09F26, +0xEAB855,0x8B328B,0xB7A9B5,0xD1CBCE,0xA677A5,0x8C2C8B,0x942577,0xC6BAC4, +0xC1BABE,0xB09BAD,0x966695,0x883387,0x978495,0x987997,0x8D458D,0x985A97, +0xB88AB6,0xAD6EAB,0x9D5C9C,0xCC8048,0x90468F,0xBAB5B7,0x851B85,0xA86AA6, +0xC09EBE,0x943A94,0x882387,0x9E519D,0xBB96B9,0x8D3B8C,0x924C91,0x9A327D, +0xC77C59,0xB0AAAD,0x872887,0xA599A3,0xB682B4,0xA0869E,0x935292,0x922488, +0xB1576D,0xD49256,0x8F558E,0xAAA5A7,0xC39BC1,0xC6A8C4,0xA763A5,0xB47CB3, +0x925A91,0x90578F,0xA09B9D,0xA06F9F,0x9E949C,0xB077AE,0xA66EA5,0xA75FA5, +0xB98EB8}; \ No newline at end of file diff --git a/programs/cmm/eolite/imgs/logo8b.raw b/programs/cmm/eolite/imgs/logo8b.raw new file mode 100644 index 0000000000000000000000000000000000000000..00b6c9667a461ecd9a3d2c95d49d246dc6679076 GIT binary patch literal 7225 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 literal 0 HcmV?d00001 diff --git a/programs/cmm/eolite/imgs/png/blue_hl81.png b/programs/cmm/eolite/imgs/png/blue_hl81.png new file mode 100644 index 0000000000000000000000000000000000000000..e1751b7cbb2a86d5b75859a29b016422d5b03b1e GIT binary patch literal 6121 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 literal 0 HcmV?d00001 diff --git a/programs/cmm/eolite/imgs/png/dev.png b/programs/cmm/eolite/imgs/png/dev.png new file mode 100644 index 0000000000000000000000000000000000000000..6553f4c80b959179854c23aeae6548e704c71004 GIT binary patch literal 1526 zcmVn^z&fC zi9yA3Yyx*B(P>R_8q}=4*Woo0ht-8i!PJ7qN1`*uXi|{N~Iz$Hdd=m8x}c~rs=-Ez5(=7T|-GpQL1J}2+NKc6K^nD zT`p37_RNwcnNw0GP!uID?4`PfveM!m+wzqP1;a2tpHIff!k$r1NSRqyT73CxqgVr7 zCUZ$i(e|xdXj+`9P$&e$Yi}JrYGhGSp|QJ%;(7kqPd|sNqm&8-0F7pnTrL;5qeqXX zYg8(n?6KpAiewrC)3P#H~>~ zmg6{8SPKInE;hFD=HF1p0w_Lj%bq$WIXNGI&1e&7HzD!ESsK7xt@ix2hMEpnt$`$v zoAve008W)uhgE!`Nw_&NDXF0B&zzhb8bD-(I&GHbYVqNbt{VVUD%Rui0Jt17PF8*E z!_N<9E>4Sz2p3;u>eNXKwW+5{{-Ed}ueaCfbaEWWIJ-ABhcB2nW6``BVhsot!}ENP z#d`7LrFMheW_MDc!o%p9GiSxejS$Pl=krxxzO6fW908>oH-Z+pb(=Q_yA1O&zqr*-d5ujZJ#NFj=hqJpdQs(0^pKb-N@_{C@33$sK0! zMb(*;g7NO|BM*l=fX-gD+;2kt4;0bX3+0bY9*CHjHh|vlvi^Q#w_k3-%3TqX0J=8p z4dD0zH0sMO{*jftq-X%IH`{AO^kUsz0AIf}-#=JcFg7N&wyA)cx8kF~A@)mp5CxDJ z>)bWF0zhZK*$n_Z&udrj?9g{P&33=7L*J!cy_4tppqftp#3$<&to%_fN2JYT$8cJ#~}; zkej>CXzUKm4I35-yWO6Vu}u04^^h_$mWd17*4FV~#|ohOT+P2l3x6$myj#27E@bxD zo>3~5!W_W}(Ep!m;K`Rj(Du*v^_czd@?k0^b+V-Lc1t_QdHcNgiPM~yw?P7#OlFJK zws-#_+H7%b->{wlE-R4+LPbSoiGt)aw;Dqs3~II5rwg0BGWI1K7HCNB@9_ zcqDDW>!D+%!=Fn&bofUA4u=zf%OyQQf;g|ZunvaV!Z literal 0 HcmV?d00001 diff --git a/programs/cmm/eolite/imgs/png/file_actions.png b/programs/cmm/eolite/imgs/png/file_actions.png new file mode 100644 index 0000000000000000000000000000000000000000..d3c20f2421ea6b4be66fefffcc485833be61477a GIT binary patch literal 694 zcmV;n0!jUeP);`gd;iqhjS+!&YgHTZ{lIX8j5Dz zESh>;4sJd|SK>`{`@H7x( zMM+6XQ>RV^>Om7{_(LKXj2ixfK|#qBOf)ex=S@PwOD88F`EADzh)RS8G?PAW-Fiz= z{X=2Vx6I7%B_&_1t-o&Hj;`Sc7(g^Uj*EMrnEWju;ERa~5PfxXdlDayuHnmDKVDK4PSPE(4P}P5~9a#wvgx90NbN}Kn;4^?9F%E z2X69&Y4~&E_v>Xq1XK-S0FmViBcLp@2XvXM0H2~!x8h+kr$AusvfuaFOe!W_c3t`vr;c^8ogk8g%ONF=)iUuG8@(CiS2F$dC c3jtLE0L27=;pVvW^8f$<07*qoM6N<$f*av7s{jB1 literal 0 HcmV?d00001 diff --git a/programs/cmm/eolite/imgs/png/icons.png b/programs/cmm/eolite/imgs/png/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..b0d42b1d916d3ac36b91385136ed0a09eb8183b0 GIT binary patch literal 5347 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 literal 0 HcmV?d00001 diff --git a/programs/cmm/eolite/imgs/png/rb.png b/programs/cmm/eolite/imgs/png/rb.png new file mode 100644 index 0000000000000000000000000000000000000000..1619cd6db3846e292866ac8a28f35b2afc76c4e5 GIT binary patch literal 1329 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 && (!strcmp(#path,#history_list[history_current].Item)) return; + + MAX_HISTORY_NUM = sizeof(history_list)/sizeof(path_string); + if (history_current>=MAX_HISTORY_NUM-1) + { + history_current/=2; + for (i=0; i",16, +"txt", 1, +"doc", 1, +"rtf", 1, +"odt", 1, +"log", 1, +"docx",1, +"htm", 2, +"html",2, +"mht", 2, +"ini", 3, +"js", 3, +"conf",3, +"inf", 3, +"xlt", 4, +"xls", 4, +"ods", 4, +"xlsx",4, +"cmd", 5, +"bat", 5, +"py", 5, +"sh", 5, +"ksh", 5, +"com", 5, +"kex", 6, +"lua", 6, +"exe", 7, +"msi", 7, +"sys", 8, +"ocx", 8, +"drv", 8, +"so", 8, +"inc", 9, +"chr", 10, +"mt", 10, +"ttf", 10, +"fon", 10, +"asm", 11, +"skn", 13, +"djvu",15, +"pdf", 15, +"fb2", 15, +"nes", 18, +"smc", 18, +"img", 21, +"ima", 21, +"dll", 22, +"obj", 22, +"dict",22, +"iso", 24, +"cue", 24, +"nrg", 24, +"mdf", 24, +"gif", 19, +"bmp", 19, +"tga", 19, +"pcx", 19, +"png", 19, +"pnm", 19, +"jpg", 19, +"xcf", 19, +"ai", 19, +"jpeg",19, +"raw", 19, +"psd", 19, +"wbmp",19, +"tiff",19, +"tif", 19, +"3ds", 20, +"ico", 20, +"cur", 20, +"ani", 20, +"vox", 20, +"rar", 23, +"zip", 23, +"cab", 23, +"tar", 23, +"ajr", 23, +"jar", 23, +"7z", 23, +"gz", 23, +"mp3", 12, +"wav", 12, +"mid", 12, +"midi",12, +"ogg", 12, +"wma", 12, +"flac",12, +"avi", 14, +"flv", 14, +"mpg", 14, +"wmv", 14, +"mov", 14, +"mkv", 14, +"mp4", 14, +"vob", 14, +"grf", 25, +0,0}; + + +#include "imgs\icons.txt" + + +void Put_icon(dword extension, yy, fairing_color) +{ + int icon_n=0, i; + + for (i=0; ext[i]<>0; i+=2;) + if (!strcmp(extension, ext[i])) + { + icon_n = ext[i+1]; + break; + } + + PutPaletteImage(icon_n*16*15+#ficons,16,15,195,yy,8,#ficons_pal); + if (icon_n<>17) && (strlen(extension)<9) WriteText(-strlen(extension)*3+onLeft(168,0)+36,yy+4,0x80,0,extension); + if (fairing_color<>0xFFFfff) IconFairing(icon_n, yy, fairing_color); // +} + + + +void IconFairing(dword filenum, y, color) +{ + switch(filenum) + { + case 0...1: // + DrawBar(195,y,2,15,color); + RIGHT_PAINT: + DrawBar(209,y,2,15,color); + DrawBar(205,y,4,1,color); + DrawBar(206,y+1,3,1,color); + DrawBar(207,y+2,2,1,color); + PutPixel(208,y+3,color); + return; + case 2: //html + DrawBar(195,y,1,7,color); + DrawBar(196,y,1,6,color); + DrawBar(195,y+10,1,5,color); + DrawBar(196,y+11,1,4,color); + GOTO RIGHT_PAINT; + case 3: // + DrawBar(195,y,2,7,color); + DrawBar(195,y+7,1,2,color); + DrawBar(195,y+12,1,3,color); + PutPixel(196,y+14,color); + GOTO RIGHT_PAINT; + case 9: //inc + DrawBar(195,y,1,12,color); + DrawBar(196,y,1,11,color); + DrawBar(197,y,1,10,color); + DrawBar(198,y,1,5,color); + DrawBar(199,y,1,4,color); + DrawBar(200,y,1,3,color); + DrawBar(201,y,1,2,color); + DrawBar(202,y,1,3,color); + DrawBar(203,y,1,2,color); + PutPixel(204,y,color); + PutPixel(205,y+4,color); + PutPixel(206,y+3,color); + PutPixel(207,y,color); + PutPixel(207,y+2,color); + DrawBar(208,y,1,3,color); + DrawBar(209,y,2,4,color); + DrawBar(210,y,1,15,color); + PutPixel(198,y+14,color); + DrawBar(199,y+13,1,2,color); + DrawBar(200,y+12,10,3,color); + PutPixel(205,y+11,color); + DrawBar(206,y+10,1,2,color); + DrawBar(207,y+9,1,3,color); + PutPixel(207,y+7,color); + DrawBar(208,y+6,2,7,color); + PutPixel(209,y+5,color); + return; + case 10: //font + DrawRectangle3D(195,y,15,14,color,color); + DrawBar(196,y+1,1,13,color); + DrawBar(197,y+1,1,11,color); + DrawBar(198,y+1,1,10,color); + DrawBar(199,y+1,1,9,color); + DrawBar(200,y+1,1,7,color); + DrawBar(201,y+1,1,5,color); + DrawBar(202,y+1,1,4,color); + DrawBar(203,y+1,1,2,color); + DrawBar(209,y+1,1,13,color); + DrawBar(208,y+1,1,11,color); + PutPixel(204,y+6,color); + DrawBar(203,y+10,2,1,color); + DrawBar(202,y+11,2,3,color); + return; + case 11: //asm + DrawBar(195,y,1,15,color); + return; + case 12: //audio + DrawBar(195,y,16,1,color); + DrawBar(195,y,1,15,color); + DrawBar(196,y+1,4,8,color); + DrawBar(196,y+9,1,2,color); + PutPixel(197,y+9,color); + PutPixel(196,y+14,color); + DrawBar(210,y+1,1,14,color); + DrawBar(202,y+4,6,4,color); + DrawBar(202,y+8,4,1,color); + DrawBar(202,y+9,3,1,color); + DrawBar(202,y+10,2,3,color); + DrawBar(201,y+13,4,1,color); + DrawBar(200,y+14,14,1,color); + DrawBar(209,y+12,1,2,color); + PutPixel(208,y+13,color); + return; + case 13: //skin + PutPixel(210,y,color); + return; + case 14...15: //video, book + DrawBar(195,y,1,15,color); + DrawBar(210,y,1,15,color); + return; + case 16...17: // + DrawBar(195,y,1,15,color); + DrawBar(203,y,8,2,color); + IF (filenum==17) PutPixel(206,y+1,0x1A7B17); // + DrawBar(196,y+13,15,2,color); + PutPixel(196,y,color); //. + PutPixel(202,y,color); + PutPixel(210,y+2,color); + PutPixel(196,y+12,color); + PutPixel(210,y+12,color); + return; + case 18: // + DrawBar(195,y,16,2,color); + DrawBar(195,y+11,1,2,color); + DrawBar(210,y+11,1,2,color); + DrawBar(195,y+13,16,2,color); + return; + case 19: // + case 20: // + DrawBar(195,y+14,16,1,color); + return; + case 21: // + PutPixel(195,y,color); + PutPixel(210,y,color); + return; + case 22: // + DrawBar(195,y,16,1,color); // + DrawBar(195,y+1,3,1,color); + DrawBar(195,y+2,2,1,color); + PutPixel(195,y+3,color); + PutPixel(210,y+11,color); // + DrawBar(209,y+12,2,1,color); + DrawBar(208,y+13,3,1,color); + DrawBar(207,y+14,4,1,color); + return; + case 23: // + PutPixel(195,y+3,color); + PutPixel(195,y+11,color); + PutPixel(210,y+3,color); + PutPixel(210,y+11,color); + + DrawBar(195,y,7,1,color); + DrawBar(204,y,7,1,color); + DrawBar(195,y+14,7,1,color); + DrawBar(204,y+14,7,1,color); + + DrawBar(195,y+1,5,1,color); + DrawBar(206,y+1,5,1,color); + DrawBar(195,y+13,5,1,color); + DrawBar(206,y+13,5,1,color); + + DrawBar(195,y+2,3,1,color); + DrawBar(208,y+2,3,1,color); + DrawBar(195,y+12,3,1,color); + DrawBar(208,y+12,3,1,color); + return; + case 24: // + DrawBar(195,y,6,1,color); + DrawBar(195,y+1,4,1,color); + DrawBar(195,y+2,3,1,color); + DrawBar(195,y+3,2,2,color); + + DrawBar(195,y+5,1,5,color); + + DrawBar(195,y+10,2,2,color); + DrawBar(195,y+12,3,1,color); + DrawBar(195,y+13,4,1,color); + DrawBar(195,y+14,6,1,color); + + DrawBar(195+11,y,5,1,color); + DrawBar(195+13,y+1,3,1,color); + DrawBar(195+14,y+2,2,1,color); + DrawBar(195+15,y+3,1,2,color); + + DrawBar(195+15,y+10,1,2,color); + DrawBar(195+14,y+12,2,1,color); + DrawBar(195+13,y+13,3,1,color); + DrawBar(195+11,y+14,5,1,color); + + return; + } +} diff --git a/programs/cmm/eolite/include/ini.h b/programs/cmm/eolite/include/ini.h new file mode 100644 index 0000000000..6ed046e807 --- /dev/null +++ b/programs/cmm/eolite/include/ini.h @@ -0,0 +1,134 @@ +//INI parser in C--, GPL licence. +//Leency - 2012 + +#define COMMENT 0 +#define SECTION 1 +#define PARAM 2 +#define OPTION 3 + +unsigned char *ERROR_TEXT[]={ +"Code #0 - No error", +"Error #1 - Base or partition of a hard disk is not defined", +"Error #2 - Function isn't supported for this file system", +"Error #3 - Unknown file system", +"Error #4 - Reserved, is never returned", +"Error #5 - File or folder not found", +"Error #6 - End of file, EOF", +"Error #7 - Pointer lies outside of application memory", +"Error #8 - FAT table is destroyed", +"Error #9 - FAT table is destroyed", +"Error #10 - Access denied", +"Error #11 - Device error", +0, 0, 0, 0, 0, 0, 0, 0, 0, +0, 0, 0, 0, 0, 0, 0, 0, 0, +"Error #30 - Not enough memory", +"Error #31 - File is not executable", +"Error #32 - Too many processes", +0}; + +void GetIni(byte onload) +{ + byte section[32], parametr[32], option[256], InfType=0; + char bukva[2]; + int errornum, tj; + static dword buff, fsize; + // + if (onload==1) + { + free(buff); + buff = malloc(12000); + program_path[strrchr(#program_path, '/')] = NULL; + strcat(#program_path, "Eolite.ini"); + ReadFile(0, 12000, buff, #program_path); + fsize=EBX; + IF (EAX<>6) ReadFile(0, 12000, buff, "/sys/File managers/Eolite.ini"); + IF (EAX<>6) notify("Eolite.ini not found. Defaults will be used."); + } + // + for (tj=0; tj=0) Line_ReDraw(0xFF0000, curbtn); + pause(5); + notify(#error); +} + + +dword StrToCol(char* htmlcolor) +{ + dword j, color=0; + char ch=0x00; + + FOR (j=0; j<6; j++) + { + ch=ESBYTE[htmlcolor+j]; + IF ((ch>='0') && (ch<='9')) ch -= '0'; + IF ((ch>='A') && (ch<='F')) ch -= 'A'-10; + IF ((ch>='a') && (ch<='f')) ch -= 'a'-10; + color = color*0x10 + ch; + } + return color; +} \ No newline at end of file diff --git a/programs/cmm/eolite/include/left_panel.h b/programs/cmm/eolite/include/left_panel.h new file mode 100644 index 0000000000..3295c316af --- /dev/null +++ b/programs/cmm/eolite/include/left_panel.h @@ -0,0 +1,192 @@ +void Tip(int y, dword caption, id, arrow) +{ + int i; + DrawBar(17,y,160,1,0xEFEDEE); + DrawFilledBar(17, y+1, 160, 16); + WriteText(25,y+5,0x80,0,caption); + IF (id<>0) DefineButton(159,y+1,16,16,id+BT_HIDE+BT_NOFRAME,0xE4DFE1); // + WriteText(165,y+5,0x80,0,arrow); // + DrawBar(17,y+17,160,1,0x94AECE); // +} + + +path_string disk_list[20]; +int disc_num; +dword devbuf; + +void GetSystemDiscs() +{ + unsigned char dev_name[10], sys_discs[10]; + unsigned int i1, j1, dev_num, dev_disc_num; + + disc_num=0; + if (devbuf) free(devbuf); + devbuf = malloc(3112); // - 10 + ReadDir(19, devbuf, "/"); + dev_num = EBX; + for (i1=0; i1=1073741824) strcpy(#size_nm, " Gb"); + else if (bytes>=1048576) strcpy(#size_nm, " Mb"); + else if (bytes>=1024) strcpy(#size_nm, " Kb"); + else strcpy(#size_nm, " b "); + while (bytes>1023) bytes/=1024; + strcpy(#size_prefix, itoa(bytes)); + strcat(#size_prefix, #size_nm); + return #size_prefix; +} + + +dword col_palette[14] = {0xD2D3D3,0xD4D4D4,0xD6D5D6,0xD8D7D8,0xDAD8D9,0xDCDADB, +0xDFDCDD,0xE1DDDE,0xE2DEE0,0xE4DFE1,0xE3DFE1,0xE3DFE1,0xE3DFE1,0xE3DFE1,0xE3DFE1}; + +inline fastcall void TVScroll() { // + dword on_y, i; + if (count<=0) {DrawFlatButton(onLeft(27,0),57,16,onTop(22,58),0,col_work,""); return;} + on_y = za_kadrom * onTop(22,57) / count +57; + scroll_size=onTop(22,57) * f_visible - f_visible / count; + if (scroll_size<20) scroll_size = 20; // + if (scroll_size>onTop(22,57)-on_y+56) || (za_kadrom+f_visible>=count) on_y=onTop(23+scroll_size,0); // + DrawFlatButton(onLeft(27,0),on_y,16,scroll_size,0,-1,"");// + if (!scroll_used) for (i=0; i<13; i++) DrawBar(onLeft(25-i,0), on_y+2, 1, scroll_size-3, col_palette[13-i]); + if (scroll_used) for (i=0; i<13; i++) DrawBar(onLeft(25-i,0), on_y+2, 1, scroll_size-3, col_palette[i]); + // + if (on_y>58) DrawBar(onLeft(26,0),57,15,1, 0xC7C9C9); + DrawBar(onLeft(26,0),58,1, on_y-58,0xC7C9C9); + DrawBar(onLeft(25,0),58,14,on_y-58,0xCED0D0); + // + if (onTop(22,57)-scroll_size+55>on_y) DrawBar(onLeft(26,0),on_y+scroll_size+1,15,1,0xC7C9C9); + DrawBar(onLeft(26,0),on_y+scroll_size+2,1,onTop(22,57)-scroll_size-on_y+55,0xC7C9C9); + DrawBar(onLeft(25,0),on_y+scroll_size+2,14,onTop(22,57)-scroll_size-on_y+55,0xCED0D0); +} + +void DrawFlatButton(dword x,y,width,height,id,color,text) +{ + int fill_h; + DrawRectangle(x,y,width,height,col_border); + DrawRectangle3D(x+1,y+1,width-2,height-2,0xFEFEFE,col_padding); + PutPixel(x+width-1, y+1, col_work); + if (color!=-1) DrawFilledBar(x+2, y+2, width-3, height-3); + IF (id<>0) DefineButton(x+1,y+1,width-2,height-2,id+BT_HIDE,0xEFEBEF); + WriteText(-strlen(text)*6+width/2+x+1,height/2-3+y,0x80,0,text); +} + +void DrawFilledBar(dword x, y, w, h) +{ + int i, fill_h; + if (h <= 14) fill_h = h; else fill_h = 14; + for (i=0; i - 1 +{ + int iss = a; + IF (a >= b) return; + FOR (j = a; j <= b; j++) + IF (ESDWORD[file_mas[j]*304 + buf+64] <= ESDWORD[file_mas[b]*304 + buf+64]) { file_mas[iss] >< file_mas[j]; iss++;} + Sort_by_Size (a, iss-2); + Sort_by_Size (iss, b); +} + + +void Sort_by_Name(int a, b) // : a = 0, b = < > - 1 +{ + int isn = a; + IF (a >= b) return; + FOR (j = a; j <= b; j++) + IF (strcmp(file_mas[j]*304 + buf+72, file_mas[b]*304 + buf+72)<=0) { file_mas[isn] >< file_mas[j]; isn++;} + Sort_by_Name(a, isn-2); + Sort_by_Name(isn, b); +} + + +void Sort_by_Type(int a, b) // : a = 0, b = < > - 1 +{ + dword filename1, filename2, ext1, ext2; + int n, isn = a; + IF (a >= b) return; + for (j = a; j <= b; j++) + { + filename1 = file_mas[j]*304 + buf+72; + filename2 = file_mas[b]*304 + buf+72; + + n=strlen(filename1)-1; + WHILE (n>0) && (ESBYTE[filename1+n]<>'.') n--; + IF (n) ext1 = filename1+n+1; else ext1=0; + n=strlen(filename2)-1; + WHILE (n>0) && (ESBYTE[filename2+n]<>'.') n--; + IF (n) ext2 = filename2+n+1; else ext2=0; + + n=strcmp(ext1, ext2); + IF (n<0) { file_mas[isn] >< file_mas[j]; isn++;} + IF (n==0) && (strcmp(filename1, filename2)<=0) { file_mas[isn] >< file_mas[j]; isn++;} + } + Sort_by_Type(a, isn-2); + Sort_by_Type(isn, b); +} + + + diff --git a/programs/cmm/eolite/txt/History.txt b/programs/cmm/eolite/txt/History.txt new file mode 100644 index 0000000000..9fad014cfd --- /dev/null +++ b/programs/cmm/eolite/txt/History.txt @@ -0,0 +1,569 @@ +xx.xx.13 -- v1.61 +- ( s1n). + ; +- PathShow; +- USB flash ; +- . + + +10.01.13 -- v1.55 +- ; +- , + . + +17.12.12 -- v1.5 + GUI: , . + +16.11.12 -- v1.43 +- ; +- ; +- /tmpX/1; +- ; +- . + +15.11.12 -- v1.36 +- ; +- ( SoUrcerer + , ); +- 10 20; +- . + +12.11.12 -- v1.35 +- ; +- ; +- 100% ; +- , . + +10.07.12 -- v1.30 +- "/"; +- *.grf; +- About Eolite.ini; +- . + + +23.06.12 -- v1.28 +- (+ ) + (+ ini ); +- ""; +- , . + +21.06.12 -- v1.25 +- ; +- ; +- . + +14.06.12 -- v1.23 +- , ; +- . + +13.05.12 -- v1.22 --16,5 +- ; +- ini- . + +05.04.12 -- v1.2 --16,5 +- "", ; +- . + +05.04.12 -- v1.1 --16,2 +- , ; +- ; +- ; +- +- . + +26.03.12 -- v1.0 --16,2 + . + + + + + + + +27.08.11 -- v0.99.8 RC3 -- 16.2 +- , ; +- 90% ; +- ; +- , ( Mario); +- ( Fugue icons); +- ( - ); +- ; +- ; +- . + + +22.08.11 -- v0.99 RC2 -- 16.2 +- Ctrl+N; +- /rd/1/; +- Ctrl+D . ( Ultimate Ficha KFM); +- ; +- ; +- . + + +18.08.11 -- v0.98.9b RC2 -- 15.9 +- , . + , - /rd/1/File managers/Eolite.ini + (for Chaos Constructions-2011, thanks Albom). + + +30.07.11 -- v0.98.9 RC2 -- 15.9 +- (Eolite.ini) , + @notify; +- , ; +- ; +- kolibrios.org " " ( htmlv + ); +- F4 - hex ( heed + ...). + + +20.07.11 -- v0.98.8 RC2 -- 15.9 +- @notify. + , ; +- , + 4 . , + Gluk', Zeroconf + ".conf"; +- Rock_maniak_forever 9 , , + ; +- , , + , ( turbanoff); +- , ; +- (Actions); +- . + + + + +30.01.10 -- v0.98.7a RC2 -- 14.8 +- : 4096 . + + +23.10.09 -- v0.98.7 RC2 -- 14.7 (Izabella edition) +- Ctrl+F1...F12 + : -, -, -, + . + + +19.10.09 -- v0.98.6 RC2 -- 14.7 ( , -!) +- Lrz: box_lib.obj. + + +29.12.08 -- v0.98.5 RC2 -- 14.7 +- ini-, + ; +- Nable' ( DOS-); +- Preview; +- . +- - ; +- , , ; +- ".." - + , , ; +- . + + +20.12.08 -- v0.98.3 RC2 -- 14.6 +- ; +- , 0 6898 ; +- : , "" ; +- ; +- ; +- , ""; +- ; +- + ; +- - ; +- - , + ; +- ; +- . + + +16.12.08 -- v0.98.1 RC1 -- 14.7 +- ".." ; +- / ; +- ( s1n). + + +15.12.08 -- v0.98 RC1 -- 14.5 +- bd- NTFS; +- - ; +- ; +- "." ( diamond' ). + + +30.11.08 -- v0.97.2 beta7 -- 14.4 +- /bd/ ( ); +- ; +- ( ). + + +26.11.08 -- v0.97.1 beta7 -- 14.3 +- , ; +- ; +- Veliant' + 256- . + 2 kpack'; +- ; +- . + + +20.11.08 -- v0.97 beta7 -- 14.9 +- : + ; +- , . + + +17.11.08 -- v0.96.9 beta7 -- 14.9 +- .dll (.obj) .img. + + +14.11.08 -- v0.96.8 beta7 -- 14.6 +- , ; +- .cpp .nes. + + +31.10.08 -- v0.96.7 beta7 -- 14.4 +- , , ; +- - , \ + , , ; +- - ; +- " ", + ; ; +- . + + +24.10.08 -- v0.96.3 beta7 -- 14.4 +- Symbian; +- ; +- , , !,& + , ".."; +- , . + + +23.10.08 -- v0.96 beta6 -- 14.1 +- + ( !)). + 8 , 5 , 30%; +- : , , + , . , + , ; +- ; +- 3 ; +- . + + +17.10.08 -- v0.95.7 beta6 -- 14.3 +- 2 ; +- . + +15.10.08 -- v0.95.4 beta6 -- 14.0 +- : \ (). + +03.10.08 -- v0.95.3 beta6 -- 14.1 +- ""; +- , , + . +- ; +- . + + +17.09.08 -- v0.95.2 beta6 -- 14.1 +- , , Serge'. + ( + 91000 ), 6898 ; +- Ctrl+N ; +- . + + +14.09.08 -- v0.95 beta6 -- 14.0 +- , ; +- EditBox'ax 1 9 ( :); +- BackSpace ; +- IntToStr() diamond'y, + 158 ; +- Nable' ; +- Albom'a , + - , + ; +- , . + + +02.08.08 -- v0.94.4 beta5 -- 14.0 +- , . + + +28.07.08 -- v0.94.3 beta5 -- 14.1 +- Ctrl+<>; +- ; +- ""; +- . + + +04.07.08 -- v0.94 beta5 -- 13.9 +- , + , . + + +04.07.08 -- v0.93.9 beta5 -- 13.9 +- "" :) +- - "." ".." + + +29.06.08 -- v0.93.8 beta5 -- 13.8 +- + + +22.06.08 -- v0.93.6 beta5 -- 13.7 +- , ( + :), 2 . + + +18.06.08 -- v0.93.5 beta5 -- 13.7 +- - "Eolite /hd1/1/" + /hd1/1/ . ; +- " ", + ( ); +- ".cvs"; +- . + + +15.06.08 -- v0.93.4 beta5 -- 13.4 +- /rd/1/; +- rd, fd, hd1 .. ; +- "Up" ( ). + + +14.06.08 -- v0.93.3 beta5 -- 13.4 +- , , + - , + ( 79 ); +- ; +- F3 - ; +- . + + +14.06.08 -- v0.93 beta5 -- 13.6 +- ( diamond' ); +- ; +- ; +- , ; +- , +- ; +- kolibri.h--. + + +08.06.08 -- v0.92.1 beta5 -- 14.0 +- , ; +- . + + +08.06.08 -- v0.92 beta5 -- 14.0 +- , 0.88. + , , + ; +- , 1 1 . + + +07.06.08 -- v0.91.5 beta4 -- 14.0 +- 03.03.08 (v0.83) ; +- , + , :) +- , ; +- c diamond' + copystr() ; +- , ; +- , ; +- ( ) - + , ; +- , , + ; +- lowcase() upcase(); +- , - ; +- NTFS- , , + , - ; +- ; +- - + , ; +- ; +- . + + +02.06.08 -- v0.90.4 beta4 -- 14.1 +- ( .. Maxis ). + + +01.06.08 -- v0.90 beta4 -- 14.1 +- , ! diamond + . + + +01.06.08 -- v0.88.5 beta3 -- 14.1 +- + , . : + , 2? + . . +- , + .. : , + . + + +30.05.08 -- v0.88.2 beta3 -- 14.1 +- , F2 Home. + + +27.04.08 -- v0.88 beta3 -- 14.1 +- ; +- , +- . + + +08.04.08 -- v0.87 beta3 -- 14.0 +- ; +- ; +- (RM-, ..) + , "/" + - ; +- , + , ; +- , ; +- . + + +27.03.08 -- v0.86 beta3 -- 14.4 +- ; +- ; +- ; +- ; +- Ctrl+ Ctrl+X; +- , + : toolbar icons, file icons, device icons; +- ; +- - ! + + +09.03.08 -- v0.84 beta2 -- 16.1 +- c " " ( kpack- 2.5 ) +- ; +- , , + ; +- . + + +07.03.08 -- v0.83.3 beta2 -- 13.0 +- , . + + +07.03.08 -- v0.83.2 beta2 -- 13.0 +- + . + + +07.03.08 -- v0.83.1 beta2 -- 13.0 +- ; +- . + + +03.03.08 -- v0.83 beta2 -- 13.0 +- ; +- : , ; +- ! +- Ctrl+C (Ctrl+Ins), Ctrl+X, Ctrl+V. + Shift- ; +- ; +- , ; +- , ; + , ; +- , ; +- . + + +27.02.08 -- v0.81 beta -- 12.8 +- ; +- ; +- . + + +25.02.08 -- v0.80 beta -- 12.6 +- ! +- . + + +25.02.08 -- v0.77 beta -- 12.5 +- ; + + +23.02.08 -- v0.75 beta -- 12.1 +- ; +- eolite_copy.obj ; +- ( ); +- ; +- . + + +23.02.08 -- v0.71 beta -- 12.1 +- ; +- ReadMe. + + +23.02.08 -- v0.7 beta -- 12.1 +- ; +- "." . + + +22.02.08 -- v0.65 beta -- 12.3 +- , ; +- ; +- . , Enter + , - , + ; +- , , + :( +- Insert, ; + + +18.02.08 -- v0.6 beta -- 11.7 +- ; +- , + ; +- ; +- F5 ; +- ; +- ; +- ; +- , . + + +09.02.08 -- v0.5 beta -- 10 +- Preview; +- ; +- - 1615; +- , "/" - ; +- ; +- ; +- ; +- , - ; +- . + + +04.02.08 -- v0.35 beta -- 9.17 +- "" ( #path, #edit_path); +- ; +- ; +- ; +- . + + +03.02.08 -- v0.33 beta -- 8.91 (.) + . : +1. Leency . +2. Veliant /rd/1/, Leency + . +3. Veliant . Leency . +4. Veliant , Leency . +5. Veliant Leency . +6. . + +22.02.08 -- v0.0 -- 0 +. \ No newline at end of file diff --git a/programs/cmm/eolite/txt/ReadMe_en.txt b/programs/cmm/eolite/txt/ReadMe_en.txt new file mode 100644 index 0000000000..884424ae41 --- /dev/null +++ b/programs/cmm/eolite/txt/ReadMe_en.txt @@ -0,0 +1,32 @@ +Eolite File Manager + +==About this program== +Eolite is a simple in using and pretty looks file manager. +It written in C--. Development has started at 20.01.08. +You can find more information here: +http://board.kolibrios.org/viewtopic.php?f=9&t=973 + + +==Install== +Put box_lib.obj into "/sys/lib/" directory. +Put Eolite.ini into programs directory or in "/sys/File Managers/". +Eolite can be opened from anywhere. + + +==Authors== +Leency - programming and design. +Veliant - programming and support. Inactive now. + +==Thanks== +diamond + +Nable +Mario79 +Rock_maniak_forever +turbanoff +Sorcerer +Gluk +lev + + +KolibriOS Forever! \ No newline at end of file diff --git a/programs/cmm/eolite/txt/ReadMe_ru.txt b/programs/cmm/eolite/txt/ReadMe_ru.txt new file mode 100644 index 0000000000..3833e3d13a --- /dev/null +++ b/programs/cmm/eolite/txt/ReadMe_ru.txt @@ -0,0 +1,31 @@ +Eolite File Manager + +== == + , + . + C--, +. 20.01.08. + : +http://board.kolibrios.org/viewtopic.php?f=9&t=973 + + +==== + box_lib.obj. Eolite.ini + "/sys/File Managers/". + + +==== +Leency - , . +Veliant - , . + +==== +diamond - , . + - EditBox . +Nable - , IPC. +Mario79 - . +S1n - lib_ini ( ). +Rock_maniak_forever, turbanoff, Sorcerer, Gluk, Albom - . +lev - . + + + ! ! KolibriOS Forever! \ No newline at end of file diff --git a/programs/cmm/example/compile.bat b/programs/cmm/example/compile.bat index b5d2b2ae15..f6ce60cb56 100644 --- a/programs/cmm/example/compile.bat +++ b/programs/cmm/example/compile.bat @@ -1,6 +1,5 @@ ..\C--\C-- example.c -del example -rename example.com example -..\C--\kpack example -pause -del warning.txt +@del example +@rename example.com example +@pause +@del warning.txt diff --git a/programs/cmm/example/example.c b/programs/cmm/example/example.c index 81d4bed079..0d52ebf9de 100644 --- a/programs/cmm/example/example.c +++ b/programs/cmm/example/example.c @@ -1,4 +1,6 @@ +#define MEMSIZE 0x3E80 #include "..\lib\kolibri.h" +#include "..\lib\strings.h" #include "..\lib\file_system.h" @@ -32,9 +34,10 @@ void main() void draw_window() { + proc_info Form; DefineAndDrawWindow(215,100,250,200,0x34,0xFFFFFF,"Window header"); + GetProcessInfo(#Form, SelfInfo); WriteText(50,80,0x80,0,"Press Enter"); - } diff --git a/programs/cmm/installer/compile.bat b/programs/cmm/installer/compile.bat new file mode 100644 index 0000000000..aea335ad91 --- /dev/null +++ b/programs/cmm/installer/compile.bat @@ -0,0 +1,5 @@ +..\C--\C-- main.c /lst +@del installer.kex +@rename main.com installer.kex +@pause +@del warning.txt diff --git a/programs/cmm/installer/copyf.c b/programs/cmm/installer/copyf.c new file mode 100644 index 0000000000..bc7acb329f --- /dev/null +++ b/programs/cmm/installer/copyf.c @@ -0,0 +1,173 @@ +// универсальность добавления / +// относительный путь относительно программы + +void copyf(dword params) +{ + //copyf /sys/lib|/sys/lib2 + char from[4096], to[4096]; + BDVK from_atr; + int border; + mem_Init(); + if (!params) { notify("Error: no copyf params!"); return; } + program_path[strrchr(#program_path, '/')] = 0x0; + border = strchr(params, '|'); + if (!border) border = strchr(params, ' '); + + if (ESBYTE[params]<>'/') + { + strcpy(#from, #program_path); + strcat(#from, params); + from[border+strlen(#program_path)-1]=NULL; + } + else + { + strcat(#from, params); + from[border-1]=NULL; + } + strcpy(#to, params+border); + + GetFileInfo(#from, #from_atr); + if (TestBit(from_atr.attr, 4)==1) + { + CopyFolder(#from, #to); + } + else + { + CopyFile(#from, #to); + } +} + + +void CopyFolder(dword from, to) +{ + dword dirbuf, fcount, filename; + int i, error, isdir; + char copy_from[4096], copy_in[4096]; + char from2[4096], to2[4096]; + + error = GetDir(#dirbuf, #fcount, from); + if (error) debug_error(from, error); + + if ((strcmp(to, "/sys")!=0) && (strcmp(to, "/tmp9/1")!=0)) + { + error = CreateDir(to); + if (error) debug_error(to, error); + } + chrcat(to, '/'); + chrcat(from, '/'); + + for (i=0; i100) InstallationLoop(); + else notify("You do not have enought free RAM for installation!"); +} \ No newline at end of file diff --git a/programs/cmm/installer/img/logo.ico b/programs/cmm/installer/img/logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..ce29b7da594fe55d80721ddb84b0b0121e0a9a99 GIT binary patch literal 3326 zcmeHJdr(wW9KL3wY;xMd0lZE-3N=nvcU0B(LeJ{K0i%kZDaq{b&Ll8LEp#Q4z+d221`}=+0dH#N9 z566umKezcDdAf7vi5xeLyPX0t&ml_GlQDew__;Fo8EU-lXJ zfDG__0{BUE(W6_|m+ktL# z8-CTdpi6xlj`l|MShb8t`BXO)4c`_sz4engw4|;<{f33OuwphuA)dIo)(5)SAf~50 zAvAtpI;gL!D95cj5zZ8rpzy?(C^(TjsHZ$3h_9YS?>!rAHARB`n@Y3M>okM%gkaK0 zA-P_LZd04!{JTvG=BK>J!KA%|rW@tx?J^HrKiVd>Q~yXX>twj|!}&oyU32=qAEp{79F8>0BT*B6b+Nu9>uo&cMX{csgowglyGCh*Y zu3>9I4Q`8X61#%=DNhLUpG9o{nq^{S*UL~X)giw03O3}55S3GnCP@R^Kgtur-CH%I zieJhTLTh8~sPvR41ckV6RC>x2LS|J9mSlbdKA{qPdvzhbx)KBD_el9a(*Mu@E&s`V07J`Df9}<76VN$D`4b#zUR)3Y3{aQ0!WOVE1QO8+1-r-j9=fe8%A-YIN z(_+~B8XVanFcv1j($@zI@hMYYg8sl#T;Dc_tw-?8anNM&(Czbwa;qDxRx3-0d*o@1 zeHy0RSU8B5!cKgu_^B{v1ws2!078iN;Onl??0gxz3_qwgjwc)o<2s4Nl=33Fi1uE; zoZY!pnf3C8=jN3mIEmC`Y)SP$$kr@rp^< zw{RTV;-^EM>ipnZP^S%+yvJ06Rs zk3s7eSF~-P3Hb^a81x3v6*LpAHft&LZ*p)roUDIirycSj4yt#jqBV9h)6)I>I&>Ub zV_eW2<_aTW(wnI|I~?XzcW4r)!`_SjHXi^o(#PFR6PRWop8cQaAc-6c={i?PHcx>p z-47!W0MQJM|8=uCh{HL^BRF(?5dlZ}9@x*M zz;@~bILdaxTABuB!VHMRI7AZeQ0+k7e;S9{WgKLy$sChBU^z|n=l4OM9R_*KSkx@$ n;QySkcAyP9ryw%6-QFB>{QApoFJdEY56pLf`{$dy{=4`CRxVyq literal 0 HcmV?d00001 diff --git a/programs/cmm/installer/img/logo.raw b/programs/cmm/installer/img/logo.raw new file mode 100644 index 0000000000000000000000000000000000000000..66ba96cb8e59124d0dca8f22eb933c06d650fc3a GIT binary patch literal 2304 zcmds%drVt(6vwY(SX~^CI3Xbmf-q)~1>p(~1oz_QIvMMj47SM_sfaiz@(NVIv8iNp zBZG=Ow?P&LV@LnC&8B*23BpJaiuyEt zaey-4&$L3|1fhRS2$D$;PizJZ;N5=Dh);RQ3j9UMB#l~Q2W&P~?LPH8h}pbI5QKKY zB#KAmA8Zw8djeb&?JlGGDT;!n?~>-V>V?HWOppFF+H9I!53^zxc*DF-nuw@A+9s#^ z)I@J;OWYza2*8SWNGT+IK@Y&9LA$t0z_M^h>^yFekrAvoSds7Fk-ViN$xB5G!AisA znIs&CaDdlYR~}pc-oVjhGAS|;P1#N*E#zv7_qn$`lw~`yib(nKO(xu6=WT?J_KL-3 zTe884FdB{WlbhA_C`Ebr`8cmce|KdCiq*tObG#hyUxGVkKc{14n{9Rn6OPNNTeY?E zs!wB+{Ou{a_kJK&yIWGU17BUW5Ckku^)7RLlC~|+V6z!kSEaPq)OGvDPlq^qBjII| z8^PwP0sJA0#CvQ&~LC^<;d+FbydHpE04^3}H z6Y8T5T#CzTO*qp>K6{tmKjXlhzY@;yBa_x5pI$a7ZC0~YFZ*3Bv?!*{bL?eY1y(2N z*ofIf8}MLt;U7-1fX6@26&4>FITn38c{?*Hc;aw4mK_i82dfJ&`jxq|WHhqc`E?&o z4lz5vX=gMvjpU^0y6RUJ^cYd( zpcc+f46Io6lA8>Ohu?A*+(7~TY1pAGV6%c>ZaeY=VZ$Dj^y%3Kx{}2x-pg--RQ}VgvJpj1W3+@X#SY2E=_ijKw*Q_t(6Ra*g`^PS*R~2)r zVN5tIP#5;x&uL|yYPmzZc^@tgRu_Kq`wrl5jI-}>#B8OmbM!X`YpjVm+WEuJz=PGv zFE20a_4)^_rVaWBtiS*XUhw(z`TWeXYbd1|+8EvcB^q0SqIu|>1?Zj%l>7yn(VSV@ z$>Z^WbpFeKv;Wu3{|5a(E8x_R2nP8WwQKAcgPGAZ$m33K-2a$r&RMT%&cr|Ie}l;g y^^%CV|NH)jdEzpE9P?zo{)c%r+}Arb%!GN;*7$X6Bf~MT*6aWE=G(v7|9=7Yt6nky literal 0 HcmV?d00001 diff --git a/programs/cmm/installer/installation.c b/programs/cmm/installer/installation.c new file mode 100644 index 0000000000..bab32e5121 --- /dev/null +++ b/programs/cmm/installer/installation.c @@ -0,0 +1,102 @@ + +void InstallationLoop() +{ + byte id, key, started=false; + goto _INSTALL_DRAW; + + loop() switch(WaitEvent()) + { + case evButton: + id=GetButtonID(); + if(id == 1) ExitProcess(); + if (id == 11) RunProgram("/sys/htmlv", "http://kolibri-n.org/donate.php"); + if (id == 10) HalloLoop(); + break; + case evKey: + key = GetKey(); + break; + + case evReDraw: _INSTALL_DRAW: + if !(DefineWindow("Installation Started", "Stop")) break; + if (started) break; + started = true; + Install(); + } +} + + +char iclock[3]={1,2}; +void ShowProgress(dword text1) +{ + iclock[0]>2) return 0; //rolled_up + + DrawBar(0, 0, Form.cwidth, BLACK_H, 0); + DrawBar(0, BLACK_H, Form.cwidth, Form.cheight-BLACK_H, 0xFFFfff); + _PutImage(BLACK_H-LOGOW/2, BLACK_H-LOGOH/2, LOGOW,LOGOH, #logo); + WriteTextB(BLACK_H-LOGOW + LOGOW, BLACK_H-6/2, 0x90, 0xFFFfff, wtitle); + DrawCaptButton(Form.cwidth-107, Form.cheight-40, 90, 24, 10, sc.work_button, sc.work_button_text,wbutton); + return 1; +} + +#include "copyf.c" +#include "tmp_add.c" +#include "hallo.c"; +#include "installation.c"; + +void main() +{ + mem_Init(); + if (load_dll2(boxlib, #box_lib_init,0)!=0) notify("Error while loading library /rd/1/lib/box_lib.obj"); + SetEventMask(0x27); + program_path[strrchr(#program_path, '/')] = 0x0; + HalloLoop(); +} + + +stop: \ No newline at end of file diff --git a/programs/cmm/installer/main.lst b/programs/cmm/installer/main.lst new file mode 100644 index 0000000000..0488fef23a --- /dev/null +++ b/programs/cmm/installer/main.lst @@ -0,0 +1,4363 @@ +SPHINX/SHEKER C-- One Pass Disassembler. Version 0.239c b26 Apr 27 2007 + +..\lib\kolibri.h 6: char os_name[8] = {'M','E','N','U','E','T','0','1'}; +00000000 4D454E5545543031 db 4Dh,45h,4Eh,55h,45h,54h,30h,31h + +..\lib\kolibri.h 7: dword os_version = 0x00000001; +00000008 01000000 dd 1 + +..\lib\kolibri.h 8: dword start_addr = #main; +0000000C 80250000 dd 2580h + +..\lib\kolibri.h 9: dword final_addr = #stop+32; +00000010 1E260000 dd 261Eh + +..\lib\kolibri.h 10: dword alloc_mem = MEMSIZE; +00000014 00100A00 dd 0A1000h + +..\lib\kolibri.h 11: dword x86esp_reg = MEMSIZE; +00000018 00100A00 dd 0A1000h + +..\lib\kolibri.h 12: dword I_Param = #param; +0000001C 3E2C0000 dd 2C3Eh + +..\lib\kolibri.h 13: dword I_Path = #program_path; +00000020 3E3C0000 dd 3C3Eh + +..\lib\kolibri.h 41: void mouse::get() +00000024 55 push ebp +00000025 89E5 mov ebp,esp + +..\lib\kolibri.h 43: EAX = 37; +00000027 6A25 push 25h +00000029 58 pop eax + +..\lib\kolibri.h 44: EBX = 1; +0000002A 31DB xor ebx,ebx +0000002C 43 inc ebx + +..\lib\kolibri.h 45: $int 0x40 +0000002D CD40 int 40h + +..\lib\kolibri.h 46: $mov ebx, eax +0000002F 89C3 mov ebx,eax + +..\lib\kolibri.h 47: $shr eax, 16 +00000031 C1E810 shr eax,10h + +..\lib\kolibri.h 48: $and ebx,0x0000FFFF +00000034 81E3FFFF0000 and ebx,0FFFFh + +..\lib\kolibri.h 49: x = EAX; +0000003A 8B7508 mov esi,[ebp+8] +0000003D 8906 mov [esi],eax + +..\lib\kolibri.h 50: y = EBX; +0000003F 895E04 mov [esi+4],ebx + +..\lib\kolibri.h 51: EAX = 37; +00000042 6A25 push 25h +00000044 58 pop eax + +..\lib\kolibri.h 52: EBX = 2; +00000045 6A02 push 2 +00000047 5B pop ebx + +..\lib\kolibri.h 53: $int 0x40 +00000048 CD40 int 40h + +..\lib\kolibri.h 54: $mov ebx, eax +0000004A 89C3 mov ebx,eax + +..\lib\kolibri.h 55: $and eax, 0x00000001 +0000004C 83E001 and eax,1 + +..\lib\kolibri.h 56: $shr ebx, 1 +0000004F D1EB shr ebx,1 + +..\lib\kolibri.h 57: $and ebx, 0x00000001 +00000051 83E301 and ebx,1 + +..\lib\kolibri.h 58: lkm = EAX; +00000054 8B7508 mov esi,[ebp+8] +00000057 894608 mov [esi+8],eax + +..\lib\kolibri.h 59: pkm = EBX; +0000005A 895E0C mov [esi+0Ch],ebx + +..\lib\kolibri.h 60: EAX = 37; //஫ +0000005D 6A25 push 25h +0000005F 58 pop eax + +..\lib\kolibri.h 61: EBX = 7; +00000060 6A07 push 7 +00000062 5B pop ebx + +..\lib\kolibri.h 62: $int 0x40 +00000063 CD40 int 40h + +..\lib\kolibri.h 63: $mov ebx, eax +00000065 89C3 mov ebx,eax + +..\lib\kolibri.h 64: $shr eax, 16 +00000067 C1E810 shr eax,10h + +..\lib\kolibri.h 65: $and ebx,0x0000FFFF +0000006A 81E3FFFF0000 and ebx,0FFFFh + +..\lib\kolibri.h 67: vert = EBX; +00000070 8B7508 mov esi,[ebp+8] +00000073 895E14 mov [esi+14h],ebx +00000076 5D pop ebp +00000077 C20400 ret 4 + +..\lib\kolibri.h 78: void system_colors::get() +0000007A 55 push ebp +0000007B 89E5 mov ebp,esp + +..\lib\kolibri.h 80: EAX = 48; +0000007D 6A30 push 30h +0000007F 58 pop eax + +..\lib\kolibri.h 81: EBX = 3; +00000080 6A03 push 3 +00000082 5B pop ebx + +..\lib\kolibri.h 82: ECX = #frame; +00000083 8B4D08 mov ecx,[ebp+8] + +..\lib\kolibri.h 83: EDX = 40; +00000086 6A28 push 28h +00000088 5A pop edx + +..\lib\kolibri.h 84: $int 0x40 +00000089 CD40 int 40h +0000008B 5D pop ebp +0000008C C20400 ret 4 + +..\lib\kolibri.h 362: void DefineAndDrawWindow(dword x,y, sizeX,sizeY, byte WindowType,dword WindowAreaColor, EDI, ESI) +0000008F 55 push ebp +00000090 89E5 mov ebp,esp + +..\lib\kolibri.h 364: EAX = 12; // function 12:tell os about windowdraw +00000092 6A0C push 0Ch +00000094 58 pop eax + +..\lib\kolibri.h 365: EBX = 1; +00000095 31DB xor ebx,ebx +00000097 43 inc ebx + +..\lib\kolibri.h 366: $int 0x40 +00000098 CD40 int 40h + +..\lib\kolibri.h 368: EAX = 0; +0000009A 31C0 xor eax,eax + +..\lib\kolibri.h 369: EBX = x << 16 + sizeX; +0000009C 8B5D1C mov ebx,[ebp+1Ch] +0000009F C1E310 shl ebx,10h +000000A2 035D14 add ebx,[ebp+14h] + +..\lib\kolibri.h 370: ECX = y << 16 + sizeY; +000000A5 8B4D18 mov ecx,[ebp+18h] +000000A8 C1E110 shl ecx,10h +000000AB 034D10 add ecx,[ebp+10h] + +..\lib\kolibri.h 371: EDX = WindowType << 24 | WindowAreaColor; +000000AE 0FB6550C movzx edx,[ebp+0Ch] +000000B2 C1E218 shl edx,18h +000000B5 0B5508 or edx,[ebp+8] + +..\lib\kolibri.h 372: $int 0x40 +000000B8 CD40 int 40h + +..\lib\kolibri.h 374: EAX = 12; // function 12:tell os about windowdraw +000000BA 6A0C push 0Ch +000000BC 58 pop eax + +..\lib\kolibri.h 375: EBX = 2; +000000BD 6A02 push 2 +000000BF 5B pop ebx + +..\lib\kolibri.h 376: $int 0x40 +000000C0 CD40 int 40h +000000C2 5D pop ebp +000000C3 C21800 ret 18h + +..\lib\kolibri.h 392: void WriteTextB(dword x,y,byte fontType, dword color, EDX) +000000C6 55 push ebp +000000C7 89E5 mov ebp,esp + +..\lib\kolibri.h 394: EAX = 4; +000000C9 6A04 push 4 +000000CB 58 pop eax + +..\lib\kolibri.h 395: EBX = x<<16+y; +000000CC 8B5D14 mov ebx,[ebp+14h] +000000CF C1E310 shl ebx,10h +000000D2 035D10 add ebx,[ebp+10h] + +..\lib\kolibri.h 396: ECX = fontType<<24+color; +000000D5 0FB64D0C movzx ecx,[ebp+0Ch] +000000D9 C1E118 shl ecx,18h +000000DC 034D08 add ecx,[ebp+8] + +..\lib\kolibri.h 397: ESI = 0; +000000DF 31F6 xor esi,esi + +..\lib\kolibri.h 398: $int 0x40; +000000E1 CD40 int 40h + +..\lib\kolibri.h 399: $add ebx, 1<<16 +000000E3 81C300000100 add ebx,10000h + +..\lib\kolibri.h 400: $int 0x40 +000000E9 CD40 int 40h +000000EB 5D pop ebp +000000EC C21000 ret 10h + +..\lib\kolibri.h 403: void WriteText(dword x,y,byte fontType, dword color, EDX) +000000EF 55 push ebp +000000F0 89E5 mov ebp,esp + +..\lib\kolibri.h 405: EAX = 4; +000000F2 6A04 push 4 +000000F4 58 pop eax + +..\lib\kolibri.h 406: EBX = x<<16+y; +000000F5 8B5D14 mov ebx,[ebp+14h] +000000F8 C1E310 shl ebx,10h +000000FB 035D10 add ebx,[ebp+10h] + +..\lib\kolibri.h 407: ECX = fontType<<24+color; +000000FE 0FB64D0C movzx ecx,[ebp+0Ch] +00000102 C1E118 shl ecx,18h +00000105 034D08 add ecx,[ebp+8] + +..\lib\kolibri.h 408: ESI = 0; +00000108 31F6 xor esi,esi + +..\lib\kolibri.h 409: $int 0x40; +0000010A CD40 int 40h +0000010C 5D pop ebp +0000010D C21000 ret 10h + +..\lib\kolibri.h 412: void WriteNumber(dword x,y,byte fontType, dword color, count, ECX) +00000110 55 push ebp +00000111 89E5 mov ebp,esp + +..\lib\kolibri.h 414: EAX = 47; +00000113 6A2F push 2Fh +00000115 58 pop eax + +..\lib\kolibri.h 415: EBX = count<<16; +00000116 8B5D08 mov ebx,[ebp+8] +00000119 C1E310 shl ebx,10h + +..\lib\kolibri.h 416: EDX = x<<16+y; +0000011C 8B5518 mov edx,[ebp+18h] +0000011F C1E210 shl edx,10h +00000122 035514 add edx,[ebp+14h] + +..\lib\kolibri.h 417: ESI = fontType<<24+color; +00000125 0FB67510 movzx esi,[ebp+10h] +00000129 C1E618 shl esi,18h +0000012C 03750C add esi,[ebp+0Ch] + +..\lib\kolibri.h 418: $int 0x40; +0000012F CD40 int 40h +00000131 5D pop ebp +00000132 C21400 ret 14h + +..\lib\kolibri.h 421: void CopyScreen(dword EBX, x, y, w, h) +00000135 55 push ebp +00000136 89E5 mov ebp,esp + +..\lib\kolibri.h 423: EAX = 36; +00000138 6A24 push 24h +0000013A 58 pop eax + +..\lib\kolibri.h 424: ECX = w << 16 + h; +0000013B 8B4D0C mov ecx,[ebp+0Ch] +0000013E C1E110 shl ecx,10h +00000141 034D08 add ecx,[ebp+8] + +..\lib\kolibri.h 425: EDX = x << 16 + y; +00000144 8B5514 mov edx,[ebp+14h] +00000147 C1E210 shl edx,10h +0000014A 035510 add edx,[ebp+10h] + +..\lib\kolibri.h 426: $int 0x40; +0000014D CD40 int 40h +0000014F 5D pop ebp +00000150 C21000 ret 10h + +..\lib\kolibri.h 429: dword GetPixelColor(dword x, x_size, y) +00000153 55 push ebp +00000154 89E5 mov ebp,esp + +..\lib\kolibri.h 431: $mov eax, 35 +00000156 B823000000 mov eax,23h + +..\lib\kolibri.h 432: EBX= y*x_size+x; +0000015B 8B5D08 mov ebx,[ebp+8] +0000015E 0FAF5D0C imul ebx,[ebp+0Ch] +00000162 035D10 add ebx,[ebp+10h] + +..\lib\kolibri.h 433: $int 0x40 +00000165 CD40 int 40h +00000167 5D pop ebp +00000168 C20C00 ret 0Ch + +..\lib\kolibri.h 437: void _PutImage(dword x,y, w,h, EBX) +0000016B 55 push ebp +0000016C 89E5 mov ebp,esp + +..\lib\kolibri.h 439: EAX = 7; +0000016E 6A07 push 7 +00000170 58 pop eax + +..\lib\kolibri.h 440: ECX = w<<16+h; +00000171 8B4D0C mov ecx,[ebp+0Ch] +00000174 C1E110 shl ecx,10h +00000177 034D08 add ecx,[ebp+8] + +..\lib\kolibri.h 441: EDX = x<<16+y; +0000017A 8B5514 mov edx,[ebp+14h] +0000017D C1E210 shl edx,10h +00000180 035510 add edx,[ebp+10h] + +..\lib\kolibri.h 442: $int 0x40 +00000183 CD40 int 40h +00000185 5D pop ebp +00000186 C21000 ret 10h + +..\lib\kolibri.h 445: void PutPaletteImage(dword EBX,w,h,x,y,ESI,EDI) +00000189 55 push ebp +0000018A 89E5 mov ebp,esp + +..\lib\kolibri.h 447: EAX = 65; +0000018C 6A41 push 41h +0000018E 58 pop eax + +..\lib\kolibri.h 448: ECX = w<<16+h; +0000018F 8B4D14 mov ecx,[ebp+14h] +00000192 C1E110 shl ecx,10h +00000195 034D10 add ecx,[ebp+10h] + +..\lib\kolibri.h 449: EDX = x<<16+y; +00000198 8B550C mov edx,[ebp+0Ch] +0000019B C1E210 shl edx,10h +0000019E 035508 add edx,[ebp+8] + +..\lib\kolibri.h 450: EBP = 0; +000001A1 31ED xor ebp,ebp + +..\lib\kolibri.h 451: $int 0x40 +000001A3 CD40 int 40h +000001A5 5D pop ebp +000001A6 C21000 ret 10h + +..\lib\kolibri.h 460: void DrawBar(dword x,y,w,h,EDX) +000001A9 55 push ebp +000001AA 89E5 mov ebp,esp + +..\lib\kolibri.h 462: if (h<=0) || (h>60000) || (w<=0) || (w>60000) return; //bad boy :) +000001AC 837D0800 cmp dword ptr [ebp+8],0 +000001B0 7618 jbe 1CAh +000001B2 817D0860EA0000 cmp dword ptr [ebp+8],0EA60h +000001B9 770F ja 1CAh +000001BB 837D0C00 cmp dword ptr [ebp+0Ch],0 +000001BF 7609 jbe 1CAh +000001C1 817D0C60EA0000 cmp dword ptr [ebp+0Ch],0EA60h +000001C8 7605 jbe 1CFh +000001CA E917000000 jmp 1E6h + +..\lib\kolibri.h 463: EAX = 13; +000001CF 6A0D push 0Dh +000001D1 58 pop eax + +..\lib\kolibri.h 464: EBX = x<<16+w; +000001D2 8B5D14 mov ebx,[ebp+14h] +000001D5 C1E310 shl ebx,10h +000001D8 035D0C add ebx,[ebp+0Ch] + +..\lib\kolibri.h 465: ECX = y<<16+h; +000001DB 8B4D10 mov ecx,[ebp+10h] +000001DE C1E110 shl ecx,10h +000001E1 034D08 add ecx,[ebp+8] + +..\lib\kolibri.h 466: $int 0x40 +000001E4 CD40 int 40h +000001E6 5D pop ebp +000001E7 C21000 ret 10h + +..\lib\kolibri.h 469: void DefineButton(dword x,y,w,h,EDX,ESI) +000001EA 55 push ebp +000001EB 89E5 mov ebp,esp + +..\lib\kolibri.h 471: EAX = 8; +000001ED 6A08 push 8 +000001EF 58 pop eax + +..\lib\kolibri.h 472: $push edx +000001F0 52 push edx + +..\lib\kolibri.h 473: EDX += BT_DEL; +000001F1 8D9200000080 lea edx,[edx-80000000h] + +..\lib\kolibri.h 474: $int 0x40; +000001F7 CD40 int 40h + +..\lib\kolibri.h 475: $pop edx +000001F9 5A pop edx + +..\lib\kolibri.h 476: EBX = x<<16+w; +000001FA 8B5D14 mov ebx,[ebp+14h] +000001FD C1E310 shl ebx,10h +00000200 035D0C add ebx,[ebp+0Ch] + +..\lib\kolibri.h 477: ECX = y<<16+h; +00000203 8B4D10 mov ecx,[ebp+10h] +00000206 C1E110 shl ecx,10h +00000209 034D08 add ecx,[ebp+8] + +..\lib\kolibri.h 478: $int 0x40 +0000020C CD40 int 40h +0000020E 5D pop ebp +0000020F C21000 ret 10h + +..\lib\kolibri.h 481: void UnsafeDefineButton(dword x,y,w,h,EDX,ESI) +00000212 55 push ebp +00000213 89E5 mov ebp,esp + +..\lib\kolibri.h 483: EAX = 8; +00000215 6A08 push 8 +00000217 58 pop eax + +..\lib\kolibri.h 484: EBX = x<<16+w; +00000218 8B5D14 mov ebx,[ebp+14h] +0000021B C1E310 shl ebx,10h +0000021E 035D0C add ebx,[ebp+0Ch] + +..\lib\kolibri.h 485: ECX = y<<16+h; +00000221 8B4D10 mov ecx,[ebp+10h] +00000224 C1E110 shl ecx,10h +00000227 034D08 add ecx,[ebp+8] + +..\lib\kolibri.h 486: $int 0x40 +0000022A CD40 int 40h +0000022C 5D pop ebp +0000022D C21000 ret 10h + +..\lib\strings.h 149: int chrnum(dword searchin, char symbol) +00000230 55 push ebp +00000231 89E5 mov ebp,esp +00000233 6A00 push 0 + +..\lib\strings.h 152: while(DSBYTE[searchin]) +00000235 E914000000 jmp 24Eh + +..\lib\strings.h 154: if (DSBYTE[searchin] == symbol) num++; +0000023A 8A4508 mov al,[ebp+8] +0000023D 8B750C mov esi,[ebp+0Ch] +00000240 3806 cmp [esi],al +00000242 0F8503000000 jnz 24Bh +00000248 FF45FC inc dword ptr [ebp-4] + +..\lib\strings.h 155: searchin++; +0000024B FF450C inc dword ptr [ebp+0Ch] + +..\lib\strings.h 152: while(DSBYTE[searchin]) +0000024E 8B750C mov esi,[ebp+0Ch] +00000251 803E00 cmp byte ptr [esi],0 +00000254 75E4 jne 23Ah + +..\lib\strings.h 157: return num; +00000256 8B45FC mov eax,[ebp-4] +00000259 C9 leave +0000025A C20800 ret 8 + +..\lib\strings.h 201: dword strstri(dword searchin, usestr_s) +0000025D 55 push ebp +0000025E 89E5 mov ebp,esp +00000260 FF7508 push dword ptr [ebp+8] +00000263 51 push ecx +00000264 51 push ecx + +..\lib\strings.h 206: while(DSBYTE[searchin]) +00000265 E96D000000 jmp 2D7h + +..\lib\strings.h 208: si = DSBYTE[searchin]; +0000026A 8B750C mov esi,[ebp+0Ch] +0000026D 8A06 mov al,[esi] +0000026F 8845F8 mov [ebp-8],al + +..\lib\strings.h 209: ue = DSBYTE[usestr_e]; +00000272 8B75FC mov esi,[ebp-4] +00000275 8A06 mov al,[esi] +00000277 8845F4 mov [ebp-0Ch],al + +..\lib\strings.h 210: if (si>='A') && (si<='Z') si +=32; +0000027A 807DF841 cmp byte ptr [ebp-8],41h +0000027E 0F8C0E000000 jl 292h +00000284 807DF85A cmp byte ptr [ebp-8],5Ah +00000288 0F8F04000000 jg 292h +0000028E 8045F820 add byte ptr [ebp-8],20h + +..\lib\strings.h 211: if (ue>='A') && (ue<='Z') ue +=32; +00000292 3C41 cmp al,41h +00000294 0F8C0C000000 jl 2A6h +0000029A 3C5A cmp al,5Ah +0000029C 0F8F04000000 jg 2A6h +000002A2 8045F420 add byte ptr [ebp-0Ch],20h + +..\lib\strings.h 212: if (si == ue) usestr_e++; else usestr_e = usestr_s; +000002A6 8A45F4 mov al,[ebp-0Ch] +000002A9 3845F8 cmp [ebp-8],al +000002AC 0F8508000000 jnz 2BAh +000002B2 FF45FC inc dword ptr [ebp-4] +000002B5 E906000000 jmp 2C0h +000002BA 8B4508 mov eax,[ebp+8] +000002BD 8945FC mov [ebp-4],eax + +..\lib\strings.h 213: searchin++; +000002C0 FF450C inc dword ptr [ebp+0Ch] + +..\lib\strings.h 214: if (DSBYTE[usestr_e]=='\0') return searchin; +000002C3 8B75FC mov esi,[ebp-4] +000002C6 803E00 cmp byte ptr [esi],0 +000002C9 0F8508000000 jnz 2D7h +000002CF 8B450C mov eax,[ebp+0Ch] +000002D2 E90A000000 jmp 2E1h + +..\lib\strings.h 206: while(DSBYTE[searchin]) +000002D7 8B750C mov esi,[ebp+0Ch] +000002DA 803E00 cmp byte ptr [esi],0 +000002DD 758B jne 26Ah + +..\lib\strings.h 216: return 0; +000002DF 31C0 xor eax,eax +000002E1 C9 leave +000002E2 C20800 ret 8 + +..\lib\strings.h 220: void strcpyb(dword search_in, copyin, startstr, endstr) +000002E5 C8080000 enter 8,0 + +..\lib\strings.h 223: startp = strstr(search_in, startstr) + strlen(startstr); +000002E9 8B5D14 mov ebx,[ebp+14h] +000002EC 8B550C mov edx,[ebp+0Ch] +000002EF E849230000 call 263Dh +000002F4 50 push eax +000002F5 8B7D0C mov edi,[ebp+0Ch] +000002F8 E822240000 call 271Fh +000002FD 5A pop edx +000002FE 01D0 add eax,edx +00000300 8945FC mov [ebp-4],eax + +..\lib\strings.h 224: endp = strstri(startp, endstr); +00000303 50 push eax +00000304 FF7508 push dword ptr [ebp+8] +00000307 E851FFFFFF call 25Dh +0000030C 8945F8 mov [ebp-8],eax + +..\lib\strings.h 225: if (startp==endp) return; +0000030F 3945FC cmp [ebp-4],eax +00000312 0F841E000000 jz 336h + +..\lib\strings.h 228: DSBYTE[copyin] = DSBYTE[startp]; +00000318 8B75FC mov esi,[ebp-4] +0000031B 8A06 mov al,[esi] +0000031D 8B7510 mov esi,[ebp+10h] +00000320 8806 mov [esi],al + +..\lib\strings.h 229: copyin++; +00000322 FF4510 inc dword ptr [ebp+10h] + +..\lib\strings.h 230: startp++; +00000325 FF45FC inc dword ptr [ebp-4] + +..\lib\strings.h 232: while (startp='0') && (ch<='9')) ch -= '0'; +0000052E 807DF430 cmp byte ptr [ebp-0Ch],30h +00000532 7C0A jl 53Eh +00000534 807DF439 cmp byte ptr [ebp-0Ch],39h +00000538 7F04 jg 53Eh +0000053A 806DF430 sub byte ptr [ebp-0Ch],30h + +..\lib\encoding.h 167: IF ((ch>='A') && (ch<='F')) ch -= 'A'-10; +0000053E 807DF441 cmp byte ptr [ebp-0Ch],41h +00000542 7C0A jl 54Eh +00000544 807DF446 cmp byte ptr [ebp-0Ch],46h +00000548 7F04 jg 54Eh +0000054A 806DF437 sub byte ptr [ebp-0Ch],37h + +..\lib\encoding.h 168: IF ((ch>='a') && (ch<='f')) ch -= 'a'-10; +0000054E 807DF461 cmp byte ptr [ebp-0Ch],61h +00000552 7C0A jl 55Eh +00000554 807DF466 cmp byte ptr [ebp-0Ch],66h +00000558 7F04 jg 55Eh +0000055A 806DF457 sub byte ptr [ebp-0Ch],57h + +..\lib\encoding.h 169: symbol = symbol*0x10 + ch; +0000055E 8B45F8 mov eax,[ebp-8] +00000561 C1E004 shl eax,4 +00000564 0FBE4DF4 movsx ecx,[ebp-0Ch] +00000568 01C8 add eax,ecx +0000056A 8945F8 mov [ebp-8],eax + +..\lib\encoding.h 162: j++; +0000056D FF45FC inc dword ptr [ebp-4] +00000570 EB9E jmp short 510h + +..\lib\encoding.h 171: wintodos(#symbol); +00000572 8D75F8 lea esi,[ebp-8] +00000575 E800210000 call 267Ah + +..\lib\encoding.h 172: AL=symbol; +0000057A 8A45F8 mov al,[ebp-8] +0000057D C9 leave +0000057E C20400 ret 4 + +..\lib\file_system.h 31: signed int RunProgram(dword run_path, run_param) +00000581 55 push ebp +00000582 89E5 mov ebp,esp + +..\lib\file_system.h 33: run_file_70.func = 7; +00000584 6A07 push 7 +00000586 8F053E4C0000 pop dword ptr [4C3Eh] + +..\lib\file_system.h 34: run_file_70.param1 = +0000058C 31C0 xor eax,eax +0000058E A2524C0000 mov [4C52h],al +00000593 A34E4C0000 mov [4C4Eh],eax +00000598 A34A4C0000 mov [4C4Ah],eax +0000059D A3424C0000 mov [4C42h],eax + +..\lib\file_system.h 38: run_file_70.param2 = run_param; +000005A2 8B4508 mov eax,[ebp+8] +000005A5 A3464C0000 mov [4C46h],eax + +..\lib\file_system.h 39: run_file_70.name = run_path; +000005AA 8B450C mov eax,[ebp+0Ch] +000005AD A3534C0000 mov [4C53h],eax + +..\lib\file_system.h 40: $mov eax,70 +000005B2 B846000000 mov eax,46h + +..\lib\file_system.h 41: $mov ebx,#run_file_70.func +000005B7 BB3E4C0000 mov ebx,4C3Eh + +..\lib\file_system.h 42: $int 0x40 +000005BC CD40 int 40h +000005BE 5D pop ebp +000005BF C20800 ret 8 + +..\lib\file_system.h 226: void notify(dword notify_param) +000005C2 55 push ebp +000005C3 89E5 mov ebp,esp + +..\lib\file_system.h 228: RunProgram("@notify", notify_param); +000005C5 68D6050000 push 5D6h +000005CA FF7508 push dword ptr [ebp+8] +000005CD E8AFFFFFFF call 581h +000005D2 5D pop ebp +000005D3 C20400 ret 4 + +000005D6 406E6F7469667900 db '@notify',0 + +..\lib\mem.h 4: $push ebx +000005DE 53 push ebx + +..\lib\mem.h 5: $mov eax, 68 +000005DF B844000000 mov eax,44h + +..\lib\mem.h 6: $mov ebx, 11 +000005E4 BB0B000000 mov ebx,0Bh + +..\lib\mem.h 7: $int 0x40 +000005E9 CD40 int 40h + +..\lib\mem.h 9: $pop ebx +000005EB 5B pop ebx + +..\lib\mem.h 10: return EAX; +000005EC C3 ret + +..\lib\mem.h 13: dword malloc(dword size) +000005ED 55 push ebp +000005EE 89E5 mov ebp,esp + +..\lib\mem.h 15: $push ebx +000005F0 53 push ebx + +..\lib\mem.h 16: $push ecx +000005F1 51 push ecx + +..\lib\mem.h 17: $mov eax, 68 +000005F2 B844000000 mov eax,44h + +..\lib\mem.h 18: $mov ebx, 12 +000005F7 BB0C000000 mov ebx,0Ch + +..\lib\mem.h 19: $mov ecx, size +000005FC 8B4D08 mov ecx,[ebp+8] + +..\lib\mem.h 20: $int 0x40 +000005FF CD40 int 40h + +..\lib\mem.h 22: $pop ecx +00000601 59 pop ecx + +..\lib\mem.h 23: $pop ebx +00000602 5B pop ebx + +..\lib\mem.h 24: return EAX; +00000603 5D pop ebp +00000604 C20400 ret 4 + +..\lib\mem.h 27: stdcall dword realloc(dword mptr, size) +00000607 55 push ebp +00000608 89E5 mov ebp,esp + +..\lib\mem.h 29: $push ebx +0000060A 53 push ebx + +..\lib\mem.h 30: $push ecx +0000060B 51 push ecx + +..\lib\mem.h 31: $push edx +0000060C 52 push edx + +..\lib\mem.h 32: $mov eax, 68 +0000060D B844000000 mov eax,44h + +..\lib\mem.h 33: $mov ebx, 20 +00000612 BB14000000 mov ebx,14h + +..\lib\mem.h 34: $mov ecx, size +00000617 8B4D0C mov ecx,[ebp+0Ch] + +..\lib\mem.h 35: $mov edx, mptr +0000061A 8B5508 mov edx,[ebp+8] + +..\lib\mem.h 36: $int 0x40 +0000061D CD40 int 40h + +..\lib\mem.h 38: $pop edx +0000061F 5A pop edx + +..\lib\mem.h 39: $pop ecx +00000620 59 pop ecx + +..\lib\mem.h 40: $pop ebx +00000621 5B pop ebx + +..\lib\mem.h 41: return EAX; +00000622 5D pop ebp +00000623 C20800 ret 8 + +..\lib\mem.h 44: dword free(dword mptr) +00000626 55 push ebp +00000627 89E5 mov ebp,esp + +..\lib\mem.h 46: $push eax +00000629 50 push eax + +..\lib\mem.h 47: $push ebx +0000062A 53 push ebx + +..\lib\mem.h 48: $push ecx +0000062B 51 push ecx + +..\lib\mem.h 49: $mov eax, 68 +0000062C B844000000 mov eax,44h + +..\lib\mem.h 50: $mov ebx, 13 +00000631 BB0D000000 mov ebx,0Dh + +..\lib\mem.h 51: $mov ecx, mptr +00000636 8B4D08 mov ecx,[ebp+8] + +..\lib\mem.h 52: $test ecx, ecx +00000639 85C9 test ecx,ecx + +..\lib\mem.h 53: $jz end0 +0000063B 7402 je 63Fh + +..\lib\mem.h 54: $int 0x40 +0000063D CD40 int 40h + +..\lib\mem.h 56: $pop ecx +0000063F 59 pop ecx + +..\lib\mem.h 57: $pop ebx +00000640 5B pop ebx + +..\lib\mem.h 58: $pop eax +00000641 58 pop eax + +..\lib\mem.h 59: return 0; +00000642 31C0 xor eax,eax +00000644 5D pop ebp +00000645 C20400 ret 4 + +..\lib\dll.h 2: char a_libdir[43] = "/sys/lib/\0"; +00000648 2F7379732F6C69622F000000 db '/sys/lib/',0,0,0 +00000654 000000000000000000000000 db 0,0,0,0,0,0,0,0,0,0,0,0 +00000660 000000000000000000000000 db 0,0,0,0,0,0,0,0,0,0,0,0 +0000066C 00000000000000 db 0,0,0,0,0,0,0 + +..\lib\dll.h 6: int dll_Load(dword import_table) +00000673 55 push ebp +00000674 89E5 mov ebp,esp + +..\lib\dll.h 8: $mov esi, import_table +00000676 8B7508 mov esi,[ebp+8] + +..\lib\dll.h 9: @next_lib: $mov edx, DSDWORD[esi] +00000679 8B16 mov edx,[esi] + +..\lib\dll.h 10: $or edx,edx +0000067B 0BD2 or edx,edx + +..\lib\dll.h 11: $jz exit_ +0000067D 744B je 6CAh + +..\lib\dll.h 12: $push esi +0000067F 56 push esi + +..\lib\dll.h 13: $mov esi,DSDWORD[esi+4] +00000680 8B7604 mov esi,[esi+4] + +..\lib\dll.h 14: $mov edi,#a_libdir +00000683 BF48060000 mov edi,648h + +..\lib\dll.h 16: $push edi +00000688 57 push edi + +..\lib\dll.h 17: $push esi +00000689 56 push esi + +..\lib\dll.h 18: EAX=strlen(#a_libdir); +0000068A BF48060000 mov edi,648h +0000068F E88B200000 call 271Fh + +..\lib\dll.h 19: $pop esi +00000694 5E pop esi + +..\lib\dll.h 20: $pop edi +00000695 5F pop edi + +..\lib\dll.h 21: $add edi, eax //9 +00000696 03F8 add edi,eax + +..\lib\dll.h 23: @loc01: $lodsb +00000698 AC lodsb + +..\lib\dll.h 24: $stosb +00000699 AA stosb + +..\lib\dll.h 25: $or al,al +0000069A 0AC0 or al,al + +..\lib\dll.h 26: $jnz loc01 +0000069C 75FA jne 698h + +..\lib\dll.h 33: $mov eax, 68 +0000069E B844000000 mov eax,44h + +..\lib\dll.h 34: $mov ebx, 19 +000006A3 BB13000000 mov ebx,13h + +..\lib\dll.h 35: $mov ecx,#a_libdir +000006A8 B948060000 mov ecx,648h + +..\lib\dll.h 36: $int 0x40 +000006AD CD40 int 40h + +..\lib\dll.h 38: $or eax,eax +000006AF 0BC0 or eax,eax + +..\lib\dll.h 39: $jz fail +000006B1 741F je 6D2h + +..\lib\dll.h 41: dll_Link(EAX, EDX); +000006B3 50 push eax +000006B4 52 push edx +000006B5 E825000000 call 6DFh + +..\lib\dll.h 42: $push eax +000006BA 50 push eax + +..\lib\dll.h 43: $mov eax, DSDWORD [eax] +000006BB 8B00 mov eax,[eax] + +..\lib\dll.h 44: $cmp DSDWORD [eax], 'lib_' +000006BD 81385F62696C cmp dword ptr [eax],6C69625Fh + +..\lib\dll.h 45: $pop eax +000006C3 58 pop eax + +..\lib\dll.h 54: $pop esi +000006C4 5E pop esi + +..\lib\dll.h 55: $add esi,8 +000006C5 83C608 add esi,8 + +..\lib\dll.h 56: $jmp next_lib +000006C8 EBAF jmp short 679h + +..\lib\dll.h 57: @exit_: $xor eax,eax +000006CA 33C0 xor eax,eax + +..\lib\dll.h 58: return 0; +000006CC 31C0 xor eax,eax +000006CE 5D pop ebp +000006CF C20400 ret 4 + +..\lib\dll.h 59: @fail: $add esp,4 +000006D2 83C404 add esp,4 + +..\lib\dll.h 60: $xor eax,eax +000006D5 33C0 xor eax,eax + +..\lib\dll.h 61: $inc eax +000006D7 40 inc eax + +..\lib\dll.h 62: return -1; +000006D8 83C8FF or eax,0FFFFFFFFh +000006DB 5D pop ebp +000006DC C20400 ret 4 + +..\lib\dll.h 66: void dll_Link(dword exp, imp) +000006DF 55 push ebp +000006E0 89E5 mov ebp,esp + +..\lib\dll.h 68: $push eax +000006E2 50 push eax + +..\lib\dll.h 69: $mov esi, imp +000006E3 8B7508 mov esi,[ebp+8] + +..\lib\dll.h 70: $test esi, esi +000006E6 85F6 test esi,esi + +..\lib\dll.h 71: $jz done +000006E8 741F je 709h + +..\lib\dll.h 72: @next: $lodsd +000006EA AD lodsd + +..\lib\dll.h 73: $test eax,eax +000006EB 85C0 test eax,eax + +..\lib\dll.h 74: $jz done +000006ED 741A je 709h + +..\lib\dll.h 77: dll_GetProcAddress(exp,EAX); +000006EF FF750C push dword ptr [ebp+0Ch] +000006F2 50 push eax +000006F3 E839000000 call 731h + +..\lib\dll.h 78: $or eax,eax +000006F8 0BC0 or eax,eax + +..\lib\dll.h 79: $jz loc03 +000006FA 7405 je 701h + +..\lib\dll.h 81: $mov DSDWORD[esi-4],eax +000006FC 8946FC mov [esi-4],eax + +..\lib\dll.h 82: $jmp next +000006FF EBE9 jmp short 6EAh + +..\lib\dll.h 84: $mov DSDWORD[esp],0 +00000701 3EC7042400000000 mov dword ptr ds:[esp],0 + +..\lib\dll.h 85: @done: $pop eax +00000709 58 pop eax +0000070A 5D pop ebp +0000070B C20800 ret 8 + +..\lib\dll.h 89: void dll_Init(dword dllentry) +0000070E 55 push ebp +0000070F 89E5 mov ebp,esp + +..\lib\dll.h 91: $pushad +00000711 60 pushad + +..\lib\dll.h 92: EAX=#mem_Alloc; +00000712 B8ED050000 mov eax,5EDh + +..\lib\dll.h 93: EBX=#mem_Free; +00000717 BB26060000 mov ebx,626h + +..\lib\dll.h 94: ECX=#mem_ReAlloc; +0000071C B907060000 mov ecx,607h + +..\lib\dll.h 95: EDX=#dll_Load; +00000721 BA73060000 mov edx,673h + +..\lib\dll.h 96: DSDWORD [dllentry+4] stdcall (); +00000726 8B7508 mov esi,[ebp+8] +00000729 FF5604 call dword ptr [esi+4] + +..\lib\dll.h 97: $popad +0000072C 61 popad +0000072D 5D pop ebp +0000072E C20400 ret 4 + +..\lib\dll.h 101: dword dll_GetProcAddress(dword exp, sz_name) +00000731 55 push ebp +00000732 89E5 mov ebp,esp + +..\lib\dll.h 103: $push esi +00000734 56 push esi + +..\lib\dll.h 104: $mov edx, exp +00000735 8B550C mov edx,[ebp+0Ch] + +..\lib\dll.h 105: $xor eax,eax +00000738 33C0 xor eax,eax + +..\lib\dll.h 106: @next: $or edx,edx +0000073A 0BD2 or edx,edx + +..\lib\dll.h 107: $jz end_ +0000073C 741B je 759h + +..\lib\dll.h 108: $cmp edx,0 +0000073E 83FA00 cmp edx,0 + +..\lib\dll.h 109: $jz end_ +00000741 7416 je 759h + +..\lib\dll.h 110: strcmp(DSDWORD[EDX],sz_name); +00000743 8B32 mov esi,[edx] +00000745 8B7D08 mov edi,[ebp+8] +00000748 E8B11E0000 call 25FEh + +..\lib\dll.h 111: $test eax,eax +0000074D 85C0 test eax,eax + +..\lib\dll.h 112: $jz ok +0000074F 7405 je 756h + +..\lib\dll.h 113: $add edx,8 +00000751 83C208 add edx,8 + +..\lib\dll.h 114: $jmp next +00000754 EBE4 jmp short 73Ah + +..\lib\dll.h 116: $mov eax, DSDWORD[edx+4] +00000756 8B4204 mov eax,[edx+4] + +..\lib\dll.h 118: $pop esi +00000759 5E pop esi + +..\lib\dll.h 119: return EAX; +0000075A 5D pop ebp +0000075B C20800 ret 8 + +..\lib\dll.h 123: int load_dll2(dword dllname, import_table, byte need_init) +0000075E 55 push ebp +0000075F 89E5 mov ebp,esp + +..\lib\dll.h 127: $mov eax, 68 +00000761 B844000000 mov eax,44h + +..\lib\dll.h 128: $mov ebx, 19 +00000766 BB13000000 mov ebx,13h + +..\lib\dll.h 129: ECX=dllname; +0000076B 8B4D10 mov ecx,[ebp+10h] + +..\lib\dll.h 130: $int 0x40 +0000076E CD40 int 40h + +..\lib\dll.h 131: $test eax, eax +00000770 85C0 test eax,eax + +..\lib\dll.h 132: $jz exit01 +00000772 7442 je 7B6h + +..\lib\dll.h 135: $mov edx,eax +00000774 89C2 mov edx,eax + +..\lib\dll.h 136: ESI=import_table; +00000776 8B750C mov esi,[ebp+0Ch] + +..\lib\dll.h 139: $lodsd +00000779 AD lodsd + +..\lib\dll.h 140: $test eax,eax +0000077A 85C0 test eax,eax + +..\lib\dll.h 141: $jz import_done01 +0000077C 7426 je 7A4h + +..\lib\dll.h 142: $push edx +0000077E 52 push edx + +..\lib\dll.h 144: $mov ebx,DSDWORD[EDX] +0000077F 8B1A mov ebx,[edx] + +..\lib\dll.h 145: $test ebx, ebx +00000781 85DB test ebx,ebx + +..\lib\dll.h 146: $jz exit01 +00000783 7431 je 7B6h + +..\lib\dll.h 147: $push eax +00000785 50 push eax + +..\lib\dll.h 149: $mov cl,DSBYTE[EAX]; +00000786 8A08 mov cl,[eax] + +..\lib\dll.h 150: $cmp cl,DSBYTE[EBX]; +00000788 3A0B cmp cl,[ebx] + +..\lib\dll.h 151: $jnz import_find_next01 +0000078A 7508 jne 794h + +..\lib\dll.h 152: $test cl,cl +0000078C 84C9 test cl,cl + +..\lib\dll.h 153: $jz import_found01 +0000078E 740A je 79Ah + +..\lib\dll.h 154: $inc eax +00000790 40 inc eax + +..\lib\dll.h 155: $inc ebx +00000791 43 inc ebx + +..\lib\dll.h 156: $jmp nex101 +00000792 EBF2 jmp short 786h + +..\lib\dll.h 158: $pop eax +00000794 58 pop eax + +..\lib\dll.h 159: $add edx, 8 +00000795 83C208 add edx,8 + +..\lib\dll.h 160: $jmp import_find01 +00000798 EBE5 jmp short 77Fh + +..\lib\dll.h 162: $pop eax +0000079A 58 pop eax + +..\lib\dll.h 163: $mov eax,DSDWORD[edx+4] +0000079B 8B4204 mov eax,[edx+4] + +..\lib\dll.h 164: $mov DSDWORD[esi-4],eax +0000079E 8946FC mov [esi-4],eax + +..\lib\dll.h 165: $pop edx +000007A1 5A pop edx + +..\lib\dll.h 167: $jmp import_loop01 +000007A2 EBD5 jmp short 779h + +..\lib\dll.h 169: IF (need_init) dll_Init(EDX); +000007A4 807D0800 cmp byte ptr [ebp+8],0 +000007A8 7406 je 7B0h +000007AA 52 push edx +000007AB E85EFFFFFF call 70Eh + +..\lib\dll.h 170: return 0; +000007B0 31C0 xor eax,eax +000007B2 5D pop ebp +000007B3 C20C00 ret 0Ch + +..\lib\dll.h 172: return -1; +000007B6 83C8FF or eax,0FFFFFFFFh +000007B9 5D pop ebp +000007BA C20C00 ret 0Ch +000007BD 0000 add [eax],al +000007BF 00C4 add ah,al + +..\lib\lib.obj\box_lib.h 2: dword boxlib = #aEdit_box_lib; +000007C0 C4070000 dd 7C4h + +..\lib\lib.obj\box_lib.h 3: char aEdit_box_lib[22]="/sys/lib/box_lib.obj\0"; +000007C4 2F7379732F6C69622F626F78 db '/sys/lib/box' +000007D0 5F6C69622E6F626A00000000 db '_lib.obj',0,0,0,0 + +..\lib\lib.obj\box_lib.h 5: dword box_lib_init = #aboxlib_init; +000007DC 48080000 dd 848h + +..\lib\lib.obj\box_lib.h 7: dword edit_box_draw = #aEdit_box_draw; +000007E0 14080000 dd 814h + +..\lib\lib.obj\box_lib.h 8: dword edit_box_key = #aEdit_box_key; +000007E4 1E080000 dd 81Eh + +..\lib\lib.obj\box_lib.h 9: dword edit_box_mouse = #aEdit_box_mouse; +000007E8 2C080000 dd 82Ch + +..\lib\lib.obj\box_lib.h 10: dword version_ed = #aVersion_ed; +000007EC 3C080000 dd 83Ch + +..\lib\lib.obj\box_lib.h 12: dword scrollbar_v_draw = #aScrollbar_v_draw; +000007F0 52080000 dd 852h + +..\lib\lib.obj\box_lib.h 13: dword scrollbar_v_mouse = #aScrollbar_v_mouse; +000007F4 64080000 dd 864h + +..\lib\lib.obj\box_lib.h 14: dword scrollbar_h_draw = #aScrollbar_h_draw; +000007F8 77080000 dd 877h + +..\lib\lib.obj\box_lib.h 15: dword scrollbar_h_mouse = #aScrollbar_h_mouse; +000007FC 89080000 dd 889h + +..\lib\lib.obj\box_lib.h 16: dword version_scrollbar = #aVersion_scrollbar; +00000800 9C080000 dd 89Ch + +..\lib\lib.obj\box_lib.h 18: dword PathShow_prepare = #aPathShow_prepare; +00000804 0B090000 dd 90Bh + +..\lib\lib.obj\box_lib.h 19: dword PathShow_draw = #aPathShow_draw; +00000808 1D090000 dd 91Dh + +..\lib\lib.obj\box_lib.h 21: dword am__ = 0x0; +0000080C 00000000 dd 0 + +..\lib\lib.obj\box_lib.h 22: dword bm__ = 0x0; +00000810 00000000 dd 0 + +..\lib\lib.obj\box_lib.h 24: char aEdit_box_draw [9] = "edit_box\0"; +00000814 656469745F626F780000 db 'edit_box',0,0 + +..\lib\lib.obj\box_lib.h 25: char aEdit_box_key [13] = "edit_box_key\0"; +0000081E 656469745F626F785F6B6579 db 'edit_box_key' +0000082A 0000 db 0,0 + +..\lib\lib.obj\box_lib.h 26: char aEdit_box_mouse[15] = "edit_box_mouse\0"; +0000082C 656469745F626F785F6D6F75 db 'edit_box_mou' +00000838 73650000 db 'se',0,0 + +..\lib\lib.obj\box_lib.h 27: char aVersion_ed [11] = "version_ed\0"; +0000083C 76657273696F6E5F65640000 db 'version_ed',0,0 + +..\lib\lib.obj\box_lib.h 29: char aboxlib_init[9] = "lib_init\0"; +00000848 6C69625F696E69740000 db 'lib_init',0,0 + +..\lib\lib.obj\box_lib.h 30: char aScrollbar_v_draw [17] = "scrollbar_v_draw\0"; +00000852 7363726F6C6C6261725F765F db 'scrollbar_v_' +0000085E 647261770000 db 'draw',0,0 + +..\lib\lib.obj\box_lib.h 31: char aScrollbar_v_mouse[18] = "scrollbar_v_mouse\0"; +00000864 7363726F6C6C6261725F765F db 'scrollbar_v_' +00000870 6D6F7573650000 db 'mouse',0,0 + +..\lib\lib.obj\box_lib.h 32: char aScrollbar_h_draw [17] = "scrollbar_h_draw\0"; +00000877 7363726F6C6C6261725F685F db 'scrollbar_h_' +00000883 647261770000 db 'draw',0,0 + +..\lib\lib.obj\box_lib.h 33: char aScrollbar_h_mouse[18] = "scrollbar_h_mouse\0"; +00000889 7363726F6C6C6261725F685F db 'scrollbar_h_' +00000895 6D6F7573650000 db 'mouse',0,0 + +..\lib\lib.obj\box_lib.h 34: char aVersion_scrollbar[18] = "version_scrollbar\0"; +0000089C 76657273696F6E5F7363726F db 'version_scro' +000008A8 6C6C6261720000 db 'llbar',0,0 + +..\lib\lib.obj\box_lib.h 36: char aCheck_box_draw [15] = "check_box_draw\0"; +000008AF 636865636B5F626F785F6472 db 'check_box_dr' +000008BB 61770000 db 'aw',0,0 + +..\lib\lib.obj\box_lib.h 37: char aCheck_box_mouse [16] = "check_box_mouse\0"; +000008BF 636865636B5F626F785F6D6F db 'check_box_mo' +000008CB 7573650000 db 'use',0,0 + +..\lib\lib.obj\box_lib.h 38: char aVersion_ch [11] = "version_ch\0"; +000008D0 76657273696F6E5F63680000 db 'version_ch',0,0 + +..\lib\lib.obj\box_lib.h 40: char aOption_box_draw [16] = "option_box_draw\0"; +000008DC 6F7074696F6E5F626F785F64 db 'option_box_d' +000008E8 7261770000 db 'raw',0,0 + +..\lib\lib.obj\box_lib.h 41: char aOption_box_mouse [17] = "option_box_mouse\0"; +000008ED 6F7074696F6E5F626F785F6D db 'option_box_m' +000008F9 6F7573650000 db 'ouse',0,0 + +..\lib\lib.obj\box_lib.h 42: char aVersion_op [11] = "version_op\0" ; +000008FF 76657273696F6E5F6F700000 db 'version_op',0,0 + +..\lib\lib.obj\box_lib.h 44: char aPathShow_prepare [17] = "PathShow_prepare\0"; +0000090B 5061746853686F775F707265 db 'PathShow_pre' +00000917 706172650000 db 'pare',0,0 + +..\lib\lib.obj\box_lib.h 45: char aPathShow_draw [14] = "PathShow_draw\0"; +0000091D 5061746853686F775F647261 db 'PathShow_dra' +00000929 770000 db 'w',0,0 + +..\lib\lib.obj\libio_lib.h 4: dword libio = #alibio; +0000092C 30090000 dd 930h + +..\lib\lib.obj\libio_lib.h 5: char alibio[21] = "/sys/lib/libio.obj\0"; //"libio.obj\0"; +00000930 2F7379732F6C69622F6C6962 db '/sys/lib/lib' +0000093C 696F2E6F626A000000000000 db 'io.obj',0,0,0,0,0,0 + +..\lib\lib.obj\libio_lib.h 7: dword libio_init = #alibio_init; +00000948 64090000 dd 964h + +..\lib\lib.obj\libio_lib.h 8: dword file_size = #afile_size; +0000094C 6E090000 dd 96Eh + +..\lib\lib.obj\libio_lib.h 9: dword file_open = #afile_open; +00000950 79090000 dd 979h + +..\lib\lib.obj\libio_lib.h 10: dword file_read = #afile_read; +00000954 85090000 dd 985h + +..\lib\lib.obj\libio_lib.h 11: dword file_close = #afile_close; +00000958 90090000 dd 990h + +..\lib\lib.obj\libio_lib.h 13: dword am2__ = 0x0; +0000095C 00000000 dd 0 + +..\lib\lib.obj\libio_lib.h 14: dword bm2__ = 0x0; +00000960 00000000 dd 0 + +..\lib\lib.obj\libio_lib.h 18: char alibio_init[9] = "lib_init\0"; +00000964 6C69625F696E69740000 db 'lib_init',0,0 + +..\lib\lib.obj\libio_lib.h 19: char afile_size[11] = "file_size\0"; +0000096E 66696C655F73697A650000 db 'file_size',0,0 + +..\lib\lib.obj\libio_lib.h 20: char afile_open[12] = "file_open\0"; +00000979 66696C655F6F70656E000000 db 'file_open',0,0,0 + +..\lib\lib.obj\libio_lib.h 21: char afile_read[11] = "file_read\0"; +00000985 66696C655F726561640000 db 'file_read',0,0 + +..\lib\lib.obj\libio_lib.h 22: char afile_close[12] = "file_close\0"; +00000990 66696C655F636C6F73650000 db 'file_close',0,0 + +..\lib\lib.obj\libimg_lib.h 4: dword libimg = #alibimg; +0000099C A0090000 dd 9A0h + +..\lib\lib.obj\libimg_lib.h 5: char alibimg[21] = "/sys/lib/libimg.obj\0"; +000009A0 2F7379732F6C69622F6C6962 db '/sys/lib/lib' +000009AC 696D672E6F626A0000000000 db 'img.obj',0,0,0,0,0 + +..\lib\lib.obj\libimg_lib.h 7: dword libimg_init = #alibimg_init; +000009B8 D8090000 dd 9D8h + +..\lib\lib.obj\libimg_lib.h 8: dword img_is_img = #aimg_is_img; +000009BC E2090000 dd 9E2h + +..\lib\lib.obj\libimg_lib.h 9: dword img_to_rgb2 = #aimg_to_rgb2; +000009C0 EE090000 dd 9EEh + +..\lib\lib.obj\libimg_lib.h 10: dword img_decode = #aimg_decode; +000009C4 FB090000 dd 9FBh + +..\lib\lib.obj\libimg_lib.h 11: dword img_destroy = #aimg_destroy; +000009C8 070A0000 dd 0A07h + +..\lib\lib.obj\libimg_lib.h 12: dword img_draw = #aimg_draw; +000009CC 140A0000 dd 0A14h + +..\lib\lib.obj\libimg_lib.h 16: dword am1__ = 0x0; +000009D0 00000000 dd 0 + +..\lib\lib.obj\libimg_lib.h 17: dword bm1__ = 0x0; +000009D4 00000000 dd 0 + +..\lib\lib.obj\libimg_lib.h 20: char alibimg_init[9] = "lib_init\0"; +000009D8 6C69625F696E69740000 db 'lib_init',0,0 + +..\lib\lib.obj\libimg_lib.h 21: char aimg_is_img[11] = "img_is_img\0"; +000009E2 696D675F69735F696D670000 db 'img_is_img',0,0 + +..\lib\lib.obj\libimg_lib.h 22: char aimg_to_rgb2[12] = "img_to_rgb2\0"; +000009EE 696D675F746F5F7267623200 db 'img_to_rgb2',0 +000009FA 00 db 0 + +..\lib\lib.obj\libimg_lib.h 23: char aimg_decode[11] = "img_decode\0"; +000009FB 696D675F6465636F64650000 db 'img_decode',0,0 + +..\lib\lib.obj\libimg_lib.h 24: char aimg_destroy[12] = "img_destroy\0"; +00000A07 696D675F64657374726F7900 db 'img_destroy',0 +00000A13 00 db 0 + +..\lib\lib.obj\libimg_lib.h 25: char aimg_draw[9] = "img_draw\0"; +00000A14 696D675F647261770000 db 'img_draw',0,0 + +..\lib\lib.obj\libimg_lib.h 31: dword load_image(dword filename) +00000A1E 55 push ebp +00000A1F 89E5 mov ebp,esp +00000A21 6A00 push 0 +00000A23 6A00 push 0 +00000A25 6A00 push 0 +00000A27 6A00 push 0 +00000A29 83EC28 sub esp,28h + +..\lib\lib.obj\libimg_lib.h 40: $and img_data, 0 +00000A2C 8365FC00 and dword ptr [ebp-4],0 + +..\lib\lib.obj\libimg_lib.h 44: file_open stdcall (filename, O_READ); +00000A30 6A01 push 1 +00000A32 FF7508 push dword ptr [ebp+8] +00000A35 FF1550090000 call dword ptr [950h] + +..\lib\lib.obj\libimg_lib.h 45: $or eax, eax +00000A3B 0BC0 or eax,eax + +..\lib\lib.obj\libimg_lib.h 46: $jnz loc05 +00000A3D 7507 jne 0A46h + +..\lib\lib.obj\libimg_lib.h 47: $stc +00000A3F F9 stc + +..\lib\lib.obj\libimg_lib.h 48: return 0; +00000A40 31C0 xor eax,eax +00000A42 C9 leave +00000A43 C20400 ret 4 + +..\lib\lib.obj\libimg_lib.h 50: $mov fh, eax +00000A46 8945F4 mov [ebp-0Ch],eax + +..\lib\lib.obj\libimg_lib.h 52: file_size stdcall (filename); +00000A49 FF7508 push dword ptr [ebp+8] +00000A4C FF154C090000 call dword ptr [94Ch] + +..\lib\lib.obj\libimg_lib.h 53: $mov img_data_len, ebx +00000A52 895DF8 mov [ebp-8],ebx + +..\lib\lib.obj\libimg_lib.h 55: mem_Alloc(EBX); +00000A55 53 push ebx +00000A56 E892FBFFFF call 5EDh + +..\lib\lib.obj\libimg_lib.h 57: $test eax, eax +00000A5B 85C0 test eax,eax + +..\lib\lib.obj\libimg_lib.h 58: $jz error_close +00000A5D 7468 je 0AC7h + +..\lib\lib.obj\libimg_lib.h 59: $mov img_data, eax +00000A5F 8945FC mov [ebp-4],eax + +..\lib\lib.obj\libimg_lib.h 61: file_read stdcall (fh, EAX, img_data_len); +00000A62 FF75F8 push dword ptr [ebp-8] +00000A65 50 push eax +00000A66 FF75F4 push dword ptr [ebp-0Ch] +00000A69 FF1554090000 call dword ptr [954h] + +..\lib\lib.obj\libimg_lib.h 62: $cmp eax, -1 +00000A6F 83F8FF cmp eax,0FFFFFFFFh + +..\lib\lib.obj\libimg_lib.h 63: $jz error_close +00000A72 7453 je 0AC7h + +..\lib\lib.obj\libimg_lib.h 64: $cmp eax, img_data_len +00000A74 3B45F8 cmp eax,[ebp-8] + +..\lib\lib.obj\libimg_lib.h 65: $jnz error_close +00000A77 754E jne 0AC7h + +..\lib\lib.obj\libimg_lib.h 67: file_close stdcall (fh); +00000A79 FF75F4 push dword ptr [ebp-0Ch] +00000A7C FF1558090000 call dword ptr [958h] + +..\lib\lib.obj\libimg_lib.h 68: $inc eax +00000A82 40 inc eax + +..\lib\lib.obj\libimg_lib.h 69: $jz error_ +00000A83 744B je 0AD0h + +..\lib\lib.obj\libimg_lib.h 75: EAX=img_data; +00000A85 8B45FC mov eax,[ebp-4] + +..\lib\lib.obj\libimg_lib.h 76: img_decode stdcall (EAX, img_data_len,0); +00000A88 6A00 push 0 +00000A8A FF75F8 push dword ptr [ebp-8] +00000A8D 50 push eax +00000A8E FF15C4090000 call dword ptr [9C4h] + +..\lib\lib.obj\libimg_lib.h 77: $or eax, eax +00000A94 0BC0 or eax,eax + +..\lib\lib.obj\libimg_lib.h 78: $jz error_ +00000A96 7438 je 0AD0h + +..\lib\lib.obj\libimg_lib.h 79: $cmp image, 0 +00000A98 837DF000 cmp dword ptr [ebp-10h],0 + +..\lib\lib.obj\libimg_lib.h 80: $pushf +00000A9C 669C pushf + +..\lib\lib.obj\libimg_lib.h 81: $mov image, eax +00000A9E 8945F0 mov [ebp-10h],eax + +..\lib\lib.obj\libimg_lib.h 83: $popf +00000AA1 669D popf + +..\lib\lib.obj\libimg_lib.h 85: mem_Free(img_data);//free_img_data(img_data); +00000AA3 FF75FC push dword ptr [ebp-4] +00000AA6 E87BFBFFFF call 626h + +..\lib\lib.obj\libimg_lib.h 86: $clc +00000AAB F8 clc + +..\lib\lib.obj\libimg_lib.h 87: return image; +00000AAC 8B45F0 mov eax,[ebp-10h] +00000AAF C9 leave +00000AB0 C20400 ret 4 + +..\lib\lib.obj\libimg_lib.h 91: img_destroy stdcall (image); +00000AB3 FF75F0 push dword ptr [ebp-10h] +00000AB6 FF15C8090000 call dword ptr [9C8h] + +..\lib\lib.obj\libimg_lib.h 92: $jmp error_ +00000ABC E90F000000 jmp 0AD0h + +..\lib\lib.obj\libimg_lib.h 95: $pop eax +00000AC1 58 pop eax + +..\lib\lib.obj\libimg_lib.h 96: $jmp error_ +00000AC2 E909000000 jmp 0AD0h + +..\lib\lib.obj\libimg_lib.h 99: file_close stdcall (fh); +00000AC7 FF75F4 push dword ptr [ebp-0Ch] +00000ACA FF1558090000 call dword ptr [958h] + +..\lib\lib.obj\libimg_lib.h 101: mem_Free(img_data); +00000AD0 FF75FC push dword ptr [ebp-4] +00000AD3 E84EFBFFFF call 626h + +..\lib\lib.obj\libimg_lib.h 102: $stc +00000AD8 F9 stc + +..\lib\lib.obj\libimg_lib.h 103: return 0; +00000AD9 31C0 xor eax,eax +00000ADB C9 leave +00000ADC C20400 ret 4 +00000ADF 00E4 add ah,ah + +..\lib\lib.obj\truetype.h 5: dword libtruetype = #att; +00000AE0 E40A0000 dd 0AE4h + +..\lib\lib.obj\truetype.h 7: char att[] = "/sys/lib/truetype.obj"; //"truetype.obj\0"; +00000AE4 2F7379732F6C69622F747275 db '/sys/lib/tru' +00000AF0 65747970652E6F626A000000 db 'etype.obj',0,0,0 + +..\lib\lib.obj\truetype.h 9: dword truetype = #att_truetype; +00000AFC 180B0000 dd 0B18h + +..\lib\lib.obj\truetype.h 10: dword get_length = #att_get_length; +00000B00 210B0000 dd 0B21h + +..\lib\lib.obj\truetype.h 11: dword get_width = #att_get_width; +00000B04 2C0B0000 dd 0B2Ch + +..\lib\lib.obj\truetype.h 12: dword text_out = #att_text_out; +00000B08 360B0000 dd 0B36h + +..\lib\lib.obj\truetype.h 13: dword init_font = #att_init_font; +00000B0C 3F0B0000 dd 0B3Fh + +..\lib\lib.obj\truetype.h 15: dword am3__ = 0x0; +00000B10 00000000 dd 0 + +..\lib\lib.obj\truetype.h 16: dword bm3__ = 0x0; +00000B14 00000000 dd 0 + +..\lib\lib.obj\truetype.h 20: char att_truetype[] = "truetype"; +00000B18 747275657479706500 db 'truetype',0 + +..\lib\lib.obj\truetype.h 21: char att_get_length[] = "get_length"; +00000B21 6765745F6C656E67746800 db 'get_length',0 + +..\lib\lib.obj\truetype.h 22: char att_get_width[] = "get_width"; +00000B2C 6765745F776964746800 db 'get_width',0 + +..\lib\lib.obj\truetype.h 23: char att_text_out[] = "text_out"; +00000B36 746578745F6F757400 db 'text_out',0 + +..\lib\lib.obj\truetype.h 24: char att_init_font[] = "init_font"; +00000B3F 696E69745F666F6E7400 db 'init_font',0 + +main.c 23: unsigned char logo[LOGOW*LOGOH*3]= FROM "img\logo.raw"; +00000B49 000000000000000000000000 db 0,0,0,0,0,0,0,0,0,0,0,0 +00000B55 0200003D1700792C00933200 db 2,0,0,3Dh,17h,0,79h,2Ch,0,93h,32h,0 +00000B61 933200792A003D1600020000 db 93h,32h,0,79h,2Ah,0,3Dh,16h,0,2,0,0 +00000B6D 000000000000000000000000 db 0,0,0,0,0,0,0,0,0,0,0,0 +00000B79 000000000000000000391600 db 0,0,0,0,0,0,0,0,0,39h,16h,0 +00000B85 B44300D44C00DE6E23EAA070 db 0B4h,43h,0,0D4h,4Ch,0,0DEh,6Eh,23h,0EAh,0A0h,70h +00000B91 ECAA7EE3884ED75A03B34000 db 0ECh,0AAh,7Eh,0E3h,88h,4Eh,0D7h,5Ah,3,0B3h,40h,0 +00000B9D 391500000000000000000000 db 39h,15h,0,0,0,0,0,0,0,0,0,0 +00000BA9 000000000000532100CE5000 db 0,0,0,0,0,0,53h,21h,0,0CEh,50h,0 +00000BB5 D75200E68C52EEA87AEDA270 db 0D7h,52h,0,0E6h,8Ch,52h,0EEh,0A8h,7Ah,0EDh,0A2h,70h +00000BC1 EC9F6CEEA676EBA173DB671C db 0ECh,9Fh,6Ch,0EEh,0A6h,76h,0EBh,0A1h,73h,0DBh,67h,1Ch +00000BCD CE4E00542100000000000000 db 0CEh,4Eh,0,54h,21h,0,0,0,0,0,0,0 +00000BD9 000000391700D05403D2530E db 0,0,0,39h,17h,0,0D0h,54h,3,0D2h,53h,0Eh +00000BE5 D05D11D47432E77D38EB8A4B db 0D0h,5Dh,11h,0D4h,74h,32h,0E7h,7Dh,38h,0EBh,8Ah,4Bh +00000BF1 DF7D3CDF732CDF7025DE7936 db 0DFh,7Dh,3Ch,0DFh,73h,2Ch,0DFh,70h,25h,0DEh,79h,36h +00000BFD D04C08D154033A1700000000 db 0D0h,4Ch,8,0D1h,54h,3,3Ah,17h,0,0,0,0 +00000C09 020000B64B06D95A08D54E0E db 2,0,0,0B6h,4Bh,6,0D9h,5Ah,8,0D5h,4Eh,0Eh +00000C15 E5FFFFECFFFFDF8850E87120 db 0E5h,0FFh,0FFh,0ECh,0FFh,0FFh,0DFh,88h,50h,0E8h,71h,20h +00000C21 E0691AEDF8FFEBFFFFE8FBFF db 0E0h,69h,1Ah,0EDh,0F8h,0FFh,0EBh,0FFh,0FFh,0E8h,0FBh,0FFh +00000C2D D44708D85C0AB64B06020000 db 0D4h,47h,8,0D8h,5Ch,0Ah,0B6h,4Bh,6,2,0,0 +00000C39 3F1A01D9600EDC6B1ED74708 db 3Fh,1Ah,1,0D9h,60h,0Eh,0DCh,6Bh,1Eh,0D7h,47h,8 +00000C45 E4E3E4EBFFFFE8F9F9E17F42 db 0E4h,0E3h,0E4h,0EBh,0FFh,0FFh,0E8h,0F9h,0F9h,0E1h,7Fh,42h +00000C51 E34900EEEEF0FFFFFFE5E9ED db 0E3h,49h,0,0EEh,0EEh,0F0h,0FFh,0FFh,0FFh,0E5h,0E9h,0EDh +00000C5D D73D00DE6614D95F0F3F1A01 db 0D7h,3Dh,0,0DEh,66h,14h,0D9h,5Fh,0Fh,3Fh,1Ah,1 +00000C69 7E3606DC651ADF6F24DB4D08 db 7Eh,36h,6,0DCh,65h,1Ah,0DFh,6Fh,24h,0DBh,4Dh,8 +00000C75 E6E5E3E9F0F7EDF6FDECF9F9 db 0E6h,0E5h,0E3h,0E9h,0F0h,0F7h,0EDh,0F6h,0FDh,0ECh,0F9h,0F9h +00000C81 E4630EEEDFD5FFFFFFEAE6E7 db 0E4h,63h,0Eh,0EEh,0DFh,0D5h,0FFh,0FFh,0FFh,0EAh,0E6h,0E7h +00000C8D DB4500E16A1CDE65167E3607 db 0DBh,45h,0,0E1h,6Ah,1Ch,0DEh,65h,16h,7Eh,36h,7 +00000C99 9A450DDE6B20E27127DB5208 db 9Ah,45h,0Dh,0DEh,6Bh,20h,0E2h,71h,27h,0DBh,52h,8 +00000CA5 EBE9E8FFFFFFF0EAE5F0FEFF db 0EBh,0E9h,0E8h,0FFh,0FFh,0FFh,0F0h,0EAh,0E5h,0F0h,0FEh,0FFh +00000CB1 F0FEFFEFD0BCFFFFFFEAEBEA db 0F0h,0FEh,0FFh,0EFh,0D0h,0BCh,0FFh,0FFh,0FFh,0EAh,0EBh,0EAh +00000CBD DC4B00E27124DF691E9C470D db 0DCh,4Bh,0,0E2h,71h,24h,0DFh,69h,1Eh,9Ch,47h,0Dh +00000CC9 9C4610E17026E2742CDE5908 db 9Ch,46h,10h,0E1h,70h,26h,0E2h,74h,2Ch,0DEh,59h,8 +00000CD5 EBEBEBFFFFFFF0EAE7F3F8FB db 0EBh,0EBh,0EBh,0FFh,0FFh,0FFh,0F0h,0EAh,0E7h,0F3h,0F8h,0FBh +00000CE1 F3FFFFF0EAE7FFFFFFEDEDED db 0F3h,0FFh,0FFh,0F0h,0EAh,0E7h,0FFh,0FFh,0FFh,0EDh,0EDh,0EDh +00000CED DF5700E4752DE070269E4811 db 0DFh,57h,0,0E4h,75h,2Dh,0E0h,70h,26h,9Eh,48h,11h +00000CF9 833B0EE0752DE27732DE5B07 db 83h,3Bh,0Eh,0E0h,75h,2Dh,0E2h,77h,32h,0DEh,5Bh,7 +00000D05 EDEBEAFFFFFFF0F9FFE77022 db 0EDh,0EBh,0EAh,0FFh,0FFh,0FFh,0F0h,0F9h,0FFh,0E7h,70h,22h +00000D11 EFF9F9F2F9FFFFFFFFECECEC db 0EFh,0F9h,0F9h,0F2h,0F9h,0FFh,0FFh,0FFh,0FFh,0ECh,0ECh,0ECh +00000D1D DE5D0AE37B35DF762F843C10 db 0DEh,5Dh,0Ah,0E3h,7Bh,35h,0DFh,76h,2Fh,84h,3Ch,10h +00000D29 451E06E07733E27E39DB6110 db 45h,1Eh,6,0E0h,77h,33h,0E2h,7Eh,39h,0DBh,61h,10h +00000D35 EBEBEBFFFFFFF2FFFFE55F04 db 0EBh,0EBh,0EBh,0FFh,0FFh,0FFh,0F2h,0FFh,0FFh,0E5h,5Fh,4 +00000D41 E7945FEEF9F9FFFFFFEDEBEB db 0E7h,94h,5Fh,0EEh,0F9h,0F9h,0FFh,0FFh,0FFh,0EDh,0EBh,0EBh +00000D4D DE6514E57F3DE17C3A461E06 db 0DEh,65h,14h,0E5h,7Fh,3Dh,0E1h,7Ch,3Ah,46h,1Eh,6 +00000D59 020000C05E21E27F3FDA6F27 db 2,0,0,0C0h,5Eh,21h,0E2h,7Fh,3Fh,0DAh,6Fh,27h +00000D65 EBFEFEEFFFFFEFFFFFE47D38 db 0EBh,0FEh,0FEh,0EFh,0FFh,0FFh,0EFh,0FFh,0FFh,0E4h,7Dh,38h +00000D71 EE8846E59A67EAF9F9EAFEFE db 0EEh,88h,46h,0E5h,9Ah,67h,0EAh,0F9h,0F9h,0EAh,0FEh,0FEh +00000D7D DB702BE38242C26226020000 db 0DBh,70h,2Bh,0E3h,82h,42h,0C2h,62h,26h,2,0,0 +00000D89 000000441F08DA7231D97B3C db 0,0,0,44h,1Fh,8,0DAh,72h,31h,0D9h,7Bh,3Ch +00000D95 DD7431E0732AE2803EE28E57 db 0DDh,74h,31h,0E0h,73h,2Ah,0E2h,80h,3Eh,0E2h,8Eh,57h +00000DA1 EE9E69EB9159D67333DF7734 db 0EEh,9Eh,69h,0EBh,91h,59h,0D6h,73h,33h,0DFh,77h,34h +00000DAD DB7B3DDA7635452009000000 db 0DBh,7Bh,3Dh,0DAh,76h,35h,45h,20h,9,0,0,0 +00000DB9 000000000000632F0EDE7B3C db 0,0,0,0,0,0,63h,2Fh,0Eh,0DEh,7Bh,3Ch +00000DC5 E48A50E6925CE89863EB9D69 db 0E4h,8Ah,50h,0E6h,92h,5Ch,0E8h,98h,63h,0EBh,9Dh,69h +00000DD1 EEA271EDA06EE79963E6915B db 0EEh,0A2h,71h,0EDh,0A0h,6Eh,0E7h,99h,63h,0E6h,91h,5Bh +00000DDD DD7A3C65300F000000000000 db 0DDh,7Ah,3Ch,65h,30h,0Fh,0,0,0,0,0,0 +00000DE9 000000000000000000653213 db 0,0,0,0,0,0,0,0,0,65h,32h,13h +00000DF5 CD6D31E3844BE48D55E48F57 db 0CDh,6Dh,31h,0E3h,84h,4Bh,0E4h,8Dh,55h,0E4h,8Fh,57h +00000E01 E48E56E38B52E18348D36F31 db 0E4h,8Eh,56h,0E3h,8Bh,52h,0E1h,83h,48h,0D3h,6Fh,31h +00000E0D 4A240C000000000000000000 db 4Ah,24h,0Ch,0,0,0,0,0,0,0,0,0 +00000E19 000000000000000000000000 db 0,0,0,0,0,0,0,0,0,0,0,0 +00000E25 02000051280F9C5023B9622C db 2,0,0,51h,28h,0Fh,9Ch,50h,23h,0B9h,62h,2Ch +00000E31 B05F2C964F23522A11020000 db 0B0h,5Fh,2Ch,96h,4Fh,23h,52h,2Ah,11h,2,0,0 +00000E3D 000000000000000000000000 db 0,0,0,0,0,0,0,0,0,0,0,0 +00000E49 FFFFFFFFFFFF7BAED6417BB8 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,7Bh,0AEh,0D6h,41h,7Bh,0B8h +00000E55 3367AB3365A9335499334488 db 33h,67h,0ABh,33h,65h,0A9h,33h,54h,99h,33h,44h,88h +00000E61 354A8D3C5A99446DA94B81B9 db 35h,4Ah,8Dh,3Ch,5Ah,99h,44h,6Dh,0A9h,4Bh,81h,0B9h +00000E6D 7BABD3FFFFFFFFFFFFFFFFFF db 7Bh,0ABh,0D3h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00000E79 FFFFFFFFFFFFDACEB5F6EDE5 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0DAh,0CEh,0B5h,0F6h,0EDh,0E5h +00000E85 EFDECFF5EAE0F9F3EEF3E8DC db 0EFh,0DEh,0CFh,0F5h,0EAh,0E0h,0F9h,0F3h,0EEh,0F3h,0E8h,0DCh +00000E91 F1E3D6EFDFCFEEDDCDF5EBE1 db 0F1h,0E3h,0D6h,0EFh,0DFh,0CFh,0EEh,0DDh,0CDh,0F5h,0EBh,0E1h +00000E9D DACEB5FFFFFFFFFFFFFFFFFF db 0DAh,0CEh,0B5h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00000EA9 FFFFFFFFFFFFD9CDB4F6EDE5 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0D9h,0CDh,0B4h,0F6h,0EDh,0E5h +00000EB5 EFDECFF5EAE0F9F3EEF3E8DC db 0EFh,0DEh,0CFh,0F5h,0EAh,0E0h,0F9h,0F3h,0EEh,0F3h,0E8h,0DCh +00000EC1 F1E3D6EFDFCFEEDDCDF5EBE1 db 0F1h,0E3h,0D6h,0EFh,0DFh,0CFh,0EEh,0DDh,0CDh,0F5h,0EBh,0E1h +00000ECD D9CDB4FFFFFFFFFFFFFFFFFF db 0D9h,0CDh,0B4h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00000ED9 FFFFFFFFFFFFD8CCB3F6EDE5 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0D8h,0CCh,0B3h,0F6h,0EDh,0E5h +00000EE5 EB8563D6714FBC5836AC4725 db 0EBh,85h,63h,0D6h,71h,4Fh,0BCh,58h,36h,0ACh,47h,25h +00000EF1 B14624C8512FE25F3DF5EBE1 db 0B1h,46h,24h,0C8h,51h,2Fh,0E2h,5Fh,3Dh,0F5h,0EBh,0E1h +00000EFD D8CCB3FFFFFFFFFFFFFFFFFF db 0D8h,0CCh,0B3h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00000F09 FFFFFFFFFFFFD7CAB1F8F2EC db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0D7h,0CAh,0B1h,0F8h,0F2h,0ECh +00000F15 ECB39BD28268C9B4B19C979B db 0ECh,0B3h,9Bh,0D2h,82h,68h,0C9h,0B4h,0B1h,9Ch,97h,9Bh +00000F21 948F93BC6148E7A188F8F0E8 db 94h,8Fh,93h,0BCh,61h,48h,0E7h,0A1h,88h,0F8h,0F0h,0E8h +00000F2D D7CAB1FFFFFFFFFFFFFFFFFF db 0D7h,0CAh,0B1h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00000F39 FFFFFFFFFFFFEAE4D7D6C9B0 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0EAh,0E4h,0D7h,0D6h,0C9h,0B0h +00000F45 F3E7DCE4AE98BD6F55A29A9D db 0F3h,0E7h,0DCh,0E4h,0AEh,98h,0BDh,6Fh,55h,0A2h,9Ah,9Dh +00000F51 AB5941DC9B82F3E7DAD6C9B0 db 0ABh,59h,41h,0DCh,9Bh,82h,0F3h,0E7h,0DAh,0D6h,0C9h,0B0h +00000F5D EAE4D7FFFFFFFFFFFFFFFFFF db 0EAh,0E4h,0D7h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00000F69 FFFFFFFFFFFFFFFFFFEAE3D6 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0EAh,0E3h,0D6h +00000F75 D5C8AEF8EFE8DAA794AC4725 db 0D5h,0C8h,0AEh,0F8h,0EFh,0E8h,0DAh,0A7h,94h,0ACh,47h,25h +00000F81 D29881F3E7DCD5C8AEEAE3D6 db 0D2h,98h,81h,0F3h,0E7h,0DCh,0D5h,0C8h,0AEh,0EAh,0E3h,0D6h +00000F8D FFFFFFFFFFFFFFFFFFFFFFFF db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00000F99 FFFFFFFFFFFFFFFFFFFFFFFF db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00000FA5 E9E2D5D4C7ACF9F3EEF3E8DC db 0E9h,0E2h,0D5h,0D4h,0C7h,0ACh,0F9h,0F3h,0EEh,0F3h,0E8h,0DCh +00000FB1 F5EBE1D4C7ACE9E2D5FFFFFF db 0F5h,0EBh,0E1h,0D4h,0C7h,0ACh,0E9h,0E2h,0D5h,0FFh,0FFh,0FFh +00000FBD FFFFFFFFFFFFFFFFFFFFFFFF db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00000FC9 FFFFFFFFFFFFFFFFFFFFFFFF db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00000FD5 E8E2D4D3C5AAF9F3EEF3E8DC db 0E8h,0E2h,0D4h,0D3h,0C5h,0AAh,0F9h,0F3h,0EEh,0F3h,0E8h,0DCh +00000FE1 F5EBE1D3C5AAE8E2D4FFFFFF db 0F5h,0EBh,0E1h,0D3h,0C5h,0AAh,0E8h,0E2h,0D4h,0FFh,0FFh,0FFh +00000FED FFFFFFFFFFFFFFFFFFFFFFFF db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00000FF9 FFFFFFFFFFFFFFFFFFE7E1D3 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0E1h,0D3h +00001005 D1C3A8F8EFE8F9F3EEF3E8DC db 0D1h,0C3h,0A8h,0F8h,0EFh,0E8h,0F9h,0F3h,0EEh,0F3h,0E8h,0DCh +00001011 F1E3D6F3E7DCD1C3A8E7E1D3 db 0F1h,0E3h,0D6h,0F3h,0E7h,0DCh,0D1h,0C3h,0A8h,0E7h,0E1h,0D3h +0000101D FFFFFFFFFFFFFFFFFFFFFFFF db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00001029 FFFFFFFFFFFFE7E0D2D0C2A6 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0E0h,0D2h,0D0h,0C2h,0A6h +00001035 F3E7DCF5EAE0F9F3EEF3E8DC db 0F3h,0E7h,0DCh,0F5h,0EAh,0E0h,0F9h,0F3h,0EEh,0F3h,0E8h,0DCh +00001041 F1E3D6EFDFCFF3E7DAD0C2A6 db 0F1h,0E3h,0D6h,0EFh,0DFh,0CFh,0F3h,0E7h,0DAh,0D0h,0C2h,0A6h +0000104D E7E0D2FFFFFFFFFFFFFFFFFF db 0E7h,0E0h,0D2h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00001059 FFFFFFFFFFFFCEC0A4F8F2EC db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0CEh,0C0h,0A4h,0F8h,0F2h,0ECh +00001065 EFDECFF5EAE0F9F3EEF3E8DC db 0EFh,0DEh,0CFh,0F5h,0EAh,0E0h,0F9h,0F3h,0EEh,0F3h,0E8h,0DCh +00001071 F1E3D6EFDFCFEEDDCDF8F0E8 db 0F1h,0E3h,0D6h,0EFh,0DFh,0CFh,0EEh,0DDh,0CDh,0F8h,0F0h,0E8h +0000107D CEC0A4FFFFFFFFFFFFFFFFFF db 0CEh,0C0h,0A4h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00001089 FFFFFFFFFFFFCDBEA1F6EDE5 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0CDh,0BEh,0A1h,0F6h,0EDh,0E5h +00001095 7AB1CC8FBFD6B5D4E36EA6C1 db 7Ah,0B1h,0CCh,8Fh,0BFh,0D6h,0B5h,0D4h,0E3h,6Eh,0A6h,0C1h +000010A1 6199B36098B270A7C1F5EBE1 db 61h,99h,0B3h,60h,98h,0B2h,70h,0A7h,0C1h,0F5h,0EBh,0E1h +000010AD CDBEA1FFFFFFFFFFFFFFFFFF db 0CDh,0BEh,0A1h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +000010B9 FFFFFFFFFFFFC9BA9CF6EDE5 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0C9h,0BAh,9Ch,0F6h,0EDh,0E5h +000010C5 A4C2CDB2CED9CDE0E79DBDCB db 0A4h,0C2h,0CDh,0B2h,0CEh,0D9h,0CDh,0E0h,0E7h,9Dh,0BDh,0CBh +000010D1 94B3BF93B1BD9DBBC6F5EBE1 db 94h,0B3h,0BFh,93h,0B1h,0BDh,9Dh,0BBh,0C6h,0F5h,0EBh,0E1h +000010DD C9BA9CFFFFFFFFFFFFFFFFFF db 0C9h,0BAh,9Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +000010E9 F5F5F5E8E8E8C3B393F6EDE5 db 0F5h,0F5h,0F5h,0E8h,0E8h,0E8h,0C3h,0B3h,93h,0F6h,0EDh,0E5h +000010F5 EFDECFF5EAE0F9F3EEF3E8DC db 0EFh,0DEh,0CFh,0F5h,0EAh,0E0h,0F9h,0F3h,0EEh,0F3h,0E8h,0DCh +00001101 F1E3D6EFDFCFEEDDCDF5EBE1 db 0F1h,0E3h,0D6h,0EFh,0DFh,0CFh,0EEh,0DDh,0CDh,0F5h,0EBh,0E1h +0000110D C3B393E8E8E8F5F5F5FFFFFF db 0C3h,0B3h,93h,0E8h,0E8h,0E8h,0F5h,0F5h,0F5h,0FFh,0FFh,0FFh +00001119 ECECECD2D2D259759F335296 db 0ECh,0ECh,0ECh,0D2h,0D2h,0D2h,59h,75h,9Fh,33h,52h,96h +00001125 334488334387333A77333367 db 33h,44h,88h,33h,43h,87h,33h,3Ah,77h,33h,33h,67h +00001131 33376B334077334B86335796 db 33h,37h,6Bh,33h,40h,77h,33h,4Bh,86h,33h,57h,96h +0000113D 59749DD1D1D1ECECECFFFFFF db 59h,74h,9Dh,0D1h,0D1h,0D1h,0ECh,0ECh,0ECh,0FFh,0FFh,0FFh +00001149 FFFFFFFFFFFF7BAED6417BB8 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,7Bh,0AEh,0D6h,41h,7Bh,0B8h +00001155 3367AB3365A9335499334488 db 33h,67h,0ABh,33h,65h,0A9h,33h,54h,99h,33h,44h,88h +00001161 354A8D3C5A99446DA94B81B9 db 35h,4Ah,8Dh,3Ch,5Ah,99h,44h,6Dh,0A9h,4Bh,81h,0B9h +0000116D 7BABD3FFFFFFFFFFFFFFFFFF db 7Bh,0ABh,0D3h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00001179 FFFFFFFFFFFFDACEB5F6EDE5 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0DAh,0CEh,0B5h,0F6h,0EDh,0E5h +00001185 EFDECFF5EAE0F9F3EEF3E8DC db 0EFh,0DEh,0CFh,0F5h,0EAh,0E0h,0F9h,0F3h,0EEh,0F3h,0E8h,0DCh +00001191 F1E3D6EFDFCFEEDDCDF5EBE1 db 0F1h,0E3h,0D6h,0EFh,0DFh,0CFh,0EEh,0DDh,0CDh,0F5h,0EBh,0E1h +0000119D DACEB5FFFFFFFFFFFFFFFFFF db 0DAh,0CEh,0B5h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +000011A9 FFFFFFFFFFFFD9CDB4F6EDE5 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0D9h,0CDh,0B4h,0F6h,0EDh,0E5h +000011B5 EFDECFF5EAE0F9F3EEF3E8DC db 0EFh,0DEh,0CFh,0F5h,0EAh,0E0h,0F9h,0F3h,0EEh,0F3h,0E8h,0DCh +000011C1 F1E3D6EFDFCFEEDDCDF5EBE1 db 0F1h,0E3h,0D6h,0EFh,0DFh,0CFh,0EEh,0DDh,0CDh,0F5h,0EBh,0E1h +000011CD D9CDB4FFFFFFFFFFFFFFFFFF db 0D9h,0CDh,0B4h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +000011D9 FFFFFFFFFFFFD8CCB3F6EDE5 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0D8h,0CCh,0B3h,0F6h,0EDh,0E5h +000011E5 EFDECFF5EAE0F9F3EEF3E8DC db 0EFh,0DEh,0CFh,0F5h,0EAh,0E0h,0F9h,0F3h,0EEh,0F3h,0E8h,0DCh +000011F1 F1E3D6EFDFCFEEDDCDF5EBE1 db 0F1h,0E3h,0D6h,0EFh,0DFh,0CFh,0EEh,0DDh,0CDh,0F5h,0EBh,0E1h +000011FD D8CCB3FFFFFFFFFFFFFFFFFF db 0D8h,0CCh,0B3h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00001209 FFFFFFFFFFFFD7CAB1F8F2EC db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0D7h,0CAh,0B1h,0F8h,0F2h,0ECh +00001215 D5D4CE88BCD4B0D2E265A1BF db 0D5h,0D4h,0CEh,88h,0BCh,0D4h,0B0h,0D2h,0E2h,65h,0A1h,0BFh +00001221 5894B15793B0D1D0C9F8F0E8 db 58h,94h,0B1h,57h,93h,0B0h,0D1h,0D0h,0C9h,0F8h,0F0h,0E8h +0000122D D7CAB1FFFFFFFFFFFFFFFFFF db 0D7h,0CAh,0B1h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00001239 FFFFFFFFFFFFEAE4D7D6C9B0 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0EAh,0E4h,0D7h,0D6h,0C9h,0B0h +00001245 F3E7DCE2E1DDB5D4E36EA6C1 db 0F3h,0E7h,0DCh,0E2h,0E1h,0DDh,0B5h,0D4h,0E3h,6Eh,0A6h,0C1h +00001251 6199B3CFCEC8F3E7DAD6C9B0 db 61h,99h,0B3h,0CFh,0CEh,0C8h,0F3h,0E7h,0DAh,0D6h,0C9h,0B0h +0000125D EAE4D7FFFFFFFFFFFFFFFFFF db 0EAh,0E4h,0D7h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00001269 FFFFFFFFFFFFFFFFFFEAE3D6 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0EAh,0E3h,0D6h +00001275 D5C8AEF8EFE8EAEDEC9DBDCB db 0D5h,0C8h,0AEh,0F8h,0EFh,0E8h,0EAh,0EDh,0ECh,9Dh,0BDh,0CBh +00001281 DAD7D0F3E7DCD5C8AEEAE3D6 db 0DAh,0D7h,0D0h,0F3h,0E7h,0DCh,0D5h,0C8h,0AEh,0EAh,0E3h,0D6h +0000128D FFFFFFFFFFFFFFFFFFFFFFFF db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00001299 FFFFFFFFFFFFFFFFFFFFFFFF db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +000012A5 E9E2D5D4C7ACF9F3EEF3E8DC db 0E9h,0E2h,0D5h,0D4h,0C7h,0ACh,0F9h,0F3h,0EEh,0F3h,0E8h,0DCh +000012B1 F5EBE1D4C7ACE9E2D5FFFFFF db 0F5h,0EBh,0E1h,0D4h,0C7h,0ACh,0E9h,0E2h,0D5h,0FFh,0FFh,0FFh +000012BD FFFFFFFFFFFFFFFFFFFFFFFF db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +000012C9 FFFFFFFFFFFFFFFFFFFFFFFF db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +000012D5 E8E2D4D3C5AAF9F3EEF3E8DC db 0E8h,0E2h,0D4h,0D3h,0C5h,0AAh,0F9h,0F3h,0EEh,0F3h,0E8h,0DCh +000012E1 F5EBE1D3C5AAE8E2D4FFFFFF db 0F5h,0EBh,0E1h,0D3h,0C5h,0AAh,0E8h,0E2h,0D4h,0FFh,0FFh,0FFh +000012ED FFFFFFFFFFFFFFFFFFFFFFFF db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +000012F9 FFFFFFFFFFFFFFFFFFE7E1D3 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0E1h,0D3h +00001305 D1C3A8F8EFE8F9F3EEF3E8DC db 0D1h,0C3h,0A8h,0F8h,0EFh,0E8h,0F9h,0F3h,0EEh,0F3h,0E8h,0DCh +00001311 F1E3D6F3E7DCD1C3A8E7E1D3 db 0F1h,0E3h,0D6h,0F3h,0E7h,0DCh,0D1h,0C3h,0A8h,0E7h,0E1h,0D3h +0000131D FFFFFFFFFFFFFFFFFFFFFFFF db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00001329 FFFFFFFFFFFFE7E0D2D0C2A6 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0E0h,0D2h,0D0h,0C2h,0A6h +00001335 F3E7DCF5EAE0F9F3EEF3E8DC db 0F3h,0E7h,0DCh,0F5h,0EAh,0E0h,0F9h,0F3h,0EEh,0F3h,0E8h,0DCh +00001341 F1E3D6EFDFCFF3E7DAD0C2A6 db 0F1h,0E3h,0D6h,0EFh,0DFh,0CFh,0F3h,0E7h,0DAh,0D0h,0C2h,0A6h +0000134D E7E0D2FFFFFFFFFFFFFFFFFF db 0E7h,0E0h,0D2h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00001359 FFFFFFFFFFFFCEC0A4F8F2EC db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0CEh,0C0h,0A4h,0F8h,0F2h,0ECh +00001365 ECB39BD6714FBC5836AC4725 db 0ECh,0B3h,9Bh,0D6h,71h,4Fh,0BCh,58h,36h,0ACh,47h,25h +00001371 B14624C8512FE7A188F8F0E8 db 0B1h,46h,24h,0C8h,51h,2Fh,0E7h,0A1h,88h,0F8h,0F0h,0E8h +0000137D CEC0A4FFFFFFFFFFFFFFFFFF db 0CEh,0C0h,0A4h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +00001389 FFFFFFFFFFFFCDBEA1F6EDE5 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0CDh,0BEh,0A1h,0F6h,0EDh,0E5h +00001395 EB8563B5A9A8CCB5B1A29A9D db 0EBh,85h,63h,0B5h,0A9h,0A8h,0CCh,0B5h,0B1h,0A2h,9Ah,9Dh +000013A1 9A9295999294E25F3DF5EBE1 db 9Ah,92h,95h,99h,92h,94h,0E2h,5Fh,3Dh,0F5h,0EBh,0E1h +000013AD CDBEA1FFFFFFFFFFFFFFFFFF db 0CDh,0BEh,0A1h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +000013B9 FFFFFFFFFFFFC9BA9CF6EDE5 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0C9h,0BAh,9Ch,0F6h,0EDh,0E5h +000013C5 EB8563D6714FBC5836AC4725 db 0EBh,85h,63h,0D6h,71h,4Fh,0BCh,58h,36h,0ACh,47h,25h +000013D1 B14624C8512FE25F3DF5EBE1 db 0B1h,46h,24h,0C8h,51h,2Fh,0E2h,5Fh,3Dh,0F5h,0EBh,0E1h +000013DD C9BA9CFFFFFFFFFFFFFFFFFF db 0C9h,0BAh,9Ch,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh +000013E9 F5F5F5E8E8E8C3B393F6EDE5 db 0F5h,0F5h,0F5h,0E8h,0E8h,0E8h,0C3h,0B3h,93h,0F6h,0EDh,0E5h +000013F5 EFDECFF5EAE0F9F3EEF3E8DC db 0EFh,0DEh,0CFh,0F5h,0EAh,0E0h,0F9h,0F3h,0EEh,0F3h,0E8h,0DCh +00001401 F1E3D6EFDFCFEEDDCDF5EBE1 db 0F1h,0E3h,0D6h,0EFh,0DFh,0CFh,0EEh,0DDh,0CDh,0F5h,0EBh,0E1h +0000140D C3B393E8E8E8F5F5F5FFFFFF db 0C3h,0B3h,93h,0E8h,0E8h,0E8h,0F5h,0F5h,0F5h,0FFh,0FFh,0FFh +00001419 ECECECD2D2D259759F335296 db 0ECh,0ECh,0ECh,0D2h,0D2h,0D2h,59h,75h,9Fh,33h,52h,96h +00001425 334488334387333A77333367 db 33h,44h,88h,33h,43h,87h,33h,3Ah,77h,33h,33h,67h +00001431 33376B334077334B86335796 db 33h,37h,6Bh,33h,40h,77h,33h,4Bh,86h,33h,57h,96h +0000143D 59749DD1D1D1ECECECFFFFFF db 59h,74h,9Dh,0D1h,0D1h,0D1h,0ECh,0ECh,0ECh,0FFh,0FFh,0FFh + +main.c 34: int DefineWindow(dword wtitle, wbutton) +00001449 55 push ebp +0000144A 89E5 mov ebp,esp + +main.c 36: sc.get(); +0000144C 6810510000 push 5110h +00001451 E824ECFFFF call 7Ah + +main.c 37: DefineAndDrawWindow(GetScreenWidth()-WIN_W/2,GetScreenHeight()-WIN_H/2-30, WIN_W+9, WIN_H+GetSkinHeight()+4, 0x74,0xFFFfff); +00001456 E8FF130000 call 285Ah +0000145B 2DF4010000 sub eax,1F4h +00001460 D1E8 shr eax,1 +00001462 50 push eax +00001463 E8FD130000 call 2865h +00001468 2D5E010000 sub eax,15Eh +0000146D D1E8 shr eax,1 +0000146F 83E81E sub eax,1Eh +00001472 50 push eax +00001473 68FD010000 push 1FDh +00001478 B85E010000 mov eax,15Eh +0000147D 50 push eax +0000147E E8C8130000 call 284Bh +00001483 5A pop edx +00001484 01D0 add eax,edx +00001486 83C004 add eax,4 +00001489 50 push eax +0000148A 6A74 push 74h +0000148C 68FFFFFF00 push 0FFFFFFh +00001491 E8F9EBFFFF call 8Fh + +main.c 38: DrawTitle("KolibriN 8.2a Setup"); +00001496 B97E160000 mov ecx,167Eh +0000149B E810150000 call 29B0h + +main.c 39: GetProcessInfo(#Form, SelfInfo); +000014A0 BB104D0000 mov ebx,4D10h +000014A5 83C9FF or ecx,0FFFFFFFFh +000014A8 E87A130000 call 2827h + +main.c 40: if (Form.status_window>2) return 0; //rolled_up +000014AD 803D564D000002 cmp byte ptr [4D56h],2 +000014B4 0F8E07000000 jle 14C1h +000014BA 31C0 xor eax,eax +000014BC E987000000 jmp 1548h + +main.c 42: DrawBar(0, 0, Form.cwidth, BLACK_H, 0); +000014C1 6A00 push 0 +000014C3 6A00 push 0 +000014C5 FF35574D0000 push dword ptr [4D57h] +000014CB 6A28 push 28h +000014CD 31D2 xor edx,edx +000014CF E8D5ECFFFF call 1A9h + +main.c 43: DrawBar(0, BLACK_H, Form.cwidth, Form.cheight-BLACK_H, 0xFFFfff); +000014D4 6A00 push 0 +000014D6 6A28 push 28h +000014D8 FF35574D0000 push dword ptr [4D57h] +000014DE A15B4D0000 mov eax,[4D5Bh] +000014E3 83E828 sub eax,28h +000014E6 50 push eax +000014E7 BAFFFFFF00 mov edx,0FFFFFFh +000014EC E8B8ECFFFF call 1A9h + +main.c 44: _PutImage(BLACK_H-LOGOW/2, BLACK_H-LOGOH/2, LOGOW,LOGOH, #logo); +000014F1 6A0C push 0Ch +000014F3 6A0C push 0Ch +000014F5 6A10 push 10h +000014F7 6A10 push 10h +000014F9 BB490B0000 mov ebx,0B49h +000014FE E868ECFFFF call 16Bh + +main.c 45: WriteTextB(BLACK_H-LOGOW + LOGOW, BLACK_H-6/2, 0x90, 0xFFFfff, wtitle); +00001503 6A28 push 28h +00001505 6A11 push 11h +00001507 6890000000 push 90h +0000150C 68FFFFFF00 push 0FFFFFFh +00001511 8B550C mov edx,[ebp+0Ch] +00001514 E8ADEBFFFF call 0C6h + +main.c 46: DrawCaptButton(Form.cwidth-107, Form.cheight-40, 90, 24, 10, sc.work_button, sc.work_button_text,wbutton); +00001519 A1574D0000 mov eax,[4D57h] +0000151E 83E86B sub eax,6Bh +00001521 50 push eax +00001522 A15B4D0000 mov eax,[4D5Bh] +00001527 83E828 sub eax,28h +0000152A 50 push eax +0000152B 6A5A push 5Ah +0000152D 6A18 push 18h +0000152F 6A0A push 0Ah +00001531 FF3528510000 push dword ptr [5128h] +00001537 FF352C510000 push dword ptr [512Ch] +0000153D FF7508 push dword ptr [ebp+8] +00001540 E82FEFFFFF call 474h + +main.c 47: return 1; +00001545 31C0 xor eax,eax +00001547 40 inc eax +00001548 5D pop ebp +00001549 C20800 ret 8 + +copyf.c 4: void copyf(dword params) +0000154C C8342200 enter 2234h,0 + +copyf.c 10: mem_Init(); +00001550 E889F0FFFF call 5DEh + +copyf.c 11: if (!params) { notify("Error: no copyf params!"); return; } +00001555 837D0800 cmp dword ptr [ebp+8],0 +00001559 0F850F000000 jnz 156Eh +0000155F 6892160000 push 1692h +00001564 E859F0FFFF call 5C2h +00001569 E90C010000 jmp 167Ah + +copyf.c 12: program_path[strrchr(#program_path, '/')] = 0x0; +0000156E BE3E3C0000 mov esi,3C3Eh +00001573 B32F mov bl,2Fh +00001575 E8A5100000 call 261Fh +0000157A 89C6 mov esi,eax +0000157C C6863E3C000000 mov byte ptr [esi+3C3Eh],0 + +copyf.c 13: border = strchr(params, '|'); +00001583 8B7508 mov esi,[ebp+8] +00001586 B37C mov bl,7Ch +00001588 E8D5110000 call 2762h +0000158D 8985CCDDFFFF mov [ebp-2234h],eax + +copyf.c 14: if (!border) border = strchr(params, ' '); +00001593 85C0 test eax,eax +00001595 0F8510000000 jnz 15ABh +0000159B 8B7508 mov esi,[ebp+8] +0000159E B320 mov bl,20h +000015A0 E8BD110000 call 2762h +000015A5 8985CCDDFFFF mov [ebp-2234h],eax + +copyf.c 16: if (ESBYTE[params]<>'/') +000015AB 8B7508 mov esi,[ebp+8] +000015AE 26803E2F cmp byte ptr es:[esi],2Fh +000015B2 0F8440000000 jz 15F8h + +copyf.c 18: strcpy(#from, #program_path); +000015B8 8DBD00F0FFFF lea edi,[ebp-1000h] +000015BE BE3E3C0000 mov esi,3C3Eh +000015C3 E865110000 call 272Dh + +copyf.c 19: strcat(#from, params); +000015C8 8DBD00F0FFFF lea edi,[ebp-1000h] +000015CE 8B7508 mov esi,[ebp+8] +000015D1 E85F110000 call 2735h + +copyf.c 20: from[border+strlen(#program_path)-1]=NULL; +000015D6 8BB5CCDDFFFF mov esi,[ebp-2234h] +000015DC 56 push esi +000015DD BF3E3C0000 mov edi,3C3Eh +000015E2 E838110000 call 271Fh +000015E7 5E pop esi +000015E8 01C6 add esi,eax +000015EA 4E dec esi +000015EB C6843500F0FFFF00 mov byte ptr [ebp+esi-1000h],0 + +copyf.c 22: else +000015F3 E91A000000 jmp 1612h + +copyf.c 24: strcat(#from, params); +000015F8 8DBD00F0FFFF lea edi,[ebp-1000h] +000015FE E832110000 call 2735h + +copyf.c 25: from[border-1]=NULL; +00001603 8BB5CCDDFFFF mov esi,[ebp-2234h] +00001609 4E dec esi +0000160A C6843500F0FFFF00 mov byte ptr [ebp+esi-1000h],0 + +copyf.c 27: strcpy(#to, params+border); +00001612 8DBD00E0FFFF lea edi,[ebp-2000h] +00001618 8B7508 mov esi,[ebp+8] +0000161B 03B5CCDDFFFF add esi,[ebp-2234h] +00001621 E807110000 call 272Dh + +copyf.c 29: GetFileInfo(#from, #from_atr); +00001626 8D8500F0FFFF lea eax,[ebp-1000h] +0000162C 50 push eax +0000162D 8D85D0DDFFFF lea eax,[ebp-2230h] +00001633 50 push eax +00001634 E851120000 call 288Ah + +copyf.c 30: if (TestBit(from_atr.attr, 4)==1) +00001639 8B85D0DDFFFF mov eax,[ebp-2230h] +0000163F B104 mov cl,4 +00001641 E886110000 call 27CCh +00001646 83F801 cmp eax,1 +00001649 0F8518000000 jnz 1667h + +copyf.c 32: CopyFolder(#from, #to); +0000164F 8D8500F0FFFF lea eax,[ebp-1000h] +00001655 50 push eax +00001656 8D8500E0FFFF lea eax,[ebp-2000h] +0000165C 50 push eax +0000165D E848000000 call 16AAh + +copyf.c 34: else +00001662 E913000000 jmp 167Ah + +copyf.c 36: CopyFile(#from, #to); +00001667 8D8500F0FFFF lea eax,[ebp-1000h] +0000166D 50 push eax +0000166E 8D8500E0FFFF lea eax,[ebp-2000h] +00001674 50 push eax +00001675 E83F140000 call 2AB9h +0000167A C9 leave +0000167B C20400 ret 4 + +0000167E 4B6F6C696272694E20382E32 db 'KolibriN 8.2' +0000168A 61205365747570004572726F db 'a Setup',0,'Erro' +00001696 723A206E6F20636F70796620 db 'r: no copyf ' +000016A2 706172616D732100 db 'params!',0 + +copyf.c 41: void CopyFolder(dword from, to) +000016AA C8184000 enter 4018h,0 + +copyf.c 48: error = GetDir(#dirbuf, #fcount, from); +000016AE 8D45FC lea eax,[ebp-4] +000016B1 50 push eax +000016B2 8D45F8 lea eax,[ebp-8] +000016B5 50 push eax +000016B6 FF750C push dword ptr [ebp+0Ch] +000016B9 E80F120000 call 28CDh +000016BE 8945EC mov [ebp-14h],eax + +copyf.c 49: if (error) debug_error(from, error); +000016C1 85C0 test eax,eax +000016C3 0F8409000000 jz 16D2h +000016C9 FF750C push dword ptr [ebp+0Ch] +000016CC 50 push eax +000016CD E8F7040000 call 1BC9h + +copyf.c 51: if ((strcmp(to, "/sys")!=0) && (strcmp(to, "/tmp9/1")!=0)) +000016D2 8B7508 mov esi,[ebp+8] +000016D5 BFD1180000 mov edi,18D1h +000016DA E81F0F0000 call 25FEh +000016DF 85C0 test eax,eax +000016E1 0F8431000000 jz 1718h +000016E7 8B7508 mov esi,[ebp+8] +000016EA BFD6180000 mov edi,18D6h +000016EF E80A0F0000 call 25FEh +000016F4 85C0 test eax,eax +000016F6 0F841C000000 jz 1718h + +copyf.c 53: error = CreateDir(to); +000016FC FF7508 push dword ptr [ebp+8] +000016FF E877130000 call 2A7Bh +00001704 8945EC mov [ebp-14h],eax + +copyf.c 54: if (error) debug_error(to, error); +00001707 85C0 test eax,eax +00001709 0F8409000000 jz 1718h +0000170F FF7508 push dword ptr [ebp+8] +00001712 50 push eax +00001713 E8B1040000 call 1BC9h + +copyf.c 56: chrcat(to, '/'); +00001718 8B7508 mov esi,[ebp+8] +0000171B B32F mov bl,2Fh +0000171D E886100000 call 27A8h + +copyf.c 57: chrcat(from, '/'); +00001722 8B750C mov esi,[ebp+0Ch] +00001725 B32F mov bl,2Fh +00001727 E87C100000 call 27A8h + +copyf.c 59: for (i=0; i100) InstallationLoop(); +00001F30 E848090000 call 287Dh +00001F35 C1E80A shr eax,0Ah +00001F38 83F864 cmp eax,64h +00001F3B 0F860A000000 jbe 1F4Bh +00001F41 E843000000 call 1F89h + +hallo.c 47: else notify("You do not have enought free RAM for installation!"); +00001F46 E90A000000 jmp 1F55h +00001F4B 68561F0000 push 1F56h +00001F50 E86DE6FFFF call 5C2h +00001F55 C3 ret + +00001F56 596F7520646F206E6F742068 db 'You do not h' +00001F62 61766520656E6F7567687420 db 'ave enought ' +00001F6E 667265652052414D20666F72 db 'free RAM for' +00001F7A 20696E7374616C6C6174696F db ' installatio' +00001F86 6E2100 db 'n!',0 + +installation.c 2: void InstallationLoop() +00001F89 C80B0000 enter 0Bh,0 +00001F8D 6A00 push 0 + +installation.c 5: goto _INSTALL_DRAW; +00001F8F E96F000000 jmp 2003h + +installation.c 7: loop() switch(WaitEvent()) +00001F94 E823080000 call 27BCh +00001F99 83F801 cmp eax,1 +00001F9C 0F8461000000 jz 2003h +00001FA2 83F802 cmp eax,2 +00001FA5 0F844B000000 jz 1FF6h +00001FAB 83F803 cmp eax,3 +00001FAE 0F8579000000 jnz 202Dh + +installation.c 10: id=GetButtonID(); +00001FB4 E8B9080000 call 2872h +00001FB9 8845FC mov [ebp-4],al + +installation.c 11: if(id == 1) ExitProcess(); +00001FBC 3C01 cmp al,1 +00001FBE 0F8505000000 jnz 1FC9h +00001FC4 E8DF090000 call 29A8h + +installation.c 12: if (id == 11) RunProgram("/sys/htmlv", "http://kolibri-n.org/donate.php"); +00001FC9 807DFC0B cmp byte ptr [ebp-4],0Bh +00001FCD 0F850F000000 jnz 1FE2h +00001FD3 6834200000 push 2034h +00001FD8 683F200000 push 203Fh +00001FDD E89FE5FFFF call 581h + +installation.c 13: if (id == 10) HalloLoop(); +00001FE2 807DFC0A cmp byte ptr [ebp-4],0Ah +00001FE6 0F8505000000 jnz 1FF1h +00001FEC E8F2FCFFFF call 1CE3h + +installation.c 14: break; +00001FF1 E937000000 jmp 202Dh + +installation.c 16: key = GetKey(); +00001FF6 E80F080000 call 280Ah +00001FFB 8845F8 mov [ebp-8],al + +installation.c 17: break; +00001FFE E92A000000 jmp 202Dh + +installation.c 20: if !(DefineWindow("Installation Started", "Stop")) break; +00002003 685F200000 push 205Fh +00002008 6874200000 push 2074h +0000200D E837F4FFFF call 1449h +00002012 85C0 test eax,eax +00002014 0F8413000000 jz 202Dh + +installation.c 21: if (started) break; +0000201A 807DF400 cmp byte ptr [ebp-0Ch],0 +0000201E 0F8509000000 jnz 202Dh + +installation.c 22: started = true; +00002024 C645F401 mov byte ptr [ebp-0Ch],1 + +installation.c 23: Install(); +00002028 E8FC000000 call 2129h +0000202D E962FFFFFF jmp 1F94h +00002032 C9 leave +00002033 C3 ret + +00002034 2F7379732F68746D6C760068 db '/sys/htmlv',0,'h' +00002040 7474703A2F2F6B6F6C696272 db 'ttp://kolibr' +0000204C 692D6E2E6F72672F646F6E61 db 'i-n.org/dona' +00002058 74652E70687000496E737461 db 'te.php',0,'Insta' +00002064 6C6C6174696F6E2053746172 db 'llation Star' +00002070 7465640053746F7000 db 'ted',0,'Stop',0 + +installation.c 28: char iclock[3]={1,2}; +00002079 010200 db 1,2,0 + +installation.c 29: void ShowProgress(dword text1) +0000207C 55 push ebp +0000207D 89E5 mov ebp,esp + +installation.c 31: iclock[0]>DSBYTE[EDI]) RETURN 1; +00002608 8A07 mov al,[edi] +0000260A 3806 cmp [esi],al +0000260C 7604 jbe 2612h +0000260E 31C0 xor eax,eax +00002610 40 inc eax +00002611 C3 ret + +..\lib\strings.h 25: IF (DSBYTE[ESI]=='\0') RETURN 0; +00002612 803E00 cmp byte ptr [esi],0 +00002615 7503 jne 261Ah +00002617 31C0 xor eax,eax +00002619 C3 ret + +..\lib\strings.h 26: ESI++; +0000261A 46 inc esi + +..\lib\strings.h 27: EDI++; +0000261B 47 inc edi +0000261C EBE0 jmp short 25FEh +0000261E C3 ret + + strrchr() +0000261F 55 push ebp +00002620 89E5 mov ebp,esp +00002622 6A00 push 0 +00002624 6A00 push 0 + +..\lib\strings.h 141: jj++; +00002626 FF45FC inc dword ptr [ebp-4] + +..\lib\strings.h 142: $lodsb +00002629 AC lodsb + +..\lib\strings.h 143: IF(AL==BL) last=jj; +0000262A 38D8 cmp al,bl +0000262C 7506 jne 2634h +0000262E 8B45FC mov eax,[ebp-4] +00002631 8945F8 mov [ebp-8],eax + +..\lib\strings.h 144: } while(AL!=0); +00002634 84C0 test al,al +00002636 75EE jne 2626h + +..\lib\strings.h 145: return last; +00002638 8B45F8 mov eax,[ebp-8] +0000263B C9 leave +0000263C C3 ret + +..\lib\strings.h 164: MOV EDI, EDX +0000263D 89D7 mov edi,edx + +..\lib\strings.h 165: XOR ECX, ECX +0000263F 33C9 xor ecx,ecx + +..\lib\strings.h 166: XOR EAX, EAX +00002641 33C0 xor eax,eax + +..\lib\strings.h 167: DEC ECX +00002643 49 dec ecx + +..\lib\strings.h 168: REPNE SCASB +00002644 F2AE repne scasb + +..\lib\strings.h 169: NOT ECX +00002646 F7D1 not ecx + +..\lib\strings.h 170: DEC ECX +00002648 49 dec ecx + +..\lib\strings.h 171: JE LS2 +00002649 742C je 2677h + +..\lib\strings.h 172: MOV ESI, ECX +0000264B 89CE mov esi,ecx + +..\lib\strings.h 173: XOR ECX, ECX +0000264D 33C9 xor ecx,ecx + +..\lib\strings.h 174: MOV EDI, EBX +0000264F 89DF mov edi,ebx + +..\lib\strings.h 175: DEC ECX +00002651 49 dec ecx + +..\lib\strings.h 176: REPNE SCASB +00002652 F2AE repne scasb + +..\lib\strings.h 177: NOT ECX +00002654 F7D1 not ecx + +..\lib\strings.h 178: SUB ECX, ESI +00002656 2BCE sub ecx,esi + +..\lib\strings.h 179: JBE LS2 +00002658 761D jbe 2677h + +..\lib\strings.h 180: MOV EDI, EBX +0000265A 89DF mov edi,ebx + +..\lib\strings.h 181: LEA EBX, DSDWORD[ ESI-1] +0000265C 8D5EFF lea ebx,[esi-1] + +..\lib\strings.h 182: LS1: MOV ESI, EDX +0000265F 89D6 mov esi,edx + +..\lib\strings.h 183: LODSB +00002661 AC lodsb + +..\lib\strings.h 184: REPNE SCASB +00002662 F2AE repne scasb + +..\lib\strings.h 185: JNE LS2 +00002664 7511 jne 2677h + +..\lib\strings.h 186: MOV EAX, ECX +00002666 89C8 mov eax,ecx + +..\lib\strings.h 187: PUSH EDI +00002668 57 push edi + +..\lib\strings.h 188: MOV ECX, EBX +00002669 89D9 mov ecx,ebx + +..\lib\strings.h 189: REPE CMPSB +0000266B F3A6 repe cmpsb + +..\lib\strings.h 190: POP EDI +0000266D 5F pop edi + +..\lib\strings.h 191: MOV ECX, EAX +0000266E 89C1 mov ecx,eax + +..\lib\strings.h 192: JNE LS1 +00002670 75ED jne 265Fh + +..\lib\strings.h 193: LEA EAX, DSDWORD[ EDI-1] +00002672 8D47FF lea eax,[edi-1] + +..\lib\strings.h 194: JMP SHORT LS3 +00002675 EB02 jmp short 2679h + +..\lib\strings.h 195: LS2: XOR EAX, EAX +00002677 33C0 xor eax,eax + +..\lib\strings.h 196: LS3: +00002679 C3 ret + +..\lib\encoding.h 4: while (BL=ESBYTE[ESI]) +0000267A E994000000 jmp 2713h + +..\lib\encoding.h 6: IF (BL>=192) +0000267F 80FBC0 cmp bl,0C0h +00002682 7217 jc 269Bh + +..\lib\encoding.h 8: IF (BL>=240) ESBYTE[ESI] = BL - 16; +00002684 80FBF0 cmp bl,0F0h +00002687 7209 jc 2692h +00002689 88D8 mov al,bl +0000268B 2C10 sub al,10h +0000268D 268806 mov es:[esi],al + +..\lib\encoding.h 9: ELSE ESBYTE[ESI] = BL - 64; +00002690 EB07 jmp short 2699h +00002692 88D8 mov al,bl +00002694 2C40 sub al,40h +00002696 268806 mov es:[esi],al + +..\lib\encoding.h 11: ELSE +00002699 EB77 jmp short 2712h + +..\lib\encoding.h 13: IF (BL==178) ESBYTE[ESI] = 73; //I +0000269B 80FBB2 cmp bl,0B2h +0000269E 7504 jne 26A4h +000026A0 26C60649 mov byte ptr es:[esi],49h + +..\lib\encoding.h 14: IF (BL==179) ESBYTE[ESI] = 105; //i +000026A4 80FBB3 cmp bl,0B3h +000026A7 7504 jne 26ADh +000026A9 26C60669 mov byte ptr es:[esi],69h + +..\lib\encoding.h 15: IF (BL==175) ESBYTE[ESI] = 244; //J +000026AD 80FBAF cmp bl,0AFh +000026B0 7504 jne 26B6h +000026B2 26C606F4 mov byte ptr es:[esi],0F4h + +..\lib\encoding.h 16: IF (BL==191) ESBYTE[ESI] = 245; //j +000026B6 80FBBF cmp bl,0BFh +000026B9 7504 jne 26BFh +000026BB 26C606F5 mov byte ptr es:[esi],0F5h + +..\lib\encoding.h 17: IF (BL==170) ESBYTE[ESI] = 242; //E +000026BF 80FBAA cmp bl,0AAh +000026C2 7504 jne 26C8h +000026C4 26C606F2 mov byte ptr es:[esi],0F2h + +..\lib\encoding.h 18: IF (BL==186) ESBYTE[ESI] = 243; //e +000026C8 80FBBA cmp bl,0BAh +000026CB 7504 jne 26D1h +000026CD 26C606F3 mov byte ptr es:[esi],0F3h + +..\lib\encoding.h 19: IF (BL==168) ESBYTE[ESI] = 240; // +000026D1 80FBA8 cmp bl,0A8h +000026D4 7504 jne 26DAh +000026D6 26C606F0 mov byte ptr es:[esi],0F0h + +..\lib\encoding.h 20: IF (BL==184) ESBYTE[ESI] = 'e'; //e +000026DA 80FBB8 cmp bl,0B8h +000026DD 7504 jne 26E3h +000026DF 26C60665 mov byte ptr es:[esi],65h + +..\lib\encoding.h 21: IF (BL==180) ESBYTE[ESI] = 254; // +000026E3 80FBB4 cmp bl,0B4h +000026E6 7504 jne 26ECh +000026E8 26C606FE mov byte ptr es:[esi],0FEh + +..\lib\encoding.h 22: IF ((BL==147) || (BL==148) || (BL==171) || (BL==187)) ESBYTE[ESI] = 34; +000026EC 80FB93 cmp bl,93h +000026EF 740F je 2700h +000026F1 80FB94 cmp bl,94h +000026F4 740A je 2700h +000026F6 80FBAB cmp bl,0ABh +000026F9 7405 je 2700h +000026FB 80FBBB cmp bl,0BBh +000026FE 7504 jne 2704h +00002700 26C60622 mov byte ptr es:[esi],22h + +..\lib\encoding.h 23: IF ((BL==150) || (BL==151)) ESBYTE[ESI] = 45; +00002704 80FB96 cmp bl,96h +00002707 7405 je 270Eh +00002709 80FB97 cmp bl,97h +0000270C 7504 jne 2712h +0000270E 26C6062D mov byte ptr es:[esi],2Dh + +..\lib\encoding.h 25: ESI++; +00002712 46 inc esi + +..\lib\encoding.h 4: while (BL=ESBYTE[ESI]) +00002713 268A1E mov bl,es:[esi] +00002716 84DB test bl,bl +00002718 0F8561FFFFFF jnz 267Fh +0000271E C3 ret + +..\lib\strings.h 56: $xor eax, eax +0000271F 33C0 xor eax,eax + +..\lib\strings.h 57: $mov ecx, -1 +00002721 B9FFFFFFFF mov ecx,0FFFFFFFFh + +..\lib\strings.h 58: $REPNE $SCASB +00002726 F2AE repne scasb + +..\lib\strings.h 59: EAX-=2+ECX; +00002728 48 dec eax +00002729 48 dec eax +0000272A 29C8 sub eax,ecx +0000272C C3 ret + +..\lib\strings.h 65: $cld +0000272D FC cld + +..\lib\strings.h 67: $lodsb +0000272E AC lodsb + +..\lib\strings.h 68: $stosb +0000272F AA stosb + +..\lib\strings.h 69: $test al,al +00002730 84C0 test al,al + +..\lib\strings.h 70: $jnz L2 +00002732 75FA jne 272Eh +00002734 C3 ret + +..\lib\strings.h 92: mov ebx, edi +00002735 89FB mov ebx,edi + +..\lib\strings.h 93: xor ecx, ecx +00002737 33C9 xor ecx,ecx + +..\lib\strings.h 94: xor eax, eax +00002739 33C0 xor eax,eax + +..\lib\strings.h 95: dec ecx +0000273B 49 dec ecx + +..\lib\strings.h 96: repne scasb +0000273C F2AE repne scasb + +..\lib\strings.h 97: dec edi +0000273E 4F dec edi + +..\lib\strings.h 98: mov edx, edi +0000273F 89FA mov edx,edi + +..\lib\strings.h 99: mov edi, esi +00002741 89F7 mov edi,esi + +..\lib\strings.h 100: xor ecx, ecx +00002743 33C9 xor ecx,ecx + +..\lib\strings.h 101: xor eax, eax +00002745 33C0 xor eax,eax + +..\lib\strings.h 102: dec ecx +00002747 49 dec ecx + +..\lib\strings.h 103: repne scasb +00002748 F2AE repne scasb + +..\lib\strings.h 104: xor ecx, 0ffffffffh +0000274A 83F1FF xor ecx,0FFFFFFFFh + +..\lib\strings.h 105: mov edi, edx +0000274D 89D7 mov edi,edx + +..\lib\strings.h 106: mov edx, ecx +0000274F 89CA mov edx,ecx + +..\lib\strings.h 107: mov eax, edi +00002751 89F8 mov eax,edi + +..\lib\strings.h 108: shr ecx, 2 +00002753 C1E902 shr ecx,2 + +..\lib\strings.h 109: rep movsd +00002756 F3A5 repe movsd + +..\lib\strings.h 110: mov ecx, edx +00002758 89D1 mov ecx,edx + +..\lib\strings.h 111: and ecx, 3 +0000275A 83E103 and ecx,3 + +..\lib\strings.h 112: rep movsb +0000275D F3A4 repe movsb + +..\lib\strings.h 113: mov eax, ebx +0000275F 89D8 mov eax,ebx +00002761 C3 ret + + strchr() +00002762 55 push ebp +00002763 89E5 mov ebp,esp +00002765 6A00 push 0 + +..\lib\strings.h 129: jj++; +00002767 FF45FC inc dword ptr [ebp-4] + +..\lib\strings.h 130: $lodsb +0000276A AC lodsb + +..\lib\strings.h 131: IF(AL==BL) return jj; +0000276B 38D8 cmp al,bl +0000276D 7505 jne 2774h +0000276F 8B45FC mov eax,[ebp-4] +00002772 C9 leave +00002773 C3 ret + +..\lib\strings.h 132: } while(AL!=0); +00002774 84C0 test al,al +00002776 75EF jne 2767h + +..\lib\strings.h 133: return 0; +00002778 31C0 xor eax,eax +0000277A C9 leave +0000277B C3 ret + +..\lib\kolibri.h 141: $mov eax, 5 +0000277C B805000000 mov eax,5 + +..\lib\kolibri.h 142: $int 0x40 +00002781 CD40 int 40h +00002783 C3 ret + +..\lib\kolibri.h 327: $push eax +00002784 50 push eax + +..\lib\kolibri.h 328: $push ebx +00002785 53 push ebx + +..\lib\kolibri.h 329: $push ecx +00002786 51 push ecx + +..\lib\kolibri.h 330: $mov eax, 63 +00002787 B83F000000 mov eax,3Fh + +..\lib\kolibri.h 331: $mov ebx, 1 +0000278C BB01000000 mov ebx,1 + +..\lib\kolibri.h 333: $mov ecx, DSDWORD[edx] +00002791 8B0A mov ecx,[edx] + +..\lib\kolibri.h 334: $or cl, cl +00002793 0AC9 or cl,cl + +..\lib\kolibri.h 335: $jz DONE +00002795 7405 je 279Ch + +..\lib\kolibri.h 336: $int 0x40 +00002797 CD40 int 40h + +..\lib\kolibri.h 337: $inc edx +00002799 42 inc edx + +..\lib\kolibri.h 338: $jmp NEXT_CHAR +0000279A EBF5 jmp short 2791h + +..\lib\kolibri.h 340: $mov cl, 13 +0000279C B10D mov cl,0Dh + +..\lib\kolibri.h 341: $int 0x40 +0000279E CD40 int 40h + +..\lib\kolibri.h 342: $mov cl, 10 +000027A0 B10A mov cl,0Ah + +..\lib\kolibri.h 343: $int 0x40 +000027A2 CD40 int 40h + +..\lib\kolibri.h 344: $pop ecx +000027A4 59 pop ecx + +..\lib\kolibri.h 345: $pop ebx +000027A5 5B pop ebx + +..\lib\kolibri.h 346: $pop eax +000027A6 58 pop eax +000027A7 C3 ret + +..\lib\strings.h 119: EDI = strlen(ESI); +000027A8 89F7 mov edi,esi +000027AA E870FFFFFF call 271Fh +000027AF 89C7 mov edi,eax + +..\lib\strings.h 120: ESBYTE[ESI+EDI] = BL; +000027B1 26881C3E mov es:[esi+edi],bl + +..\lib\strings.h 121: ESBYTE[ESI+EDI+1] = 0; +000027B5 26C6443E0100 mov byte ptr es:[esi+edi+1],0 +000027BB C3 ret + +..\lib\kolibri.h 91: $mov eax,10 +000027BC B80A000000 mov eax,0Ah + +..\lib\kolibri.h 92: $int 0x40 +000027C1 CD40 int 40h +000027C3 C3 ret + +..\lib\kolibri.h 109: $mov eax,40 +000027C4 B828000000 mov eax,28h + +..\lib\kolibri.h 110: $int 0x40 +000027C9 CD40 int 40h +000027CB C3 ret + +..\lib\kolibri.h 314: $shr eax,cl +000027CC D3E8 shr eax,cl + +..\lib\kolibri.h 315: $and eax,1 +000027CE 83E001 and eax,1 +000027D1 C3 ret + +..\lib\kolibri.h 286: EAX = 48; +000027D2 6A30 push 30h +000027D4 58 pop eax + +..\lib\kolibri.h 287: EBX = 8; +000027D5 6A08 push 8 +000027D7 5B pop ebx + +..\lib\kolibri.h 288: $int 0x40 +000027D8 CD40 int 40h +000027DA C3 ret + +..\lib\kolibri.h 164: $mov eax, 68 +000027DB B844000000 mov eax,44h + +..\lib\kolibri.h 165: $mov ebx, 16 +000027E0 BB10000000 mov ebx,10h + +..\lib\kolibri.h 166: $int 0x40 +000027E5 CD40 int 40h +000027E7 C3 ret + +..\lib\kolibri.h 172: $mov eax, 68 +000027E8 B844000000 mov eax,44h + +..\lib\kolibri.h 173: $mov ebx, 17 +000027ED BB11000000 mov ebx,11h + +..\lib\kolibri.h 174: $int 0x40 +000027F2 CD40 int 40h +000027F4 C3 ret + +..\lib\kolibri.h 244: $mov eax,18; +000027F5 B812000000 mov eax,12h + +..\lib\kolibri.h 245: $mov ebx,18; +000027FA BB12000000 mov ebx,12h + +..\lib\kolibri.h 246: $int 0x40 +000027FF CD40 int 40h +00002801 C3 ret + +..\lib\kolibri.h 97: $mov eax,11 +00002802 B80B000000 mov eax,0Bh + +..\lib\kolibri.h 98: $int 0x40 +00002807 CD40 int 40h +00002809 C3 ret + +..\lib\kolibri.h 122: $push edx +0000280A 52 push edx + +..\lib\kolibri.h 124: $mov eax,2 +0000280B B802000000 mov eax,2 + +..\lib\kolibri.h 125: $int 0x40 +00002810 CD40 int 40h + +..\lib\kolibri.h 126: $cmp eax,1 +00002812 83F801 cmp eax,1 + +..\lib\kolibri.h 127: $jne GETKEYI +00002815 7507 jne 281Eh + +..\lib\kolibri.h 128: $mov ah,dh +00002817 88F4 mov ah,dh + +..\lib\kolibri.h 129: $jmp GETKEYII //jz? +00002819 E904000000 jmp 2822h + +..\lib\kolibri.h 131: $mov dh,ah +0000281E 88E6 mov dh,ah + +..\lib\kolibri.h 132: $jmp GETKEY +00002820 EBE9 jmp short 280Bh + +..\lib\kolibri.h 134: $pop edx +00002822 5A pop edx + +..\lib\kolibri.h 135: $shr eax,8 +00002823 C1E808 shr eax,8 +00002826 C3 ret + +..\lib\kolibri.h 195: $mov eax,9; +00002827 B809000000 mov eax,9 + +..\lib\kolibri.h 196: $int 0x40 +0000282C CD40 int 40h + +..\lib\kolibri.h 197: DSDWORD[EBX+71] = DSDWORD[EBX+42] - 9; //set cwidth +0000282E 8B432A mov eax,[ebx+2Ah] +00002831 83E809 sub eax,9 +00002834 894347 mov [ebx+47h],eax + +..\lib\kolibri.h 198: DSDWORD[EBX+75] = DSDWORD[EBX+46] - GetSkinHeight() - 4; //set cheight +00002837 8B432E mov eax,[ebx+2Eh] +0000283A 50 push eax +0000283B E80B000000 call 284Bh +00002840 5A pop edx +00002841 92 xchg edx,eax +00002842 29D0 sub eax,edx +00002844 83E804 sub eax,4 +00002847 89434B mov [ebx+4Bh],eax +0000284A C3 ret + +..\lib\kolibri.h 277: $push ebx +0000284B 53 push ebx + +..\lib\kolibri.h 278: $mov eax,48 +0000284C B830000000 mov eax,30h + +..\lib\kolibri.h 279: $mov ebx,4 +00002851 BB04000000 mov ebx,4 + +..\lib\kolibri.h 280: $int 0x40 +00002856 CD40 int 40h + +..\lib\kolibri.h 281: $pop ebx +00002858 5B pop ebx +00002859 C3 ret + +..\lib\kolibri.h 293: $mov eax, 14 +0000285A B80E000000 mov eax,0Eh + +..\lib\kolibri.h 294: $int 0x40 +0000285F CD40 int 40h + +..\lib\kolibri.h 295: $shr eax, 16 +00002861 C1E810 shr eax,10h +00002864 C3 ret + +..\lib\kolibri.h 300: $mov eax, 14 +00002865 B80E000000 mov eax,0Eh + +..\lib\kolibri.h 301: $int 0x40 +0000286A CD40 int 40h + +..\lib\kolibri.h 302: $and eax,0x0000FFFF +0000286C 25FFFF0000 and eax,0FFFFh +00002871 C3 ret + +..\lib\kolibri.h 147: $mov eax,17 +00002872 B811000000 mov eax,11h + +..\lib\kolibri.h 148: $int 0x40 +00002877 CD40 int 40h + +..\lib\kolibri.h 149: $shr eax,8 +00002879 C1E808 shr eax,8 +0000287C C3 ret + +..\lib\kolibri.h 156: $mov eax, 18 +0000287D B812000000 mov eax,12h + +..\lib\kolibri.h 157: $mov ebx, 16 +00002882 BB10000000 mov ebx,10h + +..\lib\kolibri.h 158: $int 0x40 +00002887 CD40 int 40h +00002889 C3 ret + + GetFileInfo() +0000288A 55 push ebp +0000288B 89E5 mov ebp,esp + +..\lib\file_system.h 179: getinfo_file_70.func = 5; +0000288D 6A05 push 5 +0000288F 8F05DA4C0000 pop dword ptr [4CDAh] + +..\lib\file_system.h 180: getinfo_file_70.param1 = +00002895 31C0 xor eax,eax +00002897 A3E64C0000 mov [4CE6h],eax +0000289C A3E24C0000 mov [4CE2h],eax +000028A1 A3DE4C0000 mov [4CDEh],eax + +..\lib\file_system.h 183: getinfo_file_70.param4 = bdvk_struct; +000028A6 8B4508 mov eax,[ebp+8] +000028A9 A3EA4C0000 mov [4CEAh],eax + +..\lib\file_system.h 184: getinfo_file_70.rezerv = 0; +000028AE C605EE4C000000 mov byte ptr [4CEEh],0 + +..\lib\file_system.h 185: getinfo_file_70.name = file_path; +000028B5 8B450C mov eax,[ebp+0Ch] +000028B8 A3EF4C0000 mov [4CEFh],eax + +..\lib\file_system.h 186: $mov eax,70 +000028BD B846000000 mov eax,46h + +..\lib\file_system.h 187: $mov ebx,#getinfo_file_70.func +000028C2 BBDA4C0000 mov ebx,4CDAh + +..\lib\file_system.h 188: $int 0x40 +000028C7 CD40 int 40h +000028C9 5D pop ebp +000028CA C20800 ret 8 + + GetDir() +000028CD C80C0000 enter 0Ch,0 + +..\lib\file_system.h 157: buf = malloc(32); +000028D1 6A20 push 20h +000028D3 E815DDFFFF call 5EDh +000028D8 8945FC mov [ebp-4],eax + +..\lib\file_system.h 158: error = ReadDir(0, buf, path); +000028DB 6A00 push 0 +000028DD 50 push eax +000028DE FF7508 push dword ptr [ebp+8] +000028E1 E84C020000 call 2B32h +000028E6 8945F4 mov [ebp-0Ch],eax + +..\lib\file_system.h 159: if (!error) +000028E9 85C0 test eax,eax +000028EB 0F85AB000000 jnz 299Ch + +..\lib\file_system.h 161: fcount = ESDWORD[buf+8]; +000028F1 8B45FC mov eax,[ebp-4] +000028F4 268B4008 mov eax,es:[eax+8] +000028F8 8945F8 mov [ebp-8],eax + +..\lib\file_system.h 162: buf = realloc(buf, fcount+1*304+32); +000028FB 8B45F8 mov eax,[ebp-8] +000028FE 40 inc eax +000028FF 69C030010000 imul eax,eax,130h +00002905 83C020 add eax,20h +00002908 50 push eax +00002909 FF75FC push dword ptr [ebp-4] +0000290C E8F6DCFFFF call 607h +00002911 8945FC mov [ebp-4],eax + +..\lib\file_system.h 163: ReadDir(fcount, buf, path); +00002914 FF75F8 push dword ptr [ebp-8] +00002917 50 push eax +00002918 FF7508 push dword ptr [ebp+8] +0000291B E812020000 call 2B32h + +..\lib\file_system.h 164: if (!strcmp(".",buf+72)) {fcount--; memmov(buf,buf+304,fcount*304);} +00002920 BEA3290000 mov esi,29A3h +00002925 8B7DFC mov edi,[ebp-4] +00002928 83C748 add edi,48h +0000292B E8CEFCFFFF call 25FEh +00002930 85C0 test eax,eax +00002932 0F851D000000 jnz 2955h +00002938 FF4DF8 dec dword ptr [ebp-8] +0000293B 8B7DFC mov edi,[ebp-4] +0000293E 8B75FC mov esi,[ebp-4] +00002941 81C630010000 add esi,130h +00002947 8B4DF8 mov ecx,[ebp-8] +0000294A 69C930010000 imul ecx,ecx,130h +00002950 E821020000 call 2B76h + +..\lib\file_system.h 165: if (!strcmp("..",buf+72)) {fcount--; memmov(buf,buf+304,fcount*304);} +00002955 BEA5290000 mov esi,29A5h +0000295A 8B7DFC mov edi,[ebp-4] +0000295D 83C748 add edi,48h +00002960 E899FCFFFF call 25FEh +00002965 85C0 test eax,eax +00002967 0F851D000000 jnz 298Ah +0000296D FF4DF8 dec dword ptr [ebp-8] +00002970 8B7DFC mov edi,[ebp-4] +00002973 8B75FC mov esi,[ebp-4] +00002976 81C630010000 add esi,130h +0000297C 8B4DF8 mov ecx,[ebp-8] +0000297F 69C930010000 imul ecx,ecx,130h +00002985 E8EC010000 call 2B76h + +..\lib\file_system.h 166: ESDWORD[dir_buf] = buf; +0000298A 8B45FC mov eax,[ebp-4] +0000298D 8B7510 mov esi,[ebp+10h] +00002990 268906 mov es:[esi],eax + +..\lib\file_system.h 167: ESDWORD[file_count] = fcount; +00002993 8B45F8 mov eax,[ebp-8] +00002996 8B750C mov esi,[ebp+0Ch] +00002999 268906 mov es:[esi],eax + +..\lib\file_system.h 169: return error; +0000299C 8B45F4 mov eax,[ebp-0Ch] +0000299F C9 leave +000029A0 C20C00 ret 0Ch + +000029A3 2E002E2E00 db '.',0,'..',0 + +..\lib\kolibri.h 261: $mov eax,-1; +000029A8 B8FFFFFFFF mov eax,0FFFFFFFFh + +..\lib\kolibri.h 262: $int 0x40 +000029AD CD40 int 40h +000029AF C3 ret + +..\lib\kolibri.h 387: EAX = 71; +000029B0 6A47 push 47h +000029B2 58 pop eax + +..\lib\kolibri.h 388: EBX = 1; +000029B3 31DB xor ebx,ebx +000029B5 43 inc ebx + +..\lib\kolibri.h 389: $int 0x40; +000029B6 CD40 int 40h +000029B8 C3 ret + + DrawLink() +000029B9 C8040000 enter 4,0 + +..\lib\figures.h 92: WriteText(x,y,font_type,0x4E00E7,inscription); +000029BD FF7518 push dword ptr [ebp+18h] +000029C0 FF7514 push dword ptr [ebp+14h] +000029C3 FF7510 push dword ptr [ebp+10h] +000029C6 68E7004E00 push 4E00E7h +000029CB 8B5508 mov edx,[ebp+8] +000029CE E81CD7FFFF call 0EFh + +..\lib\figures.h 93: if (font_type==0x80) w = strlen(inscription)*6; else w = strlen(inscription)*7; +000029D3 817D1080000000 cmp dword ptr [ebp+10h],80h +000029DA 0F8513000000 jnz 29F3h +000029E0 8B7D08 mov edi,[ebp+8] +000029E3 E837FDFFFF call 271Fh +000029E8 6BC006 imul eax,eax,6 +000029EB 8945FC mov [ebp-4],eax +000029EE E90E000000 jmp 2A01h +000029F3 8B7D08 mov edi,[ebp+8] +000029F6 E824FDFFFF call 271Fh +000029FB 6BC007 imul eax,eax,7 +000029FE 8945FC mov [ebp-4],eax + +..\lib\figures.h 94: DefineButton(x-1,y-1,w,10,btn_id+BT_HIDE,0); +00002A01 8B4518 mov eax,[ebp+18h] +00002A04 48 dec eax +00002A05 50 push eax +00002A06 8B4514 mov eax,[ebp+14h] +00002A09 48 dec eax +00002A0A 50 push eax +00002A0B FF75FC push dword ptr [ebp-4] +00002A0E 6A0A push 0Ah +00002A10 8B550C mov edx,[ebp+0Ch] +00002A13 81C200000040 add edx,40000000h +00002A19 31F6 xor esi,esi +00002A1B E8CAD7FFFF call 1EAh + +..\lib\figures.h 95: DrawBar(x,y+8,w,1,0x4E00E7); +00002A20 FF7518 push dword ptr [ebp+18h] +00002A23 8B4514 mov eax,[ebp+14h] +00002A26 83C008 add eax,8 +00002A29 50 push eax +00002A2A FF75FC push dword ptr [ebp-4] +00002A2D 6A01 push 1 +00002A2F BAE7004E00 mov edx,4E00E7h +00002A34 E870D7FFFF call 1A9h +00002A39 C9 leave +00002A3A C21400 ret 14h + + DeleteFile() +00002A3D 55 push ebp +00002A3E 89E5 mov ebp,esp + +..\lib\file_system.h 69: del_file_70.func = 8; +00002A40 6A08 push 8 +00002A42 8F05724C0000 pop dword ptr [4C72h] + +..\lib\file_system.h 70: del_file_70.param1 = +00002A48 31C0 xor eax,eax +00002A4A A2864C0000 mov [4C86h],al +00002A4F A3824C0000 mov [4C82h],eax +00002A54 A37E4C0000 mov [4C7Eh],eax +00002A59 A37A4C0000 mov [4C7Ah],eax +00002A5E A3764C0000 mov [4C76h],eax + +..\lib\file_system.h 75: del_file_70.name = del_file_path; +00002A63 8B4508 mov eax,[ebp+8] +00002A66 A3874C0000 mov [4C87h],eax + +..\lib\file_system.h 76: $mov eax,70 +00002A6B B846000000 mov eax,46h + +..\lib\file_system.h 77: $mov ebx,#del_file_70.func +00002A70 BB724C0000 mov ebx,4C72h + +..\lib\file_system.h 78: $int 0x40 +00002A75 CD40 int 40h +00002A77 5D pop ebp +00002A78 C20400 ret 4 + + CreateDir() +00002A7B 55 push ebp +00002A7C 89E5 mov ebp,esp + +..\lib\file_system.h 51: create_dir_70.func = 9; +00002A7E 6A09 push 9 +00002A80 8F05584C0000 pop dword ptr [4C58h] + +..\lib\file_system.h 52: create_dir_70.param1 = +00002A86 31C0 xor eax,eax +00002A88 A26C4C0000 mov [4C6Ch],al +00002A8D A3684C0000 mov [4C68h],eax +00002A92 A3644C0000 mov [4C64h],eax +00002A97 A3604C0000 mov [4C60h],eax +00002A9C A35C4C0000 mov [4C5Ch],eax + +..\lib\file_system.h 57: create_dir_70.name = new_folder_path; +00002AA1 8B4508 mov eax,[ebp+8] +00002AA4 A36D4C0000 mov [4C6Dh],eax + +..\lib\file_system.h 58: $mov eax,70 +00002AA9 B846000000 mov eax,46h + +..\lib\file_system.h 59: $mov ebx,#create_dir_70.func +00002AAE BB584C0000 mov ebx,4C58h + +..\lib\file_system.h 60: $int 0x40 +00002AB3 CD40 int 40h +00002AB5 5D pop ebp +00002AB6 C20400 ret 4 + + CopyFile() +00002AB9 C8330200 enter 233h,0 +00002ABD 6A00 push 0 +00002ABF 6AFF push 0FFFFFFFFh + +..\lib\file_system.h 200: if (! GetFileInfo(copy_from, #CopyFile_atr)) +00002AC1 FF750C push dword ptr [ebp+0Ch] +00002AC4 8D85D0FDFFFF lea eax,[ebp-230h] +00002ACA 50 push eax +00002ACB E8BAFDFFFF call 288Ah +00002AD0 85C0 test eax,eax +00002AD2 0F8544000000 jnz 2B1Ch + +..\lib\file_system.h 202: cBufer = malloc(CopyFile_atr.sizelo); +00002AD8 FFB5F0FDFFFF push dword ptr [ebp-210h] +00002ADE E80ADBFFFF call 5EDh +00002AE3 8985CCFDFFFF mov [ebp-234h],eax + +..\lib\file_system.h 203: if (! ReadFile(0, CopyFile_atr.sizelo, cBufer, copy_from)) +00002AE9 6A00 push 0 +00002AEB FFB5F0FDFFFF push dword ptr [ebp-210h] +00002AF1 50 push eax +00002AF2 FF750C push dword ptr [ebp+0Ch] +00002AF5 E8B3000000 call 2BADh +00002AFA 85C0 test eax,eax +00002AFC 0F851A000000 jnz 2B1Ch + +..\lib\file_system.h 205: rezult = WriteFile(CopyFile_atr.sizelo, cBufer, copy_in); +00002B02 FFB5F0FDFFFF push dword ptr [ebp-210h] +00002B08 FFB5CCFDFFFF push dword ptr [ebp-234h] +00002B0E FF7508 push dword ptr [ebp+8] +00002B11 E8DF000000 call 2BF5h +00002B16 8885C8FDFFFF mov [ebp-238h],al + +..\lib\file_system.h 208: free(cBufer); +00002B1C FFB5CCFDFFFF push dword ptr [ebp-234h] +00002B22 E8FFDAFFFF call 626h + +..\lib\file_system.h 209: return rezult; +00002B27 0FBE85C8FDFFFF movsx eax,[ebp-238h] +00002B2E C9 leave +00002B2F C20800 ret 8 + + ReadDir() +00002B32 55 push ebp +00002B33 89E5 mov ebp,esp + +..\lib\file_system.h 141: read_dir_70.func = 1; +00002B35 6A01 push 1 +00002B37 8F05C04C0000 pop dword ptr [4CC0h] + +..\lib\file_system.h 142: read_dir_70.param1 = +00002B3D 31C0 xor eax,eax +00002B3F A2D44C0000 mov [4CD4h],al +00002B44 A3C84C0000 mov [4CC8h],eax +00002B49 A3C44C0000 mov [4CC4h],eax + +..\lib\file_system.h 145: read_dir_70.param3 = file_count; +00002B4E 8B4510 mov eax,[ebp+10h] +00002B51 A3CC4C0000 mov [4CCCh],eax + +..\lib\file_system.h 146: read_dir_70.param4 = read_buffer; +00002B56 8B450C mov eax,[ebp+0Ch] +00002B59 A3D04C0000 mov [4CD0h],eax + +..\lib\file_system.h 147: read_dir_70.name = dir_path; +00002B5E 8B4508 mov eax,[ebp+8] +00002B61 A3D54C0000 mov [4CD5h],eax + +..\lib\file_system.h 148: $mov eax,70 +00002B66 B846000000 mov eax,46h + +..\lib\file_system.h 149: $mov ebx,#read_dir_70.func +00002B6B BBC04C0000 mov ebx,4CC0h + +..\lib\file_system.h 150: $int 0x40 +00002B70 CD40 int 40h +00002B72 5D pop ebp +00002B73 C20C00 ret 0Ch + +..\lib\mem.h 65: MOV EAX, ECX +00002B76 89C8 mov eax,ecx + +..\lib\mem.h 66: CMP EDI, ESI +00002B78 3BFE cmp edi,esi + +..\lib\mem.h 67: JG L1 +00002B7A 7F12 jg 2B8Eh + +..\lib\mem.h 68: JE L2 +00002B7C 742E je 2BACh + +..\lib\mem.h 69: SAR ECX, 2 +00002B7E C1F902 sar ecx,2 + +..\lib\mem.h 70: JS L2 +00002B81 7829 js 2BACh + +..\lib\mem.h 71: REP MOVSD +00002B83 F3A5 repe movsd + +..\lib\mem.h 72: MOV ECX, EAX +00002B85 89C1 mov ecx,eax + +..\lib\mem.h 73: AND ECX, 3 +00002B87 83E103 and ecx,3 + +..\lib\mem.h 74: REP MOVSB +00002B8A F3A4 repe movsb + +..\lib\mem.h 75: JMP SHORT L2 +00002B8C EB1E jmp short 2BACh + +..\lib\mem.h 76: L1: LEA ESI, DSDWORD[ ESI+ECX-4] +00002B8E 8D740EFC lea esi,[esi+ecx-4] + +..\lib\mem.h 77: LEA EDI, DSDWORD[ EDI+ECX-4] +00002B92 8D7C0FFC lea edi,[edi+ecx-4] + +..\lib\mem.h 78: SAR ECX, 2 +00002B96 C1F902 sar ecx,2 + +..\lib\mem.h 79: JS L2 +00002B99 7811 js 2BACh + +..\lib\mem.h 80: STD +00002B9B FD std + +..\lib\mem.h 81: REP MOVSD +00002B9C F3A5 repe movsd + +..\lib\mem.h 82: MOV ECX, EAX +00002B9E 89C1 mov ecx,eax + +..\lib\mem.h 83: AND ECX, 3 +00002BA0 83E103 and ecx,3 + +..\lib\mem.h 84: ADD ESI, 3 +00002BA3 83C603 add esi,3 + +..\lib\mem.h 85: ADD EDI, 3 +00002BA6 83C703 add edi,3 + +..\lib\mem.h 86: REP MOVSB +00002BA9 F3A4 repe movsb + +..\lib\mem.h 87: CLD +00002BAB FC cld + +..\lib\mem.h 88: L2: +00002BAC C3 ret + + ReadFile() +00002BAD 55 push ebp +00002BAE 89E5 mov ebp,esp + +..\lib\file_system.h 87: read_file_70.func = 0; +00002BB0 83258C4C000000 and dword ptr [4C8Ch],0 + +..\lib\file_system.h 88: read_file_70.param1 = read_pos; +00002BB7 8B4514 mov eax,[ebp+14h] +00002BBA A3904C0000 mov [4C90h],eax + +..\lib\file_system.h 89: read_file_70.param2 = 0; +00002BBF 8325944C000000 and dword ptr [4C94h],0 + +..\lib\file_system.h 90: read_file_70.param3 = read_file_size; +00002BC6 8B4510 mov eax,[ebp+10h] +00002BC9 A3984C0000 mov [4C98h],eax + +..\lib\file_system.h 91: read_file_70.param4 = read_buffer; +00002BCE 8B450C mov eax,[ebp+0Ch] +00002BD1 A39C4C0000 mov [4C9Ch],eax + +..\lib\file_system.h 92: read_file_70.rezerv = 0; +00002BD6 C605A04C000000 mov byte ptr [4CA0h],0 + +..\lib\file_system.h 93: read_file_70.name = read_file_path; +00002BDD 8B4508 mov eax,[ebp+8] +00002BE0 A3A14C0000 mov [4CA1h],eax + +..\lib\file_system.h 94: $mov eax,70 +00002BE5 B846000000 mov eax,46h + +..\lib\file_system.h 95: $mov ebx,#read_file_70.func +00002BEA BB8C4C0000 mov ebx,4C8Ch + +..\lib\file_system.h 96: $int 0x40 +00002BEF CD40 int 40h +00002BF1 5D pop ebp +00002BF2 C21000 ret 10h + + WriteFile() +00002BF5 55 push ebp +00002BF6 89E5 mov ebp,esp + +..\lib\file_system.h 123: write_file_70.func = 2; +00002BF8 6A02 push 2 +00002BFA 8F05A64C0000 pop dword ptr [4CA6h] + +..\lib\file_system.h 124: write_file_70.param1 = 0; +00002C00 8325AA4C000000 and dword ptr [4CAAh],0 + +..\lib\file_system.h 125: write_file_70.param2 = 0; +00002C07 8325AE4C000000 and dword ptr [4CAEh],0 + +..\lib\file_system.h 126: write_file_70.param3 = write_file_size; +00002C0E 8B4510 mov eax,[ebp+10h] +00002C11 A3B24C0000 mov [4CB2h],eax + +..\lib\file_system.h 127: write_file_70.param4 = write_buffer; +00002C16 8B450C mov eax,[ebp+0Ch] +00002C19 A3B64C0000 mov [4CB6h],eax + +..\lib\file_system.h 128: write_file_70.rezerv = 0; +00002C1E C605BA4C000000 mov byte ptr [4CBAh],0 + +..\lib\file_system.h 129: write_file_70.name = write_file_path; +00002C25 8B4508 mov eax,[ebp+8] +00002C28 A3BB4C0000 mov [4CBBh],eax + +..\lib\file_system.h 130: $mov eax,70 +00002C2D B846000000 mov eax,46h + +..\lib\file_system.h 131: $mov ebx,#write_file_70.func +00002C32 BBA64C0000 mov ebx,4CA6h + +..\lib\file_system.h 132: $int 0x40 +00002C37 CD40 int 40h +00002C39 5D pop ebp +00002C3A C20C00 ret 0Ch diff --git a/programs/cmm/installer/tmp_add.c b/programs/cmm/installer/tmp_add.c new file mode 100644 index 0000000000..0db74e6a9a --- /dev/null +++ b/programs/cmm/installer/tmp_add.c @@ -0,0 +1,38 @@ +struct ioctl_struct +{ + dword handle; + dword io_code; + dword input; + dword inp_size; + dword output; + dword out_size; +}; + +struct add_disk_struc +{ + dword DiskSize; // in sectors, 1 sector = 512 bytes. Include FAT service data + unsigned char DiskId; // from 0 to 9 +}; + +ioctl_struct ioctl; +add_disk_struc add_disk; + +int TmpDiskAdd(int disk_id, disk_size) +{ + int driver_handle, driver_rezult; + driver_handle = LoadDriver("tmpdisk"); + if (driver_handle==0) return 7; + + add_disk.DiskId = disk_id; + add_disk.DiskSize = disk_size * 2048; + + ioctl.handle = driver_handle; + ioctl.io_code = 1; + ioctl.input = #add_disk; + ioctl.inp_size = sizeof(add_disk); + ioctl.output = 0; + ioctl.out_size = 0; + + driver_rezult = RuleDriver(#ioctl); + return driver_rezult; +} \ No newline at end of file diff --git a/programs/cmm/kolibrin/compile.bat b/programs/cmm/kolibrin/compile.bat new file mode 100644 index 0000000000..bd3caadc9a --- /dev/null +++ b/programs/cmm/kolibrin/compile.bat @@ -0,0 +1,5 @@ +..\C--\C-- kolibrin.c +@del kolibrin +@rename kolibrin.com kolibrin +@pause +@del warning.txt diff --git a/programs/cmm/kolibrin/kolibrin.c b/programs/cmm/kolibrin/kolibrin.c new file mode 100644 index 0000000000..f0ba57a8bf --- /dev/null +++ b/programs/cmm/kolibrin/kolibrin.c @@ -0,0 +1,47 @@ +#define MEMSIZE 0x9000 +#include "..\lib\kolibri.h" +#include "..\lib\strings.h" +#include "..\lib\mem.h" +#include "..\lib\file_system.h" + + +void main() +{ + dword dirbuf, fcount, filename, i; + dword dirbuf2, fcount2, filename2, j; + char cd_path[4096]; + char install_path[4096]; + signed int result; + + mem_Init(); + GetDir(#dirbuf, #fcount, "/"); + + for (i=0; i0) ExitProcess(); + } + } + } + if (GetSystemLanguage()==4) notify(" installer.kex ୥ ᪠! ஡ ."); + else notify("Can't find installer.kex at the root of all disks! Try to find and run it manually."w); + ExitProcess(); +} + + +stop: diff --git a/programs/cmm/lib/figures.h b/programs/cmm/lib/figures.h index a7ee854abf..ce29bcbe97 100644 --- a/programs/cmm/lib/figures.h +++ b/programs/cmm/lib/figures.h @@ -65,7 +65,8 @@ void DrawCaptButton(dword x,y,w,h,id,color_b, color_t,text) int progress_w; static int fill_old; - if (progress_percent<=0) {DrawBar(st_x,st_y, st_x + st_w + fill_old + 15,st_h+1, col_fon); fill_old=0; return;} + //if (progress_percent<=0) {DrawBar(st_x,st_y, st_x + st_w + fill_old + 15,st_h+1, col_fon); fill_old=0; return;} + if (progress_percent<=0) || (progress_percent>=100) return; DrawRectangle(st_x, st_y, st_w,st_h, col_border); DrawRectangle3D(st_x+1, st_y+1, st_w-2,st_h-2, 0xFFFfff, 0xFFFfff); @@ -83,4 +84,55 @@ void DrawCaptButton(dword x,y,w,h,id,color_b, color_t,text) WriteText(st_x+st_w+15, st_h/2-4+st_y, 0x80, col_text, status_text); fill_old = strlen(status_text) * 6; } +} + +:void DrawLink(dword x,y,font_type,btn_id, inscription) +{ + int w; + WriteText(x,y,font_type,0x4E00E7,inscription); + if (font_type==0x80) w = strlen(inscription)*6; else w = strlen(inscription)*7; + DefineButton(x-1,y-1,w,10,btn_id+BT_HIDE,0); + DrawBar(x,y+8,w,1,0x4E00E7); +} + + +:void PutShadow(dword x,y,w,h,border,strength) +{ + proc_info wForm; + dword shadow_buf, skin_height; + shadow_buf = mem_Alloc(w*h*3); + //skin_height = GetSkinHeight(); + GetProcessInfo(#wForm, SelfInfo); + CopyScreen(shadow_buf, x+wForm.left, y+wForm.top, w, h); + ShadowImage(shadow_buf, w, h, strength); + _PutImage(x,y,w,h,shadow_buf); + mem_Free(shadow_buf); +} + +:void GrayScaleImage(dword color_image, w, h) +{ + dword i,j, gray,rr,gg,bb; + for (i = 0; i < w*h*3; i+=3) + { + rr = DSBYTE[i+color_image]; + gg = DSBYTE[i+1+color_image]; + bb = DSBYTE[i+2+color_image]; + gray = rr*rr; + gray += gg*gg; + gray += bb*bb; + gray = sqrt(gray) / 3; + DSBYTE[i +color_image] = DSBYTE[i+1+color_image] = DSBYTE[i+2+color_image] = gray; + } +} + +:void ShadowImage(dword color_image, w, h, strength) +{ + dword col, to; + strength = 10 - strength; + to = w*h*3 + color_image; + for ( ; color_image < to; color_image++) + { + col = strength * DSBYTE[color_image] / 10; + DSBYTE[color_image] = col; + } } \ No newline at end of file diff --git a/programs/cmm/lib/file_system.h b/programs/cmm/lib/file_system.h index 2671189616..36acda3d90 100644 --- a/programs/cmm/lib/file_system.h +++ b/programs/cmm/lib/file_system.h @@ -28,7 +28,7 @@ struct BDVK{ // // /////////////////////////// f70 run_file_70; -:int RunProgram(dword run_path, run_param) +signed int RunProgram(dword run_path, run_param) { run_file_70.func = 7; run_file_70.param1 = @@ -96,6 +96,24 @@ f70 read_file_70; $int 0x40 } +:int GetFile(dword buf, filesize, read_path) +{ + BDVK ReadFile_atr; + dword rBuf=0; + if (! GetFileInfo(read_path, #ReadFile_atr)) + { + rBuf = malloc(ReadFile_atr.sizelo); + if (! ReadFile(0, ReadFile_atr.sizelo, rBuf, read_path)) + { + ESDWORD[buf] = rBuf; + ESDWORD[filesize] = ReadFile_atr.sizelo; + return 1; + } + } + free(rBuf); + return 0; +} + //////////////////////////// // // //////////////////////////// @@ -119,7 +137,7 @@ f70 write_file_70; /////////////////////////// f70 read_dir_70; :int ReadDir(dword file_count, read_buffer, dir_path) -{ +{ read_dir_70.func = 1; read_dir_70.param1 = read_dir_70.param2 = @@ -133,18 +151,36 @@ f70 read_dir_70; } +:int GetDir(dword dir_buf, file_count, path) +{ + dword buf, fcount, error; + buf = malloc(32); + error = ReadDir(0, buf, path); + if (!error) + { + fcount = ESDWORD[buf+8]; + buf = realloc(buf, fcount+1*304+32); + ReadDir(fcount, buf, path); + if (!strcmp(".",buf+72)) {fcount--; memmov(buf,buf+304,fcount*304);} + if (!strcmp("..",buf+72)) {fcount--; memmov(buf,buf+304,fcount*304);} + ESDWORD[dir_buf] = buf; + ESDWORD[file_count] = fcount; + } + return error; +} + + /////////////////////////// // // /////////////////////////// f70 getinfo_file_70; -BDVK getinfo_file_info; -:dword GetFileInfo(dword file_path) +:dword GetFileInfo(dword file_path, bdvk_struct) { getinfo_file_70.func = 5; getinfo_file_70.param1 = getinfo_file_70.param2 = getinfo_file_70.param3 = 0; - getinfo_file_70.param4 = #getinfo_file_info; + getinfo_file_70.param4 = bdvk_struct; getinfo_file_70.rezerv = 0; getinfo_file_70.name = file_path; $mov eax,70 @@ -160,32 +196,17 @@ BDVK getinfo_file_info; { BDVK CopyFile_atr; dword cBufer=0; - - if (! GetFileInfo(copy_from)) + char rezult = -1; + if (! GetFileInfo(copy_from, #CopyFile_atr)) { - mem_Init(); - cBufer = mem_Alloc(CopyFile_atr.sizelo); + cBufer = malloc(CopyFile_atr.sizelo); if (! ReadFile(0, CopyFile_atr.sizelo, cBufer, copy_from)) - if (! WriteFile(CopyFile_atr.sizelo, cBufer, copy_in)) return 1; + { + rezult = WriteFile(CopyFile_atr.sizelo, cBufer, copy_in); + } } - - return 0; -} - - -//Asper -void ReadAttributes(dword read_buffer, file_path) -{ - read_file_70.func = 5; - read_file_70.param1 = 0; - read_file_70.param2 = 0; - read_file_70.param3 = 0; - read_file_70.param4 = read_buffer; - read_file_70.rezerv = 0; - read_file_70.name = file_path; - $mov eax,70 - $mov ebx,#read_file_70.func - $int 0x40 + free(cBufer); + return rezult; } inline fastcall void SetCurDir( ECX) diff --git a/programs/cmm/lib/kolibri.h b/programs/cmm/lib/kolibri.h index b8b957f71d..c5013e0b55 100644 --- a/programs/cmm/lib/kolibri.h +++ b/programs/cmm/lib/kolibri.h @@ -7,30 +7,24 @@ char os_name[8] = {'M','E','N','U','E','T','0','1'}; dword os_version = 0x00000001; dword start_addr = #main; dword final_addr = #stop+32; -#ifdef MEMSIZE - dword alloc_mem = MEMSIZE; - dword x86esp_reg = MEMSIZE; -#else - dword alloc_mem = #0x00100000; - dword x86esp_reg = #0x00100000; -#endif +dword alloc_mem = MEMSIZE; +dword x86esp_reg = MEMSIZE; dword I_Param = #param; dword I_Path = #program_path; char param[4096]; char program_path[4096]; +#define NULL 0 +#define OLD -1 +#define true 1 +#define false 0 + //Events #define evMouse 6 #define evButton 3 #define evKey 2 #define evReDraw 1 -#define OLD -1 -#define true 1 -#define false 0 - -#define NULL 0 - //Button options #define BT_DEL 0x80000000 #define BT_HIDE 0x40000000 @@ -352,6 +346,7 @@ DONE: $pop eax } + inline fastcall void debugch( ECX) { $push eax @@ -399,6 +394,7 @@ void WriteTextB(dword x,y,byte fontType, dword color, EDX) EAX = 4; EBX = x<<16+y; ECX = fontType<<24+color; + ESI = 0; $int 0x40; $add ebx, 1<<16 $int 0x40 @@ -409,7 +405,7 @@ void WriteText(dword x,y,byte fontType, dword color, EDX) EAX = 4; EBX = x<<16+y; ECX = fontType<<24+color; - $xor esi, esi + ESI = 0; $int 0x40; } @@ -422,10 +418,10 @@ void WriteNumber(dword x,y,byte fontType, dword color, count, ECX) $int 0x40; } -void CopyScreen(dword EBX, x, y, sizeX, sizeY) +void CopyScreen(dword EBX, x, y, w, h) { EAX = 36; - ECX = sizeX << 16 + sizeY; + ECX = w << 16 + h; EDX = x << 16 + y; $int 0x40; } @@ -437,13 +433,6 @@ dword GetPixelColor(dword x, x_size, y) $int 0x40 } -void PutImage(dword EBX,w,h,x,y) -{ - EAX = 7; - ECX = w<<16+h; - EDX = x<<16+y; - $int 0x40 -} void _PutImage(dword x,y, w,h, EBX) { @@ -502,4 +491,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/lib.obj/box_lib.h b/programs/cmm/lib/lib.obj/box_lib.h index 241d370dc2..02d6ad80bf 100644 --- a/programs/cmm/lib/lib.obj/box_lib.h +++ b/programs/cmm/lib/lib.obj/box_lib.h @@ -15,28 +15,57 @@ dword scrollbar_h_draw = #aScrollbar_h_draw; dword scrollbar_h_mouse = #aScrollbar_h_mouse; dword version_scrollbar = #aVersion_scrollbar; +dword PathShow_prepare = #aPathShow_prepare; +dword PathShow_draw = #aPathShow_draw; + dword am__ = 0x0; dword bm__ = 0x0; -char aEdit_box_draw[9] = "edit_box\0"; -char aEdit_box_key[13] = "edit_box_key\0"; -char aEdit_box_mouse[15] = "edit_box_mouse\0"; -char aVersion_ed[11] = "version_ed\0"; +char aEdit_box_draw [9] = "edit_box\0"; +char aEdit_box_key [13] = "edit_box_key\0"; +char aEdit_box_mouse[15] = "edit_box_mouse\0"; +char aVersion_ed [11] = "version_ed\0"; char aboxlib_init[9] = "lib_init\0"; -char aScrollbar_v_draw[17] = "scrollbar_v_draw\0"; +char aScrollbar_v_draw [17] = "scrollbar_v_draw\0"; char aScrollbar_v_mouse[18] = "scrollbar_v_mouse\0"; -char aScrollbar_h_draw[17] = "scrollbar_h_draw\0"; +char aScrollbar_h_draw [17] = "scrollbar_h_draw\0"; char aScrollbar_h_mouse[18] = "scrollbar_h_mouse\0"; char aVersion_scrollbar[18] = "version_scrollbar\0"; -char aCheck_box_draw [15] = "check_box_draw\0"; -char aCheck_box_mouse [16] = "check_box_mouse\0"; -char aVersion_ch [11] = "version_ch\0"; +char aCheck_box_draw [15] = "check_box_draw\0"; +char aCheck_box_mouse [16] = "check_box_mouse\0"; +char aVersion_ch [11] = "version_ch\0"; -char aOption_box_draw [16] = "option_box_draw\0"; -char aOption_box_mouse[17] = "option_box_mouse\0"; -char aVersion_op [11] = "version_op\0" ; +char aOption_box_draw [16] = "option_box_draw\0"; +char aOption_box_mouse [17] = "option_box_mouse\0"; +char aVersion_op [11] = "version_op\0" ; + +char aPathShow_prepare [17] = "PathShow_prepare\0"; +char aPathShow_draw [14] = "PathShow_draw\0"; + + +struct PathShow_data +{ +dword type;// dd 0 ;+0 +word start_y,// dw 28 ;+4 + start_x,// dw 172 ;+6 + font_size_x,// dw 6 ;+8 ; 6 - for font 0, 8 - for font 1 + area_size_x;// dw 200 ;+10 +dword font_number,// dd 0 ;+12 ; 0 - monospace, 1 - variable + background_flag,// dd 0 ;+16 + font_color,// dd 0x0 ;+20 + background_color,// dd 0x0 ;+24 + text_pointer,// dd openfile_pach ;+28 + work_area_pointer,// dd text_work_area ;+32 + temp_text_length;// dd 0 ;+36 +}; +/* +char temp[128]; +PathShow_data PathShow = {0, 100,20, 6, 200, 0, 1, 0x0, 0xFFFfff, #email_text, #temp, 0}; +PathShow_prepare stdcall(#PathShow); +PathShow_draw stdcall(#PathShow); +*/ struct edit_box{ @@ -73,23 +102,4 @@ position2,// equ [edi+72] work_size,// equ [edi+76] all_redraw,// equ [edi+80] ar_offset;// equ [edi+84] -}; - -//ed_width equ [edi] ;ਭ -//ed_left equ [edi+4] ; -//ed_top equ [edi+8] ; -//ed_color equ [edi+12] ;梥 䮭 -//shift_color equ [edi+16] ;=0x6a9480 -//ed_focus_border_color equ [edi+20] ;梥 ࠬ -//ed_blur_border_color equ [edi+24] ;梥 ⨢ -//ed_text_color equ [edi+28] ;梥 ⥪ -//ed_max equ [edi+32] ;- ᨬ ᨬ쭮 -//ed_text equ [edi+36] ;㪠⥫ -//ed_flags equ [edi+40] ;䫠 -//ed_size equ [edi+42] ;- ᨬ -//ed_pos equ [edi+46] ; -//ed_offset equ [edi+50] ;ᬥ饭 -//cl_curs_x equ [edi+54] ;। न -//cl_curs_y equ [edi+58] ;। न -//ed_shift_pos equ [edi+62] ; -//ed_shift_pos_old equ [edi+66] ;஥ +}; \ No newline at end of file diff --git a/programs/cmm/lib/lib.obj/iconv.h b/programs/cmm/lib/lib.obj/iconv.h index 109ac50675..399a3c754c 100644 --- a/programs/cmm/lib/lib.obj/iconv.h +++ b/programs/cmm/lib/lib.obj/iconv.h @@ -20,8 +20,8 @@ dword ChangeCharset(dword from_chs, to_chs, conv_buf) iconv_open stdcall (from_chs, to_chs); //CP866, CP1251, CP1252, KOI8-RU, UTF-8, ISO8859-5 if (EAX==-1) { - debug (from_chs); - debug (to_chs); + debug(from_chs); + debug(to_chs); debug("iconv: wrong charset,\nuse only CP866, CP1251, CP1252, KOI8-RU, UTF-8, ISO8859-5"); return 0; } @@ -34,15 +34,28 @@ dword ChangeCharset(dword from_chs, to_chs, conv_buf) if (cd!=0) { debug("iconv: something is wrong with stdcall iconv()"); - debug(itoa(cd)); + debugi(cd); debug("in_len"); - debug(itoa(in_len)); + debugi(in_len); debug("out_len"); - debug(itoa(out_len)); - new_buf = 0; + debugi(out_len); + new_buf = free(new_buf); return 0; } strcpy(conv_buf, new_buf); free(new_buf); return conv_buf; -} \ No newline at end of file +} + + +char *charsets[] = { " ", "UTF-8", "KOI8-RU", "CP1251", "CP1252", "ISO8859-5", "CP866"}; +int cur_charset; +enum { + CH_NULL, + CH_UTF8, + CH_KOI8, + CH_CP1251, + CH_CP1252, + CH_ISO8859_5, + CH_CP866 +}; \ No newline at end of file diff --git a/programs/cmm/lib/strings.h b/programs/cmm/lib/strings.h index 6a7fca8555..824dfb149f 100644 --- a/programs/cmm/lib/strings.h +++ b/programs/cmm/lib/strings.h @@ -3,8 +3,8 @@ // strlen( EDI) // strcpy( EDI, ESI) --- 0 if == // strcat( EDI, ESI) -// strchr( ESI,BL) -// strrchr( ESI,BL) +// strchr( ESI,BL) --- find first BL +// strrchr( ESI,BL) --- find last BL // strstr( EBX, EDX) // itoa( ESI) // atoi( EAX) @@ -60,7 +60,7 @@ inline fastcall unsigned int strlen( EDI) } -inline fastcall strcpy( EDI, ESI) +inline fastcall void strcpy( EDI, ESI) { $cld L2: @@ -86,7 +86,7 @@ inline fastcall int strlcpy(dword ESI, EDI, EBX) -inline fastcall strcat( EDI, ESI) +inline fastcall void strcat( EDI, ESI) { asm { mov ebx, edi @@ -114,6 +114,13 @@ inline fastcall strcat( EDI, ESI) } } +inline fastcall void chrcat(ESI, BL) +{ + EDI = strlen(ESI); + ESBYTE[ESI+EDI] = BL; + ESBYTE[ESI+EDI+1] = 0; +} + inline fastcall signed int strchr( ESI,BL) { @@ -151,7 +158,7 @@ int chrnum(dword searchin, char symbol) } -inline fastcall dword strstr( EBX, EDX) +inline fastcall signed int strstr( EBX, EDX) { asm { MOV EDI, EDX @@ -343,6 +350,7 @@ void debugi(dword d_int) debug(#tmpch); } + /* strtok( LPSTR dest, src, divs); src - dest - , diff --git a/programs/cmm/new_end/compile.bat b/programs/cmm/new_end/compile.bat deleted file mode 100644 index 8479ff818e..0000000000 --- a/programs/cmm/new_end/compile.bat +++ /dev/null @@ -1,6 +0,0 @@ -..\C--\C-- end.c -del end -rename end.com end -..\C--\kpack end -pause -del warning.txt diff --git a/programs/cmm/notify/notify.c b/programs/cmm/notify/notify.c index 4d32477c93..6c7c5dd3f2 100644 --- a/programs/cmm/notify/notify.c +++ b/programs/cmm/notify/notify.c @@ -3,6 +3,8 @@ #define MEMSIZE 0x3E80 #include "..\lib\kolibri.h" #include "..\lib\strings.h" +#include "..\lib\mem.h" +#include "..\lib\figures.h" int SCREEN_SIZE_X, @@ -17,7 +19,9 @@ void main() { int TEXT_X=4, TEXT_Y=12; + dword shadow_buf, lighter_pixel1, lighter_pixel2; + mem_Init(); if (!param) { if (GetSystemLanguage()==4) @@ -33,8 +37,17 @@ void main() TEXT_Y=WIN_SIZE_Y/2-3; // , :) - while (!GetPixelColor(SCREEN_SIZE_X-1, SCREEN_SIZE_X, WIN_Y)) WIN_Y+=45; - + while (GetPixelColor(SCREEN_SIZE_X-1, SCREEN_SIZE_X, WIN_Y)==0x333333) WIN_Y+=WIN_SIZE_Y+17; + + shadow_buf = malloc(WIN_SIZE_X*WIN_SIZE_Y*3); + lighter_pixel1 = malloc(3); + lighter_pixel2 = malloc(3); + CopyScreen(shadow_buf, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y, WIN_SIZE_X, WIN_SIZE_Y); + CopyScreen(lighter_pixel1, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y, 1, 1); + CopyScreen(lighter_pixel2, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y+WIN_SIZE_Y, 1, 1); + ShadowImage(shadow_buf, WIN_SIZE_X, WIN_SIZE_Y, 4); + ShadowImage(lighter_pixel1, 1, 1, 1); + ShadowImage(lighter_pixel2, 1, 1, 1); loop() { @@ -49,9 +62,14 @@ void main() break; case evReDraw: - DefineAndDrawWindow(SCREEN_SIZE_X-WIN_SIZE_X,WIN_Y,WIN_SIZE_X, WIN_SIZE_Y, 0x01, 0, 0, 0x01fffFFF); + DefineAndDrawWindow(SCREEN_SIZE_X-WIN_SIZE_X,WIN_Y,WIN_SIZE_X, WIN_SIZE_Y-1, 0x01, 0, 0, 0x01fffFFF); DefineButton(0,0, WIN_SIZE_X, WIN_SIZE_Y, 1+BT_HIDE+BT_NOFRAME, 0); - draw_grid(); + //draw_grid(); + //PutShadow(0,0,WIN_SIZE_X,WIN_SIZE_Y, 0, 4); + _PutImage(0,0,WIN_SIZE_X,WIN_SIZE_Y,shadow_buf); + PutPixel(0,0,ESDWORD[lighter_pixel1]); + PutPixel(0,WIN_SIZE_Y-1,ESDWORD[lighter_pixel2]); + DrawBar(WIN_SIZE_X,0, 1, WIN_SIZE_Y, 0x333333); WriteText(TEXT_X-1,TEXT_Y, 0x80, 0,#param); // WriteText(TEXT_X+1,TEXT_Y, 0x80, 0,#param); WriteText(TEXT_X,TEXT_Y-1, 0x80, 0,#param); diff --git a/programs/cmm/rb/rb.c b/programs/cmm/rb/rb.c index 34716c8ab3..36c2cb3f75 100644 --- a/programs/cmm/rb/rb.c +++ b/programs/cmm/rb/rb.c @@ -1,8 +1,9 @@ -//@RB - v0.62 +//@RB - v0.7 #define MEMSIZE 0x4000 #include "..\lib\kolibri.h" #include "..\lib\strings.h" +#include "..\lib\mem.h" #include "..\lib\figures.h" #include "..\lib\file_system.h" @@ -11,10 +12,9 @@ #endif #ifdef LANG_RUS - #define ITEM_HEIGHT 18 - #define ITEM_WIDTH 138 char *ITEMS_LIST[]={ - "ன ", "/sys/desktop", 0, + " ⥬ ", "/sys/SKINSEL", 0, + " ", "/sys/BGSEL", 0, " 梥 䮭", "/sys/media/palitra", 0, "ࠢ ", "/sys/ICON", 0, "ன ன", "/sys/SETUP", 0, @@ -22,26 +22,30 @@ "", "/sys/CPU", 0, 0}; #else - #define ITEM_HEIGHT 18 - #define ITEM_WIDTH 122 char *ITEMS_LIST[]={ - "Window setup", "/sys/desktop", 0, - "Background", "/sys/media/palitra", 0, - "Icon manager", "/sys/ICON", 0, - "Device setup", "/sys/SETUP", 0, - "Refresh desktop", "/sys/REFRSCRN", 0, - "Processes", "/sys/CPU", 0, + "Window skin", "/sys/SKINSEL", 0, + "Wallpaper", "/sys/BGSEL", 0, + "Background", "/sys/media/palitra", 0, + "Icon manager", "/sys/ICON", 0, + "Device setup", "/sys/SETUP", 0, + "Refresh desktop ", "/sys/REFRSCRN", 0, + "Processes", "/sys/CPU", 0, 0}; #endif -dword stak[100]; +char stak[100]; +#define ITEM_HEIGHT 18 +int ITEM_WIDTH; void main() { mouse mm; - byte can_show; + byte i, can_show = 0; SetEventMask(100000b); + for (i=0; ITEMS_LIST[i]!=0; i+=3) if (strlen(ITEMS_LIST[i])>ITEM_WIDTH) ITEM_WIDTH = strlen(ITEMS_LIST[i]); + ITEM_WIDTH = ITEM_WIDTH * 6 + 20; + mem_Init(); loop() switch(WaitEvent()) { @@ -69,7 +73,7 @@ void window() int id1, key, i; sc.get(); - SetEventMask(100111b); + SetEventMask(100111b); loop() switch(WaitEvent()) { @@ -123,8 +127,10 @@ void window() case evReDraw: while (ITEMS_LIST[items_num*3]) items_num++; m.get(); - DefineAndDrawWindow(m.x+1,m.y,ITEM_WIDTH,items_num*ITEM_HEIGHT+1,0x01,sc.work,0, 0x01fffFFF); + DefineAndDrawWindow(m.x+1,m.y,ITEM_WIDTH+1,items_num*ITEM_HEIGHT+2,0x01,sc.work,0, 0x01fffFFF); DrawRectangle(0,0,ITEM_WIDTH,items_num*ITEM_HEIGHT+1,sc.work_graph); // + PutShadow(ITEM_WIDTH+1,1,1,items_num*ITEM_HEIGHT+1,0,1); + PutShadow(1,items_num*ITEM_HEIGHT+2,ITEM_WIDTH+1,1,0,1); _ITEMS_DRAW: for (i=0; i