Une petite news pour annoncer la nouvelle évolution de mon script de remapping pour ActiveGS avec l'intégration d'une fonction COLLER permettant d'injecter du texte directement dans l'émulateur. J'avoue que j'ai éhontément pompé l'idée sur un fil aperçu sur CSA2.
Pour la mise en oeuvre, évidemment toujours à cause de ce maudit problème de clavier AZERTY sous ActiveGS, cela aura été un peu plus compliqué que les quelques lignes de l'original. En effet, le script étant incapable de se remapper lui-même, certains caractères collés vers ActiveGS (par simulation d'appui sur une touche) étaient incorrects. Il a donc fallu les remapper directement en sortie du presse-papier pour tenir compte de la spécificité de nos chers claviers...
J'en ai profité pour ajouter quelques améliorations comme la possibilité d'interrompre le processus (pratique quand on s'aperçoit qu'on n'a pas collé le bon texte...) ou sa mise en pause lorsque que ce n'est plus ActiveGS qui est actif (ce qui évite, lors d'un changement malheureux de fenêtre, de se retrouver avec du texte envoyé aux quatre coins des applications Windows lancées !).
Pour le moment, tout ceci n'est encore qu'en version alpha qui sera corrigée et améliorée au fur et à mesure de son utilisation en situation réelle. Je vous renvoie, pour le téléchargement, vers l'article de base contenant le détail des mises à jour du script de remapping.
envoyé le 11-01-2013 à 23 h 41 min
Ben, dis-donc, tu ouvres une jolie porte, là !
toto
envoyé le 12-01-2013 à 9 h 27 min
La vitesse reste le gros point noir : ne pas s’attendre à un « copier/coller » instantané comme on en a l’habitude avec les autres applications.
Tout le texte est collé par simulation d’appui sur une touche, donc lettre par lettre. De plus, comme une temporisation doit être définie (pour éviter que certains caractères ne soient perdus en route…), pour de longs textes, il vaut mieux ne pas être pressé !
envoyé le 15-01-2013 à 21 h 23 min
Tout ça me fait penser que j’avais demandé il y a quelques mois (semaines ?) à un certain A.V comment on pourrait mettre dans le presse papier du IIgs du texte… En partant du principe qu’on est justement côté émulateur et qu’on dispose de contenu du presse papier Windows et d’un accès à la mémoire du IIgs…
envoyé le 29-01-2013 à 22 h 39 min
Désolé Olivier, je viens seulement de découvrir ton message (visiblement « WordPress » a oublié de me prévenir…).
Juste pour info, voici un extrait de la doc de AppleWin qui permet de copier/coller du contenu VERS l’émulateur donc l’Apple II :
« Shift+Insert:
Paste text from Windows’ clipboard. Text gets fed a character at a time to the Apple’s keyboard hardware. The ‘CR+LF’ combination gets converted to CR.
»
Visiblement la simulation du clavier pour envoi de texte a aussi été la solution retenue. Evidemment pour AppleWin, cela se passe directement dans le logiciel (mais le résultat est le même).
Cette solution semble la plus logique car elle permet finalement de « laisser » la machine émulée gérer elle-même ce qui lui est envoyé.
De toute façon comment envoyer directement quelques choses dans la mémoire de la machine émulée ? L’espace mémoire utilisé pour les données est différent pour chaque application. Envoyer les données est une chose, pouvoir les utiliser en est une autre. Ou alors il faudra faire un copier/coller spécifique à chaque application (ou à certaines en particulier).
Ou alors effectivement un copier/coller qui serait envoyé dans la mémoire du GS par l’émulateur directement et après à la charge de l’utilisateur de récupérer le contenu (sauvegarde directe par BSAVE de l’espace etc.).
Mais dans ce cas, n’est-il pas plus pratique d’intégrer directement les datas sous forme de fichier à une image disque par Ciderpress ou équivalent ?
envoyé le 31-01-2013 à 3 h 22 min
Le système du IIgs (GS/OS) comme son cousin du Macintosh gère en natif un presse papier permettant de gérer le copier/coller entre application (contrairement aux Atari ST et autres 16 bits de l’époque). Le contenu du presse papier étant géré par le système, il reste disponible si on quitte l’application où le Copier a été réalisé. On peut donc Coller ces données dans le document d’une autre application. Le presse papier gère le type de données qui lui est copié (graphique, texte…) ce qui permet d’échanger plusieurs types de données en fonction des programmes utilisés.
On peut d’ailleurs voir le contenu du presse papier depuis un des menu du Finder.
L’idée avec l’émulateur, c’est de modifier le contenu du presse papier géré par GS/OS , c’est à dire modifier la zone mémoire contenant le contenu du presse papier.
Pas besoin d’aller simuler les touches du clavier… C’est bien sûr la seule manière pour un émulateur Apple II 8 bit car le copier / coller doit être géré par chaque application à sa sauce. Avec le IIgs, on rentre dans la modernité. Autant insérer ce qu’on veut coller directement au bon endroit (la zoné mémoire dédiée au presse papier) / au bon format (conversion des accents Win en accents GS / avec le bon type (Texte en Texte, image en graphic…).
Y’a plus qu’à faire bouger Antoine pour qu’il nous trouve où c’est et comment sont codés les données.
Olivier
envoyé le 31-01-2013 à 9 h 42 min
Je parlais effectivement du GS « en général » (ou plutôt comme j’ai encore – trop – tendance à le voir), c’est à dire un super Apple II sans prendre en compte GS/OS avec ce qu’il apporte de modernité. Pour le copier/coller, le presse papier de GS/OS serait une solution oui mais quid des applications comme Merlin16+ par exemple ?
envoyé le 01-02-2013 à 3 h 11 min
Une application GS/OS n’est pas forcément graphique avec souris, menus en haut et fenêtres. Une application GS/OS est un exécutable (SYS 16, CDA, NDA…) qui interagit avec le système dans toutes ses actions (allocation mémoire, gestion des événements…). Le fait qu’une application soit en mode Texte ne l’empêche pas d’être GS/OS compliant !
Si Merlin 16+ n’utilise pas le presse papier de GS/OS tant pis pour elle. Elle s’exclue donc d’un processus d’échange entre elle même et les autres applications. Finalement, une application qui ne sait pas communiquer au sein même de son système hôte n’aura pas beaucoup de raison de communiquer avec l’extérieur.
L’échange via le Presse Papier est la voie à suivre. Pour Merlin 16+, il suffira de Coller le texte dans un fichier depuis un NDA gérant le presse papier (ShadowWrite, Teach…)
Olivier