Rev 5722 | Rev 5755 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5722 | Rev 5750 | ||
---|---|---|---|
Line 85... | Line 85... | ||
85 | STATUS_LIB_ERR = 16 |
85 | STATUS_LIB_ERR = 16 |
86 | STATUS_THREAD_ERR = 17 |
86 | STATUS_THREAD_ERR = 17 |
87 | STATUS_LOGIN_FAILED = 18 |
87 | STATUS_LOGIN_FAILED = 18 |
88 | STATUS_SECURITY_ERR_C = 19 |
88 | STATUS_SECURITY_ERR_C = 19 |
Line -... | Line 89... | ||
- | 89 | ||
- | 90 | WORK_FRAMEBUFFER = 1 shl 0 |
|
- | 91 | WORK_CURSOR = 1 shl 1 |
|
- | 92 | WORK_GUI = 1 shl 2 |
|
89 | 93 | ||
Line -... | Line 94... | ||
- | 94 | BYTES_PER_PIXEL = (BITS_PER_PIXEL + 7) / 8 |
|
- | 95 | ||
- | 96 | if BITS_PER_PIXEL = 32 |
|
- | 97 | BYTES_PER_CPIXEL= 3 |
|
- | 98 | else |
|
- | 99 | BYTES_PER_CPIXEL= BYTES_PER_PIXEL |
|
90 | BYTES_PER_PIXEL = (BITS_PER_PIXEL + 7) / 8 |
100 | end if |
91 | 101 | ||
92 | include "keymap.inc" |
102 | include "keymap.inc" |
93 | include "gui.inc" |
103 | include "gui.inc" |
94 | include "network.inc" |
104 | include "network.inc" |
95 | include "raw.inc" |
105 | include "raw.inc" |
96 | include "copyrect.inc" |
106 | include "copyrect.inc" |
97 | include "rre.inc" |
107 | include "rre.inc" |
- | 108 | include "trle.inc" |
|
98 | include "trle.inc" |
109 | include "zrle.inc" |
Line -... | Line 110... | ||
- | 110 | include "cursor.inc" |
|
- | 111 | include "des.inc" |
|
- | 112 | ||
- | 113 | ||
- | 114 | if BITS_PER_PIXEL = 8 |
|
- | 115 | create_lut: |
|
- | 116 | mov edi, lut_8bpp ; 332 format |
|
- | 117 | xor eax, eax |
|
- | 118 | call green |
|
- | 119 | add eax, 0x240000 |
|
- | 120 | call green |
|
- | 121 | add eax, 0x250000 |
|
- | 122 | call green |
|
- | 123 | add eax, 0x240000 |
|
- | 124 | call green |
|
- | 125 | add eax, 0x250000 |
|
- | 126 | call green |
|
- | 127 | add eax, 0x240000 |
|
- | 128 | call green |
|
- | 129 | add eax, 0x250000 |
|
- | 130 | call green |
|
- | 131 | add eax, 0x240000 |
|
- | 132 | call green |
|
- | 133 | ret |
|
- | 134 | ||
- | 135 | green: |
|
- | 136 | mov ah, 0 |
|
- | 137 | call blue |
|
- | 138 | mov ah, 36 |
|
- | 139 | call blue |
|
- | 140 | add ah, 37 |
|
- | 141 | call blue |
|
- | 142 | add ah, 36 |
|
- | 143 | call blue |
|
- | 144 | add ah, 37 |
|
- | 145 | call blue |
|
- | 146 | add ah, 36 |
|
- | 147 | call blue |
|
- | 148 | add ah, 37 |
|
- | 149 | call blue |
|
- | 150 | add ah, 36 |
|
- | 151 | call blue |
|
- | 152 | ret |
|
- | 153 | ||
- | 154 | blue: |
|
- | 155 | mov al, 0 |
|
- | 156 | stosd |
|
- | 157 | mov al, 85 |
|
- | 158 | stosd |
|
- | 159 | mov al, 170 |
|
- | 160 | stosd |
|
- | 161 | mov al, 255 |
|
- | 162 | stosd |
|
- | 163 | ret |
|
99 | include "zrle.inc" |
164 | end if |
Line 100... | Line 165... | ||
100 | include "des.inc" |
165 | |
Line 101... | Line 166... | ||
101 | 166 | ||
102 | START: |
167 | START: |
103 | 168 | ||
104 | mcall 68, 11 ; init heap |
169 | mcall 68, 11 ; init heap |
105 | 170 | ||
- | 171 | ; Load libraries |
|
106 | ; Load libraries |
172 | stdcall dll.Load, @IMPORT |
Line -... | Line 173... | ||
- | 173 | test eax, eax |
|
- | 174 | jz @f |
|
- | 175 | mov [status], STATUS_LIB_ERR |
|
- | 176 | jmp draw_gui.first_time |
|
- | 177 | @@: |
|
107 | stdcall dll.Load, @IMPORT |
178 | |
108 | test eax, eax |
179 | ; When using 8BPP, create lookup table |
109 | jz @f |
180 | if BITS_PER_PIXEL = 8 |
110 | mov [status], STATUS_LIB_ERR |
181 | call create_lut |
111 | @@: |
182 | end if |
Line 122... | Line 193... | ||
122 | mov [URLbox.pos], edi |
193 | mov [URLbox.pos], edi |
123 | call open_connection |
194 | call open_connection |
124 | @@: |
195 | @@: |
Line 125... | Line 196... | ||
125 | 196 | ||
126 | ; Present the user with the GUI and wait for network connection |
197 | ; Present the user with the GUI and wait for network connection |
Line 127... | Line 198... | ||
127 | call draw_gui |
198 | call draw_gui.first_time |
128 | 199 | ||
Line 129... | Line 200... | ||
129 | ; Create main window |
200 | ; Create main window |
Line 155... | Line 226... | ||
155 | mcall 12, 2 |
226 | mcall 12, 2 |
Line 156... | Line 227... | ||
156 | 227 | ||
157 | draw_framebuffer: |
228 | draw_framebuffer: |
158 | DEBUGF 1, "Drawing framebuffer\n" |
229 | DEBUGF 1, "Drawing framebuffer\n" |
159 | mcall 7, framebuffer, dword[screen], 0 |
230 | mcall 7, framebuffer, dword[screen], 0 |
Line 160... | Line 231... | ||
160 | mov [update_framebuffer], 0 |
231 | and [work], not WORK_FRAMEBUFFER |
161 | 232 | ||
162 | mainloop: |
233 | mainloop: |
163 | cmp [status], STATUS_CONNECTED |
234 | cmp [status], STATUS_CONNECTED |
164 | jne draw_gui |
235 | jne draw_gui |
- | 236 | test [work], WORK_FRAMEBUFFER |
|
- | 237 | jnz draw_framebuffer |
|
Line 165... | Line 238... | ||
165 | cmp [update_framebuffer], 0 |
238 | test [work], WORK_CURSOR |
Line 166... | Line 239... | ||
166 | jne draw_framebuffer |
239 | jnz update_cursor |
167 | 240 | ||
Line 256... | Line 329... | ||
256 | mov [status], STATUS_CLOSED |
329 | mov [status], STATUS_CLOSED |
257 | mcall close, [socketnum] |
330 | mcall close, [socketnum] |
258 | mcall -1 |
331 | mcall -1 |
Line -... | Line 332... | ||
- | 332 | ||
- | 333 | ||
- | 334 | update_cursor: |
|
- | 335 | ||
- | 336 | ; load cursor |
|
- | 337 | mov dx, word[cursor.y] |
|
- | 338 | shl edx, 16 |
|
- | 339 | mov dx, 2 |
|
- | 340 | mcall 37, 4, cursor.image |
|
- | 341 | test eax, eax |
|
- | 342 | jz .fail |
|
- | 343 | ||
- | 344 | ; set cursor |
|
- | 345 | mov ecx, eax |
|
- | 346 | mcall 37, 5 |
|
- | 347 | ||
- | 348 | ; delete previously set cursor |
|
- | 349 | mov ecx, eax |
|
- | 350 | mcall 37, 6 |
|
- | 351 | ||
- | 352 | .fail: |
|
- | 353 | and [work], not WORK_CURSOR |
|
- | 354 | jmp mainloop |
|
259 | 355 | ||
Line 260... | Line 356... | ||
260 | 356 | ||
Line 261... | Line 357... | ||
261 | ; DATA AREA |
357 | ; DATA AREA |
Line 270... | Line 366... | ||
270 | 366 | ||
Line 271... | Line 367... | ||
271 | HandShake db "RFB 003.003", 10 |
367 | HandShake db "RFB 003.003", 10 |
Line -... | Line 368... | ||
- | 368 | ||
- | 369 | ClientInit db 0 ; not shared |
|
272 | 370 | ||
273 | ClientInit db 0 ; not shared |
371 | if BITS_PER_PIXEL = 32 |
274 | 372 | ||
275 | SetPixelFormat32 db 0 ; setPixelformat |
373 | SetPixelFormat db 0 ; setPixelformat |
276 | db 0, 0, 0 ; padding |
374 | db 0, 0, 0 ; padding |
277 | .bpp db 32 ; bits per pixel |
375 | .bpp db 32 ; bits per pixel |
Line 284... | Line 382... | ||
284 | .red_shift db 16 ; red-shift |
382 | .red_shift db 16 ; red-shift |
285 | .green_shift db 8 ; green-shift |
383 | .green_shift db 8 ; green-shift |
286 | .blue_shift db 0 ; blue-shift |
384 | .blue_shift db 0 ; blue-shift |
287 | db 0, 0, 0 ; padding |
385 | db 0, 0, 0 ; padding |
Line -... | Line 386... | ||
- | 386 | ||
- | 387 | else if BITS_PER_PIXEL = 24 |
|
288 | 388 | ||
289 | SetPixelFormat24 db 0 ; setPixelformat |
389 | SetPixelFormat db 0 ; setPixelformat |
290 | db 0, 0, 0 ; padding |
390 | db 0, 0, 0 ; padding |
291 | .bpp db 24 ; bits per pixel |
391 | .bpp db 24 ; bits per pixel |
292 | .depth db 24 ; depth |
392 | .depth db 24 ; depth |
293 | .big_endian db 0 ; big-endian flag |
393 | .big_endian db 0 ; big-endian flag |
Line 298... | Line 398... | ||
298 | .red_shift db 16 ; red-shift |
398 | .red_shift db 16 ; red-shift |
299 | .green_shift db 8 ; green-shift |
399 | .green_shift db 8 ; green-shift |
300 | .blue_shift db 0 ; blue-shift |
400 | .blue_shift db 0 ; blue-shift |
301 | db 0, 0, 0 ; padding |
401 | db 0, 0, 0 ; padding |
Line -... | Line 402... | ||
- | 402 | ||
- | 403 | else if BITS_PER_PIXEL = 16 |
|
302 | 404 | ||
303 | SetPixelFormat16 db 0 ; setPixelformat |
405 | SetPixelFormat db 0 ; setPixelformat |
304 | db 0, 0, 0 ; padding |
406 | db 0, 0, 0 ; padding |
305 | .bpp db 16 ; bits per pixel |
407 | .bpp db 16 ; bits per pixel |
306 | .depth db 16 ; depth |
408 | .depth db 16 ; depth |
307 | .big_endian db 0 ; big-endian flag |
409 | .big_endian db 0 ; big-endian flag |
Line 312... | Line 414... | ||
312 | .red_shift db 11 ; red-shift |
414 | .red_shift db 11 ; red-shift |
313 | .green_shift db 5 ; green-shift |
415 | .green_shift db 5 ; green-shift |
314 | .blue_shift db 0 ; blue-shift |
416 | .blue_shift db 0 ; blue-shift |
315 | db 0, 0, 0 ; padding |
417 | db 0, 0, 0 ; padding |
Line -... | Line 418... | ||
- | 418 | ||
- | 419 | else if BITS_PER_PIXEL = 8 |
|
316 | 420 | ||
317 | SetPixelFormat8 db 0 ; setPixelformat |
421 | SetPixelFormat db 0 ; setPixelformat |
318 | db 0, 0, 0 ; padding |
422 | db 0, 0, 0 ; padding |
319 | .bpp db 8 ; bits per pixel |
423 | .bpp db 8 ; bits per pixel |
320 | .depth db 8 ; depth |
424 | .depth db 8 ; depth |
321 | .big_endian db 0 ; big-endian flag |
425 | .big_endian db 0 ; big-endian flag |
322 | .true_color db 1 ; true-colour flag |
426 | .true_color db 1 ; true-colour flag |
323 | .red_max db 0, 7 ; red-max |
427 | .red_max db 0, 7 ; red-max |
324 | .green_max db 0, 7 ; green-max |
428 | .green_max db 0, 7 ; green-max |
325 | .blue_max db 0, 3 ; blue-max |
429 | .blue_max db 0, 3 ; blue-max |
326 | .red_shift db 0 ; red-shift |
430 | .red_shift db 5 ; red-shift |
327 | .green_shift db 3 ; green-shift |
431 | .green_shift db 2 ; green-shift |
328 | .blue_shift db 6 ; blue-shift |
432 | .blue_shift db 0 ; blue-shift |
Line -... | Line 433... | ||
- | 433 | db 0, 0, 0 ; padding |
|
- | 434 | ||
329 | db 0, 0, 0 ; padding |
435 | end if |
330 | 436 | ||
331 | SetEncodings db 2 ; setEncodings |
437 | SetEncodings db 2 ; setEncodings |
332 | db 0 ; padding |
438 | db 0 ; padding |
333 | db 0, 4 ; number of encodings |
439 | db 0, 5 ; number of encodings |
334 | ; db 0, 0, 0, 16 ; ZRLE |
440 | ; db 0, 0, 0, 16 ; ZRLE |
335 | db 0, 0, 0, 15 ; TRLE |
441 | db 0, 0, 0, 15 ; TRLE |
- | 442 | db 0, 0, 0, 2 ; RRE |
|
336 | db 0, 0, 0, 2 ; RRE |
443 | db 0, 0, 0, 1 ; Copyrect encoding |
337 | db 0, 0, 0, 1 ; Copyrect encoding |
444 | db 0xff, 0xff, 0xff, 0x11 ; Cursor pseudo encoding |
Line 338... | Line 445... | ||
338 | db 0, 0, 0, 0 ; raw encoding |
445 | db 0, 0, 0, 0 ; raw encoding |
339 | .length = $ - SetEncodings |
446 | .length = $ - SetEncodings |
Line 363... | Line 470... | ||
363 | rb 10 |
470 | rb 10 |
Line 364... | Line 471... | ||
364 | 471 | ||
Line 365... | Line 472... | ||
365 | beep db 0x85, 0x25, 0x85, 0x40, 0 |
472 | beep db 0x85, 0x25, 0x85, 0x40, 0 |
366 | 473 | ||
367 | status dd STATUS_CONNECT |
474 | status dd STATUS_CONNECT |
368 | update_gui dd 0 |
- | |
369 | mouse_dd dd 0 |
475 | work dd 0 |
Line 370... | Line 476... | ||
370 | update_framebuffer dd 0 |
476 | mouse_dd dd 0 |
371 | thread_id dd 0 |
477 | thread_id dd 0 |
372 | 478 | ||
Line 474... | Line 580... | ||
474 | keymap_alt rw 128 |
580 | keymap_alt rw 128 |
475 | username rb 128 |
581 | username rb 128 |
476 | password rb 128 |
582 | password rb 128 |
477 | keys rd 32*2 ; DES keys for VNC authentication |
583 | keys rd 32*2 ; DES keys for VNC authentication |
Line -... | Line 584... | ||
- | 584 | ||
- | 585 | cursor: |
|
- | 586 | .y db ? |
|
- | 587 | .x db ? |
|
- | 588 | .image rd 32*32 |
|
- | 589 | ||
- | 590 | align 4 |
|
- | 591 | if BITS_PER_PIXEL = 8 |
|
- | 592 | lut_8bpp rd 256 |
|
- | 593 | end if |
|
478 | 594 | ||
Line 479... | Line 595... | ||
479 | sz_err_security_c rb 512+1 |
595 | sz_err_security_c rb 512+1 |
480 | 596 |