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 cx, [winys]
|
||||
sub ecx, 19
|
||||
shl ecx, 16
|
||||
add ecx, 3
|
||||
mov edx, 0x00557799
|
||||
int 0x40
|
||||
|
||||
mov eax,8 ; BUTTON 2: filename
|
||||
mov ebx,4*65536+55
|
||||
mov eax,8 ; BUTTON 2: slideshow
|
||||
mov ebx,57
|
||||
mov cx, [winys]
|
||||
sub cx, 16
|
||||
sub cx, 39
|
||||
shl ecx, 16
|
||||
add ecx, 12
|
||||
mov esi, 0x00557799
|
||||
mov esi, [sc.work_button]
|
||||
mov edx,2
|
||||
int 0x40
|
||||
|
||||
mov eax,4 ; Button text
|
||||
movzx ebx, word [winys]
|
||||
sub ebx, 13
|
||||
add ebx, 6*65536
|
||||
mov ecx,0x00ffffff
|
||||
add ebx, 3 shl 16 - 36
|
||||
mov ecx,[sc.work_button_text]
|
||||
mov edx,setname
|
||||
mov esi,setnamelen-setname
|
||||
int 0x40
|
||||
@ -313,24 +306,24 @@ dw_002:
|
||||
|
||||
mov eax,8 ; BUTTON 3: set as background
|
||||
mov bx, [winxs]
|
||||
sub bx, 60
|
||||
sub bx, 65
|
||||
shl ebx, 16
|
||||
mov bx,55
|
||||
mov cx, [winys]
|
||||
sub cx, 16
|
||||
sub cx, 39
|
||||
shl ecx, 16
|
||||
add ecx, 12
|
||||
mov esi, 0x00557799
|
||||
mov esi, [sc.work_button]
|
||||
mov edx,3
|
||||
int 0x40
|
||||
|
||||
mov eax,4 ; Button text
|
||||
movzx ebx, word [winxs]
|
||||
sub ebx, 60
|
||||
sub ebx, 63
|
||||
shl ebx,16
|
||||
mov bx, word [winys]
|
||||
sub bx,13
|
||||
mov ecx,0x00ffffff
|
||||
sub bx,36
|
||||
mov ecx,[sc.work_button_text]
|
||||
mov edx,setbgr
|
||||
mov esi,setbgrlen-setbgr
|
||||
int 0x40
|
||||
@ -391,13 +384,12 @@ load_image:
|
||||
|
||||
mov eax,13 ; clear picture area
|
||||
movzx ebx, word [winxs]
|
||||
sub ebx, 7
|
||||
add ebx, 4 * 65536
|
||||
add ebx, 1 shl 16 -10
|
||||
movzx ecx, word [winys]
|
||||
sub ecx, 39
|
||||
add ecx, 20 * 65536
|
||||
sub ecx, 40
|
||||
add ecx, 1 shl 16
|
||||
|
||||
mov edx,0
|
||||
mov edx,[sc.work]
|
||||
int 0x40
|
||||
mov ebp,[jpeg_st]
|
||||
test ebp,ebp
|
||||
@ -410,10 +402,9 @@ print_strings:
|
||||
pusha
|
||||
mov eax,13 ; clear text area
|
||||
movzx ebx, word [winxs]
|
||||
sub ebx, 64+58
|
||||
add ebx, 60*65536
|
||||
add ebx, 59 shl 16 -125
|
||||
mov cx, [winys]
|
||||
sub cx, 16
|
||||
sub cx, 39
|
||||
shl ecx, 16
|
||||
add ecx, 12
|
||||
mov edx,0xffffff
|
||||
@ -421,8 +412,7 @@ print_strings:
|
||||
|
||||
mov eax,4 ;
|
||||
movzx ebx, word [winys]
|
||||
sub ebx, 14
|
||||
add ebx, 60*65536
|
||||
add ebx, 61 shl 16 - 37
|
||||
mov ecx,0x000000
|
||||
mov edx,name_string
|
||||
mov esi,60
|
||||
@ -529,8 +519,6 @@ winxs dw 0
|
||||
winys dw 0
|
||||
jpeg_st dd 0
|
||||
file_dir dd 0
|
||||
tcolor dd 0x000000
|
||||
btcolor dd 0x224466+0x808080
|
||||
name_string: db '/rd/1/jpegview.jpg',0
|
||||
rb 256
|
||||
.end:
|
||||
@ -552,6 +540,6 @@ iniciomemoria:
|
||||
|
||||
fin:
|
||||
I_END:
|
||||
|
||||
sc system_colors
|
||||
fileattr: rb 40
|
||||
dirinfo: rb 32+304
|
||||
|
@ -9,32 +9,33 @@
|
||||
;; ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
version equ '0.3'
|
||||
version equ '0.4'
|
||||
|
||||
use32
|
||||
|
||||
org 0x0
|
||||
org 0x0
|
||||
|
||||
db 'MENUET01' ; 8 byte id
|
||||
dd 0x01 ; required os
|
||||
dd START ; program start
|
||||
dd I_END ; program image size
|
||||
dd 0x100000 ; required amount of memory
|
||||
dd 0x100000
|
||||
dd 0,0
|
||||
|
||||
db 'MENUET01' ; 8 byte id
|
||||
dd 0x01 ; required os
|
||||
dd START ; program start
|
||||
dd I_END ; program image size
|
||||
dd 0x100000 ; required amount of memory
|
||||
dd 0x100000
|
||||
dd 0,0
|
||||
include "lang.inc"
|
||||
include "macros.inc"
|
||||
;include "macros.inc"
|
||||
|
||||
irc_server_ip db 192,168,1,1
|
||||
irc_server_ip db 83,149,74,246 ;server: kolibrios.org
|
||||
|
||||
user_nick dd 4 ; length
|
||||
db 'airc ' ; string
|
||||
user_nick dd 12 ; length
|
||||
db 'kolibri_user ' ; string
|
||||
|
||||
user_real_name dd 8 ; length
|
||||
db 'Joe User ' ; string
|
||||
user_real_name dd 14 ; length
|
||||
db 'KolibriOS User ' ; string
|
||||
|
||||
|
||||
START: ; start of execution
|
||||
START: ; start of execution
|
||||
|
||||
mov eax,40
|
||||
mov ebx,10000111b
|
||||
@ -52,7 +53,7 @@ START: ; start of execution
|
||||
|
||||
mov ebp,0
|
||||
mov edx,I_END
|
||||
call draw_window ; at first, draw the window
|
||||
call draw_window ; at first, draw the window
|
||||
|
||||
still:
|
||||
|
||||
@ -62,17 +63,17 @@ still:
|
||||
mov ebx,1
|
||||
int 0x40
|
||||
|
||||
mov eax,11 ; wait here for event
|
||||
mov eax,11 ; wait here for event
|
||||
int 0x40
|
||||
|
||||
call print_status
|
||||
|
||||
cmp eax,1 ; redraw
|
||||
je redraw
|
||||
cmp eax,2 ; key
|
||||
je main_window_key
|
||||
cmp eax,3 ; button
|
||||
je button
|
||||
cmp eax,1 ; redraw
|
||||
je redraw
|
||||
cmp eax,2 ; key
|
||||
je main_window_key
|
||||
cmp eax,3 ; button
|
||||
je button
|
||||
|
||||
cmp [I_END+120*60],byte 1
|
||||
jne no_main_update
|
||||
@ -95,18 +96,18 @@ still:
|
||||
jmp still
|
||||
|
||||
|
||||
redraw: ; redraw
|
||||
redraw: ; redraw
|
||||
|
||||
call draw_window
|
||||
jmp still
|
||||
|
||||
|
||||
button: ; button
|
||||
button: ; button
|
||||
|
||||
mov eax,17 ; get id
|
||||
mov eax,17 ; get id
|
||||
int 0x40
|
||||
|
||||
cmp ah,1 ; close program
|
||||
cmp ah,1 ; close program
|
||||
jne noclose
|
||||
mov eax,-1
|
||||
int 0x40
|
||||
@ -129,7 +130,7 @@ print_status:
|
||||
mov [status],eax
|
||||
|
||||
cmp [old_status],eax
|
||||
je nopr
|
||||
je nopr
|
||||
|
||||
mov [old_status],eax
|
||||
|
||||
@ -160,7 +161,7 @@ old_status dd 0
|
||||
|
||||
socket_commands:
|
||||
|
||||
cmp ah,22 ; open socket
|
||||
cmp ah,22 ; open socket
|
||||
jnz tst3
|
||||
mov eax,3
|
||||
int 0x40
|
||||
@ -176,7 +177,7 @@ socket_commands:
|
||||
tst3:
|
||||
|
||||
|
||||
cmp ah,23 ; write userinfo
|
||||
cmp ah,23 ; write userinfo
|
||||
jnz tst4
|
||||
|
||||
mov eax,53 ; user
|
||||
@ -234,7 +235,7 @@ socket_commands:
|
||||
tst4:
|
||||
|
||||
|
||||
cmp ah,24 ; close socket
|
||||
cmp ah,24 ; close socket
|
||||
jnz no_24
|
||||
mov eax,53
|
||||
mov ebx,8
|
||||
@ -257,7 +258,7 @@ main_window_key:
|
||||
cmp eax,8
|
||||
jne no_bks2
|
||||
cmp [xpos],0
|
||||
je still
|
||||
je still
|
||||
dec [xpos]
|
||||
call print_entry
|
||||
jmp still
|
||||
@ -269,7 +270,7 @@ main_window_key:
|
||||
mov [send_string+ebx],al
|
||||
inc [xpos]
|
||||
cmp [xpos],80
|
||||
jb noxposdec
|
||||
jb noxposdec
|
||||
mov [xpos],79
|
||||
noxposdec:
|
||||
call print_entry
|
||||
@ -279,7 +280,7 @@ main_window_key:
|
||||
cmp eax,13
|
||||
jne no_send
|
||||
cmp [xpos],0
|
||||
je no_send2
|
||||
je no_send2
|
||||
cmp [send_string],byte '/' ; server command
|
||||
jne no_send2
|
||||
mov [send_to_server],1
|
||||
@ -329,7 +330,7 @@ print_user_list:
|
||||
imul edx,120*80
|
||||
add edx,120*60+8+I_END
|
||||
cmp [edx],byte 1
|
||||
je nonp
|
||||
je nonp
|
||||
|
||||
mov edx,ebp
|
||||
imul edx,120*80
|
||||
@ -345,14 +346,14 @@ print_user_list:
|
||||
newnss:
|
||||
inc edx
|
||||
dec eax
|
||||
jz startuu
|
||||
jz startuu
|
||||
asdf:
|
||||
cmp [edx],word ' '
|
||||
jne nodouble
|
||||
inc edx
|
||||
nodouble:
|
||||
cmp [edx],byte ' '
|
||||
je newnss
|
||||
je newnss
|
||||
inc edx
|
||||
cmp edx,ebx
|
||||
jbe asdf
|
||||
@ -385,7 +386,7 @@ print_user_list:
|
||||
mov esi,0
|
||||
newusers:
|
||||
cmp [edx+esi],byte ' '
|
||||
je do_print
|
||||
je do_print
|
||||
inc esi
|
||||
cmp esi,20
|
||||
jbe newusers
|
||||
@ -401,7 +402,7 @@ print_user_list:
|
||||
|
||||
inc ebp
|
||||
cmp ebp,10
|
||||
je nonp
|
||||
je nonp
|
||||
|
||||
add ebx,12
|
||||
|
||||
@ -423,6 +424,19 @@ print_user_list:
|
||||
start_user_list_at dd 0x0
|
||||
|
||||
|
||||
recode_to_cp1251:
|
||||
push esi edx
|
||||
.loop:
|
||||
lodsb
|
||||
cmp al,0x80
|
||||
jb @f
|
||||
and eax,0x7F
|
||||
mov al,[cp866_table+eax]
|
||||
@@: mov [esi-1],al
|
||||
dec edx
|
||||
jnz .loop
|
||||
pop edx esi
|
||||
ret
|
||||
|
||||
|
||||
send_data_to_server:
|
||||
@ -445,7 +459,7 @@ send_data_to_server:
|
||||
mov [text_start],eax
|
||||
|
||||
cmp [send_string],byte '/' ; server command
|
||||
je server_command
|
||||
je server_command
|
||||
|
||||
mov bl,13
|
||||
call print_character
|
||||
@ -501,6 +515,8 @@ send_data_to_server:
|
||||
mov edx,[xpos]
|
||||
inc edx
|
||||
|
||||
call recode_to_cp1251
|
||||
|
||||
mov eax, 53 ; write message
|
||||
mov ebx, 7
|
||||
mov ecx, [socket]
|
||||
@ -594,9 +610,9 @@ send_data_to_server:
|
||||
add edx,send_string-1
|
||||
newsip:
|
||||
cmp [esi],byte '.'
|
||||
je sipn
|
||||
je sipn
|
||||
cmp esi,edx
|
||||
jg sipn
|
||||
jg sipn
|
||||
movzx ebx,byte [esi]
|
||||
inc esi
|
||||
imul eax,10
|
||||
@ -608,7 +624,7 @@ send_data_to_server:
|
||||
xor eax,eax
|
||||
inc esi
|
||||
cmp esi,send_string+30
|
||||
jg sipnn
|
||||
jg sipnn
|
||||
inc edi
|
||||
cmp edi,irc_server_ip+3
|
||||
jbe newsip
|
||||
@ -653,11 +669,11 @@ send_data_to_server:
|
||||
mov ebx,eax
|
||||
shl ebx,5
|
||||
cmp dword [channel_list+ebx],dword ' '
|
||||
je free_found2
|
||||
je free_found2
|
||||
add edi,120*80
|
||||
inc eax
|
||||
cmp eax,[max_windows]
|
||||
jb newse2
|
||||
jb newse2
|
||||
|
||||
free_found2:
|
||||
|
||||
@ -744,7 +760,7 @@ read_incoming_data:
|
||||
|
||||
call read_incoming_byte
|
||||
cmp ecx,-1
|
||||
je no_data_in_buffer
|
||||
je no_data_in_buffer
|
||||
|
||||
cmp bl,10
|
||||
jne no_start_command
|
||||
@ -799,9 +815,9 @@ create_channel_name:
|
||||
newcase:
|
||||
mov al,[esi]
|
||||
cmp eax,'a'
|
||||
jb nocdec
|
||||
jb nocdec
|
||||
cmp eax,'z'
|
||||
jg nocdec
|
||||
jg nocdec
|
||||
sub al,97-65
|
||||
nocdec:
|
||||
mov [edi],al
|
||||
@ -926,11 +942,11 @@ set_channel:
|
||||
newcase2:
|
||||
mov al,[esi]
|
||||
cmp eax,'#'
|
||||
jb newcase_over2
|
||||
jb newcase_over2
|
||||
cmp eax,'a'
|
||||
jb nocdec2
|
||||
jb nocdec2
|
||||
cmp eax,'z'
|
||||
jg nocdec2
|
||||
jg nocdec2
|
||||
sub al,97-65
|
||||
nocdec2:
|
||||
mov [edi],al
|
||||
@ -964,7 +980,7 @@ set_channel:
|
||||
jne notfound2
|
||||
inc ecx
|
||||
cmp ecx,[channel_temp_length]
|
||||
jb stc4
|
||||
jb stc4
|
||||
popa
|
||||
|
||||
jmp found
|
||||
@ -976,7 +992,7 @@ set_channel:
|
||||
add [text_start],120*80
|
||||
add ebx,32
|
||||
cmp ebx,channel_list+19*32
|
||||
jb stcl1
|
||||
jb stcl1
|
||||
|
||||
mov [text_start],I_END
|
||||
|
||||
@ -987,7 +1003,7 @@ set_channel:
|
||||
ret
|
||||
|
||||
|
||||
channel_temp: times 100 db 0
|
||||
channel_temp: times 100 db 0
|
||||
channel_temp_length dd 0x0
|
||||
|
||||
|
||||
@ -1091,7 +1107,7 @@ analyze_command:
|
||||
mov ecx,100
|
||||
new_blank:
|
||||
cmp [eax],byte ' '
|
||||
je bl_found
|
||||
je bl_found
|
||||
inc eax
|
||||
loop new_blank
|
||||
mov eax,50
|
||||
@ -1125,7 +1141,7 @@ analyze_command:
|
||||
mov eax,command+10
|
||||
acl3:
|
||||
cmp [eax],byte ':'
|
||||
je acl4
|
||||
je acl4
|
||||
inc eax
|
||||
loop acl3
|
||||
mov eax,10
|
||||
@ -1173,7 +1189,7 @@ analyze_command:
|
||||
no_privmsg:
|
||||
|
||||
|
||||
cmp [irc_command],'PART' ; channel leave
|
||||
cmp [irc_command],'PART' ; channel leave
|
||||
jne no_part
|
||||
|
||||
; compare nick
|
||||
@ -1220,7 +1236,7 @@ analyze_command:
|
||||
no_part:
|
||||
|
||||
|
||||
cmp [irc_command],'JOIN' ; channel join
|
||||
cmp [irc_command],'JOIN' ; channel join
|
||||
jne no_join
|
||||
|
||||
; compare nick
|
||||
@ -1236,11 +1252,11 @@ analyze_command:
|
||||
mov ebx,eax
|
||||
shl ebx,5
|
||||
cmp dword [channel_list+ebx],dword ' '
|
||||
je free_found
|
||||
je free_found
|
||||
add edi,120*80
|
||||
inc eax
|
||||
cmp eax,[max_windows]
|
||||
jb newse
|
||||
jb newse
|
||||
|
||||
free_found:
|
||||
|
||||
@ -1305,7 +1321,7 @@ analyze_command:
|
||||
no_join:
|
||||
|
||||
|
||||
cmp [irc_command],'NICK' ; nick change
|
||||
cmp [irc_command],'NICK' ; nick change
|
||||
jne no_nick_change
|
||||
|
||||
mov [text_start],I_END
|
||||
@ -1329,7 +1345,7 @@ analyze_command:
|
||||
|
||||
add [text_start],120*80
|
||||
cmp [text_start],I_END+120*80*20
|
||||
jb new_all_channels3
|
||||
jb new_all_channels3
|
||||
|
||||
popa
|
||||
ret
|
||||
@ -1337,7 +1353,7 @@ analyze_command:
|
||||
no_nick_change:
|
||||
|
||||
|
||||
cmp [irc_command],'KICK' ; kick
|
||||
cmp [irc_command],'KICK' ; kick
|
||||
jne no_kick
|
||||
|
||||
mov [text_start],I_END
|
||||
@ -1375,7 +1391,7 @@ analyze_command:
|
||||
|
||||
|
||||
|
||||
cmp [irc_command],'QUIT' ; irc quit
|
||||
cmp [irc_command],'QUIT' ; irc quit
|
||||
jne no_quit
|
||||
|
||||
mov [text_start],I_END
|
||||
@ -1395,7 +1411,7 @@ analyze_command:
|
||||
|
||||
add [text_start],120*80
|
||||
cmp [text_start],I_END+120*80*20
|
||||
jb new_all_channels2
|
||||
jb new_all_channels2
|
||||
|
||||
popa
|
||||
ret
|
||||
@ -1550,7 +1566,7 @@ compare_to_nick:
|
||||
add edi,1
|
||||
|
||||
cmp edi,[user_nick]
|
||||
jb new_nick_compare
|
||||
jb new_nick_compare
|
||||
|
||||
movzx eax,byte [esi]
|
||||
cmp eax,40
|
||||
@ -1613,9 +1629,9 @@ print_text:
|
||||
ptr2:
|
||||
mov bl,[eax]
|
||||
cmp bl,dl
|
||||
je ptr_ret
|
||||
je ptr_ret
|
||||
cmp bl,0
|
||||
je ptr_ret
|
||||
je ptr_ret
|
||||
call print_character
|
||||
inc eax
|
||||
cmp eax,ecx
|
||||
@ -1630,12 +1646,32 @@ print_text:
|
||||
ret
|
||||
|
||||
|
||||
cp1251_table:
|
||||
db '?','?','?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; 8
|
||||
db '?','?','?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; 9
|
||||
db '?','?','?','?','?','?','?','?' , $F0,'?','?','?','?','?','?','?' ; A
|
||||
db '?','?','?','?','?','?','?','?' , $F1,'?','?','?','?','?','?','?' ; B
|
||||
db $80,$81,$82,$83,$84,$85,$86,$87 , $88,$89,$8A,$8B,$8C,$8D,$8E,$8F ; C
|
||||
db $90,$91,$92,$93,$94,$95,$96,$97 , $98,$99,$9A,$9B,$9C,$9D,$9E,$9F ; D
|
||||
db $A0,$A1,$A2,$A3,$A4,$A5,$A6,$A7 , $A8,$A9,$AA,$AB,$AC,$AD,$AE,$AF ; E
|
||||
db $E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7 , $E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF ; F
|
||||
|
||||
cp866_table:
|
||||
db $C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7 , $C8,$C9,$CA,$CB,$CC,$CD,$CE,$CF ; 8
|
||||
db $D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7 , $D8,$D9,$DA,$DB,$DC,$DD,$DE,$DF ; 9
|
||||
db $E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7 , $E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF ; A
|
||||
db '?','?','?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; B
|
||||
db '?','?','?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; C
|
||||
db '?','?','?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; D
|
||||
db $F0,$F1,$F2,$F3,$F4,$F5,$F6,$F7 , $F8,$F9,$FA,$FB,$FC,$FD,$FE,$FF ; E
|
||||
db $A8,$B8,'?','?','?','?','?','?' , '?','?','?','?','?','?','?','?' ; F
|
||||
|
||||
|
||||
print_character:
|
||||
|
||||
pusha
|
||||
|
||||
cmp bl,13 ; line beginning
|
||||
cmp bl,13 ; line beginning
|
||||
jne nobol
|
||||
mov ecx,[pos]
|
||||
add ecx,1
|
||||
@ -1651,7 +1687,7 @@ print_character:
|
||||
jmp newdata
|
||||
nobol:
|
||||
|
||||
cmp bl,10 ; line down
|
||||
cmp bl,10 ; line down
|
||||
jne nolf
|
||||
addx1:
|
||||
add [pos],dword 1
|
||||
@ -1667,7 +1703,7 @@ print_character:
|
||||
no_lf_ret:
|
||||
|
||||
|
||||
cmp bl,15 ; character
|
||||
cmp bl,15 ; character
|
||||
jbe newdata
|
||||
|
||||
mov eax,[irc_data]
|
||||
@ -1684,7 +1720,7 @@ print_character:
|
||||
mov ebx,[scroll+4]
|
||||
imul ebx,[rxs]
|
||||
cmp eax,ebx
|
||||
jb noeaxz
|
||||
jb noeaxz
|
||||
|
||||
mov esi,[text_start]
|
||||
add esi,[rxs]
|
||||
@ -1749,7 +1785,6 @@ draw_data:
|
||||
ret
|
||||
|
||||
|
||||
|
||||
read_incoming_byte:
|
||||
|
||||
mov eax, 53
|
||||
@ -1760,13 +1795,19 @@ read_incoming_byte:
|
||||
mov ecx,-1
|
||||
|
||||
cmp eax,0
|
||||
je no_more_data
|
||||
je no_more_data
|
||||
|
||||
mov eax, 53
|
||||
mov ebx, 3
|
||||
mov ecx, [socket]
|
||||
int 0x40
|
||||
|
||||
cmp bl,0x80
|
||||
jb @f
|
||||
and ebx,0x7F
|
||||
mov bl,[cp1251_table+ebx]
|
||||
@@:
|
||||
|
||||
mov ecx,0
|
||||
|
||||
no_more_data:
|
||||
@ -1785,7 +1826,7 @@ draw_window:
|
||||
|
||||
mov [old_status],300
|
||||
|
||||
mov eax,0 ; draw window
|
||||
mov eax,0 ; draw window
|
||||
mov ebx,5*65536+499
|
||||
mov ecx,5*65536+345
|
||||
mov edx,[wcolor]
|
||||
@ -1794,33 +1835,33 @@ draw_window:
|
||||
mov edi,0x00ffffff
|
||||
int 0x40
|
||||
|
||||
mov eax,4 ; label
|
||||
mov eax,4 ; label
|
||||
mov ebx,9*65536+8
|
||||
mov ecx,0x10ffffff
|
||||
mov edx,labelt
|
||||
mov esi,labellen-labelt
|
||||
int 0x40
|
||||
|
||||
mov eax,8 ; button: open socket
|
||||
mov eax,8 ; button: open socket
|
||||
mov ebx,43*65536+22
|
||||
mov ecx,229*65536+10
|
||||
mov edx,22
|
||||
mov esi,[main_button]
|
||||
int 0x40
|
||||
|
||||
mov eax,8 ; button: send userinfo
|
||||
mov eax,8 ; button: send userinfo
|
||||
mov ebx,180*65536+22
|
||||
mov ecx,229*65536+10
|
||||
mov edx,23
|
||||
int 0x40
|
||||
|
||||
mov eax,8 ; button: close socket
|
||||
mov eax,8 ; button: close socket
|
||||
mov ebx,317*65536+22
|
||||
mov ecx,229*65536+10
|
||||
mov edx,24
|
||||
int 0x40
|
||||
|
||||
mov eax,38 ; line
|
||||
mov eax,38 ; line
|
||||
mov ebx,5*65536+494
|
||||
mov ecx,148*65536+148
|
||||
mov edx,[main_line]
|
||||
@ -1829,7 +1870,7 @@ draw_window:
|
||||
; mov edx,0x5555cc
|
||||
; int 0x40
|
||||
|
||||
mov eax,38 ; line
|
||||
mov eax,38 ; line
|
||||
mov ebx,5*65536+494
|
||||
mov ecx,166*65536+166
|
||||
int 0x40
|
||||
@ -1837,7 +1878,7 @@ draw_window:
|
||||
; mov edx,0x5555cc
|
||||
; int 0x40
|
||||
|
||||
mov eax,38 ; line
|
||||
mov eax,38 ; line
|
||||
mov ebx,410*65536+410
|
||||
mov ecx,22*65536+148
|
||||
int 0x40
|
||||
@ -1845,7 +1886,7 @@ draw_window:
|
||||
; mov edx,0x5555cc
|
||||
; int 0x40
|
||||
|
||||
mov ebx,25*65536+183 ; info text
|
||||
mov ebx,25*65536+183 ; info text
|
||||
mov ecx,0x000000
|
||||
mov edx,text
|
||||
mov esi,70
|
||||
@ -1857,7 +1898,7 @@ draw_window:
|
||||
cmp [edx],byte 'x'
|
||||
jne newline
|
||||
|
||||
mov edx,I_END ; text from server
|
||||
mov edx,I_END ; text from server
|
||||
call draw_channel_text
|
||||
|
||||
mov eax,12
|
||||
@ -1874,20 +1915,20 @@ main_button dd 0x6565cc
|
||||
|
||||
text:
|
||||
|
||||
db ' Real name : Joe User - change with eg /areal Jill User '
|
||||
db ' Nick : AIRC - change with eg /anick Jill '
|
||||
db ' Server : 192.168.1.1 - change with eg /aserv 192.168.1.24 '
|
||||
db ' Real name : KolibriOS User - change with eg /areal Jill User '
|
||||
db ' Nick : kolibri_user - change with eg /anick Jill '
|
||||
db ' Server : 83.149.74.246 - change with eg /aserv 192.168.1.24 '
|
||||
db ' '
|
||||
db ' 1) Open socket 2) Send userinfo Close socket '
|
||||
db ' '
|
||||
db ' Commands after established connection: '
|
||||
db ' '
|
||||
db ' /join #ChannelName - eg /join #menuet '
|
||||
db ' /part #ChannelName - eg /part #linux '
|
||||
db ' /join #ChannelName - eg /join #general '
|
||||
db ' /part #ChannelName - eg /part #windows '
|
||||
db ' /query Nickname - eg /query Mary '
|
||||
db ' /quit - Quit server and Close socket '
|
||||
|
||||
db 'x <- END MARKER, DONT DELETE '
|
||||
db 'x' ; <- END MARKER, DONT DELETE
|
||||
|
||||
|
||||
|
||||
@ -1908,7 +1949,7 @@ channel_thread:
|
||||
add eax,0x80000
|
||||
mov esp,eax
|
||||
|
||||
mov edi,ebp ; clear thread memory
|
||||
mov edi,ebp ; clear thread memory
|
||||
imul edi,120*80
|
||||
add edi,I_END
|
||||
mov ecx,120*80
|
||||
@ -1950,7 +1991,7 @@ channel_thread:
|
||||
no_draw_window:
|
||||
|
||||
cmp eax,2
|
||||
je thread_key
|
||||
je thread_key
|
||||
|
||||
cmp eax,3
|
||||
jne no_end
|
||||
@ -1960,7 +2001,7 @@ channel_thread:
|
||||
imul eax,120*80
|
||||
add eax,I_END
|
||||
cmp [eax+120*60+8],byte 0 ; channel window
|
||||
je not_close
|
||||
je not_close
|
||||
mov eax,ebp
|
||||
shl eax,5
|
||||
add eax,channel_list
|
||||
@ -2013,18 +2054,18 @@ check_mouse:
|
||||
and ebx,0xffff
|
||||
|
||||
cmp eax,420
|
||||
jb no_mouse
|
||||
jb no_mouse
|
||||
cmp eax,494
|
||||
jg no_mouse
|
||||
jg no_mouse
|
||||
|
||||
cmp ebx,145
|
||||
jg no_mouse
|
||||
jg no_mouse
|
||||
cmp ebx,23
|
||||
jb no_mouse
|
||||
jb no_mouse
|
||||
|
||||
|
||||
cmp ebx,100
|
||||
jb no_plus
|
||||
jb no_plus
|
||||
mov eax,ebp
|
||||
imul eax,120*80
|
||||
add eax,120*70+I_END
|
||||
@ -2037,12 +2078,12 @@ check_mouse:
|
||||
no_plus:
|
||||
|
||||
cmp ebx,80
|
||||
jg no_mouse
|
||||
jg no_mouse
|
||||
mov eax,ebp
|
||||
imul eax,120*80
|
||||
add eax,120*70+I_END
|
||||
cmp dword [eax-8],dword 0
|
||||
je no_mouse
|
||||
je no_mouse
|
||||
dec dword [eax-8]
|
||||
call print_user_list
|
||||
mov eax,5
|
||||
@ -2070,7 +2111,7 @@ thread_key:
|
||||
cmp eax,8
|
||||
jne no_bks
|
||||
cmp [xpos],0
|
||||
je w_t
|
||||
je w_t
|
||||
dec [xpos]
|
||||
call print_entry
|
||||
jmp w_t
|
||||
@ -2082,7 +2123,7 @@ thread_key:
|
||||
mov [send_string+ebx],al
|
||||
inc [xpos]
|
||||
cmp [xpos],80
|
||||
jb xpok
|
||||
jb xpok
|
||||
mov [xpos],79
|
||||
xpok:
|
||||
call print_entry
|
||||
@ -2092,7 +2133,7 @@ thread_key:
|
||||
cmp eax,13
|
||||
jne no_send
|
||||
cmp [xpos],0
|
||||
je no_send
|
||||
je no_send
|
||||
mov dword [send_to_channel],ebp
|
||||
mov [send_to_server],1
|
||||
wait_for_sending:
|
||||
@ -2100,7 +2141,7 @@ thread_key:
|
||||
mov ebx,1
|
||||
int 0x40
|
||||
cmp [send_to_server],1
|
||||
je wait_for_sending
|
||||
je wait_for_sending
|
||||
call draw_channel_text
|
||||
call print_entry
|
||||
jmp w_t
|
||||
@ -2171,7 +2212,7 @@ thread_draw_window:
|
||||
mov ebx,1
|
||||
int 0x40
|
||||
|
||||
mov ebx,ebp ; draw window
|
||||
mov ebx,ebp ; draw window
|
||||
shl ebx,16+4
|
||||
mov eax,0
|
||||
mov ecx,ebx
|
||||
@ -2192,7 +2233,7 @@ thread_draw_window:
|
||||
|
||||
int 0x40
|
||||
|
||||
mov eax,ebp ; label
|
||||
mov eax,ebp ; label
|
||||
add eax,48
|
||||
mov [labelc+14],al
|
||||
mov eax,ebp
|
||||
@ -2204,7 +2245,7 @@ thread_draw_window:
|
||||
cld
|
||||
rep movsb
|
||||
|
||||
mov esi,17 ; print label
|
||||
mov esi,17 ; print label
|
||||
movzx ebx,byte [eax+31]
|
||||
add esi,ebx
|
||||
mov eax,4
|
||||
@ -2213,7 +2254,7 @@ thread_draw_window:
|
||||
mov edx,labelc
|
||||
int 0x40
|
||||
|
||||
mov eax,38 ; line
|
||||
mov eax,38 ; line
|
||||
mov ebx,5*65536+494
|
||||
mov ecx,148*65536+148
|
||||
mov edx,[channel_line_sun]
|
||||
@ -2223,7 +2264,7 @@ thread_draw_window:
|
||||
int 0x40
|
||||
|
||||
|
||||
mov eax,38 ; line
|
||||
mov eax,38 ; line
|
||||
mov ebx,410*65536+410
|
||||
mov ecx,22*65536+148
|
||||
mov edx,[channel_line_sun]
|
||||
@ -2244,7 +2285,7 @@ thread_draw_window:
|
||||
|
||||
; DATA AREA
|
||||
|
||||
socket dd 0x0
|
||||
socket dd 0x0
|
||||
|
||||
bgc dd 0x000000
|
||||
dd 0x000000
|
||||
@ -2275,67 +2316,67 @@ thread_stack dd 0x9fff0
|
||||
thread_nro dd 1
|
||||
thread_screen dd I_END+120*80*1
|
||||
|
||||
action_header_blue db 10,'*** ',0
|
||||
action_header_red db 10,'*** ',0
|
||||
action_header_blue db 10,'*** ',0
|
||||
action_header_red db 10,'*** ',0
|
||||
|
||||
action_header_short db 10,'* ',0
|
||||
action_header_short db 10,'* ',0
|
||||
|
||||
has_left_channel db ' left channel ',0
|
||||
joins_channel db ' joined channel ',0
|
||||
has_left_channel db ' has left ',0
|
||||
joins_channel db ' has joined ',0
|
||||
is_now_known_as db ' is now known as ',0
|
||||
has_quit_irc db ' has quit irc',0
|
||||
sets_mode db ' sets mode ',0
|
||||
kicked db ' kicked from ',0
|
||||
has_quit_irc db ' has quit IRC',0
|
||||
sets_mode db ' sets mode ',0
|
||||
kicked db ' kicked from ',0
|
||||
|
||||
index_list_1 dd 0x0000bb
|
||||
index_list_2 dd 0x0000ff
|
||||
index_list_1 dd 0x0000bb
|
||||
index_list_2 dd 0x0000ff
|
||||
|
||||
posx dd 0x0
|
||||
incoming_pos dd 0x0
|
||||
posx dd 0x0
|
||||
incoming_pos dd 0x0
|
||||
incoming_string: times 128 db 0
|
||||
|
||||
pos dd 0x0
|
||||
pos dd 0x0
|
||||
|
||||
text_start dd I_END
|
||||
irc_data dd 0x0
|
||||
print db 0x0
|
||||
cmd dd 0x0
|
||||
rxs dd 66
|
||||
print db 0x0
|
||||
cmd dd 0x0
|
||||
rxs dd 66
|
||||
|
||||
res: db 0,0
|
||||
res: db 0,0
|
||||
command: times 600 db 0x0
|
||||
|
||||
nick dd 0,0,0
|
||||
nick dd 0,0,0
|
||||
irc_command dd 0,0
|
||||
|
||||
command_position dd 0x0
|
||||
counter dd 0
|
||||
send_to_server db 0
|
||||
counter dd 0
|
||||
send_to_server db 0
|
||||
|
||||
channel_list: times 32*20 db 32
|
||||
channel_list: times 32*20 db 32
|
||||
send_to_channel dd 0x0
|
||||
|
||||
send_string_header: db 'privmsg #eax :'
|
||||
times 100 db 0x0
|
||||
times 100 db 0x0
|
||||
|
||||
send_string: times 100 db 0x0
|
||||
xpos dd 0
|
||||
send_string: times 100 db 0x0
|
||||
xpos dd 0
|
||||
|
||||
string0: db 'USER guest ser1 ser2 :'
|
||||
string0l:
|
||||
string1: db 'nick '
|
||||
string1l:
|
||||
|
||||
attribute dd 0
|
||||
scroll dd 1
|
||||
dd 12
|
||||
attribute dd 0
|
||||
scroll dd 1
|
||||
dd 12
|
||||
|
||||
numtext db ' '
|
||||
numtext db ' '
|
||||
|
||||
wcolor dd 0x000000
|
||||
wcolor dd 0x000000
|
||||
|
||||
labelc db 'AIRC - WINDOW X: #xxx '
|
||||
labelt db 'IRC client ',version
|
||||
labelc db 'AIRC - WINDOW X: #xxx '
|
||||
labelt db 'IRC client ',version
|
||||
labellen:
|
||||
|
||||
;;
|
||||
|
@ -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
|
||||
or ecx,0x10000000
|
||||
mov ecx,[sc.work_text] ; 8b window nro - RR GG BB color
|
||||
or ecx,0x10000000
|
||||
mov edx,label1 ; pointer to text beginning
|
||||
mov esi,label1_len ; text length
|
||||
int 0x40
|
||||
|
||||
mov ecx,0x10ffffff
|
||||
mov ecx,[sc.work_button_text] ; 8b window nro - RR GG BB color
|
||||
or ecx,0x10000000
|
||||
mov ebx,25*65536+30
|
||||
mov edx,label2 ; pointer to text beginning
|
||||
mov esi,label2_len ; text length
|
||||
@ -193,7 +195,7 @@ else
|
||||
label1_len = $ - label1
|
||||
|
||||
label2:
|
||||
db ' BEENDEN KERNEL'
|
||||
db ' BEENDEN KERNEL'
|
||||
label2_len = $ - label2
|
||||
|
||||
label3:
|
||||
|
@ -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