[zxspectrum] Re: StancoReport di una serata con Alessandro(chat) e la ZXMMC

  • From: "Alessandro" <apoppi@xxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Sat, 9 Jun 2007 20:48:52 +0200

On Saturday, June 09, 2007 7:01 PM [GMT+1],
Massimo Raffaele <massimo.raffaele@xxxxxxxxxx> wrote:

solo 8. Immagino di dover fare una cosa del genere anche per la ROM,
visto che il registro $7FFD contiene anche un bit che seleziona un
banco.

Basta disassemblare la ROM della Multiface 128 e scopri il metodo
esatto  :-D Scherzo, immagino la mole di lavoro...  o no?

... Ho finito adesso di scrivere una subroutine che *dovrebbe* rilevare correttamente sia il banco di ram che quello di rom (sia A14 nel registro $7FFD che A15 nel $1FFD).

Non e` in grado di rilevare le modalita` speciali di indirizzamento del $1FFD.

Dato che io ho solo il gommoso, me lo provate su qualche 128 / +2 / +2A / +3 etc etc?

L'ho abbinato ad un header che restituisce il valore in BC, per cui con un PRINT USR 30000 si ottiene il risultato.

Negli 8 bit LSB restituisce il contenuto di $7FFD
Negli 8 bit MSB restituisce il contenuto di $1FFD

In un gommoso ottengo 16 (D4 set = ROM1, per compatibilita` con eventuale 128K, in cui la rom1 e` quella del basic 48K).

Riepilogo dei registri in questione (per capire i risultati):

$1FFD
D2    = high bit rom select (seleziona fra le rom 2/4)
tutti gli altri sono ignorati.
Se SET, il valore restituito aumenta di 1024 (d2 * 256). Dovrebbe esserlo solo su un +2A / +3 con attiva una delle ultime due rom

$7FFD
D4 = low bit rom select (seleziona fra le rom 0/1)
Sul 128K dovrebbe essere alto quando e` attiva la rom 1, cioe` praticamente sempre (credo).

D2,D1,D0 = ram bank select
Questo e` piu` facile da provare:
Selezionate un banco qualsiasi (OUT 32765, #banco) e poi provate a lanciare il PRINT USR 30000.

Occhio: probabilmente il registro 32765 ($7FFD) ha D4 SET per usare la ROM1, che e` quasi sempre attiva, per cui credo che per selezionare il banco (ad esempio) 3 si debba mandare in out 19 (3 + 16, dove 16 e` il D4 SET).

Non so se sono stato abbastanza chiaro... cmq il file lo metto qui: http://www.zxbada.bbk.org/GUESS128.TAP

Prima del caricamento e` opportuno un CLEAR 28000, anche perche` altrimenti cambiando banco si inchioda tutto anche senza bisogno di software addizionale :-)

Ciao e grazie!






Other related posts: