forked from KolibriOS/kolibrios
49830b7fd4
The new client uses a thread to receive and parse all incoming data from server. Standard graphics mode is 8BPP but you can use 32BPP if you uncomment it in raw.inc Mouse works, keyboard doesnt (yet) No encryption supported yet. Cursor is drawn remotely. git-svn-id: svn://kolibrios.org@264 a494cfbc-eb01-0410-851d-a64ba20cac60
154 lines
3.5 KiB
PHP
154 lines
3.5 KiB
PHP
encoding_raw:
|
|
DEBUGF 1,'RAW\n'
|
|
|
|
mov ax,[frame.y] ;
|
|
mov bx,[screen.width] ;
|
|
mul bx ;
|
|
shl edx,16 ;
|
|
mov dx,ax ; [screen.width]*[frame.y]
|
|
movzx eax,[frame.x]
|
|
add edx,eax ; [screen.width]*[frame.y]+[frame.x]
|
|
|
|
mov eax,3 ;
|
|
mul edx ; ([screen.width]*[frame.y]+[frame.x])*3
|
|
|
|
add eax,framebuffer_data ;
|
|
push eax ; framebuffer_data+([screen.width]*[frame.y]+[frame.x])*3
|
|
|
|
mov ax,[frame.width] ;
|
|
mov bx,3 ;
|
|
mul bx ;
|
|
shl edx,16 ;
|
|
mov dx,ax ; [frame.width]*3
|
|
|
|
pop eax ;
|
|
add edx,eax ; framebuffer_data+([screen.width]*[frame.y]+[frame.x])*3+[frame.width]*3
|
|
push eax ;
|
|
push edx ;
|
|
|
|
mov ax,[frame.height] ;
|
|
dec ax ;
|
|
mov bx,3 ;
|
|
mul bx ;
|
|
mov bx,[screen.width] ;
|
|
mul bx ;
|
|
shl edx,16 ;
|
|
mov dx,ax ;
|
|
mov ecx,edx ;
|
|
pop edx ;
|
|
add ecx,edx ; mov ecx,edx+([frame.height]-1)*[screen.width]*3
|
|
pop ebx
|
|
|
|
.pixelloop32:
|
|
cmp ebx,ecx
|
|
jge next_rectangle
|
|
|
|
; add esi,2 ; 32 bit code RAW - OK
|
|
; mov al,[esi] ;
|
|
; mov [ebx],al ;
|
|
; inc ebx ;
|
|
; dec esi ;
|
|
; ;
|
|
; mov al,[esi] ;
|
|
; mov [ebx],al ;
|
|
; inc ebx ;
|
|
; dec esi ;
|
|
; ;
|
|
; mov al,[esi] ;
|
|
; mov [ebx],al ;
|
|
; inc ebx ;
|
|
; add esi,4 ;
|
|
|
|
; push ecx ; 16 bit code RAW
|
|
; mov cl,51
|
|
;
|
|
; mov ax,[esi] ;
|
|
; xchg al,ah
|
|
; and al,00011111b ;
|
|
; xchg al,ah
|
|
; mul cl
|
|
; mov [ebx],al ;
|
|
; inc ebx ;
|
|
;
|
|
; mov ax,[esi] ;
|
|
; xchg al,ah
|
|
; shr ax,5 ;
|
|
; xchg al,ah
|
|
; and al,00011111b ;
|
|
; mul cl
|
|
; mov [ebx],al ;
|
|
; inc ebx ;
|
|
;
|
|
; mov ax,[esi] ;
|
|
; xchg al,ah
|
|
; shr ax,10 ;
|
|
; and al,00011111b ;
|
|
; mul cl
|
|
; mov [ebx],al ;
|
|
; inc ebx ;
|
|
;
|
|
; inc esi ;
|
|
; inc esi ;
|
|
; pop ecx
|
|
|
|
push ecx ; 8 bit code RAW - OK
|
|
mov cl,85 ;
|
|
;
|
|
mov al,[esi] ;
|
|
shr al,4 ;
|
|
and al,3 ;
|
|
mul cl ;
|
|
mov [ebx],al ;
|
|
inc ebx ;
|
|
;
|
|
mov al,[esi] ;
|
|
shr al,2 ;
|
|
and al,3 ;
|
|
mul cl ;
|
|
mov [ebx],al ;
|
|
inc ebx ;
|
|
;
|
|
mov al,[esi] ;
|
|
and al,3 ;
|
|
mul cl ;
|
|
mov byte[ebx],al ;
|
|
inc ebx ;
|
|
inc esi ;
|
|
pop ecx ;
|
|
|
|
|
|
cmp ebx,edx
|
|
jl .pixelloop32
|
|
|
|
push edx
|
|
push ebx
|
|
mov ax,[screen.width]
|
|
mov bx,3
|
|
mul bx
|
|
shl edx,16
|
|
mov dx,ax
|
|
mov eax,edx
|
|
pop ebx
|
|
pop edx
|
|
|
|
add ebx,eax ; eax = [screen.width]*3
|
|
add edx,eax
|
|
|
|
push edx
|
|
push ebx
|
|
mov ax,[frame.width]
|
|
mov bx,3
|
|
mul bx
|
|
shl edx,16
|
|
mov dx,ax
|
|
mov eax,edx
|
|
pop ebx
|
|
pop edx
|
|
|
|
sub ebx,eax ; eax = [frame.width]*3
|
|
|
|
jmp .pixelloop32
|
|
|
|
|
|
|