Logicielsmoto.com

Nous sommes le 28 Mar 2024, 13:37

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 14 messages ] 
Auteur Message
MessagePosté: 14 Jan 2021, 14:46 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
Bonjour

J'avance à grands pas sur la prg assembleurs. Mais j'ai toutefois quelques question qui me viennent sur différents sujet concernant le 6809 (Motorola) ou 6309 (Hitachi)

1/ J'ai vu dans un commentaire de Daniel, qu'il y avait des instructions 6809 non documentées. En regardant dans la doc assembleur V2.0, je vois que tous les opcode de 00 à FF (hormis 10 et 11) sont documentés et que, pour les pages 2 (commençant par 10) et 11 (commençant par 11) il y a beaucoup d'opcodes non documentés s'ils existent. Les opcodes des pages 2 documentés semble avoir l'octet de pod faible se rapprochant de ceux de la page 0.
Avez vous ces opcodes non documentés ? J'avouerais que des instructions du genre LSLD, ASLD, ADDD, m'arrangeraient bien...

2/ En regardant la doc du 6309 sur le site de DCMoto (en Anglais) il y a pas mal de nouvelles instructions vraiment intéressantes comme, notamment, le transfert de bloc comme pour le Z80. Il est écrit dans cette documentation que les transfert mémoire (je suppose à fréquence d'horloge égale) va jusqu'à 4 fois plus vite que sur les 6809 (en plus d'économiser en ressource énergétique). Il y a notamment, les opérations sur l'ALU qui s'effectue sur tous les registres à 16 bits (alors qu'il n'y en a aucun sur 16 bit dans les 6809).
Existe-t-il un assembleur 6309 existant (même si c'est pas forcément sur Thomson) ? Il serait intéressant de faire du code spécifique 6309, notamment pour des scrolling ou des opérations mathématiques complexes (divisions, multiplication sur 32 bits

3/ J'ai vu quelque part dans le forum, qu'il y avait un gcc spécial 6809... Est-il utilisable sur Thomson ? (même si OS/9 Wrap sur Thomson semble programmé avec gcc6809) ? Avec le système Thomson ? Même question avec l'Hitachi 6309


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 14 Jan 2021, 15:11 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 433
Localisation: Var
Salut,

Pour faire un LSLD :
LSLB puis ROLA

Pour faire un ASLD :
ASLB puis ROLA

ADDD existe déjà en 6809 ;-)


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 15 Jan 2021, 10:19 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
Neotenien a écrit:
Avez vous ces opcodes non documentés ?


Fichiers joints:
6809-undefine.png
6809-undefine.png [ 106.46 Kio | Vu 15949 fois ]
Haut
 Profil  
Répondre en citant le message  
MessagePosté: 15 Jan 2021, 11:39 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
Neotenien a écrit:
Existe-t-il un assembleur 6309 existant
J'ai donné les références de celui que j'utilise ici : https://forum.system-cfg.com/viewtopic. ... 1&start=18
Il y en a beaucoup d'autres sur PC, mais pas à ma connaissance sur Thomson.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 15 Jan 2021, 13:41 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
Daniel Coulom a écrit:
Neotenien a écrit:
Existe-t-il un assembleur 6309 existant
J'ai donné les références de celui que j'utilise ici : https://forum.system-cfg.com/viewtopic. ... 1&start=18
Il y en a beaucoup d'autres sur PC, mais pas à ma connaissance sur Thomson.


Super, merci Daniel, ici tu parles de 30% de gain (c'est ce qui est écrit dans la doc officielle sur les cycles d'horloge), mais ce qui est surtout intéressant c'est pour les transfert de blocs de mémoire pour les scrolling (il est écrit un gain jusqu'à 4 fois sur la doc anglaise présente sur le site internet de DC Moto...)

Par contre, comment faire pour intégrer un fichier ASS 6309 compilé sur Windows (Ou me concernant, via Wine), dans un fichier fd ? Est ce possible via DC Moto ? Je pense qu'il serait possible de créer une version parallèle de l'assembleur V3.0 de Thomson pour 6309. Après tout çe ne sont que des ajouts d'instructions dans l'analyseur syntaxique.. Cet assembleur v3.0 est déjà un outils vraiment puissant, je le trouve beaucoup plus rapide que la version 2.

C'est dommage que les Thomson ne peuvent intégrer des processeurs de plus de 1 MHz, mais pour une future machine compatible, et, comme tu l'écris, si quelqu'un s'attaque aux ROM du Basic (après tout, un Basic ça n'est que 16 kO, certes, en assembleur... Et certes il y a pas mal d'instruction en Basic. Mais je ne doute pas qu'un jour ça se fera. (Faire tourner Crazy cars à 4 MHz sur DC Moto, donne vraiment une belle impression!).

Et puis avec les multiplications sur 16/32 bits, division sur 32/16 bits, on pourra avoir même des jeux de labyrinthe 3D non filaire avec remplissage des mur (Par phong ou gouraug) avec des vitesses tout à fait correctes (on serait au niveau des ST si le 6309 était à 4 MHz). Ya quelques jeux sympa de labyrinthe en fil de fer déjà sur Thomson : Labyrinthe 3D (impressionnant de vitesse), Labyrinthe survie et surtout Labyrinthe (par toi-même) http://dcmoto.free.fr/programmes/labyrinthe/index.html.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 15 Jan 2021, 16:25 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
Citation:
comment faire pour intégrer un fichier ASS 6309 compilé sur Windows (Ou me concernant, via Wine), dans un fichier fd ?


moi j'utilise dcfdutil pour copier n'importe quels fichiers de mon HDD vers l'intérieur d'un fichier .fd
http://dcmoto.free.fr/emulateur/index.html

et Omniflop pour copier l'image disk .fd sur une vrai disquette.
http://www.shlock.co.uk/Utils/OmniFlop/OmniFlop.htm

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 15 Jan 2021, 18:13 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
C'est une bonne solution. Il y en a une deuxième : charger le fichier .fd dans dcmoto, charger le fichier binaire (sans l'en-tête thomson) avec l'outil de mise au point et le sauver par SAVEM dans le fichier .fd.
Le fichier .fd doit être ensuite transféré sur une vraie disquette, c'est assez long et pas toujours fiable. Un fichier .sd est plus pratique car il peut être utilisé immédiatement avec l'ordinateur Thomson.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 18 Jan 2021, 16:55 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
Bentoc a écrit:
Salut,

Pour faire un LSLD :
LSLB puis ROLA

Pour faire un ASLD :
ASLB puis ROLA

ADDD existe déjà en 6809 ;-)


