>(...) Come dicevo, dipende da cosa si vuole >ottenere e da li' se ne valuta la convenienza o meno. >Non è questione di velocità del computer, dipende dall'architettura del >sistema operativo. I sistemi realtime hanno uno scheduler dei processi >che fornisce garanzie in merito all'esecuzione di codice di una certa >durata entro un certo istante di tempo *reale* fissato. Windows no: >quando il tuo processo viene sospeso, non si sa a priori quando tornerà >esattamente in esecuzione. >Caso tipico: un emulatore si sospende su un timer chiedendo di venir >riattivato dopo 20 ms (corrispondenti a un frame rate di 50 Hz). Sai che >succede? A sistema scarico Windows rischedula con +/- 16 ms di jitter, >costringendo l'applicazione a bilanciare dinamicamente il proprio carico >in modo da compensare per ottenere i 50 fps *medi* desiderati. Se girano >anche altri programmi in background va pure peggio. Ne sono consapevole, i doc di un altro driver del genere, ntpio (ppppdvr.sys parallel and I/O port peek poke driver) danno un'idea dei limiti di questi meccanismi: Some functions take a delay parameter (time in milliseconds between consecutive peeks or pokes). Even though the unit of time is milliseconds probably you get a minimum resolution of about 50 milliseconds. You can get a better resolution by peeking/poking one data item at a time and inserting your own delay. Some functions take an invertmask parameter. Output data are bit-wise XOR'ed before written to the port and input data are bit-wise XOR'ed before stored in the input buffer. If you don't want any bit of data to be inverted supply the value of 0. Some block poke functions take an repeat count parameter. Output buffer is repeatedly output to the port. These functions are provided so that you can, for example, output digital wave forms to a D to A converter to be able to construct an inexpensive function generator. Don't put a large repeat count until you know how long it takes to output the buffer contents once. Your computer may seem to hang if your buffer is large and/or delay time is long and/or the repeat count is large. Pero', forse per ignoranza, penso che in un buon numero di situazioni questa opzione potrebbe essere utile agli smanettoni, permettetemi un'ipotesi estrema (sono abbastanza ignorante in tema di elettronica digitale e con l'analogico sto messo anche peggio): Mettiamo di voler leggere i discketti di un vecchio floppy drive, diciamo un drive da 8 pollici compatibile Shugart e montato su un'interfaccia Kempston, oppure Opus. Non sarebbe possibile costruire un'interfaccia minimale e collegare direttamente un FDC WD1770 a un 'paio' di porte parallele ? L'emulatore, impostato per emulare l'interfaccia dovrebbe "girare" le sole porte di controllo e dati verso l'FDC. Al di la della maggiore lentezza, la comunicazione con il controller risulterebbe impossibile ? _________________________________________________________________ Personalizza la tua vita digitale, scarica i nuovi gadget! http://www.pimpit.it/