[zxspectrum] Re: hd

  • From: Roberto Montaruli <rmontaruli@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Fri, 27 Feb 2004 01:28:51 -0800 (PST)

--- Mario Prato <aticatac70@xxxxxxxxxxx> wrote:
> Dunque ragazzi, mi sembra che per la storia dell'interfaccia hd ci stiamo 
> disperdendo un po', cosa ne dite di buttare giu' qualche specifica per 
> quanto riguarda l'hardware? 

Io qui non ho competenza. A me basta solo sapere qual e' la porta da leggere e
scrivere e poi implementiamo le due
readsector() e writesector()
che stanno alla base di tutto quanto.

Quando tutto cio' funziona abbiamo le primitive di base.
La gestione del filesystem e' un qualcosa che usa le readsector() e
writesector() e su questo ci pensiamo con calma.

La mia idea di uno ZXFS e' una cosa del genere, probabilmente non e' una idea
originale perche' l'avro' sicuramente desunta da qualche documentazione.

Ogni settore e' un record di 512K
Il primo byte indica il tipo di settore
i successivi N (con N che puo' essere 2, 3 o 4 a seconda di quanti settori al
massimo vogliamo gestire) e' il numero del successivo settore dello stesso tipo
nella catena dei settori,
i restanti byte del settore sono dati, di natura che dipende dal tipo di
settore.

Per esempio il tipo 00H e' il settore libero, utilizzabile dal filesystem
Un disco vuoto appena formattato sara' una catena di settori liberi.

Il tipo 01H potrebbe essere il settore di tipo directory che contiene l'elenco
dei nomi dei files, ed in questo caso nello spazio dati ci saranno tanti record
uno per ogni file di quella directory, con il nome, la lunghezza, la data di
creazione e il numero di settore in cui il file risiede fisicamente.

Il tipo 02H e' il settore file, contenente i dati veri e propri.

Quando creo un file inserisco un record nel settore della directory, e prelevo
tutti i settori che mi servono dalla lista dei settori liberi, ci metto il mio
file e riconcateno tutto.

Ah, dimenticavo. Il primo settore del disco (con opportuni backup da qualche
parte), contiene i numeri di settore di inizio di tutte le catene, quella dei
settori liberi, quella delle directory, quella dei dati, etc...

E' un sistema semplice, facilmente implementabile, non necessariamente
velocissimo ma chissenefrega, e con relativo spreco di spazio.
C'e' uno spreco certo per ogni settore, ma ogni settore viene usato
praticamente tutto in questo modo.
E la frammentazione non e' un grosso problema.



=====
//
//   In a world without walls and fences
//     you would not need windows and gates. 
//                               (Confucio)
==
P'n'P: http://maicrosoft.italiamac.com

__________________________________
Do you Yahoo!?
Get better spam protection with Yahoo! Mail.
http://antispam.yahoo.com/tools

Other related posts: