La Place des Développeurs bluemsx / openmsx : premiere rom
Bonjour,
J'essaie de faire mon premier Hello world en asm sur Msx.
j'ai suivi la doc de chibiakuma :
version vidéo
https://www.youtube.com/watch?v=jqL9zCZoWUU
version texte
https://www.chibiakumas.com/z80/helloworld.php#LessonH3
Un pb qui m'arrive, est que sous openmsx, le programme sur la rom se lance bien, et sous bluemsx non, je pars sur le prompt, essayé en Online https://www.bluemsx.com/, et sur ma machine.
Une idée ?
J'essaie de faire mon premier Hello world en asm sur Msx.
j'ai suivi la doc de chibiakuma :
version vidéo
https://www.youtube.com/watch?v=jqL9zCZoWUU
version texte
https://www.chibiakumas.com/z80/helloworld.php#LessonH3
Un pb qui m'arrive, est que sous openmsx, le programme sur la rom se lance bien, et sous bluemsx non, je pars sur le prompt, essayé en Online https://www.bluemsx.com/, et sur ma machine.
Une idée ?
Je viens de jeter une œil et je pense que c'est normal que tu retourne au prompt.
J'ai suivi le lien en version texte. Et si ma mémoire est bonne, quand un MSX boot:
1/ il initialise deux trois truc avant de chercher et trouve la RAM.
2/ il scan les slots primaires et étendus pour trouver un entête de cartouche à exécuter en 4000h et 8000h. Quand il trouve l'entête il lance le code à l'adresse du pointeur dans ton cas le pointeur- de l'adresse à éxécuter c'est le: "dw ProgrammStart"
Donc on résume:
1/ Le MSX trouve ta cartouche en 4000h l'entête "AB"
2/ Le MSX charge l'adresse d'exécution de ta cartouche "ProgrammStart" dit autrement: le registre PC du Z80 = PrommStart
3/ Exécution du CALL 006Fh jusqu'au RET qui est juste au dessus du label "PrintString:"
Peux-tu COPIER/COLLER le texte de ton source? parce que sur le site il y a le source en images que j'ai copier ci-dessus, mais dans le fichiers .7z des souces c'est pas exactement le même source.
Du coup c'est compliqué de se prononcer sur le fonctionnement que tu observes et le sources du site.
Désolé de ne pas pouvoir t'aider plus que ça dans l'immédiat.
J'ai suivi le lien en version texte. Et si ma mémoire est bonne, quand un MSX boot:
1/ il initialise deux trois truc avant de chercher et trouve la RAM.
2/ il scan les slots primaires et étendus pour trouver un entête de cartouche à exécuter en 4000h et 8000h. Quand il trouve l'entête il lance le code à l'adresse du pointeur dans ton cas le pointeur- de l'adresse à éxécuter c'est le: "dw ProgrammStart"
Donc on résume:
1/ Le MSX trouve ta cartouche en 4000h l'entête "AB"
2/ Le MSX charge l'adresse d'exécution de ta cartouche "ProgrammStart" dit autrement: le registre PC du Z80 = PrommStart
3/ Exécution du CALL 006Fh jusqu'au RET qui est juste au dessus du label "PrintString:"
Peux-tu COPIER/COLLER le texte de ton source? parce que sur le site il y a le source en images que j'ai copier ci-dessus, mais dans le fichiers .7z des souces c'est pas exactement le même source.
Du coup c'est compliqué de se prononcer sur le fonctionnement que tu observes et le sources du site.
Désolé de ne pas pouvoir t'aider plus que ça dans l'immédiat.
TurboR GT (1Mo), CANON V20! ( en kit, modif 2+ en cours)
Pas encore retrouvés: V9990, Grafx9000, SUNRISE IDE 2x CF, SUNRISE MOONSOUND, FM PAC, MUSIC MODULE, NMS8280, SD SNATCHER,...
J'ai fini par faire un truc encore plus simple, même si j'avais réussi avec Vasm.
J'ai utilisé asMSX, ca simplifie quand même pas mal de choses, comme vu dans les docs du site.
plus besoin du pavé de texte pour définir le header de la rom, il suffit d'indiquer .rom, en gros
mon début de programme donne :
.BIOS ; pour les equates BIOS
.PAGE 1 ; equivalent à org &4000
.ROM ; cartouche
.START INIT
INIT:
et voila. Je trouve pour l'instant plus simple la programmation MSX que celle Thomson TO8,
pour l'instant, mais je n'en suis qu'au début
J'ai utilisé asMSX, ca simplifie quand même pas mal de choses, comme vu dans les docs du site.
plus besoin du pavé de texte pour définir le header de la rom, il suffit d'indiquer .rom, en gros
mon début de programme donne :
.BIOS ; pour les equates BIOS
.PAGE 1 ; equivalent à org &4000
.ROM ; cartouche
.START INIT
INIT:
et voila. Je trouve pour l'instant plus simple la programmation MSX que celle Thomson TO8,
pour l'instant, mais je n'en suis qu'au début
OK, content que tu aime bien coder sur MSX.
Perso j'ai une préférence pour le simple et le directe, donc je reste sur les primitive type ORG, DB, DW, DS.
Je sais que les macros c'est cool, mais j'ai tellement coder sans que j'arrive à m'en passer et USR(n) pour l'appel.
Puis j'ai fini par tout coder pour un lancement depuis un *.COM sous DOS.
Bon courage pour la suite.
Perso j'ai une préférence pour le simple et le directe, donc je reste sur les primitive type ORG, DB, DW, DS.
Je sais que les macros c'est cool, mais j'ai tellement coder sans que j'arrive à m'en passer et USR(n) pour l'appel.
Puis j'ai fini par tout coder pour un lancement depuis un *.COM sous DOS.
Bon courage pour la suite.
TurboR GT (1Mo), CANON V20! ( en kit, modif 2+ en cours)
Pas encore retrouvés: V9990, Grafx9000, SUNRISE IDE 2x CF, SUNRISE MOONSOUND, FM PAC, MUSIC MODULE, NMS8280, SD SNATCHER,...
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie