MSX Village forum

La Place des Développeurs Interruptions sur MSX

Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 24/09/2022 à 18h57

Reprise du message précédent

le flag de p#6 il faut que je regarde la doc du v9990

si on simplifie
Low level c'est 0V -> bit à 0
High level c'est 5V ->bit à 1

mais en électronique pure le Low Level est compris entre 2valeurs ainsi que le High Level
et ça dépend des puces employées TTL ou CMOS


:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2907

Le 24/09/2022 à 20h19
Du coup, si je comprends bien, l'interruption côté CPU (le saut en 0038h) a lieu quand le pin INT0 est low (donc à 0) ?



On est toujours ignorant avant de savoir.
Github    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1503

Le 25/09/2022 à 10h08
aoineko :
Quelqu'un pourrait me traduire ce que ça veux dire ?

Code TEXT :
IECE    Command end interrupt enable control
1    : INT0 terminal becomes low level when CE flag of P#6 is "1".
0    : INT0 terminal does not change according to CE flag.


C'est pour le V9990. J'ai compris que quand le bit est a 1, cela génère une interruption (saut en 0038h).
Est-ce bien ça ? :hum

Oui, c'est le bit qui contrôle la génération d'une interruption lorsqu'une commande est terminée.
Le V9990 peut générer 3 interruptions:
- une pour le VBLANK
- une pour le HBLANK (soit à une ligne déterminée, soit à toutes les lignes)
- une lorsque la commande en cours est terminée.


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)
   
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2907

Le 25/09/2022 à 11h45
Oui, c'est tout bon maintenant avec mon remplacement d'ISR.
C'est les interférences avec le VDP de base du MSX qui créaient des comportement étrange (en désactivant les interruptions du VDP, plus de soucis).
Le V9990 est super chouette ; je peux faire de la parallaxe facilement en changent la valeur de scrolling de l'arrière plan à des lignes données. :love

Par contre, j'ai un soucis si j'utilise l'ISR du BIOS.
C'est le même problème que tu as décris sur MRC :
Metalion :
I disabled completely the standard VDP in my code (by writing 0 in R#0 and R#1) before switching to v9990, and as a result, the interruption does not work anymore. Looks like the H_KEYI hook is not called, which does not make any sense.

EDIT: Problem solved. It was just a matter of disabling the H_TIMI hook, which was somehow messing with my interruption, because the S#0 register still contains a value, even if the standard VDP is disabled.


Par contre, je ne sais pas ce que tu entends pas « désactiver le hook H.TIMI » ? J'ai mis une callback vide, mais ça ne corrige pas le soucis.


On est toujours ignorant avant de savoir.
Github    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1503

Le 25/09/2022 à 20h43
Ca veut simplement dire que je n'utilise pas le hook H.TIMI.
Le seul hook que j'utilise est H.KEYI. Edité par Metalion Le 25/09/2022 à 20h44


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)
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie