[zxspectrum] Re: zxmmc+

  • From: "Alessandro" <apoppi@xxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Tue, 26 Aug 2008 22:23:29 +0200

On Sunday, August 24, 2008 12:39 PM [GMT+1],
ZaXxon <davidebressanini@xxxxxxxxxxx> wrote:

quello che risulta meno intuitivo e' il fatto di farsi subito un
backup al primo utilizzo.

A dire il vero non e` mai stato un punto importante per me, avro`
reinstallato il residos un milione di volte. Alla fine si tratta pur sempre
di una roba su supporto 'volatile' e facilmente sovrascrivibile (paragonato
ad una flash) quindi non ho mai fatto troppo affidamento sulla sua
integrita`.

Ci sono programmi che ho scritto per la zxmmc (ad esempio un loop di test di
lettura e scrittura della mmc) che usano la ram come buffer, rendendo
necessaria la reinstallazione del residos.

Quasi subito mi sono reso conto che fosse una buona idea avere l'installer
sotto forma di snapshot, in modo da risparmiarmi il caricamento da nastro.
La soluzione piu` immediata (e banale) e` stata quella di usare una sdcard
per gli snapshot proprietari del badaloc, quindi adatta a salvare
l'installer, mentre l'altra in FAT16 ad uso del residos.

Volendo pero` averne una formattata in IDEDOS e una FAT16 questo non era
piu` possibile, per cui ho aggiunto la possibilita` di salvare un singolo
snapshot in flash (sacrificando 48 dei 512K disponibili, quindi poco male).
Questo snap si effettua premendo il bottone NMI (come al solito) ma poi,
invece di premere i tasti Q, W o E (rispettivamente per snapshot da 16, 48 e
128K) si preme [R]. Lo schermo si sporca per circa 2KB (da qualche parte
devo pur mettere il programma e le variabili, visto che la rom attiva
diventa quella sotto programmazione e quindi il firmware non e` accessibile)
e dopo alcuni secondi tutto torna normale.

(Queste indicazioni sono sintetizzate nella schermata della bootrom, terza
riga dall'alto).

A quel punto, per ripristinare lo snapshot da flashrom trovandosi nel menu`
principale della bootrom (ovvero dopo un reset) occorre premere il tasto 'T'
(non ho potuto usare R perche` gia` assegnato al residos).

Il terzo stadio e` consistito nel permettere di specificare un offset a
partire dal quale la bootrom utilizza la sdcard per il proprio formato raw
degli snapshot. Questo consente di prendere una sdcard abbastanza grande
(es. 512MB), partizionarla in IDEDOS badando di non raggiungere i 256MB e
poi inizializzarla con la bootrom specificando come offset di partenza
+256MB. In questo modo, con due card si possono avere contemporaneamente
partizioni IDEDOS + snapshot proprietari (card 1) e FAT16 (card 2).

Gia` che ci siamo, il formato raw a grandi linee funziona in modo molto
semplice:

I primi 512K sono utilizzati per una sorta di tabella di allocazione. Ogni
entry occupa 64 bytes e corrisponde ad uno snapshot. In questi 64 bytes ci
sono il nome, le dimensioni, lo stato dei registri dello Z80, la
programmazione del joystick (mappatura di 10 ingressi a 10 tasti qualsiasi),
velocita` di clock del processore, orario. (Le ultime tre solo sullo
zx-badaloc).

In un settore da 512 bytes (unita` minima di lettura e scrittura della
sd-card) trovano quindi posto 8 entries, ed infatti la schermata della
bootrom mostra 8 snapshot per volta. Con 512K c'e' posto per 8192 snapshot.

Dopo questo mezzo mega, inizia lo spazio utilizzato dagli snapshot veri e
propri. Per semplificare al massimo la struttura, ogni record ha comunque a
disposizione 128K di spazio sulla card. Se poi lo snapshot e` piu` piccolo
(16 o 48K) il resto non viene utilizzato.

Ho pensato che una card da 1GB che costa pochi euro avra` comunque la
maggior parte di spazio inutilizzato, quindi non mi sono complicato la vita
a scrivere un filesystem vero e proprio.

Da cio` si deduce che: se qualcuno conosce un programma in grado di leggere
un blocco di dati RAW dalla card, senza che questa abbia un filesystem
conosciuto, bastera` salvare l'installer del residos come primo snapshot
della card, dopodiche` occorrera` infilarla in un lettore da PC e recuperare
i primi 512+48K = 560KB, in modo da comprendere la "fat" e la parte utile
del primo snapshot.

Questo file potra` poi essere spedito a zaxxon che fara` l'operazione
inversa.

Anche zx-com permette di leggere e scrivere in formato raw in qualsiasi
punto della card e per qualsiasi dimensione, leggendo e scrivendo in un file
del pc. Peccato sia necessario il famoso cavetto seriale.

Se mi indicate un programma adatto, preparo il file.

Ciao!

Other related posts: