Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Abbildung der Quellprogramme

&pagelevel(3)&pagelevel

In diesem Abschnitt sind folgende Quellprogramme enthalten:

Nicht-ILCS-Assemblerprogramm CALLINTF

CALLINTF CSECT
         TITLE 'CALL TO ILCSINTF'
CALLINTF AMODE ANY
CALLINTF RMODE ANY
R15      EQU   15
R14      EQU   14
R12      EQU   12
R13      EQU   13
R3       EQU   3
R4       EQU   4
R0       EQU   0
         PRINT NOGEN
         BALR  R3,0
         USING *,R3
* Aufruf von IT0INITS
* Register 0 muss den Wert 0 enthalten (keine Parameter)
         XR    R0,R0
         L     R15,INIADDR
         BASR  R14,R15
* Abspeichern der PCD-Adresse in die Save Area
         ST    R0,ILCVPCD
* Laden der Save Area Adresse
         LA    R13,ILCVAI
* Aufruf von ILCSINTF, um die C- und COBOL-Module zu binden 
* (mit dem BIND-Makro) und das erste Mal auszuführen
         L     R15,INTFADDR
         BASR  R14,R15
         TERM
* Definition der Adresse von IT0INITS
INIADDR  DC    V(IT0INITS)
* Definition der Adresse von ILCSINTF
INTFADDR DC    V(ILCSINTF)
         PRINT GEN
* Definition der Save Area
         IT0VSA ILC
         DROP  R3
         END

ILCS-Assemblerprogramm ILCSINTF

ILCSINTF START
         PRINT GEN
ILCSINTF @ENTR TYP=E,AMODE=ANY,RMODE=ANY,VERS=000,AUTHOR=LEROY,        X
               FUNCT='ILCSINTF',TITLE=YES,ILCS=YES
* Test, ob die Module bereits eingebunden sind
         L     R15,CMODADDR
         @IF   ZE
         LTR   R15,R15
         @THEN
****
* Pro Sprache und Modul wird ein eigenes BIND-Makro abgesetzt
****
* Laden des C-Moduls
         BIND  SYMBOL=PRNT,SYMBLAD=CMODADDR,ALTLIB=YES,MSG=ERROR
* Laden des COBOL-Moduls
         BIND  SYMBOL=COBUPRO,ALTLIB=YES,MSG=ERROR
* Inititialisieren der C- und COBOL-Sprachumgebung durch Aufruf
* der ILCS-Routine IT0ININ mit dem Strukturmakro @ININ
         @ININ
         @BEND
* Aufruf des C-Moduls
         @PASS ADDR=CMODADDR
         @EXIT
* Definition der Adresse des C-Moduls
CMODADDR DS    F
         @END  LTORG=YES,DROP=()
         END

ILCS-C-Programm CUPRO

#include <stdio.h>
extern void cobupro(void);
void prnt()
{
  printf("CUPRO before\n");
  cobupro();
  printf("CUPRO after1\n");
  cobupro();
  printf("CUPRO after2\n");
}

ILCS-COBOL-Programm COBUPRO

IDENTIFICATION DIVISION.
PROGRAM-ID. COBUPRO.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
    TERMINAL IS T.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
DIALOG SECTION.
DIAL.
    DISPLAY "COBUPRO WAS HERE" UPON T.
BYEBYE.
    EXIT PROGRAM.