Index du forum




Un petit coup de main... Vous pouvez nous aider à mettre ce site à jour: n'hésitez pas à me contacter !!!

* Connexion   * Inscription

* FAQ
Nous sommes actuellement le 29 Nov 2025, 23:22

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Calcul Valeur Hcc

Modérateur: poulette73



Publier un nouveau sujet Répondre au sujet  Page 1 sur 1
 [ 3 message(s) ] 
  Aperçu avant impression Sujet précédent | Sujet suivant 
Auteur Message
AsT
 Sujet du message : Calcul Valeur Hcc
Message Publié : 13 Jan 2017, 18:19 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 29 Août 2007, 08:04
Message(s) : 751
Localisation : Impact Hq
Hello,

Encore en plein coding, je me pose une question métaphysique à laquelle certain d'entre vous pourront sans doute répondre.

A votre avis, quelle est la valeur de HCC après un Halt ?

Pour ceux qui l'ignoreraient encore, Hcc=Horizontal Char Counter (Compteur de caractères Horizontal). C'est le compteur interne du Registre 0 du Crtc. Pour information, je trouve la valeur de 5 après chaque HALT.

1. Est-ce réellement le cas ?
2. Est-ce que celle-ci est toujours la même ?

Merci pour vos réponses éventuelles.

Mon programme de test :
Code :
          org  #a000
          ent $
;

          di
          ld hl,#c9fb ; on vire les ints
          ld (#38),hl
;
main   ld b,#f5 ; test vbl
vsync  in a,(c)
          rra
          jr nc,vsync
;
          ei
          halt
                            ; Que vaut Hcc après l'execution du halt ? Ici Hcc=5 ?
.....


Source : Amstrad Plus

_________________
AsT / iMP4CT

Retrouvez nous sur le forum Amstrad Plus
"Call &bb06"


Haut
 Profil  
 
Lone
 Sujet du message : Re: Calcul Valeur Hcc
Message Publié : 14 Jan 2017, 14:50 
Hors-ligne
Rulezzzz
Rulezzzz

Inscription : 25 Fév 2013, 13:56
Message(s) : 648
Localisation : Ardèche
Hello Ast,

Ce que je pense :

Dans ton cas précis, tu as une sortie de boucle quand VSync est on. Soit, lorsque HCC = 0.
Ensuite:
- RRA : 1 NOP
- JR NC : 2 NOP
- EI : 1 NOP
- HALT : 1NOP (l'interruption est (sans doute) là depuis des lustres, vu que tu les a DI avant d'attendre VSync)

Total = 5 NOP, soit 5 us, soit... HCC = 5.

Est-ce variable ?

Je pense que si tu lance ta routine au bon moment (c'est à dire juste après la dernière interruption avant VSync), tu peux avoir des résultats différents. Dans ce cas, tu aurais un comportement où l'interruption (qui pop sur la fin de HSYNC, soit, HCC = R2+R3 soit 46+14 = 60 dans un cas standard) arriverait 4 us plus tôt (pour R0 = 64).

Ce qui signifie que tout dépend sans doute de tes valeurs de registre R0, R2, R3 dans le cas ou tu places ton halt au bon moment (soit sans interruption en attente).

EDIT : Vu ma faible expérience pratique, j'espère ne pas avoir dit trop d’âneries :)


Haut
 Profil  
 
AsT
 Sujet du message : Re: Calcul Valeur Hcc
Message Publié : 14 Jan 2017, 20:51 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 29 Août 2007, 08:04
Message(s) : 751
Localisation : Impact Hq
Comme je te l'ai déjà dit sur le forum Amstrad Plus, merci à toi pour tes explications.

_________________
AsT / iMP4CT

Retrouvez nous sur le forum Amstrad Plus
"Call &bb06"


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  Page 1 sur 1
 [ 3 message(s) ] 

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 18 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

Aller vers :  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduit en français par Maël Soucaze.