Je cherche aussi des infos sur le 6309 pour voir s'il apporte réellement un gain... J'ai essayé plusieurs jeux Thomson sur DC Moto en mode 6809 ou 6309, je ne vois aucune différence (même en supposant qu'il s'agit du mode natif. Enfin ceci étant, je n'ai pas effectué tant de tests.
Avez-vous déjà entendu parler du 6309, un microprocesseur compatible avec le
6809 mais plus évolué (mais qui est devenu très rare, malheureusement)?
Outre le fait que la totalité des instructions assembleur 6309 sont autorisées et qu'elles prennent (pour la plupart) 1 cycle de moins qu'avec le 6809, le 6309 a des registres en plus (E et F, qui forment le registre 16 bits W (comme A et B pour D) et forment à eux tous le registre 32 bits Q (A+B+E+F)), et des instructions en plus, comme TFM qui permet le transfert de mémoire à mémoire avec des registres indexés et le compteur chargé dans W (j'ai calculé qu'une séquence de PULS/PSHU au plus rapide mettrait 63196 cycles pour transférer une zone mémoire de 16384 octets, alors que l'instruction TFM mettrait, elle, 49158 cycles). Ainsi qu'une opération de multiplication ET de division 8/16/32 bits.
[/quote)
En supposant qu'on fasse autant de PULS et PSHU que nécessaire (c'est à dire en utilisant les registres A, B, X, Y, CC, DP et PC, soit (Nb_Octet/10) séquences sachant que ces instruction prennent chacune (5+nboctet) cycles (Soit 15 cycles pour chacune des 2 instructions), on arrive à 30 cycles pour 10 octets avec PULS/PSHS, donc 3 cycles par octet (mais ça suppose de copier N fois ces instructions... La RAM ne suffirait pas). En théorie on aurait le même nombre de cycle d'horloge que TFM (sui, lui, nécessite 3xNboctets+6 cycles. En fait, cette instruction TFM a l'avantage de prendre peu de place et de ne pas monopoliser les registres.
Par contre, selon ce que j'ai compris, elle ne fait pas une copie mais un "déplacement" d'un endroit à un autre, c'est à dire, je pense, qu'elle met les octets sources à 0 ? C'est ce que la doc anglaise suggère, après, je ne sais pas... Mais ça serait ballot de mettre les octets sources à 0 si on ne veut qu'une copie.
http://koti.mbnet.fi/%7Eatjs/mc6809/Information/6309.techref"The HD63B09EP microprocessor by Hitachi, is a MC68B09E compatible chip containing additional registers and an additional instruction set."
Prehisto a écrit:
Donc il serait possible de simplement remplacer un 6809 par un 6309 sur la carte d'un Thomson, dans la théorie. Dans la pratique, il faudrait changer les timings de certaines opérations, comme pour le disque, par exemple, puisque les mêmes instructions peuvent s'exécuter plus rapidement. Et donc réécrire certaines parties des EPROM et des cartouches. Toujours la même chose quand on touche à la vitesse. Il y a aussi le registre en $FFF0 qui est utilisé comme vecteur de trap (comme sur Amiga), quand le microprocesseur se retrouve à devoir exécuter une instruction illégale, ou lors d'une division par 0, de telle facon que l'erreur soit interceptée, affichée ou traitée éventuellement.
Par ailleurs, le 6309 possède un switch permettant de choisir entre le mode émulation (il fonctionne alors rigoureusement comme un 6809) et le mode natif (les instructions en plus, plus de vélocite, etc, etc...).
A voir si ça vaut vraiment le coup.. Je serais d'avis plutôt d'une nouvelle machine, avec des composants généralistes, un 6309 à 4 MHz, et adapter les jeux trop rapides avec des patch éventuels (réglant le timer notamment ou des variable à multiplier par 4). un 4 MHz sur des jeux comme enduro racer, Crazy cars, les simulateurs de vol, les jeux de labyrinthe 3D... ça ne serait pas un luxe. Et franchement vu les limitation au niveau audio et graphique des thomson parce que le processeur gère tout (contrairement aux concurrent C64, Amstrad, MSX, BBC Micro et ZX Spectrum), vu que ces mêmes concurrents sont quasiment tous avec un Z80 à 4 MHz...