Rev 5668 | Rev 5677 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5668 | Rev 5670 | ||
---|---|---|---|
Line 13... | Line 13... | ||
13 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
13 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 14... | Line 14... | ||
14 | 14 | ||
Line 15... | Line 15... | ||
15 | format binary as "" |
15 | format binary as "" |
16 | 16 | ||
Line 17... | Line 17... | ||
17 | __DEBUG__ = 1 |
17 | __DEBUG__ = 1 |
Line 18... | Line 18... | ||
18 | __DEBUG_LEVEL__ = 1 |
18 | __DEBUG_LEVEL__ = 2 |
Line 58... | Line 58... | ||
58 | name_length dd ? |
58 | name_length dd ? |
59 | name rb 256 |
59 | name rb 256 |
60 | ends |
60 | ends |
Line 61... | Line 61... | ||
61 | 61 | ||
62 | xpos = 4 |
62 | xpos = 4 |
Line 63... | Line 63... | ||
63 | ypos = 22 |
63 | ypos = 21 |
Line 64... | Line 64... | ||
64 | 64 | ||
Line 65... | Line 65... | ||
65 | TIMEOUT = 5 ; timeout in seconds |
65 | TIMEOUT = 5 ; timeout in seconds |
66 | 66 | ||
- | 67 | RECEIVE_BUFFER_SIZE = 8*1024*1024 ; 8 Mib |
|
67 | RECEIVE_BUFFER_SIZE = 8*1024*1024 ; 8 Mib |
68 | |
68 | 69 | STATUS_INITIAL = 0 |
|
Line 69... | Line 70... | ||
69 | STATUS_INITIAL = 0 |
70 | STATUS_CONNECTING = 1 |
70 | STATUS_CONNECTING = 1 |
71 | STATUS_REQ_LOGIN = 2 |
71 | STATUS_LOGIN = 2 |
72 | STATUS_LOGIN = 3 |
72 | STATUS_CONNECTED = 3 |
73 | STATUS_CONNECTED = 4 |
Line 110... | Line 111... | ||
110 | add esi, ypos+xpos |
111 | add esi, ypos+xpos |
111 | mcall 67, 10, 10 ; resize the window |
112 | mcall 67, 10, 10 ; resize the window |
Line 112... | Line 113... | ||
112 | 113 | ||
Line -... | Line 114... | ||
- | 114 | mcall 40, EVM_MOUSE + EVM_MOUSE_FILTER + EVM_KEY + EVM_REDRAW + EVM_BUTTON |
|
- | 115 | ||
- | 116 | mcall 66, 1, 1 ; Switch keyboard to scancode mode |
|
113 | mcall 40, EVM_MOUSE + EVM_MOUSE_FILTER + EVM_KEY + EVM_REDRAW + EVM_BUTTON |
117 | mcall 26, 2, 1, keymap ; Read keymap |
114 | 118 | ||
Line 115... | Line 119... | ||
115 | redraw: |
119 | redraw: |
116 | mcall 12, 1 |
120 | mcall 12, 1 |
117 | 121 | ||
118 | mov ebx, dword[screen] |
122 | mov ebx, dword[screen] |
119 | movzx ecx, bx |
123 | movzx ecx, bx |
120 | shr ebx, 16 |
124 | shr ebx, 16 |
Line 121... | Line -... | ||
121 | mov edx, 0x74ffffff |
- | |
122 | mov edi, name |
- | |
123 | mcall 0 ; draw window |
125 | mov edx, 0x74ffffff |
Line -... | Line 126... | ||
- | 126 | mov edi, name |
|
- | 127 | mcall 0 ; draw window |
|
- | 128 | ||
- | 129 | mcall 12, 2 |
|
124 | 130 | ||
125 | call drawbuffer |
131 | draw_framebuffer: |
126 | 132 | mcall 7, framebuffer_data, dword[screen], 0 |
|
- | 133 | mov [update_framebuffer], 0 |
|
- | 134 | ||
Line 127... | Line 135... | ||
127 | mcall 12, 2 |
135 | mainloop: |
Line 128... | Line 136... | ||
128 | 136 | cmp [status], STATUS_CONNECTED |
|
129 | mainloop: |
137 | jne draw_gui |
130 | cmp [status], STATUS_CONNECTED |
138 | cmp [update_framebuffer], 0 |
131 | jne draw_gui |
139 | jne draw_framebuffer |
Line 140... | Line 148... | ||
140 | jz button |
148 | jz button |
141 | sub eax, 3 |
149 | sub eax, 3 |
142 | jz mouse |
150 | jz mouse |
143 | jmp mainloop |
151 | jmp mainloop |
Line 144... | Line -... | ||
144 | - | ||
145 | drawbuffer: |
- | |
146 | mcall 7, framebuffer_data, dword[screen], 0 |
- | |
147 | ret |
- | |
148 | 152 | ||
149 | key: |
- | |
150 | ; DEBUGF 1, "Sending key event\n" |
- | |
151 | 153 | key: |
|
- | 154 | mcall 2 |
|
- | 155 | cmp ah, 224 ; ext |
|
- | 156 | je mainloop ;; TODO |
|
- | 157 | ||
- | 158 | xor al, al |
|
- | 159 | test ah, 0x80 ; key up? |
|
- | 160 | jnz @f |
|
- | 161 | inc al |
|
- | 162 | @@: |
|
- | 163 | mov byte[KeyEvent.down], al |
|
- | 164 | ||
- | 165 | shr eax, 8 |
|
- | 166 | and al, 0x7f |
|
152 | mcall 2 |
167 | mov al, [keymap+eax] |
- | 168 | mov byte[KeyEvent.key+3], al |
|
- | 169 | ||
Line 153... | Line 170... | ||
153 | mov byte[KeyEvent.key+3], ah |
170 | DEBUGF 1, "Sending key: 0x%x\n", al |
154 | 171 | ||
Line 155... | Line 172... | ||
155 | mcall send, [socketnum], KeyEvent, 8, 0 |
172 | mcall send, [socketnum], KeyEvent, 8, 0 |
156 | jmp mainloop |
173 | jmp mainloop |
Line 157... | Line 174... | ||
157 | 174 | ||
158 | mouse: |
- | |
159 | ; DEBUGF 1, "Sending mouse event\n" |
175 | mouse: |
160 | 176 | ; DEBUGF 1, "Sending mouse event\n" |
|
161 | mcall 37, 1 ; get mouse pos |
177 | |
162 | sub eax, xpos shl 16 + ypos |
178 | mcall 37, 1 ; get mouse pos |
Line 267... | Line 283... | ||
267 | beep db 0x85, 0x25, 0x85, 0x40, 0 |
283 | beep db 0x85, 0x25, 0x85, 0x40, 0 |
Line 268... | Line 284... | ||
268 | 284 | ||
269 | status dd STATUS_INITIAL |
285 | status dd STATUS_INITIAL |
270 | update_gui dd 0 |
286 | update_gui dd 0 |
- | 287 | mouse_dd dd 0 |
|
Line 271... | Line 288... | ||
271 | mouse_dd dd 0 |
288 | update_framebuffer dd 0 |
- | 289 | ||
- | 290 | URLbox edit_box 235, 70, 10, 0xffffff, 0x6f9480, 0, 0, 0, 65535, serveraddr, mouse_dd, ed_focus, 0, 0 |
|
Line 272... | Line 291... | ||
272 | 291 | USERbox edit_box 150, 70, 10, 0xffffff, 0x6f9480, 0, 0, 0, 127, username, mouse_dd, ed_focus, 0, 0 |
|
273 | URLbox edit_box 200, 25, 16, 0xffffff, 0x6f9480, 0, 0, 0, 65535, serveraddr, mouse_dd, ed_focus, 0, 0 |
292 | PASSbox edit_box 150, 90, 10, 0xffffff, 0x6f9480, 0, 0, 0, 127, password, mouse_dd, 0, 0, 0 |
274 | 293 | ||
275 | serverstr db "server:" |
294 | serverstr db "server:" |
276 | userstr db "username:" |
295 | userstr db "username:" |
277 | passstr db "password:" |
296 | passstr db "password:" |
Line 278... | Line 297... | ||
278 | connectstr db "connect" |
297 | connectstr db "Connect" |
279 | loginstr db "login" |
298 | loginstr db "Log in" |
280 | loginstr_e: |
299 | loginstr_e: |
Line 350... | Line 369... | ||
350 | 369 | ||
351 | screen: ; Remote screen resolution |
370 | screen: ; Remote screen resolution |
352 | .height dw ? |
371 | .height dw ? |
Line -... | Line 372... | ||
- | 372 | .width dw ? |
|
- | 373 | ||
- | 374 | keymap rb 128 |
|
353 | .width dw ? |
375 | username rb 128 |
354 | 376 | password rb 128 |
|
355 | serveraddr rb 65536 |
377 | serveraddr rb 65536 |
Line 356... | Line 378... | ||
356 | receive_buffer rb RECEIVE_BUFFER_SIZE |
378 | receive_buffer rb RECEIVE_BUFFER_SIZE |