[Thomson] Emuler le crayon optique avec une souris

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

__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [Thomson] Emuler le crayon optique avec une souris

Message par __sam__ »

Lorsque dans le menu de préférence du TO8 on choisit la souris, la routine Rom retournant la position du crayon optique retourne celle de la souris. La souris se substitue logiciellement au crayon optique. Essaye de faire tourner le programme suivant après avoir choisi la souris dans le menu "Réglage et préférences":

Code : Tout sélectionner

DO:LOCATE 0,0,0:INPEN X,Y:? X,Y:LOOP
Tu va voir que la routine d'appel du crayon optique (INPEN) marche avec la souris.
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
ccapublic
Messages : 31
Inscription : 23 nov. 2019 11:02

Re: [Thomson] Emuler le crayon optique avec une souris

Message par ccapublic »

La souris est cable et le fw mis à jour. Je teste dans l'après midi...
Voila voilà, ça marche. Il faut que je degote un soft ou le pointeur est visible sur tout l'écran (bizarreries dans colorpaint sur certains éléments de la barre d'outils) et besoin de trouver de quoi faire des tempos plus précises que la microseconde car a date en X 1us c'est des sauts de plusieurs pixels.

Je m'attaque à cela demain sinon ma femme va m'assassiner !

Dommage que le site refuse les mp4 en pj...

A bientôt.

C.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Emuler le crayon optique avec une souris

Message par Daniel »

J'ai depuis longtemps dans mes cartons le projet d'adapter la routine de gestion de la souris du MO6 pour la faire fonctionner sur MO5. En utilisant la même technique que le TO8 pour substituer la souris au crayon optique on doit pouvoir simuler le crayon optique avec la souris en modifiant la ROM système.

Une autre technique est la modification des logiciels pour remplacer le crayon optique par le clavier ou les manettes.
En 1984 mon MO5 n'avait pas de crayon optique ni de manette, je transformais tous les programmes pour qu'ils utilisent le clavier.

Mais le projet de ccapublic est plus simple pour l'utilisateur et s'adapte à tous les programmes sans modification. C'est mieux !
Daniel
L'obstacle augmente mon ardeur.
Asic512
Messages : 128
Inscription : 30 juin 2019 21:13

Re: [Thomson] Emuler le crayon optique avec une souris

Message par Asic512 »

__sam__ a écrit : 04 avr. 2021 14:57 Lorsque dans le menu de préférence du TO8 on choisit la souris, la routine Rom retournant la position du crayon optique retourne celle de la souris. La souris se substitue logiciellement au crayon optique.
Je n'ai pas de souris Thomson ni même de TO8 sous la main. J'ai essayé le code suivant dans dcmoto (2019.06.26) :

Code : Tout sélectionner

DO:LOCATE 0,0,0:INPEN X,Y: INMOUSE A,B:? A-X,B-Y:LOOP
Il me renvoie comme tu le prédis le couple (0,0) qu'on choisisse fromage ou dessert, enfin souris ou crayon, dans le menu. Des valeurs non nulles apparaissent de temps à autre : la position a dû changer entre inpen et inmouse.

Toute cette histoire me laisse perplexe. Par exemple, je ne comprends pas la phrase suivante du guide TO8 p.11:
Par contre, sauf en BASIC 512, le TO8 ne peut pas utiliser ces deux périphériques en même temps et a besoin de savoir lequel vous voulez utiliser.


Pourquoi avoir à la fois inmouse et inpen dans le BASIC 512 ? Raison de compatibilité ?

Est-ce que "physiquement" je peux utiliser sur TO8 un crayon optique et une souris et récupérer (d'une manière ou d'une autre) les positions indépendantes des deux périphériques ? Une lecture très (trop ?) superficielle du manuel technique des TO8/9/9+ (p.132-135) me pousse à le penser. Si oui émuler un crayon optique aurait un intérêt même sur les TO8.
Asic512
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [Thomson] Emuler le crayon optique avec une souris

Message par __sam__ »

Quand on a une souris, INMOUSE (ou l'appel en ROM correspondant) marche tout le temps. INPEN (ou l'appel en ROM correspondant) ne marche que si l'utilisateur a sélectionné l'option "Choisir la souris" dans réglage et préférences.
Est-ce que "physiquement" je peux utiliser sur TO8 un crayon optique et une souris et récupérer (d'une manière ou d'une autre) les positions indépendantes des deux périphériques ?
Oui. Il faut "Choisir le crayon optique" et là INMOUSE donne la position de la souris, mais INPEN donne alors lui le crayon optique (-1 quand il ne pointe pas dans la zone écran pour info).
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
jasz
Messages : 1313
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: [Thomson] Emuler le crayon optique avec une souris

Message par jasz »

C'est un projet intéressant techniquement. Un grand bravo pour l'avoir de le concrétisé :)
ccapublic
Messages : 31
Inscription : 23 nov. 2019 11:02

Re: [Thomson] Emuler le crayon optique avec une souris

Message par ccapublic »

Merci ! En effet je me suis bien amusé :)
ccapublic
Messages : 31
Inscription : 23 nov. 2019 11:02

Re: [Thomson] Emuler le crayon optique avec une souris

Message par ccapublic »

Amélioration de la gestion du timing en x. Pas vérifié au scope mais je pense être maintenant a 250ns de résolution.

En bleu une ellipse avec précision à la us => on voit bien les escaliers à droite et à gauche.

En rouge la même avec le nouveau timing. C'est plus "lisse".

Le premier jet de code est en cours de "commentation".
Pièces jointes
Screenshot_20210404-200744_Gallery.jpg
Screenshot_20210404-200744_Gallery.jpg (118.67 Kio) Consulté 2972 fois
Zebulon
Messages : 2788
Inscription : 02 nov. 2020 14:03

Re: [Thomson] Emuler le crayon optique avec une souris

Message par Zebulon »

Bravo ! Comme beaucoup ici je suis très friand de ces projets qui font le lien entre les machines du passé et les technologies de notre temps en respectant les machines du passé. :D
cosmos99
Messages : 956
Inscription : 22 juil. 2012 20:15
Localisation : Chatenay-Malabry(92)

Re: [Thomson] Emuler le crayon optique avec une souris

Message par cosmos99 »

Tiens j'apprend quelque chose , donc tout les logiciels du TO7(70) qui utilisent le crayon optique peuvent être gérés à la souris sur TO8 ? Et MO6(MO5...) également ? La souris du TO8 est compatible MO6 ?
Dernière modification par cosmos99 le 04 avr. 2021 22:32, modifié 1 fois.
Eric
ccapublic
Messages : 31
Inscription : 23 nov. 2019 11:02

Re: [Thomson] Emuler le crayon optique avec une souris

Message par ccapublic »

Bon, ca doit commencer a être testable par les plus courageux bidouilleurs.

Ci dessous un début de semblant de doc.

Je ne garantis pas la réactivité si certains se jettent à l'eau mais je ferai au mieux (contactez moi pour avoir le code - attention PlatformIO).

Code : Tout sélectionner

/************************************************************************************************************
 *
 *                                          PS2 Mouse to Optical Pen
 *
 ************************************************************************************************************
 *
 *     Feel free to do whatevever you want with this code as long as (usual recommandations) you share your
 * modifications, keep a reference whatsoever to this initial work and do not make any commercial use of it
 * or the underlying "HW" behind it. That being said, I doubt it will make you richer in any way :) 
 *
 *                             Cyril Catalanotto (ccapublic@free.fr) - 2021-04-04
 * 
 *************************************************************************************************************
 *                                                 CREDITS
 * 
 *  Thanks to polulu for his simple yet great FastGPIO library (https://github.com/pololu/fastgpio-arduino)
 *  Thanks to jazzycamel for his PS2 mouse library (https://github.com/jazzycamel/PS2Mouse)
 *  Thanks to my wife for dealing with this weird time consuming hobby without yelling... too much... :)
 *  Thanks to the kids for testing :)
 * 
 *************************************************************************************************************
 *                                                 WIRING
 * 
 *  (FAR TOO LONG) INTRODUCTION
 *  ***************************
 * 
 *  This is ongoing - and still piggy - work.
 * 
 *  As of today I decided not to modify my TO7/70 at all to make this work. That means : 
 * 
 *     1/ I do not grab HSYNC & VSYNC signals from motherboard, but reconstruct them from SCART signals instead.
 *     2/ I do not rely on stimulating internal optical pen connector signals.
 *     3/ I do not add a connector to the TO7/70 to have those said signals out of the casing.
 *     4/ I decided to stimulate the pen phototransistor with a LED instead (work ongoing to stimulate button).   
 *  
 *  NO, this is definitely NOT the easiest, cleanest, most integrated (add whatever superlative here) way of
 *  doing it :)
 * 
 *  To those who own a machine with connector for external optical pen (like MO5), I did not yet document how
 *  to interface to such connector, nor did I check whether or not the code would be impacted (after all, at 
 *  the time of writing I've been working on this idea for 2 days only). But I will in the near future if
 *  some show interest in this work (it's really straightforward with little HW/FW knowledge).
 * 
 *  To those who would be willing to fully integrate this work into their machine (have all HW inside casing 
 *  and add a panel PS2 connector), I don't have the time (not the will to be frank) to work on each and
 *  every motherboard, but with sufficient HW skills it shall be quite easy too. 
 * 
 *  VIDEO SYNCHRO
 *  *************
 *
 *  Tested only with TO7/70 which produces ~3.5V SYNC-only signal on SCART pin #20. This eases interfacing
 *  to the arduino for a start. Do not get rid of the resistor or your TV will probably clamp signal to ~1V
 *  and nothing will work. I'll be putting together a simple but better interfacing method someday :)     
 *   
 *                                             1.2K
 *            From TO7/70 SCART pin #20  -----/\/\/\-----  To TV SCART pin #20
 *                                         |_____________  To any arduino pin (check PIN_SYNCHRO define)
 *
 *  All other pins go through "as is".
 *
 *
 *  OPTICAL PEN (light sensor)
 *  *********** 
 * 
 *                                            
 *   5V Arduino --------------------/\/\/\-------|>|---------------- 
 *                                   4.7      Green LED            | 
 *                                                        68     |/ C
 *   From any Arduino pin (check PIN_PEN_LED define) ---/\/\/\---|      BC547
 *                                                               |\ E
 *                                                                 |
 *   GND Arduino ---------------------------------------------------
 *
 * 
 *  OPTICAL PEN (button)
 *  ********************
 *  
 *  TO BE DONE (for now I press enter :P)
 * 
 * 
 *  PS2 MOUSE
 *  *********
 *  
 *  Female (PC side) connector, front view :
 * 
 *                              NC  (6)    o U o    (5)  Any Arduino pin (check PIN_MOUSE_CLOCK define)
 *                      5V Arduino  (4)   o     o   (3)  GND Arduino
 *                              NC  (2)     o o     (1)  Any Arduino pin (check PIN_MOUSE_DATA define)
 * 
 * 
 ************************************************************************************************************
 *                                            VERSION HISTORY                                         
 ************************************************************************************************************
 *
 * v0.1 (2021-04-04)
 * =================
 * 
 *     o Very first "public" release : very little tested, expect thermonuclear explosions - at least !
 *     o Most operations are blocking :
 *           . No video synchro       => deadlock
 *           . Mouse not detected     => deadlock
 *           . Whatever goes wrong    => guess what
 *     o Synchro : Timings, boundaries, scaling,... were all defined and verified... "au doigt mouillé"...
 *     o Pen button : Handled but not yet tested (not done HW interfacing yet)
 * 
 ************************************************************************************************************/
 
