La Place des Développeurs MSX2 MEMORY MAPPER et ROM DE PLUS 32 Ko ???
Sur MSX2 comment est reconnu une ROM 32 Ko en SLOT1 ???
J'ai crée une rom de test commencant en 4000h mais à partir de 8000h elle n'est plus visible dans blue msx en tout cas !!!
le mapper pour un 8250F est toujours d'après blue msx :
0==FB
1==FA
2==F9
3==F8
????
Je m'attendais à voir en 1 et 2 les mêmes valeurs ??
y a t'il quelque chose de particulier pour basculer la partie 2 sur la zone cartouche SLOt1 ???? Edité par 6502man Le 28/07/2018 à 17h16
J'ai crée une rom de test commencant en 4000h mais à partir de 8000h elle n'est plus visible dans blue msx en tout cas !!!
le mapper pour un 8250F est toujours d'après blue msx :
0==FB
1==FA
2==F9
3==F8
????
Je m'attendais à voir en 1 et 2 les mêmes valeurs ??
y a t'il quelque chose de particulier pour basculer la partie 2 sur la zone cartouche SLOt1 ???? Edité par 6502man Le 28/07/2018 à 17h16
sur un vrai msx la rom utilise le signal /cs12 ça veux dire quelle commence en 4000 et termine en BFFF
BlueMSX n'est pas trés performant pour voir les slots il s'arrête a 7FFF !!
utilise SHEM dans une config MSX2
tu le trouveras ici : http://msxvillage.fr/wiki/wiki.php?title=utilitaires-bien-pratiques-pour-msx
BlueMSX n'est pas trés performant pour voir les slots il s'arrête a 7FFF !!
utilise SHEM dans une config MSX2
tu le trouveras ici : http://msxvillage.fr/wiki/wiki.php?title=utilitaires-bien-pratiques-pour-msx
Je reviens sur ce sujet concernant les mappers et notamment comment BlueMsx reconnait le type de mapper ???
Et surtout comment doit être organiser le binaire ".ROM" ????
D'après ce que j'ai trouvé comme infos sur le net cette configuration irait très bien pour ce que je veux faire :
Si j'ai bien compris il suffit d’écrire le numéro de page à l'adresse 4000h ou 6000h ou 8000h ou A000h pour commuter la zone concernée ?
Mais est ce que le binaire est partitionné comme ca pour une cartouche 64Ko :
Et surtout comment doit être organiser le binaire ".ROM" ????
D'après ce que j'ai trouvé comme infos sur le net cette configuration irait très bien pour ce que je veux faire :
Code :
Generic 8
Mapper based on a mix of Konami's MegaROMs. It is used by some emulators. If you use blueMSX, you need to select the Konami Generic mapper.
Bank (8kB) Switching address Initial Page
4000h~5FFFh 4000h (mirrors: 4001h~47FFh, 05000h~077FFh) 0
6000h~7FFFh 6000h (mirrors: 6001h~67FFh, 07000h~077FFh) 1
8000h~9FFFh 8000h (mirrors: 8001h~87FFh, 09000h~097FFh) 2
A000h~BFFFh A000h (mirrors: A001h~A7FFh, 0B000h~0B7FFh) 3
Si j'ai bien compris il suffit d’écrire le numéro de page à l'adresse 4000h ou 6000h ou 8000h ou A000h pour commuter la zone concernée ?
Mais est ce que le binaire est partitionné comme ca pour une cartouche 64Ko :
Code :
OFFSET du binaire PAGE Adresse CPU
----------------- ---- ---------------
0000h-1FFFh : page 0 4000h~5FFFh
2000h-3FFFh : page 0 6000h~7FFFh
4000h-5FFFh : page 0 8000h~9FFFh
6000h-7FFFh : page 0 A000h~BFFFh
8000h-9FFFh : page 1 4000h~5FFFh
A000h-BFFFh : page 1 6000h~7FFFh
C000h-DFFFh : page 1 8000h~9FFFh
E000h-EFFFh : page 1 A000h~BFFFh
une cartouche 64k n'a normalemant pas de mapper , les 64k de la rom sont en ligne dans un slot par pages de 16k non commutables
seules quelques megarom de 64k utilisent un mapper
il faut voir a ce moment une mémoire en tranches de 8k de 4000 a BFFF mais c'est le programme qui affecte les banks dans la page 4000 qui est fixe
un mapper de type generic mapper konami peux sans probléme adresser une cartouche de 512k
seules quelques megarom de 64k utilisent un mapper
il faut voir a ce moment une mémoire en tranches de 8k de 4000 a BFFF mais c'est le programme qui affecte les banks dans la page 4000 qui est fixe
un mapper de type generic mapper konami peux sans probléme adresser une cartouche de 512k
Je ne comprends pas ta question.
Qu'est-ce que tu appelles l'offset du binaire ?
Ton code doit être stocké avec comme adresse de départ l'adresse de ta page une fois qu'elle sera commutée.
Donc si ta page a comme destination finale A000h, ton code doit commencer en A000h.
Qu'est-ce que tu appelles l'offset du binaire ?
Ton code doit être stocké avec comme adresse de départ l'adresse de ta page une fois qu'elle sera commutée.
Donc si ta page a comme destination finale A000h, ton code doit commencer en A000h.
MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
Désolé si j'ai pas était clair dans ma question
Finalement j'ai réussi à faire un binaire .ROM de type mapper Konami 4Ko
Avec les adresses de commutation de page :
Pour une ROM de 64 Ko ca ce réparti comme ca:
Par contre j'ai pas réussi à commuter les pages au dela des premiers 32Ko du binaire avec un binaire de type mapper ASCII 8K ????
mais bon c'est pas grave puisque j'y arrive très bien avec un mapper de type Konami 8K
Finalement j'ai réussi à faire un binaire .ROM de type mapper Konami 4Ko
Avec les adresses de commutation de page :
Code :
Bank 1 NA
Bank 2 6000h
Bank 3 8000h
Bank 4 A000h
Pour une ROM de 64 Ko ca ce réparti comme ca:
Code :
Offset Bits
ROM Mapper
$0000 0
$2000 1
$4000 2
$6000 3
$8000 4
$A000 5
$C000 6
$E000 7
Par contre j'ai pas réussi à commuter les pages au dela des premiers 32Ko du binaire avec un binaire de type mapper ASCII 8K ????
mais bon c'est pas grave puisque j'y arrive très bien avec un mapper de type Konami 8K
Oui c'est ce que j'avais pris comme adresse de commutation mais je ne suis pas arrivé à commuter en mapper ASCII !!!
de toutes façon vu que ca fonctionne très bien en mode Konami je reste sur ce type de mapper
de toutes façon vu que ca fonctionne très bien en mode Konami je reste sur ce type de mapper
MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
Visiteur
Vagabond
Message : 0
Voilà un façon de faire :
Code TEXT :
PGSTART: DI LD SP,0F0F0h ; positionne la pile en F0F0h (l'adresse pile est décrémentée à chaque PUSH, incrémentée à chaque POP) CALL 00138h ; RSLREG Lecture du registre des Slot primaires / bits 6-7 slot plage 3, bits 4-5 slot plage 2, bits 2-3 slot plage 1, bits 0-1 slot plage 0 RRCA RRCA ; deux décalages à droite AND 003h ; on ne conserve que l'information du slot plage 1 LD C,A ; que l'on charge dans C LD B,000h LD HL,0FCC1h ; EXPTBL Indicateur de Slot étendu pour chaque Slot primaire ADD HL,BC ; se place sur l'information slot plage 1 LD A,[HL] ; recupere l'info dans A AND 080h ; ne conserve que le bit de poids le plus fort = Le bit 7 de ces variables est à 1 lorsque le Slot correspondant est étendu en Slot secondaires. OR C ; replace l'info de slot plage 1 dans A LD C,A ; charge l'info dans C INC HL INC HL INC HL INC HL ; se place sur l'information slot secondaire plage 1 LD A,[HL] AND 00Ch OR C LD H,080h ; CALL 00024h ; ENASLT sélectionne le slot (HL=plage à sélectionner, A = Numéro du Slot sous la forme F000SSPP) LD HL,0C000h LD DE,0C001h LD BC,030EFh LD [HL],000h LDIR ; mise à 0 de la mémoire à partir de C000 jusqu'à C000+30EF = F0EF ; positionnement des pages ROM PUSH HL ; sauvegarde HL LD HL,0F0F1h ; adresse de sauvegarde de la page en cours en 06000h LD A,001h LD [LD_6000],A ; charge la page ROM 1 en 06000h LD [HL],A ; enregistre le numéro page ROM 06000h en 0F0F1h INC A LD [LD_8000],A ; charge la page ROM 2 en 08000h INC HL ; enregistre le numéro page ROM 08000h en 0F0F2h LD [HL],A INC A LD [LP_A000],A ; charge la page ROM 3 en 0A000h INC HL ; enregistre le numéro page ROM 0A000h en 0F0F3h LD [HL],A POP HL ; resitue HL EI ; active les interruptions
Merci pour les infos
Pour le code c'est pour un mapper Konami et j'ai fait plus simple :
Pour un mapper Ascii 8K je n'ai pas trouvé d'info concernant l'initialisation dont parle Jipe, mais j'ai une idée que je vais examiner ...
Pour le code c'est pour un mapper Konami et j'ai fait plus simple :
Code :
Main
DI
LD A,$D4 ; SLOT Enable
OUT ($A8),A ; active la zone $8000-bfff
LD A,$01
LD ($6000),A
LD A,$02
LD ($8000),A
LD A,$03
LD ($A000),A
.....
Pour un mapper Ascii 8K je n'ai pas trouvé d'info concernant l'initialisation dont parle Jipe, mais j'ai une idée que je vais examiner ...
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie