L'atelier Entête des ROMs
Fabf
Membre non connecté
Conseiller Municipal
Reprise du message précédent
C'est pour ça que j'ai commencé à regarder du coté des entêtes pour voir s'il n'en existait pas d'autres.Comme le MSX semble prévu pour un telle extension, une entête particulière aurait pu exister.
Pour le reste GDX a sans doute d'autres chose à faire que de se lancer dans un projet si hasardeux.
Le mystère NEOS finira bien par être percé un jour
SveN :
#FCC1 est en RAM. Cette variable système est définie par le bios lors du démarrage de la machine et ne doit servir qu'à stocker l'état du slot.0.
La machine démarre inévitablement en slot 0 ou 0-0, et se "contente" de stocker le caractère étendu ou non de ce slot.
"Déplacer" le bios en modifiant le contenu de cette adresse m'apparaît impossible.
La machine démarre inévitablement en slot 0 ou 0-0, et se "contente" de stocker le caractère étendu ou non de ce slot.
"Déplacer" le bios en modifiant le contenu de cette adresse m'apparaît impossible.
En regardant le texte japonais de plus près, il y a la réponse à la question de Fabf. Le texte dit bien que la ROM principale (BIOS + Basic) d'un MSX est toujours en slot 0 ou 0-0 mais ajoute qu'il y a une exception avec l'extension MSX2 qui contient un V9938 et une ROM contenant un Basic MSX2 et une subROM. L'emplacement de ce Basic est dans ce cas indiqué par FCC1h et celui de la subROM par FAF8h. Le texte termine par la remarque : FAF8h contient la valeur 0 sur les MSX1.
C'est bizarre car d'après ce qui est écrit le Bios ne changerait pas !
Fabf :
J'ai mis la ROM MSX2 en slot 1 et la SUBROM en slot 2 (slots non étendus)
J'ai tapé :
poke &hfcc1,1
poke &hfaf8,2
J'ai tapé :
poke &hfcc1,1
poke &hfaf8,2
Il faut couper les interruptions pour essayer: Essaye en exécutant les 2 instructions sur la même ligne.
Fabf
Membre non connecté
Conseiller Municipal
J'ai testé les 2 instructions sur la même ligne mais rien de mieux.
Qu'entends tu par couper les interruptions ?
Qu'entends tu par couper les interruptions ?
Fabf :
Qu'entends tu par couper les interruptions ?
Utiliser les instructions en assembleur :
DI pour arrêter les interruptions du processeur
EI pour les rétablir.
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)
Fabf
Membre non connecté
Conseiller Municipal
Ok donc le prog serait :
DI
LD &c1fc,1
LD &f8fa,2
EI
RET
Je suis proche de l'état zéro en ASM
DI
LD &c1fc,1
LD &f8fa,2
EI
RET
Je suis proche de l'état zéro en ASM
Plutôt :
Car on ne peut pas charger directement une adresse avec une valeur, il faut passer par l'accumulateur.
Code :
DI
LD A,1
LD ($C1FC),A
INC A
LD ($F8FA),A
EI
RET
Car on ne peut pas charger directement une adresse avec une valeur, il faut passer par l'accumulateur.
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)
Fabf
Membre non connecté
Conseiller Municipal
Fabf
Membre non connecté
Conseiller Municipal
Commentaire de msxholder sur MRC :
Vdp at adress 88 with 256kb rom
second cartridge with rpc501 and rom 128 kb or vice versa
dos kernel for switch slots
I only go for the real stuff !! no emulator simulator
Vdp at adress 88 with 256kb rom
second cartridge with rpc501 and rom 128 kb or vice versa
dos kernel for switch slots
I only go for the real stuff !! no emulator simulator
Visiteur
Vagabond
Message : 0
J'ai aussi mis mon grain de sel
Espérons que msxholder dumpera la rom NEOS pour te permettre d'avancer dans ton projet Edité par Visiteur Le 01/03/2013 à 15h19
Citation :I guess it means that the NEOS rom should not work in an emulator because it requests a double boot. In an emulator, a reset leads in most cases to a full re-initialisation, with as consequence that the second boot does not give the expected result.
So, dumping the NEOS rom will be only useful for real hardware users.
Here's a similar case : http://msxbanzai.tni.nl/dev/MSX2PLUS.LZH
This MSX2+ SubROM Emulator does not work in blueMSX or openMSX.
So, dumping the NEOS rom will be
Here's a similar case : http://msxbanzai.tni.nl/dev/MSX2PLUS.LZH
Citation :
MSX2+ SubROM Emulator by Ramon van der Winkel
This program enables you to use MSX-BASIC v3.0 in a MSX2 with V9958 Video Display Processor and an external memory expansion.
The internal memory mapper is used for the MSX2+ SubROM, it expects this mapper to reside in Slot 3-3 (Sony HB-F700, etc). Change the value 8F to 8B in MSX2PLUS.LDR if your RAM is in Slot 3-2 (Philips NMS8245, etc). The program needs additional memory (either a 64kB datacartridge or another memory mapper) in a lower slot (one of the cartridgeslots) which will be used as the main memory.
This program enables you to use MSX-BASIC v3.0 in a MSX2 with V9958 Video Display Processor and an external memory expansion.
The internal memory mapper is used for the MSX2+ SubROM, it expects this mapper to reside in Slot 3-3 (Sony HB-F700, etc). Change the value 8F to 8B in MSX2PLUS.LDR if your RAM is in Slot 3-2 (Philips NMS8245, etc). The program needs additional memory (either a 64kB datacartridge or another memory mapper) in a lower slot (one of the cartridgeslots) which will be used as the main memory.
Espérons que msxholder dumpera la rom NEOS pour te permettre d'avancer dans ton projet Edité par Visiteur Le 01/03/2013 à 15h19
Fabf
Membre non connecté
Conseiller Municipal
Merci pour ton aide mars2000, c'est vraiment pas mal le truc de Ramon van der Winkel
J'ai pas pu le tester faute de machine répondant à la config demandée.
Une petite question pour Jipe maintenant
J'ai fais une carte avec une eprom 32ko sur laquelle j'ai utilisé /SLTSL et non pas /CS01
Elle fonctionne parfaitement avec le SUBBIOS MSX2+
Est ce que je peux faire pareil pour la ROM MSX2+ ou dois je obligatoirement utiliser /CS01
Merci
J'ai pas pu le tester faute de machine répondant à la config demandée.
Une petite question pour Jipe maintenant
J'ai fais une carte avec une eprom 32ko sur laquelle j'ai utilisé /SLTSL et non pas /CS01
Elle fonctionne parfaitement avec le SUBBIOS MSX2+
Est ce que je peux faire pareil pour la ROM MSX2+ ou dois je obligatoirement utiliser /CS01
Merci
CS01 n'est pas disponible dans toutes machines
pour une eprom 32k allant de 0000H a 7FFFH il faut utiliser /SLTSL
pour une eprom 32k allant de 4000H a BFFFH il faut utiliser /CS12 ( cas d'un jeu 32 k )
pour une eprom 32k allant de 0000H a 7FFFH il faut utiliser /SLTSL
pour une eprom 32k allant de 4000H a BFFFH il faut utiliser /CS12 ( cas d'un jeu 32 k )
Visiteur
Vagabond
Message : 0
Mes tests avec le MSX2+ SubROM Emulator étaient incorrects. J'avais créé dans blueMSX un HB-700P modifié avec V9958 et 512 Kb (*) de RAM externe en slot 1. Ce qui m'a induit en erreur, c'est le fait qu'après le reset provoqué par le programe MSX2PLUS.LDR, l'écran indiquait toujours "MSX BASIC version 2.0". J'avais oublié que ce message vient du BIOS principal et que le MSX2+ SubROM Emulator utilise uniquement l'extension du BIOS pour MSX2+.
Le programme suivant fonctionne, le BASIC du MSX2+ est donc bien émulé :
(*) cela marche aussi avec 64 Kb de RAM externe
Dès lors, on peut peut-être s'attendre à quelque chose de semblable avec NEOS (BASIC du MSX2 émulé mais écran indiquant toujours "MSX BASIC version 1.0" après reset) ???? Edité par Visiteur Le 01/03/2013 à 15h58
Le programme suivant fonctionne, le BASIC du MSX2+ est donc bien émulé :
Code :
10 SCREEN 12
20 GOTO 20
(*) cela marche aussi avec 64 Kb de RAM externe
Dès lors, on peut peut-être s'attendre à quelque chose de semblable avec NEOS (BASIC du MSX2 émulé mais écran indiquant toujours "MSX BASIC version 1.0" après reset) ???? Edité par Visiteur Le 01/03/2013 à 15h58
Fabf
Membre non connecté
Conseiller Municipal
J'ai testé effectivement ça marche
Par contre pour la NEOS je m'attends à quelque chose d'autre.
Le MSX2 et le MSX2+ sont assez proche alors qu'il y a quand même une différence plus marquée entre le MSX et le MSX2
Enfin ça peut donner des idées, je vais jeter un oeil sur les octets avant CD de la SUBROM.
Par contre pour la NEOS je m'attends à quelque chose d'autre.
Le MSX2 et le MSX2+ sont assez proche alors qu'il y a quand même une différence plus marquée entre le MSX et le MSX2
Enfin ça peut donner des idées, je vais jeter un oeil sur les octets avant CD de la SUBROM.
la subrom est une subrom tout a fait ordinaire
les octets avant CD sont l'entête du fichier binaire
FE 00 80 FF BF 00 00
FE fichier binaire
00 80 -> 8000 début du fichier
FF BF -> BFFF fin de fichier
00 00 -> start du fichier , ici pas de start
les octets avant CD sont l'entête du fichier binaire
FE 00 80 FF BF 00 00
FE fichier binaire
00 80 -> 8000 début du fichier
FF BF -> BFFF fin de fichier
00 00 -> start du fichier , ici pas de start
Fabf
Membre non connecté
Conseiller Municipal
voici en gros
ligne 60 c'est pour installer le basic en C000 afin de charger le .bin en RAM a 8000
lignes 170 et plus patchent la rom qui est en RAM
A769H , DBH
A76AH , F4H
A76BH , 00H
A76CH ,C9H
A76F , 00H
A770 , D3H
A771 , F4H
A772 , C9H
ligne 110 et plus recopient la RAM dans la cartouche 64K en 4000H et fait un reset
j'ai regardé de plus prés le patch
IN A,(F4H)
NOP
RET
NOP
OUT (F4),A
RET
ligne 60 c'est pour installer le basic en C000 afin de charger le .bin en RAM a 8000
lignes 170 et plus patchent la rom qui est en RAM
A769H , DBH
A76AH , F4H
A76BH , 00H
A76CH ,C9H
A76F , 00H
A770 , D3H
A771 , F4H
A772 , C9H
ligne 110 et plus recopient la RAM dans la cartouche 64K en 4000H et fait un reset
j'ai regardé de plus prés le patch
IN A,(F4H)
NOP
RET
NOP
OUT (F4),A
RET
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie