Loading...
Select Version
&pagelevel(3)&pagelevel
In diesem Abschnitt sind folgende Quellprogramme enthalten:
- Nicht-ILCS-Assemblerprogramm CALLINTF
- ILCS-Assemblerprogramm ILCSINTF
- ILCS-C-Programm CUPRO
- ILCS-COBOL-Programm COBUPRO
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.