Emulateur

Tout sur le micro français le plus ambitieux mais si malchanceux

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
gilles
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3196
Inscription : 17 avr. 2007 21:25
Localisation : 44
Contact :

Message par gilles » 13 nov. 2007 22:01

gatesbillou a écrit :Très très très impressionant ! quel debut! un debugger tms7000 8O .

Tous les membres du forum sont avec toi, t'a qu'a faire signe. :D

ps : Si ca ce trouve ton projet va paraitre dans "exelement votre - hors série" :wink:
Pour le moment il y a surtout des éléments qui proviennent de MESS, et mon debugger dérivé de celui de mon emu MO5 réécrit pour le lisa et vaguement modifié (le tout dans l'affreux mode GUI d'allegro (que je suis le seul au monde à utiliser...)). Mais bon, c'est un début...

Avatar de l’utilisateur
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7818
Inscription : 24 mai 2002 09:57
Localisation : France 69
Contact :

Message par jvernet » 16 nov. 2007 17:10

Finalement, avez vous réussi à dumper la ROM de l'EXL100 ? J'ai ressorti un des miens, au besoin. Me reste à trouver un cable série kivabien -j'ai le modem avec un port série DB25-.

Sinon, Gilles, j'ai bien un EXL100 en rab, il est dispo. Complet (BASIC, modem, cable peritel et imprimante).
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."

Avatar de l’utilisateur
gilles
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3196
Inscription : 17 avr. 2007 21:25
Localisation : 44
Contact :

Message par gilles » 16 nov. 2007 18:52

jvernet a écrit :Finalement, avez vous réussi à dumper la ROM de l'EXL100 ? J'ai ressorti un des miens, au besoin. Me reste à trouver un cable série kivabien -j'ai le modem avec un port série DB25-.

Sinon, Gilles, j'ai bien un EXL100 en rab, il est dispo. Complet (BASIC, modem, cable peritel et imprimante).
finalement le dump serait présent sur le site MiniOrdi (mais juste un peu caché).

Je prend l'eXL100 (donne moi tes dispos en MP), j'en attend un second d'ebay à priori HS dans qqs jours.

Avatar de l’utilisateur
gatesbillou
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 60
Inscription : 06 oct. 2005 23:48

Message par gatesbillou » 16 nov. 2007 22:02

gilles, rappel toi que j ai aussi un exltel hs , donc si je peux t aider ...

Avatar de l’utilisateur
gilles
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3196
Inscription : 17 avr. 2007 21:25
Localisation : 44
Contact :

Message par gilles » 20 nov. 2007 18:24

bon, pour le moment ca n'avance pas pour cause de bricolage intense. J'ai donc maintenant un EXL100 grace à jérome. J'ai également recu un second EXL100 HS (ebay). Le premier test sera d'identifier la ROM du site MiniOrdi (exl100 ou exeltel) et/ou d'extraire celle d'un exl100

Avatar de l’utilisateur
gilles
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3196
Inscription : 17 avr. 2007 21:25
Localisation : 44
Contact :

Message par gilles » 26 nov. 2007 23:15

l'analyse a donc repris...
et il y a un problème...
cela ne devrait pas marcher...
Le début du boot ne fait pas grand chose, alterner les valeurs sur le bit B3 du 7020 puis ensuite un dépassement de pile se produit.
Ce n'est pas tellement logique...
Donc:
_ soit le dépassement de pile se produit vraiment sur l'exl100 et il faudra l'émuler (la doc texas ne dit rien sur la gestion d'erreur)
_ soit le 7020 exelvision est plus modifié qu'on le pense
_ soit il existe une interruption non masquable qui se produit (alors que le 7020 de base masque toutes les interruptions sauf reset)
_ soit le vecteur de reset n'est pas là ou il devrait etre (FFFE).

Avatar de l’utilisateur
gatesbillou
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 60
Inscription : 06 oct. 2005 23:48

Message par gatesbillou » 27 nov. 2007 22:54

Explication pour tout le monde du probleme :

Un depassement de pile , c'est a dire que tu tombe dans un boucle qui empile plus que la pile ne le permet.
Non , une pile c'est pas un truc avec + et - , c'est un emplacement memoire dans lequel on sauvegarde les registres.
Sur PC on sauvegarde les registre lors de l'appel a une interruption et lors d'un appel à une sous routine (call).
Probleme actuel : Le processeur sauvegarde ses registres , mais la pile (espace memoire qui sert a sauvegarder les registres) est trop court pour recevoir tous les registres qu on demande de sauvegarder (donc bug).

_ soit le vecteur de reset n'est pas là ou il devrait etre (FFFE).

Peut probable selon moi qu'ils aient changé la table des vecteurs d'interruption cela serait beaucoup trop "grave" vis a vis des proto precedent et suivants.

A+

Avatar de l’utilisateur
gilles
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3196
Inscription : 17 avr. 2007 21:25
Localisation : 44
Contact :

Message par gilles » 28 nov. 2007 11:17

je suis actuellement en train de désassembler (et commenter) la ROM du TMS7020. Le code semble assez cohérent. On retrouve bien les 23 TRAP sur des adresses qui semblent OK et un bloc qui ressemble à une séquence de BOOT.
Par contre je n'ai retrouvé que quelques infos sur TRAP 8 et TRAP 9 dans les revues "exelement votre". D'autres infos seraient les bienvenues pour comprendre le code.
Je vais mettre bientot ce source commenté sur le CVS sourceforge.

Avatar de l’utilisateur
gatesbillou
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 60
Inscription : 06 oct. 2005 23:48

Message par gatesbillou » 28 nov. 2007 21:02

BONJOUR ,
Fabrice tente de recontacter les ex-ingenieurs de chez exelvision pour voir s'ils peuvent nous donner un coup de main.

Trap 8 semble positionner le pointeur d ecriture (exelement votre 17-18 page 18 ) (pointeur VDP - video ???)
lien direct : http://www.abandonware-magazines.org/do ... p?num=2138

extrait :
movd b,temp1 ; on positionne l'adresse d'ecriture
trap 8
mov temp5,a ; temp5 contient l'adresse allouee par le basic (lsb)

trap 09 : positionne le pointeur de lecture (exelement votre 17-19 page 16)
trap 10 : mise a jour des pointeurs (exelement votre 17-19)

Avatar de l’utilisateur
Fabrice Montupet
Administrateur
Administrateur
Messages : 11085
Inscription : 17 mai 2002 11:39
Localisation : Nevers - France

Message par Fabrice Montupet » 28 nov. 2007 21:20

J'espère qu'ils seront motivés cette fois-ci! Je ne compte plus le nombre de mails que je leur ai envoyé! A chaque fois, ils m'ont dit qu'il m'apporteraient leur aide mais qu'ils était pas mal occupés ailleurs, mais que cela se ferai. Croisons les doigts :)

