Subversion Repositories Kolibri OS

Compare Revisions

No changes between revisions

Regard whitespace Rev 193 → Rev 195

/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