82
47 F2 37UJ Rev00 Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeur Manuel du programmeur IOF GCOS 7 Logiciel Sujet : Ce manuel décrit les fonctions GCOS 7 requises par les programmeurs développant des programmes interactifs. Observations : Ce manuel remplace et annule la version précédente (CEDOC 47 F2 05UJ Rev05). Version du logiciel : GCOS 7-V7 Date : février 1995 Bull S.A. Bull HN Information Systems Inc. CEDOC Publication Order Entry Atelier de reproduction MA30/843 331, Avenue Patton BP 428 300 Concord Road 49005 ANGERS Cedex Billerica, MA 01821 FRANCE U.S.A.

Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

  • Upload
    vanminh

  • View
    227

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

47 F2 37UJ Rev00

Gestion des travaux et IOF

Bull DPS 7000Manuel du programmeurManuel du programmeur IOF

GCOS 7

Logiciel

Sujet : Ce manuel décrit les fonctions GCOS 7 requises par lesprogrammeurs développant des programmes interactifs.

Observations : Ce manuel remplace et annule la version précédente (CEDOC 47F2 05UJ Rev05).

Version du logiciel : GCOS 7-V7

Date : février 1995

Bull S.A. Bull HN Information Systems Inc.CEDOC Publication Order EntryAtelier de reproduction MA30/843331, Avenue Patton BP 428 300 Concord Road49005 ANGERS Cedex Billerica, MA 01821FRANCE U.S.A.

Page 2: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Copyright Bull S.A., 1995

Toutes les marques citées sont la propriété de leurs titulaires respectifs.

Vos suggestions sur la forme et le fond de ce manuel seront les bienvenues. Unefeuille destinée à recevoir vos remarques se trouve à la fin du présent manuel.

La loi du 11 mars 1957, complétée par la loi du 3 juillet 1985, interdit les copies oureproductions destinées à une utilisation collective. Toute représentation oureproduction intégrale ou partielle faite par quelque procédé que ce soit, sansconsentement de l'auteur ou de ses ayants cause, est illicite et constitue unecontrefaçon sanctionnée par les articles 425 et suivants du code pénal.

Ce document est fourni à titre d'information seulement. Il n'engage pas laresponsabilité de Bull S.A. en cas de dommages résultant de son application. Descorrections ou modifications au contenu de ce document peuvent intervenir sanspréavis ; des mises à jour ultérieures les signaleront éventuellement aux destinataires.

Page 3: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

47 F2 37UJ Rev00 iii

Préface

OBJET DU MANUEL

Ce manuel décrit les fonctions GCOS 7 requises par les programmeurs développant desprogrammes interactifs.

UTILISATEURS CONCERNÉS

Ce manuel s'adresse aux programmeurs qui ont à développer ou maintenir desprogrammes exécutés en mode interactif sous IOF (Interactive Operation Facility). Ilsuppose donc une connaissance de base de GCOS 7 (acquise par exemple par la lecturedu volume 1 du Manuel de référence de l'utilisateur IOF) et des langages COBOL,FORTRAN, C ou GPL.

STRUCTURE DU MANUEL

Chapitre 1 Présente les concepts associés à l'exécution desprogrammes interactifs sous IOF.

Chapitre 2 Décrit les deux modes d'accès à un terminal : édité et pleinécran.

Chapitre 3 Décrit les jeux de caractères, qui permettent de coder lescaractères transmis ou en provenance d'un terminal.

Chapitre 4 Traite de l'interface TAM (Terminal Access Method).

Chapitre 5 Traite de l'interface SDPI (Standard Device ProgrammaticInterface).

Chapitre 6 Décrit quelques primitives.

Page 4: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

iv 47 F2 37UJ Rev00

Remarque : Les précédentes versions de ce manuel comportaient un chapitresur la fonction FORMS. Cette fonction est désormais traitée dansle manuel GCOS 7 V6 FORMS - Guide de l'utilisateur.

De même, les précédentes versions de ce manuel comportaientdes chapitres sur la translation GCL, les services fournis par GCLaux programmes interactifs, la gestion des commandes GCL et lacréation/modification des textes d'aide. Ces sujets sont désormaistraités dans le manuel GCL Programmer's Manual.

BIBLIOGRAPHIE

Cette bibliographie est fournie à titre indicatif. Pour plus de précisions(disponibilité du manuel en français, numéro de révision, indice de mise à jour),veuillez vous adresser à CEDOC ou éventuellement consulter le fascicule"Documents nouveaux" (référence 00 F4 7210).

Les manuels suivants accompagnent le présent manuel :

GCOS 7 FORMS - Guide de l'utilisateur ......................................................... 47 F2 15UJGCOS 7 Forms User's Guide.......................................................................... 47 A2 15UJ

GCL Programmer's Manual............................................................................. 47 A2 36UJGuide du programmeur GCL........................................................................... 47 F2 36UJ

Pour comprendre le contenu du présent manuel, le programmeur devra avoir prisconnaissance du manuel :

IOF - Manuel de référence de l'utilisateur (vol. 1) ........................................... 47 F2 38UJIOF Terminal User's Reference Manual (Part 1)............................................. 47 A2 38UJ

Les manuels suivants sont également recommandés :

IOF - Manuel de référence de l'utilisateur (vol. 2) ........................................... 47 F2 39UJIOF Terminal User's Reference Manual (Part 2)............................................. 47 A2 39UJ

IOF - Manuel de référence de l'utilisateur (vol. 3) ........................................... 47 F2 40UJIOF Terminal User's Reference Manual (Part 3)............................................. 47 A2 40UJ

GCOS 7 - Manuel de l'administrateur système............................................... 47 F2 41USGCOS 7 System Administrator's Manual ........................................................ 47 A2 41US

Page 5: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Préface

47 F2 37UJ Rev00 v

Les manuels suivants sont à consulter en fonction des besoins :

COBOL 85 - Manuel de référence .................................................................. 47 F2 05ULCOBOL 85 Reference Manual ........................................................................ 47 A2 05UL

COBOL 85 - Guide de l'utilisateur ................................................................... 47 F2 06ULCOBOL 85 User's Guide................................................................................. 47 A2 06UL

FORTRAN 77 - Manuel de référence.............................................................. 47 F2 15ULFORTRAN 77 Reference Manual ................................................................... 47 A2 15UL

FORTRAN 77 - Guide de l'utilisateur .............................................................. 47 F2 16ULFORTRAN 77 User Guide............................................................................... 47 A2 16UL

GPL - Manuel de référence............................................................................. 47 F2 35ULGPL Reference Manual................................................................................... 47 A2 35UL

GPL - Guide de l'utilisateur ............................................................................. 47 F2 36ULGPL User Guide.............................................................................................. 47 A2 36UL

GPL - Primitives système................................................................................ 47 F2 34ULGPL System Primitives Reference Manual ..................................................... 47 A2 34UL

Langage C - Guide de l'utilisateur ................................................................... 47 F2 60ULC Language User's Guide .............................................................................. 47 A2 60UL

Langage C - Primitives système ..................................................................... 47 F2 64ULC Language System Primitives Reference Manual......................................... 47 A2 64UL

Page 6: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

vi 47 F2 37UJ Rev00

CONVENTIONS D'ÉCRITURE

Voici les conventions typographiques adoptées dans ce manuel :

MAJUSCULES Les majuscules indiquent un mot-clé, à entrer tel quel.

minuscules Les minuscules indiquent une valeur à fournir parl'utilisateur.

[élément] Les crochets indiquent un élément facultatif.

{élément1}{élément2}{élément3}

Une colonne d'éléments entre accolades indique que l'undes éléments doit être sélectionné. La valeur implicite (lecas échéant) est soulignée (élément3, ici).

{élém1|élémt2|élém3} Une succession d'éléments séparés par une barre verticalea la même signification que les accolades (voir ci-dessus).

... Les points de suspension indiquent que l'élément quiprécède peut être répété une ou plusieurs fois.

Page 7: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

47 F2 37UJ Rev00 vii

Table des matières

1. Généralités.......................................................................................... 1-1

1.1 COMPATIBILITE ENTRE TRAITEMENT INTERACTIF (IOF) ETTRAITEMENT PAR LOTS.......................................................................................... 1-1

1.2 IOF DU POINT DE VUE DE L'UTILISATEUR............................................................ 1-2

1.3 IOF SOUS L'ANGLE DE LA PROGRAMMATION..................................................... 1-2

1.4 PARTICULARITES DES PROGRAMMES INTERACTIFS ........................................ 1-3

1.5 LES TERMINAUX....................................................................................................... 1-3

1.6 UTILISATION DU TERMINAL.................................................................................... 1-4

1.6.1 Niveau de base .......................................................................................................... 1- 41.6.1.1 Mode ligne................................................................................................................... 1-41.6.1.2 Mode plein écran......................................................................................................... 1-41.6.1.3 Processeur MAINTAIN_FORM ................................................................................... 1-5

1.6.2 Interface GCL............................................................................................................. 1-51.6.2.1 Processeur MAINTAIN_COMMAND........................................................................... 1-51.6.2.2 Fonctions de service ................................................................................................... 1-6

Page 8: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

viii 47 F2 37UJ Rev00

2. Accès au terminal............................................................................... 2-1

2.1 GENERALITES........................................................................................................... 2-1

2.2 MODE LIGNE ............................................................................................................. 2-1

2.3 MODE PLEIN ÉCRAN ................................................................................................ 2-2

2.4 UTILISATION DE TAM ET SDPI EN ALTERNANCE ................................................ 2-2

3. Jeux de caractères ............................................................................. 3-1

3.1 JEUX DE CARACTÈRES ÉTENDUS......................................................................... 3-1

3.1.1 Mode C101 ................................................................................................................. 3-43.1.2 Mode PLW.................................................................................................................. 3-4

4. Interface TAM...................................................................................... 4-1

4.1 FONCTIONNEMENT .................................................................................................. 4-1

4.2 REGROUPEMENTS................................................................................................... 4-2

4.2.1 Regroupement physique (MISE EN QUARANTAINE) ............................................ 4-24.2.2 Regroupement par préfixes et invites..................................................................... 4-2

4.3 SORTIE....................................................................................................................... 4-3

4.3.1 Mode édité ................................................................................................................ . 4-34.3.2 Mode transparent ...................................................................................................... 4-5

4.4 ENTRÉE...................................................................................................................... 4-6

4.4.1 Mode édité ................................................................................................................ . 4-64.4.2 Mode transparent ...................................................................................................... 4-6

Page 9: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Table des matières

47 F2 37UJ Rev00 ix

4.5 AFFECTATION DE TERMINAUX AU MOYEN DU GCL ........................................... 4-7

4.5.1 Paramètres d'affectation de fichier (ASGN)............................................................ 4-74.5.2 Groupe de paramètres de définition de fichier (DEFN) ......................................... 4-8

4.6 PRIMITIVES GPL ....................................................................................................... 4-9

4.6.1 H_FD (déclaration de fichier) ................................................................................... 4-94.6.2 H_OPEN (ouverture de fichier) ................................................................................ 4-124.6.3 H_GET (obtention d'article)...................................................................................... 4-134.6.4 H_PUT (enregistrement d'article) ............................................................................ 4-154.6.5 H_CLOSE (fermeture de fichier) .............................................................................. 4-164.6.6 H_TN (déclaration de fichier) ................................................................................... 4-17

4.7 AUTRES LANGAGES ................................................................................................ 4-19

5. Mode plein écran : interface SDPI..................................................... 5-1

5.1 GÉNÉRATION DES GRILLES ................................................................................... 5-1

5.2 PRINCIPES DE FONCTIONNEMENT DE L'INTERFACE SDPI................................ 5-2

5.3 ACTIVATION DE GRILLE .......................................................................................... 5-3

5.4 SORTIES..................................................................................................................... 5-4

5.5 ENTRÉES ................................................................................................................... 5-5

5.6 SUIVIS......................................................................................................................... 5-5

5.7 PROGRAMMATION COBOL DE L'INTERFACE SDPI ............................................. 5-6

5.7.1 Structures de données ............................................................................................. 5-65.7.2 CDSEND (Envoi de grilles) ....................................................................................... 5-75.7.3 CDRECV (Réception de grilles) ............................................................................... 5-105.7.4 CDGET (Activation de grilles) .................................................................................. 5-125.7.5 CDRELS (Désactivation de la totalité des grilles).................................................. 5-155.7.6 CDPURGE (Annulation des données d'entrée) ...................................................... 5-165.7.7 CDATTR (Sélection d'attributs)................................................................................ 5-175.7.8 CDATTL (Sélection de liste d'attributs) .................................................................. 5-205.7.9 CDFIDI (Identification de grille)................................................................................ 5-225.7.10 CDMECH (Activation de fonction de gestion) ........................................................ 5-23

Page 10: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

x 47 F2 37UJ Rev00

5.8 EXEMPLE DE PROGRAMME.................................................................................... 5-25

6. Primitives diverses............................................................................. 6-1

6.1 H_QUERY (REQUÊTE AU TERMINAL) .................................................................... 6-1

6.2 H_DCTNATTR (DÉCLARATION DES ATTRIBUTS)................................................. 6-2

6.3 H_TNATTR (ATTRIBUTS DU TERMINAL)................................................................ 6-4

Index ............................................................................................................. i-1

Page 11: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Table des matières

47 F2 37UJ Rev00 xi

Illustrations

Figures

1-1 Terminaux pris en charge par GCOS 7 ...................................................................... 1-33-1 Jeu de caractères PLW (EBCDIC).............................................................................. 3-2

Page 12: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

xii 47 F2 37UJ Rev00

Page 13: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

47 F2 37UJ Rev00 1-1

1. Généralités

1.1 COMPATIBILITE ENTRE TRAITEMENT INTERACTIF (IOF) ETTRAITEMENT PAR LOTS

Le moniteur interactif IOF (Interactive Operation Facility) qui offre, sous GCOS 7, denombreuses et puissantes fonctions de programmation reste compatible, dans une largemesure, avec la programmation traditionnelle du traitement par lots :

• Mêmes outils de programmation en traitement interactif et en traitement par lots :compilateurs, éditeur de liens, éditeurs de texte, logiciel d'aide à la mise au point, etc.

• Interchangeabilité des programmes utilisateur : les programmes écrits pour IOFsont exécutables en traitement par lots, et réciproquement.

• Accès à tous les fichiers sans restriction (au moyen des différentes interfaces) quel'on soit sous IOF ou en traitement par lots.

• Primitives GPL avancées utilisables aussi bien sous IOF qu'en traitement par lots.

• Disponibilité de toutes les ressources GCOS 7, aussi bien sous IOF qu'en traitementpar lots, à savoir :

- fichiers catalogués, non catalogués et temporaires,

- mémoire variable (paramètre SIZE de la commande EXEC_PG),

- mémoire de réserve,

- processeur central (CPU).

Page 14: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

1-2 47 F2 37UJ Rev00

1.2 IOF DU POINT DE VUE DE L'UTILISATEUR

Les principaux objectifs retenus pour la conception des fonctions interactives sousGCOS 7 sont :

• de fournir à l'utilisateur un environnement convivial,

• d'optimiser la productivité du programmeur,

• de simplifier la programmation,

• de rester assez souple afin de répondre aux besoins parfois contradictoires quepeuvent exprimer les différents usagers du système.

Avant d'aborder le présent manuel, il est indispensable d'avoir pris connaissance duManuel de référence de l'utilisateur IOF (38 à 40UJ) qui donne une vue générale despossibilités d'IOF.

IOF met à la disposition de l'utilisateur du terminal des menus, des messages de guidage,ainsi que des textes HELP fournissant des explications sur les différents domaines, lescommandes et les paramètres. L'utilisateur peut dialoguer avec le système en mode pleinécran à condition d'avoir un terminal qui permette l'utilisation de grilles. Chaque utilisateurest identifié par un profil qui lui sert à préciser comment il veut travailler et les ressourcesdont il a besoin.

Il est souhaitable que le programmeur concevant des applications sous IOF fassebénéficier au maximum les utilisateurs finals de toutes ces possibilités.

1.3 IOF SOUS L'ANGLE DE LA PROGRAMMATION

Tous les outils de programmation GCOS 7 sont disponibles sous IOF. Ces outilscomprennent un logiciel de maintenance de bibliothèque, un éditeur ligne et un éditeurFSE (éditeur plein écran), des compilateurs, l'éditeur de liens et PCF (logiciel d'aide à lamise au point).

