 |
Generalità |
GENERALITA'
[1 di 1] |
 | La
Gestione del Tempo prevede
7 procedure; per accedere al
dettaglio di ciascuna di esse
selezionare il suo nome nella colonna
interattiva a sinistra o dal seguente elenco:
|
 |
Questa categoria di procedure facilita e
organizza la
gestione dei ritardi e
del tempo, diventata problematica in ambiente Turbo Pascal con
l'avvento dei processori veloci e dei
nuovi sistemi operativi. |
 |
L'uso della procedura
Delay
del Turbo Pascal (Libreria
Crt) non funziona
con Computer basati su
processori veloci dell’ultima
generazione; è ragionevole pensare che per consumare il tempo ci si
affidi all'esecuzione di istruzioni o al
decremento di registri, legando il ritardo introdotto alla
velocità di esecuzione e rendendo quindi inutilizzabile il programma
realizzato (perché non portabile) |
 |
Nella migliore delle ipotesi l'uso della Delay originale
semplicemente non funziona (cioè i tempi
previsti non sono per nulla rispettati e si riducono pressocché a zero...);
ma può succedere di peggio! |
 | Alcune edizioni del Turbo Pascal 7
possono anche
segnalare errore (Runtime Error 200)
non appena si tenta di mettere in esecuzione un programma appena compilato;
sinteticamente lo spiacevole effetto è frutto di una serie di concause:
 | l'elevata velocità del processore chiamato ad eseguire il
programma compilato, cosa oggigiorno inevitabile (dato che i problemi si
fanno sentire a partire da miseri 230 MHz...) |
 | l'utilizzo della
libreria CRT (cosa assolutamente
normale per un programma che abbia un minimo di estetica, certamente per
tutti i sorgenti proposti da questo Sito). |
|
 | L'errore viene dunque segnalato semplicemente per il fatto
che nel sorgente si è
dichiarata la
libreria CRT tra quelle
possibili, dopo la direttiva USES; per la
sua subdola e imprevedibile causa, ha fatto perdere il sonno a più di un
programmatore, ma ha al tempo stesso impegnato altrettanti benefattori a
ricercarne le cause e a cercare di porre rimedio... |
 | Poichè il problema è sentito,
ho voluto dedicargli
scheda, alla quale rimando il lettore toccato
dal problema o semplicemente incuriosito... |
 |
Le prime 3 procedure (Delay0,
Delay1
e
Delay2) sono state create
proprio per risolvere questo problema. |
 |
In particolare
Delay0 è l'unica
assolutamente funzionante, dato che assume le informazioni direttamente dal
Timer di Sistema; ha però il limite di garantire tempi di
ritardo multipli
del tempo
minimo di circa 55
ms, (troppo grande, in certe applicazioni). |
 |
Le altre 2 (Delay1
e
Delay2) assicurano tempi di
ritardo rispettivamente multipli
del tempo
minimo di
1
µs
e di
1 ms, ma
funzionano solo con
sistemi operativi antecedenti a
Windows 2000/NT/XP: l'avvento di questi
ultimi ha, infatti, vanificato la soddisfazione di aver risolto alla grande il
problema. |
 |
Di fatto Windows 2000/NT/XP
non riconoscono più la favolosa
funzione 86H di INT
15H, in grado di realizzare ritardi di straordinaria
precisione, dal minimo
di 976 nanosecondi, fino
a quel momento disponibile in BIOS e sulla quale si basa il loro progetto. |
 |
Per
generare ritardo in modo
affidabile è dunque rimasta solo la Delay0 che, sebbene
poco pratica (poiché realizza ritardi multipli di
55 ms)
è l'unica riconosciuta da tutti i processori e da tutti i sistemi
operativi. Sebbene l'uso delle Delay1/Delay2
garantisca ritardi più precisi (rispettivamente
1
µs
e
1
ms)
il loro funzionamento è garantito con ogni processore ma
non
con i nuovi Win 2000/NT/XP! |
 |
Le 4 procedure rimanenti organizzano la
messa a video dell’Ora e della Data corrente
e la messa a punto dell’Ora e della Data corrente,
assumendo (o modificando) le informazioni direttamente dalla (e nella)
Ram Tamponata Cmos del
Computer Si tratta della memoria presente sulla scheda madre, alimentata da una batteria al litio, necessaria per conservare le
informazioni di Setup, senza le quali nessun Computer può funzionare. |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|