Rev 109 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 109 | Rev 132 | ||
---|---|---|---|
1 | ; |
1 | ; |
2 | ; Remote Control Center(Client) |
2 | ; Remote Control Center(Client) |
3 | ; |
3 | ; |
4 | ; ¢â®à: Hex |
4 | ; ¢â®à: Hex |
5 | ; ©â: www.mestack.narod.ru |
5 | ; ©â: www.mestack.narod.ru |
6 | ; |
6 | ; |
7 | ; ¯¨á ¨¥: |
7 | ; ¯¨á ¨¥: |
8 | ; à®£à ¬¬ , ¯à¥¤ § ç¥ ï ¤«ï ã¯à ¢«¥¨ï 㤠«ñë¬ ª®¬¯ìîâ¥à®¬.«¨¥â᪠ï |
8 | ; à®£à ¬¬ , ¯à¥¤ § ç¥ ï ¤«ï ã¯à ¢«¥¨ï 㤠«ñë¬ ª®¬¯ìîâ¥à®¬.«¨¥â᪠ï |
9 | ; ç áâì. |
9 | ; ç áâì. |
10 | ; |
10 | ; |
11 | ; Compile with FASM for Menuet |
11 | ; Compile with FASM for Menuet |
12 | ; ®¬¯¨«¨àã¥âáï FASM'®¬ ¤«ï ¥ãíâ |
12 | ; ®¬¯¨«¨àã¥âáï FASM'®¬ ¤«ï ¥ãíâ |
13 | ; |
13 | ; |
14 | 14 | ||
15 | 15 | ||
16 | use32 |
16 | use32 |
17 | org 0x0 |
17 | org 0x0 |
18 | 18 | ||
19 | db 'MENUET01' ; 8 byte id |
19 | db 'MENUET01' ; 8 byte id |
20 | dd 0x01 ; header version |
20 | dd 0x01 ; header version |
21 | dd START ; start of code |
21 | dd START ; start of code |
22 | dd I_END ; size of image |
22 | dd I_END ; size of image |
23 | dd 0x5000 ; memory for app |
23 | dd 0x5000 ; memory for app |
24 | dd 0x5000 ; esp |
24 | dd 0x5000 ; esp |
25 | dd 0x0 , 0x0 ; I_Param , I_Icon |
25 | dd 0x0 , 0x0 ; I_Param , I_Icon |
26 | 26 | ||
27 | include 'lang.inc' |
27 | include 'lang.inc' |
28 | include 'macros.inc' |
28 | include 'macros.inc' |
29 | 29 | ||
30 | START: ; start of execution |
30 | START: ; start of execution |
31 | 31 | ||
32 | mov eax,53 ; open socket |
32 | mov eax,53 ; open socket |
33 | mov ebx,0 |
33 | mov ebx,0 |
34 | mov ecx,0x6000 ; local port |
34 | mov ecx,0x6000 ; local port |
35 | mov edx,0x6100 ; remote port |
35 | mov edx,0x6100 ; remote port |
36 | mov esi,dword [remote_ip] ; remote IP |
36 | mov esi,dword [remote_ip] ; remote IP |
37 | int 0x40 |
37 | int 0x40 |
38 | 38 | ||
39 | mov [socket], eax |
39 | mov [socket], eax |
40 | 40 | ||
41 | mov eax,53 ; send connect code |
41 | mov eax,53 ; send connect code |
42 | mov ebx,4 |
42 | mov ebx,4 |
43 | mov ecx,[socket] |
43 | mov ecx,[socket] |
44 | mov edx,1 |
44 | mov edx,1 |
45 | mov esi,connect |
45 | mov esi,connect |
46 | int 0x40 |
46 | int 0x40 |
47 | 47 | ||
48 | call draw_window ; at first, draw the window |
48 | call draw_window ; at first, draw the window |
49 | 49 | ||
50 | still: |
50 | still: |
51 | 51 | ||
52 | mov eax,23 ; wait here for event |
52 | mov eax,23 ; wait here for event |
53 | mov ebx,1 |
53 | mov ebx,1 |
54 | int 0x40 |
54 | int 0x40 |
55 | 55 | ||
56 | cmp eax,1 ; redraw request ? |
56 | cmp eax,1 ; redraw request ? |
57 | jz red |
57 | jz red |
58 | cmp eax,2 ; key in buffer ? |
58 | cmp eax,2 ; key in buffer ? |
59 | jz key |
59 | jz key |
60 | cmp eax,3 ; button in buffer ? |
60 | cmp eax,3 ; button in buffer ? |
61 | jz button |
61 | jz button |
62 | 62 | ||
63 | jmp still |
63 | jmp still |
64 | 64 | ||
65 | red: |
65 | red: |
66 | call draw_window |
66 | call draw_window |
67 | jmp still |
67 | jmp still |
68 | 68 | ||
69 | key: |
69 | key: |
70 | mov eax,2 |
70 | mov eax,2 |
71 | int 0x40 |
71 | int 0x40 |
72 | jmp still |
72 | jmp still |
73 | 73 | ||
74 | button: |
74 | button: |
75 | mov eax,17 |
75 | mov eax,17 |
76 | int 0x40 |
76 | int 0x40 |
77 | 77 | ||
78 | cmp ah,1 ; button id=1 ? |
78 | cmp ah,1 ; button id=1 ? |
79 | jnz noclose |
79 | jnz noclose |
80 | mov eax, 53 |
80 | mov eax, 53 |
81 | mov ebx, 1 |
81 | mov ebx, 1 |
82 | mov ecx, [socket] |
82 | mov ecx, [socket] |
83 | int 0x40 |
83 | int 0x40 |
84 | mov eax,-1 |
84 | mov eax,-1 |
85 | int 0x40 |
85 | int 0x40 |
86 | noclose: |
86 | noclose: |
87 | 87 | ||
88 | cmp ah,2 ; SEND SHUTDOWN COMMAND? |
88 | cmp ah,2 ; SEND SHUTDOWN COMMAND? |
89 | je send_shutdown |
89 | je send_shutdown |
90 | 90 | ||
91 | cmp ah,3 ; SEND REBOOT COMMAND? |
91 | cmp ah,3 ; SEND REBOOT COMMAND? |
92 | je send_reboot |
92 | je send_reboot |
93 | 93 | ||
94 | cmp ah,4 ; SEND SAVEFI COMMAND? |
94 | cmp ah,4 ; SEND SAVEFI COMMAND? |
95 | je send_savefi |
95 | je send_savefi |
96 | 96 | ||
97 | cmp ah,5 ; SEND SAVEHI COMMAND? |
97 | cmp ah,5 ; SEND SAVEHI COMMAND? |
98 | je send_savehi |
98 | je send_savehi |
99 | 99 | ||
100 | cmp ah,6 ; SEND HOTREBOOT COMMAND? |
100 | cmp ah,6 ; SEND HOTREBOOT COMMAND? |
101 | je send_hotreboot |
101 | je send_hotreboot |
102 | 102 | ||
103 | cmp ah,7 ; SEND EXIT COMMAND? |
103 | cmp ah,7 ; SEND EXIT COMMAND? |
104 | je send_exit |
104 | je send_exit |
105 | 105 | ||
106 | jmp still |
106 | jmp still |
107 | 107 | ||
108 | 108 | ||
109 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
109 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
110 | ;; ;; |
110 | ;; ;; |
111 | ;; SEND COMMANDS TO SERVER ;; |
111 | ;; SEND COMMANDS TO SERVER ;; |
112 | ;; ;; |
112 | ;; ;; |
113 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
113 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
114 | send_shutdown: |
114 | send_shutdown: |
115 | 115 | ||
116 | mov eax,53 ; SEND CODE TO REMOTE |
116 | mov eax,53 ; SEND CODE TO REMOTE |
117 | mov ebx,4 |
117 | mov ebx,4 |
118 | mov ecx,[socket] |
118 | mov ecx,[socket] |
119 | mov edx,1 |
119 | mov edx,1 |
120 | mov esi,sen_shutdown |
120 | mov esi,sen_shutdown |
121 | int 0x40 |
121 | int 0x40 |
122 | 122 | ||
123 | jmp still |
123 | jmp still |
124 | 124 | ||
125 | send_reboot: |
125 | send_reboot: |
126 | 126 | ||
127 | mov eax,53 ; SEND CODE TO REMOTE |
127 | mov eax,53 ; SEND CODE TO REMOTE |
128 | mov ebx,4 |
128 | mov ebx,4 |
129 | mov ecx,[socket] |
129 | mov ecx,[socket] |
130 | mov edx,1 |
130 | mov edx,1 |
131 | mov esi,sen_reboot |
131 | mov esi,sen_reboot |
132 | int 0x40 |
132 | int 0x40 |
133 | 133 | ||
134 | jmp still |
134 | jmp still |
135 | 135 | ||
136 | send_savefi: |
136 | send_savefi: |
137 | 137 | ||
138 | mov eax,53 ; SEND CODE TO REMOTE |
138 | mov eax,53 ; SEND CODE TO REMOTE |
139 | mov ebx,4 |
139 | mov ebx,4 |
140 | mov ecx,[socket] |
140 | mov ecx,[socket] |
141 | mov edx,1 |
141 | mov edx,1 |
142 | mov esi,sen_savefi |
142 | mov esi,sen_savefi |
143 | int 0x40 |
143 | int 0x40 |
144 | 144 | ||
145 | jmp still |
145 | jmp still |
146 | 146 | ||
147 | send_savehi: |
147 | send_savehi: |
148 | 148 | ||
149 | mov eax,53 ; SEND CODE TO REMOTE |
149 | mov eax,53 ; SEND CODE TO REMOTE |
150 | mov ebx,4 |
150 | mov ebx,4 |
151 | mov ecx,[socket] |
151 | mov ecx,[socket] |
152 | mov edx,1 |
152 | mov edx,1 |
153 | mov esi,sen_savehi |
153 | mov esi,sen_savehi |
154 | int 0x40 |
154 | int 0x40 |
155 | 155 | ||
156 | jmp still |
156 | jmp still |
157 | 157 | ||
158 | send_hotreboot: |
158 | send_hotreboot: |
159 | 159 | ||
160 | mov eax,53 ; SEND CODE TO REMOTE |
160 | mov eax,53 ; SEND CODE TO REMOTE |
161 | mov ebx,4 |
161 | mov ebx,4 |
162 | mov ecx,[socket] |
162 | mov ecx,[socket] |
163 | mov edx,1 |
163 | mov edx,1 |
164 | mov esi,sen_hotreboot |
164 | mov esi,sen_hotreboot |
165 | int 0x40 |
165 | int 0x40 |
166 | 166 | ||
167 | jmp still |
167 | jmp still |
168 | 168 | ||
169 | send_exit: |
169 | send_exit: |
170 | 170 | ||
171 | mov eax,53 ; SEND CODE TO REMOTE |
171 | mov eax,53 ; SEND CODE TO REMOTE |
172 | mov ebx,4 |
172 | mov ebx,4 |
173 | mov ecx,[socket] |
173 | mov ecx,[socket] |
174 | mov edx,1 |
174 | mov edx,1 |
175 | mov esi,sen_exit |
175 | mov esi,sen_exit |
176 | int 0x40 |
176 | int 0x40 |
177 | 177 | ||
178 | jmp still |
178 | jmp still |
179 | 179 | ||
180 | get_data: |
180 | get_data: |
181 | 181 | ||
182 | mov eax,53 |
182 | mov eax,53 |
183 | mov ebx,3 |
183 | mov ebx,3 |
184 | mov ecx,[socket] |
184 | mov ecx,[socket] |
185 | int 0x40 |
185 | int 0x40 |
186 | 186 | ||
187 | mov [edi],bl |
187 | mov [edi],bl |
188 | inc edi |
188 | inc edi |
189 | 189 | ||
190 | mov eax,53 |
190 | mov eax,53 |
191 | mov ebx,2 |
191 | mov ebx,2 |
192 | mov ecx,[socket] |
192 | mov ecx,[socket] |
193 | int 0x40 |
193 | int 0x40 |
194 | 194 | ||
195 | cmp eax,0 |
195 | cmp eax,0 |
196 | jne get_data |
196 | jne get_data |
197 | 197 | ||
198 | mov eax,4 |
198 | mov eax,4 |
199 | mov ebx,30*65536+30 |
199 | mov ebx,30*65536+30 |
200 | mov ecx,0x000000 |
200 | mov ecx,0x000000 |
201 | mov edx,I_END |
201 | mov edx,I_END |
202 | mov esi,15 |
202 | mov esi,15 |
203 | int 0x40 |
203 | int 0x40 |
204 | 204 | ||
205 | jmp still |
205 | jmp still |
206 | ; ********************************************* |
206 | ; ********************************************* |
207 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
207 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
208 | ; ********************************************* |
208 | ; ********************************************* |
209 | 209 | ||
210 | 210 | ||
211 | draw_window: |
211 | draw_window: |
212 | 212 | ||
213 | mov eax,12 ; function 12:tell os about windowdraw |
213 | mov eax,12 ; function 12:tell os about windowdraw |
214 | mov ebx,1 ; 1, start of draw |
214 | mov ebx,1 ; 1, start of draw |
215 | int 0x40 |
215 | int 0x40 |
216 | 216 | ||
217 | ; DRAW WINDOW |
217 | ; DRAW WINDOW |
218 | mov eax,0 ; function 0 : define and draw window |
218 | mov eax,0 ; function 0 : define and draw window |
219 | mov ebx,100*65536+250 ; [x start] *65536 + [x size] |
219 | mov ebx,100*65536+250 ; [x start] *65536 + [x size] |
220 | mov ecx,60*65536+280 ; [y start] *65536 + [y size] |
220 | mov ecx,60*65536+280 ; [y start] *65536 + [y size] |
221 | mov edx,0x03ffffff ; color of work area RRGGBB |
221 | mov edx,0x03ffffff ; color of work area RRGGBB |
222 | mov esi,0x80aabbcc ; color of grab bar RRGGBB,8->color gl |
222 | mov esi,0x80aabbcc ; color of grab bar RRGGBB,8->color gl |
223 | mov edi,0x00aabbcc ; color of frames RRGGBB |
223 | mov edi,0x00aabbcc ; color of frames RRGGBB |
224 | int 0x40 |
224 | int 0x40 |
225 | 225 | ||
226 | ; WINDOW LABEL |
226 | ; WINDOW LABEL |
227 | mov eax,4 ; function 4 : write text to window |
227 | mov eax,4 ; function 4 : write text to window |
228 | mov ebx,8*65536+8 ; [x start] *65536 + [y start] |
228 | mov ebx,8*65536+8 ; [x start] *65536 + [y start] |
229 | mov ecx,0x00ffffff ; color of text RRGGBB |
229 | mov ecx,0x00ffffff ; color of text RRGGBB |
230 | mov edx,labeltext ; pointer to text beginning |
230 | mov edx,labeltext ; pointer to text beginning |
231 | mov esi,lte-labeltext ; text length |
231 | mov esi,lte-labeltext ; text length |
232 | int 0x40 |
232 | int 0x40 |
233 | 233 | ||
234 | mov eax,8 ; CONTROL BUTTONS |
234 | mov eax,8 ; CONTROL BUTTONS |
235 | mov ebx,25*65536+9 |
235 | mov ebx,25*65536+9 |
236 | mov ecx,113*65536+9 |
236 | mov ecx,113*65536+9 |
237 | mov edx,2 |
237 | mov edx,2 |
238 | mov esi,0x667788 |
238 | mov esi,0x667788 |
239 | int 0x40 |
239 | int 0x40 |
240 | newbut: |
240 | newbut: |
241 | int 0x40 |
241 | int 0x40 |
242 | add ecx,16*65536 |
242 | add ecx,16*65536 |
243 | inc edx |
243 | inc edx |
244 | cmp edx,8 |
244 | cmp edx,8 |
245 | jb newbut |
245 | jb newbut |
246 | 246 | ||
247 | cld |
247 | cld |
248 | mov ebx,25*65536+50 ; draw info text with function 4 |
248 | mov ebx,25*65536+50 ; draw info text with function 4 |
249 | mov ecx,0x000000 |
249 | mov ecx,0x000000 |
250 | mov edx,text |
250 | mov edx,text |
251 | mov esi,40 |
251 | mov esi,40 |
252 | newline: |
252 | newline: |
253 | mov eax,4 |
253 | mov eax,4 |
254 | int 0x40 |
254 | int 0x40 |
255 | add ebx,16 |
255 | add ebx,16 |
256 | add edx,40 |
256 | add edx,40 |
257 | cmp [edx],byte 'x' |
257 | cmp [edx],byte 'x' |
258 | jnz newline |
258 | jnz newline |
259 | 259 | ||
260 | mov eax,12 ; function 12:tell os about windowdraw |
260 | mov eax,12 ; function 12:tell os about windowdraw |
261 | mov ebx,2 ; 2, end of draw |
261 | mov ebx,2 ; 2, end of draw |
262 | int 0x40 |
262 | int 0x40 |
263 | 263 | ||
264 | ret |
264 | ret |
265 | 265 | ||
266 | 266 | ||
267 | ; DATA AREA |
267 | ; DATA AREA |
268 | 268 | ||
269 | 269 | ||
270 | text: |
270 | text: |
- | 271 | if lang eq ru |
|
271 | db ' ६ï á¥à¢¥à : ' |
272 | db ' ६ï á¥à¢¥à : ' |
272 | db ' ' |
273 | db ' ' |
273 | db ' ¥î ã¯à ¢«¥¨ï á¥à¢¥à®¬: ' |
274 | db ' ¥î ã¯à ¢«¥¨ï á¥à¢¥à®¬: ' |
274 | db ' ' |
275 | db ' ' |
275 | db ' - 몫îç¨âì ' |
276 | db ' - 몫îç¨âì ' |
276 | db ' - ¥à¥§ £à㧨âì ' |
277 | db ' - ¥à¥§ £à㧨âì ' |
277 | db ' - ®åà ¨âì ä«®¯¯¨-¨¬¥¤¦ ' |
278 | db ' - ®åà ¨âì ä«®¯¯¨-¨¬¥¤¦ ' |
278 | db ' - ®åà ¨âì ¨¬¥¤¦ . ¤¨áª ' |
279 | db ' - ®åà ¨âì ¨¬¥¤¦ . ¤¨áª ' |
279 | db ' - ®àï稩 à¥áâ àâ ï¤à ' |
280 | db ' - ®àï稩 à¥áâ àâ ï¤à ' |
280 | db ' - ªàë⨥ á¥à¢¥à®© ç á⨠' |
281 | db ' - ªàë⨥ á¥à¢¥à®© ç á⨠' |
281 | db ' ' |
282 | db ' ' |
282 | db ' ®ª «ìë© ¤à¥á : 192.168.0.1 ' |
283 | db ' ®ª «ìë© ¤à¥á : 192.168.0.1 ' |
283 | db ' ¤ «ñë© ¤à¥á : 192.168.0.2 ' |
284 | db ' ¤ «ñë© ¤à¥á : 192.168.0.2 ' |
284 | db '¤à¥á á¥à¢¥à - ¢ ª®æ¥ ¨á室¨ª ' |
285 | db '¤à¥á á¥à¢¥à - ¢ ª®æ¥ ¨á室¨ª ' |
285 | db 'x <- END MARKER, DONT DELETE ' |
286 | db 'x' ; <- END MARKER, DONT DELETE |
- | 287 | ||
- | 288 | else |
|
- | 289 | db ' On server: ' |
|
- | 290 | db ' ' |
|
- | 291 | db ' Server control menu: ' |
|
- | 292 | db ' ' |
|
- | 293 | db ' - Shutdown ' |
|
- | 294 | db ' - Reboot ' |
|
- | 295 | db ' - Save ramdisk image to floppy ' |
|
- | 296 | db ' - Save ramdisk image to hard disk ' |
|
- | 297 | db ' - Kernel restart ' |
|
- | 298 | db ' - Close server part ' |
|
- | 299 | db ' ' |
|
- | 300 | db ' Local address : 192.168.0.1 ' |
|
- | 301 | db ' Remote address : 192.168.0.2 ' |
|
- | 302 | db 'Address of server is in end of source ' |
|
- | 303 | db 'x' ; <- END MARKER, DONT DELETE |
|
286 | 304 | end if |
|
287 | 305 | ||
288 | labeltext: db 'Remote Control Center(Client)' ; |
306 | labeltext: db 'Remote Control Center(Client)' ; |
289 | lte: |
307 | lte: |
290 | 308 | ||
291 | socket dd 0x0 |
309 | socket dd 0x0 |
292 | 310 | ||
293 | remote_ip db 192,168,0,2 |
311 | remote_ip db 192,168,0,2 |
294 | 312 | ||
295 | sen_shutdown db 'S' |
313 | sen_shutdown db 'S' |
296 | sen_reboot db 'R' |
314 | sen_reboot db 'R' |
297 | sen_savefi db 'F' |
315 | sen_savefi db 'F' |
298 | sen_savehi db 'H' |
316 | sen_savehi db 'H' |
299 | sen_hotreboot db 'O' |
317 | sen_hotreboot db 'O' |
300 | sen_exit db 'E' |
318 | sen_exit db 'E' |
301 | connect db 'C' |
319 | connect db 'C' |
302 | 320 | ||
303 | I_END:-> |
321 | I_END:->-> |
304 | - | ||
305 | - | ||
306 | - | ||
307 | - | ||
308 | - | ||
309 | - |