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 0000000000..77b0386e5f Binary files /dev/null and b/programs/system/icon/trunk/iconstrp.gif differ diff --git a/programs/system/kbd/trunk/build.bat b/programs/system/kbd/trunk/build.bat new file mode 100644 index 0000000000..4b91a0e805 --- /dev/null +++ b/programs/system/kbd/trunk/build.bat @@ -0,0 +1,2 @@ +@fasm kbd.asm kbd +@pause \ No newline at end of file diff --git a/programs/system/kbd/trunk/kbd.ASM b/programs/system/kbd/trunk/kbd.ASM new file mode 100644 index 0000000000..3b6aa43aa7 --- /dev/null +++ b/programs/system/kbd/trunk/kbd.ASM @@ -0,0 +1,569 @@ +; +; Kolibri Bus Disconnect +; Test for bus disconnect +; +; Compile with FASM for Menuet +; +; + +include 'macros.inc' +include 'lang.inc' + +memsize = 1000h + org 0 +PARAMS = memsize - 1024 + +appname equ 'Kolibri Bus Disconnect' +version equ ' 1.1 ' + + use32 ; включить 32-битный режим ассемблера + + db 'MENUET01' ; 8 byte id + dd 0x01 ; header version + dd START ; start of code + dd I_END ; size of image + dd memsize ; memory for app + dd memsize - 1024 ; esp + dd PARAMS , 0x0 ; I_Param , I_Icon + + + +;--------------------------------------------------------------------- +;--- НАЧАЛО ПРОГРАММЫ ---------------------------------------------- +;--------------------------------------------------------------------- + +START: + cmp [PARAMS], byte 0 + jne check_parameters + +no_params: + call find_north_bridg + +drawwindow: + mov eax,48 + mov ebx,3 + mov ecx,sc + mov edx,sizeof.system_colors + int 0x40 + + mov eax, 12 + mov ebx, 1 ; start redraw + int 0x40 + + mov eax, 0 ; window + mov ebx, 100 shl 16 + 300 + mov ecx, 100 shl 16 + 90 + mov edx, [sc.work] + or edx, 0x13000000 + mov edi, header + int 0x40 + + mov eax, 4 + mov ebx, 17 shl 16 + 30 + mov ecx, [sc.work_text] + mov edx, msg_nb + mov esi, 14 + int 0x40 + + mov ebx, 105 shl 16 + 30 + mov edx, [nb_name] + movzx esi, byte[edx] + inc edx + int 0x40 + + mov ebx, 17 shl 16 + 40 + mov edx, msg_stat + mov esi, 8 + int 0x40 + + mov ebx, 102 shl 16 + 50 + mov edx, msg_divs + mov esi, 32 + int 0x40 + mov ebx, 17 shl 16 + 62 + mov edx, msg_hdd + mov esi, 10 + int 0x40 + mov ebx, 17 shl 16 + 72 + mov edx, msg_sgd + int 0x40 + + call get_divs + mov eax, 47 + mov ebx, 0x30000 + mov ecx, [val_hdd] + mov edx, 8 + shl edx, cl + mov ecx, edx + mov edx, 80 shl 16 + 62 + mov esi, [sc.work_text] + int 0x40 + + mov ecx, [val_sgd] + mov edx, 8 + shl edx, cl + mov ecx, edx + mov edx, 80 shl 16 + 72 + int 0x40 + + + call get_bd_stat + mov ecx, [sc.work_text] + mov esi, 9 + mov ebx, 105 shl 16 + 40 + mov edx, msg_nf + mov al, [bd_stat] + test al, al + jz @f + mov edx, msg_dis + dec al + jz @f + mov edx, msg_en +@@: mov eax, 4 + int 0x40 + + ; Создаём кнопку + mov ecx, 27 shl 16 + 20 + mov eax, 8 + mov ebx, 220 shl 16 + 70 + mov esi, [sc.work_button] + mov edx, 2 + int 0x40 + + ; И ещё 14 ;) + mov edi, 7 + mov ecx, 60 shl 16 + 10 + mov eax, 8 + mov ebx, 105 shl 16 + 25 + mov edx, 3 + +@@: int 0x40 + inc edx + add ebx, 27 shl 16 + dec edi + jnz @b + + add ecx, 12 shl 16 + mov ebx, 105 shl 16 + 25 + mov edi, 7 +@@: int 0x40 + inc edx + add ebx, 27 shl 16 + dec edi + jnz @b + +end_dr: mov eax, 12 + mov ebx, 2 ; end redraw + int 0x40 + +; Wait for event ... + mov eax, 10 + int 0x40 + + cmp al, 3 + jne not_bt + + mov eax, 17 ; get id + int 0x40 + cmp ah, 1 + jne no_exit + mov eax, -1 ; close this program + int 0x40 +no_exit: + cmp ah, 2 + jne no_ch_bt + mov dl, [bd_stat] + test dl, dl + jz drawwindow + xor eax, eax + dec dl + jnz @f + inc eax +@@: call set_bd_stat + jmp drawwindow + +no_ch_bt: + cmp ah, 9 + jg no_hdd_bt + sub ah, 3 + movzx esi, ah + mov edi, [val_sgd] + call set_divs + jmp drawwindow +no_hdd_bt: + sub ah, 10 + movzx edi, ah + mov esi, [val_hdd] + call set_divs + jmp drawwindow + + +not_bt: cmp al, 2 + jne drawwindow + mov eax, 2 ; пока клава не поддерживается - читаем и забываем + int 0x40 + jmp drawwindow +;-------------------------------------------------------------------------- +bus_num: db 2 ; Номер шины +devfn: db 255 +bd_id: dd 0 ; Идентификатор устройства +bd_stat: db 0 ; 0 - не найден, 1 - выключен, 2 - включен + +nb_name dd nb_nf +bd_msk dd msk_i440 + +nb_nf db 9, 'Not found' +msk_i440 db 0 +nb_i440 db 4, 'i440' +msk_nforce db 0x6D, 0x80, 0xE7, 0x06, 0 ; номер регистра, маска, номер регистра, маска, ... , 0 +nb_nforce db 6, 'nForce' +msk_nforce2 db 0x6F, 0x10, 0 +nb_nforce2 db 8, 'nForce 2' +msk_sis730 db 0x6B, 0x01, 0 +nb_sis730 db 7, 'SiS 730' +nb_sis733 db 7, 'SiS 733' +msk_sis735 db 0x6A, 0x03, 0 +nb_sis735 db 7, 'SiS 735' +nb_sis740 db 7, 'SiS 740' +nb_sis741 db 7, 'SiS 741' +nb_sis745 db 7, 'SiS 745' +msk_sis746 db 0x6C, 0x01, 0 +nb_sis746 db 7, 'SiS 746' +nb_sis748 db 7, 'SiS 748' +msk_amd751 db 0x62, 0x06, 0 +nb_amd751 db 7, 'AMD 751' +nb_amd751s db 8, 'AMD 751S' +nb_amd761 db 7, 'AMD 761' +msk_amd762 db 0x62, 0x02, 0x6A, 0x02, 0 +nb_amd762 db 7, 'AMD 762' +msk_viakt133 db 0x52, 0x80, 0x70, 0x08, 0 +nb_viakt133 db 30, 'VIA KT133(A)/KM133/KL133/KN133' +nb_viakx133 db 9, 'VIA KX133' +nb_viakle133 db 10, 'VIA KLE133' +msk_viakt266 db 0x92, 0x80, 0x95, 0x02, 0x70, 0x08, 0 +nb_viakt266 db 18, 'VIA KT266(A)/KT333' +nb_viakm266 db 21, 'VIA KM266/KL266/KM333' +nb_vikn266 db 9, 'VIA KN266' +msk_viakt400 db 0xD2, 0x80, 0xD5, 0x02, 0x70, 0x08, 0 +nb_viakt400 db 18, 'VIA KT400(A)/KT600' +nb_viakm400 db 9, 'VIA KM400' +msk_viakt880 db 0x82, 0x80, 0x85, 0x02, 0 +nb_viakt880 db 9, 'VIA KT880' + + +bd_table: dd 0x70061022 ; AMD 751 ---- + dd nb_amd751 + dd msk_amd751 + + dd 0x70041022 ; AMD 751S + dd nb_amd751s + dd msk_amd751 + + dd 0x700E1022 ; AMD 761 + dd nb_amd761 + dd msk_amd751 + + dd 0x700C1022 ; AMD 762 + dd nb_amd762 + dd msk_amd762 + + dd 0x71908086 ; i440 --- + dd nb_i440 + dd msk_i440 + + dd 0x01A410DE ; nForce ---- + dd nb_nforce + dd msk_nforce + + dd 0x01E010DE ; nForce 2 + dd nb_nforce2 + dd msk_nforce2 + + dd 0x07301039 ; SiS 730 ---- + dd nb_sis730 + dd msk_sis730 + + dd 0x07331039 ; SiS 733 + dd nb_sis730 + dd msk_sis730 + + dd 0x07351039 ; SiS 735 + dd nb_sis735 + dd msk_sis735 + + dd 0x07401039 ; SiS 740 + dd nb_sis735 + dd msk_sis735 + + dd 0x07411039 ; SiS 741 + dd nb_sis735 + dd msk_sis735 + + dd 0x07451039 ; SiS 745 + dd nb_sis735 + dd msk_sis735 + + dd 0x07461039 ; SiS 746 + dd nb_sis746 + dd msk_sis746 + + dd 0x07481039 ; SiS 748 + dd nb_sis746 + dd msk_sis746 + + dd 0x03051106 ; VIA KT133(A)/KM133/KL133/KN133 ---- + dd nb_viakt133 + dd msk_viakt133 + + dd 0x03911106 ; VIA KX133 + dd nb_viakt133 + dd msk_viakt133 + + dd 0x06911106 ; VIA KLE133 + dd nb_viakt133 + dd msk_viakt133 + + dd 0x30991106 ; VIA KT266(A)/KT333 + dd nb_viakt266 + dd msk_viakt266 + + dd 0x31161106 ; VIA KM266/KL266/KM333 + dd nb_viakt266 + dd msk_viakt266 + + dd 0x31561106 ; VIA KN266 + dd nb_viakt266 + dd msk_viakt266 + + dd 0x31891106 ; VIA KT400(A)/KT600 + dd nb_viakt400 + dd msk_viakt400 + + dd 0x32051106 ; VIA KM400 + dd nb_viakm400 + dd msk_viakt400 + + dd 0x22691106 ; VIA KT880 + dd nb_viakt880 + dd msk_viakt880 +bd_table_end: + + + +find_north_bridg: + mov bl, 6 + xor cl, cl +nbus: mov bh, [bus_num] +ndevfn: mov ch, [devfn] + mov eax, 62 + int 0x40 + cmp eax, 0xffffffff + je bd_next + ;--------- + mov esi, bd_table_end - bd_table - 12 +@@: cmp eax, [bd_table + esi] + je bd_found + test esi, esi + jz bd_next + sub esi, 12 + jmp @b + ;--------- +bd_next:dec byte[devfn] + jns ndevfn + mov byte[devfn], 0 + dec byte[bus_num] + jns nbus + ret +bd_found: + add esi, bd_table + 4 + mov edi, nb_name + mov ecx, 2 + rep movsd + + mov [bd_id], eax + ret + +;---------------------- +;bd_stat: db 0 ; 0 - не найден, 1 - выключен, 2 - включен +get_bd_stat: + mov byte[bd_stat], 1 + cld + mov esi, [bd_msk] + lodsw + test al, al + jnz @f + mov byte[bd_stat], 0 + ret +@@: push eax + mov bh, [bus_num] + mov bl, 4 + mov ch, [devfn] + mov cl, al + mov eax, 62 + int 0x40 + pop edx + and al, dh + jnz @f + lodsw + test al, al + jnz @b + ret +@@: mov byte[bd_stat], 2 + ret +;---------------------- +set_bd_stat: + cmp dword[bd_id], 0x01E010DE ; специально для nForce2 400 + je set_stat_nforce2 + + mov edi, eax + cld + mov esi, [bd_msk] +bd_ss_nxt: + lodsw + test al, al + jz bd_ss_end + mov dl, ah ; маска + mov bh, [bus_num] + mov bl, 4 + mov ch, [devfn] + mov cl, al + mov eax, 62 + int 0x40 + mov bl, 8 + test edi, edi + jz @f + or al, dl + mov dl, al + mov eax, 62 + int 0x40 + jmp bd_ss_nxt +@@: not dl + and al, dl + mov dl, al + mov eax, 62 + int 0x40 + jmp bd_ss_nxt +bd_ss_end: + ret +;------- nForce 2 ----------- +set_stat_nforce2: +; IN : eax = 0 - disable, !0 - enable + push eax + mov bh, [bus_num] + mov bl, 4 + mov ch, [devfn] + mov cl, 0x6f + mov eax, 62 + int 0x40 + and al, 0x1F + mov dl, al + mov bl, 8 + mov eax, 62 + int 0x40 + pop eax + test eax, eax + jz @f + or dl, 0x10 + mov eax, 62 + int 0x40 + ret +@@: and dl, 0xef + mov eax, 62 + int 0x40 + ret +;-------------------------------------------------------------------------- +; x8 x16 x32 x64 x128 x256 x512 +div_hdd: db 0x23, 0x27, 0x2B, 0x2F, 0x63, 0x67, 0x6B ; Halt Disconnect Divisor +div_sgd: db 0x12, 0x52, 0x92, 0xD2, 0x12, 0x52, 0x92 ; Stop Grand Divisor +; low word of 0xC001001B MSR +; HDD\SGD 8 16 32 64 128 256 512 +; 8 0x1223 0x5223 0x9223 0xD223 | 0x1223 0x5223 0x9223 +; 16 0x1227 | +; 32 0x122B | +; 64 0x122F | 0x522F +; 128 0x1263 | +; 256 0x1267 & bin 18 is clear | & bin 18 is set +; 512 0x126B | + ; ^^^^ + ; ||||_HDD + ; ||_SGD +set_divs: +; IN : ESI - hdd (0 = x8, 1 = x16 ..) +; EDI - sgd (0 = x8, 1 = x16 ..) + mov eax, 68 + mov ebx, 3 + mov edx, 0xC001001b + int 0x40 + mov al, [div_hdd + esi] + mov ah, [div_sgd + edi] + and eax, 0xFFFBFFFF + cmp edi, 3 + jle @f + or eax, 0x40000 +@@: mov edi, eax + mov esi, ebx + mov eax, 68 + mov ebx, 4 + int 0x40 + ret + +get_divs: +; OUT : val_hdd - hdd (0 = x8, 1 = x16 ..) +; val_sgd - sgd ... + mov eax, 68 + mov ebx, 3 + mov edx, 0xC001001b + int 0x40 + mov ecx, 7 +@@: cmp [div_hdd + ecx - 1], al + je @f + loop @b +@@: dec ecx + mov [val_hdd], ecx + mov ecx, 4 +@@: cmp [div_sgd + ecx - 1], ah + je @f + loop @b +@@: dec ecx + test eax, 0x40000 + jz @f + add ecx, 4 +@@: mov [val_sgd], ecx + ret + +;****************************************************************************** + +check_parameters: + cmp [PARAMS], dword "BOOT" ; received BOOT parameter -> 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