Avatar de l’utilisateur
Fabrice Montupet
Administrateur
Administrateur
Messages : 11085
Inscription : 17 mai 2002 11:39
Localisation : Nevers - France

Message par Fabrice Montupet » 28 nov. 2007 22:35

En attendant, si cela peut aider:
TRAP 8: Utilisé pour positionner le pointeur en écriture VDP
TRAP 9: Positionne le pointeur écriture et celui de lecture à la même adresse
TRAP:10 Les positionne à des adresses différentes
Après TRAP 10, il faut exécuter un dummy lecture de la RAM VDP afin de positionner les pointeurs correctement. Les paramètres a fournir sont TEMP1 et TEMP1-1 pour TRAP 8 et TRAP 9, auxquels on ajoute TEMP2 et TEMP2-1 pour TRAP 10, TEMP1, TEMP-1 contiennent toujours l'adresse d'écriture.


Si tu veux d'autres précisions sur les autres TRAP, n'hésite pas :)

Avatar de l’utilisateur
gilles
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3196
Inscription : 17 avr. 2007 21:25
Localisation : 44
Contact :

Message par gilles » 29 nov. 2007 14:56

Fabrice Montupet a écrit :En attendant, si cela peut aider:
TRAP 8: Utilisé pour positionner le pointeur en écriture VDP
TRAP 9: Positionne le pointeur écriture et celui de lecture à la même adresse
TRAP:10 Les positionne à des adresses différentes
Après TRAP 10, il faut exécuter un dummy lecture de la RAM VDP afin de positionner les pointeurs correctement. Les paramètres a fournir sont TEMP1 et TEMP1-1 pour TRAP 8 et TRAP 9, auxquels on ajoute TEMP2 et TEMP2-1 pour TRAP 10, TEMP1, TEMP-1 contiennent toujours l'adresse d'écriture.


Si tu veux d'autres précisions sur les autres TRAP, n'hésite pas :)
J'avais effectivement repéré cette série de TRAP (8 à 10) comme étant liée aux registres du VDP.
Toute info sur les TRAP est bonne à prendre.


Par ailleurs l'opcode 86 semble intéressant. (CHGB sur TMS7000).
quelquepart dans le code de MESS il est indiqué que l'opcode SWAP R0 est modifié sur le TMS de l'exl100 mais cette instruction n'est pas utilisée dans la ROM interne, par contre l'opcode 86 ne semble pas correctement désassemblé, je suppose donc qu'il pourait s'agir du WVDP.

Avatar de l’utilisateur
gatesbillou
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 60
Inscription : 06 oct. 2005 23:48

Message par gatesbillou » 29 nov. 2007 21:13

- Par ailleurs l'opcode 86 semble intéressant. (CHGB sur TMS7000).

je n'ai pas "CHGB" pour l'opcode 86 mais BTJOP A,Pn,Ofst
codée sur 3 octets :?:

opcode 86: If (s) AND (Pn) Diff 0 then (PC) + (offste)->(PC)
if the AND of the source and destination operands diff 0, then PC will be modified to include the offset.

Avatar de l’utilisateur
gilles
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3196
Inscription : 17 avr. 2007 21:25
Localisation : 44
Contact :

Message par gilles » 29 nov. 2007 22:56

gatesbillou a écrit :- Par ailleurs l'opcode 86 semble intéressant. (CHGB sur TMS7000).

je n'ai pas "CHGB" pour l'opcode 86 mais BTJOP A,Pn,Ofst
codée sur 3 octets :?:

opcode 86: If (s) AND (Pn) Diff 0 then (PC) + (offste)->(PC)
if the AND of the source and destination operands diff 0, then PC will be modified to include the offset.
c'est B6 et non 86 (je n'avais pas le listing sous les yeux lorsque j'ai rédigé le message). Cet opcode est suspect dans la gestion d'un TRAP, il semble en fait comporter des arguments.

Avatar de l’utilisateur
gatesbillou
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 60
Inscription : 06 oct. 2005 23:48

Message par gatesbillou » 30 nov. 2007 18:52

XCHB A ; échange le registre B avec le registre A
XCHB R3 ; échange le registre B avec le registre R3

Le seul parametre est le registre que l'on veut echanger avec le registre B

Répondre

Revenir vers « Exelvision »