Rev 551 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 551 | Rev 625 | ||
---|---|---|---|
1 | ; |
1 | ; |
2 | ; ARP Status Monitor |
2 | ; ARP Status Monitor |
3 | ; |
3 | ; |
4 | ; Compile with FASM for Menuet |
4 | ; Compile with FASM for Menuet |
5 | ; |
5 | ; |
6 | ; This program displays the ARP table, and it's settings |
6 | ; This program displays the ARP table, and it's settings |
7 | 7 | ||
8 | use32 |
8 | use32 |
9 | 9 | ||
10 | org 0x0 |
10 | org 0x0 |
11 | 11 | ||
12 | db 'MENUET00' ; 8 byte id |
12 | db 'MENUET00' ; 8 byte id |
13 | dd 38 ; required os |
13 | dd 38 ; required os |
14 | dd START ; program start |
14 | dd START ; program start |
15 | dd I_END ; program image size |
15 | dd I_END ; program image size |
16 | dd 0x100000 ; required amount of memory |
16 | dd 0x100000 ; required amount of memory |
17 | dd 0x00000000 ; reserved=no extended header |
17 | dd 0x00000000 ; reserved=no extended header |
18 | include 'lang.inc' |
18 | include 'lang.inc' |
19 | include '..\..\..\macros.inc' |
19 | include '..\..\..\macros.inc' |
- | 20 | purge mov ; decrease kpack'ed size |
|
20 | 21 | ||
21 | START: ; start of execution |
22 | START: ; start of execution |
22 | call draw_window ; at first, draw the window |
23 | call draw_window ; at first, draw the window |
23 | 24 | ||
24 | still: |
25 | still: |
25 | mov eax,23 ; wait here for event |
26 | mov eax,23 ; wait here for event |
26 | mov ebx,200 ; Time out after 2s |
27 | mov ebx,200 ; Time out after 2s |
27 | mcall |
28 | mcall |
28 | 29 | ||
29 | cmp eax,1 ; redraw request ? |
30 | cmp eax,1 ; redraw request ? |
30 | jz red |
31 | jz red |
31 | cmp eax,2 ; key in buffer ? |
32 | cmp eax,2 ; key in buffer ? |
32 | jz key |
33 | jz key |
33 | cmp eax,3 ; button in buffer ? |
34 | cmp eax,3 ; button in buffer ? |
34 | jz button |
35 | jz button |
35 | 36 | ||
36 | ; read the stack status data, and write it to the screen buffer |
37 | ; read the stack status data, and write it to the screen buffer |
37 | 38 | ||
38 | mov eax, 53 |
39 | mov eax, 53 |
39 | mov ebx, 255 |
40 | mov ebx, 255 |
40 | mov ecx, 200 |
41 | mov ecx, 200 |
41 | mcall |
42 | mcall |
42 | 43 | ||
43 | push eax |
44 | push eax |
44 | mov ebx, text + 24 |
45 | mov ebx, text + 24 |
45 | call printhex |
46 | call printhex |
46 | 47 | ||
47 | mov eax, 53 |
48 | mov eax, 53 |
48 | mov ebx, 255 |
49 | mov ebx, 255 |
49 | mov ecx, 201 |
50 | mov ecx, 201 |
50 | mcall |
51 | mcall |
51 | 52 | ||
52 | mov ebx, text + 64 |
53 | mov ebx, text + 64 |
53 | call printhex |
54 | call printhex |
54 | 55 | ||
55 | 56 | ||
56 | ; Fill the table with blanks |
57 | ; Fill the table with blanks |
57 | mov edx, text + 160 |
58 | mov edi, text + 160 |
58 | doBlank: |
59 | doBlank: |
59 | mov esi, blank |
60 | mov esi, blank |
60 | mov edi, edx |
- | |
61 | mov ecx, 40 |
61 | mov ecx, 40 |
62 | rep movsb |
62 | rep movsb |
63 | add edx, 40 |
- | |
64 | 63 | ||
65 | cmp edx, text + 560 |
64 | cmp edi, text + 560 |
66 | jne doBlank |
65 | jne doBlank |
67 | 66 | ||
68 | pop ecx ; The number of entries |
67 | pop ecx ; The number of entries |
69 | 68 | ||
70 | mov ebx, text+ 160 +1 ; the position for the first IP address line |
69 | mov ebx, text+ 160 +1 ; the position for the first IP address line |
71 | 70 | ||
72 | xor edx, edx ; edx is index into the ARP table |
71 | xor edx, edx ; edx is index into the ARP table |
73 | 72 | ||
74 | cmp ecx, 10 |
73 | cmp ecx, 10 |
75 | jle show_entries |
74 | jle show_entries |
76 | mov ecx, 10 |
75 | mov ecx, 10 |
77 | 76 | ||
78 | 77 | ||
79 | ; The following code is not very efficient; Sorry about that. |
78 | ; The following code is not very efficient; Sorry about that. |
80 | ; ARPSTAT is a debugging tool, so I didn't want to put much effort in |
79 | ; ARPSTAT is a debugging tool, so I didn't want to put much effort in |
81 | show_entries: |
80 | show_entries: |
82 | ; Ecx now holds the number of entries to populate. |
81 | ; Ecx now holds the number of entries to populate. |
83 | ; Ebx holds the place to put the data |
82 | ; Ebx holds the place to put the data |
84 | ; edx is a counter |
83 | ; edx is a counter |
85 | cmp ecx, 0 |
84 | cmp ecx, 0 |
86 | je red |
85 | je red |
87 | 86 | ||
88 | push ecx |
87 | push ecx |
89 | push edx |
88 | push edx |
90 | push ebx |
89 | push ebx |
91 | 90 | ||
92 | 91 | ||
93 | ; select the arp table entry (in edx) |
92 | ; select the arp table entry (in edx) |
94 | mov eax, 53 |
93 | mov eax, 53 |
95 | mov ebx, 255 |
94 | mov ebx, 255 |
96 | mov ecx, 202 |
95 | mov ecx, 202 |
97 | mcall |
96 | mcall |
98 | 97 | ||
99 | ; Read the IP address |
98 | ; Read the IP address |
100 | mov eax, 53 |
99 | mov eax, 53 |
101 | mov ebx, 255 |
100 | mov ebx, 255 |
102 | mov ecx, 203 |
101 | mov ecx, 203 |
103 | mcall |
102 | mcall |
104 | 103 | ||
105 | ; IP in eax. Get the address to put it back |
104 | ; IP in eax. Get the address to put it back |
106 | pop ebx |
105 | pop ebx |
107 | push ebx |
106 | push ebx |
108 | 107 | ||
109 | call writeDecimal ; Extract 1 byte from eax, store it in string |
108 | call writeDecimal ; Extract 1 byte from eax, store it in string |
110 | add ebx, 4 |
109 | add ebx, 4 |
111 | shr eax, 8 |
110 | shr eax, 8 |
112 | call writeDecimal ; Extract 1 byte from eax, store it in string |
111 | call writeDecimal ; Extract 1 byte from eax, store it in string |
113 | add ebx, 4 |
112 | add ebx, 4 |
114 | shr eax, 8 |
113 | shr eax, 8 |
115 | call writeDecimal ; Extract 1 byte from eax, store it in string |
114 | call writeDecimal ; Extract 1 byte from eax, store it in string |
116 | add ebx, 4 |
115 | add ebx, 4 |
117 | shr eax, 8 |
116 | shr eax, 8 |
118 | call writeDecimal ; Extract 1 byte from eax, store it in string |
117 | call writeDecimal ; Extract 1 byte from eax, store it in string |
119 | 118 | ||
120 | add ebx, 4 |
119 | add ebx, 4 |
121 | 120 | ||
122 | ; Now display the 6 byte MAC |
121 | ; Now display the 6 byte MAC |
123 | push ebx |
122 | push ebx |
124 | mov eax, 53 |
123 | mov eax, 53 |
125 | mov ebx, 255 |
124 | mov ebx, 255 |
126 | mov ecx, 204 |
125 | mov ecx, 204 |
127 | mcall |
126 | mcall |
128 | pop ebx |
127 | pop ebx |
129 | 128 | ||
130 | mov ecx, eax |
129 | mov ecx, eax |
131 | 130 | ||
132 | shr eax, 4 |
131 | shr eax, 4 |
133 | and eax, 0x0f |
132 | and eax, 0x0f |
134 | mov al, [eax + hextable] |
133 | mov al, [eax + hextable] |
135 | mov [ebx], al |
134 | mov [ebx], al |
136 | inc ebx |
135 | inc ebx |
137 | mov eax, ecx |
136 | mov eax, ecx |
138 | and eax, 0x0f |
137 | and eax, 0x0f |
139 | mov al, [eax + hextable] |
138 | mov al, [eax + hextable] |
140 | mov [ebx], al |
139 | mov [ebx], al |
141 | inc ebx |
140 | inc ebx |
142 | mov eax, ecx |
141 | mov eax, ecx |
143 | shr eax, 12 |
142 | shr eax, 12 |
144 | and eax, 0x0f |
143 | and eax, 0x0f |
145 | mov al, [eax + hextable] |
144 | mov al, [eax + hextable] |
146 | mov [ebx], al |
145 | mov [ebx], al |
147 | inc ebx |
146 | inc ebx |
148 | mov eax, ecx |
147 | mov eax, ecx |
149 | shr eax, 8 |
148 | shr eax, 8 |
150 | and eax, 0x0f |
149 | and eax, 0x0f |
151 | mov al, [eax + hextable] |
150 | mov al, [eax + hextable] |
152 | mov [ebx], al |
151 | mov [ebx], al |
153 | inc ebx |
152 | inc ebx |
154 | mov eax, ecx |
153 | mov eax, ecx |
155 | shr eax, 20 |
154 | shr eax, 20 |
156 | and eax, 0x0f |
155 | and eax, 0x0f |
157 | mov al, [eax + hextable] |
156 | mov al, [eax + hextable] |
158 | mov [ebx], al |
157 | mov [ebx], al |
159 | inc ebx |
158 | inc ebx |
160 | mov eax, ecx |
159 | mov eax, ecx |
161 | shr eax, 16 |
160 | shr eax, 16 |
162 | and eax, 0x0f |
161 | and eax, 0x0f |
163 | mov al, [eax + hextable] |
162 | mov al, [eax + hextable] |
164 | mov [ebx], al |
163 | mov [ebx], al |
165 | inc ebx |
164 | inc ebx |
166 | mov eax, ecx |
165 | mov eax, ecx |
167 | shr eax, 28 |
166 | shr eax, 28 |
168 | mov al, [eax + hextable] |
167 | mov al, [eax + hextable] |
169 | mov [ebx], al |
168 | mov [ebx], al |
170 | inc ebx |
169 | inc ebx |
171 | mov eax, ecx |
170 | mov eax, ecx |
172 | shr eax, 24 |
171 | shr eax, 24 |
173 | and eax, 0x0f |
172 | and eax, 0x0f |
174 | mov al, [eax + hextable] |
173 | mov al, [eax + hextable] |
175 | mov [ebx], al |
174 | mov [ebx], al |
176 | inc ebx |
175 | inc ebx |
177 | 176 | ||
178 | push ebx |
177 | push ebx |
179 | mov eax, 53 |
178 | mov eax, 53 |
180 | mov ebx, 255 |
179 | mov ebx, 255 |
181 | mov ecx, 205 |
180 | mov ecx, 205 |
182 | mcall |
181 | mcall |
183 | pop ebx |
182 | pop ebx |
184 | 183 | ||
185 | mov ecx, eax |
184 | mov ecx, eax |
186 | 185 | ||
187 | shr eax, 4 |
186 | shr eax, 4 |
188 | and eax, 0x0f |
187 | and eax, 0x0f |
189 | mov al, [eax + hextable] |
188 | mov al, [eax + hextable] |
190 | mov [ebx], al |
189 | mov [ebx], al |
191 | inc ebx |
190 | inc ebx |
192 | mov eax, ecx |
191 | mov eax, ecx |
193 | and eax, 0x0f |
192 | and eax, 0x0f |
194 | mov al, [eax + hextable] |
193 | mov al, [eax + hextable] |
195 | mov [ebx], al |
194 | mov [ebx], al |
196 | inc ebx |
195 | inc ebx |
197 | mov eax, ecx |
196 | mov eax, ecx |
198 | shr eax, 12 |
197 | shr eax, 12 |
199 | and eax, 0x0f |
198 | and eax, 0x0f |
200 | mov al, [eax + hextable] |
199 | mov al, [eax + hextable] |
201 | mov [ebx], al |
200 | mov [ebx], al |
202 | inc ebx |
201 | inc ebx |
203 | mov eax, ecx |
202 | mov eax, ecx |
204 | shr eax, 8 |
203 | shr eax, 8 |
205 | and eax, 0x0f |
204 | and eax, 0x0f |
206 | mov al, [eax + hextable] |
205 | mov al, [eax + hextable] |
207 | mov [ebx], al |
206 | mov [ebx], al |
208 | 207 | ||
209 | ; Now display the stat field |
208 | ; Now display the stat field |
210 | inc ebx |
209 | inc ebx |
211 | inc ebx |
210 | inc ebx |
212 | push ebx |
211 | push ebx |
213 | mov eax, 53 |
212 | mov eax, 53 |
214 | mov ebx, 255 |
213 | mov ebx, 255 |
215 | mov ecx, 206 |
214 | mov ecx, 206 |
216 | mcall |
215 | mcall |
217 | pop ebx |
216 | pop ebx |
218 | 217 | ||
219 | mov ecx, eax |
218 | mov ecx, eax |
220 | 219 | ||
221 | shr eax, 4 |
220 | shr eax, 4 |
222 | and eax, 0x0f |
221 | and eax, 0x0f |
223 | mov al, [eax + hextable] |
222 | mov al, [eax + hextable] |
224 | mov [ebx], al |
223 | mov [ebx], al |
225 | inc ebx |
224 | inc ebx |
226 | mov eax, ecx |
225 | mov eax, ecx |
227 | and eax, 0x0f |
226 | and eax, 0x0f |
228 | mov al, [eax + hextable] |
227 | mov al, [eax + hextable] |
229 | mov [ebx], al |
228 | mov [ebx], al |
230 | inc ebx |
229 | inc ebx |
231 | mov eax, ecx |
230 | mov eax, ecx |
232 | shr eax, 12 |
231 | shr eax, 12 |
233 | and eax, 0x0f |
232 | and eax, 0x0f |
234 | mov al, [eax + hextable] |
233 | mov al, [eax + hextable] |
235 | mov [ebx], al |
234 | mov [ebx], al |
236 | inc ebx |
235 | inc ebx |
237 | mov eax, ecx |
236 | mov eax, ecx |
238 | shr eax, 8 |
237 | shr eax, 8 |
239 | and eax, 0x0f |
238 | and eax, 0x0f |
240 | mov al, [eax + hextable] |
239 | mov al, [eax + hextable] |
241 | mov [ebx], al |
240 | mov [ebx], al |
242 | 241 | ||
243 | ; Now display the TTL field (this is intel word format) |
242 | ; Now display the TTL field (this is intel word format) |
244 | inc ebx |
243 | inc ebx |
245 | inc ebx |
244 | inc ebx |
246 | push ebx |
245 | push ebx |
247 | mov eax, 53 |
246 | mov eax, 53 |
248 | mov ebx, 255 |
247 | mov ebx, 255 |
249 | mov ecx, 207 |
248 | mov ecx, 207 |
250 | mcall |
249 | mcall |
251 | pop ebx |
250 | pop ebx |
252 | 251 | ||
253 | mov ecx, eax |
252 | mov ecx, eax |
254 | 253 | ||
255 | shr eax, 12 |
254 | shr eax, 12 |
256 | and eax, 0x0f |
255 | and eax, 0x0f |
257 | mov al, [eax + hextable] |
256 | mov al, [eax + hextable] |
258 | mov [ebx], al |
257 | mov [ebx], al |
259 | inc ebx |
258 | inc ebx |
260 | mov eax, ecx |
259 | mov eax, ecx |
261 | shr eax, 8 |
260 | shr eax, 8 |
262 | and eax, 0x0f |
261 | and eax, 0x0f |
263 | mov al, [eax + hextable] |
262 | mov al, [eax + hextable] |
264 | mov [ebx], al |
263 | mov [ebx], al |
265 | inc ebx |
264 | inc ebx |
266 | mov eax, ecx |
265 | mov eax, ecx |
267 | shr eax, 4 |
266 | shr eax, 4 |
268 | and eax, 0x0f |
267 | and eax, 0x0f |
269 | mov al, [eax + hextable] |
268 | mov al, [eax + hextable] |
270 | mov [ebx], al |
269 | mov [ebx], al |
271 | inc ebx |
270 | inc ebx |
272 | mov eax, ecx |
271 | mov eax, ecx |
273 | and eax, 0x0f |
272 | and eax, 0x0f |
274 | mov al, [eax + hextable] |
273 | mov al, [eax + hextable] |
275 | mov [ebx], al |
274 | mov [ebx], al |
276 | 275 | ||
277 | 276 | ||
278 | pop ebx |
277 | pop ebx |
279 | add ebx, 40 |
278 | add ebx, 40 |
280 | pop edx |
279 | pop edx |
281 | inc edx |
280 | inc edx |
282 | pop ecx |
281 | pop ecx |
283 | dec ecx |
282 | dec ecx |
284 | jmp show_entries |
283 | jmp show_entries |
285 | 284 | ||
286 | red: ; redraw |
285 | red: ; redraw |
287 | call draw_window |
286 | call draw_window |
288 | jmp still |
287 | jmp still |
289 | 288 | ||
290 | key: ; Keys are not valid at this part of the |
289 | key: ; Keys are not valid at this part of the |
291 | mov eax,2 ; loop. Just read it and ignore |
290 | mov eax,2 ; loop. Just read it and ignore |
292 | mcall |
291 | mcall |
293 | jmp still |
292 | jmp still |
294 | 293 | ||
295 | button: ; button |
294 | button: ; button |
296 | mov eax,17 ; get id |
295 | mov eax,17 ; get id |
297 | mcall |
296 | mcall |
298 | 297 | ||
299 | cmp ah,1 ; button id=1 ? |
298 | cmp ah,1 ; button id=1 ? |
300 | jnz still |
299 | jnz still |
301 | 300 | ||
302 | mov eax,0xffffffff ; close this program |
301 | mov eax,0xffffffff ; close this program |
303 | mcall |
302 | mcall |
304 | - | ||
305 | jmp still |
- | |
306 | - | ||
307 | 303 | ||
308 | 304 | ||
309 | writeDecimal: |
305 | writeDecimal: |
310 | pusha |
306 | pusha |
311 | and eax, 0xff |
307 | and eax, 0xff |
312 | mov ecx, eax |
- | |
313 | mov dl, 100 |
308 | mov dl, 100 |
314 | div dl |
309 | div dl |
315 | mov cl, ah |
310 | movzx ecx, ah |
316 | add al, '0' |
311 | add al, '0' |
317 | mov [ebx], al |
312 | mov [ebx], al |
318 | inc ebx |
313 | inc ebx |
319 | mov eax, ecx |
314 | mov eax, ecx |
320 | mov dl, 10 |
315 | mov dl, 10 |
321 | div dl |
316 | div dl |
322 | mov cl, ah |
- | |
323 | add al, '0' |
317 | add ax, '00' |
324 | mov [ebx], al |
- | |
325 | inc ebx |
- | |
326 | mov al, ah |
- | |
327 | add al, '0' |
- | |
328 | mov [ebx], al |
318 | mov [ebx], ax |
329 | popa |
319 | popa |
330 | ret |
320 | ret |
331 | 321 | ||
332 | 322 | ||
333 | ; ********************************************* |
323 | ; ********************************************* |
334 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
324 | ; ******* WINDOW DEFINITIONS AND DRAW ******** |
335 | ; ********************************************* |
325 | ; ********************************************* |
336 | 326 | ||
337 | 327 | ||
338 | draw_window: |
328 | draw_window: |
339 | 329 | ||
340 | mov eax,12 ; function 12:tell os about windowdraw |
330 | mov eax,12 ; function 12:tell os about windowdraw |
341 | mov ebx,1 ; 1, start of draw |
331 | mov ebx,1 ; 1, start of draw |
342 | mcall |
332 | mcall |
343 | 333 | ||
344 | ; DRAW WINDOW |
334 | ; DRAW WINDOW |
345 | mov eax,0 ; function 0 : define and draw window |
335 | mov eax,0 ; function 0 : define and draw window |
346 | mov ebx,100*65536+280 ; [x start] *65536 + [x size] |
336 | mov ebx,100*65536+280 ; [x start] *65536 + [x size] |
347 | mov ecx,100*65536+270 ; [y start] *65536 + [y size] |
337 | mov ecx,100*65536+270 ; [y start] *65536 + [y size] |
348 | mov edx,0x14224466 ; color of work area RRGGBB |
338 | mov edx,0x14224466 ; color of work area RRGGBB |
349 | mov edi,title ; WINDOW LABEL |
339 | mov edi,title ; WINDOW LABEL |
350 | mcall |
340 | mcall |
351 | 341 | ||
352 | 342 | ||
353 | ; Re-draw the screen text |
343 | ; Re-draw the screen text |
354 | cld |
344 | cld |
355 | mov eax,4 |
345 | mov eax,4 |
356 | mov ebx,25*65536+35 ; draw info text with function 4 |
346 | mov ebx,25*65536+35 ; draw info text with function 4 |
357 | mov ecx,0xffffff |
347 | mov ecx,0xffffff |
358 | mov edx,text |
348 | mov edx,text |
359 | mov esi,40 |
349 | mov esi,40 |
360 | newline: |
350 | newline: |
361 | mcall |
351 | mcall |
362 | add ebx,16 |
352 | add ebx,16 |
363 | add edx,40 |
353 | add edx,esi |
364 | cmp [edx],byte 'x' |
354 | cmp [edx],byte 'x' |
365 | jnz newline |
355 | jnz newline |
366 | 356 | ||
367 | 357 | ||
368 | mov eax,12 ; function 12:tell os about windowdraw |
358 | mov eax,12 ; function 12:tell os about windowdraw |
369 | mov ebx,2 ; 2, end of draw |
359 | mov ebx,2 ; 2, end of draw |
370 | mcall |
360 | mcall |
371 | 361 | ||
372 | ret |
362 | ret |
373 | 363 | ||
374 | ; Taken from PS.ASM |
364 | ; Taken from PS.ASM |
375 | printhex: |
365 | printhex: |
376 | ; number in eax |
366 | ; number in eax |
377 | ; print to ebx |
367 | ; print to ebx |
378 | ; xlat from hextable |
368 | ; xlat from hextable |
379 | pusha |
369 | pusha |
380 | mov esi, ebx |
370 | mov esi, ebx |
381 | add esi, 8 |
371 | add esi, 8 |
382 | mov ebx, hextable |
372 | mov ebx, hextable |
383 | mov ecx, 8 |
373 | mov ecx, 8 |
384 | phex_loop: |
374 | phex_loop: |
385 | mov edx, eax |
375 | mov edx, eax |
386 | and eax, 15 |
376 | and eax, 15 |
387 | xlatb |
377 | xlatb |
388 | mov [esi], al |
378 | mov [esi], al |
389 | mov eax, edx |
379 | mov eax, edx |
390 | shr eax, 4 |
380 | shr eax, 4 |
391 | dec esi |
381 | dec esi |
392 | loop phex_loop |
382 | loop phex_loop |
393 | popa |
383 | popa |
394 | ret |
384 | ret |
395 | 385 | ||
396 | 386 | ||
397 | ; DATA AREA |
387 | ; DATA AREA |
398 | 388 | ||
399 | text: |
389 | text: |
400 | db ' Number of ARP entries: xxxxxxxx ' |
390 | db ' Number of ARP entries: xxxxxxxx ' |
401 | db ' Maximum # of entries : xxxxxxxx ' |
391 | db ' Maximum # of entries : xxxxxxxx ' |
402 | db ' ' |
392 | db ' ' |
403 | db ' IP Address MAC Stat TTL ' |
393 | db ' IP Address MAC Stat TTL ' |
404 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
394 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
405 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
395 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
406 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
396 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
407 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
397 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
408 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
398 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
409 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
399 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
410 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
400 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
411 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
401 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
412 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
402 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
413 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
403 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
414 | db 'x <- END MARKER, DONT DELETE ' |
404 | db 'x' ; <- END MARKER, DONT DELETE |
415 | 405 | ||
416 | 406 | ||
417 | blank: |
407 | blank: |
418 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
408 | db ' xxx.xxx.xxx.xxx xxxxxxxxxxxx xxxx xxxx ' |
419 | 409 | ||
420 | 410 | ||
421 | title db 'ARP Table ( First 10 Entries )',0 |
411 | title db 'ARP Table ( First 10 Entries )',0 |
422 | 412 | ||
423 | hextable db '0123456789ABCDEF' |
413 | hextable db '0123456789ABCDEF' |
424 | 414 | ||
425 | 415 | ||
426 | I_END:-> |
416 | I_END:-> |
427 | - | ||
428 | - | ||
429 | - | ||
430 | - | ||
431 | - | ||
432 | - |