Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 05:13 15.06.24 
Клубове/ Компютри и Интернет / Програмисти Пълен преглед*
Информация за клуба
Тема Re: asm 3F8H FastReadLPT port ?? [re: Pepe]
АвторEFEX (Нерегистриран) 
Публикувано13.04.07 20:08  



Е толкова мога засега.. тава можах да измъдря...
(единствената оптимизация която се сещам че още може да направя е:
да пиша в стрийма само стоностите на таймера без дължината отпред щото данните ми са еднотипни... преди това имаше друга идея и затова съм сложил байт за дължина)

//=========================================================
procedure TForm1.Button1Click(Sender: TObject);
const b8 = 8;
var
PriorityClass : Integer;
Priority : Integer;
//
i,mi : Int64 ;
bg : TDateTime ;
P : Pointer ;
l : BYTE ;
Pd : ^TDateTime ;
lv : BYTE ;
v : Integer ;
tbg : TLargeInteger ;
begin
if ( Assigned(str) ) then str.Free; // str : TMemoryStream ; //global
str := Nil;
str := TMemoryStream.Create;
str.SetSize(sz); // const sz = 10

Caption := 'Starting...';
i := 0;
mi := SpE.Value; // SpinEdit default value = 1000000
bg := Now;

l := SizeOf(TLargeInteger);
P := @l;
New(Pd);

// bOK := QueryPerformanceFrequency(Res); // Res = 3579545 // 1.6GHz CPU
if not SmallPort1.Opened then SmallPort1.Opened := true; // http://www.qsl.net/om3cph/dds/lpt.html download smport
//
PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
Sleep(10);
//
repeat
lv := SmallPort1.Port[$379];
if ( lv and b8 = b8) then
begin
QueryPerformanceCounter(tbg);
Pd^ := tbg;
str.Write(P^,SizeOf(BYTE));
str.Write(Pd^,l);
while ( SmallPort1.Port[$379] and v8 = v8 ) do
begin
Inc(i);
if i > mi then Break;
end;
end;
Inc(i);
until i > mi;
l := 0;
str.Write(P^,SizeOf(BYTE));
//
SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);
Caption := 'Stoped ' + FormatDateTime('hh:nn:ss:zzz',Now - bg);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
i : Byte ;
ns,lns : TLargeInteger ;
L : TStringList ;
begin
L := TStringList.Create ;
Str.Position := 0;
lns := 0;
repeat
Str.Read(i,SizeOf(Byte));
if ( i > 0 ) then
begin
Str.Read(ns,i);
L.Add(FormatFloat('0',(ns - lns)));
lns := ns;
end;
until i < 1;
Mlog.Lines.Text := L.Text;
end;

(* tova e rezultata pri mi = 10 000 000 ~ 00:00:39:682(time)
4,77354417733907E18
117304983552
117305573376
117306228736
117305704448
117305769984
117305507840
117306359808
117305704448
117305507840
117305376768
117305835520
117306163200
117305376768
117305966592
117305638912
117305573376
117306294272
117305245696
117305769984
117306032128
117305901056
117305114624
117306294272
117305442304
117305638912
117306294272
117305180160
117305704448
117306163200
117305835520
117305769984
117305638912
117305769984
117305507840
117305638912
117305966592
117305507840
117306032128
117305573376
117306032128
117305442304
117305769984
117305704448
117306097664
117305573376
117305573376
117305966592
117305704448
117306097664
117305049088
117306556416
117305049088
117305901056
117306228736
117305769984
117305311232
117305966592
117305573376
117305507840
117305769984
117306294272
117305507840
117306032128
117305638912
117305245696
117306359808
117305507840
117305704448
117305835520
117305376768
117306294272
117305638912
117306163200
117305311232
117305638912
117305376768
117306490880
117305245696
117305507840
*)



Цялата тема
ТемаАвторПубликувано
* asm 3F8H FastReadLPT port ?? EFEX   11.04.07 21:16
. * 379H де EFEX   11.04.07 21:54
. * Re: asm 3F8H FastReadLPT port ?? ike   11.04.07 22:08
. * Re: asm 3F8H FastReadLPT port ?? EFEX   12.04.07 00:15
. * Re: asm 3F8H FastReadLPT port ?? Labrett   12.04.07 11:01
. * Re: asm 3F8H FastReadLPT port ?? EFEX   12.04.07 11:42
. * Re: asm 3F8H FastReadLPT port ?? ike   12.04.07 11:29
. * Re: asm 3F8H FastReadLPT port ?? EFEX   12.04.07 11:55
. * Re: asm 3F8H FastReadLPT port ?? Formal   12.04.07 17:58
. * с 1 мегахерц не, ама с половин може zaphod   12.04.07 18:08
. * Re: с 1 мегахерц не, ама с половин може Pekoнcтpykтop   13.04.07 09:31
. * Re: с 1 мегахерц не, ама с половин може zaphod   13.04.07 18:13
. * наносекунди , как? EFEX   13.04.07 01:49
. * Re: наносекунди , как? zaphod   13.04.07 08:13
. * Re: наносекунди , как? EFEX   15.04.07 01:44
. * Re: наносекунди , как? ike   15.04.07 03:56
. * Re: наносекунди , как? zaphod   15.04.07 08:52
. * Re: наносекунди , как? ike   15.04.07 13:15
. * Re: наносекунди , как? zaphod   15.04.07 13:25
. * Re: наносекунди , как? ike   15.04.07 20:24
. * Re: наносекунди , как? aaaqqq   30.07.07 10:30
. * Re: наносекунди , как? Pepe   21.04.07 15:11
. * Re: наносекунди , как? EFEX   21.04.07 15:41
. * Re: наносекунди , как? Pepe   25.04.07 13:37
. * Re: asm 3F8H FastReadLPT port ?? ike   13.04.07 13:00
. * Re: asm 3F8H FastReadLPT port ?? EFEX   13.04.07 17:48
. * Re: asm 3F8H FastReadLPT port ?? zaphod   13.04.07 18:08
. * Re: asm 3F8H FastReadLPT port ?? Pepe   13.04.07 19:07
. * Re: asm 3F8H FastReadLPT port ?? EFEX   13.04.07 20:08
. * Re: asm 3F8H FastReadLPT port ?? EFEX   13.04.07 20:38
. * Re: asm 3F8H FastReadLPT port ?? EFEX   13.04.07 20:54
. * Re: asm 3F8H FastReadLPT port ?? ebliviq_zaek   26.04.07 22:17
. * Re: asm 3F8H FastReadLPT port ?? Pepe   27.04.07 10:35
. * Re: asm 3F8H FastReadLPT port ?? EFEX   04.05.07 13:52
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.