[zxspectrum] Re: Spectrum non funzionante

  • From: "Alessandro" <apoppi@xxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Wed, 23 Jan 2008 23:56:17 +0100

On Wednesday, January 23, 2008 11:25 PM [GMT+1],
Massimo Raffaele <massimo.raffaele@xxxxxxxxxx> wrote:

Ora è il mio turno nel sembrare (e probabilmente
nell'essere) molesto: la procedura funziona anche
su Spectrum 128? Penso di no, dato che c'è uno
switching dei banchi di memoria che rende tutto
più incasinato. Ma sarei felice di essere smentito  :-)

Ti smentisco, ma per un pelo: soltanto da un paio di settimane ho lavorato sul firmware proprio per il supporto al 128K, che prima era quasi del tutto assente. Nella versione attualmente in linea (che puo` essere flashata nell'interfaccia usando zx-com stesso) funziona anche la selezione del banco di ram 128K attivo, per cui puoi fare il dump di tutta la memoria (anche se devi manualmente selezionare il banco desiderato mediante lo spin che si vede sulla sinistra dell'immagine, dove dice '128K Chip'). Nello screenshot e` attivo il banco 0, ovvero quello con i tre bit di selezione tutti a zero. Scaricando 16K dall'indirizzo 49152 si leggera` quel banco.

Non ricordo: con la zxmmc+ è possibile effettuare
anche snapshots 128K (per poterli poi ricaricare, ovviamente) ??

Anche questa e` una funzione aggiunta due settimane fa, ma ha delle limitazioni. La zxmmc+ non implementa infatti uno swap di banco basato su intercettazione di opcode fetch, come accade nel badaloc. Di conseguenza, e` necessario che sia in funzione una delle rom che possono essere programmate nella flash (cosa abbastanza semplice da ottenere, basta farlo partire da una rom di quelle) perche` queste hanno una modifica di qualche byte nell'handler NMI (indirizzo $66) che provvede ad eseguire il salto di banco in software (ed attiva la 'bootrom', nella quale e` programmata la routine per gli snapshot).

Dato che la cpld e` in grado di intercettare un OUT $7FFD e provvede a cambiare il banco di flash attivo pari/dispari (cioe` il bit LSB del n. di banco, che e` 5 bit = 32 banchi) in base al dato scritto su D4, ovvero quello di selezione ROM 0/1 nel 128K, e` possibile programmare le due ROM 0/1 di uno spectrum 128K in due banchi adiacenti di flash e farle girare regolarmente, per poi poter prendere snapshot. La limitazione consiste nel fatto che la ROM 0 non e` (facilmente) modificabile quindi l'NMI ha successo solo se in quel momento e` attiva la ROM 1. Devo dire che durante tutte le prove non mi e` mai capitato di trovare attiva la 0, ma e` comunque una possibilita`.

Se sì, potrebbe essere una gran valida
alternativa alla mia Disciple (che avevo tra
l'altro aggiornato con la nuova ROM che permette gli snapshots 128K)

Diciamo che e` una caratteristica un po` empirica, ma funziona abbastanza bene. Va anche detto che gli snap non vengono scritti in un filesystem standard, cosa che limita un po` ma neanche troppo (tanto poi li devi leggere sempre da li`, e puoi fare un backup della card via seriale oppure leggendola in modo raw con qualche trabiccolo da pc).

Piccola curiosita`: la coppia di rom del 128K funziona anche sul mio gommoso 48K: appare il menu`, entra perfino in modalita` 128K con tanto di editor e possibilita` di scrivere 10 PRINT "PROVA" e vederlo anche funzionare con RUN :-) ma non sono andato oltre.

Ciao!


Other related posts: