1

Some characters that I enter in editor displayed not identical to those on keyboard. So I have error messages like this:

Character with decimal value 176 does not belong to the PL/I character set. It will be ignored.

when trying to compile PL/I programm.

Sometimes character can displayed even properly, but I still have similar error message.

Examples of this characters are character that represents logical OR, logical NOT.

How to solve this problem? Is it a settings of editor, or settings of program IBM Personal Communications? Or may be it is better to enter 16-code of those symbols (how to do that if possible, and how to determine what code I need)?

zer_ik
  • 410
  • 1
  • 4
  • 14
  • 1
    Are you using the 3270 ISPF? The ISPF GUI client? RD/z? Which code page is the compiler expecting? Which code page is ISPF (presuming you're using it) using? Which code page is your 3270 emulator (presuming you're using one) using? – cschneid Jan 22 '17 at 16:48
  • It sounds like whatever you are using to input is using the broken vertical bar versus the vertical bar. This goes along with @cschneid's comment. Also, some European code sets swap the vertical bar and exclamation point (German is a good example). Please give us more information. – zarchasmpgmr Jan 22 '17 at 23:48

1 Answers1

2

There is a lot of places where this can go wrong...

  1. The keyboard-driver on your client machine has to be configured correctly for the keyboard you use. But if other programs work correctly and only the mainframe emulation behaves strangely then this should be OK.
  2. The PCOMM-session has to be configured to use the correct Host-codepage. Ask your mainframe technical guys what is used and configure your terminal emulation accordingly. Since we don't use PCOMM I can't help you with this, you will have to look around the session settings a bit.
  3. In PL/I most characters are taken from the range that is identical in most EBCDIC codepages. The main exceptions are the characters for the OR- and NOT-operators which may differ. IBM-default for OR is '4F'X, which is a pipe-character '|' in codepage 1140 (English), but an exclamation mark '!' in codepage 1141 (German). Default for NOT is '5F'X which is a logical NOT-sign '¬' in 1140 but a caret '^' in 1141.
    Since these problems are well known the compiler offers two options OR() and NOT() to set the characters to be used for these operators. So you might look in your compile-listing whether these parameters are set in your installation and what their values are since these are the characters you have to use.
piet.t
  • 11,718
  • 21
  • 43
  • 52
  • But having to type OR or NOT is so much extra effort, when you can just hope to be able to paste something from SO instead :-) – Bill Woodger Jan 24 '17 at 07:55
  • @BillWoodger The problem is that in your sourcecode you have to use the operator-characters since `OR` and `NOT` are not keywords in PL/I (hope I did understand your comment right). If the `PROCESS`-compile-option is in effect one might think about setting the OR- and NOT-option on a per-program basis using a `PROCESS`-statement. – piet.t Jan 24 '17 at 08:13
  • Thanks. I misunderstood the OR() and NOT(). Compiler options to change the symbol that is use as the or/not operator? And you don't have the possibility to type OR or NOT in preference to the operators, because OR and NOT don't exist. Getting there... – Bill Woodger Jan 24 '17 at 10:50