IX/ ANNEXES
1. Les nouvelles possibilités des procédures binaires
Jusqu'à la copie 085, les procédures binaires étaient définies ainsi : sous-programme écrit en langage assembleur et intégré dans un module LSE au moyen d'une déclaration de PBI (cf manuel de référence pages 33 à 35).
Désormais, le concept de procédure binaire s'élargit :
. elles peuvent être écrites dans tout langage de programmation, à condition de respecter certaines règles,
. il n'est plus nécessaire qu'elles soient déclarées à l'intérieur d'un module LSE, mais peuvent être chargées dans l'espace mémoire disponible en dehors de LSE,
. des procédures binaires aux fonctions voisines peuvent être regroupées dans des bibliothèques de procédures, ce qui minimise les temps de chargement.
Ce nouveau concept permet de concevoir des applications entièrement nouvelles, caractérisées par :
. la non-limitation de la taille d'un module à 64 Koctets du fait que des extensions peuvent être mises en place dans des procédures binaires chargées hors de LSE,
. la disponibilité d'un nombre beaucoup plus grand de fonctions, celles-ci étant livrées séparemment sous forme de bibliothèques de procédures,
. tout en gardant le confort du langage LSE pour la manipulation des chaînes de caractères, la gestion de fichiers servant à stocker des variables de tous types (tableaux en particulier), la gestion dynamique de la mémoire, ...
Dès aujourd'hui des bibliothèques sont disponibles permettant :
. l'appel aux fonctions du DOS pour la manipulation des fichiers et des catalogues
. l'appel aux fonctions du BIOS pour l'accès direct aux ressources de la machine
. la manipulation de fenêtres de textes à l'écran et l'utilisation de graphiques "bit-map"
D'autres le seront dans un avenir proche. Pour obtenir une documentation sur le sujet ainsi que sur le développement des procédures binaires, prenez contact avec nous.
2. Les arguments de la fonction SYS
Cette fonction a été enrichie de nouveaux paramètres système (repérés par une astérisque); par ailleurs, d'autres ont pris leur forme définitive.
Syntaxe : SYS (<expch>)
<expch> est une expression chaîne
Pour toute valeur non signalée ci-dessous, une erreur sera détectée :
'1' numéro de la section dans laquelle se trouve l'utilisateur : elle vaut zéro dans un système monoposte isolé, et a une valeur différente d'un poste à l'autre sur un système multiposte ou au sein d'un réseau local.
'2' nombre simple zéro. Cela sert de référence. Au sein d'un programme LSE, il vaut mieux noter le nombre zéro sous forme habituelle (0) car l'occupation en est optimisée (1 octet), plutôt que d'utiliser la fonction SYS ou un identificateur auquel on affecte la valeur zéro (occupation 2 octets)
'3' plus petit nombre simple strictement positif représentable (aux alentours de 1E-99)
'4' plus grand nombre simple représentable (à peu près 1E99)
'5' nombre simple "PI" : 3.141592653589793
'6' plus petit nombre étendu strictement positif représentable (1E-9999)
'7' plus grand nombre étendu représentable (1E+9999)
'8' nombre de couleurs logiques sur l'écran graphique
'9' espace mémoire libre, défini comme étant la longueur de la plus grande chaîne de caractères affectable à une chaîne de caractères déclarée mais non encore affectée à cet instant
'A' chaîne de caractères MAJUSCULES correspondant au nom de la machine pour laquelle la version de LSE est prévue (installée)
'B' nombre de pixels horizontaux sur l'écran graphique
'C' nombre de pixels verticaux sur l'écran graphique
'D' nombre de caractères par ligne (nombre de colonnes) de l'écran alphanumérique
'E' nombre de lignes de l'écran alphanumérique (NON COMPRIS les éventuelles lignes de service)
'F' nombre de pages physiques (au moins une page alphanumérique et une page graphique)
'10' rapport 1023/YMAX où YMAX est l'ordonnée logique de l'angle supérieur gauche de l'écran graphique
'11' langue utilisée pour les messages, les mots-clés, les commandes, etc ... On peut avoir :
'FR' = français
'AN' = anglais
'IT' = italien
'ES' = espagnol
'CA' = catalan
'GR' = grec
'RU' = russe
'12' * système d'exploitation utilisé (sa connaissance est importante au niveau des noms des fichiers extérieurs); on peut avoir :
'CP' = CP/M-86 ou Concurrent CP/M-86
'MS' = MS-DOS
'PR' = Prologue
'PC' = PC-DOS
'13' * numéro de la version du système d'exploitation sous la forme :
NUMERO DE VERSION + (256xNUMERO DE MISE A JOUR )
Exemple : DOS 2.11 donne 11x256 + 2 = 2818
'14' * longueur d'un enregistrement de fichier extérieur. Elle vaut 256 octets sous Prologue et 128 octets sous MS-DOS et CP/M-86
'C1'
'C2'
'C3'
'C4' valeur du cadre standard dans l'ordre Xmin, Ymin, Xmax, Ymax. La commande EXECUTER provoque implicitement l'exécution de l'instruction : CADRER SYS('C1'),SYS('C2'),SYS('C3'),SYS('C4')
'M<n>1'
'M<n>2'
'M<n>3'
'M<n>4' pour la page physique de numéro <n>, indique la valeur de la marge courante, dans l'ordre XMIN, YMIN, XMAX, YMAX
3. Les erreurs d'exécution
Voici la liste des erreurs d'exécution nouvellement ajoutées ou mal libellées :
7 variable attendue
8 plus de 16 objets à LIRE ou à AFFICHER
18 valeur attendue
81 deux paramètres effectifs passés par adresse ont le même nom
83 objet non trouvé
122 page physique inexistante sur format P* ou Pn
123 couleur inexistante
124 2eme paramètre de EVL et NVL incorrect
136 paramètre formel portant le nom d'un paramètre effectif "élément de tableau"
150 fichier déjà ouvert ou non partageable
151 lecteur non prêt (porte ouverte, ...)
152 erreur coupleur ou support magnétique
153 disquette protégée en écriture
154 unité LSE déconnectée
155 erreur sur réseau local
156 unité inexistante
157 fichier protégé par le système
158 trop d'enregistrements réservés
159 erreur interne au système de gestion des fichiers