TO7/70 un wait vbl digne de ce nom !

Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Répondre
p0ke
Messages : 180
Inscription : 20 mai 2018 20:29

TO7/70 un wait vbl digne de ce nom !

Message par p0ke »

Bonjour,

Je cherche à comprendre comment on fait un wait vbl / hbl sur TO7/70 (oui je sais c'est trivial !).

Donc j'ai lu pas mal de doc au format dejavu, pdf, et même épluché les tutos divers et au final je suis un peu embrouillé.

Je crois comprendre que c'est le 6846 qui peut m'aider pour faire ça.

J'ai vu passer ce thread : viewtopic.php?t=4184 avec un petit bout de source 6846.zip

Et la je me dis que la seule façon de savoir si on a atteint le bord de l'écran ou le bas de l'écran c'est de compter les cycles pour avoir le nombre de lignes (64) les lignes via une IRQ ?

Alors que dans l'architecture technique il me semble avoir vu des signaux pour compter lignes et trames mais on dirait que c'est interne au get array et pas accessible à l'utilisateur ?

Vos éclaircissements seraient les bienvenus.

Merci

p0ke
__sam__
Messages : 7924
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: TO7/70 un wait vbl digne de ce nom !

Message par __sam__ »

non pas besoin de timer pour savoir si on a atteint la fin d'écran. Le flip-flop $E7E7 indique la fin de trame dans son dernier bit (voir manuel technique to8/to9/to9+ page 84), ce qui donne le code suivant (extraite de la rotine palette en ROM, laquelle attends la fin de trame pour changer la palette au complet, mais la même chose existe pour le crayon optique)

Code : Tout sélectionner

FCDA 7DE7E7     TST    $E7E7               7
FCDD 2AFB       BPL    $FCDA               3
FCDF 7DE7E7     TST    $E7E7               7
FCE2 2BFB       BMI    $FCDF               3
FCE4 39         RTS                        5
Les compteurs de lignes et trames sont quant à eux accessibles en $E7E4->$E7E6, voir le chapitre 8 du manuel technique "Gestion du crayon optique" et aussi le chapitre 5 "Système de visualisation". Mais bon, en pratique seule le code à base de BPL/BMI en $E7E7 + comptage de cycles est nécessaire pour se synchronizer.
Dernière modification par __sam__ le 04 oct. 2018 16:27, modifié 1 fois.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
jasz
Messages : 1313
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: TO7/70 un wait vbl digne de ce nom !

Message par jasz »

En effet c'est ce code là que je recherchais, en vain... (Il me semble que Daniel avait fait un descriptif du registre quelque part)

Pour les HBL chaque ligne fait 64 cycles. Donc il suffit de compter.
p0ke
Messages : 180
Inscription : 20 mai 2018 20:29

Re: TO7/70 un wait vbl digne de ce nom !

Message par p0ke »

Ah super, merci sam, ça fait plusieurs soirées que je tourne en rond !

Et meaculpa pour la doc, je crois que j'ai plus ou moins toujours skipper la partie crayon optique, du coup je vais m'y recoller avec les références que tu m'indiques.
J'avais par mégarde commencé à lire de la doc TO8 TO9 etc ... mais je n'étais pas convaincu par la compatibilité avec le to7/70 (j'ai essayé de lire des sujets sur la compatibilité entre les moto mais ça a pas l'air simple, parfois ça diffère de pas grand chose). J'ai trouvé parfois de la doc qui mélange les différents moto mais quand on est pas à l'aise avec l'engin c'est pas évident de s'y retrouver.

En passant une dernière question, dans ton code mentionné dans le thread plus haut, je vois :
ldd #2499 ;1/4VBL=20ms/4
std TMRCP
lda #$42 ;modecontinu
sta TMRCR

#$42 ça fait 66 cycles alors que l'écran tour confondu fait (7+40+7+10=64) cycles non ? Est-ce qu'il y a 2 cycles pour anticiper un potentiel décalage avec l'interruption sur la ligne d'après ou quelque chose du genre ?
__sam__
Messages : 7924
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: TO7/70 un wait vbl digne de ce nom !

Message par __sam__ »

@jasz: oui une fois trouvée la fin de trame, il suffit de savoir qu'une ligne fait 64 cycles et qu'il y a 312 lignes, et compter ses cycles (<= c'est super casse-pied, heureusement que le (info) de l'assembleur c6809 compte les cycles pour nous).

@p0ke: Heu sinon $42 c'est le mode continu du timer. Ca n'a rien à voir avec le compteur qui est initialisé à 2499 en assumant que la trame fait 20ms. En fait, elle fait 312*64µs = 19.968ms et pas exactement 20ms comme je le croyais à l'époque (il y a une différence de 32µs = 1/2 ligne = les fameux 8 cycles de timer dont on se demandait d'où ca venait dans le vieux fil je crois).
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
jasz
Messages : 1313
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: TO7/70 un wait vbl digne de ce nom !

Message par jasz »

312 lignes?! Mince! C'est plus que le ST en mode 320x200 qui en compte 274 (Pour l'amiga, j'ai oublié mais je crois que l'on est pas loin des 256 lignes voir plus)
p0ke
Messages : 180
Inscription : 20 mai 2018 20:29

Re: TO7/70 un wait vbl digne de ce nom !

Message par p0ke »

aaaah ok !
je ne maîtrise pas encore les IRQs (j'ai lu la doc de Richard Sorek qui est mortelle, mais elle me fait me poser pas mal de question malgrés les détails).
Et oui c'était bien l'histoire des 8 cycles.
D'ailleurs j'ai testé dans DCMOTO et le décallage est toujours là ! Il y aura un fixe un jour ? (c'est vraiment pas le truc qui me gêne).
Compter les cycles c'est dur mais chouette (j'en ai compté pas mal en 6502 sur vcs !)
Patrick
Messages : 2019
Inscription : 16 mai 2009 09:30
Localisation : Clermont-Ferrand

Re: TO7/70 un wait vbl digne de ce nom !

Message par Patrick »

312 lignes oui, mais toutes ne sont pas visibles. Et en 50 Hz, en 60 Hz les timings sont différents. Pas pour les Thomson évidemment.
Patrick
Daniel
Messages : 17319
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: TO7/70 un wait vbl digne de ce nom !

Message par Daniel »

Dans le fil de discussion suivant (à lire jusqu'au bout) nous avons découvert que Thomson a utilisé plusieurs types de 6846 qui ne comptent pas pareil. Le logiciel ASSDESASS, par exemple, fonctionne avec l'un mais pas avec l'autre : viewtopic.php?f=24&t=7743

A l'époque j'ai modifié dcmoto pour qu'il compte comme le 6846 avec lequel ASSDESASS fonctionne. Et donc il ne compte pas comme l'autre.
Daniel
L'obstacle augmente mon ardeur.
p0ke
Messages : 180
Inscription : 20 mai 2018 20:29

Re: TO7/70 un wait vbl digne de ce nom !

Message par p0ke »

@Daniel je crois que j'ai lu un post "histoire" du 6846 mais il me semblait que le TO7/70 n'était pas concerné et que les séries de 6846 avaient changé lors de la production du TO8.

Par contre pour les 312 lignes si certaines ne sont pas visibles on parle des quelles, bord haut et bord bas du tour ou au delà ?
Est-ce que celles du Tour sont modifiables, même si limité à 4 couleurs je crois ?

Peut-on par exemple flasher des couleurs différentes à la volée sur le tour ? on pourrait peut être changer 2 fois de couleur ? (par exemple un STD en fin de ligne et un en début de ligne).

En tout cas merci pour vos réponses super rapides. C'est vraiment appréciable.
J'ai jeter un oeil à la doc sur le crayon optique, j'aurais jamais pensé à chercher l'info qui me manque à cet endroit là !!!
__sam__
Messages : 7924
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: TO7/70 un wait vbl digne de ce nom !

Message par __sam__ »

La couleurs du tour est modifiable. Toutes les 16 couleurs y sont applicables. On peut sans problème les changer à la volée soit avec le registre qui contient la couleur du tour (to7 et suivants) soit même directement via la palette (pour les machines qui ont une palette programmable). On obtient alors un effet de raster soit uniquement sur le tour (1ère méthode, c'est moche), soit sur l'ensemble de l'écran quand on modifie la palette à la volée (c'est beaucoup plus joli). Exemples:
Image*Image
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
p0ke
Messages : 180
Inscription : 20 mai 2018 20:29

Re: TO7/70 un wait vbl digne de ce nom !

Message par p0ke »

Chouette,

En regardant dans le manuel mentionné, la partie description des adresses pour le light pen, je ne trouve pas les mêmes choses qu'avec un autre manuel que j'ai trouvé sur le site de DCMOTO (impossible de remettre la main sur le titre).

J'ai mis après le / ce que j'ai trouvé dans le manuel du TO8 (je n'ai pas mis E7E4 et 6 puisqu'il n'y avait pas de différences):


$E7E5 T04 BUS/T03 T03/TL2 TL2/TL1 TL1/TL0 H1/E H2 H4
$E7E7 INIT/INITN 0/INITN 0 0 0 0 0 0


Est-ce du à des différences entre les 6846 ?
__sam__
Messages : 7924
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: TO7/70 un wait vbl digne de ce nom !

Message par __sam__ »

p0ke a écrit : 06 oct. 2018 01:43 J'ai mis après le / ce que j'ai trouvé dans le manuel du TO8 (je n'ai pas mis E7E4 et 6 puisqu'il n'y avait pas de différences):


$E7E5 T04 BUS/T03 T03/TL2 TL2/TL1 TL1/TL0 H1/E H2 H4
$E7E7 INIT/INITN 0/INITN 0 0 0 0 0 0
Les assignations des bits peuvent varier suivant le type de machine. L'autre doc est peut-être celle du TO7 ou du TO7/70 au lieu du TO8. Ca peut aussi être une faute de frappe. Je doute que cette partie là des docs ait été relue attentivement : c'est franchement chiant pour les non spécialistes de l'électronique de génération de signaux vidéo (c'est à dire tout le monde sauf l'équipe de 2-3 spécialistes chez thomson à l'époque.)
Est-ce du à des différences entre les 6846 ?
Non, ces addresses ne font pas partie du 6846 mais du gate-array (circuit spécialisé) d'affichage sur TO8/TO9/TO9+. Sur le TO7 il me semble que l'affichage est réalisée par des composants discrets (à confirmer cependant.)
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Fool-DupleX
Messages : 2286
Inscription : 06 avr. 2009 12:07

Re: TO7/70 un wait vbl digne de ce nom !

Message par Fool-DupleX »

Sur le TO7 il me semble que l'affichage est réalisée par des composants discrets (à confirmer cependant.)
Sur TO7 oui, mais pas sur TO7-70, qui a un gate-array.

Ces deux machines sont extrêmement différentes au niveau matériel, malgré leur esthétique similaire. Il est donc très important de ne pas les confondre.
Répondre