[TO8] CPU et Fréquence

Placez ici vos trucs et astuces, étalez sans retenue votre savoir-faire et votre science qui va nous permettre de redonner une apparence neuve et fonctionnelle à nos bouzes.

Modérateurs : Papy.G, fneck, Carl

Bernouilli92
Messages : 1294
Inscription : 24 déc. 2021 09:46
Localisation : Région parisienne

Re: [TO8] Remplacement CPU

Message par Bernouilli92 »

J'ai reçu un 6309 commandé en chine. Je compte le mettre un jour sur mon to8.
Comment savoir si c'est un vrai 6309?
CrossmanBx
Messages : 146
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

Déjà, sur les 2 que j ai reçus, en testant la résistance entre les pins 1 et 7 (Vcc et Vss), j' avais une valeur de plusieurs megaohms.
Impossible pour ces soi-disant cpus de booter. Par la suite, pour différencier un 6809 d'un 6309, il y a une routine en assembleur quelque part, faut que je la retrouve, sur ce forum il me semble.

[EDIT] Trouvé !
Daniel a écrit : 22 avr. 2014 20:57 J'ai essayé ce petit programme :

Code : Tout sélectionner

                       ORG  $9000
 9000 3407              PSHS A,B,CC
 9002 CC0102            LDD  #$0102
 9005 103089            ADDR  A,B
 9008 FD900D            STD  $900D
 900B 3587              PULS CC,B,A,PC
 900D 00                FCB  $00
 900E 00                FCB  $00
Après exécution, un PRINTPEEK(&H900E) affiche 3, ce n'est donc pas un 6809 :D :D :D
Fool-DupleX
Messages : 2366
Inscription : 06 avr. 2009 12:07

Re: [TO8] Remplacement CPU

Message par Fool-DupleX »

Et j'essaye de comprendre pourquoi cette gamme est si difficile en compatibilité..
Pas plus difficile que n'importe quelle autre gamme de l'époque. Il y avait aussi des petits soucis de compatibilité entre le C64 et le C128 par exemple, puis Commodore a tiré un trait dessus pour faire l'Amiga.

Il ne faut pas se tromper sur la "compatibilité" des machines actuelles, il n'en est rien. Windows ou Linux fournissent un noyau énorme et un nombre conséquent de pilotes de base de manière à couvrir la majorité des cas, ce qui donne un sentiment de compatibilité 100%, mais rien n'est plus faux.

Si on veut faire le chemin inverse, prenons notre projet OS-9/MO5 qui me tient particulièrement à coeur, il rend de facto l'ensemble de la gamme Thomson "compatible".
CrossmanBx
Messages : 146
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

Je viens de recevoir un HD63B09EP d'Ebay.
Celui-ci permet de faire booter le TO8.
Va falloir maintenant que je m'assure que c'est bien un vrai 6309.
Pièces jointes
PXL_20230106_132443366.jpg
PXL_20230106_132443366.jpg (367.54 Kio) Consulté 1282 fois
PXL_20230106_134155237.jpg
PXL_20230106_134155237.jpg (298.25 Kio) Consulté 1282 fois
CrossmanBx
Messages : 146
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

Bon, pas de moquerie svp, mais je me galère à me servir de la routine de Daniel en haut de la page.
Je n'ai jamais fait d'assembleur, je vous préviens.
J'ai tenté d'utiliser assembleur v2 directement sur le TO8, en convertissant le .fd en .sd
Mais je n'arrive pas à le lancer. En appuyant sur l'option 4, appels de programme, je vois bien le fichier assembl, mais je ne peux le sélectionner, je n'ai ni crayon optique, ni souris.
Du coup, j'ai tenté avec c6809 du site PULS, mais j'aurai sacrément besoin d'un tuto.
Si quelqu'un passe par là et est connaisseur, merci du coup de main.
Fool-DupleX
Messages : 2366
Inscription : 06 avr. 2009 12:07

Re: [TO8] Remplacement CPU

Message par Fool-DupleX »

Pourquoi faire, un assembleur ? :lol:

Code : Tout sélectionner

 9000 3407              PSHS A,B,CC
 9002 CC0102            LDD  #$0102
 9005 103089            ADDR  A,B
 9008 FD900D            STD  $900D
 900B 3587              PULS CC,B,A,PC
 900D 00                FCB  $00
 900E 00                FCB  $00
=

Code : Tout sélectionner

 10 CLEAR,&H8FFF:RESTORE
 20 FOR A=&H9000 TO &H900E
 30 READ B:POKE A,B
 40 NEXT:EXEC &H9000
 50 END
 60 DATA &H34,&hH07,&HCC,&H01,&H02,&H10,&H30,&H89,&HFD,&H90,&H0D,&H35,&H87,&H00,&H00
(traduit à la volée en 1 minute)
CrossmanBx
Messages : 146
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

Vous êtes vraiment des bêtes ! Merci beaucoup !
Il faut vraiment que je me mette dedans, je suis frustré de voir votre niveau ! :lol: :lol:
CrossmanBx
Messages : 146
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

ca semble bien être un 6309 !
Merci à Daniel et à Fool-Duplex ;)
Du coup, sur 6809, on aurait quelle valeur ? J'essaierai demain si pas de réponse
Pièces jointes
PXL_20230106_210916924.jpg
PXL_20230106_210916924.jpg (274.69 Kio) Consulté 1227 fois
Daniel
Messages : 17424
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [TO8] Remplacement CPU

Message par Daniel »

On obtient 0 avec dcmoto en mode 6809 :

##.png
##.png (1.33 Kio) Consulté 1220 fois

[EDIT]
Je viens d'essayer avec un vrai 6809, le programme plante car l'instruction ADR n'est pas valide et décale la suite.
L'émulateur dcmoto traite bien une partie des instructions non documentées, mais pas toutes (c'est normal, elles ne sont pas documentées :lol: ).
Daniel
L'obstacle augmente mon ardeur.
Bernouilli92
Messages : 1294
Inscription : 24 déc. 2021 09:46
Localisation : Région parisienne

Re: [TO8] Remplacement CPU

Message par Bernouilli92 »

Quelqu'un peut expliquer le programme ?
Les fcb n'ont pas l'air d'être des instructions machine mais des instructions pour le compilateur, c'est l'équivalent d'un data ?
Et l'instruction puls provoque aussi un return ? Car je ne vois pas d'instruction de type rtn.

Ensuite concernant le mode compatible et le mode natif du 6309, on passe de l'un à l'autre en exécutant une instruction spéciale ou c'est un ensemble d'instructions ?
Et il ne faut faire cela que si on est sur un 6309, il faut donc tester d'abord.

J'ai hâte de tester mon 6309, mais je suppose qu'il faut dessouder le 6809 qui n'est pas sur support ? Sur un to8d.
Sappas
Messages : 679
Inscription : 02 oct. 2022 18:11

Re: [TO8] Remplacement CPU

Message par Sappas »

Je te confirme sur le mien y a aucun support.
La qualité de la carte semble être mauvaise...
Fais gaffe à pas trop chauffer ni arracher des pistes, utilise du flux
__sam__
Messages : 7987
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [TO8] Remplacement CPU

Message par __sam__ »

Bernouilli92 a écrit : 06 janv. 2023 23:36 Quelqu'un peut expliquer le programme ?
Les fcb n'ont pas l'air d'être des instructions machine mais des instructions pour le compilateur, c'est l'équivalent d'un data ?
Et l'instruction puls provoque aussi un return ? Car je ne vois pas d'instruction de type rtn.
Il te faut absolument lire un manuel du 6809. L'assembleur est assez homogène sans exceptions, et on a vite fait le tour des instructions. Tu pourras lire (et comprendre) l'ASM en une paire d'heure.

L'instruction PULS récupère un ensemble de registres sur la pile. Si dans cet ensemble tu as le compteur-programme (PC), et bien tu réalises un saut sans la foulée. Si la valeur récupérée est celle empilée par un JSR/BSR, cela revient à faire un RTS (ReTurn from Subroutine) gratuitement. PULS est l'une des instruction les plus intéressantes sur 6809, et pour cette raison, le nom adopté par un certain groupe de démo-codeurs.
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
Zebulon
Messages : 2806
Inscription : 02 nov. 2020 14:03

Re: [TO8] Remplacement CPU

Message par Zebulon »

Merci Sam pour les explications. N'ayant fait que de l'assembleur Z80 et un tout petit peu de x86 (8086 principalement) j'avoue que celui de la famille 6xxx me déroute aussi. :D
Avatar de l’utilisateur
hlide
Messages : 3506
Inscription : 29 nov. 2017 10:23

Re: [TO8] Remplacement CPU

Message par hlide »

Bernouilli92 a écrit : 06 janv. 2023 23:36 Quelqu'un peut expliquer le programme ?
Les fcb n'ont pas l'air d'être des instructions machine mais des instructions pour le compilateur, c'est l'équivalent d'un data ?
Et l'instruction puls provoque aussi un return ? Car je ne vois pas d'instruction de type rtn.

Ensuite concernant le mode compatible et le mode natif du 6309, on passe de l'un à l'autre en exécutant une instruction spéciale ou c'est un ensemble d'instructions ?
Et il ne faut faire cela que si on est sur un 6309, il faut donc tester d'abord.

J'ai hâte de tester mon 6309, mais je suppose qu'il faut dessouder le 6809 qui n'est pas sur support ? Sur un to8d.
Le programme :
1) empile les registres A et B puis les flags H, N, Z, V, C.
2) charge A et B (D = B:A) avec les valeurs 2 et 1 respectivement (je peux me tromper dans l'ordre).
3) additionne A et B pour donner B = 3. Cette instruction n'est définie que pour le 6309 !!! le comportement pour le 6809 est indéfini.
4) stocke les registres A et B (D = B:A) en $900D et $900E respectivement.
5) dépile les flags H, N, Z, V, C puis les registres B et A, et enfin le nouveau PC (ici, l'adresse de retour de l'appel de cette routine) qui provoque également un saut à cette adresse dépilée (affectation du PC = saut à cette valeur).
6) définition d'un champ de donnée d'un octet pour contenir A suite au (4)
7) définition d'un champ de donnée d'un octet pour contenir B suite au (4)

Je ne pense pas faire mieux comme explication.

EDIT: je ne sais plus si le 6809 est little ou big endian donc je peux me tromper dans l'ordre.
CrossmanBx
Messages : 146
Inscription : 25 oct. 2022 13:54

Re: [TO8] Remplacement CPU

Message par CrossmanBx »

Très intéressant. Merci Hlide ;)
Répondre