[zxspectrum] Re: istruzioni caricamento immagine CF

  • From: Stefano Bodrato <stefano_bodrato@xxxxxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Fri, 12 Feb 2010 09:29:40 +0100

 
>(...) 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/

Other related posts: