Langage de programmation utilisé : | C Description Complète : | ========================================================================
- Sim beta 1c pour TI89/TI92+/V200 - Copyright (c) 2003 par Olivier Armand (ExtendeD) - Tous droits réservés.
========================================================================
Prenez le temps de lire ce fichier jusqu'Ã la fin (y compris le paragraphe 'Notes Importantes') avant d'utiliser Sim.
Qu'est-ce que Sim ? ====================
Sim peut émuler des programmes créés uniquement pour une calculatrice sur l'autre modèle de TI68k (c'est-à -dire que les programmes créés pour TI89 peuvent être exécutés sur TI92+/V200 avec Sim, et vice versa).
Sim peut aussi être utilisé pour remapper les touches de n'importe quel programme, si leur configuration ne vous plaît pas.
Différentes configurations de touches peuvent être créées et maintenues facilement à l'aide d'un script tapé dans un fichier texte dans un format très simple.
Seul l'émulation du clavier a pour l'instant était mise en place, mais l'émulation de l'écran sur TI89 devrait arriver bientôt.
Utiliser Sim =============
Sim doit être exécuté depuis la ligne de commande : sim ("<programme>" [,"<config>"] [,"<option1|option2|...>"] )
<programme> est le chemin d'accès du programme à émuler. Si le programme est compressé (ExePacké), ce DOIT être le nom du fichier PPG, PAS le nom du lanceur (le fichier ASM). <config> est le nom de la configuration de touches à utiliser. <optionX> est le nom d'une option à utiliser.
<config> et <option1>, <option2>, ... sont des paramètres optionnels : "thiscalc" et/ou "force" (voir plus loin). S'il y a plus d'une option, elles doivent être séparées par le caractère '|' ('sachant que'), sans espaces entre eux.
Si le programme que vous voulez émuler accepte des paramètres de ligne de commande, ajoutez les après ceux de Sim (après les options de Sim s'il y en a). Mais dans ce cas vous *devez* préciser la configuration de touches à utiliser.
Le Script ==========
Sim à besoin d'un script pour choisir quelles touches il faut remapper, et comment il faut les remapper. Ce script doit être un fichier texte nommé 'simkscpt', créé dans n'importe quel dossier, avec le format suivant :
config_name1 : original_key1 -> new_key1, orignal_key2 -> new_key2, etc. config_name2 : original_key1 -> new_key1, etc. config_name3 : etc.
Vous pouvez utiliser le script fournit dans ce pack ('KeysScript.xxt') pour voir à quoi il ressemble. Il est important que vous choisissiez le fichier correspondant à VOTRE calculatrice.
Vous pouvez créer différentes configurations de touches, une pour chaque programme ou type de programme. Ceci permet de choisir la configuration que l'on veut pour le programme que l'on émule, ou pour un programme pour votre calculatrice dont les touches ne vous conviennent pas.
Le nom de la configuration (par exemple "config_name3" pour l'exemple précédent) doit être utilisé quand Sim est lancé (c'est le paramètre <config>). Le nom est sensible à la casse. Vous pouvez omettre ce paramètre : la configuration 'default' sera utilisée automatiquement (si elle est trouvée). L'exemple de 'simkscpt' fournit dans ce pack comporte uniquement cette configuration. Vous pouvez en ajouter d'autres si vous le souhaitez.
Si vous ne voulez pas utiliser de configuration, utiliser "none" comme nom de configuration : il n'y aura pas d'émulation bas-niveau du clavier (voir plus loin : "L'émulation du clavier").
Vous pouvez trouver plus de détails sur la syntaxe du script, et sur la liste des noms des touches à utiliser dans le fichier "SyntaxeDuScript.txt" de ce pack. Il est indispensable que vous lisiez ce fichier pour créer une nouvelle configuration.
L'émulation du clavier =======================
D'abord Sim lit le script. Puis il essaie de supprimer la détection de calculatrice s'il y en a une (qui affiche le message "Wrong calculator model" quand le programme est exécuté sur le mauvais type de calculatrice).
Puis il applique un certain nombre de patchs et installe différents handlers pour l'émulation du clavier. Il y a deux types d'émulation : l'émulation de ngetchx() et l'émulation bas-niveau.
L'émulation de ngetchx() corrige le problème des flèches mélangées quand la fonction de l'AMS 'ngetchx()' est utilisée pour lire le clavier. Cette fonction est souvent utilisée dans le menu principal d'un jeu, quand on entre son nom pour un nouveau high score, ou quand le programme n'a pas besoin de scanner rapidement le clavier. Vous pouvez supprimer l'effet de cette émulation en mettant un caractère underscore ('_') avant le nom de la configuration de touches dans la ligne de commande (par exemple "_config"), mais vous ne devriez pas avoir besoin d'utiliser cette option.
L'émulation bas-niveau est l'émulation de la fonction _rowread() de TIGCClib ou de toute fonction similaire scannant le clavier. Les configurations de touches tapées dans le script 'simkscpt' concernent uniquement cette émulation, pas l'émulation de ngetchx(). Si vous utilisez 'none' comme nom de configuration, seule l'émulation de ngetchx() sera active.
Remapper le clavier ====================
Quand vous n'émulez pas de programme, si vous voulez simplement changer la configuration de touches d'un programme pour la bonne calculatrice (c'est-à -dire un programme créé pour la calculatrice que vous utilisez pour faire tourner Sim), vous devez utiliser Sim exactement de la même façon que si vous émuliez un programme, mais vous DEVEZ quand même préciser à Sim que vous n'émulez pas un programme.
Pour cela, le troisième paramètre de Sim (<options>) doit être la chaîne "thiscalc". Notez que vous devez préciser le nom de la configuration de touches à utiliser si vous activez une ou plusieurs option (la configuration 'default' ne peut pas être sélectionnée automatiquement).
Notez aussi que les touches à gauche du caractère STO dans la configuration de touches du script doivent exister sur la calculatrice utilisée pour exécuter Sim quand l'option "thiscalc" est utilisée.
Forcer l'émulation du clavier ==============================
Parfois l'émulation bas-niveau peut ne pas fonctionner avec certains programmes. Dans ce cas, vous pouvez essayer de forcer l'émulation en utilisant l'option de Sim "force". Par exemple : sim ("prgm", "default", "force") Forcer l'émulation du clavier peut ralentir l'exécution du program, mais devrait fonctionner sur tout programme ne pouvant pas être émuler en mode normal. So vous trouvez un programme dont le scan du clavier ne peut pas être émulé, même en mode forcé, e-mailez moi (voir 'Contacter l'auteur').
Vous pouvez combiner l'option "thiscalc" avec l'option "force" pour forcer un remappage de clavier : sim ("prgm", "default", "force|thiscalc") où '|' est le caractère 'sachant que' (2nd + K sur TI92+/V200).
Notez que l'option "force" ne fonctionne correctement sur aucune version disponible de Virtual TI.
Notes importantes ==================
* Les exécutables (sim.9xz, sim.89z) ne fonctionnent PAS sur n'importe quelle calculatrice : utilisez le fichier avec la bonne extension (utilisez les fichiers .9xz pour une V200). Si vous utilisez l'OS PedroM, utilisez les exécutables sim_pedrom.xxz. Si vous utilisez AMS, un AMS 2.04 minimum est requis. Vous pouvez néanmoins utiliser sim_pedrom.xxz mais avec un TSR ou un kernel (tel que PreOS) installant un Line 1111 Emulator pour les ROM Calls.
* Essayez de ne pas oublier une touche et de ne pas créer un remap du clavier invalide dans le script ! Sion vous ne pourrez peut-être plus rien faire dans le programme émulé, et vous ne pourrez plus revenir à l'OS. Vous n'aurez plus qu'à reseter la calculatrice.
* N'oubliez pas l'option "thiscalc" quand vous faites tourner un programme qui fonctionne sur votre calculatrice et ne nécessite pas d'émulation (quand vous voulez simplement remapper le clavier). Et n'utilisez pas cette option quand le programme a besoin d'une émulation. Sinon la configuration de touches ne sera pas lue correctement par Sim.
A faire ========
* Déboguer, améliorer et intégrer au projet l'émulation d'écran sur TI89.
Disclaimer - Licence =====================
Je ne peux être tenu pour responsable de dommages et/ou de pertes de données résultant directement ou indirectement de l'utilisation de Sim. Vous n'êtes pas autorisés à redistribuer ce pack ou une de ses parties sans mon autorisation.
A propos du code source ========================
Le code source est inclus dans le package dans le dossier 'src'. Le code source est fourni pour satisfaire votre curiosit, et pour que vous m'aidiez à améliorer le programme. Mais s'il vous plaît demandez moi avant d'en utiliser une partie dans vos programmes.
Contacter l'auteur ===================
Posez vos questions à propos de Sim, reportez les bugs ou les problèmes survenant lors de l'émulation de certains programmes à : Olivier Armand - <ola.e-ml@wanadoo.fr>
Historique ===========
18/06/2003 : Release beta 1c - Maintenant compatible avec PedroM. - Ajout de l'option "force" pour forcer l'émulation du clavier : la plupart des programmes devrait pouvoir maintenant être émulée sans problèmes. Voir paragraphe 'Forcer l'émulation du clavier'.
20/04/2003 : Release beta 1b - Ajout d'une protection anti-auto-exécution. - Correction d'un petit bug dans la lecture des arguments. - Possibilité d'émuler des programmes avec des arguments.
23/02/2003 : Release beta 1 Première distribution publique.
Remerciements à : =================
* La TIGCC Team (http://tigcc.ticalc.org) pour leur excellent travail.
* Thomas Nussbaumer (http://tict.ticalc.org) pour ses outils puissants de compression/decompression (ExePack).
* Kevin Kofler et Samuel Stearley pour leur conseils et leur report de de bugs.
| Archive mise en ligne par : | | Date de mise en ligne : | 13/07/2004 à 13:32:56 | |