From ae5e1142347d8ccbacbde591fa755d05ca661743 Mon Sep 17 00:00:00 2001 From: heavyiron Date: Thu, 26 Oct 2006 14:43:39 +0000 Subject: [PATCH] gifview, jpegview, trantest, calc, menu, end - small fixes icon2.lst renamed to icons.dat (it will be easer for new users I hope...) airc with cp1251 support from mike.dld kbd with boot-parameter to automatic enabling bus disconnect where it possible git-svn-id: svn://kolibrios.org@195 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/demos/trantest/trunk/trantest.asm | 8 +- programs/media/gifview/trunk/build_en.bat | 1 + programs/media/gifview/trunk/build_ru.bat | 1 + programs/media/gifview/trunk/gifview.asm | 54 +- programs/media/jpegview/trunk/jpegview.asm | 72 ++- programs/network/airc/trunk/airc.asm | 325 +++++++----- programs/network/airc/trunk/build_en.bat | 1 + programs/network/airc/trunk/build_ru.bat | 1 + programs/other/calc/trunk/calc.asm | 56 +- programs/system/end/trunk/end.asm | 32 +- programs/system/icon/trunk/build_en.bat | 1 + programs/system/icon/trunk/build_ge.bat | 1 + programs/system/icon/trunk/build_ru.bat | 1 + programs/system/icon/trunk/icon.asm | 8 +- programs/system/icon/trunk/icons.dat | 14 + programs/system/icon/trunk/iconstrp.gif | Bin 0 -> 13807 bytes programs/system/kbd/trunk/build.bat | 2 + programs/system/kbd/trunk/kbd.ASM | 569 +++++++++++++++++++++ programs/system/kbd/trunk/macros.inc | 266 ++++++++++ programs/system/kbd/trunk/readme.txt | 45 ++ programs/system/menu/trunk/menu.asm | 6 +- 21 files changed, 1190 insertions(+), 274 deletions(-) create mode 100644 programs/system/icon/trunk/icons.dat create mode 100644 programs/system/icon/trunk/iconstrp.gif create mode 100644 programs/system/kbd/trunk/build.bat create mode 100644 programs/system/kbd/trunk/kbd.ASM create mode 100644 programs/system/kbd/trunk/macros.inc create mode 100644 programs/system/kbd/trunk/readme.txt diff --git a/programs/demos/trantest/trunk/trantest.asm b/programs/demos/trantest/trunk/trantest.asm index 9f84ca53e1..aa486f8ad8 100644 --- a/programs/demos/trantest/trunk/trantest.asm +++ b/programs/demos/trantest/trunk/trantest.asm @@ -29,7 +29,7 @@ red: still: scevent red,key,button - fps 290,8,cl_White,cl_Black + fps 250,8,cl_White,cl_Black main_loop: random SCREEN_X,eax @@ -85,9 +85,9 @@ draw_window: int 0x40 xor eax,eax ;Draw window - mov ebx,100*65536+(SCREEN_X+19) ;x start*65536+x size - mov ecx,100*65536+(SCREEN_Y+51) ;y start*65536+y size - mov edx,0x33000000 ;0x33 use skinned window + mov ebx,100*65536+(SCREEN_X+9) ;x start*65536+x size + mov ecx,100*65536+(SCREEN_Y+26) ;y start*65536+y size + mov edx,0x13000000 ;0x33 use skinned window mov edi,header int 0x40 diff --git a/programs/media/gifview/trunk/build_en.bat b/programs/media/gifview/trunk/build_en.bat index 849841631a..dddd6e5fad 100644 --- a/programs/media/gifview/trunk/build_en.bat +++ b/programs/media/gifview/trunk/build_en.bat @@ -1,4 +1,5 @@ @erase lang.inc @echo lang fix en >lang.inc @fasm gifview.asm gifview +@erase lang.inc @pause \ No newline at end of file diff --git a/programs/media/gifview/trunk/build_ru.bat b/programs/media/gifview/trunk/build_ru.bat index 3b4306afd8..d47b2fb325 100644 --- a/programs/media/gifview/trunk/build_ru.bat +++ b/programs/media/gifview/trunk/build_ru.bat @@ -1,4 +1,5 @@ @erase lang.inc @echo lang fix ru >lang.inc @fasm gifview.asm gifview +@erase lang.inc @pause \ No newline at end of file diff --git a/programs/media/gifview/trunk/gifview.asm b/programs/media/gifview/trunk/gifview.asm index 2c7a461f90..34b98a30ee 100644 --- a/programs/media/gifview/trunk/gifview.asm +++ b/programs/media/gifview/trunk/gifview.asm @@ -8,11 +8,12 @@ ; ; COMPILE WITH FASM -WND_COLOR equ 0x02aabbcc +appname equ 'GIF VIEWER' + ; input line dimensions -INP_X equ 10 shl 16+680 -INP_Y equ 25 shl 16+16 -INP_XY equ 15 shl 16+30 +INP_X equ 5 shl 16+680 +INP_Y equ 5 shl 16+16 +INP_XY equ 10 shl 16+10 use32 @@ -29,7 +30,6 @@ use32 include 'lang.inc' include 'macros.inc' ; decrease code size (optional) -;include '/hd/1/meos/debug.inc' include 'debug.inc' COLOR_ORDER equ MENUETOS @@ -182,7 +182,7 @@ draw_input: push edi cmp [entered],0 jne highlight - mov esi,WND_COLOR + mov esi,0x00aabbcc jmp di_draw highlight: mov esi,0xe0e0e0 @@ -193,7 +193,7 @@ draw_input: mov edx,2 int 0x40 mov eax,4 - mov ecx,0x00107a30 ; шрифт 1 и цвет ( 0xF0RRGGBB ) + mov ecx,0x00107a30 mov ebx,INP_XY mov edx,fn_input mov esi,[inp_pos] @@ -207,6 +207,12 @@ draw_input: draw_window: + mov eax,48 + mov ebx,3 + mov ecx,sc + mov edx,sizeof.system_colors + int 0x40 + mov eax,12 mov ebx,1 int 0x40 @@ -214,24 +220,9 @@ draw_window: mov eax,0 mov ebx,50*65536+700 mov ecx,50*65536+500 - mov edx,WND_COLOR - mov esi,0x805080d0 - mov edi,0x005080d0 - int 0x40 - - - mov eax,4 - mov ebx,8*65536+8 - mov ecx,0x10ddeeff - mov edx,zagolovok - mov esi,zag_konets-zagolovok - int 0x40 - - mov eax,8 - mov ebx,(700-19)*65536+12 - mov ecx,5*65536+12 - mov edx,1 - mov esi,0x6688dd + mov edx,[sc.work] + or edx,0x33000000 + mov edi,header int 0x40 call draw_input @@ -266,7 +257,7 @@ draw_subimage: movzx edx,[gif_inf.Left] shl edx,16 add edx,eax - add edx,10 shl 16 +45 + add edx,5 shl 16 +25 mov eax,7 int 0x40 .enddraw: @@ -274,15 +265,7 @@ draw_subimage: ; Здесь находятся данные программы: -; интерфейс программы двуязычный - задайте язык в macros.inc - -zagolovok: ; строка заголовка -if lang eq ru - db 'ПРОСМОТР GIF' -else - db 'GIF VIEWER' -end if -zag_konets: ; и её конец +header db appname,0 ; строка заголовка inp_pos dd inp_end-fn_input fn_input: @@ -309,6 +292,7 @@ filename: rb 257 ;filename_len dd 0 entered rd 1 +sc system_colors imgcount rd 1 img_index rd 1 diff --git a/programs/media/jpegview/trunk/jpegview.asm b/programs/media/jpegview/trunk/jpegview.asm index 8e40c1358c..51273ae62a 100644 --- a/programs/media/jpegview/trunk/jpegview.asm +++ b/programs/media/jpegview/trunk/jpegview.asm @@ -98,8 +98,8 @@ put_image: cmp [winys],bp jc .l1 - add eax,5 ; offset for boarder - add ebx,20 ; offset for title bar + add eax,2 ; offset for boarder + add ebx,2 ; offset for title bar push ax ; pox push bx ; pos push cx ; size @@ -235,6 +235,12 @@ put_chunk_to_bgr: draw_window: + mov eax,48 + mov ebx,3 + mov ecx,sc + mov edx,sizeof.system_colors + int 0x40 + mov eax,12 mov ebx,1 int 0x40 @@ -273,39 +279,26 @@ dw_002: mov cx, [winys] xor eax,eax ; DRAW WINDOW - mov edx,[wcolor] - add edx,0x13000000 + mov edx,[sc.work] + or edx,0x33000000 mov edi,header ; WINDOW LABEL int 0x40 - ; draw status bar - mov eax, 13 - movzx ebx, word [winxs] - sub ebx, 5 - add ebx, 4*65536 - mov cx, [winys] - sub ecx, 19 - shl ecx, 16 - add ecx, 3 - mov edx, 0x00557799 - int 0x40 - - mov eax,8 ; BUTTON 2: filename - mov ebx,4*65536+55 + mov eax,8 ; BUTTON 2: slideshow + mov ebx,57 mov cx, [winys] - sub cx, 16 + sub cx, 39 shl ecx, 16 add ecx, 12 - mov esi, 0x00557799 + mov esi, [sc.work_button] mov edx,2 int 0x40 mov eax,4 ; Button text movzx ebx, word [winys] - sub ebx, 13 - add ebx, 6*65536 - mov ecx,0x00ffffff + add ebx, 3 shl 16 - 36 + mov ecx,[sc.work_button_text] mov edx,setname mov esi,setnamelen-setname int 0x40 @@ -313,24 +306,24 @@ dw_002: mov eax,8 ; BUTTON 3: set as background mov bx, [winxs] - sub bx, 60 + sub bx, 65 shl ebx, 16 mov bx,55 mov cx, [winys] - sub cx, 16 + sub cx, 39 shl ecx, 16 add ecx, 12 - mov esi, 0x00557799 + mov esi, [sc.work_button] mov edx,3 int 0x40 mov eax,4 ; Button text movzx ebx, word [winxs] - sub ebx, 60 + sub ebx, 63 shl ebx,16 mov bx, word [winys] - sub bx,13 - mov ecx,0x00ffffff + sub bx,36 + mov ecx,[sc.work_button_text] mov edx,setbgr mov esi,setbgrlen-setbgr int 0x40 @@ -391,13 +384,12 @@ load_image: mov eax,13 ; clear picture area movzx ebx, word [winxs] - sub ebx, 7 - add ebx, 4 * 65536 + add ebx, 1 shl 16 -10 movzx ecx, word [winys] - sub ecx, 39 - add ecx, 20 * 65536 + sub ecx, 40 + add ecx, 1 shl 16 - mov edx,0 + mov edx,[sc.work] int 0x40 mov ebp,[jpeg_st] test ebp,ebp @@ -410,10 +402,9 @@ print_strings: pusha mov eax,13 ; clear text area movzx ebx, word [winxs] - sub ebx, 64+58 - add ebx, 60*65536 + add ebx, 59 shl 16 -125 mov cx, [winys] - sub cx, 16 + sub cx, 39 shl ecx, 16 add ecx, 12 mov edx,0xffffff @@ -421,8 +412,7 @@ print_strings: mov eax,4 ; movzx ebx, word [winys] - sub ebx, 14 - add ebx, 60*65536 + add ebx, 61 shl 16 - 37 mov ecx,0x000000 mov edx,name_string mov esi,60 @@ -529,8 +519,6 @@ winxs dw 0 winys dw 0 jpeg_st dd 0 file_dir dd 0 -tcolor dd 0x000000 -btcolor dd 0x224466+0x808080 name_string: db '/rd/1/jpegview.jpg',0 rb 256 .end: @@ -552,6 +540,6 @@ iniciomemoria: fin: I_END: - +sc system_colors fileattr: rb 40 dirinfo: rb 32+304 diff --git a/programs/network/airc/trunk/airc.asm b/programs/network/airc/trunk/airc.asm index ee088731b8..d1e9e7a892 100644 --- a/programs/network/airc/trunk/airc.asm +++ b/programs/network/airc/trunk/airc.asm @@ -9,32 +9,33 @@ ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -version equ '0.3' +version equ '0.4' use32 - org 0x0 + org 0x0 + + db 'MENUET01' ; 8 byte id + dd 0x01 ; required os + dd START ; program start + dd I_END ; program image size + dd 0x100000 ; required amount of memory + dd 0x100000 + dd 0,0 - db 'MENUET01' ; 8 byte id - dd 0x01 ; required os - dd START ; program start - dd I_END ; program image size - dd 0x100000 ; required amount of memory - dd 0x100000 - dd 0,0 include "lang.inc" -include "macros.inc" +;include "macros.inc" -irc_server_ip db 192,168,1,1 +irc_server_ip db 83,149,74,246 ;server: kolibrios.org -user_nick dd 4 ; length - db 'airc ' ; string +user_nick dd 12 ; length + db 'kolibri_user ' ; string -user_real_name dd 8 ; length - db 'Joe User ' ; string +user_real_name dd 14 ; length + db 'KolibriOS User ' ; string -START: ; start of execution +START: ; start of execution mov eax,40 mov ebx,10000111b @@ -52,7 +53,7 @@ START: ; start of execution mov ebp,0 mov edx,I_END - call draw_window ; at first, draw the window + call draw_window ; at first, draw the window still: @@ -62,17 +63,17 @@ still: mov ebx,1 int 0x40 - mov eax,11 ; wait here for event + mov eax,11 ; wait here for event int 0x40 call print_status - cmp eax,1 ; redraw - je redraw - cmp eax,2 ; key - je main_window_key - cmp eax,3 ; button - je button + cmp eax,1 ; redraw + je redraw + cmp eax,2 ; key + je main_window_key + cmp eax,3 ; button + je button cmp [I_END+120*60],byte 1 jne no_main_update @@ -95,18 +96,18 @@ still: jmp still -redraw: ; redraw +redraw: ; redraw call draw_window jmp still -button: ; button +button: ; button - mov eax,17 ; get id + mov eax,17 ; get id int 0x40 - cmp ah,1 ; close program + cmp ah,1 ; close program jne noclose mov eax,-1 int 0x40 @@ -129,7 +130,7 @@ print_status: mov [status],eax cmp [old_status],eax - je nopr + je nopr mov [old_status],eax @@ -160,7 +161,7 @@ old_status dd 0 socket_commands: - cmp ah,22 ; open socket + cmp ah,22 ; open socket jnz tst3 mov eax,3 int 0x40 @@ -176,7 +177,7 @@ socket_commands: tst3: - cmp ah,23 ; write userinfo + cmp ah,23 ; write userinfo jnz tst4 mov eax,53 ; user @@ -234,7 +235,7 @@ socket_commands: tst4: - cmp ah,24 ; close socket + cmp ah,24 ; close socket jnz no_24 mov eax,53 mov ebx,8 @@ -257,7 +258,7 @@ main_window_key: cmp eax,8 jne no_bks2 cmp [xpos],0 - je still + je still dec [xpos] call print_entry jmp still @@ -269,7 +270,7 @@ main_window_key: mov [send_string+ebx],al inc [xpos] cmp [xpos],80 - jb noxposdec + jb noxposdec mov [xpos],79 noxposdec: call print_entry @@ -279,7 +280,7 @@ main_window_key: cmp eax,13 jne no_send cmp [xpos],0 - je no_send2 + je no_send2 cmp [send_string],byte '/' ; server command jne no_send2 mov [send_to_server],1 @@ -329,7 +330,7 @@ print_user_list: imul edx,120*80 add edx,120*60+8+I_END cmp [edx],byte 1 - je nonp + je nonp mov edx,ebp imul edx,120*80 @@ -345,14 +346,14 @@ print_user_list: newnss: inc edx dec eax - jz startuu + jz startuu asdf: cmp [edx],word ' ' jne nodouble inc edx nodouble: cmp [edx],byte ' ' - je newnss + je newnss inc edx cmp edx,ebx jbe asdf @@ -385,7 +386,7 @@ print_user_list: mov esi,0 newusers: cmp [edx+esi],byte ' ' - je do_print + je do_print inc esi cmp esi,20 jbe newusers @@ -401,7 +402,7 @@ print_user_list: inc ebp cmp ebp,10 - je nonp + je nonp add ebx,12 @@ -423,6 +424,19 @@ print_user_list: start_user_list_at dd 0x0 +recode_to_cp1251: + push esi edx + .loop: + lodsb + cmp al,0x80 + jb @f + and eax,0x7F + mov al,[cp866_table+eax] + @@: mov [esi-1],al + dec edx + jnz .loop + pop edx esi + ret send_data_to_server: @@ -445,7 +459,7 @@ send_data_to_server: mov [text_start],eax cmp [send_string],byte '/' ; server command - je server_command + je server_command mov bl,13 call print_character @@ -501,6 +515,8 @@ send_data_to_server: mov edx,[xpos] inc edx + call recode_to_cp1251 + mov eax, 53 ; write message mov ebx, 7 mov ecx, [socket] @@ -594,9 +610,9 @@ send_data_to_server: add edx,send_string-1 newsip: cmp [esi],byte '.' - je sipn + je sipn cmp esi,edx - jg sipn + jg sipn movzx ebx,byte [esi] inc esi imul eax,10 @@ -608,7 +624,7 @@ send_data_to_server: xor eax,eax inc esi cmp esi,send_string+30 - jg sipnn + jg sipnn inc edi cmp edi,irc_server_ip+3 jbe newsip @@ -653,11 +669,11 @@ send_data_to_server: mov ebx,eax shl ebx,5 cmp dword [channel_list+ebx],dword ' ' - je free_found2 + je free_found2 add edi,120*80 inc eax cmp eax,[max_windows] - jb newse2 + jb newse2 free_found2: @@ -744,7 +760,7 @@ read_incoming_data: call read_incoming_byte cmp ecx,-1 - je no_data_in_buffer + je no_data_in_buffer cmp bl,10 jne no_start_command @@ -799,9 +815,9 @@ create_channel_name: newcase: mov al,[esi] cmp eax,'a' - jb nocdec + jb nocdec cmp eax,'z' - jg nocdec + jg nocdec sub al,97-65 nocdec: mov [edi],al @@ -926,11 +942,11 @@ set_channel: newcase2: mov al,[esi] cmp eax,'#' - jb newcase_over2 + jb newcase_over2 cmp eax,'a' - jb nocdec2 + jb nocdec2 cmp eax,'z' - jg nocdec2 + jg nocdec2 sub al,97-65 nocdec2: mov [edi],al @@ -964,7 +980,7 @@ set_channel: jne notfound2 inc ecx cmp ecx,[channel_temp_length] - jb stc4 + jb stc4 popa jmp found @@ -976,7 +992,7 @@ set_channel: add [text_start],120*80 add ebx,32 cmp ebx,channel_list+19*32 - jb stcl1 + jb stcl1 mov [text_start],I_END @@ -987,7 +1003,7 @@ set_channel: ret -channel_temp: times 100 db 0 +channel_temp: times 100 db 0 channel_temp_length dd 0x0 @@ -1091,7 +1107,7 @@ analyze_command: mov ecx,100 new_blank: cmp [eax],byte ' ' - je bl_found + je bl_found inc eax loop new_blank mov eax,50 @@ -1125,7 +1141,7 @@ analyze_command: mov eax,command+10 acl3: cmp [eax],byte ':' - je acl4 + je acl4 inc eax loop acl3 mov eax,10 @@ -1173,7 +1189,7 @@ analyze_command: no_privmsg: - cmp [irc_command],'PART' ; channel leave + cmp [irc_command],'PART' ; channel leave jne no_part ; compare nick @@ -1220,7 +1236,7 @@ analyze_command: no_part: - cmp [irc_command],'JOIN' ; channel join + cmp [irc_command],'JOIN' ; channel join jne no_join ; compare nick @@ -1236,11 +1252,11 @@ analyze_command: mov ebx,eax shl ebx,5 cmp dword [channel_list+ebx],dword ' ' - je free_found + je free_found add edi,120*80 inc eax cmp eax,[max_windows] - jb newse + jb newse free_found: @@ -1305,7 +1321,7 @@ analyze_command: no_join: - cmp [irc_command],'NICK' ; nick change + cmp [irc_command],'NICK' ; nick change jne no_nick_change mov [text_start],I_END @@ -1329,7 +1345,7 @@ analyze_command: add [text_start],120*80 cmp [text_start],I_END+120*80*20 - jb new_all_channels3 + jb new_all_channels3 popa ret @@ -1337,7 +1353,7 @@ analyze_command: no_nick_change: - cmp [irc_command],'KICK' ; kick + cmp [irc_command],'KICK' ; kick jne no_kick mov [text_start],I_END @@ -1375,7 +1391,7 @@ analyze_command: - cmp [irc_command],'QUIT' ; irc quit + cmp [irc_command],'QUIT' ; irc quit jne no_quit mov [text_start],I_END @@ -1395,7 +1411,7 @@ analyze_command: add [text_start],120*80 cmp [text_start],I_END+120*80*20 - jb new_all_channels2 + jb new_all_channels2 popa ret @@ -1550,7 +1566,7 @@ compare_to_nick: add edi,1 cmp edi,[user_nick] - jb new_nick_compare + jb new_nick_compare movzx eax,byte [esi] cmp eax,40 @@ -1613,9 +1629,9 @@ print_text: ptr2: mov bl,[eax] cmp bl,dl - je ptr_ret + je ptr_ret cmp bl,0 - je ptr_ret + je ptr_ret call print_character inc eax cmp eax,ecx @@ -1630,12 +1646,32 @@ print_text: ret +cp1251_table: + db '?','?','?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; 8 + db '?','?','?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; 9 + db '?','?','?','?','?','?','?','?' , $F0,'?','?','?','?','?','?','?' ; A + db '?','?','?','?','?','?','?','?' , $F1,'?','?','?','?','?','?','?' ; B + db $80,$81,$82,$83,$84,$85,$86,$87 , $88,$89,$8A,$8B,$8C,$8D,$8E,$8F ; C + db $90,$91,$92,$93,$94,$95,$96,$97 , $98,$99,$9A,$9B,$9C,$9D,$9E,$9F ; D + db $A0,$A1,$A2,$A3,$A4,$A5,$A6,$A7 , $A8,$A9,$AA,$AB,$AC,$AD,$AE,$AF ; E + db $E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7 , $E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF ; F + +cp866_table: + db $C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7 , $C8,$C9,$CA,$CB,$CC,$CD,$CE,$CF ; 8 + db $D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7 , $D8,$D9,$DA,$DB,$DC,$DD,$DE,$DF ; 9 + db $E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7 , $E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF ; A + db '?','?','?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; B + db '?','?','?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; C + db '?','?','?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; D + db $F0,$F1,$F2,$F3,$F4,$F5,$F6,$F7 , $F8,$F9,$FA,$FB,$FC,$FD,$FE,$FF ; E + db $A8,$B8,'?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; F + print_character: pusha - cmp bl,13 ; line beginning + cmp bl,13 ; line beginning jne nobol mov ecx,[pos] add ecx,1 @@ -1651,7 +1687,7 @@ print_character: jmp newdata nobol: - cmp bl,10 ; line down + cmp bl,10 ; line down jne nolf addx1: add [pos],dword 1 @@ -1667,7 +1703,7 @@ print_character: no_lf_ret: - cmp bl,15 ; character + cmp bl,15 ; character jbe newdata mov eax,[irc_data] @@ -1684,7 +1720,7 @@ print_character: mov ebx,[scroll+4] imul ebx,[rxs] cmp eax,ebx - jb noeaxz + jb noeaxz mov esi,[text_start] add esi,[rxs] @@ -1749,7 +1785,6 @@ draw_data: ret - read_incoming_byte: mov eax, 53 @@ -1760,13 +1795,19 @@ read_incoming_byte: mov ecx,-1 cmp eax,0 - je no_more_data + je no_more_data mov eax, 53 mov ebx, 3 mov ecx, [socket] int 0x40 + cmp bl,0x80 + jb @f + and ebx,0x7F + mov bl,[cp1251_table+ebx] + @@: + mov ecx,0 no_more_data: @@ -1785,7 +1826,7 @@ draw_window: mov [old_status],300 - mov eax,0 ; draw window + mov eax,0 ; draw window mov ebx,5*65536+499 mov ecx,5*65536+345 mov edx,[wcolor] @@ -1794,33 +1835,33 @@ draw_window: mov edi,0x00ffffff int 0x40 - mov eax,4 ; label + mov eax,4 ; label mov ebx,9*65536+8 mov ecx,0x10ffffff mov edx,labelt mov esi,labellen-labelt int 0x40 - mov eax,8 ; button: open socket + mov eax,8 ; button: open socket mov ebx,43*65536+22 mov ecx,229*65536+10 mov edx,22 mov esi,[main_button] int 0x40 - mov eax,8 ; button: send userinfo + mov eax,8 ; button: send userinfo mov ebx,180*65536+22 mov ecx,229*65536+10 mov edx,23 int 0x40 - mov eax,8 ; button: close socket + mov eax,8 ; button: close socket mov ebx,317*65536+22 mov ecx,229*65536+10 mov edx,24 int 0x40 - mov eax,38 ; line + mov eax,38 ; line mov ebx,5*65536+494 mov ecx,148*65536+148 mov edx,[main_line] @@ -1829,7 +1870,7 @@ draw_window: ; mov edx,0x5555cc ; int 0x40 - mov eax,38 ; line + mov eax,38 ; line mov ebx,5*65536+494 mov ecx,166*65536+166 int 0x40 @@ -1837,7 +1878,7 @@ draw_window: ; mov edx,0x5555cc ; int 0x40 - mov eax,38 ; line + mov eax,38 ; line mov ebx,410*65536+410 mov ecx,22*65536+148 int 0x40 @@ -1845,7 +1886,7 @@ draw_window: ; mov edx,0x5555cc ; int 0x40 - mov ebx,25*65536+183 ; info text + mov ebx,25*65536+183 ; info text mov ecx,0x000000 mov edx,text mov esi,70 @@ -1857,7 +1898,7 @@ draw_window: cmp [edx],byte 'x' jne newline - mov edx,I_END ; text from server + mov edx,I_END ; text from server call draw_channel_text mov eax,12 @@ -1874,20 +1915,20 @@ main_button dd 0x6565cc text: -db ' Real name : Joe User - change with eg /areal Jill User ' -db ' Nick : AIRC - change with eg /anick Jill ' -db ' Server : 192.168.1.1 - change with eg /aserv 192.168.1.24 ' +db ' Real name : KolibriOS User - change with eg /areal Jill User ' +db ' Nick : kolibri_user - change with eg /anick Jill ' +db ' Server : 83.149.74.246 - change with eg /aserv 192.168.1.24 ' db ' ' db ' 1) Open socket 2) Send userinfo Close socket ' db ' ' db ' Commands after established connection: ' db ' ' -db ' /join #ChannelName - eg /join #menuet ' -db ' /part #ChannelName - eg /part #linux ' +db ' /join #ChannelName - eg /join #general ' +db ' /part #ChannelName - eg /part #windows ' db ' /query Nickname - eg /query Mary ' db ' /quit - Quit server and Close socket ' -db 'x <- END MARKER, DONT DELETE ' +db 'x' ; <- END MARKER, DONT DELETE @@ -1908,7 +1949,7 @@ channel_thread: add eax,0x80000 mov esp,eax - mov edi,ebp ; clear thread memory + mov edi,ebp ; clear thread memory imul edi,120*80 add edi,I_END mov ecx,120*80 @@ -1950,7 +1991,7 @@ channel_thread: no_draw_window: cmp eax,2 - je thread_key + je thread_key cmp eax,3 jne no_end @@ -1960,7 +2001,7 @@ channel_thread: imul eax,120*80 add eax,I_END cmp [eax+120*60+8],byte 0 ; channel window - je not_close + je not_close mov eax,ebp shl eax,5 add eax,channel_list @@ -2013,18 +2054,18 @@ check_mouse: and ebx,0xffff cmp eax,420 - jb no_mouse + jb no_mouse cmp eax,494 - jg no_mouse + jg no_mouse cmp ebx,145 - jg no_mouse + jg no_mouse cmp ebx,23 - jb no_mouse + jb no_mouse cmp ebx,100 - jb no_plus + jb no_plus mov eax,ebp imul eax,120*80 add eax,120*70+I_END @@ -2037,12 +2078,12 @@ check_mouse: no_plus: cmp ebx,80 - jg no_mouse + jg no_mouse mov eax,ebp imul eax,120*80 add eax,120*70+I_END cmp dword [eax-8],dword 0 - je no_mouse + je no_mouse dec dword [eax-8] call print_user_list mov eax,5 @@ -2070,7 +2111,7 @@ thread_key: cmp eax,8 jne no_bks cmp [xpos],0 - je w_t + je w_t dec [xpos] call print_entry jmp w_t @@ -2082,7 +2123,7 @@ thread_key: mov [send_string+ebx],al inc [xpos] cmp [xpos],80 - jb xpok + jb xpok mov [xpos],79 xpok: call print_entry @@ -2092,7 +2133,7 @@ thread_key: cmp eax,13 jne no_send cmp [xpos],0 - je no_send + je no_send mov dword [send_to_channel],ebp mov [send_to_server],1 wait_for_sending: @@ -2100,7 +2141,7 @@ thread_key: mov ebx,1 int 0x40 cmp [send_to_server],1 - je wait_for_sending + je wait_for_sending call draw_channel_text call print_entry jmp w_t @@ -2171,7 +2212,7 @@ thread_draw_window: mov ebx,1 int 0x40 - mov ebx,ebp ; draw window + mov ebx,ebp ; draw window shl ebx,16+4 mov eax,0 mov ecx,ebx @@ -2192,7 +2233,7 @@ thread_draw_window: int 0x40 - mov eax,ebp ; label + mov eax,ebp ; label add eax,48 mov [labelc+14],al mov eax,ebp @@ -2204,7 +2245,7 @@ thread_draw_window: cld rep movsb - mov esi,17 ; print label + mov esi,17 ; print label movzx ebx,byte [eax+31] add esi,ebx mov eax,4 @@ -2213,7 +2254,7 @@ thread_draw_window: mov edx,labelc int 0x40 - mov eax,38 ; line + mov eax,38 ; line mov ebx,5*65536+494 mov ecx,148*65536+148 mov edx,[channel_line_sun] @@ -2223,7 +2264,7 @@ thread_draw_window: int 0x40 - mov eax,38 ; line + mov eax,38 ; line mov ebx,410*65536+410 mov ecx,22*65536+148 mov edx,[channel_line_sun] @@ -2244,7 +2285,7 @@ thread_draw_window: ; DATA AREA -socket dd 0x0 +socket dd 0x0 bgc dd 0x000000 dd 0x000000 @@ -2275,67 +2316,67 @@ thread_stack dd 0x9fff0 thread_nro dd 1 thread_screen dd I_END+120*80*1 -action_header_blue db 10,'*** ',0 -action_header_red db 10,'*** ',0 +action_header_blue db 10,'*** ',0 +action_header_red db 10,'*** ',0 -action_header_short db 10,'* ',0 +action_header_short db 10,'* ',0 -has_left_channel db ' left channel ',0 -joins_channel db ' joined channel ',0 +has_left_channel db ' has left ',0 +joins_channel db ' has joined ',0 is_now_known_as db ' is now known as ',0 -has_quit_irc db ' has quit irc',0 -sets_mode db ' sets mode ',0 -kicked db ' kicked from ',0 +has_quit_irc db ' has quit IRC',0 +sets_mode db ' sets mode ',0 +kicked db ' kicked from ',0 -index_list_1 dd 0x0000bb -index_list_2 dd 0x0000ff +index_list_1 dd 0x0000bb +index_list_2 dd 0x0000ff -posx dd 0x0 -incoming_pos dd 0x0 +posx dd 0x0 +incoming_pos dd 0x0 incoming_string: times 128 db 0 -pos dd 0x0 +pos dd 0x0 text_start dd I_END irc_data dd 0x0 -print db 0x0 -cmd dd 0x0 -rxs dd 66 +print db 0x0 +cmd dd 0x0 +rxs dd 66 -res: db 0,0 +res: db 0,0 command: times 600 db 0x0 -nick dd 0,0,0 +nick dd 0,0,0 irc_command dd 0,0 command_position dd 0x0 -counter dd 0 -send_to_server db 0 +counter dd 0 +send_to_server db 0 -channel_list: times 32*20 db 32 +channel_list: times 32*20 db 32 send_to_channel dd 0x0 send_string_header: db 'privmsg #eax :' - times 100 db 0x0 + times 100 db 0x0 -send_string: times 100 db 0x0 -xpos dd 0 +send_string: times 100 db 0x0 +xpos dd 0 string0: db 'USER guest ser1 ser2 :' string0l: string1: db 'nick ' string1l: -attribute dd 0 -scroll dd 1 - dd 12 +attribute dd 0 +scroll dd 1 + dd 12 -numtext db ' ' +numtext db ' ' -wcolor dd 0x000000 +wcolor dd 0x000000 -labelc db 'AIRC - WINDOW X: #xxx ' -labelt db 'IRC client ',version +labelc db 'AIRC - WINDOW X: #xxx ' +labelt db 'IRC client ',version labellen: ;; diff --git a/programs/network/airc/trunk/build_en.bat b/programs/network/airc/trunk/build_en.bat index e9c13ce8aa..3d976b72ec 100644 --- a/programs/network/airc/trunk/build_en.bat +++ b/programs/network/airc/trunk/build_en.bat @@ -1,4 +1,5 @@ @erase lang.inc @echo lang fix en >lang.inc @fasm airc.asm airc +@erase lang.inc @pause \ No newline at end of file diff --git a/programs/network/airc/trunk/build_ru.bat b/programs/network/airc/trunk/build_ru.bat index e98562ee24..fbcd725c58 100644 --- a/programs/network/airc/trunk/build_ru.bat +++ b/programs/network/airc/trunk/build_ru.bat @@ -1,4 +1,5 @@ @erase lang.inc @echo lang fix ru >lang.inc @fasm airc.asm airc +@erase lang.inc @pause \ No newline at end of file diff --git a/programs/other/calc/trunk/calc.asm b/programs/other/calc/trunk/calc.asm index ee1d02e54f..1cb532a8a9 100644 --- a/programs/other/calc/trunk/calc.asm +++ b/programs/other/calc/trunk/calc.asm @@ -662,16 +662,16 @@ draw_window: int 0x40 xor eax,eax - mov ebx,200*65536+255 - mov ecx,200*65536+180 + mov ebx,200 shl 16+255 + mov ecx,200 shl 16+180 mov edx,[sc.work] or edx,0x33000000 mov edi,header int 0x40 mov eax,8 - mov ebx,19*65536+28 - mov ecx,49*65536+18 + mov ebx,19 shl 16+28 + mov ecx,49 shl 16+18 mov edx,6 mov esi,[sc.work_button] mov edi,7 @@ -679,20 +679,20 @@ draw_window: dec edi jnz no_new_row mov edi,7 - mov ebx,19*65536+28 - add ecx,20*65536 + mov ebx,19 shl 16+28 + add ecx,20 shl 16 no_new_row: int 0x40 - add ebx,30*65536 + add ebx,30 shl 16 inc edx cmp edx,39 jbe newbutton - mcall ,199*65536+28,49*65536+18,2 ; 'C' - mcall ,220*65536+8,7*65536+8,3 ; 'dec-bin-hex' + mcall ,199 shl 16+28,49 shl 16+18,2 ; 'C' + mcall ,220 shl 16+8,7 shl 16+8,3 ; 'dec-bin-hex' mov eax,4 - mov ebx,27*65536+54 + mov ebx,27 shl 16+54 mov ecx,[sc.work_button_text] mov edx,text mov esi,33 @@ -713,10 +713,10 @@ draw_window: print_display: pusha - mcall 13,18*65536+210,19*65536+13,0xffffff + mcall 13,18 shl 16+210,19 shl 16+13,0xffffff mov eax,4 - mov ebx,135*65536+7 + mov ebx,135 shl 16+7 mov ecx,[sc.work_text] or ecx,0x40000000 mov edx,calc @@ -724,7 +724,7 @@ print_display: mov edi,[sc.work] int 0x40 - mov ebx,198*65536+8 + mov ebx,198 shl 16+8 mov edx,[display_type] shl edx,2 add edx,display_type_text @@ -734,7 +734,7 @@ print_display: cmp [dsign],byte '+' je positive - mov ebx,23*65536+22 + mov ebx,23 shl 16+22 mov ecx,0x0 mov edx,dsign mov esi,1 @@ -746,22 +746,22 @@ positive: cmp [decimal],0 je whole - mov ebx,180*65536+22 + mov ebx,180 shl 16+22 mov ecx,0x0 mov edx,dot mov esi,1 int 0x40 mov eax,47 - mov ebx,10*65536 + mov ebx,10 shl 16 mov ecx,[integer] - mov edx,120*65536+22 + mov edx,120 shl 16+22 mov esi,0x0 int 0x40 - mov ebx,6*65536 + mov ebx,6 shl 16 mov ecx,[decimal] - mov edx,187*65536+22 + mov edx,187 shl 16+22 mov esi,0x0 int 0x40 @@ -769,7 +769,7 @@ positive: ret whole: - mov ebx,220*65536+22 + mov ebx,220 shl 16+22 mov ecx,0x0 mov edx,dot mov esi,1 @@ -779,9 +779,9 @@ whole: je null mov eax,47 - mov ebx,10*65536 + mov ebx,10 shl 16 mov ecx,[integer] - mov edx,160*65536+22 + mov edx,160 shl 16+22 mov esi,0x0 int 0x40 @@ -795,9 +795,9 @@ whole: je null mov eax,47 - mov ebx,256+8*65536 + mov ebx,256+8 shl 16 mov ecx,[integer] - mov edx,173*65536+22 + mov edx,173 shl 16+22 mov esi,0x0 int 0x40 @@ -809,9 +809,9 @@ whole: je null mov eax,47 - mov ebx,2*256+32*65536 + mov ebx,2*256+32 shl 16 mov ecx,[integer] - mov edx,32*65536+22 + mov edx,32 shl 16+22 mov esi,0x0 int 0x40 @@ -820,9 +820,9 @@ whole: null: mov eax,47 - mov ebx,1*65536 + mov ebx,1 shl 16 mov ecx,0 - mov edx,214*65536+22 + mov edx,214 shl 16+22 mov esi,0x0 int 0x40 diff --git a/programs/system/end/trunk/end.asm b/programs/system/end/trunk/end.asm index 8b0d689108..e29b0a0823 100644 --- a/programs/system/end/trunk/end.asm +++ b/programs/system/end/trunk/end.asm @@ -42,40 +42,42 @@ do_draw: sub ecx,50*10000h - 100 mov eax,0 ; define and draw window - mov edx,[sc.work_button] - mov esi,edx ;[sc.work_button] - xor edi,edi + mov edx,[sc.work] + mov esi,edx + mov edi,edx int 0x40 - xor edx,edx + mov edx,0x444444 mov al,13 - mcall ,14 shl 16+90,25 shl 16+27 + mcall ,18 shl 16+90,29 shl 16+27 push ebx - mcall ,117 shl 16+90, + mcall ,121 shl 16+90, xchg ebx,[esp] - mcall ,,59 shl 16+27 + mcall ,,63 shl 16+27 pop ebx mcall + xor edx,edx mov al,8 inc edx - mcall ,15 shl 16+87,26 shl 16+24,,0xdd7700 + mcall ,15 shl 16+87,26 shl 16+24,,0xbb0055 inc edx - mcall ,118 shl 16+87,,,0xbbbb ;cccc + mcall ,118 shl 16+87,,,0xaaaa ;cccc inc edx - mcall ,15 shl 16+87,60 shl 16+24,,0xbb00 + mcall ,15 shl 16+87,60 shl 16+24,,0x9900 inc edx - mcall ,118 shl 16+87,,,0xbbbbbb ;cccccc + mcall ,118 shl 16+87,,,0xaaaaaa ;cccccc mov al,4 ; 0x00000004 = write text mov ebx,75*65536+10 - mov ecx,[sc.work_button_text] ; 8b window nro - RR GG BB color - or ecx,0x10000000 + mov ecx,[sc.work_text] ; 8b window nro - RR GG BB color + or ecx,0x10000000 mov edx,label1 ; pointer to text beginning mov esi,label1_len ; text length int 0x40 - mov ecx,0x10ffffff + mov ecx,[sc.work_button_text] ; 8b window nro - RR GG BB color + or ecx,0x10000000 mov ebx,25*65536+30 mov edx,label2 ; pointer to text beginning mov esi,label2_len ; text length @@ -193,7 +195,7 @@ else label1_len = $ - label1 label2: - db ' BEENDEN KERNEL' + db ' BEENDEN KERNEL' label2_len = $ - label2 label3: diff --git a/programs/system/icon/trunk/build_en.bat b/programs/system/icon/trunk/build_en.bat index ed5e985257..88c2ba40bb 100644 --- a/programs/system/icon/trunk/build_en.bat +++ b/programs/system/icon/trunk/build_en.bat @@ -1,4 +1,5 @@ @erase lang.inc @echo lang fix en >lang.inc @fasm icon.asm icon +@erase lang.inc @pause \ No newline at end of file diff --git a/programs/system/icon/trunk/build_ge.bat b/programs/system/icon/trunk/build_ge.bat index 899195bf85..f07bb212c4 100644 --- a/programs/system/icon/trunk/build_ge.bat +++ b/programs/system/icon/trunk/build_ge.bat @@ -1,4 +1,5 @@ @erase lang.inc @echo lang fix ge >lang.inc @fasm icon.asm icon +@erase lang.inc @pause \ No newline at end of file diff --git a/programs/system/icon/trunk/build_ru.bat b/programs/system/icon/trunk/build_ru.bat index d7662b3d5c..9099b9cd67 100644 --- a/programs/system/icon/trunk/build_ru.bat +++ b/programs/system/icon/trunk/build_ru.bat @@ -1,4 +1,5 @@ @erase lang.inc @echo lang fix ru >lang.inc @fasm icon.asm icon +@erase lang.inc @pause \ No newline at end of file diff --git a/programs/system/icon/trunk/icon.asm b/programs/system/icon/trunk/icon.asm index bf98567256..3f99e3e551 100644 --- a/programs/system/icon/trunk/icon.asm +++ b/programs/system/icon/trunk/icon.asm @@ -11,10 +11,8 @@ RAW_SIZE equ 350000 ICON_SIZE equ 32*32*3 GIF_SIZE equ 45000 REC_SIZE equ 80 -ICON_LST equ '/RD/1/ICON2.LST' -;ICON_APP equ '/hd/1/me/icon2'; -ICON_APP equ '/RD/1/ICON2' -;ICON_STRIP equ '/HD/1/ME/ICONSTRP.GIF' +ICONS_DAT equ '/RD/1/ICONS.DAT' +ICON_APP equ '/RD/1/ICON' ICON_STRIP equ '/RD/1/ICONSTRP.GIF' use32 @@ -443,7 +441,7 @@ print_strings: popa ret -iconlst db ICON_LST,0 +iconlst db ICONS_DAT,0 load_icon_list: diff --git a/programs/system/icon/trunk/icons.dat b/programs/system/icon/trunk/icons.dat new file mode 100644 index 0000000000..53c680b9db --- /dev/null +++ b/programs/system/icon/trunk/icons.dat @@ -0,0 +1,14 @@ +AA-Sysxtree-004-/RD/1/SYSXTREE - * +AB-CMD -023-/RD/1/CMD - * +AC-RDsave -001-/RD/1/RDSAVE - * +BB-Fasm -012-/RD/1/FASM - * +CA-Copy -008-/RD/1/copy2 - * +JA-VRR -009-/RD/1/VRR - * +IA-Board -022-/RD/1/BOARD - * +BA-KFAR -016-/RD/1/kfar - * +JB-Animage -018-/RD/1/ANIMAGE - * +CB-Tinypad -011-/RD/1/TINYPAD - * +IB-AC97 -002-/RD/1/AC97WAV - * +JC-Docpack -010-/RD/1/DOCPACK - * +BC-Calc -006-/RD/1/CALC - * +HA-MTDBG -029-/RD/1/MTDBG - * diff --git a/programs/system/icon/trunk/iconstrp.gif b/programs/system/icon/trunk/iconstrp.gif new file mode 100644 index 0000000000000000000000000000000000000000..77b0386e5fe10e27586ab955127b92c2cd8f0de0 GIT binary patch literal 13807 zcmWmK_aoGg9|!RF?K88pJ1d(rvmLTal5Da^K8QF>`+2yi#vdhfM3fVjJ zd_UjUfAIX_`OD+^(l^voQg%WC0CYJN`0tQWNH`%J+TBGBeudD1CwC{;wsk`Xp%H}e z6a$+5Ki?w=P-gAxui`t3!B7^a`=t?gc=$Q>v@_B8aq{~FTNj(w4l45UX?_0n6iPDj z{;i&lZ@qe%eC`87AL5snmj^p44TLV`f4i;ekyzr!vK(Uwdk7^KPKFfx+S*$)(9^%} z?6>>}4lOI|>NrsGc<-jiU=M}a8%oPZnD35$j4D~aZt80nO)4mU|G9*!r}k6wx8q88 zVQR|lRARv2$!~Wgh3$(Dg@vvbjvc!ZOSxF+xARTs{vL*d!_TraE$`k`-VI{EUy%9c7&+*5_3mfCc}m*oFs!b2B%$^oBP0Ec z2wm-c@Bg53a%wW|L|#Qj#qOAmi-+gr?8MaIou|81^`@!2IpTAu{Nm!|vv-frz-QsA zw9vn6PMtr_+Tt#b{5#(D2Rx@9u*q zY_tKHrVAlP@}Yz9An1KJNjr+`c3TK675bjy8K80m4$sTz`#)KdE@idOo+2nu2#_C3Nx^^y}AWwXW5adV|0Z;T6xg_@B=Fl3FY? zS5h4e?^g~MD2VXH^^kQ zFYL#npTOV+0xQ3K`zeNw2{SqVBSjM6Ofnm3^_~rJ|SYehDhS9y?pV;EGP+&iJ`% zoy+$(JMh8bqltGmsb)~S*J2~3k$L>Qy$WxKKH`L=mXLQ)+#YEoCws!dk{VtjGN)?M z(w~g#GPG>NqnQ$H(q4a^NnS;N`PQeH!&sUTdd;Oh`ZD-ZHtEo!v#Ulb^82qf%Qph2 zkzbzr@2&Q$_2u6zKKwMWtZztJg}Q!3yZ-)G<8W1qTli^sK9{ORsNCDIlS8?j?0ft2 zlrzeRhI05aLK3z9@z#NN3(q zqQQK`m25IBMy!-%_dr9f2hH5fIRo6w(v%@dh#UcSlg0R`SBl#*`0tKxVdnxA&R z7D`|;5i5G1_Q?n(Ptl`pb}y#NtX*LeFUr--CB+`RNFrfx*0uF99Xxc-U;@BV4h$)EgaM$-Y%E+Q>5n13~Ds#y_Dv)I)u`1r`bS8nLpZr`LlsY*aWT9lzz{enB-wFcy7 zz)zK}uIisk%g^L{G>7V|e;jFe?T?tz*awcNX@-^e-Xrt{4lzEo|1xs>ZA0KP;8k{yZK?cF@CG? zU(%E94C5IZxdzSbCo3eKA(h@QgoO0g^8Z$sy_zhAhnBVcZa(5_j{$}-O`Vm z^@|^yN|kp0KKfmIw)`S7WaU$o!}G(xPiMB+E~`$ANCmzVxVKpNjSN>Y^?O0gg$f(A zP}`93LEX9VYh5j@XLBYq)OkpKgI1=QzXb7SrWB1_8fHg44LaP3y*0O$GoK+sffjPr z#4qNue;$IOE~2H1-63*1|BVc8HKVujz+cVgkHkoT(9XFL)a;DWqElM*t%L1S8jLY! zP&m8uHi#=59j)rGP(_FqkSincuXsQ2E;M~{MT?tMi{oonO)Z*oaI)qpoyXQRtoo$ z%s0au^2t?6LS%Q(L3;9`mlBvS{r4^O2uPMwN9v$Lx@kOndP;EIh5u<{MX_l=I8R<32 z-!HKl8`wE)SEi{8Ag=XTtDNVB=hAsmeN6t6{O8eqx@NqX#gZ(`4=t3@HU)-|Xts$_ zXx0shG8@L@H}L#*nQmK~Q?8@SOFjG*V6 z)bYi95vcXzg}1^LZ=}|ajBNP1oK9bgxUBoV3nDj5BJ5^gZXidb!Jd5#_uf~m9l6^o zKWpl+XHrueN|utVJe{NmfpjrMpYX>(Q~=9S^GF1Qtu`-D_YVlkNb!~BU7w!*+0uB_ zCmHmZVMgZ}nf(fzOf;^UmS%XYSrOmneJ($*MpkOY`0nu0gP`<+0z5;_;Fvw26s~X3 zsX^~gdMoiqXP8JA>e$BAKIe+i|H`h*yAwn>_D>>}TZtAnN&|kdbUsIZ^A&Vm_%q;;|6+ z&cYRx90;Yb}%_RO#Y9U zO1~9Whg|i^`+Z<40{0kU@ew9~8t+?z2fj z87iO6F(e*&7Vf6KH?L=5A5iKe*~}T zi@5Q|B>7B(j3F3uVu$qU>&&#$P?8YceBTMOHCuBp>|xV4{8$l6fP2^*~2JSeHM z|MxDcZsT9$;R4OQW2=jXy|2%MmIT69jipuh!zg7z<74N`b<5|yJ{Ro6b@i)}?&sfW ze(wyv{k>f+eZHdk`?zoN;%a11(-2ahL|?FW0kC5Mc6)BDBRm8vk}sNJhMoF}r9Z+> zB#A;pB&W1x0#LZvRxIlgn0p+@dxVoF0hf!gOxn0fFd&V^l3DQrN;o zz)#@us5An%2wvU_PZ#py+7CR32Z6yVeDWuO(<9tSBwWD&Q3V1fcEfKIU))IpOo`!R z{1GMw5w;!?cS9lsyRcOL1f+H(!a34$1#eswZZ#fZx)OPhJ<6*nBA_e6Y&_D%01--# zx<4NI$Rqr*M-+Y~!k3*GZWTp|GKdJVihR;Vd=?V<{3wcnJvwOxYbAnB6Tvzm!&5Ii zoQ=IWxg3+P6!Xq1=H$JvwyaIjQt1u=ex4D0Nr&kK&9wV!p@ggAzh866Jd(g zo{yE5jSEG`HYz#Dwz77R<4#*+sS15-M&f=N2&V1CD(>-zl2Ahi@dHHZju2EGIlhh< zXUrcr*%jMQW)gBv=n#po9*=`+C$tL1Z4eV0juKWx5^pUfbc%3pjVFv4cs3$|Q&}a8 z7Qq9LxD&F7Erv8)lt9oC6xro(Fo=I*5exk*%oH78zY@z(EUUBoG6Nq^W&Ki%Iaa4N zj`^5Wjf`(6CrSLJ#HeZ~_97FZvI=$;FPW)GWwO3EwBv>h(0{(f9(g3DRq(bP#n8Nr zi*=4M;gH3U`KcHPiuqVpaCm60h^66csx&6+P_)%w7W==bJKtY(%Dm=$iFN({+B!Yu z9#ss|EX6!JW&Tf!5r3+TRZ4cSZSeOL{|Biw(WzqO)Mp%Np4Rpezfz;3ZKI1(_|UZY zU%s*5(-!Why*iG4U7VK6k?t3op7uR8;ct5SgY=B_^t`|6nW3n}?bWJvc|u{u2Gz_e*MboBWH<~OJ|CR&Rb{A846ONsJE-K*F~vOrrA@)S;;8s)$iGB zhB?XG*((pS=Z}>R9^@qK<(w2}okeHo-^s}w(wN-NIi|{47R{lK$sx(*F`XzusI$+1 zX}o%yU0RjPET(+fCYQlTWACpD@`ENHXAaf2`YYz#e5}%yS~}5_T=5UNED!S~C-UXq z{w<_SN{$51P4i{;c1auunSrH$kbYx6FR1B9YqxmbkK_4c>#Toc)Nqnl!pmFUaIPv3U zcJRklVMqm{r~4CkGJ<@90O}wuwIWPCuP;xQS5NTq7?)%U;V}$gR*a{>T4^mmMN2rN z@@{1%i*4l#z!@!WCu?ipt*nJ1!LQY!WP7Y>wh=Udvqr`zu#6PVM{yLU`nqkk`e~KV zTW_PDQpL(DlRCgO1Frw5OdMNw(p@GeE=>Oq;@0!oev%K?143k!Po0QUp|oshoT;#1 z%#0a~%S*)2!c|URo@W4>jy3HmH6r=qzPVsVmYTkY-;Z|f0b0Njuo$cK>AuPUgxh` zo!9f3oB?a*s=HeW=3@Zc`Uc96Gm6(HA%c(Li20)YDR9+8E>b8G)t}ppA|jAxle( zpKTM5llW3zxAqDU^r$u28X6gMM!KM-&)TXv#agM4agaQdcgM!(awmWdg z8re3PIac^@gX{*W0(#rbO9Z_$}F3la_x=+Bj zr(&&^wh$T=!l}ILsshBk9`UErXA*hUEVmCg}^ zQm+KRBr^jI;dcMplUe^}t(UXpD);3N`6slQ55N2r@1vLfDtU^KBLOP_ z;^{VIJhP9F^tEuUmpiwXF`$y=5c#Vf(s5chS%NB#C09SKTp>ZahX=?Rb@aPvB9~UI zZGD-E=99F$4s~A6Qk|kv<>2L0Zu*w<<+UB#O8=eas z#&}_^;-ze-`Kho&H+e?E#1f-(zN(kLqFTdV%ER9A!|vy!?)EIZ+9U2+BWeCa`aI)C zbYlh$V|MnVgoY9O=`q~&nC=c=Wc;}5r{Sdh@!V~)3RmRe(;H+vRU%E(bVC;EJj(;<}G zWLB6mC+j_b#bjQ_WItC>IoY$0^HJMwyH3JwmF4Cd?Ft<{9_EXttELnRmS!OS3 zH!gWmmP9Cjo|Mj0o=VMgQ$pM|_#VyxhNdfqXuc%EvVZm>-eEc1dxc0*ikVqRo|z9n zjy7>xH4K8Ii|4nN9Yu5j_N^6xf?{DVj-&~4PzSLr2Hc;p-Bqq3KrM+h9yq2l4 zCMC55l)m3NUu#f@w`#1no2=VpjdWzMcYCi}eS*zzuiIePdo(s$6GrAqKn8F%!a9aw@|t<-@oWJ>O;qBV8>88PR1V^!3fDj*m7L~QPxi=|#^#w6 zT=-&r9=*wt17Mmq*Pm}dwsu7m_s8h>I0yEBdT#}p9vI!*H@a#mPxM8EYzv!^f z^WwnZ(%z~6!A0Z2JTKfs^PgAZ&S}yirGIl?3ii32*67lEWo)}6ep9lEHcXnHmvj`< zbQD*1G>>hc&&}%B*zPeswjo_g%Q=2ib_^ao{+SCSHNi3l_iVRs2RYK-`QaagLOL=W zzx}=WQ4ERCg;n1={r3FS`V*{Oa8s=50FtxOhumSX+;#M4<}BN8y!h8Ku_*eBhW+jbv9sQb^(3?1NsYrR7yF)?@ej@ZP2M^jnOV2H_?K03xM#A{RytChcs@?w zF!*%;%f${V@sxaN`=sgO?Dqxb);a*f%wq5`I^OGPrgPenbKEMf?2OnpHC8^O8wM5m z9lq?0k(2C|Z}kZ%9UDRGUBT{TsDgL>xc_WVnykA9_k%mj{n1LH)bG-VmW&frZ)USh z>=qfk72gxQX}B*sT%`YKwcYSwxuxVkVBh~c@~}VmniKVFY8kI@pXIVD!&GIY2Fb=w z-S&oGHfQSHbSpo9R76iyJb%yGII)*E-r>mQqdtz=b?tsFd9U=@%{{mNtTH;vgqp#= z$Iqm)+uB(w2Y*Ly+BF5KBM;SvifX1C<4*!&*^*1YdNZHhTfchwv_P4{21P4gVruXdN!r1VcKoNjG&JUu)=dltOk zH8%M|x^AO(fxi9(;NDWEAO*d64|$&rs*KFP-Tr*C0xA0f9hgk4g~&h$mB$MON~0lk zB|ZS1vT>pg_@)};b=K*g1XU&~HO7uDH?^CMmzR5P>)#C7-_gIox03+=Fu|QJ?!N*U z!=ac=lP(BiP|ygxlAiSa5`o*SM^dOxMukDE-t2}H7p6=L@jHB|1+#3h6V2T9u4dJTwp$^TtYeBvAf#;E09w&AR{?ntOND21cU2d)Mja>#;y2ab(oS{nLoKi)5RDY!^WC zj1b}+|A1p9`M%}!6M5xPi4$B9=DFr}d>`!BuKbPOBVBzg7oL)~z~jLMfWqD0_&Fxn zHy#ymBFJCA;2x6=gD3fx23=Agb7J_N1kDZH6R6@^#z0rebCJ>ag3<*XaYyL|oYycI z=eOZp*{Ga*ZZFAilv~fWFU1R~E@Ry=GX}7S>5i@OK6f0BQ>C*hKhmsKmkPe}XDo-c z#0QwVY5%#GZSf^HaM|ms6RT%RO*$mmZQ_CY)h?@5)~OJjM?}@=n@7=Kt&i92Es$iK z`xGhtVcpPD?Sn5b{8T-0?+#Kn>z1c&HVT(Lo?h-4hzLz-zNCaDTz0_PEf?IGncR4K zj0=i$CyUl`Wa(d-#y#Bq^L69lPpuZ*J=yHBd23UX_dx|ie!1zFxi#uHsJJm45z39e z7>uTy zKlF`kdh?X8Kl@~N@}f0~Z|2Xp<-@!(J>X-D;@NrGlYg!EG${F_SQ*Sb*70=a-`SYP z2J1EriI^co{Uw%4aDec0h!?!$PTS8Ij$0ejp?;Ox%ED_JPGz23i^?NY4G%^t(B{FK zNQuvqO&^{iofyQ6+P0n0vYf+Cr`dIx^OmG*Yut6 z%i@M1E+K7PW`j}e9$Iv( zcEXZ(FtE-YJi-T~LwkZ5P;Zva>8sYFu5Teu}btS&n@3 zHu3onagVq0rDd7d71MPs8~Q6#;R^3LDV$?wM1hL-agnOD?e6|k=9B@z(=HZ6?Tq%O zo%a0n=uUa~IFmLzfmVo`<*6yx_B?mDX(Y@+k;ZaKF{gYHCR4I4YYZLx>Ll4Jh-B=0 zjBa_2fC-CUy?w)&MT>6Cz7TC#F&%NnlHBH1h`!%q_8-czZ;9YTM{*<2mMnQIQGz!R$7~M=#}Vck+jwh7m@%`TaF{yI=7kP%ID~qU8z_Lwv^1PGDnR|gk-9zq>V(W_6p>_6X&ikfbTAmolJfr5WnwTw5ih{fu%gSA-pit~pU2$ip{M#}kdz>w zFKYjQ`<@LrNpb(3aNh$O&6A0PI=P}+5A3T+9trHUh=7tXLUr# z7$)ym_(W;|d8L(!LF!fH3*~u+9J0RH<{#oDXzmga+R0Jrr{bHtpvSJQi=kkhh}?XF z@7uoL;Z1THuKzx^SS9n&Ho6mYTNQ5$Xp0)6r zS{@dkW86L^Yuz^O$ui&bkm`HW>kPtO4DYfD?&Po~q`UgsA1S|7P3}G45I7Iq=OkuP zV~x8=b<3~Rw`s`XNEuW2`!(;eB$;=9p!xZ_%+}eGd*fE|mGgrN&F4#}=Nw|B6Si64 zY~o+oQumb?XE}3EixDr*o4z%!Ow%KhUAPw(E;J?j2y zA;YR$k5!4$ue2r2mFPU1Yyh1IOp9oo`tDODCT^t&QXGK6+F{$2u49>zX!uhdrEt8( zHeNk0LTMiln`D!2ZWH(YqP+-JD$yy%;qAI2*=NyS9=KT#f&&ANl?!Z1CRm7ERazt% zRby$$bTbScULGJg15%Gn(2S!M0bmy6<%}p@!{iP{51iLFlo7z*E`r=leq#Z^EXUCr z#CB`JPMbIo;1RAG!eKfHpwVC_!A_5N9c;dxdR-A(+F0QgxBx?>7czlu5ciy2&+rVv zL&o|@zySBk5bqLm5S| zj3nK#as#h4T}?Fj5eE2vq$}VHzm=vtBchj+-0>_t>X9eb&Jik*i}OqFEbxTzpuyKs zMsKfoJGo*V9E}Xk!(Vt1UZBI@$92E0h9-F8=sbXexK1P*oNyNPoZIL-7OaOcOz?!< zLxWT8y4e`QE6<`{Y#U@G(@JBo8bv*`+fWVwQAKO`z9j0?S(H&YKFAa6g8{0;;fC+N zzmxA_8;qh`=%QIM5&#U`w17vZk+Elbk=LP=+t6VFbVcrINjicqs*oI*vf9L>Bxq(1)q@6*8hYHRDg>Zk?-SF(z_BsMS zH~@6P9H!p-AhAH#O##zz*xhgr0HA*aJF!E5H;ACVIjH^arU(*&Im>`6;i%Pd40J!t zkys0l2p@y%ipg<43_qBUBEf@fhT16#?|yK8{=xOBF6rkFp3m6Fv$uKF5mzLO|5Oop z05GZI%}2x9*C@hA!?X}k9bSZDrs4s&8<$ovt>jLFfz4&b?-IBH5WN+i{&gJBAP?cWXQ0lF4)iX4u3Nsh#A)I0Qf_Ou7x1d zzvG@B4V&8I4Z;w7D_~yqU0PJ6xlrWYupudOR3eU`2fJ$k1F<*XF9Nf^@`^oY@NsJpA7o&p<=0a2%kTiffJ3Ar>^UF8O@=3us z{v2vP8{vk9Ff{{JGlk@OMJB}}a7Yc>70VEXyVuW0Ea+?%0Fa%PrV`d#?422t5<#BT(p-1=!E0gn zBwIUVeI1>KVBly~bZWTO{`;{W8R5j`~E$PTzQ1_;@;g0%ed-Xnb52C$Lf&H~Q`^moPX&8?FsSy0Ryai7a_?8zsdvN4^%wsBk)+=+v0KX=pqP}V`IwiosHZS=z{dR{D%A9 zV`zq~S7A>+|K?M2bT^*mwsQOzuS_LS(I7XABBEI*9bktuXyHDXXo6TXp7x8=#X`A05iWN`0bGl49=-^f z5Ga2F+yWCBQsks!g*zQ_pg#pET45!Mz;eD(Y77up28gI4K|c+5{^0j*YtVl=uY`n) zk(>jIz@kLBd^T7v2qB7zL>GZ2-5izSSZNAKhJhf~1!iSmpeDjuNdz={!2?M^AI)7N z(UONO*Qe2jHOF%rau zp5UfPK>J2HCPc!TU4pyt;~Q@4@lmXiORzL&Kg!iVup*oS>b`>og6ucrJws%5gt@1H z?dV+{D1e*+;gW9@wZ{@NBn8_!-8Km*1T9^{xXY2ifeaAkBAi4KC`vD?1n*A2tvfnN z_-`5xc8u^yfmm2UWX2H|ju8@8Sh_*6kj5#VE|6roYj6=x%<8}C-(AKOk>WS#KC^#N8x1R+XsO1x^E zMWQ8I{O7&|FG@6=yh4`-qVG$oRwS;eJ3>ll=@#&9dY)3b-&@^0-Hq4V4hcts>vS3G zbUJkO1W(Pubr<5TZr*imb2>_!g=b&FdcU`)JB^n>*Lt6#SIg+l)<(}CS2uoA*2hX6 zJC@d`yf=n4W`B-)#g?phmpaZZZOlux&z8=P7cR_|deIwioGExuKieGA^ByjQE_H4$ zD0HydehTvIguiz9oJVCefCo#|9M{-INbcBh=23c=g7k6B*FW% zaqFmXb7INoY;^Ou&~tw@Z)s^`Ut=2*L{0CpjkrgJxR?grSeneLrE1##-RDbF<~up< zduhv8{oI%Fk{|WAZKf-J%wxVR?mNuEJFGAK=o9@IzHNg9F}+ngTmydKshthg=_@bL z&5`fey|7TU|NY`PZCT2$fP0G2*bx7{U1-`M)DaLX+x>0;On%;#l)ftNj+JiO<@W*T zMf}l-$D+Rlq&4?MQvDS!b|n(8UMuszo%>kjn!ntO$FhmE%I3t*VKuyg}>t7SoU zsc{-PzCl}p8WdSJRL#Hpp}~K{;3r{hO%4apaj*&il71^o18^pZ>`Hn};jXZXsUCTP zLKsZVSgod{CqXZy{iAb2ViGUo2SD^UkAyyPBwWajOA30Bj$WnNNBSHkUM}Bb4$WQ* z!8aWpw$^6TM8CeM1Z55i7 zVR;gH1)~JC2lCY>G@TR#hkh6UsR@PTkDYk#gjT+nZE8ER`8ODzNvSwnhnhAVbJ^nxayp0}ZiFw&sWS zg0ACW3JT4M8V9)!;_Fj6IdtGk27v20d~J+L1q2`swP^|z*%wrD|Q_(~LIXE5$>BBh^1T5Y2I8H^htKDYV% ze40c8e#HMlz4%>3HKv`F0ImC07S&Yc8^ zrQUkikE@2MR}r1<9wfJ(7->4^>t8DtuV*U0+LZ9v=Nrtu;l!C`Z3b9?@+%+yq15ia z(8oDdq}SZx~cdwPs(|S_z-+^8H6rOQm4j}gmX;g6O6a>N}`Z8Z)=QffWA@}gdv zM%hKnTcrJt;P6h5E70wDF+E`At8h-($+2+u;|XPtH#nvz9(n$w(fQDLmDLsM zK+Xxlw~01S{zeCj)xrw1R8+zXZons2s7=!*Rv3!4e-tx*`m!pL&Gb$M%2G99^YK&e zhldY8B=ARxeX4q6BVJKY&$V9C2;P41DV~XIz3N9c^~1MK`7z?vzcijcDjUfT{Z!HU zQ*5*JqnT>)`;@E3pWfzsce@t+wc&h_i8p&A)!=IqBa(l*YwVG0j8sEYT3}qy(Ai#M z_2@RwlwEW?qp{jf8+9r_Qzu81xlzVtpF1%ks90{#M#iL2~8#=C*Ih_VXfysztPEZp!s?L#F+e<^)L?(K+*mfIbnfKC@ve zgYfDR#YgA2hvz&6x_{a02Lys|Z>fD5^b*Lb9yU)+ikdWwZ@3A5kRcf}b$eM$aUvoo zj4a}EYw^o0LH}H)>xt&s?YaA!jdYOv`i*_Ri8-GR7CbT<;ujJZ!pOhExDvjM_V}5c z%%;&~e_b(q>OdaF(NJzLmAN|{4u8BtU-OG60)p8pfNULX&dd*hd;qd!J%8ABBZ|E8N zpX$g?Ur^-U?~5DXurM1b(Aq1T3o|{QMC;N=DLVGNNMiFTo%ciDfZVB*(U!kn+t2^1 z<}GlCv@-cKM4U47Q3;L9fTYU*GgAbF$x(-GDb86V&Z-SCjo@RdAnK{{GrcNm7m}@r zHhIR+@>Z#x)wCkU;$1#Vlm~(a^EP&VR!^aoUC(b^E5`N)!2J`6uUygMa+EHJKm2!3Pv^Go?$FC-H!a^w1L((A@*At~!(W4Ei1V+O9fN!kCpVeKIIrZRI${G&C@ zg(4dr1S~5Oe%*Amkx44$zAsuF((Ur3irTpZ&dmOx#~Pi-nOZL_=0&CNDD^Y`iG+yu zwO{)D)RlSkVIq8&y9cAps`D6i`Lz?%f9R?(MLR)VG!!NVp3YQ}O5X8nPAPxCy(^Gy z6)-Q`mfqp>@J{CKxCbikDkcFF$p8~^%&r)Rs*ZxicHul6V?e@^hE%iIM^zad>afSqCQtP zfY||tNF=vqrKX79mE2W?Yx^wwHxW?K>Gs&d)oZkONS~a`7;w(=pLy;Oqb%!e#x}Yw zpa6QEby#dfpM^kX4AB!B=88Ihb3mrxeYe~pT)&GB0h;uc>%s=Mu`VP9`Yfw*M(mq0 zaj28>BO>-$#TzO|2||fVxu>KN){&~brV4;JM`XlCI0FmRDuXzr+bm6;Hn|G#=t*l* zABmo_s2q&=$cRUWqxSjedyr9n?oa2DC49v@9by6QrZ7!k5c4Gmc*Lt`E{vJ%9hPDK zspiAU zMB-JRZ$knl$OF%V9_J!x?_Z0({6qV`e2(b($|8RhYX+-C-n0Y}*)H%S)?2@C9=8ptU8-8bb(Lxzl184#{@R-WF?^%!jWY;0^ z41q;04A%C;+BKF$9V$WJjm_-SPtUIg__+X)q7q8ni9`sxiw+*v^mW8CO$#bwvJx$x zIafOk`M|pA7FK6@nUPq+X1cZ%zov@hO~pD0X!wN+2g8^94?112ezjm1 goto handler + je boot_bd_enable + jmp no_params + +;****************************************************************************** + +boot_bd_enable: + + call find_north_bridg + call set_bd_stat + mcall -1 + +;****************************************************************************** + + +;-------------------------------------------------------------------------- + +header db appname,version,0 + +msg_divs db ' x8 x16 x32 x64 x128 x256 x512' +msg_hdd db 'Hatl Disc.' +msg_sgd db 'Stop Grand' +msg_nb db 'North bridge :';14 +msg_stat db 'Status :' ;8 +msg_en db 'Enabled ' ;9 +msg_dis db 'Disabled ' ;9 +msg_nf db 'Not found' ;9 + +I_END: +sc system_colors +val_hdd: dd ? +val_sgd: dd ? + diff --git a/programs/system/kbd/trunk/macros.inc b/programs/system/kbd/trunk/macros.inc new file mode 100644 index 0000000000..58209dc4c9 --- /dev/null +++ b/programs/system/kbd/trunk/macros.inc @@ -0,0 +1,266 @@ +; new application structure +macro meos_app_start + { + use32 + org 0x0 + + db 'MENUET01' + dd 0x01 + dd __start + dd __end + dd __memory + dd __stack + + if used __params & ~defined __params + dd __params + else + dd 0x0 + end if + + dd 0x0 + } +MEOS_APP_START fix meos_app_start + +macro code + { + __start: + } +CODE fix code + +macro data + { + __data: + } +DATA fix data + +macro udata + { + if used __params & ~defined __params + __params: + db 0 + __end: + rb 255 + else + __end: + end if + __udata: + } +UDATA fix udata + +macro meos_app_end + { + align 32 + rb 2048 + __stack: + __memory: + } +MEOS_APP_END fix meos_app_end + + +; macro for defining multiline text data +struc mstr [sstring] + { + forward + local ssize + virtual at 0 + db sstring + ssize = $ + end virtual + dd ssize + db sstring + common + dd -1 + } + + +; strings +macro sz name,[data] { ; from MFAR [mike.dld] + common + if used name + label name + end if + forward + if used name + db data + end if + common + if used name + .size = $-name + end if +} + +macro lsz name,[lng,data] { ; from MFAR [mike.dld] + common + if used name + label name + end if + forward + if (used name)&(lang eq lng) + db data + end if + common + if used name + .size = $-name + end if +} + + + +; easy system call macro +macro mpack dest, hsrc, lsrc +{ + if (hsrc eqtype 0) & (lsrc eqtype 0) + mov dest, (hsrc) shl 16 + lsrc + else + if (hsrc eqtype 0) & (~lsrc eqtype 0) + mov dest, (hsrc) shl 16 + add dest, lsrc + else + mov dest, hsrc + shl dest, 16 + add dest, lsrc + end if + end if +} + +macro __mov reg,a { ; mike.dld + if ~a eq + mov reg,a + end if +} + +macro mcall a,b,c,d,e,f { ; mike.dld + __mov eax,a + __mov ebx,b + __mov ecx,c + __mov edx,d + __mov esi,e + __mov edi,f + int 0x40 +} + + + +; language for programs +lang fix ru ; ru en fr ge fi + + + +; optimize the code for size +__regs fix + +macro add arg1,arg2 + { + if (arg2 eqtype 0) + if (arg2) = 1 + inc arg1 + else + add arg1,arg2 + end if + else + add arg1,arg2 + end if + } + +macro sub arg1,arg2 + { + if (arg2 eqtype 0) + if (arg2) = 1 + dec arg1 + else + sub arg1,arg2 + end if + else + sub arg1,arg2 + end if + } + +macro mov arg1,arg2 + { + if (arg1 in __regs) & (arg2 eqtype 0) + if (arg2) = 0 + xor arg1,arg1 + else if (arg2) = 1 + xor arg1,arg1 + inc arg1 + else if (arg2) = -1 + or arg1,-1 + else if (arg2) > -128 & (arg2) < 128 + push arg2 + pop arg1 + else + mov arg1,arg2 + end if + else + mov arg1,arg2 + end if + } + + +macro struct name + { + virtual at 0 + name name + sizeof.#name = $ - name + end virtual + } + +; structures used in MeOS +struc process_information + { + .cpu_usage dd ? ; +0 + .window_stack_position dw ? ; +4 + .window_stack_value dw ? ; +6 + .not_used1 dw ? ; +8 + .process_name rb 12 ; +10 + .memory_start dd ? ; +22 + .used_memory dd ? ; +26 + .PID dd ? ; +30 + .x_start dd ? ; +34 + .y_start dd ? ; +38 + .x_size dd ? ; +42 + .y_size dd ? ; +46 + .slot_state dw ? ; +50 + rb (1024-52) + } +struct process_information + +struc system_colors + { + .frame dd ? + .grab dd ? + .grab_button dd ? + .grab_button_text dd ? + .grab_text dd ? + .work dd ? + .work_button dd ? + .work_button_text dd ? + .work_text dd ? + .work_graph dd ? + } +struct system_colors + + +; constants + +; events +EV_IDLE = 0 +EV_TIMER = 0 +EV_REDRAW = 1 +EV_KEY = 2 +EV_BUTTON = 3 +EV_EXIT = 4 +EV_BACKGROUND = 5 +EV_MOUSE = 6 +EV_IPC = 7 +EV_STACK = 8 + +; event mask bits for function 40 +EVM_REDRAW = 1b +EVM_KEY = 10b +EVM_BUTTON = 100b +EVM_EXIT = 1000b +EVM_BACKGROUND = 10000b +EVM_MOUSE = 100000b +EVM_IPC = 1000000b +EVM_STACK = 10000000b \ No newline at end of file diff --git a/programs/system/kbd/trunk/readme.txt b/programs/system/kbd/trunk/readme.txt new file mode 100644 index 0000000000..4162618510 --- /dev/null +++ b/programs/system/kbd/trunk/readme.txt @@ -0,0 +1,45 @@ +Kolibri Bus Disconnect + +└тЄюЁ : ╠шїрщыют ╚ы№  └эфЁххтшў aka Ghost +┬хЁёш  : юЄ 24/10/06 +╬╤ : Kolibri +forum : meos.sysbin.com -> ╧ЁюуЁрьь√ -> GMon +mailto : ghost.nsk@mail.ru + +╧юффхЁцштрхь√х ўшяёхЄ√: + +AMD 751 +AMD 751S +AMD 761 +AMD 762 + +NVIDIA nForce +NVIDIA nForce 2 (400) + +SiS 735 +SiS 740 +SiS 741 +SiS 745 +SiS 730 +SiS 733 +SiS 746 +SiS 748 + +VIA KT133(A)/KM133/KL133/KN133 * +VIA KX133 +VIA KLE133 +VIA KT266(A)/KT333 +VIA KM266/KL266/KM333 +VIA KN266 +VIA KT400(A)/KT600 +VIA KM400 +VIA KT880 + +╧╨╚╠┼╫└═╚┼: (Heavyiron, 24.10.2006) +┬ырфхы№Ў√ фрээ√ї ўшяёхЄют ьюуєЄ (яЁш цхырэшш) яюьхёЄшЄ№ +¤Єє яЁюуЁрььє т ртЄючруЁєчъє ё ярЁрьхЄЁюь boot. ─ы  ¤Єюую т +autorun.dat эхюсїюфшью яюьхёЄшЄ№,эряЁшьхЁ, Єръє■ ёЄЁюъє: +"/RD/1/KBD BOOT 20 # Enable Bus Disconnect for AMD K7 processors", +эх чрс√т яЁш ¤Єюь єтхышўшЄ№ ъюышўхёЄтю чряєёърхь√ї яЁюуЁрьь эр юфэє +т ёрьюь эрўрых Їрщыр autorun.dat. + diff --git a/programs/system/menu/trunk/menu.asm b/programs/system/menu/trunk/menu.asm index 30092db3b9..6107f6d4e5 100644 --- a/programs/system/menu/trunk/menu.asm +++ b/programs/system/menu/trunk/menu.asm @@ -468,11 +468,11 @@ draw_window: shl ecx, 16 add ecx, BTN_HEIGHT-1 ; edx = button identifier - mov esi, [sc.work_button] + mov esi, [sc.work] inc dl cmp [edi + cur_sel], dl jne .nohighlight - add esi, 0x202020 + add esi, 0x101010 .nohighlight: or edx, 0x20000000 int 0x40 @@ -497,7 +497,7 @@ draw_window: dec ecx jnz .findline - mov ecx, [sc.work_button_text] + mov ecx, [sc.work_text] mov eax, 4 mov esi, 21 int 0x40