Subversion Repositories Kolibri OS

Rev

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

Rev 339 Rev 485
Line 37... Line 37...
37
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
37
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 38... Line 38...
38
 
38
 
39
macro eth.get_IP IP {
39
macro eth.get_IP IP {
40
    mov  ebx,1
40
    mov  ebx,1
41
    mov  eax,52
41
    mov  eax,52
Line 42... Line 42...
42
    int  0x40
42
    mcall
43
 
43
 
Line 44... Line 44...
44
    mov  IP ,eax
44
    mov  IP ,eax
45
}
45
}
46
 
46
 
47
macro eth.get_GATEWAY GATEWAY {
47
macro eth.get_GATEWAY GATEWAY {
48
    mov  ebx,9
48
    mov  ebx,9
49
    mov  eax,52
49
    mov  eax,52
Line 50... Line 50...
50
    int  0x40
50
    mcall
51
    mov GATEWAY ,eax
51
    mov GATEWAY ,eax
52
}
52
}
53
 
53
 
54
macro eth.get_SUBNET SUBNET {
54
macro eth.get_SUBNET SUBNET {
55
    mov  ebx,10
55
    mov  ebx,10
Line 56... Line 56...
56
    mov  eax,52
56
    mov  eax,52
57
    int  0x40
57
    mcall
58
    mov SUBNET ,eax
58
    mov SUBNET ,eax
59
}
59
}
60
 
60
 
61
macro eth.get_DNS DNS {
61
macro eth.get_DNS DNS {
Line 62... Line 62...
62
    mov  ebx,13
62
    mov  ebx,13
63
    mov  eax,52
63
    mov  eax,52
64
    int  0x40
64
    mcall
65
    mov  DNS ,eax
65
    mov  DNS ,eax
66
}
66
}
67
 
67
 
Line 68... Line 68...
68
macro eth.set_IP IP {
68
macro eth.set_IP IP {
69
    mov  ecx,IP
69
    mov  ecx,IP
70
    mov  ebx,3
70
    mov  ebx,3
71
    mov  eax,52
71
    mov  eax,52
72
    int  0x40
72
    mcall
73
}
73
}
Line 74... Line 74...
74
 
74
 
75
macro eth.set_GATEWAY GATEWAY {
75
macro eth.set_GATEWAY GATEWAY {
76
    mov  ecx,GATEWAY
76
    mov  ecx,GATEWAY
77
    mov  ebx,11
77
    mov  ebx,11
78
    mov  eax,52
78
    mov  eax,52
79
    int  0x40
79
    mcall
Line 80... Line 80...
80
}
80
}
81
 
81
 
82
macro eth.set_SUBNET SUBNET {
82
macro eth.set_SUBNET SUBNET {
83
    mov  ecx,SUBNET
83
    mov  ecx,SUBNET
84
    mov  ebx,12
84
    mov  ebx,12
85
    mov  eax,52
85
    mov  eax,52
Line 86... Line 86...
86
    int  0x40
86
    mcall
87
}
87
}
88
 
88
 
89
macro eth.set_DNS DNS {
89
macro eth.set_DNS DNS {
90
    mov  ecx,DNS
90
    mov  ecx,DNS
91
    mov  ebx,14
91
    mov  ebx,14
Line 92... Line 92...
92
    mov  eax,52
92
    mov  eax,52
93
    int  0x40
93
    mcall
94
}
94
}
95
 
95
 
96
macro eth.set_network_drv conf {
96
macro eth.set_network_drv conf {
97
    mov  ecx,conf
97
    mov  ecx,conf
98
    mov  ebx,2
98
    mov  ebx,2
Line 99... Line 99...
99
    mov  eax,52
99
    mov  eax,52
100
    int  0x40
100
    mcall
Line 101... Line 101...
101
}
101
}
102
 
102
 
