Emulateur

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

Modérateur : Politburo

Répondre
Torlus
Administrateur
Administrateur
Messages : 1266
Enregistré le : 15 oct. 2005 22:33
Contact :

Message par Torlus »

Ah oui, y'a même les schémas sur le site de Fabrice ;)
Le TAL a pas l'air de faire grand chose, par contre le TMS7020 possède à priori une ROM intégrée...
"Pour finir, faut commencer."
"Il faut être un peu félé pour laisser passer la lumière".
Avatar du membre
Fabrice Montupet
Administrateur
Administrateur
Messages : 11106
Enregistré le : 17 mai 2002 11:39
Localisation : Nevers - France

Message par Fabrice Montupet »

Torlus a écrit :Ah oui, y'a même les schémas sur le site de Fabrice ;)
Le TAL a pas l'air de faire grand chose, par contre le TMS7020 possède à priori une ROM intégrée...
Le TAL004 fait un peu plus que pas grand chose. Je l'indique sur le site :)
Torlus
Administrateur
Administrateur
Messages : 1266
Enregistré le : 15 oct. 2005 22:33
Contact :

Message par Torlus »

Bah, ça n'a l'air de faire que du décodage d'adresse, plus le masque d'IRQ à première vue.
Tu as le datasheet du VDP ?
"Pour finir, faut commencer."
"Il faut être un peu félé pour laisser passer la lumière".
Avatar du membre
gatesbillou
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 60
Enregistré le : 06 oct. 2005 23:48

Message par gatesbillou »

J'ai le datasheet du 5220 si ca interresse (synthetiseur vocale).
Pour ce qui est du TMS7000 j'ai deja mis le lien ici :

viewtopic.php?t=253&postdays=0&postorder=asc&start=45

Aujourd'hui je me suis fait donné un désasembleur de BIOS (XDASM) il va nous permettre de désassembler le code du TMS7000 dès qu'on l'aura récupéré, j'ai aussi récupéré un assembleur TMS7000 ,DONC , on peut faire ce qu'on ferait avec EXELMAX normalement appart qu'il faut transferer le fichier a chaque fois :-(

ps :J'ai scanné le dernier numero d'exelement votre , il sera bientot dispo sur abandon magazine et je scanne le numero 16 dès que possible.

Pour gilles : Manuel technique ,schema,etc .. on doit trouver tout ca normalement ; fabrice a fait une grosse partie du travail ; les opcodes asm on les a déja avec le codage binaire et le temps pour chaque instruction :-)
reste a savoir programme un émulateur .....
Pour ce qui est du TMX3556 (donc un TMS3556) l'émulateur XMAME le connait déja puisque Raphael Nabet a écrit un émulateur :

http://www.visionlab.uncc.edu/websvn/fi ... ev=74&sc=1

Le TMS7020 a 2Ko de ROM (de sure) et le TMS7041 doit en avoir 4 mais c'est a verifier.
Torlus
Administrateur
Administrateur
Messages : 1266
Enregistré le : 15 oct. 2005 22:33
Contact :

Message par Torlus »

Excellent, il y a le datasheet de la famille TMS7000.

Apparemment, la map mémoire est unifiée, ce qui veut dire qu'on devrait pouvoir récupérer le contenu de la ROM interne avec un simple petit programme.

Ca a l'air d'être confirmé par ce qu'il est écrit dans la doc tms7000assembly, en intro du chapitre 3.2.2.
"Pour finir, faut commencer."
"Il faut être un peu félé pour laisser passer la lumière".
Avatar du membre
gatesbillou
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 60
Enregistré le : 06 oct. 2005 23:48

Message par gatesbillou »

Pour répondre à ma question , voici le code désassemblé du POKE qui désactive la protection en lecture.
Pour rappel :

- Pour empêcher la lecture du code source d'un programme Basic :
CALL POKE(50500,136,15,0,14,246,215,1,36,32,130,46,10):CALL EXEC(50500)
-> pour rendre à nouveau lisible le code source, refrapper la même commande en remplaçant le 36 par un 37

