Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


ISPF Edit Spell Checker

Note: This tool is best clone (installed) using zigi (z/OS ISPF Git Interface) which can be found at Or, use the TSO Transmit file.

This site contains an ISPF Edit command to spell check your data.

Members of the PDS dataset:

$DOC     What you are reading                                               
$MORE    Information on where to find words to add to or create a           
         public dictionary. The referenced URL refers to the web            
         site for the Dictionaries for International Ispell which           
         lists sources for words for most languages.                                 
WBAD     A small member that can be used to verify SPELLC where             
         there are invalid words                                            
WGOOD    A small member that can be used to verify SPELLC                   
         where all words are valid.                                         
WORDS    Sample starter dictionary (English)                                
         *** please share updates with the author so others                 
         *** may benefit from your updated word list                        
         Alternate dictionaries can be created for other                    
         languages but only one installation dictionary is                  
         allowed at any point in time.                                      
The REXX Exec Library Members are:                                          
SPELLC   The ISPF Edit command written in REXX to do the Spelling           
SPELLCA  The ISPF Edit command written in REXX to add words to the          
         users personal dictionary (thanks to Russ Nesbitt)                 
SPELLCDF The ISPF Edit command default REXX exec                            
SPELLCPN The REXX Exec that contains the dynamic versions of the            
         ISPF panels and which will load them                               
The ISPF Panel Library Members are:                                         
SPELLCD  The ISPF Panel to prompt for a user dictionary data set            
SPELLCH  The ISPF Help Panel                                                
SPELLCP  The ISPF PopUp Panel that displays the Spell Checking              


The most current version of this package can be found at my web site

Special Thanks to:

           Asher Aremband                                                   
           Hartmut Beckmann                                                 
           John Kalinich                                                    
           Russell Nesbitt                                                  
           Sam Golob                                                        

for their contributions to this package.


1. Copy member WORDS into a sequential data set that can be                 
   accessed by all TSO/ISPF users. A DCB of RECFM=VB LRECL=84               
   is suggested.                                                            
2. Edit member SPELLCDF and update as appropriate                           
   ** see Local Customization section below                                 
3. Copy member SPELLC, SPELLCA, and SPELLCDF into a CLIST or                
   REXX library in your SYSPROC or SYSEXEC concatenation.                   
4. If the panelloc value in SPELLCDF is non-null then Copy members          
   SPELLCD, SPELLCH, and SPELLCP into an ISPF Panel library in your         
   ISPPLIB concatenation, otherwise this step is not required.              


Local Customization

All local customization should occur within the SPELLCDF REXX Exec,
however if you find something that needs changing elsewhere let me know.

The variables to set in SPELLCDF are:

dictdsn      The data set name of the public dictionary                     
email        The e-mail address to display in the first popup               
             panel as the address to send words to add to the               
             public dictionary (please set this to your address             
             and do not leave it as mine)                                   
alpha        The alphabet in upper case (may be customized                  
             for NLS support)                                               
from         Special characters to be translated to blanks                  
             before each line of words is processed                         
panelloc     Determines if SPELLC will use the ISPF Panels                  
             from an existing ISPPLIB library or if the Panels              
             should be dynamically loaded into a temporary                  
             library and then LIBDEF'd to access them.                      
other        Characters if found in a word cause the word                   
             to be ignored (and thus assumed to be correctly                
usrmodel     A data set name model to be used to allocate                   
             the users personal dictionary if they have not                 
             already done so. This is used in SPELLCA on its                
             first use if the personal dictionary variable                  
             is null.                                                       

*** Note the nls variables will be supported in the future ***


SPELLC is an ISPF Edit macro that is invoked on the ISPF Edit command
line with or without any other parameters. It will prompt the user to
ask if the user has their own dictionary of words and which records to
spell check. There are also options to have a progress popup and to
ignore words that are in all caps.

Syntax: SPELLC

  The optional parameters allowed are:                                      
  Starting line number or label                                             
  Ending line number or label                                               
  If an ending line number or label is specified then a starting            
  line number or label is required.                                         
  An alternate way to specify a range of lines to check is to use a         
  S followed by a number (e.g. S9 to check 9 lines) or a pair of SSs        
  to mark a range.                                                          

If the user has their own dictionary then the words in it will be added to the
installation dictionary for the spelling check. A null data set name is
acceptable on this panel.

The spell checking is performed using the following 'rules':

1. Each line of text in the ISPF Edit (or View) data set is read from       
   top to bottom                                                            
2. Each line will have the characters :,?()*=;<>|$ translated to blanks.    
   See the from variable in SPELLCDF for the complete list                  
3. Each word (a string of characters without an intervening blank)          
   is then converted to upper case for checking                             
4. Words that begin with numbers are not checked                            
5. The word is tested and if found then checking continues                  
   with the next word, otherwise                                            
   a. Words ending with S, 'S, and 'D are checked as if the S, 'S, and      
      'D are not there.                                                     
   b. Words with these other characters 0123456789_-@ are ignored           
6. Upon completion the invalid words are displayed in sorted sequence       
   at the top of the data set in ISPF message format.                       
7. A message is inserted after each line with an invalid word indicating    
   the misspelling on the prior line                                        



SPELLCA is an ISPF Edit command that will add words to the users personal
dictionary. To use:

1. Enter SPELLCA on the ISPF Edit Command Line                              
2. Move the cursor to the word to be added                                  
3. Press enter                                                              

This assumes that a personal dictionary has been defined. If one has not
been defined then a message indicating that is displayed.


User Dictionary

The user dictionary is any sequential data set or member of a partitioned data
set that conforms to the following format:

1. records with * in column 1 are comments                                  
2. words are separated by blanks or on separate records                     

It is suggested that the dictionary be allocated using RECFM=VB LRECL=84
and that more than one word be on a record.


Comments, suggestions, and complaints should be directed to the author

Lionel B. Dyck

Warranty and Guarantee - none.

License: This code is distributed under the GPL License which may
be found at


ISPF Edit Spell Checker






No releases published


No packages published