Asic512
Messages : 128
Inscription : 30 juin 2019 21:13

Re: [Thomson] Emuler le crayon optique avec une souris

Message par Asic512 »

__sam__ a écrit : 04 avr. 2021 18:39 Quand on a une souris, INMOUSE (ou l'appel en ROM correspondant) marche tout le temps. INPEN (ou l'appel en ROM correspondant) ne marche que si l'utilisateur a sélectionné l'option "Choisir la souris" dans réglage et préférences.
Donc le choix souris/crayon n'affecte que le comportement de la routine en ROM correspondant aux INMOUSE/INPEN du basic. Je ne sais pas si des programmes comme colorpaint ou paragraphe font en pratique appel à cette routine.
Asic512
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [Thomson] Emuler le crayon optique avec une souris

Message par __sam__ »

cosmos99 a écrit : 04 avr. 2021 22:23 Tiens j'apprend quelque chose , donc tout les logiciels du TO7(70) qui utilisent le crayon optique peuvent être gérés à la souris sur TO8 ? Et MO6(MO5...) également ? La souris du TO8 est compatible MO6 ?
Oui, mais souvent les logiciels utilisant le light-pen(*) n'affichent pas de réticule (pointeur-souris) sur l'écran car on est supposé savoir directement où l'on pointe. Avec une souris sans ce réticule, et bien, on ne sait pas où l'on est à l'écran et on click au petit bonheur la chance.

On sait que le ridicule ne tue pas, mais l'absence de réticule tue (l'expérience utilisateur) :oops: :mrgreen:

sam (ok je :arrow: [])

___
(*) la plupart des didacticiels écrits en basic avec des "PEN", "ONPEN GOTO/GOSUB" par exemple.

PS: @Asic512 la routine de lecture ligth-pen est intégralement gérée en ROM (FIRQ hard-codé et non modifiable). Il est certain que Colorpaint passe par la ROM et donc sait utiliser la souris sur TO8 si on choisit l'option souris dans "Réglage et préférences".
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
Zebulon
Messages : 2788
Inscription : 02 nov. 2020 14:03

Re: [Thomson] Emuler le crayon optique avec une souris

Message par Zebulon »

Oui en effet c'est un peu le problème... dommage que le fameux "réticule" ne soit pas géré par la ROM pour permettre une véritable substitution. C'est aussi ce qui va limiter l'intérêt de cette émulation au moins pour la logithèque historique (sauf modification posthume). Le doute m'habite. :wink:
cosmos99
Messages : 956
Inscription : 22 juil. 2012 20:15
Localisation : Chatenay-Malabry(92)

Re: [Thomson] Emuler le crayon optique avec une souris

Message par cosmos99 »

En effet , c'est embetant.....
Eric
Répondre