Newsgroup: it.comp.lang.pascal
Titolo: A QUANTI MILLISECONDI...

Salve a tutti,vorrei sapere a quanti millisecondi corrisponde un secondo con
un P2  300.
Sarei ancora più contento se mi dite come si fa a calcolare.
Grazie
C_L_A_U_D_I_O
-- 
Posted from 
smtp3.libero.it
 [193.70.192.53] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

un P2  300.
1000 (mi sembra +ttosto ovvio).
--
CyberWalkie - walkietalkie(at)
libero.it

> 1000 (mi sembra +ttosto ovvio).
Anche se la durata di un secondo dovrebbe essere indipendente dalla velocità
del processore, in realtà per il tp non è così! :)
Ciao
Alex
--
-------------------------------------
e-mail:  
el_co...@TOGLIQUESTO.libero.it
"CyberWalkie" <cyber...@cyberwalkie.cyb> ha scritto nel messaggio
news:3b4c9a0...@news.libero.it...


Ma allora a quanto corrisponde?


Ma allora a quanto corrisponde?
Aridalle... 1000 ms = 1 s.
--
CyberWalkie - walkietalkie(at)
libero.it

 Aridalle... 1000 ms = 1 s.
Magari... la Delay() non è indipendente dalla velocità della CPU.
Qui a casa ho un P133 :-)), a scuola un PIII1GHz e *non* è la
stessa cosa, me ne sono accorto facendo delle simulazioni.
E poi... disassemblare per credere!
Ciao
Francesco

Ma allora non hai capito che da CPU a CPU varia la quantità di millisecondi
per ogni secondo. Purtroppo nel Pascal è così.
E comunque non ho trovato ancora qualcuno che mi abbia saputo rispondere.


 per ogni secondo.
oh signore cosa devo leggere....
IN OGNI SECONDO CI SONO 1000 MILLISECONDI (altrimenti non
si chiamerebbero millisevondi ?!)
anche con stessa cpu, ma in differenti condizioni di carico del sistema,
varia il
ritardo generato dalla delay( ), perche' questa si basa probabilmente non su
un qualche interrupt/segnale hardware ma su un contatore basato sulla
velocita'
riconosciuta della macchina... poiche' per far andare la crt.tpu sopra i 250
Mhz
circa si deve "patchare" l'algoritmo che valuta la velocita' danneggiando
senza
rimedio il funzionamento della delay, questa non esegue piu' pause della
giusta
durata, piu' grandi o piu' piccole a seconda a) della patch utilizzata b)
del clock
del sistema c) della % di processore utilizzata
--
Dreadnaut (dn)
drea...@liberoDALLASPAM.it
(Life would be easier if I had the source code)


non e' che tra un p4 e un p2 cambi la quantita' di millisecondi per secondo
(che e' sempre mille, infatti si dice "milli"), forse il pascal calcola i
secondi in base al ciclo del clock, che tra un p4 e un p2 e' sicuramente
differente.
--
Ciao
Marchese Gianfranco
e-mail dgruma@NOPUBBLICITA'
tin.it
 (Da togliere NOPUBBLICITA' se vuoi
rispondermi da qui)
sito internet personale: 
www.gian1.cjb.net
     UIN ICQ 117743990
per il reply togliere NOSPAZZATURA

 
ma non sarebbe meglio utilizzare il freepascal??? io ho un p3 da 1ghz ed 
un k6-2 475mhz e se faccio delay(1000) aspetta un secondo su tutti e 2 i 
pc =)
ci volevano 2.000 post???
-- 
Linux... e dove voglio andare oggi, sono caxxi miei

> ma non sarebbe meglio utilizzare il freepascal???
troppo facile... :-)
non e' che nel fpc ci sono i src della delay ? anche (meglio) in asm ?



asm at&t se la vuoi usare il tp ti devi passare un po' di tempo a
convertirla...
ho fatto un prog per provarla
<<< inizio >>>
program delaytest;
var delaycnt: longint;
procedure Delayloop;assembler;
asm
.LDelayLoop1:
        subl    $1,%eax
        jc      .LDelayLoop2
        cmpl    %fs:(%edi),%ebx
        je      .LDelayLoop1
.LDelayLoop2:
end;
procedure initdelay;assembler;
asm
        movl    $0x46c,%edi
        movl    $-28,%edx
        movl    %fs:(%edi),%ebx
.LInitDel1:
        cmpl    %fs:(%edi),%ebx
        je      .LInitDel1
        movl    %fs:(%edi),%ebx
        movl    %edx,%eax
        call    DelayLoop
        notl    %eax
        xorl    %edx,%edx
        movl    $55,%ecx
        divl    %ecx
        movl    %eax,DelayCnt
end;
procedure Delay(MS: Word);assembler;
asm
        movzwl  MS,%ecx
        jecxz   .LDelay2
        movl    $0x400,%edi
        movl    DelayCnt,%edx
        movl    %fs:(%edi),%ebx
.LDelay1:
        movl    %edx,%eax
        call    DelayLoop
        loop    .LDelay1
.LDelay2:
end;
begin
        initdelay;
        write('pippo');
        delay(1000);
        write('pippo');
        readln;
end.
<<< fine >>>
usa una funzione initdelay che testa la velocita' della cpu...
ecco a voi svelato il mistero dei 100 millisecondi contenuti in un
secondo... (ahshashdahshhhadhaah)
--
Windows... dove vuoi crashare oggi