	PROGDESK: le SHELL programmable
	*******************************


	Vous tes nombreux  utiliser des programmes TTP pour lesquels le
SHELL graphique n'existe pas, ou ne vous convient pas. Qu' cela ne
tienne: faites le votre en 10 minutes! C'est le but de Progdesk...

Un petit exemple
----------------

	Vous crez par exemple ce petit fichier texte PROGDESK.INF:

*Bureau
@A propos de...
.copyright
*Fichier
@Editeur
.exec C:\EDIT\EVERSEST.PRG
@Assembleur
.exec C:\ASS\MADMAC.TTP
@@----------
@Quitter
.end

	En le donnant  PROGDESK.PRG, celui-ci vous cre automatiquement
un menu  deux titres (Bureau et Fichier) et  4 entres (A propos de...,
Editeur, Assembleur, Quitter).Vous n'avez plus qu' cliquer sur les
entres du menu pour voir s'excuter les commandes que vous avez dcrites:
	- l'entre Editeur lance l'excution de EVEREST,
	- l'entre Assembleur lance l'excution de MADMAC.TTP
	- A propos de... ouvre une bote d'alerte de copyrights
	- Quitter se contente de retourner au bureau

	Pour qu'un Shell soit complet, il faut qu'il ait quelques petites
options supplmentaires par rapport  la simple excution d'un programme.

Un Shell complet
----------------

	Au travers de l'exemple qui va suivre, je vous propose de passer
en revue l'ensemble des commandes disponibles sous ProgDESK. L'exemple est
un SHELL pour l'assembleur MadMAC: il permet de choisir le source, de
l'diter, de l'assembler, de l'excuter, d'entrer des options fixes pour
MadMAC et de les sauver (afin de les rcuprer au prochain lancement).

	La premire section AUTO dcrit les commandes  excuter ds le
lancement du SHELL: il s'agit ici d'afficher la bote de copyright et de
charger par la commande ".load" les options dans les variables %7, %8 et
%9 (voir plus loin):

>AUTO
.copyright
.load %789,f:\progdesk\ass.opt

	Le premier menu, Mad MAC, n'a que peu d'intrt, sa seule entre
est une seconde bote d'info affiche par la commande ".alert".

*Mad MAC
@A propos de...
.alert [2][ SHELL pour MAD MAC | | gtello@wanadoo.fr | (c) 1998 ][Confirmer]

	Le second menu, Fichier, contient les oprations importantes et
d'abord la slection du fichier source: cette entre ouvre le slecteur de
fichier par la commande ".select". Supposons que j'y choisisse:
	chemin: C:\SOURCES\*.S
	fichier: TEST.S
	Alors, trois variables sont affectes:
	%0=C:\SOURCES\
	%1=TEST.S
	%2=C:\SOURCES\TEST.S
	Je conserve le chemin dans %7 et le nom complet dans %9.
L'opration ".cutext" (cut extension) permet d'oter l'extension du
fichier:
	%9=C:\SOURCES\TEST

*Fichier
@Choisir SOURCE
.select \*.S,,Slectionnez le source
.%7=%0
.%9=%2
.cutext %9

	L'entre Editer fait appel  EVEREST. Pour ceci, ".setpath" fixe
le rpertoire de travail et la commande ".exec" lance EVEREST.PRG avec
pour ligne de commande %9.S qui sera tendu :
	C:\SOURCES\TEST.S
	Exactement le nom complet du fichier que je veux diter.

@Editer
.setpath f:\everest
.exec everest.prg %9.S

	L'entre Assembler fait appel  MAC.TTP, l'assembleur. Encore une
fois je fixe le rpertoire de travail et je donne  MAC la ligne de
commande compose de %9.S (comme pour EVEREST) et de %8 qui contient les
options fixes (gres plus loin dans l'entre Paramtres).

@Assembler
.setpath f:\forth
.exec mac.ttp %9.S %8

	L'entre Excuter lance mon petit programme cr par MAC.TTP. Cet
assembleur donne par dfaut au programme gnr le mme nom que le source
en changeant l'extension ".S" en ".PRG" et le sauve dans le mme
rpertoire. C'est pour ceci que j'ai conserv le rpertoire du source
dans la variable %7. ".setpath %7" devient donc:
	.setpath C:\SOURCES\
	Et la ligne suivante:
	.exec C:\SOURCES\TEST.PRG

@Excuter
.setpath %7
.exec %9.PRG

	L'entre suivante est un simple sparateur apparaissant en gris
(repr par un double @@). L'entre Quitter excute la commande ".end" qui
met fin  ProgDESK:

@@--------------
@Quitter
.end

	Le menu Options gre les diffrents paramtres. L'entre
Paramtres, justement, par le biais de la commande ".input" permet d'diter
la variable %8 sur 20 caractres. C'est cette ligne que je passe en plus 
MadMAC: je lui assigne le plus souvent "-ps -v" qui indique de gnrer un
programme avec les symboles et de commenter les oprations excutes:

*Options
@Paramtres
.input %8,20,Paramtres pour MadMAC

	La dernire entre, Sauver options, permet tout simplement de
sauver mes trois variables %7 (le chemin d'accs au source), %8 (les
options de MadMAC) et %9 (le nom du source sans extension) afin de les
rcuprer automatiquement au prochain lancement:

@Sauver options
.save %789,f:\progdesk\ass.opt

	C'est fini pour le tour d'horizon.

L'extensibilit
---------------

	Une commande supplmentaire, ".menu", permet  une entre de faire
un lien vers un autre fichier de type PROGDESK.INF. Vous pouvez par
consquent relier des menus  l'infini. Dans la pratique, outre les
entres "Bureau/Fichier/Options" j'ajoute souvent une entre "Liens" qui
contient la liste de tous les menus existants: je peux ainsi passer
facilement de l'un  l'autre: menu Programmation, menu Jeux, etc...
ProgDESK pourrait ainsi remplacer compltement le bureau.

Petit par la taille...
----------------------

	Autre avantage de ProgDESK, sa taille. Au jour d'aujourd'hui, avec
les options prsentes plus haut, il ne dpasse pas 5Ko non compacts sur
disque. Une fois en RAM, c'est autour de 20Ko qui sont mobiliss: le PRG,
le fichier INF, l'arbre GEM du menu, les variables.
	Il est par ailleurs plutt rapide: entirement crit en
assembleur et il ne mobilise pas de handle VDI car il n'utilise que l'AES.

L'avenir
--------

	Il serait bon de trouver des commandes conditionnelles. En un
sens, ".select" et ".input" le sont dj puisque l'appui du bouton
"Annuler" met fin au traitement et revient au menu alors que le choix de
"Confirmer" poursuit l'excution les commandes.
	Pourtant, l'quivalent d'un "if" pour tester la valeur retourne
par un programme ou le numro de bouton dans une bote d'alerte serait bien
mieux. Ceci s'accompagnerait alors de l'quivalent de "goto" avec des
tiquettes pour les ruptures de squences.
	On pourrait aussi y trouver la dfinitions de liens entre
extensions et applications: par exemple, l'excution d'un TGA lancerait
automatiquement GEMVIEW comme visualisateur d'images.

Conclusion
----------

	Je sais que a ne se fait pas de prsenter soi-mme ses programmes
car je m'attarde surtout sur les points positifs. Mais, je n'ai pas menti!
Ce petit utilitaire rendra certainement bien des services aux utilisateurs
du Sozobon C, de POV ou autres TTP... et pourquoi pas remplacer
compltement le bureau avec Kobold comme gestionnaire de fichier, Jetfind
pour la recherche etc...
	Ce petit shareware existe en version d'valuation limite ou en
version complte pour 50 francs. Pour tout envoi, n'oubliez pas la
disquette et l'enveloppe timbre de retour!

	Guillaume Tello
	240 rue Estienvrin
	49260 Montreuil-Bellay
	gtello@wanadoo.fr