[zxspectrum] Re: R: Re: New Divmmc

  • From: Massimo Raffaele <massimo.raffaele@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Sun, 16 Mar 2014 15:44:44 +0100

>  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

Other related posts: