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 de délai 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)