Ces logiciels sont décrits en détail dans le Manuel de référence de l'utilisateur IOF (38 à40UJ) et dans leurs manuels respectifs.

L'administrateur système peut définir des environnements de travail à partir desenvironnements standard existant sous GCOS 7 tant pour IOF que pour le traitement parlots. Pour la description de ces environnements standard, reportez-vous au manuel del'administrateur système (10US).

Pour ce qui est des principaux langages de programmation en informatique de gestion,on dispose aussi bien sous IOF qu'en traitement par lots des compilateurs COBOL,FORTRAN, PASCAL, C et GPL.

IQS est traité à part dans une documentation spécifique.

Page 15: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Généralités

47 F2 37UJ Rev00 1-3

1.4 PARTICULARITES DES PROGRAMMES INTERACTIFS

IOF comporte un certain nombre de fonctions spécifiques, conçues pour faciliter ledialogue (interaction) entre le programme et le ou les utilisateurs pendant l'exécution duprogramme.

La principale différence avec le traitement par lots est que le programme sous IOFdialogue avec l'utilisateur du terminal en même temps qu'il s'exécute. Ainsi, leprogrammeur d'application IOF doit disposer de fonctions permettant le dialogue avec unterminal à différents niveaux, et dans plusieurs modes.

L'objet de ce manuel est de présenter ces fonctions.

1.5 LES TERMINAUX

Le type de dialogue qu'un programme peut avoir avec l'utilisateur au terminal estdéterminé par les caractéristiques du terminal. Le tableau 1.1 ci-dessous donne la listedes terminaux utilisables avec GCOS 7, et indique ceux d'entre eux qui peuvent :

• fonctionner avec le logiciel FORMS, c'est-à-dire qui disposent des fonctions plein écran("F"),

• reconnaître et afficher le jeu de caractères PLW ("P") décrit au chapitre 3.

TTY VIPs y nchrones

BSC3270

D K U 70 01 /2M IN ITE LP C 78 00P R T12 20TTU 81 24TTU 81 26TTU 81 28TTY33TTY35TW S 2 25 5V IP7 80 1

F PFP

F PF

D K U 7 00 5D K U 7 00 7D K U 7 10 5D K U 7 10 7D K U 7 21 1P D P 1 1/10TTU 8 22 1V IP 78 04V IP 88 00

FF

FPFPFP

FFP

IB M 3 27 0IB M 3 74 1IB M 3 27 8IB M 3 27 9

F

FF

Figure 1-1. Terminaux pris en charge par GCOS 7

Page 16: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

1-4 47 F2 37UJ Rev00

1.6 UTILISATION DU TERMINAL

Les fonctions spécifiques qui intéressent plus particulièrement le programmeurd'applications IOF sont celles qui ont trait au dialogue avec le terminal.

Pour écrire l'application IOF, le programmeur dispose d'un large éventail de primitives etde commandes. Celles-ci sont décrites en détail plus loin dans ce manuel, en suivant leplan indiqué ci-dessous :

• objet• syntaxe• paramètres• codes retour• contraintes• exemple.

Les communications avec le terminal peuvent être gérées à plusieurs niveaux.

1.6.1 Niveau de base

Le niveau de base permet au programme d'échanger des informations avec le terminalpour la plupart des cas d'utilisation. Deux modes sont disponibles : le mode ligne (oumode "texte") et le mode plein écran.

1.6.1.1 Mode ligne

En mode ligne, les entrées et les sorties du texte s'effectuent en continu. Ce modeconvient tout particulièrement à l'introduction d'un programme source COBOL, GPL,PASCAL, C ou FORTRAN, ou à la saisie d'un texte comme le contenu d'un manuel. Lemode ligne utilise TAM (Terminal Access Method) comme interface entre le terminal et lereste du système et les processeurs. TAM permet de traiter le terminal comme un fichierclassique.

Pour les détails concernant TAM, reportez-vous au chapitre 2.

1.6.1.2 Mode plein écran

Dans ce mode, l'écran se compose d'une ou de plusieurs parties fixes, les grilles . Unegrille contient des zones variables que l'utilisateur ou le programme doivent remplir. Cemode convient aux formulaires commerciaux, pour la mise en forme graphique desinformations et pour solliciter une réponse de l'utilisateur. L'interface entre le terminal et lereste du système, dont les processeurs, est assurée par SDPI (Standard DeviceProgrammatic Interface).

L'interface SDPI permet d'activer des grilles depuis un programme. Ces grilles servent àdialoguer avec le terminal. Pour la création (et le stockage) des grilles, on dispose duprocesseur MAINTAIN_FORM.

Page 17: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Généralités

47 F2 37UJ Rev00 1-5

1.6.1.3 Processeur MAINTAIN_FORM

Ce processeur permet à l'utilisateur de créer une grille directement au terminal(commande ICREATE de MAINTAIN_FORM) ou de la définir au moyen d'un langage dedéfinition de grilles proche du COBOL. Ces deux modes de création sont décrits dans lemanuel GCOS 7 V6 FORMS - Guide de l'utilisateur (15UJ).

L'entrée de MAINTAIN_FORM provient soit directement d'un terminal, soit d'une unité debibliothèque, c'est-à-dire d'un fichier. Toutefois, il est préférable de créer les grillesdirectement au terminal au moyen de la commande ICREATE.

Par la suite, il est possible de tester, mettre au point et modifier ces grilles en employantdes commandes comme MODIFY, TEST et EDIT ou FSE. Pour plus de détails sur leprocesseur MAINTAIN_FORM, reportez-vous au manuel GCOS 7 V6 FORMS - Guide del'utilisateur (15UJ).

1.6.2 Interface GCL

L'interface GCL permet d'employer le langage de commande GCL (GCOS CommandLanguage) pour gérer le dialogue avec le terminal (pour la description détaillée du GCL,reportez-vous au Manuel de référence de l'utilisateur IOF (38 à 40UJ).

L'interface GCL est très intéressante pour toutes les applications devant gérer desinformations nombreuses et complexes en provenance des terminaux.

En outre, elle assure un certain nombre de fonctions annexes allant de l'affichaged'invites, menus et grilles pour l'entrée des commandes, à la reprise sur incident, enpassant par la mise à disposition de textes HELP, et ce, sans compliquer laprogrammation.

Enfin, l'interface GCL, qui est utilisable aussi bien en mode ligne qu'en mode plein écran,est parfaitement compatible avec les terminaux utilisateur, quelles qu'en soient lescaractéristiques. Pour la description détaillée de l'interface GCL, reportez-vous au GCLProgrammer's Manual (36UJ).

1.6.2.1 Processeur MAINTAIN_COMMAND

Le processeur MAINTAIN_COMMAND s'utilise pour créer, modifier et compiler descommandes GCL écrites par l'utilisateur. Pour tous détails concernant ce processeur,reportez-vous au GCL Programmer's Manual (36UJ).

A ces commandes GCL, il est possible d'associer des textes HELP. Pour la création et lamaintenance de ces textes, reportez-vous au GCL Programmer's Manual (36UJ).

Page 18: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

1-6 47 F2 37UJ Rev00

1.6.2.2 Fonctions de service

L'interface GCL remplit un certain nombre de fonctions de service conçues pour simplifierla tâche du programmeur IOF :

• appel de textes HELP depuis le programme IOF,

• consultation et définition de variables système et de variables globales (pour testerou modifier l'environnement d'exploitation),

• vérification de la syntaxe des noms des fichiers et ensembles de fichiers spécifiés auterminal.

Le programmeur IOF peut créer des commandes GCL qui seront utilisables, aprèscompilation, dans son programme. Reportez-vous au GCL Programmer's Manual (36UJ).

En outre, le programmeur peut personnaliser et adapter à ses besoins une procédureGCL standard; il peut également réunir plusieurs procédures en une seule et regrouperleurs paramètres. On trouvera dans le guide de l'utilisateur GCOS7-V6 FORMS (15UJ) unexemple simple illustrant les différentes étapes de création et de modification d'une grilleà partir des menus de MAINTAIN_FORM.

Quelques primitives de service sont présentées au chapitre 6 de ce manuel.

Page 19: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

47 F2 37UJ Rev00 2-1

2. Accès au terminal

2.1 GENERALITES

Sous IOF, l'accès au terminal peut se faire soit en mode ligne soit en mode plein écran.

En mode ligne , les données entrent et sortent en continu sous forme d'entités discrètes,c'est-à-dire par blocs, ou caractère par caractère. Ce mode simple convientparticulièrement à l'édition des programmes source ou au traitement de texte. Il estutilisable avec les terminaux TTY et les terminaux avec tampon pour transfert de bloc. Enmode ligne, c'est le système TAM (Terminal Access Method) qui sert d'interface entrel'utilisateur et le terminal. Avec TAM, le programme considère le terminal comme deuxfichiers (au moins), l'un pour l'entrée, et l'autre pour la sortie. Les échanges de donnéess'effectuent en entrée et en sortie avec ces fichiers. En mode plein écran , le dialogue faitintervenir une grille ou un ensemble de grilles. Chacune est constituée de zones fixes etde zones variables. L'utilisateur ou le programme ne remplit que les zones variables. Cemode n'est utilisable que sur certains terminaux avec tampon pour transfert de bloc.L'interface utilisée ici est SDPI (Standard Device Programmatic Interface). Dans ce cas, leterminal est considéré par le programme comme un objet avec lequel il dialogue, c'est-à-dire, avec lequel il échange des données.

Les deux interfaces, TAM et SDPI, sont décrites aux chapitres 4 et 5.

2.2 MODE LIGNE

C'est l'interface TAM qui gère la liaison entre le terminal en mode ligne et le programme.On retiendra à ce propos les points suivants :

• TAM est entièrement compatible avec les autres interfaces de gestion de données. Ilsuffit donc, pour échanger des données avec le terminal, de lui affecter un nom deichier interne (nfi) comme pour un fichier classique.

• Les deux formats de fichiers, SARF (Standard Access Record Format) et SSF SystemStandard Format) sont utilisables.

• Pour les sorties, le terminal est assimilé à une imprimante; ainsi certaines fonctions deSYSOUT sont utilisables par le terminal.

Page 20: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

2-2 47 F2 37UJ Rev00

• En jouant sur les différents noms de fichiers internes, on arrive à faire une séparationlogique entre les entrées du programme et ses sorties.

L'interface TAM est utilisable pour tous les programmes COBOL, FORTRAN, PASCAL, Cet GPL.

2.3 MODE PLEIN ÉCRAN

Dans ce mode, c'est l'interface SDPI qui gère les échanges avec le terminal. Le terminaldoit permettre d'utiliser les grilles avec leurs caractéristiques (vidéo inverse, intensiténormale/réduite, couleurs éventuellement). Le guide de l'utilisateur FORMS donne la listecomplète des terminaux utilisables en mode plein écran.

L'interface SDPI, qui est utilisable par l'intermédiaire des langages COBOL, C et GPL estcommune aux environnements TDS et IOF.

2.4 UTILISATION DE TAM ET SDPI EN ALTERNANCE

Un même terminal peut être utilisé alternativement avec l'une ou l'autre des deuxinterfaces, chacune gérant un terminal virtuel indépendant. De plus, le système gardetrace du contenu et des attributs des différentes zones variables de la grille employéepour le terminal; cette information peut donc être réutilisée lorsqu'on revient en modeplein écran.

Par exemple, si le programmeur travaille en mode plein écran et passe en mode lignepour revenir ensuite en mode plein écran, les paramètres utilisés auparavant ont étépréservés par le système et sont automatiquement restaurés.

Au niveau du terminal, lorsque l'on bascule d'un mode à un autre (alors qu'une grille est àl'écran), il y a exécution des opérations suivantes :

• le cas échéant, émission d'un message de synchronisation (affichage des caractères+++ en bas de l'écran),

• sauvegarde de l'image d'écran,

• effacement de l'écran,

• exécution de l'instruction,

et, après émission d'une primitive SDPI :

• affichage à l'écran de la grille sauvegardée avec restauration des valeurs et attributsantérieurs des zones variables,

• exécution de l'instruction.

Page 21: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

47 F2 37UJ Rev00 3-1

3. Jeux de caractères

3.1 JEUX DE CARACTÈRES ÉTENDUS

Les valeurs utilisées pour le codage des caractères introduits ou affichés au terminalappartiennent à l'un des jeux suivants :

• C101 jeu de caractères EBCDIC standard

• C114 jeu de caractères arabes

• C118 jeu de caractères grecs

• C113 jeu de caractères cyrilliques

• C094 jeu de caractères chinois

• PLW jeu de caractères PLW (voir figure 3-1)

• PLE jeu de caractères PLE (Pluri Lingual East).

PLW (Pluri-Lingual West) est un jeu de caractères comportant la plupart des caractèresdes langues occidentales utilisant l'alphabet latin. Ce jeu de caractères comporte lescaractères alphanumériques habituels plus les caractères accentués. Ce jeu decaractères est présenté figure 3-1.

Remarques

• Les caractères hachurés font partie du code PLW, mais ne sont pas utilisables sur lesterminaux DKU ni sur la famille de terminaux VIP8800.

• Ce tableau ne fait pas apparaître les caractères de gestion de terminal comme, parexemple, FW (code 12), BS (code 16) ou SYN (code 32). Ces caractères ne font paspartie du code PLW.

Page 22: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

3-2 47 F2 37UJ Rev00

..

0 1 2 3 4 5 6 7 8 9 A B C D E F

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F ! ^ ? " + ~o~O

U

& - ° µ { } \ 0

é / a j ~ £ A J . 1

a e A^

E b k s^

B K S 2

a.. ..

e A E.. ..

c l t C L T 3

a e A E d m u D M U 4

a A I e n v § E N V 5

a~ ^ I~ ^

f o w ¶ F O W 6

a°..

A l° ..

g p x G P X 7

ç ç I h q y H Q Y 8

n~

N~

i r z I R Z 9

[ ] : a !

. $ , # o

?

o u O U^ ^ ^ ^

< * % @

( ) ' .. o u O U

o u O+ =; > '

x y

o u O U.. .. .. ..

A

¢

¥

'

«

»

1 2 3

ò o

y y,

R

.

14

12

34

E

c

Figure 3-1. Jeu de caractères PLW (EBCDIC)

Page 23: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Jeux de caractères

47 F2 37UJ Rev00 3-3

Lorsqu'elles ont à traiter des caractères PLW hors code C101 de base, la façon dont lesinterfaces TAM et SDPI réagissent est fonction de deux éléments :

• Le jeu de caractères PLW est-il compatible avec le terminal utilisé ? (Les terminauxutilisables sont les MINITEL, DKU7105, DKU7107, DKU7211, PRT1220, TWS2255, etVIP8800.)

• La valeur de la variable système #CSET. Cette variable système, implicitement à 1(PLW), est définie dans le profil de l'utilisateur. Elle est modifiable soit depuis leprogramme (voir la description de la primitive MODVAR, dans GCL Programmer'sManual), soit par l'opérateur depuis son terminal au moyen de la directiveMODIFY_PROFILE.

Les valeurs normalement choisies pour #CSET sont les suivantes :

• #CSET=0 (C101) si le programme d'application n'a à traiter que des caractères du jeude base C101. Dans ce cas, le protocole de présentation empêchera l'opérateurd'introduire des caractères non admis, même si le terminal reconnaît le code PLW.

• #CSET=1 (PLW) si le programme d'application emploie le jeu de caractères étendu(PLW) même si le terminal de l'utilisateur ne reconnaît pas le PLW.

Le tableau ci-dessous illustre comment les caractères PLW hors code C101 de base sonttraités suivant les cas.

m o de C 1 01(#C S E T= 0)

M od e

V IP 8800 te rm in a la utre

re je té

rem p lacé pa run ca ra c tè re

de su bs titu tion

entrée

s ortie

te rm ina ux ac cep tan tP L W (ou P LE )

im p oss ib le(caractère ab sent

du c lav ie r)

trans cod é del'E B C D IC d irec t e ncod e d 'in te rch ang e

s im plif ié , i.e .,tran scr it d e

l'E B C D IC P LW

re je té

m o d e P L W(# C S E T = 1 )

m ode P LE(#C SE T=7)

ou

term ina ux n 'ac cep tan tp as P LW (ou P LE )

trans cod é ducod e d 'in te rch ang een E B C D IC d irec t

Il est également possible, pour choisir les jeux de caractères spéciaux, d'utiliser lesvaleurs suivantes de #CSET :

• #CSET = 2 (APL)• #CSET = 3 (C114) jeu de caractères arabes• #CSET = 4 (C118) jeu de caractères grecs• #CSET = 5 (C113) jeu de caractères cyrilliques• #CSET = 6 (C094) jeu de caractères chinois• #CSET = 7 (PLE) jeu de caractères Pluri Lingual East.

Page 24: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

3-4 47 F2 37UJ Rev00

PLE (Pluri Lingual East) est un jeu de caractères comportant la plupart des caractèresdes pays de l'Europe de l'Est utilisant l'alphabet latin. Il contient les caractèresalphabétiques classiques, les caractères accentués, les lettres avec cédille, les signesdiacritiques, le bâton, etc. A l'instar de PLW, PLE est un jeu de caractères étendu, soumisaux mêmes remarques.

3.1.1 Mode C101

Les terminaux travaillant normalement en mode C101, c'est-à-dire avec 95 caractères, leprotocole de présentation impose, dans la mesure du possible, ce mode.

Un programme opérant en mode C101 ne peut émettre/recevoir que les caractèresappartenant au jeu de caractères C101 de l'EBCDIC. Tous les autres sont considéréscomme "non admis" et remplacés par le caractère de substitution. Ce caractère desubstitution est défini par la variable système #INVCHAR dont la valeur peut être modifiéepar l'opérateur du terminal ou par le programme. Le caractère de substitution implicite estle point (.).

3.1.2 Mode PLW

L'utilisation des jeux de caractères étendus PLW et PLE obéit aux mêmes règles. Lesremarques qui suivent valent donc également pour PLE.

Lorsqu'un programme travaille en mode PLW, il peut envoyer et recevoir tous lescaractères du jeu de caractères PLW. Si le terminal accepte ce jeu de caractères, lesystème considère qu'il fonctionne dans ce mode, et le code utilisé est le PLW.

Si le terminal n'accepte pas le PLW, les caractères hors code C101 sont "simplifiés",c'est-à-dire que les lettres accentuées sont remplacées par les mêmes lettres nonaccentuées. Cette simplification évite d'envoyer des caractères de substitution, commec'est le cas lorsqu'il n'y a pas simplification. Toutefois, la simplification ne garantit pas quele texte résultant sera compréhensible dans tous les cas.

Lorsqu'une grille de type PLW a été activée par une primitive CDGET et que leprogramme concerné fonctionne en mode PLW, les caractères PLW de la grillerésultante sont affichés en code PLW (lorsque le terminal reconnaît le code PLW), ousimplifiés pour être ramenés uniquement au code C101 (dans le cas contraire).

En cas de transfert d'une grille de type PLW sur disquette par le processeurMAINTAIN_FORM, la simplification en C101 est automatique.

Page 25: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

47 F2 37UJ Rev00 4-1

4. Interface TAM

4.1 FONCTIONNEMENT

TAM est une interface d'accès conçue pour les programmes interactifs, compatible avecles dispositifs d'accès classiques de GCOS. L'interface TAM fonctionne donc commeinterface de gestion des échanges entre un programme interactif et un terminal.

La compatibilité entre les fichiers et IOF est assurée par TAM comme suit :

• Un programme accédant à un fichier séquentiel au moyen des verbes OPEN, READ,WRITE ou CLOSE du COBOL est directement exécutable sous IOF, sans modification.

• Réciproquement, tout programme écrit pour fonctionner sous IOF peut utiliser lesverbes OPEN, READ, WRITE ou CLOSE du COBOL pour manipuler ses fichiers.

En outre, l'utilisateur peut toujours redéfinir dynamiquement plusieurs options del'interface TAM au moyen de la primitive H_TN du GPL. Toutefois, dans un contextefichiers, la primitive H_TN sera refusée avec le code de retour FUNCNAV (FunctionNot Available = fonction non utilisable).

Pour plus de détails sur cette primitive, reportez-vous à la suite du chapitre.

• Au niveau de la commande EXEC_PG, la spécification de TN comme classed'appareils dans le groupe de paramètres ASGn (affectation de fichier) donne un nomde fichier interne (nfi) au terminal IOF.

L'utilisateur peut attribuer plusieurs noms de fichiers internes à un même terminal. Eneffet, en cas de dialogue interactif, le programme aura besoin d'au moins deux nomsde fichiers internes, l'un pour l'entrée, et l'autre pour la sortie.

Le nom de fichier interne permet au programme de définir les caractéristiques degestion du terminal et de présentation, celles-ci pouvant être différentes d'un nom defichier interne à l'autre. Ces caractéristiques sont notamment les formats des donnéeset les invites implicites.

Toutefois, lorsqu'on utilise plusieurs noms de fichiers internes, les diverses sortiesrisquent d'apparaître à l'écran en ordre chronologique, mélangeant les noms de fichiersinternes, avec d'éventuelles informations en provenance d'autres interfaces.

Page 26: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

4-2 47 F2 37UJ Rev00

4.2 REGROUPEMENTS

4.2.1 Regroupement physique (MISE EN QUARANTAINE)

L'interface TAM peut regrouper en une seule opération d'E/S, pour réduire le nombre desE/S, plusieurs WRITE successifs concernant des nfi affectés à un même terminal.Toutefois, grâce à l'option FORCEWRITE de la primitive H_TN, le programme utilisateurpeut supprimer ce mécanisme et forcer l'éxécution d'une instruction WRITE.

En règle générale, l'interface TAM déclenche un transfert d'informations dans les cassuivants :

• FORCEWRITE (option de la primitive H_TN),

• WRITE (PUT) pour une nouvelle page,

• READ (GET),

• passage dans un autre mode (par exemple, en mode plein écran),

• dépassement de temps imparti,

• écran plein,

• débordement de tampon.

4.2.2 Regroupement par préfixes et invites

Il est également possible d'utiliser préfixes et invites pour regrouper, par nfi, desinformations qui autrement seraient affichées à l'écran en ordre chronologique.

Sortie Les messages sortis à l'écran peuvent être préfixés. Lepréfixe est ici une chaîne de 1 à 12 caractères définie par leprogrammeur (valeur implicite : 3 caractères).

Le programmeur peut également choisir de sortir les donnéessans préfixe.

Entrée Ici, la situation est un peu différente. Il est possible d'afficherà l'écran une invite spécifique associée à un nom de fichierinterne (nfi), lorsqu'on demande une entrée pour ce nfi.

Il existe trois possibilités en ce qui concerne l'invite :

• invite normale : texte limité à 12 caractères spécifiés soit de façon statique (primitiveH_FD), soit de façon dynamique (primitive H_TN). Implicitement, le texte de l'invitesera le nom de fichier interne suivi d'un caractère deux points (:) et d'un espace ( ).

Page 27: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Interface TAM

47 F2 37UJ Rev00 4-3

• invite temporaire : texte limité à la longueur de l'article et devant avoir été spécifié parune primitive H_TN. Il prend effet à la H_GET suivante.

• pas d'invite : c'est le cas lorsque le terminal fonctionne seulement en mode saisie.

4.3 SORTIE

La présentation des fichiers de sortie peut se faire soit en mode édité , soit en modetransparent . Ces modes sont décrits plus loin.

La présentation en sortie des articles d'un fichier est déterminée par le format utilisé pourle fichier, à savoir SSF (System Standard Format) ou SARF (Standard Access RecordFormat). SARF est le format le plus simple, les articles ou les lignes étant placés les unsà la suite des autres. Par contre, tout article SSF contient un en-tête de 8 octets, et lefichier comporte des articles de gestion définissant la présentation (longueur de page,longueur de ligne, etc.).

En mode édité , les informations de présentation ne sont pas comprises dans les articlesdu fichier, et c'est l'interface d'accès du fichier qui se charge de la présentation à partirdes variables utilisateur et système fournies. Par contre, pour envoyer au terminalcertaines séquences sans modification, comme les séquences d'échappement, il convientd'utiliser le mode transparent. Dans ce cas, le système d'accès ne vérifie aucune donnée.

L'avantage du mode édité est de permettre au programmeur d'écrire le programme sanstenir compte du type de terminal. Ainsi, il peut demander l'impression de l'article suivantaprès une ligne blanche, sans avoir à faire précéder son article d'un "retourchariot/interligne", qui n'est pas utilisable sur tous les terminaux comme l'IBM 3270, parexemple.

4.3.1 Mode édité

Présentation à l'écran

Le programme peut choisir la présentation à l'écran, soit de façon implicite en utilisant leformat SARF (chaque nouvel article commençant au début d'une nouvelle ligne), soit pardes en-têtes d'articles et des articles de gestion SSF.

La partie données de l'article ne doit pas contenir de caractères de présentation (retourchariot, changement de ligne, changement de feuillet). Ces caractères sontautomatiquement remplacés par le caractère de substitution en vigueur, défini par lavariable système #INVCHAR (valeur implicite : ".").

IOF compte les lignes envoyées par le programme au terminal et découpe l'ensemble enplusieurs écrans ou pages. La longueur de chaque écran est déterminée dans le profild'utilisateur (commande MP) au moyen des variables système #PL (longueur de page) et#PW (largeur d'impression).

Page 28: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

4-4 47 F2 37UJ Rev00

Le message "+++" affiché en bas de l'écran indique à l'utilisateur qu'il doit appuyer sur latouche de validation pour afficher l'écran suivant.

Ce découpage de la sortie en pages ou écrans est connu sous le nom de "mode page"(Page Mode), dispositif standard pour tous les terminaux ne comportant pas la fonctionde défilement ("scrolling"). Pour les terminaux ayant cette fonction, le mode page s'obtientau moyen d'une variable système (#PAGEMODE=1).

Les quatre variables système relatives à la sortie, à savoir #INVCHAR, #PL, #PW et#PAGEMODE sont décrites dans le GCL Programmer's Manual (36UJ). L'affectation deces variables dans le profil de l'utilisateur fait l'objet d'une description dans le mêmemanuel.

Présentation en format imprimante

En utilisant les articles de gestion appropriés dans le cadre du mode SSF édité, leprogrammeur peut présenter les données à l'écran comme à l'imprimante, c'est-à-direavec en-têtes, notes de bas de page, numéros de lignes, etc. Les caractéristiquespouvant être spécifiées sont les suivantes :

• longueur de page (variable système #PL)

• caractère de substitution (variable système #INVCHAR) pour les caractères nonaffichables à l'écran. (Implicitement, c'est le point (.).)

• numéro de la première ligne sur l'écran (HOF - Head Of Form). (Implicitement,HOF=1.)

• bas du texte (FF1) ou numéro de la dernière ligne utilisée sur l'écran, et ligne coderetour (FF2) ou numéro de la ligne qui doit contenir le message correspondant aucode retour. ATTENTION : Les relations suivantes doivent être respectées :1 <= HOF <= FF2 <= FF1. Valeurs implicites : FF1 = FF2 = #PL.

Passage à la ligne suivante ("pliage" de ligne)

Le passage à la ligne suivante s'effectue différemment selon que l'on est en format SARFou en format SSF.

• Format SARF : le passage à la ligne suivante est automatique.

• Format SSF : en employant un article de gestion, il est possible de demander decouper une ligne. Toutefois, le passage à la ligne suivante est généralement spécifiéau moyen de la variable système #PW. Il s'effectue par troncature de l'article à lavaleur définie pour la largeur d'impression (#PW). Cette dernière ne doit pas dépasserla largeur de page utilisable sur le terminal (largeur d'impression physique).

Remarque

Si le programmeur veut provoquer un changement de ligne à un endroit spécifique, il doitgénérer deux articles séparés. La partie données de l'article ne doit pas contenir decaractère "retour arrière" (backspace).

Page 29: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Interface TAM

47 F2 37UJ Rev00 4-5

Tabulations

Il est possible de définir des tabulations au niveau du terminal pour accélérer l'affichagede la sortie. Ceux-ci sont insérés automatiquement par l'interface TAM, juste avant lasortie physique au terminal.

Normalement, les données de sortie ne comprennent pas de caractères de tabulation.Mais, pour un nfi donné, il est toujours possible d'utiliser un article de gestion (CR 131)définissant les valeurs des tabulations (nécessaires pour leur "développement") et lescodes correspondants. Ainsi, IOF pourra utiliser ces valeurs pour ce nfi. En tout état decause, la longueur de l'article après développement ne doit pas être supérieure à lalongueur définie par RECSIZE. Le "développement" des tabulations a toujours lieu avantle changement de ligne.

Fichiers et présentation des sorties

Il est évident que la présentation ne sera correcte que si pendant l'affichage de la sortieon n'utilise qu'un seul nom de fichier interne, et si les messages asynchrones sont mis enattente.

Par conséquent, les deux principales utilisations de l'interface TAM sont les suivantes :

• Dialogue établi au moyen d'un nom de fichier interne (nfi) pour la sortie, et d'un autrenom de fichier interne pour l'entrée. L'utilisation du nom de fichier interne pour l'entréene fait l'objet d'aucune exigence particulière en matière de présentation.

• Utilisation d'un nom de fichier interne pour la sortie afin d'obtenir une présentationsoignée (en-têtes, bas de pages, marges, etc.).

Dans les autres cas, c'est-à-dire si l'on utilise plusieurs noms de fichiers internes pour lasortie, ou si l'on utilise un nom de fichier interne pour l'entrée et un autre pour la sortie,tout en voulant soigner la présentation en sortie, le résultat risque de ne pas êtresatisfaisant en raison des compromis qu'il y aura à faire pour répondre à des exigencesqui ne sont pas toujours compatibles (mélange des en-têtes ou des bas de page ou sautde page automatique après une entrée).

4.3.2 Mode transparent

Il est possible de soumettre une séquence binaire, en spécifiant (au moyen d'une primitiveH_TN) que la primitive suivante est en mode transparent.

Dans ce cas, s'il se présente un article de gestion, il n'est pas pris en compte, pas plusque ne le sont les tabulations, les changements de lignes ou autres. En outre, pour que laposition du curseur reste correcte, IOF augmente automatiquement de un sa position àchaque nouvelle ligne.

Page 30: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

4-6 47 F2 37UJ Rev00

4.4 ENTREE

4.4.1 Mode édité

Les articles de données émis par l'interface TAM ne contiennent pas de caractères deprésentation (retour chariot, interligne,etc.).

Le programmeur devra donc tenir compte des quatre points suivants en ce qui concernela présentation.

• Tabulations : L'emploi de la variable système #EXPTABS permet au programmeurde choisir :

- soit le remplacement automatique, au fur et à mesure de la saisie du texte, destabulations par le nombre correspondant de caractères espace (valeur implicite),

- soit l'intégration des tabulations dans le texte saisi, sans développement. De plus,si nfi est en format SSF, il y a génération d'un article de gestion spécial (CR 131).

• Chaînage de plusieurs lignes : L'utilisateur peut définir un caractère suite au moyende la variable système #CC, ce caractère étant ensuite utilisé pour signaler la fin de laligne avant sa transmission. Toutes les lignes introduites de cette façon sont chaînéesen un seul article. Le programmeur peut invalider cette option en spécifiant unelongueur nulle pour la variable #CC.

• Fichiers en format SSF : Le format de fichier standard SSF permet l'emploi d'en-têtesd'articles et d'articles de gestion (par exemple, article de gestion CR pour demander leformat tabulé). Dans ce cas, le programme doit systématiquement vérifier le drapeau"article de gestion/article de données" et rechercher l'article de données à chaque foisqu'il reçoit un article de gestion.

• Saisie des données en mode page : Cette possibilité n'existe qu'avec les terminauxsynchrones travaillant en mode page et ayant des touches RETURN (retour chariot ouSUITE) et TRANSMIT (TRANS ou ENT). Il est alors possible de valider plusieurs lignesà la fois (une seule transmission), mais elles seront fournies au programme article pararticle. Cette méthode limite les opérations d'échange ("swapping") et l'affichaged'invites entre deux lignes consécutives. L' ensemble des lignes de texte introduites dela sorte est sauvegardé même si des messages de sortie doivent être affichés avantque le texte n'ait été entièrement traité par le programme. Par contre, l'emploi de lacommande BREAK annulera le traitement en cours.

Pour plus de détails sur les variables système #CC, #EXPTABS et #TABS, reportez-vousau GCL Programmer's Manual.

4.4.2 Mode transparent

En mode transparent, tout caractère saisi au clavier du terminal est transmis tel quel auprogramme.

Page 31: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Interface TAM

47 F2 37UJ Rev00 4-7

4.5 AFFECTATION DE TERMINAUX AU MOYEN DU GCL

Grâce à l'interface TAM, tout programme interactif peut accéder aux terminaux comme sices derniers étaient des fichiers séquentiels. Un même programme peut donc travaillersoit avec des fichiers, soit avec un terminal, selon l'environnement défini et lesparamètres GCL utilisés.

Mais, si plusieurs "fichiers" d'un même programme sous IOF peuvent se partager unmême terminal, un terminal n'est pas partageable par plusieurs programmes sous IOF.

L'affectation d'un nom de fichier interne "nfi" (en anglais "ifn") à un terminal se fait enspécifiant les paramètres suivants dans la commande EXEC_PG du GCL :

• FILEn et ASGn pour l'affectation proprement dite ;• DEFn pour compléter la description du fichier par des paramètres de définition de

fichier ;• (ALCn, sans objet pour le terminal puisqu'il n'y a pas de réservation de place, doit être

sauté) ;• (OUTn, sans objet ici car il concerne uniquement un fichier en sortie désynchronisée -

fonction SYSOUT, doit être sauté).

Pour plus de détails sur la description des groupes de paramètres relatifs aux fichiers, sereporter au Manuel de référence de l'utilisateur IOF (38 à 40UJ).

Les options de gestion de données décrites ci-dessous sont les seules qui s'appliquent àl'interface TAM.

4.5.1 Paramètres d'affectation de fichier (ASGN)

ASGi = description-fichier

La description de fichier courante est celle qui est donnée dans le Manuel de référence del'utilisateur IOF (38 à 40UJ).

Mais dans le cas du terminal, la description de fichier se limite à :

[nom-d'accès-complet]: [support]: TN [$UNCAT]

• TN : classe d'appareils (terminal) correspondant à l'élément principal de celui-ci, àsavoir, ensemble clavier-écran ou clavier-imprimante ;

• md : paramètre utilisé pour la spécification du nom du volume ;

• nom-fichier-externe est sans objet pour l'élément principal du terminal. Implicitement, lenom de fichier externe est identique au nom de fichier interne.

Page 32: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

4-8 47 F2 37UJ Rev00

4.5.2 Groupe de paramètres de définition de fichier (DEFN)

Ces paramètres décrivent les caractéristiques des fichiers ainsi que certaines fonctionsde l'interface TAM.

Paramètres importants pour le système :

[ RECSIZE = déc5 ]

[ DATAFORM = { SARF | SSF } ]

Paramètres spécifiques du terminal :

[ PROMPT = car12 ]

[ { MSG | MSSG } = bool ]

[ EOF = car4 ]

Page 33: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Interface TAM

47 F2 37UJ Rev00 4-9

4.6 PRIMITIVES GPL

Toutes les primitives TAM sont décrites en détail dans la suite de ce chapitre.

Toutefois, les primitives de gestion de fichiers, non décrites ici, s'appliquent également àl'interface TAM (H_CRFD, H_DLFD, H_ASSIGN et H_DEASSIGN, par exemple).

Remarque : Les codes retour pour TAM sont les codes retour standard dusystème. Dans le cas d'une interruption ("BRK") demandée auclavier, elle n'est prise en compte par le système, et le code retourn'est renvoyé qu'à la fin de l'exécution de la primitive.

4.6.1 H_FD (déclaration de fichier)

Objet

H_FD sert à déclarer les caractéristiques d'un fichier. Celles-ci peuvent toujours êtremodifiées au moyen des paramètres ASGn ou DEFn de la commande EXEC_PG duGCL, ou dynamiquement (lorsque le fichier est ouvert) par la primitive H_TN.

Syntaxe

$H_FD

ifn

[ { ACTUAL | EMPTY } [ ATTRIB = l_car ] ]

{ PROMPT = l_car12 } [ TN = ( { } [ NMSG ] [ EOF=l_car4 ] ) ] { NPROMPT }

[ RECSIZE = l_chiffre5 ]

[ BLKSIZE = l_chiffre5 ]

[ DATAFORM = { SARF | SSF } ]

[ REFMODE = { MOVE | LOCATE } ] ;

Page 34: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

4-10 47 F2 37UJ Rev00

Paramètres

ifn Nom de fichier interne. i_car8 est le nom d'un fichier terminaldans un programme ou en GCL. Ce nom doit être uniquedans le cadre de l'unité compilée ou d'un groupe d'unitéscompilées ayant fait l'objet d'une édition de liens.

ACTUAL De la place doit être affectée pour cette déclaration de fichier,avec initialisation à partir des paramètres fournis parl'utilisateur, ou des valeurs implicites système.

EMPTY Pour cette déclaration de fichier, il n'y a pas d'affectation deplace à effectuer. Tout paramètre spécifié estsystématiquement ignoré. Il doit obligatoirement y avoir unedéclaration ACTUAL pour le même nfi dans une autre unitécompilée, liée à l'unité considérée par l'éditeur de liens.

ATTRIB Les attributs de fichier sont normalement fixés de façonautomatique. Le paramètre ATTRIB peut donc être omis.Toutefois, dans certains cas, l'attribut "BASED" s'utilise enmême temps que le paramètre EMPTY. Reportez-vous aumanuel GPL - Primitives système (38 et 39UL).

TN Spécification des paramètres spécifiques TAM, à savoir :

PROMPT Chaîne de 1 à 12 caractères :

- En entrée, cette chaîne est envoyée au terminal pour luiindiquer qu'une entrée peut être effectuée (par exemple,il y a eu émission d'une primitive H_GET). Implicitement,cette chaîne est constituée du nfi, suivi de deux-points etd'un espace ("nfi: ").

- En sortie, cette chaîne sert de préfixe d'identification dutexte affiché. Implicitement, cette chaîne est constituéede 3 caractères espace.

NPROMPT Pas de génération d'invite :

- En mode entrée, le terminal passe en modesaisie/introduction lorsqu'une primitive H_GET est émise,sans notification apparente.

- En mode sortie, le texte est affiché sans préfixe.

NMSG Tous les messages envoyés au terminal et ne provenant pasd'une activité IOF sont mis en attente jusqu'à la fermeture dufichier ou jusqu'à ce qu'une primitive H_TN avec option MSGsoit émise pour le terminal. Si le terminal a donné lieu àl'ouverture de plusieurs fichiers, la sélection de NMSG pourun seul fichier entraîne la mise en attente des messages pourl'ensemble des fichiers.

Page 35: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Interface TAM

47 F2 37UJ Rev00 4-11

EOF Chaîne de caractères introduite au terminal pour simuler lecode de fin de fichier.

Cette chaîne de caractères peut être préfixée d'un $ etterminée par plusieurs espaces suivis d'un point-virgule. Lavaleur implicite est la fin de séquence, EOS. Dès que la lignecontient EOF, elle ne peut plus recevoir d'autres caractères.

RECSIZE Longueur maximum d'article. Cette valeur ne peut excéder264 caractères, invite et caractères de tabulationsdéveloppés compris. La spécification RECSIZE estobligatoire pour tous les fichiers TN. La valeur implicite pourRECSIZE est 0, et il n'est pas possible de modifier cettelongueur au niveau du label de fichier.

BLKSIZE Longueur de bloc. Celle-ci doit être au moins égale à lalongueur maximum définie pour l'article. Ce paramètre n'estpas utilisé par TAM, mais il est nécessaire pour lemécanisme FD lorsque RECSIZE est spécifié. Si ce n'est pasle cas, un avertissement peut être émis lors de l'exécution deMACPROC.

DATAFORM Format des articles de données :

- SARF (Standard Access Record Format). Donnéesuniquement, sans en-tête. Format implicite.

- SSF (System Standard Format). Articles de données,en-têtes d'articles, et articles de gestion. SSF peuts'utiliser pour la présentation des données en formatimprimante ligne, avec en-têtes, bas de pages,numérotation des lignes, marges, interlignes, etc.

REFMODE Mode de référence (MOVE ou LOCATE). Pour plus dedétails, reportez-vous au manuel GPL - Primitives système(38 et 39UL). Le mode implicite est MOVE. REFMODE estmodifiable au moyen de l'option "mode de référence" de laprimitive H_OPEN. Le mode LOCATE n'est utilisable qu'enmode entrée (Input). (Voir le paramètre PMD de la primitiveH_OPEN).

Page 36: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

4-12 47 F2 37UJ Rev00

4.6.2 H_OPEN (ouverture de fichier)

Objet

H_OPEN sert à initialiser le traitement d'un fichier et doit être émise avant toute autreprimitive impérative. Il faudra en outre réémettre la primitive H_OPEN si le fichier dont onveut continuer le traitement a été fermé après émission d'une primitive H_CLOSE.

Syntaxe

$H_OPEN

ifn

PMD = { INPUT | OUTPUT | APPEND | iv_car_2 }

[ REFMODE = i_car_1 ] ;

Paramètres

ifn Nom du fichier à ouvrir.

PMD Mode de traitement :

- INPUT : fichier accessible par H_GET,- OUTPUT : fichier accessible par H_PUT,- APPEND : fichier accessible par H_PUT,- iv_car_2 : permet à l'utilisateur de modifier

dynamiquement le mode de traitement. La variabledéclarée CHAR(2) doit correspondre à l'une des troisabréviations : IN, OU ou AP.

REFMODE Mode de référence. Options :

- pour le mode MOVE, REFMODE ="M".- pour le mode LOCATE, REFMODE = "L".

Page 37: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Interface TAM

47 F2 37UJ Rev00 4-13

4.6.3 H_GET (obtention d'article)

Objet

H_GET permet de spécifier l'emplacement et la longueur d'un article à extraire d'un fichierterminal. Cette primitive ne peut s'employer qu'en mode INPUT.

Syntaxe

$H_GET

ifn

WA = { ov-emplacement | ov-ptr }

[ OUTLEN = ov_fb15 ]

[ MAXLEN = i_fb15 ] ;

Paramètres

ifn Nom du fichier terminal.

WA Zone de manoeuvre. Emplacement de l'article :

- En mode MOVE, il s'agit de la zone dans laquelle lesdonnées reçues du terminal sont rangées (ov-emplacement).

- En mode LOCATE, il s'agit d'un pointeur désignantl'article dans la zone tampon (ov-pointeur).

OUTLEN Longueur de la zone de sortie dans laquelle sera reçu l'article(en-tête SSF compris, si DATAFORM=SSF).

MAXLEN Longueur, en octets, de la zone de manoeuvre. Valableuniquement pour REFMODE=M. Si l'article en provenance duterminal ne tient pas dans la zone de manoeuvre, il esttronqué; le code retour normal WALIM est renvoyé. Letraitement peut se poursuivre. Valeur implicite : longueurréelle de l'article.

Page 38: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

4-14 47 F2 37UJ Rev00

Contraintes

Deux cas peuvent se présenter lorsqu'une touche de fonction a été utilisée comme partiedu message à recevoir :

• Un texte a été au préalable affecté à cette touche de fonction. Ce texte est alorsrenvoyé comme faisant partie intégrante du message, et le programme ignore qu'ilcorrespond à l'utilisation d'une touche de fonction.

• Aucun texte n'a été affecté à cette touche de fonction. Les deux premiers caractères dela zone de manoeuvre sont alors forcés à la valeur de la touche de fonction et un coderetour approprié (FUNCKEY) est renvoyé au programme.

Dans les deux cas, si du texte a été introduit au clavier, il est placé à la suite du textegénéré par la touche de fonction.

Si la dernière primitive émise pour ce nfi était H_TN avec le paramètre TRSPRT, lesdonnées reçues du terminal sont renvoyées telles quelles.

Si la dernière primitive émise pour ce nfi était H_TN avec une invite temporaire, le texte(moins l'invite) est envoyé au terminal avant que celui-ci ne passe en mode INPUT.L'entrée fournie par GET est alors concaténée à l'invite temporaire.

En mode transparent, si la primitive H_FD contenait le paramètre NPROMPT et siPROMPT n'était pas spécifié dans la primitive H_TN précédente, le terminal passesimplement en mode saisie sans notification apparente.

Page 39: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Interface TAM

47 F2 37UJ Rev00 4-15

4.6.4 H_PUT (enregistrement d'article)

Objet

H_PUT sert à afficher un article logique. Cette fonction n'est utilisable qu'avec les modesde traitement OUTPUT et APPEND.

Syntaxe

$H_PUT

ifn

WA = iv_emplacement

[ LENGTH = i_fb15 ] ;

Paramètres

ifn Nom interne du fichier.

WA Zone de manoeuvre utilisateur à partir de laquelle l'article doitêtre transféré.

LENGTH Longueur en octets du prochain article de longueur variable àafficher. Si les articles sont de longueur fixe, longueur de lachaîne de caractères fournie. Cette dernière peut êtrecomplétée par des espaces pour obtenir la longueur d'article.Implicitement, la valeur de LENGTH est la longueur d'article.

Contraintes

TAM peut différer l'écriture de l'article. Cependant, toute primitive H_GET concernant unfichier affecté au même terminal, ou toute primitive H_TN avec l'option FORCEWRITE,force systématiquement l'affichage de tous les articles non traités.

Page 40: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

4-16 47 F2 37UJ Rev00

4.6.5 H_CLOSE (fermeture de fichier)

Objet

H_CLOSE sert à fermer un fichier.

Syntaxe

$H_CLOSE

ifn

[ DEASSIGN ] ;

Paramètres

ifn Nom du fichier.

DEASSIGN Le fichier devra être immédiatement libéré, sans attendre lafin de l'activité. Le fichier devra être réaffecté pour pouvoirêtre rouvert.

Page 41: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Interface TAM

47 F2 37UJ Rev00 4-17

4.6.6 H_TN (déclaration de fichier)

Objet

H_TN sert à redéfinir dynamiquement certaines options TAM. Cette primitive ne prendeffet qu'à l'ouverture du fichier. En cas d'exécution sur un fichier fermé, H_TN provoquel'émission d'un code retour anormal.

Syntaxe

$H_TN

ifn { i_car1 } [ PROMPT = i_car12 LENGTH = i_fb15 MODE = { "T" } ] { "P" } [ TRSPRT ]

[ MSG = { "Y" | "N" | i_car1 }]

[ FORCEWRITE ] ;

Paramètres

ifn Nom de fichier interne affecté au terminal. Le fichier doit êtreouvert.

PROMPT Zone de manoeuvre utilisateur contenant la valeur de lanouvelle invite.

LENGTH Longueur (en octets) de la nouvelle invite.

MODE Indique si le changement d'invite est permanent outemporaire :

- P (permanent) : le changement d'invite s'applique àl'ensemble des primitives H_PUT et H_GET qui suivent.La longueur de l'invite (LENGTH) ne doit pas dépasser12 caractères. Une longueur de 0 signifie l'absenced'invite.

- T (temporaire) : le changement d'invite ne s'appliquequ'à la primitive H_GET suivante. Dans ce mode, il estpossible de définir une longueur d'invite (LENGTH)supérieure à 12 caractères. Toutefois, elle ne doit pasdépasser la valeur définie pour RECSIZE.

Page 42: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

4-18 47 F2 37UJ Rev00

TRSPRT La primitive H_GET/H_PUT suivante sera transparente,c'est-à-dire que les données seront envoyées au terminalsans modification. En mode transparent, le programmeutilisateur doit fournir directement tous les caractères deprésentation. Ces derniers (CRLF, positionnement du curseuretc.) seront traités comme une ligne indépendante par lacouche présentation pour éviter les erreurs.

MSG Messages asynchrones acceptés ("Y") ou différés ("N").

FORCEWRITE Ecriture forcée. Envoi au terminal de la totalité du contenu dutampon qui lui est associé. Ce paramètre n'a de significationqu'en mode OUTPUT ou APPEND.

Contraintes

L'exécution de cette primitive sur un fichier de gestion de données provoque l'émission ducode retour FUNCNAV signalant un déroulement anormal, sans autre réaction.

Page 43: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Interface TAM

47 F2 37UJ Rev00 4-19

4.7 AUTRES LANGAGES

Les dispositifs prévus pour les langages de programmation standard tels le COBOL et leFORTRAN pour les accès aux fichiers séquentiels classiques s'appliquent également auxcas où c'est un terminal qui tient lieu de fichier. Cependant, cela ne dispense pasd'effectuer l'affectation standard du terminal via le GCL.

Pour plus de détails sur les interfaces de gestion de données, se reporter à ladocumentation des langages concernés.

Comme ces interfaces standard ne permettent pas de définir des paramètres spécifiquesdes terminaux, comme les invites temporaires ou le mode transparent, on est amené,depuis un programme COBOL par exemple, à appeler une procédure GPL utilisant laprimitive H_TN (voir au chapitre 4) pour faire passer dynamiquement le terminal en modetransparent.L'exemple de programme COBOL qui suit illustre la fonction de lecture et d'écriture auterminal, jusqu'à détection d'une fin-de-fichier qui est implicitement $EOS.

IDENTIFICATION DIVISION.PROGRAM-ID. TERM-I-O.* THIS PROGRAM ILLUSTRATES THE USE OF A TERMINAL ** AS A SEQUENTIAL FILE FOR INPUT/OUTPUT *ENVIRONMENT DIVISION.CONFIGURATION SECTION.SOURCE-COMPUTER. LEVEL-64.OBJECT-COMPUTER. LEVEL-64.INPUT-OUTPUT SECTION.FILE-CONTROL. SELECT INF ASSIGN INFILE ORGANIZATION SEQUENTIAL. SELECT OUTF ASSIGN OUTFILE ORGANIZATION SEQUENTIAL.DATA DIVISION.FILE SECTION.FD INF LABEL RECORD STANDARD.01 INF-REC PIC X(75).FD OUTF LABEL RECORD STANDARD.01 OUTF-REC PIC X(75). ..... ..... .....

PROCEDURE DIVISION.START-HERE. OPEN INPUT INF OUTPUT OUTF.ITER. MOVE SPACES TO INF-REC READ INF AT END CLOSE INF CLOSE OUTF STOP RUN. MOVE INF-REC TO OUTF-REC. ..... ..... ..... WRITE OUTF-REC. GO TO ITER.

Page 44: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

4-20 47 F2 37UJ Rev00

Page 45: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

47 F2 37UJ Rev00 5-1

5. Mode plein écran : interface SDPI

5.1 GÉNÉRATION DES GRILLES

La génération des grilles se fait au moyen du processeur MAINTAIN_FORM (MNFORM).

En mode EDIT, la grille se décrit, routine par routine, en utilisant le langage de définitionde grille de l'interface SDPI (Standard Device Programmatic Interface).

En mode plein écran, on décrit l'image que la grille doit avoir sur le terminal plein écran aumoyen du langage de définition de grille.

Pour chaque grille, le processeur MAINTAIN_FORM génère les unités de bibliothèquesuivantes :

• Une unité origine de référence dans une bibliothèque binaire (BINLIB). Le nom donnépar MAINTAIN_FORM à cette unité est nomgrille_SF.

• Une unité résultante indépendante du type de terminal (nomgrille_OF_ANY) ou autantd'unités résultantes qu'il y a de types de terminaux pour lesquels la grille doit êtrechargée (nomgrille_OF_typeterminal). Ces unités de bibliothèque sont créées dans unebibliothèque binaire (BINLIB).

• Des unités en langage origine dans une bibliothèque de programmes origine (SLLIB).Ces unités qui contiennent les structures de données sont utilisées par les applicationsau moyen des routines COPY (ou de leurs équivalents). Elles comprennent des unitésen langage C ou des macro-instructions du GPL. Ces unités en langage origine sontde trois types :

- nomgrilleI : identifie la grille et indique où la placer sur l'écran.

- nomgrilleV : définit le vecteur de sélection des zones variables de la grille.

- nomgrilleR : définit l'article de données qui est une image des zones variables de lagrille.

Page 46: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

5-2 47 F2 37UJ Rev00

La recherche des grilles résultantes se fait, conformément aux règles standard, dans lesbibliothèques binaires suivantes : BLIB, BINLIB1, BINLIB2 et BINLIB3.

En outre, il est possible d'utiliser un fichier séquentiel UFAS (OUTFILE) ou une disquette(DK) pour ranger les unités résultantes de terminaux.

Les programmes d'application ont accès aux grilles par les primitives de l'interface SDPI.Ces primitives appellent un jeu de routines de service assurant la présentation des grillesà l'écran d'après les unités résultantes créées par MAINTAIN_FORM.

Pour plus de détails sur MAINTAIN_FORM, reportez-vous au manuel GCOS 7 V6FORMS - Guide de l'utilisateur (15UJ).

5.2 PRINCIPES DE FONCTIONNEMENT DE L'INTERFACE SDPI

L'accès des programmes au mode plein écran se fait au moyen de routines de l'interfaceSDPI qui renvoient aux différentes unités en langage origine. Ce sont ces routines quiassurent la base du dialogue avec le terminal.

A chaque routine correspond une opération, à l'exception de la routine CDFIDI dont lerôle est purement informatif. Ces opérations peuvent être l'envoi d'un message auterminal (CDGET, CDSEND, CDATTR, CDATTL, CDMECH, CDRELS) ou la réceptiond'un message (CDRECV, CDPURGE).

Pour l'envoi d'un message au terminal, le programme peut spécifier un indicateur deniveau de dialogue dans la routine, cet indicateur étant alors utilisé pour spécifier quandtransmettre le message au terminal, et dans le cas où il doit être transmisimmédiatement, pour spécifier si le programme peut continuer à envoyer d'autresmessages ou s'il doit rendre le contrôle au terminal.

La routine de réception (CDRECV) renvoie un indicateur de niveau annonçant àl'utilisateur ou à son programme que le message a été envoyé et indiquant qui a le droitde parole.

Pour chaque routine, un code retour confirme la bonne exécution de l'opération.

Page 47: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Mode plein écran : interface SDPI

47 F2 37UJ Rev00 5-3

5.3 ACTIVATION DE GRILLE

Activer une grille, c'est afficher à l'écran les zones fixes, leurs valeurs initiales, et lesattributs de rendu vidéo définis pour les zones variables de la grille. Pour ce faire, leprogramme doit émettre une routine CDGET désignant une structure d'identification de lagrille et spécifiant son mode d'activation : APPEND (adjonction), OVERLAY(recouvrement), WINDOW (fenêtre) ou ERASE (effacement).

En mode APPEND, l'utilisateur peut spécifier l'emplacement de la grille sur l'écran parrapport aux grilles qui y sont déjà. Si une nouvelle grille est activée, toutes les grilles setrouvant en dessous de celle à laquelle la nouvelle grille est ajoutée sont désactivées. Leszones précédemment occupées à l'écran par les grilles désactivées sont effacées.L'appel d'une grille à placer en haut de l'écran provoque l'effacement de la totalité del'écran. Il est possible de demander à visualiser plusieurs exemplaires successifs d'unemême grille à l'écran, chaque exemplaire étant alors repéré par un numéro d'exemplaire(ou d'occurrence) spécifié par nomgrilleI et nomgrilleV.

En mode OVERLAY, toutes les grilles précédentes sont désactivées, mais restent àl'écran. Toutefois, ces grilles non effacées sont figées, et l'affichage d'une nouvelle grillene provoque aucune modification des emplacements à l'écran.

En mode WINDOW, chaque grille définit une fenêtre sur l'écran. On appelle fenêtre leplus petit rectangle pouvant contenir une grille et commençant ligne 1/colonne 1 jusqu'aunombre maximum de lignes et de colonnes.

Le programme spécifie l'emplacement de la fenêtre dans la structure d'identification, enindiquant les coordonnées de son coin supérieur gauche. Toutes les grilles présentes àl'écran sont alors figées comme en mode OVERLAY, puis le contenu de la fenêtre où doitvenir se placer la nouvelle grille est effacé. La grille est alors déplacée pour être chargéedans la fenêtre spécifiée, et devient la nouvelle grille active.

La principale caractéristique du mode WINDOW est qu'une grille peut être réactivée.Lorsque la routine CDGET cite une grille déjà affichée dans une fenêtre, le contenu deszones est alors restauré dans l'état où il se trouvait lorsque la grille était active. Dans cecas, la grille reste au même endroit et les coordonnées de la fenêtre éventuellementspécifiées sont ignorées. Ainsi, pour l'utilisateur, les grilles apparaissent comme desfeuilles en partie superposées. Il peut en extraire une et l'amener au sommet de la pile.

Par ailleurs, ce mécanisme (POPUP) permet de désactiver uniquement la grille active.Dans ce cas, la fenêtre affiche le contenu de celle qui se trouve juste en dessous, et lagrille affichée devient donc la nouvelle grille active.

Le mode ERASE est analogue au mode WINDOW, à la différence près qu'au départtoutes les grilles sont désactivées et effacées.

Une grille ne peut être activée en mode WINDOW que si la grille précédente était enmode ERASE ou WINDOW. Il est impossible d'appeler une grille en mode APPEND à lasuite d'une autre activée en mode WINDOW ou ERASE.

Page 48: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

5-4 47 F2 37UJ Rev00

La grille résultante peut être chargée, soit depuis les bibliothèques binaires de l'activitéconsidérée, soit depuis la disquette du terminal. Ce choix n'est pas visible du programmequi génère toujours la même routine. Le jeu de routines de service de FORMS peut, soitenvoyer la grille résultante, soit demander au terminal d'appeler la grille depuis sadisquette, selon les options de génération de la grille.

Remarques

1. L'option TERM = ANY est obligatoire pour les grilles à activer enmode WINDOW ou ERASE. Reportez-vous au manuel GCOS 7 V6FORMS - Guide de l'utilisateur (15UJ).

2. L'activation d'une grille à partir d'une procédure de lancement IOFest déconseillée.

5.4 SORTIES

On dispose de plusieurs routines pour l'affichage d'un message au terminal :

• CDSEND : sélection de zones variables dans une grille. CDSEND transmet un vecteurde sélection identifiant la grille et spécifiant les zones à modifier.

• CDATTR : définition d'un attribut de rendu vidéo pour les zones d'une grille. La grille etses zones sont identifiées par un vecteur de sélection.

• CDATTL : routine identique à CDATTR, mais pour une liste d'attributs au lieu d'un seul.

• CDMECH : mécanisme de gestion permettant d'effacer toutes les zones non protégéesou de déclencher un signal d'alarme au terminal.

• CDRELS : désactivation de toutes les grilles actives et passage du terminal en modeligne. Cette routine n'efface pas l'écran. Si ce dernier doit l'être, CDRELS doit êtresuivie d'une CDMECH avec option RESET.

Page 49: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Mode plein écran : interface SDPI

47 F2 37UJ Rev00 5-5

5.5 ENTRÉES

Lorsque l'utilisateur du terminal introduit des données à l'écran, le programme doitgénérer autant de routines CDRECV qu'il y a de grilles pour lesquelles des données sontà introduire. Il est recommandé de faire précéder chaque CDRECV d'une routine CDFIDIqui fournit l'identification de la grille correspondante. Le programme transmet un vecteurde sélection à la routine CDRECV pour identifier cette grille et désigner dans la grille leszones où seront rangées les données.

Si l'utilisateur a appuyé sur une touche de fonction et qu'une zone touche de fonction aété déclarée implicitement ou explicitement à la génération de la grille, cette zone,lorsqu'elle est sélectionnée, reçoit le "rang" de la touche. Pour la correspondance entreles touches de fonction et les rangs indépendants des types de terminaux, reportez-vousau manuel GCOS 7 V6 FORMS - Guide de l'utilisateur (15UJ).

Si le message contient des informations concernant une autre grille, le programme en estinformé par un indicateur de niveau de dialogue approprié. Si le programme ne veut pasrecevoir les données en attente, il lui faut émettre une routine CDPURGE.

5.6 SUIVIS

Les routines de service de FORMS assurent les fonctions de suivi d'exécution pour lamise au point de programmes utilisateur, ce qui permet en cas d'incident de disposer d'unoutil de diagnostic. Les suivis sont lancés au moyen de la directive de consignation LOGsous IOF.

Ils comprennent :

• Le suivi d'exécution de chaque routine utilisateur. Il est disponible après exécution de laroutine concernée et affiche tous ses paramètres (vecteur de sélection et contenu desarticles de données le cas échéant) ainsi que le code retour.

• Un relevé de tous les messages reçus et émis. Ces messages sont désignés commeINBOUND (entrants) et OUTBOUND (sortants). Ce suivi portant sur le traitement desmessages par FORMS, le relevé est une préfiguration du traitement des messagesd'entrée.

• Des structures de données. Ces structures sont en fait des relevés de données (DataMaps) contenant les informations internes de mise en correspondance générées parMAINTAIN_FORM. Dans le cas de génération dynamique de grilles, ce sont lespréstructures de construction des grilles (Preform) qui sont indépendantes du type determinal.

Pour ces deux derniers types de suivis, il faut utiliser l'option MODIFY ON=*F ou ** de ladirective LOG ou LOG START FOR = SYSTEM.

Page 50: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

5-6 47 F2 37UJ Rev00

5.7 PROGRAMMATION COBOL DE L'INTERFACE SDPI

Ce sous-chapitre porte sur les routines de FORMS accessibles en COBOL. Pour desprécisions sur l'interface C, reportez-vous au manuel C Language System Primitives(64UL), et pour l'interface GPL, au manuel GPL System Primitives (34UL).

Certains paramètres doivent être passés à la rubrique CD (Communication Description)d'entrée ou de sortie. Mais comme la CD ne peut pas être directement utilisée dans uneroutine CALL du COBOL, elle doit être redéfinie au niveau de la COMMUNICATIONSECTION d'une structure d'E/S.

Cette redéfinition constitue une "pseudo CD".

5.7.1 Structures de données

Les services et fonctions de FORMS acceptent comme paramètres diverses structuresde données. C'est ainsi que l'identification de grille, l'article de données et le vecteur desélection générés par MAINTAIN_FORM sont récupérés par une COPY dans leprogramme.

Les CD d'entrée et de sortie sont des structures de communication standard du COBOL.On trouvera ci-dessous le détail de la façon dont FORMS les met en oeuvre.

Les rubriques CD d'entrée et de sortie doivent être redéfinies dans la COMMUNICATIONSECTION, les noms de CD ne pouvant pas être utilisés directement dans la liste desparamètres de la CALL. Les redéfinitions sont les suivantes :

CD nom-cd-1 [FOR] INPUT.01 pseudo-cd-1. 02 nom-donnée-file-symbolique PIC X(12). (c) 02 FILLER PIC X(36). (a) 02 nom-donnée-date PIC X(6). (e) 02 nom-donnée-heure PIC X(8). (e) 02 nom-donnée-origine-symbolique PIC X(12). (b) 02 nom-donnée-longueur-texte PIC 9(4). (b) 02 nom-donnée-code-fin PIC X. (f) 02 nom-donnée-code-état PIC XX. (g)

CD nom-cd-2 [FOR] OUTPUT.01 pseudo-cd-2. 02 nom-donnée-longueur-destinataire PIC 9(4) VALUE 1. (h) 02 nom-donnée-longueur-texte PIC 9(4). (b) 02 nom-donnée-code-état PIC XX. (g) 02 nom-donnée-code-erreur PIC X. (b) 02 nom-donnée-destinataire-symbolique PIC X(12). (d)

Page 51: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Mode plein écran : interface SDPI

47 F2 37UJ Rev00 5-7

Remarques

a) Les FILLER ne sont pas utilisés.

b) Ces zones ne servent à rien sous IOF.

c) Cette zone doit contenir la chaîne "CONSOLE" pour l'appel de tout service deFORMS employant la CD d'entrée.

d) Cette zone doit contenir la chaîne "CONSOLE" pour l'appel de tout service deFORMS employant la CD de sortie.

e) Après tout service CDRECV, ces zones contiennent la date et l'heure du jour.

f) Après tout service CDRECV, cette zone renvoie l'indicateur de niveau de dialoguecorrespondant au message reçu :

"1" : d'autres données en provenance d'une autre grille doivent venir s'ajouter aumessage.

"3" : toutes les données ont été reçues, le programme reprend le contrôle.

g) Après tout service de FORMS, cette zone contient le code d'état correspondant à lafin d'exécution de l'instruction. Le détail des différents codes d'état est donné dansles descriptions de routine qui suivent.

h) Cette zone doit toujours être forcée à 1.

5.7.2 CDSEND (Envoi de grilles)

Objet

Cette routine permet le transfert de données d'un article vers l'extrémité de la connexionindiquée par le vecteur de sélection; pour le programme, l'extrémité est un terminallogique.

Syntaxe

CALL "CDSEND" USING pseudo-cd-sortie, article, indicateur-niveau, vecteur-sélection.

Page 52: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

5-8 47 F2 37UJ Rev00

Paramètres

pseudo-cd-sortie Voir la description de la CD.

article Article de données associé à la grille. Cette structure estgénérée par MAINTAIN_FORM (nom-grilleR).

indicateur-niveau Indicateur de niveau de dialogue à associer à la donnée. Ils'agit d'une donnée élémentaire pouvant prendre l'une desvaleurs suivantes :

"1" : fin d'article : les données sont mises en quarantaine.Pas d'envoi de message au terminal.

"2" : fin de quarantaine : les données relatives à lacommande, ainsi que celles précédemment mises enquarantaine, sont envoyées au terminal, l'applicationconservant le contrôle.

"3" : Fin d'interaction : les données relatives à la commandeet toutes celles précédemment mises en quarantaine sontenvoyées au terminal, le terminal reprenant le contrôle.

vecteur-sélection Structure générée par MAINTAIN_FORM (nom-grilleV). Lazone "numéro d'occurrence" doit identifier l'exemplaire degrille auquel s'applique la commande. Les autres zones duvecteur de sélection doivent être initialisées comme suit :

- espace : pas de transfert de la zone données associée àpartir de l'article.

- S : transfert de la zone données associée à partir del'article.

- C : effacement du contenu de la zone.

Après exécution, le contenu des zones du vecteur desélection reste inchangé, sauf lorsqu'il y a sélection d'unezone numérique dont le contenu est incorrect, auquel cas lazone du vecteur de sélection est initialisée à "A".

Page 53: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Mode plein écran : interface SDPI

47 F2 37UJ Rev00 5-9

Codes retour

Déroulement normal :

0 DONE

AB ALMOST Erreur détectée dans au moins une zone.

AF DONEIDE Contenu du vecteur de sélection incorrect.

Déroulement anormal :

9A BREAK Interruption (BREAK).

AC ARGERR Paramètre inattendu.

A0 SNDVIOL Erreur de droit de parole.

A7 SNDARERR Vecteur de sélection ne correspondant à aucune grille active.

A1 SEQERR Extrémité ne fonctionnant pas en mode FORMS.

97 OPTERR Indicateur de niveau de dialogue incorrect.

AG NOMATCH Date de création de la grille ne coïncidant pas avec la date decréation des structures du programme.

A9 DVIDFBID Appareil incompatible.

9H DNSPEC Nom d'extrémité non admis.

S1 DAMAGED Erreur système.

S1 WRONGITM Contenu de grille résultante incorrect.

S1 WRONGSTA Contenu de la structure interne de FORMS incorrect.

Page 54: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

5-10 47 F2 37UJ Rev00

5.7.3 CDRECV (Réception de grilles)

Objet

Cette routine provoque la réception de données dans l'article conformément au contenudu vecteur de sélection.

Syntaxe

CALL "CDRECV" USING pseudo-cd-entrée, article, indicateur-attente, vecteur-sélection.

Paramètres

pseudo-cd-entrée Voir la description de la CD.

article Article de données associé à la grille. Cette structure estgénérée par MAINTAIN_FORM (nom-grilleR).

vecteur-sélection Cette structure est générée par MAINTAIN_FORM (nom-grilleV). Les zones "nom de partition d'écran" et "numérod'occurrence" doivent correspondre à la grille à laquelles'applique la commande. Chaque zone du vecteur desélection correspondant à une zone devant recevoir unevaleur en provenance du terminal doit être initialisée à S. Leszones du vecteur de sélection seront modifiées par lacommande de la façon suivante :

R Données correctes transférées dans la zonecorrespondante.

S Pas de données disponibles pour la zone, la zone n'étantpas transmissible, ou bien son contenu étant nul ou àespaces alors que l'option RECEIVE SPACES n'a pasété sélectionnée pour la grille.

C Zone contenant le curseur (cette valeur peut égalementcorrespondre à une zone non sélectionnée).

X Zone contenant le curseur, et données correctestransférées (R + C).

D Zone ayant l'attribut de qualification DT ou IT. Lesdonnées sont reçues dans cette zone.

+ Signe introduit dans une zone non signée, données nontransférées.

T Chiffres non significatifs tronqués, données transférées.O Chiffres significatifs tronqués, données non transférées.A Caractères incorrects introduits dans la zone, données

non transférées.

O, T et + ne peuvent être renvoyés que pour des zonesnumériques ou numériques éditées, autrement dit avec uneSCREEN PICTURE numérique ou numérique éditée ouUSAGE COMPUTATIONAL (ex. zones COMP-1).

Page 55: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Mode plein écran : interface SDPI

47 F2 37UJ Rev00 5-11

Toutes les autres zones du vecteur de sélection doivent êtreinitialisées à espace. Si des données sont présentes pourune zone non sélectionnée, elles ne sont pas transférées, etla zone correspondante du vecteur de sélection est forcée à L(Lost = perdu). Sinon, cette zone du vecteur de sélectionreste inchangée.

indicateur-attente Un caractère toujours à 0 (zéro) [réservé à un usageultérieur].

Codes retour

Déroulement normal :

0 DONE

AF DONEIDE Contenu du vecteur de sélection incorrect.

AB ALMOST Erreur détectée dans au moins une zone.

A8 SKIPPED Certaines zones reçues n'avaient pas été sélectionnées; ellessont perdues.

AI IGNORED Touche de fonction réception imprévue.

Déroulement anormal :

9A BREAK Interruption (BREAK).

AC ARGERR Paramètre imprévu.

A3 RCVVIOL Erreur de droit de parole.

A7 RECARERR Vecteur de sélection ne correspondant à aucune grille active.

A1 SEQERR Extrémité ne fonctionnant pas en mode FORMS.

AG NOMATCH Date de création de la grille ne coïncidant pas avec la date decréation des structures du programme.

A9 DVIDFBID Appareil incompatible.

9H DNSPEC Nom d'extrémité non admis.

S1 DAMAGED Erreur système.

S1 WRONGITM Contenu de grille résultante incorrect.

S1 WRONGSTA Contenu de structure interne de FORMS incorrect.

Page 56: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

5-12 47 F2 37UJ Rev00

5.7.4 CDGET (Activation de grilles)

Objet

Cette routine provoque l'activation d'une grille.

Syntaxe

CALL "CDGET" USING pseudo-cd-sortie, format [,indicateur-niveau].

Paramètres

pseudo-cd-sortie Voir la description de la CD.

format Structure identifiant la grille à activer et son emplacement àl'écran. Cette structure générée par MAINTAIN_FORM(nomgrilleI) s'utilise de la façon suivante :

- Si l'on a spécifié APPEND (c'est-à-dire si la zone "mode"de la structure format contient A), toutes les grillessuivant celle spécifiée par les anciennes valeurs deszones "nom de partition d'écran" et "numérod'occurrence" sont désactivées et effacées. La nouvellegrille vient se placer à la suite de l'ancienne. Si lesanciennes zones comportent des espaces comme nomde partition d'écran et un zéro comme numérod'occurrence (valeur initiale implicite), la nouvelle grillesera ajoutée en haut de l'écran, toutes les autres grillesétant alors désactivées et effacées.

- Si l'on a spécifié OVERLAY (c'est-à-dire si la zone"mode" de la structure format est à O), l'ancienne valeurde la zone "nom de partition d'écran" doit comporter desespaces, et l'ancienne zone "numéro d'occurrence" doitêtre à zéro. Les grilles jusqu'alors actives sont figées,autrement dit restent à l'écran, mais toutes leurs zonessont protégées et ne sont plus adressables par leprogramme. La nouvelle grille est activée en haut del'écran. Il n'y a aucun contrôle pour savoir si la nouvellegrille en chevauche d'autres ou non.

