RE: DSPF Long Shot

"Birgitta Hauser" <Hauser-bRAHsVz2yv4TVIZRl6KS/[email protected]>
Newsgroups gmane.comp.lang.as400.rpg
Message-ID <[email protected]>
Here is also the link to the data structure (in my Github Gist)
https://gist.github.com/BirgittaHauser/15e50a9deb48c354cd43b30344a57c93

Mit freundlichen Grüßen / Best regards

Birgitta Hauser
Modernization – Education – Consulting on IBM i
Database and Software Architect  
IBM Champion since 2020

"Shoot for the moon, even if you miss, you'll land among the stars." (Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok)
"What is worse than training your staff and losing them? Not training them
and keeping them!"
"Train people well enough so they can leave, treat them well enough so they
don't want to. " (Richard Branson)
"Learning is experience … everything else is only information!" (Albert
Einstein)


-----Original Message-----
From: RPG400-L <rpg400-l-bounces-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org> On Behalf Of Birgitta
Hauser
Sent: Thursday, 25 September 2025 17:19
To: 'RPG programming on IBM i' <[email protected]>
Subject: RE: DSPF Long Shot

Here is a list of all display attributes (incl. Hex-Values):
Display attributes without protect between x'20' and x'3F'
Display attributes with protect between x'A1' and x'BF'

DCL-DS  DSColorHex   Qualified;
//Display-Attributes                       
 DSColAll;

  DSColHexFree             Overlay(DSColAll);

    DDSGRN     VarChar(10) Overlay(DSColHexFree)        inz('GRN');
//DDS Attr. Green                          
    Grn        Char(1)     Overlay(DSColHexFree: *Next) inz(X'20');
//Hex Value Green                          
 

    DDSGrnRi   VarChar(10) Overlay(DSColHexFree: *Next) inz('GRNRI');
//DDS Attr. Green Reverse Intense          
    GrnRI      Char(1)     Overlay(DSColHexFree: *Next) inz(X'21');
//Hex Value Green Reverse Intense          
 

    DDSWht     VarChar(10) Overlay(DSColHexFree: *Next) inz('WHT');
//DDS Attr. Green White                    
    Wht        Char(1)     Overlay(DSColHexFree: *Next) inz(X'22');
//Hex Value White                          
 

    DDSWhtRi   VarChar(10) Overlay(DSColHexFree: *Next) inz('WHTRI');
//DDS Attr. White Reverse Intense          
    WhtRI      Char(1)     Overlay(DSColHexFree: *Next) inz(X'23');
//Hex Value White Reverse Intense          
 

    DDSGrnUL   VarChar(10) Overlay(DSColHexFree: *Next) inz('GRNUL');
//DDS Attr. Green Underline                
    GrnUL      Char(1)     Overlay(DSColHexFree: *Next) inz(X'24');
//Hex Value Green Unerline                 
 

    DDSGrnUlRi VarChar(10) Overlay(DSColHexFree: *Next) inz('GRNULRI');
//DDS Attr. Green Underline Rev.Int.       
    GrnUlRi    Char(1)     Overlay(DSColHexFree: *Next) inz(X'25');
//Hex Value Green Underline Rev.Int.       
 

    DDSWhtUl   VarChar(10) Overlay(DSColHexFree: *Next) inz('WHTUL');
//DDS Attr. White Underline                
    WhtUL      Char(1)     Overlay(DSColHexFree: *Next) inz(X'26');
//Hex Value White Underline                
 

    DDSNd      VarChar(10) Overlay(DSColHexFree: *Next) inz('ND');
//DDS Attr. Not Display                    
    ND         Char(1)     Overlay(DSColHexFree: *Next) inz(X'27');
//Hex Value Not Display                    
 

    DDSRed     VarChar(10) Overlay(DSColHexFree: *Next) inz('RED');
//DDS Attr. Red                            
    Red        Char(1)     Overlay(DSColHexFree: *Next) inz(X'28');
//Hex Value Red                            
 

    DDSRedRI   VarChar(10) Overlay(DSColHexFree: *Next) inz('REDRI');
//DDS Attr. Red Reverse Intense            
    RedRI      Char(1)     Overlay(DSColHexFree: *Next) inz(X'29');
//Hex Value Red Reverse Intense            
 

    DDSRedBL   VarChar(10) Overlay(DSColHexFree: *Next) inz('REDBL');
//DDS Attr. Red Blink                      
    RedBL      Char(1)     Overlay(DSColHexFree: *Next) inz(X'2A');
//Hex Value Red Blink                      
 

    DDSRedBLRI VarChar(10) Overlay(DSColHexFree: *Next) inz('REDBLRI');
//DDS Attr. Red Blink Rev.Int.             
    RedBLRI    Char(1)     Overlay(DSColHexFree: *Next) inz(X'2B');
//Hex Value Red Blink Rev.Int.             
 

    DDSRedUL   VarChar(10) Overlay(DSColHexFree: *Next) inz('REDUL');
//DDS Attr. Red Underline                  
    RedUL      Char(1)     Overlay(DSColHexFree: *Next) inz(X'2C');
//Hex Value Red Underline                  
 

    DDSRedULRI VarChar(10) Overlay(DSColHexFree: *Next) inz('REDULRI');
//DDS Attr. Red Underline Rev.Int.         
    RedULRI    Char(1)     Overlay(DSColHexFree: *Next) inz(X'2D');
//Hex Value Red Underline Rev.Int.         
 

    DDSRedBLUL VarChar(10) Overlay(DSColHexFree: *Next) inz('REDBLUL');
//DDS Attr. Red Blink Underline            
    RedBLUL    Char(1)     Overlay(DSColHexFree: *Next) inz(X'2E');
//Hex Value Red Blink Underline            
 

    DDSNotDsp  VarChar(10) Overlay(DSColHexFree: *Next) inz('NOTDSP');
//DDS Attr. Not Display                    
    NotDsp     Char(1)     Overlay(DSColHexFree: *Next) inz(X'2F');
//Hex Value Not Display                    
 

    DDSTrq     VarChar(10) Overlay(DSColHexFree: *Next) inz('TRQ');
//DDS Attr. Turquois                       
    Trq        Char(1)     Overlay(DSColHexFree: *Next) inz(X'30');
//Hex Value Turquois                       
 

    DDSTrqRI   VarChar(10) Overlay(DSColHexFree: *Next) inz('TRQRI');
//DDS Attr. Turquois Rev.Int.              
    TrqRI      Char(1)     Overlay(DSColHexFree: *Next) inz(X'31');
//Hex Value Turquois Rev.Int.              
 

    DDSYlw     VarChar(10) Overlay(DSColHexFree: *Next) inz('YLW');
//DDS Attr. Yellow                         
    Ylw        Char(1)     Overlay(DSColHexFree: *Next) inz(X'32');
//Hex Value Yellow                         
 

    DDSYlwRI   VarChar(10) Overlay(DSColHexFree: *Next) inz('YLWRI');
//DDS Attr. Yellow Reverse Intense         
    YlwRI      Char(1)     Overlay(DSColHexFree: *Next) inz(X'33');
//Hex Value Yellow Reverse Intense         
 

    DDSTrqUl   VarChar(10) Overlay(DSColHexFree: *Next) inz('TRQUL');
//DDS Attr. Turquois underline             
    TrqUL      Char(1)     Overlay(DSColHexFree: *Next) inz(X'34');
//Hex Value Turquois Underline             
 

    DDSTrqUlRi VarChar(10) Overlay(DSColHexFree: *Next) inz('TRQULRI');
//DDS Attr. Turquois Underline Rev.Int.    
    TrqULRI    Char(1)     Overlay(DSColHexFree: *Next) inz(X'35');
//Hex Value Turquois Underline Rev.Int.    
 

    DDSYlwUL   VarChar(10) Overlay(DSColHexFree: *Next) inz('YLWUL');
//DDS Attr. Yellow Underline               
    YlwUL      Char(1)     Overlay(DSColHexFree: *Next) inz(X'36');
//Hex Value Yellow Underline               
 

    DDSYlwULRI VarChar(10) Overlay(DSColHexFree: *Next) inz('YLWULRI');
//DDS Attr. Yellow Underline Rev.Int.      
    YlwULRI    Char(1)     Overlay(DSColHexFree: *Next) inz(X'37');
//Hex Value Yellow Underline Rev.Int.      
 

    DDSColNd   VarChar(10) Overlay(DSColHexFree: *Next) inz('COLND');
//DDS Attr. Color  Not Dspl.               
    ColND      Char(1)     Overlay(DSColHexFree: *Next) inz(X'38');
//Hex Value Color  Not Dspl.               
 

    DDSPnk     VarChar(10) Overlay(DSColHexFree: *Next) inz('PNK');
//DDS Attr. Pink                           
    Pnk        Char(1)     Overlay(DSColHexFree: *Next) inz(X'39');
//Hex Value Pink                           
 

    DDSPnkRI   VarChar(10) Overlay(DSColHexFree: *Next) inz('PNKRI');
//DDS Attr. Pink   Reverse Intense         
    PnkRI      Char(1)     Overlay(DSColHexFree: *Next) inz(X'3A');
//Hex Value Pink   Reverse Intense         
 

    DDSBlu     VarChar(10) Overlay(DSColHexFree: *Next) inz('BLU');
//DDS Attr. Blue                           
    Blu        Char(1)     Overlay(DSColHexFree: *Next) inz(X'3B');
//Hex Value Blue                           
 

    DDSPnkUl   VarChar(10) Overlay(DSColHexFree: *Next) inz('PNKUL');
//DDS Attr. Pink   Underline               
    PnkUL      Char(1)     Overlay(DSColHexFree: *Next) inz(X'3C');
//Hex Value Pink   Underline               
 

    DDSPnkUlRi VarChar(10) Overlay(DSColHexFree: *Next) inz('PNKULRI');
//DDS Attr. Pink   Underline Rev.Int.      
    PnkULRO    Char(1)     Overlay(DSColHexFree: *Next) inz(X'3D');
//Hex Value Pink   Underline Rev.Int.      
 

    DDSBluUl   VarChar(10) Overlay(DSColHexFree: *Next) inz('BLUUL');
//DDS Attr. Blue   Underline               
    BluUL      Char(1)     Overlay(DSColHexFree: *Next) inz(X'3E');
//Hex Value Blue   Underline               
 

    DDSColNotDsp

             VarChar(10) Overlay(DSColHexFree: *Next) inz('COLNOTDSP');
//DDS Attr. Color  not display             
    ColNotDsp    Char(1)   Overlay(DSColHexFree: *Next) inz(X'3F');
//Hex Value Color  not display             
 

  ArrColHexFree              Dim(32)  Overlay(DSColHexFree);
//Array Not Protected                      
     ArrColFree  VarChar(10)          Overlay(ArrColHexFree);
//Array DDS Attr.  Not Protected           
     ArrHexFree  Char(1)              Overlay(ArrColHexFree: *Next);
//Array Hex Values Not Protected           
 

  DSColHexProt             Overlay(DSColAll: *Next);

    DDSPrGrn   VarChar(10) Overlay(DSColHexProt)        inz('PRGRN');
//DDS Attr. Prot. Green                    
    PrGrn      Char(1)     Overlay(DSColHexProt: *Next) inz(X'A0');
//Hex Value Prot. Green                    
 

    DDSPrGrnRI VarChar(10) Overlay(DSColHexProt: *Next) inz('PRGRNRI');
//DDS Attr. Prot. Green Reverse Intense    
    PrGrnRI    Char(1)     Overlay(DSColHexProt: *Next) inz(X'A1');
//Hex Value Prot. Green Reverse Intense    
 

    DDSPrWht   VarChar(10) Overlay(DSColHexProt: *Next) inz('PRWHT');
//DDS Attr. Prot. White                    
    PrWht      Char(1)     Overlay(DSColHexProt: *Next) inz(X'A2');
//Hex Value Prot. White                    
 

    DDSPrWhtRi VarChar(10) Overlay(DSColHexProt: *Next) inz('PRWHTRI');
//DDS Attr. Prot. White Reverse Intense    
    PrWhtRI    Char(1)     Overlay(DSColHexProt: *Next) inz(X'A3');
//Hex Value Prot. White Reverse Intense    
 

    DDSPrGrnUl VarChar(10) Overlay(DSColHexProt: *Next) inz('PRGRNUL');
//DDS Attr. Prot. Green Underline          
    PrGrnUL    Char(1)     Overlay(DSColHexProt: *Next) inz(X'A4');
//Hex Value Prot. Green Unerline           
 

    DDSPrGrnUlRi

               VarChar(10) Overlay(DSColHexProt: *Next)
inz('PRGRNULRI');//DDS Attr. Prot. Green Underline Rev.In  
    PrGrnULRI  Char(1)     Overlay(DSColHexProt: *Next) inz(X'A5');
//Hex Value Prot. Green Underline Rev.In  
 

    DDSPrWhtUl VarChar(10) Overlay(DSColHexProt: *Next) inz('PRWHTUL');
//DDS Attr. Prot. White Underline         
    PrWhtUL    Char(1)     Overlay(DSColHexProt: *Next) inz(X'A6');
//Hex Value Prot. White Underline         
 

    DDSPrNd    VarChar(10) Overlay(DSColHexProt: *Next) inz('PRND');
//DDS Attr. Prot. Not Display             
    PrND       Char(1)     Overlay(DSColHexProt: *Next) inz(X'A7');
//Hex Value Prot. Not Display             
 

    DDSPrRed   VarChar(10) Overlay(DSColHexProt: *Next) inz('PRRED');
//DDS Attr. Prot. Red                     
    PrRed      Char(1)     Overlay(DSColHexProt: *Next) inz(X'A8');
//Hex Value Prot. Red                     
 

    DDSPrRedRI VarChar(10) Overlay(DSColHexProt: *Next) inz('PRREDRI');
//DDS Attr. Prot. Red Reverse Intense     
    PrRedRI    Char(1)     Overlay(DSColHexProt: *Next) inz(X'A9');
//Hex Value Prot. Red Reverse Intense     
 

    DDSPrRedBl VarChar(10) Overlay(DSColHexProt: *Next) inz('PRREDBL');
//DDS Attr. Prot. Red Blink               
    PrRedBL    Char(1)     Overlay(DSColHexProt: *Next) inz(X'AA');
//Hex Value Prot. Red Blink               
 

    DDSPrRedBlRi

               VarChar(10) Overlay(DSColHexProt: *Next)
inz('PRREDBLRI');//DDS Attr. Prot. Red Blink Rev.Int.      
    PrRedBLRI  Char(1)     Overlay(DSColHexProt: *Next) inz(X'AB');
//Hex Value Prot. Red Blink Rev.Int.      
 

    DDSPrRedUl VarChar(10) Overlay(DSColHexProt: *Next) inz('PRREDUL');
//DDS Attr. Prot. Red Underline           
    PrRedUL    Char(1)     Overlay(DSColHexProt: *Next) inz(X'AC');
//Hex Value Prot. Red Underline           
 

    DDSPrRedUlRI

               VarChar(10) Overlay(DSColHexProt: *Next)
inz('PRREDULRI');//DDS Attr. Prot. Red Underline Rev.Int.  
    PrRedULRI  Char(1)     Overlay(DSColHexProt: *Next) inz(X'AD');
//Hex Value Prot. Red Underline Rev.Int   
 

    DDSPrRedUlBl

               VarChar(10) Overlay(DSColHexProt: *Next)
inz('PRREDULBL');//DDS Attr. Prot. Red Underline Blink     
    PrRedULBL  Char(1)     Overlay(DSColHexProt: *Next) inz(X'AE');
//Hex Value Prot. Red Underline Blink     
 

    DDSPrNotDsp

               VarChar(10) Overlay(DSColHexProt: *Next) inz('PRNotDsp');
//DDS Attr. Prot. not Display             
    PrNotDsp   Char(1)     Overlay(DSColHexProt: *Next) inz(X'AF');
//Hex Value Prot. not Display             
 

    DDSPrTrq   VarChar(10) Overlay(DSColHexProt: *Next) inz('PRTRQ');
//DDS Attr. Prot. Turquois                
    PrTrq      Char(1)     Overlay(DSColHexProt: *Next) inz(X'B0');
//Hex Value Prot. Turquois                
 

    DDSPrTrqRi VarChar(10) Overlay(DSColHexProt: *Next) inz('PRTRQRI');
//DDS Attr. Prot. Turquois Rev.Int.       
    PrTrqRI    Char(1)     Overlay(DSColHexProt: *Next) inz(X'B1');
//Hex Value Prot. Turquois Rev.Int.       
 

    DDSPrYlw   VarChar(10) Overlay(DSColHexProt: *Next) inz('PRYLW');
//DDS Attr. Prot. Yellow                  
    PrYlw      Char(1)     Overlay(DSColHexProt: *Next) inz(X'B2');
//Hex Value Prot. Yellow                  
 

    DDSPrYlwRi VarChar(10) Overlay(DSColHexProt: *Next) inz('PRYLWRI');
//DDS Attr. Prot. Yellow Reverse Intense  
    PrYlwRI    Char(1)     Overlay(DSColHexProt: *Next) inz(X'B3');
//Hex Value Prot. Yellow Reverse Intense  
 

    DDSPrTrqUL VarChar(10) Overlay(DSColHexProt: *Next) inz('PRTRQUL');
//DDS Attr. Prot. Turquois underline      
    PrTrqUL    Char(1)     Overlay(DSColHexProt: *Next) inz(X'B4');
//Hex Value Prot. Turquois Underline      
 

    DDSPrTrqUlRi

               VarChar(10) Overlay(DSColHexProt: *Next)
inz('PRTRQULRI');//DDS Attr. Prot. Turquois underline      
    PrTrqULRI  Char(1)     Overlay(DSColHexProt: *Next) inz(X'B5');
//Hex Value Prot. Turquois Underline      
 

    DDSPrYlwUl VarChar(10) Overlay(DSColHexProt: *Next) inz('PRYLWUL');
//DDS Attr. Prot. Turquois Underline Rev  
    PrYlwUK    Char(1)     Overlay(DSColHexProt: *Next) inz(X'B6');
//Hex Value Prot. Turquois Underline Rev  
 

    DDSPrColNd VarChar(10) Overlay(DSColHexProt: *Next) inz('PRCOLND');
//DDS Attr. Prot. Yellow Underline        
    PrColND    Char(1)     Overlay(DSColHexProt: *Next) inz(X'B7');
//Hex Value Prot. Yellow Underline        
 

    DDSPrPnk   VarChar(10) Overlay(DSColHexProt: *Next) inz('PRPNK');
//DDS Attr. Prot. Yellow Underline Rev.I  
    PrPnk      Char(1)     Overlay(DSColHexProt: *Next) inz(X'B8');
//Hex Value Prot. Yellow Underline Rev.I  
 

    DDSPrPnkRi VarChar(10) Overlay(DSColHexProt: *Next) inz('PRPNKRI');
//DDS Attr. Prot. Color  Not Dspl.        
    PrPnkRI    Char(1)     Overlay(DSColHexProt: *Next) inz(X'B9');
//Hex Value Prot. Color  Not Dspl.        
 

    DDSPrBlu   VarChar(10) Overlay(DSColHexProt: *Next) inz('PRBLU');
//DDS Attr. Prot. Pink                    
    PrBlu      Char(1)     Overlay(DSColHexProt: *Next) inz(X'BA');
//Hex Value Prot. Pink                    
 

    DDSPrBluRi VarChar(10) Overlay(DSColHexProt: *Next) inz('PRBLURI');
//DDS Attr. Prot. Pink   Reverse Intense  
    PrBluRI    Char(1)     Overlay(DSColHexProt: *Next) inz(X'BB');
//Hex Value Prot. Pink   Reverse Intense  
 

    DDSPrPnkUl VarChar(10) Overlay(DSColHexProt: *Next) inz('PRPNKUL');
//DDS Attr. Prot. Blue                    
    PrPnkUL    Char(1)     Overlay(DSColHexProt: *Next) inz(X'BC');
//Hex Value Prot. Blue                    
 

    DDSPrPnkUlRI

               VarChar(10) Overlay(DSColHexProt: *Next)
inz('PRPNKULRI');//DDS Attr. Prot. Pink   Underline        
    PrPnkULRI  Char(1)     Overlay(DSColHexProt: *Next) inz(X'BD');
//Hex Value Prot. Pink   Underline        
 

    DDSPrBluUl VarChar(10) Overlay(DSColHexProt: *Next) inz('PRBLUUL');
//DDS Attr. Prot. Blue   Underline        
    PrBluUL    Char(1)     Overlay(DSColHexProt: *Next) inz(X'BE');
//Hex Value Prot. Blue   Underline        
 

    DDSPrColNotD

               VarChar(10) Overlay(DSColHexProt: *Next)
inz('PRCOLNOTD');//DDS Attr. Prot. Color not Displayed     
    PrColNotD  Char(1)     Overlay(DSColHexProt: *Next) inz(X'BF');
//Hex Value Prot. Color not Displayed     
 

ArrColHexProt              Dim(32) Overlay(DSColHexProt);
//Array DDS + Hex Protect                  
  ArrColProt   VarChar(10)         Overlay(ArrColHexProt);
//Array DDS Attributes Protect             
  ArrHexProt   Char(1)             Overlay(ArrColHexProt: *Next);
//Array DDS Values Protect                 
 

ArrColorHex                Dim(64) Overlay(DSColAll);
//Array ALL DDS + Hext Not Protected/Prot  
  ArrColor     VarChar(10) Overlay(ArrColorHex);
//Array ALL DDS Attributes Not Protect/Pr  
  ArrHex       Char(1)     Overlay(ArrColorHex: *Next);
//Array ALL Hex Values     Not Protected/  
End-DS;


Mit freundlichen Grüßen / Best regards

Birgitta Hauser
Modernization – Education – Consulting on IBM i
Database and Software Architect  
IBM Champion since 2020

"Shoot for the moon, even if you miss, you'll land among the stars." (Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok)
"What is worse than training your staff and losing them? Not training them
and keeping them!"
"Train people well enough so they can leave, treat them well enough so they
don't want to. " (Richard Branson)
"Learning is experience … everything else is only information!" (Albert
Einstein)


-----Original Message-----
From: RPG400-L <rpg400-l-bounces-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org> On Behalf Of Brian
Parkins
Sent: Thursday, 25 September 2025 11:56
To: [email protected]
Subject: Re: DSPF Long Shot

If it helps, check out the 5250 Information Display System Functions
Reference manual:

https://archive.org/details/bitsavers_ibm5250525formationDisplaySystemFuncti
onsReference_6100222/page/n3/mode/2up

See page 2-143 (195) for the table of Screen Attributes. (The manual can de
downloaded in PDF format).

IIRC, the trailing attribute byte is always set to X'20' (Normal/Green).

HTH,
Brian.

On 24/09/2025 04:03, Dan Bale wrote:
> In your DSPF, get rid of the display attributes defined on the header
field.
>
> X'3E' is the display attribute for blue, underline X'20' is the 
> display attribute for green In your RPG, concatenate x'3E' + 
> %trim(your header text field) + x'20'
> Then use your centering function on that concatenation.
>
> - Dan Bale
>
> -----Original Message-----
> From: RPG400-L <rpg400-l-bounces-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org> On Behalf Of 
> Steve M
> Sent: Tuesday, September 23, 2025 10:46 PM
> To: RPG programming on IBM i <[email protected]>
> Subject: DSPF Long Shot
>
> Almost absolutely certain the answer to this is "no", but it's never a
final no until this group has their say/input.
>
> DSPF format with a line for a header text.  Field defined as character 80
bytes.  Screen to screen the text in the header will change.  Field
attributes are blue and underscore.
>
> On the first screen the actual text is 30 bytes. There is an centering
function that is called before loading the text to the screen field so it's
right in the middle.
>
> Next screen the actual text is 50 bytes.  (I know you all see where this
is going).  Yes, it's centered, as well.
>
> Here's the question:  I don't want the underscores on each side of the
actual text (they look like airplane wings) (_________Here is the
text_________) - so, is there a way to only underline the actual
words/letters?  Maybe I've just forgotten something really simple here
(always a good chance on that one).
>
> Lots of really smart people follow these pages so hoping for any idea that
may "pretty-up" the screen.
>
> As always, thanks to all in advance.
>
> Steve M.
>
> *** CONFIDENTIALITY NOTICE: The information contained in this 
> communication may be confidential, and is intended only for the use of 
> the recipients named above. If the reader of this message is not the 
> intended recipient, you are hereby notified that any dissemination, 
> distribution, or copying of this communication, or any of its 
> contents, is strictly prohibited. If you have received this 
> communication in error, please return it to the sender immediately and 
> delete the original message and any copy of it from your computer 
> system. If you have any questions concerning this message, please 
> contact the sender. ***

--
This is the RPG programming on IBM i (RPG400-L) mailing list To post a
message email: [email protected] To subscribe, unsubscribe, or
change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org
Before posting, please take a moment to review the archives at
https://archive.midrange.com/rpg400-l.

Please contact support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org for any subscription related
questions.

-- 
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: [email protected]
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org for any subscription related
questions.

-- 
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: [email protected]
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org for any subscription related questions.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.