forked from KolibriOS/kolibrios
gifview, jpegview, trantest, calc, menu, end - small fixes
icon2.lst renamed to icons.dat (it will be easer for new users I hope...) airc with cp1251 support from mike.dld kbd with boot-parameter to automatic enabling bus disconnect where it possible git-svn-id: svn://kolibrios.org@195 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
ef2a2e0e6a
commit
ae5e114234
@ -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
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
@erase lang.inc
|
||||
@echo lang fix en >lang.inc
|
||||
@fasm gifview.asm gifview
|
||||
@erase lang.inc
|
||||
@pause
|
@ -1,4 +1,5 @@
|
||||
@erase lang.inc
|
||||
@echo lang fix ru >lang.inc
|
||||
@fasm gifview.asm gifview
|
||||
@erase lang.inc
|
||||
@pause
|
@ -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 '<27><>Ž‘ŒŽ’<C5BD> 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
|
||||
|
@ -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 eax,8 ; BUTTON 2: slideshow
|
||||
mov ebx,57
|
||||
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 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
|
||||
|
@ -9,7 +9,7 @@
|
||||
;; ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
version equ '0.3'
|
||||
version equ '0.4'
|
||||
|
||||
use32
|
||||
|
||||
@ -22,16 +22,17 @@ use32
|
||||
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 @@ 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:
|
||||
@ -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]
|
||||
@ -1630,6 +1646,26 @@ 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:
|
||||
|
||||
@ -1749,7 +1785,6 @@ draw_data:
|
||||
ret
|
||||
|
||||
|
||||
|
||||
read_incoming_byte:
|
||||
|
||||
mov eax, 53
|
||||
@ -1767,6 +1802,12 @@ read_incoming_byte:
|
||||
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 @@ 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
|
||||
|
||||
|
||||
|
||||
@ -2280,10 +2321,10 @@ action_header_red 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
|
||||
has_quit_irc db ' has quit IRC',0
|
||||
sets_mode db ' sets mode ',0
|
||||
kicked db ' kicked from ',0
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
@erase lang.inc
|
||||
@echo lang fix en >lang.inc
|
||||
@fasm airc.asm airc
|
||||
@erase lang.inc
|
||||
@pause
|
@ -1,4 +1,5 @@
|
||||
@erase lang.inc
|
||||
@echo lang fix ru >lang.inc
|
||||
@fasm airc.asm airc
|
||||
@erase lang.inc
|
||||
@pause
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
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
|
||||
|
@ -1,4 +1,5 @@
|
||||
@erase lang.inc
|
||||
@echo lang fix en >lang.inc
|
||||
@fasm icon.asm icon
|
||||
@erase lang.inc
|
||||
@pause
|
@ -1,4 +1,5 @@
|
||||
@erase lang.inc
|
||||
@echo lang fix ge >lang.inc
|
||||
@fasm icon.asm icon
|
||||
@erase lang.inc
|
||||
@pause
|
@ -1,4 +1,5 @@
|
||||
@erase lang.inc
|
||||
@echo lang fix ru >lang.inc
|
||||
@fasm icon.asm icon
|
||||
@erase lang.inc
|
||||
@pause
|
@ -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:
|
||||
|
||||
|
14
programs/system/icon/trunk/icons.dat
Normal file
14
programs/system/icon/trunk/icons.dat
Normal file
@ -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 - *
|
BIN
programs/system/icon/trunk/iconstrp.gif
Normal file
BIN
programs/system/icon/trunk/iconstrp.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
2
programs/system/kbd/trunk/build.bat
Normal file
2
programs/system/kbd/trunk/build.bat
Normal file
@ -0,0 +1,2 @@
|
||||
@fasm kbd.asm kbd
|
||||
@pause
|
569
programs/system/kbd/trunk/kbd.ASM
Normal file
569
programs/system/kbd/trunk/kbd.ASM
Normal file
@ -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
|
||||
|
||||
|
||||
|
||||
;---------------------------------------------------------------------
|
||||
;--- <20>€—€‹Ž <20><>Žƒ<C5BD>€ŒŒ› ----------------------------------------------
|
||||
;---------------------------------------------------------------------
|
||||
|
||||
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 ; <20>®¬¥à è¨ë
|
||||
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 ?
|
||||
|
266
programs/system/kbd/trunk/macros.inc
Normal file
266
programs/system/kbd/trunk/macros.inc
Normal file
@ -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
|
45
programs/system/kbd/trunk/readme.txt
Normal file
45
programs/system/kbd/trunk/readme.txt
Normal file
@ -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.
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user