home *** CD-ROM | disk | FTP | other *** search
- /************************************************************************
- **************************************************************************
- ** **
- ** JayCalc.doc **
- ** ----------- **
- ** **
- ** Auteur : Eric Le Saux **
- ** **
- ** Club Amiga Montreal (CAM) **
- ** C.P. 195 STATION "N" **
- ** Montreal (Quebec) **
- ** H2X 3M2, CANADA **
- ** **
- ** Date : 20 decembre 1987 **
- ** **
- ** Statut : DOMAINE PUBLIC - Distribution non-commerciale seulement **
- ** PUBLIC DOMAIN - Freely redistributable **
- ** **
- **************************************************************************
- ************************************************************************/
-
-
- JayCalc a ete realisee dans le but de faciliter l'evaluation des
- equations logiques executables par le blitter. Bien qu'elle soit
- principalement destinee aux programmeurs, JayCalc peut se rendre
- extremement utile aux utilisateurs de programmes tel Butcher 2.0.
-
-
-
- DOCUMENTATION DE L'UTILISATEUR
- ==============================
-
- 1. Ouverture
- ------------
-
- WorkBench : Clic-clic !
-
- CLI : 1> JayCalc ;ouverture interactive
-
- 1> JayCalc A(B|c) ;traitement en batch
- LF : hex(0xd0), dec(208) ; resultats
- Equation corrigee : A(B|c) ; correction
-
- Le traitement en batch rend possible l'utilisation de la
- calculatrice sur un systeme ou il reste peu de memoire.
-
- 2. Fermeture
- ------------
-
- Comme d'habitude, sur le CLOSEGADGET, ou :
-
- CTRL_C, si le programme monopolise un CLI.
-
- "Break c <numero de tache>", si le programme a ete demarre avec "Run".
- Le <numero de tache> est revele par la commande "Status".
-
-
- 3. Interraction
- ---------------
-
- Il y a quatre facons d'agiter les perciplexes de la calculatrice :
-
- a) Par le Keypad (de la calculatrice, pas du clavier !).
- b) En ecrivant directement l'equation desiree dans le string gadget.
- c) En ecrivant directement le code LF desire.
- d) En cliquant dans les differentes regions du diagramme de Venn.
-
- Ces trois derniers moyens de communication servent simultanement
- a renvoyer des resultats a l'usager.
-
-
- 4. Le Keypad
- ------------
-
- Les touches du Keypad se composent des six symboles logiques
- consideres : A, non-A ('a'), B, non-B ('b'), C et non-C ('c').
-
- Le signe d'egalite fait afficher l'equation normalisee.
- La barre verticale represente l'operateur OU.
- Le cercle commande la remise a zero de la calculatrice.
-
- Il y a aussi des parentheses, une touche de backspace, et deux
- fleches qui, lorsque l'on est en mode d'insertion, nous deplacent
- dans l'equation.
-
-
- 5. L'equation
- -------------
-
- On peut ecrire une equation de 40 caracteres de long au maximum.
- Si c'est trop court, changez la longueur dans JayCalc.h.
-
- Les symboles reconnus sont : A a B b C c | ( )
- Tous les autres seront elimines sans regard au sexe ou a l'age.
-
-
- 6. Le code LF
- -------------
-
- Il s'agit du code de l'operation logique. A sa droite se trouve
- un gadget alternatif (toggle gadget) qui indique le mode, hexa ou
- decimal, dans lequel on se trouve.
-
- Quand l'equation n'a pas toutes ses parentheses fermees, un
- message d'erreur s'y affiche (i.e. "(?)").
-
- La modification de cette valeur cause l'affichage de l'equation
- normalisee correspondante.
-
-
- 7. Le diagramme de Venn
- -----------------------
-
- Representation graphique de l'operation logique. Le moindre
- contact avec ses regions peut causer d'amers remords, dont le signe
- precurseur est la normalisation de l'equation.
-
-
- 8. Equation normalisee
- ----------------------
-
- Equation representee sous la forme d'une somme de triplets logiques,
- mutuellement exclusifs, qui correspondent directement aux regions
- allumees du diagramme de Venn.
-
-
-
-
-
- DOCUMENTATION SOMMAIRE DU PROGRAMMEUR
- =====================================
-
-
- Un autre des objectifs de l'auteur de JayCalc est de fournir des
- exemples de programmation en C sur l'Amiga. Le style clair et elegant
- de l'auteur ne pourra laisser froid le programmeur d'experience, et
- rechauffera le coeur des debutants qui verront pour la premiere fois
- l'entree du tunnel (mmppfff !).
-
-
- 1. Compilateur
- --------------
-
- Ce programme a ete concu pour le MANX 3.4a (revision 3).
- La sequence de compilation est :
-
- 1> cc JayCalc.c
- 2> ln +Cd JayCalc.o -lc
-
- L'option de linker +Cd garanti que les structures initialisees
- du programme seront accessibles par les 'custom chips' de l'Amiga.
-
-
- 2. Fichiers 'include' pour MANX
- -------------------------------
-
- Une erreur s'est glissee dans le fichier <exec/types.h>. Les constantes
- TRUE et FALSE sont declarees de type LONG, alors qu'une variable booleenne
- est de type SHORT. Le compilateur fait la conversion de type dans tous
- les cas, sauf dans le passage de parametres a une fonction.
-
- Corrigez.
-
-
- 3. Description sommaire des domaines couverts par les fonctions de JayCalc
- --------------------------------------------------------------------------
-
- main ()
-
- - Lecture des arguments donnes au CLI.
- - Interception des CTRL_C.
- - Attente, reception et replique aux messages d'Intuition.
-
- Initialise ()
-
- - Ouverture des librairies, d'une ROMFont, et d'une fenetre.
- - Creation de l'affichage.
-
- Erreur () (Fortement liee a la fonction precedente.)
-
- - Affichage des messages d'erreur avec possibilite d'un abandon ou
- d'une tentative supplementaire.
-
- Sortie ()
-
- - Comment fermer sans erreur ce que l'on a ouvert.
-
- TraiteGadget ()
-
- - Serveur pour diriger l'information recue au IDCMP (Intuition
- Direct Communication Message Port).
-
- AfficheVenn ()
-
- - Montre comment changer d'etat un gadget booleen masque, dont le
- mode d'illumination est GADGHCOMP.
-
- - Exemple de pointeurs.
-
- ModifieStringGadget ()
-
- - Comment changer le contenu d'un string gadget.
-
- EvalueEquation ()
-
- - Evaluation avec correction d'une equation.
- - Exemple de recursivite pour resoudre la priorite des parentheses.
-
-
- Et quelques autres fonctions...
-
-
-
- 4. JayCalc.h
- ------------
-
- IMPORTANT : L'ordre dans lequel les gadgets masques du diagramme de
- Venn sont lies ne doit PAS etre change. Le programme ne se comporterait
- plus decemment.
-
- Trois programmes ont ete utilises pour aider a la creation de ce
- fichier : Deluxe Paint II, NGI (convertisseur de brosses IFF a C), et
- PowerWindows 2.0.
-
- Bien que PowerWindow 2.0 ne supporte pas les masques pour les gadgets
- booleens, il a extremement simplifie l'ajustement des autres gadgets.
-
-
-
- 5. Questions
- ------------
-
- Pour toutes questions relatives a ce programme, on peut rejoindre
- l'auteur pendant les reunions mensuelles du Club Amiga Montreal.
-