1

Bon, j'ai pas grand chose sur Lyon, alors voilà ce que j'ai pu trouver.
A titre indicatif pour ceux & celles qui n'étaient pas à l'OpentYaronet Lyon, où j'expliquais ma technique de programmation : des indées géniales, une analyse beton, une préparation d'enfer, un squelette de code, mais rien dedans... gni (par pure flemme, ou par mon manque d'investissement en programmation TI).
Voilà donc en avant première le fichier .txt joint avec Scriptorium... n'hésitez pas à rire, c'est pas fait pour, mais ça peut grin /*---[Charte de modification et d'adaptation du source join]----------------------------------------------*/ /* La présente charte est acceptée dès qu'un programmeur diffuse un code source directement issus de celui*/ /* join afin de faciliter la linéarité des mises à jour.                                */ /* Elle ne considère que la mise en forme des programmes, laissant au programmeur l'entière responsabiltié*/ /* des astuces de programmation utilisées.                                          */ /*--------------------------------------------------------------------------------------------------------*/ 1. Des commentaires : ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¤ Des commentaires doivent être faits le plus possible afin de rendre le source lisible. ¤ Distance entre l'extreme gauche et les commentaires de description : 30 tabulations suivies de //. ¤ Commentaires de fonction ou de bloc important d'instructions :       - Suivre l'exemple suivant : /*---[TitreDeFonction]------------------------------------------------------------------------------------*/ /* Commentaires :                                                         */ /* Description                                                                */ /* Spécifications internes                                                    */ /* Spécifications externes                                                    */ /* Paramètres                                                                */ /* Donnée retournée                                                           */ /* Pré-requis                                                                */ /* Bugs connus                                                                */ /* Historique & choses à prévoir                                               */ /*--------------------------------------------------------------------------------------------------------*/ 2. Des variables : ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¤ Les variables sont en langue de Shakespeare (Anglais). ¤ La formation des variables se fait      - par concaténation des mots la décrivant      - en mettant une majuscule à chaque début de ces mots, même au premier      - sans utilisation de caractère souligné ("_") ¤ Exemple : ThisIsMyNewVariable ¤ Les fonctions suivent cette reglementation. 3. Des blocs d'instruction : ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¤ La définition des blocs d'intruction se fait par les accolades, même lorsqu'elles ne sont pas obligatoires. ¤ L'ouverture/fermeture du bloc d'instruction se fait dans le même alignement que la déclaration de sutructure. ¤ De plus, elle se fait à la ligne. ¤ Le bloc d'instruction en lui même est à une tabulation des accolades. ¤ Exemple :      void _main(void)      {        SetMenu();        switch(Result)        {          case 0:          {            ActivateAreaOfText();            break;          }        }      } 4. Des traductions : ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Dès la délivrance de la source, les commentaires devront être traduits dans l'intégralité, suivant deux normes (que le programmeur choisira une fois pour toute) :      - deux sources différentes, une en anglais, l'autre en français      - un code source avec duplication des commentaires. Dans le cas ou le projet est repris par une personne ne parlant pas le français :      - les commentaires en français pourront être omis et rédigés ultérieurement par une tierce personne. 5. De l'utilisation de chaînes de caractères : ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Il est demandé aux programmeurs de séparere les variables de type chaîne (Strings) qu'elle qu'elle soient (type tableau, String pure, liste ou autre), du reste du programme afin de faciliter les traductions et les portages. 6. De la numérotation de la version : ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Deux cas se présentent : ¤ Le programme est un programme entierement nouveau :      - Le programmeur est totalement libre de décider d'une nouvelle numérotation ¤ Le programme est une adaptation ou une évolution du programme présent :      - On utilise la présente norme :                          XX.XX-XXX.XX                          ^  ^  ^   ^      Version courante ---------------+  |  |       |      Sous numéro de version ------------+  |       |      Version de la ROM attendue -----------+       |      Version d'HW attendue --------------------+      - Exemples :           Version 2 rev 4 pour ROM 2.03 et HW 2          : 2.4-203.2           Version 2 rev 4 pour ROM 2.xx et HW 2           : 2.4-2.2           Version 2 rev 4 pour ROM 2.03 n'importe quel HW : 2.4-2.0           Version 2 rev 4 pour tout materiel           : 2.4
avatar

2

Et ici la toute première version de Scriptorium (ne vous inquietez pas si c'est vide, c'est normal...) la seconde version est à peine mieux, il doit y avoir une ou deux lignes de *vrai* code gni².
La grande différence entre la 1ere et la seconde, c'est les menus (ici j'utilise ceux du TIOS - trop lents, dans l'autre, c'est des persos inutilisables :/). // (c) 2000-2003 Nil pour la version TI92+ // Fichier Source Principal // Créé le 05/12/00 à 14:03:19 #define USE_INITS_PATCH #include <events.h> #include <system.h> #include <menus.h> #include <wingraph.h> #include <string.h> #include <stdio.h> #include <alloc.h> #include <kbd.h> #include <graph.h> int _ti92plus;                                                                 //Pour l'instant, seulement pour les TI92+                                                                                                                    //Le fait que les TI89 n'aient pas de clavier                                                                                                                    //explique ce choix /*---[Constantes de mise en forme]--------------------------------------------------------------------------*/ /* Constantes type TxtRider... de cette manière, la portabilité est facilitée                                        */ /*----------------------------------------------------------------------------------------------------------*/ const char *StrUnderLine="#U"; /*---[ActivateAreaOfText]-----------------------------------------------------------------------------------*/ /* Rend active la surface de texte dans laquelle on peut à nouveau insérer du texte                                   */ /*----------------------------------------------------------------------------------------------------------*/ void ActivateAreaOfText(void) {      ClrScr(); } /*---[CreateNew]--------------------------------------------------------------------------------------------*/ /* Création d'un nouveau fichier OWord pour TxtRider                                                                      */ /*----------------------------------------------------------------------------------------------------------*/ void CreateNew(void) {       } /*---[OpenFile]---------------------------------------------------------------------------------------------*/ /* Ouvre un nouveau fichier (soit texte brut, soit TxtRider)                                                            */ /*----------------------------------------------------------------------------------------------------------*/ void OpenFile(void) {       } /*---[SaveAsCurrent]----------------------------------------------------------------------------------------*/ /* Sauve le fichier courant sous réserve qu'il existe déja, sinon, appelle SaveAs                                   */ /*----------------------------------------------------------------------------------------------------------*/ void SaveAsCurrent(void) {       } /*---[SaveAsNew]--------------------------------------------------------------------------------------------*/ /* Sauve le fichier courant dans un nouveau fichier                                                                           */ /*----------------------------------------------------------------------------------------------------------*/ void SaveAsNew(void) {       } /*---[SimplyQuit]-------------------------------------------------------------------------------------------*/ /* Quitte OWord en demandant une confirmation de sauvegarde si besoin (appelle dans ce cas SaveAsCurrent)     */ /*----------------------------------------------------------------------------------------------------------*/ void SimplyQuit(void) {       } /*---[SeekAndResearch]--------------------------------------------------------------------------------------*/ /* Recherche une suite alphanumérique dans le fichier ouvert                                                              */ /*----------------------------------------------------------------------------------------------------------*/ void SeekAndResearch(void) {       } /*---[PageFinder]-------------------------------------------------------------------------------------------*/ /* Affiche les marques page insérés                                                                                               */ /*----------------------------------------------------------------------------------------------------------*/ void PageFinder(void) {       } /*---[CharMap]----------------------------------------------------------------------------------------------*/ /* Affiche la table des caractères                                                                                               */ /*----------------------------------------------------------------------------------------------------------*/ void CharMap(void) {       } /*---[UnderlineMode]----------------------------------------------------------------------------------------*/ /* Passe en mode souligné si pas activé, le désactive sinon                                                                 */ /*----------------------------------------------------------------------------------------------------------*/ void UnderlineMode(void) {       } /*---[VectorMode]-------------------------------------------------------------------------------------------*/ /* Passe en mode vecteur si pas activé, le désactive sinon                                                                 */ /*----------------------------------------------------------------------------------------------------------*/ void VectorMode(void) {       } /*---[InvertedMode]-----------------------------------------------------------------------------------------*/ /* Passe en mode inverse si pas activé, le désactive sinon                                                                 */ /*----------------------------------------------------------------------------------------------------------*/ void InvertedMode(void) {       } /*---[InsertFinder]-----------------------------------------------------------------------------------------*/ /* Insère un maque page au curseur                                                                                               */ /*----------------------------------------------------------------------------------------------------------*/ void InsertFinder(void) {       } /*---[WordWrap]---------------------------------------------------------------------------------------------*/ /* Mode passage à la ligne auto si pas activé, le désactive sinon                                                       */ /*----------------------------------------------------------------------------------------------------------*/ void WordWrap(void) {       } /*---[SmallFont]--------------------------------------------------------------------------------------------*/ /* Passe en police taille 1                                                                                                         */ /*----------------------------------------------------------------------------------------------------------*/ void SmallFont(void) {       } /*---[MediumFont]-------------------------------------------------------------------------------------------*/ /* Passe en police taille 2                                                                                                         */ /*----------------------------------------------------------------------------------------------------------*/ void MediumFont(void) {       } /*---[MediumFont]-------------------------------------------------------------------------------------------*/ /* Passe en police taille 3                                                                                                         */ /*----------------------------------------------------------------------------------------------------------*/ void LargeFont(void) {       } /*---[LeftPos]----------------------------------------------------------------------------------------------*/ /* Justifie le texte à gauche                                                                                                    */ /*----------------------------------------------------------------------------------------------------------*/ void LeftPos(void) {       } /*---[CenterPos]--------------------------------------------------------------------------------------------*/ /* Centre le texte                                                                                                                   */ /*----------------------------------------------------------------------------------------------------------*/ void CenterPos(void) {       } /*---[RightPos]---------------------------------------------------------------------------------------------*/ /* Justifie le texte à droite                                                                                                    */ /*----------------------------------------------------------------------------------------------------------*/ void RightPos(void) {       } /*---[NoMargins]--------------------------------------------------------------------------------------------*/ /* Passe en marge 0 pixels                                                                                                         */ /*----------------------------------------------------------------------------------------------------------*/ void NoMargins(void) {       } /*---[SmallMargins]-----------------------------------------------------------------------------------------*/ /* Passe en marge 10 pixels     (vérifier le nb de pixels)                                                                      */ /*----------------------------------------------------------------------------------------------------------*/ void SmallMargins(void) {       } /*---[LargeMargins]-----------------------------------------------------------------------------------------*/ /* Passe en marge 20 pixels     (vérifier le nb de pixels)                                                                      */ /*----------------------------------------------------------------------------------------------------------*/ void LargeMargins(void) {       } /*---[SimpleLine]-------------------------------------------------------------------------------------------*/ /* Insère une ligne simple coupant tout l'écran                                                                                */ /*----------------------------------------------------------------------------------------------------------*/ void SimpleLine(void) {       } /*---[DoubleLine]-------------------------------------------------------------------------------------------*/ /* Insère une double simple coupant tout l'écran                                                                           */ /*----------------------------------------------------------------------------------------------------------*/ void DoubleLine(void) {       } /*---[SetMenu]----------------------------------------------------------------------------------------------*/ /* Initialisation & Affichage du menu. Pour des raisons de simplicité, il est fait usage des routines du       */ /* TIOS (cela pourra être peut-être révisé dans les futures versions, de manière à avoir une interface         */ /* proche de celle de la version DOS actuelle de Okin's Word).                                                            */ /* La documentation du TIGCC portant sur les menus indiquait des difficultés d'elaboration de sous-sous          */ /* menus. C'est pour cela que les rubriques ont leur propres menus.                                                       */ /* A priori, le menu sera utilisé de la façon suivante :                                                                  */ /*                               - Démarrage menu affiché                                                                           */ /*                              - Si appui sur Esc ou commande demandée, on passe la main (après la commande) à une */ /*                                   zone de texte. Afin de gagner en surface, le menu disparait.                         */ /*                              - Si appui sur une touche (probablement Hand), affichage du Menu.                         */ /*----------------------------------------------------------------------------------------------------------*/ void SetMenu(void) {      HANDLE Menu1;                                                                                               //Handle des définitions du menu principal      HANDLE Menu1Launcher;                                                                                     //Handle du démarrage du menu (execution)      int Result = -1;                                                                                          //Entier contenant la valeur code du menu choisi            Menu1=MenuNew(2, 240, 18);                                                                                //Nouveau Menu. Le premier paramètre est bétémé                                                                                                                    //les autres sont : Largeur & Hauteur      MenuAddText(Menu1, 0,     "Fichier"                                     , 1  , 0);                         //Menu Fichier       MenuAddText(Menu1, 1,     "Nouveau"                                     , 11 , 0);                         //          +-Nouveau      MenuAddText(Menu1, 1,     "Ouvrir..."                                   , 12 , 0);                         //          +-Ouvrir...      MenuAddText(Menu1, 1,     "Sauver"                                   , 13 , 0);                          //          +-Sauver      MenuAddText(Menu1, 1,     "Sauver Sous..."                         , 14 , 0);                         //          +-Sauver Sous...      MenuAddText(Menu1, 1,     "Quitter"                                   , 15 , 0);                          //          +-Quitter      MenuAddText(Menu1, 0,     "Options"                                   , 2  , 0);                          //Menu Options       MenuAddText(Menu1, 2,     "Rechercher..."                              , 21 , 0);                          //          +-Rechercher      MenuAddText(Menu1, 2,     "Aperçu Marque Pages"                    , 22 , 0);                          //          +-Aperçu Marque Pages      MenuAddText(Menu1, 2,     "Table des Caractères"                    , 23 , 0);                          //          +-Table des Caractères                 MenuAddText(Menu1, 0,     "Mise En Forme"                              , 3  , 0);                         //Menu Mise En Forme      MenuAddText(Menu1, 3,     "Souligné"                                   , 31 , 0);                          //       +-Souligné      MenuAddText(Menu1, 3,     "Vecteur"                                   , 32 , 0);                          //           +-Vecteur      MenuAddText(Menu1, 3,     "Inverse"                                   , 33 , 0);                          //           +-Inverse      MenuAddText(Menu1, 3,     "Marque Page"                              , 34 , 0);                         //           +-Marque Page      MenuAddText(Menu1, 3,     "Word Wrap"                                   , 35 , 0);                          //           +-Word Wrap      MenuAddText(Menu1, 0,     "Police"                                   , 4  , 0);                          //Menu Police      MenuAddText(Menu1, 4,     "Petite"                                   , 41 , 0);                          //       +-Petite      MenuAddText(Menu1, 4,     "Moyenne"                                   , 42 , 0);                          //       +-Moyenne      MenuAddText(Menu1, 4,     "Grande"                                   , 43 , 0);                          //       +-Grande      MenuAddText(Menu1, 0,     "Position"                                   , 5  , 0);                          //Menu Position      MenuAddText(Menu1, 5,     "Gauche"                                   , 51 , 0);                          //       +-Gauche      MenuAddText(Menu1, 5,     "Centré"                                   , 52 , 0);                          //       +-Centré      MenuAddText(Menu1, 5,     "Droite"                                   , 53 , 0);                          //       +-Droite      MenuAddText(Menu1, 0,     "Marges"                                    , 6  , 0);                          //Menu Marges      MenuAddText(Menu1, 6,     "Ancune"                                   , 61 , 0);                          //       +-Aucune      MenuAddText(Menu1, 6,     "Petite"                                   , 62 , 0);                          //       +-Petite      MenuAddText(Menu1, 6,     "Grande"                                   , 63 , 0);                          //       +-Grande            MenuAddText(Menu1, 0,     "Trait"                                        , 7  , 0);                         //Menu Trait      MenuAddText(Menu1, 7,     "Simple"                                   , 71 , 0);                          //       +-Simple      MenuAddText(Menu1, 7,     "Double"                                   , 72 , 0);                          //       +-Double      Menu1Launcher = MenuBegin (HeapDeref (Menu1), 0, 0, 0);                                             //Création du Menu1        {             Result = MenuKey (Menu1Launcher, ngetchx());                                                  //Les valeurs retournées le sont dans result        }         //Attention au switch :       switch(Result)                                                                                               //En fonction de ces valeurs, je réagis      {           case 0:                                                                                                    //Je passe la main à l'édition de texte           {                ActivateAreaOfText();                break;           }           case 11:                                                                                               //Je crée un nouveau texte           {                CreateNew();                break;           }           case 12:                                                                                               //J'ouvre un fichier           {                OpenFile();                break;           }           case 13:                                                                                               //J'enregistre le fichier courant           {                SaveAsCurrent();                break;           }           case 14:                                                                                               //J'enregistre sous           {                SaveAsNew();                break;           }           case 15:                                                                                               //Je quitte           {                SimplyQuit();                break;           }           case 21:                                                                                               //Fonction Rechercher           {                SeekAndResearch();                break;           }           case 22:                                                                                               //Affichage des Marque Pages           {                PageFinder();                break;           }           case 23:                                                                                               //Affichage de la table des caractères           {                CharMap();                break;           }           case 31:                                                                                               //Active/Désactive le mode souligné           {                UnderlineMode();                break;           }           case 32:                                                                                               //Active/Désactive le mode vecteur           {                VectorMode();                break;           }           case 33:                                                                                               //Active/Desactive le monde inverse           {                InvertedMode();                break;           }           case 34:                                                                                               //Insere un marque page           {                InsertFinder();                break;           }           case 35:                                                                                               //Active/Désactive le Word Wrap auto           {                WordWrap();                break;           }           case 41:                                                                                               //Met la taille de la police la plus petite           {                SmallFont();                break;           }           case 42:                                                                                               //Met la taille de la police la moyenne           {                MediumFont();                break;           }           case 43:                                                                                               //Met la taille de la police la plus grande           {                LargeFont();                break;           }           case 51:                                                                                               //Texte positionné à gauche           {                LeftPos();                break;           }           case 52:                                                                                               //Texte centré           {                CenterPos();                break;           }           case 53:                                                                                               //Texte posistionné à droite           {                RightPos();                break;           }           case 61:                                                                                               //Pas de marge           {                NoMargins();                break;           }           case 62:                                                                                               //Petite marge           {                SmallMargins();                break;           }           case 63:                                                                                               //Grande marge           {                LargeMargins();                break;           }           case 71:                                                                                               //Ligne simple horizontale           {                SimpleLine();                break;           }           case 72:                                                                                               //Ligne double horizontale           {                DoubleLine();                break;           }      }      MenuEnd(Menu1Launcher);                                                                                     //Achève l'exécution du Handle Menu1      HeapFree(Menu1);                                                                                          //Libère le Heap Menu1      MenuUpdate();                                                                                               //Rafraichit l'état de la barre de menu } // Fonction principale void _main(void) {      SetMenu(); }
avatar

3

C'est con, les tabulations passent mal ici, sinon ça fait niquel sous TIGCC (ya que ça de bien dans mes sources, d'ailleurs grin).

Ne vous plaignez pas que ça soit vide, c'est une pre pre pre pre pre alpha grin
avatar

4

Hummmmm
Sa arrache grin
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

5

n'est-il pas ? grin
avatar

6

En effet je n'ai qu'une question:
"C'est sencé faire quoi!"
avatar

7

[mode=troll]
¤ La formation des variables se fait
- par concaténation des mots la décrivant
- en mettant une majuscule à chaque début de ces mots, même au premier
- sans utilisation de caractère souligné ("_")

bang
Underscore powaaaaaa ! À bas les noms illisibles où faut en plus appuyer sur shift toutes les 3 lettres pour les taper roll
C'est con, les tabulations passent mal ici

Les tabulations, c'est naze, t'as qu'à utiliser des espaces...
[/mode -- désolée, mais je suis passée du côté obscur depuis vendredi :-\]
À part ça, c'est assez impressionnant je dois dire grin
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

8

Non, non, je reste sur ma position : pas du underscores grin...
Uther : rien, c'est le problème (c'est le squelette de base de test de l'alpha primaire de Scriptorium)...
avatar

9

En tt cas, c tres puissant comme codes grin

10

Et le pire, c'est que ça marche à la compilation, il n'y a aucune erreur gni
avatar

11

c deja ca grin