Inscription : 28 Mai 2010, 11:34 Message(s) : 99 Localisation : Eteauville, France
salut,
j'ai un petit souci avec le registre PRI sur cpc+. J'utilise une résolution custom (288x224). J'ai centré l'écran bien entendu pour que les bordures gauche/droite, haut/bas soient les mêmes.
Le problème, c'est que je n'arrive pas à déclencher une interruption correctement en début d'écran (scanline 0). L'interruption se déclenche bien, mais il y a un décalage de plusieurs scanlines. En gros, elle se déclenche plusieurs scanlines plus tard que je voudrais.
Idem si je passe par l'équivalent cpc, en attendant le retour du balayage, il y a également le même décalage. Est-ce que j'ai loupé quelque chose dans la configuration du crtc ?
Inscription : 28 Mai 2010, 11:34 Message(s) : 99 Localisation : Eteauville, France
Je suis d'accord. Mais j'avais testé avant avec en mettant PRI à 1 et j'ai le même souci de décalage. Comme si finalement il considérait que la 1ère ligne c'est celle avant le changement de résolution (et donc le centrage de l'écran).
Je travaille avec winape en attendant de tester sur le cpc. Est-ce que ca pourrait venir de l'émulateur ?
Inscription : 15 Août 2008, 13:00 Message(s) : 968 Localisation : Troyes, France
Salut ! voilà qui est étrange , utilises tu des DI/EI ? en quel mode d'interruption es tu ? quelle est ta config CRTC ? à quoi ressemble ta routine d'interruption ? Au pire, est ce que tu as un bout de code qui reproduit ton problème ?
_________________ "NOP" tel est le programme parfait ! court, rapide, lisible et sans bugs (connus)
Inscription : 15 Août 2008, 13:00 Message(s) : 968 Localisation : Troyes, France
Petite réponse rapide entre deux laies de papier paint : Effectivement , ton raster est à la ligne 3.Les specialistes du + pourront te donner plus de détail que moi voire dire si je dis une connerie mais il me semble que quand tu fais une int avec PRI , l'interruption a lieu à la fin de la ligne souhaitée.Ce qui fait que tu reviens de l'int à la ligne 2 et ton code attends un peu pour se retrouver en fait à la ligne 3 (d'ailleurs en traçant avec Winape , on voit que ton changement de couleur se fait à la fin de la ligne 2)
_________________ "NOP" tel est le programme parfait ! court, rapide, lisible et sans bugs (connus)
Inscription : 15 Août 2008, 13:00 Message(s) : 968 Localisation : Troyes, France
Tout dépend ce que tu veux mettre en ligne 0 , tu ne peux pas commencer tes rasters quelques lignes plus bas et au pire décaler le GFX qui est à cet endroit là ? (ou au pire feinter avec SPLT pour avoir une ligne de caractère vide avant) Sinon , si tu veux vraiment commencer avant l'écran affiché , tu en es rendu à utiliser les interruptions classiques.
_________________ "NOP" tel est le programme parfait ! court, rapide, lisible et sans bugs (connus)
Inscription : 15 Août 2008, 13:00 Message(s) : 968 Localisation : Troyes, France
Rien ne t'empêche de garder une ligne vide en bas de RAM genre #40 , et de la dupliquer sur les 3 ou 4 première lignes avec SPLT, comme ça tu désorganises pas ton écran. A moins que quelqu'un connaisse une solution pour commencer en 0.
_________________ "NOP" tel est le programme parfait ! court, rapide, lisible et sans bugs (connus)
Inscription : 13 Jan 2010, 14:25 Message(s) : 2270
La vie est un éternel recommencement ... Pourquoi pas utiliser la fin de la dernière ligne pour paramétrer le raster qui s'affichera en début de ligne 0 sur l'écran suivant ?
Inscription : 28 Mai 2010, 11:34 Message(s) : 99 Localisation : Eteauville, France
Grâce à vous, j'ai trouvé une solution. Je mets l'interruption à la ligne 255 et j'ajoute une temporisation (nops) dans le handler d'interruption qui permet d'attendre le début de la ligne 0. A partir de là, le raster commence, et le résultat est nickel !
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 3 invité(s)
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas insérer de pièces jointes dans ce forum