0,0 → 1,175 |
; |
; ARPmanager for KolibriOS |
; |
; hidnplayr@gmail.com |
; |
|
use32 |
|
org 0x0 |
|
db 'MENUET01' ; 8 byte id |
dd 0x01 ; header version |
dd START ; start of code |
dd IM_END ; size of image |
dd (I_END+0x100) ; memory for app |
dd (I_END+0x100) ; esp |
dd I_PARAM , 0x0 ; I_Param , I_Icon |
|
__DEBUG__ equ 1 |
__DEBUG_LEVEL__ equ 1 |
|
include '..\macros.inc' |
include '..\debug-fdo.inc' |
|
START: ; start of execution |
; TODO: check Parameters |
|
DEBUGF 1, 'Hello!\n' |
|
redraw: |
|
mcall 12, 1 |
|
mcall 0, 100 shl 16 + 520, 100 shl 16 + 240, 0x34bcbcbc, ,name |
|
mcall 4, 25 shl 16 + 31, 0x80000000, title |
|
;; call draw_stats |
|
mcall 12, 2 |
|
jmp draw_stats |
|
mainloop: |
|
mcall 23,50 ; wait for event with timeout (0,5 s) |
|
cmp eax, 1 |
je redraw |
cmp eax, 2 |
je key |
cmp eax, 3 |
je button |
|
|
draw_stats: |
|
mov edx, 50 shl 16 + 50 |
|
.loop: |
mcall 75, 0x06080003, [last],,,ARP_ENTRY |
cmp eax, -1 |
je mainloop |
|
|
mcall 4, edx, 0x80000000, str_entry |
mov edx, ebx |
|
mov eax, 47 |
mov ebx, 0x00030000 |
mov esi, 0x40000000 |
mov edi, 0x00bcbcbc |
xor ecx, ecx |
|
mov cl, byte[ARP_ENTRY.IP+0] |
mcall |
|
mov cl, byte[ARP_ENTRY.IP+1] |
add edx, 24 shl 16 |
mcall |
|
mov cl, byte[ARP_ENTRY.IP+2] |
add edx, 24 shl 16 |
mcall |
|
mov cl, byte[ARP_ENTRY.IP+3] |
add edx, 24 shl 16 |
mcall |
|
|
mov ebx, 0x00020100 |
mov cl, byte[ARP_ENTRY.MAC+0] |
add edx, 36 shl 16 |
mcall |
|
mov cl, byte[ARP_ENTRY.MAC+1] |
add edx, 18 shl 16 |
mcall |
|
mov cl, byte[ARP_ENTRY.MAC+2] |
add edx, 18 shl 16 |
mcall |
|
mov cl, byte[ARP_ENTRY.MAC+3] |
add edx, 18 shl 16 |
mcall |
|
mov cl, byte[ARP_ENTRY.MAC+4] |
add edx, 18 shl 16 |
mcall |
|
mov cl, byte[ARP_ENTRY.MAC+5] |
add edx, 18 shl 16 |
mcall |
|
mov ebx, 0x00040000 |
mov cx, [ARP_ENTRY.Status] |
add edx, 30 shl 16 |
mcall |
|
mov cx, [ARP_ENTRY.TTL] |
add edx, 60 shl 16 |
mcall |
|
add dx, 20 |
rol edx, 16 |
mov dx, 50 |
rol edx, 16 |
inc [last] |
|
jmp .loop |
|
|
key: |
mcall 2 |
jmp mainloop |
|
|
button: ; button |
mcall 17 ; get id |
cmp ah, 1 |
je close |
jmp redraw |
|
close: |
mcall -1 |
|
|
|
; DATA AREA |
|
IM_END: |
|
name db 'ARP manager',0 |
|
title db '# IP-address MAC-address Status TTL',0 |
str_entry db ' . . . - - - - - s',0 |
|
last dd 0 |
|
|
ARP_ENTRY: |
.IP dd 192 shl 0 + 168 shl 8 + 1 shl 16 + 1 shl 24 |
.MAC dp 0xdeadbeef1337 |
.Status dw 0x0300 |
.TTL dw 37 |
.size: |
|
include_debug_strings ; ALWAYS present in data section |
|
I_PARAM rb 1024 |
|
I_END: |
|
|