Rev 1192 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1171 | hidnplayr | 1 | ; |
1192 | hidnplayr | 2 | ; Netstat for KolibriOS v0.1 (still alpha version) |
1171 | hidnplayr | 3 | ; |
4 | ; hidnplayr@gmail.com |
||
5 | ; |
||
6 | |||
7 | use32 |
||
8 | |||
9 | org 0x0 |
||
10 | |||
11 | db 'MENUET01' ; 8 byte id |
||
12 | dd 0x01 ; header version |
||
13 | dd START ; start of code |
||
1192 | hidnplayr | 14 | dd IM_END ; size of image |
15 | dd (I_END+0x100) ; memory for app |
||
16 | dd (I_END+0x100) ; esp |
||
17 | dd I_PARAM , 0x0 ; I_Param , I_Icon |
||
1171 | hidnplayr | 18 | |
19 | __DEBUG__ equ 1 |
||
20 | __DEBUG_LEVEL__ equ 1 |
||
21 | |||
22 | include '..\macros.inc' |
||
23 | include '..\debug-fdo.inc' |
||
24 | |||
25 | START: ; start of execution |
||
26 | ; TODO: check Parameters |
||
27 | |||
28 | DEBUGF 1, 'Hello!\n' |
||
29 | |||
30 | |||
31 | redraw: |
||
32 | |||
33 | mcall 12, 1 |
||
34 | |||
35 | mcall 0, 100 shl 16 + 520, 100 shl 16 + 240, 0x34bcbcbc, ,name |
||
36 | |||
37 | mov edx, 101 |
||
38 | mov esi, 0x00aaaaff |
||
39 | mov edi, 0x00aaffff |
||
40 | |||
41 | cmp dl, [mode] |
||
42 | cmove esi, edi |
||
43 | mcall 8, 25 shl 16 + 65, 25 shl 16 + 20 |
||
44 | |||
45 | @@: |
||
46 | inc edx |
||
47 | add ebx, 75 shl 16 |
||
48 | mov esi, 0x00aaaaff |
||
49 | |||
50 | cmp dl, [mode] |
||
51 | cmove esi, edi |
||
52 | mcall |
||
53 | |||
54 | cmp edx, 105 |
||
55 | jle @r |
||
56 | |||
57 | mcall 4, 28 shl 16 + 31, 0x80000000, modes |
||
58 | |||
59 | cmp [mode], 101 |
||
60 | jne @f |
||
61 | |||
62 | mcall 4, 20 shl 16 + 75, 0x80000000, str_packets_tx |
||
63 | add ebx, 18 |
||
64 | mov edx, str_packets_rx |
||
65 | mcall |
||
66 | add ebx, 18 |
||
67 | mov edx, str_bytes_tx |
||
68 | mcall |
||
69 | add ebx, 18 |
||
70 | mov edx, str_bytes_rx |
||
71 | mcall |
||
72 | add ebx, 18 |
||
73 | mov edx, str_MAC |
||
74 | mcall |
||
75 | add ebx, 18 |
||
76 | mov edx, str_queue_in |
||
77 | mcall |
||
78 | add ebx, 18 |
||
79 | mov edx, str_queue_out |
||
80 | mcall |
||
81 | |||
82 | mov ebx,1337 shl 16 + 4 |
||
83 | mov bh, [device] |
||
84 | mcall 75 |
||
85 | push eax |
||
86 | push bx |
||
87 | |||
88 | mov edx, 135 shl 16 + 75 + 4*18 |
||
1192 | hidnplayr | 89 | call draw_mac |
90 | jmp end_of_draw |
||
1171 | hidnplayr | 91 | |
92 | @@: |
||
93 | |||
94 | cmp [mode], 102 |
||
95 | jne @f |
||
96 | |||
97 | mcall 4, 20 shl 16 + 75, 0x80000000, str_packets_tx |
||
98 | add ebx, 18 |
||
99 | mov edx, str_packets_rx |
||
100 | mcall |
||
101 | add ebx, 18 |
||
102 | mov edx, str_ip |
||
103 | mcall |
||
104 | add ebx, 18 |
||
105 | mov edx, str_dns |
||
106 | mcall |
||
107 | add ebx, 18 |
||
108 | mov edx, str_subnet |
||
109 | mcall |
||
110 | add ebx, 18 |
||
111 | mov edx, str_gateway |
||
112 | mcall |
||
113 | |||
114 | |||
115 | mov ebx, 0 shl 16 + 8 |
||
116 | mov bh, [device] |
||
117 | mcall 75 |
||
118 | push eax |
||
119 | |||
120 | dec bl |
||
121 | dec bl |
||
122 | mcall 75 |
||
123 | push eax |
||
124 | |||
125 | dec bl |
||
126 | dec bl |
||
127 | mcall 75 |
||
128 | push eax |
||
129 | |||
130 | dec bl |
||
131 | dec bl |
||
132 | mcall 75 |
||
133 | push eax |
||
134 | |||
135 | mov edx, 135 shl 16 + 75 + 2*18 |
||
136 | call draw_ip |
||
137 | |||
138 | add edx, 18 |
||
139 | call draw_ip |
||
140 | |||
141 | add edx, 18 |
||
142 | call draw_ip |
||
143 | |||
144 | add edx, 18 |
||
145 | call draw_ip |
||
146 | |||
147 | jmp end_of_draw |
||
148 | |||
149 | @@: |
||
150 | |||
151 | cmp [mode], 103 |
||
152 | jne @f |
||
153 | |||
154 | mcall 4, 20 shl 16 + 75, 0x80000000, str_packets_tx |
||
155 | add ebx, 18 |
||
156 | mov edx, str_packets_rx |
||
157 | mcall |
||
158 | add ebx, 18 |
||
159 | mov edx, str_arp |
||
160 | mcall |
||
161 | |||
162 | jmp end_of_draw |
||
163 | |||
164 | @@: |
||
165 | |||
166 | mcall 4, 20 shl 16 + 75, 0x80000000, str_packets_tx |
||
167 | add ebx, 18 |
||
168 | mov edx, str_packets_rx |
||
169 | mcall |
||
170 | |||
171 | end_of_draw: |
||
172 | |||
173 | mcall 12, 2 |
||
174 | |||
175 | jmp draw_stats |
||
176 | |||
177 | mainloop: |
||
178 | |||
179 | mcall 23,50 ; wait for event with timeout (0,5 s) |
||
180 | |||
181 | cmp eax, 1 |
||
182 | je redraw |
||
183 | cmp eax, 2 |
||
184 | je key |
||
185 | cmp eax, 3 |
||
186 | je button |
||
187 | |||
188 | |||
189 | |||
190 | |||
191 | ;------------------------------- |
||
192 | ; |
||
193 | ;------------------------------ |
||
194 | |||
195 | draw_stats: |
||
196 | |||
197 | cmp [mode], 101 |
||
198 | jne not_101 |
||
199 | |||
200 | mov ebx, 1337 shl 16 + 0 |
||
201 | mov bh, [device] |
||
202 | @@: |
||
1192 | hidnplayr | 203 | push ebx |
1171 | hidnplayr | 204 | mcall 75 |
1192 | hidnplayr | 205 | pop ebx |
1171 | hidnplayr | 206 | push eax |
207 | inc bl |
||
208 | cmp bl, 3 |
||
209 | jle @r |
||
210 | |||
1192 | hidnplayr | 211 | inc bl ;5 |
212 | inc bl ;6 |
||
1171 | hidnplayr | 213 | |
214 | @@: |
||
1192 | hidnplayr | 215 | push ebx |
1171 | hidnplayr | 216 | mcall 75 |
1192 | hidnplayr | 217 | pop ebx |
1171 | hidnplayr | 218 | push eax |
219 | inc bl |
||
220 | cmp bl, 7 |
||
221 | jle @r |
||
222 | |||
223 | mov eax, 47 |
||
224 | mov ebx, 0x000a0000 |
||
225 | mov esi, 0x40000000 |
||
226 | mov edi, 0x00bcbcbc |
||
227 | mov edx, 135 shl 16 + 75 + 6*18 |
||
228 | pop ecx |
||
229 | mcall |
||
230 | sub edx, 18 |
||
231 | pop ecx |
||
232 | mcall |
||
233 | sub edx, 2*18 |
||
234 | pop ecx |
||
235 | mcall |
||
236 | sub edx, 18 |
||
237 | pop ecx |
||
238 | mcall |
||
239 | sub edx, 18 |
||
240 | pop ecx |
||
241 | mcall |
||
242 | sub edx, 18 |
||
243 | pop ecx |
||
244 | mcall |
||
245 | |||
246 | jmp mainloop |
||
247 | |||
248 | |||
249 | not_101: |
||
250 | |||
251 | cmp [mode], 102 |
||
252 | jne not_102 |
||
253 | |||
254 | mov ebx, 0 shl 16 |
||
255 | mov bh, [device] |
||
1192 | hidnplayr | 256 | push ebx |
1171 | hidnplayr | 257 | mcall 75 |
1192 | hidnplayr | 258 | pop ebx |
1171 | hidnplayr | 259 | push eax |
260 | inc bl |
||
1192 | hidnplayr | 261 | push ebx |
1171 | hidnplayr | 262 | mcall 75 |
1192 | hidnplayr | 263 | pop ebx |
1171 | hidnplayr | 264 | push eax |
265 | inc bl |
||
266 | |||
267 | mov eax, 47 |
||
268 | mov ebx, 0x000a0000 |
||
269 | mov esi, 0x40000000 |
||
270 | mov edi, 0x00bcbcbc |
||
271 | mov edx, 135 shl 16 + 75 + 18 |
||
272 | pop ecx |
||
273 | mcall |
||
274 | sub edx, 18 |
||
275 | pop ecx |
||
276 | mcall |
||
277 | |||
278 | jmp mainloop |
||
279 | |||
280 | |||
281 | not_102: |
||
282 | |||
283 | cmp [mode], 103 |
||
284 | jne not_103 |
||
285 | |||
286 | mov ebx, 0x0608 shl 16 + 0 |
||
287 | mov bh, [device] |
||
1192 | hidnplayr | 288 | push ebx |
1171 | hidnplayr | 289 | mcall 75 |
1192 | hidnplayr | 290 | pop ebx |
1171 | hidnplayr | 291 | push eax |
292 | inc bl |
||
1192 | hidnplayr | 293 | push ebx |
1171 | hidnplayr | 294 | mcall 75 |
1192 | hidnplayr | 295 | pop ebx |
1171 | hidnplayr | 296 | push eax |
297 | inc bl |
||
1192 | hidnplayr | 298 | push ebx |
1171 | hidnplayr | 299 | mcall 75 |
1192 | hidnplayr | 300 | pop ebx |
1171 | hidnplayr | 301 | push eax |
302 | inc bl |
||
303 | |||
304 | mov eax, 47 |
||
305 | mov ebx, 0x000a0000 |
||
306 | mov esi, 0x40000000 |
||
307 | mov edi, 0x00bcbcbc |
||
308 | mov edx, 135 shl 16 + 75 + 2*18 |
||
309 | pop ecx |
||
310 | mcall |
||
311 | sub edx, 18 |
||
312 | pop ecx |
||
313 | mcall |
||
314 | sub edx, 18 |
||
315 | pop ecx |
||
316 | mcall |
||
317 | |||
318 | jmp mainloop |
||
319 | |||
320 | not_103: |
||
321 | |||
322 | cmp [mode], 104 |
||
323 | jne not_104 |
||
324 | |||
325 | mov ebx, 1 shl 16 + 0 |
||
326 | mov bh, [device] |
||
1192 | hidnplayr | 327 | push ebx |
1171 | hidnplayr | 328 | mcall 75 |
1192 | hidnplayr | 329 | pop ebx |
1171 | hidnplayr | 330 | push eax |
331 | inc bl |
||
1192 | hidnplayr | 332 | push ebx |
1171 | hidnplayr | 333 | mcall 75 |
1192 | hidnplayr | 334 | pop ebx |
1171 | hidnplayr | 335 | push eax |
336 | inc bl |
||
337 | |||
338 | mov eax, 47 |
||
339 | mov ebx, 0x000a0000 |
||
340 | mov esi, 0x40000000 |
||
341 | mov edi, 0x00bcbcbc |
||
342 | mov edx, 135 shl 16 + 75 + 18 |
||
343 | pop ecx |
||
344 | mcall |
||
345 | sub edx, 18 |
||
346 | pop ecx |
||
347 | mcall |
||
348 | |||
349 | jmp mainloop |
||
350 | |||
351 | not_104: |
||
352 | |||
353 | cmp [mode], 105 |
||
354 | jne not_105 |
||
355 | |||
356 | mov ebx, 17 shl 16 + 0 |
||
357 | mov bh, [device] |
||
1192 | hidnplayr | 358 | push ebx |
1171 | hidnplayr | 359 | mcall 75 |
1192 | hidnplayr | 360 | pop ebx |
1171 | hidnplayr | 361 | push eax |
362 | inc bl |
||
1192 | hidnplayr | 363 | push ebx |
1171 | hidnplayr | 364 | mcall 75 |
1192 | hidnplayr | 365 | pop ebx |
1171 | hidnplayr | 366 | push eax |
367 | inc bl |
||
368 | |||
369 | mov eax, 47 |
||
370 | mov ebx, 0x000a0000 |
||
371 | mov esi, 0x40000000 |
||
372 | mov edi, 0x00bcbcbc |
||
373 | mov edx, 135 shl 16 + 75 + 18 |
||
374 | pop ecx |
||
375 | mcall |
||
376 | sub edx, 18 |
||
377 | pop ecx |
||
378 | mcall |
||
379 | |||
380 | jmp mainloop |
||
381 | |||
382 | not_105: |
||
383 | |||
384 | cmp [mode], 106 |
||
385 | jne not_106 |
||
386 | |||
387 | mov ebx, 6 shl 16 + 0 |
||
388 | mov bh, [device] |
||
1192 | hidnplayr | 389 | push ebx |
1171 | hidnplayr | 390 | mcall 75 |
1192 | hidnplayr | 391 | pop ebx |
1171 | hidnplayr | 392 | push eax |
393 | inc bl |
||
1192 | hidnplayr | 394 | push ebx |
1171 | hidnplayr | 395 | mcall 75 |
1192 | hidnplayr | 396 | pop ebx |
1171 | hidnplayr | 397 | push eax |
398 | inc bl |
||
399 | |||
400 | mov eax, 47 |
||
401 | mov ebx, 0x000a0000 |
||
402 | mov esi, 0x40000000 |
||
403 | mov edi, 0x00bcbcbc |
||
404 | mov edx, 135 shl 16 + 75 + 18 |
||
405 | pop ecx |
||
406 | mcall |
||
407 | sub edx, 18 |
||
408 | pop ecx |
||
409 | mcall |
||
410 | |||
411 | jmp mainloop |
||
412 | |||
413 | not_106: |
||
414 | |||
415 | jmp mainloop |
||
416 | |||
417 | key: |
||
418 | mcall 2 |
||
419 | jmp mainloop |
||
420 | |||
421 | |||
422 | button: ; button |
||
423 | mcall 17 ; get id |
||
424 | cmp ah, 1 |
||
425 | je close |
||
426 | mov [mode], ah |
||
427 | jmp redraw |
||
428 | |||
429 | close: |
||
430 | mcall -1 |
||
431 | |||
432 | |||
433 | |||
434 | draw_mac: |
||
435 | |||
436 | mov eax, 47 |
||
437 | mov ebx, 0x00020100 |
||
438 | mov esi, 0x40000000 |
||
439 | mov edi, 0x00bcbcbc |
||
440 | |||
1192 | hidnplayr | 441 | mov cl, [esp+4] |
1171 | hidnplayr | 442 | mcall |
443 | |||
1192 | hidnplayr | 444 | mov cl, [esp+4+1] |
1171 | hidnplayr | 445 | add edx, 15 shl 16 |
446 | mcall |
||
447 | |||
1192 | hidnplayr | 448 | mov cl, [esp+4+2] |
1171 | hidnplayr | 449 | add edx, 15 shl 16 |
450 | mcall |
||
451 | |||
1192 | hidnplayr | 452 | mov cl, [esp+4+3] |
1171 | hidnplayr | 453 | add edx, 15 shl 16 |
454 | mcall |
||
455 | |||
1192 | hidnplayr | 456 | mov cl, [esp+4+4] |
1171 | hidnplayr | 457 | add edx, 15 shl 16 |
458 | mcall |
||
459 | |||
1192 | hidnplayr | 460 | mov cl, [esp+4+5] |
1171 | hidnplayr | 461 | add edx, 15 shl 16 |
462 | mcall |
||
463 | |||
1192 | hidnplayr | 464 | mov eax, [esp] |
465 | add esp, 6+4 |
||
1171 | hidnplayr | 466 | sub edx, 5*15 shl 16 |
467 | |||
1192 | hidnplayr | 468 | jmp eax |
1171 | hidnplayr | 469 | |
470 | |||
471 | draw_ip: |
||
472 | |||
473 | mov eax, 47 |
||
474 | mov ebx, 0x00030000 |
||
475 | mov esi, 0x40000000 |
||
476 | mov edi, 0x00bcbcbc |
||
477 | |||
478 | xor ecx, ecx |
||
479 | |||
480 | mov cl, [esp+4] |
||
481 | mcall |
||
482 | |||
483 | mov cl, [esp+4+1] |
||
484 | add edx, 30 shl 16 |
||
485 | mcall |
||
486 | |||
487 | mov cl, [esp+4+2] |
||
488 | add edx, 30 shl 16 |
||
489 | mcall |
||
490 | |||
491 | mov cl, [esp+4+3] |
||
492 | add edx, 30 shl 16 |
||
493 | mcall |
||
494 | |||
495 | sub edx, 3*30 shl 16 |
||
496 | mov eax, [esp] |
||
497 | add esp, 8 |
||
498 | jmp eax |
||
499 | |||
500 | |||
501 | ; DATA AREA |
||
502 | |||
1192 | hidnplayr | 503 | IM_END: |
1171 | hidnplayr | 504 | |
505 | name db 'Netstat',0 |
||
506 | mode db 101 |
||
507 | device db 0 |
||
508 | modes db 'Ethernet IPv4 ARP ICMP UDP TCP',0 |
||
509 | |||
510 | str_packets_tx db 'Packets sent:',0 |
||
511 | str_packets_rx db 'Packets received:',0 |
||
512 | str_bytes_tx db 'Bytes sent:',0 |
||
513 | str_bytes_rx db 'Bytes received:',0 |
||
514 | str_MAC db 'MAC address:',0 |
||
515 | str_queue_in db 'IN-queue size:',0 |
||
516 | str_queue_out db 'OUT-queue size:',0 |
||
517 | str_ip db 'IP address:',0 |
||
518 | str_dns db 'DNS address:',0 |
||
519 | str_subnet db 'Subnet mask:',0 |
||
520 | str_gateway db 'Standard gateway:',0 |
||
521 | str_arp db 'ARP entrys:',0 |
||
522 | |||
523 | include_debug_strings ; ALWAYS present in data section |
||
524 | |||
525 | I_PARAM rb 1024 |
||
526 | |||
1192 | hidnplayr | 527 | I_END: |
1171 | hidnplayr | 528 |