103
macro eth.open_udp local,remote,ip,socket {
103
macro eth.open_udp local,remote,ip,socket {
104
    mov  ecx, local
104
    mov  ecx, local
105
    mov  edx, remote
105
    mov  edx, remote
106
    mov  esi, ip
106
    mov  esi, ip
Line 107... Line 107...
107
    mov  ebx, 0
107
    mov  ebx, 0
108
    mov  eax, 53
108
    mov  eax, 53
109
    int  0x40
109
    mcall
110
 
110
 
111
    mov  socket,eax
111
    mov  socket,eax
112
}
112
}
Line 113... Line 113...
113
 
113
 
114
macro eth.close_udp socket {
114
macro eth.close_udp socket {
115
    mov  ecx, socket
115
    mov  ecx, socket
116
    mov  ebx, 1
116
    mov  ebx, 1
117
    mov  eax, 53
117
    mov  eax, 53
Line 118... Line 118...
118
    int  0x40
118
    mcall
119
}
119
}
Line 120... Line 120...
120
 
120
 
121
macro eth.poll socket {
121
macro eth.poll socket {
122
    mov  ecx, socket
122
    mov  ecx, socket
123
    mov  ebx, 2
123
    mov  ebx, 2
124
    mov  eax, 53
124
    mov  eax, 53
125
    int  0x40
125
    mcall
126
}
126
}
127
 
127
 
Line 128... Line 128...
128
macro eth.read_byte socket, result {
128
macro eth.read_byte socket, result {
129
    mov  ecx, socket
129
    mov  ecx, socket
130
    mov  ebx, 3
130
    mov  ebx, 3
131
    mov  eax, 53
131
    mov  eax, 53
132
    int  0x40
132
    mcall
133
 
133
 
134
    mov  result,bl
134
    mov  result,bl
Line 135... Line 135...
135
}
135
}
136
 
136
 
