DOS/VS

Enhance Printable Character Set for DOS/VS R34 PDUMP, DUMP, JDUMP Macros

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:

  1. Documentation file
    Printerable_character_table_Enhancment_DOSVS_R34.rtf
  2. 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)
  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)
  4. 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)
  5. 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

  1. Shut down DOS/VS machine, if active.
  2. Backup your system disk packs using host OS. This provides a restore alternative should you encounter issues.
  3. IPL your DOS/VS machine.
  4. Submit program PDUMP01 (uses PDUMP macro) to print current character translations. Output should be similar to Report 1.
  5. Submit PDZAP 1 to update PDUMP macro, $$BPDMPC phase.
  6. Submit program PDUMP01 to print new character translations. Output should be similar to Report 2.
  7. Submit program DUMP01 (uses DUMP macro) and JDUMP01 (uses JDUMP macro) to print current character translations. Output should be similar to Report 1.
  8. Submit PDZAP 2 to update DUMP/JDUMP macro, $$BPDMBC phase.
  9. Submit PDZAP 3 to update DUMP/JDUMP macro, $$BPDMDC phase.
  10. Submit program DUMP01 and JDUMP01 to print new character translations. Output should be similar to Report 2.
  11. 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

Leave a Reply

Your email address will not be published. Required fields are marked *


CAPTCHA Image
Reload Image

This site uses Akismet to reduce spam. Learn how your comment data is processed.