[zxspectrum] Re: Perche` non turbo con decompressore Huffman?

  • From: Stefano Bodrato <stefano_bodrato@xxxxxxxxxxx>
  • To: "zxspectrum@xxxxxxxxxxxxx" <zxspectrum@xxxxxxxxxxxxx>
  • Date: Wed, 27 Feb 2013 12:24:58 +0100

>Secondo me invece i nastri lo supportano bene. Quello che credevo e` che 
>il loader fosse piu` complicato, ma invece non e` vero: tutto sta nel
>1) captare il fronte d'onda tra le sue semionde,
>2) interpretare il valore del bit a seconda che il fronte sia in salita 
>o discesa, e
>3) aspettare, dopo la lettura del fronte d'onda, il tempo di una 
>semionda per evitare di leggere il fronte d'onda iniziale invece di 
>quello centrale.

Forse ci sono arrivato, ecco le risposte ai 2 dubbi che avevo:

- l'onda risultante grazie allo xor con il clock non dovrebbe soffrire di 
troppi 
problemi di risonanza (ricordi di aver parlato di "frequenza zero" ?).
I problemi sulla semionda che avevo riscontrato con il mio primo turbo 
si risolvono leggendo la *posizione* dell'onda invece che misurando la 
durata del suo periodo.

- come hai notato anche tu (vedi sopra), un loader può essere molto semplice
 perchè basta calibrare il timing del codice e leggere i dati al momento giusto;
 ma in questo modo la velocità motore del registratore diventa molto critica.
 Il loader deve tener conto del fronti d'onda per recuperare il sincronismo,
 ma non è difficile come sembra, perchè (come detto sopra lo xor del clock 
 garantisce uno switch.
 Se prendiamo il disegnino gentilmente fornito da wikipedia: 
  http://en.wikipedia.org/wiki/Manchester_code
 ..il loader per essere stabile anche con le cassette dovrebbe in sequenza:
-- sinconizzarsi con il clock
-- leggere il bit 
-- aspettare poco di più più di una semionda del clock
-- loop sulla prossima sync

Non sono però sicuro che il sorgente che abbiamo visto si occupi di mantenere 
la sincronizzazione: sbaglio ?


                                          

Other related posts: