Hi everyone,
After bringing the code from PC to Z/OS using IND$FILE, the compiler produces the next messages
CCN5825 (W) The character "\xba" is not allowed.
CCN5825 (W) The character "\xbb" is not allowed.
These characters are '[' and ']' in EBCDIC 037 codepage and are shown properly in ISPF.
I tried different EBCDIC 1047 codepage, but in the ISPF they look improperly, but the messages are still the same.
I read the previous post about this issue, but changing terminal type as advised didn't help
( forum-f12/topic4056.html )
I wonder what EBCDIC code page the C/C++ Z/OS compiler is using?
I tried different code pages for PC <->Host combinations, like
ANSI(WinLatin1)(1252) <-> English US(037) etc., and still getting same messages.
Any advise is appreciated.
Thanks!
CCN5825 message while compiling the code.
- sergeyken
- Posts: 458
- Joined: Wed Jul 24, 2019 10:12 pm
- Skillset: Assembler, JCL, Utilities, PL/I, C/C++, DB2, SQL, REXX, COBOL, etc. etc. etc.
- Referer: Internet search
Re: CCN5825 message while compiling the code.
There is a problem with incompatible character codes for square brackets. X'BA' and X'BB' are looking as square brackets on the screen, but not for C++ compiler...
The workaround is, using triplexes(?) if I remember correctly.
Replace all X'BA' (looking as '[') with '??(', and all X'BB' (looking as ']') with '??)'
Doesn't look attractive, but is working...
The workaround is, using triplexes(?) if I remember correctly.
Replace all X'BA' (looking as '[') with '??(', and all X'BB' (looking as ']') with '??)'
Doesn't look attractive, but is working...
Code: Select all
char line??(100??);
int array??( 1000, 20 ??);
Javas and Pythons come and go, but JCL and SORT stay forever.
Re: CCN5825 message while compiling the code.
Thanks, Sergey. This seems to be the only way to do it.
In manual they are called trigraphs, and the suggestion is similar to yours.
Is any way to replace all occurrences of the '\xba' with '??(' in the code with a single command?
Thanks!
In manual they are called trigraphs, and the suggestion is similar to yours.
Is any way to replace all occurrences of the '\xba' with '??(' in the code with a single command?
Thanks!
- sergeyken
- Posts: 458
- Joined: Wed Jul 24, 2019 10:12 pm
- Skillset: Assembler, JCL, Utilities, PL/I, C/C++, DB2, SQL, REXX, COBOL, etc. etc. etc.
- Referer: Internet search
Re: CCN5825 message while compiling the code.
valeca wrote:Is any way to replace all occurrences of the '\xba' with '??(' in the code with a single command?
Thanks!
While using ISPF Edit option, you can use the commands (both at once):
Code: Select all
Change ALL X'BA' '??(' ; C ALL X'BB' '??)'
Some companies have installed their own command scripts, to allow applying any Edit subcommand to all members of the PDS at once.
I remember I used such command (from the Member List screen):
Code: Select all
Global C ALL '[' '??('
Javas and Pythons come and go, but JCL and SORT stay forever.
- sergeyken
- Posts: 458
- Joined: Wed Jul 24, 2019 10:12 pm
- Skillset: Assembler, JCL, Utilities, PL/I, C/C++, DB2, SQL, REXX, COBOL, etc. etc. etc.
- Referer: Internet search
Re: CCN5825 message while compiling the code.
If a command like GLOBAL is not available, but you have hundreds or thousands of C-members, there is also batch solution available with only standard utilities: IEBPTPCH+SORT+IEBUPDTE, to do this task for the whole library in one pass.
Javas and Pythons come and go, but JCL and SORT stay forever.
Re: CCN5825 message while compiling the code.
Sounds good. Thanks.
The company uses PF buttons to replace these chars, but replacing all at once is the way to go.
Thanks for sharing!
The company uses PF buttons to replace these chars, but replacing all at once is the way to go.
Thanks for sharing!
Re: CCN5825 message while compiling the code.
sergeyken wrote:If a command like GLOBAL is not available, but you have hundreds or thousands of C-members, there is also batch solution available with only standard utilities: IEBPTPCH+SORT+IEBUPDTE, to do this task for the whole library in one pass.
Sergey, any chance to share JCL? Will save me time

- sergeyken
- Posts: 458
- Joined: Wed Jul 24, 2019 10:12 pm
- Skillset: Assembler, JCL, Utilities, PL/I, C/C++, DB2, SQL, REXX, COBOL, etc. etc. etc.
- Referer: Internet search
Re: CCN5825 message while compiling the code.
valeca wrote:sergeyken wrote:If a command like GLOBAL is not available, but you have hundreds or thousands of C-members, there is also batch solution available with only standard utilities: IEBPTPCH+SORT+IEBUPDTE, to do this task for the whole library in one pass.
Sergey, any chance to share JCL? Will save me timeThanks.
I did such manipulations several times in my life (not for square brackets in C++, but also global text update in PDS), when GLOBAL command was not available.
I don't have it with me right now (they all left at my previous companies), but I can reproduce it, after a while.
The total size of such JCL procedure is about 100 JCL lines, or so.
Javas and Pythons come and go, but JCL and SORT stay forever.
Re: CCN5825 message while compiling the code.
Sounds promising
Thanks!

- sergeyken
- Posts: 458
- Joined: Wed Jul 24, 2019 10:12 pm
- Skillset: Assembler, JCL, Utilities, PL/I, C/C++, DB2, SQL, REXX, COBOL, etc. etc. etc.
- Referer: Internet search
Re: CCN5825 message while compiling the code.
Another solution may be: to make only temporary updates of square brackets encoding at the time of compilation. In this case the source code will remain attractive for reading in the library, but is modified for C++ compiler needs just before its compilation. You can use either your own compilation procedures, or request modification of the common company-wide procedures.
This modification is fully backward compatible: those modules already prepared for using trigraphs will be handled seamlessly.
This modification is fully backward compatible: those modules already prepared for using trigraphs will be handled seamlessly.
Code: Select all
//SUPERCPP PROC SOURCE='library(member)'
//*=========================================================
//PREPARE EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DISP=SHR,DSN=&SOURCE
//SORTOUT DD DISP=(NEW,PASS),SPACE=(TRK,(50,50)),DSN=&&NEWCODE
//SYSIN DD *
SORT FIELDS=COPY
OUTREC FINDREP=(INOUT=(C'[',C'??(',
C']',C'??)'))
END
//*=========================================================
//CPP EXEC PGM=your-C-compiler
// . . . . . . . . . . .
//SYSIN DD DISP=(OLD,DELETE),DSN=&&NEWCODE
// . . . . . . . .
//*=========================================================
// PEND
Javas and Pythons come and go, but JCL and SORT stay forever.
-
- Similar Topics
- Replies
- Views
- Last post
-
-
SYNCSORT DATASORT message SYT076E
by f1_lemaner » Thu Dec 23, 2021 11:12 pm » in DFSORT/ICETOOL/ICEGENER - 5
- 1870
-
by f1_lemaner
View the latest post
Fri Dec 24, 2021 2:23 pm
-
-
-
How can I copy message queue files (LGMSG,SHMSG) in V9R1
by futohomok » Thu Jul 27, 2023 5:54 pm » in IMS DB/DC - 6
- 2073
-
by futohomok
View the latest post
Thu Aug 03, 2023 1:21 pm
-
-
- 0
- 3136
-
by enrico-sorichetti
View the latest post
Fri Apr 01, 2022 6:00 pm
-
- 4
- 9289
-
by grasshopper
View the latest post
Mon Jul 26, 2021 9:17 am
-
- 1
- 7584
-
by sergeyken
View the latest post
Mon Jul 26, 2021 5:53 am