0CodErr wrote:
Code:
======================================================================
========== Function 74, Subfunction 8, Get TX byte counter. ==========
======================================================================
Parameters:
* eax = 74 - function number
* bl = 8 - subfunction number
* bh = device number
Returned value:
* eax = Number of bytes sent since device start (lower dword)
-1 on error
* ebx = Number of bytes sent since device start (higher dword)
======================================================================
========== Function 74, Subfunction 9, Get RX byte counter. ==========
======================================================================
Parameters:
* eax = 74 - function number
* bl = 9 - subfunction number
* bh = device number
Returned value:
* eax = Number of bytes received since device start (lower dword)
-1 on error
* ebx = Number of bytes received since device start (higher dword)
What if number of bytes is for example
0x1ffffffff?
Yes, it is an issue.
0CodErr wrote:
Also the function below may have the same problem.
Code:
======================================================================
==== Function 76, Protocol 0 - Ethernet, Subfunction 0, Read MAC. ====
======================================================================
Parameters:
* eax = 76 - function number
* high half of ebx = 0 (Ethernet)
* bh = device number
* bl = 0 (Read MAC)
Returned value:
* eax = -1 on error, otherwise lower bits of MAC
* bx = upper bits of MAC
Edit: Yes, it is also an issue, fix could be to use only lower 2 bytes of EAX for MAC on success.