MSX Village forum

La Place des Développeurs bluemsx / openmsx : premiere rom

camille Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 08/08/2023 à 10h41

Messages: 57

Le 15/09/2023 à 11h26
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 ?
   
camille Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 08/08/2023 à 10h41

Messages: 57

Le 15/09/2023 à 11h33
bon, j'ai trouvé, bluemsx ne détecte pas le type de rom ... j'ai passé en mirrored, et ca fonctionne.
Maintenant, je vais creuser sur les types de rom :)
   
z80 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 17/05/2013 à 22h52

Messages: 987

Le 15/09/2023 à 14h51
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"

Hello3_1_
Hello3_2_
Hello3_3
Hello3_4_
Hello3_5_
Hello3_6_

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) :top
Pas encore retrouvés: V9990, Grafx9000, SUNRISE IDE 2x CF, SUNRISE MOONSOUND, FM PAC, MUSIC MODULE, NMS8280, SD SNATCHER,... :\'(
   
camille Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 08/08/2023 à 10h41

Messages: 57

Le 15/09/2023 à 15h56
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 :)



   
z80 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 17/05/2013 à 22h52

Messages: 987

Le 16/09/2023 à 11h05
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. :top


TurboR GT (1Mo), CANON V20! ( en kit, modif 2+ en cours) :top
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