home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 3
/
CDASC03.ISO
/
maj
/
1798
/
bas
/
aerbasic.doc
next >
Wrap
Text File
|
1993-04-01
|
24KB
|
593 lines
Jacques LAVAU Automatique et Logiciels à votre service.
14 rue de l'Est 02100 Saint-Quentin.
Documentation de AERBASIC.EXE
Version Libre-Essai 2.3
Version Registrée 1.2.
REQUIS:
256 ko de mémoire, un lecteur ou disque dur, MS-DOS 3.0 ou supérieur, ou
DR-DOS.
BUT
AERBASIC, version 2.3, du 20 mars 1992, est un filtre pour fichier
source BASIC. AERBASIC réalise sept à onze opérations en une fois, qui
sont toutes préliminaires à la reprise de vieux programmes BASIC illi-
sibles (BASIC interprété, ou BASCOM d'avant 1987), pour modernisation.
Ceci est notamment utile pour convertir du GWBASIC ou du BASICA vers le
nouveau QBASIC de MS-DOS 5.
Voici ces sept étapes:
- Inclure les fichiers inclus selon la directive $INCLUDE (syntaxe Mi-
croSoft ou Borland, qu'importe, toutes deux sont décodées). C'est inévi-
table, car selon la nouvelle syntaxe MicroSoft, il n'est plus permis
d'avoir des instructions exécutables dans un inclus. Le mot-clé $INCLUDE
est remplacé par #INCLUDE, afin d'éviter toute réinterprétation ulté-
rieure.
- Enlever les numéros de lignes superflus, ne laissant que les indis-
pensables. (Arracher aussi les commentaires, si d'aventure vous l'aviez
demandé.)
- Documenter chaque ligne appelée, par la liste triée des anciens
numéros de ligne appelant celle-ci. Ceci vous donne presque le dessin
de l'organigramme.
- si vous ne l'avez interdit, préciser après chacun de ces numéros de
lignes appelantes, la nature de l'appel: GOSUB, GOTO (GOTO, THEN, ELSE,
RETURN numéro de ligne), RESUME, DATA (RESTORE), RUN ou ERL.
- Aérer les lignes, en s'interdisant de laisser plus d'une instruction par
ligne. Ceci vous raccourcit chaque ligne, et doit vous laisser donc la
place de remplacer les identificateurs trop brefs et obscurs par de plus
parlants.
- Rendre multilignes toutes les structures IF THEN ELSE, et les indenter
correctement, même en cas d'imbrication. Ainsi:
IF condition THEN action1 ELSE action2: If Condition2 THEN 315
devient:
IF condition THEN
action1
ELSE
action2
If Condition2 THEN
GOTO 315
END IF
END IF
- documenter quelle est l'entrée de subroutine close par un RETURN:
RETURN
' Clot la subroutine 400
Le code mort est dénoncé:
RETURN
' Clot la subroutine 0.
Sans toutefois déjouer le piège d'un RETURN dans une alternative, qui
est signalé dans la version registrée par un point d'interrogation.
La version registrée accomplit quatre autres tâches:
- Diviser à la demande les longues instructions DIM multivariables.
- Diviser à la demande les longues instructions COMMON multivariables.
- fournir un rapport hiérarchique des subroutines: qui appelle qui.
- fournir un rapport algorithmique limité: quels GOTO ou assimilés (THEN
n°, ELSE n°, RETURN n°) font des répétitives et lesquels des
alternatives.
Elle donne aussi des options sur le style d'indentation, et sur le style
d'insertion des renseignements sur les lignes appelées. Elle peut four-
nir des résumés "Jivaro" réduits aux seuls branchements.
CONCURRENCE:
Pour fixer les idées, MicroSoft donne avec chaque version de Quick-
BASIC, un programme nommé REMLINE.BAS, dont l'exécutable est deux fois
plus gros, qui ne réalise qu'une seule des onze tâches d'AERBASIC, qui
se laisse abuser par des morceaux de code mis en commentaires, et qui
met plus cinq fois plus de temps pour cela... C'est cela la supériorité
du Pascal assaisonné d'assembleur...
USAGE:
N'oubliez pas que ce source doit avoir été sauvé sous forme ASCII...
S'il est en format "tokénisé", chargez-le dans votre interpréteur,
sauvez-le convenablement:
SAVE "NomFichier", A
AERBASIC demande un ou plusieurs arguments en ligne de commande:
- obligatoirement: un ou plusieurs noms de fichier(s) source BASIC.
Ceux-ci sont supposés être de ces pénibles fichiers en BASIC-spaghetti
avec numéros de lignes partout, bourrages multi-instruction, multi-IFs,
et des noms de variables aussi brefs et obscurs que possible...
- de zéro à six options - de zéro à treize (plus deux variantes) pour la
version registrée. Une est vraiment très utile: Spécifier le répertoire-
cible, sous la syntaxe /Rrépertoire.
AERBASIC retourne sur le répertoire-cible un fichier intermédiaire avec
l'extension NOL (comme "No Lines"), débarrassé des numéros de lignes
supeflus.
Même des pièges rarissimes comme ceux-ci sont déjoués:
71 PRINT "GOTO 69"
72 PRINT "C'est un piège": 'GOSUB 52
AERBASIC retourne surtout, avec l'extension EPU (comme "épuré") le fi-
chier final, contenant les inclusions, ne contenant que les numéros de
lignes indispensables, où il n'y a plus qu'une seule instruction par
ligne, et où les IF sont aérés selon la syntaxe modernisée, et obliga-
toirement terminés par un END IF.
AERBASIC recalcule intégralement toute l'indentation sur critères
rationnels, et réussit tout à la perfection. Ainsi:
7810 FOR I=1 TO 8:FOR J=1 TO 8:
7820 INPUT #1,IAT(I,J,1),IAT(I,J,2),IAT(I,J,3):NEXT J,I
devient:
FOR I=1 TO 8
FOR J=1 TO 8
INPUT #1,IAT(I,J,1),IAT(I,J,2),IAT(I,J,3)
NEXT J,I
Simplement, la version Libre-Essai, non payée, renonce définitivement à
indenter au bout d'environ trois pages. C'est ma façon de vous inciter à
payer votre licence. Le but étant... qu'il vous revienne bien moins cher
de payer votre licence, que de corriger manuellement ce qui sort de la
version en diffusion gratuite...
Les commentaires sont laissés intacts.
Il vous reste ensuite à remanier en profondeur les anciennes inclusions,
et à les transformer en collections de SUBs et de FUNCTIONs.
Voilà qui fait gagner pas mal de jours de travail pour la modernisation
de gros programmes-spaghettis illisibles. Bien testé sur du code destiné
à l'origine à tourner en interprété et en compilé sur des BASICs Micro-
Soft de l'ère 1983-1984, AERBASIC n'ajoute aucune faute de logique. Au
contraire, il mettra en évidence de nombreuses aberrations logiques que
vous ne soupçonniez pas encore. C'est bien là son utilité... Il dénonce
aussi impitoyablement les morceaux de code mort.
Si vous en trouvez l'utilité, vous pouvez préciser aussi par ces options
en ligne de commande:
- que vous voulez ne pas commencer au début, mais à l'étape 2 ou 3, par
l'argument /D2 ou /D3,
- que vous voulez stopper avant la dernière étape, en spécifiant
l'argument /F2 ou /F3,
- que vous voulez éviter d'écrire le fichier intermédiaire échenillé
avant écriture du fichier final aéré, argument /S.
- combien de termes par ligne documentant une ligne appelée, par /Nn,
avec N allant de 0 à 9. 0 signifiant que vous ne voulez aucune docu-
mentation autre que le numéro de ligne appelante, et 0 désarmant aussi
la documentation des RETURNs. Les valeurs 5 et 6 sont recommandées, et
5 est pris par défaut.
- si vous voulez être débarrassé des commentaires laissés par le pro-
grammeur précédent, par /A.
Voici comment retenir ces chiffres:
Le fichier source brut .BAS porte le numéro 1,
Le fichier collecteur .COL porte le numéro 2, mais n'est plus écrit,
sauf si on spécifie l'arrêt sur lui, par /F2,
Le fichier échenillé .NOL porte le numéro 3,
Le fichier aéré final .EPU porte le numéro 4.
Donc le réglage par défaut correspondrait aux arguments: /D1 /F4.
Dans la version registrée et payée, vous disposerez de neuf autres
options:
- option /J, comme Jivaro. Celle-ci vous délivre une version "Jivaro",
réduite et non exécutable, et dont le but est donner à l'humain en un
coup d'oeil la structure logique du programme. La version Jivaro
(extension .JIV) est réduite aux lignes appelantes, aux lignes appelées,
et aux listes triées de numéros de lignes appelantes. Aucune de ces
lignes n'est dépouillée de son numéro.
- Sa variante /JC: inclut aussi les lignes de commentaire dépourvues
d'instructions exécutables.
- Option /Mn: décompose les instructions DIM multivariables en mono-
variables si n est absent ou égal à 1, multivariables limitées à n,
sinon. n <=9.
- Option /Cn: décompose les instructions COMMON multivariables en mono-
variables si n est absent ou égal à 1, multivariables limitées à n,
sinon.
- Option /P: elle vous débarrasse de l'impression des "pense-bêtes" dans
les fichiers-cibles.
- Option /V: permet de retourner au Vieux style de documentation des
numéros de lignes appelantes (Le numéro reste avec sa ligne d'origine),
au lieu du nouveau style, par défaut dans la version registrée (le
numéro va devant la ligne de commentaire portant la liste des lignes
appelantes, qui précède la ligne d'origine).
Soit:
'<-- 6240
7510 NEXT IP
NEXT ITYP
au lieu de:
7510 '<-- 6240
NEXT IP
NEXT ITYP
à partir de :
7510 NEXT IP
7520 NEXT ITYP
- Option /Ixy où "x" et "y" sont des chiffres compris entre 0 et 9, pour
changer l'indentation par défaut. "x" représente le décalage de base, et
y l'incrément d'indentation. Par défaut, y vaut 2. En vieux style x vaut
6, et x vaut 4 en nouveau style. C'est ce qui donne l'optimum de
lisibilité et d'encombrement.
- Option /H pour demander en fin de fichier un rapport hiérarchique des
routines appelées par un GOSUB. Les fonction FN ne sont pas prises en
compte. Ni les traitements d'erreur par ON ERROR GOTO xx.
- Sa variante /HS qui vous donne en plus le classement des branchements
GOTO et assimilés entre branchements amont (donc probablement des
répétitives), et branchements aval (donc des termes d'alternative).
(Toutefois, les conditions logiques n'étant pas analysées, le programme
ne saura pas vous dire que tel WHILE est en fait une simple alternative
multiligne glissée dans l'habit dans une répétitive, parce que le BASIC
de l'époque ne répondait pas du tout aux besoins du programmeur.)
AERBASIC considère que tout argument commençant par une barre inclinée à
gauche ('slash') est une option. Toutes les options sont lues en une
fois. Si elles sont contradictoires, la dernière a le dernier mot.
Tout autre argument est lu comme un nom de fichier-source. Chacun de ces
noms peut comporter une spécification de chemin, et AERBASIC utilise
cette spécification pour trouver les éventuels fichiers à inclure, s'il
ne les trouve sur le répertoire par défaut. Comme une ligne de commande
est bridée à 79 caractères d'arguments, la version enregistrée vous
autorise aux caractères "joker": '?' et '*'.
AERBASIC ne fonctionne qu'en ligne de commande, sans menu: parce que
c'est de loin le plus rapide, pour vous qui êtes assez dégourdis pour
composer une ligne de commande. Il vous permet de spécifier autant de
fichiers-sources qu'il en tient sur la ligne de commande. S'il n'en
trouve aucun - tout en ayant trouvé des options - il vous en demande un.
La version en Libre-Essai n'autorisant pas les caractères "joker", on
peut déporter plusieurs des tâches de composition de la ligne de
commande vers un fichier BATch qui appelle AERBASIC et lui fournit son
argument, ou successivement ses arguments. Et c'est élémentaire. Au
pire, cela donne quelque chose comme ça:
:debut
AERBASIC /RA: /S %1.bas
if errorlevel==1 goto fin
@shift
@goto debut
:fin
ou comme ça:
:debut
AERBASIC /RA: %1.bas %2.bas %3.bas
if errorlevel==1 goto fin
@shift
@shift
@shift
@goto debut
:fin
en supposant:
1) que A: est la disquette destinée à recevoir les résultats,
2) que les sources sont sur le répertoire courant,
3) que AERBASIC.EXE est sur un chemin accessible,
4) et que la suite des fichiers à convertir est donnée en ligne de
commande du fichier BATch, que leurs extensions sont toutes BAS.
Alors la procédure écrit toutes les traductions dans le répertoire spé-
cifié, puis s'arrête correctement dès que la liste à convertir, est
épuisée. L'inconvénient d'utiliser un fichier procédure, du moins sous
un DOS inférieur à DR DOS 6, est que le nombre de "handles" est alors
limité.
Après passage par AERBASIC, il vous reste les tâches suivantes:
- Remplacer les noms de variables trop brefs par des noms significatifs.
Or, vos nouveaux noms seront presque toujours plus longs. Mais
maintenant, ils ne peuvent plus faire sauter les lignes BASIC,
puisqu'elles ont amplement raccourci. Seules exceptions embêtantes, avec
lesquelles vous devrez ruser: les instructions FIELD, et certains
WRITE #fichier,longue_liste_de_variables.
- Si vous n'avez jamais registré votre version Libre-Essai, programmer
deux macros de votre éditeur, pour diviser les longues instructions DIM
et COMMON.
- Remplacer les labels numéros par des labels significatifs.
- modulariser d'abondance, en déversant un maximum de code dans des Pro-
cédures et des Fonctions, au lieu des tronçons appelés par GOSUB.
- Passer ces procédures et fonctions en librairie.
- presque toujours: moderniser l'interface, etc...
VITESSE:
Bien que périmées, les mesures suivantes n'ont été refaites que
partiellement: mes configurations ont changé depuis.
Sur un AT 286 à 16 Mhz, avec un disque CONNER 3104 de 100 Meg, testé
avec ou sans cache-disque (et 8 buffers DOS seulement), un groupe de
fichiers totalisant 40 ko était converti en:
┌────┬─────────────────────────────────────┬──────────────────────────┐
│ │ Version registrée 1.0 │ Version Libre-Essai 2.1a │
├────┼───────────┬────────────┬────────────┼────────────┬─────────────┤
│ │ Option /S │ avec cache │ sans cache │ avec cache │ sans cache │
├────┼───────────┼────────────┼────────────┼────────────┼─────────────┤
│ DD │ 8 à 9" │ 10,5" │ 11" │ 16" │ 17" │
├────┼───────────┼────────────┼────────────┼────────────┼─────────────┤
│ 5'¼│ 24" │ 29" │ 31" │ 33" │ 32" │
├────┼───────────┼────────────┼────────────┼────────────┼─────────────┤
│ 3'½│ 28" │ 34" │ 36" │ 37" │ 38" │
└────┴───────────┴────────────┴────────────┴────────────┴─────────────┘
La version registrée 1.2 en fait nettement plus, et est à peine moins
rapide: 8,3" sur mon 386 SX, avec option /S.
La version Libre-Essai 2.3 est maintenant beaucoup plus proche de la
version registrée que les versions précédentes ne l'étaient; elle n'est
plus bridée que par quelques routines critiques volontairement laissées
en Pascal standard au lieu d'assembleur. Temps: 9,2".
La version registrée est optimisée à l'extrême sur les temps de calculs,
grâce à de nombreuses routines codées sur mesure en assembleur.
Si l'on écrit sur disquette, dont les temps d'accès masquent les temps
de calculs, l'option /S (pas de fichier intermédiaire) donne un très
fort avantage en vitesse.
Enfin, la version registrée économise énormément de temps et de soins
dans les travaux par lots avec carte blanche, par "*" et "?" .
Soit de 3,5 minutes à 12 minutes pour traiter 1 Meg de sources: et voilà
une semaine de travail d'édition déblayée! Tandis que les étapes
manuelles ultérieures de clarification des variables et des labels sur
un tel volume de source, vous prendront encore quelques jours...
MEMOIRE:
Afin d'obtenir sa vitesse maximale, foudroyante, AERBASIC cherche à uti-
liser toute la mémoire DOS nécessaire. Une seule opération posait un
subtil problème d'allocation mémoire: la prise des inclusions.
Cas favorable: vous avez un DOS qui autorise un processus à détenir plus
de 15 "handles" libres, c'est à dire de numéros de fichiers qu'il peut
ouvrir, Alors AERBASIC choisit la stratégie d'allocation de "handles" et
de tampons, donnant la vitesse maximale. Cela pour MS-DOS 3.3 ou supérieur,
ou DR-DOS 5.0 ou supérieur.
Sinon, s'il ne peut disposer de plus de 15 "handles", AERBASIC en
réserve 13 pour 13 niveaux d'imbrication des inclusions. Autant dire que
les risques d'échec sont nuls en conditions réelles... En revanche,
l'exécution sera un peu moins rapide, sauf par le secours d'un bon
cache-disque, accédant à de la mémoire EMS ou étendue.
Dans le cas d'un DOS 3.3 ou supérieur, AERBASIC cherchera à conserver
en mémoire dans ses tampons tous les fichiers lus lors de la première
étape, afin de n'avoir à en relire aucun durant la seconde étape. Les
deux limitations portent alors sur:
- le nombre de fichiers inclus en tout depuis le fichier-source racine:
environ 42, plus ou moins selon votre mémoire DOS libre au départ.
- l'encombrement total de tous ces fichiers-sources, environ 480 k...
Ces chiffres sont en pratique énormes, et ne seront certainement jamais
rencontrés en conditions réelles. Ces stratégies n'ont pas prévu le cas
de figure multi-tâche, où la mémoire mesurée libre au démarrage serait
ensuite dévorée par un autre programme. AERBASIC ne plantera pas pour
autant, mais sera désoptimisé et ralenti.
Autre limitation, la table des numéros de lignes est limitée
arbitrairement à 1000. Faîtes-moi savoir si jamais vous avez buté sur
cette limite en conditions réelles.
ENCOMBREMENT SUR DISQUE:
AERBASIC, version Libre-Essai, crée un fichier intermédiaire, qu'il
n'effacera que si vous lui en donnez l'ordre. Prévoir donc de l'ordre de
230 ko libres sur disque pour traduire un fichier de 100 ko (y compris
toutes ses inclusions). L'option /S conduit au moindre volume final, en
évitant d'écrire ce fichier intermédiaire, économisant temps et place.
Excepté le source en cours, AERBASIC écrase sans avertissement tout
fichier totalement homonyme de ses fichiers-cibles, et qui serait
imprudemment situé sur le répertoire-cible.
COPYRIGHT:
Cette version de AERBASIC.EXE est diffusée en libre-essai: sa copie est
gratuite, mais pas son usage. Si AERBASIC ne vous fait gagner ne serait-
ce qu'une seule demi-journée de travail, alors vous devez m'envoyer
votre paiement de licence: 75 F TTC. Vous recevrez votre facture en
retour, ainsi que la version registrée, qui elle, vous permet d'éviter ces
"pense-bête" agaçants, qui vous rappelent l'obligation de payer votre licence,
qui vous donne de précieuses options supplémentaires, etc. etc. bref! qui est
bien meilleure...
Respectez rigoureusement la mention de mon nom d'auteur. La vente de ce
programme est interdite sans mon accord écrit. Il est interdit de donner
ou distribuer ce programme même gratuitement, sans cette présente docu-
mentation intégrale. J'ai donné la permission de la distribution de la
version Libre-Essai au club OUF, et à DP-Tool Club. Qui a seul réalisé
l'essentiel des ventes.
Je suis lassé des petits indélicats qui, non contents de ne pas payer un
programme, se dépèchent d'effacer le nom de l'auteur. Je déteste aussi
de risquer d'aider à véhiculer quelque virus. C'est pourquoi AERBASIC
bénéficie d'un verrouillage anti-virus et anti-truands. Il est non
seulement illégal, mais aussi très très déconseillé d'y tenter quelque
chirurgie bitale sous DEBUG ni par quelque autre moyen. En contre-
partie, il ne peut s'exécuter sous un DOS de version inférieure à 3.
Il est devenu superflu de vérifier que la somme de contrôle soit restée
la même qu'à la sortie de mon bureau: - 269 672 843 pour la version
mise en Libre-Essai. Utilisez pour cela le programme joint: CRC1.EXE,
avec la syntaxe évidente: CRC1 chemin\AERBASIC.EXE
La version registrée est interdite de circulation et de reproduction,
sinon la copie de sauvegarde à l'usage exclusif de l'acheteur enre-
gistré, selon les termes des lois françaises et européennes en vigueur.
Le fichier ci-joint AERBASIC.FAC contient une facture PRO FORMA (pour les
administrations) et un modèle de bon de commande. Utilisez ce modèle.
Versions successives:
Registrée 1.2: Corrigé bogues:
Mauvaise réinitialisation pour le traitement des fichiers autres que le
premier sur la ligne de commande. La documentation des RETURN laissait
énormément à désirer: réécrit complètement l'algorithme. Le mode "Vieux
Style" était incorrect.
Libre-Essai 2.3:
Suppression de presque tous les archaïsmes volontaires. Un seul fichier
source pour les versions Libre-Essai et registrée; avec profusion de
directives de compilations conditionnelles... L'indentation imparfaite
est donc remplacée par une indentation parfaite, mais limitée à trois
pages.
Registrée 1.1d:
Les RETURN dans une alternative sont signalés. Un fichier-source
inexistant ne crée plus de fichier-cible. Registrée 1.1d et Libre-Essai
2.2d: meilleure garantie anti-virus.
Libre-Essai 2.2c; registrée 1.1c: Corrigé 3 bogues.
- Corrigé "ENDIF" inexcusable, en "END IF".
- Une fin de ligne en "ELSE 305 ELSE 310" était incorrectement traduite.
- (Libre-Essai uniquement): les numéros multiples ON XX% GOTO etc...
étaient maltraités.
Libre-Essai 2.2b, registrée 1.1b, correction cosmétique:
- On ne suppose plus que l'écran DOS fût en noir et blanc. Mais on l'y
force pour le temps du programme, afin de ressortir les autres couleurs.
Libre-Essai 2.2a, registrée 1.1a, corrigé bug:
- Dans la combinaison suivante, les lignes 395 et 405 n'étaient pas
prises comme appelées: IF xxx THEN GOSUB 395 ELSE 405
Libre-Essai 2.2, ajouté trois tâches:
- documenter non seulement quelle ligne appelle, mais de plus la nature
de l'appel.
- documenter les RETURN.
- éventuellement arracher les commentaires.
- Sur la version registrée uniquement: ajouté les deux rapports hiérar-
chique et algorithmique (limité aux seuls GOTO et assimilés).
- Bien meilleure aide en ligne de commande, en couleurs selon le mode
texte présent. Elle déjoue les pièges suivants: le prompt peut être sur
une ou deux lignes. La largeur d'écran peut être supérieure à 80 colon-
nes.
Corrigés bugs:
- Corrigé l'erreur d'allocation mémoire qui se manifestait en cas de
travail par lots.
- Corrigé sortie fort peu gracieuse si l'opérateur refuse de donner un
nom de fichier-source.
de Libre-Essai 2.1 à Libre-Essai 2.1a, 6 bogues corrigées:
- dans la transformation de
"IF xx THEN 310 ELSE 325" en:
IF xx THEN
GOTO 310
ELSE
GOTO 325
END IF
elle oubliait le numéro 310.
- Inversement: "IF xx GOTO 310" n'était pas transformé.
- Les prescriptions de tâches incomplètes étaient incorrectement gérées.
- Il fallait terminer l'argument /Rxx par un "\".
- Il était impossible d'enchainer sur plusieurs fichiers-sources depuis
la ligne de commande.
- L'aide en ligne de commande était incorrecte et insuffisante.
- J'ai transfusé plusieurs gains de vitesse de la version enregistrée
vers la version Libre-Essai: celle-ci est passée de 21" à 17" au test.
L'AVENIR: Non.
J'ai pensé à une version plus ambitieuse, nommée STRUCT_B, qui ne verra jamais
le jour. Je rembourse les clients qui ont souscrit à cette version fantôme. Le
nombre de licences d'AERBASIC payées est d'ailleurs décourageant.
Et puis, si AERBASIC est né d'un projet en BASIC, je deviens vite grossier
s'il m'arrive de dire ce que je pense du BASIC et surtout du BASIC Microsoft.
Songez qu'il fallait quitter QBX et passer par un autre éditeur pour pouvoir
passer des # au clavier (spécifique à la rencontre de QBX et de DR DOS 5.
Disparu sous DR DOS 6.0)! Et pas de pointeurs stables sous QBX: vous ne savez
jamais quand BASIC vous a tiré les variables de dessous les pieds... Le format
des chaînes lointaines est gardé secret... Pas d'arguments procédures (je
publierai un jour l'astuce en assembleur qui m'a permis de contourner cette
bogue), pas d'indirection des procédures... Pas de contrôle des variables:
tout dérapage au clavier crée immédiatement une nouvelle variable clandestine.
Et la taille apoplectique des exécutables!
25 mai 1992, 14 h 26.
Jacques LAVAU Automatique et Logiciels à votre service.
14 rue de l'Est 02100 Saint-Quentin.
Fin de document.