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...gatesbillou a écrit :Très très très impressionant ! quel debut! un debugger tms7000 .
Tous les membres du forum sont avec toi, t'a qu'a faire signe.
ps : Si ca ce trouve ton projet va paraitre dans "exelement votre - hors série"
Emulateur
Modérateur : Politburo
- gilles
- Fonctionne à 9600 bauds
- Messages : 3100
- Enregistré le : 17 avr. 2007 21:25
- Localisation : 44
- Contact :
- jvernet
- Fonctionne à 14400 bauds
- Messages : 7958
- Enregistré le : 24 mai 2002 09:57
- Localisation : France 69
- Contact :
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).
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."
- gilles
- Fonctionne à 9600 bauds
- Messages : 3100
- Enregistré le : 17 avr. 2007 21:25
- Localisation : 44
- Contact :
finalement le dump serait présent sur le site MiniOrdi (mais juste un peu caché).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).
Je prend l'eXL100 (donne moi tes dispos en MP), j'en attend un second d'ebay à priori HS dans qqs jours.
- gatesbillou
- Fonctionne à 75 bauds
- Messages : 60
- Enregistré le : 06 oct. 2005 23:48
- gilles
- Fonctionne à 9600 bauds
- Messages : 3100
- Enregistré le : 17 avr. 2007 21:25
- Localisation : 44
- Contact :
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).
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).
- gatesbillou
- Fonctionne à 75 bauds
- Messages : 60
- Enregistré le : 06 oct. 2005 23:48
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+
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+
- gilles
- Fonctionne à 9600 bauds
- Messages : 3100
- Enregistré le : 17 avr. 2007 21:25
- Localisation : 44
- Contact :
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.
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.
- gatesbillou
- Fonctionne à 75 bauds
- Messages : 60
- Enregistré le : 06 oct. 2005 23:48
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)
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)
- Fabrice Montupet
- Administrateur
- Messages : 11106
- Enregistré le : 17 mai 2002 11:39
- Localisation : Nevers - France
- Fabrice Montupet
- Administrateur
- Messages : 11106
- Enregistré le : 17 mai 2002 11:39
- Localisation : Nevers - France
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
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
- gilles
- Fonctionne à 9600 bauds
- Messages : 3100
- Enregistré le : 17 avr. 2007 21:25
- Localisation : 44
- Contact :
J'avais effectivement repéré cette série de TRAP (8 à 10) comme étant liée aux registres du VDP.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
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.
- gatesbillou
- Fonctionne à 75 bauds
- Messages : 60
- Enregistré le : 06 oct. 2005 23:48
- 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.
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.
- gilles
- Fonctionne à 9600 bauds
- Messages : 3100
- Enregistré le : 17 avr. 2007 21:25
- Localisation : 44
- Contact :
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.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.
- gatesbillou
- Fonctionne à 75 bauds
- Messages : 60
- Enregistré le : 06 oct. 2005 23:48