137
macro eth.read_packet socket, result, buffersize {
137
macro eth.read_packet socket, result, buffersize {
Line 163... Line 163...
163
    ret
163
    ret
164
@@:
164
@@:
165
    pusha
165
    pusha
166
    mov  eax,5
166
    mov  eax,5
167
    mov  ebx,100
167
    mov  ebx,100
168
    int  0x40
168
    mcall
169
    popa
169
    popa
170
    int  0x40
170
    mcall
171
ret
171
ret
Line 172... Line 172...
172
 
172
 
Line 173... Line 173...
173
macro eth.open_tcp local,remote,ip,passive,socket {
173
macro eth.open_tcp local,remote,ip,passive,socket {
174
 
174
 
175
    mov  ecx, local
175
    mov  ecx, local
176
    mov  edx, remote
176
    mov  edx, remote
177
    mov  esi, ip
177
    mov  esi, ip
178
    mov  edi, passive	   ; 0 = PASSIVE open
178
    mov  edi, passive	   ; 0 = PASSIVE open
179
    mov  ebx, 5
179
    mov  ebx, 5
Line 180... Line 180...
180
    mov  eax, 53
180
    mov  eax, 53
181
    int  0x40
181
    mcall
Line 182... Line 182...
182
 
182
 
183
    mov  socket,eax
183
    mov  socket,eax
184
}
184
}
185
 
185
 
186
macro eth.socket_status socket,result {
186
macro eth.socket_status socket,result {
Line 187... Line 187...
187
    mov  ecx, socket
187
    mov  ecx, socket
188
    mov  ebx, 6
188
    mov  ebx, 6
Line 189... Line 189...
189
    mov  eax, 53
189
    mov  eax, 53
190
    int  0x40
190
    mcall
191
 
191
 
192
    mov  result,eax
192
    mov  result,eax
193
}
193
}
194
 
194
 
195
macro eth.write_tcp socket,length,msg,verify {
195
macro eth.write_tcp socket,length,msg,verify {
Line 196... Line 196...
196
    mov  ecx, socket
196
    mov  ecx, socket
197
    mov  edx, length
197
    mov  edx, length
198
    mov  esi, msg
198
    mov  esi, msg
199
    mov  ebx, 7
199
    mov  ebx, 7
Line 208... Line 208...
208
macro eth.read_mac mac {
208
macro eth.read_mac mac {
209
    mov  eax, 52
209
    mov  eax, 52
210
    mov  ebx, 15
210
    mov  ebx, 15
211
    xor  ecx, ecx
211
    xor  ecx, ecx
212
    pusha
212
    pusha
213
    int  0x40
213
    mcall
214
    mov  dword[mac],eax
214
    mov  dword[mac],eax
215
    popa
215
    popa
216
    add  cl, 4
216
    add  cl, 4
217
    int  0x40
217
    mcall
218
    mov  word[mac+4],ax
218
    mov  word[mac+4],ax
Line 219... Line 219...
219
 
219
 
Line 220... Line 220...
220
}
220
}
221
 
221
 
222
macro eth.close_tcp socket {
222
macro eth.close_tcp socket {
223
    mov  ecx, socket
223
    mov  ecx, socket
224
    mov  ebx, 8
224
    mov  ebx, 8
225
    mov  eax, 53
225
    mov  eax, 53
Line 226... Line 226...
226
    int  0x40
226
    mcall
227
}
227
}
228
 
228
 
229
macro eth.check_port port,result {
229
macro eth.check_port port,result {
230
    mov  ecx, port
230
    mov  ecx, port
Line 231... Line 231...
231
    mov  ebx, 9
231
    mov  ebx, 9
232
    mov  eax, 53
232
    mov  eax, 53
Line 233... Line 233...
233
    int  0x40
233
    mcall
234
 
234
 
235
    mov  result,eax
235
    mov  result,eax
236
}
236
}
Line 237... Line 237...
237
 
237
 
238
macro eth.check_cable result {
238
macro eth.check_cable result {
Line 239... Line 239...
239
    mov  ebx, 10
239
    mov  ebx, 10
240
    mov  eax, 53
240
    mov  eax, 53
241
    int  0x40
241
    mcall
242
 
242
 
243
    mov  result,eax
243
    mov  result,eax
Line 244... Line 244...
244
}
244
}
245
 
245
 
Line 246... Line 246...
246
macro eth.status status {
246
macro eth.status status {
Line 266... Line 266...
266
 
266
 
267
    mov  edx,address
267
    mov  edx,address
268
    mov  eax,52
268
    mov  eax,52
269
    mov  ebx,16
269
    mov  ebx,16
270
    xor  ecx,ecx
270
    xor  ecx,ecx
Line 271... Line 271...
271
    int  0x40
271
    mcall
Line 272... Line 272...
272
 
272
 
Line 278... Line 278...
278
    mov  edx,address
278
    mov  edx,address
279
    mov  eax,52
279
    mov  eax,52
280
    mov  ebx,16
280
    mov  ebx,16
281
    xor  ecx,ecx
281
    xor  ecx,ecx
282
    inc  ecx
282
    inc  ecx
283
    int  0x40
283
    mcall
Line 284... Line 284...
284
 
284
 
Line 285... Line 285...
285
}
285
}
286
 
286
 
Line 306... Line 306...
306
    test    eax, eax
306
    test    eax, eax
307
    jnz     .getdata
307
    jnz     .getdata
Line 308... Line 308...
308
 
308
 
309
    mov     eax,5
309
    mov     eax,5
310
    mov     ebx,1
310
    mov     ebx,1
Line 311... Line 311...
311
    int     0x40
311
    mcall
312
 
312
 
313
    inc     edx
313
    inc     edx
Line 329... Line 329...
329
    dec   edx
329
    dec   edx
330
    jz	  abort
330
    jz	  abort
Line 331... Line 331...
331
 
331
 
332
    mov   eax,5 			      ; wait here for event
332
    mov   eax,5 			      ; wait here for event
333
    mov   ebx,10
333
    mov   ebx,10
Line 334... Line 334...
334
    int   0x40
334
    mcall
335
 
335
 
Line 336... Line 336...
336
    jmp   @r
336
    jmp   @r