La Place des Développeurs Demande aide : set page, vpoke et overflow !
Bonsoir,jai des petits problèmes avec Set Page et Vpoke
Setpage et Vpoke: En screen 5 on à 4 pages avec 128ko de vram,la 1er en &h0,la 2eme en &h8000 puis la 3eme en &h10000 et la 4 en &h18000 donc je fais un vpoke &h0,&hFF j'obtien 2 pixels blanc sur la page 0,avec un vpoke &h8000,&hFF j'ai 2 pixels sur la page 1.
Là ou j'ai un problème c'est pour la page 2 un vpoke&h10000,&hFF me donne erreur Overflow,normal le vpoke fonctionne avec des adresses de 16 bits soit 64ko adressable,d'ou ma question on fait comment pour accèder aux 64ko des pages 2 et 3,je soupçonne un flag dans un registre mais où ?
Ma deuxieme question: Je connais mes adresses des pages 0 à 3 mais si je fais un Setpage 2,2 l'adresse de la page change en &h0 ,la 3 ce retrouve en &h8000 etc...moi je croyais que les adresses restaient fixe ,visiblement non,je me trompe ? Et si non on fait comment pour retrouver l'adresse des pages facilement ?
Setpage et Vpoke: En screen 5 on à 4 pages avec 128ko de vram,la 1er en &h0,la 2eme en &h8000 puis la 3eme en &h10000 et la 4 en &h18000 donc je fais un vpoke &h0,&hFF j'obtien 2 pixels blanc sur la page 0,avec un vpoke &h8000,&hFF j'ai 2 pixels sur la page 1.
Là ou j'ai un problème c'est pour la page 2 un vpoke&h10000,&hFF me donne erreur Overflow,normal le vpoke fonctionne avec des adresses de 16 bits soit 64ko adressable,d'ou ma question on fait comment pour accèder aux 64ko des pages 2 et 3,je soupçonne un flag dans un registre mais où ?
Ma deuxieme question: Je connais mes adresses des pages 0 à 3 mais si je fais un Setpage 2,2 l'adresse de la page change en &h0 ,la 3 ce retrouve en &h8000 etc...moi je croyais que les adresses restaient fixe ,visiblement non,je me trompe ? Et si non on fait comment pour retrouver l'adresse des pages facilement ?
TurboSEB
Membre non connecté
Conseiller Municipal
dit donc toi ,y'a un Zero en trop la
les bonnes adresses ne seraient t'elles pas &H0, &H0800,&H1000 et &H1800 a moins que je ne me trompe (s'est possible, si si ,car d'apres le Pdf, cela concerne le Screen 2 a 4)
sinon voici un Pdf avec toutes les données, desolé c'est en Hollandais, mais avec les chiffres, on s'y retrouve
ScreenMSX2.pdf
(source : MSX Gids N°24 Sep/Oct 1989)
Je trouve ce Pdf asser complet, mais une traduction serait idéal, ce qui en ferait litteralement une bible.
Solution 1 : Apprendre le Hollandais
Solution 2 : bosser un peu Edité par TurboSEB Le 11/12/2010 à 19h01
les bonnes adresses ne seraient t'elles pas &H0, &H0800,&H1000 et &H1800 a moins que je ne me trompe (s'est possible, si si ,car d'apres le Pdf, cela concerne le Screen 2 a 4)
sinon voici un Pdf avec toutes les données, desolé c'est en Hollandais, mais avec les chiffres, on s'y retrouve
ScreenMSX2.pdf
(source : MSX Gids N°24 Sep/Oct 1989)
Je trouve ce Pdf asser complet, mais une traduction serait idéal, ce qui en ferait litteralement une bible.
Solution 1 : Apprendre le Hollandais
Solution 2 : bosser un peu Edité par TurboSEB Le 11/12/2010 à 19h01
MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
Visiteur
Vagabond
Message : 0
kirem :
Bonsoir,jai des petits problèmes avec Set Page et Vpoke
Setpage et Vpoke: En screen 5 on à 4 pages avec 128ko de vram,la 1er en &h0,la 2eme en &h8000 puis la 3eme en &h10000 et la 4 en &h18000 donc je fais un vpoke &h0,&hFF j'obtien 2 pixels blanc sur la page 0,avec un vpoke &h8000,&hFF j'ai 2 pixels sur la page 1.
Setpage et Vpoke: En screen 5 on à 4 pages avec 128ko de vram,la 1er en &h0,la 2eme en &h8000 puis la 3eme en &h10000 et la 4 en &h18000 donc je fais un vpoke &h0,&hFF j'obtien 2 pixels blanc sur la page 0,avec un vpoke &h8000,&hFF j'ai 2 pixels sur la page 1.
Comme tu l'as compris, tu ne peux adresser que 64ko maximum sur 16 bits.
Attention, je ne code pas sur MSX, donc je ne pourrai pas te donner un exemple tout prêt.
Tu as 128ko de VRAM et 4 buffers. Donc chaque buffer prends 128/4 soit 32ko.
Ton premier écran va de 0 à 0x7FFF.
Manifestement, chaque pixel est représenté sur un demi octet (un quartet ? ).
Donc 0x8000 "allume" deux pixels sur le second buffer.
Maintenant, si on regarde ici:
http://nocash.emubase.de/portar.htm
et plus exactement, ici:
http://nocash.emubase.de/portar.htm#vramdatareadwrite
Tu as la réponse à ta question.
Il faut utiliser les "upper bits" pour adresser les buffers au dela du premier bloc de 64ko adressable directement.
l'adresse mémoire se passe en deux fois sur le port 99 (les "upper bits" sont précisés lors du deuxième envoi).
A utiliser avec in / out en basic.
Je ne peux pas t'en dire plus, car je n'en sais pas plus Edité par Visiteur Le 11/12/2010 à 13h36
TurboSEB
Membre non connecté
Conseiller Municipal
M rde, j'ai encore dit des betises, les adresses étaient bonnes
source : MSX INFO n°2 juin/juillet 1989
Rmq: il y a une erreur sur ce tableau, la derniere adresse doit etre 1FFFFH au lieu de 10000H Edité par TurboSEB Le 11/12/2010 à 19h20
source : MSX INFO n°2 juin/juillet 1989
Rmq: il y a une erreur sur ce tableau, la derniere adresse doit etre 1FFFFH au lieu de 10000H Edité par TurboSEB Le 11/12/2010 à 19h20
MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
Merci TurboSeb pour tes scans,je vais apprendre le Hollandais,non je blague trop dur pour moi.
Merci Venon, tes tuyaux sont les bons me reste plus qu'à me prendre la tête avec Out,pour l'instant j'ai modifié mon programme pour travailler que sur la page 0 ou 1 comme cela vpoke et vpeek suffisent.
Merci Venon, tes tuyaux sont les bons me reste plus qu'à me prendre la tête avec Out,pour l'instant j'ai modifié mon programme pour travailler que sur la page 0 ou 1 comme cela vpoke et vpeek suffisent.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie