2015-08-03 14:32:28 +02:00
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
;; ;;
|
|
|
|
;; Copyright (C) KolibriOS team 2010-2015. All rights reserved. ;;
|
|
|
|
;; Distributed under terms of the GNU General Public License ;;
|
|
|
|
;; ;;
|
|
|
|
;; VNC client for KolibriOS ;;
|
|
|
|
;; ;;
|
|
|
|
;; Written by hidnplayr@kolibrios.org ;;
|
|
|
|
;; ;;
|
|
|
|
;; GNU GENERAL PUBLIC LICENSE ;;
|
|
|
|
;; Version 2, June 1991 ;;
|
|
|
|
;; ;;
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
|
|
|
logon:
|
|
|
|
mcall 40, EVM_MOUSE + EVM_MOUSE_FILTER + EVM_REDRAW + EVM_BUTTON + EVM_KEY
|
|
|
|
|
|
|
|
.redraw:
|
|
|
|
mcall 12, 1 ; start window draw
|
|
|
|
pusha
|
|
|
|
; DRAW WINDOW
|
|
|
|
xor eax, eax ; function 0 _logon: define and draw window
|
|
|
|
mov ebx, 160 shl 16 + 330 ; [x start]:[x size]
|
|
|
|
mov ecx, 160 shl 16 + 100 ; [y start]:[y size]
|
|
|
|
mov edx, 0x34DDDDDD ; color of work area RRGGBB
|
|
|
|
mov edi, name ; WINDOW LABEL
|
|
|
|
mcall
|
|
|
|
|
|
|
|
mov eax, 8 ; LOGON BUTTON
|
|
|
|
mov ebx, 220 shl 16 + 85
|
|
|
|
mov ecx, 47 shl 16 + 16
|
|
|
|
mov edx, 2
|
|
|
|
mov esi, 0xCCCCCC
|
|
|
|
mcall
|
|
|
|
|
|
|
|
cmp byte[mode], 0
|
|
|
|
je .servermode
|
|
|
|
|
|
|
|
mov eax, 4 ; function 4 write text to window
|
|
|
|
mov ebx, 25 shl 16 + 15 ; [x start]:[y start]
|
|
|
|
xor ecx, ecx
|
|
|
|
mov edx, userstr ; pointer to text beginning
|
|
|
|
mov esi, passstr-userstr ; text length
|
|
|
|
mcall
|
|
|
|
|
|
|
|
add bl, 19
|
|
|
|
mov edx, passstr ; pointer to text beginning
|
|
|
|
mov esi, connectstr-passstr ; text length
|
|
|
|
mcall
|
|
|
|
|
|
|
|
jmp .drawtherest
|
|
|
|
|
|
|
|
.servermode:
|
|
|
|
mov eax, 4 ; function 4 write text to window
|
|
|
|
mov ebx, 25 shl 16 + 15 ; [x start] *65536 + [y start]
|
|
|
|
xor ecx, ecx
|
|
|
|
mov edx, serverstr ; pointer to text beginning
|
|
|
|
mov esi, userstr-serverstr ; text length
|
|
|
|
mcall
|
|
|
|
|
|
|
|
invoke edit_box_draw, URLbox
|
|
|
|
|
|
|
|
.drawtherest:
|
|
|
|
mov ebx, 240 shl 16 + 49 ; [x start] *65536 + [y start]
|
|
|
|
mov edx, connectstr ; pointer to text beginning
|
|
|
|
mov esi, connect_e-connectstr ; text length
|
|
|
|
mcall
|
|
|
|
|
|
|
|
popa
|
|
|
|
inc ebx
|
|
|
|
mcall
|
|
|
|
|
|
|
|
.loop:
|
|
|
|
mcall 10 ; wait for event
|
|
|
|
dec eax ; redraw request ?
|
|
|
|
jz .redraw
|
|
|
|
dec eax ; key in buffer ?
|
|
|
|
jz .key
|
|
|
|
dec eax ; button in buffer ?
|
|
|
|
jz .btn
|
|
|
|
sub eax, 3
|
|
|
|
jz .mouse
|
|
|
|
jmp .loop
|
|
|
|
|
|
|
|
.key: ; key event handler
|
|
|
|
mcall 2 ; read key
|
|
|
|
|
|
|
|
test [URLbox.flags], ed_focus
|
|
|
|
jz mainloop
|
|
|
|
cmp ah, 13 ; enter (return) key
|
|
|
|
je .go
|
|
|
|
invoke edit_box_key, URLbox
|
|
|
|
jmp .loop
|
|
|
|
|
|
|
|
.go:
|
|
|
|
mov eax, [URLbox.pos]
|
|
|
|
mov byte[serveraddr+eax], 0
|
|
|
|
ret
|
|
|
|
|
|
|
|
.btn:
|
|
|
|
mcall 17 ; get id
|
|
|
|
|
|
|
|
cmp ah, 1 ; close ?
|
|
|
|
jz .close
|
|
|
|
cmp ah, 2 ; logon ?
|
|
|
|
je .go
|
|
|
|
|
|
|
|
jmp .loop
|
|
|
|
|
|
|
|
.mouse:
|
|
|
|
mcall 23
|
|
|
|
invoke edit_box_mouse, URLbox
|
|
|
|
|
|
|
|
jmp .loop
|
|
|
|
|
|
|
|
.close:
|
|
|
|
mcall -1
|
2013-05-28 19:34:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
; DATA AREA
|
|
|
|
|
2015-08-03 14:32:28 +02:00
|
|
|
passchar db "*"
|
2013-05-28 19:34:26 +02:00
|
|
|
passlen dd 0
|
|
|
|
|
|
|
|
addr dd 0
|
|
|
|
temp dd 0
|
2015-08-03 14:32:28 +02:00
|
|
|
mode db 0 ; 0 = connection details, 1 = authentication
|
2013-05-28 19:34:26 +02:00
|
|
|
|
2015-08-03 14:32:28 +02:00
|
|
|
serverstr db "server:"
|
|
|
|
userstr db "username:"
|
|
|
|
passstr db "password:"
|
|
|
|
connectstr db "connect !"
|
2013-05-28 19:34:26 +02:00
|
|
|
connect_e:
|
|
|
|
|
|
|
|
I_END_logon:
|