CTC-AY SDK libCTC fr

From CPCWiki - THE Amstrad CPC encyclopedia!
Revision as of 06:18, 11 July 2013 by Fano (Talk | contribs) (Macros)

Jump to: navigation, search

Bibliotheque de prise en charge du CTC

Localisation : lib/ctc.asm

Cette bibliothèque est composée de macros ainsi que de définitions des drapeaux pour la configuration du CTC.

Rappel des abréviations :

  • d valeur 8 bits (0-0xFF)
  • dd valeur 16 bits (0-0xFFFF)
  • r registre 8 bits (A,B,C,D,E,H,L)
  • rr registre 16 bits (HL/BC/DE)
  • ii registre d'index (IX/IY)

Macros

CTC_SetYM

Configure la fréquence des deux YM.Si le paramètre est omis, c'est la fréquence du CPC qui est automatiquement choisie.


Usage :

  • CTC_SetYM d (défaut : 1)


CTC_StartChannel


Démarre un des canaux du CTC , le premier paramètre correspond au canal choisi , le second aux drapeaux affectant ce canal et le troisième à la valeur du compteur du canal.

Les canaux sont définis par les valeurs suivantes :

  • ctc.chan0 : canal 0
  • ctc.chan1 : canal 1
  • ctc.chan2 : canal 2
  • ctc.chan3 : canal 3

Les valeurs suivantes sont possibles et combinables en partie pour les drapeaux :

  • ctc.int : une interruption est déclenchée quand le compteur du canal atteint 0
  • ctc.counter : le canal est en mode counter
  • ctc.timer : le canal est en mode timer
  • ctc.prescale256 : choisi une échelle de temps de 64µs pour le canal (mode timer uniquement)
  • ctc.prescale16 : choisi une échelle de temps de 16µs pour le canal (mode timer uniquement)
  • ctc.reset : redémarre le canal avant de le mettre en route.


Usages possibles :

  • CTC_StartChannel rr/ii

les paramètres seront charges à la suite en (rr) ou (ii).Il est possible d'ajouter un post ou un pré incrément/décrement pour incrément/décrementer rr/ii.

Exemple : CTC_StartChannel HL++

  • CTC_StartChannel d,rr

Le premier paramètre est donnée sous forme de valeur immédiate.Les deux derniers seront chargés à la suite en (rr) ou (ii).Il est possible d'ajouter un post ou un pré incrément/décrement pour incrément/décrementer rr/ii.

Exemple : CTC_StartChannel ctc.chan2,HL++

  • CTC_StartChannel d,d,d/r/(rr)/(ii)

Les premiers et second paramètres sont des valeurs immédiates.Les troisième peut être donné sous forme de valeur immédiate , registre 8 bits ou une référence à un registre 16bits ou d'index

Exemple : CTC_StartChannel ctc.chan.3,ctc.int | ctc.timer | ctc.prescale256 | ctc.reset, (HL)