- Si le mode spécifié est WINDOW (la zone "nomgrille-MD" contient "W"), les grilles jusqu'alors actives sontfigées. Si la grille à activer est déjà présente à l'écranavec le même numéro d'occurrence, elle vient se placerau dessus des autres et est réactivée avec son contenuantérieur. Sinon, les zones "nomgrille-SL" et "nomgrille-SC" définissent les coordonnées du coin supérieurgauche du rectangle dans lequel la grille doit être placée.Le contenu de ce rectangle est effacé et la grille activevient s'y placer.

Page 57: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Mode plein écran : interface SDPI

47 F2 37UJ Rev00 5-13

- Si le mode sélectionné est ERASE (la zone "nomgrille-MD" contient "E"), toutes les grilles sont désactivées etl'écran effacé. Les zones "nomgrille-SL" et "nomgrille-SC" définissent les coordonnées du coin supérieurgauche du rectangle où la grille doit venir se placer.

Si une CDGET spécifiant OVERLAY est suivie d'une ouplusieurs CDGET spécifiant APPEND, les grilles qui suiventviendront se placer à la suite de celle qui a été activée enmode OVERLAY.

La zone nomgrille-LL de la structure format donne le nombrede lignes affectées à la nouvelle grille. Si pour nomgrille-LLon a zéro, le nombre de lignes affectées doit être strictementégal au nombre de lignes de la grille. Si, par contre,nomgrille-LL est différent de 0 et supérieur ou égal aunombre de lignes de la grille, celle-ci doit être complétée parle nombre de lignes blanches approprié. Si nomgrille-LL estdifférent de 0 et n'atteint pas le nombre de lignes de la grille,le code retour FUNCNAV est renvoyé. Cette zone n'estinterprétée que pour la nouvelle structure format; autrementdit, le premier FILLER doit être forcé à 2.

Le nombre maximum de grilles (actives ou figées) est de 6.

indicateur-niveau Indicateur de niveau de dialogue à associer à la donnée. Ils'agit d'une donnée élémentaire pouvant prendre l'une desvaleurs suivantes :

"1" : fin d'article : les données sont mises en quarantaine.Pas d'envoi de message au terminal."2" : fin de quarantaine : les données relatives à lacommande, ainsi que celles précédemment mises enquarantaine sont envoyées au terminal, l'applicationconservant le contrôle."3" : fin d'interaction : les données relatives à la commande ettoutes celles précédemment mises en quarantaine sontenvoyées au terminal, le terminal reprenant le contrôle.

Valeur implicite : "1".

Page 58: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

5-14 47 F2 37UJ Rev00

Codes retour

Déroulement normal :

0 DONE

Déroulement anormal :

9A BREAK Interruption (BREAK).

9J ALREADY Grille déjà active (dernière grille activée en mode WINDOW).

AC ARGERR Paramètre imprévu.

A0 SNDVIOL Erreur de droit de parole.

A4 RECNFD Grille spécifiée introuvable.

AE FUNCNAV Mode d'activation non utilisable.

97 OPTERR Indicateur de niveau de dialogue incorrect.

92 ENTRYOV Dépassement du nombre maximum de grilles (actives +figées).

92 MSGOV Dépassement de capacité du tampon.

92 SPACEOV Plus d'espace disponible pour de nouvelles structures decontrôle.

A9 DVIDFBID Appareil incompatible.

AG NOMATCH Date de création de la grille ne coïncidant pas avec la date decréation des structures du programme.

9H DNSPEC Nom d'extrémité non admis.

9F CALLVIOL Environnement ni TDS ni IOF.

S1 DAMAGED Erreur système.

S1 WRONGITM Contenu de grille résultante incorrect.

S1 WRONGSTA Contenu de structure interne de FORMS incorrect.

Page 59: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Mode plein écran : interface SDPI

47 F2 37UJ Rev00 5-15

5.7.5 CDRELS (Désactivation de la totalité des grilles)

Objet

Cette routine permet de désactiver toutes les grilles actives et de faire passer le terminalen mode ligne, mais sans effacer l'écran. Elle supprime également toutes lesmodifications d'attributs dans la structure de gestion de grilles. Une fois cette routineexécutée, il n'est pas possible de supprimer des modifications d'attributs au moyen d'uneautre CALL.

Syntaxe

CALL "CDRELS" USING pseudo-cd-sortie [,indicateur-niveau].

Paramètres

pseudo-cd-sortie Voir la description de la CD.

indicateur-niveau Indicateur de niveau de dialogue à associer à la donnée. Ils'agit d'une donnée élémentaire pouvant prendre l'une desvaleurs suivantes :

"1" : fin d'article : les données sont mises en quarantaine.Pas d'envoi de message au terminal.

"2" : fin de quarantaine : les données relatives à lacommande, ainsi que celles précédemment mises enquarantaine sont envoyées au terminal, l'applicationconservant le contrôle.

"3" : fin d'interaction : les données relatives à la commande ettoutes celles précédemment mises en quarantaine sontenvoyées au terminal, le terminal reprenant le contrôle.

Valeur implicite : "1".

Codes retour

Déroulement normal :

0 DONE

Déroulement anormal :

9A (BREAK) Interruption (Break).

AC ARGERR Paramètre imprévu.

A0 SNDVIOL Erreur de droit de parole.

A1 SEQERR Extrémité ne fonctionnant pas en mode FORMS.

Page 60: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

5-16 47 F2 37UJ Rev00

97 OPTERR Indicateur de niveau de dialogue incorrect.

A9 DVIDFBID Appareil incompatible.

9H DNSPEC Nom d'extrémité inconnu.

92 MSGOV Dépassement de capacité du tampon.

S1 DAMAGED Erreur système.

S1 WRONGITM Contenu de grille résultante incorrect.

S1 WRONGSTA Contenu de structure interne de FORMS incorrect.

Remarque : Après exécution de CDRELS, les grilles désactivées restentaffichées. Le résultat de l'activation d'une nouvelle grille par appelde CDGET en mode OVERLAY ou WINDOW est tout à faitimprévisible.

