version 0.73.0

This commit is contained in:
2023-07-14 12:15:30 -03:00
parent 110d8a0419
commit 945dd1a809
1466 changed files with 374820 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
IDENTIFICATION DIVISION.
PROGRAM-ID. PTEST01.
AUTHOR. Bernard GIROUD.
INSTALLATION. Tiny Cobol Compiler Project.
DATE-WRITTEN. 05-AUG-2000.
DATE-COMPILED.
SECURITY. NONE.
ENVIRONMENT DIVISION.
* INPUT-OUTPUT SECTION.
* FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 PARM01 PIC X(20) VALUE "ABCDEFGHIJ0123456789".
01 PARM02.
05 FILLER PIC X(4) VALUE "ABCD".
05 FILLER PIC X VALUE LOW-VALUE.
01 PARM03.
05 FILLER PIC X(4) VALUE "0123".
05 FILLER PIC X VALUE LOW-VALUE.
01 PARM04.
05 FILLER PIC X(4) VALUE "EFGH".
05 FILLER PIC X VALUE LOW-VALUE.
01 PARM05.
05 FILLER PIC X(4) VALUE "4567".
05 FILLER PIC X VALUE LOW-VALUE.
01 RES1.
05 EPARM02 PIC X(4).
05 EPARM03 PIC X(4).
05 EPARM04 PIC X(4).
05 EPARM05 PIC X(4).
PROCEDURE DIVISION.
CALL "STEST01" USING PARM01.
DISPLAY "C002:(" PARM01 "):(9876543210JIHGFEDCBA):"
"Call by reference x(20).".
MOVE "ABCDEFGHIJ0123456789" TO PARM01.
CALL "STEST03" USING BY CONTENT PARM01.
DISPLAY "C004:(" PARM01 "):(ABCDEFGHIJ0123456789):"
"Call by content x(20).".
CALL "STEST910" USING PARM02 BY CONTENT PARM03
BY REFERENCE PARM04 BY CONTENT PARM05.
MOVE PARM02 TO EPARM02.
MOVE PARM03 TO EPARM03.
MOVE PARM04 TO EPARM04.
MOVE PARM05 TO EPARM05.
DISPLAY "C005:(" RES1 "):(AB9D0123EF9H4567):"
"Call by ref and by content in alternance x(4).".
STOP RUN.
+68
View File
@@ -0,0 +1,68 @@
IDENTIFICATION DIVISION.
PROGRAM-ID. PTEST02.
AUTHOR. Bernard GIROUD.
INSTALLATION. Tiny Cobol Compiler Project.
DATE-WRITTEN. 05-AUG-2000.
DATE-COMPILED.
SECURITY. NONE.
ENVIRONMENT DIVISION.
* INPUT-OUTPUT SECTION.
* FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 G-PARM01.
05 PARM01 PIC X(20) VALUE "TEST".
05 FILLER PIC X VALUE LOW-VALUE.
01 PARM03 PIC S9(9) COMP VALUE 0.
01 G-PARM02.
05 PARM02 PIC X(3).
05 FILLER PIC X VALUE LOW-VALUE.
01 G-PARM04.
05 PARM04 PIC X(3).
05 FILLER PIC X VALUE LOW-VALUE.
01 PARM05 PIC S9(18) COMP.
01 RPARM05 REDEFINES PARM05.
05 RPAR05L PIC S9(9) COMP.
05 RPAR05H PIC S9(9) COMP.
01 WRES01 PIC S9(4) COMP.
01 WRES02 PIC S9(9) COMP.
01 WERES01 PIC 9(4).
01 WERES02 PIC 9(9).
01 WS-COB EXTERNAL.
05 WS-B4 PIC S9(9) COMP.
05 WS-B2 PIC S9(4) COMP.
05 WS-CHAR3 PIC X(3).
PROCEDURE DIVISION.
MOVE "ABCDEFGHIJ0123456789" TO PARM01.
MOVE "XYZ" TO PARM02.
MOVE "123" TO PARM04.
MOVE 0 TO PARM03.
CALL "STEST901" USING G-PARM01.
MOVE 3 TO PARM03.
CALL "STEST902" USING BY VALUE PARM03.
CALL "STEST903" USING BY VALUE 5.
CALL "STEST904" USING G-PARM02 BY VALUE PARM03 5
BY REFERENCE G-PARM02 G-PARM04.
CALL "STEST905" USING BY VALUE 1234567890123.
MOVE 1234567890123 TO PARM05.
CALL "STEST906" USING BY VALUE PARM05.
CALL "STEST907" USING BY VALUE 5 RETURNING WRES01.
MOVE WRES01 TO WERES01.
DISPLAY "C201:(" WERES01 "):(0008):Returning short".
CALL "STEST908" USING BY VALUE 5 RETURNING WRES02.
MOVE WRES02 TO WERES02.
DISPLAY "C202:(" WERES02 "):(000000008):Returning long".
* CALL "STEST909" USING BY VALUE 5 RETURNING PARM05.
MOVE "USD" TO WS-CHAR3.
MOVE 1234 TO WS-B2.
MOVE 6789 TO WS-B4.
CALL "STEST930".
STOP RUN.
+46
View File
@@ -0,0 +1,46 @@
IDENTIFICATION DIVISION.
PROGRAM-ID. PTEST03.
AUTHOR. Bernard GIROUD.
INSTALLATION. Tiny Cobol Compiler Project.
DATE-WRITTEN. 03-SEP-2000.
DATE-COMPILED.
SECURITY. NONE.
ENVIRONMENT DIVISION.
* INPUT-OUTPUT SECTION.
* FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 W-IDX PIC 99.
01 W-ELEM1 PIC X(5).
01 W-BINARY PIC S9(9) COMP.
01 W-GROUP1.
05 FILLER PIC X(3).
05 W-ELEM2 PIC X(4).
05 W-GTAB.
10 W-CHAR OCCURS 4 PIC X.
01 WFUNC PIC 9.
01 WVAL PIC 99.
PROCEDURE DIVISION.
MOVE "ABCD" TO W-ELEM1.
MOVE "CDEF" TO W-ELEM2.
MOVE 4 TO W-BINARY.
DISPLAY "MR01:(" W-ELEM1 "):(ABCD ):ELEM1".
DISPLAY "MR02:(" W-ELEM2 "):(CDEF):ELEM2".
MOVE SPACE TO W-GTAB.
MOVE "X" TO W-CHAR(2).
DISPLAY "MR03:(" W-GTAB "):( X ):OCCURS LIT".
MOVE SPACE TO W-GTAB.
MOVE 3 TO W-IDX.
MOVE "X" TO W-CHAR(W-IDX).
DISPLAY "MR04:(" W-GTAB "):( X ):OCCURS VAR".
MOVE 1 TO WFUNC.
MOVE 2 TO WVAL.
CALL "STEST02" USING WFUNC WVAL.
CALL "STEST02" USING WFUNC WVAL.
MOVE 2 TO WFUNC.
CALL "STEST02" USING WFUNC WVAL.
STOP RUN.
+31
View File
@@ -0,0 +1,31 @@
IDENTIFICATION DIVISION.
PROGRAM-ID. PTEST04.
ENVIRONMENT DIVISION.
* INPUT-OUTPUT SECTION.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 PARM01 PIC X VALUE " ".
01 G-PARM04.
05 PARM04 PIC X(3).
05 FILLER PIC X VALUE LOW-VALUE.
01 WRES01 PIC S9(4) COMP.
01 WRES02 PIC S9(9) COMP.
01 WERES01 PIC 9(4).
01 WERES02 PIC 9(9).
PROCEDURE DIVISION.
MOVE FUNCTION LENGTH(G-PARM04) TO WERES01.
DISPLAY "C401:(" WERES01 "):(0004):Length of group".
MOVE FUNCTION ORD(PARM01) TO WERES01.
DISPLAY "C402:(" WERES01 "):(0033):Ord of var space".
MOVE FUNCTION ORD("A") TO WERES01.
DISPLAY "C403:(" WERES01 "):(0066):Ord of lit A".
* MOVE FUNCTION CHAR(67) TO PARM01.
* DISPLAY "C404:(" PARM01 "):(B):Char of lit 67".
STOP RUN.
+38
View File
@@ -0,0 +1,38 @@
IDENTIFICATION DIVISION.
PROGRAM-ID. PTEST05.
AUTHOR. Bernard GIROUD.
INSTALLATION. Tiny Cobol Compiler Project.
DATE-WRITTEN. 05-AUG-2000.
DATE-COMPILED.
SECURITY. NONE.
ENVIRONMENT DIVISION.
* INPUT-OUTPUT SECTION.
* FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 PARM01 PIC X(20) VALUE "ABCDEFGHIJ0123456789".
01 PARM02.
05 FILLER PIC X(4) VALUE "ABCD".
05 FILLER PIC X VALUE LOW-VALUE.
01 PARM03.
05 FILLER PIC X(4) VALUE "0123".
05 FILLER PIC X VALUE LOW-VALUE.
01 PARM04.
05 FILLER PIC X(4) VALUE "EFGH".
05 FILLER PIC X VALUE LOW-VALUE.
01 PARM05.
05 FILLER PIC X(4) VALUE "4567".
05 FILLER PIC X VALUE LOW-VALUE.
01 RES1.
05 EPARM02 PIC X(4).
05 EPARM03 PIC X(4).
05 EPARM04 PIC X(4).
05 EPARM05 PIC X(4).
PROCEDURE DIVISION.
CALL "STEST04" USING PARM01.
CALL "STEST04" USING PARM01.
STOP RUN.
+25
View File
@@ -0,0 +1,25 @@
IDENTIFICATION DIVISION.
PROGRAM-ID. STEST01.
AUTHOR. Bernard GIROUD.
INSTALLATION. Tiny Cobol Compiler Project.
DATE-WRITTEN. 05-AUG-2000.
DATE-COMPILED.
SECURITY. NONE.
ENVIRONMENT DIVISION.
* INPUT-OUTPUT SECTION.
* FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 PARM01 PIC X(20) VALUE "TEST".
LINKAGE SECTION.
01 L-PARM01 PIC X(20).
PROCEDURE DIVISION USING L-PARM01.
DISPLAY "C001:(" L-PARM01 "):(ABCDEFGHIJ0123456789):"
"Call by reference x(20).".
MOVE "9876543210JIHGFEDCBA" TO L-PARM01.
EXIT PROGRAM.
+29
View File
@@ -0,0 +1,29 @@
IDENTIFICATION DIVISION.
PROGRAM-ID. STEST02.
AUTHOR. Bernard GIROUD.
INSTALLATION. Tiny Cobol Compiler Project.
DATE-WRITTEN. 05-AUG-2000.
DATE-COMPILED.
SECURITY. NONE.
ENVIRONMENT DIVISION.
* INPUT-OUTPUT SECTION.
* FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
* 01 WVAL PIC 99 VALUE "05".
01 WVAL PIC 99 VALUE 05.
LINKAGE SECTION.
01 LFUNC PIC 9.
01 LVAL PIC 99.
PROCEDURE DIVISION USING LFUNC LVAL.
IF LFUNC = 1
ADD LVAL TO WVAL
ELSE
DISPLAY "MR05:(" WVAL "):(09):"
"Static counter.".
EXIT PROGRAM.
+25
View File
@@ -0,0 +1,25 @@
IDENTIFICATION DIVISION.
PROGRAM-ID. STEST03.
AUTHOR. Bernard GIROUD.
INSTALLATION. Tiny Cobol Compiler Project.
DATE-WRITTEN. 05-AUG-2000.
DATE-COMPILED.
SECURITY. NONE.
ENVIRONMENT DIVISION.
* INPUT-OUTPUT SECTION.
* FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 PARM01 PIC X(20) VALUE "TEST".
LINKAGE SECTION.
01 L-PARM01 PIC X(20).
PROCEDURE DIVISION USING L-PARM01.
DISPLAY "C003:(" L-PARM01 "):(ABCDEFGHIJ0123456789):"
"Call by content x(20).".
MOVE "9876543210JIHGFEDCBA" TO L-PARM01.
EXIT PROGRAM.
+25
View File
@@ -0,0 +1,25 @@
IDENTIFICATION DIVISION.
PROGRAM-ID. STEST04 INITIAL PROGRAM.
*PROGRAM-ID. STEST04.
AUTHOR. Bernard GIROUD.
INSTALLATION. Tiny Cobol Compiler Project.
DATE-WRITTEN. 05-AUG-2000.
DATE-COMPILED.
SECURITY. NONE.
ENVIRONMENT DIVISION.
* INPUT-OUTPUT SECTION.
* FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 PARM01 PIC X(04) VALUE "TEST".
LINKAGE SECTION.
01 L-PARM01 PIC X(20).
PROCEDURE DIVISION USING L-PARM01.
DISPLAY "C401:(" PARM01 "):(TEST):" "Initial.".
MOVE SPACE TO PARM01.
EXIT PROGRAM.
+45
View File
@@ -0,0 +1,45 @@
#define EC(n) WS_COB.ws_char3[n]
struct {
int ws_b4;
short ws_b2;
char ws_char3[3];
} WS_COB;
void STEST901(char *s) {
printf("C901:(%20s):(ABCDEFGHIJ0123456789):Call by ref from variable\n", s);
}
void STEST902(int v) {
printf("C902:(%d):(3):Call by value from variable\n", v);
}
void STEST903(int v) {
printf("C903:(%d):(5):Call by value from literal\n", v);
}
void STEST904(char * p1, int p2, int p3, char *p4, char *p5) {
printf("C904:(%3s,%d,%d,%3s,%3s):(XYZ,3,5,XYZ,123):Call modes alternance\n",
p1, p2, p3, p4, p5);
}
void STEST905(long long v) {
printf("C905:(%13lld):(1234567890123):Call by value long long literal\n", v);
}
void STEST906(long long v) {
printf("C906:(%13lld):(1234567890123):Call by value long long var\n", v);
}
short STEST907(long v) {
return v+3;
}
int STEST908(long v) {
return v+3;
}
long long STEST909(long v) {
return v+3;
}
void STEST910(char *s1, char *s2, char *s3, char *s4) {
printf("C910:(%4s%4s%4s%4s):(ABCD0123EFGH4567):Call by ref and content in alternance\n", s1, s2, s3, s4);
s1[2]='9'; s2[2]='9'; s3[2]='9';s4[2]='9';
}
void STEST930() {
EC(0) = 'E'; EC(1) = 'U'; EC(2) = 'R';
WS_COB.ws_b2++;
WS_COB.ws_b4++;
printf("C930:(%c%c%c%04d%04d):(EUR12356790):Received in EXTERNAL from Cobol\n", EC(0), EC(1), EC(2), WS_COB.ws_b2, WS_COB.ws_b4);
}
+5
View File
@@ -0,0 +1,5 @@
ptest01:S:Call by default
ptest02:S:Calling C
ptest03:S:Memory references
ptest04:S:Intrinsic functions
ptest05:S:Initial