[zxspectrum] Re: FAT ZXMMC+

  • From: "Eugenio Ciceri" <eugenio.ciceri@xxxxxxxxx>
  • To: "zxspectrum" <zxspectrum@xxxxxxxxxxxxx>
  • Date: Fri, 15 Feb 2008 22:05:19 +0100

> Eugenio Ciceri wrote:
> > Ciao a tutti!
> >
> > Ultimamente mi sono dilettato a studiare e smanacciare un po' il firmware 
> > della ZXMMC+ (bootrom) e sono stato catturato dalla programmomania come ai 
> > vecchi tempi.
> >
> Attento, prevedo notti insonni... :-)

Io in effetti le sto già vedendo.
Già solo lo studio e la modifica dell'attuale bootrom mi ha fatto dormire otto 
ore in tre giorni.
Per fortuna si trattava del week end scorso :-)



[...]
> L'unico (grosso) problema che vedo fin qui è la selezione delle immagini
> dei microdrive: come si fa a dire al sistema quale cartuccia-immagine
> usare con gli 8 (?) drive disponibili? Anche usando una SD da 64M ci
> starebbero una valanga di immagini.

In teoria ogni immagine di un microdrive sarebbe un file a sè stante (dal punto 
di vista della FAT) e conterrebbe diversi file (dal punto di vista dello 
Spectrum).
Un po' come i file .TAP usati per le immagini delle cassette.

E' chiaro che si presenterebbe il problema di come gestire l'enorme quantità di 
immagini possibilmente immagazzinate su una SD, ma implementando correttamente 
la gestione delle directory il problema sarebbe delegato alla capacità 
organizzativa dell'utente :-)

Per quanto riguarda le immagini da associare ai singoli microdrive (fino a 8) 
si potrebbe studiare la possibilità di eseguire il mount delle immagini su dei 
microdrive virtuali prima di poterli usare.

Detta così la cosa sembra un badalucco difficile da implementare ;-)
Ma forse non troppo...
In fondo ResiDOS lo fa già usando l'estensione 'tapeio'.
Anche qui si potrebbe chiedere consiglio a Garry.


[...]
> Nessuna idea :(

Enrico mi ha già inviato i sorgenti del suo 'trans express' da PlusD a floppy 
MSDOS.
Nel w.e. gli darò un'occhiata e sicuramente troverò spunti molto utili :-)


[...]
> In effetti c'è ad esempio la libreria "libspectrum", usata fra l'altro
> da Fuse. Ho dato un'occhiata e sembra che il formato sia una banale
> concatenazione di tutti i dati presenti in una cartuccia: due header di
> 15byte, più 513 byte di dati (e relativo checksum), per un totale di 543
> byte.
>
> Moltiplicando per 254 settori (il massimo teorico di una cartuccia)
> otteniamo 137922 byte, ossia un byte in meno di un file immagine .mdr, 
> che credo sia il flag di protezione dalla scrittura.
>
> In sostanza dovrebbe essere molto semplice da gestire!

Sì, lo credo anch'io.
Peccato per quegli header da gestire oltre ai 512 byte contenuti nei settori.
Rendono necessario l'uso di due settori sulla SD per ogni settore sul nastro.
Ma non credo che sarà lo spazio il problema principale ;-)

Comunque, volendosene infischiare della compatibilità con gli emulatori si 
potrebbero spacchettare gli header dai settori e inserirli direttamente nella 
File Allocation Table della SD card.

In questo modo si otterrebbe una SD contenente direttamente i file spectrum 
visibili direttamente dal PC.

Inoltre non si avrebbe più nessuna limitazione dei 137922 bytes per microdrive 
ma la SD stessa sarebbe un enorme microdrive.

Ovviamente in questo caso il numero di microdrive disponibili saebbe davvero 
limitato al numero di slot SD presenti sulla ZXMMC+, ovvero due (per ora? :-)

Ti dirò... forse forse la seconda soluzione è più diretta dal punto di vista 
tecnico e più facile da implementare.

La compatibilità con gli emulatori la si potrebbe garantire eventualmente 
tramite qualche tool lato PC che riassembli i file pescandoli dalla SD e 
infilandoli in una cartuccia virtuale .MDR ricostruendo gli header leggendoli 
dalla FAT.

Ma questa è un'altra storia...


Insomma. Le idee non mancano.

Ora vado a pasticciare un po' con la mia SD card sacrificale sperando di non 
bruciarla subito ai primi esperimenti ;-)

Ciao!

Eugenio




Other related posts: