========================================================================

- Sim beta 1c pour TI89/TI92+/V200 -
Copyright (c) 2003 par Olivier Armand (ExtendeD) - Tous droits rservs.

========================================================================

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 crs uniquement pour une calculatrice
sur l'autre modle de TI68k (c'est--dire que les programmes crs pour
TI89 peuvent tre excuts 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 plat pas.

Diffrentes configurations de touches peuvent tre cres et maintenues
facilement  l'aide d'un script tap dans un fichier texte dans un
format trs simple.

Seul l'mulation du clavier a pour l'instant tait mise en place, mais
l'mulation de l'cran sur TI89 devrait arriver bientt.


Utiliser Sim
=============

Sim doit tre excut depuis la ligne de commande :
sim ("<programme>" [,"<config>"] [,"<option1|option2|...>"] )

<programme> est le chemin d'accs 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 paramtres optionnels :
"thiscalc" et/ou "force" (voir plus loin). S'il y a plus d'une option,
elles doivent tre spares par le caractre '|' ('sachant que'), sans
espaces entre eux.

Si le programme que vous voulez muler accepte des paramtres de ligne
de commande, ajoutez les aprs ceux de Sim (aprs les options de Sim
s'il y en a). Mais dans ce cas vous *devez* prciser 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 crer diffrentes 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
prcdent) doit tre utilis quand Sim est lanc (c'est le paramtre
<config>). Le nom est sensible  la casse. Vous pouvez omettre ce
paramtre : la configuration 'default' sera utilise automatiquement (si
elle est trouve).
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 dtails 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 crer une nouvelle configuration.


L'mulation du clavier
=======================

D'abord Sim lit le script. Puis il essaie de supprimer la dtection
de calculatrice s'il y en a une (qui affiche le message "Wrong
calculator model" quand le programme est excut sur le mauvais type
de calculatrice).

Puis il applique un certain nombre de patchs et installe diffrents
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 problme des flches mlanges quand
la fonction de l'AMS 'ngetchx()' est utilise pour lire le clavier.
Cette fonction est souvent utilise 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 caractre
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 tapes 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
mme faon que si vous muliez un programme, mais vous DEVEZ quand
mme prciser  Sim que vous n'mulez pas un programme.

Pour cela, le troisime paramtre de Sim (<options>) doit tre la chane
"thiscalc". Notez que vous devez prciser le nom de la configuration
de touches  utiliser si vous activez une ou plusieurs option (la
configuration 'default' ne peut pas tre slectionne automatiquement).

Notez aussi que les touches  gauche du caractre STO dans la
configuration de touches du script doivent exister sur la calculatrice
utilise pour excuter Sim quand l'option "thiscalc" est utilise.


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'excution 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, mme 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 caractre '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 excutables (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 excutables
  sim_pedrom.xxz.
  Si vous utilisez AMS, un AMS 2.04 minimum est requis. Vous pouvez
  nanmoins 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 crer 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 ncessite 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
========

* Dboguer, amliorer et intgrer au projet l'mulation d'cran sur TI89.


Disclaimer - Licence
=====================

Je ne peux tre tenu pour responsable de dommages et/ou de pertes de
donnes rsultant directement ou indirectement de l'utilisation de Sim.
Vous n'tes pas autoriss  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  amliorer le programme.
Mais s'il vous plat 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 problmes
 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 mule sans problmes.
                  Voir paragraphe 'Forcer l'mulation du clavier'.

   20/04/2003 : Release beta 1b
                - Ajout d'une protection anti-auto-excution.
                - Correction d'un petit bug dans la lecture des
                  arguments.
                - Possibilit d'muler des programmes avec des arguments.

   23/02/2003 :	Release beta 1
		Premire 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.

