Schema du TO7/70

C'est la catégorie reine de l'ordinophile, 8 bits et pas un de plus!
Single board ou bus S-100 acceptés.

Modérateurs : Papy.G, fneck, Carl

Windless
Messages : 19
Inscription : 05 déc. 2022 19:48

Schema du TO7/70

Message par Windless »

Bonjour,

Je cherche un schema du circuit imprimé du TO7/70. Savez-vous s'il y a des scans ou des schema reversés ?

Je n'ai pas de but précis, j'aimerais trouver quelques idées de truc pour jouer avec une machine que l'on vient de me donner.

Merci,
Windless.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Schema du TO7/70

Message par Daniel »

Toutes les documentations techniques des ordinateurs 8 bits Thomson sont disponibles ici : http://dcmoto.free.fr/index.html
Daniel
L'obstacle augmente mon ardeur.
Windless
Messages : 19
Inscription : 05 déc. 2022 19:48

Re: Schema du TO7/70

Message par Windless »

ok merci, je crois que je commence à comprendre (il va me falloir un papier et un crayon pour le decodage des adresses quand même !)

Je n'ai pas trouvé de version désasemblée de la ROM du TO7/70. Vous savez si quelqu'un en a publié une ?

merci,
Windless.
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: Schema du TO7/70

Message par Fool-DupleX »

Eh bé, je sais pas ce que tu aurais fait dans les années 80, toi ... :lol:

Oui, il y a un code source officiel de la ROM, mais je ne l'ai pas encore scanné; ca fait des centaines de pages. Je n'ai fait que celui du MO5, celui qui m'importe le plus. Elle est dispo aussi chez Daniel. Ceci dit, pourquoi faire ? Les appels moniteurs sont documentés en détail.

Pas besoin de papier et de crayon. Tout est dans la doc technique pointée par Daniel. Il y a la map mémoire et tu peux aussi consulter le guide technique du TO7 et le livre "Passez facilement du BASIC à l'assembleur", également sur le site de Daniel. Tout est absolument et intégralement documenté.

Un petit passage par la rubrique "Who's who" serait apprécié. :wink:
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Schema du TO7/70

Message par Daniel »

Pour le désassemblage de la ROM on peut utiliser l'outil de mise au point de l'émulateur dcmoto. Ma méthode consiste à copier le désassemblage dans un fichier texte et de le commenter ensuite manuellement.

Comme l'a écrit Fool-DupleX il est inutile de vouloir tout réinventer. Il y a la doc mais il y a aussi les spécialistes qui fréquentent ce forum. Les ordinateurs 8 bits Thomson n'ont plus beaucoup de secrets.
Daniel
L'obstacle augmente mon ardeur.
Windless
Messages : 19
Inscription : 05 déc. 2022 19:48

Re: Schema du TO7/70

Message par Windless »

Je vais regarder les possibilité avec dcmoto, ca doit être ce qu'il me faut.

l'idée (très théorique) serait de voir si on pourrait faire une rom qui remplacerait dans le moniteur les routines du crayon optique et du clavier pour lire à la place des trucs sur les ports d'extension. Y'a peut être d'autres moyens d'emuler un clavier et un crayon optique depuis les ports d'extension, mais le fait qu'ils soient sur des bus différents me fait dire que ce n'est peut être pas la bonne piste.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Schema du TO7/70

Message par Daniel »

J'ai eu il y a quelques années une idée de projet, mais j'ai manqué de courage pour le faire : Remplacer le crayon optique par une souris Thomson connectée à l'extension Musique et Jeux, comme pour le TO8 et le MO6. Ca marche sur TO8 et MO6, donc ça doit marcher aussi sur TO7/70 et MO5.

La connexion d'un clavier externe doit être possible. A priori je serais tenté d'utiliser aussi les ports manettes de l'extension Musique et Jeux pour l'interface, plutôt que le connecteur de l'ordinateur. Ou encore l'extension série, malheureusement elle est rare et peu de collectionneurs la possède.
Daniel
L'obstacle augmente mon ardeur.
Windless
Messages : 19
Inscription : 05 déc. 2022 19:48

Re: Schema du TO7/70

Message par Windless »

Mais en passant part une extension série ou joystick, le périphérique ne fonctionnerait qu'avec un logiciel sachant l'utiliser, ou il y a une astuce que je n'ai pas ?
En passant par une modification de de la rom, on pourrait être compatible avec tous les logiciels qui passent par le moniteur (qu'on utilise une extension standard ou en crée une). Et en se greffant sur les connecteurs (ce qui doit être assez simple pour le clavier si le connecteur est standard, et un poil plus compliqué pour se synchroniser pour le crayon mais faisable) avec tout, non ?
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Schema du TO7/70

Message par Daniel »

Bien sûr, dans tous les cas il faut modifier la ROM.

Je propose d'utiliser l'extension Musique et Jeux car, grâce au décodage d'adresse et au 6821 contenu dans cette extension, l'interfaçage avec un périphérique externe semble plus simple. En particulier pour la souris, le connecteur est compatible et ne nécessite aucune modification matérielle. Toutes les routines de gestion de la souris sont déjà dans la ROM du TO8, il suffit de les recopier.

Code : Tout sélectionner

----------------------------------
Lecture position souris
----------------------------------
EC30 344E       PSHS   U,DP,B,A  
EC32 B66074     LDA    $6074       etat peripheriques              
EC35 48         ASLA                       
EC36 2A08       BPL    $EC40 ---              
EC38 861F       LDA    #$1F     |            
EC3A B7E7CE     STA    $E7CE    |            
EC3D 7D344E     TST    $344E -->|            
                                |
----------------------------    |
                                |
----------------------------    |
EC3E 344E       PSHS   U,DP,B,A |
EC40 8660       LDA    #$60 <---               
EC42 1F8b       TFR    A,DP                
EC44 CE027F     LDU    #$027F              
EC47 965F       LDA    <$5F                
EC49 2B0A       BMI    $EC55 --              
EC4B CE013F     LDU    #$013F  |            
EC4E 8560       BITA   #$60    |            
EC50 2703       BEQ    $EC55 ->|              
EC52 CE009F     LDU    #$009F  |            
EC55 9ED8       LDX    <$D8 <--               
EC57 2A02       BPL    $EC5B --              
EC59 9E76       LDX    <$76    |            
EC5B 1193D8     CMPU   <$D8 <--               
EC5E 2A02       BPL    $EC62 --              
EC60 1F31       TFR    U,X     |            
EC62 9FD8       STX    <$D8 <--               
EC64 DCD6       LDD    <$D6                
EC66 2A02       BPL    $EC6A --              
EC68 5F         CLRB           |             
EC69 4F         CLRA           |             
EC6A 108300C7   CMPD   $00C7 <-              
EC6E 2303       BLS    $EC73 --               
EC70 4F         CLRA           |             
EC71 C6C7       LDB    #$C7    |             
EC73 DDD6       STD    <$D6 <--               
EC75 1F02       TFR    D,Y                 
EC77 4F         CLRA                       
EC78 35ce       PULS   A,B,DP,U,PC         

----------------------------------
Lecture boutons souris
----------------------------------
EC7A 3406       PSHS   B,A                 
EC7C 1CFA       ANDCC  #$FA                
EC7E 3401       PSHS   CC                  
EC80 B66074     LDA    $6074
EC83 48         ASLA                       
EC84 2A19       BPL    $EC9F----> retour (pas de souris connectee)             
EC86 B6E7CC     LDA    $E7CC      lecture boutons         
EC89 C6C8       LDB    #$C8                
EC8B 5A         DECB         <--  temporisation             
EC8C 26FD       BNE    $EC8B ---  anti-rebond            
EC8E B4E7CC     ANDA   $E7CC      lecture boutons         
EC91 43         COMA                       
EC92 8403       ANDA   #$03                
EC94 8B02       ADDA   #$02                
EC96 8405       ANDA   #$05                
EC98 B760D3     STA    $60D3      etat des boutons         
EC9B AAE4       ORA    ,S         modification         
EC9D A7E4       STA    ,S         du code condition         
EC9F 3587       PULS   CC,A,B,PC           
Daniel
L'obstacle augmente mon ardeur.
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: Schema du TO7/70

Message par Fool-DupleX »

ça doit marcher aussi sur TO7/70 et MO5.
C'est le cas, j'avais copié et modifié le code du TO8 pour ça il y a des années de cela. Mais ça fait du bruit. Il n'y a pas de bit de mute du son sur l'extension musique et jeux. Après, on peut peut-être trouver une autre combinaison de câblage, mais y'a pas des masses de possibilités avec 6 bits qui font du bruit.
Mais en passant part une extension série ou joystick, le périphérique ne fonctionnerait qu'avec un logiciel sachant l'utiliser, ou il y a une astuce que je n'ai pas ? En passant par une modification de de la rom, on pourrait être compatible avec tous les logiciels qui passent par le moniteur [...]
C'est juste. Sauf que sur Thomson, les bons logiciels n'utilisent pas la ROM de toute manière (trop lente). Et il y a d'autres soucis. La ROM est pleine comme un œuf. Tu vas avoir beaucoup de mal à trouver de la place pour ton code, même en dégageant le code de la routine que tu veux modifier. Très souvent, la ROM code des instructions dans des data d'autres instructions pour gagner de la place. Et puis sur le TO7-70, sur les 6 Ko de ROM, 2 sont dans le PIA6846 que tu ne peux ni enlever (indispensable au système) ni reprogrammer.

A titre d'exemple, nous avons déjà fait l'exercice il y a 20 ans de dégager intégralement la ROM des machines pour y caser le système OS-9. Les perspectives sont fabuleuses car ce système décuple littéralement les fonctionnalités de la machine, mais évidemment cela la rend 0% compatible avec la logithèque existante. Voir ce site web qui n'a pas été mis à jour depuis des années, même si beaucoup a été fait depuis : https://os9.forler.ch. Nous avons porté le système sur presque toute la gamme MO et TO.

Concernant la ROM originale, sur TO7-70, je crois me souvenir que la table des points d'entrée est malheureusement fixe, mais sur tous les MO et je crois sur les TO de deuxième génération, il y a une table de vecteurs modifiables. Dans ce contexte, tu peux expérimenter sans déglinguer la ROM.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Schema du TO7/70

Message par __sam__ »

Les "hook" des points d'entrée de la rom moniteur sont les mêmes sur TO8, TO9, TO9+, et TO7/70. Tu peux détourner GETC, et GETL pour gérer un autre clavier, et autre chose qu'un lightpen.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Schema du TO7/70

Message par Daniel »

Dans ce type de projet il faut commencer par se jeter à l'eau. En cours de développement il apparaîtra des difficultés, à ce moment là nous pourrons en discuter pour trouver des contournements. Il y a une seule contrainte incontournable : la ROM du 6846 (de $E800 à $EFFF) n'est pas modifiable.
Daniel
L'obstacle augmente mon ardeur.
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: Schema du TO7/70

Message par Fool-DupleX »

Sur TO9 et supérieures, il y a la table REDIR, mais sur TO7-70 ?

Comment tu détournes sur un TO7-70 ?
Zebulon
Messages : 2787
Inscription : 02 nov. 2020 14:03

Re: Schema du TO7/70

Message par Zebulon »

Vous souvenez-vous il y a quelques mois une personne avait posté sur le forum à propos d'un projet qu'il réalisait de remplacer le crayon optique par une souris, en se branchant à la place du crayon optique sur un TO7/70.

Le projet était matériel avec une carte qui décodait le signal vidéo pour situer les coordonnées de la souris, modifiait ce signal pour incruster un pointeur matériel et envoyait le top sur la ligne du crayon optique pour que la ROM renvoie les coordonnées aux programmes en utilisant les fonctions natives.

Ça semblait très prometteur mais je n'ai pas retrouvé le fil.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Schema du TO7/70

Message par Daniel »

On ne peut pas changer l'adresse du JMP, par contre on peut remplacer la routine à cette adresse, à condition qu'elle soit entre $F000 et $FFFF.
Ce n'est pas le cas pour toutes les routines, en particulier PLOTXY, NOTE, GETS, JOYS et quelques autres, que l'on ne peut pas modifier.

Code : Tout sélectionner

E800  7EF969    JMP    $F969
E803  7EF2B4    JMP    $F2B4  PUTC Affichage d'un caractere
E806  7EF1A6    JMP    $F1A6  GETC Lecture du clavier
E809  7EF2A8    JMP    $F2A8  KTST Lecture rapide du clavier 
E80C  7EEF6B    JMP    $EF6B  DRAW Trace d'un segment de droite
E80F  7EEEC6    JMP    $EEC6  PLOT XY Affichage d'un point
E812  7EED6E    JMP    $ED6E  RSCO Gestion interface communication
E815  7EF07C    JMP    $F07C  K7CO Controleur de mini cassette
E818  7EFBD3    JMP    $FBD3  GETL Lecture coordonnees crayon optique
E81B  7EFBB4    JMP    $FBB4  LPIN Lecture interrupteur crayon optique
E81E  7EEBE5    JMP    $EBE5  NOTE Generation de musique
E821  7EF053    JMP    $F053  GETP Lecture de la couleur d'un point
E824  7EECAC    JMP    $ECAC  GETS Lecture de l'ecran
E827  7EEC7C    JMP    $EC7C  JOYS Lecture des manettes de jeu
E82A  7EE004    JMP    $E004  DKCO Controleur de disquette
E82D  7EF98D    JMP    $F98D  MENU Retour au menu principal
E830  7EFB8B    JMP    $FB8B  KBIN Sortie programme d'interruption
E833  7EEEEB    JMP    $EEEB  CHPL Ecriture d'un point caractere
Daniel
L'obstacle augmente mon ardeur.
Répondre