Hello Bentoc

Merci d'avoir répondu

Merci pour l'astuce pour obtenir l'équivalence de ASLD, mais je suppose que ça prend + de cycles que l'instruction sur 16bits du 6809 ROLD...

Oui en effet ADDD existe ... mais sur le 6309 il existe des opérations sur 32 bits et ça c'est un énorme plus!! (Par exemple, pour el calcul d'un score sur Bibble Bobble, pas besoin de faire 4 fois une addition 8 bits ou un DA pour ajustement Hexa=>décimal (pour affichage)

Le 6803 a l'air d'avoir pas mal d'opération supplémentaire en 16 et 32 bits n'existant pas sur le 6809 (MUL sur 16=>32 bits, DIVISION sur 32=>16 bits diverses addictions sur 16/32 boits, les ROLL des opérations BAND/BUIAND etc..
Et le fameux transfert de mémoire TFM (une seule instruction pour transférer (et pas copier ?) W (W étant un registre) Octets d'une source vers une destination. Alors que le Move des 68000 ne le fait qu'unité par unité (de Byte,Word ou Long). En terme de cycle ça ne fait pas mieux que si on utilise n fois le PULU/PSHS (en remplissant 10 octets à chaque fois) mais ça ne nécessite ici que quelque octets.

Globalement je pense que le 6309 serait un super calculateur comparé à 6809, avec les opération de DIV et MUL supplémentaires (de ce que j'ai vu en doc) mais que ça n'apporte pas forcément de vitesse supplémentaire (du moins pour les opérations sur la RAM, pas ce qui concerne l'ALU). J'ai testé différents jeux à charge lourde de temps machine sur DC Moto, entre le 6809 et l'émulateur 6309, il n'y a aucune différence déjà (même en mode natif 6309 donc).. Peut-être qu'il y aurait moyen d'améliorer les LM de ces jeux en tenant compte des nouvelles instructions mais le gain serait dans l'ensemble assez minime je pense... En revahche, une fréquence d'horloge à 4 MHz feraient des thomson les plus rapides des ordinateurs 8 bits (meilleurs que ceux ayant un Z80 à 3.5 MHz, c'est à dire Amstrad, MSX, MSX2, Spectrum).


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 18 Jan 2021, 17:00 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
Je vois que les documentations sur le 6309 sont en anglais et la plupart du temps en mode textuel.

Ca pourrait être intéressant de créer une doc en Français avec éventuellement des cas d'amélioration du code 6809 en 6309... Je possède le manuel "Le microprocesseur 6809" de Claude Dardanne (édition Eyroilles) avec une très bonne documentation sur les modes d'adressage du 6809, les instructions les tableaux récapitulatif etc...

Ecrire une doc qui reprendrait les 2 processeurs (avec un signe distinctif pour le 6309) ça pourrait être utile. Jsé pas dans quel format, PDF ? HTML ?


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 18 Jan 2021, 19:50 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
Si tu veux écrire une doc , minimum fait le word ou avec openoffice , puis tu pourras l'exporter en pdf ou html etc... après

ou si tu veux faire ça en vrai, avec adobe inDesign ou un autre logiciel de PAO ...

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 18 Jan 2021, 21:24 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
adnz a écrit:
Si tu veux écrire une doc , minimum fait le word ou avec openoffice , puis tu pourras l'exporter en pdf ou html etc... après

ou si tu veux faire ça en vrai, avec adobe inDesign ou un autre logiciel de PAO ...


Oui ben je suis sous Linux ONLY alors les logiciels Adoble... ça sera sous LibreOffice avec export PDF.

Mais pour la doc sur un site web, l'avantage est qu'on peut copier directement le texte/WISIWIG après une recherche web alors qu'en PDF, pas évident.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 18 Jan 2021, 21:40 
Hors ligne

Inscription: 13 Juin 2005, 21:50
Messages: 290
Localisation: Planete Zorg (31)
Neotenien, oublie le 6309 si tu tentes de réaliser quelque chose car personne ne pourra en profiter sur une vraie machine et ce serait dommage.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 19 Jan 2021, 16:03 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
Mais si ! J'ai un 6309 dans un MO5 et je crois que Jasques Br... en a un dans son TO9+. Il est possible qu'un troisième thomsoniste ait aussi fait l'essai.

Il faut préciser une chose pour le 6309 en mode émulation : toutes les instructions du 6809 sont émulées exactement, avec le même nombre de cycles. Par contre les instructions non documentées du 6809 ne sont absolument pas émulées. Dans ce cas le 6309 exécute ses propres instructions. Je crois même qu'on peut utiliser les registres supplémentaires, mais c'est à vérifier.

Quelques programmes d'Infogrames utilisent l'instruction non documentée $01 pour protéger les jeux commerciaux. Ceux-là ne fonctionnent pas avec le 6309 car l'instruction $01 fait autre chose. J'en ai fait l'expérience et j'ai mis du temps à comprendre l'origine du problème.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 20 Jan 2021, 21:58 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
Daniel Coulom a écrit:
Mais si ! J'ai un 6309 dans un MO5 et je crois que Jasques Br... en a un dans son TO9+. Il est possible qu'un troisième thomsoniste ait aussi fait l'essai.

J'ai un MO5 mais je ne sais pas si je peux remplacer le 6809 par un 6309 sans désouder LOL
Ceci étant, le but est de savoir si ça vaut vraiment le coup d'avoir un 6309, sans accélération d'horloge (même en mode natif), le 6809 me parait déjà avoir des instruction utilisant globalement très peu de cycles (de 2 à 6 en général à part le MUL qui en prend 11 mais reste très en dessous de l'algorithme optimal pour créer la même multiplication).

Ce qui vaut le coup par contre, ce sont les multiplications sur 16>=32 bits, division sur 32=>16 bits, le registre d'erreur, le régistre 0 et l'instruction TFM (copie de blocs de mémoires, même le 68000 n'a pas ça!). Ca peut valoir le coup pour des nouvelles appli utilisant les calculs mathématiques (vu que nombres de fonction peut s'écrite sous forme de séries, ça fera un gain énorme en temps de calcul comparé au 6809) ou des jeux utilisant le scrolling et c'est là où ça peut être intéressant!! Pour avoir des jeux au niveau des C64 ou Atari XL (à condition d'avoir une bonne vitesse d'horloge, 1 MHz pour moi c'est trop faible pour tout faire)... Un 6309 à 4 MHz sur du Thomson permettrai d'avoir des scrolling plus rapide que sur de l'Atari ST.

Daniel Coulom a écrit:
Il faut préciser une chose pour le 6309 en mode émulation : toutes les instructions du 6809 sont émulées exactement, avec le même nombre de cycles. Par contre les instructions non documentées du 6809 ne sont absolument pas émulées. Dans ce cas le 6309 exécute ses propres instructions. Je crois même qu'on peut utiliser les registres supplémentaires, mais c'est à vérifier.


Oui je crois avoir lu ça (je vérifiera). Le 6309 en mode émulation a exactement les mêmes cycles et ça utilise les instructions supplémentaires.

Daniel Coulom a écrit:
Quelques programmes d'Infogrames utilisent l'instruction non documentée $01 pour protéger les jeux commerciaux. Ceux-là ne fonctionnent pas avec le 6309 car l'instruction $01 fait autre chose. J'en ai fait l'expérience et j'ai mis du temps à comprendre l'origine du problème.


Je viens de me rendre compte qu'il y a effectivement plein d'instructions manquantes sur le 6809 (il y en a 31 entre le $00 et le $8F) mais dans la doc de l'assembleur 6809 il est expliqué que des instructions du 6800 ont été supprimées dans le 6809 et il s'agit sans doute de celles-là qui n'apparaissent, par conséquent plus, dans le jeu d'instruction du 6809 ?


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 14 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 38 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com