En principe, utiliser des niveaux de gris en
_nostub est simple, même en assembleur (en C, c'est immédiat):
1. Télécharge
TIGCC 0.92 SP1 sur
http://tigcc.ticalc.org.
2. Ajoute cela à ton fichier assembleur:
D_plane equ __D_plane
L_plane equ __L_plane
switch_cnt equ __switch_cnt
(pour le cas que quelqu'un veuille changer l'implémentation de ces trucs internes)
3. Utilise:
-
bsr GrayOn pour activer les niveaux de gris
-
bsr GrayOff pour désactiver les niveaux de gris
-
move.l D_plane(PC),a0 pour mettre l'adresse du plan foncé en a0
-
move.l L_plane(PC),a0 pour mettre l'adresse du plan clair en a0
- Le suivant pour synchroniser ton programme avec les routines de niveaux de gris:
move.l switch_cnt(PC),d0
addq.l #2,d0
gray_sync: cmp.l switch_cnt(PC),d0
bhi.s gray_sync
4. Compile avec
TIGCC IDE ou
tigcc.exe, qui linkeront automatiquement avec
tigcc.a.
5. Voilà, d'excellentes routines de niveaux de gris, synchronisées avec l'écran sur HW2 et synchronisables avec le programme.
Mais là, utiliser les routines de
tigcc.a directement n'est pas du tout ce que tu veux (vu que ta librairie Azur est écrite en assembleur inline Azur). Donc il te faudra les sources:
http://www.ticalc.org/archives/files/fileinfo/136/13679.html, fichier
archive/gray.s. C'est seulement TIGCC 0.92, pas 0.92 SP1, mais
gray.s n'a pas changé entre les deux. Et il te faudra convertir l'assembleur GNU de
gray.s en assembleur inline Azur.
[edit]Edité par Kevin Kofler le 22-11-2001 à 06:17:52[/edit]