Voici des résultats de tests discutés sur le forum dcexel de Daniel il y a un moment de ça (merci de l'avoir laissé actif, il y a pleins de trucs dont je n'avais pas souvenirs):
DECD A est équivalent à DEC A dans le résultat.
ni R1, ni R127 ne sont modifiés.
Peut être que le registre le plu significatif est R255 (dont la valeur est $FF et pas $00 comme le renvoie DcExel
, tous ces registres de R128 à R255 renvoie la valeur $FF ... Daniel tu devrais vraiment vérifie sur Exl100 parfois
)
Donc finalement C n'est jamais modifié.
J'ai oublié de tester les bits N et Z pour vérifier l'hypothèse de R255... to be continued.
SWAP R1 plante la machine, donc semble équivalent à LDVDP... je n'ai pas testé plus loin si LDVDP a été réalisé effectivement.
SWAP R0 ne plante pas la machine mais R0 contient la valeur $FF après l'opération... je ne sais pas si autre chose se passe mais ça ne semble pas avoir modifié les pointeurs du VDP (sinon le BASIC aurait planté).
Je fais le test pour connaître la valeur Status Register après DECD A:
Code: Tout sélectionner
A DECDA ST
FF FE C0
00 FE C0
01 00 C0
02 01 C0
Donc C=1 N=1 Z=0 dans tous les cas !
Ensuite on a bien vérifié que l'instruction SWAP n'existait plus, mais bel et bien remplacé par des instructions micro-codés pour piloter le VDP... Daniel avait modifié dcexel à partir de ces résultats.
Il y a surement d'autres tests à faire, mais de mémoire je n'avais rien noté car comme déjà dit, rien d'intéressant... d'exploitable.
Quand vous en serez à l'accès au VDP et de l'usage de ses pointeurs, j'ai encore qqs notes sur nos découvertes (non documentées). Et sur qqs désassemblage/analyse de portions de codes exlbasic. Et bien sur, des notes sur l'usage du second CPU (TMS7041) pour accéder à certaines fonctionnalités rigolotes (comme le pilotage d'un second Timer). J'avais du demander à Daniel d'implémenter tout ça pour le fun... mais on sort du cadre "initiation".
Dans l'absolu ne pas oublier que la série TMS7000 est un micro-contrôleur pour l'embarqué (voiture, matos divers, etc.) et donc cela explique pas mal de choix dans son architecture: il se suffit à lui-même avec une ROM pour le code et une petite SRAM pour les calculs/variables, et super simple à coder. Le CPU est prévu pour que ses instructions soient facilement customisable en fonction des besoins (micro-codé) et dipose aussi d'une petite ROM interne pour même éviter une ROM externe.
Le VDP TMS3556 intégré à la série Exl est aussi une idée géniale, il lui manquait juste des fonctions hardware pour être vraiment exploitable (déplacement hardware de blocs mémoires VDP en interne au moins).
Pour m'exciter il suffit de reparler de cette machine...