Logicielsmoto.com

Nous sommes le 28 Mar 2024, 13:50

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 281 messages ]  Aller à la page Précédente  1 ... 15, 16, 17, 18, 19  Suivante
Auteur Message
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 30 Déc 2020, 12:50 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
ha oui c'est mieux même tiens, je l'avais pas vu suis là :good:

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 31 Déc 2020, 04:38 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
question ?

A quelles adresses sont stockés les 16 valeurs des palettes de couleurs ?
c'est pour les modifier en temps réel dans le debugger de DCMOTO pour tester et voir des couleurs "in game"

merci.

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 31 Déc 2020, 09:06 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
C'est en ETDA/E7DB mais elles ne sont pas accessibles au débuggeur (ca n'est pas un tableau).

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 02 Jan 2021, 15:13 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
Samuel Devulder a écrit:
Oui un Hitachi dans les machine de seconde génération et on aurait assurément fait des trucs aussi bien voir mieux que sur CPC (à part coté son où il nous manque cette chip indépendante.) Après le ST et l'amiga ont aussi plus de Mhz et de résolution graphique. Mais face aux 8bits, ca aurait donné des trucs sympa.


Carrément!! En plus c'est du 4 MHz, et j'ai testé Enduro Racer et Crazy Cars sur DC Moto en 4 MHz, c'est carrément une vitesse de jeu d'arcade!! Les C64, ZX Spectrum et autre CPC sont carrément largué (les ZX Spectrum et CPC ont un proc a 3.8 MHz quand même). Le suel hic est pour l'audio qui est aussi multiplié par 4 en fréquence donc pas terrible LOL. Je vais peut-être faire une vidéo là dessus tiens en testant les jeux à vitesse "tendu" sur Thomson. (Enduro Racer, Crazy Cars, Arche du Captain Blood,.. )... Et avec ces nouvelles instruction de division etc... Ca pourrait éventuellement servir pour des jeux 3 D comme "des laser et des hommes" (Atari Falcon).

J'ai évoqué dans un message la possibilité d'une "console"ou boitier d'ordinateur ayant un Hitashi à 4 MHz compatible TOMO, avec 2 boot possible, le mode système Thomson et Mode 6809 pour le processeur (avec les bon modes vidéos), avec également une puce synthé (quoiqu'à 4 MHz, le CNA suffirait, voir l'Atari STE), et un mode "full", avec des modes graphique du genre 640x480 256 couleurs (comme sur le MSX2 ?)... une puce qui émulerait ces modes graphique avec des modes étendus... + de RAM aussi éventuellement ? Pour tenir compte de cet accélération, il y aurait juste à changer les parties concernant le Timer dans la ROM des Thomson (si je ne m'abuse ça ne doit pas demander une foule de changements)

C'est la grande mode en ce moment!! Après le succès du FireBee (sorte de super Atari Falcon 100 fois plus rapide) sorti en 2014, il est sorti une console compatible C64, et une autre compatible Atari VCS 2600.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 02 Jan 2021, 20:42 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
Inutile de rêver, les ordinateurs Thomson c'est 1 MHz et pas 4 MHz.

Par contre le 6309 en mode natif apporte un gain de vitesse important pour celui qui sait l'utiliser. Il est 30% plus rapide en moyenne (et encore plus pour certaines routines) grâce au plus petit nombre de cycles par instruction, mais surtout aux registres supplémentaires et aux opérations entre registres.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 03 Jan 2021, 11:33 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Oui faire une addition de deux registres sur 6309 sans se payer un accès ram change carrément la donne. Les registres en plus sont aussi les bienvenus car, encore une fois, cela réduit la nécessité d'utiliser la ram dont les accès sont relativement longs (sur registre: inca = 2 cycles, en ram: inc = 6 cycles)..

Attention aussi aux 4Mhz du Z80... Une instruction chez eux prends minimum 4 cycles (sans compter les temps d'attente de la RAM), donc aux max le Z80@4mhz développe 1 mips. Sur 6809, un instruction minimale est de 2 cycles, soit au max 0.5 mips :non:

Maintenant les instructions 6809 sont plus puissantes que celles du Zx80, donc ca s'équilibre en pratique :oui: avec un léger avantage au Z80 et sa double banque de registres, mais il faut être un sacré bon programmeur pour en tirer parti (cf UTZ qui joue des échantillons audio en PWM 22khz sur le buzzer du spectrum alors que sur 6809 j'atteint péniblement une restitution avec une porteuse dégueu à 5khz)

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 17 Mar 2021, 00:17 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
Question con !

PSHS A,B,X,Y,U
et
PSHS D,X,Y,U

C'est strictement identique ? en poids vitesse ou autre ?

pour moi je pense que oui, mais au cas où j'ai loupé un truc :W

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 17 Mar 2021, 06:12 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Oui, c'est exactement le même code machine (hexadécimal).

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 17 Mar 2021, 11:54 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
adnz a écrit:
Question con !

PSHS A,B,X,Y,U
et
PSHS D,X,Y,U

C'est strictement identique ? en poids vitesse ou autre ?

pour moi je pense que oui, mais au cas où j'ai loupé un truc :W


En effet, l'Assembleur attribut les "bit" des registres concernés en opérande (8 bits) de PSHS. Ils sont toujours lu dans le même ordre de la RAM (PC, U/S, X, Y, DP, B, A, CCR)

Ici, si par exemple, S était en $8000,
le contenu de $8000 et $7999 ira dans U, de $7998 et $7997 en X, celui de $7996 et $7995 en Y, $7994 en B, $7993 en A et S pointera sur $7992.

Lors du PULS, le dépilement se fera dans l'ordre inverse mais l'adressage se fera dans le sens + cette fois, ce qui fait qu'on retrouvera exactement le même ordre de données.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 17 Mar 2021, 12:31 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
Samuel Devulder a écrit:
Oui faire une addition de deux registres sur 6309 sans se payer un accès ram change carrément la donne. Les registres en plus sont aussi les bienvenus car, encore une fois, cela réduit la nécessité d'utiliser la ram dont les accès sont relativement longs (sur registre: inca = 2 cycles, en ram: inc = 6 cycles)..

Attention aussi aux 4Mhz du Z80... Une instruction chez eux prends minimum 4 cycles (sans compter les temps d'attente de la RAM), donc aux max le Z80@4mhz développe 1 mips. Sur 6809, un instruction minimale est de 2 cycles, soit au max 0.5 mips :non:

Maintenant les instructions 6809 sont plus puissantes que celles du Zx80, donc ca s'équilibre en pratique :oui: avec un léger avantage au Z80 et sa double banque de registres, mais il faut être un sacré bon programmeur pour en tirer parti (cf UTZ qui joue des échantillons audio en PWM 22khz sur le buzzer du spectrum alors que sur 6809 j'atteint péniblement une restitution avec une porteuse dégueu à 5khz)


Justement j'ai vérifié le jeu d'instruction du Z80 ici http://map.grauw.nl/resources/z80instr.php et on voit que rien que pour les INC et DEC, le Z80 prnd au moins 2 fois plus de temps que le 6809... Il y a de très nombreuses instruction dépassant les 10 cycles (alors que ça dépasse rarement les 6 pour le 6809), donc en effet, dire que le 6809 1MHz vaut au moins un ZX80 à 2 MHz n'st pas usurpé. Mais le Z80 se dit apparemment "RISC" et semble utiliser la techno du Pipe line! En théorie ça signifie que des ensembles d'instruction à la chaine prendraient moins de temps que si on additionnait ces instruction 1 à 1 (enfin ça c'est en théorie : parce qu'il y a 3 phase dans l'exécution d'une instruction dans la techno pipe line... Pendant qu' l'instruc 1 arrive en phase 3, l'"inst2 fait la phase 2 et l'inst3 la phase 1)

