Subversion Repositories Kolibri OS

Rev

Rev 485 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 485 Rev 661
Line 1... Line 1...
1
;
1
;
2
;    NetSend(Client)
2
;    NetSend(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
;    Compile with FASM for Menuet
10
;    Compile with FASM for Menuet
11
;    Š®¬¯¨«¨àã¥âáï FASM'®¬ ¤«ï Œ¥­ãí⠎‘
11
;    Š®¬¯¨«¨àã¥âáï FASM'®¬ ¤«ï Œ¥­ãí⠎‘
12
;
12
;
13
   
13
 
14
   
14
 
15
use32
15
use32
16
   
16
 
17
                org     0x0
17
                org     0x0
18
   
18
 
19
                db      'MENUET01'              ; 8 byte id
19
                db      'MENUET01'              ; 8 byte id
20
                dd      1                       ; header version
20
                dd      1                       ; header version
21
                dd      START                   ; program start
21
                dd      START                   ; program start
22
                dd      I_END                   ; program image size
22
                dd      I_END                   ; program image size
23
                dd      mem                     ; required amount of memory
23
                dd      mem                     ; required amount of memory
24
                dd      mem                     ; stack pointer
24
                dd      mem                     ; stack pointer
25
                dd      0, 0                    ; param, icon
25
                dd      0, 0                    ; param, 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,0x4000            ; local port
34
    mov  ecx,0x4000            ; local port
35
    mov  edx,0x5000            ; remote port
35
    mov  edx,0x5000            ; remote port
36
    mov  esi,dword [remote_ip]   ; node IP
36
    mov  esi,dword [remote_ip]   ; node IP
37
    mcall
37
    mcall
38
   
38
 
39
    mov  [socketNum], eax
39
    mov  [socketNum], eax
Line 40... Line 40...
40
 
40
 
41
red: 
41
red:
42
    call draw_window            ; at first, draw the window
42
    call draw_window            ; at first, draw the window
43
   
43
 
44
still:
44
still:
45
   
45
 
46
    mov  eax,10                 ; wait here for event
46
    mov  eax,10                 ; wait here for event
Line 47... Line 47...
47
    mcall
47
    mcall
48
 
48
 
Line 53... Line 53...
53
 
53
 
54
key:
54
key:
55
    mov  al,2
55
    mov  al,2
56
    mcall
56
    mcall
57
    jmp  still
57
    jmp  still
58
   
58
 
59
button:
59
button:
60
    mov  al,17
60
    mov  al,17
61
    mcall
61
    mcall
62
   
62
 
63
    dec  ah                    ; button id=1 ?
63
    dec  ah                    ; button id=1 ?
64
    jnz  noclose
64
    jnz  noclose
65
    mov  eax, 53
65
    mov  eax, 53
66
    mov  ebx, 1
66
    mov  ebx, 1
Line 74... Line 74...
74
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
74
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
75
;;                                              ;;
75
;;                                              ;;
76
;;           SEND CODE TO REMOTE                ;;
76
;;           SEND CODE TO REMOTE                ;;
77
;;                                              ;;
77
;;                                              ;;
78
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
78
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
79
   
79
 
80
send_xcode:
80
send_xcode:
Line 81... Line 81...
81
 
81
 
82
  mov  eax,53                     ; SEND CODE TO REMOTE
82
  mov  eax,53                     ; SEND CODE TO REMOTE
83
  mov  ebx,4
83
  mov  ebx,4
84
  mov  ecx,[socketNum]
84
  mov  ecx,[socketNum]
85
  mov  edx,end_message-send_data
85
  mov  edx,end_message-send_data
86
  mov  esi,send_data
86
  mov  esi,send_data
Line 87... Line 87...
87
  mcall
87
  mcall
88
 
88
 
89
  jmp  still
89
  jmp  still
90
   
90
 
91
   
91
 
92
;   *********************************************
92
;   *********************************************
93
;   *******  WINDOW DEFINITIONS AND DRAW ********
93
;   *******  WINDOW DEFINITIONS AND DRAW ********
94
;   *********************************************
94
;   *********************************************
95
   
95
 
96
   
96
 
97
draw_window:
97
draw_window:
98
   
98
 
99
    mov  eax,12                    ; function 12:tell os about windowdraw
99
    mov  eax,12                    ; function 12:tell os about windowdraw
100
    mov  ebx,1                     ; 1, start of draw
100
    mov  ebx,1                     ; 1, start of draw
101
    mcall
101
    mcall
102
   
102
 
103
                                   ; DRAW WINDOW
103
                                   ; DRAW WINDOW
104
    mov  eax,0                     ; function 0 : define and draw window
104
    mov  eax,0                     ; function 0 : define and draw window
105
    mov  ebx,100*65536+250         ; [x start] *65536 + [x size]
105
    mov  ebx,100*65536+250         ; [x start] *65536 + [x size]
106
    mov  ecx,60*65536+150          ; [y start] *65536 + [y size]
106
    mov  ecx,60*65536+150          ; [y start] *65536 + [y size]
107
    mov  edx,0x13ffffff            ; color of work area RRGGBB
107
    mov  edx,0x14ffffff            ; color of work area RRGGBB
108
    mov  edi,title                 ; WINDOW LABEL
108
    mov  edi,title                 ; WINDOW LABEL
109
    mcall
109
    mcall
110
   
110
 
111
   
111
 
112
    mov  eax,8                     ; SEND MESSAGE
112
    mov  eax,8                     ; SEND MESSAGE
113
    mov  ebx,50*65536+145
113
    mov  ebx,50*65536+145
114
    mov  ecx,47*65536+13
114
    mov  ecx,47*65536+13
115
    mov  edx,2
115
    mov  edx,2
116
    mov  esi,0x667788
116
    mov  esi,0x667788
117
    mcall
117
    mcall
118
   
118
 
119
    mov  eax,4
119
    mov  eax,4
120
    mov  ebx,25*65536+50           ; draw info text with function 4
120
    mov  ebx,25*65536+50           ; draw info text with function 4
121
    mov  ecx,0x000000
121
    mov  ecx,0x000000
Line 125... Line 125...
125
    mcall
125
    mcall
126
    add  ebx,16
126
    add  ebx,16
127
    add  edx,esi
127
    add  edx,esi
128
    cmp  [edx],byte 'x'
128
    cmp  [edx],byte 'x'
129
    jnz  newline
129
    jnz  newline
130
   
130
 
131
    mov  eax,12                    ; function 12:tell os about windowdraw
131
    mov  eax,12                    ; function 12:tell os about windowdraw
132
    mov  ebx,2                     ; 2, end of draw
132
    mov  ebx,2                     ; 2, end of draw
133
    mcall
133
    mcall
134
   
134
 
135
    ret
135
    ret
136
   
136
 
137
   
137
 
138
; DATA AREA
138
; DATA AREA
139
   
139
 
140
if lang eq ru   
140
if lang eq ru
141
text:
141
text:
142
    db '        ®á« âì á®®¡é¥­¨¥               '
142
    db '        ®á« âì á®®¡é¥­¨¥               '
143
    db '                                        '
143
    db '                                        '
144
    db ' ‹®ª «ì­ë©  ¤à¥á : 192.168.0.1          '
144
    db ' ‹®ª «ì­ë©  ¤à¥á : 192.168.0.1          '
145
    db ' “¤ «ñ­­ë©  ¤à¥á : 192.168.0.2          '
145
    db ' “¤ «ñ­­ë©  ¤à¥á : 192.168.0.2          '
Line 151... Line 151...
151
    db '                                        '
151
    db '                                        '
152
    db ' Local  address : 192.168.0.1           '
152
    db ' Local  address : 192.168.0.1           '
153
    db ' Remote address : 192.168.0.2           '
153
    db ' Remote address : 192.168.0.2           '
154
    db 'Text and address in end of source       '
154
    db 'Text and address in end of source       '
155
    db 'x' ; <- END MARKER, DONT DELETE
155
    db 'x' ; <- END MARKER, DONT DELETE
156
end if   
156
end if
157
   
157
 
158
title  db  'NetSend(Client)',0
158
title  db  'NetSend(Client)',0
159
   
159
 
160
remote_ip  db  192,168,1,2
160
remote_ip  db  192,168,1,2
161
   
161
 
162
send_data   db  'à¨¢¥â,íâ® â¥áâ!Hello,this is a test!'
162
send_data   db  'à¨¢¥â,íâ® â¥áâ!Hello,this is a test!'
163
end_message:
163
end_message:
Line 164... Line 164...
164
 
164
 
165
   
165
 
166
I_END:
166
I_END:
167
align 4
167
align 4
Line 168... Line 168...
168
socketNum dd ?
168
socketNum dd ?