************************ * ALARMING Version 2 * ************************ * Copyright © 1993 par * * Philippe Girolami * ************************ Version 1.03 terminée le 28/12/92 à 14:45. Version 1.12 terminée le 07/02/93 à 16:00. Version 1.23 terminée le 18/02/93 à 19:15. Version 1.33 terminée le 04/04/93 à 10:00. Version 1.36 terminée le 09/05/93 à 16:00. * Version 2.21 terminée le 20/09/93 à 16:38. I Remerciements: --------------- Merci à Genesis, U2, MC Solaar, Snap et beaucoup d'autres pour leur super musique, Commodore pour cette superbe machine et ses docs très bien écrites, à mes parents pour m'avoir foutu la paix pendant que je passais des heures devant mon écran, à mon frère pour avoir écouté la radio et donc ne pas m'avoir emmerdé, à Jean-Paul pour ses tests sur ce programme, à High Soft pour le superbe assembleur qu'est Devpac 3 (quelle différence par rapport à BIG MAC.C sur Apple IIe, pour ceux qui connaissent!) et enfin à la CAMIF pour avoir eu un SAV très rapide lors de mon problème de drive. Il faut aussi que j'ajoute à la liste le magasin "Expert Services", le seul magasin TOUT AMIGA de Cincinnati (Continuez...). II Préambule. ------------ CE PROGRAMME NECESSITE LA RELEASE 2 DU SYSTEME AMIGA (au moins version 37). Ce programme est librement distribuable tant que l'intégrité du code objet et de cette doc et sa confrère en Anglais est conservée. Notez tout de même que ce programme est distribué au titre de SHAREWARE, c' est-à-dire que si vous l'utilisez vous êtes prié d'envoyer une contribution à l'auteur (c'est moi çà!) à votre discrétion (pensez au pauvre here que je suis qui a trimé 3 mois avec ce programme pour que vous puissiez en profiter ; moi aussi mais bon...), vous pouvez par exemple lui envoyer un million de dollars, un disque dur pour son pauvre Amiga 500+ 1 Mo Chip Ram moniteur couleur (çà, c'est ma configuration de PAUVRE lycéen), des disquettes avec vos propres créations, vos propres sources, vos extensions mémoires inutiles ou si vraiment vous ne pouvez même pas lui envoyer 60 francs, au moins un message d'amitié. Si vous êtes assez bon pour m'envoyer quelque chose et si vous joignez une disquette vierge je vous enverrai tout autre programme que je ferai (envoyez-moi vos idées) ou toute mise-à-jour de celui-ci ou les 2 si vous avez de la chance. MERCI D'AVANCE... (Oui je sais, il faut trouver l'argent, l'enveloppe, écrire la lettre, mettre le timbre, la poster MAIS pensez à la joie que j'aurai lorsque je recevrai VOTRE lettre). Voici mon adresse pour tous les hommes et femmes de bonne volonté: Philippe Girolami 131 Domaine de Suartello 20090 Ajaccio FRANCE. Notez que si vous m'envoyez quelque chose et que vous vivez HORS d'Europe, je vous conseille VIVEMENT de m'envoyer votre lettre par avion car par le bateau ça prend des mois et ça se perd TRES souvent. Bon allez j'ai assez fait la manche pour maintenant, voici la doc en notre bonne vieille langue Française. III La génèse. ------------- Vous êtes vous déjà assi face à votre machine favorite (J'ESPERE) pour juste modifier un petit morceau de programme, terminer une petite chose et en fait manquer votre rendez-vous avec votre petite amie, oublier que vous aviez devoir de Physique le matin suivant alors qu'il est 10h00 du soir, ou autre petits aléas que connaissent tous les fous d'informatique ? Et bien si votre réponse est OUI, ce programme est fait pour vous, sinon je suis désolé mais ceci ne vous interessera guère a part pour l'affichage de l'heure ou pour se souvenir des anniversaires(!). Ma réponse étant oui à cette question je me suis mis en tête d'écrire ce programme et voici ce qui a poussé. Ceci est le version 2 d'ALARMING. De nombreuses fonctionnalitées lui ont été ajoutées depuis la version 1.36: nombre indéfini d'alarmes, utilisation de l'environnement ToolTypes, optimisation du code et debuggage (surtout). IV Description. -------------- ALARMING est un programme d'alarmes, il permet de fixer jusqu'à 19 alarmes simultanéments. Il y a 5 types d'alarmes: - Tous les jours (on fixe l'heure seulement). - Toutes les semaines (on fixe l'heure et le jour de la semaine). - Tous les mois (on fixe le jour et l'heure). - Tous les ans (on fixe le mois, le jour et l'heure). - A une date précise (on fixe tout). Vous avez droit à 2 options: Pour chacune des alarmes on peut donner un message à lire qui peut s'étendre sur jusqu'à 5 lignes. (Il faut alors cocher le gadget "Message") Vous pouvez aussi demander un clignotement. (il faut cocher le gadget "Flash screen" dans ce cas) A| Description des gadgets de la fenêtre de réglage. --------------------------------------------------- Suit une déscription de fenêtre de réglage. Pour acceder à celle-ci, il faut activer la fenêtre de l'heure (en bleu sur un Système 2.0 normal) et cliquer sur le bouton droit de la souris. Voici une description de chacun des gadgets de haut en bas: 1) Alarme: Ce gadget permet de choisir le NUMERO de l'alarme dont on veut modifier les réglages. C'est un Cycle Gadget de GadTools, si vous le cliquez en appuyant sur SHIFT, il cyclera à l'envers. 2) Type: C'est le TYPE d'alarme de cette alarme, il y a 6 possibilités qui sont claires comme de l'eau de roche: - Inactive (c'est-à-dire que l'alarme n'est pas en marche, vous pouvez la modifier sans problème.) - Once a day (Une fois par jour). - Once a week (Une fois par semaine). - Once a month (Une fois par Mois). - Once a year (Une fois par an). - A precise date (Une date précise). Selon le type vous pourrez modifier plus ou moins de réglages. Par exemple pour le deuxième type (jour) vous ne pourrez modifier que l'heure, les autres gadgets vous serrons interdits. 3) Date: Ces gadgets permettent de CHOISIR LA DATE pour une alarme. Le mois est un cycle gadget. L'année est un text gadget de GadTools où il suffit de taper la date entière (1992 pas 92). Enfin le gadget Day sert seulement pour le cas d'une alarme hebdomadaire, il permet de choisir quel jour doit être affichée votre alarme. 4) Time: C'est le gadget de l'HEURE. Que puis-je dire là-dessus ?... 5) Message: Cette option fera afficher un message lors du déclanchement de l'alarme et autorise la modification des gadgets (8). 6) Flash screens: Cette option fera clignoter l'écran lors de l'affichage de l'alarme. 7) Les gadets de texte: Ces cinq lignes définissent les cinq lignes de texte que le programme affichera si l'option Message est selectionnée. Notez que vous ne pouvez modifier ce gadget si Message n'est pas selectionné. 8) Save: Ce gadget quitte la fenêtre et réaffiche l'heure et surtout SAUVEGARDE les nouveaux réglages effectués. 9) Cancel: Ce gadget ferme la fenêtre de reglage et réouvre la fenêtre d'heure mais NE SAUVEGARDERA PAS les réglages effectués: il ramène les réglages antécédants l'affichage de la fenêtre de réglage. Voilà toutes les possibilitées de régalges vues. B| Le menu. ---------- ALARMING possède désormais un menu (V1.12+). Il y a 3 choix: - "Host screen..." que nous verrons un peu plus loin. - "About..." -> donne des information sur le programme. - "Quit" -> permet de quitter ALARMING, vous n'aurez ni les alarmes ni la fenêtre d'heure et les reglages modifiés ne sont PAS sauvés. La version 2.21 a introduit un nouveau menu: "Extra" qui sera décrit plus loin. Le premier menu permet une meilleur utilisation de ALARMING pour peu que les programmes ouvrant des écrans les ouvrent en publique: cette option permet de choisir sur quel écran, PUBLIQUE, ALAMRING s'ouvrira. Si, comme moi vous avez Devpac 3 vous savez que celui-ci s'ouvre sur un écran public et que si vous voulez l'heure sur cet écran, c'est impossible. Avec cette option si car ALARMING vous affichera une liste des écrans. Pointez alors sur l'écran que vous voulez et cliquez sur "Ok", ALARMING s'ouvrira alors sur cet écran. En cas d'erreur cependant, ALARMING s'affichera sur l'écran "Default" (souvent le Workbench). Le second menu donne une nouvelle dimension à ALARMING en autorisant un nombre variable d'alarmes conformément à vos besoins. Elle sont tout de même limitées à 19 (Je pensais que cela était une limite raisonnable car au-delà il devient difficile de travailler sur toutes les alarmes). Si vous n'avez besoin que d'une alarme bous n'en réglez qu'une et effacez les autres; s'il vous en faut 19 alors vous en reglez 19! Cela permet aussi de sauver de l'espace sur le disque. Actuellement il y a 2 choix: Ajouter une alarme et retrancher une alarme. Ajouter... ajoute tout simplement une alarme à la liste des alarmes disponibles. Delete... effacera l'alarme affiché à condition que son type soit "Inactive" et que vous repondiez par l'affirmative au requester présenté à vous. C| Les Tool Types. ---------------- A partir de la version 2.21, ALARMING utilise l'environnement des Tool Types Seuls 2 Tools Types sont utilisés actuellement: - PUBSCREEN=... Le nom du Public Screen où ALARMING doit s'afficher en démarrant. (Sans quillemets: exemple PUBSCREEN=DEVPAC.1). - EURODATE=ON|OFF Ceci permet aux américains de voir leur date correctement ! EURODATE=ON (22/03/76) et EURODATE=OFF (03/22/76). D| La sauvegarde des alarmes. ---------------------------- ALARMING permet de sauvegarder les réglages, c'est-à-dire que si vous réglez des alarmes, éteignez votre Amiga puis l'allumez à nouveau vous n'aurez pas perdu vos réglages. Par exemple, si vous réglez une alarme pour le 22 mars (mon anniversaire) et que vous sauvegardez les alarmes, le 22 mars l'alarme s'affichera et ALARMING attendra un an avant de l'afficher de nouveau. Ils sont sauvegardés lors de l'appui sur Save mais de part sa gestion des alarmes ALARMING a besoin d'un accès à cette sauvegarde à chaque affichage d'une alarme. ALARMING tente à chaque démarrage de charger ces réglages sur "ENVARC:", 2 cas de figure peuvent alors se présenter: - Le fichier existe, ALARMING le charge et s'execute. - Le fichier n'existe pas, dans ce cas ALARMING le CREE et s'execute. ALARMING ne doit donc accéder au disque QUE DANS 3 CAS DE FIGURE au maximum - Au chargement. - Si vous appuyez sur "Save". - Si une alarme s'affiche. et chacun de ces accès ne doit durer plus de quelques secondes. Avec un programme tel que celui-ci, il est facile de greffer un virus car les accès au disque sont légion alors si les accès vous paraissent douteux envoyez moi une disquette et je vous enverrai ma dernière version sans virus. Enfin, le volume "ENVARC:" est en fait un assign, il faut donc l'assigner a un volume physique; le workbench s'en charge tout seul mais si vous bootez d'une disquette sans startup-sequence evoluée il se peut que le ENVARC ne assigné, il faut alors que VOUS l'assignez par la commande éxecutée à partir d'un Shell: "c/assign ENVARC: SYS:" qui assignera ENVARC: au volume fictif mais toujours assigné "SYS:" ou mieux avec "c/assign ENVARC: SYS:Prefs/Env- Archive/" qui la vraie assignation. V Quelques détails. ------------------ ALARMING nécessite la Release2 pour plusieurs raisons - Nombreuses facilités pour le programmeur, surtout gadtools.library qui permet d'aussi beaux gadgets en "look 3D", création de process simplifiée, création MsgPorts simplifiées aussi, fonction TextExtent de la graphics.libra- ry, gestion des affichages erreurs disque simplifié, etc... - C'est l'avenir sur Amiga (en fait déjà le passé avec la version 3.0 et les nouveaux chips AGA) et qu'il faut aller de l'avant. - Parce que j'ai les RKM mis-à-jours à la Release 2. ALARMING gère correctement les fontes proportionelles et de tailles différentes de Topaz-8 (chez moi, j'utilise la magnifique "Courier 15", et vous ?). ALARMING ne devrait pas planter car tous mes appels aux libraries ont leur retour testé: en cas d'erreur, ALARMING vous affichera un requester annonçant l'erreur recontrée et vous signalera si il continue sans planter ou si il va quitter. Les codes d'erreur ont été beaucoup testé donc vous ne devriez pas avoir de problèmes. VI Conclusion. ------------- Tout le temps où j'ai testé le programme, il n'a jamais planté. Mais s'il plante chez vous, ce serait sympa si vous pouviez m'envoyer une lettre disant quelle erreur s'est produite, au cour de quelle manipulation et surtout votre configuration. Je corrigerai l'erreur et vous enverrai une nouvelle version si vous joignez une disquette. J'éspère pouvoir ajouter quelques options à ce programme: - Cette fameuse option son si quelqu'un m'éclaire. - Une localisation du programme (mais je n'ai pas les docs). - Transformer ALARMING en commodity. Si vous avez des idées, n'hésitez pas... Philippe Girolami Le 26/12/92. puis Le 07/02/93. puis Le 18/02/93. puis Le 04/04/93. puis Le 09/05/93. puis Le 24/06/93. puis Le 20/09/93. NOTE IMPORTANTE: --------------- Comme je l'ai déjà écrit, je n'ai pas encore réussi à faire marcher les gadgets slider de GadTools correctement: je n'ai pas reussi à faire afficher le "knob" (le curseur). J'ai donc modifié directement la structure des gadgets. CECI EST DE LA TRES MAUVAISE PROGRAMMATION D'APRES COMMODORE. CA A ETE TESTE SUR MON Amiga 500+ ET UN Amiga 500 REMIS A JOUR A LA RELEASE 2. Je ne sais pas si ça marche sous version 2.1 ou 3.0 de l'Amiga. Dès que quelqu'un m'aura dit comment afficher le curseur, je supprimerai la modif. aux structures. DERNIERE NOTE (3/1/93): ---------------------- J'ai supprimé la sauvegarde des alarmes dans cette version bridée, si vous désirez la version entière, envoyer F60 (=$10) - ce qui couvre les frais de disque et d'envoi - et je vous enverai le jour même la version enregistré. ************************************ * Quelques informations techniques * ************************************ - Source de 4100+ lignes hyper-commenté: 118000+ caractères (enfin, pour moi en tout cas!!). - ALARMING utilise de façon intensive gadtools.library pour tout gadget ou menu à dessiner. - ALARMING a été beaucoup optimisé depuis la version 1.36. Il n'y a plus de second Process, ALARMING tourne en un seul Process et ainsi vous n'avez plus à attendre des heures si des programmes à prioritée > tournent (Real3D!) car plus personne ne Wait() sur des messages. Un bon exemple de l'optimisation: avec des améliration on passe 4500+ à 4100+ lignes et 126000 à 118000 carac. - Le code d'erreurs a été réécrit, ALARMING ne se plantera plus, il continûra ou quittera. - La partie de démarrage de ALARMING a été réécrite, j'ai donc dût réécrire la partie de "Quit" ce qui m'a parmit de trouver 2 bugs qui pouvaient crasher le système. *************************** * Historique des versions * *************************** - Alarming1.03: C'est la première version distribuée (à travers Euro-DP). Elle ne contenait que la fenêtre de réglage, faisait les alarmes et donnait l'heure, c'est tout. - Alarming1.12: C'est la seconde version du programme. Elle n'a pas été distribué car je ne l'ai pas jugé nécessaire: trop peu de différences. En revanche, tout ceux qui m'ont envoyé un peu d'argent l'ont reçue en guise de remerciement (comme je l'avait promis d'ailleurs...). Cette version autorise le choix de l'écran où le programme doit s'afficher à travers un gadget listview. J'ai attaché à la fenêtre un menu avec de l'information sur le programme, cette option de choix et un choix pour quitter car j'ai supprimé le gadget "Quit" de la fenêtre. Une autre raison pour la non-distribution est que je n'ai pas réussi à bien écrire le menu: son nom ne s'affiche pas en haut de l'écran et le fond est gris au lieu de noir mais je ne sais pas pourquoi. - Alarming1.23: Cette version se différencie de la 1.12 par la correction d'un bug (mauvaise désallocation mémoire lors du choix de l'écran recevant la fenêtre de l'heure ) et par une bien, bien meilleur gestion des erreurs: avant dans quasiment tous les cas d'erreurs (souvent par manque de mémoire) ALARMING affichait quelle erreur s'était passée et annonçait qu'il suspendait son execution, en fait je le plantais tout simplement sans le dire car c'était plus simple à gérer (!) mais dans cette version j'ai tout amélioré: à part 4 cas où je suis obligé de planter le programme, ALARMING vous annoncera l'erreur et continuera son execution. Exemple: vous tentez d'ouvrir la fenêtre de réglage et il n'y a pas assez de mémoire, ALARMING vous le signale et reprend son court comme si vous n'aviez jamais rien demandé. - Alarming1.33: J'ai repensé dans cette version l'écran de réglage car je pense qu'il ne devait pas du tout marcher en NTSC vu qu'il faisait 220 points de hauteur (!) Il s'est maintenant élargi et raccourci et je pense que c'est d'ailleurs mieux. Cela m'a aussi permis d'ajouter le gadget de jour qui permet de choisir un type d'alarme hebdomadaire. C'est surtout çà la nouveauté dans cette version, un 5ème type d'alarme (yeah...). - Alarming1.36: Cette version est l'aboutissement de la version précédente et la correction de tous les bugs restant, je pense que ce doit être la plus stable de toutes. Maintenant, le menu s'affiche correctement (j'ai changé le processus d'ouverture de la fenêtre, ça marche mais ... je ne sais pas pourquoi!!), les boites de délimitation sont maintenant correctement dessinées (avant elles ne l'étaient pas du tout!). Et enfin (!), le gadget Flash screens fait clignoter vraiment les écrans. Cette version était distribuée par CAM (755b) et Fish en Septembre. - Alarming 2.21: C'est vraiment la version Alarming II: optimisation du code, debuggagge intensif, routine d'erreur réécrites, nouvelles possibilitées, meilleur utilisation des appels système.. Elle est distribuée par Euro-DP depuis Octobre 93. ************************* * Une dernière pensée...* ************************* Ceci est mon prmier programme sur Amiga (à la version 1.12 cela fait 1 ans que je l'ai et depuis cet été j'ai les docs 2.0) et l'impression que j'ai de cette machine que je ne connais pourtant pas encore très bien (ne me demandez rien au niveau graphique!!) est qu'elle est merveilleuse... Et comme tout le monde, je me demande pourquoi Commodore ne fait pas une bonne politique de Marketing envers celle-ci: il ne semble qu'être interessé par les jeux pour les 500 (et sans doute bientôt 1200) et les graphismes pour les 3000 (et bientôt 4000) alors que je suis sûr qu'avec tous ses atouts (multi-tâche, processeur spécialisé, intuition...) il pourrait rivaliser avec le Mac et la PC même dans leur propres crénaux: PAO et tableurs, traitements texte etc... Cependant, il y a plusieurs raisons à mon avis - Commodore n'a pas un parc assez important pour faire baisser le prix de ses machines (vous avez vu le prix du 4000 ? A ce prix là je préfère m'acheter un Mac). - Puisqu'il n'y a pas un parc important de grosse machine (4000, 3000...) les grosses boites de logiciel ne developpent que rarement sur Amiga. - Et puisque les grands ne developpent pas sur Amiga on ne trouve pas des tableurs, des traitements de textes, des bases de donné et donc si c'est ce qu'on veut, on va autre-part -> Mac ou PC. - Et donc le parc n'augmente pas et c'est un cercle vicieux. Il semble donc à mon avis que tout repose sur Commodore car ce ne sont pas les entreprises de logiciel que vont prendre des risques. Et dans ce cas il ne reste plus qu'à prier...