Condivido i miei successi negli esperimenti con i Microdrive (!!!) Mi è costata una fatica mostruosa, che mi ha rimesso un po' in allenamento :o) In sintesi: - Una funzione "a monte" fa l'autodetect della ROM, inizializza una jump table e, dopo aver "aggiustato" la stack (pasticciata dall'IF stessa) ritorna con la shadow ROM attiva. - Due differenti meccanismi di ricerca caricano un settore in base al numero di settore o all'abbinata nome file/numero record. Una struttura in C permette di referenziarne le parti con la sintassi "myrecord->item". - Il settore può a questo punto essere modificato e salvato (anche in un'altra posizione)... anche se a scrittura avvenuta per ora mi becco un'errore dall'Interface 1 (RamTop error, o similare), probabilmente dovuto al fatto che non correggo le checksum. L'effetto risultante è che caricando lo stesso programma 2 volte posso trovarmi 2 programmi diversi tra loro. Ogni settore contiene il nome del cartridge, quindi sarebbe ipotizzabile la gestione di "partizioni" identificate con quel campo. Farò delle prove, perchè voglio vedere come risponde il comando "CAT" a un trattamento simile :o) Non so ancora fino a che punto posso stravolgere il settore, ma credo che i risultati possano servire per: - Progetto ZXVGS: si basa su un "block driver", ma non so se gestisce i "bad cluster". - Funzioni "fcntl" per Z88DK con gestione dell'accesso casuale in lettura e scrittura e possibilità di aprire indifferentemente file di qualsiasi tipo (PRINT file, arrays, "program" e "bytes"). - Tool per la gestione "avanzata" dei microdrive (ricerche esaustive, mappe, recovery, ecc..) - Trucchi per sfruttare maggiormente lo spazio disponibile su un singolo settore - Tool per il trasferimento preciso dei cartridge da macchina reale a emulatore. P.S. Ho perso un sacco di tempo per un errore stupido (calcolo a=10-a), risolto poi con "NEG A/ADD 10" ...che vergogna !