Forum

Notifiche
Cancella tutti

RAM MSX

5 Post
2 Utenti
1 Reazioni
1,537 Visualizzazioni
Post: 12
Soci Associazione MSX ITA
Inizio argomento
(@daniele)
Eminent Member
Registrato: 3 anni fa

Ciao a tutti,

in che modo è possibile rilevare la memoria RAM disponibile su MSX?

Intendo nel sistema a SLOT e non MEMORY MAPPER.

Vorrei includere la possibilità di rilevare la memoria nella prossima versione del mio compilatore e cercavo del codice già pronto o qualcosa di simile.

 


4 risposte
thegeps
Post: 12
Soci Associazione MSX ITA
(@thegeps)
Active Member
Registrato: 3 anni fa

Intendi la RAM di base dell'MSX, senza possibili espansioni aggiunte ma solo nei suoi slot interni?

Selezioni gli slot uno ad uno e le pagine una ad una. Ogni volta scrivi una sequenza diciamo di 32 caratteri nei primi 32 bytes della pagina selezionata in quello slot. Dooo aver scritto la sequenza, la leggi e vedi se effettivamente te la ritrovi. Se la trovi significa che in quella pagina di quello slot hai RAM installata.

Quindi aggiungi 16K al tuo valore "quantità di RAM" e passi alla pagina successiva. Dopo aver provato tutti e quattro gli slot avrai nella variabile "quantità di RAM" l'esatta quantità di RAM disponibile. Se non ricordo male esiste una routine in asm già pronta all'uso nella wiki di msx resource center, che controlla però tutti gli slot, anche gli esterni

 


Rispondi
3 risposte
Soci Associazione MSX ITA
(@daniele)
Registrato: 3 anni fa

Eminent Member
Post: 12

@thegeps Grazie mille, avevo in mente una cosa simile ma ora che mi hai spiegato ho capito meglio.

Ho provato e funziona quando uso lo slot 3.

Perchè invece quando leggo/scrivo negli altri slot (0-2) con le funzioni RDSLT(#000C) e WRSLT (#0014) si blocca?

 


Rispondi
thegeps
Soci Associazione MSX ITA
(@thegeps)
Registrato: 3 anni fa

Active Member
Post: 12

@daniele RDSLT e WRTSLT disabilitano gli interrupt MA non li riabilitano, quindi dopo il CALL RDSLT e il CALL WRYSLT dovresti mettere un EI per ripristinare gli interrupt. Potrebbe essere questo il motivo


Rispondi
Soci Associazione MSX ITA
(@daniele)
Registrato: 3 anni fa

Eminent Member
Post: 12

@thegeps Ah ok grazie mille.

Però ho visto che si blocca solo quando imposto l'indirizzo in HL maggiore o uguale a 0C000h e lo slot contiene ROM


Rispondi
Condividi: