Les Villageois POKE "universel"
Visiteur
Vagabond
Message : 0
Tout le monde ici connaît ce POKE -1,(15-PEEK(-1)\16)*17 qui permet d’éviter des bugs de chargement.
Mais il fait quoi au juste ce POKE ? On parle parfois de « mettre 64Ko en ligne », ça veut dire quoi ?
A-t-il le même effet sur une machine dotée de 64Ko min d’origine que sur une machine de 8/16/32Ko avec une extension mémoire de 64Ko en slot1 ? Edité par Visiteur Le 16/12/2016 à 14h08
Mais il fait quoi au juste ce POKE ? On parle parfois de « mettre 64Ko en ligne », ça veut dire quoi ?
A-t-il le même effet sur une machine dotée de 64Ko min d’origine que sur une machine de 8/16/32Ko avec une extension mémoire de 64Ko en slot1 ? Edité par Visiteur Le 16/12/2016 à 14h08
http://www.msxvillage.fr/forum/topic.php?id=1243&pt=1#m25294
(C'est explqué dans le complément plus bas)
Edit: J'ai du réédité vite fait le complément car les caractères "\" avaient disparus (sans doute pendant la mise à jour du site). Edité par GDX Le 16/12/2016 à 15h34
(C'est explqué dans le complément plus bas)
Edit: J'ai du réédité vite fait le complément car les caractères "\" avaient disparus (sans doute pendant la mise à jour du site). Edité par GDX Le 16/12/2016 à 15h34
GDX:
Dans ton exemple en asm, il faut modifier la ligne "OR" en "OR B"
C'est explqué dans le complément plus bas
Dans ton exemple en asm, il faut modifier la ligne "OR" en "OR B"
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
GDX:
Est-ce que ça veut dire qu'avec un MSX 32Ko auquel on ajouterait une extension de 32Ko, le poke universel ne fonctionnerait pas ?
Le POKE modifie donc uniquement les registres secondaires du Slot primaire la RAM. Les 64Ko doivent donc se trouver dans le même Slot pour que ça fonctionne. Cette condition est nécessaire au bon fonctionnent de ce POKE.
Est-ce que ça veut dire qu'avec un MSX 32Ko auquel on ajouterait une extension de 32Ko, le poke universel ne fonctionnerait pas ?
Tout à fait. Et si tu prends une extension de 64Ko (dans un Slot étendu ou pas), ça ne marchera pas forcément non plus car au démarrage, le MSX cherche la RAM dans les Slots de 0 à 3 bank par bank et sélectionne la première trouvée. Si la RAM interne se trouve dans le Slot 0, elle sera toujours prise comme RAM principale.
Pour que ça marche, il faut que le développeur tienne compte de tout ça.
Ça fait plaisir de voir un qui suit. Edité par GDX Le 30/12/2016 à 13h18
Pour que ça marche, il faut que le développeur tienne compte de tout ça.
Ça fait plaisir de voir un qui suit. Edité par GDX Le 30/12/2016 à 13h18
La façon de trouver la Ram dépend de l'environnement au démarrage.
- Sous Basic ou au démarrage d'une ROM, il y a forcément de la RAM sur la plage la plus haute donc il suffit de lire le registre des Slots primaires avec la routine du Bios RSLREG (00138h), ou au port 0A8H quand il n'y a pas le choix, et secondaires à l'adresse 0FFFFh. Seules les bits 7 et 6 serviront.
- Le DOS ou Disk-Basic indique le slot de la Ram principale pour chaque plage de 0F341h à 0F344h.
Je te conseille de lire le PDF "Pratique du MSX", si tu veux en savoir plus.
- Sous Basic ou au démarrage d'une ROM, il y a forcément de la RAM sur la plage la plus haute donc il suffit de lire le registre des Slots primaires avec la routine du Bios RSLREG (00138h), ou au port 0A8H quand il n'y a pas le choix, et secondaires à l'adresse 0FFFFh. Seules les bits 7 et 6 serviront.
- Le DOS ou Disk-Basic indique le slot de la Ram principale pour chaque plage de 0F341h à 0F344h.
Je te conseille de lire le PDF "Pratique du MSX", si tu veux en savoir plus.
Visiteur
Vagabond
Message : 0
Compte tenu des contraintes pour que ce POKE fonctionne, il n'est finalement pas si "universel" que ça... En fonction du MSX utilisé, le résultat est complètement aléatoire.
J'ai trouvé, en partie, la réponse à mon interrogation sur la présence ou non de RAM dans les slots en feuilletant "Le livre du MSX" et particulièrement la page 12.
J'ai trouvé, en partie, la réponse à mon interrogation sur la présence ou non de RAM dans les slots en feuilletant "Le livre du MSX" et particulièrement la page 12.
Visiteur
Vagabond
Message : 0
GDX:
Nous sommes d'accord.
Le "poke universel" n'est valable que pour les MSX ayant la RAM principale dans un Slot secondaire. C'est à dire très peu de MSX1 et pas beaucoup de MSX2. En France, ce poke est très répandu car nous avons eu droit à très peu de modèles MSX2. Sur ces modèles (sauf le HB-500) le poke marche mais il ne marche plus si l'on met une extension de mémoire. Bref, ce poke est très très loin d'être universel.
Nous sommes d'accord.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie