Rev 109 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 109 | Rev 485 | ||
---|---|---|---|
Line 4... | Line 4... | ||
4 | ; Compile with FASM for Menuet |
4 | ; Compile with FASM for Menuet |
5 | ; |
5 | ; |
Line 6... | Line 6... | ||
6 | 6 | ||
7 | - | ||
8 | use32 |
7 | |
- | 8 | use32 |
|
- | 9 | org 0x0 |
|
- | 10 | db 'MENUET01' ; header |
|
- | 11 | dd 0x01 ; header version |
|
- | 12 | dd START ; entry point |
|
- | 13 | dd I_END ; image size |
|
- | 14 | dd I_END+0x10000 ; required memory |
|
Line 9... | Line -... | ||
9 | - | ||
10 | org 0x0 |
- | |
11 | - | ||
12 | db 'MENUET00' ; 8 byte id |
- | |
13 | dd 38 ; required os |
- | |
14 | dd START ; program start |
- | |
Line 15... | Line 15... | ||
15 | dd I_END ; program image size |
15 | dd I_END+0x10000 ; esp |
16 | dd 0x100000 ; required amount of memory |
16 | dd 0x0 , 0x0 ; I_Param , I_Path |
Line 17... | Line 17... | ||
17 | dd 0x00000000 ; reserved=no extended header |
17 | |
Line 18... | Line 18... | ||
18 | 18 | ||
19 | include 'lang.inc' |
19 | include 'lang.inc' |
20 | include 'macros.inc' |
20 | include '..\..\..\macros.inc' |
21 | 21 | ||
22 | START: ; start of execution |
22 | START: ; start of execution |
23 | 23 | ||
Line 24... | Line 24... | ||
24 | mov eax,53 ; open socket |
24 | mov eax,53 ; open socket |
Line -... | Line 25... | ||
- | 25 | mov ebx,0 |
|
25 | mov ebx,0 |
26 | mov ecx,0x2000 ; local port |
Line 26... | Line 27... | ||
26 | mov ecx,0x2000 ; local port |
27 | mov edx,0x3000 ; remote port |
Line 27... | Line 28... | ||
27 | mov edx,0x3000 ; remote port |
28 | mov esi,dword [host_ip] ; node IP |
28 | mov esi,dword [host_ip] ; node IP |
29 | mcall |
29 | int 0x40 |
30 | |
Line 30... | Line 31... | ||
30 | 31 | mov [socketNum], eax |
|
31 | mov [socketNum], eax |
32 | |
32 | 33 | red: |
|
33 | call draw_window ; at first, draw the window |
34 | call draw_window ; at first, draw the window |
Line 46... | Line 47... | ||
46 | jz button |
47 | jz button |
Line 47... | Line 48... | ||
47 | 48 | ||
48 | mov eax, 53 ; get data |
49 | mov eax, 53 ; get data |
49 | mov ebx, 2 |
50 | mov ebx, 2 |
50 | mov ecx, [socketNum] |
51 | mov ecx, [socketNum] |
51 | int 0x40 |
52 | mcall |
52 | cmp eax, 0 |
53 | cmp eax, 0 |
Line 53... | Line 54... | ||
53 | jne read |
54 | jne read |
Line 54... | Line -... | ||
54 | - | ||
55 | jmp still |
- | |
56 | - | ||
57 | red: |
- | |
58 | call draw_window |
55 | |
59 | jmp still |
56 | jmp still |
60 | 57 | ||
61 | key: |
58 | key: |
Line 62... | Line 59... | ||
62 | mov eax,2 |
59 | mov eax,2 |
63 | int 0x40 |
60 | mcall |
64 | jmp still |
61 | jmp still |
Line 65... | Line 62... | ||
65 | 62 | ||
66 | button: |
63 | button: |
67 | mov eax,17 |
64 | mov eax,17 |
68 | int 0x40 |
65 | mcall |
69 | 66 | ||
70 | cmp ah,1 ; button id=1 ? |
67 | cmp ah,1 ; button id=1 ? |
71 | jnz noclose |
68 | jnz noclose |
72 | mov eax, 53 |
69 | mov eax, 53 |
73 | mov ebx, 1 |
70 | mov ebx, 1 |
Line 74... | Line 71... | ||
74 | mov ecx, [socketNum] |
71 | mov ecx, [socketNum] |
75 | int 0x40 |
72 | mcall |
Line 94... | Line 91... | ||
94 | mov eax,53 |
91 | mov eax,53 |
95 | mov ebx,4 |
92 | mov ebx,4 |
96 | mov ecx,[socketNum] |
93 | mov ecx,[socketNum] |
97 | mov edx,23 + 4 |
94 | mov edx,23 + 4 |
98 | mov esi,I_END |
95 | mov esi,I_END |
99 | int 0x40 |
96 | mcall |
100 | jmp still |
97 | jmp still |
101 | no_left: |
98 | no_left: |
Line 102... | Line 99... | ||
102 | 99 | ||
103 | cmp ah,4 ; RIGHT COORDINATES ? |
100 | cmp ah,4 ; RIGHT COORDINATES ? |
Line 114... | Line 111... | ||
114 | mov eax,53 |
111 | mov eax,53 |
115 | mov ebx,4 |
112 | mov ebx,4 |
116 | mov ecx,[socketNum] |
113 | mov ecx,[socketNum] |
117 | mov edx,23 + 4 |
114 | mov edx,23 + 4 |
118 | mov esi,I_END |
115 | mov esi,I_END |
119 | int 0x40 |
116 | mcall |
120 | jmp still |
117 | jmp still |
121 | no_right: |
118 | no_right: |
Line 122... | Line 119... | ||
122 | 119 | ||
123 | cmp ah,5 ; SEND EXECUTE ? |
120 | cmp ah,5 ; SEND EXECUTE ? |
Line 157... | Line 154... | ||
157 | mov eax,53 ; SEND CODE TO REMOTE |
154 | mov eax,53 ; SEND CODE TO REMOTE |
158 | mov ebx,4 |
155 | mov ebx,4 |
159 | mov ecx,[socketNum] |
156 | mov ecx,[socketNum] |
160 | mov edx,23 + remote_code_end - remote_code_start |
157 | mov edx,23 + remote_code_end - remote_code_start |
161 | mov esi,I_END |
158 | mov esi,I_END |
162 | int 0x40 |
159 | mcall |
Line 163... | Line 160... | ||
163 | 160 | ||
Line 164... | Line 161... | ||
164 | jmp still |
161 | jmp still |
Line 171... | Line 168... | ||
171 | mov eax,53 ; START EXECUTE AT REMOTE |
168 | mov eax,53 ; START EXECUTE AT REMOTE |
172 | mov ebx,4 |
169 | mov ebx,4 |
173 | mov ecx,[socketNum] |
170 | mov ecx,[socketNum] |
174 | mov edx,19 |
171 | mov edx,19 |
175 | mov esi,execute |
172 | mov esi,execute |
176 | int 0x40 |
173 | mcall |
Line 177... | Line 174... | ||
177 | 174 | ||
Line 178... | Line 175... | ||
178 | mov edi,3 |
175 | mov edi,3 |
Line 194... | Line 191... | ||
194 | cfr007: |
191 | cfr007: |
Line 195... | Line 192... | ||
195 | 192 | ||
196 | mov eax, 53 |
193 | mov eax, 53 |
197 | mov ebx, 3 |
194 | mov ebx, 3 |
198 | mov ecx, [socketNum] |
195 | mov ecx, [socketNum] |
Line 199... | Line 196... | ||
199 | int 0x40 ; read byte |
196 | mcall ; read byte |
200 | 197 | ||
Line 201... | Line 198... | ||
201 | shl edx,8 |
198 | shl edx,8 |
Line 211... | Line 208... | ||
211 | mov ebx,[xx] |
208 | mov ebx,[xx] |
212 | mov ecx,[yy] |
209 | mov ecx,[yy] |
213 | add ebx,15 |
210 | add ebx,15 |
214 | add ecx,35 |
211 | add ecx,35 |
215 | add ebx,[picture_position] |
212 | add ebx,[picture_position] |
216 | int 0x40 |
213 | mcall |
Line 217... | Line 214... | ||
217 | 214 | ||
218 | inc [xx] |
215 | inc [xx] |
219 | cmp [xx],dword 128 |
216 | cmp [xx],dword 128 |
220 | jb cok |
217 | jb cok |
Line 228... | Line 225... | ||
228 | cok: |
225 | cok: |
Line 229... | Line 226... | ||
229 | 226 | ||
230 | mov eax, 53 |
227 | mov eax, 53 |
231 | mov ebx, 2 |
228 | mov ebx, 2 |
232 | mov ecx, [socketNum] |
229 | mov ecx, [socketNum] |
Line 233... | Line 230... | ||
233 | int 0x40 ; any more data? |
230 | mcall ; any more data? |
234 | 231 | ||
Line 235... | Line 232... | ||
235 | cmp eax, 0 |
232 | cmp eax, 0 |
Line 247... | Line 244... | ||
247 | 244 | ||
Line 248... | Line 245... | ||
248 | draw_window: |
245 | draw_window: |
249 | 246 | ||
250 | mov eax,12 ; function 12:tell os about windowdraw |
247 | mov eax,12 ; function 12:tell os about windowdraw |
Line 251... | Line 248... | ||
251 | mov ebx,1 ; 1, start of draw |
248 | mov ebx,1 ; 1, start of draw |
252 | int 0x40 |
249 | mcall |
253 | 250 | ||
254 | ; DRAW WINDOW |
251 | ; DRAW WINDOW |
255 | mov eax,0 ; function 0 : define and draw window |
252 | mov eax,0 ; function 0 : define and draw window |
256 | mov ebx,100*65536+286 ; [x start] *65536 + [x size] |
- | |
257 | mov ecx,60*65536+330 ; [y start] *65536 + [y size] |
253 | mov ebx,100*65536+286 ; [x start] *65536 + [x size] |
258 | mov edx,0x03ffffff ; color of work area RRGGBB |
254 | mov ecx,60*65536+330 ; [y start] *65536 + [y size] |
259 | mov esi,0x80aabbcc ; color of grab bar RRGGBB,8->color gl |
255 | mov edx,0x03ffffff ; color of work area RRGGBB |
260 | mov edi,0x00aabbcc ; color of frames RRGGBB |
- | |
261 | int 0x40 |
- | |
262 | - | ||
263 | ; WINDOW LABEL |
- | |
264 | mov eax,4 ; function 4 : write text to window |
- | |
265 | mov ebx,8*65536+8 ; [x start] *65536 + [y start] |
- | |
266 | mov ecx,0x00ffffff ; color of text RRGGBB |
- | |
Line 267... | Line 256... | ||
267 | mov edx,labeltext ; pointer to text beginning |
256 | mov edi,title ; WINDOW LABEL |
268 | mov esi,lte-labeltext ; text length |
257 | mcall |
269 | int 0x40 |
258 | |
270 | 259 | ||
271 | mov eax,8 ; SEND CODE |
260 | mov eax,8 ; SEND CODE |
272 | mov ebx,60*65536+160 |
261 | mov ebx,60*65536+160 |
Line 273... | Line 262... | ||
273 | mov ecx,181*65536+13 |
262 | mov ecx,181*65536+13 |
274 | mov edx,2 |
263 | mov edx,2 |
275 | mov esi,0x667788 |
264 | mov esi,0x667788 |
276 | int 0x40 |
265 | mcall |
277 | - | ||
278 | mov eax,8 ; LEFT |
266 | |
Line 279... | Line 267... | ||
279 | mov ebx,60*65536+75 |
267 | ;mov eax,8 ; LEFT |
280 | mov ecx,197*65536+13 |
268 | mov ebx,60*65536+75 |
281 | mov edx,3 |
269 | mov ecx,197*65536+13 |
282 | mov esi,0x667788 |
270 | mov edx,3 |
283 | int 0x40 |
- | |
284 | 271 | mcall |
|
Line 285... | Line 272... | ||
285 | mov eax,8 ; RIGHT |
272 | |
286 | mov ebx,148*65536+72 |
273 | ;mov eax,8 ; RIGHT |
287 | mov ecx,197*65536+13 |
274 | mov ebx,148*65536+72 |
288 | mov edx,4 |
275 | mov ecx,197*65536+13 |
289 | mov esi,0x667788 |
- | |
290 | int 0x40 |
276 | mov edx,4 |
Line 291... | Line 277... | ||
291 | 277 | mcall |
|
- | 278 | ||
292 | mov eax,8 ; SEND EXECUTE |
279 | ;mov eax,8 ; SEND EXECUTE |
293 | mov ebx,60*65536+160 |
280 | mov ebx,60*65536+160 |
294 | mov ecx,213*65536+13 |
281 | mov ecx,213*65536+13 |
295 | mov edx,5 |
282 | mov edx,5 |
296 | mov esi,0x667788 |
283 | mcall |
297 | int 0x40 |
284 | |
298 | - | ||
299 | 285 | ||
300 | cld |
286 | cld |
301 | mov ebx,25*65536+185 ; draw info text with function 4 |
287 | mov eax,4 |
302 | mov ecx,0x000000 |
288 | mov ebx,25*65536+185 ; draw info text with function 4 |
Line 303... | Line 289... | ||
303 | mov edx,text |
289 | mov ecx,0x000000 |
304 | mov esi,40 |
290 | mov edx,text |
305 | newline: |
291 | mov esi,40 |
Line 306... | Line 292... | ||
306 | mov eax,4 |
292 | newline: |
Line 307... | Line 293... | ||
307 | int 0x40 |
293 | mcall |
Line 326... | Line 312... | ||
326 | db " 3) SEND 'EXECUTE' " |
312 | db " 3) SEND 'EXECUTE' " |
327 | db ' ' |
313 | db ' ' |
328 | db ' LOCAL : 192.168.1.26 ' |
314 | db ' LOCAL : 192.168.1.26 ' |
329 | db ' REMOTE : 192.168.1.22 ' |
315 | db ' REMOTE : 192.168.1.22 ' |
330 | db ' REMOTE CODE AT THE END OF THIS FILE ' |
316 | db ' REMOTE CODE AT THE END OF THIS FILE ' |
331 | db 'x <- END MARKER, DONT DELETE ' |
317 | db 'x' ;<- END MARKER, DONT DELETE |
Line 332... | Line 318... | ||
332 | 318 | ||
333 | - | ||
Line 334... | Line 319... | ||
334 | labeltext: db 'CLUSTER LOCAL' ; |
319 | |
Line 335... | Line 320... | ||
335 | lte: |
320 | title db 'CLUSTER LOCAL',0 |
Line 490... | Line 475... | ||
490 | 475 | ||
491 | mov eax,53 ; use the socket provided by host |
476 | mov eax,53 ; use the socket provided by host |
492 | mov ebx,4 |
477 | mov ebx,4 |
493 | mov ecx,[0] |
478 | mov ecx,[0] |
494 | mov edx,3*16 |
479 | mov edx,3*16 |
Line 495... | Line 480... | ||
495 | int 0x40 |
480 | mcall |
496 | 481 | ||
497 | mov eax,5 |
482 | mov eax,5 |
Line 498... | Line 483... | ||
498 | mov ebx,1 |
483 | mov ebx,1 |
Line 499... | Line 484... | ||
499 | int 0x40 |
484 | mcall |