>Mi complimento con te ma... francamente mi sfugge il punto. Che cosa >volevi ottenere esattamente? La lettura/scrittura del singolo settore >utilizzando non gli hook codes ma comunque solo chiamate a routine della >ROM ombra (cioè niente accesso diretto alle porte)? Se è così, dato che >comunque non sono programmi portabili, perché non accedere direttamente >alle porte, cosa che ti avrebbe permesso il pieno controllo? Hmm.. sarebbe stato per me troppo complicato (tu ci eri riuscito ?) e sicuramente molto più dispendioso in termini di memoria occupata. Già così se ne vanno 2K più 595 bytes per il buffer su cui lavorare; posso segmentare in sottomoduli la libreria, e risparmiare ancora qualcosa, ma non molto. >Pasticciata in che senso? A me non risulta che la IF1 pasticci alcunché. >Come potrebbe funzionare altrimenti? Non so che dire.. per attivare la ROM uso l'apposita hook code; per rimettere a posto la ROM faccio una call all'indirizzo 1 della shadow, ma mi sono accorto che mi restano 2 word di troppo nello stack. Un paio di POP rimettono tutto in quadro. >> - 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". > >Ottimo! Questo comunque è già un livello abbastanza più alto. Sto preparando anche un paio di funzioncine un po' più potenti per calcolare le checksum e per convertire le stringhe. >> L'effetto risultante è che caricando lo stesso programma 2 volte posso >> trovarmi 2 programmi diversi tra loro. > >Uhm... non credo di aver capito bene cosa ti succede. Non legge i dati >dal settore sempre allo stesso modo (cioè hai degli errori in lettura) >oppure legge dati corretti ma da settori sempre diversi? E' un'esperimento che mi ha dato il risultato voluto: - carico un piccolo programma BASIC (che sta in un settore) - lo modifico e lo salvo con lo stesso nome ma su un'altro settore Il risultato è che il Microdrive carica il primo che trova, ovvero quello che arriverà per primo alla testina. Non so se il trucco sia di qualche utilità, ma mi ha divertito. >> Ogni settore contiene il nome del cartridge, quindi sarebbe >> ipotizzabile la gestione di "partizioni" identificate con quel campo. > >Oppure subdirectory. Si, ma a un solo livello di profondità. >Potrebbe continuare a funzionare esattamente come prima. Non penso che >tenga conto del nome della cartuccia. Non ricordo se lo visualizza >insieme alla directory. Se sì, non credo comunque che lo vada a >controllare per ogni settore. Credo anch'io. Non so se qualche programma ha mai gestito il microdrive a questo livello in programmi commerciali. L'unica cosa "strana" di cui sono al corrente è questo linguaggio Forth: http://icemark.net/zx/SSD-III/servlet/ssd/title/exact/White%20Lightning/Microdrive%20Manual Che faceva inizializzare il cartridge creando un file grosso come tutta la cartuccia.