× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



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@xxxxxxxxxxxxxxxxxx> On Behalf Of Brian
Parkins
Sent: Thursday, 25 September 2025 11:56
To: rpg400-l@xxxxxxxxxxxxxxxxxx
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@xxxxxxxxxxxxxxxxxx> On Behalf Of
Steve M
Sent: Tuesday, September 23, 2025 10:46 PM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
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: RPG400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or
change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.