Le Z80 a en tout 13 registres de 16 bits https://fr.wikibooks.org/wiki/Programmation_Assembleur_Z80/Registres, ça lui confère un des avantage des processeurs RISC (comme les ARM Accorn). C'est nettement mieux que les 4 registres 8 bits et 4 registres 16b du 6809.
Mais avec le 6309, on a 9 registres 16 bits (dont 2 accumulateurs 16 bits) et 3 registres 8 bits, ce qui est plus intéressant. Et avec les instruction de MUL, DIV sur 16/32 bits, les transfert interregistres, l'instruction de copie de bloc en rafale (une seule sinstruction pour transférer des centaines voire milliers de kO c'est pas mal).


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 17 Mar 2021, 14:57 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
Sans compter que nos 4 registres 16 bits ne sont pas des accumulateurs, mais des pointeurs d'adresse auxquels on peut juste ajouter des constantes.

Si on veut faire un décalage à gauche de X, on peut pas faire de LEAX X,X, et c'est bien dommage. On est obligé de passer l'accu D, et se taper deux EXG à 8 cycles chacun, ce qui nous fait une opération à 20 cycles (EXG D,X + LSLB + ROLA + EXG D,X). On aurait les EXG à 3 cycles, qu'on serait les rois du pétrole. Tiens c'est pile le nb de cycles pour le 6309.

En voilà un processeur super bien pensé (sans compter qu'on peut y faire de l'artihmétique entre deux registres quelconques: ADD X,Y et aussi ADD X,X ce qui revient à faire X=X*2). Ce processeur aurait été choisi en standard à partir du TO8 que je m'éclaterais un max à coder des trucs qui vont le plus vite possible, car sur 6809 on est souvent obligé de passer par de la mémoire et là ca coûte très très cher en cycles: TST <mem> nous est facturé 7 cycles mini et des trucs comme CLR $nnnn,REG sont à plus de 10 cycles et là c'est pas trop l'éclate en vrai.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 26 Mar 2021, 13:39 
Hors ligne

Inscription: 24 Juil 2010, 16:08
Messages: 454
Localisation: France
Bonjour,

C'est facile de rêver à un CPU à 4MHz, mais il faut garder en tête qu'il n'y a pas que le CPU qui entre en jeu. En fait, et ça a été un problème pour tous les micro ordinateurs, le gros souci, c'est d'arriver à partager la RAM entre le CPU et l'affichage.

En gros il faut arriver à ce que l'électronique qui gère la vidéo et le CPU puissent bien accéder aux données chacun son tour. Et finalement c'est l'affichage qui va un peu cadencer les choses.

Sur les premières générations de machines Thomson, on exploite le fait que le 6809 n'accède à la mémoire que dans certaines phases (si on regarde le détail, on peut voir que le 6809 a en fait besoin de 2 horloges à 1MHz décalées l'une par rapport à l'autre, et fait donc en fait plusieurs choses dans un cycle de 1MHz).

On peut donc faire à tour de rôle, un accès CPU, un accès vidéo, etc. Et pour avoir des modes vidéos avec une résolution un peu plus élevée, Thomson a conçu la machine avec 16 puces de mémoire. Les accès vidéos accèdent aux 16 puces en même temps (8 pour la mémoire forme, 8 pour la mémoire couleur) et donc on pourrait presque dire que c'est une machine 16 bits. Par contre le CPU fait des accès 8 bits n'utilisant que la moitié des puces.

Dans les années suivantes, les puces de mémoire sont devenues de capacités de plus en plus grandes. Normalement cela aurait permis de réduire les coûts en faisant des machines avec moins de puces, mais chez Thomson, pas le choix, il fallait conserver 16 bits de mémoire. Ce qui explique pourquoi le TO9 se retrouve avec 128Ko de mémoire: 16 puces de 64K x 1bit chacune.

Ensuite, pour les MO6 et TO8, l'approche utilisée est différente. L'accès à la mémoire vidéo se fait sur 8 bits, mais une astuce est utilisée pour faire 2 accès successifs très rapides dans le temps libre laissé par le 6809. C'est possible parce que les 2 accès (1 pour la page forme, un pour la page couleur) sont faits à des adresses "symétriques" dans les 2 pages. Ce qui permet de sauter quelques étapes pour le deuxième accès à la mémoire. C'est le fameux "gate array mode page".

