MSX Village forum

La Place des Développeurs Cross developpement : Tests rapides + debug

majikeyric Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 06/10/2015 à 17h46

Messages: 72

Le 26/10/2015 à 14h29

Reprise du message précédent

GDX :
C'est juste parce que le MSX sélectionne les slots un a un pour chercher l'entête des ROM.




Et .... ?

il en trouve une dans le slot cartouche en $4000, alors il bascule la page 1 sur ce slot,

il n'en trouve pas en $8000 et il bascule sur un slot contenant de la RAM pour la page 2 ???



GDX :


Au fait, le registre C contient le numéro de Slot (au format FxxxSSPP) de la ROM lors de son exécution à l'adresse de l'entête. C'est bon à savoir.





Au Start du programme cartouche c contient le numéro de slot ? cool!


Rétro coder fou : Z80 : MSX / Amstrad CPC / ZX Spectrum -- 6502 : C64 / VIC20 -- 68000 : Amiga
Mon site dédié à ma passion pour la programmation : http://majikeyric.free.fr
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 26/10/2015 à 14h54
majikeyric :
Et .... ?

il en trouve une dans le slot cartouche en $4000, alors il bascule la page 1 sur ce slot,

il n'en trouve pas en $8000 et il bascule sur un slot contenant de la RAM pour la page 2 ???




J'avais simplifié l'explication mais plus exactement ça se passe comme ça:



  • Si l'adresse d'execution dans l'entête est entre 0000h~3FFFh, cette plage aura la ROM, la plage C000h~FFFFh aura de la RAM à coup sûr. La plage 8000h~BFFFh aura de la RAM si le MSX a plus de 16Ko. La plage 4000h~7FFFh sera indéterminée.
  • Si l'adresse d'execution dans l'entête est entre 4000h~7FFFh, cette plage aura la ROM, la plage C000h~FFFFh aura de la RAM à coup sûr. La plage 8000h~BFFFh aura de la RAM si le MSX a plus de 16Ko. La plage 0000h~3FFFh aura la Main-ROM (le BIOS).
  • Si l'adresse d'execution dans l'entête est entre 8000h~BFFFh, cette plage aura la ROM, la plage C000h~FFFFh aura de la RAM à coup sûr. La plage 4000h~7FFFh sera indéterminée. La plage 0000h~3FFFh aura la Main-ROM (le BIOS).
  • Si l'adresse d'execution dans l'entête est entre C000h~FFFFh, cette plage aura la ROM, la plage 8000h~BFFFh aura de la RAM je pense. La plage 4000h~7FFFh sera indéterminée. La plage 0000h~3FFFh aura la Main-ROM (le BIOS).





On peut mettre 2 entêtes dans une ROM mais ça ne change pas. Edité par GDX Le 26/10/2015 à 23h41
   
majikeyric Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 06/10/2015 à 17h46

Messages: 72

Le 26/10/2015 à 15h04
Tu as bien déjà assez donné d'informations :top


Rétro coder fou : Z80 : MSX / Amstrad CPC / ZX Spectrum -- 6502 : C64 / VIC20 -- 68000 : Amiga
Mon site dédié à ma passion pour la programmation : http://majikeyric.free.fr
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 26/10/2015 à 23h44
J'ai réédité pour préciser l'explication qui était incomplète.
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie