On Tuesday, 11/25/2008 at 11:29 EST, "Imler, Steven J" 
<[EMAIL PROTECTED]> wrote:
> To accommodate this, I execute this EXEC from my PROFILE EXEC:
> 
> 00000 * * * Top of File * * *
> 00001 /* Translate x'BA' x'AD' and x'BB' x'BD' */
> 00002
> 00003 'SET OUTPUT AD' 'BA'x
> 00004 'SET OUTPUT BD' 'BB'x
> 00005 'SET INPUT BA AD'
> 00006 'SET INPUT BB BD'
> 00007 * * * End of File * * *

That was needed in the Before Times, when you couldn't change the code 
page of your terminal (easily and without a new keyboard).  These SET 
commands are now the root of all evil.  People don't remember them, they 
retire, the knowledge is lost, civilization falls.  Feh.  Not to mention 
that you still have to know which code pages are in use, both on your 
terminal and in the file in question.

In code page 37, the brackets are at (0xBA, 0xBB).
In code page 500 (the default in CMS pipelines, IIRC), they are at 
(0x4A,0x5A)
In code pages 924 and 1047 (ISO), they are at (0xAD, 0xBD).  Here lies the 
origin of SET INPUT/SET OUTPUT.

In The Beginning, the old 1403 print trains placed the square brackets at 
these same code points.  When creating printed output, WYSIWYG of the day 
meant using SET INPUT/OUTPUT to see the brackets since the 3270s of the 
day didn't put the   A lot of folks who used SCRIPT/GML couldn't be 
troubled to use &lbrk./&rbrk.  (sigh)   Even the CU-attached 3270 printers 
had square brackets at the 1403 locations, not the 3270 locations! 

The C/C++ compiler expects the brackets to be there, too, but you can 
change the code page used by the C/C++ compiler through use of #pragma 
directives.

(The brackets weren't the only reason for SET INPUT/OUTPUT, I'm sure, as 
there are other stray characters, but they were a powerful motivator for 
its use back in the day.)

Beware that changing your terminal code page from 37 has other side 
effects.  Logical Not looks like a caret.  IT'S OK.  JUST BREATHE.  Just 
make sure Shift-6 on your keyboard generates the caret.  And then stop 
using it.  Use <> or /= instead.

Alan Altmark
z/VM Development
IBM Endicott

Reply via email to