deproteger :
MOVD %00F00H,00EH
TRAP 9
SWAP 001H
OR %020H,A
MOVP A,12EH
RETS

proteger :
MOVD %00F00H,00EH
TRAP 9
SWAP 001H
XOR %020H,A
MOVP A,12EH
RETS

Essai d'explication :
1) Met à l'adresse %00FF00h la valeur 00Eh
2) Appel sous-programme 9 (qui fait quoi ?)
3) Interverti les 4 premiers et les 4 derniers bits du registre numero 1 (A?)
4) Ou exclusif de A avec l'adresse %020h
5) Transfert A sur le port 12Eh ?????
6) Retour au programme appelant (retour au programme basic).

Le 36 dans la ligne POKE correspond à on OU INCLUSIF alor que le 37 correspond à on OU EXCLUSIF (pour rappel OR ->Inclusif alors que XOR ->Exclusif).

Le désassemblage semble correct dans les opcodes décodés (verif manuelle).

Puisque j'y suis je continue :

- Pour effacer la ligne de service... celle avec <shift> <radian> :
CALL POKE(50432,162,5,45,162,137,45,10,162,5,45,162,200,45,10):CALL EXEC(50432)

MOVP %005H,12DH
MOVP %089H,12DH
RETS
;
MOVP %005H,12DH
MOVP %0C8H,12DH
RETS

PS : A propos du VDP (Video Display Processor) il y a des infos sur Exelement votre numero 15 à la page 35).
Avatar du membre
gilles
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3100
Enregistré le : 17 avr. 2007 21:25
Localisation : 44
Contact :

Message par gilles »

gatesbillou a écrit :
Pour gilles : Manuel technique ,schema,etc .. on doit trouver tout ca normalement ; fabrice a fait une grosse partie du travail ; les opcodes asm on les a déja avec le codage binaire et le temps pour chaque instruction :-)
reste a savoir programme un émulateur .....
Pour ce qui est du TMX3556 (donc un TMS3556) l'émulateur XMAME le connait déja puisque Raphael Nabet a écrit un émulateur :

http://www.visionlab.uncc.edu/websvn/fi ... ev=74&sc=1

Le TMS7020 a 2Ko de ROM (de sure) et le TMS7041 doit en avoir 4 mais c'est a verifier.
En tout cas ce ne serait pas la premiere fois que je parcours du code de Raphael. Il avait bien avancé le support du lisa sur mame (mais avait oublié l'essentiel (à savoir le support des erreurs de bus)).

Pour écrire un émulateur (soft), plusieurs options sont possibles. L'une d'entre elle étant de développer un driver mess (extension de mame pour les ordis). le code à développer sera réduit mais cela peut être un piège si des mauvais choix ont été faits pour l'émulation des composants repris.
Sinon le dev from scratch est toujours interessant. Pour ma part je commencerai probablement en java, je pense que ce langage a un bon potentiel pour l'émulation (voir thread thomson).
Avatar du membre
gatesbillou
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 60
Enregistré le : 06 oct. 2005 23:48

Message par gatesbillou »

Je ne sais programmer qu'en pascal et en assembleur x86.
Pour ce qui est de l'annalyse du code assembleur TMS7000 c'est pas si difficile que ca , je peux me charger de l'interpreter.

Par contre pour ce qui est de créer un emulateur , c'est autre chose ; je ne connais pas le java , mais j'ai quand même un doute sur ses capacitées a pouvoir faire ce qu'on veut ,je penche plutot sur le C ou Le Pascal ou l'assembleur (gilles ,si tu t'y connais en java dis nous si c'est possible ou pas).

Un emulateur c'est pas pour demain mais c'est pas perdu , surtout que je me rend compte tous les jours qu'il n'est pas si compliqué que ca cet exeltel ; en fin de compte c'est que deux ingenieurs qui on tout fait , donc avec du temps on dois comprendre nous aussi , puis dans tout les cas , on ne perd pas de temps à l'étudier :-)

Si seulement on avait la méthode pour créer un emulateur ...
Bon , moi je vais essayer dans mon coin d'émuler le TMS7000,jecontinue à explorer les codes asm et je scanne mes documentations.
Torlus
Administrateur
Administrateur
Messages : 1266
Enregistré le : 15 oct. 2005 22:33
Contact :

Message par Torlus »

En Java c'est possible of course.
Gilles, si tu te lances et que je peux aider, pas de souci ;)

Bon après il faut bien avouer qu'un driver MESS ça serait la grande classe ;) mais ça peut être étudié dans un 2eme temps.
"Pour finir, faut commencer."
"Il faut être un peu félé pour laisser passer la lumière".
Avatar du membre
gilles
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3100
Enregistré le : 17 avr. 2007 21:25
Localisation : 44
Contact :

Message par gilles »

c'est clair que j'ai bien envie de bosser sur le sujet.
Je me suis imprimé la doc texas sur les processeur 7000 et effectivement cela semble relativement classique (meme si fiabiliser un nouveau code d'emulation de processeur est toujours un peu long).
Il est possible d'écrire l'emu en C, C++, java, voire en ASM mais pour moi le plus simple sera C ou java. J'ai déjà pas mal de code pour faire un emu en C donc pour une première version ce serait probablement le meilleur choix.

Je propose de créer un projet sur sourceforge, cela permettra au moins de mettre les docs en commun.
Avatar du membre
gatesbillou
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 60
Enregistré le : 06 oct. 2005 23:48

Message par gatesbillou »

Pour moi aussi c'est bon , si tu veux je peux t'apporter mon aide .
Avatar du membre
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7958
Enregistré le : 24 mai 2002 09:57
Localisation : France 69
Contact :

Message par jvernet »

Cool, ça, plein de talents sur cet emulateur manquant !

Si je peux aider, ce sera avec plaisir. Pensez à nous (MacUser PPC), evitez les machins Windows Only !
"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 du membre
gilles
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3100
Enregistré le : 17 avr. 2007 21:25
Localisation : 44
Contact :

Message par gilles »

une bonne nouvelle de plus: il y a déjà un émulateur de TMS70x0 (donc de 7020) dans MESS. MESS étant GPL il est possible de repartir de ce code (avec tous les "credits" qui vont avec bien entendu).

par contre il implémente visiblement le mode singlechip uniquement alors qu'il me semble que l'exl100 soit en full expanded.

[edit]

en regardant les sources MESS de plus près, il y a bien un driver EXL100/EXELTEL incomplet.
Avatar du membre
gatesbillou
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 60
Enregistré le : 06 oct. 2005 23:48

Message par gatesbillou »

" Les composants "monochip" peuvent fonctionner seuls ou en mode étendu, c'est dans ce deuxième mode que le TMS7020 fonctionne dans l'EXL100. " extrait de l'exelent site de fabrice : http://perso.orange.fr/fabrice.montupet/exl100.htm

Le TMS7020 à 2Ko de ROM et utilise ses port d'entrée-sortie pour adresser la memoire supplementaire (puisque mode étendu).
Il faut don recupérer la ROM du TMS7020 et l'integrer à l'émulateur dans un tableau de 2ko ; comme le dit Torlus ca doit être possible de le lire.
Avatar du membre
gilles
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3100
Enregistré le : 17 avr. 2007 21:25
Localisation : 44
Contact :

Message par gilles »

je pense que je vais bricoler un petit quelquechose ce soir... mais il manquera la ROM effectivement.
Je dois regarder un peu plus en détail l'architecture du 7020 mais il ne semble pas y avoir de protection particulière.
Par contre, pour avancer il me faudra la bête...
Répondre

Retourner vers « Exelvision »