Ceci a permis de faire le TO8 avec seulement 8 puces de 256K x1 bit chacune. Sinon Thomson aurait été obligé de mettre 512K dans la machine pour avoir 16 puces de 256K, ou de rester à 128K comme sur le TO9 en utilisant des puces de 64K.

En tout cas, impossible dans ces conditions de changer la vitesse du CPU sans être obligé de réduire la résolution vidéo. Ou éventuellement d'utiliser de la RAM plus rapide, mais plus chère, mais ce n'était pas envisageable pour le TO7, et pour les machines suivantes ça aurait posé des problèmes de compatibilité avec les logiciels existants.

C'est ce qui a fini par faire le succès du PC et du Macintosh: le choix des fabricants d'avoir assez tôt fait plusieurs modèles avec des configurations différentes, obligeant les développeurs de logiciels à prendre ces différences en compte, et à utiliser les appels à la ROM plutôt que d'accéder directement au matériel. Ce qui a permis ensuite aux machines d'évoluer sans avoir trop de problèmes de compatibilité.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 26 Mar 2021, 19:04 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
Merci pour ces précisions :jap:

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 03 Avr 2021, 15:24 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 366
Mouai enfin, en même temps, quand avec quasiment la même architecture, (TO7/70 et MO5) les 2 ROM diffèrent par leurs emplacements en RAM de la Vidéo, du moniteur etc... Alors qu'on aurait pu avoir des logiciels écrit pour les 2 machine en assembleur sans devoir changer les adresse RAM des appels système.
Je me suis rendu compte de ça en écrivant les procédures des routines ASSM pour "Pascal Base", ces routines assm ne diffèrent QUE par les adresses Système entre les version TO et MO... C'est un truc de ouf.

Autre chose aussi, pourquoi n'est-il pas possible de changer la durée de l'IRQ en ASSm pour le MO5 ? Ca fait que seul les TO sont capable de faire des trucs sympa avec les interruptions (non figée) comme c'est le cas pour Mission LiftOff...

A côté de ça, les Basic sont eux parfaitement adaptés aux différents systèmes TO7 et TO8... Donc que la RAM change ou le processeur diffère ça n'a pas d'importante ya juste qu'à réécrite les routines systèmes! Pour un nouvel ordinateur Thomson (ou une console) avec le 6309 à 4 MHz, il suffit d'avoir la ROM réécrite pour que la durée des interruptions soit x4 (Si on utilise l'ancien système des MOTO) ou d'utiliser un nouveau système (une autre ROM, basé sur l'ancien), et une autre entrée (On va dire G sur TO8) pour un nouveau système avec carte graphique ayant une résolution plus élevée (du 32 ou 64 kO... jsé pas)

Le 6309 à 4 MHz est quand même à 1.6 MIPS au moins, c'est supérieur à l'Amiga ou au ST...(qui sont à environ 1 MIPS). Même si ya le problème des accès 16 bits en 2 cycles (8 bits oblige),

Mais j'ai cru lire quelque part que quelqu'un avait réussi à mettre un 6309 à 1 MHz dans un Thomson ?


Dernière édition par Neotenien le 04 Avr 2021, 20:25, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 03 Avr 2021, 19:15 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 681
Localisation: Provence (France)
Neotenien a écrit:
Mais j'ai cru lire quelque part que quelqu'un avait réussi à mettre un 6309 à 1 MHz dans un Thomson ?

Ce n'est pas un exploit, il n'y a rien de spécial à faire, juste remplacer le 6809E par un 6309E.
Nous en avons souvent discuté dans les forums, c'est le moyen le plus simple pour écrire des programmes plus rapides, en utilisant le mode natif du 6309, les nouvelles instructions et les registres supplémentaires.


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 281 messages ]  Aller à la page Précédente  1 ... 15, 16, 17, 18, 19  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 29 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 à:  
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com