Subversion Repositories Kolibri OS

Rev

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