Overview
In DOS/VS R34, all printable characters were limited to upper-case, numbers, and select special characters as exercised by the DUMP service macros.
The DOS/VS Assembler macros PDUMP, DUMP and JDUMP invoke various $$B transient phases to perform the work of printing register values, storage content and other partition/system information.
Specifically, hex-to-character translation, a LOW-HIGH range table is searched to determine if a BYTE is printable, that is, translated to a valid EBCDIC character or a period (.). The table is 24-bytes in length, 12 value pairs. Scope for this modification was limited to printing functions of the above macros.
The PDZAPs change the content of the LOW-HIGH table values indicated by the FROM and TO tables below to include lower-case printing and other special characters as indicated by the highlighted rows to enhance the printable character set.

Note: The character ‘¬’ may be translated to ’^’ depending on EBCDIC to ASCII code tables.
Due to programmed CLC logic in the affected IBM software, the LOW VALUE is one less than the first printable character in a series. The HIGH VALUE is the last printable character is the series.
For example, the entry
C0-C9 ABCDEFGHI represents printable character series X’C1’ – X’C9’.
The following two reports show the before and after character set as part of a PDUMP.

The before version exhibits printable characters using the supplied DOS/VS R34 software, before the PDZAP. The after version uses the enhanced character set. Note the increased number of symbols and lower-case alphabet.
Software Disclaimer
No guarantee; No warranty; Install / Use at your own risk.
This software is provided “AS IS” and without any expressed or implied warranties, including, without limitation, the implied warranties of merchantability and fitness for a particular purpose.
The author requests keeping authors name intact to any modified versions.
In addition, the author requests readers to submit any code modifications / enhancements and associated comments for consideration into a subsequent release (giving credit to contributors) thus, improving overall functionality and further benefiting the DOS/VS R34 hobbyist public domain community.
Downloading ZIP Package
Download zip file from here.
The package includes the following:
- Documentation file
Printerable_character_table_Enhancment_DOSVS_R34.rtf - Three PDZAP Update JCL decks
ZAP_PDUMP_UPDT_$$BPDMPC.JCL (PDZAP 1)
ZAP_DUMP_UPDT_$$BDMPBC.JCL (PDZAP 2)
ZAP_DUMP_UPDT_$$BDMPDC.JCL (PDZAP 3) - Three PDZAP Listings after applying PDZAPs
PDZAPLB 03128 LARRYB 04 AUG 17 18.40.25.pdf ($$BPDMPC)
PDZAPLB 03139 LARRYB 04 AUG 17 23.33.59.pdf ($$BPDMDC)
PDZAPLB 03140 LARRYB 04 AUG 17 23.40.10.pdf ($$BPDMBC) - Three TEST assembler programs
CHARDUMP_ENH_Test_ASM_DUMP.ASM (DUMP Macro)
CHARDUMP_ENH_Test_ASM_JDUMP.ASM (JDUMP Macro)
CHARDUMP_ENH_Test_ASM_PDUMP.ASM (PDUMP Macro) - PDUMP Listings
PDUMP01 03121 04 AUG 17 17.04.26.pdf (before PDZAP)
PDUMP01 03129 04 AUG 17 18.41.24.pdf (after PDZAP)
Applying the PDZAPs
- Shut down DOS/VS machine, if active.
- Backup your system disk packs using host OS. This provides a restore alternative should you encounter issues.
- IPL your DOS/VS machine.
- Submit program PDUMP01 (uses PDUMP macro) to print current character translations. Output should be similar to Report 1.
- Submit PDZAP 1 to update PDUMP macro, $$BPDMPC phase.
- Submit program PDUMP01 to print new character translations. Output should be similar to Report 2.
- Submit program DUMP01 (uses DUMP macro) and JDUMP01 (uses JDUMP macro) to print current character translations. Output should be similar to Report 1.
- Submit PDZAP 2 to update DUMP/JDUMP macro, $$BPDMBC phase.
- Submit PDZAP 3 to update DUMP/JDUMP macro, $$BPDMDC phase.
- Submit program DUMP01 and JDUMP01 to print new character translations. Output should be similar to Report 2.
- Done!
Macros PDUMP, DUMP and JDUMP will produce hex-dumps with an enhanced character set.
Source Content
PDZAP 1. $$DPDMPC used by macro PDUMP
* $$ JOB JNM=PDZAPLB,CLASS=0,USER='LarryB',DISP=D * $$ PRT DISP=D,CLASS=P // JOB PDZAP Enhance Hex2Char Dumps to include more EBCDIC // UPSI 1 // OPTION LOG /* $$BPDMPC (IJBPDPTR) /* +Change valid character table /* +to include lower-case and /* +other symbols. /* 3F-40 Space /* 49-50 ¢.<(+|& /* 59-61 !$*);¬-/ /* 6A-6F ,%_>? /* 80-89 abcdefghi /* 90-99 jklmnopqr /* A1-A9 stuvwxyz /* .C0-C9 ABCDEFGHI /* .D0-D9 JKLMNOPQR /* .E1-E9 STUVWXYZ /* .EF-F9 0123456789 /* .FF-FF End of table marker // UPSI 1 // EXEC PDZAP NAME=SYS.PRG. SCIL=$$BPDMPC +32F VER=3F404A4B4D4E4F505A5C5F616A6BC0C9 REP=3F40495059616A6F80899099A1A9C0C9 END PHASE END /* /& * $$ EOJ
PDZAP 2. $$BDMPBC used by macro DUMP and JDUMP
* $$ JOB JNM=PDZAPLB,CLASS=0,USER='LarryB',DISP=D * $$ PRT DISP=D,CLASS=P // JOB PDZAP Enhance Hex2Char Dumps to include more EBCDIC // UPSI 1 // OPTION LOG /* $$BDMPBC (IJBDMBTR) /* +Change valid character table /* +to include lower-case and /* +other symbols. /* 3F-40 Space /* 49-50 ¢.<(+|& /* 59-61 !$*);¬-/ /* 6A-6F ,%_>? /* 80-89 abcdefghi /* 90-99 jklmnopqr /* A1-A9 stuvwxyz /* .C0-C9 ABCDEFGHI /* .D0-D9 JKLMNOPQR /* .E1-E9 STUVWXYZ /* .EF-F9 0123456789 /* .FF-FF End of table marker // UPSI 1 // EXEC PDZAP NAME=SYS.PRG. SCIL=$$BDMPBC +29D VER=3F404A4B4D4E4F505A5C5F616A6BC0C9 REP=3F40495059616A6F80899099A1A9C0C9 END PHASE END /* /& * $$ EOJ
PDZAP 3. $$BDMPDC used by macro DUMP and JDUMP
* $ JOB JNM=PDZAPLB,CLASS=0,USER='LarryB',DISP=D * $ PRT DISP=D,CLASS=P // JOB PDZAP Enhance Hex2Char Dumps to include more EBCDIC // UPSI 1 // OPTION LOG /* $BDMPDC (IJBDMDTR) /* +Change valid character table /* +to include lower-case and /* +other symbols. /* 3F-40 Space /* 49-50 ¢.<(+|& /* 59-61 !$*);¬-/ /* 6A-6F ,%_>? /* 80-89 abcdefghi /* 90-99 jklmnopqr /* A1-A9 stuvwxyz /* .C0-C9 ABCDEFGHI /* .D0-D9 JKLMNOPQR /* .E1-E9 STUVWXYZ /* .EF-F9 0123456789 /* .FF-FF End of table marker // UPSI 1 // EXEC PDZAP NAME=SYS.PRG. SCIL=$BDMPDC +2A5 VER=3F404A4C4F505A5C5F616A6B7B7CC0C9 REP=3F40495059616A6F80899099A1A9C0C9 END PHASE END /* /& * $ EOJ
Validation Software
The following three test programs will declare a variable named CHARTBL, fill-in CHARTBL containing 256 bytes ranging from X’00’ to X’FF’, and issue the appropriate DOS/VS Assembler Macro to print a HEX dump for review/compare purposes.
Program 1. PDUMPP(PDUMP01), change JCL per your preferences
* $$ JOB JNM=PDUMP01,CLASS=0,DISP=D
* $$ PRT DISP=D,CLASS=P,JSEP=1
// JOB PDUMP01 Test PDUMP macro CHAR Enhancement
// OPTION SYSPARM='NOJ1'
// OPTION LINK,LOG,XREF
// EXEC ASSEMBLY
TITLE 'LB - PDUMP Macro Test - Character Enhancement'
PRINT NOGEN
* **********************************************************
* *
* Program: PDUMPP *
* *
* Author: Larry Belmontes, Jr. *
* *
* Date: 08/03/2017 *
* *
* Description: To display a storage area of 256 bytes *
* via PDUMP macro to demonstrate character translation. *
* Non-printable characters printed as PERIODS (".") *
* *
* Input: None *
* *
* Output: SYSLST from PDUMP macro *
* *
* Notes: *
* *
* Change Log: *
* LBJ mm/dd/yy Initial version *
* *
* **********************************************************
* Released to the public domain. *
*
EJECT
* -------------------------------------------------------------------
* Addressability
* -------------------------------------------------------------------
* R2 Base
PDUMPP BALR R2,0
USING *,R2 BaseReg Tell assembler
* -------------------------------------------------------------------
* Build HEX table for PDUMP printing
* -------------------------------------------------------------------
* R3 Character table addr
* R4 Number of slots to fill
* R5 Hex counter
LA R3,CHARTBL
LA R4,256
LA R5,0
FILLME EQU *
STC R5,0(R3)
LA R5,1(R5)
LA R3,1(R3)
BCT R4,FILLME
FILLDONE EQU *
EJECT
* -------------------------------------------------------------------
* PDUMP CHARTBL
* -------------------------------------------------------------------
* R3 Character table addr
* R4 Number of slots to fill
* R5 Hex counter
LA R3,CHARTBL
LA R4,256(R3)
PDUMP (R3),(R4)
EOJ
*
* ------------------ REGISTER EQUATES ------------ *
*
REGEQU REGISTER EQUATES
*
CHARTBL DS CL256
CHARTBLE EQU *
*
* ------------------ LITERALS ------------ *
*
LTORG
END PDUMPP
/*
// EXEC LNKEDT
// EXEC
/&
* $$ EOJ
Program 2. DUMPP(DUMP01), change JCL per your preferences
* $$ JOB JNM=DUMP01,CLASS=0,DISP=D
* $$ PRT DISP=D,CLASS=P,JSEP=1
// JOB DUMP01 Test DUMP macro CHAR Enhancement
// OPTION SYSPARM='NOJ1'
// OPTION LINK,LOG,XREF
// EXEC ASSEMBLY
TITLE 'LB - DUMP Macro Test - Character Enhancement'
PRINT NOGEN
* **********************************************************
* *
* Program: DUMPP *
* *
* Author: Larry Belmontes, Jr. *
* *
* Date: 08/03/2017 *
* *
* Description: To display a storage area of 256 bytes *
* via DUMP macro to demonstrate character translation. *
* Non-printable characters printed as PERIODS (".") *
* *
* Input: None *
* *
* Output: SYSLST from DUMP macro *
* *
* Notes: *
* *
* Change Log: *
* LBJ mm/dd/yy Initial version *
* *
* **********************************************************
* Released to the public domain. *
*
EJECT
* -------------------------------------------------------------------
* Addressability
* -------------------------------------------------------------------
* R2 Base
DUMPP BALR R2,0
USING *,R2 BaseReg Tell assembler
* -------------------------------------------------------------------
* Build HEX table for DUMP printing
* -------------------------------------------------------------------
* R3 Character table addr
* R4 Number of slots to fill
* R5 Hex counter
LA R3,CHARTBL
LA R4,256
LA R5,0
FILLME EQU *
STC R5,0(R3)
LA R5,1(R5)
LA R3,1(R3)
BCT R4,FILLME
FILLDONE EQU *
EJECT
* -------------------------------------------------------------------
* DUMP CHARTBL
* -------------------------------------------------------------------
* R3 Character table addr
* R4 Number of slots to fill
* R5 Hex counter
LA R3,CHARTBL
LA R4,256(R3)
PDUMP (R3),(R4)
* -------------------------------------------------------------------
* Issue DUMP of supervisor
* -------------------------------------------------------------------
DUMP
EOJ
*
* ------------------ REGISTER EQUATES ------------ *
*
REGEQU REGISTER EQUATES
*
CHARTBL DS CL256
CHARTBLE EQU *
*
* ------------------ LITERALS ------------ *
*
LTORG
END DUMPP
/*
// EXEC LNKEDT
// EXEC
/&
* $$ EOJ
Program 3. JDUMPP(JDUMP01), change JCL per your preferences
* $$ JOB JNM=JDUMP01,CLASS=0,DISP=D
* $$ PRT DISP=D,CLASS=P,JSEP=1
// JOB JDUMP01 Test JDUMP macro CHAR Enhancement
// OPTION SYSPARM='NOJ1'
// OPTION LINK,LOG,XREF
// EXEC ASSEMBLY
TITLE 'LB - JDUMP Macro Test - Character Enhancement'
PRINT NOGEN
* **********************************************************
* *
* Program: JDUMPP *
* *
* Author: Larry Belmontes, Jr. *
* *
* Date: 08/03/2017 *
* *
* Description: To display a storage area of 256 bytes *
* via JDUMP macro to demonstrate character translation. *
* Non-printable characters printed as PERIODS (".") *
* *
* Input: None *
* *
* Output: SYSLST from JDUMP macro *
* *
* Notes: *
* *
* Change Log: *
* LBJ mm/dd/yy Initial version *
* *
* **********************************************************
* Released to the public domain. *
*
EJECT
* -------------------------------------------------------------------
* Addressability
* -------------------------------------------------------------------
* R2 Base
JDUMPP BALR R2,0
USING *,R2 BaseReg Tell assembler
* -------------------------------------------------------------------
* Build HEX table for DUMP printing
* -------------------------------------------------------------------
* R3 Character table addr
* R4 Number of slots to fill
* R5 Hex counter
LA R3,CHARTBL
LA R4,256
LA R5,0
FILLME EQU *
STC R5,0(R3)
LA R5,1(R5)
LA R3,1(R3)
BCT R4,FILLME
FILLDONE EQU *
EJECT
* -------------------------------------------------------------------
* DUMP CHARTBL
* -------------------------------------------------------------------
* R3 Character table addr
* R4 Number of slots to fill
* R5 Hex counter
LA R3,CHARTBL
LA R4,256(R3)
* -------------------------------------------------------------------
* Issue JDUMP of supervisor
* -------------------------------------------------------------------
JDUMP
EOJ
*
* ------------------ REGISTER EQUATES ------------ *
*
REGEQU REGISTER EQUATES
*
CHARTBL DS CL256
CHARTBLE EQU *
*
* ------------------ LITERALS ------------ *
*
LTORG
END JDUMPP
/*
// EXEC LNKEDT
// EXEC
/&
* $$ EOJ