/programs/demos/trantest/trunk/trantest.asm |
---|
29,7 → 29,7 |
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 |
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 |
/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 |
/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 |
/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 |
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 |
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 |
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_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,26 → 220,11 |
mov eax,0 |
mov ebx,50*65536+700 |
mov ecx,50*65536+500 |
mov edx,WND_COLOR |
mov esi,0x805080d0 |
mov edi,0x005080d0 |
mov edx,[sc.work] |
or edx,0x33000000 |
mov edi,header |
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 |
int 0x40 |
call draw_input |
xor ecx,ecx |
266,7 → 257,7 |
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,16 → 265,8 |
; ¤¥áì 室ïâáï ¤ ë¥ ¯à®£à ¬¬ë: |
; ¨â¥àä¥©á ¯à®£à ¬¬ë ¤¢ãï§ëçë© - § ¤ ©â¥ ï§ëª ¢ macros.inc |
header db appname,0 ; áâப § £®«®¢ª |
zagolovok: ; áâப § £®«®¢ª |
if lang eq ru |
db ' GIF' |
else |
db 'GIF VIEWER' |
end if |
zag_konets: ; ¨ ¥ñ ª®¥æ |
inp_pos dd inp_end-fn_input |
fn_input: |
; db '/hd/1/gif/smileys/sm100000.gif' |
309,6 → 292,7 |
rb 257 |
;filename_len dd 0 |
entered rd 1 |
sc system_colors |
imgcount rd 1 |
img_index rd 1 |
/programs/media/jpegview/trunk/jpegview.asm |
---|
98,8 → 98,8 |
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 |
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 |
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 eax,8 ; BUTTON 2: slideshow |
mov ebx,57 |
mov cx, [winys] |
sub ecx, 19 |
sub cx, 39 |
shl ecx, 16 |
add ecx, 3 |
mov edx, 0x00557799 |
int 0x40 |
mov eax,8 ; BUTTON 2: filename |
mov ebx,4*65536+55 |
mov cx, [winys] |
sub cx, 16 |
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 |
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 |
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 |
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 |
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 |
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 |
fin: |
I_END: |
sc system_colors |
fileattr: rb 40 |
dirinfo: rb 32+304 |
/programs/network/airc/trunk/airc.asm |
---|
9,7 → 9,7 |
;; ;; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
version equ '0.3' |
version equ '0.4' |
use32 |
22,16 → 22,17 |
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 |
423,6 → 424,19 |
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: |
501,6 → 515,8 |
mov edx,[xpos] |
inc edx |
call recode_to_cp1251 |
mov eax, 53 ; write message |
mov ebx, 7 |
mov ecx, [socket] |
1630,7 → 1646,27 |
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 |
1749,7 → 1785,6 |
ret |
read_incoming_byte: |
mov eax, 53 |
1767,6 → 1802,12 |
mov ecx, [socket] |
int 0x40 |
cmp bl,0x80 |
jb @f |
and ebx,0x7F |
mov bl,[cp1251_table+ebx] |
@@: |
mov ecx,0 |
no_more_data: |
1874,20 → 1915,20 |
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 |
2280,10 → 2321,10 |
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 |
has_quit_irc db ' has quit IRC',0 |
sets_mode db ' sets mode ',0 |
kicked db ' kicked from ',0 |
/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 |
/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 |
/programs/other/calc/trunk/calc.asm |
---|
662,8 → 662,8 |
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 |
670,8 → 670,8 |
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 |
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 |
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 |
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 |
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,7 → 746,7 |
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 |
753,15 → 753,15 |
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 |
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 |
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 |
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 |
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 |
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 |
/programs/system/end/trunk/end.asm |
---|
42,40 → 42,42 |
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 |
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 |
/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 |
/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 |
/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 |
/programs/system/icon/trunk/icon.asm |
---|
11,10 → 11,8 |
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 |
popa |
ret |
iconlst db ICON_LST,0 |
iconlst db ICONS_DAT,0 |
load_icon_list: |
/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 - * |
/programs/system/icon/trunk/iconstrp.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/programs/system/kbd/trunk/build.bat |
---|
0,0 → 1,2 |
@fasm kbd.asm kbd |
@pause |
/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 ? |
/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 <eax,ebx,ecx,edx,esi,edi,ebp,esp> |
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 |
/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. |
/programs/system/menu/trunk/menu.asm |
---|
468,11 → 468,11 |
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 |
dec ecx |
jnz .findline |
mov ecx, [sc.work_button_text] |
mov ecx, [sc.work_text] |
mov eax, 4 |
mov esi, 21 |
int 0x40 |