La vera differenza è tra DISCiPLE e +D, poiché in quest'ultima il meccanismo di scambio banchi è assente. Immagino che nella mente di chi ha progettato la DISCiPLE lo swap avesse un senso e chi ha scritto il GDOS lo ha utilizzato; per l'utente finale non ha senso scappare, anzi è meglio lasciar fare al DOS le sue cose senza interferire😊 A mio parere Uni-DOS è scritto meglio di GDOS, introduce nuove funzionalità, è modulare e si possono creare comandi personalizzati; tuttavia la quasi totalità delle conversioni su disco usano chiamate standard GDOS e quindi non funzionano con Uni-DOS. La mia routine non sa nulla del sistema che stai usando, semplicemente attiva la DISCiPLE (infatti lo stesso codice non funziona sulla +D), copia all'indirizzo 32768 i primi 16K della memoria e poi disattiva l'interfaccia per tornare al BASIC; poi come sia organizzata la memoria in quel momento (se prima ROM o RAM) dipende dallo stato del sistema… Stefano. Inviata da Windows Mail Da: Massimo Raffaele Data invio: domenica 16 marzo 2014 15:44 A: zxspectrum@xxxxxxxxxxxxx Urka, mi dispiace, non volevo farti fare confusione... Per carità, mea culpa che non ho sufficienti cognizioni! L'essenziale per salvare SU DISCO: 1. il BIOS del GDOS (la ROM): SAVE d1"BIOS" CODE 8192,8192 2. il GDOS (la RAM): SAVE d1"BIOS" CODE 0,6656 3. il BIOS dell'Uni-DOS (la ROM): SAVE d1"BIOS" CODE 0,8192 4. l'Uni-DOS (la RAM): SAVE d1"BIOS" CODE 8192,6656 Non ho mai usato l'Uni-DOS (a proposito, dovrei? E' migliore anche delle ultime versioni del GDOS?). Quindi una delle (immagino varie) differenze tra Uni-DOS e GDOS è il fatto che ROM e RAM sono swappate? Se sì, perché swapparle (o non swapparle)? Salvare SU NASTRO, invece, è leggermente più complicato in quanto hai bisogno di una piccola routine in assembly che si occupa di copiare nella RAM dello Spectrum il contenuto della memoria della DISCiPLE. Una bozza "al volo" può essere questa: 10 CLEAR 29999: FOR f=30000 TO 32017: READ a: POKE f, a: NEXT f 20 DATA 243,219,187,33,0,0,17,0,128,1,0,64,237,176,211,187,251,201 30 RANDOMIZE USR 30000 Una volta eseguite queste 3 linee di BASIC avrai a disposizione il contenuto dell'intera memoria della DISCiPLE all'indirizzo 32768; per sapere dove stanno ROM e RAM usa il seguente schema: - se GDOS NON ERA caricato prima di eseguire il BASIC, la ROM è a 32768 e la RAM (verosimilmente vuota o contenente spazzatura) è a 40960 - se GDOS ERA caricato prima di eseguire il BASIC, la RAM è a 32768 e la ROM è a 40960 - se GDOS ERA caricato ma hai eseguito un doppio reset dello Spectrum senza eseguire comandi GDOS prima di eseguire il BASIC, la ROM è a 32768 e la RAM è a 40960 - se usi Uni-DOS, la ROM è sempre a 32768 e la RAM sempre a 40960 (almeno da BASIC). Se hai bisogno di altri dettagli o se qualcosa non è chiaro fammi un fischio :) Grazie, infatti ti chiedo quanto sotto: :-) Quindi (non conosco il L/M, purtroppo) la tua routine copia sempre prima la ROM (da 32768 a 40959) e poi la RAM subito dopo, contigua (da 40960 a 47615)? Anche nel caso dell'Uni-DOS? (come fa a capire che viene eseguita su un sistema con Uni-DOS?) Altro dubbio: se la ROM viene copiata a partire da 32768, non dovrebbe terminare a 40960? (32768+8192) Grazie! :-) Max