5.7.6 CDPURGE (Annulation des données d'entrée)

Objet

Cette routine élimine tous les messages d'entrée en attente et rend le contrôle àl'application.

Syntaxe

CALL "CDPURGE" USING pseudo-cd-entrée.

Paramètres

pseudo-cd-entrée Voir la description de la CD.

Codes retour

Déroulement normal :

0 DONE

Déroulement anormal :

9A BREAK Interruption (Break).

A1 SEQERR Extrémité ne fonctionnant pas en mode FORMS.

9H DNSPEC Nom d'extrémité inconnu.

S1 DAMAGED Erreur système.

Page 61: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Mode plein écran : interface SDPI

47 F2 37UJ Rev00 5-17

S1 WRONGITM Contenu de grille résultante incorrect.

S1 WRONGSTA Contenu de structure interne de FORMS incorrect.

5.7.7 CDATTR (Sélection d'attributs)

Objet

Cette routine affecte un attribut vidéo aux zones sélectionnées (indiquées par le vecteurde sélection). Elle ne permet pas de supprimer une modification d'attribut effectuée avantune CALL CDRELS.

Syntaxe

CALL "CDATTR" USING pseudo-cd-sortie, vecteur-sélection, identificateur-attribut [,indicateur-niveau].

Paramètres

pseudo-cd-sortie Voir la description de la CD.

vecteur-sélection Cette structure est générée par MAINTAIN_FORM(nomgrilleV). Les zones "nom de partition d'écran" et "numérod'occurrence" doivent identifier l'exemplaire de grille auquels'applique la commande. Les autres zones du vecteur desélection doivent être initialisées comme suit :

"espace" : pas d'affectation des attributs de la zone associée."S" : affectation des attributs de la zone associée."C" : effacement du contenu de la zone."B" : à la fois, effacement du contenu de la zone et affectationdes attributs de la zone associée.

Après exécution, le contenu des zones du vecteur desélection reste inchangé.

identificateur-attribut Attribut à appliquer aux zones sélectionnées. Il s'agit d'unedonnée élémentaire de quatre caractères alphanumériquesqui peut prendre les valeurs suivantes :

BI (BLink) : clignotantBD (BolD) : gras.Bxxx (Background color) : couleur du fond avec pour xxx :RED : rougeYEL : jauneBLU : bleuGRE : vertCYA : cyanMAG : magenta

Page 62: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

5-18 47 F2 37UJ Rev00

WHI : blancBLA : noirDFT : couleur impliciteCN (Conceal) : secret.COS (Column Separator) : séparateur de colonnes.CP (Cursor position) : position du curseur.DFT (Default rendition) : rendu vidéo implicite (c'est-à-direNBI, NHL, NRV, NCOS, NUL, BDFT, FDFT et intensiténormale).FT (Faint) : intensité réduite.Fxxx (Foreground color) : couleur des caractères, "xxx"pouvant prendre les mêmes valeurs que dans le cas de Bxxx.HL (rendition HighLighted) : rendu vidéo mis en évidence defaçon spécifique du terminal.INIT (INITial attributes) : attributs initiaux.NBI (No Blink) : pas de clignotement.NCOS (No COlumn Separator) : pas de séparateur decolonnes.NHL (Not HighLighted) : pas de mise en évidence.NPR (Not RPotected) : pas de protection.NRV (No Reverse Video) : pas de vidéo inverse.NTR (Not TRansmittable) : non transmissible.NUL (Not UnderLined) : non souligné.PR (PRotected) : protégé.RV (Reverse Video) : vidéo inverse.TR (TRansmittable) : transmissible.UL (UnderLined) : souligné.

Une fois modifié, un attribut reste dans cet état jusqu'à cequ'une autre commande CDATTR ou CDATTL spécifie unattribut différent pour la même zone, ou jusqu'à exécutiond'une commande CDMECH avec l'argument INITAT.

Lorsqu'un attribut CP est appliqué à une zone protégée, lecurseur qui ne peut pas être positionné sur cette zone le serasur la première zone de l'écran à laquelle a été attribuél'attribut CP lors de la génération de la grille (s'il y en a une)ou sur la première zone non protégée de l'écran (zoneinitiale).

indicateur-niveau Indicateur de niveau de dialogue à associer aux données. Ils'agit d'une donnée élémentaire pouvant prendre l'une desvaleurs suivantes :

"1" : fin d'article : les données sont mises en quarantaine.Pas d'envoi de message au terminal.

"2" : fin de quarantaine : les données relatives à lacommande, ainsi que celles précédemment mises enquarantaine, sont envoyées au terminal, l'applicationconservant le contrôle.

"3" : fin d'interaction : les données relatives à la commande ettoutes celles précédemment mises en quarantaine sontenvoyées au terminal, le terminal reprenant le contrôle.

Valeur implicite : "1".

Page 63: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Mode plein écran : interface SDPI

47 F2 37UJ Rev00 5-19

Codes retour

Déroulement normal :

0 DONE

AF DONEIDE Contenu du vecteur de sélection incorrect.

Déroulement anormal :

9A BREAK Interruption (Break).

AC ARGERR Paramètre imprévu.

A0 SNDVIOL Erreur de droit de parole.

A7 SNDARERR Vecteur de sélection ne correspondant à aucune grille active.

A1 SEQERR Extrémité ne fonctionnant pas en mode FORMS.

97 OPTERR Indicateur de niveau de dialogue incorrect.

A6 OBJUNKN Attribut inconnu.

AG NOMATCH Date de création de la grille ne coïncidant pas avec la date decréation des structures du programme.

A9 DVIDFBID Appareil incompatible.

9H DNSPEC Nom d'extrémité inconnu.

9H CONFLICT Attribut en contradiction avec la grille (par exemple parce quela zone choisie commence en colonne 1).

92 MSGOV Dépassement de capacité du tampon.

S1 DAMAGED Erreur système.

S1 WRONGITM Contenu de grille résultante incorrect.

S1 WRONGSTA Contenu de structure interne de FORMS incorrect.

Page 64: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

5-20 47 F2 37UJ Rev00

5.7.8 CDATTL (Sélection de liste d'attributs)

Objet

Cette routine affecte une liste d'attributs aux zones sélectionnées (indiquées par levecteur de sélection). Les attributs sont pris en compte séquentiellement ; autrement dit,l'effet d'un attribut peut être annulé par les attributs suivants de la liste.

Syntaxe

CALL "CDATTL" USING pseudo-cd-sortie, vecteur-sélection, identificateur-attributs [,indicateur- niveau].

Paramètres

pseudo-cd-sortie Voir la description de la CD.

vecteur-sélection Cette structure est générée par MAINTAIN_FORM(nomgrilleV). Les zones "nom de partition d'écran" et "numérod'occurrence" doivent identifier l'exemplaire de grille auquels'applique la commande. Les autres zones du vecteur desélection doivent être initialisées comme suit :

"espace" : pas d'affectation des attributs de la zone associée."S" : affectation des attributs de la zone associée."C" : effacement du contenu de la zone."B" : effacement du contenu de la zone et affectation desattributs de la zone associée.

Après exécution, le contenu des zones du vecteur desélection reste inchangé.

identificateur-attribut Structure de données correspondant à la descriptionsuivante :

01 nom-données1. 02 nom-données2 PIC 9(3) VALUE n. 02 nom-données3 PIC X(4) OCCURS n.

nom-donnée2 étant le nombre d'attributs à affecter (spécifiéen décimal), et chaque élément de nom-donnée3 étant unidentificateur d'attribut. La liste des identificateurs d'attributset leurs significations sont identiques à celles indiquées pourla commande CDATTR.

indicateur-niveau Indicateur de niveau de dialogue à associer aux données. Ils'agit d'une donnée élémentaire pouvant prendre l'une desvaleurs suivantes :

"1" : fin d'article : les données sont mises en quarantaine.Pas d'envoi de message au terminal.

Page 65: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Mode plein écran : interface SDPI

47 F2 37UJ Rev00 5-21

"2" : fin de quarantaine : les données relatives à lacommande, ainsi que celles précédemment mises enquarantaine sont envoyées au terminal, l'applicationconservant le contrôle.

"3" : fin d'interaction : les données relatives à la commande,ainsi que toutes celles précédemment mises en quarantaine,sont envoyées au terminal, le terminal reprenant le contrôle.

Valeur implicite : "1".

Codes retour

Déroulement normal :

0 DONE

AF DONEIDE Contenu du vecteur de sélection incorrect.

Déroulement anormal :

9A BREAK Interruption (Break).

AC ARGERR Paramètre imprévu.

A0 SNDVIOL Erreur de droit de parole.

A7 SNDARERR Vecteur de sélection ne correspondant à aucune grille active.

A1 SEQERR Extrémité ne fonctionnant pas en mode FORMS.

97 OPTERR Indicateur de niveau de dialogue incorrect.

A6 OBJUNKN Attribut inconnu.

AG NOMATCH Date de création de la grille ne coïncidant pas avec la date decréation des structures du programme.

A9 DVIDFBID Appareil incompatible.

A9 CONFLICT Attribut en contradiction avec la grille (par exemple, parceque la zone choisie commence en colonne 1).

9H DNSPEC Nom d'extrémité inconnu.

92 MSGOV Dépassement de capacité du tampon.

S1 DAMAGED Erreur système.

S1 WRONGITM Contenu de grille résultante incorrect.

S1 WRONGSTA Contenu de structure interne de FORMS incorrect.

Page 66: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

5-22 47 F2 37UJ Rev00

5.7.9 CDFIDI (Identification de grille)

Objet

Cette routine permet d'obtenir le nom de la grille relative au message suivant.

Syntaxe

CALL "CDFIDI" USING pseudo-cd-entrée, identificateur-grille.

Paramètres

pseudo-CD-entrée Voir la description de la CD.

identificateur-grille Nom et numéro d'occurrence de la grille relative au messagesuivant (ou à la partie de message suivant) à recevoir. Leformat de cette structure correspond à la descriptionsuivante :

01 identification-grille. 02 nom-grille PIC X(8). 02 numéro-occurrence PIC 9(3).

Codes retour

Déroulement normal :

0 DONE

Déroulement anormal :

A3 RCVVIOL Erreur de droit de parole.

9A BREAK Interruption (Break).

A9 DVIDFBID Appareil incompatible.

9H DNSPEC Nom d'extrémité inconnu.

S1 DAMAGED Erreur système.

S1 WRONGITM Contenu de grille résultante incorrect.

S1 WRONGSTA Contenu de structure interne de FORMS incorrect.

Page 67: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Mode plein écran : interface SDPI

47 F2 37UJ Rev00 5-23

5.7.10 CDMECH (Activation de fonction de gestion)

Objet

Cette routine active une fonction de gestion. A noter qu'elle ne permet pas de supprimerune modification d'attribut effectuée avant une CALL CDRELS.

Syntaxe

CALL "CDMECH" USING pseudo-cd-sortie, identificateur-mécanisme [,indicateur-niveau].

Paramètres

pseudo-cd-sortie Voir la description de la CD.

identificateur-mécanisme Mnémonique indiquant un mécanisme (ou fonction degestion) relatif à un appareil. Il s'agit d'une donnéeélémentaire de 6 caractères alphanumériques qui peutprendre les valeurs suivantes :

ALARM : déclenchement du signal d'alarme visuel ou sonoreéventuel.CLEAR : effacement de toutes les zones non protégées.PROTCT : protection de toutes les zones variables de toutesles grilles actives. Cette commande prend effet à partir de laCDGET suivante.INITAT (idem RESET) : effacement de toutes les zones nonprotégées et réinitialisation des attributs à leurs valeursd'origine. Lorsque l'écran est en mode normal (c'est-à-direaprès CDRELS LEVEL=1), cette commande efface l'écran.INIT : remise de toutes les grilles à l'état initial.STPRA et STPRV : mécanismes admis uniquement lorsquel'extrémité est une imprimante en mode FORMS; dans lesautres cas, ils sont sans effet. Avec STPRV, seules les zonesvariables seront imprimées pour toutes les commandesCDSEND qui suivent. Avec STPRA, c'est l'ensemble deszones qui sera imprimé pour toutes les commandesCDSEND qui suivent. STPRA est la valeur implicite.CPON : mécanisme instaurant un mode dans lequell'utilisateur se verra indiquer la position du curseur dans lescommandes CDREV qui suivront. Applicable aux terminauxautorisant ce dispositif (QUESTAR 200, IBM3278/3279,MINITEL).CPOFF : suppression d'un mécanisme CPONprécédemment validé.

Page 68: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

5-24 47 F2 37UJ Rev00

POPUP : en mode WINDOW, ce mécanisme permet dedésactiver une grille pour activer celle qui la précèdeimmédiatement dans la pile des grilles affichées. Le contenude la fenêtre associée à la grille désactivée est alorsremplacé par celui de la grille se trouvant juste en dessous.Si la grille active n'a pas été appelée en mode WINDOW, ous'il n'y a qu'une seule grille dans la pile, un code retourFUNCNAV est émis.

indicateur-niveau Indicateur de niveau de dialogue à associer aux données. Ils'agit d'une donnée élémentaire pouvant prendre l'une desvaleurs suivantes :

"1" : fin d'article : les données sont mises en quarantaine.Pas d'envoi de message au terminal.

"2" : fin de quarantaine : les données relatives à lacommande, ainsi que celles précédemment mises enquarantaine, sont envoyées au terminal, l'applicationconservant le contrôle.

"3" : fin d'interaction : les données relatives à la commande ettoutes celles précédemment mises en quarantaine sontenvoyées au terminal.

Le terminal reprend le contrôle.

Valeur implicite : "1".

Codes retour

Déroulement normal :

0 DONE

Déroulement anormal :

9A BREAK Interruption (Break).

AC ARGERR Paramètre imprévu.

A0 SNDVIOL Erreur de droit de parole.

97 OPTERR Indicateur de niveau de dialogue incorrect.

A6 OBJUNKN Mécanisme inconnu.

A9 DVIDFBID Appareil incompatible.

9H DNSPEC Nom d'extrémité inconnu.

S1 WRONGITM Contenu de grille résultante incorrect.

S1 WRONGSTA Contenu de structure interne de FORMS incorrect.

AE FUNCNAV Mécanisme non utilisable.

Page 69: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Mode plein écran : interface SDPI

47 F2 37UJ Rev00 5-25

5.8 EXEMPLE DE PROGRAMME

L'exemple qui suit est un programme COBOL utilisant FORMS sous IOF. La grilleVENTES sert à saisir les ventes de représentants. Le programme calcule un total desventes par référence, et un cumul pour l'ensemble des références. S'il y a une erreur desaisie, la zone où se situe l'erreur est mise en évidence d'une façon spécifique duterminal, et peut être corrigée.

L'image de la grille VENTES est la suivante :

# PRODUCT TYPE ##########NAME OF REPRESENTATIVE ########################### CODE ######PRODUCT CODE QUANTITY PRICE TOTAL###### #### ### ###### ############# #### ### ###### ############# #### ### ###### ############# #### ### ###### ############# #### ### ###### ############# #### ### ###### ############# #### ### ###### #######GRAND TOTAL ##########

La même grille en français donnerait :

------------------------------------------------------------------

# TYPE PRODUIT ########## VENDEUR ########################### CODE ######PRODUIT : REF. : QUANTITE : PRIX : TOTAL###### : #### : ### : ###### : ############# : #### : ### : ###### : ############# : #### : ### : ###### : ############# : #### : ### : ###### : ############# : #### : ### : ###### : ############# : #### : ### : ###### : ############# : #### : ### : ###### : #######

TOTAL GEN. ##########

------------------------------------------------------------------

Page 70: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

5-26 47 F2 37UJ Rev00

La rubrique de description de cette grille est la suivante :

NF SLASH LINE IS 01 COL IS 02 SCREEN-PIC IS X(1) UL.NF SALE-TITLE LINE IS 01 COL IS 37 SCREEN-PIC IS X(10) UL.NF REP-NAME LINE IS 02 COL IS 29 SCREEN-PIC IS X(27) UL.NF REP-CODE LINE IS 02 COL IS 64 SCREEN-PIC IS X(6) UL DI.ARRAY SALE-LINES OCCURS 07.NF PRODUCT LINE IS 04 COL IS 03 SCREEN-PIC IS X(6).NF PRODUCT-CODE LINE IS 04 COL IS 18 SCREEN-PIC IS X(4) DI.NF QUANTITY LINE IS 04 COL IS 35 SCREEN-PIC IS 9(3) DI.NF PRICE LINE IS 04 COL IS 46 SCREEN-PIC IS ZZ9.99 NU.NF TOTAL LINE IS 04 COL IS 59 SCREEN-PIC IS ZZZ9.99 PR.UF LINE IS 04 COL IS 13 VALUE IS ":".UF LINE IS 04 COL IS 27 VALUE IS ":".UF LINE IS 04 COL IS 42 VALUE IS ":".UF LINE IS 04 COL IS 55 VALUE IS ":".END-ARRAY.NF GRAND-TOTAL LINE IS 15 COL IS 50 SCREEN-PIC IS ******9.99 PR.UF LINE IS 01 COL IS 23 VALUE IS "PRODUCT TYPE" RV.UF LINE IS 02 COL IS 04 VALUE IS "NAME".UF LINE IS 02 COL IS 09 VALUE IS "OF".UF LINE IS 02 COL IS 12 VALUE IS "REPRESENTATIVE".UF LINE IS 02 COL IS 58 VALUE IS "CODE".UF LINE IS 03 COL IS 03 VALUE IS "PRODUCT".UF LINE IS 03 COL IS 13 VALUE IS ":".UF LINE IS 03 COL IS 18 VALUE IS "CODE".UF LINE IS 03 COL IS 27 VALUE IS ":".UF LINE IS 03 COL IS 31 VALUE IS "QUANTITY".UF LINE IS 03 COL IS 42 VALUE IS ":".UF LINE IS 03 COL IS 46 VALUE IS "PRICE".UF LINE IS 03 COL IS 55 VALUE IS ":".UF LINE IS 03 COL IS 60 VALUE IS "TOTAL".UF LINE IS 15 COL IS 36 VALUE IS "GRAND".UF LINE IS 15 COL IS 42 VALUE IS "TOTAL".

Les structures de données générées sont les suivantes :

SALESI:*02 FILLER PIC X VALUE "3".02 FILLER PIC X(8) VALUE "SALES".02 SALES-NO PIC 9(3) VALUE ZERO.02 SALES-MD PIC X VALUE "A".02 SALES-OF PIC X(8) VALUE SPACES.02 SALES-OO PIC 9(3) VALUE ZERO.02 SALES-LL PIC 9(3) VALUE ZERO.02 FILLER PIC X(5) VALUE "87097".02 FILLER COMP-1 VALUE 01385.02 SALES-AF PIC 9 VALUE 1.02 SALES-SL PIC 9(3) VALUE 1.02 SALES-SC PIC 9(3) VALUE 1.

Page 71: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Mode plein écran : interface SDPI

47 F2 37UJ Rev00 5-27

SALESR:04 SALES-FC PIC 99.04 SLASH PIC X(1).04 SALE-TITLE PIC X(10).04 REP-NAME PIC X(27).04 REP-CODE PIC X(6).04 SALE-LINES-A . 05 SALE-LINES OCCURS 7. 06 PRODUCT PIC X(6). 06 PRODUCT-CODE PIC X(4). 06 QUANTITY PIC 9(3). 06 PRICE PIC 999V99. 06 TOTAL PIC 9999V99.04 GRAND-TOTAL PIC 9999999V99.

SALESV:02 SALESV.03 FILLER PIC X VALUE ""2"".03 FILLER COMP-1 VALUE 41.03 FILLER PIC X(8) VALUE "SALES".03 SALES-VO PIC 9(3) VALUE ZERO.03 SALES-V. 04 SALES-FC-V PIC X. 04 SLASH-V PIC X. 04 SALE-TITLE-VPIC X. 04 REP-NAME-V PIC X. 04 REP-CODE-V PIC X. 04 SALE-LINES-AV . 05 SALE-LINES-V OCCURS 7. 06 PRODUCT-V PIC X. 06 PRODUCT-CODE-V PIC X. 06 QUANTITY-V PIC X. 06 PRICE-V PIC X. 06 TOTAL-V PIC X.04 GRAND-TOTAL-V PIC X.

Le programme que l'on utilise s'appelle DEMO et donne le listage suivant :

IDENTIFICATION DIVISION.PROGRAM-ID. DEMO.AUTHOR. A N OTHER.INSTALLATION. BULL CENTER.ENVIRONMENT DIVISION.CONFIGURATION SECTION.SOURCE-COMPUTER. LEVEL-64.OBJECT-COMPUTER. LEVEL-64.DATA DIVISION.WORKING-STORAGE SECTION.77 I PIC 999.77 J PIC 9.77 W-I PIC 9.77 ERROR-INDICATOR PIC 9.77 W-NBF PIC 9.77 W-ATTRIB PIC X(4) VALUE "INIT".01 SALES-SW. COPY SALESV REPLACING TRAILING "-V" BY "-W".01 ATTRIBUTE. 02 FILLER PIC 999 VALUE 002. 02 FILLER PIC X(4) VALUE "CP". 02 FILLER PIC X(4) VALUE "HL".

Page 72: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

5-28 47 F2 37UJ Rev00

77 TOTAL-MAN PIC 9(4)V99.77 TOTAL-NUM PIC 9(7)V99.77 W-ATTRIBUT PIC X(6).77 W-LEVEL PIC X.01 MESS-AREA. 02 FILLER PIC X(8).01 SALESI. COPY SALESI.01 SALES-SV. COPY SALESV.01 SALESR. COPY SALESR.COMMUNICATION SECTION.CD IQ INPUT QUEUE ISQ MESSAGE DATE IMD MESSAGE TIME IMT SOURCE ISS TEXT LENGTH ITL END KEY IEK STATUS KEY ISK COUNT IMC.01 RIQ.02 RISQ PIC X(12).02 RISU PIC X(36).02 RIMD PIC 9(6).02 RISS PIC X(12).02 RITL PIC 9(4).02 RIEK PIC X.02 RISK PIC XX.02 RIMC PIC 9(6).CD OQ OUTPUT DESTINATION COUNT ODC TEXT LENGTH OTL STATUS KEY OSK ERROR KEY OEK DESTINATION OSD.01 ROQ. 02 RODC PIC 9(4). 02 ROTL PIC 9(4). 02 ROSK PIC XX. 02 ROEK PIC X. 02 ROSD. 03 RNET PIC X(4). 03 RTRM PIC X(4). 03 RTYP PIC X(3). 03 RNUM PIC X.PROCEDURE DIVISION.PROG-STAR. MOVE "CONSOLE" TO ISQ OSD. MOVE 1 TO ODC. MOVE 1 TO OTL. MOVE "3" TO W-LEVEL. MOVE ALL "S" TO SALES-W. MOVE ALL SPACES TO SALESR.CALL "CDGET" USING ROQ SALESI W-LEVEL.IF OSK = "A4" GO TO END-PROG.

Page 73: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Mode plein écran : interface SDPI

47 F2 37UJ Rev00 5-29

MAIN-LOOP. MOVE ALL SPACES TO SALESR. MOVE ALL "S" TO SALES-V. CALL "CDRECV" USING RIQ SALESR W-LEVEL SALES-SV. IF SLASH-V = "R" AND SLASH = "/" GO TO END-PROG.MOVE ALL SPACES TO SALE-TITLE-V SLASH-V REP-CODE-V REP-NAME-V.MOVE 0 TO ERROR-INDICATOR.MOVE ZERO TO TOTAL-NUM.PERFORM TOTAL-D THRU TOTAL-F VARYING I FROM 1 BY 1 UNTIL I > 7.IF ERROR-INDICATOR = 1 MOVE "1" TO W-LEVEL CALL "CDATTR" USING ROQ SALES-SW W-ATTRIB W-LEVEL MOVE "3" TO W-LEVEL MOVE SPACES TO GRAND-TOTAL-V CALL "CDATTL" USING ROQ SALES-SV ATTRIBUTE W-LEVEL MOVE SALES-V TO SALES-W GO TO MAIN-LOOPELSE MOVE "1" TO W-LEVEL MOVE ALL "S" TO SALES-W CALL "CDATTR" USING ROQ SALES-SW W-ATTRIB W-LEVEL PERFORM PREP-SEND THRU END-PREP-SEND VARYING J FROM 1 BY 1 UNTIL J > 7 MOVE "S" TO GRAND-TOTAL-V MOVE TOTAL-NUM TO GRAND-TOTAL MOVE "3" TO W-LEVEL CALL "CDSEND" USING ROQ SALESR W-LEVEL SALES-SV MOVE "S" TO SLASH-V CALL "CDRECV" USING RIQ SALESR W-LEVEL SALES-SV.IF SLASH-V = "R" AND SLASH = "/" GO TO END-PROG.MOVE "1" TO W-LEVEL.CALL "CDRELS" USING ROQ W-LEVEL.MOVE ALL "S" TO SALES-V.MOVE ALL SPACES TO SALESR.MOVE "3" TO W-LEVEL.CALL "CDGET" USING ROQ SALESI W-LEVEL.GO TO MAIN-LOOP.END-PROG. STOP RUN.TOTAL-D. IF PRODUCT-V (I) NOT = "R" GO TO TOTAL-NR. IF PRODUCT-CODE-V (I) = "R" AND QUANTITY-V (I) = "R" AND PRICE-V (I) = "R" MULTIPLY QUANTITY (I) BY PRICE (I) GIVING TOTAL-MAN MOVE TOTAL-MAN TO TOTAL (I) ADD TOTAL-MAN TO TOTAL-NUM MOVE ALL SPACES TO SALE-LINES-V (I) GO TO TOTAL-F.

Page 74: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

5-30 47 F2 37UJ Rev00

TOTAL-NR. IF PRODUCT-CODE-V (I) = "S" AND QUANTITY-V (I) = "S" AND PRICE-V (I) = "S" MOVE ALL SPACES TO SALE-LINES-V (I) GO TO TOTAL-F.TOTAL-ERROR. MOVE 1 TO ERROR-INDICATOR. MOVE ALL "S" TO SALE-LINES-V (I).TOTAL-F. EXIT.PREP-SEND. IF SALE-LINES (J) = SPACES MOVE ALL SPACES TO SALE-LINES-V (J)ELSE MOVE ALL "S" TO SALE-LINES-V (J).END-PREP-SEND. EXIT.

Page 75: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

47 F2 37UJ Rev00 6-1

6. Primitives diverses

Les primitives de service présentées ci-après ont pour fonction d'aider l'utilisateur àémettre une requête au terminal, ou à obtenir des informations sur le terminal sur lequel aété activé le programme interactif.

6.1 H_QUERY (REQUÊTE AU TERMINAL)

Objet

H_QUERY permet d'émettre ou de réémettre une requête au terminal jusqu'à l'envoi enretour d'une chaîne de caractères signifiant YES (oui) ou NO (non) dans la languesélectionnée. Cette primitive utilise les variables système #YES et #NO à cet effet.

Syntaxe

$H_QUERY i_carn LENGTH=i_bf15 REPLY=ov_car1;

Paramètres

i_carn Texte de la requête.

LENGTH Longueur du texte (entre 1 et 255 caractères).

REPLY Zone de réception de la réponse traduite: 1 pour YES et 0pour NO.

Codes retour

Déroulement normal :

DONE

Déroulement anormal :

ARGERR Argument incorrect (longueur incorrecte).INDERR Variable système #YES ou #NO vide.

Page 76: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

6-2 47 F2 37UJ Rev00

6.2 H_DCTNATTR (DÉCLARATION DES ATTRIBUTS)

Objet

La primitive H_DCTNATTR sert à déclarer la structure remplie par la primitiveH_TNATTR.

Syntaxe

$H_DCTNATTR [PREFIX=l_identificateur16] [ATTRIB=l_car];

Paramètres

PREFIX Chaîne de caractères servant de préfixe au nom de lastructure et à celui de chacune des différentes donnéesélémentaires. Implicitement, cette chaîne est "H_". ATTRIBspécifie les attributs de la structure. Il n'y a pas d'attributsimplicites.

Commentaires

Cette primitive renvoie toutes les informations concernant le terminal depuis lequel leprogramme interactif a été lancé. Ces informations ne sont valables que pour IOF="01"X.

Les paramètres LINE_LENGTH et PAGE_LENGTH correspondent aux longueurslogiques définies par les variables système correspondantes. Ces valeurs peuvent êtreinférieures ou égales aux longueurs réelles prévues pour le terminal.

Page 77: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Primitives diverses

47 F2 37UJ Rev00 6-3

Exemple

La macro $H_DCTNATTR génère la structure suivante :

/*------ $H_DCTNATTR; *V* */

DCL 1 H_TNATTR 2 H_IOF BIT(8), /* 00: traitement par lots, 01: IOF */ 2 H_MODEL BIT(16), /* N° de modèle */ 2 H_DVTYPE, 3 H_DISPLAY BIT(1), /* Terminal écran */ 3 H_KEYBRD BIT(1), /* Clavier disponible */ 3 * BIT(6), 2 H_LINE_LENGTH LOGBIN(8), /* Longueur de ligne du terminal */ 2 H_PAGE_LENGTH LOGBIN(8), /* Hauteur de page du terminal */ 2 H_ENV_FLAGS, 3 * BIT(1), 3 H_FORM_SUPPORT BIT(1), /* Utilisable en mode FORMS */ 3 * BIT(30), 2 * CHAR(12), 2 H_DVFEATR, 3 * BIT(2), 3 H_ROLLUP BIT(1), 3 H_WRAPAROUND BIT(1), 3 * BIT(2), 3 H_AUTOLF BIT(1), /* Interligne automatique après entrée */ 3 H_LINFOLD BIT(1), /* Pliage de ligne automatique */ 3 * BIT(6), 3 H_HTAB BIT(1), /* Tabulation horizontale possible */ 3 H_VTAB BIT(1), /* Tabulation verticale possible */ 2 * CHAR(8); 2 * CHAR(8);

Page 78: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

6-4 47 F2 37UJ Rev00

6.3 H_TNATTR (ATTRIBUTS DU TERMINAL)

Objet

La primitive H_TNATTR permet de déterminer le mode d'exécution (traitement par lots ouinteractif). En interactif, H_TNATTR renvoie toutes les informations concernant le terminalà partir duquel le programme a été lancé.

Syntaxe

$H_TNATTR o_structure;

Paramètres

o_structure Nom de la structure dans laquelle seront renvoyées lesinformations. Cette structure doit avoir été déclarée au moyende la primitive H_DCTNATTR.

Codes retour

Déroulement normal :

DONE

Déroulement anormal :

Néant.

Page 79: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

47 F2 37UJ Rev00 i-1

Index

#

#CSETvariable système 3-3

A

activationgrille 5-3

APPENDmode 5-3

ASGnaffectation de fichier 4-7

C

caractèresjeux 3-1

CDATTLroutine 5-20

CDATTRroutine 5-17

CDFIDIroutine 5-22

CDGETroutine 5-12

CDMECHroutine 5-23

CDPURGEroutine 5-16

CDRECVroutine 5-10

CDRELSroutine 5-15

CDSENDroutine 5-7

compatibilité avec traitement par lots 1-1CSET

variable système 3-3

D

DEFndéfinition de fichier 4-8

E

éditémode 4-3, 4-6

entrée 5-5mode édité 4-6mode transparent 4-6

ERASEmode 5-3

G

GCLaffectation de terminaux 4-7

GPLprimitives 4-9

grilleactivation 5-3

Page 80: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

i-2 47 F2 37UJ Rev00

H

H_CLOSEprimitive 4-16

H_DCTNATTRprimitive 6-2

H_FDprimitive 4-9

H_GETprimitive 4-13

H_OPENprimitive 4-12

H_PUTprimitive 4-15

H_QUERYprimitive 6-1

H_TNprimitive 4-1, 4-17

H_TNATTRprimitive 6-4

I

interface GCL 1-5invite

normale 4-2temporaire 4-3

J

jeu de caractèresarabes 3-1C094 3-1C101 3-1C113 3-1C114 3-1C118 3-1chinois 3-1cyrilliques 3-1EBCDIC 3-1grecs 3-1PLE (Pluri Lingual East) 3-1PLW (Pluri Lingual West) 3-1

L

langages de programmation 1-2ligne

mode 1-4, 2-1

M

MAINTAIN_FORM 1-5, 5-1mode

C101 3-4

O

outils de programmation 1-2OVERLAY

mode 5-3

P

PLE (Pluri Lingual East) 3-4plein écran

mode 1-4, 2-1, 5-1PLW (Pluri Lingual West) 3-4POPUP

mécanisme 5-3préfixe 4-2primitive

GPL 4-9TAM 4-9

Q

quarantaine 4-2

S

SDPI (Standard Device ProgrammaticInterface) 5-1

instructions COBOL 5-6sortie 5-4

mode édité 4-3mode transparent 4-5

SPDI (Standard Device ProgrammaticInterface) 2-2suivi

FORMS 5-5

Page 81: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Index

47 A2 37UJ Rev00 i-3

T

TAM (Terminal Access Method) 2-1, 4-1primitives 4-9

terminal 1-3, 2-1texte

mode 2-1transparent

mode 4-5, 4-6

W

WINDOWmode 5-3

Page 82: Gestion des travaux et IOF Bull DPS 7000 Manuel du programmeursupport.bull.com/ols/product/system/gcos7/gcos7-com/g7-dps7000/doc... · Manuel du programmeur IOF iv 47 F2 37UJ Rev00

Manuel du programmeur IOF

i-4 47 F2 37UJ Rev00