flat assembler
Message board for the users of flat assembler.

Index > MenuetOS > UDP packets sending

Goto page Previous  1, 2
Author
Thread Post new topic Reply to topic
Mike Hibbett



Joined: 02 Sep 2003
Posts: 88
Location: UK
Mike Hibbett 01 Sep 2004, 11:20
Well, I found the problem with the sis900 driver.

If you look in the source file sis900.inc, you will find these lines at the end of the transmit code:

;****make sure packet transmitted successfully****
mov esi,10
call delay_ms

There are your 10ms :o)

I cannot test removing or reducing this delay, but you might like to experiment yourself, until I hear back from the author.

Mike.
Post 01 Sep 2004, 11:20
View user's profile Send private message AIM Address Reply with quote
dvorakvik



Joined: 06 Feb 2004
Posts: 19
Location: Praha - Czech Republic - Europe
dvorakvik 01 Sep 2004, 13:13
Dear Mike,

many thanks for revisiting the SIS900.INC driver.

Commenting the lines 1034, 1035 etc
;****make sure packet transmitted successfully****
; mov esi,10
; call delay_ms

SOLVES THE SIS900.INC driver problem.

Now Realtek 8029, Realtek 8139 and SiS900 based drivers behaved similar. Time delay between two UDP packets cca 85 microseconds with MIKE.ASM test program. <For others see above for download>

Viktor
Post 01 Sep 2004, 13:13
View user's profile Send private message Reply with quote
Matrix



Joined: 04 Sep 2004
Posts: 1166
Location: Overflow
Matrix 07 Sep 2004, 23:50
dvorakvik wrote:
Using 10 msec delay ebx = 1 function 5 int 0x40 solves the problem ...
Now I try to short this delay using my own RDTSC based delay loop.

Viktor

hey, how can u count on RDTSC? it is not present on 486 and oldre processors, and how do you determine the divisor? - the accurate cpu frequency, i give u an advise: use pit timer directly Smile
MATRIX
Post 07 Sep 2004, 23:50
View user's profile Send private message Visit poster's website Reply with quote
dvorakvik



Joined: 06 Feb 2004
Posts: 19
Location: Praha - Czech Republic - Europe
dvorakvik 08 Sep 2004, 18:20
Look at Intel HW manuals. Shortly newer processors all have RDTSC 64long binary couter, which counts CPU clock frequency RDTSC => EAX = LSB EDX => MSB.

This is the most precise timing at CPU.

Viktor
Post 08 Sep 2004, 18:20
View user's profile Send private message Reply with quote
Matrix



Joined: 04 Sep 2004
Posts: 1166
Location: Overflow
Matrix 08 Sep 2004, 23:59
dvorakvik wrote:
Look at Intel HW manuals. Shortly newer processors all have RDTSC 64long binary couter, which counts CPU clock frequency RDTSC => EAX = LSB EDX => MSB.

This is the most precise timing at CPU.

Viktor


look at my other thread about timing
http://board.flatassembler.net/topic.php?t=2207

MATRIX
Post 08 Sep 2004, 23:59
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum


Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.