lego dacta TO8

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Mushussu
Messages : 16
Inscription : 19 oct. 2015 17:30

lego dacta TO8

Message par Mushussu »

Bonsoir,

J'ai fait l'acquisition d'un module Lego Dacta. Est-il possible de l'utiliser avec un TO8 ? Il est normalement fait pour MO5 et TO7/70.

L'autre question, connaissez-vous l'adresse en mémoire du registre pour lire et écrire afin que je puisse interagir avec le module sans passer par le logiciel Lego lines ?

Merci d'avance
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: lego dacta TO8

Message par Daniel »

Si tu as le logiciel Lego Lines, il est possible de le désassembler pour trouver l'adresse.
Sinon un "reverse-engineering" du contrôleur doit permettre de trouver l'adresse, mais c'est un peu plus difficile.
L'interface est un PIA 6821, il y a donc quatre adresses. Normalement elles devraient se suivre dans cet ordre :
- registre de direction ou registre de données du port A
- registre de contrôle du port A
- registre de direction ou registre de données du port B
- registre de contrôle du port B

lego-dacta-1.jpg
lego-dacta-1.jpg (161.61 Kio) Consulté 4876 fois
lego-dacta-2.jpg
lego-dacta-2.jpg (173.84 Kio) Consulté 4876 fois

Ensuite, quand l'adresse sera déterminée, on pourra dire si le contrôleur est compatible avec le TO8. Il est compatible s'il n'y a pas de conflit d'adresse avec un autre périphérique du TO8. Avec un TO8D c'est un peu plus compliqué, car le contrôleur interne est sélectionné d'office. Pour utiliser un contrôleur externe il faut modifier le registre $E7E7 ou débrancher le lecteur interne.

Si le contrôleur est compatible, il faudra aussi vérifier que le logiciel Lego Lines est compatible, mais normalement il ne devrait pas y avoir de problème, au moins en BASIC 1.0.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
petitjd
Messages : 2007
Inscription : 23 oct. 2007 11:50

Re: lego dacta TO8

Message par petitjd »

Le logiciel Lego Lines est dans la rom du contrôleur lego dacta.
Il me semble que Fool avait désassemblé la rom il y a longtemps, dans une galaxie lointaine, très lointaine, mais je peux me tromper.
PetitJD
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: lego dacta TO8

Message par Daniel »

@petitjd : Le dump du contrôleur que tu m'avais passé ne contenait que la plage $A000-$A7BF.
Il serait intéressant de dumper le reste de l'eprom 27C256, qui doit effectivement contenir le logiciel dans les octets suivants.
Si tu peux le faire je me charge de le désassembler.
Daniel
L'obstacle augmente mon ardeur.
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: lego dacta TO8

Message par Fool-DupleX »

Cette interface a été effectivement dumpée et réversée il y a bien 10 ans par PetitJD et moi-même. Le PIA est utilisé pour piloter l'interface mais aussi pour commuter les 32 pages de 1 Ko qui composent sa ROM. La ROM est en $A000 ($E000 sur TO), ce qui lui permet de booter automatiquement. Mais je peine à me souvenir de l'adresse du PIA. Je peux ressortir mes archives si je les trouve, PetitJD, t'as rien en stock ? La plage A000-A3FF visible devrait suffire, elle contient probablement la routine de commutation (à moins que celle-ci ne soit copiée en RAM depuis une autre page, je ne sais plus).
Dernière modification par Fool-DupleX le 01 févr. 2018 10:17, modifié 1 fois.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: lego dacta TO8

Message par Daniel »

Alors je comprends mieux pourquoi mon dump est incomplet. S'il y a 32 pages commutables je n'ai que la page 0 et il manque les 31 autres.
Le plus simple serait d'enlever l'EPROM pour la dumper entièrement.

Code : Tout sélectionner

================================================
LEGO-DACTA - ROM du controleur
================================================

--------------------------------

--------------------------------
A000 7E3D5C     JMP    $3D5C              

A040 7EB25C     JMP    $B25C              
A043 7EB000     JMP    $B000              

----------------------------------------------------------------------
A000 7e 3d 5c 7e 3b 00 ff ff ff ff ff ff ff ff ff ff  ~=\~;...........
A010 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
A020 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
A030 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
A040 7e b2 5c 7e b0 00 ff ff ff ff ff ff ff ff ff ff  ~.\~............
A050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
A060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
A070 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
A080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
A090 44 82 74 72 75 69 72 65 20 6c 65 20 70 72 6f 67  D.truire le prog
A0A0 72 61 6d 6d 65 3a 0d 0a 51 75 69 74 74 65 72 20  ramme:..Quitter 
A0B0 4c 45 47 4f 20 4c 69 6e 65 73 3a 0d 0a 45 6e 20  LEGO Lines:..En 
A0C0 88 74 65 73 2d 76 6f 75 73 20 63 65 72 74 61 69  .tes-vous certai
A0D0 6e 3f 20 28 4f 55 49 2f 4e 4f 4e 29 20 0d 0a 43  n? (OUI/NON) ..C
A0E0 68 61 72 67 65 72 0d 0a 53 61 75 76 65 67 61 72  harger..Sauvegar
A0F0 64 65 72 0d 0a 4e 6f 6d 20 64 75 20 66 69 63 68  der..Nom du fich
A100 69 65 72 3a 20 0d 0a 52 65 63 68 65 72 63 68 65  ier: ..Recherche
A110 20 64 65 3a 0d 0a 54 72 6f 75 76 65 3a 20 0d 0a   de:..Trouve: ..
A120 43 68 61 72 67 65 3a 0d 0a 45 72 72 65 75 72 20  Charge:..Erreur 
A130 63 61 73 73 65 74 74 65 21 0d 0a 41 70 70 75 79  cassette!..Appuy
A140 65 72 20 73 75 72 20 75 6e 65 20 74 6f 75 63 68  er sur une touch
A150 65 21 0d 0a 49 6d 70 72 69 6d 65 72 20 6c 65 20  e!..Imprimer le 
A160 70 72 6f 67 72 61 6d 6d 65 3a 0d 0a 45 72 72 65  programme:..Erre
A170 75 72 20 69 6d 70 72 69 6d 61 6e 74 65 21 0d 0a  ur imprimante!..
A180 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
A190 54 52 4f 50 20 64 65 20 52 45 50 45 54 45 30 0d  TROP de REPETE0.
A1A0 0a 54 52 4f 50 20 64 65 20 53 49 30 0d 0a 44 61  .TROP de SI0..Da
A1B0 6e 73 20 43 4f 4d 50 54 45 20 3a 20 65 6e 74 72  ns COMPTE : entr
A1C0 65 65 20 61 20 70 72 65 65 63 69 73 65 72 30 0d  ee a preeciser0.
A1D0 0a 44 61 6e 73 20 43 4f 4d 50 54 45 20 3a 20 76  .Dans COMPTE : v
A1E0 61 6c 65 75 72 20 6d 61 6e 71 75 61 6e 74 65 30  aleur manquante0
A1F0 0d 0a 52 45 50 45 54 45 20 73 61 6e 73 20 4a 55  ..REPETE sans JU
A200 53 51 55 27 41 2f 49 4e 44 45 46 49 4e 49 4d 45  SQU'A/INDEFINIME
A210 4e 54 30 0d 0a 52 45 50 45 54 45 20 6e 20 73 61  NT0..REPETE n sa
A220 6e 73 20 46 49 4e 20 52 45 50 45 54 45 30 0d 0a  ns FIN REPETE0..
A230 53 49 20 73 61 6e 73 20 46 49 4e 20 53 49 30 0d  SI sans FIN SI0.
A240 0a 4a 55 53 51 55 27 41 2f 49 4e 44 45 46 49 4e  .JUSQU'A/INDEFIN
A250 49 4d 45 4e 54 20 73 61 6e 73 20 52 45 50 45 54  IMENT sans REPET
A260 45 30 0d 0a 46 49 4e 20 52 45 50 45 54 45 20 73  E0..FIN REPETE s
A270 61 6e 73 20 52 45 50 45 54 45 20 6e 30 0d 0a 46  ans REPETE n0..F
A280 49 4e 20 53 49 20 73 61 6e 73 20 53 49 30 0d 0a  IN SI sans SI0..
A290 52 45 50 45 54 45 20 6e 20 3a 20 73 74 72 75 63  REPETE n : struc
A2A0 74 75 72 65 20 69 6e 63 6f 72 72 65 63 74 65 30  ture incorrecte0
A2B0 0d 0a 52 45 50 45 54 45 20 3a 20 73 74 72 75 63  ..REPETE : struc
A2C0 74 75 72 65 20 69 6e 63 6f 72 72 65 63 74 65 30  ture incorrecte0
A2D0 0d 0a 46 49 4e 20 53 49 20 68 6f 72 73 20 73 74  ..FIN SI hors st
A2E0 72 75 63 74 75 72 65 20 52 45 50 45 54 45 20 6e  ructure REPETE n
A2F0 30 0d 0a 46 49 4e 20 53 49 20 68 6f 72 73 20 73  0..FIN SI hors s
A300 74 72 75 63 74 75 72 65 20 52 45 50 45 54 45 30  tructure REPETE0
A310 0d 0a 46 49 4e 20 52 45 50 45 54 45 2f 4a 55 53  ..FIN REPETE/JUS
A320 51 55 27 41 20 68 6f 72 73 20 73 74 72 75 63 74  QU'A hors struct
A330 75 72 65 20 53 49 30 0d 0a 0d 0a ff ff ff ff ff  ure SI0.........
A340 ff ff ff ff 52 45 50 45 54 45 30 53 49 30 43 4f  ....REPETE0SI0CO
A350 4d 50 54 45 30 46 49 4e 20 52 45 50 45 54 45 30  MPTE0FIN REPETE0
A360 4a 55 53 51 55 27 41 30 46 49 4e 20 53 49 30 49  JUSQU'A0FIN SI0I
A370 4e 44 45 46 49 4e 49 4d 45 4e 54 30 0d 0a ff ff  NDEFINIMENT0....
A380 ff ff ff ff 00 00 00 00 00 00 00 00 00 10 10 10  ................
A390 10 00 10 00 00 14 28 50 00 00 00 00 0c 18 3c 42  ......(P......<B
A3A0 7e 40 3c 00 30 18 38 04 38 44 3a 00 18 24 3c 42  ~@<.0.8.8D:..$<B
A3B0 7e 40 3c 00 00 30 48 30 4a 4c 3a 00 00 0c 0c 18  ~@<..0H0JL:.....
A3C0 00 00 00 00 00 08 10 10 10 10 08 00 00 10 08 08  ................
A3D0 08 08 10 00 00 00 54 38 6c 38 54 00 00 00 10 10  ......T8l8T.....
A3E0 7c 10 10 00 00 00 00 00 0c 0c 10 00 00 00 00 00  |...............
A3F0 7c 00 00 00 00 00 00 00 00 18 18 00 01 02 04 08  |...............
Daniel
L'obstacle augmente mon ardeur.
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: lego dacta TO8

Message par Fool-DupleX »

A l'époque j'avais écrit un programme en BASIC avec des SAVEM. La plage que tu as dumpée contient forcément la routine de commutation, il n'y a que 1 Ko de code à fouiller, ce sera vite trouvé, vu que le code commence forcément en $A004 ou $A007.
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: lego dacta TO8

Message par Fool-DupleX »

Ca c'est la banque 0. Le logiciel boote je pense sur la banque 31. Vus le peu de code et les jumps, la routine de commutation était probablement copiée en RAM.
Dernière modification par Fool-DupleX le 01 févr. 2018 10:14, modifié 2 fois.
Avatar de l’utilisateur
petitjd
Messages : 2007
Inscription : 23 oct. 2007 11:50

Re: lego dacta TO8

Message par petitjd »

Et non, je suis vert, à l'époque où tu avais desassemblé la rom, tu m'avais envoyé tout par email, mais ma boite a buggé et tout le dossier Thomson a été perdu. Je peux regarder sur le disque dur le mon vieux mac, mais je n'y crois pas trop.
Je dois pouvoir dumper la rom si je remet la main sur mon programmateur. Sinon Fool, tu as aussi l'interface de mémoire?
PetitJD
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: lego dacta TO8

Message par Fool-DupleX »

Vu le peu de portes logiques pour décoder, pourquoi ne pas vérifier les adresses entre $A7C4 et $A7CB sur MO5. Du reste, ça me dit vaguement quelque chose. Il suffit de lire ces adresses avec un PEEK en BASIC avec et sans l'interface, pour s'assurer de la présence de quelque chose à cet endroit.

Sinon, effectivement, j'ai l'interface et un dossier quelque part dans mes archives avec le boulot de l'époque.
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: lego dacta TO8

Message par Fool-DupleX »

De vague mémoire toujours, c'est le port B qui est utilisé pour piloter la ROM, probablement les bits 0-5.
Avatar de l’utilisateur
petitjd
Messages : 2007
Inscription : 23 oct. 2007 11:50

Re: lego dacta TO8

Message par petitjd »

Voici le dump binaire de l'eprom:
http://nanoreseau.net/system-cfg/thomson/Lego-Dacta.bin

D'après l'étiquette collée sur l'interface, elle est compatible MO5, MO6 et TO7-70.

Sur un TO8D avec l'extension lego et le lecteur de disquette interne débranché, on a le menu 2 qui s'intitule "Réseau" et ca plante sévère quand on appui sur 2.
Je suppose que si le lecteur interne est branché, ca doit planter de la même façon.
PetitJD
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: lego dacta TO8

Message par Fool-DupleX »

Hmmm, on dirait que le PIA est en $A7F0-$A7F3 ou $E7F0-$E7F3.
Mushussu
Messages : 16
Inscription : 19 oct. 2015 17:30

Re: lego dacta TO8

Message par Mushussu »

Merci messieurs pour ces recherches, je vais rebrancher mon TO8 et regarder cela de plus près.
Je vous tiendrais au courant des réussites ou échecs de ma quête.
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: lego dacta TO8

Message par Fool-DupleX »

on a le menu 2 qui s'intitule "Réseau" et ca plante sévère
Oui, c'était prévisible. Les gars de Lego Dacta ont "cloné" le mécanisme de reconnaissance de la ROM avec la clé "RES", qui est celle du Nanoréseau. Donc le TO8 croit qu'il y a une interface Nanoréseau. C'est idiot, ils auraient pu mettre un truc genre "LEG", pour éviter la confusion. Sinon, y'a quoi en 7F0-7F3 sur les TO8/8D/9+ ?
Répondre