BIM-EDIT PROGRAM EDITOR SYSTEM REFERENCE MANUAL Release 5.4 (COPYRIGHT © 2000, B I MOYLE ASSOCIATES, INC.) BIM-EDIT is a proprietary product of B I Moyle Associates, Inc. It cannot be reproduced, changed, copied, or stored in any form (including, but not limited to, copies on magnetic media) without the express prior written permission of B I Moyle Associates, Inc. This documentation applies to Release 5.4 of the program product BIM-EDIT. Original Printing........................07/11/2000 Last Revised ...............................08/23/2000 TABLE OF CONTENTS Chapter 1. Introduction ............................................................................................................1 Chapter 2. Writing Procedures ................................................................................................2 Basic Procedures...................................................................................................................... 3 The Rules of Basic Procedures ........................................................................................ 4 Editing without the LCA and Text Display Area ................................................................. 4 Command Line Equivalents of LCA Commands........................................................ 5 Text Display Area Equivalents ......................................................................................... 6 Positioning in a Session ..................................................................................................... 6 Making a Display Session into a Procedure........................................................................ 7 Variables.................................................................................................................................... 8 Variable Declaration........................................................................................................ 8 Array Variables .................................................................................................................. 9 Signed NumericVariables................................................................................................ 9 Variable Substring Support.............................................................................................. 9 Variable Replacement .................................................................................................... 10 Assigning Values to Variables......................................................................................... 12 The PARSE Command ...................................................................................................... 14 Control Commands................................................................................................................. 16 Commentary on Complicated Procedures ....................................................................... 21 The MAPF Command.............................................................................................................. 22 Predefined Variables............................................................................................................... 25 PPDCOND, SIBRETCD and SIBMSG................................................................................. 29 The EXAMINE Command........................................................................................................ 31 Text-Following Commands..................................................................................................... 34 Use of INCLUDE and PPDTRAP ........................................................................................ 34 Special Rules ...................................................................................................................... 36 Manipulation of Data within ........................................................................................... 36 Using BROWSE and READ to Process Members, Libraries, etc. ....................................... 37 Application Interface Capability for Procedures .............................................................. 42 Debugging Procedures .......................................................................................................... 44 Special Techniques.................................................................................................................. 47 Modularity........................................................................................................................... 47 Passing Values Between Procedures ............................................................................ 47 Making Procedures Into Commands ............................................................................ 48 Batch Utility and Application Interface Input as a Procedure................................. 49 Chapter 3. Advanced User Command ..................................................................................50 ADD - Set variable to current value plus specified value ................................................ 53 AUDITF - Write following comment lines to audit trail ....................................................... 54 AUDITRP - Write member audit trail to tape ....................................................................... 55 BLOCK - Execute following line(s) until ENDBLOCK/LEAVE/LOOP .................................. 57 BROWSE - Set TXM variables to attributes of next member ............................................. 58 BROWSEL - Set TXL variables to attributes of next library.................................................. 59 CONSOLEF - Write following lines to operating system console ..................................... 60 DECLARE - Create new variable........................................................................................... 61 DEQUEUE - Release exclusive ownership of common resources ................................... 64 DISPLAYF - Display following lines.......................................................................................... 65 DIVIDE - Set variable to current value divided by specified value ................................ 66 EJECT - Skip to top of page.................................................................................................... 67 I TABLE OF CONTENTS ELSE - Execute following line(s) if preceding IFTHEN is false..............................................68 ENDBLOCK - Marks the end of a preceding BLOCK sequence ......................................69 ENDIF - Marks the end of a preceding IFTHEN/ELSE sequence .......................................70 ENQUEUE - Synchronize access to common resources ....................................................71 EXAMINE - Test current session line for character string ....................................................72 EXIT - Terminate procedure ....................................................................................................75 GOSUB - Perform commands starting at LABEL until next RETURN..................................76 GOTO - Execute starting at matching LABEL ......................................................................77 HEADF - Set page heading to the following lines ..............................................................78 HEXIF - Execute following line only if (hex) test is true........................................................79 HEXREQ - Performs various hexadecimal operations ........................................................81 IF - Execute following line only if test is true .........................................................................83 IFD - Execute following line only if test is true ......................................................................85 IFTHEN - Execute following line(s) only if test is true............................................................87 INCLUDE - Incorporate lines from another source during process..................................89 INSERTF - Alter session text - insert following lines................................................................94 INTERVAL - Determine the interval between two dates and times ................................95 LABEL - Execute starting here after matching GOTO........................................................97 LEAVE - Continue processing following the next ENDBLOCK command......................98 LOADD (VSE) - Create member from VSE sublibrary member ........................................99 LOADD (MVS) - Create member from MVS PDS member................................................100 LOADDL (VSE) - Create members from VSE sublibrary members ...................................101 LOADDL (MVS) - Create members from MVS PDS members ...........................................102 LOADT - Create members from a..........................................................................................103 LOGF - Write following lines to $LOG ....................................................................................106 LOGON - Enter BIM-EDIT ..........................................................................................................107 LOOP - Continue processing at the preceding BLOCK command ...............................109 LUCL - Close a connection to a partner BIM-EDIT..............................................................110 LUOP - Open a connection to a partner BIM-EDIT.............................................................111 LURC - Receive a response or data from a partner BIM-EDIT..........................................112 LUSD - Send a command or data to a partner BIM-EDIT..................................................113 MAPF - Display following lines and obtain user response .................................................114 MULTIPLY - Set variable to current value multiplied by specified value ........................118 OUTPUTF - Write following lines to the SIBOUTPT destination ............................................119 PARSE - Set variables to procedure operand values ........................................................121 PEND - Establish a password for one-time batch use........................................................123 PHONETIC - Convert a name or word to a phonetic value.............................................125 PRINT - Print member or session text......................................................................................126 PRINTF - Print following lines ....................................................................................................129 PUNCH - Punch member text.................................................................................................131 PUNCHF - Punch following lines .............................................................................................134 PUNCHI - Punch single line......................................................................................................135 PUNCHL - Punch text for all members of a specified library ............................................136 READ - Set TXM variables to attributes of specified member ..........................................137 READL - Set TXL variables to attributes of specified library ...............................................138 READP (VSE) - Set PWR variables for POWER job entry......................................................139 READP (MVS) - Set JCT,JOE,JQE,PDB variables for JES data sets ....................................141 REPRO - Write member text to tape .....................................................................................143 REPROF - Write following lines to tape..................................................................................147 REPROI - Write single line to tape ..........................................................................................149 REPROL - Write text for all members of a library to tape...................................................151 II TABLE OF CONTENTS RETURN - Return to statement following preceding GOSUB............................................ 152 SEGMENT (VSE) - Close and reopen SYSLST ........................................................................ 153 SEND - Transfer text of a member to an application ........................................................ 154 SENDF - Transfer following lines to an application ............................................................. 156 SENDI - Transfer single line to an application ..................................................................... 157 SENDMSG - Send a message to the terminal message area.......................................... 158 SENDN - Transfer a specified session line to an application ............................................ 159 SET - Set variable to specified value .................................................................................... 160 SETD - Set variable to value of another variable ............................................................... 164 SETL - Set variable to length of another variable value ................................................... 166 SETM - Set variable to message text of message id.......................................................... 167 SHOW (VSE) - Display BIM-EDIT status information ............................................................. 168 SHOW (MVS) - Display BIM-EDIT status information............................................................ 170 SNAP - Activate / Deactivate snapshot debugging ........................................................ 172 STACKF - Write following lines to $STACK............................................................................. 173 SUBMITF - Submit following lines for batch processing...................................................... 174 SUBTRACT - Set variable to current value minus specified value ................................... 176 TRANSFER - Transfer from one procedure to another ....................................................... 177 VAPPEND - Set variable to current value extended by characters .............................. 178 VEXAMINE - Test variable for character string.................................................................... 179 VLOWERCA - Set variable to current value translated to lowercase............................ 181 VTESTNUM - Test variable for valid numeric string.............................................................. 182 VTRUNCAT - Set variable length to exclude trailing blanks ............................................. 183 VUPPERCA - Set variable to current value translated to uppercase ............................ 184 WAIT - Give up control for a specific time interval............................................................ 185 Chapter 4. Predefined Variables ............................................................................................186 Miscellaneous Variables ......................................................................................................... 188 JCT Variables (MVS Only) ....................................................................................................... 189 JOEVariables (MVS Only) ....................................................................................................... 192 JQEVariables (MVS Only) ....................................................................................................... 193 MMP Variables.......................................................................................................................... 194 OPS Variables ........................................................................................................................... 201 PDB Variables (MVS Only) ...................................................................................................... 202 PPD Variables ........................................................................................................................... 204 Special Processing for INCLUDE Commands............................................................... 209 Input Modifications made by Text-Following Commands........................................ 210 PWR Variables (VSE Only)....................................................................................................... 212 SIB Variables.............................................................................................................................. 214 SSD Variables ............................................................................................................................ 224 TXL Variables ............................................................................................................................. 229 TXM Variables ........................................................................................................................... 230 TXS Variables ............................................................................................................................. 234 TXU Variables ............................................................................................................................ 235 XTR Variables............................................................................................................................. 238 Chapter 5. Batch Utility.............................................................................................................239 Batch Utility JCL ........................................................................................................................ 240 Batch Utility for LU 6.2 .............................................................................................................. 241 Using ++() to Batch Process Lines Longer than 80 Characters ....................................... 242 Printing from Batch Utility........................................................................................................ 242 III TABLE OF CONTENTS Chapter 6. Application Interface............................................................................................244 Application Interface Modules..............................................................................................245 Using the Application Interface.............................................................................................246 Commands for the Application Interface...........................................................................247 Returning Data from BIM-EDIT Commands..........................................................................248 Application Interface Program Example.............................................................................250 Chapter 7. BIM-EDIT Installable Features ...............................................................................252 DEMO - Demonstrate BIM-EDIT Features (VSE Only) ..........................................................254 PASSWORD - Verification Feature .........................................................................................255 TODAY - Reminders of Calendar Events ..............................................................................256 INSTALL and SERVICE - Apply IBM Corrective Service (VSE only) ....................................257 ARCHIVE and RECOVER - BIM-EDIT Archive Facility...........................................................258 Generation Library ($SIT.GEN) .........................................................................................258 Archive Library ($SIT.ARCHIVE)........................................................................................258 COPYBOOK - VSE Copy Book Facility (VSE Only) ...............................................................260 Chapter 8. Operator, Administrator Commands ..................................................................264 ABENDXIT (VSE) - Activate or inactivate the abend intercept exit ................................266 ALTERS - Alter library/user security entry ...............................................................................268 ALTERU - Alter user attributes ..................................................................................................269 ARCHIVE - Write members in archive library to tape ........................................................272 AUDITCF - Re-connect audit trail to a member .................................................................275 AUTHORIZ - Bypass library security .........................................................................................276 BACKUPG (VSE) - Create a complete logical system backup tape .............................277 BACKUPG (MVS) - Create a complete logical system backup tape ............................279 BACKUPP (VSE) - Create a complete physical system backup tape ............................281 BACKUPP (MVS) - Create a complete physical system backup tape ..........................282 BACKUPS - Create a selective logical system backup tape ...........................................283 BROWSES - Set TXS variables to next library/user security entry.......................................286 BROWSEU - Set TXU variables to attributes of next user.....................................................287 BYPASS - Execute following line at a higher command level ..........................................288 CHECKRST - Re-establish a CHECKOUT relationship...........................................................289 CONNECT - Establish connection to VTAM or TCP/IP ........................................................291 CONTROLP (VSE) - Issue a command string to POWER.....................................................292 CONTROLP (MVS) -Issue a command string to JES ............................................................293 CORE (VSE) - Display contents of computer memory.......................................................294 CORE (MVS) - Display contents of computer memory .....................................................295 DEALLOC (MVS) - Make allocated PDSs available for other processes ........................296 DEFINES - Create a new library/user security entry ............................................................297 DEFINEU - Create a new user .................................................................................................298 DEFINEX - Create a mail proxy entry.....................................................................................302 DISABLE - Make a BIM-EDIT command or userid inaccessible .........................................303 DISCONN - Terminate connection to VTAM or TCP/IP ......................................................304 DISPLAYI (VSE) - Display text of an ICCF member ..............................................................305 ENABLE - Make a BIM-EDIT command or userid accessible.............................................306 FALTERS - Display / alter a library/user security entry .........................................................307 FALTERU - Display / alter user attributes................................................................................308 FDEFINES - Create a new library/user security - formatted screen .................................309 FDEFINEU - Create a new user - formatted screen ............................................................311 GETI (VSE) - Alter session text - insert text of an ICCF member ........................................313 IV TABLE OF CONTENTS INQUIREU - Display user attributes......................................................................................... 314 LIBRARYG (VSE) - Display list of members on a logical backup tape............................ 315 LIBRARYG (MVS) - Display list of members on a logical backup tape .......................... 316 LIBRARYI (VSE) - Display list of members in an ICCF library .............................................. 317 LIBRARYN - Display list of BIM-EDIT temporary passwords................................................. 318 LIBRARYR - Display list of BIM-EDIT routines .......................................................................... 319 LIBRARYS - Display list of library/user security entries ......................................................... 320 LIBRARYT - Display list of active BIM-EDIT tasks.................................................................... 322 LIBRARYX - Display list of mail proxies ................................................................................... 324 LOADI (VSE) - Create member from ICCF library member.............................................. 325 LOADIL (VSE) - Create members from ICCF library members......................................... 326 LISTI (VSE) - Display text of an ICCF member...................................................................... 328 NEWCOPY - Load a new copy of a BIM-EDIT module...................................................... 329 PRINTG (VSE) - Print members contained on a logical backup tape ........................... 331 PRINTG (MVS) - Print members contained on a logical backup tape.......................... 332 PURGEN - Delete a BIM-EDIT temporary password ........................................................... 333 PURGES - Delete library/user security entry......................................................................... 334 PURGET - Delete BIM-EDIT task............................................................................................... 335 PURGEU - Delete BIM-EDIT user.............................................................................................. 336 PURGEX - Delete mail proxy................................................................................................... 337 READS - Set TXS variables to specified library/user security entry................................... 338 READU - Set TXU variables to attributes of specified user................................................. 340 RECOVER - Recover a member to a previous change level.......................................... 341 REORG - Concatenate fragmented areas in the BIM-EDIT library ................................. 344 RESTORE (VSE) - Re-create a specified member from a logical backup tape ........... 345 RESTORE (MVS) - Re-create a specified member from a logical backup tape.......... 348 RESTOREL (VSE) - Re-create a specified library from a logical backup tape .............. 350 RESTOREL (MVS) - Re-create a specified library from a logical backup tape............. 352 SETKEYS - Set user's PF keys to initial standards ................................................................... 354 SHUT - Shut Down BIM-EDIT for normal use .......................................................................... 355 TRACE - Activate or inactivate the trace facility............................................................... 357 VERIFY - Check the integrity of the BIM-EDIT library........................................................... 358 ZAP - Apply temporary fixes to BIM-EDIT.............................................................................. 359 Chapter 9. Installation and Maintenance..............................................................................360 Upgrades ................................................................................................................................... 360 Contacting BIM-EDIT Technical Support ............................................................................. 360 First Time Installation on VSE ................................................................................................... 361 System Prerequisites.......................................................................................................... 361 Distribution Tape Format.................................................................................................. 361 Installation Steps................................................................................................................ 361 First Time Installation on MVS ................................................................................................. 371 System Prerequisites.......................................................................................................... 371 Distribution Tape Format.................................................................................................. 371 Installation Steps................................................................................................................ 371 Installing BIM-EDIT under an Alternate System Name ....................................................... 379 First Time Logon ........................................................................................................................ 380 Initial Contents of Libraries ..................................................................................................... 382 Common Problems.................................................................................................................. 384 Chapter 10. Operations and Administration..........................................................................386 V TABLE OF CONTENTS Starting BIM-EDIT .......................................................................................................................387 Controlling BIM-EDIT from the System Console ...................................................................389 Backups and Restores .............................................................................................................390 Logical vs Physical .............................................................................................................390 Backup/Restore Scenarios...............................................................................................390 Full Backup ..........................................................................................................................391 Full Logical Restore ............................................................................................................392 Selective Logical Restore .................................................................................................393 Selective Logical Backup.................................................................................................394 Full Physical Restore...........................................................................................................395 User Definition and Modification ...........................................................................................396 Creating a User ..................................................................................................................396 Changing a User ................................................................................................................397 Deleting a User ...................................................................................................................397 Library Security ..........................................................................................................................398 Basic Library Security.........................................................................................................398 Generic Library Security ...................................................................................................399 Library Security for VSE Sublibraries and MVS PDSs .....................................................399 External Security (MVS Only) ..................................................................................................401 Purge Control ............................................................................................................................402 Background ........................................................................................................................402 Continuing Maintenance ................................................................................................402 Getting a Member Back ..................................................................................................402 Managing Disk Space .............................................................................................................404 How BIM-EDIT Uses Disk Space ........................................................................................404 Fragmentation ...................................................................................................................404 Estimating the Blocks Required for a BIM-EDIT Library ................................................405 Converting BIM-EDIT Blocks to FBA Blocks/CKD Tracks...............................................406 Doing Something About Too Little Space.....................................................................406 Managing Memory Utilization ................................................................................................407 Memory Management Control Variables ....................................................................408 Initial Storage Estimates for VSE ......................................................................................409 Initial Storage Estimates for MVS .....................................................................................410 Transferring Members from Other Editors.............................................................................412 Transferring Members from ICCF (VSE Only).................................................................412 Transferring Members from MVS PDSs or VSE Sublibraries ..........................................412 Transferring Members using the LOADT Command....................................................412 Transferring Members by Creating a BIM-EDIT Command Tape..............................413 Chapter 11. Customizing BIM-EDIT..........................................................................................414 Modifying System Control Variables.....................................................................................415 Modifying DEFINE Templates ..................................................................................................416 Disabling TYPE Check........................................................................................................417 Modifying HELP Displays ..........................................................................................................418 Modifying Error Messages .......................................................................................................419 Controlling Logon .....................................................................................................................420 Forcing Secured Logon ....................................................................................................420 Overriding Logon ...............................................................................................................420 Customizing the Logon Screen .......................................................................................421 Performing Special Processing after LOGON (LOGON Procedure) ........................421 Performing Special Processing before LOGON (BIXLOGN Module)........................421 VI TABLE OF CONTENTS Controlling Access to POWER Job Entries or JES Data Sets ............................................. 423 Modifying COMPILE, PROCESS, and SUBMIT....................................................................... 425 The COMPILE command ................................................................................................. 425 The PROCESS command ................................................................................................. 428 The SUBMIT command ..................................................................................................... 428 The SUBMITF Exit (BIXPWSB) .............................................................................................. 429 Modifying Other System Procedures.................................................................................... 430 Creating Library, User and Site Commands ....................................................................... 431 How Command Resolution Works ................................................................................. 431 Creating Your Own Commands .................................................................................... 432 Preempting BIM-EDIT's Commands................................................................................ 432 Creating a CHECKIN Command Which Keeps Old Versions.......................................... 434 Altering System Commands, Names and Restrictions (BIFXCCM Table) ...................... 435 Structure of the System Command Table .................................................................... 435 Changing BIFXCCM.......................................................................................................... 436 Creating Commands Which Access CICS Transactions (BIFXCTR Table)..................... 438 Modifying, Creating, Deleting BIM-EDIT Modules (BIFARMP Table)................................ 440 Background........................................................................................................................ 440 Modifying BIM-EDIT Modules ........................................................................................... 442 Creating New BIM-EDIT Modules.................................................................................... 444 Deleting BIM-EDIT Modules.............................................................................................. 444 Changing MAPF Screen Attribute Characters (BIFTBAT Table)....................................... 446 Changing the CICS Data Module (BIMCSDT) .................................................................... 447 Chapter 12. BIM-EDIT BTAM Terminal Interface Facility........................................................448 Table Generation..................................................................................................................... 449 Defining a BTAM BTMOD.................................................................................................. 450 Defining a BIM-EDIT BTAM Interface Terminal Control Table .................................... 451 BIMTCT Parameters for TYPE=INITIAL.........................................................................452 BIMTCT Parameters for TYPE=LINE.............................................................................453 BIMTCT Parameters for TYPE=TERMINAL ..................................................................454 Startup........................................................................................................................................ 456 Shut Down ................................................................................................................................. 457 Messages................................................................................................................................... 458 Chapter 13. Technical Overview ............................................................................................459 Register Utilization / Calling Conventions............................................................................ 459 Control Blocks / Buffers ........................................................................................................... 460 Key Sequence Access ............................................................................................................ 461 Text Access .............................................................................................................................. 462 Recovery / Integrity ................................................................................................................. 464 Index............................................................................................................................................465 VII TABLE OF CONTENTS VIII Chapter 1. Introduction This manual is the second of two manuals describing BIM-EDIT, a data storage and editing program for IBM mainframe computers. The audience for this manual is advanced BIM-EDIT users, and those who are assigned to install, maintain, and manage BIM-EDIT. In general, this manual is written on the assumption that you have read and understood the first manual, the BIM-EDIT User Reference Manual. (However, it should be possible to perform the initial installation of BIM-EDIT without a detailed understanding of the product). This manual is subdivided into two parts: the Advanced User chapters and the Operations and Administration chapters. The Advanced User chapters follow: • Chapter 2 is a tutorial on how to write procedures. • Chapter 3 is the reference chapter for additional commands that are used in BIMEDIT procedures and when using BIM-EDIT in batch. • Chapter 4 is the reference chapter on the predefined variables. • Chapter 5 explains how to use BIM-EDIT in batch. • Chapter 6 explains how to access BIM-EDIT from a user program. • Chapter 7 describes BIM-EDIT procedures applications that are installed with the product. The remaining chapters are the Operations and Administration chapters: • Chapter 8 is the reference chapter on the Operator and Administrator commands. • Chapter 9 describes how to install and maintain BIM-EDIT. • Chapter 10 describes issues relating to keeping BIM-EDIT running. • Chapter 11 discusses various ways you can customize BIM-EDIT to your needs. • Chapter 12 discusses BIM-EDIT's BTAM interface. • Chapter 13 provides technical detail on how BIM-EDIT works. Its principal value is as background information. This version of BIM-EDIT is capable of cooperating with the PC-based product BIMEDIT/XP. BIM-EDIT/XP is designed to offload processing from the mainframe to the user's workstation and to provide an editing environment released from the restrictions of the IBM 3270 display terminal protocol. When the term "Workstation" appears in this manual to describe a method of online access to BIM-EDIT, it refers to BIM-EDIT/XP. This manual is not intended as documentation for BIM-EDIT/XP. Chapter 1. Introduction Page 1 Chapter 2. Writing Procedures This chapter discusses writing procedures. BIM-EDIT procedures are a powerful feature you can use to: • perform automatic processing • simplify complex editing needs • perform actions to many members • modify the function of BIM-EDIT commands BIM-EDIT has special commands that may be used in a procedure to control the execution of normal BIM-EDIT commands. In aggregate, these commands constitute a "computer programming language". In order to write procedures with any complexity, you must learn how to use this language. Writing procedures is also relevant to the way BIM-EDIT is used from batch processing (the Batch Utility) and when BIM-EDIT is called directly from a program you might write (the Application Interface). This chapter will explain how to write procedures, with integrated examples. It is intended to be read in sequence. It is not intended to be used for reference. Detailed reference information about commands is provided in Chapter 4, Commands, in the BIM-EDIT User Reference Manual, and Chapters 3, Advanced User Commands, and 7, Operator and Administrator Commands, in this manual. Detailed reference information about predefined variables is available in Chapter 4, Predefined Variables, in this manual. The sections in this chapter are: Page 2 • Basic Procedures • Editing Without the LCA and Text Display Area • Making a Display Session into a Procedure • Variables • Control Commands • The MAPF Command • Predefined Variables • The EXAMINE Command • Text-Following Commands • Using BROWSE and READ to Process Members, Libraries, Etc. • Application Interface Capability for Procedures • Debugging Procedures • Special Techniques BIM-EDIT System Reference Manual Basic Procedures Basic Procedures Procedures can be quite simple. If you create a member of type PROC and enter BIMEDIT commands into it, you will have a procedure. You can execute the procedure by typing the EXECUTE command followed by the name of the member. An Example Suppose you have been given the assignment of modifying a member by changing all instances of the string of characters SYSLST to SYSOUT. Also suppose you are required to insert a line before every line you change which reads: * FOLLOWING CHANGED BY <your initials> <today's date> You could perform this change instance-by-instance by the following sequence of operations: 1. Use the LOCATE command to find the next instance of SYSLST. 2. Use the CHANGE command (or directly edit) to change it to SYSOUT. 3. Move up one line. 4. Insert the comment line. But what a bore if there were fifty instances of SYSLST! It would be quicker to use multiple commands on the command line as described in Chapter 6 of the BIM-EDIT User Reference Manual, but there are limitations to that approach: • If you have to perform the same process several times with intervening commands, you will have to re-key the multiple commands. • The commands are limited to about 74 characters total. (You can get around these limitations in some cases by assigning commands to PF keys and by clever use of the CHANGE command. However, your "solution" will become more and more convoluted.) Instead, let's create a simple procedure to perform this edit: => define lst2out,proc;ed Now type the following commands into the session: l SYSLST ;find next entry ;(procedure will err here if no more) c SYSLST,SYSOUT ;perform the change up 1 ;up a line insi '* FOLLOWING CHANGED BY WDM 12/31/95' ;insert marker line and finally: => save Chapter 2. Writing Procedures Page 3 Editing without the LCA and Text Display Area To use this procedure, position at the top of an EDIT session of the member to be changed and type: => &exec lst2out Now just keep hitting ENTER until the following message appears: (BIRSCN1A) ** STR "SYSLST" NOT FOUND ** (This message will appear when the LOCATE command on the first line of the procedure fails by not finding the string. Since this is an error, the procedure will terminate at that point.) The Rules of Basic Procedures To create a procedure, you simply DEFINE a member of type PROC, EDIT it and type BIM-EDIT commands into the text area, one to a line. Almost any BIM-EDIT command can be used in a procedure. Once you have all the commands typed, save the session. There are a few things to be aware of while entering the procedure: • You cannot use the semicolon (;) to put multiple commands on a line because all text to the right of a semicolon on a procedure line is treated as a comment. • You can make comment lines by beginning a line with an asterisk (*), although using semicolons is more flexible. (Asterisks are an old method of commenting BIM-EDIT procedures. New procedures should use semicolon.) • You can continue a command to the next line by ending the first line with a space followed by a dash (" -"). To invoke a procedure, you can use the EXECUTE command followed by the name of the procedure member or, if the name of the procedure is less than eight characters and it is in the attached library, simply type the name of the procedure member (that is, leave off the EXECUTE). When a procedure is invoked, the commands you typed into it will be processed by BIM-EDIT, in the order they appear in the member, until it encounters • the end of the procedure • an error, or • one of the special procedure commands that changes the order of execution (to be described shortly) Editing without the LCA and Text Display Area Editing a session is different in a procedure than it is on the screen. This is because the LCA and the text display area are not accessible to a procedure. Specifically for use in procedures and the Batch Utility (BIM-EDIT executed in batch), BIM-EDIT provides a set of commands to perform changes to sessions without reference to the LCA or the text display area. This section discusses the command line equivalents of what you are used to doing on the screen. (You may have noticed the example in the previous section used INSERTI, one of these commands.) Page 4 BIM-EDIT System Reference Manual Editing without the LCA and Text Display Area Command Line Equivalents of LCA Commands A number of commands are fairly direct equivalents of the LCA commands. For example, LADD can be used to add lines to a session, just like the LCA "A" command. A table of similar equivalencies is given below. All of these commands are documented in detail in Chapter 4 of the BIM-EDIT User Reference Manual. These commands all share some common features: • They operate on the current session. • They operate starting at or after the "current line". • They have an FCT operand that specifies how many lines are to be affected. If no value is specified for FCT, one line will be affected. If "*" is specified for FCT, the command will affect all lines from the current line to the end of the session. • If relevant, they have a ZONE operand that specifies the column range that is to be affected. If no value is specified for ZONE, the current session zone will be used. The following table lists equivalencies: An B Cn Dn G I Jn Kn LADD n (or INSERTI) UP 1 then GET $STACK STACK n,CL DELETE n MERGE GET $STACK MERGE n STACK n,AP Mn Nn "n <n >n +n (n )n STACK n,CL then DELETE n STACK n,AP then DELETE n DUP n SHIFT -n SHIFT +n CENTER n JUSTIFYL n JUSTIFYR n These commands can fairly easily substitute for the type of LCA command that specifies a number of lines. They are often more convenient than LCA commands if a ZONE must be specified. However, the bracketed (double letter) LCA feature has no direct equivalent -- you must determine the number of lines to be affected before using a command. Chapter 2. Writing Procedures Page 5 Editing without the LCA and Text Display Area Text Display Area Equivalents Three commands are used to perform most of the text display modifications that are done in procedures: INSERTI used to insert a line containing text in one action. The line is inserted after the current line and the inserted line becomes the current line. OVERLAY used to put text on the current line at a specified column location. It is used where the column is known. (Inserting or deleting characters at a column can be done using the SHIFT command with an appropriate ZONE operand). CHANGE used to type over a line or insert or delete characters in a line (by changing to a longer or shorter string). It is used where the prior contents are known. One other command should be mentioned in this context: the INSERTF command will insert a number of lines into a member. It will be described later in the "Text-Following Commands" section. Positioning in a Session The final area of difference is positioning in a session. Unlike online editing, where you can scroll through the session and identify the location of the edit by sight, in a procedure you must always use a command to position exactly. The commands which can be used to position are: TOP BOTTOM UP DOWN (or NEXT) POSITION LOCATE LOCATEU NFIND NFINDUP FIND FINDUP Notes: 1. FORWARD and BACK are not typically used in procedures because they are dependent on logical screen size, which may differ by terminal. (Although the combination BOTTOM and then FORWARD is sometimes used). 2. BOTTOM positions to the last screen in the session. To position to the last line of a session, use BOTTOM followed by FORWARD. 3. The bottom is the last line of the session but the top is one line before the first line of the session. FINDUP, LOCATEU, and NFINDUP from the bottom of a session will not find the target if it is on the last line but FIND, LOCATE, and NFIND from the top of a session will find the target if it is on the first line. Similarly, INSERTI from the top of the session will insert the first line of the session (that is, the inserted line will be "after the line before the first line of the session"). These commands are described in more detail in Chapter 4 of the BIM-EDIT User Reference Manual. Page 6 BIM-EDIT System Reference Manual Making a Display Session into a Procedure Making a Display Session into a Procedure One of the most common uses of basic procedures is making a display session into a procedure. For example, suppose you need to ALTER all members of the current library which are of type COBOL and contain the string PAYABLE in their title. You want to change the assigned user to PATTY. If there were many members, you would have to do a fair amount of typing to make this change manually. However, it is easy to do this task as follows: 1. Use the command => LIB TYPE=COBOL TITLE=\PAYABLE FMT=NAME to create a display session with just the member names, like the following: -- TOP OF DISPLAY -CJA22 CJA23 CJA24 CJA26 CJA27 CJA39 CJA67 -- END OF DISPLAY -- 2. Use the commands => OVERLAY 1 'ALTER' * => OVERLAY 35 'USER=PATTY' * to change the display session to this: -- TOP OF DISPLAY -ALTER CJA22 ALTER CJA23 ALTER CJA24 ALTER CJA26 ALTER CJA27 ALTER CJA39 ALTER CJA67 -- END OF DISPLAY -- 3. USER=PATTY USER=PATTY USER=PATTY USER=PATTY USER=PATTY USER=PATTY USER=PATTY Use the command => EXECUTE / to execute the display session as commands. With a little ingenuity, this technique can be used to purge, rename or modify members. It can also be used for other types of entities which are listed in display sessions. Chapter 2. Writing Procedures Page 7 Variables Variables Simply storing and executing sequences of BIM-EDIT commands in a member is convenient but not particularly powerful. One weakness is that these sequences of commands aren't "generic", that is, they can't be used for several similar tasks. For example, we would have to write a different procedure if we wanted to change LEDGER1 to LEDGER2 instead of SYSLST to SYSOUT. Of course, there is more to BIMEDIT's procedure capabilities. To make procedures generic, we need to discuss "variables". BIM-EDIT variables are named locations in which you can store numerical working values (for example, the current line number) or character working values (for example, source and target strings of a CHANGE command). The variables discussed in this section are ones you "declare" to BIM-EDIT before you use them. They can have nearly any name and value you care to give them. (There are also "predefined variables" which you can use to interact with BIM-EDIT itself. We will discuss them later in this chapter.) Variable Declaration Before you can use a declared variable, you must tell BIM-EDIT to reserve space and a name for it by using the DECLARE (abbreviated DCL) command. DECLARE can only be used within a procedure and has six operands: • The name you want to give the variable (up to 8 characters, cannot be a name already used for a variable, or a name reserved for a predefined variable). • The type of value the variable is to contain: CHAR NUM NUMS character unsigned numeric signed numeric • The maximum length of the variable's value. • The "format" in which to represent the variable value when it is "replaced" into commands or displays (V=variable length, F=fixed length, Z=fixed length number with zero suppress, E=fixed length number with commas) • The "case" of the value of the variable. If case is omitted, it is assumed to be "U" for upper case but "M" for mixed case can be specified. • The "scope" of the variable. If scope is omitted, it is assumed to be "local" (only visible to the current procedure). "GLOBAL" can be specified to make the variable visible to all procedures nested within a call. Examples of the use of the DECLARE command would be: DECLARE MYVAR,CHAR,10,V DCL GEORGE72,NUM,6,F ;CREATE "MYVAR" - VALUE CAN BE 10 CHAR VARYING LEN ;CREATE "GEORGE72" - VALUE CAN BE 6 DIGIT FIXED LEN Locally declared variables are available only within the procedure they are declared in. That is, they cease to exist when the declaring procedure terminates. However, globally declared variables remain available as long as any procedure for this logon is executing. Page 8 BIM-EDIT System Reference Manual Variables Array Variables Array variables can be defined by following the 'name' field of the DECLARE command by the number of entries to be contained in the array. The following example declares an array of 43 entries for variable name CMD: DECLARE CMD(43),CHAR,1,F Array variables can be of any type (CHAR, NUM or NUMS). Individual array entries are referenced by including the desired occurrence immediately after the variable name, enclosed in parentheses. The occurrence value can either be a literal, or a numeric variable: SETD VAR1 CMD(1) SETD VAR1 CMD(&N) (this requires variable PPDVBL to be set to 1) If you specify the array occurrence number as a variable, your procedure must also set the predefined variable PPDVBL to 1 to enable variable replacement. Signed Numeric Variables Numeric variables can be defined as either "Signed" or "Unsigned": DECLARE N1,NUM,3,F DECLARE N2,NUMS,3,F (Declare an unsigned numeric variable) (Declare a signed numeric variable) SET N2,1 SET N2,-1 (set the variable N2 to a positive 1) (set the variable N2 to a negative 1) If an attempt is made to generate a negative number in an unsigned variable, the offending command will be rejected. Variable Substring Support A special syntax can be used by procedures to provide 'substring' access to variables: varname{start,length} • The value for 'start' represents the starting position, relative to 1, of the substring. It cannot exceed the length of the data in the variable. • The value for 'length' represents the length of the substring. The sum of 'start' plus 'length' cannot exceed the length of the data in the variable. Assuming the variable VAR1 contains the value: "ABCDEF": SET VAR2 VAR1{1,3} SET VAR2 VAR1{2,1} • (VAR2 will contain 'ABC') (VAR2 will contain 'B') Substring notation can be used anywhere in a procedure where a variable can be used, including variable substitution. The values for 'start' and 'length' can also be variables. IF VAR1{&S,&L} EQ 'ABC' Chapter 2. Writing Procedures Page 9 Variables If you specify 'start' or 'length' as variables, your procedure must also set the predefined variable PPDVBL to 1 to enable variable replacement. • When using substring notation with an arrayed variable, the array index must appear before the substring value: IF CMD(10){1,3} EQ 'ABC' The above example checks for positions 1 through 3 of the 10th array entry of variable CMD to be equal to 'ABC'. Variable Replacement The principal use of variables is to "replace" their values into commands or text in order to get work done. Replacement of the variable value for the variable name will occur anywhere within the procedure if: • The variable name (in uppercase) is preceded by an ampersand (&) • The procedure contains the following command prior to the line where replacement is to take place: SET PPDVBL,1 Variable replacement will take place before any other processing of the line occurs. Because of this, the value that is replaced into a command may be an operand, a part of an operand, or several operands. For example, consider: LOCATE &STR If the variable STR had the value "Jones", this line will be processed by BIM-EDIT as a simple LOCATE command: LOCATE Jones But if the variable STR had the value "XXX case=m zone=1-10", this line will be treated as a more complex command: LOCATE XXX case=m zone=1-10 And if STR had the value "XXXX YYYY ZZZZ", the same line would be in error: LOCATE XXXX YYYY ZZZZ You should consider the possibility that the value of a variable is null (contains no characters) or contains special characters which would cause errors. Generally, replacement entry for a CHAR variable into a command should be enclosed in single LOCATE '&STR' There are some additional rules for variable replacement: • Page 10 To be recognized, a variable name must be uppercase. It must end with a character which is invalid in a variable name, which serves to separate it from any text which follows it. If the special character following the variable name is a period (.), it will be removed when the replacement is done. BIM-EDIT System Reference Manual Variables • If the & is followed by text which is not a declared or predefined variable name, the line remains as is. • After any replacement takes place, the line will be re-examined to see if other replacements can be performed. These rules allow some tricky (and very useful) things to be done: 1. The value of a variable can be butted up against other text by inserting a period between the variable name and the text. For example, if SIZE is a variable which has the value "32", the statement: OVERLAY 20 'SIZE=&SIZE.K' would overlay the text "SIZE=32K" in column 20 of the current line. (Without the period, BIM-EDIT would have attempted to find the value of the variable SIZEK). Note that the "period rule" has a problem-prone side effect: it is common to store the name of a member in one variable and the name of its library in another. When the time comes to replace the full member name into a command, you must place TWO periods between the variable names because the first period will be eliminated by the period rule: EDIT &LIBNAME..&MEMNAME 2. A value of a variable can be replaced into a line to make the name of another variable, whose value is then replaced. For example, suppose: • LINE is not declared as a variable. • The following are declared: DCL LINE01,CHAR,50,V DCL LINE02,CHAR,50,V DCL LNO,NUM,2,F • The following are values LINE01's value is "This is the first line" LINE02's value is "This is the second line" LNO's value is 1 The command INSERTI '&LINE&LNO' will cause a line reading "This is the first line" to be inserted in the current session. The sequence of events is this: a. BIM-EDIT would find &LINE, but it wouldn't replace it because LINE is not declared as a variable. b. BIM-EDIT would find &LNO and would replace it with "01". (The leading zero would be inserted because the format is "F"). Chapter 2. Writing Procedures Page 11 Variables c. Having made a replacement, BIM-EDIT would re-examine the line and find &LINE01, which it would replace with "This is the first line". There are no more replacements. d. Since the text is enclosed in single quotes, it will be treated as a single operand to the INSERTI command. Assigning Values to Variables The following commands are used to set or modify the values of variables: SET sets the value of a variable to a specified value. Its first operand is the name of the variable and its second operand is the value. For example, SET MYVAR,'JELLO' will set the value of variable MYVAR to the string of five characters "JELLO". (If MYVAR was declared with a maximum length less than five, the value will be truncated). Replacement can be used in the value operand of the SET command to set the value of a variable in a way which involves the value of another variable. For example, SET YOURVAR,'PLUM &MYVAR' will set the value of variable YOURVAR to the five characters "PLUM " followed by the value of the variable MYVAR. (If MYVAR still has the value "JELLO", YOURVAR would have the value "PLUM JELLO"). SET has two optional operands which can be used to set a variable to PART of a character string value. For example, SET YOURVAR,'JELLO',3,2 will set the value of variable YOURVAR to the two characters starting with the third character in "JELLO" -- in other words "LL". SETD sets the value of a variable to the value of another variable. Its first and second operands are the names of variables. For example: SET VAR2,625 SETD VAR1,VAR2 will set VAR1 to the value of VAR2, that is, 625. You can use SET with replacement to move a value from one variable to another, but SETD avoids the possibility of problems when the value to be moved contains special characters SETD has two optional operands exactly like SET which can be used to set a variable to part of the value of another variable. SETL Page 12 sets the value of a variable to the current length of the value of another variable. Its two operands are the names of two variables. As an example, BIM-EDIT System Reference Manual Variables SET PHRASE,'All our yesterdays' SETL PHRASEL,PHRASE would set the value of variable PHRASEL to 18. SETM sets the value of a variable to the message text associated with a message id defined in; $SYS.CTRL.MESSAGES or $SIT.CTRL.MESSAGES. As an example, SETM MSG,'BIGMODE' will set the value of MSG to: (BIGMODE ) ** A SESSION MUST BE ACTIVE FOR THIS COMMAND ** ADD adds a specified value to the value of a NUM variable. For example, SET COUNT,1 ADD COUNT,2 will set the value of COUNT to 3. If you want to add the value of one variable to another, you must use replacement: ADD COUNT,&SUBCNT SUBTRACT subtracts a specified value from the value of a NUM or NUMS variable. BIM-EDIT NUMS variables can be either positive or negative integers. BIM-EDIT NUM variables can only be positive integers. It is an error if the result of a NUM variable becomes negative. Note that SUBTRACT cannot be abbreviated SUB because SUB is the abbreviation for SUBMIT. MULTIPLY multiples a specified value by the value of a NUM variable. DIVIDE divides a specified value into the value of a NUM variable. VAPPEND moves characters after the used portion of a specified CHAR variable. VTRUNCAT sets the value of a specified CHAR variable to not include any trailing blank portion. VUPPERCA translates the value of a specified CHAR variable to uppercase. VLOWERCA translates the value of a specified CHAR variable to lowercase. If you are used to "compiled" computer languages, the syntax of the BIM-EDIT variable assignment commands can be initially awkward, particularly when replacement is used. Try to remember that the FIRST operand for any of these commands is the name of a variable. The SECOND operand may be either a value (in which case replacement must be used to get the value of a variable) or the name of a variable (in which case replacement should not be used). Some more examples may help clarify this: Chapter 2. Writing Procedures Page 13 Variables SET A,1 SET A,S SETD A,S SET A,&S SETD A,&S ADD A,1 ADD A,&B ADD A,B ;SETS A TO A VALUE OF 1 ;SETS A TO A VALUE OF "S" (ERR IF A WAS DECLARED NUM) ;SETS A TO VALUE OF VARIABLE S ;SETD A,S DOES SAME THING (WITH FEWER POTENTIAL PROBLEMS) ;SETS A TO VALUE OF VARIABLE WHOSE **NAME** IS VALUE OF S ;INCREMENTS VALUE OF A BY 1 ;INCREMENTS VALUE OF A BY VALUE OF B ;ALWAYS AN ERROR The PARSE Command There is one other command which can be used to set the values of variables, the special-purpose PARSE command. The purpose of PARSE is to set variables to the values of "parameters" which were supplied when the procedure was started. PARSE is very important because it provides one of the major ways in which you can tell a prewritten procedure what you want it to do. The parameters of a procedure behave just like the operands of a command. In fact, from a usage standpoint, procedures behave so much like commands that you may be unaware that quite a number of the standard BIM-EDIT "commands" are implemented as procedures. PARSE is easiest to explain with an example: DCL MEM,CHAR,10,V DCL FCT,NUM,5,V PARSE MEM,FCT This PARSE command will set the values of the variables MEM and FCT to the values specified when the procedure was invoked. If the procedure is named TESTPROC and it was invoked with => TESTPROC MEMBER1,15 the value of MEM will be "MEMBER1" and the value of FCT will be 15 after the PARSE command is executed. The PARSE command handles the other forms you are familiar with for BIM-EDIT command operands. A few more examples: => TESTPROC FCT=15 MEM=MEMBER1 will have exactly the same effect as the first invocation. => TESTPROC MEM='DAVID,MARY' will set MEM to the ten character string "DAVID,MARY" and will set FCT to zero. You should be careful in naming the variables used in a PARSE because those names become a part of how your procedure can be invoked. We recommend you use the same names used for operands having similar functions in BIM-EDIT commands. Variables on the PARSE command for which no corresponding value is provided in the invocation will be set to null if CHAR and zero if NUM. Page 14 BIM-EDIT System Reference Manual Variables Improvements to the Change-with-Comment Example We can now use what we have learned about variables to make the example from the first section of this chapter more generic. The improved procedure reads: SET PPDVBL,1 DCL FSTR,CHAR,30,V DCL TSTR,CHAR,30,V DCL DATE,CHAR,8,V DCL INIT,CHAR,3,V PARSE FSTR,TSTR,DATE,INIT LOCATE '&FSTR' CHANGE '&FSTR','&TSTR' UP 1 INSI '* CHANGED &DATE &INIT' The procedure can now be used to change any string to any other string. The date of the change and the initials of the person making the change can also be provided. To use this procedure, we would enter a command like: => LST2OUT SYSLST SYSOUT 3/8/92 WDM Chapter 2. Writing Procedures Page 15 Control Commands Control Commands So far, we have explained how to make basic procedures and how to use variables to make them generic. However, these procedures are just a way to record a string of commands and play them back -- interesting, but not really powerful. In this section, we add the last element necessary to make them powerful: control commands. Control commands allow you to write a procedure which does not execute in a simple sequence from top to bottom. Control commands alter the sequence in which other commands are executed. With control commands, you can • execute commands over-and-over, in what programmers call a "loop" • execute commands selectively, depending on conditions arising during processing • terminate the procedure before the bottom Control commands can only be used in a procedure. BIM-EDIT provides several control commands: EXIT This command terminates a procedure. It has two operands, a "return code" and a message. If "return code" is not "OK", the procedure is considered to have terminated with an error. The message will be displayed on the information line when the procedure terminates. For example, EXIT ER,'MEMBER NAME OMITTED' will terminate the current procedure with a return code of "ER" and a message of "MEMBER NAME OMITTED". Because the procedure is in error, the command used to invoke it will stay on the command line. GOTO This command works hand-in-hand with the LABEL command. GOTO causes BIM-EDIT to start executing commands at a different line in the procedure. Specifically, it will set the line following the matching LABEL command as the next line where it will execute. (Programmers say that the GOTO "branches" or "jumps" to the LABEL command.) GOTO has one operand, which is the name on the matching LABEL command (an arbitrary eight character name -- it CAN be the same as a command name or a variable name). If the corresponding LABEL precedes the GOTO in the procedure, the name must be preceded by a minus sign. For examples, see LABEL. GOSUB Page 16 This command works hand-in-hand with the LABEL and RETURN commands. The GOSUB command is similar to the PERFORM function in other languages. GOSUB causes BIM-EDIT to start executing commands at the line following the matching LABEL command, and will return to the line following the GOSUB when a RETURN command is executed. GOSUBs can be nested 16 levels deep. Each RETURN command executed will return to the most recent GOSUB command. BIM-EDIT System Reference Manual Control Commands GOSUB has one operand, which is the name on the matching LABEL command. If the corresponding LABEL precedes the GOSUB in the procedure, the name must be preceded by a minus sign. LABEL The LABEL command does nothing if it is executed -- its only purpose is to serve as the target point for a matching GOTO or GOSUB. LABEL has one operand, the name on the matching GOTO/GOSUB command(s). LABEL has special formatting rules: the word LABEL must start in column 1 and the name must be separated from the label name by one space. An example of the use of GOTO and LABEL is: SET PPDVBL,1 DCL LINE,NUM,6,V LABEL L100 GOTO L200 NEVER EXECUTED LABEL L200 ADD LINE,1 INSERTI 'This is line &LINE' GOTO -L100 The sequence of execution for this example is: 1. Declare the variable LINE. (A newly declared NUM variable has a value of zero; a CHAR variable has a value of null.) 2. Execute the LABEL L100 command, which does nothing. 3. Execute the GOTO L200 command, which causes the command following the LABEL L200 to be the next command executed. 4. Add 1 to the value of the variable LINE, making its new value 1. 5. Insert the line "This is line 1" into the current session. 6. Execute the GOTO -L100 command, which causes the command following the LABEL L100 to be the next command executed. 7. Execute the GOTO L200 command, which causes the command following the LABEL L200 to be the next command executed. 8. Add 1 to the value of the variable LINE, making its new value 2. 9. Insert the line "This is line 2" into the current session. 10. And so forth, endlessly repeating steps 6 through 9. You should note that the line NEVER EXECUTED is indeed never executed (which is a good thing, since it would be an error unless somebody had defined a procedure NEVER). You should also note that this is what programmers call an "infinite loop" -- it will go on forever. Fortunately, BIM-EDIT has safeguards against this kind of a procedure, which would otherwise continue to execute until it reached the member size limit or filled the BIM-EDIT library. If you have never done any programming, you may find that you have to look at this example for a while to see how it works. You may find it Chapter 2. Writing Procedures Page 17 Control Commands useful to draw arrows from the GOTO commands to the matching LABEL commands. IF The IF command allows "intelligence". Using the IF command, you can have a BIM-EDIT procedure alter its course of action depending on the outcome of a test. The IF command has three operands: • the name of a variable whose value is to be tested. • the type of test to be performed. The codes which can be used are EQ meaning "equal to", NE meaning "not equal to", LT meaning "less than", GT meaning "greater than", LE meaning "less than or equal to", and GE meaning "greater than or equal to". • a specified value to test the variable's value against. If the test is satisfied, BIM-EDIT will execute the command on the line after the IF command, otherwise it will ignore it. Example of the IF command: SET PPDVBL,1 DCL STR,CHAR,50,V DCL FCT,NUM,6,V PARSE STR,FCT IF FCT,EQ,0 EXIT SV,'FCT MUST BE SPECIFIED' LABEL LOOP UP 1 INSERTI '&STR &FCT' SUBTRACT FCT,1 IF FCT,GT,0 GOTO -LOOP This procedure corrects the flaws of the GOTO/LABEL example. It obtains the value of a string and a count as parameters through the PARSE command. Then it checks to see if the count is zero -- if it is, it exits the procedure with an error message. Finally, it inserts lines into the current session consisting of the value of the string and the value of the counter. Each time a line is inserted, the count is decremented by 1. So long as the count is greater than zero, lines continue to be inserted. Put more plainly, the procedure inserts into the current session a specified number of lines containing a specified string followed by the insertion number. It is not a requirement, but it helps readability to indent the command which follows an IF command by several spaces as a reminder that its execution is conditional on the IF. Page 18 BIM-EDIT System Reference Manual Control Commands IFD The IFD command operates just like the IF command except that a variable name is used for the second value. Thus you can use IFD VAR1,EQ,VAR2 GOTO EQUAL instead of IF VAR1,EQ,&VAR2 GOTO EQUAL IFTHEN The IFTHEN command works hand-in-hand with the ELSE and ENDIF commands. These three commands allow one or more commands to be executed based on the true or false state of the IFTHEN comparison. The IFTHEN command has the same three operands as the IF command. If the condition in the IFTHEN is true, all commands that follow it, up to the next ELSE or ENDIF command will be processed. If the condition in the IFTHEN is false, all commands that follow it are bypassed until the next ELSE or ENDIF command is found. The ELSE command marks the beginning of one or more commands that are to be processed only if the IFTHEN condition is false. The ENDIF command must be used to terminate each IFTHEN command sequence. IFTHEN/ELSE/ENDIF command sequences can be nested up to sixteen levels. IFTHEN DEST,EQ,'LIBR' (commands processed if condition one is IFTHEN SIBUSER EQ LARS (commands processed if condition one ELSE (commands processed if condition one condition two is false) ENDIF ELSE (commands processed if condition one is ENDIF Chapter 2. Writing Procedures ; condition one true) ; condition two and two are true) is true and false) Page 19 Control Commands BLOCK The BLOCK command works hand-in-hand with the ENDBLOCK LOOP and LEAVE commands. These four commands provide for one or more commands to be executed repeatedly without the use of GOTOs or LABELs. The command sequence to be executed begins with the BLOCK command and ends with the ENDBLOCK command. The LOOP command is used in conjunction with an IF command or as an operand on the ENDBLOCK command. It causes execution to resume at the command following the BLOCK command. The LEAVE command is also used in conjunction with an IF command. It causes execution to resume at the command following the ENDBLOCK command, in essence, ending the BLOCK/ENDBLOCK structure. The BLOCK/ENDBLOCK structure can be nested up to 16 levels. Following are two examples of BLOCK/ENDBLOCK structures. SET CT,0 BLOCK IF A,NE,'B' LEAVE ... commands to be repeated ADD CT,1 IF CT,LT,10 LOOP ENDBLOCK SET CT,0 BLOCK ADD CT,1 IF CT,GT,10 LEAVE IF A,NE,'B' LEAVE ... commands to be repeated ENDBLOCK LOOP Page 20 BIM-EDIT System Reference Manual Commentary on Complicated Procedures Commentary on Complicated Procedures The control commands give you the capability to write complex procedures. In the next few sections, we will show you other features that make BIM-EDIT procedures even more powerful. It is already time for some comments on structure and efficiency: 1. The speed of a procedure is primarily related to number of commands executed. Look for ways to eliminate loops by using smarter commands. For example, CHANGE, OVERLAY, SHIFT, JUSTIFYL, and JUSTIFYR are much more efficient over a number of lines than a procedure with a line-by-line loop. 2. A procedure of just 200 lines can be hard to understand if it isn't written carefully. Use meaningful names for variables and labels. Try to do things in a logical order. Use comments liberally. Use blank lines to separate logical sections. Final Improvements to the Change-with-Comment Example Using what we now know, we will make the final improvements in our first example: SET PPDVBL,1 DCL DCL DCL DCL FSTR,CHAR,30,V ;DECLARE VARIABLES TSTR,CHAR,30,V DATE,CHAR,8,V INIT,CHAR,3,V PARSE FSTR,TSTR,DATE,INIT IF DATE,EQ,'' ;ESTABLISH DEFAULT VALUES SET DATE,'12/31/95' IF INIT,EQ,'' SET INIT,'WDM' LABEL LOOP ;LOOP TO HERE LOCATE "&FSTR" ;TERMINATES WHEN CAN'T FIND MORE CHANGE "&FSTR","&TSTR" UP 1 INSI "* CHANGED &DATE &INIT" GOTO -LOOP ;AND GO FOR SOME MORE We have added two features: the ability to use default values (if DATE is not specified, "12/31/95" will be used; if INIT is not specified, "WDM" will be used) and a loop so that all instances of the string from the current line forward will be changed in one execution. (This is not an infinite loop -- it will end when the LOCATE command gets an error from not being able to find another instance of FSTR. We will explain in two more sections how the procedure can detect that the LOCATE failed and end gracefully. We will leave it to you to make that modification and make the date automatically today's date.) Chapter 2. Writing Procedures Page 21 The MAPF Command The MAPF Command We can now build procedures that do the kinds of things that BIM-EDIT commands do -- accept some parameters, perform some processing, and return a message. But what about tasks that need to interact with the user? For example, a procedure in which the user would be given a menu of selections or a long- running procedure that would periodically tell the user what it is doing. For these types of jobs, BIM-EDIT provides the MAPF command. The MAPF command implements full-screen interaction. It displays a screen full of information and can be written to allow the user to update or enter information in preformatted areas of the screen. MAPF is the only command that allows interactive communication between a procedure and a user. MAPF is a multiple-line command. The MAPF is followed by lines which "paint" the contents of the screen to display. The screen lines end at a special terminator line containing the four characters "++/*". In the screen lines, MAPF is sensitive to certain special characters to define fields: & Variable replacement. (This isn't really special to MAPF, but it is worth listing because it is used to obtain "display-only fields" on MAPF.) { Start update field; low intensity ! Start update field; high intensity ¦ Start update field; no display. This option is for passwords. } End update field, if any; subsequent text is low intensity ¬ End update field, if any; subsequent text is high intensity Any of the three "start update field" characters mark the beginning of a position on the screen where the user can enter data. The "start update field" character must be followed on the MAPF lines by the name of a CHAR variable to contain the data. The variable name must be followed, after some optional blanks, either by one of the two "end update field" characters, or by the start-field character of the next updateable field. The space between the "start update field" character and the "end update field" character must be exactly the maximum length of the value for the variable. The exception to this rule is when the length of the variable name exceeds the maximum length of the value. In this case, BIM-EDIT will shift-left the data that follows the long variable name, based on the difference between the data length declared for the field, and the length of the variable name. When the MAPF is executed, the current values of the variables in the update fields will be replaced into those areas of the screen. The user will be able to move the cursor to the update fields and change the values that are displayed there. When an ENTER or PF key is hit to transmit the screen, BIM-EDIT will copy the changed values for the update fields back into the associated variables. MAPF Example This procedure enters name and address data at fixed positions into a member. It allows use of the full width of the member line without using the VIEW command. (It is Page 22 BIM-EDIT System Reference Manual The MAPF Command possible to write a full add/change/delete procedure, but you would need to use "predefined variables", which are discussed in the next section, to display data from the member for editing.) DCL O,CHAR,1,V ;CONTINUE OPTION (NAME 1 CHAR FOR MAPF) DCL NAME,CHAR,40,V ;NAME TO BE ENTERED DCL ADDR,CHAR,40,V ;ADDRESS LINE TO BE ENTERED DCL CITY,CHAR,20,V ;CITY TO BE ENTERED DCL ST,CHAR,2,V ;STATE TO BE ENTERED (NAME LE 2 CHAR FOR MAPF) DCL ZIP,CHAR,9,V ;ZIP CODE TO BE ENTERED DCL MSG,CHAR,50,V ;MESSAGE LINE EDIT MKTG.ADDRESSES DOWN 999999 ;NEW ADDS AT THE BOTTOM LABEL LABDSP ;COME HERE FOR NEW ENTRY SET NAME,'' SET ADDR,'' SET CITY,'' SET ST,'' SET ZIP,'' SET MSG,'PLEASE TYPE NEXT ENTRY' SET O,'Y' ;ASSUME THE USER WANTS TO ENTER MORE LABEL LABERR ;COME HERE FOR CORRECTIONS MAPF ---------------------NAME:!NAME ADDRESS:!ADDR CITY:!CITY STATE:!ST} ZIP CODE:!ZIP MORE ENTRIES?!O} NAME AND ADDRESS ENTRY -------------------------- } } } } (REQUIRED) (REQUIRED) (REQUIRED) (REQUIRED) (Y/N/Q) ¬&MSG ++/* IF O,EQ,'Q' EXIT OK,'NAME AND ADDRESS ENTRY ABORTED' SET MSG,'' IF ADDR,EQ,'' ;CHECK FOR ERRORS SET MSG,'ADDRESS IS REQUIRED' IF CITY,EQ,'' SET MSG,'CITY IS REQUIRED' IF ST,EQ,'' SET MSG,'STATE IS REQUIRED' IF ZIP,EQ,'' SET MSG,'ZIP CODE IS REQUIRED' IF MSG,NE,'' ;IF ANY ERRORS, DON'T INSERT LINE GOTO -LABERR INSERTI '&NAME' ;INSERT NEW ENTRY OVERLAY 42 '&ADDR' ;AND ADD OTHER FIELDS (FIXED FORMAT) OVERLAY 126 '&CITY' OVERLAY 148 '&ST' OVERLAY 152 '&ZIP' IF O,EQ,'N' ;GET OUT IF REQUESTED EXIT OK,'NAME AND ADDRESS ENTRY ENDED' GOTO -LABDSP ;GO BACK FOR ANOTHER ENTRY The procedure initialization is fairly standard. The variable MSG is used as an indicator whether the previous entry had errors. If MSG is null, the previous entry worked and Chapter 2. Writing Procedures Page 23 The MAPF Command the procedure nulls out all the variables except the option variable, O, which is set to 'Y', so it doesn't have to be filled in by the user each time. If MSG is not null, the previous entry had an error and the variables are left with their values for correction. The MAPF displays either empty space for the user to enter into or the previous values if there was an error. MSG itself is displayed in high intensity on the bottom of the screen (because it is preceded by the not symbol). After the user has filled in the fields and transmitted the screen, the procedure checks for the abort option, then checks the values. If any errors are found, the procedure goes back to display before inserting the new line. If no errors are found, the line is inserted, the end option is checked, and then the procedure goes back to display a screen for the user to enter more values. Additional MAPF Rules MAPF has relatively few additional rules: Page 24 • If the MAPF screen does not contain any updateable fields, then the MAPF screen will be sent to the terminal, but no input request will be attempted. Control will be returned directly to the procedure for continued execution. If your procedure has the potential to enter a loop sending multiple MAPF screens of this type, your procedure should include a test of field SIBSIGNL to allow the user to interrupt processing using the ATTN key. • The MAPF must not have more lines than the physical screen size of the terminal where it is run. If your site has terminals of different sizes, you may have to write procedures for the smallest size. • It is possible to determine what key (ENTER, PF, or CLEAR) was pressed by the user to transmit the screen and where the cursor was positioned. It is also possible to position the cursor and cause the screen to beep when it is displayed. These topics are covered in the next section on "predefined variables". BIM-EDIT System Reference Manual Predefined Variables Predefined Variables In addition to the variables you declare, BIM-EDIT provides more than 200 "predefined variables". By referring to predefined variables, you can control BIM-EDIT and obtain information on BIM-EDIT entities (for example, the characteristics of a member). You refer to predefined variables in the same way you refer to other variables: • replace their values into commands and data by using ampersand and the variable name • change their values by using SET, SETD, SETL, ADD, SUBTRACT, MULTIPLY, DIVIDE, VAPPEND, VTRUNCATE, VUPPERCA, and VLOWERCA. (However, many predefined variables are "read-only" and cannot be changed this way). You are probably already familiar with some predefined variables without knowing it: the PF1 through PF24 values you SET to change the way your PF keys work are predefined variables. Chapter 4 of this manual is the reference on predefined variables. In the remainder of this section we will describe briefly some of the variables that are most useful in writing procedures. When you have time, it is worthwhile to review Chapter 4. Predefined variables are separated into groups indicated by their initial three letters. Predefined variables fall into three usage categories: those that control the operation of the BIM-EDIT procedure processor, those that describe stored entities and those that describe current processing. Predefined Variables that Control the BIM-EDIT Procedure Processor Predefined variables which begin with PPD control the execution of commands in procedures. For example, the command SET PPDVBL,1 which we told you to use when you want variable replacement, sets the value of predefined variable PPDVBL, which controls whether variable replacement takes place. You can also set PPDVBL to 0, which will suppress variable replacement. There is one group of PPD variables for every procedure that is currently active (multiple procedures are active when a procedure invokes another procedure). At any point in time, a procedure can only access the group for the procedure that is currently active. The following are the PPD predefined variables of note: PPDALARM If you set to 1, beeper will sound when a MAPF is sent. PPDCOND If you set to 1, commands which fail do not actually terminate the procedure (see further discussion below). PPDCSFLD Name of the variable where you want the cursor positioned when a MAPF is sent. PPDINCL If you set to 1, INCLUDE commands will be recognized. See discussion in the "Text-Following Commands" section. Chapter 2. Writing Procedures Page 25 Predefined Variables PPDKEY Will be set to name of the key pressed to transmit the screen to MAPF. Allows procedures to be function key sensitive. PPDLITEX If you set to 1, the PPDLITDL character will be expanded to a double instance during variable value replacement. PPDLITDL Quote character (' or ") to be expanded during replacement. PPDLPCTR Counter of how many backward GOTOs have occurred so far. PPDLPLMT Limit on backward GOTOs - protects against infinite loops. PPDMSGF Will be set to 1 after MAPF if any fields were changed. PPDVBBAS First column active for variable value replacement. PPDVBL If you set to 1, variable value replacement will take place. PPDVBLMT Number of columns active for variable value replacement. Additional PPD variables are described below in the section on "Text-Following Commands". Predefined Variables that Describe Stored Entities All the groups of predefined variables which describe stored entities work in a similar manner: • Each group of variables describes one type of entity (for example, TXM variables describe members). • At any point in time, each group describes one entity (for example, the TXM variables describe one member -- the "last referenced member"). • A BIM-EDIT command which accesses an entity (such as the EDIT command accessing a member) automatically changes the values of the predefined variables for that type of entity to be those for the entity it accessed. • There are READ and BROWSE commands (described later in this chapter) which change the predefined variables to be those for a different entity without performing any other function. The groups of predefined variables that describe stored entities are: TXL describes a library. Variables of note: TXLLIB TXLTITLE TXM describes a member. Variables of note: TXMDTCRE TXMDTUPD TXMLIB TXMMEM TXMSZLN TXMTITLE TXMTYPE TXMUSER Page 26 the name of the library. the title of the library. he date the member was created. the date the member was last updated. the name of the library containing the member. the name of the member within the library. the number of lines in the member. the title of the member. the type of the member. the user who originally defined the member. BIM-EDIT System Reference Manual Predefined Variables All the attributes of the member (which can be set with the ALTER and DEFINE commands) can be accessed as TXM variables. TXS describes a library/user security record. These variables are primarily of interest to the System Administrator. TXU describes a user. These variables are primarily of interest to the System Administrator. XTR has variables that describe the current member or session. Variables of note: XTREUSER XTRSLINE the user who currently has the member under edit. the text of the current line in the current session. The XTR variables are known as "extracted" variables because BIM-EDIT doesn't actually store their values, as it does for the other variables that describe stored entities. Each time you request the value of an XTR variable, BIM-EDIT performs some work to determine it. On VSE, there is an additional group of stored entity predefined variables: PWR describes a POWER job entry. Variables of note: PWRCLASS PWRJNAME PWRJNUM PWRQUEUE PWRUSER the class of the job entry. the job name of the job entry. the job number of the job entry. the queue (R=RDR,P=PUN,L=LST) of the job entry. the user for the job entry. There is no group of predefined variables that describes a VSE sublibrary member. On MVS, there are four additional groups of stored entity predefined variables: JCT describes JES data sets. Variables of note: JCTCLASS JCTJCLAS JCTJNAME JCTPNAME JCTTSUID JOE describes JES data sets. Variables of note: JOECURCL JQE the current class of the data sets. describes JES data sets. Variables of note: JQEJCLAS JQEJNAME JQEJOBNO PDB the class of the data sets. the class of the job. the name of the job. the "programmer name" specified. the TSO user id specified in the NOTIFY. the class of the data sets. the job name of the data sets. the job number of the data sets. describes JES data sets. Variables of note: PDBCLASS PDBDDNAM PDBDSKEY PDBSNAME the class of the data sets. the DD name of the data sets. the data set number. the step name for the data sets. There is no group of predefined variables that describes an MVS PDS member. Chapter 2. Writing Procedures Page 27 Predefined Variables Predefined Variables that Describe Current Processing Predefined variables which describe current processing change as you execute commands. MMP System Memory Map values. These variables are primarily of interest to the System Administrator. OPS Operating system date and time. Variables: OPSDATE OPSTIME SIB System Information Block (information about current user). Variables of note: SIBCSCOL SIBCSROW SIBLIB SIBMSG SIBOUTPT SIBPAGE SIBRETCD SIBSCRPM SIBSESSD SIBSSNU1 SIBSSNU2 SIBTRMID SIBUSER SSD the current date. the current time. the cursor column when the last screen was transmitted. the cursor row when the last screen was transmitted. current attached library. message returned from a procedure or command (see further discussion below) you can set to determine destination of the OUTPUTF command (see section on "Text-Following Commands"). current page in printed output. value returned to indicate the success of the previous procedure or command (see further discussion below). number of the current primary screen (see further discussion in the section on the EXAMINE command). number of sessions active. current session number for the top (or only) logical screen. current session number for the bottom logical screen. current terminal ID current user ID Session control values. (There is one group of SSD variables for every session that is currently active. At any point in time, a procedure can only access the group for the session that is currently active.) Variables of note: SSDBASE1 and SSDBASE2. number of the current line in the current session. There is one variable for each logical screen. See SIBSCRPM. SSDCOL1 and SSDCOL2. number of the column where the last search command found its result. There is one variable for each logical screen. See SIBSCRPM. SSDLIB name library of the member currently being edited (if edit session). SSDMEM name of the member currently begin edited (if edit session). SSDTYPE type of the current session. Some of the values are ED=EDIT, DI=DISP, LP=LISTP, LI=LIST. Page 28 BIM-EDIT System Reference Manual Predefined Variables PPDCOND, SIBRETCD and SIBMSG It is often awkward and sometimes impossible to avoid executing commands which "fail" inside a procedure. For example, if you write a procedure which is to use a LOCATE command to find all instances of several strings of characters in a member, you have a problem: after you have found the last instance of the first string, the LOCATE command will "fail", causing the procedure to terminate before you get a chance to look for the second string. Clearly, in this case the failure of the LOCATE command is an expected outcome -- not an "error". BIM-EDIT provides capabilities to allow procedures to treat the "failure" of a command as a normal event and continue to execute. These capabilities are built on three predefined variables: PPDCOND, SIBRETCD, and SIBMSG. When variable PPDCOND is set to 1, a procedure will continue to execute after a command within it "fails" -- the procedure can determine the command failed by testing the command "return code" available in variable SIBRETCD and the message in variable SIBMSG. If a command sets any return code other than "OK", it "failed". Command return codes are two characters and are documented in the "Use in a Procedure" topic of each command. Messages are the characters which would be displayed on the information line if the same error occurred when executing the command directly. As you may have suspected, the return code and message set by the EXIT command will be present in SIBRETCD and SIBMSG after termination of a procedure by an EXIT command. The "Use in a Procedure" topic of each command documents the 'expected' return codes for that command. Since most BIM-EDIT commands invoke common routines for internal processing, other return codes, such as 'SV' can be returned. Your procedures should be written such that any return code other than what is 'expected' will terminate the procedure with something like: EXIT &SIBRETCD,'&SIBMSG' so that the unexpected return code is reported to the user of the procedure. All commands except IF and IFD set SIBRETCD and SIBMSG. Therefore, SIBRETCD must either be tested by the next command after a command whose failure is anticipated or the next command must be a SET command to save the value of SIBRETCD for later testing. As an example, this is a procedure which searches for one string, and if not found, searches for another: SET PPDVBL,1 DCL STR1,CHAR,50,V DCL STR2,CHAR,50,V PARSE STR1,STR2 SET PPDCOND,1 LOCATE '&STR1' IF SIBRETCD,NE,'OK' LOCATE '&STR2' EXIT &SIBRETCD,'&SIBMSG' ;NEED THIS SO THAT PROC FAILS IF BOTH LOCATES FAIL Leaving PPDCOND at 1 throughout a procedure complicates debugging. PPDCOND should be set to 1 only where command errors are anticipated. That way, if an Chapter 2. Writing Procedures Page 29 Predefined Variables unanticipated error occurs, the procedure will terminate rather than continuing to execute. Page 30 BIM-EDIT System Reference Manual The EXAMINE Command The EXAMINE Command EXAMINE is a useful command which is easy to forget. It searches the current line in the current session for a string. If the string is found, EXAMINE returns OK; if the string is not found it returns NF. EXAMINE is often used to apply additional tests to a line once it is found, typically by the LOCATE command. EXAMINE, like LOCATE, sets SSDCOL1 or SSDCOL2 (depending on which logical screen is active) to the column at which the text was found. As an example of the use of EXAMINE, here is a procedure to go through a VSE JCL member and replace all "SIZE=..." parameters on EXEC lines with "SIZE=AUTO". We can't use a CHANGE command because we don't know what follows SIZE=. "SIZE=..." may be followed by other parameters -- we need to exactly replace the value following "SIZE=" with "AUTO", even though the value may be a different length than the four characters "AUTO". That is, the procedure will replace: EXEC ...,SIZE=4K,PARM='XYZ' or EXEC ...,SIZE=3285K,PARM='XYZ' with EXEC ...,SIZE=AUTO,PARM='XYZ' Chapter 2. Writing Procedures Page 31 The EXAMINE Command Example SET PPDVBL,1 DCL C1,NUM,3,V DCL C2,NUM,3,V DCL MEM,CHAR,33,V PARSE MEM EDIT &MEM LABEL NEXTEXEC SET PPDCOND,1 LOCATE ' EXEC ' IF SIBRETCD,NE,OK GOTO EXIT EXAMINE 'SIZE=' IF SIBRETCD,NE,OK GOTO -NEXTEXEC SETD C1,SSDCOL&SIBSCRPM ADD C1,5 SET C2,71 EXAMINE ',' ZONE=&C1-70 IF SIBRETCD,EQ,OK SETD C2,SSDCOL&SIBSCRPM EXAMINE ' ' ZONE=&C1-70 IF SIBRETCD,NE,OK GOTO NOSPACE IFD SSDCOL&SIBSCRPM,LT,C2 SETD C2,SSDCOL&SIBSCRPM LABEL NOSPACE SET PPDCOND,0 SUBTRACT C2,&C1 IF C2,LE,4 GOTO LENGTH&C2 SUBTRACT C2,4 SHIFT -&C2,ZONE=&C1-70 GOTO LENGTH4 LABEL LENGTH1 SHIFT +1,ZONE=&C1-70 LABEL LENGTH2 SHIFT +1,ZONE=&C1-70 LABEL LENGTH3 SHIFT +1,ZONE=&C1-70 LABEL LENGTH4 OVERLAY &C1,'AUTO' GOTO -NEXTEXEC LABEL EXIT SAVE ;COLUMN POSITION ONE (START OF VALUE) ;COLUMN POSITION TWO (END OR LENGTH OF VALUE) ;MEMBER TO WORK ON ;COME HERE TO PROCESS ANOTHER EXEC STATEMENT ;NEED CONDITIONAL FOR LOCATE AND EXAMINE ;FIND THE NEXT EXEC STATEMENT ;NO MORE, WE'RE DONE ;FIND SIZE=, IF ANY ;IF NO SIZE= ; GO TRY TO FIND ANOTHER EXEC ;STORE POSITION OF SIZE= ;ADD LENGTH OF SIZE= (BEGIN OF VALUE) ;SET POSSIBLE END OF VALUE ;FIND COMMA FOLLOWING SIZE=VALUE ;IF COMMA ; STORE NEW END OF VALUE ;FIND SPACE FOLLOWING SIZE=VALUE ;IF NO SPACE ; NOTHING TO TEST ;IF SPACE BEFORE COMMA ; STORE NEW END OF VALUE ;DON'T NEED CONDITIONAL ANY MORE ;GET LENGTH OF VALUE ;IF LENGTH LESS THAN OR EQUAL TO "AUTO" ; GO TO LABEL FOR THAT LENGTH ;LENGTH GREATER, DETERMINE AMOUNT OF LEFT SHIFT ;DO SHIFT ;GO PROCESS LIKE LENGTH 4 ;LENGTH 1 WILL FALL THRU 3 RIGHT SHIFTS ;LENGTH 2 WILL FALL THRU 2 RIGHT SHIFTS ;LENGTH 3 WILL FALL THRU 1 RIGHT SHIFT ;COME HERE WHEN LENGTH IS RIGHT ;INSERT "AUTO" ;GO LOOK FOR ANOTHER EXEC ;COME HERE WHEN DONE Notes (this is a fairly tricky procedure): Page 32 1. The first part of the procedure is fairly standard: we edit the member and use a loop with a LOCATE command to find each line containing " EXEC ". (Note that we might find this string in some other context, but we were careful to include blanks on either side so that possibility should be remote). 2. Then we use the EXAMINE to determine whether the line has a SIZE=. If it doesn't, we go EXEC hunting again. 3. If we do find a "SIZE=", things start getting complicated. We store the column location of "SIZE=" in variable C1 from the variable name SSDCOL&SIBSCRPM. What we are doing here is that we know that the EXAMINE command stores the BIM-EDIT System Reference Manual The EXAMINE Command location where it found the string in one of two predefined variables, SSDCOL1 or SSSDCOL2, depending on whether logical screen 1 or 2 is the primary logical screen. We know that SIBSCRPM is the number of the primary logical screen. So what we do is let BIM-EDIT replace &SIBSCRPM with the number of the logical screen, forming the name of the variable containing the column where EXAMINE found "SIZE=". 4. Now we need to find the end of the value which follows "SIZE=". We know that this value will be terminated by the first of a comma, a blank, or column 71. We set C2 to 71. Then we use EXAMINE to look for comma and blank. If it finds one or the other, we set C2 to that column. If both, we set C2 to minimum of two positions, otherwise C2 stays 71. 5. If the value that follows "SIZE=" isn't exactly four characters, we need to shift the remainder of the line so it will still be right next to "SIZE=AUTO". We know the beginning and end columns of the value, from which we can calculate the length. If the length is greater than four, we do a left shift of the remainder of the line and go to perform the overlay. If the length is less than four, we need to do a right shift, which we do by using a GOTO command with a label that is determined by the amount of the shift (we could have calculated a right shift amount like we did for left shift, but the technique used is more instructive). The labels we GOTO are arranged so that each shift adds onto the next, finally arriving at the point where we do the OVERLAY and go see if there are more EXEC statements to change. Chapter 2. Writing Procedures Page 33 Text-Following Commands Text-Following Commands BIM-EDIT contains an unusual class of commands that are used in procedures to move lines of text from one place to another. These commands, which we generically call the "text-following commands", process all lines after them in a procedure until they hit a termination line consisting of the four characters "++/*". Text-following commands are ultimately used for most bulk transfers of BIM-EDIT lines. The SUBMIT, PRINT, PUNCH, and REPRO commands operate by invoking procedures which in turn invoke the SUBMITF, PRINTF, PUNCHF, and REPROF text-following commands. A List of Text-Following Commands The following is a list of text-following commands, distinguished by the destination to which they send the output lines: AUDITF AUDITCF CONSOLEF DISPLAYF HEADF INSERTF LOGF OUTPUTF PRINTF PUNCHF REPROF STACKF SUBMITF sends to the member audit trail (comments) sends to the member audit trail (audit lines) sends to the operator's console sends to a display session (see notes below) sends to a storage area for the printer page heading sends to the current session sends to $LOG MAPF sends to the screen (described in a previous section) sends to a variety of destinations (see notes below) sends to the printer (see notes below) sends to the punch sends to an output tape sends to $STACK sends to the operating system's input reader As a quick example of how these commands can be used, here is a procedure that will edit a member and insert a notice regarding its imminent deletion: SET PPDVBL,1 DCL MEM,CHAR,33,V PARSE MEM EDIT &MEM INSERTF ****************** PURGE WARNING &OPSDATE ********************* * THIS MEMBER HAS NOT BEEN UPDATED IN 90 DAYS. * * IF THIS NOTICE IS NOT REMOVED BY 90 DAYS AFTER TODAY, * * THIS MEMBER WILL BE PURGED. * *************************************************************** ++/* SAVE The five lines between the INSERTF and the ++/* are inserted into the member. The current date replaces &OPSDATE in the first line. Use of INCLUDE and PPDTRAP with Text-Following Commands A major additional feature of text-following commands is their ability to execute other commands within the scope of a text-following command. Page 34 BIM-EDIT System Reference Manual Text-Following Commands The INCLUDE command is a special and very common case of executing a command within the scope of a text-following command. If you want to write a procedure which uses text-following commands to move a whole member, you will use the INCLUDE command. The INCLUDE command will only be recognized if predefined variable PPDINCL has a value of "1". As an example, the following is a simple SUBMIT procedure: SET PPDVBL,1 SET PPDINCL,1 ;REQUIRED FOR INCLUDE TO BE RECOGNIZED DCL MEM,CHAR,33,V PARSE MEM SUBMITF /INCLUDE &MEM ++/* EXIT OK The /INCLUDE &MEM causes the lines of the specified member to be inserted into the input to the SUBMITF command. All the lines of the member are submitted. A sequence of commands like this is used in the procedures which implement the PUNCH, PRINT, and REPRO commands. The ability to execute other commands within the scope of a text-following command is not limited to INCLUDE. If predefined variable PPDTRAP has a value of "1", any line in the scope of a text-following command which begins with the right parenthesis ")" will be treated as a command. As an example of the use of this feature, consider the following "improved" SUBMIT procedure: SET PPDVBL,1 SET PPDINCL,1 ;REQUIRED FOR INCLUDE TO BE RECOGNIZED SET PPDTRAP,1 ;REQUIRED FOR LINES BEGINNING WITH ) TO BE RECOGNIZED DCL MEM,CHAR,33,V DCL CL,CHAR,1,V DCL L,NUM,3,V PARSE MEM SETL L,MEM SETD CL,MEM,&L,1 ;LAST CHARACTER OF MEMBER NAME SUBMITF )IF CL,NE,'J' ) INCLUDE JCLLIB.PRE-&CL /INCLUDE &MEM )IF CL,NE,'J' ) INCLUDE JCLLIB.POST-&CL ++/* EXIT OK This procedure avoids having JCL in the member to be submitted. It does this by adopting the convention that the last character of the member name indicates the type of JCL to be used (if the last character is "J", it means that the member has JCL in it already). Unless the last character is "J", a member from the JCL library is included before and after the specified member to provide pre-member and post-member JCL. (We do not actually recommend this implementation of a SUBMIT procedure. We feel it is more satisfactory to use the member attributes to determine what JCL is to be used. However, since we have not yet discussed the READ command, this example used member name. See "Modifying the COMPILE, PROCESS, and SUBMIT Commands" in Chapter 10 for suggestions regarding SUBMIT procedures.) Chapter 2. Writing Procedures Page 35 Text-Following Commands Special Rules for Some Text-Following Commands A few text-following commands have special rules and capabilities: DISPLAYF DISPLAYF has one operand -- the text to be displayed on the information line for the session it creates. The REFRESH command will attempt to execute this text as a command to recreate the session. HEADF does not produce any output directly. Instead it stores the text to be used as a page heading for subsequent PRINTF commands. MAPF has a lot of special rules. It was previously described in this chapter in the section "The MAPF Command" OUTPUTF can behave like other text-following commands, based on the value of predefined variable SIBOUTPT: A D I K L AUDITF DISPLAYF INSERTF STACKF LOGF N P R S U CONSOLEF PRINTF REPROF SUBMITF PUNCHF OUTPUTF is useful primarily for display procedures, where output may be redirected to different outputs. For example, if the procedure is run in both batch and online. SIBOUTPUT is initialized to "D" for online BIM-EDIT and "P" for batch BIM-EDIT. PRINTF accepts two operands: whether the text is to be translated to upper case (the default is don't translate) and whether the lines are to be numbered as they are printed (the default is don't number). Whenever the lines on a page exceeds PPDPGSIZ, PRINTF will eject a page and print the contents of page heading storage, as set by HEADF. Manipulation of Data within Text-Following Commands (This discussion covers features of the text-following commands that are complicated to describe and rarely used. You may wish to skip over it until you need it.) Text-following commands can perform manipulations on input lines as the lines are processed. Most of these manipulations are controlled by PPD variables: PPDADJ causes modification of lines which begin with characters which might cause problems if they were processed by the operating system (JCL indication characters). Such lines will be shifted right one column and preceded with a not symbol (¬) if PPDADJ is "1". PPDHEX and PPDHEXC cause hexadecimal codes in the text lines to be translated. If PPDHEX is "1", and PPDHEXC is non-blank, any instance of the PPDHEXC character on a line will be examined to see if it is followed by two hexadecimal digits. If it is, the three characters will be replaced by the single character which would be represented by the two hexadecimal digits. The hex translation controlled by these variables applies to commands in procedures. Page 36 BIM-EDIT System Reference Manual Using BROWSE and READ to Process Members, Libraries, etc. PPDOVBAS, PPDOVLMT and PPDOVSTR cause constant text to be overlayed on each line as it is processed. PPDOVBAS is the starting column for the overlay, PPDOVLMT is the number of columns to be overlayed, and PPDOVSTR is the text to be overlayed. PPDOVBAS and PPDOVLMT must be non-zero before overlay will take place. PPDSHIFT causes modification of lines which begin with a not symbol (¬) or two periods (..). If PPDSHIFT is "1", such lines are shifted left one column in the case of the not symbol and two columns in the case of the two periods. This manipulation is the inverse of the one controlled by PPDADJ. PPDSPFMT and PPDSPCOL cause the overlaying of member stamp information. PPDSPFMT specifies the format of the stamp information and PPDSPCOL specifies the column on the line at which it is to be overlayed. The overlay takes place only if both variables are non-zero. This feature is useful for printing a member with the stamp information. PPDTRAP causes lines beginning with the right parenthesis ")" to be treated as commands if PPDTRAP is "1". Was discussed in detail previously. For more detail on these features, see the PPD group in Chapter 4, Predefined Variables, in this manual. There are additional features beyond those described here, particularly to suppress manipulation of text lines within members brought into the procedure by INCLUDE. Briefly, if PPDADJ, PPDHEX, PPDINCL, PPDSHIFT, PPDTRAP, or PPDVBL is set to "2", their function will take place in the current procedure but not in any INCLUDEed members. One other type of manipulation takes place which is not controlled by the PPD variables. If a text-following command recognizes four lines in sequence beginning with the four characters "++()" it will assemble them into one long line before processing. The interpretation of the lines is as follows: line line line line 1: 2: 3: 4: ++() ++() ++() ++() text text text text characters characters characters characters 1-64 65-128 129-192 193-253 ++() will only be recognized when the input lines are coming from an 80 column source (a batch input data stream or an 80 column tape). This feature provides a capability to move long BIM-EDIT text lines through a narrow external medium and then reconstruct them. PUNCHF and REPROF produce lines in this format if their input is wider than 80 columns. Using BROWSE and READ to Process Members, Libraries, etc. One of the purposes of procedures is to perform dumb tasks -- tasks that are so ponderous you would rather spend the time to write a procedure and make it work than just do the task. An important class of such tasks is when something has to be done to every member in a library (or every library in the system). Marching through all the entries in a library is what the BROWSE command does. Chapter 2. Writing Procedures Page 37 Using BROWSE and READ to Process Members, Libraries, etc. Another common class of procedures process an entity based on its attributes. Given an entity name, you can get its attributes using the READ command. BROWSE to Access Every Member's Attributes Every time you execute a BROWSE command, the values in the TXM predefined variables change to those for the next member (in alphanumeric sequence in the specified library) after the member whose values are currently in the TXM variables. To get the first member in the library, you set TXMMEM to null (that is, '') and issue a BROWSE. When you reach the last member in the library, BROWSE will return a nonOK return code. Thus, you can write a procedure that will process all members in a library by making a loop around a BROWSE command. Start the loop by setting TXMMEM to null and end it when BROWSE returns a non-OK code. For example, the following procedure will change one specified "library-name" to another anywhere it appears on a COPY statement in a COBOL program in the specified library. SET PPDVBL,1 DCL LIB,CHAR,16,V DCL FSTR,CHAR,8,V DCL TSTR,CHAR,8,V PARSE FSTR,TSTR,LIB ;GET STRINGS AND SPECIFIED LIBRARY SETD TXMLIB,LIB ;SET LIB WE WILL USE IF LIB,EQ,'' ;IF NO LIBRARY SPECIFIED SETD TXMLIB,SIBLIB ; USE ATTACHED LIBRARY SET TXMMEM,'' ;START AT THE BEGINNING SET PPDCOND,1 ;NEED SO BROWSE, EDIT, AND LOCATE DON'T TERM LABEL LOOP ;COME HERE FOR NEXT MEMBER BROWSE ;GET NEXT MEMBER IF SIBRETCD,NE,OK ;IF NO MORE, WE'RE DONE EXIT OK,'LIBRARY "&TXMLIB" FIXED' IF TXMTYPE,NE,'COBOL' ;IF TYPE ISN'T COBOL, IGNORE GOTO -LOOP EDIT ;EDIT MEMBER (LAST REF SET BY BROWSE) IF SIBRETCD,NE,OK ;IF MEMBER CHECKED OUT OR CURRENTLY EDITED GOTO -LOOP ; IGNORE LABEL LOOP2 ;COME HERE FOR NEXT COPY STATEMENT LOCATE ' COPY ',ZONE=11-16 ;FIND A COPY STATEMENT IF SIBRETCD,NE,OK ;IF NO MORE, DONE WITH THIS MEMBER GOTO SAVE CHANGE '&FSTR','&TSTR',ZONE=17-25 ;MAKE THE CHANGE GOTO -LOOP2 ;GO LOOK FOR MORE COPY STATEMENTS LABEL SAVE ;NO MORE CHANGES SAVE ;SAVE THE EDIT SESSION GOTO -LOOP ;GO LOOK FOR MORE MEMBERS READ to Access a Specific Member's Attributes The READ command sets the TXM variables with the attributes of a referenced member. If a member name is specified, it sets the attributes of the named member. If no name is specified, it sets the attributes for the "last referenced member". Since READ does not open a session or access the member text, it is quite rapid. Its primary use is in the initial processing of procedures which process members. Suppose you want to write a procedure that performs an EDIT of a specified member if the requesting user is the user assigned to the member, and a LIST otherwise. The Page 38 BIM-EDIT System Reference Manual Using BROWSE and READ to Process Members, Libraries, etc. procedure is to behave like the EDIT command: member name is optional -- if not used, the "last referenced member" (name held in TXMLIB and TXMMEM) will be used. You could write that procedure like this: SET PPDVBL,1 DCL MEM,CHAR,33,V PARSE MEM READ &MEM ;LONG ENOUGH TO ALLOW LIB.MEM ;GET MEMBER NAME (NULL IF NONE ENTERED) ;GET MEMBER ATTRIBUTES (LAST REF IF NULL, ; ERR AT THIS POINT IF NOT EXIST) IFD TXMUSER,EQ,SIBUSER ;IS OWNER SAME AS CURRENT USER? GOTO EDITOK ;YES, EDIT LIST ;'READ' SET LAST REFERENCED MEMBER EXIT OK,'MEMBER "&TXMLIB..&TXMMEM" ASSIGNED TO USER "&TXMUSER"' LABEL EDITOK EDIT ;'READ' SET LAST REFERENCED MEMBER BROWSEL and READL to Access Library Attributes You can use BROWSEL and READL to access libraries in the same way BROWSE and READ access members. These commands will only provide you information about libraries to which you have an adequate access level. Like READ, the primary use for READL is at the beginning of a procedure which has been given a library name to obtain attributes (in the TXL variables) for that library or determine that it does not exist. Like BROWSE, BROWSEL will put into the TXL variables the attributes of the next accessible library after the one whose name is in TXLLIB. By using both BROWSEL and BROWSE, you can access every member in every library to which you are authorized. Example of a procedure to list the first line of every PROC type member in every library which is accessible to the user: Chapter 2. Writing Procedures Page 39 Using BROWSE and READ to Process Members, Libraries, etc. SET PPDVBL,1 SET PPDINCL,1 STACK 0,CL ;CLEAR STACK SET PPDCOND,1 ;NEED FOR BROWSEL SET PPDLPLMT,5000 ;EXPECTING LOTS OF MEMBERS SET TXLLIB,'' ;START BEFORE THE FIRST LIBRARY LABEL LIBLOOP ;COME BACK HERE FOR MORE LIBRARIES BROWSEL ;GET THE NEXT LIBRARY IF SIBRETCD,NE,OK ;IF NO MORE GOTO EXIT ; FINISH UP SETD TXMLIB,TXLLIB ;MAKE SURE BROWSE USES RIGHT LIB SET TXMMEM,'' ;START BEFORE THE FIRST MEMBER LABEL MEMLOOP ;COME BACK HERE FOR MORE MEMBERS BROWSE ;GET THE NEXT MEMBER IF SIBRETCD,NE,OK ;IF NO MORE IN THIS LIBRARY GOTO -LIBLOOP ; GO FOR NEXT LIBRARY IF TXMTYPE,NE,'PROC' ;IF NOT A PROC GOTO -MEMLOOP ; GO FOR NEXT MEMBER LIST &TXMLIB..&TXMMEM ;OPEN MEMBER STACK 1,AP ;TRANSFER FIRST LINE TO STACK QUIT ;CLOSE LIST SESSION GOTO -MEMLOOP ; GO FOR NEXT MEMBER LABEL EXIT DISPLAYF "ALLPROCS" ;START A DISPLAY SESSION Members in all Libraries with TYPE=PROC --------------------------------------/INCLUDE $STACK ;get the names of the procedures ++/* TOP ;GO TO TOP OF DISPLAY SESSION This procedure accumulates the names in $STACK and then INCLUDEs them into the DISPLAYF command. There are other ways to achieve the same effect: start the display session and then use INSERTI to add the names one-by-one, or execute the BROWSE loop inside the DISPLAYF by using trap character commands. The $STACK approach is most efficient because the lines will not be individually audited as they are found. Other Types of BROWSE and READ On VSE, there is no BROWSE-type command for POWER job entries. There is, however, a READP command which will update the job entry attributes in the PWR predefined variables. (You should use READP to check the status of a POWER job entry whenever you access it, since its status may be changed at any time by the computer operator or POWER). There are no BROWSE or READ commands to access VSE sublibrary members. (To work around, you can create a LIBRARYD display and step through it within the procedure.) On MVS, there is no BROWSE-type command for JES data sets. There is, however, a READP command which will update the data sets attributes in the JCT, JQE, JOE, and PDB predefined variables. (You should use READP to check the status of data sets whenever you access them, since their status may be changed at any time by the computer operator or JES). There are no BROWSE or READ commands to access MVS PDS members. (To work around, you can create a LIBRARYD display and step through it within the procedure.) There are two additional sets of BROWSE and READ commands: • Page 40 BROWSEU and READU access BIM-EDIT user entries. BIM-EDIT System Reference Manual Using BROWSE and READ to Process Members, Libraries, etc. • BROWSES and READS access BIM-EDIT library/user security records. The use of these commands is restricted to the System Administrator. Chapter 2. Writing Procedures Page 41 Application Interface Capability for Procedures Application Interface Capability for Procedures BIM-EDIT contains a special interface that procedures can use to communicate with other BIM-EDIT systems in your VTAM network. This interface can be used in procedures to communicate commands, send and receive text, or for many other possible uses. The feature is patterned after the batch Application Interface using VTAM's LU6.2 Program to Program communication protocol and is based on four new procedure commands (LUOP, LUSD, LURC and LUCL). These commands provide the OPEN, SEND, RECEIVE and CLOSE functions necessary to establish, maintain and terminate a BIM-EDIT to BIM-EDIT partnership/connection. With minimal variation, the LU6.2 application interface conversation protocol, as documented in Chapter 6, Application Interface, applies to these procedures as well. Of course APPC=YES is a required BIMEDIT APPL parameter, for all potential partner BIM-EDITs. Almost any interaction can be accommodated with this feature. The following list contains just a few examples: • Sending or receiving members between BIM-EDIT systems, MVS or VSE. • Submit MVS JCL member text from the VSE system to the JES2 spooler on the MVS system (or the reverse scenario). • Sending mail to users on the remote partner BIM-EDIT system. • Setting system variables on the remote partner BIM-EDIT such as the system timeout interval. • Retrieving any display type session from the remote partner BIM-EDIT such as DA, DQ, SHOW, CORE, any 'LIB' type command, etc. • Remote DEFINE, ALTER, PURGE functions. • Remote Shutdown command. • Checkout/Checkin source control between two BIM-EDIT systems could be established. It is also possible to create a procedure to process command lists in order to coordinate activity between two BIM-EDIT systems. An example of that is included in the $SYS.UDP library. Look for a series of example members whose names all begin with "BIPX". The four procedure commands are documented in Chapter 3 of this manual. They all require the uses of the same three operands: Page 42 LINED Name of a 253 byte declared char variable, data line area. STATUS Name of a 2 byte declared char variable, status area. WORKAREA Name of a 253 byte declared char variable, work area. BIM-EDIT System Reference Manual Application Interface Capability for Procedures The procedure must specify the same WORKAREA variable on all commands. Information is stored in this area at OPEN that is required for the other three LUxx commands. Here is an example that would retrieve a JCL member from a remote partner BIM-EDIT and submit it for execution on the host system: SET PPDVBL,1 DCL MEM,CHAR,33,V DCL LINED,CHAR,253,V,CASE=M DCL STATUS,CHAR,2,V DCL WORK,CHAR,253,V DCL PARTNER,CHAR,8,F DCL LOGMODE,CHAR,8,F PARSE MEM PARTNER LOGMODE ;HOUSEKEEPING SET LINED "&PARTNER&LOGMODE" SET STATUS OK LUOP LINED,STATUS,WORK,LOG=OFF SETD MSG,SIBRESP GOSUB CHECK ;SET LINED FOR OPEN COMMAND ;GET THE JCL VARIABLE INFO ;OPEN CONVERSATION WITH PARTNER ;CAPTURE RC & MSG SET LINED "LOGON &SIBUSER $SIBPSWD" LUSD LINED,STATUS,WORK ;SEND LOGON TO PARTNER LURC LINED,STATUS,WORK ;RECEIVE THE STATUS SETD MSG,SIBRESP ;CAPTURE RC & MSG GOSUB CHECK SET LINED "SEND &MEM" LUSD LINED,STATUS,WORK LURC LINED,STATUS,WORK SETD MSG,SIBRESP GOSUB CHECK BLOCK LURC LINED,STATUS,WORK SETD MSG,SIBRESP GOSUB CHECK IF STATUS EQ EF LEAVE STACKI "&LINED" ENDBLOCK LOOP ;SEND 'SEND' REQUEST ;RECEIVE THE STATUS ;CAPTURE RC & MSG ;RECEIVE LOOP ;RECEIVE THE TEXT ;CAPTURE RC & MSG ;CHECK FOR END OF TEXT ;STASH FOR LATER HANDLING LUCL LINED,STATUS,WORK ;CLOSE CONVERSATION WITH PARTNER SUBMIT $STACK ;DISPATCH THE JOB EXIT OK,"&MEM FROM &PARTNER SUBMITTED BY &SIBUSER" LABEL CHECK IF STATUS EQ EF ;END OF FILE IS OK? RETURN IF STATUS EQ OK ;OK? RETURN LUCL LINED,STATUS,WORK ;CLOSE CONVERSATION WITH PARTNER EXIT OK,"&MEM FROM &PARTNER, ERROR STATUS=&STATUS" Chapter 2. Writing Procedures Page 43 Debugging Procedures Debugging Procedures When you write complex procedures, you will find that you sometimes have trouble getting them to work right. Maybe you used the wrong command, or maybe you didn't consider something, or maybe who knows what. Welcome to one of the necessary tasks of programming -- getting the "bugs" out of your procedure. Elementary Precautions Before you start testing a procedure, you should consider what bad things the procedure can do if it fails. For example, procedures which purge may purge the wrong things. Procedures which use SUBMITF, CONSOLEI or CONSOLEF may confuse Computer Operations if they are not working correctly. Even procedures which create things can make trouble if they run amok and create thousands. You should analyze for these possibilities and take precautions before testing: • replace damaging commands with safe surrogates. For example, a SUBMITF can be replaced with DISPLAYF until what appears in the display session looks good. You may be able to replace PURGE with an ALTER or a RENAME (or have the System Administrator turn on Purge Control). • if a procedure operates on all elements in a library, test it against a library that doesn't contain anything important. Tracking Down the Source of a Message The error message produced when a command fails is often not specific. For example, the message (BIREDUPA) ** COMMAND ALLOWED ONLY IN UPDATE SESSIONS ** simply says that some command which alters session text was attempted against a session that wasn't an EDIT or DISPLAY session. The command could be anywhere in a procedure. If the procedure executes other procedures, it could be in one of them. Rather than searching aimlessly through your procedure for the source of the message, use SNAP mode. The command SNAP ON turns on SNAP mode. SNAP OFF turns off SNAP mode. When SNAP mode is "on", BIM-EDIT will write to your $LOG the exact line on which a fatal command error occurred and all enclosing procedures and includes. If you are debugging procedures, turn on SNAP mode. SNAP mode tells you where your procedure was when the lights went out. However, it is the nature of debugging that you often need more information. Obtaining the Values of Variables The values of variables generally control the operation of procedures. Shortly after you have determined where your procedure failed, you will almost undoubtedly want to know the values of some of the variables. Unfortunately, all the local variables died with the procedure - so they are no longer available to interrogate. Page 44 BIM-EDIT System Reference Manual Debugging Procedures To get the values of variables, you will need to modify the procedure to display them before it terminates. The following are the commands which are most useful to display the variables: SHOW LOCAL and SHOW GLOBAL. These commands display all variables you have declared. If you can determine where to insert it, SHOW will display the variables. SHOW's disadvantage is that it creates a session. If the procedure is to continue after SHOW, you may have to adjust for the extra session. EXIT You can display the values of a few variables in an EXIT command message. If you know exactly where the bug starts and what variables you are interested in, add a command like: EXIT ER,'BUG!!! V1="&V1" V2="&V2"' MAPF This command can display the values of many variables as many times as you need. The disadvantages of this approach are that it takes more effort to code and it doesn't leave any permanent record, so that you have to copy the values on a pad of paper as they go by. Tracing Procedure Flow If you know where the procedure was when it died, and you know the values of the variables, you may still have some big questions: How did it get that way? Which of the seemingly myriad commands in the procedure caused it to happen? The answers can often be obtained by the brute force technique of "tracing". The essence of tracing is the same as unrolling a ball of string as you go through a maze so that you can follow it back to find the entrance. Tracing generates a list as your procedure goes along of where it has been (and key variable values, if pertinent). BIM-EDIT provides a special PPD variable (PPDTRACE) that when set to '1', will generate a trace of all LABEL commands in the $LOG file. You can also generate trace entries using several standard BIM-EDIT commands as described below. The key issue is where to put the trace: you can use $LOG, a session, the system console, the printer, or even $STACK or the screen -- each has strengths and weaknesses: $LOG It is usually easy to add LOGI or LOGF commands to your procedure at critical points to cause a trace to be written. It doesn't disrupt the operation of the procedure (unless the procedure's function is to write to $LOG) and works in both batch and online (in batch you will have to print $LOG before you end because the $LOG of a batch user is not saved). The disadvantage is that $LOG is limited size -- you may need more lines in the trace than $LOG will retain. console You can trace to the system console using CONSOLEI or CONSOLEF commands, if Computer Operations allows it. printer Tracing to the printer is also easy: add PRINTF commands to your procedure. Printed output does not have a size limit and is ideal for batch tracing. However, this technique is only practical from batch because each PRINTF would create a separate data set from online. If Chapter 2. Writing Procedures Page 45 Debugging Procedures your procedure uses MAPF commands (most large procedures do), it cannot be executed in batch. screen You can trace to the screen by adding MAPF commands to the procedure. This is often appealing and does not create any limitations, but it can be time-consuming to hit the enter key after each trace screen is displayed. MAPF is also bulky, requiring at least three lines of procedure code for each trace entry. $STACK You can easily trace into $STACK, if your procedure doesn't use it for some other purpose. Simply execute STACKI or STACKF commands. session Finally, you can trace into a session by using the ROTATE and INSERTI or INSERTF commands. A session can typically be larger than $LOG, and can be used in either batch or online. However, if your procedure uses multiple sessions (many do), it can be complicated to determine how to get to the trace session and back -- you may have more bugs in your session trace commands than in your procedure. Traps for the Unwary We are aware of a few "traps" in writing BIM-EDIT procedures. These are problems that you can look right at and not see. The following list is provided so you can check for them when you simply can't find what is wrong. 1. A procedure line will be considered to continue onto the next line if the line ends with a space dash (" -"). If you should be so unlucky as to end the comment on a procedure line with a dash, the next command will be treated as part of that comment and will not be executed. For example, OVERLAY 41,'!' OVERLAY 50,'!' ;THIS IS THE FIRST OVERLAY ; AND THIS IS THE SECOND OVERLAY 50,'!' will never be executed because BIM-EDIT sees it as part of the comment started on the preceding line. Page 46 2. The values of variables are replaced into commands before the commands are interpreted. If the value of a variable contains a space, a comma, an equal sign or a semicolon, and its replacement entry is not contained in quotes, very odd things may happen. Enclose replacement entries in quotes, especially if they derive from values which the user entered as a parameter or on a MAPF. (To be bullet-proof, you also need to handle the case where the variable value CONTAINS quotes. You can handle this case if you either always use single quotes or always use double quotes to contain replacement entries in your procedures. Setting PPDLITEX to "1" and PPDLITDL to the quote character you use will cause any instances of that character to be expanded to a double character during replacement and then returned to a single character during command interpretation. 3. If PPDCOND is left at "1" throughout a procedure, the procedure becomes much harder to debug. What happens is that a command fails when you weren't expecting it and the procedure keeps going with no checks of SIBRETCD after that command. By the time something bad enough to stop the procedure happens, it may be several commands further along. Always set PPDCOND back to "0" as soon as practical. BIM-EDIT System Reference Manual Special Techniques Special Techniques Procedures can get very complicated and very powerful. This section covers some issues that are only relevant for advanced procedure writing. Modularity If you write a procedure which gets very large, you should consider breaking it into procedures executing sub-procedures. For example, you might have a main menu procedure which just displays a MAPF selection screen and then executes one of several sub-procedures to do the selected task. There are several reasons for breaking up large procedures: 1. Subprocedures will allow you to re-use programming. Modularity also means that all the commands that handle particular "concepts" appear in one place and they are easier to modify when the concept changes. 2. Procedures are hard to maintain when they get to be too large because it becomes difficult to keep track of all the GOTOs that branch to a particular label. 3. There is a limit on how many variables can be active at one time. Since, once declared, a variable cannot be gotten rid of except by exiting the procedure, subprocedures conserve variable space. Also, the larger the procedure is, the more likelihood that you will re-use a work variable (such as I or CNT) at an inappropriate time. Breaking the procedure into subunits gives you a new and completely independent set of variables to use. 4. Commands which are branched over by means of a GOTO take time. There can be a slight efficiency gain by putting large sections of commands which are often branched over into a subprocedure, so only the subprocedure invocation is branched over. However, this will only be a saving in special circumstances, because invoking a procedure generally involves reading from disk the member containing the procedure, which takes orders of magnitude more resources than skipping lines. Passing Values Between Procedures When you use subprocedures, you will discover that it isn't always easy to get variable values from a subprocedure. (Sending values to a subprocedure is easy so long as they will fit on the procedure invocation line). There are three ways a subprocedure can communicate values to its invoker: 1. Return the result in SIBMSG. This will work fine so long as the invoker removes the result on the next command after the call, because SIBMSG is changed by every command. 2. Return the results in variables declared with SCOPE=GLOBAL. These variables continue to be available after the subprocedure exits. The main disadvantage to this approach is that large procedure applications may need to develop conventions to avoid accidentally using the same name for global and local variables. 3. In the subprocedure, build a member containing SET commands. INCLUDE this member in the invoker after the invocation. This approach is not especially efficient Chapter 2. Writing Procedures Page 47 Special Techniques but can transmit an essentially unlimited amount of information between procedures. Be sure that the name of the member you create uses the current user ID (SIBUSER) to prevent trouble if more than one user is executing the procedures at the same time. For example: Invoking procedure: DCL RESULT,NUM,8,V MODULUS RESULT 45 28 INCLUDE WORK.&SIBUSER.RESULTS Invoked procedure MODULUS: SET PPDVBL,1 DCL MOD,NUM,8,V DCL VARNAME,CHAR,12,V DCL DIVIDEND,NUM,8,V DCL DIVISOR,NUM,8,V PARSE VARNAME,DIVIDEND,DIVISOR;NAME OF VAR TO SET AND VALUES TO USE SETD MOD,DIVIDEND ;CALCULATE MODULUS DIVIDE DIVIDEND,&DIVISOR MULTIPLY DIVIDEND,&DIVISOR SUBTRACT MOD,&DIVIDEND SET PPDCOND,1 ;MEMBER MAY ALREADY EXIST DEFINE WORK.&SIBUSER.RESULTS SET PPDCOND,0 ;NOW IT SHOULD EXIST EDIT ;EDIT THE PARM MEMBER DELETE * ;DELETE ANY LINES THAT MAY BE IN IT INSERTI 'SET &VARNAME,&MOD' ;MAKE A SET COMMAND SAVE ;SAVE THE MEMBER Making Procedures Into Commands BIM-EDIT encourages the use of procedures as commands. In addition to the facilities we have previously described in this chapter, there are some additional features that are specifically designed to facilitate the use of procedures as commands or to replace commands: Page 48 • There are four "command tables", which BIM-EDIT uses to translate a command name to a procedure name. These command tables are the Attached Library command table, the User command table, the Site command table, and the System command table. A procedure will be found more efficiently if it is in a command table than if it is executed implicitly. There are several other advantages to the use of command tables: they can allow procedures to be found no matter what library you are attached to, they allow you to name procedure members with names that make sense in your library organized even though different names make sense to invoke them, and they allow you to invoke procedures with the same names that you would use to invoke a BIM-EDIT command (in other words, to replace a command with a procedure). • BYPASS is a command that is useful when writing a procedure that replaces a system command. For example, you can write a procedure which would be invoked to handle the DEFINE command. It could enforce site-specific rules on how a member is defined. However, without BYPASS, there would be a logical problem: when your procedure tried to invoke the true DEFINE command, it would instead BIM-EDIT System Reference Manual Special Techniques invoke itself. BYPASS forces the invocation of the command on the following line to take place using the next higher command table. • AUTHORIZ is a command that allows a procedure to access members that the user executing it would not be allowed to access directly. AUTHORIZ is only available to procedures executing out of the $SYS and $SIT libraries. For more information on making procedures into commands, see "Creating Library, User, and Site Commands" in Chapter 11 of this manual. Batch Utility and Application Interface Input as a Procedure BIM-EDIT treats the input commands in Batch Utility and the Application Interface almost identically to the way it treats procedures. The text- following commands (with the exception of MAPF) can be used. GOTO, LABEL, IF, and IFD can be used (GOTO in direct input can only branch forward). GOSUB, LOOP and RETURN cannot be used. Variables can be declared, set, and replaced. For more information see Chapter 5, Batch Utility, and Chapter 6, Application Interface, in this manual. Chapter 2. Writing Procedures Page 49 Chapter 3. Advanced User Commands The command descriptions presented in this chapter use the same format as those documented in the BIM-EDIT User Reference Manual. For information about the presentation format, refer to Chapter 4, Commands, in the User Reference Manual. The following table lists the BIM-EDIT advanced user commands, along with a brief description of their function. Commands are separated into categories. Commands to Start Execution Identify user for Batch Utility or Application Interface Establish password for one-time batch use. LOGON PEND Commands Used to Manipulate Variables ADD DECLARE DIVIDE HEXREQ INTERVAL MAPF MULTIPLY PARSE PHONETIC SET SETD SETL SETM SHOW SUBTRACT VAPPEND VEXAMINE VLOWERCA VTESTNUM VTRUNCAT VUPPERCA Page 50 DCL DIV HEXR MULT SUBT VAPP VEXAM VLOW VTRUN VUPP Set variable to current value plus specified value. Create new variable. Set variable to current value divided by specified value Performs various hexadecimal operations. Determine the interval between two dates and times. Display following lines and obtain user response. Set variable to current value times specified value. Set variables to procedure operand values. Convert a name or word to a phonetic value. Set variable to specified value. Set variable to value of another variable. Set variable to length of another variable value. Set variable to message text of message id. Display BIM-EDIT status information and variables. Set variable to current value minus specified value. Set variable to current value extended by characters. Test variable value for specified character string. Set variable to current value translated to lowercase. Test variable value for convertibility to numeric. Set variable to current value shrunk by trailing blanks. Set variable to current value translated to uppercase. BIM-EDIT System Reference Manual Commands Used to Control Execution BLOCK DEQUEUE ELSE ENDBLOCK ENDIF ENQUEUE EXAMINE EXIT GOSUB DEQ ENQ EXAM GOTO HEXIF IF IFD IFTHEN LABEL LEAVE LOOP RETURN SENDMSG SNAP TRANSFER WAIT TRAN Execute following line(s) until ENDBLOCK / LEAVE / LOOP. Release exclusive ownership of common resources. Execute following line(s) if preceding IFTHEN is false. Marks the end of a preceding BLOCK sequence. Marks the end of a preceding IFTHEN/ELSE sequence. Synchronize access to common resources. Test current session line for character string. Terminate procedure. Perform commands starting a LABEL until next RETURN. Execute starting at matching LABEL. Execute following line only if (hex) test is true. Execute following line only if test is true. Execute following line only if test is true. Execute following line(s) only if test is true. Execute starting here after matching GOTO. Continue processing following the next ENDBLOCK command. Continue processing at the preceding BLOCK command. Return to statement following preceding GOSUB. Send a message to the terminal message area. Activate / Deactivate snapshot debugging. Transfer from one procedure to another. Give up control for a specific time interval. Commands Used to Obtain Entity Information Set TXM variables to attributes of next member. Set TXL variables to attributes of next library. Set TXM variables to attributes of specified member. Set TXL variables to attributes of specified library. (VSE) Set PWR variables to attributes of POWER job entry. (MVS) Set JOE,JQE,JCT,PDB var. to attr. of JES data sets. BROWSE BROWSEL READ READL READP READP Commands Used in Applications Interface SEND SENDF SENDI SENDN Chapter 3. Advanced User Commands Transfer text of a member to an application. Transfer following lines to an application. Transfer single line to an application. Transfer a specified session line to an application. Page 51 Commands Used for Printing and Punching Skip to top of page. Set page heading to the following lines. Print member text. Print following lines. Punch member text. Punch following lines. Punch single line. Punch text for all members of a specified library. Close and reopen SYSLST (VSE only). EJECT HEADF PRINT PRINTF PUNCH PUNCHF PUNCHI PUNCHL SEGMENT Commands Used to Transfer Text AUDITF AUDITRP CONSOLEF DISPLAYF INSERTF LOADD AUDF AUDRP CONSF DISPF INSF LOADDL LOADT LOGF OUTPUTF REPRO REPROF REPROI REPROL STACKF SUBMITF OUTF SUBF Write following comment lines to member audit trail. Write member audit trail to tape. Write following lines to operating system console. Display following lines. Alter session text - insert following lines. Create member from VSE sublibrary or MVS PDS member. Create members from VSE sublibrary or MVS PDS members. Create members from "foreign" offload tape. Write following lines to $LOG. Write following lines to the SIBOUTPT destination. Write member text to tape. Write following lines to tape. Write single line to tape. Write text for all members of a library to tape. Write following lines to $STACK. Submit following lines for processing. Commands Used in LU 6.2 Application procedures LUCL LUOP LURC LUSD CLOSE LU62 program conversation with a partner BIM-EDIT. OPEN LU62 program conversation with a partner BIMEDIT. RECEIVE responses and or data from the partner BIMEDIT. SEND command or data to the partner BIM-EDIT. The following pages provide a detailed explanation of each command. Page 52 BIM-EDIT System Reference Manual ADD ADD Use ADD to add a specified value to a specified variable. Required Operands OPER1 is the name of a previously declared numeric variable. OPER2 is a non-negative numeric integer. OPER2 will be added to the contents of the OPER1 variable. The result will be stored in the OPER1 variable. For more discussion and examples of variables, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. For online help, refer to topics 'DECLARE', 'ARRAYS', and 'SUBSTR'. When Valid ADD can only be used in a procedure, batch utility, or the application interface. Use in a Procedure ADD normally returns OK. (See SIBRETCD.) Example Procedure to use ADD in processing a sequence of statements 12 times: DECLARE COUNTER,NUM,6,V SET COUNTER,0 LABEL D20 ADD COUNTER,1 IF COUNTER,GT,12 GOTO E20 .... lines to be processed 12 times .... GOTO -D20 LABEL E20 Chapter 3. Advanced User Commands Page 53 AUDITF AUDITF Use AUDITF to write comment lines to a member's audit trail. The lines following the AUDITF command will be written to the audit trail. An end-of-text line (++/*) terminates the AUDITF command. AUDITF may also be entered as AUDF. AUDITF ignores any operands. Audit lines created by AUDITF are prefixed with the seven characters ".**** ". Special processing may be performed for input lines beginning with the not symbol (¬), two periods (..), right parentheses ()), the two characters /*, the two characters /&, the four characters * $$, the four characters ++/*, the four characters ++(), or the five characters /INCL. Input lines may be processed to convert imbedded hexadecimal sequences or to overlay stamp or literal information. See PPD predefined variables for details of this processing. For more examples, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid AUDITF can only be used in a procedure, batch utility, or the application interface. Use in a Procedure AUDITF normally returns OK. (See SIBRETCD.) Example Create documentation in the audit trail concerning a forthcoming new release: AUDITF ****************************************************************** RELEASE 2.7A DEVELOPMENT STAGE: START DATE : 07/01/91 DEVELOPMENT PERSONNEL : TIM JOHNSON, MARK NELSON ****************************************************************** ++/* Page 54 BIM-EDIT System Reference Manual AUDITRP AUDITRP Use AUDITRP to write a copy of a member's audit trail to tape. AUDITRP may also be entered as AUDRP. Required Operands MEM is the member whose audit trail is to be written to tape. DATE specifies how much of the audit trail to write to tape. If DATE is specified as an asterisk (*), the entire audit trail is written to tape. Otherwise, DATE is entered in one of these formats: "mm/dd/yy", "mm/dd/yyyy", "dd/mm/yy" or "dd/mm/yyyy" depending upon the system date format set by your System Administrator. In this case, the audit trail up to and including DATE is written to tape. Optional Operands TIME optionally is used to further qualify how much audit trail to be written to tape. If a TIME is entered as hh:mm:ss, the audit trail up to and including the TIME within DATE is written to tape. The following parameters are valid only on the first AUDITRP, REPROI, or REPROF command (REPRO uses REPROF) read by BIMUTIL. These operands are only valid in VSE. OPEN is the value for the VSE tape open option. It may be specified as REWIND or NOREWIND. The default is NOREWIND. CLOSE is the value for the VSE tape close option. It may be specified as REWIND, NOREWIND or UNLOAD. The default is NOREWIND. LABEL is the value for the VSE tape label option. It may be specified as YES or NO. YES indicates that the tape created will be a VSE standard label tape. The file name for the labeled tape is TPBODTF. NO means that the tape is unlabelled. The default is NO. AUDITRP sets the "last referenced member". On VSE, AUDITRP writes output to a tape on logical unit SYS005. On MVS, AUDITRP writes output to ddname BIFREPRO. Records are written in a fixed block format (record size=80, block size=16000). The tape file is opened on the first AUDITRP, REPROF, or REPROI command (REPRO uses REPROF) and remains open until the batch utility reaches end of job. AUDITRP writes an exact copy of the member's audit trail in the format it appears when SCREEN AUDIT=ON. AUDITRP breaks apart audit lines longer than 80 characters to a four-line format with each line beginning "++()". These lines will be Chapter 3. Advanced User Commands Page 55 AUDITRP reassembled if presented as input to the "text following" commands AUDITF, CONSOLEF, DISPLAYF, INSERTF, LOGF, MAPF, OUTPUTF, PRINTF, PUNCHF, REPROF, STACKF, and SUBMITF. For details of the ++() format, see the PPD predefined variables. There is no BIM-EDIT command which processes the AUDITRP format tape to rebuild a member's audit trail or to rollback edits to a member. AUDITRP is provided for use in site-specific audit analysis, not as a transfer or backup feature. AUDITRP does not alter the member's audit trail. When Valid AUDITRP can only be used in batch utility. If your System Administrator has set MMPAUCTL to a value of "1", the user must have ADM command access level. Otherwise, the user must have DEF access level for the MEM library. Use in a Procedure Return Codes: OK NF SC Successful. Member not found. Inadequate access level. AUDITRP sets the TXM variables to the attributes of MEM. VSE Example Write the audit trail through Dec 31, 1996 for member IJC2500 to tape: // JOB AUDITRP // ASSGN SYS005,TAPE // PAUSE MOUNT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS AUDITRP IJC2500,12/31/1996 /* /& MVS Example Write the audit trail through Dec 31, 1996 for member IJC2500 to tape: //AUDITRP JOB .... //BIMUTIL EXEC PGM=BIMUTIL //STEPLIB DD DSN=BIMEDIT.LOADLIB,DISP=SHR //BIFREPRO DD DSNAME=BIFREPRO,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), // VOL=SER=BIM104 //SYSPRINT DD SYSOUT=A //SYSIN DD * LOGON $SYS,$SYS AUDITRP IJC2500,12/31/1996 Page 56 BIM-EDIT System Reference Manual BLOCK BLOCK Use the BLOCK command to identify one or more following lines, up to the next ENDBLOCK command (related by nesting level) as a complete logic unit. The BLOCK command would normally be used in a procedure. Optional Operands Label name. LABEL can be up to 8 characters in length, composed of the letters A-Z, the numerals 0-9, and the special characters dash (-), dollar sign ($), and the underscore (_). Use a LABEL name to specify a branch destination for a GOTO, GOSUB, ENDBLOCK, ENDIF or LEAVE. This operand functions the same as if the BLOCK command was preceded with a LABEL command. NOTE: The performance option (PPDPFOPT=1) will be forced active for this option, duplicate LABEL NAMEs are not allowed. LABEL Nested BLOCK commands are supported up to 16 levels. When Valid The BLOCK command can only be used in a procedure. Use in a Procedure Return Codes: OK SV Nesting limit exceeded. Example The following example shows the BLOCK command used within a procedure. SET .... ... BLOCK IF A,NE,'B' LEAVE IF C,NE,'D' LEAVE .... Statements ... ADD CT,1 IF CT,LT,10 LOOP ENDBLOCK ... ... EXIT Chapter 3. Advanced User Commands Page 57 BROWSE BROWSE Use BROWSE to set the TXM predefined variables to the attributes of the member following the one whose name is currently in the TXM variables. BROWSE has no operands. If TXMMEM is blank, TXM will be set to the attributes of the first member in the TXMLIB library. BROWSE is useful within a procedure to perform some action against a succession of members of a library. Refer also to the READ command. For more extensive discussion and examples, see the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. See BIM-EDIT System Reference Manual Chapter 4, Predefined Variables, or HELP TXM for more information on the TXM variables. When Valid The user must have LIST access level to the TXMLIB library. Use in a Procedure Return Codes: OK EF SC Successful. No more members in library. Inadequate access level. Example Procedure to make global changes to every member of the OM20 library: SET PPDCOND,1 SET TXMLIB,OM20 SET TXMMEM,'' LABEL D20 BROWSE IF SIBRETCD,NE,OK GOTO E20 EDIT CHANGE LOOPCNTR,PPDLPCTR,* CHANGE LOOPLMT,PPDLPLMT,* SAVE GOTO -D20 LABEL E20 EXIT OK,'## GLOBAL CHANGE OPERATION COMPLETE ##' Page 58 BIM-EDIT System Reference Manual BROWSEL BROWSEL Use BROWSEL to set the TXL variables to the attributes of the library immediately following the one whose name is currently held in the TXL variables. BROWSEL has no operands. If TXLLIB is blank, TXL will be set to the first library in the system. BROWSEL will bypass libraries for which the access level is less than EXEC. BROWSEL is useful within a procedure to perform some action against a succession of libraries. Refer also to the READL command. For more extensive discussion and examples, see the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. See BIM-EDIT System Reference Manual Chapter 4, Predefined Variables, or HELP TXL for more information on the TXL variables. Use in a Procedure Return Codes: OK EF Successful. No more libraries. Example BROWSEL, in conjunction with BROWSE, could be used to perform some action against every member of the BIM-EDIT system. The following procedure is such an example: SET PPDCOND,1 SET PPDVBL,1 SET TXLLIB,'' LABEL D10 BROWSEL IF SIBRETCD,NE,OK GOTO E10 SET TXMLIB,&TXLLIB SET TXMMEM,'' LABEL D20 BROWSE IF SIBRETCD,NE,OK GOTO E20 EDIT CHANGE LOOPCNTR,PPDLPCTR,* CHANGE LOOPLMT,PPDLPLMT,* SAVE GOTO -D20 LABEL E20 GOTO -D10 LABEL E10 EXIT OK,'## GLOBAL CHANGE OPERATION COMPLETE ##' Chapter 3. Advanced User Commands Page 59 CONSOLEF CONSOLEF Use CONSOLEF to write lines to the operating system console. The lines following the CONSOLEF command will be written. The end-of-text line (++/*) terminates the CONSOLEF command. CONSOLEF may also be entered as CONSF. CONSOLEF ignores any operands. Special processing may be performed for input lines beginning with the not symbol (¬), two periods (..), right parentheses ()), the two characters /*, the two characters /&, the four characters * $$, the four characters ++/*, the four characters ++(), or the five characters /INCL. Input lines may be processed to convert imbedded hexadecimal sequences or to overlay stamp or literal information. See PPD predefined variables for details of this processing. For more extensive discussion and examples, see the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid CONSOLEF can only be used in a procedure, batch utility, or the application interface. Use in a Procedure Example From within a procedure, write lines to the system console: CONSOLEF ****************************************************************** THE FRIDAY OPERATING RUN HAS NOW BEEN SUBMITTED. THIS INCLUDES: 1) DAILY RUN 2) END OF WEEK RUN ****************************************************************** ++/* Page 60 BIM-EDIT System Reference Manual DECLARE DECLARE Use DECLARE to create a new variable. DECLARE may also be entered as DCL. Required Operands NAME NAME can be up to 8 characters in length, composed of the letters A-Z, the numerals 0-9, and the special characters dollar sign ($), underscore (_), and number sign (#). NAME must not start with the characters "JCT", "JOE", "JQE", "MMP", "OPS", "PDB", "PPD", "PWR", "SIB", "SSD", "TXL", "TXM", "TXS", "TXU", or "XTR" as these are reserved for predefined variables. To DECLARE an array, suffix the name with the number of entries in the array within parentheses: DCL NAME(24),CHAR,80,V TYPE Specify "CHAR" for a character variable, "NUM" for a numeric variable or NUMS for a signed numeric variable. Signed numeric variables are capable of containing negative as well as positive values. LENGTH specifies the maximum length the variable data can assume. For numeric data (TYPE=NUM), length must be a value between 1 and 8. Signs are not processed by BIM-EDIT. For character data (TYPE=CHAR), length must be a value between 1 and 253. Optional Operands FMT controls the manner in which variables are replaced within text or commands. The following formats are provided: "F" indicates that the replacement value of the variable will always occupy LENGTH characters i.e. it is of "fixed" length. Padding will take place with blanks on the right for CHAR variables and with zeroes on the left for NUM variables. "V" the default, indicates that the replacement string will occupy a varying number of positions, determined by the current length of the variable data. "Z" is specified only for numeric variables. It functions like FMT="F", except that the leading zeros are replaced with blanks. "E" is specified only for numeric variables. Numeric variables are "edited" by inserting commas and suppressing leading zeros. As such, the replacement string may occupy more positions than its declared length. Chapter 3. Advanced User Commands Page 61 DECLARE Optional Operands (continued) If FMT is not specified, V is assumed. Examples: DECLARE CHAR,6 CHAR,6 NUM,6 NUM,6 NUMS,6 NUMS,6 NUMS,6 NUMS,6 CASE ------------ <&VALUE.> -------------SIGN SET VALUE FMT=F FMT=V FMT=Z FMT=E + + - 'ABCD' ' BC ' 5 5000 5 5000 -5 -5000 <ABCD > < BC > <000005> <005000> <000005> <005000> <-000005> <-005000> <ABCD> < BC > <5> <5000> <5> <5000> <-5> <-5000> < 5> < 5000> < 5> < 5000> <5> <- 5000> < 5> < 5,000> < 5> < 5,000> <5> <- 5,000> CASE specifies whether input data from the MAPF and PARSE commands is to be translated to upper case. If CASE is specified as U, translation will occur. If CASE is specified as M, translation will not occur. If CASE is not specified, translation will occur. SCOPE specifies which procedures have access to this variable. INIT SCOPE=LOCAL (default) the variable is known only within the current procedure, and only for the life of the current procedure. SCOPE=GLOBAL the variable is known to all other procedures in current procedure execution. SCOPE=USER the variable is known to all procedures executed by the current user as long as the user is logged on to the BIM-EDIT system. SCOPE=SYSTEM the variable is known to all procedures for all users until BIM-EDIT is shut down. SYSTEM variables can only be declared and set by users with ADM command security . specifies an initial image to set into the variable. Variables, if not predefined, must be declared prior to being referenced. Variables are usually declared at the start of a procedure. Variables should not be declared within a section of the procedure that is executed multiple times. Such a situation would result in a "variable already declared" error on the second iteration. Character variables are initialized to a blank value. Numeric variables are initialized to a zero value unless, of course, the INIT parameter is used. Variables declared with SCOPE=GLOBAL provide a convenient means of communicating information between procedures. After global variables are declared, any procedure has complete access to them. Global variables remain declared until BIM-EDIT returns to online command mode. For batch utility or application interface, they remain declared for the entire logon. Variables declared with SCOPE=USER Page 62 BIM-EDIT System Reference Manual DECLARE remain declared for the users entire logon. Variables declared with SCOPE=SYSTEM remain declared, until BIM-EDIT EOJ, available for reference by all users. SYSTEM variables should be declared, set or altered only by the system administrator. Procedure $SIT.PROC.SYSTDVB, if it exists, will be executed at BIM-EDIT startup to declare and set SITE standard SYSTEM variables. For more extensive discussion and examples of the use of variables, see the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid DECLARE can only be used in a procedure, batch utility, or the application interface. Use in a Procedure DECLARE normally returns OK. (See SIBRETCD.) Example The following lines declare LIB as a character variable, length 16, with a varying format, and CTR as a numeric variable, length 6, with a fixed format: SET PPDVBL,1 DECLARE LIB,CHAR,16,V DCL CTR,NUM,6,F SET LIB,'EDITOR' SET CTR,45 EXIT OK,'LIB="&LIB." CTR="&CTR."' Executing this procedure will result in the following message: LIB="EDITOR" CTR="000045" Chapter 3. Advanced User Commands Page 63 DEQUEUE DEQUEUE DEQUEUE is used to cause a procedure to release exclusive ownership of a common resource previously acquired by an ENQUEUE command. The exclusive ownership remains in effect until the task issues a DEQUEUE command in the same or subsequent procedure. If a DEQUEUE command is not issued, exclusive ownership remains until BIM-EDIT is cycled. DEQUEUE may also be entered as DEQ. Required Operands is the 1 to 8 character alphanumeric name used to identify the common resource previously acquired by an ENQUEUE. RESID Optional Operands FORCE causes a requested DEQUEUE to be effective from a task other than the owning task which may no longer be available to do the function. FORCE is recognized only for users with ADM command security. OPT When Valid The DEQUEUE command can only be used in a procedure, batch utility, or the application interface. Use in a Procedure Return Codes: OK NF SV Successful. Resource not found in Resource Enqueue table (BIFTBRQ). Resource not owned by issuing task or other parameter errors. Example DEQ MASTLOG Page 64 ;(Release exclusive ownership of resource MASTLOG) BIM-EDIT System Reference Manual DISPLAYF DISPLAYF Use DISPLAYF to create a display session. The lines following the DISPLAYF command will compose the display. The end-of-text line (++/*) terminates the DISPLAYF command. DISPLAYF may also be entered as DISPF. Optional Operands STR is a character string that will be displayed in the information line of the DISP session. The REFRESH command will attempt to recreate a DISP session by processing the STR value as a command. STR can be up to 37 characters in length. If STR is not specified, a value of "DISPLAYF" is assumed. The display session created by DISPLAYF becomes the current session. This session must remain current until the end-of-text line (++/*) is processed. Thus, you cannot enter (through use of PPDTRAP features) commands such as EDIT, END, and ROTATE that change the current session until the end-of-text line has been processed. Special processing may be performed for input lines beginning with the not symbol (¬), two periods (..), right parentheses ()), the two characters /*, the two characters /&, the four characters * $$, the four characters ++/*, the four characters ++(), or the five characters /INCL. Input lines may be processed to convert imbedded hexadecimal sequences or to overlay stamp or literal information. See PPD predefined variables for details of this processing. For more discussion on text-following commands, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. Use OUTPUTF to output to a display session in online but to the printer or the console in batch as the LIBRARY command does. When Valid DISPLAYF can only be used in a procedure, batch utility, or the application interface. Use in a Procedure DISPLAYF normally returns OK. (See SIBRETCD.) Example Procedure to display information about a library: SET PPDVBL,1 DECLARE LIB,CHAR,16,V PARSE LIB READL &LIB DISPLAYF 'INQL &TXLLIB' NAME : &TXLLIB TITLE : &TXLTITLE USER : &TXLUSER ++/* Chapter 3. Advanced User Commands Page 65 DIVIDE DIVIDE Use DIVIDE to arithmetically divide a specified variable by a specified value. DIVIDE may also be entered as DIVI or DIV. Required Operands OPER1 is the name of a previously declared numeric variable. OPER2 is a numeric integer greater than zero. Optional Operands OPER3 is the name of a previously declared numeric variable, into which the remainder from the divide is to be stored. The value of the OPER1 variable will be divided by the OPER2 value. The result, truncated to an integer, will be stored in the OPER1 variable. If the optional OPER3 variable is provided, the remainder from the divide will be stored there. If OPER3 is omitted, the remainder is lost. For more discussion and examples of variables, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. For online help, refer to topics 'DECLARE', 'ARRAYS', and 'SUBSTR'. When Valid DIVIDE can only be used in a procedure, batch utility, or the application interface. Use in a Procedure DIVIDE normally returns OK. (See SIBRETCD.) Examples Procedure to display the number of bytes per transmission since this terminal logged on. SET PPDVBL,1 DCL X,NUM,6,V SETD X,SIBSDBYT DIVIDE X,&SIBSDTRM EXIT OK,'BYTES PER TRANSMISSION SINCE LOGON = &X' Procedure to divide to values that have been input to it, and display the results at the terminal. SET PPDVBL,1 DCL NUM1,NUM,6,V DCL NUM2,NUM,6,V DCL OPER1,NUM,6,V DCL OPER3,NUM,6,V PARSE NUM1,NUM2 SETD OPER1,NUM1 DIVIDE OPER1,&NUM2,OPER3 EXIT OK,'THE VALUE &NUM1 / &NUM2 = &OPER1, WITH A REMAINDER OF &OPER3' Page 66 BIM-EDIT System Reference Manual EJECT EJECT Use EJECT to skip to top of page. EJECT has no operands. When Valid EJECT can only be used in batch utility. Use in a Procedure EJECT normally returns OK. (See SIBRETCD.) Example After defining a new heading, skip to top of page: HEADF TIME ANALYSIS REPORT ---------------------------------------------------------------------++/* EJECT Chapter 3. Advanced User Commands Page 67 ELSE ELSE Use ELSE to end the current related IFTHEN "truth" condition and reverse that condition for procedure statements following ELSE and continuing to the related ENDIF statement. Optional Operands is a name specified on a LABEL statement. See the LABEL command. If the label precedes the ELSE, prefix the label with a dash (-). LABEL ELSE causes no position change unless, of course, the optional label parameter is used. Use of the optional LABEL parameter ends the IFTHEN block including all nesting levels. When Valid ELSE can only be used in a procedure. The ELSE command must have been preceded by a IFTHEN command and statements following must end with the ENDIF command. Use in a Procedure Return codes: NF Prior IFTHEN index not found Example The following example shows the ELSE command used within a procedure. DECLARE MEM,CHAR,33,V DECLARE DEST,CHAR,4,V PARSE MEM,DEST IFTHEN DEST,EQ,'LIBR' ELSE IFTHEN SIBUSER EQ LARS SET MEM ACCT1 ENDIF ENDIF EXIT Page 68 BIM-EDIT System Reference Manual ENDBLOCK ENDBLOCK Use ENDBLOCK to end the current logical block of commands and continue processing at the next following command. When Valid ENDBLOCK can only be used in a procedure. It must also have been preceded by a BLOCK command. Use in a Procedure Return codes: NF Related BLOCK index not found Example The following example shows the ENDBLOCK command used within a procedure. SET .... ... BLOCK IF A,NE,'B' LEAVE IF C,NE,'D' LEAVE .... Statements ... ADD CT,1 IF CT,LT,10 LOOP ENDBLOCK ... ... EXIT Chapter 3. Advanced User Commands Page 69 ENDIF ENDIF Use ENDIF to end the current IFTHEN or ELSE "truth" condition and restore "truth" condition to a "TRUE" state for subsequent processing. ENDIF causes no position change. When Valid ENDIF can only be used in a procedure. It must also have been preceded by a IFTHEN command. Use in a Procedure Return codes: NF Related IFTHEN index not found Example The following example shows the ENDIF command used within a procedure. DECLARE MEM,CHAR,33,V DECLARE DEST,CHAR,4,V PARSE MEM,DEST IFTHEN DEST,EQ,'LIBR' IFTHEN SIBUSER EQ LARS SET MEM ACCT1 ENDIF ENDIF EXIT Page 70 BIM-EDIT System Reference Manual ENQUEUE ENQUEUE ENQUEUE is used to cause procedures to synchronize access to common resources by establishing exclusive ownership of the resource by the issuing task. The exclusive ownership remains in effect until the task issues a DEQUEUE command in the same or subsequent procedure. If a DEQUEUE command is not issued, exclusive ownership remains until BIM-EDIT is cycled. ENQUEUE may also be entered as ENQ. Required Operands is any 1 to 8 character alphanumeric name used to identify the common resource. RESID Optional Operands YES indicates a conditional request. NO or omitted indicates not conditional. When YES is specified, if the resource is not available, control will be returned to the procedure with 'NA' return code. When YES is not specified, if the resource is not available, the procedure will be placed on the resource ENQ wait chain. COND When Valid The ENQUEUE command can only be used in a procedure, batch utility, or the application interface. Use in a Procedure Return codes: OK NA NF SV Successful. Resource not available, currently in use by another task (Conditional requests only) Resource not found or Resource Enqueue table (BIFTBRQ) is full. Resource already owned by issuing task or other parameter errors. Example ENQ MASTLOG,YES ;Acquire exclusive ownership of resource MASTLOG IF SIBRETCD,NE,OK EXIT NA,'** UNABLE TO UPDATE MASTER LOG, TRY lATER **' Chapter 3. Advanced User Commands Page 71 EXAMINE EXAMINE Use EXAMINE to test the current line of the current session for a character string. EXAMINE may also be entered as EXAM. Optional Operands STR is the string to search for. Up to 72 characters can be specified. If the value of STR begins with the backslash character (\), the search will use Extended Search Pattern rules, as described below. If STR is not specified, the value for STR and any other operands not specified will be inherited from previous search commands, also as described below. ZONE is the column range for the search. Enter it in the format "xxxyyy" where xxx and yyy are numbers between 1 and 253 separated by a dash (-). For example, to limit the search to columns 10 to 20, specify ZONE as "10-20". ZONE=5 is the same as ZONE=5-5, ZONE=5-* is the same as ZONE=5-253 and ZONE=-5 is the same as ZONE=1-5. If ZONE and STR are not specified, the ZONE specification is inherited from previous search commands, as described below. If ZONE, after any inheriting, is not specified, the current session zone is searched (see the ZONE operand of the DEFINE, ALTER, and SESS commands.) CASE specifies whether upper/lower case should be considered when determining matches. If specified as "U", case is ignored ("the" matches "The"). If specified as "M", both case and letters must match. If CASE and STR are not specified, the CASE specification is inherited from previous search commands, as described below. If CASE, after any inheriting, is not specified, "U" is assumed. EXAMINE is primarily useful in procedures. If the value of STR begins with a backslash (\), BIM-EDIT treats STR as an Extended Search Pattern, with certain characters having special meanings: Page 72 ? matches any single character * matches any sequence of zero or more characters @ matches zero or more instances of the character that follows the @ ! matches the beginning of the line < matches the beginning of the line or any non-alphanumeric character > matches the end of the line or any non-alphanumeric character | separates two patterns, EITHER of which may match for a successful search + separates two patterns, BOTH of which must match for a successful search BIM-EDIT System Reference Manual EXAMINE ~ reverses the success/failure of the pattern following it % marks the position on the line where the match is considered to occur \ suppresses the special meaning of the character that follows the \ A common use of the extended search string is to position the cursor at the first nonblank character in a line. The following examine command will perform this function: => examine "\@ %?";cursor A common mistake is to use the following examine command: => examine "\~ ";cursor This search will only position to text lines that do not contain any blanks because the search request says, in effect, find a blank anywhere in the search area, and then reverse the match to a false condition. See Chapter 6, Advanced Techniques, in the BIM-EDIT User Reference Manual for more information about Extended Search Patterns. If STR is not specified on the command, BIM-EDIT uses as default operand values those from previous search commands. Using this feature, you can easily request searches which are similar or identical to the last one. For example, after an EXAMINE command which failed to find the string on the current line, you need only enter => locate to find the next instance forward from the current line. To achieve this, BIM-EDIT stores a previous value for the STR, COL, CASE, and ZONE operands of the search commands (EXAMINE, FIND, FINDUP, LOCATE, LOCATEU, NFIND, NFINDUP, or QUALIFY). These previous values will be inherited by operands omitted from a search command which does not specify STR. Whenever a search command specifies STR, the previous values are set to those specified on that command or "not specified". Use in a Procedure Return Codes: OK NF Successful. String not found. If STR exists on the current line within the ZONE columns, the column where the string is found is placed in the predefined variable SSDCOL1 (if in split-screen mode, and if the lower logical screen is current, the column is placed in SSDCOL2). The CURSOR command can be used to place the cursor at the indicated location. Chapter 3. Advanced User Commands Page 73 EXAMINE Example Procedure to move the cursor to the next instance of a specified search pattern. It will handle multiple instances on the same line. SET PPDVBL,1 DCL ZONST,NUM,3,V DCL STR,CHAR,72,V PARSE STR SETD ZONST,SSDCOL&SIBSCRPM. ; COLUMN FOR LAST SUCCESS ADD ZONST,1 ; NEXT POSSIBLE OCCURRENCE SET PPDCOND,1 EXAMINE '&STR.' ZONE=&ZONST.-&SSDZONLM. ; TEST THIS LINE IF SIBRETCD NE OK ; IF NOT FOUND, SEARCH FOR SUBSEQUENT LINE LOCATE '&STR.' ; NOTE SPECIFYING STR RESETS ZONE IF SIBRETCD NE OK EXIT NF,'(USERMESG) ** STR "&STR" NOT FOUND **' CURSOR EXIT Page 74 BIM-EDIT System Reference Manual EXIT EXIT Use EXIT to terminate a procedure or, if processing input from SYSIPT, terminate the job step. Optional Operands CODE will be assigned to SIBRETCD before exiting. If CODE is not specified, SIBRETCD is set to OK before exiting. MSG will be assigned to SIBMSG before exiting. If MSG is not specified, no assignment to SIBMSG is made. The SIBMSG contents are normally displayed on the information line. ID is the message identifier for a message that can be found in $SYS.CTRL.MESSAGES or $SIT.CTRL.MESSAGES. If a value is entered for MSG this operand is ignored. If a procedure executes another procedure (or command) and wishes to use the CODE and/or MSG returned by EXIT, it must do so in the very next command following, since that command will set its own return code and message, overwriting what was returned. When a procedure is executed as an online command, the command which invoked it will remain on the command line after EXIT if CODE is not returned as "OK". If MSG is not returned, the normal status line will be displayed. A message is displayed with high intensity if the first field is enclosed within parentheses and it is followed by a blank and two asterisks: BICBRWMB (BICBRWMB) ** NO MORE MEMBERS ** For more examples, see the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. If EXIT is used from the application interface, BIM-EDIT will close the interface. When Valid EXIT can only be used in a procedure, batch utility, or the application interface. Example The following is typical of how EXIT might be used within a procedure to handle a "member not found" situation: SET PPDCOND,1 SET PPDVBL,1 DECLARE MEM,CHAR,33,V PARSE MEM READ &MEM IF SIBRETCD,NE,OK EXIT NF,'(OMPSM3XA) ** MEMBER "&TXMLIB..&TXMMEM" DOES NOT EXIST **' Chapter 3. Advanced User Commands Page 75 GOSUB GOSUB Use GOSUB to perform (i.e. transfer command processing and return to the next following command) the subroutine at the named LABEL. Performed routines must end with a RETURN command. Required Operands is a name specified on a LABEL statement. See the LABEL command. If the label precedes the GOSUB, prefix the label with a dash (-). LABEL GOSUB is either forward (to a label following the GOSUB) or backward (to a label preceding the GOSUB). Backward GOSUB is allowed only when processing lines in a member or a session. Nesting is allowed up to 16 levels deep. For more discussion and examples, see the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid GOSUB can only be used in a procedure. Whenever a backward GOSUB is executed, predefined variable PPDLPCTR is incremented. When the value of PPDLPCTR exceeds the value of PPDLPLMT, the GOSUB will fail. PPDLPLMT is initialized to 1000. Use in a Procedure Return codes OK SV SV LABEL found LABEL not found LABEL Duplicate (Only when PPDPFOPT=1 for performance option activated) Example The following example shows the GOSUB command used within a procedure. DECLARE COUNTER,NUM,6,V SET COUNTER,0 LABEL D20 GOSUB E20 ;Perform routine starting a label E20 EXIT OK,'FUNCTION COMPLETE' LABEL E20 RETURN command Page 76 ;Returns to next command following the GOSUB BIM-EDIT System Reference Manual GOTO GOTO Use GOTO to branch (i.e. transfer command processing) to the command after the corresponding LABEL command. GOTO would normally be used in a procedure. Required Operands LABEL is a name specified on a LABEL statement. See the LABEL command. If the label precedes the GOTO, prefix the label with a dash (-). GOTOs are either forward (to a label following the GOTO) or backward (to a label preceding the GOTO). Backward GOTOs are allowed only when processing lines in a member or a session (i.e. not from a medium such as SYSIPT, an INCLUDE tape, or the application interface, which cannot be accessed backward.) For more discussion and examples, see the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid GOTO can only be used in a procedure, batch utility, or the application interface. Whenever a backward GOTO is executed, predefined variable PPDLPCTR is incremented. When the value of PPDLPCTR exceeds the value of PPDLPLMT, the GOTO will fail. PPDLPLMT is initialized to 1000. Use in a Procedure GOTO returns SV for LOOP LIMIT, LABEL NOT FOUND or DUP LABEL (if PPDPFOPT=1) else it returns OK. Example The following example shows how the GOTO command could be used within a procedure that processes a sequence of statements 12 times: DECLARE COUNTER,NUM,6,V SET COUNTER,0 LABEL D20 ADD COUNTER,1 IF COUNTER,GT,12 GOTO E20 SPLIT 73 NEXT SHIFT +1 NEXT GOTO -D20 LABEL E20 Chapter 3. Advanced User Commands Page 77 HEADF HEADF Use HEADF set the heading lines for subsequent print pages. The lines following the HEADF command will be printed at the top of each page. The end-of-text line (++/*) terminates the HEADF command. HEADF has no operands. If you use variables in heading lines (for example, SIBPAGE, OPSDATE, or OPSTIME), you need to consider whether the value should be replaced when the heading is set or when the heading is printed. If PPDVBL has a value of 1 when the heading is set, replacement will take place at that time. Replacement will always take place if there are any variables in the heading when it is printed. Special processing may be performed for input lines beginning with the not symbol (¬), two periods (..), right parentheses ()), the two characters /*, the two characters /&, the four characters * $$, the four characters ++/*, the four characters ++(), or the five characters /INCL. Input lines may be processed to convert imbedded hexadecimal sequences or to overlay stamp or literal information. See PPD predefined variables for details of this processing. For examples, see the BIM-EDIT System Reference Manual Chapter 6, Batch Utility. When Valid HEADF can only be used in batch utility. Use in a Procedure HEADF normally returns OK. (See SIBRETCD.) Example Define a new heading, then force a skip to top of page: HEADF TIME ANALYSIS REPORT ----------------------------------------------------------------------++/* EJECT Page 78 BIM-EDIT System Reference Manual HEXIF HEXIF The HEXIF command is used to perform hexadecimal comparisons. The line in the procedure following the HEXIF command is only executed if the specified condition is true. If the condition is not true, the following line will be ignored (this is the same as the IF command). Required Operands OPER1 is the name of a variable that must have been previously declared. If declared numeric it will be treated as a numeric value. If declared as char, then it will be treated as a signed hex value, that is 0-9 and A-F as valid digits. In both cases it must be declared as 8 digits or less. COND must be one of the following: LT LE EQ IV less than NE not equal less than or equal GE greater than or equal equal GT greater than checks for invalid hexadecimal or numeric contents in OPER1, based on its declared type. Oper2 is not used for this condition, and can be omitted. The format of OPER1 and OPER2 will be equalized before performing the requested function; that is both will be converted to a signed fullword hexadecimal value. It is allowable to mix hexadecimal and numeric formats between OPER1 and OPER2. The comparison is always done on signed fullword hexadecimal values. OPER2 can be any one of the following: • the name of a previously declared numeric or character variable following the same rules as OPER1. • a hexadecimal literal containing only the digits 0-9, A-F. • a decimal numeric literal beginning with the letter 'N', a plus sign '+' or the neg sign '-', and followed by only the digits 0-9 (e.g., N123, +123, -123). OPER2 values must be 8 digits or less (e.g., +12345678). The HEXIF command syntax is not symmetrical. It compares a VARIABLE on the left with a VALUE on the right. When Valid The HEXIF command can only be used in a procedure, batch utility, or the application interface. Use in a Procedure The HEXIF command normally returns OK. (See SIBRETCD.) Chapter 3. Advanced User Commands Page 79 HEXIF Examples In the following examples, X and Y are declared as either CHAR or NUM of a length of 8 or less. CHAR and NUM values can be freely mixed in the requests. HEXIF X EQ C HEXIF HEXIF HEXIF HEXIF HEXIF HEXIF HEXIF HEXIF HEXIF HEXIF X EQ 0C X EQ F7 X EQ 33 X EQ N33 X EQ -33 X EQ Y 3 EQ Y X EQ 04F7KA X EQ N97A45 &X EQ Y HEXIF X IV Page 80 ;COMPARE THE VALUE OF X TO HEX VALUE OF C (numeric -4) ;UNLESS PRECEDED BY A 0 ANY VALUE GREATER THAN 7 IN THE ;LEFTMOST DIGIT OF THE HEX VALUE WILL BE TREATED AS A ;NEGATIVE NUMBER ;COMPARE THE VALUE OF X TO HEX VALUE OF 0C (numeric 12) ;COMPARE THE VALUE OF X TO HEX VALUE OF F7 (numeric -9) ;COMPARE THE VALUE OF X TO HEX VALUE OF 33 (numeric 51) ;COMPARE THE VALUE OF X TO NUMERIC VALUE OF 33 ;COMPARE THE VALUE OF X TO NUMERIC VALUE OF -33 ;COMPARE THE VALUE OF X TO THE VALUE OF Y ;INVALID - 3 IS NOT A VARIABLE NAME ;INVALID - K IS NOT A VALID HEX DIGIT ;INVALID - A IS NOT A VALID NUMERIC DIGIT ;VALID ONLY IF THE VALUE OF X IS THE NAME OF A VARIABLE ;THEN COMPARES THE VALUE OF THAT VARIABLE (I.E. THE VALUE ;OF THE VALUE OF X) TO THE VALUE OF Y ;VERIFY THAT VALUE OF X MATCHES THE TYPE OF X (HEX/NUM) BIM-EDIT System Reference Manual HEXREQ HEXREQ The HEXREQ command is used to perform hexadecimal math. It may also be used to convert numeric fields to hexadecimal fields and vice-versa. HEXREQ may also be entered as HEXR. Required Operands OPER1 is the name of a variable that must have been previously declared. If declared numeric it will be treated as a numeric value. If declared as char, then it will be treated as a hex value, that is 0-9 and A-F as valid digits. In both cases it must be declared as 8 digits or less. COND must be one of the following: + * / = add OPER2 to OPER1 subtract OPER2 from OPER1 multiply OPER1 by OPER2 divide OPER1 by OPER2, (optional) remainder in OPER3 convert the contents of OPER2 to the declared format of OPER1 and store in OPER1 (results are always returned in OPER1) The format of OPER1 and OPER2 will be equalized before performing the requested function; it is allowable to mix hexadecimal and numeric formats between OPER1 and OPER2. The operation is always done in hexadecimal. OPER2 can be any one of the following: • the name of a previously declared numeric or character variable following the same rules as OPER1. • a hexadecimal literal containing only the digits 0-9, A-F. • a decimal numeric literal beginning with the letter 'N', and followed by only the digits 0-9 (e.g., N123). • a decimal numeric literal beginning with a '-' or '+', and followed by only the digits 0-9 (e.g., -123 or +123). OPER2 values must be 8 digits or less. any hex value with the high order 8-bit on '8,9,A,B,C,D,E,F' will be treated as a negative number. It is best to enter these as 08, 09, 0A,... Chapter 3. Advanced User Commands Page 81 HEXREQ Optional Operands is the name of a previously declared variable, into which the remainder from the divide is to be stored. If declared numeric it will be stored as a numeric value. If declared as char, it will be stored as a hexadecimal value, that is 0-9 and A-F as valid digits. In both cases it must be declared as 8 digits or less. OPER3 All operations are performed algebraically. When Valid The HEXREQ command can only be used in a procedure, batch utility, or the application interface. Use in a Procedure Return Codes: OK ZD Successful. Divisor was found to be zero. Example ADD variable AMT to variable TOTAL: DECLARE AMT,CHAR,3,F DECLARE TOTAL,CHAR,8,F HEXREQ TOTAL = N100 ; SET TOTAL to 100 (X'64') HEXIF TOTAL,IV EXIT ER,'FIELD TOTAL - &TOTAL IS INVALID' HEXREQ AMT = OFF ; SET AMT to X'0FF' (255) HEXREQ TOTAL + AMT EXIT OK,'NEW TOTAL IS &TOTAL' ; TOTAL = X'00000163' Page 82 BIM-EDIT System Reference Manual IF IF Use the IF command to only process the next line in the procedure if a specified condition is true. If the condition is not true, the following line will be ignored. The IF command would normally be used in a procedure. Required Operands OPER1 is the name of a variable that must have been previously declared. COND is the condition to test for. One of the following must be specified: LT LE EQ OPER2 less than less than or equal equal NE GE GT not equal greater than or equal greater than is a value. If the OPER1 variable is of type numeric, OPER2 must be an unsigned integer. If the OPER1 variable has type CHAR, its value is compared alphamerically with the OPER2 value. If the two comparison values are not the same length, the shorter one is padded on the right with blanks to cause the lengths to be the same. If the OPER1 variable has type NUM or NUMS, the comparison is performed algebraically. Use the IFD command to directly compare the values of two variables. For more discussion, see the IFD command. Nested IF commands are not supported but can easily be simulated with a combination of IFs and GOTOs. Notes 1. The BIM-EDIT IF command syntax is not symmetrical. It compares a VARIABLE on the left with a VALUE on the right. Thus, the following commands will be treated as noted in the comments: IF X EQ 3 IF X EQ &Y IF 3 EQ &Y IF X EQ Y IF &X EQ &Y 2. ;COMPARE THE VALUE OF X TO 3 ;COMPARE THE VALUE OF X TO THE VALUE OF Y ; IFD X EQ Y SHOULD BE USED INSTEAD ;INVALID - 3 IS NOT A VARIABLE NAME ;COMPARE THE VALUE OF X TO THE CHARACTER Y ;VALID ONLY IF THE VALUE OF X IS THE NAME OF A VARIABLE -;THEN COMPARES THE VALUE OF THAT VARIABLE (I.E. THE VALUE ;OF THE VALUE OF X) TO THE VALUE OF Y When you use the IF command to compare the value of OPER1 to an OPER2 value supplied by variable replacement using the ampersand (&), you should place OPER2 in quotes if it might contain characters such as blank, comma, or equal sign that would confuse the scan. Thus, you would use IF X EQ '&Y.K' Chapter 3. Advanced User Commands Page 83 IF (You should also set PPDLITEX to 1 and PPDLITDL to '''' if there is any possibility that Y can contain a single quote character.) For more extensive discussion and examples of the IF command and variables, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. For online help, refer to topics 'DECLARE', 'ARRAYS', and 'SUBSTR'. When Valid The IF command can only be used in a procedure, batch utility, or the application interface. Use in a Procedure The IF command does not change the return code. Example If variable DEST is equal to blanks, exit the procedure with an error message: DECLARE MEM,CHAR,33,V DECLARE DEST,CHAR,4,V PARSE MEM,DEST IF DEST,EQ,'' EXIT SV,'(OMPRLSTA) ** OPERAND "DEST" IS REQUIRED **' Page 84 BIM-EDIT System Reference Manual IFD IFD Use the IFD command to only process the next line in the procedure if a specified condition is true. If the condition is not true, the following line will be ignored. The IFD command would normally be used in a procedure. Required Operands OPER1 is the name of a previously declared variable. COND is the condition to test for. One of the following must be specified: LT LE EQ less than less than or equal equal NE GE GT not equal greater than or equal greater than is the name of a previously declared variable. OPER2 If the OPER1 and OPER2 variables have type CHAR, their values are compared alphamerically. If the two comparison values are not the same length, the shorter one is padded on the right with blanks. If the OPER1 and OPER2 variables have type NUM or NUMS, their values are compared algebraically. If the OPER1 and OPER2 variables have different types, the comparison cannot succeed. Message BICIFDXB will be returned with an "SV" return code. Use the IF command to compare the value of a variable to a literal value or a value created by replacement. For more discussion, see the IF Command. For more extensive discussion and examples of the IFD command and variables, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. For online help, refer to topics 'DECLARE', 'ARRAYS', and 'SUBSTR'. When Valid The IFD command can only be used in a procedure, batch utility, or the application interface. Use in a Procedure Return Codes: SV Variables types are not the same. Otherwise, IFD command does not change the return code. Chapter 3. Advanced User Commands Page 85 IFD Example If variable MINUEND is less than variable SUBTRHND, exit the procedure with an error message: DECLARE MINUEND,NUM,9,F DECLARE SUBTRHND,NUM,9,F PARSE MINUEND,SUBTRHND IFD MINUEND,LT,SUBTRHND EXIT SV,'(SUBTESTA) ** RESULT CANNOT BE NEGATIVE **' Page 86 BIM-EDIT System Reference Manual IFTHEN IFTHEN Use the IFTHEN command to process following lines in the procedure if a specified condition is true. If the condition is not true, the following lines will be ignored until the related ELSE or ENDIF command is encountered. The IFTHEN command would normally be used in a procedure. Required Operands OPER1 is the name of a variable that must have been previously declared. COND is the condition to test for. One of the following must be specified: LT LE EQ less than less than or equal equal NE GE GT not equal greater than or equal greater than is a value. If the OPER1 variable is of type numeric, OPER2 must be an unsigned integer. OPER2 If the OPER1 variable has type CHAR, its value is compared alphamerically with the OPER2 value. If the two comparison values are not the same length, the shorter one is padded on the right with blanks to cause the lengths to be the same. If the OPER1 variable has type NUM or NUMS, the comparison is performed algebraically. Nested IFTHEN commands are supported up to 16 levels. Notes 1. The BIM-EDIT IFTHEN command syntax is not symmetrical. It compares a VARIABLE on the left with a VALUE on the right. Thus, the following commands will be treated as noted in the comments: IFTHEN IFTHEN IFTHEN IFTHEN IFTHEN 2. X EQ 3 X EQ &Y 3 EQ &Y X EQ Y &X EQ &Y ;COMPARE THE VALUE OF X TO 3 ;COMPARE THE VALUE OF X TO THE VALUE OF Y ;INVALID - 3 IS NOT A VARIABLE NAME ;COMPARE THE VALUE OF X TO THE CHARACTER Y ;VALID ONLY IF THE VALUE OF X IS THE NAME OF A VARIABLE ;THEN COMPARES THE VALUE OF THAT VARIABLE (I.E. THE ;VALUE OF THE VALUE OF X) TO THE VALUE OF Y When you use the IFTHEN command to compare the value of OPER1 to an OPER2 value supplied by variable replacement using the ampersand (&), you should place OPER2 in quotes if it might contain characters such as blank, comma, or equal sign that would confuse the scan. Thus, you would use IFTHEN X EQ '&Y.K' (You should also set PPDLITEX to 1 and PPDLITDL to '''' if there is any possibility that Y can contain a single quote character.) Chapter 3. Advanced User Commands Page 87 IFTHEN For more discussion and examples of variables, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. For online help, refer to topics 'DECLARE', 'ARRAYS', and 'SUBSTR'. When Valid The IFTHEN command can only be used in a procedure. Use in a Procedure The IFTHEN command does not change the return code. Example The following example shows the IFTHEN command used within a procedure. DECLARE MEM,CHAR,33,V DECLARE DEST,CHAR,4,V PARSE MEM,DEST IFTHEN DEST,EQ,'LIBR' IFTHEN SIBUSER EQ LARS SET MEM ACCT1 ENDIF ENDIF EXIT Page 88 BIM-EDIT System Reference Manual INCLUDE INCLUDE Use INCLUDE to incorporate lines from another source during processing. INCLUDE is especially useful in a member being processed by a SUBMIT or COMPILE command. INCLUDE may also be entered as INCL. Required Operands MEM is one of the following: member a library member. If specified without a library name, BIM-EDIT will retrieve MEM from the library for the member containing the INCLUDE, not the currently attached library. However, if the member containing the INCLUDE is the slave member in a checkout relationship, BIM-EDIT will retrieve MEM from the master library, not the slave library. To INCLUDE a member from the slave library, specify the library name as a part of MEM. $STACK the stack area. $LOG the log area. $MAIL the mail log area. (TP80) Lines from tape will be processed. The tape should contain 80 byte records. Maximum block size allowed is 16000 bytes. (TP81) Lines from tape will be processed. Maximum block size allowed is 16200. The first byte of each record will be ignored; bytes 2-81 will be processed. This option allows you to process SYSPCH tapes. On VSE, SYS004 should be assigned to the tape drive. On MVS, input will be read from ddnames BIFTP80 and BIFTP81, respectively. (CONS) Lines from the system CPU console will be processed. (CARD) Lines from SYSIPT will be processed. (SESS) Lines from the current session will be processed. Chapter 3. Advanced User Commands Page 89 INCLUDE Optional Operands ID is the value of a "--BATCH,ID=name" within the included member. The data following the "--BATCH,ID=name" statement will be included until the next "--BATCH,ID=name" statement or the end of the included member. The following parameters are valid only on the first INCLUDE (TP80) or INCLUDE (TP81) command read by BIMUTIL. These operands are only valid in VSE. OPEN is the value for the VSE tape open option. It may be specified as REWIND or NOREWIND. The default is NOREWIND. CLOSE is the value for the VSE tape close option. It may be specified as REWIND, NOREWIND or UNLOAD. The default is NOREWIND. LABEL is the value for the tape label option. It may be specified as YES or NO. YES indicates that the input tape will be a VSE standard label tape. NO means that the tape is unlabelled. The file name for a TP80 labeled tape is TPBIDTF. The file name for a TP81 labeled tape is TPBADTF. An included member (or $STACK, etc.) can itself INCLUDE from another source. This nesting process is limited to 6 levels. INCLUDEs are often used while submitting a job for processing. In this usage it is necessary to prefix the INCLUDE command with either a right parenthesis ")" or a slash "/" so that BIM-EDIT can distinguish it as a command rather than normal text. (The right parenthesis, otherwise known as the TRAP character, can only be used if the predefined variable PPDTRAP has a value of either "1" or "2" and the INCLUDE is being used within a “text-following” type command. The SUBMIT procedure supplied with BIM-EDIT sets PPDTRAP to "1", but it may be modified by your System Administrator.) Any data on the INCLUDE statement that is considered comment must be preceded by a semi-colon (;). Special processing may be performed for input lines beginning with the not symbol (¬), two periods (..), right parentheses ()), the two characters /*, the two characters /&, the four characters * $$, the four characters ++/*, the four characters ++(), or the five characters /INCL. Input lines may be processed to convert imbedded hexadecimal sequences or to overlay stamp or literal information. See PPD predefined variables for details of this processing. If the member is currently being edited, INCLUDE will retrieve the text of the member ignoring any changes made in edit session. Sub-Includes To create an INCLUDE member with sub-includes simply insert a --BATCH,ID=name with a one to eight character name to be associated with the data following the -BATCH statement. In this way several groups of include data can be maintained within Page 90 BIM-EDIT System Reference Manual INCLUDE a single include member. The following is an example of an INCLUDE member with several groups of include data within it. Example: MEMBER=MASTER-INCLUDE --BATCH,ID=PRTFILE FD PRINTER LABEL RECORDS ARE OMITTED RECORD 133 CHARACTERS DATA RECORD IS PRINT-OUT. 01 PRINT-OUT PIC X(133). --BATCH,ID=PRTRECD 01 LINE-TO-PRINT. 05 LINE-TO-PRINT-CC PIC X(1). 05 LINE-TO-PRINT-DATA PIC X(132). --BATCH,ID=PRTWRITE WRITE PRINT-OUT FROM LINE-TO-PRINT AFTER POSITIONING FORMS-CONTROL. To include a portion of the above member the include statement may be coded as follows: /INCLUDE COPYLIB.MASTER-INCLUDE,ID=PRTRECD When Valid INCLUDE can only be used in a procedure, batch utility, or the application interface. If MEM is specified as a library member, the user must have LIST access level for the MEM library. Use in a Procedure Return Codes: OK NF SC Successful. Member not found. Inadequate access level. In a text following mode, such as while submitting a job, INCLUDEs are processed only if the predefined variable PPDINCL has a value of either "1" or "2". If PPDINCL has a value of "0", INCLUDE commands are ignored. INCLUDE has two special features with respect to the predefined variables PPDADJ, PPDHEX, PPDINCL, PPDSHIFT, PPDTRAP, and PPDVBL: 1. When an INCLUDE command is processed, the values of these predefined variables are saved for later restoration when the included text has been completely processed. Thus, if the included text sets any of these variables, the new value has no effect outside the scope of the included text. 2. If one of these predefined variables has a value of "2" when the INCLUDE command is encountered, a value of "0" is assigned to the variable before starting to process the included text. (After the included text is processed, the original value of "2" is restored.) For all values other than "2", variables are not updated. This feature Chapter 3. Advanced User Commands Page 91 INCLUDE allows you to include the text of a member, but not process INCLUDEs found within the included text. By assigning a value of "2" to PPDINCL, the original INCLUDE is processed, but INCLUDEs found within the included text will simply be treated as text. Examples Quite often a number of programs need access to the same record descriptions. Rather than duplicate the record description in each program, each record description is held in a unique member. Each program, then, has an include line for each record description it will need. The following program is such a case. The first few lines of the program are presented: OMCRSEQ: PROC; /INCLUDE OMBSIB /INCL OMBSSED SSEDPTR = SIBSESSP /INCLUDE OMBRRH RRHPTR = SIBRRHP Process input from tape. Record size is 80 bytes: VSE Job Control // JOB OMJLOAD // ASSGN SYS004,TAPE // PAUSE MOUNT BIM-EDIT INPUT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS ATTACH OM20 INCLUDE (TP80) /* /& MVS Job Control //INCLJOB JOB //BIMUTIL EXEC //STEPLIB DD //BIFTP80 DD // //SYSPRINT DD //SYSIN DD LOGON $SYS,$SYS ATTACH OM20 INCLUDE (TP80) /* .... PGM=BIMUTIL DSN=BIMEDIT.LOADLIB,DISP=SHR DSNAME=BIFREPRO,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), VOL=SER=BIM104 SYSOUT=A * When submitting a BIM-EDIT batch utility job from online, it may be desirable to leave INCLUDE commands in the input unprocessed during the online SUBMIT but process them later during batch utility execution. The main reasons for doing this are: Page 92 • Reduce the amount of data that must be processed through the online system and the spooler. • Allow processing members that contain data (such as lines beginning with /*) which is difficult to include in a processing job. BIM-EDIT System Reference Manual INCLUDE The following shows one way to accomplish this: . . JCL to execute the batch utility . LOGON $SYS,$SYS SET PPDUTLOG,0 ;SUPPRESS LOGGING INPUT LINES SET PPDINCL,2 ;PROCESS one level of INCLUDE DURING BATCH EXECUTION PRINTF )SET PPDINCL,0 ;DON'T PROCESS INCLUDE DURING SUBMIT /INCLUDE BIM.WDM-TEST ++/* The key concept is that the )SET PPDINCL,0 line is executed during the online SUBMIT to suppress immediate processing of all INCLUDE commands following it. The )SET PPDINCL, 0 line is not submitted. All other lines are processed by SUBMIT as data and then later processed by the batch utility as commands. Chapter 3. Advanced User Commands Page 93 INSERTF INSERTF Use INSERTF to insert lines after the current line of the current session. The lines following the INSERTF command will be inserted. The end-of-text line (++/*) terminates the INSERTF command. INSERTF may also be entered as INSF. INSERTF ignores any operands. Special processing may be performed for input lines beginning with the not symbol (¬), two periods (..), right parentheses ()), the two characters /*, the two characters /&, the four characters * $$, the four characters ++/*, the four characters ++(), or the five characters /INCL. Input lines may be processed to convert imbedded hexadecimal sequences or to overlay stamp or literal information. See PPD predefined variables for details of this processing. For more extensive discussion and examples, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid INSERTF can only be used in a procedure, batch utility, or the application interface. Use in a Procedure INSERTF normally returns OK. (See SIBRETCD.) Example In batch utility, define and load a member from inline input: ATTACH OM20 DEFINE OMREXIO,(ASM) EDIT INSERTF .. text to load into OMREXIO .. ++/* SAVE Page 94 BIM-EDIT System Reference Manual INTERVAL INTERVAL Use INTERVAL to determine the interval, in years, days, hours, minutes, and seconds between two dates and times. INTERVAL may also be entered as INTV. Required Operands INPT1 The name of a 19 position CHAR type local variable where the first input date and time is stored in the format: MM/DD/YYYY HH:MM:SS (e.g. 12/30/1999 22:58:58, MMPDTCTL=U - USA) DD/MM/YYYY HH:MM:SS (e.g. 30/12/1999 22:58:58, MMPDTCTL=I – INT’L) or The name of a 17 position CHAR type local variable where the first input date and time is stored in the format: MM/DD/YY HH:MM:SS (e.g. 12/30/99 22:58:58, MMPDTCTL=U - USA) DD/MM/YY HH:MM:SS (e.g. 30/12/99 22:58:58, MMPDTCTL=I - INT'L) or The name of a 14 position CHAR type local variable where the first input date and time is stored in the format: YYYYMMDDHHMMSS (e.g. 19991230225858) INPT2 The name of a CHAR type local variable, where the second input date and time is stored, in one of the formats shown for INPT1 INTVL The name of a 22 position CHAR type local variable where the resulting interval time is stored in the format: YYYYDDDDHHMMSSxyyddhms, where: YYYY = Years DDDD = Days HH = Hours MM = Minutes SS = Seconds x = Hex Return Code ( X'00' = OK ) ( X'01' - X'0E' = Index to an INPT1/INPT2 error field yy = Hex Years dd = Hex Days h = Hex Hours m = Hex Minutes s = Hex Seconds When Valid INTERVAL can only be used in a procedure. Chapter 3. Advanced User Commands Page 95 INTERVAL Use in a Procedure Return codes: OK SV Syntax error, length of variable violation or variable name not found. Example The following example shows the INTERVAL command used within a procedure to capture the run duration of the procedure. DCL DCL DCL DCL DCL DCL DCL HH,CHAR,2,V MM,CHAR,2,V SS,CHAR,2,V SDATIM,CHAR,19,V EDATIM,CHAR,19,V DURATION,CHAR,22,V X,CHAR,1,V LABEL INIT SET PPDHEX,2 SET SDATIM,"&OPSDATE &OPSTIME" - Procedure logic LABEL WRAP SET EDATIM,"&OPSDATE &OPSTIME" INTERVAL EDATIM,SDATIM,DURATION SETD X,DURATION,15,1 IF X NE "&PPDHEXC.00" EXIT OK,'INPUT ERROR - &SDATIM OR &EDATIM' SETD SETD SETD EXIT Page 96 HH,DURATION,9,2 MM,DURATION,11,2 SS,DURATION,13,2 OK,"DURATION: &HH HOURS, &MM MIN, &SS SECS." BIM-EDIT System Reference Manual LABEL LABEL Use LABEL to specify a branch destination for a GOTO or GOSUB statement. LABEL would normally be used in a procedure. Required Operands NAME label name. NAME can be up to 8 characters in length, composed of the letters A-Z, the numerals 0-9, and the special characters dash (-), dollar sign ($), and the underscore (_). NOTE: If the performance option (PPDPFOPT=1) is active, duplicate LABEL NAMEs are not allowed. For performance reasons, some special rules apply to the LABEL command. The LABEL command itself must begin in column 1 (column 2 if the trap character is needed). Exactly one space should follow the LABEL command. The label name should then immediately follow. These rules allow the GOTO and GOSUB commands to compare specific columns within a line when scanning for the correct label. When Valid LABEL can only be used in a procedure, batch utility, or the application interface. Use in a Procedure LABEL returns OK except when duplicate label detected when the performance option (PPDPFOPT=1) is active. It then returns SV. Example The following example shows how the LABEL command could be used within a procedure that processes a sequence of statements 12 times: DECLARE COUNTER,NUM,6,V SET COUNTER,0 LABEL D20 ADD COUNTER,1 IF COUNTER,GT,12 GOTO E20 .... lines to be processed 12 times .... GOTO -D20 LABEL E20 Chapter 3. Advanced User Commands Page 97 LEAVE LEAVE The LEAVE command is used within BLOCK/ENDBLOCK constructs. Use LEAVE to continue processing at the line immediately after the following related ENDBLOCK position (related by the nesting count). LEAVE is normally used after an 'IF' command and would be effective if the tested condition is true. When Valid LEAVE can only be used in a procedure. The LEAVE command must precede an ENDBLOCK command and must have been preceded by a BLOCK command. Use in a Procedure Return codes: NF Related BLOCK index not found Example The following example shows the LEAVE command used within a procedure. SET .... ... BLOCK IF A,NE,'B' LEAVE IF C,NE,'D' LEAVE .... Statements ... ADD CT,1 IF CT,LT,10 LOOP ENDBLOCK ... ... EXIT Page 98 BIM-EDIT System Reference Manual LOADD (VSE version) LOADD (VSE version) Use LOADD to create a BIM-EDIT member from a VSE sublibrary member. Required Operands MEMD the name and type of an existing VSE sublibrary member. The currently attached sublibrary (see ATTACHD) will be used unless the library and sublibrary are prefixed to the member name and type (i.e. library.sublib.member.type). MEM is the member to be created. MEM must not already exist. Unless the library name is prefixed to the member name, MEM will be created in the currently attached library (see ATTACH). Optional Operands TYPE is the type for the BIM-EDIT member to be created. Attributes (but not text) will be set from the type as described in the DEFINE command. If not specified, type VSE will be used. When Valid BIM-EDIT must be running in a separate partition and under VSE/SP release 2.1 or later. The user must have LIST access level for the MEMD library and DEF access for the MEM library. Use in a Procedure LOADD normally returns OK. (See SIBRETCD.) LOADD is implemented as system procedure BIPLDDX. Examples Create member SAMSON in library OVERHAUL containing the text of member SAMSON.P of sublibrary ZAPFSTUF.GENERAL. Member type is to be TEXT: => loadd zapfstuf.general.samson.p,overhaul.samson,text Create member WORKSTAN in the current library containing the text of member P710010X.C in the current sublibrary. Member type is to be VSE: => loadd P710010X.C,WORKSTAN Chapter 3. Advanced User Commands Page 99 LOADD (MVS version) LOADD (MVS version) Use LOADD to create a BIM-EDIT member from a Partitioned Data Set (PDS) member. Required Operands MEMD the name of the PDS member. The currently attached PDS (see ATTACHD) will be used unless the PDS name is prefixed to the member name (i.e. pdsname.member). MEM is the member to be created. MEM must not already exist. Unless the library name is prefixed to the member name, MEM will be created in the currently attached library (see ATTACH). Optional Operands TYPE is the type for the BIM-EDIT member to be created. Attributes (but not text) will be set from the type as described in the DEFINE command. If not specified, type PDS will be used. When Valid The user must have LIST access level for the MEMD library and DEF access level for the MEM library. Use in a Procedure LOADD normally returns OK. (See SIBRETCD.) LOADD is implemented as system procedure BIPLDDX. Examples Create member SAMSON in library OVERHAUL containing the text of member SAMSON of PDS ZAPFSTUF.GENERAL.P. Member type is to be TEXT: => loadd zapfstuf.general.p.samson,overhaul.samson,text Create member WORKSTAN in the current library containing the text of member P710010X in the current PDS. Member type is to be PDS: => loadd P710010X,WORKSTAN Page 100 BIM-EDIT System Reference Manual LOADDL (VSE version) LOADDL (VSE version) Use LOADDL to create BIM-EDIT members from the members of a VSE sublibrary. LOADDL has no operands. LOADDL creates a procedure called TEMP-LOADDL in the current library containing LOADD commands for all the members in the currently attached VSE sublibrary. Before PROCESSing TEMP-LOADDL, you may wish to examine it to delete any LOADD commands that are not desired. When Valid BIM-EDIT must be running in a separate partition and under VSE/SP release 2.1 or later. The user must have LIST access level for the current VSE sublibrary and DEF access level for the current BIM-EDIT library. Use in a Procedure LOADDL normally returns OK. (See SIBRETCD.) LOADDL is implemented as system procedure BIPLDDL. Example Create BIM-EDIT members in the current BIM-EDIT library from all members of VSE sublibrary SYSLIB.SLI: => => => => attachd syslib.sli loaddl process temp-loaddl purge temp-loaddl Chapter 3. Advanced User Commands Page 101 LOADDL (MVS version) LOADDL (MVS version) Use LOADDL to create BIM-EDIT members from the members of a Partitioned Data Set (PDS). LOADDL has no operands. LOADDL creates a procedure called TEMP-LOADDL in the current library containing LOADD commands for all the members in the currently attached PDS. Before PROCESSing TEMP-LOADDL, you may wish to examine it to delete any LOADD commands that are not desired. When Valid The user must have LIST access level for current PDS and DEF access level for the current BIM-EDIT library. Use in a Procedure LOADDL normally returns OK. (See SIBRETCD.) LOADDL is implemented as system procedure BIPLDDL. Example Create BIM-EDIT members in the current BIM-EDIT library from all members of PDS BIM0001.SOURCE => => => => Page 102 attachd bim0001.source loaddl process temp-loaddl purge temp-loaddl BIM-EDIT System Reference Manual LOADT LOADT Use LOADT to create BIM-EDIT members by copying from a "foreign" offload tape. LOADT copies all members on the tape into the current library using the names they had on the "foreign" system. Required Operands INPUT specifies type of input tape. Specify "TP80" for a tape which contains 80 byte records and "TP81" for a tape which contains 81 byte records. The maximum block sizes are 16000 bytes and 16200 bytes, respectively. FMT specifies the format of the data on the tape. Specify "ICCF" for an ICCF PUNCTL tape. Specify "MAINT" for a VSE SSERV PUNCH format tape. Specify "IEBUPDTE" for an MVS IEBUPDTE format tape. Specify "CONDOR" for a blocked CATALS/BKEND format tape with standard labels. Optional Operands The following parameters are valid only on the first LOADT command read by BIMUTIL. These operands are only valid in VSE. OPEN is the value for the VSE tape open option. It may be specified as REWIND or NOREWIND. The default is NOREWIND. CLOSE is the value for the VSE tape close option. It may be specified as REWIND, NOREWIND or UNLOAD. The default is NOREWIND. LABEL is the value for the VSE tape label option. It may be specified as YES or NO. YES indicates that the tape created will be a VSE standard label tape. NO means that the tape is unlabelled. FMT=CONDOR has a default of YES, while all other formats default to NO. The file name for a TP80 labeled tape is TPBIDTF. The file name for a TP81 labeled tape is TPBADTF. On VSE, SYS004 should be assigned to the tape drive. On MVS, input will be read from ddnames BIFTP80 and BIFTP81, respectively. All members on the tape are copied to BIM-EDIT except those which already exist in the library. A message is displayed for each member that is loaded and for each member that cannot be loaded. If a character is found in the name that is not valid for a BIM-EDIT member name, it is changed to a dash (-). Chapter 3. Advanced User Commands Page 103 LOADT The ICCF format supports tapes generated by VSE ICCF DTSUTIL as a result of "PUNCH ... PUNCTL" commands. The format of these tapes is: ADD MEMBER (lib1 member1 user1) member1 text lines END OF MEMBER ADD MEMBER (lib2 member2 user2) member2 text lines END OF MEMBER The MAINT format supports tapes generated by VSE SSERV as a result of "PUNCH" commands or VSE/SP 2.1 LIBR as a result of "PUNCH ... FORMAT=OLD" commands. The format of these tapes is: CATALS x.member1 BKEND member1 text lines BKEND CATALS x.member2 BKEND member2 text lines BKEND The IEBUPDTE format supports the basic syntax for updating PDS members. There is no standard way to produce this format, although it could be produced by using several lines of IEBPTPCH commands. The format of these tapes is: ./ ADD NAME=member1 member1 text lines ./ ADD NAME=member2 member2 text lines The MAINT and IEBUPDTE control lines as processed by IBM allow for a number of other parameters besides the member name. LOADT is not written to process these additional parameters. The CONDOR format supports tapes generated by CONDOR's CAMSERV with SYS005 assigned to a tape. The output is a standard labeled, blocked tape with the following format: CATALS x.member1 BKEND member1 text lines BKEND CATALS x.member2 BKEND member2 text lines BKEND LOADT is intended for use to transfer members between machines. To convert from ICCF to BIM-EDIT, use LOADI or LOADIL. To convert from VSE sublibraries or MVS PDSs to BIM-EDIT, use LOADD or LOADDL. When Valid LOADT can only be used in batch utility. The user must have DEF access level for the currently attached library. Page 104 BIM-EDIT System Reference Manual LOADT Use in a Procedure Return Codes: OK SC Successful. Inadequate access level. Example Process input from an ICCF tape. Record size is 80 bytes: VSE Job Control // JOB CONVERT // ASSGN SYS004,TAPE // PAUSE MOUNT ICCF OUTPUT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS ATTACH CONVLIB LOADT TP80,ICCF /* /& MVS Job Control //CONVERT JOB //BIMUTIL EXEC //STEPLIB DD //BIFTP80 DD // //SYSPRINT DD //SYSIN DD LOGON $SYS,$SYS ATTACH OM20 LOADT TP80,ICCF /* .... PGM=BIMUTIL DSN=BIMEDIT.LOADLIB,DISP=SHR DSNAME=ICCFBACK,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), VOL=SER=BIM104 SYSOUT=A * Chapter 3. Advanced User Commands Page 105 LOGF LOGF Use LOGF to write lines to $LOG. The lines following the LOGF command will be written to $LOG. The end-of-text line (++/*) terminates the LOGF command. LOGF ignores any operands. Special processing may be performed for input lines beginning with the not symbol (¬), two periods (..), right parentheses ()), the two characters /*, the two characters /&, the four characters * $$, the four characters ++/*, the four characters ++(), or the five characters /INCL. Input lines may be processed to convert imbedded hexadecimal sequences or to overlay stamp or literal information. See PPD predefined variables for details of this processing. For more extensive discussion and examples, see the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid LOGF can only be used in a procedure, batch utility, or the application interface. However, $LOG is not saved if the task is not an online user. Use in a Procedure LOGF normally returns OK. (See SIBRETCD.) Example From within a procedure, write lines to log: LOGF ****************************************************************** THE FRIDAY OPERATING RUN HAS NOW BEEN SUBMITTED. THIS INCLUDES: 1) DAILY RUN 2) END OF WEEK RUN ****************************************************************** ++/* Page 106 BIM-EDIT System Reference Manual LOGON LOGON Use LOGON to begin using BIM-EDIT. LOGON is required as the first line of a batch utility run. Required Operands USER is the user ID. PSWD is the password associated with USER. Optional Operand FORCE is an option to "force" a logoff of a user currently logged on to BIM-EDIT. The FORCE option is only presented to the user if the userid is recognized as "already logged on". Enter as FORCE=YES. Under CICS, the transaction code chosen by your site, usually EDTR, is used instead of LOGON. You will be prompted for your user id and password (unless your site has modified the BIXLOGN routine to obtain user identification in some other way.) This is still processed as a LOGON, even though you do not enter it as a command. An alternate LOGON screen, that has a "new password" field, is available by renaming $SYS.CTRL.LOGONNEW and $SYS.CTRL.LOGONNEW-F to $SYS.CTRL.LOGON and $SYS.CTRL.LOGON-F respecitively. This LOGON screen allows the user to change his/her password at logon time. This screen adds the optional "NEWPSWD" field between the PSWD and FORCE fields. When Valid Check with your System Administrator regarding restrictions for LOGON. The exit routine distributed with BIM-EDIT implements no special restrictions. (Changes to the BIXLOGN exit routine are described in the System Reference Manual.) Use in a Procedure Return codes are not relevant, since unsuccessful logon will preclude executing any command that could make use of the return code. Chapter 3. Advanced User Commands Page 107 LOGON Examples Logon as user HKL. Password is SFXX: VSE Job Control // JOB BIMUTIL // EXEC BIMUTIL LOGON HKL,SFXX .... BIM-EDIT commands /* /& MVS Job Control //LOGONJOB JOB .... //BIMUTIL EXEC PGM=BIMUTIL //STEPLIB DD DSN=BIMEDIT.LOADLIB,DISP=SHR //SYSPRINT DD SYSOUT=A //SYSIN DD * LOGON HKL,SFXX .... BIM-EDIT commands /* Page 108 BIM-EDIT System Reference Manual LOOP LOOP Use LOOP to continue processing at the line immediately following the prior related BLOCK position (related by the nesting count). LOOP is normally used after an 'IF' command and would be effective if the tested condition is true. LOOP commands are used within BLOCK/ENDBLOCK constructs and are normally used after 'IF' commands. LOOP loops back to the prior related BLOCK position. When Valid LOOP can only be used in a procedure. LOOP command must have been preceded by a BLOCK command. Use in a Procedure Return codes: NF Related BLOCK index not found Example The following example shows the LOOP command used within a procedure. SET .... ... BLOCK IF A,NE,'B' LEAVE IF C,NE,'D' LEAVE .... Statements ... ADD CT,1 IF CT,LT,10 LOOP ENDBLOCK ... ... EXIT Chapter 3. Advanced User Commands Page 109 LUCL LUCL Use LUCL to CLOSE a conversation with a partner BIM-EDIT, using the application interface LU 6.2 protocol from within a procedure. This command requires that a communication link has been established with the PARTNER via a previously successful execution of the LUOP command. Required Operands LINED Name of a 253 byte declared character variable, data line area. The contents of this variable are not used or changed by this command. It is required simply to have a consistent command syntax within all of the LUxx commands. STATUS Name of a 2 byte declared character variable, status area. The contents of this variable are not used or changed by this command. It is required simply to have a consistent command syntax within all of the LUxx commands. WORKAREA Name of a 253 byte declared character variable, work area. This must be the same variable specified on the LUOP command. Optional Operands ON/OFF, $LOG recording operand (The default is OFF). LOG With minimal variation, the LU 6.2 application interface conversation protocol, as documented for batch purposes, applies for procedures. For more information, refer to Chapters 2 and 6 in the BIM-EDIT System Reference Manual. When Valid The user must have OPER or ADM command security. Use in a Procedure only Return Codes: OK CL LU SV Successfully disconnected the communication link with the PARTNER. Failure to disconnect or not connected with the PARTNER BIM-EDIT. LU 6.2 protocol failure. Severe error, usually accompanied with a message. Examples See provided procedure examples in $SYS.UDP. BIPXCOM, BIPXRCV, BIPXSND Page 110 BIM-EDIT System Reference Manual LUOP LUOP Use LUOP to OPEN a conversation with a partner BIM-EDIT, using the application interface LU 6.2 protocol from within a procedure. Required Operands LINED Name of a 253 byte declared character variable, data line area. STATUS Name of a 2 byte declared character variable, status area. WORKAREA Name of a 253 byte declared character variable, work area. Optional Operands ON/OFF, $LOG recording operand (The default is OFF). LOG To OPEN a conversation with a PARTNER BIM-EDIT, you must provide a PARTNER application name and LOGMODE name in the LINED variable. NAME....LOGMODE. COL = 0.......8....... P390EDITEDITLU62 By declaring unique WORKAREA variables, a procedure is able to establish multiple partner BIM-EDIT conversations. With minimal variation, the LU 6.2 application interface conversation protocol, as documented for batch purposes, applies for procedures. For more information, refer to Chapters 2 and 6 in the BIM-EDIT System Reference Manual. When Valid The user must have OPER or ADM command security. Use in a Procedure only Return Codes: OK OP LU SV Successfully established the communication link with the PARTNER. Failure to establish the communication link with the PARTNER BIM-EDIT. LU 6.2 protocol failure. Severe error, usually accompanied with a message. Examples See provided procedure examples in $SYS.UDP. BIPXCOM, BIPXRCV, BIPXSND Chapter 3. Advanced User Commands Page 111 LURC LURC Use LURC to receive responses or data lines from a partner BIM-EDIT, using the application interface LU 6.2 protocol from within a procedure. This command requires that a communication link has been established with the PARTNER via a previously successful execution of the LUOP command. Required Operands LINED Name of a 253 byte declared character variable, data line area. STATUS Name of a 2 byte declared character variable, status area. WORKAREA Name of a 253 byte declared character variable, work area. This must be the same variable specified on the LUOP command. Optional Operands ON/OFF, $LOG recording operand (The default is OFF). LOG The response status codes will be returned in the STATUS variable, data lines in the LINED variable. With minimal variation, the LU 6.2 application interface conversation protocol, as documented for batch purposes, applies for procedures. For more information, refer to Chapters 2 and 6 in the BIM-EDIT System Reference Manual. When Valid The user must have OPER or ADM command security. Use in a Procedure only Return Codes: OK LU SV * Successfully processed. LU 6.2 protocol failure. Severe error, usually accompanied with a message. Other error codes resulting from partner execution of commands. Examples See provided procedure examples in $SYS.UDP. BIPXCOM, BIPXRCV, BIPXSND Page 112 BIM-EDIT System Reference Manual LUSD LUSD Use LUSD to SEND a command or data to a partner BIM-EDIT, using the application interface LU 6.2 protocol from within a procedure. This command requires that a communication link has been established with the PARTNER via a previously successful execution of the LUOP command. Required Operands LINED Name of a 253 byte declared character variable, data line area. STATUS Name of a 2 byte declared character variable, status area. WORKAREA Name of a 253 byte declared character variable, work area. This must be the same variable specified on the LUOP command. Optional Operands ON/OFF, $LOG recording operand (The default is OFF). LOG The command to be sent to the partner must be placed in the LINED data line variable with the STATUS variable set to OK. With minimal variation, the LU 6.2 application interface conversation protocol, as documented for batch purposes, applies for procedures. For more information, refer to Chapters 2 and 6 in the BIM-EDIT System Reference Manual. When Valid The user must have OPER or ADM command security. Use in a Procedure only Return Codes: OK LU SV * Successfully sent the command. LU 6.2 protocol failure. Severe error, usually accompanied with a message. Other error codes resulting from partner execution of sent commands. Examples See provided procedure examples in $SYS.UDP. BIPXCOM, BIPXRCV, BIPXSND Chapter 3. Advanced User Commands Page 113 MAPF MAPF Use MAPF to display lines and obtain input from the terminal. The lines following the MAPF are displayed and the keyboard is freed. Keyboard entry is allowed where "updateable fields" have been indicated by special coding in the lines following the MAPF. The end-of-text line (++/*) terminates the MAPF command. MAPF has no operands. MAPF is the only way to interact (engage in a dialog) with a procedure. MAPF and the no-session display are the only BIM-EDIT displays that are not sessions. Because of this, MAPF will use the entire screen even though you may be in split-screen mode and will not allow you to enter commands. Inside a procedure, a MAPF will look something like the following => LIST COLOSSAL.MENU SESS=A 1( 1) LINE= 34( 256) ----|----1----|----2----|----3----|----4----|----5----|----6----|----7-*===* MAPF *===* COLOSSAL INVESTMENTS SELECTION MENU *===* &SECURITY *===* *===* B = BUY *===* S = SELL *===* *===* ENTER SELECTION {S} AND QUANTITY {QUAN} *===* ++/* When processed, this command will display: COLOSSAL INVESTMENTS SELECTION MENU INTERNATIONAL BUSINESS MACHINES COMMON B = BUY S = SELL ENTER SELECTION _ AND QUANTITY 100 (Assuming the value of the variable SECURITY is "INTERNATIONAL BUSINESS MACHINES COMMON", the value of the variable S is " ", the value of the variable QUAN is "100", and the value of the predefined variable PPDVBL is "1" OR "2".) On this screen, you may enter a value for variable S at the current location of the cursor (after SELECTION) and you may modify the value of the variable QUAN ("100") after QUANTITY. Data cannot be entered in other locations. When you hit ENTER, CLEAR or a PF or PA key, the procedure will continue executing after MAPF's ++/*. The changed values of S and QUAN will be available to the procedure if the user hit ENTER or a PF key, but not if the user hit CLEAR or a PA key. MAPF displays normal text at the row and column in which it appears on the display lines. However, MAPF does most of its work by being sensitive to special characters in the display lines: Page 114 BIM-EDIT System Reference Manual MAPF Ampersand (&) If the predefined variable PPDVBL is "1" or "2", and the ampersand is followed immediately by the name of a variable, the value of the variable will be replaced into the display. Display intensity will carry from the preceding text. (This is, in fact, normal variable replacement.) Left brace ({) Starts a low-intensity updateable field. Must be followed immediately by the name of the variable whose value corresponds to the field contents. Explanation mark (!) Starts a high-intensity updateable field. Must be followed immediately by the name of the variable whose value corresponds to the field contents. Broken vertical bar (¦) Starts a no-display updateable field. Must be followed immediately by the name of the variable whose value corresponds to the field contents. Right brace (}) Ends an updateable field. Any following text will be displayed in low intensity. Not symbol (¬) Ends an updateable field. Any following text will be displayed in high intensity. Common combinations are: {FIELD } Low intensity field, low intensity non-field text !FIELD } High intensity field, low intensity non-field text {FIELD ¬ Low intensity field, high intensity non-field text The length of the updateable field is determined by the position of the starting and ending characters. Since the name of the variable that corresponds to a field must also be placed between the starting and ending characters, the length of the name of a variable used in a MAPF should not be longer than its value. If you do use a variable name whose name is longer than its declared value length, BIMEDIT will shift-left the data that follows the long variable name, based on the difference between the data length declared for the field, and the length of the variable name. Notes 1. The two end-field characters can be inserted anywhere in non-updateable text to change the intensity of subsequent text. Their use is not restricted to terminating an updateable field. 2. Updateable fields need not be terminated by one of the two end-field characters. They can also be terminated by the start-field character of the next updateable field. 3. Your System Administrator has the option of customizing the table of special MAPF characters. This topic is covered in Chapter 11, Customization, in the BIM-EDIT System Reference Manual. 4. A variable that corresponds to a field must have been previously declared as a character variable. Its declared length must exactly match the number of positions between the field start character and the field end character. 5. If the variable was declared with CASE=U, input data is translated to upper case on receipt from the map. Chapter 3. Advanced User Commands Page 115 MAPF 6. If the MAPF screen does not contain any updateable fields, then the MAPF screen will be sent to the terminal, but no input request will be attempted. Control will be returned directly to the procedure for continued execution. 7. The MAPF must not have more lines than the user's current screen size. 8. If predefined variable PPDALARM is set to "1" when the MAPF is executed, the terminal will beep. Any other value will suppress this function. 9. If predefined variable PPDCSFLD is set to the name of a variable which appears as a field in the MAPF, the initial cursor position will be at the beginning of that field. 10. The key that the user entered to transmit the screen is available in the predefined variable PPDKEY. PPDKEY assumes one of the following values: ENTER CLEAR PA1, PA2, PA3 PF1, PF2, ..., PF24 11. The position of the cursor when the user transmitted the screen is available in the predefined variables SIBCSROW and SIBCSCOL. 12. If any fields were changed by the user, predefined variable PPDMSGF will have the value "1" after the MAPF. Otherwise it will be "0". 13. Whether the MAPF is generated in default or alternate terminal mode is controlled by the value of predefined variable PPDSCRSZ when the MAPF is issued. If it has the value "A", alternate mode is used. If it has the value "D", default mode is used. Special processing may be performed for input lines beginning with the not symbol (¬), two periods (..), right parentheses ()), the two characters /*, the two characters /&, the four characters * $$, the four characters ++/*, the four characters ++(), or the five characters /INCL. Input lines may be processed to convert imbedded hexadecimal sequences or to overlay stamp or literal information. See PPD predefined variables for details of this processing. For more extensive discussion and examples, see the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid MAPF can only be used in an online procedure. Use in a Procedure MAPF normally returns OK. (See SIBRETCD.) Example Within an online procedure, interact with the user to get a job name to submit: Page 116 BIM-EDIT System Reference Manual MAPF DECLARE JOB,CHAR,8,V SET PPDVBL,1 MAPF -AP20- ACCOUNTS PAYABLE SYSTEM ENTER JOB TO BE RUN: {JOB } AVAILABLE JOBS ---------------------------------------------------------------------ESAP010 VENDOR LISTING ESAP020 ACCOUNTS PAYABLE AGING ESAP030 PAYMENTS SUMMARY ESAP040 CASH PAYMENTS JOURNAL ++/* SUBMIT &JOB Chapter 3. Advanced User Commands Page 117 MULTIPLY MULTIPLY Use MULTIPLY to arithmetically multiply a specified variable by a specified value. MULTIPLY may also be entered as MULT. Required Operands OPER1 is the name of a previously declared numeric variable. OPER2 is a non-negative numeric integer. The contents of the OPER1 variable will be multiplied by the OPER2 value. The result will be stored in the OPER1 variable. For more discussion and examples of variables, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. For online help, refer to topics 'DECLARE', 'ARRAYS', and 'SUBSTR'. When Valid MULTIPLY can only be used in a procedure, batch utility, or the application interface. Use in a Procedure MULTIPLY normally returns OK. (See SIBRETCD.) Example Procedure to calculate the percent of BIM-EDIT 16K memory blocks currently in use: SET PPDVBL,1 DCL PERCENT,NUM,8,V SETD PERCENT,MMP16KUS MULTIPLY PERCENT,1000 ;SCALE BEFORE INTEGER DIVISION DIVIDE PERCENT,&MMP16KDP ADD PERCENT,5 ;ROUND TO NEAREST PERCENT DIVIDE PERCENT,10 EXIT OK,'&PERCENT.% OF 16K MEMORY BLOCKS ARE IN USE' Page 118 BIM-EDIT System Reference Manual OUTPUTF OUTPUTF Use OUTPUTF to write lines to a destination determined by the value of the predefined variable SIBOUTPT. The lines following the OUTPUTF will be written to the destination. The end-of-text line (++/*) terminates the OUTPUTF command. OUTPUTF may also be entered as OUTF. The following table shows how OUTPUTF functions for specific values of SIBOUTPT. For example, if SIBOUTPT has a value of K, OUTPUTF functions exactly like the STACKF command. A D I K Appl Int. DISPLAYF INSERTF STACKF L N P LOGF CONSOLEF PRINTF R S T U REPROF SUBMITF AUDITF PUNCHF OUTPUTF's operands are treated as if they were operands to the indicated command. For online BIM-EDIT, SIBOUTPT is initialized to "D", causing output to be directed to a DISP session. On VSE, if running in batch utility with the first UPSI bit on, SIBOUTPT is initialized to "N", causing output to be directed to the system console. If the first UPSI bit is off, SIBOUTPT is initialized to "P", causing output to be directed to the printer. On MVS, batch utility always initializes SIBOUTPT to "P", causing output to be directed to the printer. Regardless of the environment, output can be directed to a different destination by setting SIBOUTPT to a different value. (SIBOUTPT also controls where output is directed for display-type commands such as LIBRARY.) OUTPUTF is useful when you are writing a procedure whose output should be sent to different destinations depending on where it is run. Special processing may be performed for input lines beginning with the not symbol (¬), two periods (..), right parentheses ()), the two characters /*, the two characters /&, the four characters * $$, the four characters ++/*, the four characters ++(), or the five characters /INCL. Input lines may be processed to convert imbedded hexadecimal sequences or to overlay stamp or literal information. See PPD predefined variables for details of this processing. For more discussion on text-following commands, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid OUTPUTF can only be used in a procedure, batch utility, or the application interface. (Usage may be further restricted by the value of SIBOUTPT. For example, SIBOUTPT R can only be used in batch utility, because the REPRO command can only be used in batch utility.) Use in a Procedure OUTPUTF normally returns OK. (See SIBRETCD.) Chapter 3. Advanced User Commands Page 119 OUTPUTF Example Procedure to output information about a library to the console: SET PPDVBL,1 DECLARE LIB,CHAR,16,V PARSE LIB READL &LIB SET SIBOUTPT,'N' OUTPUTF NAME : &TXLLIB TITLE : &TXLTITLE USER : &TXLUSER DATE CREATED : &TXLDTCRE ++/* Page 120 BIM-EDIT System Reference Manual PARSE PARSE Use PARSE to set specified variables to values determined from the procedure parameter character string (PARMLIST). Required Operands VBL1 is the name of a previously declared variable (see the DECLARE command.) The variable can be declared with any attributes. PARSE will verify that the value in PARMLIST that is to be parsed into the VBL1 variable conforms with these attributes. For character variables, data is translated to upper case if the variable is declared (explicitly or by default) as an upper case variable. Optional Operands VBL2-24 are an additional 23 variable names that can be specified. The discussion regarding VBL1 also applies to VBL2-24. When a procedure is invoked, the entire parameter string is assigned to a predefined variable named PARMLIST. If the parsing scheme used by PARSE is not adequate for a particular situation, PARMLIST can be analyzed directly. Since PARSE always analyzes the PARMLIST variable, it can be used to analyze data other than the parameter string. If you have other data to parse (for example, data from a session line) you can assign that data to the PARMLIST variable, and then issue the PARSE command. If a variable is declared with CASE=U, PARSE will translate its value to uppercase. PARSE uses the same analysis routines used by BIM-EDIT commands, that is, operands can be entered positionally, by keyword, or by a combination of the two methods. For more extensive discussion and examples, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid PARSE can only be used in a procedure, batch utility, or the application interface. Use in a Procedure PARSE normally returns OK. (See SIBRETCD.) Example Retrieve the parameters for a procedure: Chapter 3. Advanced User Commands Page 121 PARSE DECLARE MEM,CHAR,33,V DECLARE OPT,CHAR,8,V PARSE MEM,OPT IF MEM,EQ,'' EXIT ER,'** MEMBER REQUIRED **' IF OPT,EQ,'' SET OPT,PROD If the above procedure were called SMAP, we could invoke the procedure with parameters as follows: => smap omrexio,prod We could also have invoked it as follows: => smap opt=prod,mem=omrexio Or, as follows: => smap omrexio,opt=prod Page 122 BIM-EDIT System Reference Manual PEND PEND Use PEND to create a one-time use password (a "pending" password). PEND has no operands. PEND will place a temporary password in the predefined variable SIBPDPSW. A temporary password is good for a one-time logon in batch (i.e., a second logon using the password will fail). By using a temporary password, your permanent password is not revealed to someone who views the BIM-EDIT job while it is in POWER or JES. A user may have multiple temporary passwords outstanding at one time. System variable MMPTPEXP can be used to control how long temporary passwords are maintained. Temporary passwords will be maintained until one of the following occurs: 1) A batch job is submitted as shown in the example below. 2) Your BIM-EDIT library is restored. 3) The temporary password is manually deleted using the PURGEN command. 4) The number of days specified in MMPTPEXP has passed. The temporary password will then be purged on the next BIM-EDIT startup. If MMPTPEXP has not been set, seven days will be assumed. Use in a Procedure PEND normally returns OK. (See SIBRETCD.) Example Submit a job which logs on to batch utility using a temporary password and whatever user executes the SUBMITF. The PEND command's temporary password is replaced into the LOGON command as the job is submitted: VSE Job Control SET PPDVBL,1 PEND SUBMITF * $$ JOB JNM=BIJSCAN,CLASS=C,DISP=D,USER=&SIBUSER * $$ LST DISP=H,CLASS=A,COPY=1 // JOB BIJSCAN SCAN LIBRARY // EXEC BIMUTIL LOGON &SIBUSER,&SIBPDPSW SCAN ED30,BIRDKAQ /* /& * $$ EOJ ++/* Chapter 3. Advanced User Commands Page 123 PEND MVS Job Control PEND SET PPDVBL,1 SUBMITF //SCANJOB JOB .... //BIMUTIL EXEC PGM=BIMUTIL //STEPLIB DD DSN=BIMEDIT.LOADLIB,DISP=SHR //SYSPRINT DD SYSOUT=A //SYSIN DD * LOGON &SIBUSER,&SIBPDPSW SCAN ED30,BIRDKAQ /* ++/* Page 124 BIM-EDIT System Reference Manual PHONETIC PHONETIC Use PHONETIC to convert a name or word to a phonetic code. Normally one would use the code for comparing like sounding words such as names or for indexing records keyed by names. This can be used in situations where spelling differences may occur. Required Operands CODE The name of a local variable in which to store the resulting code. Maximum length is 16, minimum is 2. NAME Name or word to be converted. Maximum length is 16, minimum is 2. The result variable must be the same size as the input and can be the same variable. Conversion results are left justified. Examples of conversion: NAME: Stewart Stuart Houston Huston CODE: S363 S363 H235 H235 When Valid PHONETIC can only be used in a procedure. Use in a Procedure Return codes: OK SV Conversion failure. Syntax error or length violation. Example The following example shows the PHONETIC command used within a procedure to compare the Swedish spelling of the name "Larsson" to the American or English spelling "Larson". In either case the result code will be "L625". DECLARE NAME,CHAR,16,V DECLARE NAM2,CHAR,16,V DECLARE CODE,CHAR,8,V DECLARE COD2,CHAR,8,V PARSE NAME,NAM2 PHONETIC CODE,&NAME PHONETIC COD2,&NAM2 IF CODE NE COD2 EXIT ER,'NAMES DO NOT MATCH - &CODE, &COD2' EXIT OK,'MATCH CODE=&CODE' Chapter 3. Advanced User Commands Page 125 PRINT PRINT Use PRINT to print the text of a member. PRINT can also be entered as RELIST. Optional Operands MEM is an existing member. If MEM is not specified, the "last referenced member" is used. For online print on VSE, MEM can be specified as "/" to print the current session, "$STACK" to print your STACK area, "$MAIL" to print your MAIL queue, or "$LOG" to print your LOG area. CLASS is the job class for the resulting print. If CLASS is not specified, "A" is used. FNO is the form number for the resulting print. If FNO is not specified, the operating system's default form number will be used. (For VSE, the default is blanks.) CASE If CASE is specified as "U", text will be translated to upper case. If CASE is specified as "M", text will not be translated. If CASE is not specified, "M" is assumed. FMT specifies the format to use when printing lines. Specify "NO" if exact line images are to be printed. Specify "YES" if lines are to be prefixed with line numbers. If FMT is not specified, a value of "YES" is assumed. PGSIZ printed page size. A value specified for PGSIZ will determine the number of lines to be printed on a page. If PGSIZ is not specified the number of lines per page will be the value of MMPPGSIZ. PSWD If the member is password protected, the password must be entere. The password may be up to 8 characters in length consisting of any characters. Optional Operands (VSE only) Page 126 RJEID RJEID may be specified as a value of "1" to "250". RJEID may also be specified as "R001" to "R250" but in this case must be 4 characters long. JSEP If JSEP is specified as "0", no page separator pages will be printed. A value of "1" to "9" will cause POWER to print as many page separators as the value specified. COPY COPY may be specified as a value from 1 to 255 to indicate the number of copies to be printed. The default is 1. BIM-EDIT System Reference Manual PRINT Optional Operands (VSE only, continued) DESTNODE Is a 1 to 8 character name of a nodeid to which POWER is to route the listing. If omitted the destination will be the system on which BIM-EDIT is running. DESTUSER Is a 1 to 8 character name of a destination userid or "ANY". If omitted DESTUSER will default to "LOCAL". DESTUSER may also be used to specify a RJEID value but only if the "Rnnn" format is used. DESTUSER will always override any RJEID specified. UINF is the 16 character user information to be associated with the POWER LST output. On VSE, PRINT can be used both under online BIM-EDIT and in batch utility. Direct online print (and printing the current session) is only available for VSE/SP version 2.1 and later. For prior releases, if PRINT is invoked online, it submits a job that invokes the PRINT procedure in batch utility. On MVS, batch utility PRINT writes its output to ddname SYSPRINT. For MVS, if PRINT is invoked online, it submits a job that invokes the PRINT procedure in batch utility. The PRINT command, both online and batch, determines the number of line to print on a page based on the value of the variable MMPPGSIZ. PRINT sets the "last referenced member". Use in a Procedure Return Codes: OK NF SC Successful. Member not found. Inadequate access level. PRINT sets the TXM variables to the attributes of MEM. PRINT is implemented as the system procedure BIPPRNT. PRINT handles the actual printing by invoking the PRINTF command. Examples From online, print the member XIL0250. Translate to upper case: => print xil0250,case=u From batch, print the members RMGL300 and RMGL400: Chapter 3. Advanced User Commands Page 127 PRINT VSE Job Control // JOB PRINT // EXEC BIMUTIL LOGON $SYS,$SYS PRINT RMGL300 PRINT RMGL400 /* /& MVS Job Control //PRNTJOB JOB //BIMUTIL EXEC //STEPLIB DD //SYSPRINT DD //SYSIN DD LOGON $SYS,$SYS PRINT RMGL300 PRINT RMGL400 /* Page 128 .... PGM=BIMUTIL DSN=BIMEDIT.LOADLIB,DISP=SHR SYSOUT=A * BIM-EDIT System Reference Manual PRINTF PRINTF Use PRINTF to print lines. The lines following the PRINTF command will be printed. The end-of-text line (++/*) terminates the PRINTF command. Optional Operands STR ignored. (Provided for compatibility with DISPLAYF operands when using PRINTF through the OUTPUTF command.) FMT specifies the format to use when printing lines. Specify "0" if exact line images are to be printed. Specify "1" if lines are to be prefixed with line numbers. If FMT is not specified, a value of "0" is assumed. CASE specifies how text is to be translated before processing. If CASE is specified as "U", text will be translated to upper case. If CASE is specified as "M", text will not be translated. If CASE is not specified, "M" is assumed. On VSE, if PRINTF is used online, BIM-EDIT will directly create a POWER job entry in the LST queue. The attributes of the POWER job entry created are determined by the contents of certain variables, which the procedure containing PRINTF must declare as follows: DECLARE DECLARE DECLARE DECLARE DECLARE DECLARE DECLARE DECLARE DECLARE DECLARE DECLARE DECLARE LSTCLASS,CHAR,1,V LSTCOPY,NUM,3,V LSTDISP,CHAR,1,V LSTPRI,CHAR,1,V LSTFCB,CHAR,8,V LSTFNO,CHAR,8,V LSTNAME,CHAR,8,V LSTUSER,CHAR,16,V LSTJSEP,NUM,3,V LSTRJEID,CHAR,4,V LSTDSNOD,CHAR,8,V LSTDSUSR,CHAR,8,V ;POWER CLASS ;NUMBER OF COPIES ;DISPOSITION (K,L,D,H) ;PRIORITY ;FORMS CONTROL BUFFER NAME ;FORMS NAME ;POWER JOB NAME ;POWER USER INFORMATION ;JOB SEPARATOR PAGE COUNT ;REMOTE DESTINATION FOR PRINT ;DESTINATION NODE ;DESTINATION USER On MVS, PRINTF will write its output to ddname SYSPRINT. See the PRINT procedure source for an example of online PRINTF usage. Special processing may be performed for input lines beginning with the not symbol (¬), two periods (..), right parentheses ()), the two characters /*, the two characters /&, the four characters * $$, the four characters ++/*, the four characters ++(), or the five characters /INCL. Input lines may be processed to convert imbedded hexadecimal sequences or to overlay stamp or literal information. See PPD predefined variables for details of this processing. For more discussion on text-following commands, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. On VSE, online PRINTF sets "last referenced POWER job entry". Chapter 3. Advanced User Commands Page 129 PRINTF When Valid On VSE, PRINTF can only be used in a procedure or batch utility. If running under an earlier release than VSE/SP 2.1, only batch utility usage is available. On MVS, PRINTF can only be used in batch utility. Use in a Procedure PRINTF normally returns OK. (See SIBRETCD.) On VSE, online PRINTF sets the PWR variables to the attributes of the entry printed. Example Print member OMRPWR3 with all INCLUDEs expanded: SET PPDINCL,1 PRINTF /INCLUDE OMRPWR3 ++/* Page 130 BIM-EDIT System Reference Manual PUNCH PUNCH Use PUNCH to punch the text of a member. Optional Operands MEM is the member to be punched. If MEM is not specified, the "last referenced member" is used. FMT is the format to punch the member in. FMT can have the following values: TEXT Only the member text is written. TEXTADJ Only the member text is written with textfollowing adjustment. Lines which will be adjusted are those starting with the two characters "/*", "/+", "/&", the four characters "* $$" or "++/*", and for MVS, the two characters "//". DEFINE The member text is preceded by appropriate DEFINE, EDIT, and INSERTF commands. Member text is followed by ++/* and a SAVE command. DEFINADJ The member text is preceded by appropriate DEFINE, EDIT, and INSERTF commands. Member text is followed by ++/* and a SAVE command. Text-following adjustment will occur for lines which start with the two characters "/*", "/+", "/&", the four characters "* $$" or "++/*", and for MVS, the two characters "//" ICCF The member text is preceded by an appropriate ADD MEMBER line and followed by END OF MEMBER. IEBUPDTE The member text is preceded by an appropriate ./ ADD line. VSE The member text is preceded by a CATALOG statement and followed by a /+. The VSE member.type is the BIM-EDIT member name (not to exceed 8 characters) and the member type. If FMT is not specified, TEXT is assumed. Chapter 3. Advanced User Commands Page 131 PUNCH Optional Operands (continued) CDATE is used to specify the disposition of the create date. CDATE can have the following values: KEEP The DEFINE statement punched will contain the original create date. mm/dd/yy, mm/dd/yyyy, dd/mm/yy or dd/mm/yyyy depending upon the date format set by the System Administrator. If the date is valid the DEFINE statement will be punched with the specified date. If CDATE is not specified, the create date will be the current date when the DEFINE statement, which is punched, is used as input to define the member. CTIME is used to specify the disposition of the create time. CTIME can have the following values: KEEP The DEFINE statement punched will contain the original create time. If CDATE=KEEP has been specified and CTIME is omitted, CTIME will default to a value of KEEP. hh:mm:ss The DEFINE statement punched will contain the specified time. If CTIME is not specified, the create time will be the current time when the DEFINE statement, which is punched, is used as input to define the member. PSWD If the member is password protected, the password must be entere. The password may be up to 8 characters in length consisting of any characters. On VSE, PUNCH can be used both under online BIM-EDIT and in batch utility. Direct online punch (and punching the current session) is only available for VSE/SP version 2.1 and later. For prior releases, if PUNCH is invoked online, it submits a job that invokes the PUNCH procedure in batch utility. On MVS, PUNCH writes output to the ddname SYSPUNCH. Records are written in a fixed unblocked format (record size=80). When used from a batch utility the output file is opened on the first PUNCHF or PUNCHI command (PUNCH uses PUNCHF) and remains open until the batch utility reaches end of job. PUNCH breaks apart member lines longer than 80 characters to a four-line format with each line beginning with "++()". These lines will be reassembled if presented as input to the "text following" commands AUDITF, CONSOLEF, DISPLAYF, INSERTF, LOGF, MAPF, OUTPUTF, PRINTF, PUNCHF, REPROF, STACKF, and SUBMITF. For details of the ++() format, see the PPD predefined variables. Page 132 BIM-EDIT System Reference Manual PUNCH The FMT operand provides a mechanism for easily punching members in a format that can be read by another product to create the member on that product. PUNCH sets the "last referenced member." To PUNCH all members in a library, use PUNCHL. When Valid The user must have LIST access level for the MEM library. On MVS, PUNCH can only be used in batch utility. Use in a Procedure Return Codes: OK NF SC Successful. Member not found. Inadequate access level. PUNCH sets the TXM variables to the attributes of MEM. PUNCH is implemented as the system procedure BIPPUNM. PUNCH handles the actual punching by invoking the PUNCHF command. Example Punch the members OMREXIO and OMREXOP: VSE Job Control // JOB PUNCH // EXEC BIMUTIL LOGON $SYS,$SYS ATTACH AP31 PUNCH OMREXIO PUNCH OMREXOP /* /& MVS Job Control //PNCHJOB JOB //BIMUTIL EXEC //STEPLIB DD //SYSPRINT DD //SYSPUNCH DD //SYSIN DD LOGON $SYS,$SYS ATTACH AP31 PUNCH OMREXIO PUNCH OMREXOP /* .... PGM=BIMUTIL DSN=BIMEDIT.LOADLIB,DISP=SHR SYSOUT=A SYSOUT=P * Chapter 3. Advanced User Commands Page 133 PUNCHF PUNCHF Use PUNCHF to punch lines. The lines following the PUNCHF command will be punched. The end-of-text line (++/*) terminates the PUNCHF command. PUNCHF ignores any operands. On VSE, PUNCHF writes output to the logical unit SYSPCH. Records are written in a fixed unblocked format (record size=80). On MVS, PUNCHF writes output to the ddname SYSPUNCH. Records are written in a fixed unblocked format (record size=80). The output file is opened on the first PUNCHF or PUNCHI command and remains open until the batch utility reaches end of job. PUNCHF breaks apart input lines longer than 80 characters to a four-line format with each line beginning with "++()". These lines will be reassembled if presented as input to the "text following" commands AUDITF, CONSOLEF, DISPLAYF, INSERTF, LOGF, MAPF, OUTPUTF, PRINTF, PUNCHF, REPROF, STACKF, and SUBMITF. For details of the ++() format, see the PPD variables description. Special processing may be performed for input lines beginning with the not symbol (¬), two periods (..), right parentheses ()), the two characters /*, the two characters /&, the four characters * $$, the four characters ++/*, the four characters ++(), or the five characters /INCL. Input lines may be processed to convert imbedded hexadecimal sequences or to overlay stamp or literal information. See PPD predefined variables for details of this processing. For more discussion on the text-following commands, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid PUNCHF can only be used in batch utility. Use in a Procedure PUNCHF normally returns OK. (See SIBRETCD.) Example Punch member OMRPWR3 with all INCLUDEs expanded: SET PPDINCL,1 PUNCHF /INCLUDE OMRPWR3 ++/* Page 134 BIM-EDIT System Reference Manual PUNCHI PUNCHI Use PUNCHI to punch a specified line (sometimes referred to as the "immediate" line). PUNCHI may also be entered as PUNI. Required Operands is the line to punch. LINE can be up to 80 characters in length. LINE On VSE, PUNCHI writes output to the logical unit SYSPCH. Records are written in a fixed unblocked format (record size=80). On MVS, PUNCHI writes output to the ddname SYSPUNCH. Records are written in a fixed unblocked format (record size=80). The output file is opened on the first PUNCHF or PUNCHI command and remains open until the batch utility reaches end of job. PUNCHI is often used to intersperse job control statements with a PUNCH output which is intended to be used as batch reader input. When Valid PUNCHI can only be used in batch utility. Use in a Procedure PUNCHI normally returns OK. (See SIBRETCD.) Example Punch JCL lines: VSE Job Control PUNCHI PUNI PUNCHI PUNCHI '// JOB DMX0235' '// EXEC DMX0235,SIZE=256K' '/*' '/&' MVS Job Control PUNCHI PUNI PUNCHI PUNCHI '//PAYJOB JOB ...' '//STEP1 EXEC PROC=DMP0235' '//SYSIN DD * '/*' Chapter 3. Advanced User Commands Page 135 PUNCHL PUNCHL Use PUNCHL to punch the text of all members in a library. Required Operands LIB is the library for which all members are to be punched. FMT is the format in which to punch the members. PUNCHL works by performing a PUNCH command on all members of the library. See the PUNCH command for more detail. When Valid PUNCHL can only be used in batch utility. The user must have LIST access level for the LIB library. Use in a Procedure Return Codes: OK NF SC Successful. Library not found. Inadequate access level. PUNCHL is implemented as the system procedure BIPPUNL. PUNCHL browses through the library and invokes the PUNCH command for each member. Example Punch all members in library 4218: VSE Job Control // JOB PUNCH // EXEC BIMUTIL LOGON $SYS,$SYS PUNCHL 4218 /* /& MVS Job Control //PNCHLJOB JOB //BIMUTIL EXEC //STEPLIB DD //SYSPRINT DD //SYSPUNCH DD //SYSIN DD LOGON $SYS,$SYS PUNCHL 4218 /* Page 136 .... PGM=BIMUTIL DSN=BIMEDIT.LOADLIB,DISP=SHR SYSOUT=A SYSOUT=P * BIM-EDIT System Reference Manual READ READ Use READ to set the TXM variables to the attributes of a specified member. Optional Operands is the member to be read. If MEM is not specified, the "last referenced member" is used. MEM Refer to the BROWSE command to set the TXM variables to the attributes of several members in succession. For more examples of READ and BROWSE, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. See BIM-EDIT System Reference Manual Chapter 4, Predefined Variables, or HELP TXM for more information on the TXM variables. When Valid The user must have LIST access level for the MEM library. Use in a Procedure Return Codes: OK NF SC Successful. Member not found. Inadequate access level. Example Display the title of a specified member: SET PPDVBL,1 SET PPDCOND,1 DECLARE MEM,CHAR,33,V PARSE MEM READ &MEM IF SIBRETCD,NE,OK EXIT ER,'(DISPLAYM) ** MEMBER "&TXMLIB..&TXMMEM" DOES NOT EXIST **' EXIT OK,'MEMBER "&TXMLIB..&TXMMEM" HAS TITLE "&TXMTITLE"' Chapter 3. Advanced User Commands Page 137 READL READL Use READL to set the TXL variables to the attributes of a specified library. Required Operands is the library name. LIB Refer to the BROWSEL command to set the TXL variables to the attributes of several libraries in succession. For more discussion of READL and BROWSEL, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. See BIM-EDIT System Reference Manual Chapter 4, Predefined Variables, or HELP TXL for more information on the TXL variables. When Valid The user must have LIST access level for the LIB library. Use in a Procedure Return Codes: OK NF SC Successful. Library not found. Inadequate access level. Example Display the title of a library. SET PPDVBL,1 SET PPDCOND,1 DECLARE LIB,CHAR,33,V PARSE LIB READL &LIB IF SIBRETCD,NE,OK EXIT ER,'(OMPPRTLA) ** LIBRARY "&LIB" DOES NOT EXIST **' EXIT OK,'LIBRARY "&LIB" HAS TITLE "&TXLTITLE"' Page 138 BIM-EDIT System Reference Manual READP (VSE version) READP (VSE version) Use READP to set the PWR variables to the attributes of a specified POWER job entry. Optional Operands PRM1-4 select the POWER job entry to be accessed. The four operands allow you to specify the queue (RDR,LST,PUN,XMT), job name, job number, and segment number. They can be specified in any order, except that segment, if specified, must follow job number. Which entry will be selected depends on the operands specified: queue, job name, job number, segment The specified queue will be searched for the entry for the specified name, number, and segment. queue, job name The specified queue will be searched for the first entry for the specified name. queue, job number The specified queue will be searched for the first entry for the specified number, without regard to the job name. job number job name The LST queue will be searched for the first entry for the specified number or name. queue The specified queue will be searched for the first entry for the job name and number of the "last referenced POWER job entry" If PRM1-4 is not specified at all, the "last referenced POWER job entry" will be used. READP without any operands can be used to assure that the values in the PWR variables reflect the current status of the "last referenced POWER job entry". For more extensive discussion and examples, refer to System Reference Manual Chapter 2, Writing Procedures. When Valid Check with your System Administrator to determine the restrictions on access to POWER job entries at your site. The exit routine distributed with BIM-EDIT provides several restriction schemes your System Administrator can select among. (Use of and changes to the BIXPWQA exit routine are described in the System Reference Manual.) Chapter 3. Advanced User Commands Page 139 READP (VSE version) Use in a Procedure Return Codes: OK NF * Successful. Job entry not found. Codes as defined by the BIXPWQA exit routine. Examples Display the user of a POWER job entry. SET PPDVBL,1 SET PPDCOND,1 DCL PRM1,CHAR,8,V DCL PRM2,CHAR,8,V DCL PRM3,CHAR,8,V DCL PRM4,CHAR,8,V PARSE PRM1,PRM2,PRM3,PRM4 READP &PRM1 &PRM2 &PRM3 &PRM4 IF SIBRETCD,NE,OK EXIT ER,'(DISPLAYP) ** JOB "&PRM1 &PRM2 &PRM3 &PRM4" DOES NOT EXIST **' EXIT OK,'JOB "&PRM1 &PRM2 &PRM3 &PRM4" HAS USER "&PWRUSER"' Page 140 BIM-EDIT System Reference Manual READP (MVS version) READP (MVS version) Use READP to set the JCT, JOE, JQE, and PDB variables to the attributes of specified JES data sets. Optional Operands JOB selects the JES job. If JOB contains letters, it specifies a jobname label from the Job Control Language JOB statement. If JOB is entirely digits, it specifies a job number assigned by JES. If not specified, the job from "last referenced JES data sets" will be used. GROUP and DSET are mutually exclusive; if one is specified, the other must not be. GROUP selects the data sets within the specified job. If GROUP is a single letter or digit, it specifies all data sets in the GROUP class in the JES "hold queue". If GROUP is "SYSOUT", it specifies all SYSOUT data sets. If GROUP is any other multiple character value, it specifies all data sets in the GROUP outgrp in the JES "output queue". An outgrp may be composed of three parts separated by periods in the form "name.qualifier.copy" where "name" is the JES or user-specified name, qualifier is a JES-assigned number, and copy is the copy number. All data sets matching a partial outgrp specification (for example, "name" only) will be inserted. To distinguish an outgrp with a one-character name from a class, follow the name with a period. DSET selects the data set to be inserted within the specified job. DSET can specify a user data set name from the ddname label of a Job Control Language DD statement. The data set name may be qualified by entering it in the form stepname.ddname. If the data set name is not unique within the job, the first instance will be used. You can specify JES pre-defined data sets, of which the most useful is $JCL, which contains the Job Control Language for the job. DSET can also be specified as a JES-assigned data set number which is always unique. Use the INQUIREP command to display a list of data sets and their numbers. If none of JOB, GROUP and DSET are specified, the "last referenced data sets" are inserted. If only JOB is specified, all SYSOUT data sets are selected. READP without any operands can be used to assure that the values in the variables reflect the current status of the "last referenced JES data sets". For more extensive discussion and examples, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. Chapter 3. Advanced User Commands Page 141 READP (MVS version) When Valid Check with your System Administrator to determine the restrictions on access to JES data sets at your site. The exit routine distributed with BIM-EDIT provides several restriction schemes your System Administrator can select among. (Use of and changes to the BIXPWQA exit routine are described in the BIM-EDIT System Reference Manual.) Use in a Procedure Return Codes: OK NF * Successful. Data sets not found. Codes as defined by the BIXPWQA exit routine. Examples Display the user of a specified JES job. SET PPDVBL,1 SET PPDCOND,1 DCL PRM1,CHAR,8,V DCL PRM2,CHAR,8,V PARSE PRM1,PRM2 READP &PRM1 &PRM2 IF SIBRETCD,NE,OK EXIT ER,'(BIMFALPA) ** JOB "&PRM1 &PRM2" DOES NOT EXIST **' EXIT OK,'JOB "&PRM1 &PRM2" HAS USER "&JCTTSUID"' Page 142 BIM-EDIT System Reference Manual REPRO REPRO Use REPRO to write the text of a member to tape. Optional Operands MEM is the member to be written to tape. If MEM is not specified, the "last referenced member" is used. FMT is the format to write the member in. FMT can have the following values: TEXT Only the member text is written. DEFINE The member text is preceded by appropriate DEFINE, EDIT, and INSERTF commands. Member text is followed by ++/* and a SAVE command. ICCF The member text is preceded by an appropriate ADD MEMBER line and followed by END OF MEMBER. IEBUPDTE The member text is preceded by an appropriate ./ ADD line. VSE The member text is preceded by a CATALOG statement and followed by a /+. The VSE member.type is the BIM-EDIT member name (not to exceed 8 characters) and the member type. If FMT is not specified, TEXT is assumed. CDATE is used to specify the disposition of the create date. CDATE can have the following values: KEEP The DEFINE statement written to tape will contain the original create date. mm/dd/yy, mm/dd/yyyy, dd/mm/yy or dd/mm/yyyy depending upon the date format set by the System Administrator. If the date is valid the DEFINE statement will be written to tape with the specified date. If CDATE is not specified, the create date will be the current date when the DEFINE statement, which is written to tape, is used as input to define the member. Chapter 3. Advanced User Commands Page 143 REPRO Optional Operands (continued) CTIME is used to specify the disposition of the create time. CTIME can have the following values: KEEP The DEFINE statement written to tape will contain the original create time. If CDATE=KEEP has been specified and CTIME is omitted, CTIME will default to a value of KEEP. hh:mm:ss The DEFINE statement written to tape will contain the specified time. If CTIME is not specified, the create time will be the current time when the DEFINE statement, which is written to tape, is used as input to define the member. The following parameters are valid only on the first AUDITRP, REPROI, or REPROF command (REPRO uses REPROF) read by BIMUTIL. These operands are only valid in VSE. OPEN is the value for the VSE tape open option. It may be specified as REWIND or NOREWIND. The default is NOREWIND. CLOSE is the value for the VSE tape close option. It may be specified as REWIND, NOREWIND or UNLOAD. The default is NOREWIND. LABEL is the value for the VSE tape label option. It may be specified as YES or NO. YES indicates that the tape created will be a VSE standard label tape. The file name for the labeled tape is TPBODTF. NO means that the tape is unlabelled. The default is NO. On VSE, REPRO writes output to a tape on logical unit SYS005. On MVS, REPRO writes output to ddname BIFREPRO. Records are written in a fixed block format (record size=80, block size=16000). The tape file is opened on the first AUDITRP, REPROF, or REPROI command (REPRO uses REPROF) and remains open until the batch utility reaches end of job. REPRO breaks apart member lines longer than 80 characters to a four-line format with each line beginning with "++()". These lines will be reassembled if presented as input to the "text following" commands AUDITF, CONSOLEF, DISPLAYF, INSERTF, LOGF, MAPF, OUTPUTF, PRINTF, PUNCHF, REPROF, STACKF, and SUBMITF. For details of the ++() format, see the PPD predefined variables. The FMT operand provides a mechanism for easily writing members in a format that can be read by another product to create the member on that product. REPRO does not perform any special handling for member lines whose values may cause problems if the output is reprocessed as reader input. If this is the intention, you may wish to consider special handling for lines beginning with: Page 144 BIM-EDIT System Reference Manual REPRO ++/* BIM-EDIT end of input * $$ VSE/POWER JECL /* VSE and MVS JCL end of file /& VSE JCL end of job // MVS JCL REPRO sets the "last referenced member." To write all members in library to tape, use REPROL. When Valid REPRO can only be used in batch utility. The user must have LIST access level for the MEM library. Use in a Procedure Return Codes: OK Successful. NF Member not found. SC Inadequate access level. REPRO sets the TXM variables to the attributes of MEM. REPRO is implemented as the system procedure BIPREPM. REPRO handles the actual writing by invoking the REPROF command. Example Write the text for member AR34.OMREXIO to tape: VSE Job Control // JOB REPRO // ASSGN SYS005,TAPE // PAUSE MOUNT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS ATTACH AR34 SET PPDVBL,1 REPROI '**** START OF MEMBER OMREXIO, WRITTEN ON &OPSDATE AT &OPSTIME' REPRO OMREXIO /* /& Chapter 3. Advanced User Commands Page 145 REPRO MVS Job Control //REPRO JOB .... //BIMUTIL EXEC PGM=BIMUTIL //STEPLIB DD DSN=BIMEDIT.LOADLIB,DISP=SHR //BIFREPRO DD DSNAME=BIFREPRO,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), // VOL=SER=BIM104 //SYSPRINT DD SYSOUT=A //SYSIN DD * LOGON $SYS,$SYS ATTACH AR34 SET PPDVBL,1 REPROI '**** START OF MEMBER OMREXIO, WRITTEN ON &OPSDATE AT &OPSTIME' REPRO OMREXIO /* Page 146 BIM-EDIT System Reference Manual REPROF REPROF Use REPROF to write lines to tape. The lines following the REPROF command will be written to tape. The end-of-text line (++/*) terminates the REPROF command. Optional Operands The following parameters are valid only on the first AUDITRP, REPROI, or REPROF command (REPRO uses REPROF) read by BIMUTIL. These operands are only valid in VSE. OPEN is the value for the VSE tape open option. It may be specified as REWIND or NOREWIND. The default is NOREWIND. CLOSE is the value for the VSE tape close option. It may be specified as REWIND, NOREWIND or UNLOAD. The default is NOREWIND. LABEL is the value for the VSE tape label option. It may be specified as YES or NO. YES indicates that the tape created will be a VSE standard label tape. The file name for the labeled tape is TPBODTF. NO means that the tape is unlabelled. The default is NO. On VSE, REPROF writes output to a tape on logical unit SYS005. On MVS, REPROF writes output to ddname BIFREPRO. Records are written in a fixed block format (record size=80, block size=16000). The tape file is opened on the first AUDITRP, REPROF, or REPROI command (REPRO uses REPROF) and remains open until the batch utility reaches end of job. REPROF breaks apart member lines longer than 80 characters to a four-line format with each line beginning with "++()". These lines will be reassembled if presented as input to the "text following" commands AUDITF, CONSOLEF, DISPLAYF, INSERTF, LOGF, MAPF, OUTPUTF, PRINTF, PUNCHF, REPROF, STACKF, and SUBMITF. For details of the ++() format, see the PPD predefined variables. Special processing may be performed for input lines beginning with the not symbol (¬), two periods (..), right parentheses ()), the two characters /*, the two characters /&, the four characters * $$, the four characters ++/*, the four characters ++(), or the five characters /INCL. Input lines may be processed to convert imbedded hexadecimal sequences or to overlay stamp or literal information. See PPD predefined variables for details of this processing. For more discussion of text-following commands, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid REPROF can only be used in batch utility. Use in a Procedure REPROF normally returns OK. (See SIBRETCD.) Chapter 3. Advanced User Commands Page 147 REPROF Example Write member OMRPWR3 to tape. Process all INCLUDES: SET PPDINCL,1 REPROF /INCLUDE OMRPWR3 ++/* Page 148 BIM-EDIT System Reference Manual REPROI REPROI Use REPROI to write a specified line (sometimes referred to as the "immediate" line) to tape. Required Operands LINE is the line to write to tape. LINE can be up to 80 characters in length. Optional Operands The following parameters are valid only on the first AUDITRP, REPROI, or REPROF command (REPRO uses REPROF) read by BIMUTIL. These operands are only valid in VSE. OPEN is the value for the VSE tape open option. It may be specified as REWIND or NOREWIND. The default is NOREWIND. CLOSE is the value for the VSE tape close option. It may be specified as REWIND, NOREWIND or UNLOAD. The default is NOREWIND. LABEL is the value for the VSE tape label option. It may be specified as YES or NO. YES indicates that the tape created will be a VSE standard label tape. The file name for the labeled tape is TPBODTF. NO means that the tape is unlabelled. The default is NO. On VSE, REPROI writes output to a tape on logical unit SYS005. On MVS, REPROI writes output to ddname BIFREPRO. Records are written in a fixed block format (record size=80, block size=16000). The tape file is opened on the first AUDITRP, REPROF, or REPROI command (REPRO uses REPROF) and remains open until the batch utility reaches end of job. REPROI is often used to intersperse job control statements with REPRO output which is intended to be used as batch reader input. When Valid REPROI can only be used in batch utility. Use in a Procedure REPROI normally returns OK. (See SIBRETCD.) Example Write text of last referenced member to a tape with job control that will allow it to be inserted back to BIM-EDIT: Chapter 3. Advanced User Commands Page 149 REPROI VSE Job Control REPROI '// JOB COPYBACK' REPROI '// EXEC BIMUTIL' REPROI 'LOGON $SYS,$SYS' REPROI 'DEFINE &TXMLIB..&TXMMEM' REPROI 'EDIT' REPROI 'INSERTF' REPRO &TXMMEM..&TXMLIB REPROI '++/*' REPROI 'SAVE' REPROI '/*' REPROI '/&' MVS Job Control REPROI '//COPYBACK JOB ....' REPROI '//BIMUTIL EXEC PGM=BIMUTIL' REPROI '//STEPLIB DD DSN=BIMEDIT.LOADLIB,DISP=SHR' REPROI '//SYSPRINT DD SYSOUT=A' REPROI '//SYSIN DD *' REPROI 'LOGON $SYS,$SYS' REPROI 'DEFINE &TXMLIB..&TXMMEM' REPROI 'EDIT' REPROI 'INSERTF' REPRO &TXMMEM..&TXMLIB REPROI '++/*' REPROI 'SAVE' REPROI '/*' Page 150 BIM-EDIT System Reference Manual REPROL REPROL Use REPROL to write to tape the text of all members in a library. Required Operands LIB is the library for which all members are to be written to tape. FMT is the format in which to write the members. command. See REPRO REPROL simply REPROs all members of the library. For details, see REPRO command. When Valid REPROL can only be used in batch utility. The user must have LIST access level for the LIB library. Use in a Procedure Return Codes: OK NF SC Successful. Library not found. Inadequate access level. REPROL is implemented as the system procedure BIPREPL. REPROL browses through the library and invokes the REPRO command for each member. Example Write to tape all members in library 4218: VSE Job Control // JOB REPROL // ASSGN SYS005,TAPE // PAUSE MOUNT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS REPROL 4218 /* /& MVS Job Control //REPROJOB JOB //BIMUTIL EXEC //STEPLIB DD //BIFREPRO DD // //SYSPRINT DD //SYSIN DD LOGON $SYS,$SYS REPROL 4218 /* .... PGM=BIMUTIL DSN=BIMEDIT.LOADLIB,DISP=SHR DSNAME=BIFREPRO,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), VOL=SER=BIM104 SYSOUT=A * Chapter 3. Advanced User Commands Page 151 RETURN RETURN Use RETURN to end a performed routine in a procedure that was entered by a GOSUB command. Processing continues at the command following the GOSUB used to enter the performed routine. For more discussion and examples, see the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid RETURN and GOSUB can only be used in a procedure. A routine ending with a RETURN command must have been entered by a GOSUB command. Use in a Procedure Return codes: OK SV Location found Location not found Example The following example shows the RETURN command used within a procedure. DECLARE COUNTER,NUM,6,V SET COUNTER,0 LABEL D20 GOSUB E20 ;Perform routine starting a label E20 EXIT OK,'FUNCTION COMPLETE' LABEL E20 RETURN Page 152 ;Returns to next command following the GOSUB command BIM-EDIT System Reference Manual SEGMENT (VSE only) SEGMENT (VSE only) Use SEGMENT to close and reopen the BIM-EDIT print output. SEGMENT is only available under VSE. Optional Operands JECL is the POWER "* $$ LST" card that determines the next POWER LST entry to be created. If JECL is not specified, a value of "* $$ LST" is assumed. SEGMENT is used when processing batch utility input from the system console. Rather than end the job to see print output, you can issue the SEGMENT command. The characteristics (class, copies, etc.) of the POWER job entry made accessible as a result of this command will be those from the batch utility startup JCL or the operand of the previous SEGMENT command. The command's operand will determine the characteristics the POWER job entry made accessible by the next SEGMENT command or at end of job. When Valid SEGMENT can only be used in batch utility. Use in a Procedure SEGMENT normally returns OK. (See SIBRETCD.) Example Print member CUM3200, then segment output: PRINT CUM3200 SEGMENT Chapter 3. Advanced User Commands Page 153 SEND SEND Use SEND to transfer lines of a member, one by one, to an application. Optional Operands MEM is the member to be sent. If MEM is not specified, the "last referenced member" is used. It can also be "$STACK" to send the contents of the stack area or "/" to send the current session. INCL specifies whether INCLUDEs are to be expanded. Specify "ON" if INCLUDEs are to be expanded. Specify "OFF" if they are not to be expanded. If INCL is not specified, INCLUDEs will not be expanded. TRAP specifies whether lines within MEM starting with the right parenthesis ")" will be intercepted and passed to the command processor. Specify "ON" if such lines are to be intercepted. Specify "OFF" if such lines are not to be intercepted. If TRAP is not specified, such lines will not be intercepted. VBL specifies whether variables within the MEM lines are to be replaced. Specify "ON" if variables are to be replaced. Specify "OFF" if variables are not to be replaced. If VBL is not specified, variables will not be replaced. HEX specifies whether HEX replacement is to take place. Specify "ON" if HEX replacement is to take place. Specify "OFF" is HEX replacement is not to take place. If HEX is not specified, replacement will not take place. ADJ specifies whether statements within the MEM lines are to be adjusted by prefixing them with a not symbol (see PPDADJ in the PPD documentation). PSWD If the member is password protected, the password must be entered. The password may be up to 8 characters in length consisting of any characters. See the predefined variables PPDINCL, PPDTRAP, PPDVBL, and PPDHEX for further explanation of the operands of this command. SEND initially sends a null message (return code only) to the application. If the code is "OK", it indicates that all is well and that SEND is ready to send the member lines. The lines are then sent, one at a time. After all lines are sent, a null message with return code set to "EF" is sent. SEND sets the "last referenced member". See Chapter 6, Applications Interface, in the BIM-EDIT System Reference Manual. When Valid SEND can only be used in an application interface dialog. Page 154 BIM-EDIT System Reference Manual SEND Use in a Procedure Return Codes: EF OK NF SC End of member code. Successful. MEM not found. Inadequate access level. SEND is implemented as the system procedure BIPSEND. SEND handles the actual sending by invoking the SENDF command. SEND sets the TXM variables to the attributes of MEM. Example In the following example, three items are shown on each line: • direction of flow: -> from application to BIM-EDIT. <- from BIM-EDIT to application. • return code. • text. Dialog by an application to retrieve member $SYS.SRC.BIFARMP: -> <-> <<<- OK OK OK OK OK OK <<- OK EF LOGON $SYS,$SYS SEND $SYS.SRC.BIFARMP line #1 text line #2 text .... line #n text Chapter 3. Advanced User Commands Page 155 SENDF SENDF Use SENDF to transfer lines to an application. All lines following the SENDF command will be sent. The end of text line (++/*) terminates the SENDF command. SENDF has no operands. After all lines are sent, SENDF will send a null message with a return code of "EF" to the user application. Special processing may be performed for input lines beginning with the not symbol (¬), two periods (..), right parentheses ()), the two characters /*, the two characters /&, the four characters * $$, the four characters ++/*, the four characters ++(), or the five characters /INCL. Input lines may be processed to convert imbedded hexadecimal sequences or to overlay stamp or literal information. See PPD predefined variables for details of this processing. For more discussion on text-following commands, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. Also see Chapter 6, Applications Interface, in the BIM-EDIT System Reference Manual. When Valid SENDF can only be used within a procedure, and only within an application interface dialog. Use in a Procedure Return Codes: EF OK End of lines. Successful. Example Body of a procedure to send member $SYS.SRC.BIFARMP to an application: SET PPDINCL,1 SENDF /INCLUDE $SYS.SRC.BIFARMP ++/* Page 156 BIM-EDIT System Reference Manual SENDI SENDI Use SENDI to transfer a single line to an application. SENDI is often used by a user application to retrieve values of variables. Required Operands is the line to be sent to the user application. LINE If variable replacement is active (PPDVBL has a value of "1" or "2"), variables within LINE will be replaced prior to sending LINE to the user application. The most common use of this command is that the user application issues the SENDI command with variable names within the LINE text. When LINE is sent back to the user application, the variable names will have been replaced with their values. See Chapter 6, Applications Interface, in the BIM-EDIT System Reference Manual. When Valid SENDI can only be used in an application interface. Use in a Procedure SENDI normally returns OK. (See SIBRETCD.) Example In the following example, three items are shown on each line: • direction of flow: -> from application to BIM-EDIT. <- from BIM-EDIT to application. • return code. • text. Dialog by an application to retrieve the values of the TOTMEM and TOTLINE variables: -> <-> <- OK OK OK OK SET PPDVBL,1 ## VARIABLE SET ## SENDI '&TOTMEM &TOTLINE' 0143 015263 Chapter 3. Advanced User Commands Page 157 SENDMSG SENDMSG Use SENDMSG to send a message of up to 78 characters to the line-2 message area of the screen and not wait for the user to press an AID key. Required Operand MSG specifies the text of the message to be sent to the line-2 message area. The message can be up to 78 characters in length. Optional Operands BRIGHT specifies whether the message should be displayed in bright or normal intensity. Specify "YES" to display as bright and "NO" to display in normal intensity. "NO" is the default. ALARM specifies whether the terminal alarm should be activated when the message is sent. Specify "YES" to activate the alarm and "NO" to not activate the alarm. "NO" is the default. Use SENDMSG in an online procedure to send status type messages to the terminal user and allow the procedure to continue execution. When Valid SENDMSG can only be used in an online procedure. If executed from other than a VTAM terminal session, this command will be ignored and processing of the procedure will continue. Use in a Procedure SENDMSG normally returns OK. (See SIBRETCD.) Example The following example will send a status message to the terminal in normal intensity: => sendmsg '&cnt members have been processed' bright=no Page 158 BIM-EDIT System Reference Manual SENDN SENDN Use SENDN to transfer a specified line within a session to an application. Required Operands is the line number. LINE When used with a LIST session of a member, SENDN provides a more flexible but less automatic (and more CPU intensive) way of retrieving member data than that provided by the SEND procedure. To send the entire contents of a session, use the SEND / command. See Chapter 6, Applications Interface, in the BIM-EDIT System Reference Manual. When Valid SENDN can only be used in an application interface dialog. Use in a Procedure Return Codes: OK EF Successful. Line number exceeds number of lines in session. Example In the following example, three items are shown on each line: • direction of flow: -> from application to BIM-EDIT. <- from BIM-EDIT to application. • return code. • text. Dialog by an application to retrieve line number #5 of the library display of $SYS.SRC: -> <-> <- OK OK OK OK LIBRARY $SYS.SRC. SENDN 5 text of line #5 of library display Chapter 3. Advanced User Commands Page 159 SET SET Use SET to set a specified variable to a specified value. Required Operands DEST is the name of the variable. The variable must either be a predefined updateable variable, or a variable declared by the DECLARE command. The following is a list of predefined variables that are commonly referenced by the SET command: PF1-24 PF1OPT-PF24OPT PA1-3 ENTER CLEAR PPDALARM PPDCOND PPDHEX PPDHEXC PPDINCL PPDPGSIZ PPDTRAP PPDUTLOG PPDVBL SIBCMPR SIBCSCTL SIBDFLCA SIBHEXC SIBOUTPT SIBPAGE SIBTABC function key settings function key processing options PA key settings ENTER key setting CLEAR key setting MAPF audible alarm flag conditional execution flag hex translation flag hex translation escape character text-following include flag printed page size text-following trap flag batch utility input log flag variable replacement flag screen transmission compression flag extended cursor control flag default LCA location command line hex escape character output destination current page number in print output logical tab character See the PPD and SIB predefined variables for more information. SRC Page 160 is the data value to assign to the variable. BIM-EDIT System Reference Manual SET Optional Operands BASE specifies a starting location in SRC. If BASE is not specified, a value of 1 is assumed. LENGTH specifies a length. LENGTH is used in conjunction with BASE to specify a substring of SRC to assign to the DEST variable. If LENGTH is not specified, the remainder of SRC starting at BASE is assigned to the DEST variable. OPT specifies a PF key option. OPT may be specified as one of the following: AFTER PF key data will be processed after the command line. BEFORE PF key data will be processed before the command line. IGNORE PF key data will not be processed if there is data on the command line. ONLY Only PF key data will be processed. Data on the command line is used if the 'data insert' character is found. If the 'data insert' character is not found, the data on the command line is ignored. If omitted, AFTER is assumed. (The KEYS command may be easier to use than the SET command to set the commands for function keys. KEYS displays the current settings and allows you to change the settings by overtyping them.) It is possible to have command line input data (up to four separate parameters) merged with PF key data before the command string is presented to BIM-EDIT. The parameter data insertion will take place when a PF key is depressed and the associated PF key data has a reverse quote (`) imbedded within it. Any number of reverse quote marks can appear with the PF key definition. As each reverse quote mark is encountered in the PF key data it is replaced with a parameter from the command line input. If only one parameter is entered on the command line all reverse quote marks encountered in the PF key data will be replaced with that single parameter. If two command line parameters are entered and there are five occurrences of the reverse quote mark in the PF key data, parameter one from the command line will replace the first reverse quote mark and command line parameter two will replace reverse quote two through five. The processing option for the data insertion must be set to "ONLY". Use SETD to set a variable to the value of another variable. Use SETL to set a variable to the length of the value of another variable. If DEST is a varying format character variable, the following conventions apply: Chapter 3. Advanced User Commands Page 161 SET • If the length of SRC data (or LENGTH, if specified) is greater than the declared length of the DEST variable, data beyond the declared length is truncated. The DEST variable's current length is set to its declared length. • If the length of SRC data (or LENGTH, if specified) is less than or equal to the declared length of the DEST variable, the DEST variable's current length is set to the length of SRC data (or the substring of SRC data). If DEST is a fixed format character variable, the following conventions apply: • If the length of SRC data (or LENGTH, if specified) is greater than the declared length of the DEST variable, data beyond the declared length is truncated. The DEST variable's length is set to its declared length. • If the length of SRC data (or LENGTH, if specified) is less than the declared length of the DEST variable, the SRC data is treated as if it contained enough trailing blanks so that its length exactly matched the declared length of the DEST variable. If DEST is a numeric variable, an error occurs if: • SRC data is not an integer. • The numeric value of SRC data is negative. • The numeric value of SRC data exceeds that which can be held within DEST. For example, if DEST is declared with a length of 3, the numeric value of SRC must not exceed 999. SET does not translate the case of variable values, even if the destination variable was declared with CASE=U. See VUPPERCA for this facility. For more extensive discussion and examples of the SET command and variables, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. For online help, refer to topics 'DECLARE', 'ARRAYS', and 'SUBSTR'. Use in a Procedure Return Codes: OK SV Successful. Length greater than 253 or not found. Examples Set the HEX character: => set sibhexc,@ Set the PF12 function key: => set pf12,'rot -' Clear PF21: => set pf21,'' From within a procedure, declare a variable and assign the character string "PREFIX: " plus characters 1-3 from TXMMEM to it: Page 162 BIM-EDIT System Reference Manual SET SET PPDVBL,1 DECLARE WORK,CHAR,11,V SET WORK,'PREFIX: &TXMMEM',1,11 From within a procedure, execute another procedure and obtain both the return code and message from its execution: SET PPDVBL,1 DCL WORKMSG,CHAR,82,V DCL WORKRET,CHAR,2,V EXEC PROC2 SET WORKMSG,'&SIBRESP.' SET WORKRET,'&WORKMSG.',1,2 SET WORKMSG,'&WORKMSG.',3,80 Note that where both the return code and the message resulting from a command are needed, a sequence similar to the above MUST be used because the first SET command will overwrite the return code and message with its own. Chapter 3. Advanced User Commands Page 163 SETD SETD Use SETD to set a specified variable to the value of another specified variable. Required Operands DEST is the name of the destination variable. The variable must either be a predefined updateable variable, a key (PF1-24, PA1-3, CLEAR, ENTER), a key option (PF1OPT-PF24OPT), or a variable declared by the DECLARE command. SRC is the name of the source variable. The variable must either be a predefined variable, a key (PF1-24, PA1-3, CLEAR, ENTER), or a variable declared by the DECLARE command. Optional Operands BASE specifies a starting location in SRC data. If BASE is not specified, a value of 1 is assumed. LENGTH specifies a length. LENGTH is used in conjunction with BASE to specify a substring of SRC data to assign to the DEST variable. If LENGTH is not specified, the remainder of SRC data starting at BASE is assigned to the DEST variable. SETD differs from SET in that SETD assigns the value of a source variable to the destination variable, while SET assigns the value of a source operand to the destination variable. When moving all or part of a value from one variable to another, use SETD to simplify handling values which contain quotes or other special characters. When moving a concatenation of variable values and/or literal character strings to a variable, use SET with replacement of variable values or VAPPEND. If DEST is a varying format character variable, the following conventions apply: • If the length of SRC data (or LENGTH, if specified) is greater than the declared length of the DEST variable, data beyond the declared length is truncated. The DEST variable's current length is set to its declared length. • If the length of SRC data (or LENGTH, if specified) is less than or equal to the declared length of the DEST variable, the DEST variable's current length is set to the length of SRC data (or the subtring of SRC data). If DEST is a fixed format character variable, the following conventions apply: • If the length of SRC data (or LENGTH, if specified) is greater than the declared length of the DEST variable, data beyond the declared length is truncated. The DEST variable's length is set to its declared length. • If the length of SRC data (or LENGTH, if specified) is less than the declared length of the DEST variable, the SRC data is treated as if it contained enough trailing blanks so that its length exactly matched the declared length of the DEST variable. If DEST is a numeric variable, an error occurs if: Page 164 BIM-EDIT System Reference Manual SETD • SRC data is not an integer. • The numeric value of SRC data is negative. • The numeric value of SRC data exceeds that which can be held within DEST. For example, if DEST is declared with a length of 3, the numeric value of SRC must not exceed 999. You cannot use SETD with SIBRETCD or SIBMSG because these two variables are reset at the beginning of command execution. SETD does not translate the case of the value, even if the destination variable was declared with CASE=U. See VUPPERCA for this facility. For more extensive discussion and examples of the SETD command and variables, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. For online help, refer to topics 'DECLARE', 'ARRAYS', and 'SUBSTR'. Use in a Procedure SETD normally returns OK. (See SIBRETCD.) Examples Assign the value held in PF1 to PF13: => setd pf13,pf1 From within a procedure, declare a variable and assign characters 2-4 from TXMMEM to it: DECLARE WORK,CHAR,3,V SETD WORK,TXMMEM,2,3 Chapter 3. Advanced User Commands Page 165 SETL SETL Use SETL to set a specified variable to the length of the value of another specified variable. Required Operands DEST is the name of the destination variable. The current length of the data stored in the SRC variable is assigned to the DEST variable. DEST must be a numeric variable declared with the DECLARE command. SRC is the name of the source variable. The current length of the data stored in SRC is assigned to the DEST variable. For more extensive discussion and examples, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. Use in a Procedure SETL normally returns OK. (See SIBRETCD.) Examples Obtain the current length of the data held in variable NAME. Assign it to the variable NAMEL. DECLARE NAME,CHAR,8,V DECLARE NAMEL,NUM,3,V PARSE NAME SETL NAMEL,NAME Page 166 BIM-EDIT System Reference Manual SETM SETM Use SETM to set a specified variable with the message text for a specified message identifier. Required Operands DEST is the name of the variable. The variable must either be a predefined updateable variable, or a variable declared by the DECLARE command. SRC is the 1 to 8 character message identifier of the message text to be retrieved from $SYS.CTRL.MESSAGES or $SIT.CTRL.MESSAGES. Optional Operands is an optional 1 to 8 character message identifier that is to replace the message identifier in the message text retrieved from $SYS.CTRL.MESSAGES or $SIT.CTRL.MESSAGES ID SETM does not translate the case of message text, even if the destination variable was declared with CASE=U. See VUPPERCA for this facility. Use in a Procedure Return Codes: OK SV Successful. Variable not found. Examples From within a procedure, declare a variable and assign the message text associated with message TESTPRCA to it: SET PPDVBL,1 DECLARE MSG,CHAR,80,V SETM MSG,TESTPRCA Chapter 3. Advanced User Commands Page 167 SHOW (VSE version) SHOW (VSE version) Use SHOW to display BIM-EDIT status information. When SHOW is invoked online, it creates a DISP session for the results. Optional Operands OBJ Specifies what display to create. Options are: AVAIL BIM-EDIT available storage table. This option is normally only used by your System Administrator. GEN BIM-EDIT frequently referenced general information. Some of the fields displayed are: user id, terminal id, current library, "last referenced member", "last referenced POWER job entry", current VSE sublibrary, and "last referenced VSE member". GLOBAL BIM-EDIT global variables, i.e., variables created with the DECLARE command with SCOPE=GLOBAL. USER BIM-EDIT user variables, i.e., variables created with the DECLARE command with SCOPE=USER. SYSTEM BIM-EDIT system variables, i.e., variables created with the DECLARE command with SCOPE=SYSTEM. LOCAL BIM-EDIT local variables, i.e., variables created with the DECLARE command. If PPDTRACE=1, internally created local variables supporting GOTO, GOSUB and RETURN indexing, for the performance option (PPDPFOPT=1) are included in the display. PF, PFK, KEY, or KEYS the functions and processing options assigned to the PF keys and the special keys CLEAR, ENTER PA1, PA2, and PA3. Page 168 MMP BIM-EDIT memory map predefined variables. OPS BIM-EDIT variables. operating PPD BIM-EDIT variables. procedure PWR POWER job entry predefined variables. system predefined processor predefined BIM-EDIT System Reference Manual SHOW (VSE version) Optional Operands (continued) SIB BIM-EDIT system interface block predefined variables. SSD BIM-EDIT session control block predefined variables. TXL BIM-EDIT variables. library attributes predefined TXM BIM-EDIT variables. member attributes predefined TXS BIM-EDIT security entry predefined variables. TXU BIM-EDIT user attributes predefined variables. VBL All BIM-EDIT predefined, GLOBAL and local variables. XTR BIM-EDIT extracted predefined variables. ?? User's internal command stack. If OBJ is not specified, "GEN" is assumed. All password fields are encrypted and will be displayed only if the user has ADM level access. For definitions of the predefined variables, see Chapter 4, Predefined Variables, in the BIM-EDIT System Reference Manual. Use in a Procedure SHOW normally returns OK. (See SIBRETCD.) If SHOW is invoked in batch utility, the display destination is controlled by predefined variable SIBOUTPT. Examples Show keys: => show keys Show general information: => show Chapter 3. Advanced User Commands Page 169 SHOW (MVS version) SHOW (MVS version) Use SHOW to display BIM-EDIT status information. When SHOW is invoked online, it creates a DISP session for the results. Optional Operands OBJ Specifies what display to create. Options are: AVAIL BIM-EDIT available storage table. This option is normally only used by your System Administrator. GEN BIM-EDIT frequently referenced general information. Some of the fields displayed are: user id, terminal id, current library, "last referenced member", "last referenced JES data sets", current PDS, and "last referenced PDS member". GLOBAL BIM-EDIT global variables, i.e., variables created with the DECLARE command with SCOPE=GLOBAL. USER BIM-EDIT user variables, i.e., variables created with the DECLARE command with SCOPE=USER. SYSTEM BIM-EDIT system variables, i.e., variables created with the DECLARE command with SCOPE=SYSTEM. JCT JES job control table. JOE JES job output element. JQE JES job queue element. LOCAL BIM-EDIT local variables, i.e., variables created with the DECLARE command. If PPDTRACE=1, internally created local variables supporting GOTO, GOSUB and RETURN indexing, for the performance option (PPDPFOPT=1) are included in the display. PF, PFK, KEY, or KEYS the functions and processing options assigned to the PF keys and the special keys CLEAR, ENTER PA1, PA2, and PA3. Page 170 MMP BIM-EDIT memory map predefined variables. OPS BIM-EDIT variables. operating system predefined BIM-EDIT System Reference Manual SHOW (MVS version) Optional Operands (continued) PDB JES peripheral dataset block. PPD BIM-EDIT variables. SIB BIM-EDIT system interface block predefined variables. SSD BIM-EDIT session control block predefined variables. TXL BIM-EDIT variables. library attributes predefined TXM BIM-EDIT variables. member attributes predefined TXS BIM-EDIT security entry predefined variables. TXU BIM-EDIT user attributes predefined variables. VBL All BIM-EDIT predefined, GLOBAL and local variables. XTR BIM-EDIT extracted predefined variables. ?? User's internal command stack. procedure processor predefined If OBJ is not specified, "GEN" is assumed. All password fields are encrypted and will be displayed only if the user has ADM level access. For definitions of the predefined variables, see Chapter 4, Predefined Variables, in the BIM-EDIT System Reference Manual. Use in a Procedure SHOW normally returns OK. (See SIBRETCD.) If SHOW is invoked in batch utility, the display destination is controlled by predefined variable SIBOUTPT. Examples Show keys: => show keys Show general information: => show Chapter 3. Advanced User Commands Page 171 SNAP SNAP Use SNAP to specify whether BIM-EDIT will output debugging information when a procedure terminates with a SV or non-OK return code. Required Operands is the operation to be performed. Specify "ON" if BIM-EDIT is to output debugging information when a procedure terminates by encountering an error or processing an EXIT with a non-OK return code. Specify "OFF" if BIM-EDIT is to cease outputting such information. SNAP is set "OFF" by LOGON. OPER Debugging information is written to the following destinations: • Online tasks write to $LOG. • Batch utility tasks write either to the printer or to the system console. • Application interface tasks write to the system console. If PPDCOND is set to 1, only SV return codes will produce snap output. If PPDCOND is set to 0, all non-OK return codes will produce snap output. The snap facility lists the procedures and INCLUDEs that are active. A snap result looks like the following: LIST $LOG session after SNAP output => LIST *===* *===* *===* *===* *===* *===* *===* *===* *===* $LOG SESS=A 1( 1) LINE= 512( 534) ----|----1----|----2----|----3----|----4----|----5----|----6----|----7-------------------------------- SNAP OUTPUT --------------------------COMMAND SOURCE LINE # COMMAND STRING --------------------------------- ------ -----------------------------(COMMAND LINE) ------ test ED41A.TEST 8 ED SMORF (BIGNFTXM) ** MEMBER "ED41A.SMORF" NOT FOUND ** -- END OF LOG -- When Valid SNAP cannot be used in a procedure. Examples BIM-EDIT is to output debugging information: => snap on Page 172 BIM-EDIT System Reference Manual STACKF STACKF Use STACKF to write lines to $STACK. The lines following the STACKF command will be written to $STACK. The end-of-text line (++/*) terminates the STACKF command. STACKF ignores any operands. STACKF appends lines to $STACK. It does not clear $STACK. The command STACK 0,CL can be used to clear $STACK. Special processing may be performed for input lines beginning with the not symbol (¬), two periods (..), right parentheses ()), the two characters /*, the two characters /&, the four characters * $$, the four characters ++/*, the four characters ++(), or the five characters /INCL. Input lines may be processed to convert imbedded hexadecimal sequences or to overlay stamp or literal information. See PPD predefined variables for details of this processing. For more discussion of text-following commands, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid STACKF can only be used in a procedure, batch utility, or the application interface. Use in a Procedure STACKF normally returns OK. (See SIBRETCD.) Example From within a procedure, write lines to $STACK: SET PPDTRAP,0 STACKF )INCLUDE PAYRL.PREJCL )INCLUDE PAYRL.DATA )INCLUDE PAYRL.POSTJCL ++/* Chapter 3. Advanced User Commands Page 173 SUBMITF SUBMITF Use SUBMITF to submit lines for batch processing. The lines following the SUBMITF command will be submitted. The end-of-text line (++/*) terminates the SUBMITF command. SUBMITF may also be entered as SUBF. SUBMITF ignores any operands. Special processing may be performed for input lines beginning with the not symbol (¬), two periods (..), right parentheses ()), the two characters /*, the two characters /&, the four characters * $$, the four characters ++/*, the four characters ++(), or the five characters /INCL. Input lines may be processed to convert imbedded hexadecimal sequences or to overlay stamp or literal information. See PPD predefined variables for details of this processing. On VSE with the distributed exit routine, SUBMITF will create any missing "* $$ JOB", "* $$ LST", and "* $$ PUN" lines using the values in the local variables CLASS, DISP, USER, LSTCLASS, LSTDISP, PUNCLASS, and PUNDISP. It will also create missing "/*", "/&", and "* $$ EOJ" lines. If you are running VSE/SP release 2.1 or later or you are running MVS and your terminal is running under control of SNA, you may interrupt a long running SUBMIT command by pressing the ATTN key. For more extensive discussion and examples, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid SUBMITF can only be used in a procedure, batch utility, or the application interface. Check with your System Administrator to determine the restrictions on SUBMITF at your site. On VSE, the exit routine distributed with BIM-EDIT requires the "* $$ JOB" line to have a correct JNM field and, if present, precede the "// JOB" line. The "// JOB" line must be present and have a correct name field. On MVS, the exit routine distributed with BIM-EDIT makes no restrictions. (Changes to the BIXPWSB exit routine are described in Chapter 11, Customization, of the BIM-EDIT System Reference Manual.) Use in a Procedure Return codes are available after the end-of-text line (++/*) has been processed. Return Codes: OK AT * Page 174 Successful. Command interrupted by ATTN key. Codes as defined by the BIXPWSB exit routine. BIM-EDIT System Reference Manual SUBMITF Example SUBMIT is implemented as a procedure. The following is a simplified form of that procedure. It verifies that the member to be submitted exists, and then submits it: SET PPDVBL,2 SET PPDINCL,1 DECLARE MEM,CHAR,33,V PARSE MEM READ &MEM SUBMITF /INCLUDE &TXMLIB..&TXMMEM ++/* EXIT OK,'## MEMBER "&TXMLIB..&TXMMEM" SUBMITTED ##' Chapter 3. Advanced User Commands Page 175 SUBTRACT SUBTRACT Use SUBTRACT to subtract a specified value from a specified variable. SUBTRACT may also be entered as SUBT. Required Operands OPER1 is the name of a previously declared numeric variable. OPER2 is a numeric integer (a negative is prefixed with a dash - ). OPER2 will be subtracted from the value of the OPER1 variable. The result will be stored in the OPER1 variable. An unconditional error occurs if the result is less than 0 and OPER1 is not a signed numeric variable (TYPE=NUMS). For more discussion and examples of variables, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. For online help, refer to topics 'DECLARE', 'ARRAYS', and 'SUBSTR'. When Valid SUBTRACT can only be used in a procedure, batch utility, or the application interface. Use in a Procedure SUBTRACT normally returns OK. (See SIBRETCD.) Example The following example shows how the SUBTRACT command could be used within a procedure to search for a string of characters on every third line above the current line: SET PPDVBL,1 DCL LINE,NUM,6 DCL STR,CHAR,65,V PARSE STR SETD LINE,SSDBASE&SIBSCRPM ;GET CURRENT LINE NUMBER LABEL LOOP IF LINE,LE,3 ;ARE THERE 3 LINES LEFT? EXIT ER,'(SITFND3U) ** STR "&STR" NOT FOUND **' SUBTRACT LINE,3 ;UP THREE LINES POSITION &LINE SET PPDCOND,1 ;EXAMINE USES RETURN CODE EXAMINE "&STR" IF SIBRETCD,EQ,OK ;IF WE FOUND IT, GET OUT EXIT OK SET PPDCOND,0 ;OTHERWISE TRY AGAIN GOTO -LOOP Page 176 BIM-EDIT System Reference Manual TRANSFER TRANSFER Use TRANSFER to execute the procedure specified by MEM without creating a new procedure nesting level. TRANSFER may also be entered as TRAN. Required Operands MEM is the member to be executed. If MEM is not specified, the "last referenced member" is used. The member to be executed must be of type "PROC". MEM can also be "$STACK", in which case the contents of the stack area are executed as a procedure or "/", in which case the current session is executed. ...... Additional parameters are placed in the PARMLIST variable. These parameters are retrievable from within the procedure via the PARSE command. Control is not returned to the procedure issuing the TRANSFER command. For more discussion and examples, see the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid TRANSFER can only be used in a procedure, batch utility, or the application interface. Use in a Procedure Return Codes: OK NF Successful. Member not found. Example The following example shows how the TRANSFER command could be used within a procedure passing three parameters to the new procedure: DECLARE MEM,CHAR,16,V DECLARE STRTLINE,NUM,6,V DECLARE ENDLINE,NUM,6,V ED &MEM LOCATE "<DATA>" IF SIBRETCD,NE,OK GOTO E20 SETD STRTLINE,SSDBASE1 LOCATE "<EOD>" IF SIBRETCD,NE,OK GOTO E20 SETD ENDLINE,SSDBASE1 TRANSFER DATAEXTR &MEM,&STRTLINE,&ENDLINE LABEL E20 EXIT SV,"NO <DATA> FOUND" Chapter 3. Advanced User Commands Page 177 VAPPEND VAPPEND Use VAPPEND to append a specified character value to the end of the current value of a specified variable. VAPPEND may also be entered as VAPP. Required Operands DEST is the name of a previously declared varying length character variable. SRC If not enclosed in quotes, SRC is the name of a previously declared character variable which contains the character value to be concatenated. If enclosed in quotes, SRC is the character value itself (up to 253 characters). The character string represented by SRC is concatenated after the last character in the DEST variable. If the DEST variable is not large enough to hold the result, the result is truncated. For more discussion and examples of variables, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid VAPPEND can only be used in a procedure, batch utility, or the application interface. Use in a Procedure VAPPEND normally returns OK. (See SIBRETCD.) Example Procedure to display the operating system release. SET PPDVBL,1 DCL MSG,CHAR,80,V IF MMPOPSYS EQ 'M' EXIT OK,'RUNNING UNDER MVS' SET MSG,'RUNNING UNDER VSE ' IF MMPOPREL EQ 43 VAPPEND MSG,'RELEASE 1.3' IF MMPOPREL EQ 44 VAPPEND MSG,'RELEASE 1.3.5' IF MMPOPREL EQ 45 VAPPEND MSG,'RELEASE 2.1' EXIT OK,'&MSG' Page 178 BIM-EDIT System Reference Manual VEXAMINE VEXAMINE Use VEXAMINE to search for a specified character value within a specified variable. VEXAMINE may also be entered as VEXAM. Required Operands OBJ is the name of a previously declared character variable. STR If not enclosed in quotes, STR is the name of a previously declared character variable which contains the character value to search for. If enclosed in quotes, STR is the character value itself (up to 72 characters). If the value begins with the backslash character (\), the search will use Extended Search Pattern rules, as described below. Optional Operands ZONE is the column range for the search. Enter it in the format "xxxyyy" where xxx and yyy are numbers between 1 and 253 separated by a dash (-). For example, to limit the search to columns 10 to 20, specify ZONE as "10-20". If ZONE is not specified, the entire variable is searched. CASE specifies whether upper/lower case should be considered when determining matches. If specified as "U", case is ignored ("the" matches "The"). If specified as "M", both case and letters must match. If CASE is not specified, "U" is assumed. For more discussion and examples of variables, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. If the value of STR begins with a backslash (\), BIM-EDIT treats STR as an Extended Search Pattern, with certain characters having special meanings: ? matches any single character * matches any sequence of zero or more characters @ matches zero or more instances of the character that follows the @ ! matches the beginning of the variable value < matches the beginning of the value or any non-alphanumeric character > matches the end of the value or any non-alphanumeric character | separates two patterns, EITHER of which may match for a successful search + separates two patterns, BOTH of which must match for a successful search ~ reverses the success/failure of the pattern following it % marks the position in the value where the match is considered to occur \ suppresses the special meaning of the character that follows the \ Chapter 3. Advanced User Commands Page 179 VEXAMINE See Chapter 6, Advanced Techniques, in the BIM-EDIT User Reference Manual for more information about Extended Search Patterns. When Valid VEXAMINE can only be used in a procedure, batch utility, or the application interface. Use in a Procedure Return Codes: OK NF String found. String not found. If STR is found in the specified variable within the specified ZONE columns, the column where it is found is placed in the predefined variable PPDCOL. Example Procedure to report all PF keys which reference a specified search value. SET PPDVBL,1 DCL PFNO,NUM,3,V DCL STR,CHAR,80,V DCL MSG,CHAR,80,V PARSE STR SET PFNO,0 LABEL PFLOOP ADD PFNO,1 SET PPDCOND,1 VEXAMINE PF&PFNO,STR ; REPLACE PFNO TO GET NAME IF SIBRETCD,EQ,OK VAPPEND MSG,',PF&PFNO' SET PPDCOND,0 IF PFNO,LT,24 GOTO -PFLOOP IF MSG EQ '' EXIT OK,'NO PF KEY REFERENCES "&STR"' SETD MSG,MSG,2 ; GET RID OF INITIAL COMMA EXIT OK,'&MSG REFERENCE(S) "&STR"' Page 180 BIM-EDIT System Reference Manual VLOWERCA VLOWERCA Use VLOWERCA to translate the value of a specified variable to lower case. VLOWERCA may also be entered as VLOWER or VLOW. Required Operands OBJ is the name of a previously declared character variable. For more discussion and examples of variables, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid VLOWERCA can only be used in a procedure, batch utility, or the application interface. Use in a Procedure VLOWERCA normally returns OK. (See SIBRETCD.) Example Procedure to check whether its parameter contains any uppercase letters: SET PPDVBL,1 DCL PARM,CHAR,80,V,M DCL TEMP,CHAR,80,V,M PARSE PARM SETD TEMP,PARM VLOWER TEMP IFD PARM,NE,TEMP EXIT NG,'** PARAMETER MUST NOT CONTAIN UPPERCASE **' Chapter 3. Advanced User Commands Page 181 VTESTNUM VTESTNUM Use VTESTNUM to test the value of a specified variable to determine whether it is numeric. Required Operands is the name of a previously declared character variable. OBJ For more discussion and examples of variables, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid VTESTNUM can only be used in a procedure, batch utility, or the application interface. Use in a Procedure Return Codes: OK NU Characters are numeric. Characters are not numeric. Example Procedure for a single function calculator. SET PPDVBL,1 DCL MULT1,CHAR,8,V DCL MULT2,CHAR,8,V DCL PROD,NUM,8,V DCL MSG,CHAR,80,V LABEL LOOP MAPF MULTIPLY {MULT1 } X {MULT2 } &MSG ++/* SET PPDCOND,1 SET MSG,'** NOT NUMERIC **' VTESTNUM MULT1 IF SIBRETCD EQ OK VTESTNUM MULT2 IF SIBRETCD NE OK GOTO -LOOP SET PPDCOND,0 SETD PROD,MULT1 MULTIPLY PROD,&MULT2 IF PROD EQ 0 EXIT OK,'PRODUCT IS ZERO -- NORMAL END' SET MSG,'PRODUCT IS &PROD' GOTO -LOOP Page 182 BIM-EDIT System Reference Manual VTRUNCAT VTRUNCAT Use VTRUNCAT to remove trailing blanks from the value of a specified variable. VTRUNCAT may also be entered as VTRUNC or VTRUN. Required Operands is the name of a previously declared varying length character variable. OBJ For more discussion and examples of variables, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid VTRUNCAT can only be used in a procedure, batch utility, or the application interface. Use in a Procedure Return Codes: OK NF VF VT Successful. Variable not found. The variable format is invalid. The variable type is invalid. Example Procedure to extract information from the fixed format LIBT display to construct a variable format message. SET PPDVBL,1 DCL MSG,CHAR,80,V DCL TEMP,CHAR,80,V LIBT F &SIBUSER COL=8 SET MSG,'TASK STATUS FOR USER=&SIBUSER: ' SETD TEMP,XTRSLINE,17,4 VTRUNCAT TEMP VAPPEND MSG,'LINK=&TEMP ' SETD TEMP,XTRSLINE,32,8 VTRUNCAT TEMP VAPPEND MSG,'TERMINAL=&TEMP ' SETD TEMP,XTRSLINE,41,8 VTRUNCAT TEMP VAPPEND MSG,'STATUS=&TEMP ' EXIT OK,'&MSG' Chapter 3. Advanced User Commands Page 183 VUPPERCA VUPPERCA Use VUPPERCA to translate the value of a specified variable to upper case. VUPPERCA may also be entered as VUPPER or VUPP. Required Operands OBJ is the name of a previously declared character variable. For more discussion and examples of variables, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid VUPPERCA can only be used in a procedure, batch utility, or the application interface. Use in a Procedure VUPPERCA normally returns OK. (See SIBRETCD.) Example Procedure to create a non-unique key for a mailing database application. It takes data from global variables LASTNAME, ZIPCODE, and CITY and returns the key in global variable KEYCODE. DCL TEMP,CHAR,10,V SETD KEYCODE,LASTNAME,1,2 SETD TEMP,ZIPCODE,1,5 VAPPEND KEYCODE,TEMP SETD TEMP,CITY,1,3 VAPPEND KEYCODE,TEMP VUPPER KEYCODE EXIT OK Page 184 BIM-EDIT System Reference Manual WAIT WAIT WAIT is used to cause a procedure to delay processing for an interval of time. Required Operands FOR is an integer representing the interval in seconds (1 - 55924). UNTIL a subsequent time of day in the form - HHMM, where HH is the hour, in 24 hour format, and mm is the minutes. The FOR and UNTIL operands are mutually exclusive. When Valid The WAIT command can only be used in a procedure, batch utility, or the application interface. Use in a Procedure Return Codes: OK SV Successful. Interval not within valid range or timer function rejected by the operating system. Example WAIT 20 or WAIT FOR=20 or WAIT UNTIL=1320 (wait for 20 seconds) (wait for 20 seconds) SUBMIT member LABEL DOWAIT WAIT 30 LISTP LST,member IF SIBRETCD,NE,OK GOTO -DOWAIT Chapter 3. Advanced User Commands (wait until 1:20 pm) ;submit jobstream ;wait 30 seconds ;check for job completion ;if not done, go wait again Page 185 Chapter 4. Predefined Variables This chapter describes BIM-EDIT's predefined variables. Predefined variables are those you may reference even though you have not created them using the DECLARE command (in fact, the DECLARE command will be rejected if you try to use a predefined variable name). You are already be familiar with a few predefined variables, for example those which contain the commands to be executed when a PF key is hit. There are many more predefined variables. There are three principal ways you can use the predefined variables: 1) You can set predefined variables to control the function of BIM-EDIT (PPD and SIB variables are used in this way). 2) You can use predefined variables in procedures to access descriptive information 3) You can SHOW the contents of groups of predefined variables to see why BIMEDIT is performing in a particular way. Except for the miscellaneous predefined variables (CLEAR, ENTER, PARMLIST, PA1PA3, and PF1-PF24), predefined variables are separated into groups indicated by the first three letters of the variable names. The groups are as follows: Predefined Variable Group JCT On MVS, Job Control Table Information Accessed last referenced JES job JOE On MVS, Job Output Element last referenced JES data sets JQE On MVS, Job Queue Element last referenced JES job MMP System memory map BIM-EDIT system status/control OPS Operating system Date and time PDB On MVS, Partitn Data Periph Blk last referenced JES data sets PPD Procedure processor data current BIM-EDIT procedure PWR On VSE, POWER job entry last referenced POWER job entry SIB System interface block current BIM-EDIT task SSD Session control block current BIM-EDIT session TXL Library attributes current BIM-EDIT library TXM Member attributes last referenced BIM-EDIT member TXS Library/User Security BIM-EDIT security record TXU User attribute variables. BIM-EDIT user attributes XTR Extract variables BIM-EDIT session/member status The rest of this chapter is devoted to a detailed description of the predefined variables. Each variable description provides the variable type (CHAR, NUM), the variable length, whether the variable is "updateable" with the SET or SETD command, and a Page 186 BIM-EDIT System Reference Manual description of the variable. All predefined variables are of varying format, i.e., format "V". See the DECLARE command for an explanation of variable type, variable format, and variable length. Chapter 4. Predefined Variables Page 187 Miscellaneous Variables Miscellaneous Variables The miscellaneous predefined variables are those which hold the PARMLIST for a procedure or the command strings associated with the special keys. Miscellaneous Variables Page 188 CLEAR command string for the CLEAR key (type=char, length=127, updateable). EMTER command string for the ENTER key (type=char, length=127, updateable). This value is only used if no data has been entered anywhere on the screen, and the transmission was initiated by the ENTER key. PARMLIST concatenated procedure parameter string (type=char, length=127, updateable). Set when a procedure is invoked. Used as input to the PARSE command. When procedures invoke other procedures, each active procedure has its own PARMLIST variable. PA1-PA3 command strings for the PA keys (type=char, length=127, updateable). PF1-PF24 command strings for updateable). PF1OPTPF24OPT processing options for the PF keys (type=char, length=6, updateable). Can be set to AFTER, BEFORE, IGNORE, ONLY. These variables are undefined until their corresponding PFn variable has been set to a non-blank value. the PF keys (type=char, length=127, BIM-EDIT System Reference Manual JCT Variables (MVS Only) JCT Variables (MVS Only) JCT variables access the JES Job Control Table. The values of these variables describe a JES job and are strongly related to the values of the JQE variables. "Last referenced JES data sets" is another way of saying "the JES data sets currently indicated by the JCT, JOE, JQE, and PDB variables". Commands which access JES data sets, such as LISTP, use and set the JCT variables. Each BIM-EDIT task has one set of JCT variables, which are initialized at logon and held until logoff. The values of the JCT variables remain constant until changed by a command that accesses JES data sets. This is the case even if events outside of BIMEDIT alter or delete JES data sets. To assure current information, a READP command can be used to refresh the values of the JCT variables before use. The following table describes the JCT variables. JCT Variables JCTACCTN job accounting number (type=char, length=4, read-only). From accounting information on JOB or NETACCT statements. JCTBYTES generated output bytes (type=num, length=8, read-only). JCTCARDS number of input lines (type=num, length=8, read-only). JCTCLASS execution job class (type=char, length=1, read-only). From CLASS parameter on JOB statement. Can be changed by system operator. JCTCPYCT job print copy count (type=num, length=3, read-only). From COPIES parameter on JOBPARM statement. JCTESOUT estimated output (lines plus cards) (type=num, length=8, read-only). From accounting information on JOB statement or CARDS and LINES parameters on JOBPARM statement. JCTESTBY estimated output bytes (type=num, length=8, read-only). From BYTES parameter on JOBPARM statement. JCTESTLN estimated output lines (type=num, length=8, read-only). From accounting information on JOB statement or LINES parameter on JOBPARM statement. JCTESTPG estimated output pages (type=num, length=8, read-only). From PAGES parameter on JOBPARM statement. JCTESTPU estimated output punch (type=num, length=8, read-only). From accounting information of JOB statement or CARDS parameter on JOBPARM statement. JCTETIME estimated execution time (type=num, length=8, read-only). From accounting information on JOB statement or TIME parameter on JOBPARM statement. JCTEXSID execution processor system ID (type=char, length=4, read-only). From ROUTE XEQ statement. Chapter 4. Predefined Variables Page 189 JCT Variables (MVS Only) Page 190 JCTFORMS job output forms ID (type=char, length=8, read-only). From FORMS parameter on JOBPARM statement. JCTIOPRI JES initial output selection priority (type=num, length=3, read-only). From PRTY parameter on JOB statement or PRIORITY statement. Can be changed by system operator. JCTIPRIO JES initial job selection priority (type=num, length=3, read-only). From PRTY parameter on JOB statement or PRIORITY statement. Can be changed by system operator or with ALTERP command. JCTJCLAS JES execution job class (type=char, length=1, read-only). From CLASS parameter on JOB statement. Can be changed by system operator. JCTJNAME job name label from JOB statement (type=char, length=8, read-only). JCTLINCT lines per page (type=num, length=3, read-only). From LINECT on JOBPARM statement. JCTLINES generated output lines (type=num, length=8, read-only). JCTMCLAS MSGCLASS parameter from JOB statement (type=char, length=1, read-only). JCTODTON date on output processor (type=char, length=8, read-only). JCTODTN is in the format "mm/dd/yy" or the format "dd/mm/yy" depending upon the value of MMPDTCTL, where "mm" is the month (01-12), "dd" is the day (01-31) and "yy" is the year (01-99). JCTOPRIO JES output selection priority (type=num, length=3, read-only). From PRTY parameter on JOB statement or PRIORITY statement. JCTPAGES generated output pages (type=num, length=8, read-only). JCTPNAME "programmer" name on JOB statement (type=char, length=20, readonly). JCTPRIO JES execution selection priority (type=num, length=3, read-only) From PRTY parameter on JOB statement or PRIORITY statement. JCTPUNCH generated punched output (type=num, length=8, read-only). JCTRDRON time on input processor (type=char, length=8, read-only). JCTRDRON is in the format "hh:mm:ss" where "hh" is hours (00-23), "mm" is minutes (00-59), and "ss" is seconds (00-59). JCTRDSID input processor system ID (type=char, length=4, read-only). JCTRDTON date on input processor (type=num, length=8, read-only). JCTRDTON is in the format "mm/dd/yy" or the format "dd/mm/yy" depending upon the value of MMPDTCTL, where "mm" is the month (01-12), "dd" is the day (01-31), and "yy" is the year (01-99). JCTRNODE input processor node number (type=num, length=5, read-only). BIM-EDIT System Reference Manual JCT Variables (MVS Only) JCTROOMN "programmer" room number (type=char, length=4, read-only). From accounting info on JOB statement or ROOM parameter on JOBPARM statement. JCTTSUID timesharing user ID (type=char, length=7, read-only). From NOTIFY parameter on JOB statement or NOTIFY statement. JCTXDTOF date off execution processor (type=char, length=8, read-only). JCTXDTOF is in the format "mm/dd/yy" or the format "dd/mm/yy" depending upon the value of MMPDTCTL, where "mm" is the month (01-12), "dd" is the day (01-31), and "yy" is the year (01-99). JCTXDTON date on execution processor (type=char, length=8, read-only). JCTXDTON is in the format "mm/dd/yy" or the format "dd/mm/yy" depending upon the value of MMPDTCTL, where "mm" is the month (01-12), "dd" is the day (01-31), and "yy" is the year (01-99). JCTXEQOF time off execution processor (type=char, length=8, read-only). JCTXEQOF is in the format "hh:mm:ss" where "hh" is hours (00-23), "mm" is minutes (00-59), and "ss" is seconds (00-59). JCTXEQON time on execution processor (type=char, length=8, read-only). JCTXEQON is in the format "hh:mm:ss" where "hh" is hours (00-23), "mm" is minutes (00-59), and "ss" is seconds (00-59). JCTXOUT generated output records (type=num, length=8, read-only). Chapter 4. Predefined Variables Page 191 JOE Variables (MVS Only) JOE Variables (MVS Only) JOE variables access the JES Job Output Element. JOE variables describe a JES output group. "Last referenced JES data sets" is another way of saying "the JES data sets currently indicated by the JCT, JOE, JQE, and PDB variables". Commands which access JES data sets, such as LISTP, may use and set the JOE variables. Each BIM-EDIT task has one set of JOE variables, which are initialized at logon and held until logoff. The values of the JOE variables remain constant until changed by a command that accesses JES data sets. This is the case even if events outside of BIM-EDIT alter or delete JES data sets. To assure current information, a READP command can be used to refresh the values of the JOE variables before use. The following table describes the JOE variables. JOE Variables Page 192 JOECURCL current sysout class for group (type=char, length=1, read-only). From CLASS parameter on OUTPUT statement. Can be changed by system operator or with ALTERP command. JOEFCB 3211 Forms Control Buffer ID for group (type=char, length=4, readonly). From FCB parameter on DD or OUTPUT statements. JOEFLASH 3800 forms flash overlay name for group (type=char, length=4, readonly). From FLASH parameter on DD or OUTPUT statements. JOEFORM output forms name for group (type=char, length=8, read-only). From FORMS parameter on JOBPARM or OUTPUT statement. JOEPGCT total page count for group (type=num, length=8, read-only) JOEPRIO job priority for group (type=num, length=3, read-only). From PRTY parameter on JOB statement or PRIORITY statement. Can be changed by system operator or with ALTERP command. JOERECCT total record count for group (type=num, length=8, read-only) JOERNODE node number for group (type=num, length=4, read-only). From ROUTE PRINT or ROUTE PUNCH statements. JOEUCS 3211 Universal Character Set ID for group (type=char, length=4, read-only). From UCS parameter on DD or OUTPUT statement. JOEWPAGN number of pages processed so far for group (type=num, length=8, read-only). JOEWRECN number of records processed so far for group (type=num, length=8, read-only). JOEWTRID data set external writer name for group (type=char, length=8, readonly). From SYSOUT parameter of DD statement or WRITER parameter of OUTPUT statement. BIM-EDIT System Reference Manual JQE Variables (MVS Only) JQE Variables (MVS Only) JQE variables access the JES JOB Queue Entry. The values of JQE variables describe a JES job and are strongly related to the JCT variables. "Last referenced JES data sets" is another way of saying "the JES data sets currently indicated by the JCT, JOE, JQE, and PDB variables". Commands which access JES data sets, such as LISTP, use and set the JQE variables. Each BIM-EDIT task has one set of JQE variables, which are initialized at logon and held until logoff. The values of the JQE variables remain constant until changed by a command that accesses JES data sets. This is the case even if events outside of BIMEDIT alter or delete JES data sets. To assure current information, a READP command can be used to refresh the values of the JQE variables before use. The following table describes the JQE variables. JQE Variables JQEJCLAS JES job class (type=char, length=1, read-only). From the CLASS parameter of the JOB statement. JQEJNAME JES job name (type=char, length=8, read-only). From job name label of the JOB card. JQEJOBNO JES job number (type=num, length=5, read-only). Assigned by JES. JQEPRNOD node number (type=num, length=5, read-only). This may be input node or execute node. JQEPRIO job priority (type=num, length=3, read-only). From PRTY parameter on JOB statement or PRIORITY statement. JQETYPEJ JES job type (type=char, length=1, read-only). JQETYPEJ indicates how the job was initiated, where "J" means normal initiation, S means system started task, T means logged on TSO user. Chapter 4. Predefined Variables Page 193 MMP Variables MMP Variables MMP variables are the central controls for a BIM-EDIT system. All users of a BIM-EDIT system share a single set of MMP variables. Many of the MMP variables deal with BIM-EDIT's management of memory buffers. BIM-EDIT manages buffers in 5 specific sizes: 16K, 4K, 1K, 256 bytes, and 64 bytes. Memory management is discussed under "Managing Memory Utilization" in Chapter 10, Operations and Administration, of the BIM-EDIT System Reference Manual. To update any of the updateable variables in this group, the user must have ADM command access level. The following table describes the MMP predefined variables. MMP (System Memory Map) Variables MMPAUCTL audit control flag (type=char, length=1, updateable). Controls use of the commands CHECKIN, AUDITCL and ALTER AUDIT=OFF. If MMPAUCTL is "1", these commands are only valid to a user with ADM command access level, otherwise any user with DEF access level to the library containing a member may use the commands. MMPBACKP backup running flag (type=char, length=1, read-only). If MMPBACKP is "1", there is a BIM-EDIT backup running and certain commands are not allowed (for a list, see BACKUPG in HELP or Chapter 8 of the BIM-EDIT System Reference Manual). MMPBKDTE date of last full logical backup (type=char, length=10, read-only). MMPBKTME time of last full logical backup (type=char, length=8, read-only). MMPCNSLI CONSOLEI COMMAND flag (type=char, length=1, updateable). When set to zero console command capability is disabled. When set to a value of 1 to 4 that level user and any user above that level is allowed to enter console commands: 1 2 Page 194 USER level EXTU level 3 4 OPER level ADM level MMPCPYBK Copy Book Facility Flag (type=char, length=1, updateable). Set to '1' to activate the Copy Book facility at BIM-EDIT startup MMPDSCTL display session control flag (type=char, length=1, updateable). If MMPDSCTL has a value of "0", DISP sessions cannot be updated. If MMPDSCTL is "1", they are updateable but auditing is not on. If MMPDSCTL is "2", DISP sessions are updateable and audited. MMPDSIZE POWER DBLK size (VSE only, type=num, length=7, read only) MMPDTCTL date format control flag (type=char, length=1, updateable). If MMPDTCTL is "U", U.S.A format (MM/DD/YYYY) is used to display dates. If MMPDTCTL is "I", International format (DD/MM/YYYY) is used. BIM-EDIT System Reference Manual MMP Variables MMPEXTNM Extended name control (type=char, length=1, updateable). This option is used to control the separator character and parsing rules that BIM-EDIT uses to distinguish a library name from a member name as specified in all BIM-EDIT commands. The following values can be set: 0 This is the default. In this mode, either a '.' or a '\' can be used as a separator between the library name and the member name. Member names cannot contain periods. 1 In this mode, you can define member names that contain periods, but you then must use the '\' separator between the library name and member name to access such members. In this mode, any value entered for a command containing a period, but no '\' will be assumed to be in lib.mem format. 2 This mode requires the use of the '\' to separate the library name and member name. All references to values without the '\' will be assumed to be member names in the currently attached library. MMPICCTL VSE ICCF control flag (type=char, length=1, updateable). If MMPICCTL has a value of "1", access to the ICCF file is allowed. If MMPICCTL has a value of "0", access to the ICCF file is not allowed. MMPICCTL is provided to prevent attempting to access the ICCF files when they are not defined to the BIM-EDIT partition. This type of access would abend BIM-EDIT. MMPICCTL has meaning only on VSE. MMPKSIDP number of 4K buffers used for the key sequence index (type=num, length=5, read-only). MMPKSRDP Number of Key Sequence Data records (type=num, length=7, readonly) Each BIM-EDIT library, each member, etc. constitutes a key seq data record member. MMPLDUSG number of 16K buffers used for BIM-EDIT code on VSE (type=num, length=5, read-only). MMPLDUSG has meaning only on VSE. MMPLGEXP LOGON expiry value (type=char, length=1, updateable). Specifies the number of LOGON attempts a user will be allowed before the user record is disabled. MMPLGEXP may have a value of 0 to 9. A value of "0" means that the number of LOGON attempts is unlimited. MMPLGTYP logon type control flag (type=char, length=1, updateable). If MMPLGTYP has a value of "F", the user id and password can be entered when the BIM-EDIT task is initiated. If MMPLGTYP has a value of "S", the user id and password are entered through a formatted screen with a non-display field for the password. MMPLGTYP has meaning only when a BIM-EDIT task is initiated using a CICS transaction or a VTAM logon with data specified. MMPMPLDP number of 4K buffers allocated (type=num, length=5, read-only). Chapter 4. Predefined Variables Page 195 MMP Variables MMPMPLUS number of 4K buffers in use (type=num, length=5, read-only). MMPMPMDP number of 1K buffers allocated (type=num, length=5, read-only). MMPMPMUS number of 1K buffers in use (type=num, length=5, read-only). MMPMPSDP number of 256 byte buffers allocated (type=num, length=5, readonly). MMPMPSUS Number of 256 byte buffers in use (type=num, length=5, read-only). MMPMVTRL MVT Release level 0 Not an MVT System 147 MVT 9.3 or below 148 MVT 9.4 and above (type=num, length=3, read-only) MMPMXGRP maximum number of groups users will default to. (type=num, length=1, read-only). Max value is 9. MMPMXSES maximum number of sessions users will default to. (type=num length=2, read-only). Max value is 99. MMPNOTFY JOB NTFY= control flag (type=char, length=1, updateable). Controls the activation of the POWER NTFY= jobcard support. "0" indicates that the support is not to be activated. "1" indicates that the support is to be activated. You must cycle BIM-EDIT to have this change take affect. Limitations on use of the option: you cannot use this feature if you run ICCF on the same VSE machine. - you can only activate this option in one BIM-EDIT system per VSE machine. MMPOPREL VSE operating system release (type=num, length=3, read-only). MMPOPREL assumes one of the following values depending upon the VSE operating system release: 43 44 45 53 54 57 59 60 VSE release 1.3 VSE release 1.3.5 (or Software Pursuits MVT) VSE/SP release 2.1 VSE/ESA 1.1 VSE/ESA 1.3 and 1.4 VSE/ESA 2.1 and 2.2 VSE/ESA 2.3 VSE/ESA 2.4 MMPOPREL has meaning only for VSE. MMPOPSYS Page 196 operating system type (type=char, length=1, read-only). If MMPOPSYS is "D", BIM-EDIT is running under VSE or MVT. If MMPOPSYS is "M", BIM-EDIT is running under MVS. BIM-EDIT System Reference Manual MMP Variables MMPPGCTL purge control flag (type=char, length=1, updateable). If MMPPGCTL has a value of "1", purge control is active (purged members are copied to the $SIT.PURGE library). If MMPPGCTL has a value of "0", purge control is not active. See "Purge Control" in Chapter 10 of the BIM-EDIT System Reference Manual. MMPPGSIZ default number of lines to be printed per page (type=num, length=5, updateable). MMPPGSIZ is set to 59 on the starter library, a value appropriate for 6 lines per inch printing. The number of lines printed per page is actually determined by the PPDPGSIZ predefined variable. MMPPGSIZ provides the initial value that will be assigned to PPDPGSIZ at logon. MMPPWCTL POWER or JES access control flag (type=char, length=1, updateable). The use of this flag is determined by the BIXPWQA exit routine. See Chapter 11, Customization, in the BIM-EDIT System Reference Manual. MMPPWRNM POWER filename control flag (type=char, length=1, updateable). If MMPPWRNM has a value of "1" IJQFILE and IJDFILE will be used to access the POWER files. See "Installation and Maintenance" in Chapter 9 of the BIM-EDIT System Reference Manual. MMPQBKDP POWER data buffers, number acquired at startup. Max number set at MMPQBKSP. (VSE only, type=num, length=5, read only). MMPQBKSP POWER data buffers, number requested. (VSE only, type=num, length=5, updateable). Number of large buffers, to try to allocate at startup, as a POWER data buffer pool. The size of each is MMPQBSZ. These buffers are only acquired if your POWER system has a DBLK size greater than 12288. MMPQBKSW POWER data buffers, number swappable, (VSE only, type=num, length=5, read only). MMPQBSZ POWER data buffer size, (VSE only, type=char, length=7, read only). The size of each data buffer will be the POWER DLBK size (MMPDSIZE) multiplied by 1.33 and then rounded up to the next 1K. These buffers are only used if the DBLK size is greater than 12288. Chapter 4. Predefined Variables Page 197 MMP Variables MMPSECUR external security interface control. (type=char, length=1, updateable). MMPSECUR assumes one of the following values: A I R T ACF2 is used to validate access. BIM-EDIT validates access internally. RACF is used to validate access. TOP/SECRET is used to validate access. BIM-EDIT checks external security for the 16 character VSE sublibrary name, 44 character MVS PDS name or the 16 character BIM-EDIT library name. It doesn't check the member name. A change to MMPSECUR takes effect after restarting BIM-EDIT. When changing to external security, take precautions in case an error in security setup causes BIM-EDIT to reject your logon when you try to correct the error. MMPSPCTL stamp control flag (type=char, length=1, updateable). Controls use of the commands STAMPCL and ALTER STAMP=OFF. If MMPSPCTL is "1", these commands are valid only to a user with ADM command access level, otherwise any user with DEF access level to the library containing a member may use the commands. MMPSPHGL stamp highlight flag. (type=char, length=1, updateable). If MMPSPHGL has the value "0", stamped lines will not be highlighted. If MMPSPHGL is "1", they will be highlighted. MMPSPOOL spooler type (type=char, length=1, read-only). If MMPSPOOL is "J", BIM-EDIT is running with JES2. If MMPSPOOL is "P", BIM-EDIT is running with POWER. If MMPSPOOL is "S", BIM-EDIT is running with SPRI. MMPSPREL spooler release (type=num, length=3, read-only). Possible values: On VSE, MMPSPREL assumes one of the following values: 18 33 34 35 POWER release 1.2 POWER release 2.1 POWER release 2.2 POWER release 2.3 65 81 97 100 POWER release 4.1 POWER release 5.1 POWER release 6.1 POWER release 6.4 On SPRI, MMPSPREL has no meaning. On MVS, MMPSPREL assumes one of the following values: 19 33 34 49 51 Page 198 JES release 1.3 JES release 2.1 JES release 2.2 JES release 3.1 JES release 3.3 66 67 81 82 JES release 4.2 JES release 4.3 JES release 5.1 JES release 5.2 BIM-EDIT System Reference Manual MMP Variables MMPSTOIN BIM-EDIT system task timeout value (type=num, length-4, update) specified in seconds. minimum=120 maximum=9999. Initial value is 0. Set it to the desired timeout value for automatic logoff. Effective for tasks waiting for input from CICS (XPCC) terminals or VTAM terminals. A period of inactivity, exceeding the interval will result in task termination and user logoff. A value of zero (0) seconds inactivates the expire function. MMPSYNAM BIM-EDIT system name (type=char, length=8, read-only). The name used internally to transfer requests and results between the user and BIM-EDIT. Normally, this will be "BIMEDIT", but if more than one copy of BIM-EDIT is running each must have a unique system name. (See "Starting BIM-EDIT" in Chapter 10 of the BIM-EDIT System Reference Manual.) MMPSYREL BIM-EDIT release (type=char, length=4, read-only). For example, a value of "5.4A" would indicate release 5.4, revision A. MMPSYSID SYSTEM ID (type=char, length=1, updateable). Valid values are any valid displayable character. This value will be displayed on the command line prior to the '>' in place of the '='. MMPTCPAP TCP/IP APPL Name (type=char, length=8, updateable) used by TCP/IP OCS version. MMPTCPDP TCP/IP Session Depth (type=num, length=5, read-only). MMPTCPIA TCP/IP Interface active (type=char, length=1, read-only). 'C' 'I' 'O' MMPTCPIF CONNECTIVITY SYSTEMS (VSE) IBM (MVS) OPEN CONNECT (VSE) TCP/IP Interface (type=char, length=1, updateable). 'C' 'I' 'J' 'O' CONNECTIVITY SYSTEMS (VSE) IBM >= V3R2 (MVS) IBM V3R1 (MVS) OPEN CONNECT SYSTEMS (VSE) MMPTCPJB TCP/IP Job Name (type=char, length=8, updateable) used by MVS TCP/IP. MMPTCPLU TCP/IP LU Name (type=char, length=8, updateable) used by TCP/IP OCS version. MMPTCPPI TCP/IP Port Number in Use (type=num, length=5, read-only). MMPTCPPT TCP/IP Port Number (type=num, length=5, updateable). MMPTCPSI TCP/IP Partition ID (type=num, length=5, updateable). Used by TCP/IP Connectivity Systems. Chapter 4. Predefined Variables Page 199 MMP Variables MMPTCPST TCP/IP Session Status (type=char, length=1, read-only). '0' '1' '2' Page 200 TCP/IP Interface Inactive TCP/IP Interface Active TCP/IP Interface Close in Prograss MMPTPEXP Temporary password expiry (type=num, length=4, updateable). The value specifies the number of days, after creation, before a temporary password will be purged during BIM-EDIT startup. If this field is not set, the assumed default will be (7) days. MMPVTCVD LU 6.2 Conversation Depth (type=num, length=5, read-only). The number of BIM-EDIT VTAM sessions that are currently handling an LU 6.2 conversation. Each workstation that is logged on uses three LU 6.2 conversations. The LU 6.2 version of the Batch Utility and Application Interface each use one LU 6.2 conversation per currently executing copy. MMPVTSSD VTAM Session Depth (type=num, length=5, read-only). The number of VTAM sessions currently open by this BIM-EDIT system, not including LU 6.2 sessions. Changes as interactive users, Batch Utility executions, and Application Interface programs request to communicate to BIM-EDIT through VTAM. MMPVTSTS VTAM interface status (type=char, length=1, read-only). If MMPVTSTS is "0", the VTAM interface is inactive. If MMPVTSTS is "1", the VTAM interface is active. If MMPVTSTS is "2", the VTAM interface is in the process of closing. MMP16KCU number of 16K buffers that must be available before processing an input message (type=num, length=5, updateable). MMP16KDP number of 16K buffers allocated (type=num, length=5, read-only). MMP16KMU maximum number of 16K buffers used since BIM-EDIT last started (type=num, length=5, read-only). MMP16KSP number of 16K buffers to try to allocate at startup (type=num, length=5, updateable). MMP16KSW number of 16K buffers available, including those areas that can be "acquired" from waiting tasks (type=num, length=5, read-only). MMP16KUS number of 16K buffers in use (type=num, length=5, read-only). MMP64BDP number of 64 byte buffers allocated (type=num, length=5, readonly). MMP64BUS number of 64 byte buffers in use (type=num, length=5, read-only). BIM-EDIT System Reference Manual OPS Variables OPS Variables The OPS variables access operating system values. The following table describes these variables. OPS (Operating System) Variables OPSDATE the current date, as held by the operating system (type=char, length=10, read-only). OPSDATE is either in the format "mm/dd/yyyy" or the format "dd/mm/yyyy" depending upon the value of MMPDTCTL, where "mm" is the month (01-12), "dd" is the day (01-31), and "yyyy" is the year. OPSTIME the current time, as held by the operating system (type=char, length=8, read-only). OPSTIME is in the format "hh:mm:ss" where "hh" is the hour (00-23), "mm" is the minute (00-59), and "ss" is the second (00-59). Chapter 4. Predefined Variables Page 201 PDB Variables (MVS Only) PDB Variables (MVS Only) PDB variables access the JES Partition Data Peripheral Block. This block describes an individual JES data set. When BIM-EDIT accesses a group of JES data sets, it creates artificial values in the PDB variables to describe the group. "Last referenced JES data sets" is another way of saying "the JES data sets currently indicated by the JCT, JOE, JQE, and PDB variables". Commands which access JES data sets, such as LISTP, use and set the PDB variables. Each BIM-EDIT task has one set of PDB variables, which are initialized at logon and held until logoff. The values of the PDB variables remain constant until changed by a command that accesses JES data sets. This is the case even if events outside of BIMEDIT alter or delete JES data sets. To assure current information, a READP command can be used to refresh the values of the PDB variables before use. The following table describes the PDB variables. PDB Variables Page 202 PDBBYTCT actual byte count of data set (type=num, length=8, read-only). PDBCLASS output class of data set (type=char, length=1, read-only). From the SYSOUT parameter of the DD statement or MSGCLASS parameter of the JOB statement or the CLASS parameter of the OUTPUT statement. Can be changed by system operator or with ALTERP command. PDBCOPYS number of copies of data set (type=num, length=3, read-only). From the COPIES parameter of the DD or OUTPUT statements. PDBDDNAM DD name of data set (type=char, length=8, read-only). From label of the DD statement that created data set. PDBDSID data set identification for external JES reader/writer (type=char, length=3, read-only). From WRITER parameter of OUTPUT statement or the DSID parameter of DD statement. PDBDSKEY data set number (type=num, length=5, read-only). Unique number assigned by JES. User data sets have numbers starting with 100. PDBFCB 3211 Forms Control Buffer ID for data set (type=char, length=4, read-only). From FCB parameter of DD or OUTPUT statement. PDBFLASH 3800 forms flash overlay ID (type=char, length=4, read-only). From FLASH parameter of DD or OUTPUT statement. PDBFORMS forms ID code for data set (type=char, length=8, read-only). From FORMS parameter of OUTPUT statement. PDBID output group qualifier for data set (type=char, length=8, read-only). First qualifier of outgroup name assigned by JES. PDBLRECL maximum logical record length in this data set (type=num, length=5, read-only). BIM-EDIT System Reference Manual PDB Variables (MVS Only) PDBNAME output group name for data set (type=char, length=8, read-only). Outgroup name prior to qualifier assigned by JES. From JES or on GROUPID parameter of OUTPUT statement. See PDBID. PDBPGCT page count for this data set (type=num, length=8, read-only). PDBPRIO data set priority (type=num, length=3, read-only). From PRTY parameter of JOB or OUTPUT statement. Can be changed by system operator or with ALTERP command. PDBRECCT data set record count (type=num, length=8, read-only). PDBSNAME step name which produced data set (type=char, length=8, readonly). From label of EXEC statement. PDBUCS 1403 or 3211 Universal Character Set ID (type=char, length=4, readonly). From UCS parameter of OUTPUT statement. Chapter 4. Predefined Variables Page 203 PPD Variables PPD Variables The PPD variables control the operation of a procedure or batch execution. Since a procedure can invoke another procedure or a batch utility execution can invoke a procedure, there can be more than one set of PPD variables active at a time for a user, although only the set for the current procedure is visible. When a procedure is invoked, a new set of PPD variables is initialized for that procedure. When a procedure ends, the PPD variables revert to those for the invoking procedure. The updateable PPD variables can be changed with the SET or SETD commands. See BIM-EDIT System Reference Manual, Chapter 2, Writing Procedures, for a discussion of using many of these variables. The following table describes the PPD variables. PPD (Procedure Processor Data) Variables Page 204 PPDADJ text-following adjustment flag (type=char, length=1, updateable). If PPDADJ has a value of "1" or "2" (see note about INCLUDE at the end of this table), certain lines presented to a command such as SUBMITF will be "adjusted" by prefixing them with a not symbol (¬). Lines which will be adjusted are those starting with the two characters "/*", the two characters "/+", the two characters "/&", the four characters "* $$", or the four characters "++/*". In addition, any line already prefixed by either the PPDADJ or PPDSHIFT characters ("¬" or "..") will have an additional not symbol (¬) added to the beginning of the line. If PPDADJ has a value of "0", adjustment will not occur. PPDADJ is initialized to "0". This facility is provided to convert member text lines which would not be acceptable as BIMEDIT SYSIN to an innocuous form. See PPDSHIFT for the inverse function. PPDALARM MAPF audible alarm flag (type=char, length=1, updateable). If PPDALARM has a value of "1", MAPF commands will sound the terminal alarm (that is, beep) when they display. If PPDALARM has a value of "0", the alarm will not be sounded. PPDALARM is initialized to "0". PPDBLKCT BLOCK command nesting level count used for indexing to the appropriate BLOCK location. BLOCK increments the value, ENDBLOCK decrements the value. (type=num, length=5, read only) PPDCOL column at which variable value matched a search (type=num, length=3, read-only). Initialized to zero. Changed by a successful VEXAMINE command. BIM-EDIT System Reference Manual PPD Variables PPDCOND conditional execution flag (type=char, length=1, updateable). If PPDCOND has a value of "0", execution of the procedure will be terminated if a command results in a non-OK return code. If PPDCOND has a value of "1", execution will be terminated if a command is rejected (typically for breaking syntax rules), but otherwise control is returned to the procedure. If PPDCOND has a value of "2", control will always be returned to the procedure; if a command would normally be rejected, its return code will be "SV". PPDCOND is initialized to "0". If PPDCOND is 1 or 2, it is up to the commands which follow the command returning the code to check the SIBRETCD value and act accordingly. If execution of the procedure is terminated due to a non-OK return code or reject when PDCOND is 0 or 1, the error message associated with the error code will be displayed. PPDCSFLD name of MAPF field to receive cursor (type=char, length=8, updateable). If the value of PPDCSFLD is not the name of a variable attached to an updateable field, MAPF will place the cursor at the upper-leftmost field. Initialized to blanks. PPDHEX text-following hex flag (type=char, length=1, updateable). If PPDHEX has a value of "1" or "2" (see note about INCLUDE at the end of this table), hex translation will occur on lines encountered in a procedure, including commands and lines processed by a textfollowing command. If the PPDHEXC character is found in a line, and if the following two characters are valid hex digits, the three characters are converted to the single character having that hexadecimal representation. If PPDHEX has a value of "0", hex translation will not occur. PPDHEX is initialized to "0". This feature is provided to simplify handling of characters which do not have keyboard representations. See "Hexadecimal Display and Editing" in Chapter 6 of the BIM-EDIT User Reference Manual. See also SIBHEXC for hex translation on the command line. If the hex character or string contains invalid characters (i.e. space, comma, single or double quotes, etc.) the entire string must be enclosed within single or double quotes. PPDHEXC text-following hex escape character (type=char, length=1, updateable). PPDHEXC is initialized to "@". See PPDHEX. PPDIFTCT IFTHEN command nesting level count used for indexing to the appropriate ENDIF location. IFTHEN increments the value, ENDIF decrements the value (type=num, length=5, read only) PPDINCL text-following include flag (type=char, length=1, updateable). If PPDINCL has a value of "1" or "2" (see note about INCLUDE at the end of this table), lines beginning with /INCL or )INCL will be treated as INCLUDE commands if they are presented to a command such as SUBMITF. If PPDINCL has a value of "0", /INCL and )INCL will be treated as normal text. PPDINCL is initialized to "0". Chapter 4. Predefined Variables Page 205 PPD Variables Page 206 PPDKEY MAPF transmission key (type=char, length=5, read-only). PPDKEY is set by a MAPF command to indicate the key which was hit to transmit the screen. It will be "ENTER", "CLEAR", "PF1" through "PF24", or "PA1" through "PA3". PPDLITDL primary literal delimiter character (type=char, length=1, updateable). Indicates whether apostrophe (') or quote mark (") is the character which will be doubled during value replacement. That is, PPDLITDL modifies the operation of PPDLITEX. Only has effect when set to apostrophe (') or quote mark ("). Initialized to apostrophe. PPDLITEX literal delimiter expansion control (type=char, length=1, updateable). Indicates how the PPDLITDL character will be expanded when a variable value containing it is replaced into a line. If PPDLITEX is set to "0", no expansion takes place. If PPDLITEX is set to "1", all instances are doubled. If PPDLITEX is set to "2", all instances are quadrupled. Initialized to "0". PPDLPCTR GOTO and GOSUB loop counter (type=num, length=8, updateable). See the PPDLPLMT description. PPDLPLMT GOTO and GOSUB loop limit (type=num, length=8, updateable). If a GOTO command which references a LABEL before it in the procedure is encountered, PPDLPCTR is incremented, then compared with PPDLPLMT. If PPDLPCTR is greater than PPDLPLMT, the procedure is terminated. This facility is provided to prevent accidental infinite loops. PPDLPLMT is initialized to 1000. PPDMSGF MAPF message flag (type=char, length=1, read-only). PPDMSGF is set by a MAPF command to indicate whether any data was entered. If PPDMSGF has a value of "1", some data was entered. If PPDMSGF has a value of "0", no data was entered. PPDMSGF is also set to "0" when CLEAR or a PA key is pressed. PPDOVBAS text-following overlay column base (type=num, length=3, updateable). PPDOVBAS is used in conjunction with PPDOVLMT and PPDOVSTR. Each line presented to a command such as SUBMITF will be overlayed by the string held in PPDOVSTR at the column range specified by PPDOVBAS and PPDOVLMT. PPDOVBAS and PPDOVLMT should specify a column range no wider than 8 columns. Overlay occurs only if a valid column range is specified. PPDOVBAS and PPDOVLMT are initialized to 0, thus inhibiting overlay processing. PPDOVSTR is initialized to blanks. PPDOVLMT text-following overlay column updateable). See PPDOVBAS. PPDOVSTR text-following overlay string (type=char, length=8, updateable). See PPDOVBAS. limit (type=num, length=3, BIM-EDIT System Reference Manual PPD Variables PPDPFOPT Performance Option. Set to '1' to activate. Duplicate labels may not be used when choosing this option. This option can have significant reduction in procedure run time in procs executing frequent GOTO commands. PPDPGSIZ printed page size (type=num, length=5, updateable). When running BIM-EDIT in batch utility, a skip to top of page occurs when the current line number exceeds PPDPGSIZ. PPDPGSIZ is initialized to the value of MMPPGSIZ. PPDPRLIB library name of current procedure (type=char, length=16, read-only). PPDPRMEM member name of current procedure (type=char, length=16, readonly). PPDSCRSZ MAPF screen size (type=char, length=1, updateable). If PPDSCRSZ has a value of "D", the default screen size will be used for MAPF. If it has a value of "A", the alternate screen size will be used. The size of "default" and "alternate" can be obtained from SIBSCADP, SIBSCAWD, SIBSCDDP and SIBSCDWD. PPDSCRSZ is initialized to the value of SIBSCRSZ. PPDSHIFT text-following shift flag (type=char, length=1, updateable). If PPDSHIFT has a value of "1" or "2" (see note about INCLUDE at the end of this table), certain lines presented to a command such as SUBMITF will be shifted left. Lines with a not symbol (¬) in column 1 will be shifted left one position, thus deleting the not symbol. Lines with two periods (..) in columns 1 through 2 will be shifted left two positions, thus deleting the two periods. PPDSHIFT is initialized to "0". See PPDADJ for the inverse function. PPDSPCOL text-following stamp overlay column (type=num, length=3, updateable). PPDSPCOL is used in conjunction with PPDSPFMT. Each line presented to a command such as SUBMITF will be overlayed by member stamp information at the column specified by PPDSPCOL. This feature is provided to allow member stamps to be printed or otherwise processed. The stamp values are not altered. Stamp overlay occurs only if a valid column and format is specified. PPDSPCOL is initialized to 0, thus inhibiting stamp overlay. Chapter 4. Predefined Variables Page 207 PPD Variables PPDSPFMT text-following stamp overlay format (type=char, length=1, updateable). PPDSPFMT is used in conjunction with PPDSPCOL. Stamp information is formatted as follows, depending upon the value of PPDSPFMT and upon the value of MMPDTCTL: PPDSPFMT 1 2 3 4 5 6 MMPDTCTL="U" MMPDTCTL="I" mmddt mmyyt uuuut t,mm/dd/yyyy,uuuu mmddyyt mddyuuuu ddmmt mmyyt uuuut t,dd/mm/yyyy,uuuu ddmmyyt ddmyuuuu where: dd m = day of update = month of update (A=October, B=November, C=December) mm = month of update y = year of update, last digit only yy = year of update yyyy = year of update t = type of update (A=add, M=modify) uuuu = first four characters of user id Stamp overlay occurs only if a valid column and format is specified. PPDSPFMT is initialized to "0", thus inhibiting stamp overlay. Page 208 PPDSUBCT GOSUB command nesting level count. Used for RETURN command indexing to the appropriate return location from the GOSUB performed subroutine. GOSUB increments the value, RETURN decrements the value. (type=num, length=5, read-only) PPDTRAP text-following trap flag (type=char, length=1, updateable). If PPDTRAP has a value of "1" or "2" (see note about INCLUDE at the end of this table), lines presented to a command such as SUBMITF will be processed as commands if they begin with the right parentheses ")". If PPDTRAP has a value of "0", lines beginning with right parentheses will be treated as normal text. PPDTRAP is initialized to "0". PPDTRACE procedure trace flag (type=char, length=1, updateable). If PPDTRACE has a value of "1" every LABEL command will cause a diagnostic message to be written to $LOG. The message will contain the procedure library and member being executed as well as the name of the label. BIM-EDIT System Reference Manual PPD Variables PPDUTLOG batch utility input log flag (type=char, length=1, updateable). Controls input logging of a Batch Utility execution. "Primary output destination" is the printer if utility is getting its input from batch and is the console if utility is getting its input from the console. PPDUTLOG can assume one of the following values: 0 Input data and success messages not logged. Error messages logged to primary output destination. 1 Input data, success messages, and error messages logged to primary output destination. The following are for special situations: 2 Input data and success messages not logged. Error messages logged to primary output destination and console. 3 Input data, success messages, and error messages logged to primary output destination and console. Note that when PPDCOND is not "0", an error message will be output like a success message. PPDUTLOG is initialized to "1", so input is normally printed. To avoid printing input, set PPDUTLOG to "0" immediately after the LOGON command. PPDVBBAS starting column for variable replacement (type=num, length=3, updateable). See description of PPDVBL. PPDVBBAS is initialized to 1. PPDVBL variable replacement flag (type=char, length=1, updateable). If PPDVBL has a value of "1" or "2" (see note about INCLUDE at the end of this table), &VARNAME will be replaced by the value of variable VARNAME (if VARNAME is a valid variable name and &VARNAME occurs between the PPDVBBAS column and the PPDVBLMT column) when it is encountered in a procedure. If PPDVBL has a value of "0", variable replacement will not occur. PPDVBL is initialized to "0". PPDVBLMT ending column for variable replacement (type=num, length=3, updateable). See description of PPDVBL. PPDVBLMT is initialized to 253. Special Processing for INCLUDE Commands In addition to procedure call nesting, INCLUDE command nesting also may take place within a procedure. INCLUDE nesting and procedure invocation nesting are completely independent of each other. To provide some control over INCLUDE commands, note that PPDADJ, PPDHEX, PPDINCL, PPDSHIFT, PPDTRAP, and PPDVBL have special properties in conjunction with the INCLUDE command: 1. When an INCLUDE command is processed, the values of these predefined variables are saved for later restoration when the included text has been completely processed. Thus, if the included text sets any of these variables, the new value has no effect outside the scope of the included text. Chapter 4. Predefined Variables Page 209 PPD Variables 2. If one of these predefined variables has a value of "2" when the INCLUDE command is encountered, a value of "0" is assigned to the variable before starting to process the included text. (After the included text is processed, the original value of "2" is restored). For all values other than "2", variables are not updated. For example, this feature allows you to include the text of a member, but not process INCLUDEs found within the included text. By assigning a value of "2" to PPDINCL, the original INCLUDE is processed, but INCLUDEs found within the included text will simply be treated as text. Input Modifications made by Text-Following Commands The "text-following" commands AUDITF, CONSOLEF, DISPLAYF, INSERTF, LOGF, MAPF, OUTPUTF, PRINTF, PUNCHF, REPROF, STACKF, and SUBMITF modify the lines that they process based on special character strings and the value of some PPD predefined variables. The effects of each PPD variable are described above. Below is a reference table of all the modifications made, organized by the type of line it affects: 1. Lines beginning with a not symbol (¬). If the predefined variable PPDSHIFT has a value of "1" or "2", lines with a not symbol (¬) in column 1 will be shifted left one position, thus deleting the not symbol. This feature (and the "two period" feature described next) are useful for inputting lines in the batch utility which begin with sequences not allowed by JCL (such as "/*"). They may also be used to input a line starting with the end-of-text sequence "++/*". 2. Lines beginning with two periods (..). If the predefined variable PPDSHIFT has a value of "1" or "2", lines with two periods (..) in columns 1 through 2 will be shifted left two positions, thus deleting the two periods. 3. Lines beginning with right parentheses ")". If the predefined variable PPDTRAP has a value of "1" or "2", lines with right parentheses ()) in column 1 will be treated as BIM-EDIT commands. 4. Lines beginning with the four characters ++(). If input is from an "80 column source" (SYSIPT, TAPE, or the operating system console), lines with the four characters "++()" in columns 1 through 4 will be treated as though they were generated by the AUDITRP, PUNCHF, or REPROF command. That is, four successive ++() input lines will be combined to produce a single result line of up to 253 characters. The lines are assumed to contain the following: Input Input Input Input line line line line 1: 2: 3: 4: ++()Columns ++()Columns ++()Columns ++()Columns 1-64 65-128 129-192 193-253 of of of of Result Result Result Result line line line line This feature is provided to transfer long BIM-EDIT member lines using 80 column media. This translation is not under control of a PPD variable. 5. Page 210 Lines beginning with "/*", "/+", "/&", "* $$", or "++/*". If the predefined variable PPDADJ has a value of "1" or "2", lines with the two characters "/*", the two characters "/+", the two characters "/&", the four characters "* $$", or the four characters "++/*" starting in column 1 will be shifted one character to the right and prefixed with a not symbol (¬). BIM-EDIT System Reference Manual PPD Variables 6. Lines beginning with /INCL. If the predefined variable PPDINCL has a value of "1" or "2", lines which begin with /INCL will be interpreted as INCLUDE commands. 7. Lines containing the PPDHEXC character (originally "@") followed by two hexadecimal digits. If the predefined variable PPDHEX has a value of "1" or "2", the three characters will be replaced by the single character whose hexadecimal representation is given by the two digits. 8. All lines. If the predefined variable PPDSPCOL has a value which is a valid column number and the predefined variable PPDSPFMT has a value which is a valid stamp format, all lines will be overlayed with "member stamp" information in column PPDSPFMT using format PPDSPFMT. 9. All lines. If the predefined variables PPDOVBAS and PPDOVLMT have values which are valid column numbers, all lines will be overlayed with the value of PPDOVSTR in columns PPDOVBAS through PPDOVLMT. Chapter 4. Predefined Variables Page 211 PWR Variables (VSE Only) PWR Variables (VSE Only) PWR variables access the attributes of a POWER job entry. "Last referenced POWER job entry" is another way of saying "the POWER job entry currently indicated by the PWR variables". Commands which access POWER job entries, such as LISTP, use and set the PWR variables. Each BIM-EDIT task has one set of PWR variables, which are initialized at logon and held until logoff. The values of the PWR variables remain constant until changed by a command that accesses a POWER job entry. This is the case even if events outside of BIM-EDIT alter or delete the POWER job entry. To assure current information, a READP command can be used to refresh the values of the PWR variables before use. The following table describes the PWR variables. PWR (POWER Job Entry Record) Variables Page 212 PWRCLASS class (type=char, length=1, read-only). If PWRQUEUE is R, from CLASS operand of * $$ JOB statement. If PWRQUEUE is L, from CLASS operand of * $$ LST statement. If PWRQUEUE is P, from CLASS operand of * $$ PUN statement. If PWRQUEUE is X, from the CLASS operand as indicated by PWRTYPE. Can be changed by system operator and with the ALTERP command. PWRCOPY number of copies (type=num, length=3, read-only). From COPY operand of * $$ LST or * $$ PUN statement. Can be changed by the system operator and with the ALTERP command. PWRCTLD number of records, data and control (type=num, length=6, readonly). PWRDATE date created (type=char, length=8, read-only). PWRDATE is formatted as either "mm/dd/yy" or "dd/mm/yy" depending upon your site's operating system options, where "mm" is the month (0112), "dd" is the day (01-31), and "yy" is the year (01-99). PWRDISP disposition code (type=char, length=1, read-only). From the DISP operand of the * $$ JOB, LST, or PUN statement. Can be changed by the system operator and with the ALTERP command. PWRDSNOD destination node (type=char, length=8, read-only). From the XDEST, LDEST, or PDEST operands of the * $$ JOB statement or the DEST operand of the * $$ LST or PUN statement. Can be changed by the system operator and with the ALTERP command. PWRDSUSR destination user (type=char, length=8, read-only). From the XDEST, LDEST, or PDEST operands of the * $$ JOB statement or the DEST operand of the * $$ LST or PUN statement. Can be changed by the system operator and with the ALTERP command. BIM-EDIT System Reference Manual PWR Variables (VSE Only) PWRFORM forms identifier (type=char, length=4, read-only). From the FNO operand of the * $$ LST or PUN statement. Can be changed by the system operator and with the ALTERP command. PWRJNAME job name (type=char, length=8, read-only). From JNM operand of * $$ JOB statement. PWRJNUM job number (type=num, length=5, read-only). Unique number assigned by POWER. PWRJSEP number of job separator pages (type=num , length=1, read-only). From the JSEP operand of the * $$ LST or PUN statement. PWRORNOD originating node (type=char, length=8, read-only). Supplied by POWER, site specific. PWRORUSR originating user (type=char, length=8, read-only). Supplied by POWER, site specific. PWRPAGE number of pages (type=num, length=5, read-only). PWRPRTY priority (type=char, length=1, read-only). From PRI operand of * $$ JOB, LST, or PUN statements. Can be changed by the system operator and with the ALTERP command. PWRQRLC number of records, data only (type=num, length=6, read-only). PWRQUEUE POWER queue (type=char, length=1, read-only). PWRQUEUE assumes one of the following values: L X list queue XMT queue P punch queue R reader queue PWRSEGMT segment number (type=num, length=3, read-only). Assigned by POWER when output is segmented. PWRSEQNU SPRI Sequence Number for this element (type=num , length=5, readonly). Meaningful only when running under SPRI. PWRSYSID system ID (type=char, length=1, read-only). From SYSID operand of * $$ JOB, LST, or PUN statements. Can be changed by the system operator or with the ALTERP command. PWRTYPE POWER job entry type (type=char, length=1 read-only). PWRTYPE assumes one of the following values: L list type P punch type R reader type PWRTYPE differs from PWRQUEUE only for XMT queue entries. PWRUSER Chapter 4. Predefined Variables user info (type=char, length=16, read-only). From USER operand of * $$ JOB, LST, or PUN statements. Can be changed by the system operator and with the ALTERP command. Page 213 SIB Variables SIB Variables The SIB variables control a BIM-EDIT task. Each active task (online user, workstation user, batch utility execution, or application interface execution) has its own set of SIB variables. SIB values are initialized at logon from a disk copy for the logon user (some variables in the disk copy are accessible to other users as the TXU variables). Updates to SIB variables are saved to the disk copy of SIB, but only for online users and workstation users. Updateable SIB variables can be changed with the SET, SETD, and SETL commands. The following table describes the SIB variables. SIB (System Interface Block) Variables Page 214 SIBATTR Usage is site-defined (type=char, length=8, read-only). Initialized to the value of TXUATTR for the logon user. SIBCMPR Screen transmission compression flag (type=char, length=1, updateable). If SIBCMPR has a value of "0", transmission is not compressed. If SIBCMPR has a value of "1", repeated characters are coded in a compressed format before they are sent to the terminal. If SIBCMPR has a value of "2", in addition only the portions of the screen image which differ from the previous image are sent. Setting SIBCMPR to "2" can eliminate 50% of the screen traffic but each online task with SIBCMPR set to "2" requires 4K extra BIM-EDIT memory. Initialized to the value last set by the logon user. When a user is defined, SIBCMPR is assigned a value of "1". SIBCSCOL column position of cursor when user transmitted current screen (type=num, length=3, read-only). Far left of screen is column 1. BIM-EDIT System Reference Manual SIB Variables SIBCSCTL extended cursor control flag (type=char, length=1, updateable). A value of zero to 6 is valid and has the following meaning: 0 Cursor always returns to command line. 1 Cursor returns to first column of first line added. Otherwise, cursor returns to command line. 2 Cursor returns to first column of first line added, or cursor returns to LCA of first line updated. Otherwise, cursor returns to LCA of previously deleted line. 3 Cursor returns to first column of first line added or, if text area is updated, cursor returns to its input location. Otherwise, cursor returns to command line. 4 Cursor returns to first column of first line added or, if text area is updated, cursor returns to its input location. Otherwise, cursor returns to LCA of previously deleted line. 5 Cursor returns to first column of first line added or, if text area is updated, cursor returns to column 1 of line that cursor was on when ENTER was hit. Otherwise, cursor returns to command line. 6 Cursor returns to first column of first line added or, if text area is updated, cursor returns to column 1 of line that cursor was on when ENTER was hit. Otherwise, cursor returns to LCA of previously deleted line. SIBCSROW row position of cursor when user transmitted current screen (type=num, length=3, read-only). Top of screen is row 1. SIBDATE task start date (type=char, length=10, read-only). SIBDATE is held in the format "mm/dd/yyyy" or the format "dd/mm/yyyy" depending upon the value of MMPDTCTL. SIBDFLCA default LCA location (type=char, length=1, updateable). Used to initialize SSDLCA when a new session is started. Initialized to the value last set by the logon user. SIBDFLCA can have the value "L", indicating the LCA displays on the left side of the screen, or "R", indicating the LCA displays on the right side of the screen. When a user is defined, SIBDFLCA is assigned a value of "L". SIBDIALG task dialog type (type=char, length=1, updateable). Indicates how this task communicates to the BIM-EDIT system. A T = Application Interface = Terminal U = Batch Utility W = Workstation SIBDT1 message data #1 (type=char, length=36, read-only). Used for replacement in error messages. Set by each command. See $SYS.CTRL.MESSAGES for examples of use. SIBDT2 message data #2 (type=char, length=36, read-only). See SIBDT1. Chapter 4. Predefined Variables Page 215 SIB Variables SIBGRPCC current number of groups in use. (type=num, length=1, read-only). SIBGRPCR current active group (type=num, length=1, read-only). SIBGRPMX max groups allowed for this user (type=num, length=1, read-only). SIBGRP0x letter value for each group number (type=char, length=1, readonly). If SIBGRP0x has a value, the user is autherized to use this group. SIBGRP0x occurs 9 times, once for each possible group. SIBGRPSx number of active sessions in each group (type=num, length=2, readonly). SIBGRPSx occurs 9 times, once for each possible group. SIBHEXC command line hex escape character (type=char, length=1, updateable). Command line hex translation is activated when SIBHEXC contains a non-blank value. See Chapter 6, Advanced Techniques, in BIM-EDIT User Reference Manual. See also PPDHEX for hex translation in a procedure. Initialized to the value last set by the logon user. When a user is defined, SIBHEXC is set to blank. SIBHMLB the current home library (type=char, length=16, read-only). Initialized to the value last set by the logon user. Can be changed by the ATTACH command. SIBHMLBD current home VSE sublibrary or MVS PDS (type=char, length=16 for VSE, length=44 for MVS, read-only). Initialized to the value last set by the logon user. Can be changed by the ATTACHD command. SIBLCCAS last search command case (type=char, length=1, read-only). Set to the value of the CASE operand by the search commands EXAMINE, FIND, FINDUP, LOCATE, LOCATEU, NFIND, NFINDUP, QUALIFY, and SCAN. If CASE is not specified when STR is specified, SIBLCCAS is set to null. SIBLCCAS is inherited for the value of the CASE operand by these same search commands when neither STR or CASE is entered. If the inherited value is null, SSDCASE is used by the command. Initialized to the value last set by the logon user. This variable is provided to allow easy re-execution of searches in different ways without having to re-enter the operands. Page 216 SIBLCCOL last search command column (type=num, length=3, read-only). Like SIBLCCAS, but relates to COL operand of search command. SIBLCSTR last search command pattern (type=char, length=72, read-only). Set to the value of the STR operand by the search commands EXAMINE, FIND, FINDUP, LOCATE, LOCATEU, NFIND, NFINDUP, QUALIFY, and SCAN. If STR is not specified, used as value of STR operand by these same search commands. Initialized to the value last set by the logon user. See also SIBLCCAS. SIBLCZON last search command zone (type=char, length=7, read-only). Like SIBLCCAS, but relates to ZONE operand of search command. BIM-EDIT System Reference Manual SIB Variables SIBLEVEL procedure nesting level (type=num, length=5, read-only). Initialized to zero for both online and batch utility BIM-EDIT. SIBLGLMT $LOG limit (type=num, length=6, read-only). Specifies the maximum number of lines that may exist in $LOG at any time. After this point has been reached, for every line added at the end of $LOG, a line from the top of $LOG is deleted. Initialized to the value of TXULGLMT for the logon user. SIBLGSIZ number of lines in $LOG (type=num, length=6, read-only). Increases due to user commands until SIBLGSIZ equals SIBLGLMT. SIBLIB the current library (type=char, length=16, read-only). Initialized to the value last set by the logon user. Can be changed by the ATTACH command. SIBLIBD current VSE sublibrary or MVS PDS (type=char, length=16 for VSE, length=44 for MVS, read-only). Initialized to the value last set by the logon user. Can be changed by the ATTACHD command. SIBLNUM current line number in print output (type=num, length=4, updateable). SIBLNUM is incremented before printing each line. Initialized to zero. SIBLSCDP logical screen depth (type=num, length=2, read-only). If SIBLSCDP has a value of 1, there is one logical screen displayed. If SIBLSCDP has a value of 2, there are two logical screens displayed. Initialized to 1. Can be changed by SPLIT option of SCREEN command. SIBLSPDS last referenced VSE sublibrary member or MVS PDS member (type=char, length=33 for VSE, length=52 for MVS, read-only). The value is split at a fixed position between the sublibrary or PDS name and the member name. On VSE, sublibrary name is in positions 1-16 and memname.type is in positions 17-33. On MVS, PDS name is in positions 1-44 and member name is in positions 45-52. Changes due to commands that reference VSE sublibrary members or MVS PDS members. Used as default by these commands when a member name is not specified. Initialized to the value last set by the logon user. SIBMLLMT $MAIL limit (type=num, length=6, read-only). Specifies the maximum number of lines that may exist in $MAIL at any time. After this point has been reached, for every line added at the end of $MAIL, a line from the top of $MAIL is deleted. Initialized to the value of TXUMLLMT for the logon user. SIBMLQDP number of messages in incoming-mail queue (type=num, length=5, read-only). Changes as a result of receiving and opening mail. SIBMLSIZ number of lines in mail log (type=num, length=6, read-only). Increases as a result of mail commands until SIBMLSIZ equals SIBMLLMT. Chapter 4. Predefined Variables Page 217 SIB Variables SIBMLUSR mail user id (type=char, length=8, read-only). SIBMLUSR is the user for which mail is being processed. SIBMLUSR is equal to SIBUSER unless the user is acting as a proxy for another user Initialized to the value last set by the logon user. Can be changed with the ATTACHX command. SIBMSG return message (type=char, length=80, read-only). When a command returns a non-OK SIBRETCD, it also sets SIBMSG to describe the error. SIBNTFY contains the job completion notification option to be used by the SUBMITF command. (type=char, length=8, updateable). This field is automatically set by the SUBMIT command using the data from its NTFY operand. It is cleared after each job submission. Procedures can set this field prior to each SUBMITF: SIBOUTPT YES Send completion message to the user submitting the job. NO Don't send any completion message (default) xxxxxxxx Send completion message to BIM-EDIT user xxxxxxxx. output destination (type=char, length=1, updateable). The OUTPUTF command directs output to the SIBOUTPT destination as follows: A D I K L N application interface display session insertion into session $STACK $LOG system console P R S T U printer tape submission to POWER or JES insertion into audit punch For batch utility jobs, SIBOUTPT also determines where output from display-type commands such as LIBRARY will be directed. When used for this purpose, SIBOUTPT must be set to one of the following values: D display session N system console P printer When BIM-EDIT is used online, output from display-type commands is always directed to a display session, and SIBOUTPT is initialized to "D". On VSE, for batch utility jobs, SIBOUTPT is initialized to "P" if the first UPSI bit is off, and initialized to "N" if the first UPSI bit is on. On MVS, for batch utility jobs, SIBOUTPT is initialized to "P". Page 218 SIBPAGE current page number in print output (type=num, length=4, updateable). SIBPAGE is incremented before printing each page heading. Initialized to zero. SIBPDPSW temporary password created by PEND command (type=char, length=8, read-only). BIM-EDIT System Reference Manual SIB Variables SIBPSWD permanent password (type=char, length=8, read-only). Will be blank if user executing command does not have ADM command access. Can be changed with PASSWORD command. SIBPPSWD temporary member password used by INCLUDE, PRINT, PUNCH, SUBMIT, PROCESS and SEND (type=char, length=8, updateable). The password can be viewed by users with ADM security access level. This field will be blank if user executing command does not have ADM command access. SIBRCBYT number of bytes received from this terminal since logon (type=num, length=8 read-only). Meaningful only for online tasks. SIBRCTRM number of transmissions received from this terminal since logon (type=num, length=8 read-only). Meaningful only for online tasks. SIBRESP command response (type=char, length=82, read-only). SIBRESP is an alias for the combined value of SIBRETCD and SIBMSG. SIBRESP is useful in a procedure to store the complete command response for subsequent testing or use. SIBRETCD command return code (type=char, length=2, read-only). All commands except IF and IFD set SIBRETCD. Successful commands set SIBRETCD to "OK". Each command description provides a list of any non-OK codes returned. The special value "SV" is returned by a command which is rejected due to syntax errors when PPDCOND has a value of 2. "SV" is not documented on each command. SIBRETCD is provided to allow testing for successful execution within a procedure when PPDCOND is not 0. Since all commands, except IF and IFD set SIBRETCD, it may be necessary to store the value of SIBRETCD to a temporary variable to implement some procedures. SIBSCADP number lines on screen, alternate mode (type=num, length=5, readonly). Determined from the terminal control entry for this terminal. Meaningful only for online tasks. SIBSCAWD number columns on screen, alternate mode (type=num, length=5, read-only). Determined from the terminal control entry for this terminal. Meaningful only for online tasks. SIBSCDDP number lines on screen, default mode (type=num, length=5, readonly). Determined from the terminal control entry for this terminal. Meaningful only for online tasks. SIBSCDWD number columns on screen, default mode (type=num, length=5, read-only). Determined from the terminal control entry for this terminal. Meaningful only for online tasks. Chapter 4. Predefined Variables Page 219 SIB Variables Page 220 SIBSCRBx beginning line numbers of the screens (type=num, length=3, readonly). SIBSCRB0 is line number of the top of the physical screen, SIBSCRB1 is the number of lines preceding the information line of the first logical screen, and SIBSCRB2 is the number of lines preceding the information line of the second logical screen. If not in split screen mode, SIBSCRB2 will be zero. Changes as a result of the use of the SCREEN command. SIBSCRDx line number depths of the screens (type=num, length=3, read-only). SIBSCRD0 is the number of lines in the physical screen, SIBSCRD1 is the number of lines in the first logical screen including the command line, and SIBSCRD2 is the number of lines in the second logical screen including the divider line. If not in split screen mode, SIBSCRD2 will be zero. Changes as a result of the use of the SCREEN command. SIBSCRLx limit line numbers for the screens (type=num, length=3, read-only). SIBSCRL0 is line number of the bottom of the physical screen, SIBSCRL1 is the line number of the bottom of the first logical screen, and SIBSCRL2 is the line number of the bottom of the second logical screen. If not in split screen mode, SIBSCRL2 will be zero. Changes as a result of the use of the SCREEN command. SIBSCRPM primary logical screen number (type=num, length=1, read-only). When in split-screen mode, SIBSCRPM has a value of 1 if the upper logical screen is primary and has a value of 2 if the lower logical screen is primary. When out of split-screen mode, SIBSCRPM has a value of 1. Initialized to 1. SIBSCRSZ initial screen size (type=char, length=1, read-only). If SIBSCRSZ has a value of "D", new sessions and procedures will be created with the default screen size. If SIBSCRSZ has a value of "A", new sessions and procedures will be created with the alternate screen size. Initialized to the value last set by the logon user. Can be changed with the ALT mode of the SCREEN command when at the no-session display. SIBSCRWD current screen width (type=num, length=3, read-only). The width of the screen in columns. Can be changed with the ALT mode of the SCREEN command. SIBSDBYT number of bytes sent to this terminal since logon (type=num, length=8 read-only). Useful to determine the impact of SIBCMPR compression. Meaningful only for online tasks. SIBSDTRM number of transmissions sent to this terminal since logon (type=num, length=8 read-only). Useful to determine the impact of SIBCMPR compression. Meaningful only for online tasks. BIM-EDIT System Reference Manual SIB Variables SIBSECAT attached user/library security level (type=char, length=1, read-only). The value of SIBSECAT ranges from "0" to "6" as follows: 0 1 2 3 NULL level EXEC level LIST level EDIT level 4 5 6 DEF level DEFL level DEFS level Initialized to the value of TXSSEC for SIBLIB and the logon user. See "Library Security" in Chapter 10 of the BIM-EDIT System Reference Manual. SIBSECCM command security level (type=char, length=1, read-only). The value of SIBSECCM ranges from "1" to "4" as follows: 1 2 USER level EXTU level 3 4 OPER level ADM level Initialized to the value of TXUSECCM for the logon user. If a command's use is restricted, it is noted in the command description. SIBSECLB system-wide library security level (type=char, length=1, read-only). The value of SIBSECLB ranges from "0" to "6" as follows: 0 1 2 3 NULL level EXEC level LIST level EDIT level 4 5 6 DEF level DEFL level DEFS level Initialized to the value of TXUSECLB for the logon user. See "Library Security" in Chapter 10 of the BIM-EDIT System Reference Manual. SIBSECPD security level for user and attached VSE sublibrary or MVS PDS (type=char, length=1, read-only). The value of SIBSECPD ranges from "1" to "6" as follows: 1 2 3 EXEC level LIST level EDIT level 4 5 6 DEF level DEFL level DEFS level Initialized to the value of TXSSEC for SIBLIBD and the logon user. See "Library Security" in Chapter 10 of the BIM-EDIT System Reference Manual. SIBSECPW POWER or JES security level (type=char, length=1, read-only). The function of SIBSECPW is determined by your site's BIXPWQA exit routine. Initialized to the value of TXUSECPW for the logon user. See Chapter 11, Customization, in the BIM-EDIT System Reference Manual. SIBSESSD number of active sessions in current group (type=num, length=2, read-only). Changes as a result of creating and terminating sessions. SIBSESSU total number of sessions in use by all groups (type=num, length=2, read-only). Changes as a result of creating and terminating sessions. Chapter 4. Predefined Variables Page 221 SIB Variables SIBSIGNL SNA ATTN flag (type=char, length=1, updateable). Indicates the ATTN key has been pressed (on a terminal under control of SNA). If SIBSIGNL is "1", ATTN has been pressed. If SIBSIGNL is "0", ATTN has not been pressed. SIBSIGNL is set to "0" at the start of a search command and at the start of a first level procedure. This variable is provided to allow writing a long-running procedure so that the user can interrupt it. Page 222 SIBSSDMX max sessions user is allowed (type=num, length=2, read-only). SIBSSNU1 current session number, upper (or only) logical screen (type=num, length=1, read-only). Initialized to the value last set by the logon user. Changes as a result of creating, terminating, and rotating among sessions. SIBSSNU2 current session number, lower logical screen (type=num, length=1, read-only). See SIBSSNU1. SIBSTSIZ number of lines in $STACK (type=num, length=6, read-only). Changes as a result of editing. SIBSZLMT size limit (type=num, length=6, read-only). Specifies the maximum number of lines allowed in an EDIT session or in $STACK. Initialized to the value of TXUSZLMT for the logon user. SIBTABC logical tab character (type=char, length=1, updateable). See BIMEDIT User Reference Manual, Chapter 6, Advanced Techniques for an explanation of "Logical Tabbing". Initialized to the value last set by the logon user. When a user is defined, SIBTABC is set to blank. SIBTEST test indicator (type=char, length=1, updateable). Available for use for the duration of a task to indicate special processing. (For example, to cause procedures to take special actions during testing.) Not changed or used by BIM-EDIT itself. Initialized to hexadecimal 00 at logon. SIBTIME task start time (type=char, length=8, read-only). SIBTIME is held in the format "hh:mm:ss" where "hh" is the hour (00-23), "mm" is the minute (00-59), and "ss" is the second (00-59). SIBTLDLG task VTAM dialog type (type=char, length=1, read-only). If SIBTLGLG has the value "N", the dialog is native VTAM. If SIBTLDLG has the value "L", the dialog is LU 6.2. SIBTLDLG has meaning only if the value of SIBTLLNK is "V". BIM-EDIT System Reference Manual SIB Variables SIBTLINT task interface (type=char, length=1, read-only). SIBTLINT can have the following values, indicating how the task is communicating with BIM-EDIT: A C T Application Interface CICS or BTAM Interface TSO Interface U V Batch Utility Interface VTAM Interface In new procedures, use SIBDIALG and SIBTLMNT instead of SIBTLINT. SIBTLLNK task communications link (type=char, length=1, read-only). If SIBTLLNK has a value of "V", the task is communicating from BIMEDIT through VTAM. If SIBTLLNK has a value of "X", the task is communicating from BIM-EDIT through an XPCC interface. SIBTLMNT task communications monitor (type=char, length=1, read-only). If SIBTLMNT has a value of "C", the communications monitor is CICS or BTAM. If SIBTLMNT has a value of "T", the communications monitor is TSO. The value of SIBTLMNT has meaning only if the value of SIBDIALG is "T" and the value of SIBTLLNK is "X". SIBTLMTR task environment (type=char, length=1, read-only). If SIBTLMTR has a value of "C", the task is running under an online monitor such as CICS. If SIBTLMTR has a value of "N", the task is running in batch. If SIBTLMTR has a value of "A", the task is communicating with BIMEDIT through the application interface. If SIBTLMTR has a value of "L", the task is communicating with BIM-EDIT through an LU 6.2 interface in a workstation dialog. In new procedures, use SIBDIALG, SIBTLLNK and SIBTLDLG instead of SIBTLINT. SIBTRMID terminal ID (type=char, length=8, read-only). If this is a batch utility task, SIBTRMID will have a value of "$BAT". If this is an application interface task, SIBTRMID will have a value of "$APL". SIBUSER user ID (type=char, length=8, read-only). Chapter 4. Predefined Variables Page 223 SSD Variables SSD Variables The SSD variables control a session. A set of SSD variables is initialized when a session is started and is held until the session is ended. Only the set for the current session is visible. The SSD variables for the upper and lower logical screens refer to the upper and lower screens of the session, which only correspond to the logical screens of the display if the same session is displayed in both. If two different sessions are displayed, the SSD variables are those for the session displayed on the primary logical screen. The value of variable SIBSCRPM can be used to form variable names to reference the logical screen that is currently primary. The following table describes the SSD variables. SSD (Session Control Data) Variables Page 224 SSDAUBS1 current line number for audit trail display, upper (or only) logical screen (type=num, length=6, read-only). Initialized to zero for EDIT, LIST or DISP sessions, unpredictable for others. Changes as a result of repositioning in audit display. SSDAUBS2 current line number for audit trail display, lower logical screen (type=num, length=6, read-only). See SSDAUBS1. SSDAUBY number bytes in audit trail (type=num, length=8, read-only). Initialized from TXMAUBY for EDIT and LIST sessions, to zero for DISP sessions. Changes as a result of editing if AUDIT is on. SSDAUCI number 4K blocks in audit trail (type=num, length=5, read-only). Initialized from TXMAUCI for EDIT and LIST sessions, to zero for DISP session. Changes as a result of editing if AUDIT is on. SSDAUDIT audit flag (type=char, length=1, read-only). If SSDAUDIT has a value of "1", auditing is on. If SSDAUDIT has a value of "0", auditing is off. Initialized from TXMAUDIT for EDIT and LIST sessions, "1" for DISP sessions, "0" for all others. Can be changed by ALTERing member and restarting session. SSDAULN number lines in audit trail (type=num, length=6, read-only). Initialized from TXMAULN for EDIT and LIST sessions, to zero for DISP sessions. Changes as a result of editing if AUDIT is on. SSDBASE1 current line number for text display, upper (or only) logical screen (type=num, length=6, read-only). Initialized to zero. Changes as a result of repositioning in the text display. SSDBASE2 current line number for text display, lower logical screen (type=num, length=6, read-only). Initialized to zero. Changes as a result of repositioning in the text display. BIM-EDIT System Reference Manual SSD Variables SSDBEFSP number of display lines before current line (type=num, length=2, read-only). Initialized to zero. Can be changed with the BEF mode of the SCREEN command. SSDCASE case (type=char, length=1, read-only). If SSDCASE has a value of "U", new or modified lines are translated to upper case. If SSDCASE has a value of "M", translation does not occur. Initialized from TXMCASE for EDIT and LIST sessions, to "U" for LISTP and some DISP sessions, "M" for all others. Can be changed with the SESS command. SSDCOL1 most recent search column, upper (or only) logical screen (type=num, length=3, read-only). Initialized to zero. Changes as a result of using the EXAMINE, FIND, FINDUP, LOCATE, LOCATEU, NFIND, and NFINDUP commands. SSDCOL2 most recent search column, lower logical screen (type=num, length=3, read-only). Initialized to zero. Changes as a result of using the EXAMINE, FIND, FINDUP, LOCATE, LOCATEU, NFIND, and NFINDUP commands. SSDCSCOL column position to which cursor is to be positioned (type=num, length=3, updateable). Positioning is relative to the text area of the display. The far left of text area is column 1. SSDCSOPT cursor option. When set to a value of 'P' causes the screen send routine to use the column (SSDCSCOL) and row (SSDCSROW) values to position the cursor when a procedure completes or terminates (type=char, length=1, updateable). SSDCSROW row position to which cursor is to be positioned (type=num, length=3, updateable). Position is relative to the text area of the display. The top row of the text area is row 1. SSDDATAF VSE sublibrary data flag (type=char, length=1, read-only). If SSDDATAF has a value of "0", the VSE member was defined with DATA=NO. If SSDDATAF has a value of "1", the VSE member was defined with DATA=YES. If session type is not EDITD or LISTD value is unpredictable. Not changeable. SSDDISP1 text/audit flag, upper (or only) logical screen (type=char, length=1, read-only). If SSDDISP1 has a value of "T", text is displayed. If SSDDISP1 has a value of "A", the audit trail is displayed. Initialized to "T". Can be changed with AUDIT option of the SCREEN command for EDIT, LIST, and DISP sessions. SSDDISP2 text/audit flag, lower logical screen (type=char, length=1, read-only). If SSDDISP2 has a value of "T", text is displayed. If SSDDISP2 has a value of "A", the audit trail is displayed. Initialized to "T". Can be changed with AUDIT option of the SCREEN command for EDIT, LIST, and DISP sessions. SSDEOD the EOD characters associated with the VSE member currently being edited or listed (type=char, length=2, read-only). Chapter 4. Predefined Variables Page 225 SSD Variables Page 226 SSDFCOL find column (type=num, length=3, read-only). SSDFCOL is the column in which FIND, FINDUP, NFIND, and NFINDUP commands will by default search. Initialized to TXMFCOL for EDIT and LIST sessions, to TXMFCOL from the template member for the member type for EDITD and LISTD sessions, 1 for all others. Can be changed with FCOL operand of the SESS command. SSDHEX hex flag (type=char, length=1, read-only). If SSDHEX has a value of "1", text is displayed in hex mode. If SSDHEX has a value of "0", text is displayed in normal graphic mode. Initialized to "0". Can be changed with HEX option of the SCREEN command. SSDLCA LCA flag (type=char, length=1, read-only). If SSDLCA has a value of "L", the LCA area is on the left-hand side of the screen. If SSDLCA has a value of "R", the LCA area is on the right-hand side of the screen. If SSDLCA has a value of "0", the LCA area is not present. Initialized from SIBDFLCA, unless the command, such as HELP, suppresses LCA. Can be changed with LCA option of the SCREEN command. SSDLIB library name of member being edited/listed (type-char, length=16, read-only). Initialized from TXMLIB for EDIT or LIST sessions, from MEM operand for LIBRARY displays, unpredictable for all others. Not changeable. SSDLIBD library name of VSE sublibrary or MVS PDS member being edited/listed (type=char, length=16 for VSE, length=44 for MVS, read-only). Initialized for EDITD, LISTD, and LIBRARYD sessions, unpredictable for all others. Not changeable. SSDMEM name of member being edited/listed (type=char, length=16, readonly). Initialized from TXMMEM for EDIT or LIST sessions, from MEM operand for LIBRARY displays, unpredictable for all others. Not changeable. SSDMEMD name of VSE sublibrary or MVS PDS member being edited/listed (type=char, length=17 for VSE, length=8 for MVS, read-only). Initialized for EDITD, LISTD, and LIBRARYD sessions, unpredictable for all others. Not changeable. SSDNULL nulls flag (type=char, length=1, read-only). If SSDNULL has a value of "1", trailing blanks are replaced with nulls. If SSDNULL has a value of "0", trailing blanks are not replaced. Initialized from TXMNULLS for EDIT or LIST sessions, from TXMNULLS of the template member of the member type for EDITD or LISTD sessions, "1" for all others. Can be changed with the NULLS operand of the SESS command. SSDOBJ object of session (type=char, length=46, read-only). This field is displayed on the first 46 characters of the information line. Initialized by command that started session. Not changeable. BIM-EDIT System Reference Manual SSD Variables SSDSCRSZ current session screen size (type=char, length=1, read-only). It contains "D", for default screen size, or "A" for alternate screen size. The size of "default" and "alternate" can be obtained from SIBSCADP, SIBSCAWD, SIBSCDDP and SIBSCDWD. SSDSCRSZ is initialized to the value of SIBSCRSZ. Can be changed with the ALT mode of the SCREEN command. SSDSEQBS starting column for RESEQ command (type=num, length=3, readonly). Initialized from TXMSEQBS for EDIT or LIST sessions, from TXMSEQBS for the template member of the member type for EDITD and LISTD sessions, zero for all others. Can be changed with the SEQ operand of the SESS command. SSDSEQLM ending column for RESEQ command (type=num, length=3, readonly). Initialized from TXMSEQLM for EDIT or LIST sessions, from TXMSEQLM for the template member of the member type for EDITD and LISTD sessions, zero for all others. Can be changed with the SEQ operand of the SESS command. SSDSTAMP stamp flag (type=char, length=1, read-only). If SSDSTAMP has a value of "1", stamping is on. If SSDSTAMP has a value of "0", stamping is off. Initialized from TXMSTAMP for EDIT or LIST sessions, zero for all others. Can be changed by ALTERing member and restarting session. SSDSZBY number of bytes in text portion of session (type=num, length=8, readonly). Initialized from TXMSZBY for EDIT or LIST sessions, by command for all others. Changes as a result of editing. SSDSZCI number 4K blocks in text portion of session (type=num, length=5, read-only). Initialized from TXMSZCI for EDIT or LIST sessions, by command for all others. Changes as a result of editing. SSDSZLN number of lines in text portion of session (type=num, length=6, readonly). Initialized from TXMSZLN for EDIT or LIST sessions, by command for all others. Changes as a result of editing. SSDTCLnn tab column positions -- a set of 12 fields where "nn" equals 01 through 12. SSDTCL01 is the first tab column, SSDTCL02 the second, and so on (type=num, length=3, read-only). SSDTDPTH specifies the number of SSDTCLnn fields that have been set. Of those that have been set, they assume a value between 1 and 253. SSDTCLnn values are in ascending order. Initialized from TXMTCLnn for EDIT or LIST sessions, from TXMTCLnn of template member for member type for EDITD or LISTD sessions, null for all others. Can be changed with the TCOL operand of the SESS command. SSDTDPTH number of tab columns specified (type=num, length=2, read-only). SSDTDPTH assumes a value of 0 through 12. Initialized from TXMTDPTH for EDIT or LIST sessions, from TXMTDPTH of the template member for member type for EDITD or LISTD sessions, 0 for all others. Can be changed with the TCOL operand of the SESS command. Chapter 4. Predefined Variables Page 227 SSD Variables SSDTYPE session type (type=char, length=2, read-only). SSDTYPE assumes the following values: DI ED EE LD LG DISP session EDIT session EDITD session LISTD session LIST session of $LOG LI LP ML ST LIST session of member or MAIL session of message LISTP session LIST session of $MAIL LIST session of $STACK Initialized by command which started session. Not changeable. Page 228 SSDTYPEM type of member being edited/listed (type=char, length=8, read-only). Initialized from TXMTYPE for EDIT or LIST sessions, from VSE sublibrary member type or PDS type (last part of name) for EDITD or LISTD sessions, null for all others. Can be changed for EDIT or LIST sessions by ALTERing member and restarting session, not changeable for other types. SSDUPD update flag (type=char, length=1, read-only). If the text of an EDIT session has been updated, SSDUPD has a value of "1", otherwise it has a value of "0". Initialized to "0". Changes as a result of editing. SSDVBSE1 view column start, upper (or only) logical screen (type=num, length=3, read-only). Initialized to 1. Can be changed with the VIEW command. SSDVBSE2 view column start, lower logical screen (type=num, length=3, readonly). Initialized to 1. Can be changed with the VIEW command. SSDZONBS starting column for zone (type=num, length=3, read-only). SSDZONBS to SSDZONLM is the column range in which commands like CENTER, LOCATE and CHANGE operate by default. Initialized to TXMZONBS for EDIT or LIST sessions, to TXMZONBS from template member for member type for EDITD or LISTD sessions, 1 for all others. Can be changed with the ZONE operand of the SESS command. SSDZONLM ending column for zone (type=num, length=3, read-only). SSDZONBS to SSDZONLM is the column range in which commands like CENTER, LOCATE and CHANGE operate by default. Initialized to TXMZONLM for EDIT and LIST sessions, to TXMZONLM from template member for member type for EDITD or LISTD sessions, 124 for all others. Can be changed with the ZONE operand of the SESS command. BIM-EDIT System Reference Manual TXL Variables TXL Variables TXL variables are the attributes of a BIM-EDIT library. Commands which access libraries, such as ATTACH or READL, set the TXL variables. Each BIM-EDIT task has one set of TXL variables, which are initialized at logon and held until logoff. The values of the TXL variables remain constant until changed by a command that accesses a library specifically. The following table describes the TXL variables. TXL (Library Record) Variables TXLDTCRE date library created (type=char, length=10, read-only). TXLDTCRE is held either in the format "mm/dd/yyyy" or the format "dd/mm/yyyy" depending upon the value of MMPDTCTL. Set by DEFINEL command. TXLLIB library name (type=char, length=16, updateable). TXLTITLE title, comment, or brief description of library (type=char, length=40, read-only). Can be changed with the TITLE operand of the DEFINEL, ALTERL, or FALTERL commands. TXLTMCRE time library created (type=char, length=8, read-only). TXLTMCRE is held in the format "hh:mm:ss", where: "hh" is the hour (00-23), "mm" is the minute (00-59), and "ss" is the second (00-59). Set by DEFINEL command. TXLUSER user ID associated with library (type=char, length=8, read-only). Can be changed with the USER operand of the DEFINEL, ALTERL, or FALTERL commands. Chapter 4. Predefined Variables Page 229 TXM Variables TXM Variables TXM variables are the attributes of a BIM-EDIT member. "Last referenced member" is another way of saying "the member currently indicated by the TXM variables". The attributes of the member are used to initialize many of the SSD variable values when an EDIT or LIST session is started. Commands which access members, such as ALTER, BROWSE, EDIT, LIST, or READ, use and set the TXM variables. Each BIM-EDIT task has one set of TXM variables, which are initialized at logon and held until logoff. The values of the TXM variables remain constant until changed by a command that accesses a member by name or a command such as END or ROTATE, which accesses a member implicitly. The following table describes the TXM variables. TXM (Member Record) Variables Page 230 TXMATTR Usage is site-defined (type=char, length=8, read-only). TXMATTR is often used within a COMPILE procedure to specify the nature of the compile, e.g., whether the output is to be link-edited, or cataloged without link editing. Can be changed with ATTR operand of DEFINE, ALTER, or FALTER commands. TXMAUBY number of audit bytes (type=num, length=8, read-only). Set to SSDAUBY when EDIT session is saved. TXMAUCI number of 4096 byte blocks used by audit trail (type=num, length=5, read-only). Set to SSDAUCI when EDIT session is saved. TXMAUDIT session audit flag (type=char, length=1, read-only). Used to initialize SSDAUDIT when EDIT or LIST session is created Can be changed with AUDIT operand of DEFINE, ALTER, or FALTER commands. TXMAULN number of audit lines (type=num, length=6, read-only). Set to SSDAULN when EDIT session is saved. TXMCASE session case flag (type=char, length=1, read-only). Used to initialize SSDCASE when EDIT or LIST session is created. Can be changed with CASE operand of DEFINE, ALTER, or FALTER commands. TXMCHECK checkout status (type=char, length=1, read-only). TXMCHECK has a value of "1" if the member is under checkout control as either a real or potential master. It has a value of "2" if it is the slave member in such a relationship. It has a value of "0", it is not under checkout control. Can be changed with CHECK operand of DEFINE, ALTER, or FALTER commands. TXMCKDTE date member checked out (type=char, length=10, read-only). TXMCKDTE is held either in the format "mm/dd/yyyy" or the format "dd/mm/yyyy" depending upon the value of MMPDTCTL. TXMCKDTE will be "00/00/0000" if member is not checked out. Changes due to CHECKOUT, CHECKIN, and CHECKPUR commands. BIM-EDIT System Reference Manual TXM Variables TXMCKLIB library where associated member in a checkout relationship is held (type=char, length=16, read-only). If the current member is the master in the checkout relationship, TXMCKLIB is the slave member library. If the current member is the slave in the checkout relationship, TXMCKLIB is the master member library. TXMCKLIB will be null if member is not checked out. Changes as a result of CHECKOUT, CHECKIN, and CHECKPUR commands. TXMCKTME time member checked out (type=char, length=8, read-only). TXMCKTME is held in the format "hh:mm:ss", where: "hh" is the hour (00-23), "mm" is the minute (00-59), and "ss" is the second (0059). Changes as a result of CHECKOUT, CHECKIN, and CHECKPUR. TXMCKUSR user member is checked out to (type=char, length=8, read-only). TXMCKUSER will be null if member is not checked out. Changes as a result of CHECKOUT, CHECKIN, and CHECKPUR commands. TXMDTCRE date member created (type=char, length=10, read-only). TXMDTCRE is held either in the format "mm/dd/yyyy" or the format "dd/mm/yyyy" depending upon the value of MMPDTCTL. Set by DEFINE command. TXMDTUPD date member last updated (type=char, length=10, read-only). TXMDTUPD is held either in the format "mm/dd/yyyy" or the format "dd/mm/yyyy" depending upon the value of MMPDTCTL. Set when EDIT session is saved. TXMFCOL session find column (type=num, length=3, read-only). Used to initialize SSDFCOL when EDIT or LIST session is created. Can be changed with FCOL operand of DEFINE, ALTER, or FALTER commands. TXMLDEF Usage is site-defined (type=char, length=8, read-only). Typically, TXMLDEF is used in conjunction with a COMPILE procedure. TXMLDEF might be used to construct the name of a member that contains appropriate LIBDEF JCL cards. Can be changed with LIBDEF operand of DEFINE, ALTER, or FALTER commands. TXMLIB library name TXMPATH. TXMMEM member name (type=char, length=16, updateable). See also TXMPATH. TXMNULLS session nulls flag (type=char, length=1, read-only). Used to initialize SSDNULL when EDIT or LIST session is created. Can be changed with NULLS operand of DEFINE, ALTER, or FALTER commands. TXMPATH library and member name (type=char, length=33, read-only). This field returns the values contained in TXMLIB and TXMMEM with the '\' separator between them. See MMPEXTNM. Chapter 4. Predefined Variables (type=char, length=16, updateable). See also Page 231 TXM Variables Page 232 TXMPSWD password (type=char, length=8, read-only). This field contains the password of a password protected member. Password can be viewed by users with ADM security access level. This field will be blank if user executing command does not have ADM command access. TXMSEQBS session sequence number column base (type=num, length=3, readonly). Used to initialize SSDSEQBS when EDIT or LIST session is created. Can be changed with SEQ operand of DEFINE, ALTER, or FALTER commands. TXMSEQLM session sequence number column limit (type=num, length=3, readonly). Used to initialize SSDSEQLM when EDIT or LIST session is created. Can be changed with SEQ operand of DEFINE, ALTER, or FALTER commands. TXMSTAMP session stamp flag (type=char, length=1, read-only). Used to intialize SSDSTAMP when EDIT or LIST session is created. Can be changed with STAMP operand of DEFINE, ALTER, or FALTER commands. TXMSZBY number of text bytes (type=num, length=8, read-only). Set to SSDSZBY when EDIT session is saved. TXMSZCI number of 4096 byte text blocks (type=num, length=5, read-only). TXMSZLN number of text lines (type=num, length=6, read-only). Set to SSDSZLN when EDIT session is saved. TXMTCLnn session tab columns -- a set of 12 fields where "nn" equals 01 through 12 (type=num, length=3, read-only). Used to initialize SSDTCLnn when EDIT or LIST session is created. TXMTDPTH specifies the number of TXMTCLnn fields that have been set. Of those that have been set, they have a value between 1 and 253. TXMTCLnn values are in ascending order. Can be changed with TCOL operand of DEFINE, ALTER, or FALTER commands. TXMTDPTH number of session tab columns specified (type=num, length=2, readonly). Used to initialize SSDTDPTH when an EDIT or LIST session is created. TXMTDPTH has a value of 0 through 12. Can be changed with TCOL operand of DEFINE, ALTER, or FALTER commands. TXMTITLE title, comment, or brief description of member (type=char, length=40, read-only). Can be changed with TITLE operand of DEFINE, ALTER, or FALTER commands. TXMTMCRE time member created (type=char, length=8, read-only). TXMTMCRE is held in the format "hh:mm:ss", where: "hh" is the hour (00-23), "mm" is the minute (00-59), and "ss" is the second (00-59). Set by DEFINE command. TXMTMUPD time member updated (type=char, length=8, read-only). TXMTMUPD is held in the format "hh:mm:ss", where: "hh" is the hour (00-23), "mm" is the minute (00-59), and "ss" is the second (0059). Set when EDIT session is saved. BIM-EDIT System Reference Manual TXM Variables TXMTYPE member type (type=char, length=8, read-only). Usage is site-defined with the exception that a procedure must be of type "PROC". For each valid type, a member exists in the $SIT.MODEL or $SYS.MODEL library which serves as a template during DEFINE. TXMTYPE is often used within a PROCESS procedure to specify the nature of the job control to be used to process the member. Can be changed with TYPE operand of the DEFINE, ALTER, and FALTER commands. See DEFINE command for comments on possible values. TXMUPUSR user ID who last updated member (type=char, length=8, read-only). Set when EDIT session is saved. TXMUSER user ID associated with member (type=char, length=8, read-only). Usage is site-defined; may be used when "weeding" libraries. Can be changed with USER operand of DEFINE, ALTER, or FALTER commands. TXMZONBS session zone starting column (type=num, length=3, read-only). Used to set SSDZONBS when EDIT or LIST session is created. Can be changed with ZONE operand of DEFINE, ALTER, or FALTER commands. TXMZONLM session zone ending column (type=num, length=3, read-only). Used to set SSDZONLM when EDIT or LIST session is created. Can be changed with ZONE operand of DEFINE, ALTER, or FALTER commands. Chapter 4. Predefined Variables Page 233 TXS Variables TXS Variables TXS variables are the contents of a library/user security record. Commands which access library/user security records, such as ALTERS, BROWSES, DEFINES, FALTERS, PURGES, or READS, set the TXS variables. BROWSES uses the value of TXSLIB and TXSUSER. Each BIM-EDIT task has one set of TXS variables, which are initialized when first referenced and held until logoff. The TXS variables remain constant until changed by a command which accesses library/user security records. The following table describes the TXS variables. TXS (Security Record) Variables TXSLIB library name (type=char, length=16, updateable). TXSSEC security level (type=char, length=1, read-only). TXSSEC assumes a value of "0" through "6" as follows: 0 1 2 3 NULL level EXEC level LIST level EDIT level 4 5 6 DEF level DEFL level DEFS level Can be changed with SEC operand of DEFINES, ALTERS, or FALTERS command. TXSUSER Page 234 user ID (type=char, length=8, updateable). BIM-EDIT System Reference Manual TXU Variables TXU Variables TXU variables are the attributes of a BIM-EDIT user. The attributes of the logon user are used to initialize many of the SIB variable values at logon. Commands which access users, such as ALTERU, BROWSEU, DEFINEU, FALTERU, INQUIREU, PURGEU, or READU, set the TXU variables. BROWSEU uses the value of TXUUSER. Each BIM-EDIT task has one set of TXU variables, which are initialized when first referenced and held until logoff. The TXU variables remain constant until changed by a command which accesses users. The following table describes the TXU variables. TXU (User Record) Variables TXUATTR Usage is site-defined (type=char, length=8, read-only). Can be changed with ATTR operand of DEFINEU, ALTERU, or FALTERU commands. TXUGRPMX user max group value (type=num, length=1, read-only). Specifies the maximum number of groups that the user may have. If TXUGRPMX is not specified, users max groups will default to MMPMXGRP. TXULGCNT LOGON expiry count (type=char, length=1, read-only). Specifies the number of consecutive invalid LOGON attempts a user has made trying to logon to BIM-EDIT. A value of "D" indicates that the user was disabled with the DISABLE command. TXULGLMT $LOG limit (type=num, length=6, read-only). Specifies the maximum number of lines that may exist in $LOG at any time. After this point has been reached, for every line added at the end of $LOG, a line from the top of $LOG is deleted. Can be changed with LOGL operand of DEFINEU, ALTERU, or FALTERU commands. TXUMLAUT specifies the setting for the 'Auto Open Mail' feature. '0' off '1' all mail is to be auto opened '2' only auto open mail with NTFY=YES or NTFY=PURGE (type=char, length=1, read-only) TXUMLLMT $MAIL limit (type=num, length=6, read-only). Specifies the maximum number of lines that may exist in $MAIL at any time. After this point has been reached, for every line added at the end of $MAIL, a line from the top of $MAIL is deleted. Can be changed with MAILL operand of DEFINEU, ALTERU, or FALTERU commands. TXUNAME user name (type=char, length=25, read-only). Can be changed with NAME operand of DEFINEU, ALTERU, or FALTERU commands. Chapter 4. Predefined Variables Page 235 TXU Variables TXUNTFY default submit notify OPT (at JOB completion) (type=char, length=8, read-only). 'YES' OR 'Y' notify this user 'NO' OR 'N' no notification XXXXXXXX notify the specified userid TXUPSWD user password (type=char, length=8, read-only). Will be blank if user executing command does not have ADM command access. Can be changed with PSWD operand of DEFINEU, ALTERU, or FALTERU commands. Can also be changed by user with PASSWORD command. TXUSECCM command access level (type=char, length=1, read-only). The value of TXUSECCM ranges from "1" to "4" as follows: 1 2 USER level EXTU level 3 4 OPER level ADM level Can be changed with CMDSEC operand of DEFINEU, ALTERU, or FALTERU commands. TXUSECLB system-wide library access level (type=char, length=1, read-only). The value of TXUSECLB ranges from "0" to "6" as follows: 0 1 2 3 NULL level EXEC level LIST level EDIT level 4 5 6 DEF level DEFL level DEFS level Can be changed with LIBSEC operand of DEFINEU, ALTERU, or FALTERU commands. Page 236 TXUSECPW POWER or JES access level (type=char, length=1, read-only). The function of TXUSECPW is determined by the BIXPWQA exit routine. Can be changed with PWRSEC operand of the DEFINEU, ALTERU, or FALTERU commands. TXUSSDMX user max session value (type=num, length=2, read-only). Specifies the maximum number of sessions that the user may have. If TXUSSDMX is not specified, the user's max sessions will default to MMPMXSES. TXUSZLMT size limit (type=num, length=6, read-only). Specifies the maximum number of lines allowed in an EDIT session or in $STACK. BIMEDIT will reject an operation which would increase size beyond TXUSZLMT. Can be changed with SIZEL operand of the DEFINEU, ALTERU, or FALTERU commands. TXUTRMID terminal ID if user currently logged on (type=char, length=8, readonly). Null if user not currently logged on. TXUUSAGE job accounting usage (type=num, length=7, read-only). This is the number of screen transmissions by this user since DEFINEU or the last ALTERU USAGE=CLEAR. BIM-EDIT System Reference Manual TXU Variables TXUUSER Chapter 4. Predefined Variables user ID (type=char, length=8, updateable). Page 237 XTR Variables XTR Variables When an XTR variable is referenced, BIM-EDIT extracts its value by various processing activities. The following table describes the XTR variables. XTR (Extract) Variables XTREUSER ID of the user editing the member described by the TXM control block (type=char, length=8, read-only). If the member is not being edited, XTREUSER is null. XTRLUSER ID of the first user found who is listing the member described by the TXM control block (type=char, length=8, read-only). If the member is not being listed, XTRLUSER is null. XTRSLINE current session line (type=char, length=253, read-only). XTRSTAMP current session line stamp (type=char, length=17, read-only). The format is "t,mm/dd/yyyy,uuuu" or "t,dd/mm/yyyy,uuuu", depending on the value of MMPDTCTL, where: t yyyy mm dd uuuu Page 238 type of update (A=add, M=modify) year update made month update made day update made first four characters of user who made update BIM-EDIT System Reference Manual Chapter 5. Batch Utility BIM-EDIT can be used in batch as well as online. The batch utility is useful for: • long running or off-hours activities • printed output of commands • commands which generate punched output • commands which use tape drives BIM-EDIT batch utility and BIM-EDIT online run concurrently. Using BIM-EDIT in batch does not preclude continued online operations. A version of the batch utility is provided which communicates over an SNA LU 6.2 link to allow a batch process to take place on a different virtual or physical machine than the BIM-EDIT online. On VSE, BIM-EDIT batch utility obtains initial input either from SYSIPT (normally, cards following the JCL EXEC card) or from interactive input through the CPU console. If the first UPSI bit is on, the console is used for input and primary output. If off, SYSIPT is used for input and SYSLST is used for primary output. On MVS, BIM-EDIT batch utility obtains initial input from SYSIN. Virtually all of the commands available under online BIM-EDIT are available while running in the batch utility. Procedure specific commands such as GOTO, IF, and the text-following commands can be used in batch utility. Commands that pass control 'backwards' in a procedure such as GOSUB, LOOP and RETURN cannot be used. For more information on the use of these commands, see Chapter 2, Writing Procedures, and Chapter 3, Advanced User Commands, in this manual. Once the batch utility is active, commands can be entered that cause subsequent input to come from another source. Refer to documentation on the INCLUDE and EXECUTE commands. A single user can simultaneously use BIM-EDIT online and in batch. A user can even log on multiple times in batch. Changes made by the batch run will affect the online user's member storage as they are performed, but the batch run cannot affect the contents of the online user's $LOG or the online user's default user attributes. BIM-EDIT batch utility can SUBMIT and MAIL members. These features have been used to create job scheduling systems and batch job completion "notify" mechanisms. To prevent displaying your everyday password in the processing queues where it can be viewed by others, the PEND command is provided to create a temporary (one-use) password. A specialized SUBMIT can be written to use PEND to create a temporary password and then replace the password into the LOGON command. Chapter 5. Batch Utility Page 239 Batch Utility JCL Batch Utility JCL BIM-EDIT batch utility job streams take the following form: VSE Job Control // JOB BIMUTIL <TLBLs and ASSGNs> ..... // UPSI 1 // EXEC BIMUTIL LOGON <user>,<pswd> <BIM-EDIT commands> ..... /* /& (if needed) (only if input is from console) MVS Job Control //BIMUTIL JOB .... //BIMUTIL EXEC PGM=BIMUTIL //STEPLIB DD DSN=BIMEDIT.LOADLIB,DISP=SHR <DDs> (if needed) ..... //SYSPRINT DD SYSOUT=A //SYSIN DD * LOGON <user>,<pswd> <BIM-EDIT commands> ..... /* Batch utility commands are read, one per line, in the order they are to be performed. The first command must be LOGON, specifying the user and password. Input is terminated with the two characters (/*) in columns 1-2. This applies to both console and SYSIPT input. The batch utility does not need any definition of the BIM-EDIT file. This is because the batch utility performs all its access by communicating with BIM-EDIT which is running in another partition or region. On VSE, the batch utility requires a partition size of at least 96K. BIM-EDIT System Name If you have more than one BIM-EDIT system, you must run the batch utility specifying the system name of the BIM-EDIT you want to use. On VSE, to use a test version of BIM-EDIT which runs under system name BIMEDIT2 the JCL should be modified to: // EXEC BIMUTIL,PARM='SYSTEM=BIMEDIT2' On MVS, to use a test version of BIM-EDIT which runs under system name BIMEDIT2 the JCL should be modified to: //BIMUTIL Page 240 EXEC PGM=BIMUTIL,PARM='SYSTEM=BIMEDIT2' BIM-EDIT System Reference Manual Batch Utility for LU 6.2 Batch Utility for LU 6.2 To run BIM-EDIT batch utility using an SNA LU 6.2 link, modify the JCL to the following: VSE Job Control for LU 6.2 // JOB BIMUTIL <TLBLs and ASSGNs> (if needed) ..... // UPSI 1 (only if input is from console) // EXEC BIMUTLU,PARM='SYSTEM=BIMEDIT,UTAPPL=BIMAPPL,LOGMOD=EDITLU62' LOGON <user>,<pswd> <BIM-EDIT commands> ..... /* /& MVS Job Control for LU 6.2 //BIMUTIL JOB .... //BIMUTIL EXEC PGM=BIMUTLU, // PARM='SYSTEM=BIMEDIT,UTAPPL=BIMAPPL,LOGMOD=EDITLU62' //STEPLIB DD DSN=BIMEDIT.LOADLIB,DISP=SHR <DDs> (if needed) ..... //SYSPRINT DD SYSOUT=A //SYSIN DD * LOGON <user>,<pswd> <BIM-EDIT commands> ..... /* The PARM= value for the LU 6.2 batch utility provide for the values: SYSTEM= Name of the BIM-EDIT System (default "BIMEDIT "). See "Starting BIM-EDIT" in Chapter 10, Operations and Administration, for a description of the BIM-EDIT System Name. UTAPPL= Name of the LU 6.2 Logical Unit for the batch utility (default "BIMUTIL"). Your site's VTAM definitions must have a corresponding APPL entry. LOGMOD= Name of the LU 6.2 LOGMODE entry (default "EDITLU62"). Your site's VTAM definitions must have a corresponding LOGMODE entry. The only special limitation of the LU 6.2 batch utility is that the commands BACKUPG, BACKUPP, BACKUPS, RESTORE, and RESTOREL are not functional due their use of large internal communication blocks. These commands normally move so much data that their use across network communications would not be recommended in any event. Chapter 5. Batch Utility Page 241 Using ++() to Batch Process Lines Longer than 80 Characters Using ++() to Batch Process Lines Longer than 80 Characters In order to process lines which are longer than 80 characters, BIM-EDIT provides a multi-line representation consisting of four short lines for each long line. Each of the four short lines begins with the four characters "++()". Long line text is allocated to the short lines according to the following layout: Short line 1: Short line 2: Short line 3: Short line 4: ++()Columns 1-64 of Long line ++()Columns 65-128 of Long line ++()Columns 129-192 of Long line ++()Columns 193-253 of Long line This representation is produced for output by the PUNCH, PUNCHF, REPRO, and REPROF commands. It is recognized on input by any of the text-following commands if they are reading from an 80 or 81 column source (that is, SYSIN or TAPE). Printing from Batch Utility A number of features are provided to print from batch utility. These are described in more detail in Chapter 3, Advanced User Commands, and Chapter 4, Predefined Variables but brought together here as a comprehensive example. The EJECT command skips to the top of a new page. BIM-EDIT will automatically skip to the top of a new page if the number of lines given by predefined variable PPDPGSIZ are printed without an EJECT. The value of PPDPGSIZ can be changed with the SET command. EJECT will often be coded in the scope of a PRINTF command using the trap character ')'. The HEADF command uses the lines which follow it as the page heading for all subsequent pages. The initial heading when batch utility is started consists of a scaleline. This can be suppressed by using HEADF to store a no-line page heading. You can enter page headings which are wider than 80 characters by using the ++() convention described in the previous section. Sometimes, HEADF must be coded carefully to avoid ill-timed replacement of values for variables referenced in the heading. For example, if you refer to the variable SIBPAGE for the page number in a heading but have PPDVBL set to 1 when the HEADF is invoked, the current page number will be replaced into the heading as HEADF stores it. The result will be that all pages printed will have the same number. To avoid this, you should execute the HEADF with PPDVBL set to "0" and then set it to "1" while printing. (Similar problems can occur with the use of trap commands in a heading.) The PRINTF command prints the lines which follow it. Often, these lines will contain an INCLUDE command for a member. The INCLUDE command will only be recognized if variable PPDINCL has a value of 1. Predefined variable PPDUTLOG determines whether input in a batch utility run is logged to the printer. It is initially set to 1 which causes logging. For most printing activities, this is not desirable and will cause every line to be printed twice (once as input and once as output). Predefined variable SIBOUTPT determines the destination of OUTPUT from the OUTPUTF command and from display commands such as LIBRARY. When batch Page 242 BIM-EDIT System Reference Manual Printing from Batch Utility utility is started, SIBOUTPT will be set to "P" if output is to go to the printer and "C" if output is to go to the console. If you need to obtain the output of display commands in a session for further manipulation (for example, if you want to sort the results of a LIBRARY display before printing it), you should set SIBOUTPT to "D" to obtain the results in a DISP session. Predefined variable SIBPAGE is the current page number. It is set to zero when batch utility is started and incremented before each page heading is printed. It can be updated with the SET command if you need to start numbering at a particular page. It can be tested with the IF command to cause special processing to take place on certain pages and its value can be replaced into heading text. The following is an example of batch utility input to print the text of a member with a specialized heading: LOGON $SYS,$SYS SET PPDUTLOG,0 SET PPDINCL,1 HEADF ++()&SIBDATE &SIBTIME ++() PAGE &SIBPAGE ++() ++() ++/* SET PPDVBL,2 PRINTF /INCLUDE &TXMLIB..&TXMMEM ++/* /* LISTING OF &TXMLIB..&TXMMEM ;SO HEADINGS WILL BE REPLACED (Depending on the implementation of your SUBMIT command, this example may not work as described because of variables being replaced or the INCLUDE being expanded during submission rather than during batch utility execution. Check with your System Administrator regarding how to obtain a SUBMIT with PPDVBL and PPDINCL set to "0".) Chapter 5. Batch Utility Page 243 Chapter 6. Application Interface BIM-EDIT can be called from a user program written in COBOL, PL/I (using ASSEM interface), Assembler, or any other language which supports "standard" System 370 calling conventions. This feature is generally used to write programs that process data that reside in BIM-EDIT. (For example, to process members containing long lines or information from BIM-EDIT library displays.) This chapter contains the following sections: Page 244 • Application Interface Modules • Using the Application Interface • Commands for the Application Interface • Application Interface Program Example BIM-EDIT System Reference Manual Application Interface Modules Application Interface Modules From a user program perspective, the application interface is composed of a set of modules that allow the user program to send text lines to and receive text lines from BIM-EDIT. The text lines are generally command lines from the user program and member text or responses from BIM-EDIT. One set of modules is available for samemachine access to BIM-EDIT from batch and from CICS. A different set is available for access over an SNA LU 6.2 link (generally for access from a different physical or virtual machine.) A user program normally uses modules in only one set. Prior to release 5.1 of BIM-EDIT, each function of the application interface, represented by a CALL statement to a particular entry point name, was included in a separate module that was linked into the user program. This presented release dependency problems with new releases of BIM-EDIT. Starting with release 5.1 of BIM-EDIT, all of the entry point names have been combined into a single module that is linked into the application. This linked module is simply a stub to the actual application interface that is a separate module. Starting with release 5.2 of BIM-EDIT, the interface module 'BIUAPMD' must be SVA resident. Refer to the section "First Time Installation on VSE" in Chapter 9 for more information. Same Machine BIUAPMD LU 6.2 Link BIULUMD Module BIUAPOP BIULUOP Interface stub linked into application program BIUAPMD must be an SVA resident module. BIULUMD is an external module loaded at execution Entry Point Function Names BIUAPOP BIULUOP Opens the application interface BIUAPCL BIULUCL Closes the application interface BIUAPRC BIULURC Receives message from BIM-EDIT BIUAPSD BIULUSD Sends message to BIM-EDIT The above functions are each passed four parameters: 1. LINE (input and output): 256 byte data area to contain text sent to or received from the module. (Even though the area must be 256 bytes, text is at most 253 bytes.) For both BIUAPOP and BIULUOP, LINE may contain an 8-byte value: Bytes 1- 8: Name of the BIM-EDIT System (default "BIMEDIT ") See "Starting BIM-EDIT" in Chapter 10, Operations and Administration, for a description of the BIM-EDIT System Name. For BIULUOP, LINE may contain up to three more 8-byte values: Bytes 9-16: Chapter 6. Application Interface Name of the LU 6.2 Logical Unit for the program running the application interface (default "BIMAPPL ") Your site's VTAM definitions must have a corresponding APPL entry. Page 245 Using the Application Interface Bytes 17-24: Name of the LU 6.2 LOGMODE entry (default "EDITLU62"). Your site's VTAM definitions must have a corresponding LOGMODE entry. Bytes 25-32: The LU 6.2 APPLNAME value (default "BIMEDIT ") If a value begins with a space or is beyond LINEL, the default will be used. The value of LINEL should correspond to the number of bytes specified. 2. LINEL (input and output): Halfword current text length field. 3. STATUS (input and output): 2 byte status field. After BIUAPSD or BIULUSD, STATUS will have the command return code value. After BIUAPOP or BIULUOP, STATUS will be "OK", indicating successful "CL", indicating BIM-EDIT could not be found "OP", indicating the interface could not be opened 4. WORKAREA (work area): a 1,024 byte work area to make the routines reentrant. This parameter must provide unique data areas for each simultaneous user. Using the Application Interface The application interface modules are cataloged during BIM-EDIT installation. The modules combined require less than 16K of memory. The modules contain a series of entry points that represent each function contained in the application interface. The functions simply send messages to and receive messages from BIM-EDIT, running in another partition or region (or, in the case of LU 6.2, on a different machine.) The processing and all file I/O is performed by BIM-EDIT, which must be running and accessible for the functions to work. The functions perform operating system or CICS "waits", depending on the environment in which they are used. To use the application interface: 1. The user program calls function BIUAPOP or BIULUOP to open the application interface. See notes above regarding the values in LINE for BIULUOP. 2. The user program then passes a command to BIM-EDIT by calling the function BIUAPSD or BIULUSD. The first command sent to BIM-EDIT must be a LOGON command. 3. The user program then calls BIUAPRC or BIULURC, which receives the response from BIM-EDIT. 4. The send-command-receive-response cycle (2 and 3) is repeated as the user program requires. 5. When complete, the user program calls BIUAPCL or BIULUCL to close the application interface. This "send-command-receive-response" cycle is the norm. However, there are exceptions, as described in the next section. Page 246 BIM-EDIT System Reference Manual Commands for the Application Interface Commands for the Application Interface Almost all commands that can be entered through the command line under online BIMEDIT can be invoked by a program using the application interface. Many procedure commands can also be used. In addition, five commands are of special interest to a user program. INSERTF The user program sends the INSERTF command to BIM-EDIT. BIMEDIT sends a response. The user program then sends as many lines as it wants inserted. When the user program is done sending lines, it sends a final null message with STATUS=EF. SEND sends to the user program all the lines of a member, the stack area, or the current session. An option is provided to expand INCLUDEs. First, SEND will send a null message whose STATUS indicates whether the command was accepted. If STATUS=OK, SEND will then send all of the lines, one at a time. After all lines have been sent, SEND will send a null message with STATUS=EF indicating that there are no more lines. SENDF sends a group of lines to the user program. An end-of-text line (++/*) terminates the group. SENDF can be used only from within a procedure (SEND is a procedure which sends lines to the user program by invoking SENDF). SENDI sends the SENDI operand back to the user program. If the predefined variable PPDVBL has a value of "1" or "2", variables within the SENDI operand are replaced. SENDI provides the user program access to values stored in variables. SENDN sends a specified line in the current session to the user program. SENDN provides a more flexible but less automatic (and less CPU efficient) way of processing lines within a member than that provided by SEND. Note that SENDN accesses the current session; to use SENDN to send lines from a member, you first need to open a session with its data (with a LIST command, for example). For more detail on these commands, see Chapter 3, Advanced User Commands. Chapter 6. Application Interface Page 247 Returning Data from BIM-EDIT Commands Returning Data from BIM-EDIT Commands The following table describes how each command in BIM-EDIT generates data when invoked from the Application Interace, or the batch BIMUTIL program. There are three methods used by various commands: SS The command starts a session. The batch application must use one of the SEND commands to retrieve the data from the session. RL The commands returns data lines directly to the batch application. After sending the command and receiving the status of the command, the batch application needs to enter a 'receive loop' to get the data from the command. RI The command returns a single line of data in response to the command. There are two columns for each command: Page 248 UT Describes the action when the command is executed via BIMUTIL. AP Describes the action when the command is executed via a Batch Application. BIM-EDIT System Reference Manual Returning Data from BIM-EDIT Commands Command CORE DA DISPLAY DISPLAYC DISPLAYD DISPLAYF DISPLAYI DISPLAYS EDIT EDITD HELP LIBRARY LIBRARYD LIBRARYG LIBRARYI LIBRARYL LIBRARYN LIBRARYP LIBRARYQ LIBRARYR LIBRARYS LIBRARYT LIBRARYU LIBRARYX LIST LISTD LISTI LISTP MESSAGE OPEN PRINTG QUALIFY SCAN SEND SENDF SENDI SENDN SHOW Chapter 6. Application Interface UT RL RL RL SS SS RL RL RL SS SS RL RL RL RL RL RL RL RL RL RL RL RL RL RL SS SS RL SS RL SS RL RL RL RL AP RL RL RL SS SS SS RL RL SS SS RL RL RL na RL RL RL RL RL RL RL RL RL RL SS SS RL SS RL SS na SS SS RL RL RI RI SS Description Display contents of computer memory. Display operating system's processing status. Display text of member, $LOG, $MAIL, or $STACK. Display System Console messages. Display text of DOS/VSE sublibrary member. Display following lines. Display text of an ICCF member. Display a list of all active sessions. Create edit session of an existing member. Create edit session of DOS/VSE sublibrary member. Display information about a command. Display list of members in a library. Display list of DOS/VSE sublibrary members. Display list of members on a logical backup tape. Display list of members in ICCF library. Display list of libraries you can access. Display list of temporary passwords. Display list of POWER job entries. Display list of your mail messages. Display list of BIM-EDIT routines. Display list of library/user security records. Display list of active tasks. Display list of users. Display list of mail proxies. Display text of member, $LOG, $MAIL, or $STACK. Display text of DOS/VSE sublibrary member. Display text of an ICCF member. Display text of POWER job entry. Display the text of a VSE online message. Display text of mail message. Print members contained on a logical backup tape. Display all lines of a session having specified pattern. Search multiple members for a specified pattern. Transfer text of a member to an application. Transfer following lines to an application. Transfer single line to an application. Transfer a specified session line to an application. Display BIM-EDIT general or PF key information. Page 249 Application Interface Program Example Application Interface Program Example Library $SYS.SRC contains five sample programs that use the application interface: BIMAPAS BIMAPCB BIMLUCB Assembler Batch COBOL Batch COBOL LU 6.2 BIMAPPL BIMAPASC PL/I Batch Assembler CICS Each program prints a member without expanding INCLUDEs. A COBOL version is presented here: IDENTIFICATION DIVISION. PROGRAM-ID. BIMAPCB. ****************************************************************** * BIMAPCB - SAMPLE USE OF BIM-EDIT APPLICATION INTERFACE * * THIS PROGRAM SHOWS HOW TO USE THE BIM-EDIT APPLICATION * INTERFACE. FIRST OF ALL, THE PROGRAM OPENS THE APPLICATION * INTERFACE. THIS IS DONE BY CALLING BIUAPOP. COMMANDS ARE * THEN PASSED TO BIM-EDIT BY CALLING BIUAPSD. RESPONSES FROM * BIM-EDIT ARE RECEIVED BY CALLING BIUAPRC. WHEN THE DIALOG * IS COMPLETE, BIUAPCL IS CALLED TO CLOSE THE APPLICATION * INTERFACE. ****************************************************************** ENVIRONMENT DIVISION. CONFIGURATION SECTION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT PRINTFILE ASSIGN TO SYS008-UR-1403-S. DATA DIVISION. FILE SECTION. FD PRINTFILE LABEL RECORDS ARE OMITTED RECORD CONTAINS 133 CHARACTERS DATA RECORD IS PRT. 01 PRT. 02 PRTCTRL PIC X. 02 PRTLINE PIC X(132). WORKING-STORAGE SECTION. 01 XLINE PIC X(256). 01 XLINEL PIC S9999 USAGE COMP. 01 STAT PIC X(2). 01 WORK PIC X(1024). * Page 250 BIM-EDIT System Reference Manual Application Interface Program Example PROCEDURE DIVISION. OPEN OUTPUT PRINTFILE. ****************************************************************** * IF THE LU 6.2 INTERFACE WERE TO BE USED, CODE LIKE THE * FOLLOWING SHOULD BE ADDED: * * STRING 'BIMEDIT ', 'BIMAPPL ', 'EDITLU62', 'BIMEDIT ' * DELIMITED BY SIZE INTO XLINE. * MOVE 32 TO XLINEL. ****************************************************************** CALL 'BIUAPOP' USING XLINE XLINEL STAT WORK. IF STAT NOT EQUAL 'OK' GO TO Z20-ERR. MOVE 'LOGON $SYS,$SYS' TO XLINE. PERFORM S20-REQ. MOVE 'SEND ED41A.BIFARMP' TO XLINE. PERFORM S20-REQ. A20-READ. CALL 'BIUAPRC' USING XLINE XLINEL STAT WORK. IF STAT EQUAL 'EF' GO TO A20-EXIT. IF STAT NOT EQUAL 'OK' GO TO Z20-ERR. MOVE XLINE TO PRTLINE. WRITE PRT BEFORE ADVANCING 1 LINES. GO TO A20-READ. A20-EXIT. CALL 'BIUAPCL' USING XLINE XLINEL STAT WORK. IF STAT NOT EQUAL 'OK' GO TO Z20-ERR. STOP RUN. S20-REQ. MOVE 80 TO XLINEL. CALL 'BIUAPSD' USING XLINE XLINEL STAT WORK. IF STAT NOT EQUAL 'OK' GO TO Z20-ERR. CALL 'BIUAPRC' USING XLINE XLINEL STAT WORK. IF STAT NOT EQUAL 'OK' GO TO Z20-ERR. Z20-ERR. MOVE XLINE TO PRTLINE. WRITE PRT BEFORE ADVANCING 1 LINES. STOP RUN. Chapter 6. Application Interface Page 251 Chapter 7. BIM-EDIT Installable Features This chapter discusses the "Installable Features" that can be activated in BIM-EDIT. Although most of these features are written using the BIM-EDIT procedures language and thus cannot be run outside of BIM-EDIT, some of these features perform tasks that could be considered to be independent of BIM-EDIT. You need very little knowledge of BIM-EDIT and no knowledge of writing BIM-EDIT procedures to use them. The following applications are discussed: ARCHIVE Source level archiving DEMO Demonstrate BIM-EDIT Features (VSE Only) PASSWORD Password Verification Feature TODAY Reminders of Calendar Events INSTALL and SERVICE Apply IBM Corrective Service (VSE Only) COPYBOOK VSE Copy Book Facility In addition, there are a number of procedures in the library $SYS.UDP which have been developed by BIM-EDIT users for their own purposes and contributed for this distribution. These procedures may be of use to you "as is" or serve as a model for developing your own procedures applications. BIM does not use or test these procedures or provide support for them. You are encouraged to send any procedures that you have written which you think might be useful for a future distribution. Page 252 BIM-EDIT System Reference Manual Most of the "Installable Features" are activated in BIM-EDIT using the INSTALL command. The first time the INSTALL command is used, the following menu will be displayed: INSTALL BIM-EDIT FEATURE INSTALLATION -----------------------------------------------------------------------------Enter the number of your selection and press the ENTER key: 1 2 3 4 5 ==> IBM INSTALL/SERVICE feature (VSE only). CALENDAR feature. ARCHIVE feature. DEMO feature. PASSWORD verification feature. Enter the number of your selection and press ENTER. (Enter the # of your selection. PF3 to exit.) If you activate option 1, (IBM INSTALL/SERVICE), the INSTALL command becomes part of that feature, and a new initial menu is displayed: INSTALL INSTALLATION -----------------------------------------------------------------------------Enter the number of your selection and press the ENTER key: 1 2 3 4 5 6 ==> IBM Product Installation Resource Definition IBM System History Summary Status Display Install IBM Corrective Service Complete IBM Initial/Product Installation BIM-EDIT Feature Installation/Removal Enter the number of your selection and press ENTER. (Enter the # of your selection and press pf1 for help. CLEAR or PF3 to exit.) Select option 6 from this menu to get to the original BIM-EDIT Feature Installation menu. Chapter 7. BIM-EDIT Installable Features Page 253 DEMO - Demonstrate BIM-EDIT Features (VSE Only) DEMO - Demonstrate BIM-EDIT Features (VSE Only) DEMO is a series of procedures that may be used interactively to become familiar with BIM-EDIT commands and their functions. DEMO is written to allow users to try out commands and observe the results without permanently affecting any part of the system. The use of DEMO is described in Chapter 3 of the BIM-EDIT User Reference Manual. The DEMO feature is activated using the INSTALL command described at the beginning of this chapter. The System Administrator controls the operation of DEMO by accessing DEMO Administration and setting: • The number of DEMO-only users. DEMO-only users enter the demonstration application when they logon and can perform only those functions that DEMO will allow. They cannot leave the DEMO application. The purpose of DEMO-only users is to provide a way for people to try out BIM-EDIT with a very low likelihood of causing damage. DEMO only users have userids DEMOx, where x can be 0-9 or AZ. • Other users that will have optional access to DEMO. These users may use the DEMO command to initiate DEMO. BIM-EDIT access for DEMO users has somewhat more overhead than for non-DEMO users. Those who no longer have a need to access DEMO should be removed from the list. Changes in DEMO access will not take place at the user's next logon. • The VSE job class to be used for job submission by DEMO. • The VSE library and sub-library name to be defined for VSE library access by DEMO (if VSE library access is available). When DEMO is activated for a user, it creates a User Command table (see "Creating Library, User and Site Commands" in Chapter 11 of this manual). If your site already uses User Command Tables, you should review the impact of activating DEMO. Page 254 BIM-EDIT System Reference Manual PASSWORD - Verification Feature PASSWORD - Verification Feature The password verification feature, when activated, changes the operation of the PASSWORD command. The PASSWORD command can be used by a BIM-EDIT user to change their logon password, by providing a new password as the only operand for the PASSWORD command. When the password verification feature is activated, the PASSWORD command is replaced by a version that uses a MAPF session to request that both the current and the new password be entered. When activated, this feature also restricts the use of the PASSWORD command in procedures to BIM-EDIT users with ADM security. When the PASSWORD verification feature is selected from the INSTALL screen, the following screen will be displayed: INSTALL INSTALLATION -----------------------------------------------------------------------------Enter the number of your selection and press the ENTER key: 1 2 ==> Install PASSWORD verification feature. Remove PASSWORD verification feature. Enter the number of your selection and press ENTER. (Enter the # of your selection. PF3 to exit.) Chapter 7. BIM-EDIT Installable Features Page 255 TODAY - Reminders of Calendar Events TODAY - Reminders of Calendar Events TODAY allows you to set electronic mail reminders to yourself for dates in the future. Reminders are sent the first time you logon on or after their date. You can set repetitive reminders (for example, ones that would be sent the same day every week). The TODAY feature is activated using the INSTALL command described at the beginning of this chapter. To create, delete, change, or view reminders, you enter the TODAY command. A screen similar to the following will display: TIME=22:31:37 CURRENT MONTH CALENDAR DATE=03/19/92 TODAY IS THURSDAY, MARCH 19, 1992 ------------------------------------------------------------------------------FEBRUARY 1992 |SU|MO|TU|WE|TH|FR|SA| | | | | | | |01| |02|03|04|05|06|07|08| |09|10|11|12|13|14|15| M A R C H |16|17|18|19|20|21|22| 1992 |23|24|25|26|27|28|29| | SU | MO | TU | WE | TH | FR | SA | | 01 | 02 | 03 | 04 | 05 | 06 | 07 | | 08 | 09 | 10 | 11 | 12 | 13 | 14 | | 15 | 16 | 17 | 18 | 19 | 20 | 21 | | 22 | 23 | 24 | 25 | 26 | 27 | 28 | | 29 | 30 | 31 | | | | | APRIL 1992 |SU|MO|TU|WE|TH|FR|SA| | | | |01|02|03|04| |05|06|07|08|09|10|11| PF1 : TODAY'S NOTES PF3 : EXIT |12|13|14|15|16|17|18| PF6 : EXPAND MONTH PF7 : PREVIOUS MONTH |19|20|21|22|23|24|25| PF8 : NEXT MONTH PF9 : MONTH'S NOTES |26|27|28|29|30| | | PF11 : PERMANENT NOTE ADMINISTRATION TODAY is menu driven and easy to understand. All reminders (even those that have been sent) remain in TODAY until you purge them. "Permanent notes" are reminders that will repeat until you purge them. Page 256 BIM-EDIT System Reference Manual INSTALL and SERVICE - Apply IBM Corrective Service (VSE only) INSTALL and SERVICE - Apply IBM Corrective Service (VSE only) For VSE, BIM supplies a facility to apply IBM corrective service utilizing BIM-EDIT rather than ICCF to create the job streams. The Corrective Service Facility provides dialogs to generate JCL to perform the following: • Print documentation from an IBM service tape • Apply PTFs, APARs, and local fixes • Print information from the System History file • Remove information from the System History file • Personalize information in the System History file • Install Products • Define Corrective Service and Install Resources • Build and Display System History Summary Information • Install VSE/SP Refresh The Corrective Service Facility is accessed via the INSTALL and SERVICE commands. INSTALL sets options for performing corrective service on your site and initiates first time installation of optional products. SERVICE initiates and manages the processing of service on existing products. Both commands are menu driven. Field-level "help" is obtained by entering "?" in the field in question. Screen-level "help" is obtained by pressing the PF1 key. The job streams saved by the service dialog procedures are stored in the user's currently attached library. The Corrective Service facility requires BIM-EDIT to have VSE library access. The Corrective Service facility is activated using the INSTALL command itself, as described at the beginning of this chapter. Before installing products or applying corrective service the first time, the INSTALL selections "Resource Definition" and "Complete Initial/Product Install" must be used. IBM Corrective Service is described in the "IBM VSE/Enterprise Systems Architecture, Installation" (IBM manual SC33-6504, as of VSE/ESA Version 1.1). Even though the BIM-EDIT Corrective Service Procedures are not identical to IBM's, the concept is similar. The information in this manual can be useful in understanding this installation and maintenance concept. Chapter 7. BIM-EDIT Installable Features Page 257 ARCHIVE and RECOVER - BIM-EDIT Archive Facility ARCHIVE and RECOVER - BIM-EDIT Archive Facility The ARCHIVE facility is based on three existing commands; CHECKIN, CHECKOUT and PURGE, and two new commands; ARCHIVE and RECOVER. When the ARCHIVE facility is installed, modified versions of the CHECKIN, CHECKOUT and PURGE commands are implemented via the $SIT.PROC and $SIT.CTRL.COMMANDS. These modified commands maintain a generation library, ($SIT.GEN) and an ARCHIVE library, ($SIT.ARCHIVE). Generation Library ($SIT.GEN) The generation library contains audit information for every program "checked in" for the number of generations specified by the generation level control value (see the RECOVER command). Member names in the $SIT.GEN library consist of the Date and Time that the slave member was checked in. The title field contains the original name of the master member with a "-Gn" (where n is a numeric value to the maximum number of generations) appended to the end. When the $SIT.GEN library contains the maximum number of generations for a member being checked in, the oldest generation is moved to the $SIT.ARCHIVE library. Archive Library ($SIT.ARCHIVE) The name of a member in the $SIT.ARCHIVE library is the same name used when the generation was created by the checked in process. The –n is removed from the title. If an attempt is made to purge a member that has check status set on, all existing generations for the member are moved to the $SIT.ARCHIVE library and then the master source is moved. Two command procedures, (ARCHIVE and RECOVER) are provided for the maintenance of the $SIT.ARCHIVE library. The ARCHIVE command is used to create a job stream to back up the information contained in the $SIT.ARCHIVE library. The entire archive process consists of the following steps: Page 258 1. The master library source, minus any $SIT.GEN updates, is placed in the $SIT.ARCHIVE library for every member that has archive information in the $SIT.ARCHIVE library. 2. A cut off indicator member is created in the $SIT.ARCHIVE library so any members checked in after the time the ARCHIVE command was issued will not be included on the ARCHIVE tape. Members written to $SIT.ARCHIVE after an ARCHIVE request will remain in $SIT.ARCHIVE after the batch ARCHIVE job completes. 3. The ARCHIVE job is submitted for execution. The ARCHIVE procedure uses the JCL model BIJARCH in $SYS.JCL. If you wish to customize the JCL used to submit the archive job you can do so by creating a copy of $SYS.JCL.BIJARCH in the $SIT.JCL library and then modifying it there. 4. After the ARCHIVE job runs, the TAPE-DIRECTORY member in the $SIT.ARCHIVE library is updated to reflect all information written to the archive BIM-EDIT System Reference Manual ARCHIVE and RECOVER - BIM-EDIT Archive Facility tape. Once the TAPE-DIRECTORY member has been updated, all members written to tape are purged from the $SIT.ARCHIVE library. The RECOVER command procedure is used to perform the following functions: a) Recover a member from an ARCHIVE tape. b) Recover a member from the $SIT.ARCHIVE library. c) Recover a member from the $SIT.GEN library. d) Set the maximum generation level control value. e) View ARCHIVE tape directory information. f) View $SIT.ARCHIVE directory information. g) View $SIT.GEN directory information. h) Replace a master library member with a recovered member. Recovering a member from an ARCHIVE tape requires the submission and execution of a batch job. Model JCL is provided in member $SYS.JCL.BIJRECV. You can customize this JCL for your site by creating a copy of it in the $SIT.JCL library. All other functions of the RECOVER command are performed online at time of the request. The recovery process uses the $SIT.RECOVER library. All the required members needed to recover a BIM-EDIT member to a specific level are placed in this library. When the recovery process is complete, only the recovered member will be found in the $SIT.RECOVER library. Refer to the ARCHIVE and RECOVER commands for additional information. Chapter 7. BIM-EDIT Installable Features Page 259 COPYBOOK - VSE Copy Book Facility (VSE Only) COPYBOOK - VSE Copy Book Facility (VSE Only) The VSE Copy Book Facility allows you to store and maintain all or some of the copybooks used in your COBOL, PL/I and Assembler programs in your BIM-EDIT library, and access them using the standard COPY statements you already have in your source code. This facility is an alternate to converting some or all of your COPY statements to BIM-EDIT INCLUDE commands. Activating this feature requires the following steps: 1) 2) 3) 4) 5) 6) 7) Define a special BIM-EDIT user ID. Define the default BIM-EDIT "copy book" library. Define BIM-EDIT security for the "copy book" library. Optionally define additional "copy book" libraries. Load two BIM-EDIT modules into your SVA. Define your copy books as members in the "copy book" library. Set the BIM-EDIT System Variable (MMPCPYBK) to 1 and cycle your BIM-EDIT system. Each of these steps is described in detail below. Note: Your BIM-EDIT system must be up and executing for the "copy book" facility to function. If BIM-EDIT is down, the COPY statements in your assemblies and compiles will NOT be intercepted. The following is a list of the phases for the "copy book" facility. BIMCOPY BIUAPMD BIMCPYI BIMCPYR BIRSICI BIRHUCI The primary "copy book" SVA phase. The local application interface SVA eligible phase. Batch phase to initialize the "copy book" interface. Batch phase to reset the "copy book" interface. Online system initialization phase to activate the "copy book" interface. Online system termination phase to reset the "copy book" interface. The remaining sections describe the steps necessary to install and activate the "copy book" facility: 1) Enter the following command to create the user ID for the "copy book" facility: DEFU $COPY $COPY 'ASSEM/COMP COPY FACILITY' A LIBU display should show an entry similar to the following after the user has been defined: ----------------------------------------------------------------USER NAME TERMINAL - SECURITY - USAGE S CMD LIB PWR S -------- ------------------------- -------- ---- ---- - ------- $COPY ASSEM/COMP COPY FACILITY -------- USER NULL 1 0 0 2) Enter the following command to create the $SIT.COPY library: DEFL $SIT.COPY 'ASSEMBLER/COMPILER COPY FACILITY' $COPY Page 260 BIM-EDIT System Reference Manual COPYBOOK - VSE Copy Book Facility (VSE Only) A LIBL display should show an entry similar to the following after the library has been defined. ----------------------------------------------------------------------LIBRARY TITLE USER SEC ---------------- ---------------------------------------- -------- ---$SIT.COPY ASSEMBLER/COMPILER COPY FACILITY $SYS DEFS 3) Enter the following command to create the security for the $COPY user: DEFS $SIT.COPY $COPY LIST A LIBS display should show an entry similar to the following after the security record has been defined: -----------------------------LIBRARY USER SEC ---------------- -------- ---$SIT.COPY $COPY LIST 4) If you wish to have libraries other than the $SIT.COPY library from which copy books may be retrieved, the library must be defined, LIST security for user $COPY must be defined, and a system variable must be defined for each copy book library using the names COPYLIB1 through COPYLIB9. Statements similar to the following must be added to, or used to create, $SIT.PROC.SYSTDVB: DCL COPYLIB1,CHAR,16,V,SCOPE=SYSTEM SET COPYLIB1,libname where "libname" is the name of the BIM-EDIT library that you defined to be used for copy book access. The $SIT.PROC.SYSTDVB member is used to define "system variables". The DECLARE statement must define a 16 character variable length variable with SCOPE=SYSTEM. The first copy book library must be defined with COPYLIB1, the second with COPYLIB2, etc. Each COPYLIBn should have a library name assigned to it with a SET statement. The sequence that libraries will be searched is COPYLIB1 through COPYLIBn. The first COPYLIBn variable not found (or COPYLIB9) will determine the end of the defined copy book libraries. Any COPYLIBn variable found to have a null value (no library name) assigned to it will be ignored. 5) The following job stream will load the BIUAPMD and BIMCOPY phases into the SVA. Once testing is complete these phases should be loaded as part of the normal IPL process by adding them to the list of phases loaded in the ASI procedure. // JOB SETSDL // LIBDEF PHASE,SEARCH=lib.sublib SET SDL BIUAPMD,SVA BIMCOPY,SVA /* /& If for some reason you need to refresh these SVA modules after the interface has been activated, you will need to perform the following steps: Chapter 7. BIM-EDIT Installable Features Page 261 COPYBOOK - VSE Copy Book Facility (VSE Only) a) Turn off the copy book interface as described in step 8 below, or be bringing down the BIM-EDIT partition. b) Reload the SVA modules using the above JCL. c) Turn the copy book interface back on as described in step 7 below, or if BIMEDIT is down, by starting BIM-EDIT. 6) Create your copy book members by defining them in your COPYLIBn libraries or the site library $SIT.COPY. The members in these "copy book" libraries must be named using the following convention: 1) Character 1-n (maximum of 8) of the member name must be the same as that used for the member name of the 'copy book' in a VSE library. 2) A hyphen followed by the VSE library member type must be appended to the end of the member name. The following is an example of a "copy book" member name for assembler, COBOL and PL1. COPYBOOK-A COPYBOOK-C COPYBOOK-P The "copy book" data must be valid source data acceptable to the compiler or assembler associated with the type. If a source reference to a COPY statement is not found in the BIM-EDIT library or libraries, the normal search of the VSE libraries will follow. There is one system requirement that the "copy book" facility has. That is that copybooks DFHAID.A, DFHAID.C and DFHAID.P be present in PRD1.BASE or some other library that is in a LIBDEF search chain for every compile or assembly that contains a COPY statement. If CICS is not a part of your system, simply define a VSE library or sublibrary and define a DFHAID member for each type of compiler or assembler that you have and then include this library or sublibrary as part of the library search chain for all compilations and assemblies. The initialization process of the copy book facility invokes the VSE LIBR interface and must request a copybook that it knows will be found. DFHAID was chosen because it is already defined in most VSE systems. 7) Use the SET command to set the system variable MMPCPYBK to a value of 1. The next time BIM-EDIT is cycled, the "copy book" facility will automatically be initialized at BIM-EDIT startup time. A message will appear on the system console when the facility has been successfully started. Two programs (BIMCPYI and BIMCPYR) are provided to activate and terminate the "copy book" facility from a batch partition. These programs are intended to be used in an emergency or for problem determination and not as a normal means of activating or terminating the facility. // JOB BIMCPYI // LIBDEF PHASE,SEARCH=lib.sublib // EXEC BIMCPYI,PARM='SYSTEM=BIMEDIT' /& Page 262 BIM-EDIT System Reference Manual COPYBOOK - VSE Copy Book Facility (VSE Only) If you have chosen your own system name for BIM-EDIT it will be necessary to change the name in the PARM= parameter on the EXEC statement. The default system name is BIMEDIT. 8) You are now ready to run an assembly or compilation with a COPY statement. If for any reason the assembler or compilers do not produce the correct result, the facility should be turned off using the following job stream. // JOB BIMCPYR // LIBDEF PHASE,SEARCH=lib.sublib // EXEC BIMCPYR /& Chapter 7. BIM-EDIT Installable Features Page 263 Chapter 8. Operator, Administrator Commands The command descriptions presented in this chapter use the same format as those documented in the BIM-EDIT User Reference Manual. For information about the presentation format, refer to Chapter 4 of the User Reference Manual. The following table lists the BIM-EDIT operator and administrator commands, along with a brief description of their function. Immediately after the table, the detailed explanation of each command appears. ABENDXIT ARCHIVE AUDITCF AUTHORIZ BACKUPG BACKUPP BACKUPS BYPASS CHECKRST CONNECT CONTROLP CORE DEALLOC DISABLE DISCONN DISPLAYI ENABLE GETI LIBRARYG LIBRARYI LIBRARYR LIBRARYT LISTI LOADI LOADIL NEWCOPY PURGET RECOVER REORG RESTORE RESTOREL SETKEYS SHUT TRACE VERIFY ZAP Page 264 Commands Useful only to Operators or Administrators ABX Activate/inactivate abend intercept exit (VSE Only) Write members in archive library to tape. AUDCF Re-connect audit trail to a member. AUTH Bypass library security. Create a complete logical system backup tape. Create a complete physical system backup tape. Create a selective logical system backup tape. Execute following line at a higher command level. CHKR Re-establish a CHECKOUT relationship. Establish connection to VTAM or TCP/IP. CP Issue a command string to POWER or JES. Display contents of computer memory. DEAL Make allocated PDS available for other process (MVS Only) Make a BIM-EDIT command or userid inaccessible. Terminate connection to VTAM or TCP/IP. DII Display text of an ICCF member (VSE Only). Make a BIM-EDIT command or userid accessible. Alter session text - insert ICCF member (VSE Only). LIBG Display list of members on a logical backup tape. LIBI Display list of members in ICCF library (VSE Only). LIBR Display list of BIM-EDIT routines. LIBT Display list of active tasks. LII Display text of an ICCF member (VSE Only). Create member from ICCF library member (VSE only). Create members from ICCF library members (VSE only). NEWC Load a new copy of a BIM-EDIT module. PURT Delete a BIM-EDIT task. Recover a member to a previous change level. Concatenate fragmented areas in the BIM-EDIT library. Re-create a specified member from a logical backup tape. Re-create a specified library from a logical backup tape. Set user's PF keys to initial standards. Shut Down BIM-EDIT for normal use. Activate or inactivate the trace facility. Check the integrity of the BIM-EDIT library. Apply temporary fixes to BIM-EDIT. BIM-EDIT System Reference Manual ALTERS ALTERU BROWSES BROWSEU DEFINES DEFINEU DEFINEX FALTERS FALTERU FDEFINES FDEFINEU INQUIREU LIBRARYN LIBRARYS LIBRARYX MODIFYS MODIFYU PURGEN PURGES PURGEU PURGEX READS READU Commands Dealing with Security and Users ALTS Alter library/user security record. ALTU Alter user attributes. Set TXS variables to next library/user security record. Set TXU variables to attributes of next user. DEFS Create a new library/user security record. DEFU Create a new user. DEFX Create a mail proxy entry. FALTS Display / alter a library/user security record. FALTU Display / alter user attributes. FDEFS Create a new library/user security - formatted screen. FDEFU Create a new user - formatted screen. INQU Display user attributes. LIBN Display list of temporary passwords. LIBS Display list of library/user security records. LIBX Display list of mail proxies. (See ALTERS.) (See ALTERU.) PURN Delete a BIM-EDIT temporary password. PURS Delete a library/user security entry. PURU Delete a BIM-EDIT user. PURX Delete a mail proxy. Set TXS variables to specified lib/user security record. Set TXU variables to attributes of specified user. Chapter 8. Operator, Administrator Commands Page 265 ABENDXIT (VSE Only) ABENDXIT (VSE Only) This command should be used ONLY under explicit instructions from a BIM technical support representative for problem determination purposes, NEVER to attempt to continue production processing after abends. Most BIM-EDIT abends indicate possible memory corruption, which can cause corruption of the BIM-EDIT database if allowed to continue. Use ABENDXIT to activate or deactivate the internal abend intercept exit. This routine dumps abending tasks and attempts to recover BIM-EDIT operation. ABENDXIT may also be entered as ABX. Optional Operands OPER Specify "ON" to activate the abend exit. Specify "OFF" to inactivate the abend exit. Specify "INQ" to display the current abend intercept exit status. If not specified, "INQ" is assumed. QUAL is a qualifier to limit the exit's operation. Specify a user id or a terminal id for which task abends are to be intercepted. If the internal TRACE was activated with a qualifier, the TRACE qualifier prevails (see TRACE command description in Chapter 8 of the BIM-EDIT System Reference Manual.) If no qualifier is provided, all task abends will be intercepted. The abend exit facility is implemented as command module BICABXT. When active, any BIM-EDIT program check will, through the exit, produce a set of PDUMPs including: • • • • • • • • abend savearea, abending module, DSA chain, SIB, SSD, TSC, MMP to end of partition, if active, the TRACE area. The offending BIM-EDIT task will be terminated. The terminal associated with the task will be logged off of BIM-EDIT and BIM-EDIT will attempt to continue to operate. When the abend exit is not active, any program check within BIM-EDIT will cause BIMEDIT termination. ABENDXIT is intended for use under controlled conditions with assistance from a BIM technical support representative. When Valid ABENDXIT cannot be used in a procedure. The user must have OPER or ADM command security. Page 266 BIM-EDIT System Reference Manual ABENDXIT (VSE Only) Examples Activate the internal abend intercept facility: => abendxit on => abendxit on,lsl (or) (Exit limited to tasks related to user LSL) Inactivate the internal abend intercept facility: => abendxit off Display the current internal abend intercept status: => abendxit inq Chapter 8. Operator, Administrator Commands Page 267 ALTERS ALTERS Use ALTERS to alter an existing library/user security record. ALTERS may also be entered as ALTS, MODIFYS, or MODS. Required Operands LIB is the library name. USER is the user id. Specify "$DFL" for the default record which determines access for users who do not have a specific record for the library. SEC specifies a new access level. Specify NULL, EXEC, LIST, EDIT, DEF, DEFL, or DEFS. NULL is the access that would be achieved if there were no applicable security record. You may need to create a NULL record if a specific user is not to have the access level which would otherwise be provided by the $DFL record for the library. (Security records can also be altered with the FALTERS command, which will display the current access level and allow you to change it by overtyping.) Use DEFINES to create library/user security records and PURGES to delete them. If library/user security is altered while the user in question is logged on and attached to the library in question, the new security level won't take effect until the user reattaches to the library or logs off and logs back on. For more discussion, see "Library Security" in Chapter 10 of the BIM-EDIT System Reference Manual. When Valid The user must have DEFS access level for the library prefix of the LIB library (the part of the library name preceding an imbedded period). If LIB has no prefix, the user must have system-wide DEFS access. Use in a Procedure Return Codes: OK NF SC Successful. Security record not found. Inadequate access level. Security records can be accessed within a procedure using the TXS predefined variables. Example Alter the security definition for library "TROI" for user "GJB" such that members within the "TROI" library can be edited, but not defined, altered, or purged: => alters troi,gjb,edit Page 268 BIM-EDIT System Reference Manual ALTERU ALTERU Use ALTERU to alter user attributes. ALTERU may also be entered as ALTU, MODIFYU, or MODU. Required Operands USER is the user ID to be altered. Optional Operands PSWD specifies a new password. PSWD can be up to 8 characters in length. Users may alter their own passwords with the PASSWORD command. NAME specifies a new name. NAME can be up to 25 characters in length. It appears on the LIBRARYU display. CMDSEC specifies a new command access level. Specify USER, EXTU, OPER, or ADM. For more detail on this operand, see the DEFINEU command. LIBSEC specifies a new system-wide minimum library access level. Specify NULL, EXEC, LIST, EDIT, DEF, DEFL, or DEFS. For normal users, who are not to have access to all libraries in the system, specify LIBSEC as NULL. For more information, see "Library Security" in Chapter 10 of the BIM-EDIT System Reference Manual. PWRSEC specifies a new POWER or JES access level. PWRSEC is a one character value. BIM-EDIT does not edit this value in any way. The value is passed to the BIXPWQA exit routine. For more information, see "User Definition and Modification" in Chapter 10 of the BIM-EDIT System Reference Manual. LOGL Specifies a new maximum number of lines that may exist in $LOG at any time. After this point has been reached, for every line added at the bottom of $LOG, a line from the top of $LOG is deleted. LOGL must be between 0 and 999,999. MAILL specifies a new maximum number of lines that may exist in $MAIL at any time. After this point has been reached, for every line added at the bottom of $MAIL, a line from the top of $MAIL is deleted. MAILL must be between 0 and 999,999. SIZEL specifies a new maximum number of lines that a user can create in a session or in $STACK. BIM-EDIT will reject operations which would increase the size beyond SIZEL. (It is possible to EDIT or LISTP members larger than SIZEL. But it is not possible to add lines to the resulting session.) Chapter 8. Operator, Administrator Commands Page 269 ALTERU Optional Operands (continued) This prevents unusual functions for which library space has not been provided, for example, issuing a GETP on a POWER job entry or JES datasets of 400,000 lines. SIZEL must be between 1 and 999,999. ATTR is a field with site-defined usage. Its value can be accessed in a procedure by referring to the predefined variable SIBATTR. ATTR can be up to 8 characters in length. USAGE Specify "CLEAR" to reset the job accounting usage field. NTFY is the job completion notification default for the SUBMIT command. This option is only valid for VSE/ESA release 2.1 and above. YES - send completion message to the user submitting the job. NO - don't send any completion message (default). xxxxxxxx - send completion message to BIM-EDIT user xxxxxxxx. GRPS is the number of session groups the user will be allowed to use. If GRPS is set to zero, the users GRPS value will default to the value in MMPMXGRP. The maximum value of GRPS is 9. MXSESS is the maximum number of sessions the user will be allowed to use. If MXSESS is set to zero, the users sessions value will default to the value in MMPMXSES. The maximum value of MXSESS is 99. AUTOMAIL specifies if the MAIL automatic display/open feature is to be active for this user. If this feature is turned on for a user, the TITLE or first non-blank line of the specified type of MAIL and MAILI messages will automatically be displayed in the line-2 message area of the screen. The OPEN command can be entered while the mail is displayed to view the entire contents of the message. (Except if the NTFY=PURGE operand was specified on the MAIL/MAILI in which case it will have already been deleted. It can, however, still be viewed in the $MAIL log.) NO the feature is not active (default). NTFY only messages that were sent with the NTFY operand are to be automatically opened. ALL all messages will be automatically opened. (The FALTERU command may provide a more convenient way of altering attributes for a user. FALTERU displays all user attributes and allows you to change an attribute by simply overtyping its current value.) Page 270 BIM-EDIT System Reference Manual ALTERU The CMDSEC, LIBSEC, PWRSEC, LOGL, MAILL, SIZEL, GRPS, MXSESS, and AUTOMAIL values take effect when a user logs on. If one of these values is changed while a user is logged on, the user must log off and on again for the change to take effect. When Valid The user must have ADM command access level. Use in a Procedure Return Codes: OK NF Successful User record not found. User attributes can be accessed within a procedure using the SIB predefined variables. Examples Alter the user record "GJB" so that the password is "X345": => alteru gjb,pswd=x345 For user "SDK", provide OPER level command access and LIST level system-wide library access: => altu sdk,cmdsec=oper,libsec=list Chapter 8. Operator, Administrator Commands Page 271 ARCHIVE ARCHIVE Use ARCHIVE to write members in the $SIT.ARCHIVE library to tape. Optional VSE Operands is the VSE tape device address on which the backup information is to be written. If omitted, CUU will default to TAPE. CUU ARCHIVE generates a source member for every member referenced in the $SIT.ARCHIVE library. The source member created is at a level that includes the changes found in the $SIT.ARCHIVE library. Once all source members have been created, a job stream is submitted to write the newly created source members and the original $SIT.ARCHIVE members to tape. Changes are made to a TAPE-DIRECTORY member in the $SIT.ARCHIVE library that identifies the tape and the member names that were written to it. Once the tape has been successfully created and the TAPEDIRECTORY member has been updated, all members written to the tape are purged from the $SIT.ARCHIVE library. When Valid ARCHIVE can be used online or in the batch utility. Use in a Procedure Return Codes: OK SV Successful. Previous ARCHIVE job has not run to successful completion. ARCHIVE uses a JCL model to generate the job stream that is submitted. A default model is supplied in $SYS.JCL.BIJARCH. You can customize this JCL by first creating a copy of it in $SIT.JCL.BIJARCH. Model JCL for VSE The CUU variable does not have to be used within the JCL model. In this case the CUU operand on the ARCHIVE command will be ignored. If the VSE library in which BIMEDIT phases reside is not permanently available, a LIBDEF statement will also be needed. The following is the model JCL that can be found in $SYS.JCL.BIJARCH: * $$ JOB ARCHIVE,CLASS=0,DISP=H * $$ LST CLASS=Q,DISP=H // JOB ARCHIVE ARCHIVE MEMBERS IN $SIT.ARCHIVE LIBRARY // PAUSE MOUNT SCRATCH TAPE FOR ARCHIVE BACKUP ON &CUU // ASSGN SYS005,&CUU // TLBL BIFLOG,'&LASTMEM' // EXEC BIMUTIL LOGON $SYS,$SYS ATT $SIT.ARCHIVE Page 272 BIM-EDIT System Reference Manual ARCHIVE Model JCL for MVS The following is the model JCL that can be found in $SYS.JCL.BIJARCH: //BIJARCH JOB (BIM), // CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1), // USER=EDIT,PASSWORD=EDIT //BACKUPS EXEC PGM=BIMUTIL,TIME=(0,20),PARM='SYSTEM=P390EDIT' //STEPLIB DD DSN=PROD.BIMEDIT.LOADLIB,DISP=SHR //BIFLOG DD DSNAME=BIFLOG.&LASTMEM2, // UNIT=TAPE,LABEL=(1,SL),DISP=(NEW,CATLG) //SYSUDUMP DD SYSOUT=A //SYSPRINT DD SYSOUT=A //SYSIN DD * LOGON $SYS,$SYS ATT $SIT.ARCHIVE Example ARCHIVE looks at the audit members in the $SIT.ARCHIVE library, builds a temporary source member for each and submits a job stream to BACKUPS the temporary members and audit members to tape. The directory entries for the temporary members and audit members are added to the TAPE-DIRECTORY member following an entry that identifies the tape (by date-time) that the backup was created. The TAPE-DIRECTORY member is a permanent entry in the $SIT.ARCHIVE library. The following is an example of a single tape backup as identified in the TAPEDIRECTORY member. 19940517-1434480 19940517-1434010 19940517-1434110 19940517-1434170 19940517-1434380 19940517-1434230 19940517-1434480 19940517-1434300 19940517-1434380 19940517-1434480 TAPE ARCHIVE ARCHIVE ARCHIVE ASM ARCHIVE ASM ARCHIVE ASM ASM ARCHIVE OF $SIT.ARCHIVE LIBRARY ARCHV->ARCHIVE-MASTER.TESTPROG-3 ARCHV->ARCHIVE-MASTER.TESTPROG-4 ARCHV->ARCHIVE-MASTER.TESTPROG-3 MREPL->ARCHIVE-MASTER.TESTPROG-3 ARCHV->ARCHIVE-MASTER.TESTPROG-4 MPURG->ARCHIVE-MASTER.TESTPROG-4 ARCHV->ARCHIVE-MASTER.TESTPROG-3 MARCH->ARCHIVE-MASTER.TESTPROG-3 MARCH->ARCHIVE-MASTER.TESTPROG-4 The first line (member TYPE=TAPE) identifies a backup tape. From this line to the end of the TAPE-DIRECTORY or next TAPE entry are additional lines that identify the source members and audit members (TYPE=ARCHIVE) contained on this backup tape. The first seven characters of the title identify the type of entry. The following is a list of the different types and an explanation of what each means: ARCHV-> This entry contains audit information only for the program name that immediately follows the ARCHV-> in the title. It was created when a CHECKIN request was issued and the $SIT.GEN library already contained the maximum number of generations. The CHECKIN request caused the oldest generation to be moved to the $SIT.ARCHIVE library at the DATE-TIME specified by the member name. MPURG-> This entry contains source statements for the program name that immediately follows the MPURG-> in the title. It was created when a PURGE command was issued for the master program. By definition, a master program is one where checkout status is on. All generations in Chapter 8. Operator, Administrator Commands Page 273 ARCHIVE the $SIT.GEN library are moved to the $SIT.ARCHIVE library before this entry is created. MREPL-> This entry contains source statements for the program name that immediately follows the MREPL-> in the title. It was created when option 5 in the RECOVER procedure was used to replace an existing master. All generations in the $SIT.GEN library are moved to the $SIT.ARCHIVE library before this entry is created. MARCH-> This entry contains source statements for the program name that immediately follows the MARCH-> in the title. It was created as a result of an ARCHIVE request. A MARCH-> source entry is created for every member that has audit (ARCHV->) information in the $SIT.ARCHIVE library. All generation information in the $SIT.GEN library is rolled back from the current master and then the source is placed in the $SIT.ARCHIVE library. For more information see RECOVER. The ARCHIVE request can be initiated via BIMUTIL. The following examples contain the JCL necessary to create and submit an ARCHIVE request. VSE JCL // JOB ARCHIVE $SIT.ARCHIVE LIBRARY TO TAPE // EXEC BIMUTIL LOGON $BKP,$BKP ARCHIVE /* /& MVS JCL //ARCHIVE JOB //BIMUTIL EXEC //STEPLIB DD //SYSPRINT DD //SYSIN DD LOGON $BKP,$BKP ARCHIVE /* Page 274 .... PGM=BIMUTIL DSN=BIMEDIT.LOADLIB,DISP=SHR SYSOUT=A * BIM-EDIT System Reference Manual AUDITCF AUDITCF Use AUDITCF to re-connect the audit lines to a member. The lines following the AUDITCF command will be written to the audit trail of the current EDIT session. An end-of-text (++/*) terminates the AUDITCF command. AUDITCF may also be entered as AUDCF. AUDITCF ignores any operands. Special processing may be performed for input lines beginning with the not symbol (¬), two periods (..), right parentheses ()), the two characters /*, the two characters /&, the four characters * $$, the four characters ++/*, the four characters ++(), or the five characters /INCL. Input lines may be processed to convert imbedded hexadecimal sequences or to overlay stamp or literal information. See PPD predefined variables for details of this processing. For more examples, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid AUDITCF can only be used in a procedure, batch utility, or the application interface. It requires ADM command security. AUDIT=ON must have been set before the member is edited. Use in a Procedure AUDITCF normally returns OK. (See SIBRETCD.) Example Re-connect the following audit trail record the member being edited: AUDITCF .EDIT DATE=01/21/1997, TIME=11:44:30, USER=GOP .ADD LOC= 4, EXT= 1 .ADD LOC= 7, EXT= 1 .ADD LOC= 6, EXT= 1 .ADD LOC= 3, EXT= 1 .ADD LOC= 2, EXT= 1 .SAVE DATE=01/21/1997, TIME=11:45:13, USER=GOP ++/* Chapter 8. Operator, Administrator Commands , TERM=LL2B , TERM=LL2B Page 275 AUTHORIZ AUTHORIZ Use AUTHORIZ to bypass or to restore normal library security. AUTHORIZ may also be entered as AUTH. Optional Operands LIB is used to turn library security override "ON" or "OFF". Specify "ON" to bypass normal library security. Specify "OFF" to restore normal library security. CMD is used to turn command security override "ON" or "OFF". Specify "ON" to bypass normal command security. Specify "OFF" to restore normal command security. AUTHORIZ allows system and site procedures (i.e. procedures in the $SYS and $SIT libraries) to bypass normal security. It is intended to allow controlled access to "special" members and commands otherwise not available. AUTHORIZ affects only the current procedure and the current member. If you set AUTHORIZ ON and then EXECUTE another procedure or INCLUDE another member, the executed or included commands initially have AUTHORIZ OFF. In other words, the executed or included commands do not inherit the AUTHORIZ setting. Similarly, if you set AUTHORIZ ON and then EXIT from a procedure or come to the end of an included member, the AUTHORIZ setting is restored to the value it had upon entry. To maintain control over the use of AUTHORIZ, access by most users to the $SYS and $SIT libraries should be limited to EXEC or LIST level. When Valid AUTHORIZ can be used only in procedures (or members included from procedures) stored in the $SYS or $SIT libraries. Use in a Procedure AUTHORIZ normally returns OK. (See SIBRETCD.) Example The following procedure fragment will write an entry to member LOG.EVENT every time it is invoked, even though the user has no access to library LOG: SET PPDVBL,1 AUTHORIZ LIB=ON EDIT LOG.EVENT NEXT 999999 INSERTI "USER &SIBUSER DATE &OPSDATE TIME &OPSTIME PARMS &PARMLIST" SAVE AUTH LIB=OFF .... remainder of procedure .... Page 276 BIM-EDIT System Reference Manual BACKUPG (VSE version) BACKUPG (VSE version) Use BACKUPG to create a complete "logical" system backup tape. Optional Operands PRINT Specify "ON" or "YES" to print a library listing during backup. If not specified, no library listing will be printed. OPEN is the value for the tape open option. It may be specified as REWIND or NOREWIND. The default is REWIND. CLOSE is the value for the tape close option. It may be specified as REWIND, NOREWIND or UNLOAD. The default is UNLOAD. LABEL is the value for the tape label option. It may be specified as YES or NO. YES indicates that the tape created will be a VSE standard label tape. NO means that the tape is unlabelled. The default is YES. MIRROR Specify YES to create a duplicate backup file. The default is NO. The active contents of the BIM-EDIT library are written to tape with the attributes and text of each library, member, pending password, security record, and user (with any sessions). In each of these groups, entries are written in ascending order by name. This format of tape allows selective member restore by RESTORE and RESTOREL and allows the contents to be listed by LIBRARYG. The tape created by BACKUPG will be an exact logical snapshot of the BIM-EDIT library as of the time the job completes even though other users were performing update operations while the logical backup was running. The date and time of the "end of backup" is written to two MMP variables (MMPBKDTE and MMPBKTME) and can be viewed with the SHOW MMP command. Most operations can continue while BACKUPG is running. However, the following commands are disabled while BACKUPG is running: ALTERL, DEFINEL, FALTERL, PURGEL ALTERU, DEFINEU, FALTERU, PURGEU ARCHIVE, RECOVER BACKUPG, BACKUPP, BACKUPS CHECKIN, CHECKPUR, CHECKRST PASSWORD PURGE RENAME RESTORE, RESTOREL VERIFY BACKUPG performs some integrity checking of the BIM-EDIT library while it is creating the tape. BACKUPG creates an unblocked tape file "BIFLOG". Record size is 16384. On VSE, the logical unit SYS005 must be assigned to the tape drive. If MIRROR=YES is specified, logical unit SYS006 must also be assigned to a second tape. It is recommended that each site backup the BIM-EDIT libraries on a daily basis using BACKUPG. BACKUPG is preferred to BACKUPP because BACKUPP produces tapes Chapter 8. Operator, Administrator Commands Page 277 BACKUPG (VSE version) that must be restored in their entirety, locks out all concurrent usage, and performs no integrity checking. For instructions on performing a complete restore from a logical backup tape, see "Backups and Restores" in Chapter 10 of the BIM-EDIT System Reference Manual. When Valid BACKUPG can only be used in batch utility not communicating through LU 6.2. The user must have OPER or ADM command access level. Use in a Procedure BACKUPG normally returns OK. (See SIBRETCD.) Example The following is a sample logical backup job stream: // JOB BIJBKPG LOGICAL SYSTEM BACKUP // TLBL BIFLOG // ASSGN SYS005,TAPE // PAUSE MOUNT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS BACKUPG LABEL=YES /* /& Page 278 BIM-EDIT System Reference Manual BACKUPG (MVS version) BACKUPG (MVS version) Use BACKUPG to create a complete "logical" system backup tape. Optional Operands PRINT Specify "ON" or "YES" to print a library listing during backup. If not specified, no library listing will be printed. MIRROR Specify YES to create a duplicate backup file. The default is NO. The active contents of the BIM-EDIT library are written to tape with the attributes and text of each library, member, pending password, security record, and user (with any sessions). In each of these groups, entries are written in ascending order by name. This format of tape allows selective member restore by RESTORE and RESTOREL and allows the contents to be listed by LIBRARYG. The tape created by BACKUPG will be an exact logical snapshot of the BIM-EDIT library as of the time the job completes even though other users were performing update operations while the logical backup was running. The date and time of the "end of backup" is written to two MMP variables (MMPBKDTE and MMPBKTME) and can be viewed with the SHOW MMP command. Most operations can continue while BACKUPG is running. However, the following commands are disabled while BACKUPG is running: ALTERL, DEFINEL, FALTERL, PURGEL ALTERU, DEFINEU, FALTERU, PURGEU ARCHIVE, RECOVER BACKUPG, BACKUPP, BACKUPS CHECKIN, CHECKPUR, CHECKRST PASSWORD PURGE RENAME RESTORE, RESTOREL VERIFY BACKUPG performs some integrity checking of the BIM-EDIT library while it is creating the tape. BACKUPG creates an unblocked labeled tape file "BIFLOG". Output will be written to ddname "BIFLOG". If MIRROR=YES is specified, output will be written to ddname "BIFLOG2" as well. Record size is 16384. It is recommended that each site backup the BIM-EDIT libraries on a daily basis using BACKUPG. BACKUPG is preferred to BACKUPP because BACKUPP produces tapes that must be restored in their entirety, locks out all concurrent usage, and performs no integrity checking. For instructions on performing a complete restore from a logical backup tape, see "Backups and Restores" in Chapter 10 of the BIM-EDIT System Reference Manual. When Valid BACKUPG can only be used in batch utility not communicating through LU 6.2. The user must have OPER or ADM command access level. Use in a Procedure BACKUPG normally returns OK. (See SIBRETCD.) Chapter 8. Operator, Administrator Commands Page 279 BACKUPG (MVS version) Example The following is a sample logical backup job stream: //BACKUPG JOB //BIMUTIL EXEC //STEPLIB DD //BIFLOG DD // //SYSPRINT DD //SYSIN DD LOGON $SYS,$SYS BACKUPG /* Page 280 .... PGM=BIMUTIL DSN=BIMEDIT.LOADLIB,DISP=SHR DSNAME=BIFLOG,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), VOL=SER=BIM104 SYSOUT=A * BIM-EDIT System Reference Manual BACKUPP (VSE version) BACKUPP (VSE version) Use BACKUPP to create a complete physical system backup tape. Optional Operands OPEN is the value for the tape open option. It may be specified as REWIND or NOREWIND. The default is REWIND. CLOSE is the value for the tape close option. It may be specified as REWIND, NOREWIND or UNLOAD. The default is UNLOAD. LABEL is the value for the tape label option. It may be specified as YES or NO. YES indicates that the tape created will be a VSE standard label tape. NO means that the tape is unlabelled. The default is YES. An exact image of the BIM-EDIT library is written to tape, i.e. BACKUPP will copy BIM-EDIT 4096 byte blocks to tape in sequential order. Its use is rather limited, since selective retrieval from a physical backup is not supported. BACKUPP locks out all other access to the BIM-EDIT library while it is running. BACKUPP creates an unblocked tape file "BIFPHY". Record size is 16384. On VSE, the logical unit SYS005 must be assigned to the tape drive. For instructions on restoring from a physical backup tape, see "Backups and Restores" in Chapter 10 of the BIM-EDIT System Reference Manual. When Valid BACKUPP can only be used in batch utility not communicating through LU 6.2. The user must have OPER or ADM command access level. Use in a Procedure BACKUPP normally returns OK. (See SIBRETCD.) Example The following is a sample physical backup job stream: // JOB BIJBKPP PHYSICAL SYSTEM BACKUP // TLBL BIFPHY // ASSGN SYS005,TAPE // PAUSE MOUNT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS BACKUPP /* /& Chapter 8. Operator, Administrator Commands Page 281 BACKUPP (MVS version) BACKUPP (MVS version) Use BACKUPP to create a complete physical system backup tape. An exact image of the BIM-EDIT library is written to tape, i.e. BACKUPP will copy BIM-EDIT 4096 byte blocks to tape in sequential order. Its use is rather limited, since selective retrieval from a physical backup is not supported. BACKUPP locks out all other access to the BIM-EDIT library while it is running. BACKUPP creates an unblocked tape file "BIFPHY". Record size is 16384. On MVS, output will be written to ddname BIFPHY. For instructions on restoring from a physical backup tape, see "Backups and Restores" in Chapter 10 of the BIM-EDIT System Reference Manual. When Valid BACKUPP can only be used in batch utility not communicating through LU 6.2. The user must have OPER or ADM command access level. Use in a Procedure BACKUPP normally returns OK. (See SIBRETCD.) Example The following is a sample physical backup job stream: //BACKUPP JOB //BIMUTIL EXEC //STEPLIB DD //BIFPHY DD // //SYSPRINT DD //SYSIN DD LOGON $SYS,$SYS BACKUPP /* Page 282 .... PGM=BIMUTIL DSN=BIMEDIT.LOADLIB,DISP=SHR DSNAME=BIFPHY,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), VOL=SER=BIM104 SYSOUT=A * BIM-EDIT System Reference Manual BACKUPS BACKUPS Use BACKUPS to create a selective "logical" system backup tape containing only specified libraries, members, security records, and/or user records. Optional Operand for VSE PRINT Specify "ON" or "YES" to print a library listing during backup. If not specified, no library listing will be printed. OPEN is the value for the tape open option. It may be specified as REWIND or NOREWIND. The default is REWIND. CLOSE is the value for the tape close option. It may be specified as REWIND, NOREWIND or UNLOAD. The default is UNLOAD. LABEL is the value for the tape label option. It may be specified as YES or NO. YES indicates that the tape created will be a VSE standard label tape. NO means that the tape is unlabelled. The default is YES. Optional Operand for MVS PRINT Specify "ON" or "YES" to print a library listing during backup. If not specified, no library listing will be printed. The lines immediately following the BACKUPS command specify what to write to tape. There are four types of lines, distinguished by the first word on the line: 1. The word LIBRARY precedes the name of a library to be backed up. Note that LIBRARY in this case means the library definition records and not the content of the library. You must specify both the LIBRARY and the MEMBER types to make a backup that can be restored with the RESTORE or RESTOREL commands. The library name may be specified using the generic format. 2. The word MEMBER precedes the name of a member to be backed up. The member name specified must be a complete name in the library.member format. The names may specify a specific member name or a group of members by using the generic format. 3. The word SECURITY precedes the library and user name for a security record to be backed up. The first parameter following the word SECURITY is the library name. The next parameter is the userid to further qualify the security records to be backed up. Both the library and userid field may be specified using the generic format. 4. The word USER precedes the name of a USER to be backed up. Any of the entity names may contain * or ? characters to indicate character positions where any value can match. Any number of blanks may separate the line type words and the entity names. The lines may be in any order and are terminated by a line beginning with the four characters ++/*. Chapter 8. Operator, Administrator Commands Page 283 BACKUPS For example, to backup all entities for the $SYS. libraries and all libraries beginning with LX and the user and security records for user ADMN, you could use: BACKUPS LIBRARY LIBRARY MEMBER MEMBER SECURITY SECURITY SECURITY USER ++/* $SYS.* LX* $SYS.*.* LX*.* $SYS.* * LX* * * ADMN ADMN The specified active contents of the BIM-EDIT database are written to tape with the attributes and text of the libraries, members, security records, and users (without sessions, $LOG, $MAIL, or $STACK). In each of these groups, entities are written in ascending order by name. This format of tape allows a complete logical restore or selective member restore by RESTORE and RESTOREL and allows the contents to be listed by LIBRARYG. Only MEMBER entities can be restored selectively. Backing up LIBRARY, USER and SECURITY entities are only useful if you plan to perform a complete logical restore (for example, to a new BIM-EDIT system). If you do plan a complete logical restore, you should backup the $SYS. libraries and at least one user with ADM command security level to restore a useful system. BACKUPS does not assure that the entities on the tape are all "as of" the same instant in time. If synchronization is an issue, the site must assure that other tasks are not performing update operations on the entities being backed up while selective backup is running. Most operations can continue while BACKUPS is running. However, the following commands are disabled while BACKUPS is running: ALTERL, DEFINEL, FALTERL, PURGEL ALTERU, DEFINEU, FALTERU, PURGEU ARCHIVE, RECOVER BACKUPG, BACKUPP, BACKUPS CHECKIN, CHECKPUR, CHECKRST PASSWORD PURGE RENAME RESTORE, RESTOREL VERIFY BACKUPS performs some integrity checking of the BIM-EDIT library while it is creating the tape. BACKUPS creates an unblocked tape file "BIFLOG". Record size is 16384. On VSE, the logical unit SYS005 must be assigned to the tape drive. On MVS, output will be written to ddname "BIFLOG". The label and positioning options are determined by the DD statement. The BACKUPS is useful for • making archival backups of entities before they are removed permanently • moving entities between BIM-EDIT systems For instructions on performing a complete restore from a logical backup tape, see "Backups and Restores" in Chapter 10 of the BIM-EDIT System Reference Manual. Page 284 BIM-EDIT System Reference Manual BACKUPS When Valid BACKUPS can only be used in batch utility not communicating through LU 6.2. The user must have OPER or ADM command access level. Use in a Procedure BACKUPS normally returns OK. (See SIBRETCD.) Example The following is a sample selective backup job stream: VSE Job Control // JOB BIJBKPS SELECTIVE SYSTEM BACKUP // TLBL BIFLOG // ASSGN SYS005,TAPE // PAUSE MOUNT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS BACKUPS PRINT=YES MEMBER PROD.ACCT4* MEMBER 9916.ACCT4* ++/* /* /& MVS Job Control //BACKUPS JOB .... //BIMUTIL EXEC PGM=BIMUTIL //STEPLIB DD DSN=BIMEDIT.LOADLIB,DISP=SHR //BIFLOG DD DSNAME=BIFLOG,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), // VOL=SER=BIM104 //SYSPRINT DD SYSOUT=A //SYSIN DD * LOGON $SYS,$SYS BACKUPS PRINT=YES MEMBER PROD.ACCT4* MEMBER 9916.ACCT4* ++/* /* Chapter 8. Operator, Administrator Commands Page 285 BROWSES BROWSES Use BROWSES to set the TXS variables to the next library/user security record after the one currently indicated by the TXS variables. BROWSES is normally used in a procedure. BROWSES has no operands. If TXSLIB is blank, the first security record in the system will be read. An "EF" code is returned if there are no more security records. BROWSES will bypass security records for libraries for which the user's access level is less than DEFS. For more extensive discussion and examples, see the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. Use in a Procedure Return Codes: OK EF Successful. No more security records. Example BROWSES could be used to process every security record in the system: SET PPDCOND,1 SET PPDVBL,1 SET TXSLIB,'' LABEL D10 BROWSES IF SIBRETCD,NE,OK GOTO E10 .... process security record GOTO -D10 LABEL E10 EXIT OK,'## OPERATION COMPLETE ##' Page 286 BIM-EDIT System Reference Manual BROWSEU BROWSEU Use BROWSEU to set the TXU variables to the attributes of the next user following the one whose ID is currently in the TXU variables. BROWSEU is normally used in a procedure. BROWSEU has no operands. If TXUUSER is blank, the first user record in the system will be read. An "EF" code is returned if there are no more user records. For more extensive discussion and examples, see the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. Use in a Procedure Return Codes: OK EF Successful. No more user records. Example BROWSEU could be used to process every user record in the system: SET PPDCOND,1 SET PPDVBL,1 SET TXUUSER,'' LABEL D10 BROWSEU IF SIBRETCD,NE,OK GOTO E10 .... process user record GOTO -D10 LABEL E10 EXIT OK,'## OPERATION COMPLETE ##' Chapter 8. Operator, Administrator Commands Page 287 BYPASS BYPASS Use BYPASS to cause the command on the following line to be processed using tables at higher levels than the table used to resolve the current command. For any command, BIM-EDIT matches the command with a command routine or procedure by searching tables in the following order: 1. Attached library command table. 2. User command table. 3. Site command table. 4. System command table. If a match is not found after searching the four tables, BIM-EDIT will look for a procedure of the command name in the attached library. The above search order allows a user or site to customize (front- or back-end) commands easily by making them accessible only through procedures of the same name. For example, suppose a site wanted to customize the CHECKIN command. By creating an entry in the site command table and an associated procedure in the site procedure library, the created procedure would be invoked when CHECKIN is entered. However, the created procedure may want to invoke the BIM-EDIT CHECKIN command. Simply entering CHECKIN from the created procedure would cause the procedure to invoke itself. By entering BYPASS immediately before CHECKIN, the BIM-EDIT CHECKIN command will be invoked instead. For more information concerning command tables, see the BIM-EDIT System Reference Manual Chapter 11, Customization. When Valid BYPASS can only be used in an online procedure, batch utility, or the application interface. Use in a Procedure BYPASS normally returns OK. (See SIBRETCD.) Example A user procedure (stored in library $USR.uuuu, where uuuu is the user id) invoked by the command EDIT invokes EDIT at the next higher level: SET PPDVBL,1 DECLARE MEM,CHAR,33,V PARSE MEM READ &MEM BYPASS EDIT &MEM SCR BEF,ON,4 Page 288 BIM-EDIT System Reference Manual CHECKRST CHECKRST Use CHECKRST to re-establish the checkout relationship of a working (slave) member and the master member. CHECKRST may also be entered as CHKR. Required Operands is the member that will be the master in the checkout relationship. This member must have CHECK=ON (see the DEFINE and ALTER commands) and must not already be checked out. MEM Optional Operands LIB is the library in which the slave member already exists. LIB must not be the same as the MEM library. If LIB is not entered, the currently attached library is used. USER is the user to check out the member to. If USER is not specified, the logon user ID will be used. The slave copy of the MEM member must already exist in the LIB library under the MEM member name. Extreme caution is required to insure that the slave member being re-connected to the master member has all the attributes as the master member. After the checkout relationship has been re-established the only exception should be that the LIB member should be flagged as the slave in the checkout relationship. The master member is updated to indicate that it is checked out to the slave library, and the checkout user ID. These can be displayed with the INQUIRE command. CHECKRST sets "last referenced member" to the slave member. When Valid The user must have ADM command access level. Use in a Procedure Return Codes: OK CK NF SC Successful. One of the following: • Member is already checked out. • Member is not under checkout control.. One of the following: • User not found. • MEM member not found. • LIB library not found. Inadequate access level. Chapter 8. Operator, Administrator Commands Page 289 CHECKRST CHECKRST sets the TXM variables to the attributes of the slave member. Examples Re-establish checkout relationship for master member OM20.OMRPWR3 to OMRPWR3 in library GJB for user GJB: => checkrst om20.omrpwr3,gjb,gjb Re-establish checkout relationship for master member OM20.OMREXIO to OMREXIO in the currently attached library for the currently logged on user. => chkr om20.omrexio Page 290 BIM-EDIT System Reference Manual CONNECT CONNECT Use CONNECT to (re)establish a connection between BIM-EDIT and VTAM or TCP/IP. Optional Operands VTAM is specified to establish the connection to VTAM. This is the default if no operands are entered. TCP is specified to establish the connection to TCP/IP. BIM-EDIT will automatically connect to VTAM if VTAM is running when BIM-EDIT is started. If BIM-EDIT is started before VTAM, or the DISCONN command is used to terminate the VTAM connection, or VTAM is brought down while BIM-EDIT is running, BIMEDIT will continue to run but BIM-EDIT online tasks, logged on through VTAM, will be logged off. When VTAM becomes available, CONNECT can be used to cause BIM-EDIT to attempt to establish the connection. When Valid CONNECT can be run from the batch utility, the command line, or the operator communication facility from the system console. The user must have OPER or ADM command access level. Use in a Procedure CONNECT normally returns OK. (See SIBRETCD.) Example The following is a sample CONNECT job stream: VSE Job Control // JOB CONNECT // EXEC BIMUTIL LOGON $SYS,$SYS CONNECT VTAM CONNECT TCP /* /& MVS Job Control //CONNECT JOB //BIMUTIL EXEC //STEPLIB DD //SYSPRINT DD //SYSIN DD LOGON $SYS,$SYS CONNECT /* .... PGM=BIMUTIL DSN=BIMEDIT.LOADLIB,DISP=SHR SYSOUT=A * Chapter 8. Operator, Administrator Commands Page 291 CONTROLP (VSE version) CONTROLP (VSE version) Use CONTROLP to pass a command string to POWER. CONTROLP may also be entered as CTLP or CP. Required Operands is a command string to pass to POWER. STR may be any string which is a legitimate POWER command used to manipulate the POWER queues. Since these 'command strings' always contain blanks they must be enclosed with quotes. POWER commands which request display information which exceeds 1 line will display the first line on the message line and ignore the rest of the display. STR CONTROLP does not set the "last referenced POWER job entry". When Valid The user must have OPER or ADM command access level. Security can be defined within the BIXPWQA exit routine. BIXPWQA as distributed requires the user have a PWRSEC value of "2" or "3" before allowing the CONTROLP function. Use in a Procedure Return Codes: OK PW * Successful. Command rejected by POWER. Other codes as set by BIXPWQA exit routine. CONTROLP does not set the PWR variables. Example Release a job from the reader queue: => controlp 'r rdr,asm100' Page 292 BIM-EDIT System Reference Manual CONTROLP (MVS version) CONTROLP (MVS version) Use CONTROLP to pass a command string to JES . CONTROLP may also be entered as CTLP or CP. Required Operands is a command string to pass to JES. STR may be any string which is a legitimate JES command, although BIM-EDIT itself does not edit the contents of the string. STR CONTROLP does not set "last referenced JES data sets". When Valid The user must have OPER or ADM command access level. Security can be defined within the BIXPWQA exit routine. BIXPWQA as distributed requires the user have a PWRSEC value of "2" or "3" before allowing the CONTROLP function. Use in a Procedure Return Codes: OK * Successful. Other codes as set by BIXPWQA exit routine. CONTROLP does not set the JQE, JCT, JOE, or PDB variables. Example Cancel job 1228 with dump: => controlp '$c j1228,d' Chapter 8. Operator, Administrator Commands Page 293 CORE (VSE version) CORE (VSE version) Use CORE to create a display session of the contents of computer memory. Required Operands ADDR is the name of any BIM-EDIT module, a valid address within the BIM-EDIT partition (specified in hexadecimal), or MMP to designate the BIFARMP module. If omitted, an attempt will be made to extract a valid address at the current cursor location. If no address is found at the cursor location, MMP is assumed. Optional Operands LEN length to display, specified in decimal. If not specified and ADDR is a module name, LEN will be the length of the module, otherwise LEN will default to 4096. The CORE command can only display BIM-EDIT's address space, including any shared address area. LIBRARYR can be used to display the starting addresses and lengths of the BIM-EDIT routines and tables. LIBRARYT can be used to display the starting addresses of the SIB and TSC blocks for each task. When Valid BIM-EDIT must be running under VSE/SP release 2.1 or later. The user must have ADM command access level. Use in a Procedure CORE normally returns OK. (See SIBRETCD.) Example Display the contents of memory starting at hex location 706000: => DISP *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* Page 294 -> core 706000 SESS=A 2( 2) LINE= 0( 256) ----|----1----|----2----|----3----|----4----|----5----|----6----|----7--- TOP OF DISPLAY -+000000 00706000 00000000 00005909 00000000 00000000 *................* +000010 00706010 FFFFFFFF 00000000 00000003 E2C9C240 *............SIB * +000020 00706020 D4E6C440 40404040 00000000 00706698 *MWD .......q* +000030 00706030 006AB000 006AD000 006AE000 006AC000 *......}...\...{.* +000040 00706040 00000000 00710580 00000000 00000000 *................* +000050 00706050 000001F4 00000000 C5C4F5F0 C1404040 *...4....ED50A * +000060 00706060 40404040 40404040 00000000 C5C4F5F0 * ....ED50* +000070 00706070 C1404040 40404040 40404040 C2C9E9E4 *A BIZU* +000080 00706080 E2D9C640 40404040 40404040 000001F4 *SRF ...4* +000090 00706090 00000000 00000000 00000000 00000000 *................* BIM-EDIT System Reference Manual CORE (MVS version) CORE (MVS version) Use CORE to create a display session of the contents of computer memory. Required Operands ADDR is the name of any BIM-EDIT module, a valid address within the BIM-EDIT region (specified in hexadecimal), or MMP to designate the BIFARMP module. If omitted, an attempt will be made to extract a valid address at the current cursor location. If no address is found at the cursor location, MMP is assumed. Optional Operands LEN length to display, specified in decimal. If not specified and ADDR is a module name, LEN will be the length of the module, otherwise LEN will default to 4096. address space area ID. If not specified, the home address space is assumed. ASN LIBRARYR can be used to display the starting addresses and lengths of the BIM-EDIT routines and tables. LIBRARYT can be used to display the starting addresses of the SIB and TSC blocks for each task. When Valid The user must have ADM command access level. Use in a Procedure CORE normally returns OK. (See SIBRETCD.) Example Display the contents of memory starting at hex location 706000: => DISP *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* -> core 706000 SESS=A 2( 2) LINE= 0( 256) ----|----1----|----2----|----3----|----4----|----5----|----6----|----7--- TOP OF DISPLAY -+000000 00706000 00000000 00005909 00000000 00000000 *................* +000010 00706010 FFFFFFFF 00000000 00000003 E2C9C240 *............SIB * +000020 00706020 D4E6C440 40404040 00000000 00706698 *MWD .......q* +000030 00706030 006AB000 006AD000 006AE000 006AC000 *......}...\...{.* +000040 00706040 00000000 00710580 00000000 00000000 *................* +000050 00706050 000001F4 00000000 C5C4F5F0 C1404040 *...4....ED50A * +000060 00706060 40404040 40404040 00000000 C5C4F5F0 * ....ED50* +000070 00706070 C1404040 40404040 40404040 C2C9E9E4 *A BIZU* +000080 00706080 E2D9C640 40404040 40404040 000001F4 *SRF ...4* Chapter 8. Operator, Administrator Commands Page 295 DEALLOC (MVS Only) DEALLOC (MVS Only) Use DEALLOC to deallocate a specific PDS or all PDSs currently allocated to BIM-EDIT. DEALLOC may also be entered as DEAL. Optional Operands LIB name of PDS to be deallocated. If specified as "ALL", deallocates all PDSs which are available from your user ID. (If the user has OPER or ADM command security, all PDSs allocated to BIMEDIT will be deallocated.) If LIB is not specified, the current PDS is deallocated. DEALLOC is used to make a PDS available for a process (such as a compress) which requires exclusive access. PDSs are allocated to BIM-EDIT when they are first referenced and remain allocated until DEALLOCed or BIM-EDIT is shut down. Examples Deallocate a BIM0001.TESTLIB.D880623 => dealloc bim0001.testlib.d880623 Deallocate all PDSs: => dealloc all Deallocate current PDS: => deal Page 296 BIM-EDIT System Reference Manual DEFINES DEFINES Use DEFINES to create a new library/user security record. DEFINES may also be entered as DEFS. Required Operands LIB is the library name. USER is the user id. Specify "$DFL" for the default entry which determines access to the library for users who do not have a specific record. SEC specifies the access level. Specify NULL, EXEC, LIST, EDIT, DEF, DEFL, or DEFS. NULL is the access that would be achieved if there were no applicable security record. You may need to create a NULL record if a specific user is not to have the access level which would otherwise be provided by the $DFL record for the library. Use ALTERS to alter library/user security entries and PURGES to delete them. (The FDEFINES command may be easier to use than the DEFINES command.) If library/user security is altered while the user in question is logged on and attached to the library in question, the new security level won't take effect until the user reattaches to the library or logs off and logs back on. For more discussion, see "Library Security" in Chapter 10 of the BIM-EDIT System Reference Manual. When Valid The user must have DEFS access level for the library prefix of the LIB library (the part of the library name preceding an imbedded period). If LIB has no prefix, the user must have system-wide DEFS access. Use in a Procedure Return Codes: OK NF DP SC Successful. User not found. Security record already exists. Inadequate access level. Examples Define security for library CBAM for user GJB. Specify DEF level access: => defines cbam,gjb,def Define default security for library CMN1. Specify LIST level access: => defs cmn1,$dfl,list Chapter 8. Operator, Administrator Commands Page 297 DEFINEU DEFINEU Use DEFINEU to create a new user. DEFINEU may also be entered as DEFU. Required Operands USER is the user ID to be defined. USER can be up to 8 characters in length, composed of the letters A-Z, the numerals 0-9, and the characters dash (-), dollar sign ($), and underscore (_). PSWD specifies a password. PSWD can be up to 8 characters in length. Users may alter their own passwords with the PASSWORD command. Optional Operands NAME specifies the user name. NAME can be up to 25 characters in length. It appears on the LIBRARYU display. CMDSEC specifies the command access level. It is usually desirable to restrict a user to a subset of the BIM-EDIT commands. CMDSEC is specified as one of the following: USER User. Appropriate for most users. Provides access to commands needed for normal activity. EXTU Extended User. As BIM-EDIT is distributed, the EXTU command subset is identical to the USER command subset. EXTU is provided so that a site can customize the command table (see below) to distinguish between two classes of normal users. OPER Operator. Provides access to USER commands and operation commands such as BACKUPG. ADM Administrator. Provides access to USER commands, OPER commands, and administration commands such as DEFINEU, ALTERU, etc. If CMDSEC is not specified, USER is assumed. LIBSEC Page 298 specifies the system-wide minimum library access level. Specify NULL, EXEC, LIST, EDIT, DEF, DEFL, or DEFS. For normal users, who are not to have access to all libraries in the system, specify LIBSEC as NULL. For more information, see "Library Security" in Chapter 10 of the BIM-EDIT System Reference Manual. If LIBSEC is not specified, it is set to NULL. BIM-EDIT System Reference Manual DEFINEU Optional Operands (continued) PWRSEC specifies the POWER and JES access level. PWRSEC is a one character value which is passed to the BIXPWQA security exit in SIBSECPW. BIM-EDIT does not edit this value in any way. As distributed, the MMPPWCTL variable must be set to "1" before the PWRSEC value will be tested in BIXPWQA. If PWRSEC is not specified, it is set to "1". For more information, see "Controlling access to POWER Job Entries or JES Data Sets" in Chapter 11 of the BIM-EDIT System Reference Manual. LOGL Specifies the maximum number of lines that may exist in $LOG at any time. After this point has been reached, for every line added at the bottom of $LOG, a line from the top of $LOG is deleted. LOGL must be between 0 and 999,999. If LOGL is not specified, a value of 500 is used. MAILL Specifies the maximum number of lines that may exist in $MAIL at any time. After this point has been reached, for every line added at the bottom of $MAIL, a line from the top of $MAIL is deleted. MAILL must be between 0 and 999,999. If MAILL is not specified, a value of 500 is used. SIZEL specifies the maximum number of lines that a user can create in a session or in $STACK. BIM-EDIT will reject operations which would increase the size beyond SIZEL. (It is possible to EDIT a member or LISTP a POWER job entry or JES data sets which is larger than SIZEL. But it is not possible to add lines to the resulting session.) This prevents unusual functions for which library space has not been provided, e.g., issuing a GETP on a POWER job entry or JES data sets of 400,000 lines. SIZEL must be between 1 and 999,999. If SIZEL is not specified, a value of 10,000 is used. ATTR is a field with site-defined usage. Its value can be accessed in a procedure by referring to the predefined variable SIBATTR. ATTR can be up to 8 characters in length. If ATTR is not specified, a blank value is used. NTFY is the job completion notification default for the SUBMIT command. This option is only valid for VSE/ESA release 2.1 and above. YES - send completion message to the user submitting the job. NO - don't send any completion message (default). xxxxxxxx - send completion message to BIM-EDIT user xxxxxxxx. Chapter 8. Operator, Administrator Commands Page 299 DEFINEU Optional Operands (continued) GRPS is the number of session groups the user will be allowed to use. If GRPS is set to zero, the users GRPS value will default to the value in MMPMXGRP. The maximum value of GRPS is 9. MXSESS is the maximum number of sessions the user will be allowed to use. If MXSESS is set to zero, this value will default to the value in MMPMXSES. The maximum value of MXSESS is 99. AUTOMAIL specifies if the MAIL automatic display/open feature is to be active for this user. If this feature is turned on for a user, the TITLE or first non-blank line of the specified type of MAIL and MAILI messages will automatically be displayed in the line-2 message area of the screen. The OPEN command can be entered while the mail is displayed to view the entire contents of the message. (Except if the NTFY=PURGE operand was specified on the MAIL/MAILI in which case it will have already been deleted. It can, however, still be viewed in the $MAIL log.) NO the feature is not active (default). NTFY only messages that were sent with the NTFY operand are to be automatically opened. ALL all messages will be automatically opened. The command subset available for each CMDSEC type can be customized by changing the module BIFXCCM. See "Altering System Commands, Names, and Restrictions (BIFXCCM Table)" in Chapter 11 of the BIM-EDIT System Reference Manual. (The FDEFINEU command may be easier to use than the DEFINEU command.) For more discussion on creating users, see "User Definition and Modification" in Chapter 10 of the BIM-EDIT System Reference Manual. When Valid The user must have ADM command access level. Use in a Procedure Return Codes: OK DP Successful. User already exists. Attributes for the current user can be accessed within a procedure using the SIB predefined variables. Attributes for other users can be accessed using the TXU predefined variables. Page 300 BIM-EDIT System Reference Manual DEFINEU Examples Create a user "FRED" having the password "DEBT". Accept the defaults for the security fields: => defineu fred,debt,'fred flint' Create a user "4218" with a password of "CARS". Provide OPER level command access, LIST level system-wide library access, and level "2" POWER/JES access: => defu 4218,cars,'employee #4218',cmdsec=oper,libsec=list,pwrsec=2 Chapter 8. Operator, Administrator Commands Page 301 DEFINEX DEFINEX Use DEFINEX to create a mail proxy, that is, to authorize a user to process mail for another user. DEFINEX may also be entered as DEFX. Required Operands USER is the user ID for which a proxy is to be defined. PROXY is the user ID that will process mail on behalf of the USER user. DEFINEX authorizes the use of the ATTACHX command by user PROXY for user USER. When Valid The user must have ADM command access level. Use in a Procedure Return Codes: OK DP NF Successful. Proxy already exists. User not found. Example Authorize user AMS to process mail for user MBX: => definex mbx,ams Page 302 BIM-EDIT System Reference Manual DISABLE DISABLE Use DISABLE to make a BIM-EDIT command or userid inaccessible. Required Operands CMD is the command to disable. Any variation of the command can be specified. USER is the userid to be disabled. A userid is disabled when more than three consecutive unsuccessful attempts are made to LOGON to BIM-EDIT. This request will cause the userid to be disabled, no longer allowing the user to attempt to log on to BIM-EDIT. All command variations will be disabled. DISABLE makes a command or userid unavailable for use. It is ordinarily used to disable a command temporarily. If you want a command to always be disabled (so that you must ENABLE it before using it), you can update the BIFXCCM command table to accomplish this. (See "Altering System Commands, Names, and Restrictions (BIFXCCM Table)" in Chapter 11 of the BIM-EDIT System Reference Manual). Likewise, a userid can be temporarily disabled without actually removing the user from the system. DISABLE will have particular relevance if you have written any command modules. If you discover a problem with a particular command, you can disable the command until the problem is fixed. When Valid The user must have OPER or ADM command access level. Use in a Procedure Return Codes: OK NF Successful. Command not found in table. Example Disable the GETP command: => disable getp Disable the userid GOP: => disable user=gop Chapter 8. Operator, Administrator Commands Page 303 DISCONN DISCONN Use DISCONN to terminate the connection between BIM-EDIT and VTAM or TCP/IP. Optional Operands VTAM is specified to terminate the connection to VTAM. This is the default if no operands are specified. TCP is specified to terminate the connection to TCP/IP. BIM-EDIT will automatically terminate the connections to VTAM and TCP/IP when BIM-EDIT is shut down. When Valid DISCONN can be run from the batch utility, the command line or the operator communication facility from the system console. The user must have OPER or ADM command access level. Use in a Procedure DISCONN normally returns OK. (See SIBRETCD.) Example The following is a sample disconnect job stream: VSE Job Control // JOB CONNECT // EXEC BIMUTIL LOGON $SYS,$SYS DISCONN TCP /* /& MVS Job Control //CONNECT JOB //BIMUTIL EXEC //STEPLIB DD //SYSPRINT DD //SYSIN DD LOGON $SYS,$SYS DISCONN VTAM /* Page 304 .... PGM=BIMUTIL DSN=BIMEDIT.LOADLIB,DISP=SHR SYSOUT=A * BIM-EDIT System Reference Manual DISPLAYI (VSE Only) DISPLAYI (VSE Only) Use DISPLAYI to create a display session of an existing ICCF member. DISPLAYI may also be entered as DISPI or DII. Required Operands LIB is the ICCF library number. MEM is the ICCF member name. DISPLAYI can also be invoked by entering the T command in the LCA area of an ICCF library display. The DISPLAYI command will create a display session identical to the LISTI command if MMPDSCTL is set to zero. If MMPDSCTL is set to other than zero the session created will be updateable. Changes made to ICCF members cannot be saved, therefore, when an updateable display session is terminated there is no change to the original member. This command can be useful for members containing JCL that needs to be temporarily modified prior to submission. DISPLAYI is provided primarily for conversion purposes. If the ICCF member is stored in a compressed format, DISPLAYI will display the expanded form of the text. When Valid The user must have ADM command access level. DISPLAYI can be used only if the predefined variable MMPICCTL has a value of "1". Use in a Procedure Return Codes: OK NF Successful. ICCF member not found. Examples Display member XRI8640 from ICCF library 35: dii 35,xri8640 Chapter 8. Operator, Administrator Commands Page 305 ENABLE ENABLE Use ENABLE to make a BIM-EDIT command or userid accessible. Required Operands CMD is the command to enable. Any variation of the command can be specified. USER is the userid to be enabled. A userid is disabled when more than three consecutive unsuccessful attempts are made to LOGON to BIM-EDIT. This request will cause the userid to be enabled, allowing the user to again attempt to log on to BIM-EDIT. All command variations will be enabled. ENABLE is used to enable a command or userid that is in a disabled status. A command might have been initially disabled (see "Altering System Commands, Names, and Restrictions (BIFXCCM Table)" in Chapter 11 of the BIM-EDIT System Reference Manual) or it could have been disabled by the DISABLE command. A userid may also be disabled by the DISABLE command or will automatically be disabled if the user makes three consecutive unsuccessful attempts to log on to BIM-EDIT. When Valid The user must have OPER or ADM command access level. Use in a Procedure Return Codes: OK NF SV Successful. Command not found in table. No input parameter found. Example Enable the GETP command: => enable getp Enable userid GOP => enable user=gop Page 306 BIM-EDIT System Reference Manual FALTERS FALTERS Use FALTERS to display and alter a library/user security record. FALTERS may also be entered as FALTS. Required Operands LIB is the library name. USER is the user id. FALTERS creates a display showing all attributes for the security record. You can change an attribute simply by overtyping its current value. FALTERS can also be invoked by entering the Q command in the LCA area of a LIBRARYS display. If library/user security is altered while the user in question is logged on and attached to the library in question, the new security level doesn't take effect until the user reattaches to the library or logs off and logs on again. When Valid FALTERS can only be used as an online command or in an online procedure. The user must have DEFS access level for the library prefix of the LIB library (the part of the library name preceding an imbedded period). If LIB has no prefix, the user must have system-wide DEFS access. Use in a Procedure Return Codes: OK NF SC Successful. Security record not found. Inadequate access level. FALTERS sets the TXS variables to the library/user security entry. FALTERS is implemented as the system procedure BIPFALS. Example Alter the security definition for library "TROI" for user "GJB": => falters troi,gjb Screen after FALTERS FALTERS LIBRARY,USER : TROI,GJB ----------------------------------------------------------SECURITY LEVEL : DEF (PF1, PF13 = Update and End. PF2, PF14 Update and Redisplay. CLEAR=End.) The security level displayed on this screen may be changed by overtyping it. Chapter 8. Operator, Administrator Commands Page 307 FALTERU FALTERU Use FALTERU to display and alter user attributes. FALTERU may also be entered as FALTU. Required Operands is the user ID to be altered. USER FALTERU creates a display showing all attributes for the user. You can change an attribute simply by overtyping its current value. FALTERU can also be invoked by entering the Q command in the LCA area of a LIBRARYU display. See the ALTERU command for a discussion of changing specific user attributes. When Valid FALTERU can only be used as an online command or in an online procedure. The user must have ADM command access level. Use in a Procedure Return Codes: OK NF Successful. User record not found. FALTERU sets the TXU variables to the attributes of USER. FALTERU is implemented as the system procedure BIPFALU. Examples Alter the user record "GJB": => falteru gjb Screen after FALTERU FALTERU USER : GJB ----------------------------------------------------------NAME : GEORGIA JOHNSON-BROWN PASSWORD : ANX@ LOG LIMIT : 2000 MAIL LIMIT : 500 SIZE LIMIT : 30000 ATTRIBUTE : COMMAND SECURITY : ADM USER, EXTU, OPER, ADM LIBRARY SECURITY : NULL NULL, EXEC, LIST, EDIT, DEF, DEFL, DEFS POWER SECURITY : 2 DFLT NOTIFY OPTION: YES, NO, userid (VSE only) MAX GROUPS : 0 IF ZERO WILL DEFAULT TO 1 MAX SESSIONS : 0 IF ZERO WILL DEFAULT TO 9 AUTO OPEN MAIL : OFF OFF, ALL, NTFY USAGE : 72358 <- if CLEAR is entered in the field TERMINAL ID : LL01 to the right of USAGE, USAGE will be set to zero (PF1, PF13 = Update and End. PF2, PF14 Update and Redisplay. CLEAR=End.) The attributes displayed on this screen may be changed by overtyping them. Page 308 BIM-EDIT System Reference Manual FDEFINES FDEFINES Use FDEFINES to create a new library/user security record by filling in attributes on the screen. FDEFINES may also be entered as FDEFS. Required Operands LIB is the library name. If LIB is omitted, the full screen display will prompt the user for the required and optional operands. USER is the user id. Specify "$DFL" for the default entry which determines access to the library for users who do not have a specific record. If USER is omitted, the full screen display will prompt the user for the required and optional operands. SEC specifies the access level. Specify NULL, EXEC, LIST, EDIT, DEF, DEFL, or DEFS. NULL is the access that would be achieved if there were no applicable security record. You may need to create a NULL record if a specific user is not to have the access level which would otherwise be provided by the $DFL record for the library. If SEC is omitted, the full screen display will prompt the user for the required and optional operands. FDEFINES creates a display showing the default security attributes. You can change an attribute by simply overtyping its current value. See the DEFINES command for discussion of specific attributes. Use ALTERS or FALTERS to alter library/user security entries and PURGES to delete them. If library/user security is altered while the user in question is logged on and attached to the library in question, the new security level won't take effect until the user reattaches to the library or logs off and logs back on. For more discussion, see "Library Security" in Chapter 10 of the BIM-EDIT System Reference Manual. When Valid The user must have DEFS access level for the library prefix of the LIB library (the part of the library name preceding an imbedded period). If LIB has no prefix, the user must have system-wide DEFS access. FDEFINES is implemented as the system procedure BIPFDFS. Use in a Procedure Return Codes: OK DP NF SC Successful. Security record already exists. User not found. Inadequate access level. Chapter 8. Operator, Administrator Commands Page 309 FDEFINES Examples Define security for library CBAM for user GJB. Specify DEF level access: => fdefines Screen displayed by FDEFINES FDEFINES LIBRARY USER : CBAM : GJB ----------------------------------------------------------------SECURITY LEVEL : DEF (NULL, EXEC, LIST, EDIT, DEF, DEFL, DEFS) (PF1, PF13 = Update and End. PF2, PF14 Update and Redisplay. CLEAR=End.) The attributes displayed on this screen may be changed by overtyping them. For more discussion about a particular attribute, see the DEFINES command. Page 310 BIM-EDIT System Reference Manual FDEFINEU FDEFINEU Use FDEFINEU to create a new user by filling in attributes on the screen. FDEFINEU may also be entered as FDEFU. Required Operands USER is the user ID to be defined. USER can be up to 8 characters in length, composed of the letters A-Z, the numerals 0-9, and the characters dash (-), dollar sign ($), and underscore (_). If USER is omitted, the full screen display will prompt the user for the required and optional operands. PSWD specifies a password. PSWD can be up to 8 characters in length. Users may alter their own passwords with the PASSWORD command. If PSWD is omitted, the full screen display will prompt the user for the required and optional operands. The command subset available for each CMDSEC type can be customized by changing the module BIFXCCM. See "Altering System Commands, Names, and Restrictions (BIFXCCM Table)" in Chapter 11 of the BIM-EDIT System Reference Manual. For more discussion on creating users, see "User Definition and Modification" in Chapter 10 of the BIM-EDIT System Reference Manual. FDEFINEU is implemented as the system procedure BIPFDFU. When Valid The user must have ADM command access level. Use in a Procedure Return Codes: OK DP Successful. User already exists. Attributes for the current user can be accessed within a procedure using the SIB predefined variables. Attributes for other users can be accessed using the TXU predefined variables. Examples Create a user "4218" with a password of "CARS". Provide OPER level command access, LIST level system-wide library access, and level "2" POWER/JES access: => defu Chapter 8. Operator, Administrator Commands Page 311 FDEFINEU Screen displayed by FDEFINEU FDEFINEU USER : 4218 (required) ----------------------------------------------------------NAME : EMPLOYEE #4218 PASSWORD : CARS (required) LOG LIMIT : 500 MAIL LIMIT : 500 SIZE LIMIT : 10000 ATTRIBUTE : COMMAND SECURITY : ADM USER, EXTU, OPER, ADM LIBRARY SECURITY : NULL NULL, EXEC, LIST, EDIT, DEF, DEFL, DEFS POWER SECURITY : 2 DFLT NOTIFY OPTION: ........ YES, NO, userid (VSE only) MAX GROUPS : 0 1-9 MAX SESSIONS : 0 1-99 AUTO OPEN MAIL : OFF OFF, ALL, NTFY (PF1, PF13 = Update and End. PF2, PF14 Update and Redisplay. CLEAR=End.) The attributes displayed on this screen may be changed by overtyping them. For more discussion about a particular attribute, see the DEFINEU command. Page 312 BIM-EDIT System Reference Manual GETI (VSE Only) GETI (VSE Only) Use GETI to insert a copy of the text of an ICCF member immediately following the current line of the current session. Required Operands LIB is the ICCF library number. MEM is the ICCF member name. GETI is provided primarily for conversion purposes. It is normally not invoked directly, but rather through the LOADI command. If the ICCF member is stored in a compressed format, GETI will insert the expanded form of the text. When Valid The user must have ADM command access level. GETI can be used only if the predefined variable MMPICCTL has a value of "1". Use in a Procedure Return Codes: OK NF Successful. ICCF member not found. Example Get member XRI8640 from ICCF library 35: => geti 35,xri8640 Chapter 8. Operator, Administrator Commands Page 313 INQUIREU INQUIREU Use INQUIREU to display user attributes. When INQUIREU is invoked online, it creates a DISP session for the results. INQUIREU may also be entered as INQU. Required Operands is the user ID. If USER is not specified, the user ID of the current user will be used. USER (FALTERU can also be used to display a user's attributes and allows changing them by overtyping on the display.) When Valid The user must have OPER or ADM command access level to view a user ID other than his/her own user ID. Use in a Procedure Return Codes: OK NF Successful. User not found. INQUIREU sets the TXU variables to the attributes of USER. It is implemented as the system procedure BIPINQU. If INQUIREU is invoked in batch utility, the display destination is controlled by predefined variable SIBOUTPT. Example Display information about user "SDK": => inquireu sdk Screen after INQUIREU INQUIREU USER : GJB ----------------------------------------------------------NAME : GEORGIA JOHNSON-BROWN PASSWORD : LOG LIMIT : 2000 MAIL LIMIT : 500 SIZE LIMIT : 30000 ATTRIBUTE : COMMAND SECURITY : ADM USER, EXTU, OPER, ADM LIBRARY SECURITY : DEFS NULL, EXEC, LIST, EDIT, DEF, DEFL, DEFS POWER SECURITY : 3 DFLT NOTIFY OPTION: YES YES, NO, USERID (VSE only) MAX GROUPS : 2 IF ZERO WILL DEFAULT TO 1 MAX SESSIONS : 18 IF ZERO WILL DEFAULT TO 9 AUTO OPEN MAIL : NTFY OFF, ALL, NTFY USAGE : 1653457 TERMINAL ID : Q001 FAILED LOGONS : 0 Page 314 BIM-EDIT System Reference Manual LIBRARYG (VSE version) LIBRARYG (VSE version) Use LIBRARYG to print a list of the members contained on a logical backup tape. LIBRARYG may also be entered as LIBG. Optional Operands OPEN is the value for the tape open option. It may be specified as REWIND or NOREWIND. The default is REWIND. CLOSE is the value for the tape close option. It may be specified as REWIND, NOREWIND or UNLOAD. The default is UNLOAD LABEL is the value for the tape label option. It may be specified as YES or NO. YES indicates that the tape created will be a VSE standard label tape. NO means that the tape is unlabelled. The default is YES. The BIFLOG tape created by a BACKUPG or BACKUPS command will be used as input. On VSE, the logical unit SYS004 should be assigned to the tape drive. When Valid LIBRARYG can only be used in batch utility. The user must have OPER or ADM command access level. Use in a Procedure LIBRARYG normally returns OK. (See SIBRETCD.) Example The following is a sample LIBRARYG job stream: // JOB BIJLIBG LISTING OF BACKUP TAPE // TLBL BIFLOG // ASSGN SYS004,TAPE // PAUSE MOUNT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS LIBRARYG LABEL=YES CLOSE=UNLOAD /* /& Chapter 8. Operator, Administrator Commands Page 315 LIBRARYG (MVS version) LIBRARYG (MVS version) Use LIBRARYG to print a list of the members contained on a logical backup tape. LIBRARYG may also be entered as LIBG. The BIFLOG tape created by a BACKUPG or BACKUPS command will be used as input. On MVS, the tape will be read from ddname "BIFLOG". When Valid LIBRARYG can only be used in batch utility. The user must have OPER or ADM command access level. Use in a Procedure LIBRARYG normally returns OK. (See SIBRETCD.) Example The following is a sample LIBRARYG job stream: //LIBRARYG JOB //BIMUTIL EXEC //STEPLIB DD //BIFLOG DD // //SYSPRINT DD //SYSIN DD LOGON $SYS,$SYS LIBRARYG /* Page 316 .... PGM=BIMUTIL DSN=BIMEDIT.LOADLIB,DISP=SHR DSNAME=BIFLOG,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), VOL=SER=BIM104 SYSOUT=A * BIM-EDIT System Reference Manual LIBRARYI (VSE Only) LIBRARYI (VSE Only) Use LIBRARYI to display a list of the members in an ICCF library. When LIBRARYI is invoked online, it creates a DISP session for the results. LIBRARYI may also be entered as LIBI. Required Operands LIB is the ICCF library number. LIBRARYI is provided primarily for conversion purposes. It is normally not invoked directly, but rather through the LOADIL command. When Valid The user must have ADM command access level. LIBRARYI can be used only if the predefined variable MMPICCTL has a value of "1". Use in a Procedure LIBRARYI normally returns OK. (See SIBRETCD.) If LIBRARYI is invoked in batch utility, the display destination is controlled by predefined variable SIBOUTPT. Example List all members of ICCF library 44: => libraryi 44 Chapter 8. Operator, Administrator Commands Page 317 LIBRARYN LIBRARYN Use LIBRARYN to display a list of all temporary passwords currently define in BIMEDIT. When LIBRARYN is invoked online, it creates a DISP session for the results. LIBRARYN may also be entered as LIBN. LIBRARYN has no operands. LIBRARYN will display the userid, password, and the date/time when the temporary password was created. The LCA P command used in conjunction with the LIBRARYN display can be used to purge a temporary password (see PURGEN). When Valid The user must have ADM command access level. Use in a Procedure Return Codes: OK SC Successful. Inadequate access level. If LIBRARYN is invoked in batch utility, the display destination is controlled by predefined variable SIBOUTPT. Example The following is an example of the LIBRARYN output: => DISP *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* Page 318 -> libraryn SESS=A 2( 2) LINE= 0( 7) ----|----1----|----2----|----3----|----4----|----5----|----6----|----7--- TOP OF DISPLAY -------------------------------------USER ID PASSWORD ------ CREATE ----DATE TIME -------- -------- ---------- -------GOP 28468993 01/06/1997 12:43:43 GOP 24018433 01/05/1997 21:50:13 GOP 27179524 01/03/1997 08:11:55 GOP 63948289 01/02/1997 14:42:58 GOP 45246214 01/06/1997 12:43:44 GOP 80725509 01/02/1997 14:42:58 -- END OF DISPLAY -- BIM-EDIT System Reference Manual LIBRARYR LIBRARYR Use LIBRARYR to display a list of the BIM-EDIT routines and their current addresses and lengths. When LIBRARYR is invoked online, it creates a DISP session for the results. LIBRARYR may also be entered as LIBR. LIBRARYR has no operands. LIBRARYR is primarily useful to see what routines are loaded, and to find out where a routine is prior to using the CORE command to look at it. This may be useful if you are customizing BIM-EDIT. The LCA L command can be used to produce a CORE command display of the selected module. Use in a Procedure LIBRARYR normally returns OK. (See SIBRETCD.) If LIBRARYR is invoked in batch utility, the display destination is controlled by predefined variable SIBOUTPT. Example => DISP *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* -> libraryr SESS=A 2( 2) LINE= 0( 816) ----|----1----|----2----|----3----|----4----|----5----|----6----|----7--- TOP OF DISPLAY ------------------------MODULE ADDR LENGTH -------- -------- -----BICADDX 00668A30 200 BICALTL BICALTM 006B62F0 582 BICALTP 006C2B70 814 BICALTS BICALTU BICATTA 006DAD78 306 BICATTD BICATTX Chapter 8. Operator, Administrator Commands Page 319 LIBRARYS LIBRARYS Use LIBRARYS to display a list of library/user security records. When LIBRARYS is invoked online, it creates a DISP session for the results. LIBRARYS may also be entered as LIBS. Optional Operands LIB is the library. LIB can either be a complete library name or a partial library name. The display is restricted to libraries with names starting with the LIB characters. If LIB is not specified, the display shows all libraries to which the specified user has access. USER is the user. If USER is specified, only security records for USER are displayed. If USER is not specified, security records for all users are displayed. If the requesting user does not have ADM command access level, any display will be limited to security records for the requesting user and the $DFL user. Additional security entries can be created with the DEFINES command. Entries can be deleted with the PURGES command or altered with the ALTERS or FALTERS commands. The following LCA commands used in conjunction with the LIBRARYS display can be quite useful: P PURGES Q FALTERS Use in a Procedure LIBRARYS normally returns OK. (See SIBRETCD.) If LIBRARYS is invoked in batch utility, the display destination is controlled by predefined variable SIBOUTPT. Examples List the security definitions for all libraries for user "SMR": => librarys ,smr List all security definitions: => librarys List the security definitions for all libraries beginning with the characters "BIM": => libs bim Page 320 BIM-EDIT System Reference Manual LIBRARYS => DISP *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* *===* -> libs bim SESS=A 1( 1) LINE= 0( 19) ----|----1----|----2----|----3----|----4----|----5----|----6----|----7--- TOP OF DISPLAY ------------------------------LIBRARY USER SEC ---------------- -------- ---BIM BDB DEF BIM CJA DEF BIM CRB DEF BIM GJB DEF BIM GOP DEF BIM HSW DEF BIM KCR DEF BIM KJR DEF BIM LSL DEF BIM MB DEF BIM MWD DEF BIM PG DEF BIM PRJ DEF BIMLIB $DFL LIST BIMLIB.ED41D GJB DEF BIMLIB.ED41M GJB DEF -- END OF DISPLAY -- Chapter 8. Operator, Administrator Commands Page 321 LIBRARYT LIBRARYT Use LIBRARYT to display a list of all active BIM-EDIT tasks. A "task" is a concurrent use of BIM-EDIT (an online user, batch utility, or application interface program). When LIBRARYT is invoked online, it creates a DISP session for the results. LIBRARYT may also be entered as LIBT. LIBRARYT has no operands. For each task, the following information is shown: • BIM-EDIT task number. • User ID associated with task. • Link. One of the following: VTAM XPCC • Dialog. One of the following: APPL TERM UTIL WRKS • Linkage to BIM-EDIT is through VTAM Linkage to BIM-EDIT is through XPCC Communicating with an Application Interface program. Communicating with an online terminal. Communicating with the Batch Utility. Communicating with a workstation. Monitor. When dialog is TERM, one of the following: BTAM CICS TSO Online monitor is the BTAM interface. Online monitor is CICS. Online monitor is TSO. • Terminal ID. Relevant only for online tasks. • Status. Indicates what the task is waiting on. Normal values: EXECUTE RECEIVE WAIT/ECB Task is executing (performing the LIBRARYT). Task is waiting for terminal input. Waiting on an Event Control Block (probably disk I/O). • TSC Address. Effectively an extension of the SIB. • SIB Address. Information about the online user. • Last Command. Last command entered by user. • Count of active sessions. The LCA P command used in conjunction with the LIBRARYT display can be used to purge a task (see PURGET). Use in a Procedure LIBRARYT normally returns OK. (See SIBRETCD.) If LIBRARYT is invoked in batch utility, the display destination is controlled by predefined variable SIBOUTPT. Page 322 BIM-EDIT System Reference Manual LIBRARYT Example The following is an example of the LIBRARYT output: => DISP -> libraryt SESS=A 2( 2) LINE= 0( 7) ----|----1----|----2----|----3----|----4----|----5----|----6----|----7-*===* -- TOP OF DISPLAY -*===* -----------------------------------------------------------------------*===* TASK USER LINK DIAL MNTR TERMINAL STATUS TSC/ADDR SIB/ADDR LAST *===* ------ -------- ---- ---- ---- -------- -------- -------- -------- ----*===* 1 HSW VTAM TERM LL7A RECEIVE 006F1000 006F2000 QUIT *===* 14 SJA XPCC TERM CICS TS1D RECEIVE 006D6000 006C5000 SCAN *===* 17 MB VTAM TERM LL0A RECEIVE 00663400 006EC000 LIB END OF DISPLAY -- Chapter 8. Operator, Administrator Commands Page 323 LIBRARYX LIBRARYX Use LIBRARYX to display a list of all mail proxy records. When LIBRARYX is invoked online, it creates a DISP session for the results. LIBRARYX may also be entered as LIBX. LIBRARYX has no operands. Additional proxy records can be created with the DEFINEX command. Proxy records can be deleted with the PURGEX command. The LCA P command in conjunction with the LIBRARYX display can be used to purge a proxy record (PURGEX). When Valid The user must have ADM command access level. Use in a Procedure LIBRARYX normally returns OK. (See SIBRETCD.) If LIBRARYX is invoked in batch utility, the display destination is controlled by predefined variable SIBOUTPT. Example The following is an example of the LIBRARYX output: => DISP *===* *===* *===* *===* *===* *===* *===* *===* Page 324 -> libraryx SESS=A 1( 1) LINE= 0( 7) ----|----1----|----2----|----3----|----4----|----5----|----6----|----7--- TOP OF DISPLAY -----------------USER PRXY -------- -------SRU AMS BDB AMS GJB AMS MBX SCL -- END OF DISPLAY -- BIM-EDIT System Reference Manual LOADI (VSE Only) LOADI (VSE Only) Use LOADI to create a BIM-EDIT member by copying the text of an ICCF member. Required Operands LIB is the ICCF library number. MEM is the ICCF member name. Optional Operands is the user id to assign to the created member. If USER is not specified, the logon user id is used. USER LOADI will create a copy of the ICCF member in the currently attached BIM-EDIT library. If the ICCF member is stored in a compressed format, LOADI will first expand the member. LOADI sets the "last referenced member". Some ICCF member names are unacceptable as BIM-EDIT member names. These are primarily names which contain a period (.) or an equal sign (=). Members with names of these characteristics must either be renamed on ICCF or retrieved individually using GETI. When Valid The user must have ADM command access level. The user must have DEF access level for the currently attached library. LOADI can be used only if the predefined variable MMPICCTL has a value of "1". Use in a Procedure Return Codes: OK DP NF SC Successful. BIM-EDIT member already exists. ICCF member not found. Inadequate access level. LOADI is implemented as the system procedure BIPLDIX. LOADI handles the actual retrieval by invoking the GETI command. LOADI sets the TXM variables to the attributes of the BIM-EDIT member created. Example Transfer member CDR2600 from ICCF library 26 to the currently attached BIM-EDIT library: => loadi 26,cdr2600 Chapter 8. Operator, Administrator Commands Page 325 LOADIL (VSE Only) LOADIL (VSE Only) Use LOADIL to create BIM-EDIT members by copying the text of all members residing in an ICCF library. Required Operands LIB is the ICCF library number. LOADIL will create a procedure LOADILWK in library $SYS.PROC. LOADILWK will consist of a list of LOADI commands. After LOADIL completes, LOADILWK should be executed by entering: => execute $sys.proc.loadilwk There are several situations that might cause the procedure LOADILWK to terminate before it transfers all ICCF members: • An ICCF member name does not conform to BIM-EDIT naming conventions. A BIM-EDIT member name is composed of the letters A-Z, the numerals 0-9, and the special characters dash (-), dollar sign ($), and the underscore (_). ICCF names containing period (.) or equal sign (=) are common problems. • A member within the ICCF library is being edited. • Record linkage within ICCF is inconsistent. Often this situation is caused by an ICCF buffer not having been flushed yet. If LOADILWK does terminate prematurely, the following steps should be taken: 1. Create an EDIT session for the member $SYS.PROC.LOADILWK. 2. Delete the LOADI lines for all members that were successfully transferred. 3. Correct the problem. If the problem is that the member name does not conform to BIM-EDIT conventions, rename the member under ICCF and change the member name in the LOADI line. If the problem is that the member is being edited under ICCF, end the ICCF edit session. If the problem is linkage inconsistency, you probably don't have to correct anything. It will probably work next time. If it doesn't, try quiescing the entire ICCF system before retrying. If that doesn't work, you need to run ICCF recovery. 4. SAVE the session. 5. Execute LOADILWK again. When Valid The user must have ADM command access level. The user must have DEF access level for the currently attached library. LOADIL can be used only if the predefined variable MMPICCTL has a value of "1". Page 326 BIM-EDIT System Reference Manual LOADIL (VSE Only) Use in a Procedure Return Codes: OK DP NF SC Successful. BIM-EDIT member already exists. ICCF library not found. Inadequate access level. LOADIL is implemented as the system procedure BIPLDIL. Example Copy all members from ICCF library 12 to the currently attached BIM-EDIT library: => loadil 12 => exec $sys.proc.loadilwk Chapter 8. Operator, Administrator Commands Page 327 LISTI (VSE Only) LISTI (VSE Only) Use LISTI to create a LIST session of an existing ICCF member. LISTI may also be entered as LII. Required Operands LIB is the ICCF Libary number. MEM is the ICCF member name. LISTI can also be invoked by entering the L command in the LCA area of an ICCF library display. LISTI sessions do not allow updates to take place. LISTI is provided primarily for conversion purposes. Even if the ICCF member is stored in a compressed format, LISTI will show the expanded form. When Valid The user must have ADM command access level. LISTI can be used only if the predefined variable MMPICCTL has a value of "1". Use in a Procedure Return Codes: OK NF Successful. ICCF member not found. Examples List member XRI8640 from ICCF library 35: => lii 35,xri8640 Page 328 BIM-EDIT System Reference Manual NEWCOPY NEWCOPY Use NEWCOPY to load a new copy of a BIM-EDIT module, a new copy of the message table, or a new copy of the site command table. NEWCOPY may also be entered as NEWC. Required Operands MOD OPT Specify one of the following: • BIM-EDIT module name • MESSAGES • COMMANDS may be specified as FORCE to cause a new copy of a module to be loaded regardless of the 'patch area active' condition. If the 'ZAP ACTIVE IN BIFARMP PATCH AREA' messages is displayed, the user must recognize that if a NEWCOPY is FORCEd the patch area in BIFARMP is refreshed from disk (phase BIFPTCH). This means that if the module that owned the patch area is used and it attempts to branch into the patch area, BIM-EDIT will abend. BIM-EDIT is composed of approximately 1200 modules, each separately assembled and linked. See LIBRARYR to obtain a list of these modules. Theoretically, any of these modules can be replaced with a customized version. After a module is replaced, it can be loaded with NEWCOPY as opposed to shutting down and restarting BIM-EDIT. NEWCOPY should be used with caution. In general, you should be familiar with the functions of a particular module before loading it. Depending upon the module, added constraints may come into play. For example, you should not load a new copy of the submit exit routine, BIXPWSB, while a submit is in progress. BIM-EDIT builds a message table by merging the contents of the two members $SYS.CTRL.MESSAGES and $SIT.CTRL.MESSAGES. It also builds a site command table using the contents of the member $SIT.CTRL.COMMANDS. Both tables are normally built at startup time. If you add, delete, or update a message in $SIT.CTRL.MESSAGES or an entry in $SIT.CTRL.COMMANDS and you want the change to take effect immediately, you can NEWCOPY MESSAGES or NEWCOPY COMMANDS. When Valid The user must have ADM command access level. Use in a Procedure NEWCOPY normally returns OK. (See SIBRETCD.) Chapter 8. Operator, Administrator Commands Page 329 NEWCOPY Example Load a new copy of the logon exit routine, BIXLOGN: => newcopy bixlogn Recreate the message table: => newcopy messages Recreate the site command table: => newcopy commands Page 330 BIM-EDIT System Reference Manual PRINTG (VSE version) PRINTG (VSE version) Use PRINTG to print members contained on a logical backup tape. Required Operands MEM is the library.member to be printed from the logical backup tape. Optional Operands OPEN is the value for the tape open option. It may be specified as REWIND or NOREWIND. The default is REWIND. CLOSE is the value for the tape close option. It may be specified as REWIND, NOREWIND or UNLOAD. The default is UNLOAD. LABEL is the value for the tape label option. It may be specified as YES or NO. YES indicates that the tape created will be a VSE standard label tape. NO means that the tape is unlabelled. The default is YES. The BIFLOG tape created by a BACKUPG or BACKUPS command will be used as input. On VSE, the logical unit SYS004 must be assigned to the tape drive. The OPEN, CLOSE and LABEL operands are only valid on the first PRINTG control statement. If multiple PRINTG statements are used they must be in sequence by MEM. When Valid PRINTG can only be used in batch utility. Use in a Procedure PRINTG normally returns OK. (See SIBRETCD.) Example The following is a sample PRINTG job stream: VSE Job Control // JOB BIJPRTG LIST MEMBER FROM BACKUP TAPE // TLBL BIFLOG // ASSGN SYS004,TAPE // PAUSE MOUNT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS PRINTG GOP.GOPERSTM LABEL=YES OPEN=REWIND CLOSE=UNLOAD /* /& Chapter 8. Operator, Administrator Commands Page 331 PRINTG (MVS version) PRINTG (MVS version) Use PRINTG to print members contained on a logical backup tape. Required Operands MEM is the library.member to be printed from the logical backup tape. The BIFLOG tape created by a BACKUPG or BACKUPS command will be used as input. On MVS, the tape will be read from ddname "BIFLOG". When Valid PRINTG can only be used in batch utility. Use in a Procedure PRINTG normally returns OK. (See SIBRETCD.) Example The following is a sample PRINTG job stream: MVS Job Control //PRINTG JOB .... //BIMUTIL EXEC PGM=BIMUTIL //STEPLIB DD DSN=BIMEDIT.LOADLIB,DISP=SHR //BIFLOG DD DSNAME=BIFLOG,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), // VOL=SER=BIM104 //SYSPRINT DD SYSOUT=A //SYSIN DD * LOGON $SYS,$SYS PRINTG GOP.GOPERSTM /* Page 332 BIM-EDIT System Reference Manual PURGEN PURGEN Use PURGEN to delete a BIM-EDIT temporary password. PURGEN may also be entered as PURN. Required Operands USER is the user ID. PSWD Is the temporary password associated with the user ID. PURGEN can also be invoked by entering the P command in the LCA area of a LIBRARYN display. LIBRARYN can be used to display the current temporary passwords. When Valid The user must have ADM command access level. Use in a Procedure Return Codes: OK NF Successful. Temporary password not found. Example Purge temporary password "24018433" for user "gop": => purgen gop 24018433 Chapter 8. Operator, Administrator Commands Page 333 PURGES PURGES Use PURGES to delete a library/user security record. PURGES may also be entered as PURS. Required Operands LIB is the library. USER is the user ID. PURGES can also be invoked by entering the P command in the LCA area of a LIBRARYS display. If library/user security is altered while the user in question is logged on and attached to the library in question, the new security level won't take effect until the user reattaches to the library or logs off and logs back on. For more discussion, see "Library Security" in Chapter 10 of the BIM-EDIT System Reference Manual. When Valid The user must have DEFS access level for the library prefix of the LIB library (the part of the library name preceding an imbedded period). If LIB has no prefix, the user must have system-wide DEFS access. Use in a Procedure Return Codes: OK NF SC Successful. Security record not found. Inadequate access level. Example Purge the security definition for library "4191" for user "SDK": => purges 4191,sdk Page 334 BIM-EDIT System Reference Manual PURGET PURGET Use PURGET to delete a BIM-EDIT task. PURGET may also be entered as PURT. Required Operands is the number of the task to purge. (The LIBRARYT command displays information about all active tasks.) TASK PURGET can also be invoked by entering the P command in the LCA area of a LIBRARYT display. If a given task is unable to log itself off (for example, the terminal is out of service or the task is in a loop in a BIM-EDIT procedure), it may be necessary to purge the task. The user can then log on again. (Until the task is terminated, the user will not be able to log on, because BIM-EDIT will not allow a user to be logged on from two terminals at the same time.) Note that all tasks are automatically purged when BIM-EDIT is shut down. LIBRARYT can be used to display the current tasks. When Valid The user must have OPER or ADM command access level. Use in a Procedure Return Codes: OK NF Successful. Task not found. Example Purge task #196: => purget 196 Chapter 8. Operator, Administrator Commands Page 335 PURGEU PURGEU Use PURGEU to delete a user record. PURGEU may also be entered as PURU. Required Operands is the user ID. USER Optional Operands If OPT is specified as "FORCE", the user will be purged even if active sessions exist and/or the user is logged on. If FORCE is used, space occupied by $LOG, $MAIL, $STACK, and sessions will not be freed when this command is executed. (This space will be freed by BIM-EDIT as part of the next startup.) If a user record has been corrupted, for whatever reason, the FORCE option may be necessary. OPT PURGEU can also be invoked by entering the P command in the LCA area of a LIBRARYU display. If the FORCE option is not used, stored entities directly associated with the user ($MAIL, $STACK, and $LOG) are deleted. Stored entities indirectly associated with the user (members, libraries, and security entries) are never deleted by PURGEU. When Valid The user must have ADM command access level. Use in a Procedure Return Codes: OK LG NF SS Successful. User is logged on. User not found. User has active session(s). Example Purge user "SDK": => purgeu sdk Page 336 BIM-EDIT System Reference Manual PURGEX PURGEX Use PURGEX to delete a mail proxy. PURGEX may also be entered as PURX. Required Operands USER is the user ID for which a proxy has been defined. PROXY is the user ID that is authorized to process mail for the USER user. PURGEX can also be invoked by entering the P command in the LCA area of a LIBRARYX display. When Valid The user must have ADM command access level. Use in a Procedure Return Codes: OK NF Successful. Proxy record not found. Example Remove SDK as an authorized proxy for user MBX: => purgex mbx,sdk Chapter 8. Operator, Administrator Commands Page 337 READS READS Use READS to set the TXS variables to a specified library/user security record or optionally the security available for a user. READS is normally used in a procedure. Required Operands LIB is the library name. USER is the user id. Optional Operands is the request type. REQ may be specified as SEC to have the TXS variables set to the level of access available to a user. If omitted or invalid, READS will attempt to read a specific security record and set the TXS variables accordingly. REQ For more extensive discussion and examples, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. When Valid The user must have DEFS access level for the LIB library if USER is not the user currently logged on. Use in a Procedure Return Codes: OK NF SC Successful. Security record not found. Inadequate access level. Example Display access level for specified library and user: SET PPDVBL,1 SET PPDCOND,1 DCL LIB,CHAR,16,V DCL USER,CHAR,8,V PARSE LIB,USER READS &LIB &USER SEC IF SIBRETCD,NE,OK EXIT ER,'(DISPLAYS) ** NO ACCESS AVAILABLE FOR "&LIB &USER" **' EXIT OK,'FOR "&LIB &USER.", ACCESS IS "&TXSSEC"' Page 338 BIM-EDIT System Reference Manual READS Display security record access information for specified library and user: SET PPDVBL,1 SET PPDCOND,1 DCL LIB,CHAR,16,V DCL USER,CHAR,8,V PARSE LIB,USER READS &LIB &USER IF SIBRETCD,NE,OK EXIT ER,'(DISPLAYS) ** NO SECURITY RECORD FOUND FOR "&LIB &USER" **' EXIT OK,'FOR "&LIB &USER.", ACCESS IS "&TXSSEC"' Chapter 8. Operator, Administrator Commands Page 339 READU READU Use READU to set the TXU variables to the attributes of a specified user. READU is normally used in a procedure. Required Operands is the user id. USER For more extensive discussion and examples, refer to the BIM-EDIT System Reference Manual Chapter 2, Writing Procedures. Use in a Procedure Return Codes: OK NF Successful. User not found. Example Display usage for specified user: SET PPDVBL,1 SET PPDCOND,1 DCL USER,CHAR,8,V PARSE USER READU &USER IF SIBRETCD,NE,OK EXIT ER,'(DISPLAYU) ** USER "&USER" NOT FOUND **' EXIT OK,'FOR "&USER.", USAGE IS &TXUUSAGE' Page 340 BIM-EDIT System Reference Manual RECOVER RECOVER Use RECOVER to retrieve a member from a backup tape, $SIT.GEN library or $SIT.ARCHIVE library and restore it to a specific change level (date-time). The recovered member will be created in the $SIT.RECOVER library. RECOVER is also used to set the maximum generation level control value and to return a recovered member from $SIT.RECOVER to the desired master library. RECOVER has no operands. When RECOVER is entered on the command line the following menu will be displayed: RECOVER ARCHIVE MEMBER RECOVERY -----------------------------------------------------------------------------Enter the number of your selection and press the ENTER key: 1 2 3 4 5 6 7 8 View Archive 'Tape-Directory'. View Archive 'Tape-Directory' for specific date. View Archive 'Tape-Directory' for specific member. View Current Archive library directory. Replace master program with recovered program. View Current Generation library directory. View Generation library directory for specific member. Set maximum generation level control value. ==> _ Enter the number of your selection and press ENTER. (Enter the # of your selection and press PF1 for help. CLEAR to exit.) Option 1 will display all the TAPE entries in the $SIT.ARCHIVE.TAPE-DIRECTORY member. The name used for each TAPE entry is the DATE-TIME of the ARCHIVE request. Successful completion of this option requires 4 BIM-EDIT sessions. Option 2 will display all the TAPE entries for the specified date. This display will contain complete detail contained on the backup tape(s). Successful completion of this option requires 4 BIM-EDIT sessions. Option 3 will display all TAPE entries that contain the specified member. This display will NOT show all members on the backup tape. Successful completion of this option requires 4 BIM-EDIT sessions. Option 4 will display a list of the current ARCHIVE members contained in the $SIT.ARCHIVE library not yet written to tape. Successful completion of this option requires 3 BIM-EDIT sessions. Option 5 will display a screen allowing the name of a recovered program in the $SIT.RECOVER library to be entered and the name of a master library to which the program is to be moved. If the master library already contains a member by this name it will be replaced. Successful completion of this option requires 1 BIM-EDIT session. Option 6 will display the directory for the $SIT.GEN library. Successful completion of this option requires 5 BIM-EDIT sessions. Option 7 will display the directory for a specific member name in the $SIT.GEN library. Successful completion of this option requires 5 BIM-EDIT sessions. Chapter 8. Operator, Administrator Commands Page 341 RECOVER Option 8 is an administrative function which allows the number of generations to be retained in the $SIT.GEN library to be changed. Successful completion of this option requires 1 BIM-EDIT session. When recovering programs from an ARCHIVE tape, $SIT.ARCHIVE library, or the $SIT.GEN library, the user must select a member entry from the detail screen. The source program will be recovered to the change level prior to the selected entry. In the case of option 4 and recovering programs from the $SIT.GEN library, the recovery takes place online. All other recoveries involve submitting a batch job to restore the requested member and then recover it to the requested level. Once a program has been recovered it will be found in the $SIT.RECOVER library. RECOVER uses a JCL model to generate the job stream that is submitted. A default model is supplied in $SYS.JCL.BIJRECV. You can customize this JCL by first creating a copy of it in $SIT.JCL.BIJRECV. Model JCL for VSE If the VSE library in which BIM-EDIT phases reside is not permanently available, a LIBDEF statement will also be needed. The following is the model JCL that can be found in $SYS.JCL.BIJRECV: * $$ JOB JNM=RECOVER,CLASS=0,DISP=D * $$ LST CLASS=Q,DISP=H // JOB RECOVER ARCHIVE MEMBERS FROM ARCHIVE TAPE // PAUSE MOUNT ARCHIVE TAPE DATED &SPECTAPE ON DRIVE &CUU // ASSGN SYS004,&CUU // TLBL BIFLOG,'&SPECTAPE' // EXEC BIMUTIL LOGON $SYS,$SYS ATT $SIT.RECOVER )IF DEBUG,NE,ON ) GOTO NOSNAP SNAP ON )LABEL NOSNAP Model JCL for MVS The following is the model JCL that can be found in $SYS.JCL.BIJRECV: //BIJRECV JOB (BIM), // CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1), // USER=EDIT,PASSWORD=EDIT //BIMUTIL EXEC PGM=BIMUTIL,TIME=(0,20),PARM='SYSTEM=P390EDIT' //STEPLIB DD DSN=PROD.BIMEDIT.LOADLIB,DISP=SHR //BIFLOG DD DSNAME=BIFLOG.&SPECTAP2, // UNIT=TAPE,DISP=OLD //SYSUDUMP DD SYSOUT=A //SYSPRINT DD SYSOUT=A //SYSIN DD * LOGON $SYS,$SYS ATT $SIT.RECOVER )IF DEBUG,NE,ON ) GOTO NOSNAP SNAP ON )LABEL NOSNAP Page 342 BIM-EDIT System Reference Manual RECOVER When Valid RECOVER can only be used online. Option 5 requires DEF access level to the master library. Option 8 requires ADM access level. All other options require LIST access level to the $SIT.RECOVER library. Chapter 8. Operator, Administrator Commands Page 343 REORG REORG Use REORG to concatenate fragmented disk area free spaces in BIM-EDIT BIFLIB. Optional Operands LOG ON to set entries, into the user $LOG, for each member moved, showing the member key. OFF to inhibit logging to $LOG. OFF is the default. The process selects the highest members in the file, based on relative record number (RRN), and attempts to find free areas for them in lower RRN locations. This process is useful for the times when free space is minimal and it is fragmented to such a degree as to inhibit full BIM-EDIT function, such as being unable to save large members after an EDIT session. The REORG command can provide temporary relief until a file expansion or major file cleaning is completed and may even eliminate the need for file reorganization using a full backup and restore operation. Most BIM-EDIT operations can continue while REORG is running. However, the following commands are disabled until the REORG has completed: ALTERL, DEFINEL, FALTERL, PURGEL ALTERU, DEFINEU, FALTERU, PURGEU ARCHIVE, RECOVER BACKUPG, BACKUPP, BACKUPS CHECKIN, CHECKPUR, CHECKRST PASSWORD PURGE RENAME RESTORE, RESTOREL VERIFY Since the REORG process works on a relatively small group of records, each execution duration is minimal. When Valid The user must have ADM command access level. Use in a Procedure REORG normally returns OK. (See SIBRETCD.) Example Reorg disk area free space. Page 344 => reorg ; don't log results => reorg log=on ; log results to $log BIM-EDIT System Reference Manual RESTORE (VSE version) RESTORE (VSE version) Use RESTORE to re-create a specified member from a logical backup tape. Required Operands MEM is the library.member to be restored from the logical backup tape. Optional Operands NMEM is the new library.member name to which MEM is to be restored. The following parameters are valid only on the first RESTORE or RESTOREL command read by BIMUTIL. OPEN is the value for the tape open option. It may be specified as REWIND or NOREWIND. The default is REWIND. CLOSE is the value for the tape close option. It may be specified as REWIND, NOREWIND or UNLOAD. The default is UNLOAD. LABEL is the value for the tape label option. It may be specified as YES or NO. YES indicates that the tape created will be a VSE standard label tape. NO means that the tape is unlabelled. The default is YES. The BIFLOG tape created by BACKUPG will be used as input. On VSE, the logical unit SYS004 must be assigned to the tape drive. The destination library must exist on the system before it can be restored to. If a member found on tape already exists in the LIB library, the member in the LIB library is replaced with the one from tape. However, RESTORE will terminate if it attempts to replace a member which is part of a checkout relationship or has EDIT or LIST sessions open against it at the time of the RESTORE. If you want to avoid the termination of the RESTORE, you can set PPDCOND to 1. This will cause one or more messages to be generated describing the reason a member could not be restored, and then processing will continue with the next member to be restored. Any checkout relationships that exist on the backup will be lost when a member is restored. An informational message is written to the output report containing all information about the original checkout relationship. The checkout relationships for restored members can be re-established using the CHECKRST command. RESTORE retrieves the member as it was in the database at the time BACKUPG or BACKUPS wrote the tape. In particular, a member which had an EDIT session open at the time of the backup will be restored as if an END NOSAVE had been done. Multiple members can be restored in one batch utility job. The RESTORE commands must be in alphabetical order by library.member name. RESTORE can be intermixed Chapter 8. Operator, Administrator Commands Page 345 RESTORE (VSE version) with RESTOREL, so long as alphabetical order is maintained. (If alphabetical order is not maintained, RESTORE will report that the member is not on the tape.) RESTORE will restore members from tapes written by previous releases. When Valid RESTORE can only be used in batch utility not communicating by LU 6.2. The user must have OPER or ADM command access level. The member library must already exist. Use in a Procedure Return Codes: OK CK ED LI NF Successful. Member is a part of a checkout relationship. Member is being edited. Member has active LIST sessions. One of the following: • Member not found on tape. • Library not found in BIM-EDIT. • RESTORE commands are not in alphabetical order. Examples The following is a sample RESTORE job stream: // JOB BIJREST RESTORE MEMBER // TLBL BIFLOG // ASSGN SYS004,TAPE // PAUSE MOUNT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS RESTORE OM20.OMREXIO LABEL=YES RESTORE OM20.OMREXOP OMTEMP.OMREXOP /* /& The following sample sets PPDCOND to allow errors to occur: // JOB BIJREST RESTORE MEMBERS // TLBL BIFLOG // ASSGN SYS004,TAPE // PAUSE MOUNT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS SET PPDCOND,1 RESTORE LIB.MEMBER1 RESTORE LIB.MEMBER3 RESTORE LIB.MEMBER2 /* /& Page 346 BIM-EDIT System Reference Manual RESTORE (VSE version) Assuming that LIB.MEMBER3 does not exist, the following output would be generated on SYSLST by the above example: SET PPDCOND,1 ## VARIABLE HAS BEEN SET ## RESTORE LIB.MEMBER1 ## MEMBER "LIB.MEMBER1" RESTORED ## RESTORE LIB.MEMBER3 (BIGNFTXM) ** MEMBER "LIB.MEMBER3" NOT FOUND ** RESTORE LIB.MEMBER2 ## MEMBER "LIB.MEMBER2" RESTORED ## Chapter 8. Operator, Administrator Commands Page 347 RESTORE (MVS version) RESTORE (MVS version) Use RESTORE to re-create a specified member from a logical backup tape. Required Operands MEM is the library.member to be restored from the logical backup tape. Optional Operands NMEM is the new library.member name to which MEM is to be restored. The BIFLOG tape created by BACKUPG will be used as input. On MVS, input will be read from ddname BIFLOG. The destination library must exist on the system before it can be restored to. If a member found on tape already exists in the LIB library, the member in the LIB library is replaced with the one from tape. However, RESTORE will terminate if it attempts to replace a member which is part of a checkout relationship or has EDIT or LIST sessions open against it at the time of the RESTORE. If you want to avoid the termination of the RESTORE, you can set PPDCOND to 1. This will cause one or more messages to be generated describing the reason a member could not be restored, and then processing will continue with the next member to be restored. Any checkout relationships that exist on the backup will be lost when a member is restored. An informational message is written to the output report containing all information about the original checkout relationship. The checkout relationships for restored members can be re-established using the CHECKRST command. RESTORE retrieves the member as it was in the database at the time BACKUPG or BACKUPS wrote the tape. In particular, a member which had an EDIT session open at the time of the backup will be restored as if an END NOSAVE had been done. Multiple members can be restored in one batch utility job. The RESTORE commands must be in alphabetical order by library.member name. RESTORE can be intermixed with RESTOREL, so long as alphabetical order is maintained. (If alphabetical order is not maintained, RESTORE will report that the member is not on the tape.) RESTORE will restore members from tapes written by previous releases. When Valid RESTORE can only be used in batch utility not communicating by LU 6.2. The user must have OPER or ADM command access level. The member library must already exist. Use in a Procedure Return Codes: Page 348 BIM-EDIT System Reference Manual RESTORE (MVS version) OK CK ED LI NF Successful. Member is a part of a checkout relationship. Member is being edited. Member has active LIST sessions. One of the following: • Member not found on tape. • Library not found in BIM-EDIT. • RESTORE commands are not in alphabetical order. Example The following is a sample RESTORE job stream: //RESTOREG JOB .... //BIMUTIL EXEC PGM=BIMUTIL //STEPLIB DD DSN=BIMEDIT.LOADLIB,DISP=SHR //BIFLOG DD DSNAME=BIFLOG,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), // VOL=SER=BIM104 //SYSPRINT DD SYSOUT=A //SYSIN DD * LOGON $SYS,$SYS RESTORE OM20.OMREXIO RESTORE OM20.OMREXOP OMTEMP.OMREXOP /* The following sample sets PPDCOND to allow errors to occur: //RESTOREG JOB .... //BIMUTIL EXEC PGM=BIMUTIL //STEPLIB DD DSN=BIMEDIT.LOADLIB,DISP=SHR //BIFLOG DD DSNAME=BIFLOG,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), // VOL=SER=BIM104 //SYSPRINT DD SYSOUT=A //SYSIN DD * LOGON $SYS,$SYS SET PPDCOND,1 RESTORE LIB.MEMBER1 RESTORE LIB.MEMBER3 RESTORE LIB.MEMBER2 /* /& Assuming that LIB.MEMBER3 does not exist, the following output would be generated on SYSPRINT by the above example: SET PPDCOND,1 ## VARIABLE HAS BEEN SET ## RESTORE LIB.MEMBER1 ## MEMBER "LIB.MEMBER1" RESTORED ## RESTORE LIB.MEMBER3 (BIGNFTXM) ** MEMBER "LIB.MEMBER3" NOT FOUND ** RESTORE LIB.MEMBER2 ## MEMBER "LIB.MEMBER2" RESTORED ## Chapter 8. Operator, Administrator Commands Page 349 RESTOREL (VSE version) RESTOREL (VSE version) Use RESTOREL to re-create all the members of a specified library from a logical backup tape. Required Operands LIB is the library to be restored from the logical backup tape. Optional Operands NLIB is the new library name to which LIB is to be restored. The following parameters are valid only on the first RESTORE or RESTOREL command read by BIMUTIL. OPEN is the value for the tape open option. It may be specified as REWIND or NOREWIND. The default is REWIND. CLOSE is the value for the tape close option. It may be specified as REWIND, NOREWIND or UNLOAD. The default is UNLOAD. LABEL is the value for the tape label option. It may be specified as YES or NO. YES indicates that the tape created will be a VSE standard label tape. NO means that the tape is unlabelled. The default is YES. PURGE is used to specify whether RESTOREL should attempt to purge the members in the target library prior to doing the restore. It is not possible to purge the following: • • • a master member (i.e., check status is on) a member that is part of a checkout relationship a member that is password protected The BIFLOG tape created by BACKUPG or BACKUPS job will be used as input. On VSE, the logical unit SYS004 must be assigned to the tape drive. The destination library must exist on the system before it can be restored to. If a member found on tape already exists in the LIB library, the member in the LIB library is replaced with the one from tape. However, RESTOREL will terminate if it attempts to replace a member which is part of a checkout relationship or has EDIT or LIST sessions open against it at the time of the RESTOREL. If you want to avoid the termination of the RESTOREL, you can set PPDCOND to 1. This will cause one or more messages to be generated describing the reason a member could not be restored, and then processing will continue with the next member to be restored. Any checkout relationships that exist on the backup will be lost when a member is restored. An informational message is written to the output report containing all information about the original checkout relationship. The checkout relationships for restored members can be re-established using the CHECKRST command. Page 350 BIM-EDIT System Reference Manual RESTOREL (VSE version) RESTOREL retrieves members as they were in the database at the time BACKUPG or BACKUPS wrote the tape. In particular, a member which had an EDIT session open at the time of the backup will be restored as if an END NOSAVE had been done. Multiple libraries can be restored in one batch utility job. The RESTOREL commands must be ordered by library name. RESTOREL can be intermixed with RESTORE commands, so long as alphabetical order is maintained. RESTOREL will restore members from tapes written by previous releases. When Valid RESTOREL can only be used in batch utility not communicating by LU 6.2. The user must have OPER or ADM command access level. The library must already exist. Use in a Procedure Return Codes: OK CK ED LI NF Successful. Some member is a part of a checkout relationship. Some member is being edited. Some member has active LIST sessions. One of the following: • No members found on tape. • Library not found in BIM-EDIT. • RESTOREL commands are not in alphabetical order. Example The following is a sample RESTOREL job stream: // JOB BIJRSTL RESTORE LIBRARY // TLBL BIFLOG // ASSGN SYS004,TAPE // PAUSE MOUNT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS RESTOREL OM20 LABEL=YES RESTOREL OM30 OMTEMP /* /& Chapter 8. Operator, Administrator Commands Page 351 RESTOREL (MVS version) RESTOREL (MVS version) Use RESTOREL to re-create all the members of a specified library from a logical backup tape. Required Operands LIB is the library to be restored from the logical backup tape. Optional Operands NLIB is the new library name to which LIB is to be restored. PURGE is used to specify whether RESTOREL should attempt to purge the members in the target library prior to doing the restore. It is not possible to purge the following: • • • a master member (i.e., check status is on) a member that is part of a checkout relationship a member that is password protected The BIFLOG tape created by BACKUPG or BACKUPS job will be used as input. On MVS, input will be read from ddname BIFLOG. The destination library must exist on the system before it can be restored to. If a member found on tape already exists in the LIB library, the member in the LIB library is replaced with the one from tape. However, RESTOREL will terminate if it attempts to replace a member which is part of a checkout relationship or has EDIT or LIST sessions open against it at the time of the RESTOREL. If you want to avoid the termination of the RESTOREL, you can set PPDCOND to 1. This will cause one or more messages to be generated describing the reason a member could not be restored, and then processing will continue with the next member to be restored. Any checkout relationships that exist on the backup will be lost when a member is restored. An informational message is written to the output report containing all information about the original checkout relationship. The checkout relationships for restored members can be re-established using the CHECKRST command. RESTOREL retrieves members as they were in the database at the time BACKUPG or BACKUPS wrote the tape. In particular, a member which had an EDIT session open at the time of the backup will be restored as if an END NOSAVE had been done. Multiple libraries can be restored in one batch utility job. The RESTOREL commands must be ordered by library name. RESTOREL can be intermixed with RESTORE commands, so long as alphabetical order is maintained. RESTOREL will restore members from tapes written by previous releases. Page 352 BIM-EDIT System Reference Manual RESTOREL (MVS version) When Valid RESTOREL can only be used in batch utility not communicating by LU 6.2. The user must have OPER or ADM command access level. The library must already exist. Use in a Procedure Return Codes: OK CK ED LI NF Successful. Some member is a part of a checkout relationship. Some member is being edited. Some member has active LIST sessions. One of the following: • No members found on tape. • Library not found in BIM-EDIT. • RESTOREL commands are not in alphabetical order. Example The following is a sample RESTOREL job stream: //RESTOREL JOB .... //BIMUTIL EXEC PGM=BIMUTIL //STEPLIB DD DSN=BIMEDIT.LOADLIB,DISP=SHR //BIFLOG DD DSNAME=BIFLOG,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), // VOL=SER=BIM104 //SYSPRINT DD SYSOUT=A //SYSIN DD * LOGON $SYS,$SYS RESTOREL OM20 RESTOREL OM30 OMTEMP /* Chapter 8. Operator, Administrator Commands Page 353 SETKEYS SETKEYS Use SETKEYS to set standard BIM-EDIT PF keys. SETKEYS has no operands. As distributed, SETKEYS sets the commands associated with the PF keys as indicated below: ENTER PF1/PF13 PF2/PF14 PF3/PF15 PF4/PF16 PF5/PF17 PF6/PF18 'NEXT' 'SCR AUD' 'REF' 'END' 'SAVE;PROC' 'SCR SP' 'OPEN' PF7/PF19 PF8/PF20 PF9/PF21 PF10/PF22 PF11/PF23 PF12/PF24 'BACK' 'FOR' 'VIEW 1' 'VIEW 53' 'ROT -' 'ROT' You may change the function of an individual PF key using the SET or KEYS commands. The System Administrator may create a site-customized version of SETKEYS by copying procedure BIPSTKY from $SYS.PROC to $SIT.PROC and changing it. If this is done, the Site command table will also need to be updated. See Chapter 11, "Customization", in the BIM-EDIT System Reference Manual. Use in a Procedure SETKEYS normally returns OK. (See SIBRETCD.) SETKEYS is implemented by system procedure BIPSTKY. Example Set standard PF keys for the current user: => SETKEYS Page 354 BIM-EDIT System Reference Manual SHUT SHUT Use SHUT to close BIM-EDIT for normal use. SHUT terminates all active BIM-EDIT tasks. SHUT may be issued from any BIM-EDIT task (i.e. from either online or batch). On VSE, if BIM-EDIT is running as a subtask in a CICS partition, SHUT is not normally used because shutdown is handled as part of the CICS shutdown PLT processing. You can use SHUT in this environment to shut BIM-EDIT down earlier than CICS but it has limited value since the only practical way to restart BIM-EDIT in this environment is to cycle CICS. Under normal operations, there is no requirement to shut BIM-EDIT down. All daily activities can be run while users are on BIM-EDIT (although BACKUPG locks out certain commands and BACKUPP and VERIFY lock out all access to BIM-EDIT while they are running). Even modifications to BIM-EDIT itself do not normally require shutdown (see NEWCOPY command). BIM-EDIT does not require an orderly shutdown for its libraries to maintain integrity. You must shut down BIM-EDIT prior to a complete library restore. The principal reasons why you may WANT to shut down BIM-EDIT are: • To obtain valid end-of-job accounting statistics • To free the resources it occupies (i.e. the partition or region) When Valid The user must have OPER or ADM command access level. Use in a Procedure Return codes are not relevant because BIM-EDIT terminates. Examples Shut down BIM-EDIT: => shut Shut down BIM-EDIT from a batch job: VSE Job to shut down BIM-EDIT // JOB BIMESHUT // EXEC BIMUTIL LOGON $BKP,$BKP SHUT /* /& Chapter 8. Operator, Administrator Commands Page 355 SHUT MVS Job to shut down BIM-EDIT //BIMESHUT JOB //BIMUTIL EXEC //STEPLIB DD //SYSPRINT DD //SYSIN DD LOGON $BKP,$BKP SHUT /* Page 356 .... PGM=BIMUTIL DSN=BIMEDIT.LOADLIB,DISP=SHR SYSOUT=A * BIM-EDIT System Reference Manual TRACE TRACE Use TRACE to activate or deactivate the internal trace facility. The trace facility records information about the routines BIM-EDIT executes. Optional Operands OPER Specify "ON" to start the trace. Specify "OFF" to stop the trace. Specify "INQ" to display the current trace status. Specify "PRT" to route the output to SYSLST. Use of the "PRT" option will result in many thousands of lines of output. If not specified, "INQ" is assumed. QUAL is a qualifier to limit trace's operation. Specify a user id or a terminal id for which tasks are to be traced. If not specified, all tasks are traced. The trace facility is implemented as command module BICTRCE. When active, all BIMEDIT tasks will generate entries in an internal wraparound memory table, the layout of which is shown in the BICTRCE source code. TRACE is intended for use under controlled conditions with assistance from BIM technical support personnel. When Valid TRACE cannot be used in a procedure. The user must have OPER or ADM command security. Examples Start the internal trace facility: => trace on or => trace on,lsl (Trace limited to tasks related to user LSL) Stop the internal trace facility: => trace off Display the current trace status: => trace inq Chapter 8. Operator, Administrator Commands Page 357 VERIFY VERIFY Use VERIFY to check the integrity of the BIM-EDIT library. If VERIFY detects an error, BIM-EDIT will immediately terminate with a dump. If all is well, a message indicating such will be displayed. If SIBOUTPT is set to a 'P' the message is printed on the system printer. If SIBOUTPT is an 'N' messages are displayed on the system console. If SIBOUTPT is a 'D' it will be set to 'P' for the duration of the VERIFY and then set back to 'D'. As VERIFY runs, it prints a line for every entity being checked. If an error is discovered, the problem is probably with the entity last printed. VERIFY does not correct problems. It is provided primarily as a user confidence tool in the event that a reason exists to suspect library corruption. If VERIFY detects errors, save the dump it produces and contact your BIM technical support representative. Damaged entities can typically be purged or otherwise deleted. VERIFY locks out all other users while it processes. When Valid VERIFY can only be used in batch utility. The user must have OPER or ADM command access level. Use in a Procedure VERIFY normally returns OK. (See SIBRETCD.) Example The following is a sample VERIFY job stream: VSE Job Control // JOB BIJVRFY // EXEC BIMUTIL LOGON $SYS,$SYS VERIFY /* /& VERIFY INTEGRITY MVS Job Control //VERIFY JOB //BIMUTIL EXEC //STEPLIB DD //SYSPRINT DD //SYSIN DD LOGON $SYS,$SYS VERIFY /* Page 358 .... PGM=BIMUTIL DSN=BIMEDIT.LOADLIB,DISP=SHR SYSOUT=A * BIM-EDIT System Reference Manual ZAP ZAP Use ZAP to alter a value in memory for a specified module, address or location within the MMP. Required Operands MOD is the name of any BIM-EDIT module, a valid address within the BIM-EDIT partition, or MMP to designate the BIFARMP module. The address associated with this parameter will be combined with the next parameter, the OFSET value, to determine the address where the data verification and replacement will be attempted. OFSET is the displacement value from the MOD address where the data verification and replacement will be attempted. DATA is the verify and replace values separated by a colon (:). Each byte is represented by two characters. The verify and replace portions of the DATA field must be of equal length and contain an even number of characters. The maximum amount of data that can be verified:replaced with a single ZAP command is 16 characters. When Valid The user must have ADM security level and is available online, from a batch utility or within a procedure. Use in a Procedure Return Codes: OK IA IB IL IO IR IS IV NV SC Successful. Module or Address is invalid. An odd number of characters specified for a byte. Invalid length. Invalid offset. Invalid replace. Invalid separator character. Invalid verify. Verify data not found. Inadequate access level. Examples => zap mmp 800 b800b802:c7d6d740 (MMP at offset 800) => zap bicazap 20 47f02054:47002054 (BICAZAP at offset 20) => zap c50b82 0 d203:d207 (memory at address C50B82) Chapter 8. Operator, Administrator Commands Page 359 Chapter 9. Installation and Maintenance This chapter discusses the first time installation of BIM-EDIT on your system. It is divided into two large sections: • First Time Installation on VSE • First Time Installation on MVS These sections are step-by-step installation "recipes". Following them are two smaller sections that cover topics common to both systems: • Installing a BIM-EDIT System under an Alternate System Name • First Time Logon • Initial Contents of Libraries • Common Problems Upgrades If you are upgrading your version of BIM-EDIT, you should not use the procedures in this chapter; you should receive instructions with the upgrade tape which are specific to the versions you are upgrading from and to. If you did not receive instructions, or they do not appear to correspond to the versions you are actually upgrading between, please contact your BIM technical support representative to be sure you are using the correct procedure. Contacting BIM-EDIT Technical Support BIM and its agents maintain a staff of support technicians to resolve problems and answer questions regarding BIM products. If you need to contact them about a problem with BIM-EDIT, you should be ready to provide: • Release number of the BIM-EDIT you are running. (On the no-session display or the MMPSYREL predefined variable). • Release number of the operating system you are running under. • Whether BIM-EDIT is run in its own partition/region or as a VSE subtask of CICS. • Any memory dump that is relevant to the problem. You may also wish to refer to the "Common Problems" section later in this chapter. If BIM-EDIT "stalls", you should cancel it in such a way as to obtain a dump. Page 360 BIM-EDIT System Reference Manual First Time Installation on VSE First Time Installation on VSE System Prerequisites BIM-EDIT is designed for a certain environment. The following must be available on the host system: • The IBM VSE operating system, with a minimum release level of 1.3.0. (Some features are only available if installed on VSE/SP 2.1 or later.) Software Pursuits MVT can also be used. • IBM POWER or Software Pursuits SPRI spooling. • CICS (minimum release level 1.5) or VTAM or the BIM-EDIT BTAM interface. If several access methods are present, several can be installed. BIM-EDIT can be used by all installed access methods concurrently. • Sufficient memory and disk space to run BIM-EDIT. For the Starter System supporting 8 simultaneous users, a minimum of 832K memory and 14M of disk space is required. Distribution Tape Format The distribution tape contains four files: File #1 Unlabeled SYSIN/POWER Start RDR format JCL to catalog approximately 1100 core image phases. All phases begin with the two characters "BI". Record size is 80 bytes, block size is 4000. This file must be deblocked before being used as SYSIN, can be used as is for POWER Start RDR. File # 2 Null File File #3-5 Labeled BIM-EDIT starter library. The starter library provides a user with an ID of "$SYS". Its password is "$SYS". Installation Steps Depending on your operating system and/or the size of your POWER Reader Queue, there are two options available for the installation: 1. POWER Start RDR. This requires space in your Reader Queue for a job of approximately 21,000 lines. 2. SYSIN install. This requires that the first file of the installation tape be deblocked: TTR,190,191,80,1 (190 and 191 are the input and output drives) -orTTR,190,191,FB,80,F,80 (VSE/ESA 2.1 and above) Chapter 9. Installation and Maintenance Page 361 First Time Installation on VSE Step-by-step installation instructions follow: 1. Review the BIM-EDIT Release Letter provided with the distribution tape for potential impact on the installation process. 2a. To perform a POWER Start RDR install, mount the BIM-EDIT distribution tape on a drive and enter the following command: S RDR,cuu where cuu is the address of the tape drive. Once the tape has been loaded, alter the job BIM-EDIT to run in a partition that has assignments for linking programs. 2b. To perform a SYSIN install, submit or release a PAUSE job such as the following that will run in a partition that has assignments for linking programs: // JOB PAUSE // PAUSE /& When the PAUSE statement is processed, enter: LISTIO SYSRDR VSE will display the current assignment for SYSRDR. This value will be needed later in this step. Now assign SYSIN to the unblocked tape created in the previous step. For example, if the unblocked tape is mounted on tape unit 181, you would enter: ASSGN SYSIN,181 (permanent ASSGN; no slashes) VSE will display a READY message. Enter a null command, that is, enter the partition number without any data. JCL will now be processed from the tape. 3. You will be prompted to enter a load and object library assignment. For VSE release 1.3.0 and VSE release 1.3.5, you should enter two assignments like: // LIBDEF CL,TO=USRCL9 // LIBDEF RL,TO=USRRL9 For more recent VSE versions, you should enter an assignment like: // LIBDEF *,CATALOG=BIMLIB.EDIT VSE will display a READY message. Enter a null command. For VSE releases more recent than 1.3.5, during the step when object modules are cataloged, VSE will display the message: L146A ENTER THE LIBRARY.SUBLIBRARY SPECIFICATION TO BE PROCESSED Respond by re-entering the library and sublibrary from the LIBDEF statement. For the LIBDEF in the example above, you would respond: BIMLIB.EDIT Page 362 BIM-EDIT System Reference Manual First Time Installation on VSE Approximately 1250 phases and 2 object modules will be cataloged. The phases will require approximately 2100 1,024 byte LIBR blocks. You will then be prompted to reassign SYSIN. If you are doing a POWER Start RDR install, end-of-block this pause, otherwise assign SYSIN to the address where SYSRDR was assigned at the beginning of step 2b (refer to LISTIO output). If SYSRDR was assigned to address 02C, you would enter: ASSGN SYSIN,02C 4. Apply zaps according to the zap sheet provided with the distribution tape. Running as a Sub-task of CICS 5. Decide where BIM-EDIT will run. The choices are in its own partition, as a VSE subtask within a partition running CICS, or as a VSE subtask in a partition running the BIM-EDIT BTAM interface. A single BIM-EDIT database can also be accessed from multiple CICS systems concurrently and from multiple physical or virtual machines concurrently using the VTAM LU 6.2 interface. Thus, at some sites there may be many possible choices regarding where to run BIM-EDIT. For interactive users and batch access, BIM-EDIT functions practically identically however it is run. That is, wherever it is run, CICS users can communicate with BIM-EDIT using CICS tasks, VTAM users can communicate with BIM-EDIT directly through VTAM, users whose terminals are assigned to the BTAM interface can communicate through BTAM, and Batch Utility and Application Interface programs will operate. If there is a choice of physical or virtual machines, BIM recommends you install BIM-EDIT on the machine which will originate most of the access to BIM-EDIT. This is because same-machine access is simpler to install and more efficient than cross-machine access. An overriding consideration may be that BIM-EDIT does not allow cross-machine backups and restores. BIM's strong recommendation is not to run BIM-EDIT in a CICS partition (that is, to run BIM-EDIT in its own partition or as a subtask of the BTAM interface) for the following reasons: • BIM-EDIT can be active even though its CICS is not. BIM-EDIT batch jobs, BIMEDIT Application Interface programs, and access through VTAM, other CICS, or BTAM can run even though CICS is down. • BIM-EDIT is protected from corruption caused by other CICS tasks. When BIMEDIT is running in its own partition, it's completely safe to access BIM-EDIT from a CICS system used for testing new applications. There is virtually no possibility that the CICS applications can corrupt BIM-EDIT. The benefit is significant because BIM-EDIT buffers a great deal of text in memory. If BIMEDIT is run as a VSE subtask within a CICS partition, it is vulnerable to memory corruption caused by other CICS tasks. • In a multiple address space system, it can be advantageous to offload BIMEDIT's virtual storage requirement to a separate address space. If you want to maximize the amount of virtual storage available in your production CICS, you can set up BIM-EDIT to run in its own partition in another address space. Chapter 9. Installation and Maintenance Page 363 First Time Installation on VSE • CICS systems can be volatile. When a CICS system "crashes", BIM-EDIT doesn't miss a beat. If BIM-EDIT is running in its own partition, and if a CICS system accessing BIM-EDIT "crashes", BIM-EDIT itself does not "crash", but continues on its way. It simply logs off those users that were accessing BIM-EDIT from that CICS. (Whether BIM-EDIT is running in its own partition or as a VSE subtask in a CICS partition, recovery is totally automatic, so "crashes" are not an overriding consideration). • There is no memory penalty for running in its own partition -- the same amount of virtual storage will be needed by BIM-EDIT wherever it runs. (BIM-EDIT uses primarily GETVIS storage, which it does not deallocate while it is running -- therefore it will not "pool" memory with other CICS applications.) • It is somewhat less work to install BIM-EDIT in a separate partition, since CICS PLT table entries are not required. (The effort to define or modify a partition of appropriate characteristics is the same.) • Resolution of any problems is made more complicated by the extraneous CICS code/data in the partition. • Access to the VSE sublibraries is not available when BIM-EDIT is run as a VSE subtask of CICS. BIM feels the only valid reason for running BIM-EDIT as a subtask of CICS is that all partitions have been allocated for other purposes on a pre-VSE/ESA system. If you decide to run BIM-EDIT as a subtask of CICS, you may have to decide which CICS to run it under. After you are confident of the installation, BIM recommends putting it under a "production" CICS rather than a "test" CICS, due to the decreased likelihood of memory corruption and greater "up time" of production CICS environments. To perform a quick temporary installation of BIM-EDIT on VSE, the easiest approach is often to run BIM-EDIT in a one megabyte or larger partition that you can "borrow" part of the day (at some sites the Test CICS partition can be used this way). Whether it is simplest to set up access to this temporary BIM-EDIT from CICS or directly from VTAM depends on the site. Adding a VTAM APPL is simple but usually requires cycling VTAM. The CICS access is more complex to install but can be done without cycling by using IBM's Resource Definition Online (CEDA transaction). Storage Requirements 6. Determine storage requirements for BIM-EDIT. The following chart gives virtual storage as a function of the number of simultaneous users expected on BIM-EDIT. Max users logged on 8 (minimum) 16 Virtual storage 1536K 2560K MMP16KSP (see below) 70 135 Max users logged on 32 64 Virtual storage 3072K 4096K MMP16KSP (see below) 167 210 (Sometimes system software requires a certain amount of virtual storage within the GETVIS area of each partition. BIM-EDIT automatically reserves 64K for such uses. At present, tape and disk managers are the only products that BIM has identified as having additional requirements. After you've determined BIM-EDIT's requirement, Page 364 BIM-EDIT System Reference Manual First Time Installation on VSE be sure to add requirements posed by such products. If you're not sure of the requirements, 48K is probably an adequate additional allocation.) If BIM-EDIT is run in its own partition, the partition size should be the calculated virtual storage amount plus the EXEC size of 4K if direct access to the VSE sublibraries is not to be used or 180K for the LIBR interface if direct access to the VSE sublibraries is to be used. If BIM-EDIT is run as a subtask of the BTAM interface, the partition size should be the calculated virtual storage amount plus 64K if direct access to the VSE sublibraries is not to be used or 220K for the LIBR interface if direct access to the VSE sublibraries is to be used. If BIM-EDIT is run as a VSE subtask of CICS, the amount used from CICS storage will be 4K, and the remainder should be available as CICS GETVIS. (The LIBR interface is not supported when BIM-EDIT is running VSE subtask of CICS.) The chart also gives the value for predefined BIM-EDIT variable MMP16KSP, which is used to limit the amount of virtual memory BIM-EDIT will attempt to claim when it is started. The value of MMP16KSP which is distributed with the starter system is 70. In a multiple address space system, BIM-EDIT can run in any address space, and service online or batch access in its own or in any other address space. You can maximize the amount of virtual storage available in one address space by assigning BIM-EDIT's requirement to another address space. Experience will dictate whether to adjust these amounts upward or downward. For discussion on adjusting these amounts and altering MMP16KSP to conform to your initial system size, see "Managing Memory Utilization" in Chapter 10 of this manual. Disk Space Requirements 7. Allocate space for the BIM-EDIT database. The BIM-EDIT database must provide enough space for 3000 4096 byte blocks in order to install a usable starter system. The database can have up to 16 extents, all of which must be of the same disk type. For FBA disk drives, eight FBA blocks equal one BIM-EDIT 4096 byte block. For CKD disk drives, the following table shows the number of BIM-EDIT 4096 byte blocks per track. Disk drive 2314 3330 3340 3350 Blocks/track 1 3 2 4 Disk drive 3375 3380 3390 9345 Blocks/track 8 10 12 10 For more discussion of disk space requirement, see "Disk Space Management" in Chapter 10 of this manual. 8. Set up file access. BIM-EDIT refers to three files: BIFLIB The BIM-EDIT database. Chapter 9. Installation and Maintenance Page 365 First Time Installation on VSE BIFPWRQ The POWER queue file IJQFILE. BIFPWRD The POWER data file IJDFILE. An MMP variable MMPPWRNM is provided, which when set to a value of "1" will cause BIM-EDIT to use the IJQFILE and IJDFILE names to access the POWER queue and data files. The SYS numbers on the labels for IJQFILE and IJDFILE must be assigned properly in the BIM-EDIT partition. Update the DOS standard label area to provide DLBL and EXTENT statements for the files. Alternatively, the statements can be included in job streams where required. The following JCL statements can serve as an example (assumes FBA disk drives, adjust for CKD): // // // // // // DLBL EXTENT DLBL EXTENT DLBL EXTENT BIFLIB,'EDTR.BIFLIB',99/365,DA SYS061,DSK260,1,0,60000,240000 BIFPWRQ,'POWER.QUEUE.FILE',99/365,DA SYS062,DSK260,1,0,42464,704 BIFPWRD,'POWER.DATA.FILE',99/365,DA SYS063,DSK261,1,0,260770,40000 DLBL and EXTENT information for BIFPWRQ and BIFPWRD should correspond to information from the existing DLBL and EXTENT statements for the POWER queue file IJQFILE and the POWER data file IJDFILE. File access to these files is not required if you are running SPRI. The SYS numbers chosen are optional. It is recommended that these SYS numbers be permanently assigned at IPL time. Alternatively, they can be assigned in job streams where required. If you run ICCF and wish to use the BIM-EDIT commands that access its data while converting to BIM-EDIT, you may also need to define DTSFILE. However, this is not necessary if the DLBL and EXTENT statements for DTSFILE are already in the DOS Standard Label Area. // DLBL DTSFILE,'ICCF.LIBRARY',99/365,DA // EXTENT SYS010,SYSWK3,1,0,3420,240000 Access to DTSFILE is required only while converting from ICCF to BIM-EDIT. There are only two job streams that require access to the DLBL, EXTENT, and ASSGN statements: the BIM-EDIT restore job stream and the job stream that runs BIM-EDIT. (The job stream that runs BIM-EDIT could be a job stream executing BIMEDIT, a job stream executing the BTAM interface, or a job stream executing CICS, depending on what you decided in step 6.) Batch jobs and other online access programs do not need access to these statements. 9. Page 366 Restore the starter database. A sample job stream follows. The starter database is the third file on the tape, hence the MTC FSF statement. If DLBL and EXTENT statements for the BIFLIB file are not in the DOS standard label area, they must also be included. If the ASSGNs for the BIFLIB file are not permanent, they must also be included. BIM-EDIT System Reference Manual First Time Installation on VSE // // // // // // /& JOB RESTORE RESTORE BIM-EDIT STARTER LIBRARY TLBL BIFLOG ASSGN SYS004,TAPE PAUSE MOUNT TAPE MTC FSF,SYS004,2 EXEC BIMREST,SIZE=6K,PARM='TYPE=LOGICAL' When the restoration is complete, BIM-EDIT will display the following message. BIRRSLGA LOGICAL RESTORE COMPLETE VTAM Definitions for BIM-EDIT 10. If you are running the VTAM telecommunications access method, you can provide direct VTAM access to BIM-EDIT. Note that providing direct VTAM access does not preclude accessing BIM-EDIT through CICS or BTAM. All BIM-EDIT access methods can be used concurrently. If you only want direct online access (that is, you do not want to access BIM-EDIT from a workstation and you do not want to access BIM-EDIT from a physical or virtual machine other than the one it runs on), add the following APPL statement to your VTAM table definitions: BIMEDIT APPL AUTH=(ACQ),DSESLIM=4 If you choose a name other than BIMEDIT for the APPL statement, see "Installing BIM-EDIT under an Alternate System Name" for additional installation requirements. If you want access from a workstation or you want to access BIM-EDIT from a physical or virtual machine other than the one it runs on, use APPL statements similar to the following to provide LU 6.2 access to BIM-EDIT: BIMEDIT BIMUTIL BIMAPPL APPL AUTH=(ACQ),APPC=YES,MODETAB=BIMMODE,DSESLIM=4 APPL AUTH=(ACQ),APPC=YES,MODETAB=BIMMODE,DLOGMOD=EDITLU62 APPL AUTH=(ACQ),APPC=YES,MODETAB=BIMMODE,DLOGMOD=EDITLU62 where BIMMODE represents the name of a site-specific MODETAB. You will need to create a MODETAB or add an entry like the following to an existing one. MODEENT LOGMODE=EDITLU62,FMPROF=X'13',TSPROF=X'07', PRIPROT=X'B0',SECPROT=X'B0',COMPROT=X'D0B1', RUSIZES=X'8888',ENCR=B'0000',TYPE=0, PSERVIC=X'060200000000000000000300' You may wish to review "ACF/VTAM Resource Definition Reference" (IBM manual SC31-6412, as of VTAM Version 3.3). (If BIM-EDIT is the first application you have installed that uses APPC=YES, there will be a significant increase in the memory requirement for VTAM when it is restarted. You may need to provide an "escape path" if your partition size proves insufficient.) Shut down and restart VTAM. Chapter 9. Installation and Maintenance Page 367 First Time Installation on VSE CICS Definitions for BIM-EDIT 11. Add entries to the tables for any CICS that is to access BIM-EDIT. Access to BIM-EDIT from CICS is provided by small CICS Command-Level pseudo-conversational access transaction that must be defined to CICS, whether BIM-EDIT is running in its own partition or as a subtask of CICS. (The following table entries refer to TRANSID=EDTR. "EDTR" is not a required TRANSID -- you can use whatever is more appropriate for your site. However, you should note that EDTR is the transaction referenced in the BIM-EDIT documentation. In addition, if you run BIM-EDIT pseudo-conversational, the TRANSID you use must be in table BIMCSDT, which is shipped with the value "EDTR". To revise BIMCSDT, see "Changing the CICS Data Module (BIMCSDT)" in Chapter 11 of this manual. If you have no way to access BIM-EDIT online until you make this change, use the PUNCH command in BIM-EDIT batch utility to extract $SYS.SRC.BIMCSDT and $SYS.SRC.BI$CSD.) CICS Table Entries DFHPCT TYPE=ENTRY,TRANSID=EDTR,PROGRAM=BIMCSCL DFHPCT TYPE=ENTRY,TRANSID=EDT2,PROGRAM=BIMCSCL,SCRNSZE=ALTERNATE DFHPPT TYPE=ENTRY,PROGRAM=BIMCSCL,PGMLANG=ASSEMBLER DFHPPT TYPE=ENTRY,PROGRAM=BIMCSDT,RES=YES,PGMLANG=ASSEMBLER CICS Resource Definition Online Entries (CEDA) CEDA CEDA CEDA CEDA CEDA DEFINE DEFINE DEFINE DEFINE DEFINE GROUP(EDIT) GROUP(EDIT) GROUP(EDIT) GROUP(EDIT) GROUP(EDIT) PROF(EDITALT) SCRNSIZE(ALT) UCTRAN(NO) PROGRAM(BIMCSCL) LANG(A) PROGRAM(BIMCSDT) LANG(A) RES(YES) TRAN(EDTR) PROG(BIMCSCL) TRAN(EDT2) PROG(BIMCSCL) PROF(EDITALT) The entry for EDT2 is used for alternate screen mode processing. The transaction ids used for EDTR and EDT2 must both have the same first three characters. The 'EDTR' entry must have an 'R' as the fourth character, and the 'EDT2' entry must have a '2' as the fourth character. (If you intend to access CICS programs as BIM-EDIT commands, you should modify the PCT entry to provide adequate TWA size for these programs. See "Creating Commands Which Access CICS Transactions (BIFXCTR Table)" in Chapter 11 of this manual.) You should not need to make any other modifications for CICS unless it is running BIM-EDIT as a subtask -- the BIM-EDIT CICS access module does not access any files and its virtual storage requirement within a CICS partition is negligible. Page 368 BIM-EDIT System Reference Manual First Time Installation on VSE Running BIM-EDIT as a VSE subtask under CICS 12. If BIM-EDIT is to run as a VSE subtask in a partition running CICS, you must alter the CICS tables and the CICS job stream for that CICS. Include the following entries in the tables for a CICS running BIM-EDIT: CICS Table Entries DFHPPT TYPE=ENTRY,PROGRAM=BIMCSSH,PGMLANG=ASSEMBLER DFHPPT TYPE=ENTRY,PROGRAM=BIMCSST,RES=YES,PGMLANG=ASSEMBLER DFHPPT TYPE=ENTRY,PROGRAM=BIMEDIT,RES=YES,PGMLANG=ASSEMBLER CICS Resource Definition Online Entries (CEDA) CEDA DEFINE GROUP(EDIT) PROGRAM(BIMCSSH) LANG(A) CEDA DEFINE GROUP(EDIT) PROGRAM(BIMCSST) LANG(A) RES(YES) CEDA DEFINE GROUP(EDIT) PROGRAM(BIMEDIT) LANG(A) RES(YES) Startup PLT Entry DFHPLT TYPE=ENTRY,PROGRAM=BIMCSST Shutdown PLT Entry (before the entry for DFHDELIM) DFHPLT TYPE=ENTRY,PROGRAM=BIMCSSH PLTs (Program List Tables) can be troublesome. If your site is already using startup and shutdown PLTs, then simply add the BIM-EDIT entries to those tables. If PLTs are not in use, the CICS manuals should be reviewed. See the DFHSIT parameters PLTPI and PLTSP, as well as the DFHPLT section. Note that the name of both the startup and shutdown PLT tables (DFHPLTxx) must also appear in the DFHPPT. Modify the CICS job stream as follows: • Ensure that there is enough GETVIS area to accommodate BIM-EDIT's virtual storage requirement (the additional GETVIS requirement was calculated in step 6). • Add DLBL, EXTENT, and ASSGN statements for BIM-EDIT files as needed. If you've added the DLBL and EXTENT statements to the DOS standard label area, there is no need to include them here. Likewise, if the ASSGNs for these files were made at IPL time, they needn't be included here. 13. If you used the table method for adding CICS definitions, or are running BIM-EDIT as a subtask of CICS, recycle the CICS systems that are to access BIM-EDIT. If BIMEDIT is to run as a VSE subtask in a CICS partition, it is started as part of the startup PLT processing when that CICS system is recycled. 14. If you will access BIM-EDIT solely through the BTAM interface or you plan on running BIM-EDIT as a subtask of the BTAM interface, you should install the BTAM interface at this point. Installation of the BTAM interface is covered in Chapter 12, "BIM-EDIT BTAM Terminal Interface Facility" of this manual. If you plan to use VTAM or CICS to access BIM-EDIT and will not run BIM-EDIT as a Chapter 9. Installation and Maintenance Page 369 First Time Installation on VSE subtask of the BTAM interface, it is easier to install the BTAM interface after BIMEDIT is accessible. Loading BIUAPMD into the SVA 15. If you have any applications or other vendor products that will be interfacing with BIM-EDIT using its "Application Interface", as described in Chapter 6 of this manual, or if you plan on using the "BIM-EDIT Copy Book Facility", as described in Chapter 7 of this manual, then you must load module BIUAPMD into the SVA. The following job stream can be used to load BIUAPMD into the SVA. You will want to integrate this job step into your normal IPL procedure: // LIBDEF PHASE,SEARCH=bimedit.loadlib SET SDL BIUAPMD,SVA /* Starting BIM-EDIT 16. If BIM-EDIT is to run in its own partition, submit a startup job stream similar to the following. If DLBL and EXTENT statements for the BIM-EDIT files are not in the DOS standard label area, they must also be included. If the ASSGNs for these files are not permanent, they must also be included: // JOB BIMEDIT // OPTION PARTDUMP // EXEC BIMEDIT,SIZE=180K /& <- generate dump if abend occurs When BIM-EDIT completes its initialization, the following message will display on the system console: BIMEDITA SYSTEM "BIMEDIT" INITIALIZATION COMPLETE (If you are using a release of VSE prior to SP 2.1, the message will be BIMEDITA SYSTEM "SYSARI" INITIALIZATION COMPLETE In this environment, BIM-EDIT "borrows" a communications resource designated for SQL. If your site uses SQL on a release of VSE prior to SP 2.1, contact your BIM Technical Support Representative.) 17. Logon to BIM-EDIT interactively to check that it is operational and to start customizing BIM-EDIT to your site's needs. These steps are described in the section "First Time Logon" later in this chapter. Page 370 BIM-EDIT System Reference Manual First Time Installation on MVS First Time Installation on MVS System Prerequisites BIM-EDIT/MVS is designed for a certain environment. The following must be available on the host system: • The IBM MVS/SP, MVS/XA, or MVS/ESA operating system. • JES2 spooling. • CICS (minimum release level 1.5), TSO, or VTAM. • Sufficient memory and disk space to run BIM-EDIT. For the Starter System supporting 8 simultaneous users, a minimum of 968K memory and 14M of disk space is required. Distribution Tape Format The distribution tape contains two labeled files. File #1 IEBCOPY of the load library, which contains approximately 1200 load modules. Block size = 6,400. File #2 BIM-EDIT starter library. The starter library provides a user with an ID of "$SYS". Its password is "$SYS". Installation Steps Step-by-step installation instructions follow: 1. Review the System Reference Manual Supplement provided with the distribution tape for potential impact on the installation process. 2. Load the BIM-EDIT load modules into an APF-authorized library by submitting a job stream similar to the following: //BIMINST JOB .... //IEBCOPY EXEC PGM=IEBCOPY //DD1 DD DSN=BIMEDIT.LOADLIB,DISP=(OLD,PASS), // LABEL=(1,SL),UNIT=TAPE,VOL=SER=BIMED1 //DD2 DD DSN=BIMEDIT.LOADLIB,DISP=SHR //SYSPRINT DD SYSOUT=A //SYSIN DD * COPY I=DD1,O=DD2 /* Approximately 1200 modules will be loaded. 200 directory blocks are required. The PDS block size is 6,400 bytes. 3. Apply zaps according to the zap sheet provided with the distribution tape. Chapter 9. Installation and Maintenance Page 371 First Time Installation on MVS SVC 249 4. BIM-EDIT communicates across address spaces through user SVC 249. If SVC 249 is already in use by another software product, BIM-EDIT can be modified to use another SVC number. Contact your BIM technical support representative for instructions. If you do use a different SVC, note that the name of the module supporting the SVC (IGC0024I below) will also change (24I is zoned decimal 249). 5. Cause load module IGC0024I to be loaded as user SVC 249 (type 3, non-pageable link-pack area). For MVS/SP: • Copy load module IGC0024I from the BIM-EDIT load module library to library SYS1.LPALIB. • Ensure that the SVC 249 entry in the user SVC table is defined as type 3 (the entry in the user SVC table distributed with MVS/SP is declared this way). • Flag IGC0024I to reside in the Modified Link Pack Area (MLPA). Make an entry in member IEALPAnn in SYS1.PARMLIB to identify the library from which IGC0024I will be loaded. The entry should look like the following: SYS1.LPALIB IGC0024I Make an entry in member IEASYSnn in SYS1.PARMLIB to identify the IEALPAnn member that holds the MLPA eligible entries. The entry should look like the following: MLPA=nn (where nn is the suffix number of the IEALPA member). Refer to the IBM System Initialization and Tuning Manual for full details on syntax and system specific rules. For MVS/XA and later releases: • Copy load module IGC0024I from the BIM-EDIT load module library to library SYS1.LPALIB. • Add the following statement to member IEASVCnn (where nn is a twodigit number) in library SYS1.PARMLIB: SVCPARM 249,REPLACE,TYPE(3),EPNAME(IGC0024I),APF(NO) • Add the following statement to member IEAFIXnn (where nn is a two-digit number) in library SYS1.PARMLIB: SYS1.LPALIB IGC0024I • Add the following statement to member IEASYSnn (where nn is a two digit number) in library SYS1.PARMLIB: FIX=(nn,NOPROT) (where nn is a two-digit number identifying the nn suffix of member IEAFIXnn mentioned above) Page 372 BIM-EDIT System Reference Manual First Time Installation on MVS 6. Add the following statements to member SCHEDnn (where nn is a two-digit number) to make the indicated programs non-swappable: PPT PPT PPT PPT 7. PGMNAME(BIMEDIT),NOSWAP PGMNAME(BIMUTIL),NOSWAP PGMNAME(BIMREST),NOSWAP PGMNAME(BIMTSED),NOSWAP Determine storage requirements for BIM-EDIT. The following chart gives region size as a function of the number of simultaneous users expected on BIM-EDIT. Max users logged on 8 (minimum) 16 Region size 1536K 2560K MMP16KSP (see below) 70 135 Max users logged on 32 64 Region size 3072 4096 MMP16KSP (see below) 167 210 The chart also gives the value for predefined BIM-EDIT variable MMP16KSP, which is used to limit the amount of virtual memory BIM-EDIT will attempt to claim when it is started. The value of MMP16KSP which is distributed with the starter system is 70. Experience will dictate whether to adjust these amounts upward or downward. For discussion on adjusting these amounts and altering MMP16KSP to conform to your initial system size, see "Managing Memory Utilization" in Chapter 10 of this manual. 8. Determine the number of tracks (or cylinders) needed for the BIM-EDIT library. The minimum size allowed for BIFLIB must provide enough space for 3000 4096 byte blocks. Chapter 9. Installation and Maintenance Page 373 First Time Installation on MVS Multiple Extent BIFLIB The maximum size allowed is 16 allocations or extents on up to 8 disk volumes. The EXTENTS=n operand on the BIMREST PARM= specifies how many allocations are to be used. The default is EXTENTS=1, which will format and use the primary allocation for the dataset. Specifying the maximum, EXTENTS=16, will format the primary allocation, and 15 secondary allocations. The following table shows the number of BIM-EDIT 4096 byte blocks per track, for various device types: Disk drive 2314 3330 3340 3350 Blocks/track 1 3 2 4 Disk drive 3375 3380 3390 9345 Blocks/track 8 10 12 10 For more discussion of disk space requirement, see "Managing Disk Space" in Chapter 10 of this manual. 9. Restore the starter library. A sample job stream follows: //RESTORE //BIMREST //STEPLIB //SYSUDUMP //BIFLOG // //BIFLIB // // JOB EXEC DD DD DD DD ... PGM=BIMREST,TIME=(0,20),PARM='TYPE=LOGICAL,EXTENTS=1' DSN=BIMEDIT.LOADLIB,DISP=SHR SYSOUT=A DSNAME=BIFLOG,UNIT=TAPE,LABEL=(2,SL,EXPDT=98000), VOL=SER=BIMED1 DSNAME=BIMEDIT.BIFLIB,DISP=(NEW,CATLG), SPACE=(CYL,70,,CONTIG),UNIT=SYSDA, VOL=SER=MVS009 When the restoration is complete, BIM-EDIT will display the following message. BIRRSLGA LOGICAL RESTORE COMPLETE VTAM Definitions for BIM-EDIT 10. If you are running the VTAM telecommunications access method, you can provide direct VTAM access to BIM-EDIT. Note that providing direct VTAM access does not preclude accessing BIM-EDIT through CICS or TSO. All BIM-EDIT access methods can be used concurrently. To provide direct VTAM or LU 6.2 access to BIM-EDIT, use APPL statements similar to the following: BIMEDIT BIMUTIL BIMAPPL APPL AUTH=(ACQ),APPC=YES,MODETAB=BIMMODE,DSESLIM=4 APPL AUTH=(ACQ),APPC=YES,MODETAB=BIMMODE,DLOGMOD=EDITLU62 APPL AUTH=(ACQ),APPC=YES,MODETAB=BIMMODE,DLOGMOD=EDITLU62 where BIMMODE represents the name of a site-specific MODETAB. The following is an example of the MODETAB entry required: MODEENT LOGMODE=EDITLU62,FMPROF=X'13',TSPROF=X'07', PRIPROT=X'B0',SECPROT=X'B0',COMPROT=X'D0B1', RUSIZES=X'8888',ENCR=B'0000',TYPE=0, PSERVIC=X'060200000000000000000300' Page 374 BIM-EDIT System Reference Manual First Time Installation on MVS Shut down and restart VTAM. If you choose a name other than BIMEDIT for the APPL statement, see "Installing BIM-EDIT under an Alternate System Name" for additional installation requirements. CICS Definitions for BIM-EDIT 11. Add entries to the tables for any CICS that is to access BIM-EDIT. Access to BIM-EDIT from CICS is provided by small CICS Command-Level pseudo-conversational access transaction. (The following table entries refer to TRANSID=EDTR. "EDTR" is not a required TRANSID -- you can use whatever is more appropriate for your site. However, you should note that EDTR is the transaction referenced in the BIM-EDIT documentation. In addition, if you run BIM-EDIT pseudo-conversational, the TRANSID you use must be in table BIMCSDT, which is shipped specifying "EDTR". To revise BIMCSDT, see "Changing the CICS Data Module (BIMCSDT)" in Chapter 11 of this manual. If you have no way to access BIM-EDIT online until you make this change, use the PUNCH command in BIM-EDIT batch utility to extract $SYS.SRC.BIMCSDT and $SYS.SRC.BI$CSD.) CICS Table Entries DFHPCT TYPE=ENTRY,TRANSID=EDTR,PROGRAM=BIMCSCL DFHPCT TYPE=ENTRY,TRANSID=EDT2,PROGRAM=BIMCSCL,SCRNSZE=ALTERNATE DFHPPT TYPE=ENTRY,PROGRAM=BIMCSCL,PGMLANG=ASSEMBLER DFHPPT TYPE=ENTRY,PROGRAM=BIMCSDT,RES=YES,PGMLANG=ASSEMBLER CICS Resource Definition Online Entries (CEDA) CEDA CEDA CEDA CEDA CEDA DEFINE DEFINE DEFINE DEFINE DEFINE GROUP(EDIT) GROUP(EDIT) GROUP(EDIT) GROUP(EDIT) GROUP(EDIT) PROF(EDITALT) SCRNSIZE(ALT) UCTRAN(NO) PROGRAM(BIMCSCL) LANG(A) PROGRAM(BIMCSDT) LANG(A) RES(YES) TRAN(EDTR) PROG(BIMCSCL) TRAN(EDT2) PROG(BIMCSCL) PROF(EDITALT) The entry for EDT2 is used for alternate screen mode processing. The transaction ids used for EDTR and EDT2 must both have the same first three characters. The 'EDTR' entry must have an 'R' as the fourth character, and the 'EDT2' entry must have a '2' as the fourth character. (If you intend to access CICS programs as BIM-EDIT commands, you should modify the PCT entry to provide adequate TWA size for these programs. See "Creating Commands Which Access CICS Transactions (BIFXCTR Table)" in Chapter 11 of this manual.) 12. If you have used the table method of adding CICS definitions, recycle the CICS systems that are to access BIM-EDIT. 13. Startup BIM-EDIT by submitting a job stream similar to the following. The BIFRDRn DD statements refer to internal readers used by BIM-EDIT to submit jobs to JES. BIM-EDIT will open up to nine internal readers, depending upon the number of BIFRDRn DD statements provided. Chapter 9. Installation and Maintenance Page 375 First Time Installation on MVS //BIMEDIT //BIMEDIT //STEPLIB //SYSPRINT //SYSUDUMP //BIFLIB //BIFRDR1 //BIFRDR2 //BIFRDR3 //BIFRDR4 JOB EXEC DD DD DD DD DD DD DD DD .... PGM=BIMEDIT,TIME=1440,REGION=1200K DSN=BIMEDIT.LOADLIB,DISP=SHR SYSOUT=X SYSOUT=X DSN=BIMEDIT.BIFLIB,DISP=(OLD,KEEP) SYSOUT=(A,INTRDR) SYSOUT=(A,INTRDR) SYSOUT=(A,INTRDR) SYSOUT=(A,INTRDR) BIM-EDIT counts the BIFRDRn DD statements by attempting to open them in sequence until one fails. Because of this technique, a message like the following will appear during normal system initialization: IEC130I BIFRDR5 DD STATEMENT MISSING When BIM-EDIT completes its initialization, the following message will display on the system console: BIMEDITA SYSTEM "BIMEDIT" INITIALIZATION COMPLETE At this point, you will not have access to the JES queues. You must complete the next installation step first. Page 376 BIM-EDIT System Reference Manual First Time Installation on MVS Preparing for JES Access 14. A JES interface control table must be assembled at your site, and linked to your BIM-EDIT load library. The source for the control table is contained in $SYS.SRC.BIMGETOF. The following JCL can be modified and used to assemble/link control table: //userid JOB ... //ASM EXEC PGM=IEV90,REGION=2048K, // PARM='TERM,LOAD,NODECK,OBJECT,SYSPARM(SP 5.2)' //SYSTERM DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,2)) //SYSUT2 DD UNIT=SYSDA,SPACE=(CYL,(2,2)) //SYSUT3 DD UNIT=SYSDA,SPACE=(CYL,(2,2)) //SYSLIN DD DSN=&&OBJSET,UNIT=SYSDA,SPACE=(80,(2000,100)), // DISP=(MOD,PASS) //SYSLIB DD DISP=SHR,DSN=SYS1.HASPSRC ! JES Source Library // DD DISP=SHR,DSN=SYS1.MACLIB // DD DISP=SHR,DSN=SYS1.MODGEN // DD DISP=SHR,DSN=SYS1.AMODGEN //SYSIN DD * /INCLUDE $SYS.SRC.BIMGETOF ! Prior to OS/390 1.3 /INCLUDE $SYS.SRC.BIMGET13 ! OS/390 1.3 and above /* //LNK EXEC PGM=IEWL,PARM='XREF,LET,LIST', // COND=(7,LT,ASM) //SYSLIN DD DSN=&&OBJSET,DISP=(OLD,DELETE) // DD DDNAME=SYSIN //SYSLMOD DD DSN=BIMEDIT.LOADLIB(BIMGETOF),DISP=SHR //SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(100,10)) //SYSPRINT DD SYSOUT=* // The SYSPARM(SP 5.2) on the ASM step is only used if you are on a system prior to OS/390 1.3. It must be set to the release of JES that you are running. Note that you will only use one INCLUDE, for either BIMGETOF or BIMGET13, depending on your release of MVS or OS/390. You will need to shutdown and restart BIM-EDIT after this job has completed. You should reassemble this JES interface control table anytime you apply IBM maintenance to your JES system. 15. If you will access BIM-EDIT from TSO, you must define a BIM-EDIT User Id to match the TSO User Id which will be used by the System Administrator. The easiest way to do this is through BIM-EDIT Batch Utility, with a job stream like the following: //BIMEDIT JOB .... //BIMUTIL EXEC PGM=BIMUTIL //STEPLIB DD DSN=BIMEDIT.LOADLIB,DISP=SHR //SYSPRINT DD SYSOUT=A //SYSIN DD * LOGON $SYS,$SYS DEFINEU user,password,"user's name",ADM,DEFS,3,1000,500,20000 /* Chapter 9. Installation and Maintenance Page 377 First Time Installation on MVS 16. Logon to BIM-EDIT interactively to check that it is operational and to start customizing BIM-EDIT to your site's needs. These steps are described in the "First Time Logon" section later in this chapter. Page 378 BIM-EDIT System Reference Manual Installing BIM-EDIT under an Alternate System Name Installing BIM-EDIT under an Alternate System Name BIM-EDIT consists of a server program which runs separately from client tasks that communicate with online users, workstation users, batch utility runs, and programs using the application interface. Communication between the clients and the server is accomplished through a BIM-EDIT "system name". The name BIMEDIT is used by default if no name is specified. Under some circumstances, it is desirable to install BIM-EDIT under an alternate system name. This is done primarily to allow running more than one copy of BIM-EDIT, each with its own independent database. You might do this to test modifications or new versions of BIM-EDIT, or for other purposes. The purpose of this section is to list the modifications which must be made to install and run BIM-EDIT under an alternate system name. The examples below use BIMEDIT2 as the alternate system name. You could use any name which is eight characters or less and does not conflict with a VTAM application name or XPCC name already in use on your system. 1. When restoring the starter library, the PARM 'SYSTEM=BIMEDIT2' must be added to the EXEC statement for BIMREST. File access statements for the alternate BIFLIB also must be added. (CAUTION: failure to modify the file access statements could result in restoring over an existing production database.) 2. To access the alternate BIM-EDIT through VTAM, an APPL statement for the new system name must be added to the VTAM table definitions. 3. To access the alternate BIM-EDIT through CICS, either a new BIMCSDT table must be assembled, or if this is not your only BIM-EDIT system, an additional entry must be added to your existing BICSDT table. Note that you will have to catalog the modified BIMCSDT in such a way that it can be accessed by your CICS. See "Changing the CICS Data Module (BIMCSDT)" in Chapter 11. 4. To access the alternate BIM-EDIT through the BTAM interface, the operand PARM='SYSTEM=BIMEDIT2' must be added to the EXEC statement for BIMBTAM. 5. To access the alternate BIM-EDIT from TSO, program BIMTSED must be zapped. Contact BIM Technical Support. 6. When starting BIM-EDIT, the operand PARM='SYSTEM=BIMEDIT2' must be added to the EXEC statement for BIMEDIT. File access statements for the alternate BIFLIB also must be added. 7. Any Batch Utility runs (especially backups) must be modified to add the operand PARM='SYSTEM=BIMEDIT2' to the EXEC statement for BIMUTIL. 8. Any programs using the Application Interface must be modified to supply the alternate system name when the interface is opened. See Chapter 6. Chapter 9. Installation and Maintenance Page 379 First Time Logon First Time Logon Now that you have BIM-EDIT installed, you may logon by one of the following methods: • If you access BIM-EDIT from CICS (and you are using transid EDTR): edtr $sys,$sys • If you access BIM-EDIT from VTAM, get in VTAM SSCP mode and enter: logon applid(bimedit) You will be presented with a screen to indicate your user ID ($SYS) and your password ($SYS). • On VSE, if you access BIM-EDIT from the BTAM interface, enter: edtr You will be presented with a screen to indicate your user ID ($SYS) and your password ($SYS). • On MVS, if you access BIM-EDIT from TSO, enter a statement similar to: call 'bimedit.loadlib(bimtsed)' You will be presented with a screen to indicate your password. When you logon for the first time, you are not attached to any library, i.e., you have a "null attachment". To list the libraries currently existing, enter: => libraryl At this time, the library listing will show the "$SYS" and "$SIT" libraries. See the next section ("Initial Library Contents") for a description of the contents of the $SYS and $SIT libraries. The LIBRARYL command created a display session. To end the session, enter: => end To get a list of the members in a library, enter: => attach <library name> => library To look at the contents of a member, you can enter: => list <library name>.<member name> The LIBRARY and LIST commands also create display sessions. To end them: => end Page 380 BIM-EDIT System Reference Manual First Time Logon Now that you have verified that BIM-EDIT is working correctly, you should create a second System Administrator, in case something goes wrong with $SYS: => defineu <user>,<password>,"<long name>",ADM,DEFS $SYS User ID Then you should change the password for the $SYS user, since password $SYS is documented throughout the distributed manuals. Use: => password <new pass> The PASSWORD command is documented in the BIM-EDIT User Reference Manual. Be careful with these steps. If you lose access to all ADM level users, the only recovery is to reinstall BIM-EDIT. SPRI Users On VSE, if your site uses the SPRI spooling system, you enter the following to replace the POWER FALTERP command with the SPRI FALTERP command: => rename $sys.proc.bipfalp $sys.proc.bipfalp$-d => rename $sys.proc.sfpfalp $sys.proc.bipfalp To exit BIM-EDIT, enter: => logoff All Users Of course, there is more work to do before BIM-EDIT will be useful to you: • You must set the initial values of the memory utilization variables. • You must define libraries. • You must define users and set up library/user security. • You must set up backup/restore job streams. These and other day-to-day topics are covered in Chapter 10, Operation and Administration. In addition, you should review the customization options in Chapter 11, Customization. These options are available to tailor the features of BIM-EDIT to the needs of your organization. Chapter 9. Installation and Maintenance Page 381 Initial Contents of Libraries Initial Contents of Libraries The starter system comes with two sets of libraries defined, the $SIT libraries and the $SYS libraries. These are libraries which are used to run BIM-EDIT. $SYS and $SIT should be reserved for this purpose. You should use DEFINEL to define user libraries. Defining libraries and users is discussed in Chapter 10, Operations and Administration. The $SYS libraries contain the BIM-EDIT control members as released by BIM. The members within the $SYS libraries should be left intact, since these libraries will be completely replaced when a new BIM-EDIT release is installed. The $SIT libraries are intended to be used for site customization. They are empty on the starter system. BIMEDIT is designed so that entries in the $SIT libraries, if present, will override the corresponding entries in the $SYS libraries. Thus customization is achieved by creating members in the $SIT libraries. The contents of the supplied libraries are described below. References for further information are to Chapter 11, Customization, unless specified otherwise. $SIT.COMP Compile procedures to be executed from the procedure associated with the COMPILE command. See "Modifying COMPILE, PROCESS, and SUBMIT". $SIT.CTRL $SYS.CTRL Miscellaneous control members. You must define any of the following members the first time you need them in $SIT.CTRL. COMMANDS (In $SIT.CTRL library only.) Specifies commands and the names of the procedures to handle them. Merged by BIM-EDIT into the system command table during initialization. See "Creating Library, User and Site Commands". Page 382 LOGON A MAPF screen displayed for secure logon. See "Controlling LOGON". MESSAGES Text for error messages. Entries from $SIT.CTRL will be merged with entries from $SYS.CTRL during initialization. See "Modifying Error Messages". $SYS.DEMO On VSE only, members for the BIM-EDIT Interactive Demo facility. See "DEMO - Demonstrate BIM-EDIT Features" in Chapter 7 of this manual. $SIT.DOC $SYS.DOC Documentation members distributed with BIM-EDIT. We recommend you copy from $SYS.DOC to $SIT.DOC before making any changes. $SIT.HELP $SYS.HELP Members to be displayed by the HELP command. The HELP command searches $SIT.HELP before searching $SYS.HELP. You can customize the HELP facility by creating members in $SIT.HELP. See "Modifying HELP Displays". $SYS.JCL Sample JCL for various batch functions. For example, the BIM-EDIT System Reference Manual Initial Contents of Libraries $SIT.JCL member BIJBKPG will perform a logical system backup. We recommend you copy members from $SYS.JCL to $SIT.JCL before changing them. $SYS.MAINT On VSE only, members for the BIM-EDIT Corrective Service facility. See "INSTALL and SERVICE - Applying IBM Corrective Service" in Chapter 7 of this manual. $SIT.MODEL $SYS.MODEL Member templates used by the DEFINE command. The DEFINE command searches $SIT.MODEL prior to searching $SYS.MODEL to find a template. You can customize the DEFINE template facility by creating members in $SIT.MODEL. See "Modifying DEFINE Templates". $SIT.PROC $SYS.PROC Procedures to implement some BIM-EDIT commands. You can alter system procedures by copying them from $SYS.PROC to $SIT.PROC, changing them, and entering them in the Site command table (member $SIT.CTRL.COMMANDS). New BIMEDIT commands can be created by creating procedures in the $SIT.PROC library and adding associated entries in the Site command table. The site command table is searched prior to the system command table, so a BIM-EDIT command can also be preempted by a site procedure. See "Creating Library, User, and Site Commands". $SIT.PURGE Used by the purge control facility. If purge control is active, when a member is purged, a copy of the member is placed in $SIT.PURGE. The members in $SIT.PURGE can then be periodically written to tape and/or purged. For more information, see "Purge Control" in Chapter 10 of this manual. $SIT.SRC $SYS.SRC Selected BIM-EDIT source code. We recommend you copy the source of any module you need to change from $SYS.SRC to $SIT.SRC before changing it. $SYS.UDP User Developed Procedures. These are procedures that BIMEDIT users have developed for their own purposes and contributed for distribution. You may be able to make use of them as is or use them as a model for writing your own procedures. BIM does not use, test, or support these procedures. Chapter 9. Installation and Maintenance Page 383 Common Problems Common Problems The following is a list of symptoms that have occurred during or shortly after BIM-EDIT installations. You may find that this list helps you avoid problems. Symptom: Anything described in the Problems and Notes memo usually provided with the BIM-EDIT installation tape. Cause: The corrective zaps were never installed. Symptom: BIM-EDIT response slowdown or complete stall. Cause: Usually the result of a marginal number of buffers available to BIM-EDIT. Review MMP16Kxx variables. MMP16KSP and the partition size may need to be increased to accommodate the work load. Symptom: Message BIRLROPA ** LIBR INTERFACE NOT ACTIVE ** when trying to access VSE sublibraries. Cause: BIM-EDIT has not been provided with the required execute size. The minimum size is 180K. Change the startup job stream to include this value, or increase the value if the minimum does not solve the problem. Symptom: BIM-EDIT cannot access directories, and/or member text from VSE sublibraries. Cause: BIM-EDIT has not been provided with the required execute size. The minimum size is 180K. Change the startup job stream to include this value, or increase the value if the minimum does not solve the problem. Symptom: BIM-EDIT CICS access routines abend by branch to low memory address. Cause: CICS table entries do not specify PGMLANG=ASSEM for BIM-EDIT modules. This can result from not specifying PGMLANG for PPT or PLT generation or in Resource Definition Online (CEDA). Symptom: BIM-EDIT will not display POWER job entries. Cause: The user has been set up with PWRSEC=1 (the default) and the default BIXPWQA exit module is used. The POWER USER information does not match the BIM-EDIT user ID. Symptom: LIBRARYP looks good but LISTP returns the wrong data or garbage. Cause: The POWER DLBL and EXTENT information for BIFPWRQ and BIFPWRD does not match that of the POWER DLBL and EXTENT (IJQFILE and IJDFILE). Symptom: LIBRARYP does not display any entries, only the column headers. Cause: The VSE VIO allocation may need to be increased by 64K to accommodate the addition of BIM-EDIT access to POWER queues in the VIO area. Symptom: PROG402 terminal error after CICS LINK or XCTL from BIM-EDIT to a program that displays in alternate terminal mode. Page 384 BIM-EDIT System Reference Manual Common Problems Cause: The PCT entry for BIM-EDIT (usually EDTR) must specify the SCRNSZE=ALTERNATE parameter in this situation. Symptom: Transaction or CICS abend after CICS LINK or XCTL from BIM-EDIT to a program that requires a TWA. Cause: The PCT entry for BIM-EDIT (usually EDTR) must specify an adequate TWASIZE. Symptom: User has more library authority than was defined with LIBS. Cause: The user was defined with global security. If library-specific security is desired then the user should be defined with NULL security. Symptom: New sessions are displayed in alternate screen mode. Cause: User entered 'SCR ALT' on the BIM-EDIT home screen. Symptom: Site wants BIM-EDIT to transfer control to a CICS menu after LOGOFF. Cause: Modify BIMCSPS or BIMCSED (source in library $SYS.SRC.) to add a statement like the following immediately after label L880RT: DFHPC TYPE=XCTL,PROGRAM=MENUPROG Assemble and catalog the module. Chapter 9. Installation and Maintenance Page 385 Chapter 10. Operations and Administration This chapter discusses operating and administering BIM-EDIT in order to keep it running. There is a natural overlap between this chapter and Chapter 9, Installation, and Chapter 11, Customization. The following subjects are discussed: Page 386 • Starting BIM-EDIT. • Controlling BIM-EDIT from the System Console. • Backups and Restores. • User Definition and Modification. • Library Security. • Purge Control. • Managing Disk Space. • Managing Memory Utilization. • Transferring Members from Other Editors. BIM-EDIT System Reference Manual Starting BIM-EDIT Starting BIM-EDIT BIM-EDIT operates using a server program which runs separately from the client tasks that communicate with online users, workstation users, batch utility runs, and application interface programs. It is necessary to start the server program before any client tasks can be successfully run. This section describes the Job Control to start the server. It is possible to run more than one BIM-EDIT server program at the same time (you might do this, for example, if you were testing new versions of some BIM-EDIT commands or if you were in the process of bringing up a new version). Each server program has its own separate copy of the BIM-EDIT file and thus is totally independent of the others. To differentiate the servers for intertask communication, each must have a unique "system name". The name BIMEDIT is used by default if no name is specified. The job control language below describes how to start a server specifying a non-default system name. BIM-EDIT tasks seeking to use a BIM-EDIT server operating under a name other than BIMEDIT must also specify the system name. For the batch utility and the restore program, specify the name using PARM='SYSTEM=BIMEDIT2' on the EXEC statement, where BIMEDIT2 would be whatever system name the server uses. For the VTAM interface, the system name is the VTAM application name. For the CICS interface, the system name is specified in the CICS control table, BIMCSDT, which is described in Chapter 11, Customization. The application interface routines obtain the system name from their caller when the interface is opened. VSE Startup BIM-EDIT either runs in its own partition or as a VSE subtask within a CICS partition. We recommend running BIM-EDIT in its own partition. The distinction is irrelevant from a user standpoint. In either case, users can use online BIM-EDIT from any access method that is installed. To start BIM-EDIT in its own partition, use a job stream similar to the following. If DLBL and EXTENT statements for the four files BIFLIB, BIFPWRQ, BIFPWRD, DTSFILE are not in the DOS standard label area, they must also be included. If the ASSGNs for these files are not permanent, they must also be included. (DTSFILE is needed only if ICCF access is required.) // JOB BIMEDIT // EXEC BIMEDIT,SIZE=4K /& <- use SIZE=180K if access to VSE sublibraries is desired Running BIM-EDIT under a specified system name is only possible if your VSE is release SP 2.1 or later. To specify a system name, in this example BIMEDIT2, change the JCL to: // EXEC BIMEDIT,SIZE=4K,PARM='SYSTEM=BIMEDIT2' or, if access to the VSE sublibraries is desired: // EXEC BIMEDIT,SIZE=180K,PARM='SYSTEM=BIMEDIT2' Chapter 10. Operations and Administration Page 387 Starting BIM-EDIT To start BIM-EDIT as a VSE subtask within the CICS partition, modify startup PLT processing for that CICS. No additional JCL is needed. (Setting up the startup PLT entry is explained in Chapter 9, Installation, in this manual). However it is started, when BIM-EDIT completes its initialization, the following message will display: BIMEDITA BIMEDITA SYSTEM "BIMEDIT" INITIALIZATION COMPLETE MVS Startup To start BIM-EDIT, use a job stream similar to the following. The BIFRDRn DD statements refer to internal readers used by BIM-EDIT to submit jobs to JES. BIM-EDIT will open up to nine internal readers, depending upon the number of BIFRDRn DD statements provided. //BIMEDIT //BIMEDIT //STEPLIB //SYSPRINT //SYSUDUMP //BIFLIB //BIFRDR1 //BIFRDR2 //BIFRDR3 //BIFRDR4 JOB EXEC DD DD DD DD DD DD DD DD .... PGM=BIMEDIT,TIME=1440,REGION=1200K DSN=BIMEDIT.LOADLIB,DISP=SHR SYSOUT=X SYSOUT=X DSN=BIMEDIT.BIFLIB,DISP=(OLD,KEEP) SYSOUT=(A,INTRDR) SYSOUT=(A,INTRDR) SYSOUT=(A,INTRDR) SYSOUT=(A,INTRDR) To specify a new system name, in this example BIMEDIT2, you would change the JCL to: //BIMEDIT EXEC PGM=BIMEDIT,TIME=1440,REGION=1200K,PARM='SYSTEM=BIMEDIT2' When BIM-EDIT completes its initialization, the following message will display: BIMEDITA Page 388 SYSTEM "BIMEDIT" INITIALIZATION COMPLETE BIM-EDIT System Reference Manual Controlling BIM-EDIT from the System Console Controlling BIM-EDIT from the System Console Limited control of BIM-EDIT is provided via commands issued from the VSE or OS/390 System Console. The following BIM-EDIT commands can be issued from the System Console: SHUT Terminates the BIM-EDIT partition or region. Refer to page 355 for more information on the SHUT command. CONNECT Connects and activates the VTAM and/or TCP/IP interface to BIMEDIT. Refer to page 291 for more information on the CONNECT command. DISCONN Deactivates and disconnects the VTAM and/or TCP/IP interface to BIM-EDIT. Refer to page 304 for more information on the DISCONN command. All other BIM-EDIT commands must be issued from either the BIM-EDIT command line or a batch job executing BIMUTIL. These commands are issued by entering the following at the System Console: VSE: MSG partitionid,DATA=bim-edit command For example, to shutdown the BIM-EDIT partition, running in partition F9, enter the following: MSG F9,DATA=SHUT MVS: F jobname,bim-edit command For example, to shutdown the BIM-EDIT region, running as jobname BIMEDIT, enter the following: F BIMEDIT,SHUT Chapter 10. Operations and Administration Page 389 Backups and Restores Backups and Restores Logical vs Physical BIM-EDIT can produce either logical or physical backup tapes. The BACKUPG and BACKUPS commands produce a logical backup tape, while the BACKUPP command produces a physical backup tape. Likewise, a restore is either logical or physical, depending upon whether the backup tape being used is logical or physical. A logical backup tape contains libraries, members, security records, and users in ascending order. In contrast, a physical backup tape is simply a block for block image of the BIM-EDIT file on disk. For normal backup purposes, use BACKUPG. Physical backups are less flexible and no more efficient than logical backups. The norm is to restore from a logical backup tape. Backup/Restore Scenarios • If a member in BIM-EDIT has been inadvertently destroyed, it may be desirable to restore a copy from an appropriate backup tape. You would: 1. • • • Perform a partial logical restore from the backup. It is NOT necessary to shut down BIM-EDIT. If the BIM-EDIT file on disk is corrupted, for whatever reason, it may be necessary to restore from the most recent backup tape. You would: 1. Shut down BIM-EDIT (if still active). 2. Perform a full logical restore from the most recent backup. 3. Restart BIM-EDIT. If you want to move or change the size of the BIM-EDIT file, you would: 1. Perform a full logical backup (all editing must stop when this ends). 2. Shut down BIM-EDIT. 3. Perform a full logical restore pointing to the new disk area. 4. Restart BIM-EDIT pointing to the new disk area. If available space in the BIM-EDIT file becomes too fragmented, you may want to reorganize the file by a logical backup/restore sequence. You would: 1. Perform a full logical backup (all editing must stop when this ends). 2. Shut down BIM-EDIT. 3. Perform a full logical restore. 4. Restart BIM-EDIT. Fragmentation is thoroughly discussed in "Managing Disk Space" later in this chapter. Page 390 BIM-EDIT System Reference Manual Backups and Restores • If you want to move all or part of the file from one BIM-EDIT system to another: 1. Perform a full or selective logical backup of BIM-EDIT system A. 2. If a full restore will be done, shut down BIM-EDIT system B. 3. Perform a full or partial logical restore to system B using the system A logical backup tape. 4. If system B was shut down, restart BIM-EDIT system B. Full Backup The following is a sample full logical backup job stream: VSE Job Control // JOB BIJBKPG LOGICAL SYSTEM BACKUP // TLBL BIFLOG // ASSGN SYS005,TAPE // PAUSE MOUNT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS BACKUPG /* /& MVS Job Control //BACKUPG JOB //BIMUTIL EXEC //STEPLIB DD //BIFLOG DD // //SYSPRINT DD //SYSIN DD LOGON $SYS,$SYS BACKUPG /* .... PGM=BIMUTIL DSN=BIMEDIT.LOADLIB,DISP=SHR DSNAME=BIFLOG,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), VOL=SER=BIM104 SYSOUT=A * Most BIM-EDIT commands can continue to be used online while logical backup is running. Members which were changed while the backup was running will be copied to the end of the backup tape. The same job stream can be used to perform a physical backup by replacing command BACKUPG with BACKUPP and replacing file label BIFLOG with BIFPHY. BIM-EDIT locks out all other access to the BIM-EDIT file while physical backup is running. For more information on BACKUPG and BACKUPP, see Chapter 8, Operator and Administrator Commands, in this manual. Chapter 10. Operations and Administration Page 391 Backups and Restores Full Logical Restore The following is a sample full logical restore job stream. VSE Job Control // // // // // /& JOB RESTORE RESTORE BIM-EDIT STARTER LIBRARY TLBL BIFLOG ASSGN SYS004,TAPE PAUSE MOUNT TAPE EXEC BIMREST,SIZE=6K,PARM='TYPE=LOGICAL' (On VSE, if DLBL and EXTENT statements for the BIFLIB file are not in the DOS Standard Label Area, they must also be included. If the ASSGNs for the BIFLIB file are not permanent, they must also be included). MVS Job Control //RESTORE //BIMREST //STEPLIB //BIFLOG // //BIFLIB // // //SYSPRINT JOB EXEC DD DD DD DD .... PGM=BIMREST,PARM='TYPE=LOGICAL,EXTENTS=1' DSN=BIMEDIT.LOADLIB,DISP=SHR DSNAME=BIFLOG,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), VOL=SER=BIM104 DSNAME=BIMEDIT.BIFLIB,DISP=(NEW,CATLG), SPACE=(CYL,70,,CONTIG),UNIT=SYSDA, VOL=SER=MVS009 SYSOUT=A BIM-EDIT must be shut down before the restore. If the PARM is not specified on the EXEC statement, BIM-EDIT will display the following message on the system console: BIRRSMLA ENTER RESTORATION TYPE (LOGICAL/PHYSICAL) Respond by entering: LOGICAL When the restoration is complete, BIM-EDIT will display the following message: BIRRSLGA LOGICAL RESTORE COMPLETE If you have more than one BIM-EDIT system, you MUST run the restore using the system ID that is to use the file. On VSE, the JCL to restore a BIM-EDIT which runs under system ID BIMEDIT2 must be modified to: // EXEC BIMREST,SIZE=6K,PARM='TYPE=LOGICAL,SYSTEM=BIMEDIT2' On MVS, the JCL to restore a BIM-EDIT which runs under system ID BIMEDIT2 must be modified to: //BIMREST EXEC PGM=BIMREST,PARM='TYPE=LOGICAL,SYSTEM=BIMEDIT2' Page 392 BIM-EDIT System Reference Manual Backups and Restores Selective Logical Restore The following is a sample selective logical restore job stream. VSE Job Control // JOB RESTORE // TLBL BIFLOG // ASSGN SYS004,TAPE // PAUSE MOUNT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS ;MULTIPLE RESTORES MUST BE IN ALPHA SEQUENCE BY LIBRARY.MEMBER RESTORE JLIB.PROG425 ;REPLACE MEMBER NAME AS NEEDED RESTOREL KLIB ;REPLACE LIBRARY NAME AS NEEDED RESTORE LLIB.PROG738 ;REPLACE MEMBER NAME AS NEEDED /* /& MVS Job Control //BACKUPG JOB .... //BIMUTIL EXEC PGM=BIMUTIL //STEPLIB DD DSN=BIMEDIT.LOADLIB,DISP=SHR //BIFLOG DD DSNAME=BIFLOG,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), // VOL=SER=BIM104 //SYSPRINT DD SYSOUT=A //SYSIN DD * LOGON $SYS,$SYS ;MULTIPLE RESTORES MUST BE IN ALPHA SEQUENCE BY LIBRARY.MEMBER RESTORE JLIB.PROG425 ;REPLACE MEMBER NAME AS NEEDED RESTOREL KLIB ;REPLACE LIBRARY NAME AS NEEDED RESTORE LLIB.PROG738 ;REPLACE MEMBER NAME AS NEEDED /* It is not necessary to shut down BIM-EDIT before doing a selective logical restore. The RESTORE command will handle member formats from earlier releases. All members in a specified library can be selectively restored by the RESTOREL command. Sessions, users, security records, and mail messages cannot be restored from an earlier release. Thus, you cannot perform a full restore from a previous release. For more information on RESTORE and RESTOREL, see Chapter 8, Operator and Administrator Commands, in this manual. Chapter 10. Operations and Administration Page 393 Backups and Restores Selective Logical Backup The following is a sample selective logical backup job stream which will backup the BIP members from library $SYS.PROC and all the members from library LIB1. VSE Job Control // JOB BACKUPS // TLBL BIFLOG // ASSGN SYS005,TAPE // PAUSE MOUNT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS BACKUPS PRINT=YES MEMBER $SYS.PROC.BIP* MEMBER LIB1.* ++/* /* /& MVS Job Control //BACKUPG JOB .... //BIMUTIL EXEC PGM=BIMUTIL //STEPLIB DD DSN=BIMEDIT.LOADLIB,DISP=SHR //BIFLOG DD DSNAME=BIFLOG,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), // VOL=SER=BIM104 //SYSPRINT DD SYSOUT=A //SYSIN DD * LOGON $SYS,$SYS BACKUPS PRINT=YES MEMBER $SYS.PROC.BIP* MEMBER LIB1.* ++/* /* Most BIM-EDIT commands can continue to be used online while logical backup is running. For more information on BACKUPS, see Chapter 8, Operator and Administrator Commands, in this manual. Page 394 BIM-EDIT System Reference Manual Backups and Restores Full Physical Restore The following is a sample physical restore job stream: VSE Job Control // // // // // /& JOB RESTORE RESTORE BIM-EDIT LIBRARY TLBL BIFPHY ASSGN SYS004,TAPE PAUSE MOUNT TAPE EXEC BIMREST,SIZE=6K,PARM='TYPE=PHYSICAL' (On VSE, if DLBL and EXTENT statements for the BIFLIB file are not in the DOS Standard Label Area, they must also be included. If the ASSGNs for the BIFLIB file are not permanent, they must also be included.) MVS Job Control //RESTORE //BIMREST //STEPLIB //BIFLOG // //BIFLIB // // //SYSPRINT JOB EXEC DD DD DD DD .... PGM=BIMREST,PARM='TYPE=PHYSICAL,EXTENTS=1' DSN=BIMEDIT.LOADLIB,DISP=SHR DSNAME=BIFPHY,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), VOL=SER=BIM104 DSNAME=BIMEDIT.BIFLIB,DISP=(NEW,CATLG), SPACE=(CYL,70,,CONTIG),UNIT=SYSDA, VOL=SER=MVS009 SYSOUT=A BIM-EDIT must be shut down before the restore. If the PARM is not specified on the EXEC statement, BIM-EDIT will display the following message on the system console: BIRRSMLA ENTER RESTORATION TYPE (LOGICAL/PHYSICAL) Respond by entering: PHYSICAL When the restoration is complete, BIM-EDIT will display the following message: BIRRSPHA PHYSICAL RESTORATION COMPLETE Physical restore MUST use the same system ID and the same file size as the physical backup that created the tape. On VSE, the JCL to restore a BIM-EDIT which runs under system ID BIMEDIT2 must be modified to: // EXEC BIMREST,SIZE=6K,PARM='TYPE=PHYSICAL,SYSTEM=BIMEDIT2' On MVS, the JCL to restore a BIM-EDIT which runs under system ID BIMEDIT2 must be modified to: //BIMREST EXEC PGM=BIMREST,PARM='TYPE=PHYSICAL,SYSTEM=BIMEDIT2' Chapter 10. Operations and Administration Page 395 User Definition and Modification User Definition and Modification To logon to BIM-EDIT, the user supplies the system with a user ID and a password. BIM-EDIT then attempts to read a user record. If the record is not found, the logon is rejected. If it is found, the password supplied by the user is compared with the password stored in the record. If they do not match, the logon is rejected. If three invalid passwords are entered in a row, the userid is automatically disabled. (See MMPLGEXP.) Once disabled, a userid cannot be used until it has been enabled using the ENABLE command. (If running BIM-EDIT in batch, a search is also made for a temporary password record. See the PEND command in Chapter 3 of this manual). Once the logon is accepted, the attributes of the user are determined based on the administrator's set up and the user's previous use. Creating a User To set up a new user, the administrator will perform at least some of the following steps: 1. Use DEFINEU to create the user ID. 2. Use DEFINEL to create the library(s) for the user. (Some users don't have their own libraries. Some users have more than one library. A user may or may not need a $USR.uuuuuuuu library, where uuuuuuuu is the user ID. The $USR library is used to store the user command table member (COMMANDS), the user LOGON procedure (LOGON), and procedures associated with the entries in the command table.) 3. Use DEFINES to create security records so that the user can access any libraries that he or she is to have access to. Also create security records as necessary to access VSE sublibraries and MVS PDSs. 4. Establish a user LOGON procedure if necessary. The procedure stored as $USR.uuuuuuuu.LOGON will be executed at logon, if present. (It may be necessary to delay installing the LOGON procedure until you have logged on as the user and set up their values.) 5. Use DEMO to authorize the user for the DEMO application. 6. Logon as the user. 7. Set SIB values for the user. You may wish to change some of the following: SIBCMPR SIBCSCTL SIBDFLCA SIBHEXC SIBTABC Screen transmission compression flag. Extended cursor control flag. Default LCA location. Command line hex escape character. Logical tab character. Initially set to "1". Initially set to "1". Initially set to "L". Initially set to blank. Initially set to blank. 8. Use ATTACH to attach to the appropriate library and set a home library. 9. Use ATTACHD to attach to the appropriate VSE sublibrary or MVS PDS and set a home position. 10. Use SETKEYS to assign initial values to PF keys. Page 396 BIM-EDIT System Reference Manual User Definition and Modification Changing a User If a user changes function within your organization, the following may need to be altered: • Library access. Use => librarys *,user where "user" is the name of the user, to view the library/user security records. Use PURGES (or LCA P from the LIBRARYS session) to delete old ones, ALTERS (or FALTERS or LCA Q from the LIBRARYS session) to change the access level and DEFINES to create new security records. You may have to logon as the user to save current sessions or ATTACH or ATTACHD to a different library. Note that the security records used to determine access to VSE sublibraries and MVS PDSs may also need to be changed. • User attributes. Use FALTERU to view and change user attributes. • Logon procedure. The procedure stored as $USR.uuuuuuuu.LOGON may need to be eliminated or changed. • SIB values and PF key settings. These can be changed by logging on as the user and using the SET or KEYS commands. Deleting a User If a user must be removed from the BIM-EDIT system, you should perform the following steps: 1. Logon as the user and check for any open sessions. END NOSAVE or SAVE them as appropriate. 2. Logon as the administrator. Use PURGEU to delete the user. 3. Use => librarys *,user where "user" is the name of the user, to check for any library/user security records for the user. Use PURGES (or LCA P from the LIBRARYS session) to delete them. 4. Determine what to do about left over members and libraries belonging to the user. Chapter 10. Operations and Administration Page 397 Library Security Library Security Basic Library Security It is usually desirable to limit a user's access to the BIM-EDIT libraries. The library security mechanism provides a means of specifying a precise BIM-EDIT subset that a user has access to. For a particular library, the user always has a defined access level. Seven levels of access are defined, each level allowing greater access than the previous level: NULL Access is completely denied. EXEC Members may be executed as procedures. LIST Member text may be copied, listed, executed. EDIT Member text may be edited, copied, listed, executed. DEF Members may be defined, purged, altered, edited, copied, listed, executed. DEFL In addition, libraries may be defined, purged, altered. DEFS In addition, security may be defined, purged, altered. Users are usually given DEF level access to their own library and a few shared update (common) libraries. In addition, they may be given LIST level access to a few reference or master libraries for use with CHECKOUT/CHECKIN. At sites where generic library security is used, some users are given DEFL level access to library groups they manage. Normally, only system administrators are given system-wide DEFS access. A user's access level to a library is determined by the combination of: Page 398 • the specific security for the library being accessed and the user performing the access. This is determined by the library/user security records resulting from the use of the ALTERS, DEFINES, FALTERS, and PURGES commands. • the default security for the library being accessed. This is determined by the library/user security records for dummy user ID $DFL. It will be referenced only if there is no security record for the specific user. If no specific or default security record exists, access is deemed to be NULL. Default security is normally used only for "common access" libraries. • the user's system-wide minimum library security. This is the LIBSEC attribute resulting from the use of the ALTERU, DEFINEU and FALTERU commands. If system-wide security is specified for a user, specific or default security can increase the access level beyond that specified, but cannot decrease it. System-wide security is generally specified (as DEFS) only for the System Administrator. (The $SYS user, as distributed on the starter library has system-wide DEFS library access. $SYS is deemed to be the system administrator). BIM-EDIT System Reference Manual Library Security Generic Library Security Generic library security is an advanced technique which allows security for a group of libraries to be handled by one set of security records. Using it, the system administrator can give users a controlled ability to create their own sublibraries without having to give up control over library security or modify security each time the user creates a library. Generic library security is a logical extension of the specific and default library security described above. When reference is made to a library name that contains a period (.), such as "4326.APB", BIM-EDIT will attempt to use generic library security. (You may have noticed that the sole difference between the rules for library names and those for member names is that library names can contain a period). BIM-EDIT will first look for security records for the part of the library name that precedes the first period -- if they are found and specify a sufficient access level for the function requested, the function will be allowed. If the access level is not sufficient, BIM-EDIT will try again for security records for the part that precedes the second period, and so forth. The result of this implementation is that by defining security for library 4326, we define the minimum access level for all libraries starting with the characters "4326.". A typical use of this feature is to allow a user to create his or her own libraries by setting DEFL security: => defines 4326,uuuuuuuu,defl The user is informed that, after logging on, he or she can define libraries that begin with the characters "4326.". The user might then enter the following commands: => definel 4326.misc,'miscellaneous data' => definel 4326.appr,'ac pay project library' => definel 4326.arpr,'ac rcv project library' The access level for a user of these new libraries would be exactly the same as the access that user had to the "parent" library 4326. Library Security for VSE Sublibraries and MVS PDSs The same mechanism described above for BIM-EDIT library security is also used to handle security for access to VSE sublibraries and MVS PDSs. The initial segment of the VSE sublibrary name or MVS PDS name is checked as if it were a BIM-EDIT library name and the request is accepted or rejected according to the result. Thus, to control access to VSE sublibraries and MVS PDSs, you simply define library/user security records but do not define BIM-EDIT libraries. (Since BIM-EDIT cannot distinguish for security purposes between access to BIM-EDIT library and access to a VSE sublibrary or MVS PDS, we recommend that you do not name any library with the same name you use for a VSE sublibrary or MVS PDS.) Example The following is an example of how security might be defined for a theoretical site. All commands would be executed after logging on as the System Administrator. Chapter 10. Operations and Administration Page 399 Library Security 1. Three new users are defined (USR1-3) and five new libraries are defined (LIB1-3 & CMN1-2). => defineu usr1,pas1,'user #1' => defineu usr2,pas2,'user #2' => defineu usr3,pas3,'user #3' => definel lib1,'library for user #1' => definel lib2,'library for user #2' => definel lib3,'library for user #3' => definel cmn1,'common read-only library' => definel cmn2,'common update library' 2. USR1 is given DEF level access to LIB1, USR2 is given DEF level access to LIB2 and LIST access to LIB3 (USR2 can copy or review the contents of USR3's library), and USR3 is given DEF level access to LIB3. => => => => 3. defines defines defines defines lib1,usr1,def lib2,usr2,def lib3,usr2,list lib3,usr3,def CMN1 is given default LIST access (all users can copy or review the contents of it). CMN2 is given default DEF access (all users can define or purge members in it). => defines cmn1,$dfl,list => defines cmn2,$dfl,def 4. USR1 is given DEFL access level to CMN2 (USR1 can define or purge libraries beginning with "CMN2." -- all users will be able to define or purge members in any libraries so defined because of the generic security for these libraries.) => defines cmn2,usr1,defl 5. USR2 and USR3 are given LIST access level to PRODLIB.ACCPAY (USR2 and USR3 can LOADD or LISTD members within this VSE sublibrary or MVS PDS, but they cannot DEFINED or EDITD). Note that no BIM-EDIT library is created for PRODLIB.ACCPAY. => defines prodlib.accpay,usr2,list => defines prodlib.accpay,usr3,list The System Administrator must periodically revise library security records as libraries and users are created and deleted and as the functions of libraries and users change. Over a period of time it is not unusual to have security records in the system which correspond to libraries or users which no longer exist. Since security records are quite small, extra records do not have significant impact. Page 400 BIM-EDIT System Reference Manual External Security (MVS Only) External Security (MVS Only) External Security is activated by setting the BIM-EDIT System Variable MMPSECUR to: R T A RACF Top Secret ACF2 and cycling BIM-EDIT. At logon, BIM-EDIT will call the specified external security system supplying the user ID and password of the user attempting logon. When access to a BIM-EDIT library or PDS is needed, BIM-EDIT calls the specified external security system supplying the BIM-EDIT user ID, the 16 character BIM-EDIT library name, or the 44 character PDS name, and the access level requested. There are three levels of security provided by the External Security interface. The following table describes the relationship between the BIM-EDIT internal security levels, and the three external levels: External Security Level BIM-EDIT Security Level READ EXEC and LIST UPDATE EDIT and DEF ALTER DEFL and DEFS Chapter 10. Operations and Administration Page 401 Purge Control Purge Control Background When a member is purged, if purge control is active a copy of the member is placed in the $SIT.PURGE library. The members accumulated in the $SIT.PURGE library must then be periodically written to tape and/or purged. If a user happens to inadvertently purge a member, the member can be recovered from the purge library. Purge control is active if the predefined variable MMPPGCTL has a value of "1". Purge control is not active if MMPPGCTL has a value of "0". When a copy of a purged member is placed in the $SIT.PURGE library, it is assigned a new name in a time-stamp format as follows: yyyymmdd-hhmmsst where yyyy is the year. mm is the month (01-12). dd is the day (01-31). hh is the hour (00-23). mm is the minute (00-59). ss is the second (00-59). t is the tenth (0-9). The original member name becomes part of the new title as follows: PURGE->mem where mem is the original full member name. The original title is destroyed. All other attributes of the member remain intact. Both the text and audit trail are intact. Continuing Maintenance Purge control has disk space implications. Recognize that purging a member does not free any space when purge control is active. It simply moves the member to the purge library. Space is freed only when the member is purged from the purge library. The System Administrator must periodically logon and purge old members from the purge library to prevent the file filling up. Getting a Member Back If a user inadvertently purges a member, you could recover the member for the user as follows: 1. Determine the new member name assigned in the $SIT.PURGE library. If the original full member name was "AP20.XIR2500", you could enter the following commands to determine the new member name: => attach $sit.purge;library;bottom;forward Page 402 BIM-EDIT System Reference Manual Purge Control Check to see if "AP20.XIR2500" was the last member purged. If not, enter: => locateu ap20.xir2500 The top line of the library display would show the new member name. 2. Rename the member back into the original library. If the new member name were "19970112-0830240", you would enter: => rename 19970112-0830240,ap20.xir2500 3. Blank out the title as follows: => alter ap20.xir2500,title='' 4. Instruct the user that the member has been restored but that the title needs to be assigned again. Chapter 10. Operations and Administration Page 403 Managing Disk Space Managing Disk Space How BIM-EDIT Uses Disk Space BIM-EDIT uses disk space in 4,096 byte blocks. These 4K blocks are used for all the things BIM-EDIT must store: the member, library, and user directories (entries are stored 16 to a block); the security records (also 16 to a block); the MMP variables; the users' SIB variables; and text of members, open sessions, mail messages, and users' $LOG, $MAIL, and $STACK areas. The largest consumer of disk space is usually member text. For performance, BIM-EDIT always stores the text of a single member in contiguous blocks. Because of this, BIMEDIT can read and write that text up to 16K at a time -- a typical member of 2000 lines can be copied with about 14 I/O operations. However, the side effect is that the Administrator must ensure that there are always enough blocks available in one area to save the text of the largest member which can be edited. Available blocks are listed in a table which can be viewed online at any time by entering: => show avail Each entry in the table contains the starting block number and the number of blocks in the area. A final line shows the total number of blocks available. Over time, you are likely to find that the size of the largest available area decreases due to the growth of the members in the library and due to fragmentation of available areas. Fragmentation "Fragmentation" describes the situation where space is available in distributed chunks, and not all together in one block. BIM-EDIT's use of 4K blocks was designed to eliminate truly unusable fragments, but it is normal for a significant amount of the available space to consist of scattered areas. If fragmentation becomes too severe, you may find that you have no available areas large enough to perform some operations even though you have enough space overall. BIM-EDIT is designed to avoid excessive fragmentation -- it will always use the area closest in size to the amount it needs. Available areas are created and consumed as space is used and freed, which takes place whenever a member or other entity is created, purged, or edited. A balance will be rapidly reached between activities which create available areas and those which consume available areas, usually resulting in the AVAIL table remaining in the range of 300 to 500 entries. In BIM-EDIT, fragmentation only becomes a problem when there is not enough space in one area to accommodate an operation. (Fragmentation does not affect performance -- if there is enough space, an operation will execute at the same speed regardless of how many entries are in the available table.) Page 404 BIM-EDIT System Reference Manual Managing Disk Space The need to "reorganize" the BIM-EDIT library to collect fragmented storage nearly always indicates you have inadequate space assigned to BIM-EDIT. Sometimes, reorganizing can buy some time when BIM-EDIT has outgrown its space allocation. You should periodically monitor the status of the AVAIL table to determine when it is time to take action. When you determine the need to "reorganize" the BIM-EDIT library, you have two choices: 1) You can perform a complete library reorganization, by making a full logical backup of the BIM-EDIT library, and then restoring the library using the BIMREST program. This method requires that no users be using BIM-EDIT during the backup, and that your BIM-EDIT system be down during the restore. 2) You can use the REORG command. This can be run while BIM-EDIT is being used. The REORG command will attempt to move members from the end of the library to free areas at the front of the library, thus forming larger free areas at the end of the library. Depending on the sizes of the members and the existing free areas, the REORG command may prevent or at least postpone the need for a complete library reorganization. Estimating the Blocks Required for a BIM-EDIT Library The number of blocks required for a BIM-EDIT library immediately after a logical restore (that is, without any fragmentation) can be calculated as follows: 1. Number of members in the library x .0625 (for member header records of 256 bytes each). 2. Plus number of libraries x .0625 (for library header records of 256 bytes each). 3. Plus number of security records x .0625 (for security records of 256 bytes each). 4. Plus number of users x 1.0625 (For 4K SIB record and 256 byte user header record each.) 5. Plus number of open EDIT, EDITD, LISTD, or DISP sessions x 32 (32 blocks for work areas.) 6. Plus amount of text stored in members rounded up to integral number of 4K blocks per member. Count text to only the rightmost non-blank character on each line. Consider any runs of two or more consecutive blanks to be two bytes only. Lines are not split across blocks. Add three bytes overhead for each line. Add 30 bytes of overhead for each block. Do not forget the text in the member audit trails. You can determine the number of blocks in a particular member by displaying predefined variables TXMAUCI and TXMSZCI. Note that this includes any members in the purge library. 7. Plus amount of text in open EDIT, EDITD, LISTD, or DISP sessions rounded up to integral number of 4K blocks per session. Use same rules as for member text. 8. Plus amount of text in $LOG, $STACK, and $MAIL for each user rounded up to integral number of 4K blocks. Use same rules as for member text. 9. Plus amount of text in mail messages. Use same rules as for member text. Chapter 10. Operations and Administration Page 405 Managing Disk Space 10. Plus 34 (32 blocks for system recovery area plus 1 block for MMP area plus 1 block overhead for key sequence headers.) In round numbers (there are minor differences between the VSE and MVS systems), the BIM-EDIT starter system comes with the following defined: 1100 members, 16 libraries, no security records, 1 user, no open sessions, 2000 blocks of text in members, and 0 blocks of text in the user's $LOG, $STACK and $MAIL. The starter system requires about 3000 4K blocks to be usable. Many of the statistics for a current library are printed at the end of the BACKUPG listing. In addition to the disk storage required to hold the members, etc., BIM-EDIT must have working space in its library. Each user logged on requires 96 blocks (32 blocks for each of $STACK, $LOG/$MAIL, and recovery area). Each EDIT session save requires enough contiguous blocks for its text (these blocks will be used before the blocks occupied by the previous version of the member or the EDIT session are freed). Fragmentation will also consume space, the amount depending on the number of volatile members in your library and their sizes (a rule of thumb would be to allow 10% or 1000 blocks -whichever is greater -- for fragmentation). Converting BIM-EDIT Blocks to FBA Blocks/CKD Tracks For FBA disk drives, eight FBA blocks equal one BIM-EDIT 4096 byte block. For CKD disk drives, the following table shows the number of BIM-EDIT 4096 byte blocks per track. Disk drive 2314 3330 3340 3350 Blocks/track 1 3 2 4 Disk drive 3375 3380 3390 9345 Blocks/track 8 10 12 10 Doing Something About Too Little Space Writing from the limb of conjecture, we feel an "average" "stable" site should "do something" when: • the total amount of disk space available is less than 3000 blocks. • or the largest available area is less than 1000 blocks. • or the number of entries in the AVAIL table is greater than 600. What you do depends on what appears to be consuming the space. If you have simply run out of space, you can: • purge members. • expand the BIM-EDIT library through a logical backup/restore sequence. If you feel the problem is excessive fragmentation, you can eliminate the fragmentation (for a while) through a logical backup/restore sequence. Page 406 BIM-EDIT System Reference Manual Managing Memory Utilization Managing Memory Utilization BIM-EDIT manages memory in 16K buffers and subdivisions of 16K buffers. These 16K buffers are acquired at system startup and then managed by BIM-EDIT to process requests as it receives them. BIM-EDIT Start-Up on VSE During startup, BIM-EDIT maps partition memory as follows: • If BIM-EDIT is running in its own partition, the JCL // EXEC statement must specify at least SIZE=4K. This allows the initial module BIMEDIT to be loaded. If access to VSE sublibraries is desired, SIZE=180K must be used for the interface to LIBR. • 64K is acquired from the partition GETVIS area to provide room for system control blocks and work areas and about 150K of GETVIS will be consumed by the BIMEDIT VSE Hardcopy support, and the IESMSGS file used by the MESSAGE command. • BIM-EDIT then attempts to acquire from the partition GETVIS area enough space for its 16K buffers. If there is not enough space in the GETVIS area for all of the 16K buffers indicated, BIM-EDIT will acquire as much space as it can, in units of 16K. The number 16K buffers actually acquired is kept for future reference. Note that if BIM-EDIT is running as a subtask in a CICS partition, BIM-EDIT acquires all storage from the GETVIS area of the CICS partition. BIM-EDIT Start-Up on MVS During startup, BIM-EDIT maps partition memory as follows: • The initial module of BIM-EDIT is loaded. • 64K is GETMAINed from the region to provide room for system control blocks and work areas. • BIM-EDIT then attempts to GETMAIN enough space for its 16K buffers. If there is not enough space in the region for all of the 16K buffers indicated, BIM-EDIT will acquire as much space as it can, in units of 16K. The number of 16K buffers actually acquired is kept for future reference. On MVS, BIM-EDIT modules are loaded into GETMAINed memory rather than the buffer pool. 300K of memory is reserved by BIM-EDIT before buffer acquisition to allow for this and other uses of region memory. Chapter 10. Operations and Administration Page 407 Managing Memory Utilization BIM-EDIT Processing of a Service Request When BIM-EDIT receives an input message requesting services from an online user, a workstation user, application interface program, or batch utility: • It will hold the message until a minimum specified number of buffers is available. • Buffers will be used during processing to hold any data areas needed to process the message. • If the input message requires the use of any BIM-EDIT modules which have not been previously loaded, BIM-EDIT will load the modules. On VSE, BIM-EDIT will use buffers to load the modules. On MVS, the modules will be loaded into GETMAINed storage. Memory Management Control Variables The values of five MMP (system memory map) variables are used to manage the buffer pool: MMP16KCU represents the number of 16K buffers that must be available before BIM-EDIT will process an input message. This variable can be set with the SET command. The starter library has a value of 8 for MMP16KCU, a value suitable for most sites. MMP16KDP represents the number of 16K buffers BIM-EDIT was able to acquire at startup. MMP16KSP represents the number of 16K buffers BIM-EDIT is to attempt to acquire at startup. This variable can be set with the SET command. The starter library has a value of 70 for MMP16KSP. This value is suitable for up to 8 concurrent users. MMP16KSW represents the number of 16K buffers that are available. This includes not only those in the available pool, but also those buffers that can be "acquired" from tasks in a wait state. MMP16KUS represents the number of 16K buffers in use. The contents of the MMP variables can be viewed online at any time by entering: => show mmp Variable MMP16KCU is used to avoid reactivating a task waiting on an input message when it would complicate a short-on-storage situation. If MMP16KCU buffers are not available, BIM-EDIT does not reactivate the task but allows existing tasks to complete processing and free buffers they've acquired. At such time as MMP16KCU 16K buffers become available, BIM-EDIT will reactivate a task to process an input message. The implementation minimizes the chance of a deadlock situation, i.e., a situation in which tasks are waiting for memory that will never be made available. If you encounter a deadlock situation, and if BIM-EDIT displays the BIRDPDLB deadlock message on the system console, set MMP16KCU to 10, and if the problem recurs, set MMP16KCU to 12. Variable MMP16KSP is used to limit the amount of memory allocated to BIM-EDIT to less than the full partition or region. Page 408 BIM-EDIT System Reference Manual Managing Memory Utilization VSE: On VSE, you would compute the figure to limit BIM-EDIT to 2048K as follows: Total memory allocated to BIM-EDIT Without LIBR With LIBR 2048 2048 4K 180K 214K 214K 1830K 1654K 114 103 Less amount reserved for initial program load Less amount initially acquired from GETVIS Memory available for 16K buffers Divide by 16K to give number of buffers (Do not attempt to limit BIM-EDIT to less memory or buffers than the minimum 8 user VSE system described below.) MVS: On MVS, you would compute the figure to limit BIM-EDIT to 2048K as follows: Total memory allocated to BIM-EDIT 2048K Less amount initially acquired 64K Less amount reserved for BIM-EDIT modules 250K Less region allowance for unknown requirements 100K Memory available for 16K buffers 1634K Divide by 16K to give number of buffers 102 (Do not attempt to limit BIM-EDIT to less memory or buffers than the minimum 8 user MVS system described below.) If the buffers were to be limited to 135, the System Administrator would enter: => set mmp16ksp,135 Initial Storage Estimates for VSE The initial estimate of the memory required to run BIM-EDIT on VSE depends on the number of simultaneous users expected: Max users logged on 8 (minimum) 16 32 Partition Size 1536K 2560K 3072K MMP16KSP 70 135 167 Max users logged on 64 128 Partition Size 4096K 8192K MMP16KSP 210 420 These figures include the 180K for the LIBR interface but do not include the 4K required per user with the enhanced screen compression (see predefined variable SIBCMPR). If your situation is different, adjust accordingly. Chapter 10. Operations and Administration Page 409 Managing Memory Utilization (Sometimes system software requires a certain amount of virtual storage within the GETVIS area of each partition. BIM-EDIT automatically reserves 64K for such uses. At present, tape and disk managers are the only products that BIM has identified as having additional requirements. After you've determined BIM-EDIT's requirement, be sure to add requirements posed by such products. If you're not sure of the requirements, 48K is probably an adequate additional allocation.) (Note that if more than 64 simultaneous CICS users are expected, module BIMCSDT must be reassembled. See "Changing the CICS Data Module (BIMCSDT)" in Chapter 11, Customization.) Initial Storage Estimates for MVS The initial estimate of the memory required to run BIM-EDIT on MVS depends on the number of simultaneous users expected: Max users logged on 8 (minimum) 16 32 Region Size 1536K 2560K 3072K MMP16KSP 70 135 167 Max users logged on 64 128 Region Size 4096K 8192K MMP16KSP 210 420 These figures do not include the 4K required per user with the enhanced screen compression (see predefined variable SIBCMPR). If your situation is different, adjust accordingly. (Note that if more than 64 simultaneous CICS users are expected, module BIMCSDT must be reassembled. See "Changing the CICS Data Module (BIMCSDT)" in Chapter 11, Customization.) Continuing Considerations Giving BIM-EDIT less space will probably decrease performance, while giving it additional space will probably increase performance. However, if significant paging is occurring, just the opposite may take place. Providing less space may increase performance, and providing more may decrease performance. In general, BIM-EDIT is able to do a more efficient job of paging its own data than the operating system can because it is in a better position to anticipate what data is likely to be referenced in the near future. The above figures should provide a balanced starting point for most sites. As an administrator, you should: • allocate enough memory so that BIM-EDIT can function at an acceptable performance level. If the amount of paging is insignificant, performance can be somewhat improved by increasing the virtual storage allocation (and hence, the number of 16K buffers available). • restrict the amount of memory allocated to BIM-EDIT so that BIM-EDIT does not cause excessive paging. If paging is significant, it may be advantageous to reduce BIM-EDIT memory below the recommended amounts. Some loss of performance occurs when BIM-EDIT shares buffers between tasks. However, given limited real memory, a reasonable degree of buffer sharing at peak Page 410 BIM-EDIT System Reference Manual Managing Memory Utilization periods is probably a wise use of resources. Buffer sharing begins when all buffers are in use, i.e., when MMP16KUS approximately equals MMP16KDP. Monitor MMP16KUS. If MMP16KUS is always 75% or less of MMP16KDP, you probably don't need as much memory as you have allocated. A critical loss of performance occurs when tasks are forced to wait for buffers. This condition should definitely be avoided. Monitor MMP16KSW. If MMP16KSW drops below 25% of MMP16KDP, more memory should be allocated to BIM-EDIT. (When monitoring the MMP variables, you'll need to take several samplings to find the peak value, probably at the heaviest load periods. Each display of the MMP variables is simply a snapshot as of that moment.) When BIM-EDIT enters a severe memory shortage situation, the following message is displayed: BIRDPMLA ** SYSTEM UNDER SEVERE MEMORY STRESS ** When the severe memory shortage situation is relieved, the following message is displayed: BIRDPMLB SYSTEM NO LONGER UNDER SEVERE MEMORY STRESS Some additional information can be gleaned from other MMP variables: • BIM-EDIT uses buffers in 5 different sizes: 16K, 4K, 1K, 256 byte, and 64 byte. 16K buffers have been discussed at length above. When no buffers of a particular size are available, a larger size buffer is subdivided into buffers of the size needed. The smaller buffers thus created are then allocated and freed as needed. Once subdivided, only 4K buffers are ever recombined into a larger size, and then only if all four buffers made from the original 16K are free. The variables that indicate the small buffer activity are: Buffer Size 4K 1K 256 64 • Buffers Allocated MMPMPLDP MMPMPMDP MMPMPSDP MMP64BDP Buffers In Use MMPMPLUS MMPMPMUS MMPMPSUS MMP64BUS On VSE, the number of 16K buffers in use for BIM-EDIT load modules is given by the MMPLDUSG variable. Once allocated, these buffers are never freed. Chapter 10. Operations and Administration Page 411 Transferring Members from Other Editors Transferring Members from Other Editors BIM-EDIT provides facilities for transferring members from other editors. Which facilities are best to use depends on the editor you are transferring from. Transferring Members from ICCF (VSE Only) On VSE, BIM-EDIT provides procedures/commands to transfer ICCF members to the BIM-EDIT library. The LOADI procedure will transfer an individual ICCF member. The LOADIL procedure will transfer an entire ICCF library. Refer to the LOADI and LOADIL documentation in Chapter 8, Operator and Administrator Commands in this manual. You may want to consider using the BIPSTAT procedure after the transfer. This procedure is described below. Transferring Members from MVS PDSs or VSE Sublibraries BIM-EDIT provides commands to transfer members from MVS PDSs and VSE sublibraries into the BIM-EDIT library. The LOADD procedure will transfer an individual member. The LOADDL procedure will transfer an entire MVS PDS or VSE sublibrary. Refer to the LOADD and LOADDL documentation in Chapter 3, Advanced User Commands, in this manual. The BIPSTAT procedure: After members are transferred to BIM-EDIT, by whatever means, you may want to provide initial values for fields such as TYPE, ATTR, etc. BIMEDIT provides the procedure BIPSTAT in library $SYS.PROC as an example of how you might initially set these values. BIPSTAT will process every member in a library and, based upon the contents of a member, set various fields in the member record. Take a look at BIPSTAT. Create a customized version to suit your needs. You may want to check for various other member types. Also, you'll probably want to provide different values for some of the fields. Transferring Members using the LOADT Command BIM-EDIT provides the LOADT command to load data from offload tapes produced by other systems. At present, four formats are supported: • VSE ICCF PUNCTL format • VSE SSERV PUNCH format • CONDOR CATALS/BKEND format • MVS IEBUPDTE format For more information, see the LOADT documentation in Chapter 3, Advanced User Commands, in this manual. Page 412 BIM-EDIT System Reference Manual Transferring Members from Other Editors Transferring Members by Creating a BIM-EDIT Command Tape This process for transferring members to BIM-EDIT is a two-step process. First, use the facilities of the other editor to create a tape in a format suitable to BIM-EDIT. The tape should contain either 80 byte records (max block size= 16000) or 81 byte records (max block size= 16200). If 81 byte records are used, the first byte is ignored by BIM-EDIT. The tape should be of the following format: DEFINE member1,type,other attributes EDIT INSERTF ... text for member1 ++/* SAVE DEFINE member2,type,other attributes EDIT INSERTF ... text for member2 ++/* SAVE Second, load the members to BIM-EDIT by a job stream similar to the following. Specify 'INCLUDE (TP81)' if the tape contains 81 byte records: VSE Job Control // JOB LOAD // ASSGN SYS004,TAPE // PAUSE MOUNT TAPE // EXEC BIMUTIL LOGON $SYS,$SYS ATTACH AR20 INCLUDE (TP80) /* /& MVS Job Control //CONVERT JOB //BIMUTIL EXEC //STEPLIB DD //BIFTP80 DD // //SYSPRINT DD //SYSIN DD LOGON $SYS,$SYS ATTACH AR20 INCLUDE (TP80) /* .... PGM=BIMUTIL DSN=BIMEDIT.LOADLIB,DISP=SHR DSNAME=BIMEDOUT,UNIT=TAPE,LABEL=(1,SL,EXPDT=98000), VOL=SER=BIM104 SYSOUT=A * Chapter 10. Operations and Administration Page 413 Chapter 11. Customizing BIM-EDIT This chapter discusses the process of changing BIM-EDIT to "fit" your site's needs. It covers a number of subjects, starting with the most common and simplest things to change and progressing towards more complicated and unusual topics. We feel that virtually all sites will benefit from "Modifying DEFINE Templates", most sites should look into "Controlling LOGON" and "Modifying COMPILE, PROCESS, and SUBMIT", and few will have reason to look at "Adding, Replacing, Deleting BIM-EDIT Modules". The topics covered are: Page 414 • Modifying System Control Variables • Modifying DEFINE Templates • Modifying HELP Displays • Modifying Error Messages • Controlling LOGON • Controlling Access to POWER Job Entries or JES Data Sets • Modifying COMPILE, PROCESS, and SUBMIT • Modifying Other System Procedures • Creating Library, User and Site Commands • Creating a CHECKIN Command Which Keeps Old Versions • Altering System Commands, Names and Restrictions (BIFXCCM Table) • Creating Commands Which Access CICS Transactions (BIFXCTR Table) • Modifying, Creating, Deleting BIM-EDIT Modules (BIFARMP Table) • Changing MAPF Screen Attribute Characters (BIFTBAT Table) • Changing the CICS Data Module (BIMCSDT) BIM-EDIT System Reference Manual Modifying System Control Variables Modifying System Control Variables BIM-EDIT provides a number of MMP predefined variables which can be used to control the operation of the system: MMPAUCTL Specifies whether users can turn off member auditing. MMPDTCTL Specifies whether USA or European date format is used. MMPICCTL (VSE only.) Specifies whether ICCF is accessible. MMPLGTYP Specifies whether users can use free format logon. MMPNOTFY (VSE only.) Specifies whether the POWER JOB NTFY= support is to be activated at startup. MMPPGCTL Specifies whether purge control is active. MMPPGSIZ Default number of lines to be printed per page. MMPQBKSP (VSE only.) Controls buffer allocation for POWER DLBK sizes greater than 12228. MMPPWCTL See "Controlling Access to POWER Job Entries or JES Data Sets" in this chapter. MMPSPCTL Specifies whether users can turn off member stamping. MMP16KCU See "Managing Memory Utilization" in Chapter 10. MMP16KSP See "Managing Memory Utilization" in Chapter 10. These values can be changed by the System Administrator with the SET command. For more information about these values, see Chapter 4, Predefined Variables, in this manual or the specified section. Chapter 11. Customizing BIM-EDIT Page 415 Modifying DEFINE Templates Modifying DEFINE Templates When a member is created via the DEFINE command, the TYPE operand determines the initial attributes and contents of the member. The DEFINE command implements this function by copying "template members" from the $SIT.MODEL library, or, if not found there, from the $SYS.MODEL library. If TYPE is specified, a template member of name TYPE will be copied for the initial characteristics of the new member. For example, if TYPE is COBOL, $SIT.MODEL.COBOL or $SYS.MODEL.COBOL will be used as the template. If TYPE is not specified, the type from member $SIT.MODEL.$DFL or $SYS.MODEL.$DFL will be used as the template. If the template member has text in it, the defined member will have a copy of this text, unless TYPE is enclosed in parentheses (). Template members are also used when members are accessed from a VSE sublibrary or an MVS PDS. EDITD and LISTD will use the template whose name is the "type" of the member being accessed to set the initial attributes of the session they create. BIM-EDIT as distributed provides the following members in library $SYS.MODEL: $DFL Default template type. As distributed, $DFL has a TYPE of COBOL. The TYPE defined for $DFL must be either 'UNDEFINE' or the name of a member in $SIT.MODEL or $SYS.MODEL. A Assembler source (used by EDITD and LISTD). ASM Assembler source (used by EDITD and LISTD). B (VSE) C COBOL source (used by EDITD and LISTD). COB COBOL source (used by EDITD and LISTD). COBOL COBOL source. DATA Generic data (all upper case). E (VSE) FORT ICCF PDS Edited assembler macro source (used by EDITD and LISTD). FORTRAN source. (VSE) JCL Page 416 VTAM definition data (used by EDITD and LISTD). Template used within the COPYI procedure to provide initial attributes for members transferred from ICCF. Job Control Language. (MVS) Attributes used by LOADD, if TYPE unspecified. P PL/I Source (used by EDITD and LISTD). PLI PL/I Source (used by EDITD and LISTD). PROC BIM-EDIT Procedure RPG RPG source. TEXT Generic text (upper and lower case). BIM-EDIT System Reference Manual Modifying DEFINE Templates VSE (VSE) Attributes used by LOADD, if TYPE unspecified. You can display the attributes of the template members with the INQUIRE command. For example, to display the attributes for the COBOL template, enter: => inquire $sys.model.cobol Many sites find it useful to customize the templates to match the activities performed frequently or to provide standard JCL or other contents. To customize the template facility, create members in library $SIT.MODEL. You should not customize $SYS.MODEL because it is completely restored when a new BIM-EDIT release is installed. For example, to create a member for TYPE "MEMO", whose attributes are to be the same as TYPE "TEXT": => attach $sit.model => define memo,text => alter memo,type=memo Note that we couldn't specify a TYPE of MEMO in the DEFINE command. BIM-EDIT would have rejected it because the template for MEMO did not yet exist. Rather we altered $SIT.MODEL.MEMO to TYPE=MEMO after it had already been defined. Disabling TYPE Check You can disable the TYPE check, allowing any value to be used for the TYPE attribute by defining a member $SIT.MODEL.$DFL with a TYPE of 'UNDEFINE'. Any other value for the TYPE attribute of the $DFL member simply establishes a 'default' TYPE, and the TYPE validation will still be performed. The attributes of the model whose name matches the TYPE of the $DFL member are used to define a new member when: • no TYPE is entered on the DEFINE command, or • when TYPE check processing has been disabled, and an undefined type is entered. Chapter 11. Customizing BIM-EDIT Page 417 Modifying HELP Displays Modifying HELP Displays A user who needs help with the BIM-EDIT CHANGE command can enter: => help change The help facility will respond by searching library $SIT.HELP for a member named CHANGE. If CHANGE is not found, library $SYS.HELP is then searched. Assuming a member is found in one of the libraries, the member is displayed. (If the HELP command is entered without an operand, the help facility searches for a member named MENU.) When a command can be entered in different ways (for example, "c" can be used instead of "change"), the help facility allows you to enter any of them: => help c Rather than storing the same text in both $SYS.HELP.C and $SYS.HELP.CHANGE, the synonym feature is invoked by providing a $SYS.HELP.C which contains no text, and has its title set to "-> CHANGE". When the help facility encounters the two characters ">" in the first two positions of the title, it extracts a new member name starting in position 4. The help facility then searches for the new member, in this case, member CHANGE. Sites may wish to customize HELP to explain other customizations (for example, security rules from the BIXPWQA exit), to "improve" the explanations, or to suppress certain explanations for security purposes. The distributed BIM-EDIT HELP members are held in library $SYS.HELP. You should not customize these members because the entire library is replaced when a new BIMEDIT release is installed. Instead, copy help members from $SYS.HELP to $SIT.HELP before customizing them. If a help member exists in both the $SYS.HELP and $SIT.HELP libraries, the one from $SIT.HELP will be used. To suppress HELP for a command, create $SIT.HELP entry(ies) for that command which are synonyms for a command that does not exist: => define $sit.help.defineu,(text),title='-> null' => define $sit.help.defu,(text),title='-> null' HELP is implemented by system procedure $SYS.PROC.BIPHELP. You can also customize HELP by modifying this procedure as described in "Modifying Other System Procedures" later in this chapter. Page 418 BIM-EDIT System Reference Manual Modifying Error Messages Modifying Error Messages The text for most messages displayed by BIM-EDIT is held in the message table. The assembler routines simply reference message codes. The message table is created at startup time by merging the contents of members $SYS.CTRL.MESSAGES and $SIT.CTRL.MESSAGES. (The message table can also be recreated with the NEWCOPY command while BIM-EDIT is running.) Messages in member $SIT.CTRL.MESSAGES take preference, i.e., if a message code exists in both members, the message from $SIT.CTRL.MESSAGES is used. Sites may wish to customize messages to "improve" them or to conform to other customizations. All messages distributed with BIM-EDIT are held in the $SYS.CTRL.MESSAGES member. You should not customize this member since it is replaced when a new BIMEDIT release is installed. Instead, create the $SIT.CTRL.MESSAGES member and place the customized messages there. Messages placed in $SIT.CTRL.MESSAGES should be of the same format as messages held in $SYS.CTRL.MESSAGES. The message code is placed in columns 1-8 and the message text in columns 10-153. Error message text begins with the message code in parentheses; success messages do not. Substitution of predefined variables is often used to make messages specific -- see Chapter 4, "Predefined Variables", in this manual, for more information. Messages should be placed in ascending order by message code. Chapter 11. Customizing BIM-EDIT Page 419 Controlling Logon Controlling Logon Forcing Secured Logon An online logon can either be free format or secured. When BIM-EDIT is accessed through CICS, a free format logon is of the format: edtr uuuuuuuu,pppppppp where edtr uuuuuuuu pppppppp is the BIM-EDIT transaction ID (EDTR is the default) is the user ID. is the password. Means of access other than CICS have similar ways to provide user ID and password when initiating the connection. A secure logon, on the other hand, is entered through a formatted screen where the password field is non-display. On CICS, the user simply enters: edtr and the formatted screen appears. The user then types in the user ID and password. The predefined variable MMPLGTYP defines whether free format logon is allowed. (predefined variables are described in Chapter 4 of this manual). If MMPLGTYP has a value of "F", the free format logon is allowed. If MMPLGTYP has a value of "S", only the secure logon is allowed. If MMPLGTYP has a value of "F", the secure logon is still allowed and is used if the user ID and password are not provided at initiation. BIM-EDIT, as distributed, has MMPLGTYP set to "F". To change this to enforce a secure logon, enter: => set mmplgtyp,s To view the current setting of MMPLGTYP, enter: => show mmp Look for the MMPLGTYP entry. Its current setting is in the DATA column. Overriding Logon If you run into a situation where a previous BIM-EDIT logon session has not been terminated, you can force the termination of the previous session by specifying the logon password field as '$FORCE'. This will terminate the current logon session for the specified user id. You can then re-enter the logon with the password defined for your userid. Page 420 BIM-EDIT System Reference Manual Controlling Logon Customizing the Logon Screen You can display your organization's logo (or other messages) by customizing the secure logon screen. The display which is used is contained in $SYS.CTRL.LOGON formatted as the screen layout for a MAPF command. To customize the screen, create a changed version in $SIT.CTRL.LOGON. You must retain USER and PSWD as eight character input fields somewhere on the screen. You might want to check the operation of your screen in a procedure like the following before you move it to $SIT.CTRL.LOGON: SET PPDVBL,1 SET PPDINCL,1 DCL USER,CHAR,8,V DCL PSWD,CHAR,8,V DCL MSG,CHAR,50,V SET MSG,'THIS IS A TEST MESSAGE' MAPF /INCLUDE YOURLIB.YOURMEM ++/* EXIT OK,'USER="&USER" PSWD="&PSWD"' BIM-EDIT protects you from making it inaccessible due to an error in the LOGON screen. If an error occurs while processing the screen, BIM-EDIT sets MMPLGTYP to F (free-format) so that a free-format logon can be used. Performing Special Processing after LOGON (LOGON Procedure) Additional logon control can be provided by creating a LOGON procedure. If present, a procedure named $USR.uuuuuuuu.LOGON will be executed immediately when online user uuuuuuuu logs on. It is possible to write a procedure that will control all user operations from logon to logoff, with the user having no opportunity to execute commands. If there is no $USR.uuuuuuuu.LOGON, BIM-EDIT will check for a $SIT.PROC.LOGON and will execute it if present. BIM-EDIT will not check the $SYS library. The LOGON procedure is not executed when using BIM-EDIT from batch utility or from the application interface. Performing Special Processing before LOGON (BIXLOGN Module) Module BIXLOGN is an exit routine which receives control just before logon. It is given addressability to the user ID and password. These can be changed or the logon can be rejected based on criteria outside of BIM-EDIT. The distributed module performs no operation. BIXLOGN can acquire storage that remains for the duration of the BIM-EDIT task, and hence is available for use in other modules. For more information, see the assembler source code in $SYS.SRC.BIXLOGN. Make a copy of the distributed version as a starting point: => copy $sys.src.bixlogn $sit.src.bixlogn Chapter 11. Customizing BIM-EDIT Page 421 Controlling Logon and modify the )INCL commands to refer explicitly back to the $SYS.SRC library. After you've assembled and linked the new version, it can be loaded with the following command: => newcopy bixlogn (Note that "bugs" in BIXLOGN can totally prevent all subsequent LOGONs. A good first precaution is to leave a terminal logged on while you test your new routine on another terminal. However, in case your customized BIXLOGN routine abends BIMEDIT, you should make sure you have a reliable copy of BIXLOGN where it can be reinstated if your modifications cause problems.) Page 422 BIM-EDIT System Reference Manual Controlling Access to POWER Job Entries or JES Data Sets Controlling Access to POWER Job Entries or JES Data Sets It is usually desirable to limit a user's access to POWER job entries (if running on VSE) or JES data sets (if running on MVS). The BIXPWQA exit routine determines whether access is to be allowed or denied. The following is an overview description of the routine. For the details of the interface, see the comments in the assembler source code in $SYS.SRC.BIXPWQA. The BIXPWQA exit routine is provided: • the PWR record (on VSE) or the JCT/JQE record (on MVS). • the SIB (system interface block). (The predefined field SIBSECPW holds the user security level set with the PWRSEC operand of the DEFINEU and ALTERU commands. Thus the exit routine can function differently based upon the security level in effect for the user.) • the MMP (system memory map block). (The predefined field MMPPWCTL is provided specifically for use in BIXPWQA. Based upon the MMPPWCTL setting, the exit routine can function in different ways at different times. For example, you may use MMPPWCTL to control whether security is active.) • the user id specified on the command. • the command line to be passed to POWER or JES. • the access type, for example, read-only LISTP versus an update ALTERP. The distributed version of BIXPWQA functions as follows: 1. Security is active only when MMPPWCTL has a value of "1". 2. If SIBSECPW has a value of "0", access is always denied. Thus certain users can be totally excluded from access. 3. If SIBSECPW has a value of "1", access is controlled by the user field of the POWER job entry or the job name of JES data sets. On VSE, access is provided only if the first four characters of the POWER user field from the "* $$ JOB" card match the BIM-EDIT logon ID. On MVS, access is provided only if the JES job name field from the "// JOB" begins with the BIM-EDIT logon ID. 4. If SIBSECPW has a value of "2", access for CONTROLP, LISTP, PURGEP and ALTERP is always allowed. Access for the LIBRARYP command is limited by user specified on the USER parameter. If USER=ALL is specified, all entries are listed. Otherwise, on VSE, access is allowed if the first eight characters of the POWER user field match USER (if entered) or the BIM-EDIT logon id (if USER not entered). Otherwise, on MVS, access is allowed if the JES job name matches USER (if entered) or the BIM-EDIT logon id (if USER not entered). 5. If SIBSECPW has a value of "3", access is always allowed. Thus certain users (typically operators or administrators) can be given a SIBSECPW of "2" or "3" so that they are allowed access to all job entries. Sites implement customized versions of BIXPWQA to alter the way in which it determines security. For example, you may want to base access decisions upon the first Chapter 11. Customizing BIM-EDIT Page 423 Controlling Access to POWER Job Entries or JES Data Sets few characters of the job name as opposed to the user field. Make a copy of the distributed version as a starting point: => copy $sys.src.bixpwqa $sit.src.bixpwqa and modify the )INCL commands to refer explicitly back to the $SYS.SRC library. After you've assembled and linked the new version, it can be loaded with the following command: => newcopy bixpwqa Page 424 BIM-EDIT System Reference Manual Modifying COMPILE, PROCESS, and SUBMIT Modifying COMPILE, PROCESS, and SUBMIT The COMPILE command Based on information it obtains from the member attributes, COMPILE should submit the member as program source enclosed in the appropriate JCL. Thus to compile program XIR2700, you would enter => compile xir2700 whether XIR2700 is a COBOL program or an assembler program, whether it is to be passed through the CICS command level translator or not. The COMPILE command is only half-implemented as procedure BIPCOMP on the starter system. You should complete it so that it handles all types of compilations and assemblies used at your site. The following member attributes, all of which can be defined by the site, are provided for use in COMPILE: TXMTYPE member type. The supplied types include the common languages COBOL, RPG, PLI, ASM, and FORT. See "Modifying DEFINE Templates" earlier in this chapter for more information on member types. TXMATTR member attribute. The distributed BIPCOMP procedure uses it to indicate the type of the compile. For example, following TXMATTR values could be used: TXMLDEF NL native, link and catalog CL CICS, link and catalog NR native, compile only CR CICS, compile only library definition. You could use it to determine where to catalog a the compile results and what libraries to access when compiling or linking the member. These attributes can be set by the DEFINE, FDEFINE, ALTER, and FALTER commands. See the BIM-EDIT User Reference Manual for more information. BIM-EDIT provides the following in $SYS.PROC.BIPCOMP: SET PPDVBL,1 DCL MEM,CHAR,33,V PARSE MEM READ &MEM IF XTREUSER,NE,'' EXIT ED,'(BIPCOMPA) ** MEMBER "&TXMLIB..&TXMMEM" IS BEING EDITED **' IF TXMTYPE,EQ,'' EXIT SV,'(BIPCOMPB) ** MEMBER "&TXMLIB..&TXMMEM" TYPE NOT SET **' IF TXMATTR,EQ,'' EXIT SV,'(BIPCOMPC) ** MEMBER "&TXMLIB..&TXMMEM" ATTR NOT SET **' AUTH ON EX $SIT.COMP.&TXMTYPE-&TXMATTR AUTH OFF EXIT OK,'## JOB TO COMPILE MEMBER "&TXMLIB..&TXMMEM" SUBMITTED ##' Chapter 11. Customizing BIM-EDIT Page 425 Modifying COMPILE, PROCESS, and SUBMIT This procedure retrieves the member name, gets the member attributes, and then executes another procedure in library $SIT.COMP based on TXMTYPE and TXMATTR. If a member being compiled had TXMTYPE=COBOL and TXMATTR=NL, BIPCOMP would execute a procedure called $SIT.COMP.COBOL-NL. No procedures are distributed on the starter system in library $SIT.COMP -- those are yours to write. The following is an example of what the COBOL-NL procedure might look like: VSE COBOL-NL Procedure SET PPDVBL,2 SET PPDINCL,1 SET PPDTRAP,1 DCL JOBNAM,CHAR,08,V SETD JOBNAM,TXMMEM SUBMITF * $$ JOB JNM=&JOBNAM,DISP=D,CLASS=W,USER=&SIBUSER * $$ LST DISP=H // JOB &TXMMEM )AUTH ON /INCLUDE $SIT.COMP.LIBDEF-&TXMLDEF )AUTH OFF // OPTION CATAL,NOLISTX,NOSYM ACTION NOMAP PHASE &TXMMEM,* /* // EXEC FCOBOL,SIZE=128K CBL NOSEQ,FLAGW,NOCLIST,NOSXREF,NOTRUNC /INCLUDE &TXMLIB..&TXMMEM /* // EXEC LNKEDT /& * $$ EOJ ++/* If TXMLDEF had a value of "USR", this procedure would include the contents of the member $SIT.COMP.LIBDEF-USR. That member might look something like: VSE LIBDEF-USR member // // // // Page 426 LIBDEF LIBDEF LIBDEF LIBDEF CL,TO=USRCL1 RL,TO=USRRL1 RL,SEARCH=USRRL1 SL,SEARCH=USRSL1 BIM-EDIT System Reference Manual Modifying COMPILE, PROCESS, and SUBMIT MVS COBOL-NL Procedure SET PPDVBL,2 SET PPDINCL,1 SET PPDTRAP,1 DCL WORK8,CHAR,8,V SETD WORK8,TXMMEM SUBMITF //&WORK8 JOB (&SIBUSER,&SIBPSWD), // NOTIFY=&SIBUSER,REGION=1024K, // MSGCLASS=Q //COMPILE EXEC COBVCL, // PARM.COB='LANGLVL(1),OPT,DMAP,CLIST,NODYNAM,NOXREF' )AUTH ON /INCLUDE $SIT.COMP.COBLIB-&TXMLDEF )AUTH OFF //COB.SYSIN DD * /INCLUDE &TXMLIB..&TXMMEM /* )AUTH ON /INCLUDE $SIT.COMP.LNKLIB-&TXMLDEF )AUTH OFF //LKED.SYSIN DD * /* ++/* If TXMLDEF had a value of "USR", this procedure would include the contents of the members $SIT.COMP.COBLIB-USR and $SIT.COMP.LNKLIB-USR. These members might look something like: MVS COBLIB-USR member //COB.SYSLIB DD DSN=&SIBUSER..SOURCE.COB,DISP=SHR MVS LNKLIB-USR member //LKED.SYSLIN // //LKED.SYSLMOD //LKED.SYSLIB // DD DD DDNAME=SYSIN DD DSN=&SIBUSER..LOADLIB,DISP=SHR DD DD DSN=&SIBUSER..LOADLIB,DISP=SHR Notes: 1. The COBOL-BL procedure does not receive as a parameter the name of the member to be compiled. Rather the BIPCOMP procedure read the attributes of the member into the TXM variables. The COBOL-BL procedure will compile the member whose attributes are held in the TXM variables. 2. It is necessary to bypass normal library security when including the LIBDEF member. The AUTH ON command causes normal library security to be bypassed. The AUTH OFF command restores normal library security. (These commands are only valid when executing out of the $SYS or $SIT library). Your existing compilation procedures should serve as a good starting point in writing the $SIT.COMP procedures. You may want to make a list of all of the various compile/assembly types to determine the coding of the ATTR field. You might find it useful to consider other information within BIPCOMP. For example, rather than use the Chapter 11. Customizing BIM-EDIT Page 427 Modifying COMPILE, PROCESS, and SUBMIT LIBDEF field for cataloging information, you could base that decision upon the BIMEDIT library where the member is stored. You may modify the operation of BIPCOMP for your site after copying it from $SYS.PROC to $SIT.PROC, and making entries for COMP and COMPILE in $SIT.CTRL.COMMANDS. If you do so, you should also create $SIT.PROC.BIPPROC by copying $SYS.PROC.BIPPROC and make entries for PROC and PROCESS in $SIT.CTRL.COMMANDS. Otherwise, the PROCESS command running from $SYS will invoke $SYS.PROC.BIPCOMP, not your replacement version. This is especially significant because the PROCESS command is invoked by the S LCA command. The PROCESS Command The PROCESS command, which is invoked by LCA command S, is implemented by procedure BIPPROC. As distributed on the starter system, it determines which command to use based on member type: • If member type is ASM, COBOL, FORT, PLI, or RPG, PROCESS will perform a COMPILE. • If member type is PROC, PROCESS will perform an EXECUTE. • If member type is JCL, PROCESS will perform a SUBMIT. • Any other member type is an error. If you add new member types, you may wish to customize BIPPROC. Copy it from $SYS.PROC to $SIT.PROC before doing so, then make entries for PROC and PROCESS in $SIT.CTRL.COMMANDS. The SUBMIT Command The SUBMIT command is implemented by procedure BIPSUBM. As distributed, it assumes that the data to be submitted contains appropriate JCL. You may customize it so that it produces JCL (similar to COMPILE above) or performs other checking. Copy it from $SYS.PROC to $SIT.PROC before changing it, then make entries for SUB and SUBMIT in $SIT.CTRL.COMMANDS. On MVS, the SUBMITD command is implemented by procedure BIPSUBD. It is similar in function and customization to BIPSUBM. As described above for the COMPILE command, if you create a revised BIPSUBM in the $SIT.PROC library, you should also create a $SIT.PROC version of BIPPROC so that the PROCESS command will invoke your $SIT.PROC.BIPSUBM, not the supplied $SYS.PROC.BIPSUBM. Page 428 BIM-EDIT System Reference Manual Modifying COMPILE, PROCESS, and SUBMIT The SUBMITF Exit (BIXPWSB) All methods of introducing data to the batch system ultimately operate using a SUBMITF command. Module BIXPWSB is an exit routine which receives control at three stages of a SUBMITF execution: • SUBMITF open before any lines are transferred. • SUBMITF detail as each line is transferred. • SUBMITF close after all lines are transferred (control will be received even if the SUBMITF is aborted). This exit operates between the BIM-EDIT library access mechanism and the transfer to the operating system's input reader. INCLUDEs or GOTOs take place before BIXPWSB gets control. All lines to go to the input reader must be transferred by BIXPWSB to the internal BIM-EDIT transfer routine or some other routine. Any time it receives control, BIXPWSB can: • Transfer one or more lines to the operating system. • Ignore its input line. • Indicate that the SUBMITF should be aborted. BIXPWSB is given addressibility to the SIB and the MMP records, and through them to the PPD record, the line to be submitted, and a return code area. On VSE, BIXPWSB as distributed with the starter system checks to assure that the JCL in the member is enclosed in appropriate statements to start and end the job. If statements are missing, BIXPWSB creates dummy statements. On MVS, BIXPWSB as distributed with the starter system performs no operation at SUBMITF open and close and simply passes lines through to JES at SUBMITF detail. A site may customize BIXPWSB to change the dummy JCL it creates, to implement additional checks, or to implement an entire alternative SUBMIT facility. For more information, see the assembler source code in $SYS.SRC.BIXPWSB. Make a copy of the distributed version as a starting point: => copy $sys.src.bixpwsb $sit.src.bixpwsb and modify the )INCL commands to refer explicitly back to the $SYS.SRC library. After you've assembled and linked the new version, assure no one is currently submitting, and then load the module with the following command: => newcopy bixpwsb (Note that "bugs" in BIXPWSB can totally prevent useful SUBMITs, including those which might be intended to fix the "bugs". You should make sure you have a reliable copy of BIXPWSB where it can be reinstated if your modifications cause problems.) Chapter 11. Customizing BIM-EDIT Page 429 Modifying Other System Procedures Modifying Other System Procedures A number of commands are implemented as procedures in $SYS.PROC. If you want to change their operation at your site, create a copy in $SIT.PROC and make your changes, then make the entries for the commands which access the procedure in the $SIT.CTRL.COMMAND table. Do not make modifications to procedures in $SYS.PROC because they are completely replaced during the next BIM-EDIT version install. The following is a list of commands implemented by procedures and some of the common site customizations: Page 430 Command COMPILE COPYD FALTERL FALTER FALTERP FALTERS FALTERU FDEFINE GETQ HELP INQUIRE INQUIRED INQUIREU INSTALL KEYS LOADD LOADDL LOADI LOADIL PRINT PROCESS PUNCH PUNCHL RENAMED REPRO REPROL SEND (none) Procedure BIPCOMP BIPCPYD BIPFALL BIPFALM BIPFALP BIPFALS BIPFALU BIPFDFM BIPGETQ BIPHELP BIPINQM BIPINQD BIPINQU BIPINST BIPKEYS BIPLDDX BIPLDDL BIPLDIX BIPLDIL BIPPRNT BIPPROC BIPPUNM BIPPUNL BIPREND BIPREPM BIPREPL BIPSEND BIPSTAT SETKEYS SUBMIT SUBMITD BIPSTKY BIPSUBM BIPSUBD (none) LOGON Potential Changes See "Modifying COMPILE, PROCESS, and SUBMIT" Remove access to some attributes Remove access to some attributes Implement site defaults, remove password display Implement site defaults Remove display of some attributes Remove display of some attributes Set site defaults for resulting members Set site defaults for resulting members (VSE) Set site defaults for resulting members (VSE) Set site defaults for resulting members Change handling of headings, other format details See "Modifying COMPILE, PROCESS, and SUBMIT" See Chapter. 9, "Transferring Members from Other Editors" Set site defaults for PF keys See "Modifying COMPILE, PROCESS, and SUBMIT" (MVS) See "Modifying COMPILE, PROCESS, and SUBMIT" See "Controlling LOGON" BIM-EDIT System Reference Manual Creating Library, User and Site Commands Creating Library, User and Site Commands BIM-EDIT allows flexible command customization through its command resolution scheme. A site can customize BIM-EDIT commands through the site command table and associated procedures. A user can customize BIM-EDIT through his user command table and associated procedures. Customization can also occur based upon the attached library. How Command Resolution Works The resolution of a command to a particular module or procedure is controlled by command tables. There are four command table types, listed in the order in which they are searched: 1. Attached Library command table. 2. User command table. 3. Site command table. 4. System command table. If BIM-EDIT is unable to resolve a command after searching all command tables, and access is through CICS, a search is made for a command which invokes a CICS transaction, (see "Creating Commands Which Access CICS Transactions (BIFXCTR Table)" later in this chapter). If a transaction is not found, a search is made for a procedure of the command name in the attached library. The Attached Library, User, and Site command tables are built from the contents of members of a specific format. Each line in a command table member contains the command in columns 1-8 and the associated procedure name in columns 10-25. Lines are in alphabetical order by command. More than one command can refer to the same procedure. If a command table member does not exist, the command table behaves as if it has no entries. Attached Library command table: When a user logs on or attaches to a library, BIM-EDIT searches for a member of name COMMANDS in the attached library. An entry in the attached library command table associates a command with a procedure in the attached library. User command table: Each logged on user can have a user command table. When a user logs on, BIM-EDIT searches for a member of name COMMANDS in library $USR.uuuuuuuu (uuuuuuuu is the user ID). An entry in the user command table associates a command with a procedure in the $USR.uuuuuuuu library. Site command table: When BIM-EDIT is started, it searches for a member of name COMMANDS in library $SIT.CTRL. The site command table can also be rebuilt with the NEWCOPY command. An entry in the site command table associates a command with a procedure in the $SIT.PROC library. Chapter 11. Customizing BIM-EDIT Page 431 Creating Library, User and Site Commands The BIM-EDIT starter system does not include any command table members. You will need to create them the first time you have a need for them. System command table: The system command table is different in format. It exists as the BIM-EDIT module BIFXCCM (see "Altering System Commands, Names and Restrictions (BIFXCCM Table)" next in this chapter). An entry in the system command table associates a command with either a procedure in the $SYS.PROC library or a BIM-EDIT assembler module. A special rule is imposed to prevent the function of a high level procedure from being disrupted by the resolution of an internal command at a lower level. Thus, even though the User command table defines a command called READ, the system procedures will use the system command READ, and therefore will continue to function as documented. The implementation of this rule is as follows: 1. BIM-EDIT stores the command table level at which a command is resolved: Attached Library command table: User command table: Site command table: System command table: Procedure in the attached library: 2. level 1 level 2 level 3 level 4 level 1 If a command resolves to a procedure, any commands invoked from that procedure will only be resolved at levels at least as high as the invoking command. That is, BIM-EDIT will skip all tables at a lower level than the command it is executing. For example, if the command SUBMIT was resolved by the site command table, the READ command it contains could be resolved by either the Site command table or the System command table. BIM-EDIT would not search the Attached Library command table or the User command table. Creating Your Own Commands / Preempting BIM-EDIT's Commands Clearly, BIM-EDIT gives you extensive capabilities to create specialized commands for your needs. You can create anything from a command to send mail to all users on the system (or all users defined) to a command to perform a specialized edit to all members in your library. We have already discussed commands which are implemented by system procedures and how you might modify them. You can also create procedures which replace or extend system commands by defining command entries for them in the Attached Library, User or Site Command tables. Some uses of this capability might be: Page 432 • To log the usage of a command (for example, security modification commands) • To enforce certain sequences of commands (for example, mailing a message to Computer Operations whenever a module is placed in production). • To disable the use of certain commands used in certain ways. BIM-EDIT System Reference Manual Creating Library, User and Site Commands Two system commands are especially useful in procedures which preempt system commands: AUTHORIZ allows access to all libraries when executed from within a procedure in the $SYS or $SIT libraries. This allows a procedure to access log or table members even though the user who is executing the procedure does not have the security required to access them. BYPASS causes BIM-EDIT to start with the next higher level of command table to resolve the command on the following line. This allows reference to the original system command, even though the preempting procedure is in the current level of command table under the system command's name. (This command avoids recursive invocation when using a procedure to preempt a system command.) Chapter 11. Customizing BIM-EDIT Page 433 Creating a CHECKIN Command Which Keeps Old Versions Creating a CHECKIN Command Which Keeps Old Versions This section shows how the CHECKIN command might be extended so that, in addition to actually checking in the member, it will maintain five previous versions of a member in a SCBK library. First, the following procedure is created in $SIT.PROC.SIPCHKI: SET PPDVBL,1 DECLARE MEM,CHAR,33,V ; DECLARE MLIB,CHAR,16,V ; DECLARE SLIB,CHAR,16,V ; DECLARE XMEM,CHAR,16,V ; PARSE MEM ; READ &MEM ; IF TXMCKUSR,EQ,'' EXIT CK,'(CHECKINA) ** MEMBER **' IF TXMCHECK,EQ,1 ; READ &TXMCKLIB..&TXMMEM SET MLIB,&TXMCKLIB ; SET SLIB,&TXMLIB SET XMEM,&TXMMEM AUTHORIZ ON ; SET PPDCOND,1 ; PURGE SCBK.&XMEM-5 ; RENAME SCBK.&XMEM-4,SCBK.&XMEM-5; RENAME SCBK.&XMEM-3,SCBK.&XMEM-4 RENAME SCBK.&XMEM-2,SCBK.&XMEM-3 RENAME SCBK.&XMEM-1,SCBK.&XMEM-2 SET PPDCOND,0 COPY &MLIB..&XMEM,SCBK.&XMEM-1 ; AUTHORIZ OFF ; BYPASS ; CHECKIN &SLIB..&XMEM EXIT OK,'## MEMBER "&SLIB..&XMEM" MEMBER NAME SUPPLIED ON COMMAND MASTER LIBRARY NAME SLAVE LIBRARY NAME MEMBER NAME WITHOUT LIBRARY NAME GET SPECIFIED NAME (CAN OMIT) MAKE SURE TXM UP TO DATE "&TXMLIB..&TXMMEM" NOT CHECKED OUT IF MASTER SPECIFIED, GET SLAVE NORMALIZE NAMES GET TEMPORARY DEF ACCESS TO SCBK MAKE IT WORK IF < 5 VERSIONS IF PRESENT, GET RID OF -5 SHIFT OTHERS DOWN ONE CREATE NEW -1 NO MORE TEMP ACCESS SO WE DON'T RE-INVOKE OURSELVES CHECKED IN ##' Then, entries are added to $SIT.CTRL.COMMANDS, in alphabetical sequence: CHECKIN CHKI SIPCHKI SIPCHKI Finally, the site command table is then updated by entering the following: => newcopy commands Now when someone enters "checkin", the site procedure SIPCHKI is invoked. Many other variations of CHECKIN function are possible: • • • • • Page 434 Other library and member naming schemes can be used. Rather than keeping entire back versions, change logs (produced by AUDITSM) can be saved. A BACKOUT proc is then written to recreate an old version. Notifications can be sent by MAIL when CHECKIN occurs. Recompilation of production programs can be tied to CHECKIN. CHECKIN can be modified to perform a RENAME when the master does not already exist. BIM-EDIT System Reference Manual Altering System Commands, Names and Restrictions (BIFXCCM Table) Altering System Commands, Names and Restrictions (BIFXCCM Table) As described in the previous section, the System command table resides in module BIFXCCM. BIM-EDIT branches to a command module or executes a system procedure based upon entries in the System command table. In addition to being the only place which can specify that a command is to be serviced by a command module as opposed to a procedure, the System command table also contains the restrictions on when a command is valid. (If an entry is found, but if the command restrictions are not valid in the current situation, BIM-EDIT will function as if an entry was not found.) The following are the primary reasons you might want to modify the System command table: • To add a command name variation (for example, V for VIEW) or delete a command name variation. (If you do this, don't forget to update HELP as well). • To modify the restrictions on use of a particular module or procedure. For example, you might want a particular command to be executed only by ADM level users. Or you might want to restrict a particular command to batch. • To add a command module entry and associated command entries. If you can't find a BIM-EDIT command that does what you want to do, and if you can't accomplish it with a procedure, you may want to create a new BIM-EDIT command module. (See "Adding, Replacing, Deleting BIM-EDIT Modules" later in this chapter). Your BIM technical support representative will supply on request selected BIM-EDIT source that might be helpful in the creation of a new command module. Your representative can also provide technical assistance. We recommend you do not modify procedure entries to the System command table. Instead, use the Site command table and site procedure library as described in "Creating Library, User, and Site Commands" earlier in this chapter). Structure of the System Command Table The assembler source in $SYS.SRC.BIFXCCM contains three parts. 1. Introductory assembler code which you should not modify. 2. An entry for each command or command variation. Each entry consists of an invocation of the BI$CM macro (defined in the introductory assembler) with two operands: • the command name or command name variation • the module or procedure name of an entry in the third part of the table. The following are a couple of entries from the second portion of the table: BI$CM ALT,BICALTM BI$CM ALTER,BICALTM These entries indicate module BICALTM can be executed by entering either of the commands "alt" or "alter". Chapter 11. Customizing BIM-EDIT Page 435 Altering System Commands, Names and Restrictions (BIFXCCM Table) BIM-EDIT uses a binary search technique to locate a command entry, so entries in the second portion of the table must be held in alphanumeric order. For example, the RENAME entry should always come before the REPROF entry. 3. An entry for each command module or procedure. Each entry consists of an invocation of the BI$MD macro (defined in the introductory assembler) with five operands: • the module or procedure name. The "BIC" entries are modules. The "BIP" entries are procedures. • if the entry describes a module, the offset of the module's entry in the BIFARMP routine table. (See "Modifying, Creating, Deleting BIM-EDIT Modules"). • a 4 byte command security field. Byte 1 corresponds to command class USER, byte 2 to EXTU, byte 3 to OPER, and byte 4 to ADM. Each byte is either "0" or "1", the "0" indicating that the module or procedure is inaccessible to the particular class of users, and the "1" indicating that the module or procedure is accessible. For more information, see "User Definition and Modification" in Chapter 10 of this manual. • an indication as to whether the command module or procedure can be used only in batch ("UTL"), only online ("ONL"), only application interface ("APL"), or in any environment ("ALL"). • an indication as to whether the command module or procedure must be used from within a procedure ("PRC") or can be used both within a procedure and interactively ("ALL"). The absence of an entry indicates interactive only. (Batch Utility and the Application Interface are considered procedures.) • the initial status for the command module or procedure. A command module or procedure is either initially enabled ("ENA") or disabled ("DIS"). The status can subsequently be changed by the ENABLE and DISABLE commands. The following is the BICALTM entry from the third portion of the table: BI$MD BICALTM,1111,ALL,ALL,ENA The "1111" indicates that BICALTM can be used by USER, EXTU, OPER, and ADM users, i.e., by all user classes. The first "ALL" indicates that BICALTM can be used in batch, online, or the application interface. The second "ALL" indicates that BICALTM can be used either from a procedure or interactively. The "ENA" indicates that BICALTM is initially enabled. Additional documentation is provided in the BIFXCCM member itself. Changing BIFXCCM Copy BIFXCCM from $SYS.SRC to $SIT.SRC before changing it. After making your changes and assembling and linking it, a new version of BIFXCCM can be loaded by: => newcopy BIFXCCM Page 436 BIM-EDIT System Reference Manual Altering System Commands, Names and Restrictions (BIFXCCM Table) (Note that errors in the System Command Table can make BIM-EDIT unusable. Before changing it, be sure to place a reliable copy of BIFXCCM where you can retrieve it if your changes prove unworkable.) Chapter 11. Customizing BIM-EDIT Page 437 Creating Commands Which Access CICS Transactions (BIFXCTR Table) Creating Commands Which Access CICS Transactions (BIFXCTR Table) BIM-EDIT allows you XCTL or LINK to CICS programs or start CICS transactions. If the command entered on the command line does not match any active command table entry and does match a command entry in the BIFXCTR transaction table, the transfer of control described in the table occurs. The CICS program can in turn transfer control back to BIM-EDIT, bypassing the normal logon procedure. This facility is only relevant when access to BIM-EDIT is through CICS. It is not relevant for access directly through VTAM. You can add entries to BIFXCTR for CICS facilities that you would like to get to quickly from BIM-EDIT. After modifying BIFXCTR, assemble and catalog it, and then load a new version with the BIM-EDIT NEWCOPY command. Each entry in the BIFXCTR table contains: • a command code. • the program to XCTL or LINK to, or the transaction to START. • an indication as to whether to XCTL, LINK, or START. "X" indicates XCTL. "L" indicates LINK. "S" indicates START. Source code for the table distributed with BIM-EDIT is in library $SYS.SRC. It contains mostly transaction codes for other BIM products, as well as an entry for IBM's CEMT transaction, as follows: BI$TR CEMT,DFHEMTA,L Based on this entry, if you entered on the command line => cemt inq da the entire contents of the command line would be placed in a TIOA, and BIM-EDIT would link to program DFHEMTA, which would process the command line just as if the data had been entered from a clear screen. When you ended the CEMT transaction in the normal way (PF3), control would return to BIM-EDIT. There are some considerations to accessing CICS facilities from BIM-EDIT: 1. A program initiated by LINK cannot be pseudo-conversational. Control will return to BIM-EDIT when the program attempts to RETURN to CICS. 2. A program initiated by START can determine that it has been started by BIM-EDIT by examining the data area returned by the CICS Command Level RETRIEVE command. It will consist of the characters 'BIM-EDIT' (bytes 0-7), the Transaction ID used to run BIM-EDIT (bytes 8-11), and the data from the BIM-EDIT command line (bytes 12-nn). 3. A program initiated by XCTL will need to assume it is coming from BIM-EDIT. 4. A program initiated by XCTL or START should be written to return control to BIMEDIT by issuing a START for the BIM-EDIT tranid on the current terminal: EXEC CICS START TRANSID('EDTR') TERMID(EIBTRMID) Page 438 BIM-EDIT System Reference Manual Creating Commands Which Access CICS Transactions (BIFXCTR Table) 5. If a program initiated by LINK or XCTL requires a CICS TWA, ensure that the BIMEDIT CICS PCT entry provides an adequate TWA size. After BIM-EDIT transfers control to a CICS facility, the next logon from that terminal will assume the same user and password without any screen dialog. This can have security implications if control is not consistently returned to BIM-EDIT (for example, if the facility abends or fails to restart BIM-EDIT). Chapter 11. Customizing BIM-EDIT Page 439 Modifying, Creating, Deleting BIM-EDIT Modules (BIFARMP Table) Modifying, Creating, Deleting BIM-EDIT Modules (BIFARMP Table) To perform advanced customization of BIM-EDIT, you might need to modify or add BIM-EDIT modules. For example, you might need to change the function of a system command module or add a new system command. This section describes how to do that. Note that there is an interrelationship with other sections: • The sections on "Controlling LOGON", "Controlling Access to POWER Job Entries or JES Data Sets", and "Modifying COMPILE, PROCESS, and SUBMIT" describe the modification of BIM-EDIT exit routines, which are BIM-EDIT modules. • The section on "Altering System Commands, Names, and Restrictions (BIFXCCM Table)" describes modifying the System Command Table, which is a BIM-EDIT module, and also talks about adding new BIM-EDIT commands, which could consist of BIM-EDIT modules. • The sections on "Creating Commands which access CICS Transactions (BIFXCTR Table)" and "Changing MAPF Screen Attribute Characters (BIFTBAT Table)" describe modifications of BIM-EDIT Modules. Background As a program, BIM-EDIT is organized unconventionally. It is composed of approximately 1000 separately assembled and linked modules. BIM-EDIT loads a module into memory the first time it is used. If a module is never used, it never gets loaded. Because some portions of BIM-EDIT are hardly ever used (for example, the operator and administrator commands), significant savings in average memory use result from this strategy. To allow this, inter-module addresses are determined at execution time, rather than link time. Because of this approach, it is also straightforward to load a new copy of a module without recycling the entire BIM-EDIT system. The current address of each module in memory is held in the BIFARMP module directory. Each entry in the table consists of two items: • the module name • the memory address where the module is located. (If the module has not been loaded, it will contain the address of an internal load routine, so that the first time the module is referenced the load routine is invoked to load the module.) The LIBRARYR command displays the contents of BIFARMP. BIFARMP is located 4096 decimal bytes after the beginning of the MMP block. This makes it readily available, since the address of the MMP block is always held in register 11. Modules access the BIFARMP module directory to determine the addresses of other modules. They do this using the offset from the start of the MMP of the entry for the desired module. The offset values are provided in the BIM-EDIT common assembler macros (member BI$MAC) in the form of assembler EQU statements which equate a module name (with the first letter replaced by an "X") to the offset. BI$MAC contains two assembler macros which BIM-EDIT uses to access modules. These are shown below with normal expansions: Page 440 BIM-EDIT System Reference Manual Modifying, Creating, Deleting BIM-EDIT Modules (BIFARMP Table) • + + FIND gets the address of an assembled table: FIND BAL DC BIFTTUP,R15 R14,MMPFIND AL2(XIFTTUP) LOAD ADDR OF TRANS TABLE BIFTTUP TO R15 This code branches to the MMPFIND routine in the MMP that will load the indicated module if it is not present and then return its address in register 15. The offset pointed to by register 14 (XIFTTUP) is used to find the module directory entry. The EQU for XIFTTUP is in BI$MAC. • + + CALL passes control from one module to another: CALL BALR DC BIRSYBT R14,R11 AL2(XIRSYBT) CALL ROUTINE TO BEGIN SYSTEM TRANSACTION This code branches to the head of the MMP which contains a routine that transfers to the desired module. The offset value (in the example, the value of XIRSYRT) pointed to by register 14 specifies the module directory entry. The EQU for XIRSYRT is a part of BI$MAC. (The CALL macro allows for two additional operands: the parameters to the called module and where to branch to if there are errors. BI$MAC contains other macros which are used extensively in BIM-EDIT to begin and end module execution, to abend, to set messages, and to set up parameter tables. If you are revising BIMEDIT modules, you should review BI$MAC.) As you can see, translation of the module name to an offset into the BIFARMP module directory is done by the assembler, making the overhead of the independent module approach insignificant. Chapter 11. Customizing BIM-EDIT Page 441 Modifying, Creating, Deleting BIM-EDIT Modules (BIFARMP Table) Modifying BIM-EDIT Modules Source for some BIM-EDIT modules is provided in library $SYS.SRC. Also contained in $SYS.SRC are the all the data area definitions, the macros used in BIM-EDIT, the mainline code for BIM-EDIT, the Restore program, Batch Utility, the application interface and the access method interfaces. Selected source for other modules MAY be available from your BIM technical support representative on an as-needed basis. Technical support may also be available from your representative. The following is a table of some of the modules provided: Module Name BICLODTI BICLODTM BICLODTU BIFDSJC (MVS) BIFDSJO (MVS) BIFDSJQ (MVS) BIFDSPD (MVS) BIFDSLB BIFDSMM BIFDSMP BIFDSPP BIFDSPW (VSE) BIFDSSB BIFDSUS BIFTBAT BIFXCCM BIFXCLC BIFXCTR BIRF1CK BIRF1DF BIRF1DT BIRF1FL BIRF1NM BIRF2DF BIRF3DF BIRF4DF BIRF5DF BIRF6DF BIRLDTY BIXLOGN BIXPWQA BIXPWSB Function LOADT Command, FMT=ICCF LOADT Command, FMT=MAINT LOADT Command, FMT=IEBUPDTE JCT Variables Descriptor JOE Variables Descriptor JQE Variables Descriptor PDB Variables Descriptor TXL Variables Descriptor TXM Variables Descriptor MMP Variables Descriptor PPD Variables Descriptor PWR Variables Descriptor SIB Variables Descriptor TXU Variables Descriptor MAPF Attribute Table System Command Table LCA Command Table CICS Transactions Table LIBRARY Command FMT=CHCK LIBRARY Command FMT=DFLT LIBRARY Command FMT=DETL LIBRARY Command FMT=FULL LIBRARY Command FMT=NAME LIBRARYL Command Formatter LIBRARYP Command Formatter LIBRARYS Command Formatter LIBRARYU Command Formatter LIBRARYD Command Formatter Load Member, Set Type LOGON Exit Routine POWER/JES Access Exit Rout. SUBMITF Exit Routine Potential Changes Interpret tape format differently Interpret tape format differently Interpret tape format differently Remove access to variables Remove access to variables Remove access to variables Remove access to variables Remove access to variables Remove access to variables Remove access to variables Remove access to variables Remove access to variables Remove access to variables (Note 1) Remove access to variables (Note 1) See later section in this chapter See earlier section this chapter Change LCA command letters See earlier section this chapter Change appearance of display Change appearance of display Change appearance of display Change appearance of display Change appearance of display Change appearance of display Change appearance of display Change appearance of display Change appearance of display Change appearance of display Change way types are set See earlier section this chapter See earlier section this chapter See earlier section this chapter Note 1: In release 4.1, the ability was added to access passwords through the SIBPSWD and TXUPSWD variables. For some sites, this feature will be a potential security problem. You may eliminate the feature by commenting out the entries for these variables from the descriptor modules. If you remove TXUPSWD from the Page 442 BIM-EDIT System Reference Manual Modifying, Creating, Deleting BIM-EDIT Modules (BIFARMP Table) TXU descriptor, you must also modify system procedure BIPFALU to remove its reference to TXUPSWD. To modify a module: 1. Copy the source from $SYS.SRC to $SIT.SRC. The entire $SYS library will be replaced when you install a new release, so you can easily lose your changes if you make them in $SYS.SRC. 2. Make your changes. Don't forget to change any INCLUDEs for other members which remained in $SYS.SRC to include the library designation. 3. Assemble and link the module. BIM strongly recommends that user-written modules be cataloged to a library other than the one where the original BIM-EDIT modules reside. This library would then be set up to be searched before the original BIM-EDIT code library. In that way, if there is a problem with a user-written module that prevents BIM-EDIT from functioning, BIM-EDIT can be started without the library containing the user-written modules. This would allow you to access BIM-EDIT to correct the problem in the user-written module. (If your modified module makes your production BIM-EDIT unusable, you may have trouble making corrections. You should set up another copy of BIM-EDIT running under a different system name for testing. This topic is discussed in "Starting BIM-EDIT" in Chapter 10 of this manual.) The following is a sample assembly and link job stream: VSE Job Control // JOB BIXPWQA // LIBDEF PHASE,CATALOG=BIMLIB.EDITT // OPTION NORLD,ERRS,NODECK,NOSYM,SXREF,CATAL PHASE BIXPWQA,* // EXEC ASSEMBLY,SIZE=512K /INCLUDE $SIT.SRC.BIXPWQA /* // EXEC LNKEDT /* /& MVS Job Control //BIXPWQA JOB ... //ASSEM EXEC ASML,PARM.ASM='NORLD,ERRS,NODECK,NOSYM,SXREF,CATAL' //ASM.SYSIN DD * /INCLUDE $SIT.SRC.BIXPWQA /* //LKED.SYSLIN DD // DD DDNAME=SYSIN //LKED.SYSLMOD DD DSN=BIMLIB.T.LOADLIB,DISP=SHR //LKED.SYSLIB DD // DD DSN=BIMLIB.T.LOADLIB,DISP=SHR //LKED.SYSIN DD * PHASE BIXPWQA,* /* Chapter 11. Customizing BIM-EDIT Page 443 Modifying, Creating, Deleting BIM-EDIT Modules (BIFARMP Table) 4. BIM-EDIT can be shut down and restarted to load the new module, or you can use the BIM-EDIT NEWCOPY command to bring the module in for testing. => newcopy module-name (See the NEWCOPY command documentation in Chapter 8 of this manual for cautions regarding its use.) Although virtually any BIM-EDIT module can be modified, you should recognize that there are costs in doing so. Consider not only the initial design and coding costs, but the ongoing maintenance costs. Recognize that BIM-EDIT is not a static product but an evolving one. BIM makes no commitment that a particular module written by a user will work from release to release. It is the user's responsibility to update the module to work with a new release. Creating New BIM-EDIT Modules In addition to the considerations described above for modifying BIM-EDIT modules, creating a new module will involve the following steps: 1. Add a module directory entry to BIFARMP. The source is held in member $SYS.SRC.BIFARMP. Copy it to $SIT.SRC.BIFARMP before making any changes. The entry should be added as the last entry so as not to affect the offsets for existing entries. (Add it immediately preceding the DC X'FF' end of table indicator). Warning: module BIFARMP contains the common patch area for BIM-EDIT. If you have patches applied, you must re-apply them when you assemble BIFARMP from source. 2. Add an EQU entry to the common macros. The source of the macros is held in $SYS.SRC.BI$MAC. Copy it to $SIT.SRC.BI$MAC before making changes. ($SIT.SRC.BI$MAC is normally accessed by an INCLUDE command during assembly. Moving it to a different library may require that you update the INCLUDE commands in any modules you assemble). The label for the EQU should be the name of the module with the first letter replaced by an "X". The value or the EQU should be the offset from the start of the MMP to the module directory entry. Since each entry is 16 bytes long, you can calculate the offset by adding 16 to the offset for the previous entry. 3. Assemble and link BIFARMP. 4. If the new module is a command, add appropriate entries to BIFXCCM as described in "Altering System Commands, Names, and Restrictions (BIFXCCM Table)" earlier in this chapter. 5. Recycle BIM-EDIT. (The BIFARMP module itself cannot be refreshed by a NEWCOPY command). Deleting BIM-EDIT Modules Do not delete BIM-EDIT modules from BIFARMP. You will probably break BIM-EDIT if you try. Since modules are not loaded until they are used, unused modules take no memory. If access to a command is deemed a security problem, you can simply remove Page 444 BIM-EDIT System Reference Manual Modifying, Creating, Deleting BIM-EDIT Modules (BIFARMP Table) or restrict the command entries from the system command table (see "Altering System Commands, Names, and Restrictions (BIFXCCM Table)"). Chapter 11. Customizing BIM-EDIT Page 445 Changing MAPF Screen Attribute Characters (BIFTBAT Table) Changing MAPF Screen Attribute Characters (BIFTBAT Table) The BIFTBAT attribute table specifies field identification characters and their 3270 screen characteristics for MAPF screens. The following table is provided: BIFTBAT CSECT * * EQUATES FOR SETTING 3270 SCREEN CHARACTERISTICS * UNPROT EQU X'20' ENTERABLE PROT EQU X'30' NOT ENTERABLE * ALPHA EQU X'00' ALLOWS ALPHANUMERIC NUM EQU X'08' ALLOWS ONLY DIGITS (PROT+NUM = AUTOSKIP) * NORMAL EQU X'00' NORMAL INTENSITY, NOT PEN SELECTABLE NORMSEL EQU X'02' NORMAL INTENSITY, SELECTABLE INTENSE EQU X'04' HIGH INTENSITY SECURE EQU X'06' HIDDEN * NMDT EQU X'00' DOES NOT HAVE MODIFIED-DATA-TAG ON OUTPUT MDT EQU X'01' HAS MODIFIED-DATA-TAG ON OUTPUT * DC C'{',AL1(UNPROT+ALPHA+NORMAL+NMDT) DC C'!',AL1(UNPROT+ALPHA+INTENSE+NMDT) DC C'¦',AL1(UNPROT+ALPHA+SECURE+NMDT) DC C'}',AL1(PROT+NUM+NORMAL+NMDT) DC C'¬',AL1(PROT+NUM+INTENSE+NMDT) DC X'FFFF' END The table can be customized as desired. New field identification characters can be created, and standard ones can be deleted or have their associated attributes changed. However, changing the BIFTBAT table will alter the operation of existing MAPF commands, including those in procedures distributed with BIM-EDIT, such as FALTER, FALTERL, FALTERP, FALTERU, FALTERS, KEYS, the Corrective Service procedures, the Archive procedures, the Calendar (TODAY) procedures, and the LOGON screen. Page 446 BIM-EDIT System Reference Manual Changing the CICS Data Module (BIMCSDT) Changing the CICS Data Module (BIMCSDT) You will need to modify and reassemble the BIMCSDT module if any of the following occurs: • More than 64 users will be logged on to BIM-EDIT from one CICS • BIM-EDIT is to be accessed from a CICS tran ID other than "EDTR" • BIM-EDIT is to be accessed using a system ID other than BIMEDIT BIMCSDT is also used to keep track of logged-on users from the BTAM interface. BIMCSDT is distributed in library $SYS.SRC, and is presented here: )INCL BI$CSD BIMCSDT CSECT BI$CSD SYSTEM=BIMEDIT,TRANSID=EDTR,TBLSIZE=64 END Before changing it, you should copy $SYS.SRC.BIMCSDT to $SIT.SRC.BIMCSDT. You should also change the include to reference $SYS.SRC. After changing BIMCSDT to provide for up to 128 logged-on users (each user entry will take up 176 bytes), the source would appear as follows: )INCL $SYS.SRC.BI$CSD BIMCSDT CSECT BI$CSD SYSTEM=BIMEDIT,TRANSID=EDTR,TBLSIZE=128 END If you have more than one BIM-EDIT system, and you want to access them from the same CICS system, add additional BI$CSD entries, one for each BIM-EDIT system. In the following example there are two BIM-EDIT systems, one accessed via CICS tran ID EDTR, and the second using the CICS tran ID XDTR. The second BIM-EDIT system has a system name of BIMEDITT: )INCL $SYS.SRC.BI$CSD BIMCSDT CSECT BI$CSD SYSTEM=BIMEDIT,TRANSID=EDTR,TBLSIZE=64 BI$CSD SYSTEM=BIMEDITT,TRANSID=XDTR,TBLSIZE=32 END In the above example, you will need to add additional CICS definitions for CICS tran ID XDTR as described in Chapter 9, Installation and Maintenance. After assembling and linking BIMCSDT, cycle CICS to bring in the new version. It should not be reloaded via the CSMT or CEMT transactions. Chapter 11. Customizing BIM-EDIT Page 447 Chapter 12. BIM-EDIT BTAM Terminal Interface Facility The BIM-EDIT BTAM interface is a facility that allows VSE users who do not have CICS or VTAM to run BIM-EDIT in an environment with local or remote non-SNA 3270 type terminals. The BTAM interface can also be used by VSE users to provide an alternate means of accessing BIM-EDIT when CICS and VTAM are not running. This chapter describes installing the BTAM interface and using it to access BIM-EDIT. The BTAM interface requires that VSE be generated with BTAM support. (Generating with BTAM support has very little impact on the operating system because most of BTAM is incorporated into the BTAM interface via the BTAM BTMOD.) BTAM Support is described in "Basic Telecommunications Access Method Extended Support (BTAMES) Programming" (IBM manual SC38-0293, as of September, 1985). The BIM-EDIT BTAM interface can run in a partition separate from BIM-EDIT or it can load BIM-EDIT as a subtask within the same partition. Before you install the BTAM interface, you should decide whether you want to run BIM-EDIT as its subtask. Sites who use the BTAM interface as their sole online access to BIM-EDIT usually run BIM-EDIT as its subtask. This has the advantage of requiring only one partition to be allocated. The disadvantages of this approach are some competition for partition GETVIS storage and somewhat more difficult problem resolution. Sites who use the BTAM interface as a secondary online access to BIM-EDIT should not install BIM-EDIT as a its subtask because this would require terminals to be dedicated to the BTAM interface whenever BIM-EDIT is running. If the BTAM interface will be your sole means of online access to BIM-EDIT, or if you plan to run BIM-EDIT as its subtask, you must complete the BTAM interface installation when you install BIM-EDIT. If the BTAM interface is a secondary method of online access to BIM-EDIT, BIM recommends that you install it after the primary online access is operational. The remainder of this chapter consists of the following sections: Page 448 • Table Generation • Startup • Shut Down • Messages BIM-EDIT System Reference Manual Table Generation Table Generation The BTAM interface starter system is automatically cataloged with the BIM-EDIT phases during the VSE BIM-EDIT installation. After BIM-EDIT and the BTAM interface have been cataloged and the Starter System BIM-EDIT database has been restored, it is possible to access BIM-EDIT with the BTAM interface immediately if any entry in the pregenerated starter system terminal control table matches any BTAM-supported local or remote terminal at your site (see the Starter System terminal control table definitions below). If it appears this is the case, skip directly to the "Startup" section later in this chapter and come back later to this section, since it is easiest to perform any required table changes after BIM-EDIT is accessible from online. If you are unable to obtain online access to BIM-EDIT until the BTAM interface is operational, and you cannot use the starter system terminal control table definitions, you will have to use the PUNCH command in BIM-EDIT batch utility to extract the source for the table modules and correct and catalog them from batch. The BIM-EDIT $SYS.SRC library contains the following BTAM support and sample members: BIMTCT Source for the macro used to generate the terminal control table. BIMTCTBT Source for the sample table installed with BIM-EDIT. BIMBTMOD Source for the BTMOD used to generate BTAM to test BIMBTAM. Table generation consists of the following steps: • Define a BTAM BTMOD • Define a BIM-EDIT BTAM interface terminal control table Chapter 12. BIM-EDIT BTAM Terminal Interface Facility Page 449 Table Generation Defining a BTAM BTMOD The following example shows the parameters used to generate the BTMOD used for testing the BTAM interface and shipped with the starter system. For more information on BTMOD, please refer to the BTAM-ES Programming Manual referenced earlier. TITLE 'BTMLR32T FOR LOCAL AND REMOTE 3270 CICS TESTING' * ******************************************************************* * RMSR=YES AND ERRLOGIC=E ADDS 2K PFIXED SHOULD BE USED FOR TESTING * YOU MAY WISH TO REMOVE TST3277, BSCTEST, AND RMSR FOR PRODUCTION * ******************************************************************* * PRINT NOGEN BTMLR32T BTMOD RESETPL=YES, SS=NO, L3277=YES, TST3277=YES, LOCAL 3270 BTAM TERM TEST DECBEXT=YES, BSCS=YES, BSCMPT=YES, BSCTEST=YES, REMOTE 3270 BTAM TERM TEST RMSR=YES, RMSR SUPPORT ERLOGIC=E, SEPASMB=YES END * * * * (This is the default BTMOD shipped with VSE. You may not need to reassemble.) Page 450 BIM-EDIT System Reference Manual X X X X X X X X X X Table Generation Defining a BIM-EDIT BTAM Interface Terminal Control Table The BTAM interface uses a table to control a non-SNA local and/or remote terminal network. The characteristics (screen size, model, etc.) of all terminals to have access to BIM-EDIT through BTAM must be defined in the table. The terminal control table is generated with the BIMTCT macro, and cataloged in a VSE Core Image Library with a name of BIMTCTxx (where xx is the two characters supplied as the SUFFIX parameter) using a job stream similar to the following: // OPTION CATAL // LIBDEF statement // EXEC ASSEMBLY /INCLUDE $SYS.SRC.BIMTCT BIMTCT TYPE=INITIAL, SUFFIX=BT LINE1 BIMTCT TYPE=LINE, CU=3272, DEVICE=3277, ERROPT=E, LINELST=(001,002), MODNAME=BTMLR32T, SWITCH=NO, TERMTST=NO TRM1 BIMTCT TYPE=TERMINAL, TRMIDNT=TRM1, TRMTYPE=L3270, BTAMRLN=1, TRMMODL=2, DEFSCRN=(24,80), ALTSCRN=(24,80), TRMSTAT='IN SERVICE', FEATURE=(UCTRAN) TRM2 BIMTCT TYPE=TERMINAL, TRMIDNT=TRM2, TRMTYPE=L3270, BTAMRLN=2, TRMMODL=2, DEFSCRN=(24,80), ALTSCRN=(24,80), TRMSTAT='IN SERVICE', LASTTRM=YES, FEATURE=(UCTRAN) LINE2 BIMTCT TYPE=LINE, CONFIG=MPT, BSCODE=EBCDIC, CU=2703, DEVICE=R3270, ERROPT=E, LINELST=(003), MODELST=(0), MODNAME=BTMLR32T, SWITCH=NO, TERMTST=NO Chapter 12. BIM-EDIT BTAM Terminal Interface Facility X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Page 451 Table Generation LINE030 * * ADDRRMT1 * * ADDRRMT2 * * RMT1 RMT2 DFTRMLST AUTOWLST,3732,40407F7F2D THE GENERAL POLL CHARACTER FOR THE REMOTE CONTROLLER IS HEX 40 FOR CONTROL UNIT 0. DFTRMLST OPENLST,(606040402D) THE ADDRESS OF THE FIRST REMOTE TERMINAL IS HEX 60 FOR CONTROL UNIT 0 AND DEVICE ADDRESS HEX 40 FOR DEVICE 0 (I.E., CONNECTED TO PORT 0). DFTRMLST OPENLST,(6060C1C12D) THE ADDRESS OF THE SECOND REMOTE TERMINAL IS HEX 60 FOR CONTROL UNIT 0 AND DEVICE ADDRESS HEX C1 FOR DEVICE 1 (I.E., CONNECTED TO PORT 1). BIMTCT TYPE=TERMINAL, X TRMIDNT=RMT1, X TRMTYPE=R3270, X TRMMODL=2, X TRMADDR=ADDRRMT1, X LISTADR=LINE030, X DEFSCRN=(24,80), X ALTSCRN=(24,80), X TRMSTAT='IN SERVICE', X FEATURE=(UCTRAN) BIMTCT TYPE=TERMINAL, X TRMIDNT=RMT2, X TRMTYPE=R3270, X TRMMODL=2, X TRMADDR=ADDRRMT2, X LISTADR=LINE030, X DEFSCRN=(24,80), X ALTSCRN=(24,80), X TRMSTAT='IN SERVICE', X LASTTRM=YES, X FEATURE=(UCTRAN) BIMTCT TYPE=FINAL END /* // EXEC LNKEDT This example was used to generate the starter system terminal control table which is provided on the distribution tape. The parameters of the BIMTCT macro are discussed below for each of the three types of usage that have parameters: TYPE=INITIAL, TYPE=LINE, and TYPE=TERMINAL. BIMTCT TYPE=FINAL does not have parameters. For more information on coding the DFTRMLST macro, please refer to the BTAM-ES Programming (SC38-0293) manual. BIMTCT Parameters for TYPE=INITIAL SUFFIX Page 452 a two character identifier appended to the phase name BIMTCT to form the name under which the BTAM interface terminal control table will be cataloged. The default name for the terminal control table, if the parameter is omitted or in error, is BIMTCTBT. BIM-EDIT System Reference Manual Table Generation BIMTCT Parameters for TYPE=LINE BSCODE specifies the type of bisynchronous transmission code to be used for devices on the line. BSCODE=EBCDIC indicates transmission in Extended Binary Coded Decimal Interchange Code. BSCODE=ASCII indicates transmission in American Standard Code for Information Interchange. CONFIG specifies the line configuration for remote devices. CONFIG=PPT specifies that the data link between the CPU and the remote binary synchronous device is point-to-point. CONFIG=MPT specifies that the data link between the CPU and the remote binary synchronous devices is multipoint. This operand is not applicable to any BTAM local device. CU specifies the control unit attached to the channel. The options are CU=2703 for remote 3270 or CU=3272 for local 3270. DEVICE specifies the device type for the line being defined. For a local 3277, 3278 or any compatible terminal, specify DEVICE=L3270, DEVICE=L3277, or DEVICE=3277. For a remote 3277, 3278 or any compatible terminal, specify DEVICE=R3270. ERROPT specifies which Error Recovery Procedure option is to be performed, where: ERROPT=E indicates to perform error recovery without text retry. ERROPT=N indicates to perform no error recovery. ERROPT=R indicates to perform error recovery with read text retry. ERROPT=W indicates to perform error recovery with write text retry. ERROPT=RW indicates to perform error recovery with read text retry and write text retry. FEATURE specifies device-dependent machine special features and programming special features. FEATURE=BSC must be coded when the DEVICE operand specifies a binary synchronous device. FEATURE=UCTRAN indicates translation of lowercase data to uppercase is desired in 3270 input data streams. LINELST specifies via a sublist the correspondence between symbolic unit (SYSnnn) and relative line number. In the sublist, code one 3-digit number for each line in the line group. The 3-digit number is interpreted as the 'nnn' of SYSnnn. The order of coding the 3-digit numbers determines which symbolic units are associated with the individual lines in the line group. For example, LINELST=(015,004,009) means that SYS015 is associated with relative line number 0, SYS004 is associated with relative line number 1 and SYS009 is associated with relative line number 2 in a line group comprising 3 lines. The LINELST operand has a different meaning for local and remote 3270 device definitions. For a local 3270 each TYPE=LINE defines a Chapter 12. BIM-EDIT BTAM Terminal Interface Facility Page 453 Table Generation 327x control unit attached to the channel and each entry in the LINELST sublist defines a programmer logical unit to be assigned to the channel unit addresses of the terminals attached to the control unit. In the above example, 015, 004 and 009 would be different devices attached to the same control unit. For a remote 3270 each TYPE=LINE defines a 270x control unit attached to the channel and a single LINELST entry defines the programmer logical unit to be assigned to the control unit. MODELST specifies a sublist of codes (for use by BTAM at OPEN time) to define the EIB or non-EIB interface and code features of the 270x. A more detailed explanation of this operand can be found in BTAM-ES Programming (SC38-0293) manual. MODNAME specifies the name of the BTAM logic module (BTMOD) that is to be link-edited with this BIMTCT. If MODNAME is omitted, the name will default to the standard BTAM module name IJLBTM. SWITCH specifies the type of line connection between the system and the remote device. SWITCH=NO specifies that the line connection is permanent. SWITCH=YES specifies that the line connection is through a switch (dial) network. The default is SWITCH=NO. (BTAM does not directly support dial operation for 3270 devices. Third-party line monitor hardware is required to make both the control unit and terminal "think" they are operating on a leased line.) TERMTST specifies whether the line will support the test activation code. TERMTST=NO specifies that the line will not contain the test activation code; that is, no request for the online terminal test facility is made. TERMTST=YES specifies that the line will contain the test activation code. The default is TERMTST=NO. This is used by the online terminal test facility in determining if a test request has been made. BIMTCT Parameters for TYPE=TERMINAL ALTSCRN specifies the 3270 screen size to be used for a terminal that has alternate screen capability. The default is the value specified in the DEFSCRN operand. Two values must be specified, separated by a comma and enclosed in parentheses. The first value is the number of lines and the second value is the number of characters per line for alternate screen mode. The following is a list of the supported models and the associated ALTSCRN values: Model 2: Model 3: Model 4: Model 5: BTAMRLN Page 454 ALTSCRN=(24,80) ALTSCRN=(32,80) ALTSCRN=(43,80) ALTSCRN=(27,132) specifies the relative line number of a terminal within a line group. The relative line number can be specified in the range of 1 through 32. This parameter is not applicable to remote 3270 devices. BIM-EDIT System Reference Manual Table Generation DEFSCRN specifies the default screen size to be used for a 3270 terminal. Two values must be specified, separated by a comma and enclosed in parentheses. The first value is the number of lines and the second is the number of characters per line for default screen mode. The following is a list of the supported models and the associated DEFSCRN values: Model 2: Model 3: Model 4: Model 5: DEFSCRN=(24,80) DEFSCRN=(32,80) DEFSCRN=(43,80) DEFSCRN=(27,132) LASTTRM=YES this operand is required on the last TYPE=TERMINAL of each line. LISTADR specifies the name of the label of the BTAM DFTRMLST macro instruction used to define the general polling list for the communication line. DFTRMLST entries should be coded immediately following BIMTCT TYPE=LINE entries and immediately preceding BIMTCT TYPE=TERMINAL entries. One separate DFTRMLST entry must be coded for each communication line. For more information on coding the DFTRMLST macro, please refer to the BTAM-ES Programming (SC38-0293) manual. TRMADDR specifies the name of the label of the BTAM DFTRMLST macro instruction used to define the terminal address. This parameter is required for remote 3270 devices. TRMADDR should not be coded for local 3270 devices. TRMIDNT specifies a one to four character symbolic identification to each terminal. The identification supplied will be left-justified and padded with blanks to four characters if less than four characters are supplied. TRMMODL a single digit to identify the terminal model of the 3270 being defined. Choose the appropriate value from the following table: 3270 Model 2 (24 lines, 80 characters per line): 3270 Model 3 (32 lines, 80 characters per line): 3270 Model 4 (43 lines, 80 characters per line): 3270 Model 5 (27 lines, 132 characters per line): TRMTYPE TRMMODL=2 TRMMODL=3 TRMMODL=4 TRMMODL=5 specify TRMTYPE=L3270 for a bi-sync 3270 device attached to a local controller or TRMTYPE=R3270 for a bi-sync 3270 device attached to a remote controller. Chapter 12. BIM-EDIT BTAM Terminal Interface Facility Page 455 Startup Startup The BTAM interface is activated by executing phase BIMBTAM. This can be done by: • Submitting a job. • Releasing a job held in the queue. • Entering the job control statements at the console. When BIMBTAM initialization is complete and the 'READY' message appears on the BTAM controlled 3270, you can access an active BIM-EDIT by simply entering its transaction id. The transaction id distributed with BIM-EDIT is 'EDTR'. ("An active BIM-EDIT" is created by running BIM-EDIT in some other partition or by running it as a subtask of the BTAM interface. Running BIM-EDIT in another partition is described in Chapter 9, Installation. Running BIM-EDIT as a subtask of the BTAM interface is described below.) Basic BIMBTAM Job Stream When BIM-EDIT is not running as its subtask, the job stream to start BIMBTAM is similar to the following. // * // // // * // /* /& JOB BIMBTAM ASSGN SYS001,cuu ASSGN SYS002,cuu ASSGN SYS003,cuu (channel unit address of 1st local 3270) (channel unit address of 2nd local 3270) (channel unit address of communication controller) EXEC BIMBTAM,SIZE=nnnK,PARM='SUBTASK=NO,BTAMTCT=BT' Terminal/controller addresses must be adjusted for your site. The Starter System terminal control table supports two local terminals and one remote controller with two terminals. If there is no remote controller available, the ASSGN statement for SYS003 must be assigned IGN (ignore). Likewise, if only one local terminal is to be supported, the other ASSGN statement must be assigned IGN. If this is not done, BIMBTAM will abnormally terminate. SIZE= values are dependent on the your environment. The minimum value for BIMBTAM is 64K, which supports 4 terminals. If you modify the BIMTCT for your system to add more terminals, it may be necessary to increase the SIZE= value. Simply calculate the difference between the size of the distributed phase BIMTCTBT and your TCT phase, round the value up to the nearest 4K boundary and add it to the minimum SIZE value for your environment. BIMBTAM will also require GETVIS memory of about 4K per active terminal. The PARM= on the BIMBTAM EXEC statement may be coded with the following: SUBTASK Page 456 This parameter specifies whether BIM-EDIT is run as a subtask of BIMBTAM. If BIM-EDIT is to be loaded as a subtask to BIMBTAM, specify SUBTASK=YES as the PARM parameter. If BIM-EDIT is not run BIM-EDIT System Reference Manual Shut Down as a subtask to BIMBTAM, specify SUBTASK=NO. The default is SUBTASK=YES. BTAMTCT specifies the two suffix characters used to generate the BTAM terminal control table. Enter BTAMTCT=xx, where xx is the two characters specified on the SUFFIX= parameter used to generate and catalog the BTAM terminal control table. Default is BTAMTCT=BT. SYSTEM specifies the BIM-EDIT system name. See 'Starting BIM-EDIT' in the Chapter 10 of this manual. TRANID specifies the transaction identification to be used to access BIM-EDIT from BIMBTAM. EDTR is the default. If You Are Running BIM-EDIT as a Subtask of BIMBTAM If you are running BIM-EDIT as a subtask of BIMBTAM, the startup job stream requires some modifications: 1. You must provide access to the BIM-EDIT files. Generally, this takes the form of DLBL, EXTENT and ASSGN statements for BIFLIB, BIFPWRQ, and BIFPWRD. or access to these files through standard labels. For further discussion, See "First Time Installation on VSE" in Chapter 9 of this manual. 2. If you intend to use BIM-EDIT to access VSE Sublibraries, you must increase the SIZE= parameter value by 140K. 3. You must change to SUBTASK=YES in the PARM operand on the EXEC statement. 4. You must run in a partition which provides the requisite amount of GETVIS memory for BIM-EDIT. See "Managing Memory Utilization" in Chapter 10 of this manual. Shut Down The BTAM interface can be shut down in two ways: 1. When a BIM-EDIT user who is authorized to do so issues the BIM-EDIT SHUT command. This will terminate BIM-EDIT as well as BIMBTAM. 2. When the ENDBTAM command is entered from the BIMBTAM READY screen (which appears when you first initiate BIMBTAM and after logging off of BIMEDIT). This command is only valid if BIM-EDIT is not running as a subtask of BIMBTAM. It does not terminate BIM-EDIT. Chapter 12. BIM-EDIT BTAM Terminal Interface Facility Page 457 Messages Messages The following messages may be displayed by BIMBTAM. Any message not documented here is part of BIM-EDIT. (BIMBTAM02) EXEC PARM IS INVALID BIMBTAM found that the PARM= parameter on the EXEC statement contains an operand other than SUBTASK, BTAMTCT, SYSTEM, or TRANID. (BIMBTAM03) SUBTASK PARM IS INVALID The SUBTASK parameter is not specified as YES or NO. (BIMBTAM04) BTAMTCT PARM IS INVALID The value specified for the BTAMTCT parameters is not two characters. (BIMBTAM24) SYSTEM=sysname,TRANID=tran This message displays the system name and transaction identification being used by this startup of BIMBTAM. (BIMBTAM25) TRANID PARM IS INVALID The value specified for the BIM-EDIT transaction identification is invalid. TRANID must be a 1-4 character alphanumeric value. (BIMBTAM26) SYSTEM PARM IS INVALID The value specified for the BIM-EDIT system name is invalid. See "Starting BIM-EDIT" in Chapter 10 of this manual. (BIMBTAM99) BIMEDIT BTAM INTERFACE HAS BEEN TERMINATED This message indicates that the BIM-EDIT 'SHUT' command or BIMBTAM 'ENDBTAM' command was issued. (BIMBTCAA) ** BIMCSDT TABLE FULL, CONTACT SYSTEM ADMINISTRATOR ** The BIM-EDIT logged-on user table is full. See "Changing the CICS Data Module (BIMCSDT)" in Chapter 11 of this manual. (BIMBTCAC) ** BIM-EDIT SESSION TERMINATED ** The user has logged off from BIM-EDIT. BIMBTAM is now back at the READY screen. (BIMBTCAD) ** BIM-EDIT IS NOT ACTIVE ** An attempt to log on to BIM-EDIT indicates that BIM-EDIT is not active. (BIMBTCAE) ** BIM-EDIT TRANSACTION ID IS INVALID ** The transaction id used in attempting to log on to BIM-EDIT is not valid. (BIMBTCAF) ** LINK/XCTL NOT SUPPORTED BY BTAM - HIT CLEAR TO CONTINUE The LINK and XCTL function of BIM-EDIT is only valid when accessing BIM-EDIT from CICS. Page 458 BIM-EDIT System Reference Manual Chapter 13. Technical Overview This chapter provides a overview of some of the internal workings of BIM-EDIT. Information in this chapter does not have any direct bearing on the installation, operation, or use of BIM-EDIT. We present it partially because we thought you might be interested, and partially because we're proud of some features of BIM-EDIT which nobody ever sees directly. The following subjects are discussed: • Register Utilization / Calling Conventions • Control Blocks / Buffers • Key Sequence Access • Text Access • Recovery / Integrity Register Utilization / Calling Conventions With very few exceptions, BIM-EDIT uses registers in a consistent way throughout the product. Register 2 is used as the module base register. It points at an "eye-catcher" giving the module name. Register 11 always points at the MMP block, which gives information about the BIM-EDIT system. Register 12 always points at the SIB block, which gives information about the current user. Register 13 points at the "dynamic storage area", which starts with the register save area. The first eight bytes of a BIM-EDIT register save area consist of the module name, the next four are the address of the previous register save area. Then the register contents are stored in order 14 through 12. After the registers there is a variable amount of module working storage. Dynamic storage areas are always aligned on a 32 byte boundary to facilitate reading dumps. Register 14 is the return address. Register 15 is the branch address. Chapter 13. Technical Overview Page 459 Control Blocks / Buffers Control Blocks / Buffers The following control blocks / buffers are considered system control blocks. They are shared by all users. MMP System memory map control block. This is the heart of the system. MMP holds such fields as file extent information, system status, and pointers to other control blocks. MMP is stored as block #1 in the BIM-EDIT library. It is read into memory at startup time and never read after that. It is written out when necessary. MMP is 4K in size. KSI1 Key sequence index, level 1. This is the apex of the key sequence directory. It is built at startup time. It is never written to disk. KSI1 is 4K in size. (See "Key Sequence Access" in the next section.) KSI2 Key sequence index, level 2. The entire level 2 index is held in memory, so there are always multiple KSI2 buffers present. The level 2 index is built at startup time. It is never written to disk. Each KSI2 block is 4K in size. KSD Key sequence data. There are two KSD buffers. The contents of the two buffers will vary. The buffers hold the actual key sequence records. KSD blocks are loaded as necessary. KSD blocks are written out as necessary. Each KSD buffer is 4K in size. The following control blocks are considered user control blocks. Each BIM-EDIT task has its own copy of these control blocks. SIB System interface block. This is the central control block for a given task. It holds such information as the current screen size, information about each session, etc. Each user has a SIB stored in the BIM-EDIT library. It is read into memory at logon time and never read again. It is written out when necessary. SIB is 4K in size. TXBUF is 16K in size. It holds up to four 4K text blocks. This buffer serves as a paging pool for processing text. At any given moment, the last four referenced text blocks are held in TXBUF. Since a given text block always holds a contiguous group of text lines, considerable scrolling can occur without the need for any I/O. TXBUF is considered swappable. If the owning task is waiting for input, and the 16K buffer is needed by another task, the buffer will be acquired by the requesting task. Page 460 BIM-EDIT System Reference Manual Key Sequence Access Key Sequence Access Five types of records are held in a keyed sequential access manner. (Note, BIM-EDIT's key sequence access is not to be confused with VSAM KSDS. BIM-EDIT does not use VSAM.) TXL Library record. Key is 'L' || library name || 20 blanks. This record contains all information about the library. TXM Member header. Key is 'M' || library || member || 4 blanks. All information about the member, other than the actual text, is held here. TXM also contains a 22 byte RRH (relative record header) which serves as a header for access to the text. If member auditing is on, an RRH for the audit text is also maintained. TXP Pending password record. Key is 'P' || user || password || 26 blanks. This record contains information for a one-time use password. TXS Security record. Key is 'S' || library || 12 blanks || user ID. This record contains the security definition for a given library/user. TXU User record. Key is 'U' || user ID || 28 blanks. Little information is held here. It is primarily an index pointer to the user's SIB record. ("||" indicates concatenation.) All key sequence records are 250 bytes in length. All keys are 37 bytes in length. Regardless of the number of key sequence records stored, any direct read request will be serviced with a maximum of one I/O since KSI1 and KSI2 are always in memory. Chapter 13. Technical Overview Page 461 Text Access Text Access Text for members, display sessions, $STACK, etc. all use the same access method. (LISTP sessions use a different access method entirely, because of the POWER spool file structure on VSE or the JES data set access on MVS. LISTD and EDITD sessions are implemented by copying the text from the VSE sublibrary or MVS PDS into the BIMEDIT library.) A given text data set is identified by the RRH (relative record header). RRH contains the following fields. RRHDSET data set number. As an integrity check, the access method always maintains and verifies equality of the RRHDSET field with the CIDSET field from each block. RRHHEAD head block number. This is the relative block number in the BIM-EDIT library of the first block in the data set. RRHTAIL tail block number. This is the relative block number in the BIM-EDIT library of the last block in the data set. RRHCIDP block depth. This is a count of the number of blocks in the data set. RRHLINES line depth. This is a count of the number of lines in the data set. RRHBYTES byte depth. This is a count of the number of bytes in the lines of the data set. Each block of the data set has the following control information. CIDSET data set number. As indicated above, this field is maintained and verified against the RRHDSET field of RRH. CIRRN relative record number. This is the actual block number in the BIMEDIT library. The access method always verifies that the blocks that are read are the blocks that were intended to be read. CIBWDL backward link. This is the block number of the previous block in the data set. If this is the first block, CIBWDL is a 0 value. CIFWDL forward link. This is the block number of the next block in the data set. If this is the last block, CIFWDL is a 0 value. CILINES line depth. This is the number of lines held in the block. CIBYTES byte depth. This is the number of bytes in the lines held in the block. Immediately beyond the control fields, an index is maintained. There are always CILINES entries. Each entry contains the location within the block of the associated line. Space for the text of the lines is allocated starting at the end of block and progressing backwards. In a line addition operation, if there is inadequate space in the block, either the block is reorganized to conserve space, or the block is split into two blocks. Text is always stored with runs of two or more blanks compressed to two bytes and trailing blanks on the line omitted. A block always contains a contiguous group of text lines. Blocks are linked together to allow both forward and backward traversal. When an EDIT session is created, the blocks are initially both logically and physically contiguous. After the first block split or Page 462 BIM-EDIT System Reference Manual Text Access block delete, this is no longer true. They are then logically contiguous, but not physically contiguous. At SAVE time, the entire member is read and written so that the saved member is again physically contiguous. Where blocks are known to be contiguous, BIM-EDIT will read and write up to 16K (four 4K blocks) at a time, as appropriate. For example, when an edit session is created, the initial copying of the member text to a work area is done with the 16K I/O. Chapter 13. Technical Overview Page 463 Recovery / Integrity Recovery / Integrity A BIM-EDIT transaction is either a system transaction or a user transaction. Recovery is handled differently, depending upon the type of transaction. System Transaction A system transaction involves access to resources that are shared by all users, e.g., accessing a member header, disk space management, etc. During a system transaction, before a block is updated, its before image is logged to a recovery area held as the last 32 blocks of the BIM-EDIT library. If BIM-EDIT's normal operation is interrupted for whatever reason (e.g., an operating system crash), a rollback of system updates will occur upon restart. After a rollback operation, the database is restored to its before transaction status. This operation is totally automatic and occurs in a matter of seconds. When a system transaction ends, all updated blocks still in buffers are written to the database. So, after the system transaction ends, the database represents the exact status of the shareable resources. Therefore, the most that could be lost is the updates associated with the transaction currently being processed when normal operation is interrupted. System transactions are single-thread, i.e., only one system transaction can be active at any time. User Transaction A user transaction involves access to resources that are not shared by all users, e.g., access to the text of a session. During a user transaction, before a block is updated, its before image is logged to a recovery area unique to that user. If BIM-EDIT's normal operation is interrupted for whatever reason, a rollback of user updates will occur upon restart. After a rollback operation, the database is restored to its before transaction status. This operation is totally automatic and occurs in a matter of seconds. When a user transaction ends, all updated blocks still in buffers are written to the database. So, after the user transaction ends, the database represents the exact status of the user. Therefore, the most a user could lose on an update operation is the transaction that is currently being processed when normal operation is interrupted. For performance reasons, BIM-EDIT makes a judgement about how critical a user transaction is. When the transaction is considered non-critical, as in the case of a transaction that involved nothing more than a scrolling operation, the updated buffers are not written to disk. Therefore, if the next critical user transaction were interrupted, the subsequent rollback operation would cause positioning information to be somewhat less than current. This tradeoff is considered to be an appropriate one, since all updates to the text of the session are still intact. User transactions are multi-thread, i.e., many user transactions can be active at any time. Page 464 BIM-EDIT System Reference Manual Index The following is a combined index to both the BIM-EDIT User Reference Manual and the BIM-EDIT System Reference Manual. Entries in the User manual are followed with (U); those in the System manual are followed with (S). ' See Apostrophe ! See Exclamation Mark $DFL ALTERS Command (S) .......................... 268 Basic Library Security (S) ...................... 398 DEFINE Command (U) ........................... 99 DEFINES Command (S) ........................ 297 Disabling TYPE Check (S) ..................... 417 FDEFINE Command (U) ....................... 137 FDEFINES Command (S) ...................... 309 LIBRARYS Command (S)...................... 320 Modifying DEFINE Templates (S) ....... 416 $LOG Current Size (SIBLGSIZ) (S).................. 217 Current Size Limit (SIBLGLMT) (S)..... 217 Description (U) ......................................... 24 to Copy Lines from (GET) (U) .............. 148 to Display (LIST) (U).............................. 196 to Include in Proc (INCLUDE) (S).......... 89 to Insert a Line (LOGI) (U).................... 212 to Insert Lines to (LOGF) (S)................. 106 to Print (PRINT) (S)................................ 126 $MAIL Current Msg Count (SIBMLQDP) (S) .. 217 Current Size (SIBMLSIZ) (S) ................. 217 Current Size Limit (SIBMLLMT) (S) .... 217 Description (U) ......................................... 34 to Display (LIST) (U).............................. 196 to Include in Proc (INCLUDE) (S).......... 89 to Print (PRINT) (S)................................ 126 $SIT Library Contents (S)........................... 382 $SIT.ARCHIVE (S) ...................................... 258 $SIT.CTRL.COMMANDS Member (S)..... 431 $SIT.CTRL.LOGON Member (S)............... 421 $SIT.CTRL.MESSAGES Member (S)......... 419 $SIT.GEN (S)................................................ 258 $SIT.MODEL Library (S)............................ 416 $SIT.PROC.LOGON Procedure (S)........... 421 $STACK Current Size (SIBSTSIZ) (S)................... 222 Description (U) ......................................... 31 Index Size Limit (SIBSZLMT) (S) .................... 222 to Copy Lines from (B LCA Cmd) (U). 322 to Copy Lines from (GET) (U) .............. 148 to Copy Lines from (I LCA Cmd) (U).. 328 to Copy Lines to (C LCA Cmnd) (U) ... 323 to Copy Lines to (K LCA Cmnd) (U) ... 330 to Copy Lines to (M LCA Cmnd) (U) .. 332 to Copy Lines to (N LCA Cmnd) (U)... 333 to Copy Lines to (STACK) (U) .............. 300 to Copy Lines to (STACKI) (U)............. 301 to Display (LIST) (U).............................. 196 to Execute (EXECUTE) (U).................... 128 to Include in Proc (INCLUDE) (S).......... 89 to Insert Lines (STACKF) (S)................. 173 to Print (PRINT) (S) ................................ 126 to Send as Mail (MAIL) (U)................... 215 to Transfer to Appl Infc(SEND) (S) ...... 154 Tutorial (U).................................................. 8 $SYS Library Contents (S) .......................... 382 $SYS User ID (S) .......................................... 381 $SYS.CTRL.LOGONNEW (S) .................... 107 $USR.uuuuuuuu COMMANDS Member (S) .................... 431 LOGON Procedure (S)........................... 421 %See Percent Sign & See Ampersand ( See Left Parenthesis ) See Right Parenthesis * See Asterisk .. at Start of Line Special Processing (S)............................. 210 / See Slash ; See Semicolon ? See Question Mark @ See At Sign \ See Backslash { See Left Brace } See Right Brace ~ See Tilde ¦ See Unbroken Vertical Bar. See Broken Vertical Bar Page 465 + See Plus Sign ++() at Start of Line in Batch Utility (S) .................................. 242 with Text-Following (S) ......................... 210 < See Less Than Sign = See Equal Sign > See Greater Than Sign A LCA Command (U)................................. 321 ABENDXIT Command (VSE) (S) .............. 266 ABX Command (ABENDXIT) (S) ............. 266 Access Control ...............................See Security ACF2 External Interface (MMPSECUR) (S) ... 198 Add ....................................................See Create ADD Command (S)....................................... 53 Administration of Auditing (U) ....................................... 371 of Backup/Restore (S)............................ 390 of Checkout/Checkin (U)...................... 373 of Disk Space (S) ..................................... 404 of Library Security (S) ............................ 398 of Memory Usage (S) ............................. 407 of Purge Control (S) ............................... 402 of Stamping (U) ...................................... 367 of User IDs (S) ......................................... 396 ALT Command (ALTER) (U) ...................... 53 Alter .................................................See Change ALTER Command (U) .................................. 53 ALTERL Command (U) ............................... 56 Alternate Screen ........ See also Default Screen Current Setting (SSDSCRSZ) (S)........... 227 Initial Setting (SIBSCRSZ) (S) ............... 220 Number of Columns (SIBSCAWD) (S) 219 Number of Lines (SIBSCADP) (S) ........ 219 Selection for MAPF (PPDSCRSZ) (S)... 207 to Set/Reset (SCREEN ALT) (U) .......... 275 Alternate System Name (S)........................ 379 ALTERP Command (MVS) (U) .................................................. 60 (VSE) (U).................................................... 57 ALTERS Command (S)............................... 268 ALTERU Command (S).............................. 269 ALTL Command (ALTERL) (U) ................. 56 ALTP Command (ALTERP) (U).................. 57 ALTS Command (ALTERS) (S) ................. 268 ALTU Command (ALTERU) (S) ............... 269 Ampersand (&) Command Prefix Overview (U) ............................................ 22 Reference (U)........................................... 314 Page 466 Ampersand (&) for Variable Replacement Discussion (S) ....................................... 10 AND (+) Pattern Character (U) ................. 353 AP Command (ALTERP) (U)....................... 57 APARs - Using BIM-EDIT to Apply (S) ... 257 Apostrophe in Variable Value (PPDLITDL) (S) ....... 206 APPL in Application Interface (S) ................... 245 Application Interface COBOL Example (S)............................... 250 Commands (S)......................................... 247 Commands Overview (S) ........................ 49 getting data from Commands (S) ......... 248 in Procedures (S)....................................... 42 List of Commands for (S)......................... 51 Modules (S).............................................. 245 Overview (U)............................................. 45 Reference (S)............................................ 244 Scenario for Usage (S) ............................ 246 to Copy Member to (SEND) (S) ............ 154 to Send Immed Line to (SENDI) (S) ..... 157 to Send Lines to (SENDF) (S) ................ 156 to Send Sessn Line to (SENDN) (S) ...... 159 ARCHIVE Command (S)............................ 272 Archive Facility ARCHIVE Command (S)....................... 272 introduction (S) ....................................... 258 RECOVER Command (S) ...................... 341 Array Variables (S).......................................... 9 ARRAYS (S)...................................................... 9 Assigning Values to Variables Overview (S).............................................. 12 Asterisk (*) Pattern Character (U) ............. 351 At Sign (@) Pattern Character (U) ............. 351 ATT Command (ATTACH) (U) .................. 62 ATTACH Command (U) .............................. 62 ATTACHD Command (MVS) (U)................................................... 64 (VSE) (U) .................................................... 63 ATTACHX Command (U) ........................... 65 ATTD Command (ATTACHD) (U) ............ 63 ATTN Key Indicator (SIBSIGNL) (S) ........ 222 Attributes................. See Member, Library, etc List of Commands to Access (S) ............. 51 ATTX Command (ATTACHX) (U) ............. 65 AUDCF Command (AUDITCF) (S) .......... 275 AUDCL Command (AUDITCL) (U)........... 66 BIM-EDIT System Reference Manual AUDF Command (AUDITF) (S) ................. 54 AUDI Command (AUDITI) (U) .................. 68 Audit Administration (U)................................. 371 Control Customization (S) .................... 415 Control Flag (MMPAUCTL) (S) ........... 194 Current Dsply Stat (SSDDISPn) (S)...... 225 Current Line Number (SSDAUBSn) (S)224 Current Size (SSDAULN) (S) ................ 224 Current Status (SSDAUDIT) (S) ........... 224 Discussion (U)......................................... 368 Format of Display (U)............................ 369 to Delete (AUDITCL) (U) ........................ 66 to Display (SCREEN AUDIT) (U) ........ 275 to Insert Line to (AUDITI) (U) ................ 68 to Insert Lines (AUDITF) (S)................... 54 to Start/Stop (ALTER) (U) ...................... 53 to Summarize (AUDITSM) (U)............... 70 to Undo Changes (AUDITRL) (U) ......... 69 to Write to Tape (AUDITRP) (S)............. 55 AUDITCF Command (S)............................ 275 AUDITCL Command (U)............................. 66 AUDITF Command (S)................................. 54 AUDITI Command (U) ................................ 68 AUDITRL Command (U)............................. 69 AUDITRP Command (S).............................. 55 AUDITSM Command (U) ............................ 70 AUDRL Command (AUDITRL) (U)........... 69 AUDRP Command (AUDITRP) (S)............ 55 AUDSM Command (AUDITSM) (U) ......... 70 AUTH Command (AUTHORIZ) (S)......... 276 AUTHORIZ Command Discussion (S).......................................... 432 Reference (S) ........................................... 276 AUTOMAIL feature (S)...................... 270, 300 B Command (BOTTOM) (U) ....................... 74 B LCA Command (U) ................................. 322 BA Command (BACK) (U) .......................... 72 BACK Command (U).................................... 72 Back out Changes (AUDITRL) (U) ............. 69 Backslash (\) Pattern Character (U) ......... 351 Backup Backup/Restore Discussion (S) ............ 390 Backup/Restore Scenarios (S) .............. 390 Currently Running (MMPBACKP) (S) 194 JCL Exmp - Full Logical Backup (S)..... 391 JCL Exmp - Full Logical Restor (S) ...... 392 JCL Exmp - Part Logical Backup (S) .... 394 JCL Exmp - Part Logical Restor (S) ...... 393 Index JCL Exmp - Physical Backup (S) ........... 281 JCL Exmp - Physical Restore (S)........... 395 to Create Logical (BACKUPG) (S)........ 277 to Create Physical (BACKUPP) (S)....... 281 to Create Sel Logical(BACKUPS) (S).... 283 to Display Logical (LIBRARYG) (S) ..... 315 to Restore Full (BIMREST) (S)............... 392 to Restore Library (RESTOREL) (S) ..... 350 to Restore Member (RESTORE) (S) ...... 345 BACKUPG Command (MVS) (S).................................................. 279 (VSE) (S)................................................... 277 BACKUPP Command (MVS) (S).................................................. 282 (VSE) (S)................................................... 281 BACKUPS Command (S) ........................... 283 BACKWARD Command (BACK) (U) ........ 72 --BATCH INCLUDE (S) ............................................ 90 Batch Processing Features Overview (U)............................. 35 of BIM-EDIT ...................... See Batch Utility of Hexadecimal Data (U) ....................... 366 to Access BIM-EDIT from Pgrm (S) ..... 244 to Copy Lines to (SUBMITF) (S) ........... 174 to Copy Member to (SUBMIT) (U)....... 303 Batch Utility (BIMUTIL) ++() Lines (S) ........................................... 242 Command Logging Ctrl(PPDUTLOG) (S)......................... 209 Commands Overview (S) ........................ 49 JCL Examples (S) .................................... 240 Lines Longer than 80 Char (S) .............. 242 LU 6.2 (BIMUTLU) (S) ........................... 241 Overview (U) ............................................ 44 Print Example (S).................................... 242 to Start Execution (LOGON) (S) ........... 107 Beep on Terminal (PPDALARM) (S) ........ 204 BIFARMP Module Customization (S) ................................... 440 BIFLIB File (VSE) (S) ................................... 365 BIFPWRD File (VSE) (S) ............................. 365 BIFPWRQ File (VSE) (S) ............................. 365 BIFRDR Internal Readers (MVS) (S) ......... 375 BIFTBAT Module Customization (S) ................................... 446 BIFXCCM Module Customization (S) ................................... 435 BIFXCTR Module Page 467 Customization (S) ................................... 438 BIMBTAM see.............................................. 448 BIMBTMOD ..................... See BTAM Interface BIMCSCL Installation for MVS (S) ......................... 375 Installation for VSE (S)........................... 368 BIMCSDT Alternate System Name (S) ................... 379 Customization of CICS (S) .................... 447 Installation for MVS (S) ......................... 375 Installation for VSE (S)........................... 368 BIM-EDIT Installable Features (S) ............ 252 BIM-EDIT/XP (S) ............................................ 1 BIMREST Backups and Restores (S) ...................... 390 Full Logical Restore (S) .......................... 392 Full Physical Restore (S) ........................ 395 BIMTCT ............................ See BTAM Interface BIMUTIL................................. See Batch Utility BIMUTLU.................. See Batch Utility LU 6.2 BIPCOMP Procedure Customizatn (S) ...................................... 425 BIPPROC Procedure Customization (S) ................................... 428 BIPSUBM Procedure Customization (S) ................................... 428 BIUAP Routines......See Application Interface BIUAPMD Loading into SVA (S) ............................. 370 BIULU Routines .....See Application Interface BIXLOGN Module Customization (S) ................................... 421 BIXPWQA Module Customization (S) ................................... 423 BIXPWSB Module Customization (S) ................................... 429 BL Command (BLANK) (U) ........................ 73 BLANK Command (U)................................. 73 BLOCK Command (S) .................................. 57 BO Command (BOTTOM) (U) .................... 74 BOT Command (BOTTOM) (U) .................. 74 BOTTOM Command (U).............................. 74 Bracket LCA Command Discussion (U)......................................... 319 to Forget (RESET) (U) ............................ 267 Branch from GOTO (LABEL) (S)................. 97 Branch to LABEL (GOSUB) (S).................... 76 Branch to LABEL (GOTO) (S)...................... 77 Break Apart Paragraph (SEPARATE) (U) 285 Page 468 Break Line (SEPARATE) (U)..................................... 285 (SPLIT) (U)............................................... 297 Broken Vertical Bar in MAPF Command (S) ......................... 114 BROWSE Command Overview and Example (S)...................... 38 Reference (S).............................................. 58 BROWSEL Command Overview and Example (S)...................... 39 Reference (S).............................................. 59 BROWSES Command (S) ........................... 286 BROWSEU Command (S) .......................... 287 BTAM Interface (VSE) Messages (S) ............................................ 458 Reference (S)............................................ 448 Shut Down (S) ......................................... 457 Startup (S) ................................................ 456 Table Entries (S) ...................................... 451 Table Generation (S)............................... 449 BTMOD.............................See BTAM Interface BYPASS Command Discussion (S) .......................................... 432 Reference (S)............................................ 288 C Command (CHANGE) (U)....................... 80 C LCA Command (U) ................................. 323 Calendar Reminder (TODAY) (S) ............. 256 Calling BIM-EDIT from ProgramsSee Application Interface CANC Command (CANCEL) (U)............... 75 CANCEL Command (MVS) (U).................. 75 CAT Command (CATAL) (U) ..................... 76 CATAL Command (MVS) (U)................................................... 78 (VSE) (U) .................................................... 76 CC LCA Command (U) .............................. 323 CEN Command (CENTER) (U) ................... 79 CENT Command (CENTER) (U) ................ 79 CENTER Command (U) ............................... 79 Center Lines (CENTER) (U) ........................................... 79 (Plus Sign LCA Command) (U) ............ 347 CH Command (CHANGE) (U) ................... 80 Change Attributes of JES Job/Data Sets (ALTERP) (U) ....... 60 of JES Job/Data Sets (FALTERP) (U) ... 135 of JES Job/Data Sets (Q LCA) (U) ........ 335 of Library (ALTERL) (U) ......................... 56 of Library (FALTERL) (U) ..................... 132 BIM-EDIT System Reference Manual of Library (Q LCA Command) (U) ...... 335 of Member (ALTER) (U).......................... 53 of Member (FALTER) (U)...................... 130 of Member (Q LCA Command) (U)..... 335 of POWER Job Entry (ALTERP) (U) ...... 57 of POWER Job Entry (FALTERP) (U) .. 133 of POWER Job Entry (Q LCA) (U) ....... 335 of Session (FSESSION) (U) .................... 147 of Session (SESS) (U) .............................. 287 of User (ALTERU) (S) ............................ 269 of User (FALTERU) (S) .......................... 308 CHANGE Command (U)............................. 80 Change ControlSee Stamp. See Checkout. See Audit Highlight Flag (MMPSPHGL) (S) ........ 198 Overview (U) ............................................ 40 Change Display Mode (SCREEN) (U)...... 275 Change Name of Command (BIFXCCM) (S)................ 435 of Member (MOVE) (U)......................... 224 of Member (RENAME) (U) ................... 261 PDS Member (RENAMED) (U) ............ 264 Sublibrary Member (RENAMED) (U) . 263 Change Password (PASSWORD) (U)....... 233 Change Position in Session ..... See Reposition Change Security of Library (ALTERS) (S) ........................ 268 of Library (FALTERS) (S) ...................... 307 Change Text of Member (E LCA Command) (U) ..... 325 of Member (EDIT) (U) ........................... 123 of PDS Member (E LCA Command) (U)..................... 325 (EDITD) (U) ........................................ 126 of Sublibrary Member (E LCA) (U) ..... 325 of Sublibrary Member (EDITD) (U) ..... 125 Change Text Strings (CHANGE) (U) ......... 80 Change to Other Logical Screen (Less Than Sign) (U)............................... 317 CHECKASN Command (U) ........................ 83 CHECKIN Command Customize to Keep Old Versions (S) ... 434 Reference (U) ............................................ 84 CHECKOUT Command (U) ........................ 85 Checkout/Checkin Administration of (U) ............................ 373 Discussion (U)......................................... 372 INCLUDE Processing for (U) ............... 373 Re-establishing (CHECKRST) (S)......... 289 Index CHECKPUR Command (U)......................... 87 CHECKRST Command (S)......................... 289 CHKA Command (CHECKASN) (U)......... 83 CHKI Command (CHECKIN) (U) .............. 84 CHKO Command (CHECKOUT) (U) ........ 85 CHKR Command (CHECKRST) (S) ......... 289 CICS Number of Simultaneous Users (S)...... 447 Running as Sub-task of (S) .................... 363 Table Entries (MVS) (S).......................... 375 Table Entries (VSE) (S)........................... 368 Transact Access from BIM-EDIT (S) .... 438 Transact Access to BIM-EDIT (S) ......... 244 Transaction ID (S)................................... 447 Close Print (SEGMENT) (S) ....................... 153 Close Session (END) (U) ................................................ 127 (SAVE) (U)............................................... 270 Overview (U) ............................................ 28 CMPR Command (COMPARE) (U) ........... 88 COBOL Access to BIM-EDITSee Application Interface Column Position (%) Pattern Character (U)....... 354 to Copy (PROPAGAT) (U) .................... 240 to Erase (BLANK) (U) .............................. 73 to Erase (KEEP) (U) ................................ 173 to Move (SHIFT) (U) .............................. 292 Combine Lines (FORMAT) (U) ................. 144 Command......................... See LCA Command ABENDXIT (VSE) (S) ............................. 266 ADD (S)...................................................... 53 ALTER (U)................................................. 53 ALTERL (U) .............................................. 56 ALTERP (MVS) (U) .................................. 60 ALTERP (VSE) (U) ................................... 57 ALTERS (S).............................................. 268 ALTERU (S)............................................. 269 Ampersand Prefix (U)............................ 314 ARCHIVE (S) .......................................... 272 ATTACH (U)............................................. 62 ATTACHD (MVS) (U) ............................. 64 ATTACHD (VSE) (U)............................... 63 ATTACHX (U) .......................................... 65 AUDITCF (S)........................................... 275 AUDITCL (U)............................................ 66 AUDITF (S)................................................ 54 AUDITI (U)................................................ 68 AUDITRL (U)............................................ 69 Page 469 AUDITRP (S)............................................. 55 AUDITSM (U) ........................................... 70 AUTHORIZ (S) ....................................... 276 BACK (U)................................................... 72 BACKUPG (MVS) (S)............................. 279 BACKUPG (VSE) (S) .............................. 277 BACKUPP (MVS) (S) ............................. 282 BACKUPP (VSE) (S)............................... 281 BACKUPS (S) .......................................... 283 BLANK (U)................................................ 73 BLOCK (S) ................................................. 57 BOTTOM (U)............................................. 74 BROWSE (S) .............................................. 58 BROWSEL (S)............................................ 59 BROWSES (S) .......................................... 286 BROWSEU (S) ......................................... 287 BYPASS (S) .............................................. 288 CANCEL (MVS) (U)................................. 75 CATAL (MVS) (U).................................... 78 CATAL (VSE) (U) ..................................... 76 CENTER (U).............................................. 79 CHANGE (U) ............................................ 80 CHECKASN (U) ....................................... 83 CHECKIN (U) ........................................... 84 CHECKOUT (U) ....................................... 85 CHECKPUR (U) ....................................... 87 CHECKRST (S) ....................................... 289 COMPARE (U).......................................... 88 COMPILE (U)............................................ 90 CONNECT (S)......................................... 291 CONSOLEF (S) ......................................... 60 CONSOLEI (U) ......................................... 91 CONTROLP (MVS) (S) .......................... 293 CONTROLP (VSE) (S)............................ 292 COPY (U)................................................... 92 COPYD (MVS) (U) ................................... 95 COPYD (VSE) (U)..................................... 94 CORE (MVS) (S) ..................................... 295 CORE (VSE) (S)....................................... 294 CURSOR (U) ............................................. 96 DA (MVS) (U) ........................................... 98 DA (VSE) (U)............................................. 97 DEALLOC (MVS) (S) ............................. 296 DECLARE (S) ............................................ 61 DEFINE (U) ............................................... 99 DEFINED (MVS) (U).............................. 107 DEFINED (VSE) (U) ............................... 105 DEFINEL (U)........................................... 108 DEFINES (S) ............................................ 297 Page 470 DEFINEU (S) ........................................... 298 DEFINEX (S)............................................ 302 DELETE (U)............................................. 109 DEMO (VSE Installation) (S)................. 254 DEMO (VSE Usage) (U)........................... 16 DEQUEUE (S) ........................................... 64 DISABLE (S) ............................................ 303 DISCARD (U) .......................................... 110 DISCONN (S) .......................................... 304 DISPLAY (U) ........................................... 111 DISPLAYC (U) ........................................ 113 DISPLAYD (MVS) (U)............................ 118 DISPLAYD (VSE) (U) ............................. 116 DISPLAYF (S)............................................ 65 DISPLAYI (VSE) (S)................................ 305 DIVIDE (S) ................................................. 66 DUP (U) ................................................... 122 EDIT (U)................................................... 123 EDITD (MVS) (U) ................................... 126 EDITD (VSE) (U)..................................... 125 EJECT (S).................................................... 67 ELSE (S)...................................................... 68 ENABLE (S) ............................................. 306 END (U) ................................................... 127 ENDBLOCK (S)......................................... 69 ENDIF (S)................................................... 70 ENQUEUE (S) ........................................... 71 Equal Sign (U) ......................................... 315 EXAMINE (S) ............................................ 72 EXECUTE (U).......................................... 128 EXIT (S) ...................................................... 75 FALTER (U)............................................. 130 FALTERL (U) .......................................... 132 FALTERP (MVS) (U) .............................. 135 FALTERP (VSE) (U) ............................... 133 FALTERS (S)............................................ 307 FALTERU (S)........................................... 308 FDEFINE (U) ........................................... 137 FDEFINEL (U)......................................... 139 FDEFINES (S) .......................................... 309 FDEFINEU (S) ......................................... 311 FILE (SAVE) (U)...................................... 270 FIND (U) .................................................. 140 FINDUP (U)............................................. 142 FORMAT (U)........................................... 144 FORWARD (U) ....................................... 146 FSESSION (U) ......................................... 147 GET (U) .................................................... 148 GETD (MVS) (U)..................................... 150 BIM-EDIT System Reference Manual GETD (VSE) (U)...................................... 149 GETI (VSE) (S) ........................................ 313 GETP (MVS) (U) ..................................... 154 GETP (VSE) (U) ...................................... 151 GETQ (U)................................................. 157 GOSUB (S) ................................................. 76 GOTO (S) ................................................... 77 GROUP (U) ............................................. 158 HEADF (S)................................................. 78 HELP (U) ................................................. 159 HEXIF (S)................................................... 79 HEXREQ (S) .............................................. 81 HOLD (MVS) (U) ................................... 162 HOLD (VSE) (U)..................................... 160 IF (S) ........................................................... 83 IFD (S) ........................................................ 85 IFTHEN (S)................................................ 87 INCLUDE (Advanced) (S) ...................... 89 INCLUDE (Ordinary) (U) ..................... 164 INQUIRE (U) .......................................... 166 INQUIRED (VSE) (U) ............................ 167 INQUIREP (MVS) (U)............................ 168 INQUIREU (S) ........................................ 314 INSERTF (S) .............................................. 94 INSERTI (U) ............................................ 170 INSTALL (S)............................................ 253 INSTALL (VSE procedure) (S).............. 257 INTERVAL (S) .......................................... 95 JUSTIFYL (U) .......................................... 171 JUSTIFYR (U) .......................................... 172 KEEP (U).................................................. 173 KEYS (U).................................................. 174 LABEL (S).................................................. 97 LADD (U) ................................................ 176 LEAVE (S) ................................................. 98 Less Than Sign (U) ................................. 317 LIBRARY (U) .......................................... 177 LIBRARYD (MVS) (U) ........................... 184 LIBRARYD (VSE) (U) ............................ 182 LIBRARYG (MVS) (S) ............................ 316 LIBRARYG (VSE) (S) ............................. 315 LIBRARYI (VSE) (S) ............................... 317 LIBRARYL (U) ........................................ 186 LIBRARYN (S) ........................................ 318 LIBRARYP (MVS) (U)............................ 190 LIBRARYP (VSE) (U) ............................. 188 LIBRARYQ (U) ....................................... 192 LIBRARYR (S)......................................... 319 LIBRARYS (S) ......................................... 320 Index LIBRARYT (S) ......................................... 322 LIBRARYU (U)........................................ 194 LIBRARYX (S) ......................................... 324 LIST (U).................................................... 196 LISTD (MVS) (U) .................................... 199 LISTD (VSE) (U) ..................................... 197 LISTI (VSE) (S) ........................................ 328 LISTP (MVS) (U)..................................... 203 LISTP (VSE) (U) ...................................... 201 LOADD (MVS) (S).................................. 100 LOADD (VSE) (S) ..................................... 99 LOADDL (MVS) (S) ............................... 102 LOADDL (VSE) (S)................................. 101 LOADI (VSE) (S)..................................... 325 LOADIL (VSE) (S) .................................. 326 LOADT (S)............................................... 103 LOCATE (U)............................................ 206 LOCATEU (U) ........................................ 209 LOGF (S) .................................................. 106 LOGI (U) .................................................. 212 LOGOFF (U)............................................ 213 LOGON (S) .............................................. 107 LOOP (S).................................................. 109 LOWERCAS (U) ..................................... 214 LUCL (S) .................................................. 110 LUOP (S).................................................. 111 LURC (S) .................................................. 112 LUSD (S) .................................................. 113 MAIL (U) ................................................. 215 MAILI (U) ................................................ 217 MAILSESS (U)......................................... 219 MAPF (S) ................................................. 114 MERGE (U).............................................. 220 MESSAGE (U) ......................................... 222 MODIFY (ALTER) (U) ............................. 53 MODIFYL (ALTERL) (U) ........................ 56 MODIFYP (ALTERP) (U) ........................ 57 MOVE (U)................................................ 224 MULTIPLY (S) ........................................ 118 NEWCOPY (S) ........................................ 329 NEXT (U) ................................................. 226 NFIND (U)............................................... 227 NFINDUP (U) ......................................... 229 OPEN (U)................................................. 231 OUTPUTF (S) .......................................... 119 OVERLAY (U)......................................... 232 PARSE (S) ................................................ 121 PASSWORD (U) ..................................... 233 PEND (S).................................................. 123 Page 471 PHONETIC (S)........................................ 125 POSITION (U)......................................... 234 PRINT (Advanced) (S) ........................... 126 PRINT (Ordinary) (U)............................ 235 PRINTF (S)............................................... 129 PRINTG (MVS) (S) ................................. 332 PRINTG (VSE) (S)................................... 331 PROCESS (U) .......................................... 238 PROPAGAT (U)...................................... 240 PUNCH (S) .............................................. 131 PUNCHF (S)............................................ 134 PUNCHI (S)............................................. 135 PUNCHL (S)............................................ 136 PURGE (U) .............................................. 241 PURGED (MVS) (U)............................... 244 PURGED (VSE) (U) ................................ 243 PURGEL (U)............................................ 245 PURGEN (S) ............................................ 333 PURGEP (MVS) (U) ............................... 248 PURGEP (VSE) (U)................................. 246 PURGEQ (U) ........................................... 250 PURGES (S) ............................................. 334 PURGET (S)............................................. 335 PURGEU (S) ............................................ 336 PURGEX (S)............................................. 337 QUALIFY (U) .......................................... 251 Question Mark (U) ................................. 316 QUIT (SAVE) (U).................................... 270 READ (S).................................................. 137 READL (S) ............................................... 138 READP (MVS) (S)................................... 141 READP (VSE) (S) .................................... 139 READS (S)................................................ 338 READU (S)............................................... 340 RECOVER (S) .......................................... 341 REFRESH (U) .......................................... 256 RELEASE (MVS) (U) .............................. 259 RELEASE (VSE) (U) ............................... 257 RENAME (U) .......................................... 261 RENAMED (MVS) (U)........................... 264 RENAMED (VSE) (U) ............................ 263 REORG (S) ............................................... 344 REPRO (S)................................................ 143 REPROF (S) ............................................. 147 REPROI (S) .............................................. 149 REPROL (S) ............................................. 151 RESEQ (U) ............................................... 265 RESET (U)................................................ 267 RESTORE (MVS) (S)............................... 348 Page 472 RESTORE (VSE) (S) ................................ 345 RESTOREL (MVS) (S) ............................ 352 RESTOREL (VSE) (S).............................. 350 RETURN (S)............................................. 152 ROLLBACK (AUDITRL) (U) .................. 69 ROTATE (U) ............................................ 268 SAVE (U).................................................. 270 SCAN (U)................................................. 271 SCREEN (U) ............................................ 275 SEARCH (U)............................................ 283 SEGMENT (VSE) (S)............................... 153 SEND (S) .................................................. 154 SENDF (S) ................................................ 156 SENDI (S)................................................. 157 SENDMSG (S) ......................................... 158 SENDN (S)............................................... 159 SEPARATE (U) ....................................... 285 SERVICE (VSE procedure) (S) .............. 257 SESS (U) ................................................... 287 SET (Advanced) (S) ................................ 160 SET (Ordinary) (U) ................................. 289 SETD (S) ................................................... 164 SETKEYS (S) ............................................ 354 SETL (S).................................................... 166 SETM (S) .................................................. 167 SHIFT (U)................................................. 292 SHOW (MVS Advanced) (S) ................. 170 SHOW (Ordinary) (U)............................ 294 SHOW (VSE Advanced) (S) .................. 168 SHUT (S) .................................................. 355 SNAP (S) .................................................. 172 SORT (U).................................................. 295 SPLIT (U) ................................................. 297 SQUEEZE (U).......................................... 299 STACK (U)............................................... 300 STACKF (S).............................................. 173 STACKI (U) ............................................. 301 STAMPCL (U) ......................................... 302 SUBMIT (MVS) (U)................................. 305 SUBMIT (VSE) (U).................................. 303 SUBMITD (MVS) (U) ............................. 307 SUBMITF (S)............................................ 174 SUBTRACT (S) ........................................ 176 SWAP (U) ................................................ 308 TODAY (procedure) (S) ......................... 256 TOP (U) .................................................... 309 TRACE (S)................................................ 357 TRANSFER (S) ........................................ 177 UP (U)....................................................... 310 BIM-EDIT System Reference Manual UPPERCAS (U)....................................... 311 VAPPEND (S) ......................................... 178 VERIFY (S)............................................... 358 VEXAMINE (S)....................................... 179 VIEW (U) ................................................. 312 VLOWERCA (S) ..................................... 181 VTESTNUM (S) ...................................... 182 VTRUNCAT (S) ...................................... 183 VUPPERCA (S) ....................................... 184 WAIT (S).................................................. 185 ZAP (S)..................................................... 359 Command Line Position on Screen (U) ............................. 15 to Get Values from (PARSE) (S) ........... 121 Commands Discussion Alternatives for LCA Commands (S).. 5 Control in Procedures (S) ................... 16 Creating Your Own (S) ..................... 432 Customization Overview (U)............. 46 Format of Lookup Tables (S)............ 431 Front-ended by Procedures (S) ........ 432 in Application Interface (U) ............... 45 in Batch Utility (U) .............................. 44 in Procedures (U)................................. 43 Making Procedures Into (S) ............... 48 Multiple Sequence of Process (U) ............... 356 Online Help Discussion (U) ............... 17 Resolution of Names (S) ................... 431 Rules for Entry (U) .............................. 18 Security (U)........................................... 39 Sequences of (U) ................................ 358 Syntax (U) ............................................. 18 Text-Following Data Manipulation (S).................... 36 Text-Following (S) ............................... 34 to Access CICS Trans (BIFXCTR) (S)438 to Access Libraries (U) ........................ 25 to Access Mail (U)................................ 34 to Access Members (U) ....................... 25 to Access PDS Members (U)............... 37 to Access Sublib Members (U) ........... 37 to Change Text (U) .............................. 33 to Reposition Session (U).................... 29 to Start Session (U) .............................. 27 to Stop Session (U)............................... 28 for the Application Interface (S) ........... 247 Hex Escape Char (SIBHEXC) (S) .......... 216 Index List for Advanced User (S)......................... 50 for Operator and Administrator (S) 264 to Access $STACK (U)......................... 31 to Access Application Interface (S).... 51 to Access Attributes (S) ....................... 51 to Access Batch Processing (U) .......... 35 to Access Inter-User Mail (U)............. 51 to Access JES Jobs/Data Sets (U) ....... 51 to Access Libraries (U) ........................ 49 to Access Members (U) ....................... 48 to Access PDS Members (U)............... 52 to Access POWER Job Entries (U) ..... 50 to access Security and User (S)......... 265 to Access Sublib Members (U) ........... 51 to Access Variables (S) ........................ 50 to Change Text (U) .............................. 49 to Control Procedure Execution (S)... 51 to Print and Punch (S) ......................... 52 to Reposition Session (U).................... 50 to Transfer Text (S) .............................. 52 Online Help Reference (HELP) (U)...... 159 Response (SIBRESP) (S) ......................... 219 Return Code (SIBRETCD) (S)................ 219 Return Message (SIBMSG) (S) .............. 218 Switch Session Groups (GROUP) (U).. 158 to Change Names/Rules(BIFXCCM) (S) ........... 435 to Execute Cond (BLOCK) (S)................. 57 to Execute Cond (ELSE) (S) ..................... 68 to Execute Cond (ENDBLOCK) (S) ........ 69 to Execute Cond (ENDIF) (S) .................. 70 to Execute Cond (HEXIF) (S) .................. 79 to Execute Cond (IF) (S)........................... 83 to Execute Cond (IFD) (S)........................ 85 to Execute Cond (IFTHEN) (S) ............... 87 to Execute Cond (LEAVE) (S) ................. 98 to Execute Cond (LOOP) (S) ................. 109 to Issue to JES (CONTROLP) (S) .......... 293 to Issue to POWER (CONTROLP) (S).. 292 to Make Accessible (ENABLE) (S)........ 306 to Make Inaccessible (DISABLE) (S) .... 303 to Redisplay (Question Mark) (U)........ 316 to Refresh Table (NEWCOPY) (S) ........ 329 to Repeat (Ampersand Prefix) (U) ....... 314 to Repeat (Equal Sign) (U)..................... 315 to Resolve Up a Level (BYPASS) (S) .... 288 COMMANDS Member (S)......................... 431 COMP Command (COMPILE) (U) ............. 90 Page 473 COMPARE Command Reference (U)............................................. 88 COMPILE Command Customization (BIPCOMP) (S) ............. 425 Reference (U)............................................. 90 Compression of Screens (SIBCMPR) (S)... 214 Concatenate Variable (VAPPEND) (S) ..... 178 Conditional Execution Control Flag (PPDCOND) (S) ............... 205 of Commands (BLOCK) (S)..................... 57 of Commands (ELSE) (S) ......................... 68 of Commands (ENDIF) (S) ...................... 70 of Commands (ENDLOCK) (S) .............. 69 of Commands (HEXIF) (S) ...................... 79 of Commands (IF) (S)............................... 83 of Commands (IFD) (S)............................ 85 of Commands (IFTHEN) (S) ................... 87 of Commands (LEAVE) (S) ..................... 98 of Commands (LOOP) (S) ..................... 109 CONNECT Command (S).......................... 291 CONSF Command (CONSOLEF) (S) ......... 60 CONSI Command (CONSOLEI) (U) .......... 91 Console Messages (DISPLAYC) (U) ......... 113 CONSOLEF Command (S) .......................... 60 CONSOLEI Command (U) .......................... 91 CONTROLP Command (MVS) (S) ................................................. 293 (VSE) (S)................................................... 292 Controls (Member Change)See Stamp. See Checkout. See Audit Overview (U) ............................................ 40 Controls (Security) ........................See Security Copy PDS Member (COPYD) (U)..................... 95 Sublibrary Member (COPYD) (U).......... 94 Copy Book Facility (S) ................................ 260 Copy Column (PROPAGAT) (U).............. 240 COPY Command (U) .................................... 92 Copy Lines by Using LCA Discussion (U) .................................... 319 from $LOG (GET) (U) ............................ 148 from $STACK (B LCA Command) (U) 322 from $STACK (GET) (U) ....................... 148 from $STACK (I LCA Command) (U) . 328 from ICCF (GETI) (S) ............................. 313 from JES Job/Data Sets (GETP) (U) ..... 154 from Member (GET) (U) ........................ 148 from PDS (GETD) (U) ............................ 150 Page 474 from POWER Job Entry (GETP) (U)..... 151 from Sublibrary Member (GETD) (U).. 149 in Member (DUP) (U)............................. 122 in Member (Quote Mark LCA) (U) ...... 343 to $STACK (C LCA Command) (U)..... 323 to $STACK (K LCA Command) (U)..... 330 to $STACK (M LCA Command) (U) .... 332 to $STACK (N LCA Command) (U) .... 333 to $STACK (STACK) (U) ....................... 300 to $STACK (STACKI) (U) ...................... 301 to Batch Proc (SUBMITF) (S) ................. 174 Copy Member by Creating a Command Tape (S) ........ 413 by Using LOADT Discussion (S) ..................................... 412 from ICCF (LOADI) (S).......................... 325 from ICCF (LOADIL) (S) ....................... 326 from Member (COPY) (U) ....................... 92 from Other Systems Discussion (S) ..................................... 412 from PDS (LOADDL) (S) ....................... 102 from PDS Member (LOADD) (S).......... 100 from Sublibrary (LOADDL) (S) ............ 101 from Sublibrary Mbr (LOADD) (S) ........ 99 Master to Slave (CHECKOUT) (U)......... 85 Slave to Master (CHECKIN) (U)............. 84 Slave to Other User (CHECKASN) (U) . 83 to MVS PDS (CATAL) (U)....................... 78 to VSE Sublibrary (CATAL) (U) ............. 76 COPYD Command (MVS) (U)................................................... 95 (VSE) (U) .................................................... 94 CORE Command (MVS) (S).................................................. 295 (VSE) (S) ................................................... 294 Corrective Service Using BIM-EDIT for (VSE) (S) .............. 257 CP Command (CONTROLP) (S) ............... 292 Create Library (DEFINEL) (U) .......................... 108 Library (FDEFINEL) (U) ........................ 139 Library Security (DEFINES) (S) ............ 297 Library Security (FDEFINES) (S).......... 309 Line Numbers (RESEQ) (U) .................. 265 Lines (A LCA Command) (U)............... 321 Lines (B LCA Command) (U) ............... 322 Lines (I LCA Command) (U)................. 328 Lines (LADD) (U) ................................... 176 Member (COPY) (U)................................. 92 BIM-EDIT System Reference Manual Member (DEFINE) (U) ............................ 99 Member (FDEFINE) (U) ........................ 137 Member from PDS Member (LOADD) (S) .............. 100 Sublib Mbr (LOADD) (S).................... 99 Members from PDS (LOADDL) (S)............................ 102 Sublib (LOADDL) (S) ........................ 101 PDS Member (DEFINED) (U)............... 107 Proxy User for Mail (DEFINEX) (S) ..... 302 Session Overview (U)........................................ 27 Session DISP-type (DISPLAYF) (S)........ 65 Session EDIT-type (EDIT) (U) .............. 123 Session Like Current (REFRESH) (U).. 256 Sublibrary Member (DEFINED) (U) .... 105 User - Steps (S)........................................ 396 User (DEFINEU) (S) ............................... 298 User (FDEFINEU) (S)............................. 311 Variable (DECLARE) (S) ......................... 61 CSDT Customization of CICS (S) .................... 447 CTLP Command (CONTROLP) (S).......... 292 CUR Command (CURSOR) (U) .................. 96 CURS Command (CURSOR) (U) ................ 96 Cursor MAPF Field for (PPDCSFLD) (S) ......... 205 CURSOR Command (U) .............................. 96 Cursor Control Current (SIBCSCTL) (S)......................... 215 to Set Extended (SET) (U)...................... 289 Cursor Position Input Column (SIBCSCOL) (S) ............. 214 Input Row (SIBCSROW) (S).................. 215 Customer Support Contacting (S) ......................................... 360 Customization Disabling TYPE Check (S) ..................... 417 of Audit Control (S) ............................... 415 of CICS Simultaneous Users (S) ........... 447 of CICS Transaction ID (S) .................... 447 of Command Names (S) ........................ 435 of Commands to Access CICS (S) ........ 438 of Commands Using Procedures (S).... 432 of COMPILE Command (S) .................. 425 of Date Format (S) .................................. 415 of DEFINE Command Templates (S)... 416 of HELP (S).............................................. 418 of ICCF Access (S) .................................. 415 Index of JES interface (S) ................................. 377 of JES Job/Data Sets Access (S) ............ 423 of Logon (S) ............................................. 420 of Logon Type (S) ................................... 415 of MAPF Attribute Characters (S) ........ 446 of Messages (S)........................................ 419 of Page Length (S) .................................. 415 of POWER Job Entry Access (S)............ 423 of PROCESS Command (S) ................... 428 of Purge Control (S) ............................... 415 of Stamping Control (S) ......................... 415 of SUBMIT Command (BIPSUBM) (S) 428 of SUBMITF Command (BIXPWSB) (S)429 of System Procedures (S) ....................... 430 Overview (U) ............................................ 46 to Modify/Create/Delete Module (S) . 440 to Refresh Module (NEWCOPY) (S) .... 329 D LCA Command (U)................................. 324 DA Command (MVS) (U)................................................... 98 (VSE) (U).................................................... 97 Data Set...................... See JES Job or Data Sets Date Current (OPSDATE) (S)......................... 201 Format Control (MMPDTCTL) (S) ....... 194 Format Customization (S) ..................... 415 of Task Start (SIBDATE) (S) .................. 215 DC Command (DISPLAYC) (U)................ 113 DCL Command (DECLARE) (S) ................. 61 DD LCA Command (U).............................. 324 DEAL Command (DEALLOC) (S) ............ 296 DEALLOC Command (MVS) (S) .............. 296 Deallocate PDS (DEALLOC) (S)................ 296 Debugging Procedures Discussion (S)............................................ 44 to Log Error Info (SNAP) (S)................. 172 DECLARE Command (S) ............................. 61 Decrement Variable (SUBTRACT) (S) ...... 176 DEF Command (DEFINE) (U)..................... 99 Default to Set Library (ATTACH) (U) ................. 62 to Set PDS (ATTACHD) (U).................... 64 to Set Sublibrary (ATTACHD) (U)......... 63 Default Screen......... See also Alternate Screen Number of Columns (SIBSCDWD) (S) 219 Number of Lines (SIBSCDDP) (S) ........ 219 DEFD Command (DEFINED) (U)............. 105 DEFINE Command Customization (S) ................................... 416 Page 475 Reference (U)............................................. 99 DEFINED Command (MVS) (U) ................................................ 107 (VSE) (U).................................................. 105 DEFINEL Command (U)............................ 108 DEFINES Command (S) ............................. 297 DEFINEU Command (S) ............................ 298 DEFINEX Command (S)............................. 302 DEFL Command (DEFINEL) (U) .............. 108 DEFS Command (DEFINES) (S)................ 297 DEFU Command (DEFINEU) (S).............. 298 DEFX Command (DEFINEX) (S)............... 302 DEL Command (DELETE) (U) .................. 109 Delete Audit (AUDITCL) (U).............................. 66 Column (BLANK) (U).............................. 73 Column (KEEP) (U)................................ 173 Column (SHIFT) (U)............................... 292 JES Job/Data Sets (DISCARD) (U) ....... 110 JES Job/Data Sets (P LCA Cmnd) (U) . 334 JES Job/Data Sets (PURGEP) (U) ......... 248 Library (PURGEL) (U) ........................... 245 Library Security (PURGES) (S) ............. 334 Lines (D LCA Command) (U)............... 324 Lines (DELETE) (U)................................ 109 Mail (DISCARD) (U) .............................. 110 Mail (P LCA Command) (U)................. 334 Mail (PURGEQ) (U) ............................... 250 Member - Steps to Undo (S) .................. 402 Member (P LCA Command) (U) .......... 334 Member (PURGE) (U)............................ 241 PDS Member (P LCA Command) (U) . 334 PDS Member (PURGED) (U) ................ 244 POWER Job Entry (DISCARD) (U) ...... 110 POWER Job Entry (P LCA Cmnd) (U) 334 POWER Job Entry (PURGEP) (U) ........ 246 Proxy User for Mail (PURGEX) (S) ...... 337 Slave Member (CHECKPUR) (U)........... 87 Sublibrary Member (P LCA Cmnd) (U)334 Sublibrary Member (PURGED) (U) ..... 243 Temporary Password (PURGEN) (S) .. 333 User - Steps (S) ........................................ 397 User (PURGEU) (S) ................................ 336 DELETE Command (U).............................. 109 DEMO Procedure (VSE) Installation (S) ......................................... 254 Usage (U) ................................................... 16 DEQ Command (DEQUEUE) (S) ................ 64 DEQUEUE Command (S) ............................ 64 Page 476 DI Command (DISPLAY) (U) .................... 111 Dialog Within a Procedure (MAPF) (S).... 114 DID Command (DISPLAYD) (U).............. 116 DII Command (DISPLAYI) (S) .................. 305 DISABLE Command (S) ............................. 303 Disabling TYPE Check (S) .......................... 417 DISC Command (DISCARD) (U) .............. 110 DISCARD Command (U) ........................... 110 DISCONN Command (S) ........................... 304 Disk Current Space (SHOW AVAIL) (S) ...... 168 Integrity Provisions (S) .......................... 464 Space Compression (S)........................... 406 Space Estimates (S) ................................. 405 Space Fragmentation (S) ........................ 404 Space Usage (S) ....................................... 404 to Integrity Check (VERIFY) (S)............ 358 DISP Command (DISPLAY) (U)................ 111 DISP Session Update Control (MMPDSCTL) (S) ....... 194 DISPC Command (DISPLAYC) (U) .......... 113 DISPD Command (DISPLAYD) (U) ......... 116 DISPF Command (DISPLAYF) (S) .............. 65 DISPI Command (DISPLAYI) (S).............. 305 Display (Screen) Layout (U).................................................. 15 to Change Mode (SCREEN) (U) ........... 275 Display Attributes of JES Job (INQUIREP) (U).................... 168 of JES Job (X LCA Command) (U)........ 341 of Member (INQUIRE) (U).................... 166 of User (INQUIREU) (S) ........................ 314 DISPLAY Command (U) ............................ 111 Display Information About Commands (HELP) (U)............................................... 159 Display Line on Consol(CONSOLEI) (U) .. 91 Display Lines Containing Pattrn (QUALIFY) (U) ....................................... 251 Display Lines Interactive (MAPF) (S)....... 114 Display List of BIM-EDIT Routines(LIBRARYR) (S) 319 of BIM-EDIT Tasks (LIBRARYT) (S) .... 322 of ICCF Members (LIBRARYI) (S)........ 317 of JES Jobs/Data Set(LIBRARYP) (U) .. 190 of Libraries (LIBRARYL) (U)................. 186 of Logical Backup (LIBRARYG) (S)...... 315 of Mail (LIBRARYQ) (U)........................ 192 of Mail User Proxies(LIBRARYX) (S)... 324 of Members (LIBRARY) (U) .................. 177 BIM-EDIT System Reference Manual of PDS Members (LIBRARYD) (U) ................................ 184 of POWER Job Entries(LIBRARYP) (U)188 of Security Entries (LIBRARYS) (S)...... 320 of Sublibrary Members (LIBRARYD) (U) ................................ 182 of temporary passwords (LIBRARYN) (S)................................. 318 of Users (LIBRARYU) (U) ..................... 194 Display Memory (CORE) (S) ..................... 294 Display Status of BIM-EDIT (LIBRARYT) (S)............... 322 of BIM-EDIT (SHOW) (S) ...................... 168 of System (DA) (U)................................... 97 Display Text of Audit Trail (SCREEN AUDIT) (U) .. 275 of ICCF Mem (DISPLAYI) (S) ............... 305 of ICCF Member (L LCA Command) (U)..................... 331 (T LCA Command) (U)..................... 338 of ICCF Member (LISTI) (S) .................. 328 of JES Job/Data Sets (L LCA) (U)......... 331 of JES Jobs/Data Sets (LISTP) (U) ........ 203 of Lines (DISPLAYF) (S).......................... 65 of Mail (L LCA Command) (U) ............ 331 of Mail (OPEN) (U) ................................ 231 of Mbrs Containing Pttrn(SCAN) (U).. 271 of Member (DISPLAY) (U).................... 111 of Member (L LCA Command) (U) ..... 331 of Member (LIST) (U) ............................ 196 of Member (T LCA Command) (U) ..... 338 of PDS Member (DISPLAYD) (U) ................................ 118 (L LCA Command) (U)..................... 331 (LISTD) (U) ......................................... 199 (T LCA Command) (U)..................... 338 of POWER Job Entry (L LCA) (U)........ 331 of POWER Job Entry (LISTP) (U)......... 201 of Sublibrary Mem (DISPLAYD) (U)... 116 of Sublibrary Member (L LCA) (U) ..... 331 of Sublibrary Member (LISTD) (U) ...... 197 of Sublibrary Member (T LCA) (U) ..... 338 Display Variable Values (SHOW) (S) ....... 168 Display VSE Console Messages (DISPLAYC) (U).............................................................. 113 DISPLAYC Command (U) ......................... 113 DISPLAYD Command (MVS) (U) ................................................ 118 (VSE) (U).................................................. 116 Index DISPLAYF Command Reference (S).............................................. 65 used with REFRESH (S)........................... 36 DISPLAYI Command (VSE) (S)................................................... 305 DISP-type Sessions Overview (U)............... 27 DIV Command (DIVIDE) (S) ....................... 66 DIVI Command (DIVIDE) (S)...................... 66 DIVIDE Command (S).................................. 66 DO Command (NEXT) (U) ........................ 226 Doubled Quote in Variable Value (PPDLITDL) (S) ....... 206 DOWN Command (NEXT) (U) ................. 226 DQ Command (LIBRARYP) (U)................ 188 DTSFILE File (VSE) (S) ............................... 366 DUP Command (U) .................................... 122 Duplicate ............................................ See Copy E LCA Command (U) ................................. 325 ED Command (EDIT) (U)........................... 123 EDD Command (EDITD) (U) .................... 125 EDIT Command (U).................................... 123 EDITD Command (MVS) (U)................................................. 126 (VSE) (U).................................................. 125 Editing Hexadecimal (U)..................................... 365 Members Overview (U)........................................ 32 Tutorial (U) ............................................. 5 PDS Members Overview (U)........................................ 32 Sublibrary Members Overview (U)........................................ 32 EDIT-type Sessions Overview (U) .............. 27 EE LCA Command (U)............................... 325 EJECT Command (S)..................................... 67 ELSE Command (S)....................................... 68 ENABLE Command (S) .............................. 306 End ........................................................ See Stop END Command (U) .................................... 127 ENDBLOCK Command (S).......................... 69 ENDIF Command (S).................................... 70 ENQ Command (ENQUEUE) (S)................ 71 ENQUEUE Command (S) ............................ 71 Entering BIM-EDIT (U) ................................ 14 Entering Commands Rules for (U) .............................................. 18 Equal Sign Command Overview (U) ............................................ 22 Page 477 Reference (U)........................................... 315 Equal Sign in a Command Operand (U).... 19 EX Command (EXECUTE) (U) .................. 128 EXAM Command (EXAMINE) (S) ............. 72 EXAMINE Command Overview (S) ............................................. 31 Reference (S).............................................. 72 Exchange Position Markers (SWAP) (U) . 308 Exclamation Mark in MAPF Command (S) ......................... 114 EXEC Command (EXECUTE) (U)............. 128 EXECUTE Command (U)........................... 128 EXIT Command (S) ....................................... 75 Exit Module see ........................................... 414 Exiting BIM-EDIT (U) ................................... 14 Expiry value Logon (MMPLGEXP) (S) ....................... 195 Explain Support (MESSAGE) (U) ............. 222 Extended naming (MMPEXTNM) (S) ...... 195 Extended Search Pattern Character Definitions (U) ...................... 351 Combination Searches (U)..................... 353 Finding First Non-Blank (U) ................. 355 Overview (U) .......................................... 351 Setting Position (U) ................................ 354 to Change (CHANGE) (U) ...................... 80 to Display List (QUALIFY) (U)............. 251 to Display Mbrs having (SCAN) (U) ... 271 to Search for (FIND) (U) ........................ 140 to Search for (FINDUP) (U)................... 142 to Search for (LOCATE) (U).................. 206 to Search for (LOCATEU) (U)............... 209 to Search for (NFIND) (U) ..................... 227 to Search for (NFINDUP) (U) ............... 229 to Search for (SEARCH) (U).................. 283 to Search for Words (U) ......................... 352 to Use with CHANGE (U)..................... 354 to Use with CURSOR (U) ...................... 354 Wildcard Searches (U) ........................... 353 External Security (MMPSECUR) (S) ......... 198 External Security (S).................................... 401 F Command (FIND) (U) ............................. 140 FALT Command (FALTER) (U) ................ 130 FALTER Command (U).............................. 130 FALTERL Command (U) ........................... 132 FALTERP Command (MVS) (U) ................................................ 135 (VSE) (U).................................................. 133 FALTERS Command (S)............................. 307 Page 478 FALTERU Command (S)............................ 308 FALTL Command (FALTERL) (U) ........... 132 FALTP Command (FALTERP) (U) ........... 133 FALTS Command (FALTERS) (S) ............. 307 FALTU Command (FALTERU) (S) ........... 308 FDEF Command (FDEFINE) (U)............... 137 FDEFINE Command (U) ............................ 137 FDEFINEL Command (U).......................... 139 FDEFINES Command (S) ........................... 309 FDEFINEU Command (S) .......................... 311 FDEFL Command (FDEFINEL) (U).......... 139 FDEFS Command (FDEFINES) (S) ........... 309 FDEFU Command (FDEFINEU) (S) ......... 311 FILE Command (SAVE) (U)....................... 270 Files for BIM-EDIT (VSE) (S)...................... 365 FIND Command (U) ................................... 140 FINDU Command (FINDUP) (U) ............. 142 FINDUP Command (U).............................. 142 FO Command (FORWARD) (U) ............... 146 FOR Command (FORWARD) (U)............. 146 Forced Logon (LOGON) (S)....................... 107 FORM Command (FORMAT) (U) ............ 144 FORMAT Command (U)............................ 144 FORWARD Command (U) ........................ 146 FSESSION Command (U) .......................... 147 FU Command (FINDUP) (U)..................... 142 FUP Command (FINDUP) (U) .................. 142 G LCA Command (U)................................. 326 GET Command (U) ..................................... 148 GETD Command (MVS) (U)................................................. 150 (VSE) (U) .................................................. 149 GETI Command (VSE) (S).......................... 313 GETP Command (MVS) (U)................................................. 154 (VSE) (U) .................................................. 151 GETQ Command (U) .................................. 157 GOSUB Command (S) .................................. 76 GOTO Command Discussion (S) ............................................ 16 Loop Counter (PPDLPCTR) (S) ............ 206 Loop Limit (PPDLPLMT) (S) ................ 206 Reference (S).............................................. 77 Greater Than Sign (>) LCA Command (U) ................................ 346 Pattern Character (U) ............................. 351 Group Overview (U)............................................. 28 GROUP Command BIM-EDIT System Reference Manual Reference (U) .......................................... 158 H LCA Command (U) ................................ 327 HEADF Command Overview (S) ............................................. 36 Reference (S) ............................................. 78 HELP Command Customization (S)................................... 418 Overview (U) ............................................ 17 Reference (U) .......................................... 159 Hexadecimal Current Cmnd Esc Char(SIBHEXC) (S)216 Current Display Status(SSDHEX) (S) .. 226 Display and Edit Discussion (U) .......... 364 Substitution during SUBMIT (U) ......... 366 Text-Follow Ctrl Flag (PPDHEX) (S) ... 205 Text-Follow Esc Char (PPDHEXC) (S) 205 to Display (SCREEN HEX) (U) ............. 275 to Set Escape Char (SET) (U)................. 289 HEXIF Command (S).................................... 79 HEXR Command (HEXREQ) (S)................. 81 HEXREQ Command (S) ............................... 81 HH LCA Command (U)............................. 327 HOLD Command (MVS) (U) ................................................ 162 (VSE) (U).................................................. 160 Home to Set Library (ATTACH) (U) ................. 62 to Set PDS (ATTACHD) (U).................... 64 to Set Sublibrary (ATTACHD) (U)......... 63 I LCA Command (U) .................................. 328 IBM Corrective Service (VSE) (S) .............. 257 ICCF Access Customization (S) ...................... 415 Control Flag (MMPICCTL) (S) ............. 195 Copying Members from Discuss (S)........................................... 412 Member Copying from (S) ............................... 412 to Copy Library from (LOADIL) (S) .... 326 to Copy Member fm Tape (LOADT) (S)103 to Copy Member for (REPRO) (S) ........ 143 to Copy Member from (LOADI) (S) ........................................ 325 to Display Mbr List (LIBRARYI) (S) .... 317 to Display Text (DISPLAYI) (S) ............ 305 to Display Text (L LCA Cmnd) (U)...... 331 to Display Text (LISTI) (S)..................... 328 to Display Text (T LCA Cmnd) (U)...... 338 to Get Text from (GETI) (S) ................... 313 Index to Punch Member for (PUNCH) (S)..... 131 IEBUPDTE Format to Copy Member to (REPRO) (S).......... 143 to Load from Tape (LOADT) (S) .......... 103 to Punch Member in (PUNCH) (S) ...... 131 IESMSGS Support (MESSAGE) (U) .......... 222 IF Command (S) ............................................ 83 IFD Command (S) ......................................... 85 IFTHEN Command (S) ................................. 87 INCL Command (INCLUDE) (S) ................ 89 INCLUDE Command (Advanced) (S) .......................................... 89 (Ordinary) (U) ......................................... 164 in Text-Follow Cmnds Overview (S)......................................... 34 in Text-Follow Cmnds Reference (S) ... 209 Text-Follow Ctrl Flag(PPDINCL) (S) ... 205 with Checked Out Members (U) .......... 373 Increment Variable (ADD) (S) ..................... 53 Initiate ...................................................See Start INQ Command (INQUIRE) (U) ................ 166 INQD Command (INQUIRED) (U) .......... 167 INQP Command (INQUIREP) (U)............ 168 INQU Command (INQUIREU) (S) ........... 314 Inquire Sublibrary Member (INQUIRED) (U).. 167 INQUIRE Command (U)............................ 166 INQUIRED Command (VSE) (U).............. 167 INQUIREP Command (MVS) (U) ............. 168 INQUIREU Command (S).......................... 314 INS Command (INSERTI) (U) ................... 170 INSERT Command (INSERTI) (U)............ 170 Insert Line from $STACK (B LCA Command) (U) 322 from $STACK (I LCA Command) (U) . 328 from JES Job/Data Sets (GETP) (U) ..... 154 from Mail (GETQ) (U)............................ 157 from PDS Member (GETD) (U) ............ 150 from POWER Job Entry (GETP) (U) .... 151 from Sublibrary Member (GETD) (U) . 149 to $LOG (LOGF) (S) ............................... 106 to $LOG (LOGI) (U) ............................... 212 to $STACK (STACKF) (S) ...................... 173 to $STACK (STACKI) (U)...................... 301 to Audit (AUDITF) (S) ............................. 54 to Audit (AUDITI) (U) ............................. 68 to Console (CONSOLEF) (S) ................... 60 to Console (CONSOLEI) (U) ................... 91 to Punch Output (PUNCHF) (S)........... 134 Page 479 to Punch Output (PUNCHI) (S) ........... 135 to Session (A LCA Command) (U)....... 321 to Session (GET) (U) ............................... 148 to Session (INSERTF) (S) ......................... 94 to Session (INSERTI) (U) ....................... 170 to Tape (REPROF) (S)............................. 147 to Tape (REPROI) (S) ............................. 149 to Various Destinatns(OUTPUTF) (S) . 119 INSERTF Command in Application Interface (S) ................... 247 Reference (S).............................................. 94 INSERTI Command (U) ............................. 170 INSF Command (INSERTF) (S) ................... 94 INSI Command (INSERTI) (U).................. 170 INSTALL Command (S)............................. 253 INSTALL Procedure (VSE) (S) .................. 257 Installable Features (S)................................ 252 Installation First Time on MVS (S)............................ 371 First Time on VSE (S) ............................. 361 Upgrade (S) ............................................. 360 Integrity Check BIM-EDIT(VERIFY) (S) .. 358 Integrity Provisions in BIM-EDIT (S) ....... 464 Interactive Demo .............................See DEMO Interactive Display (MAPF) (S) ................. 114 Interface to BIM-EDITSee Application Interface Inter-User Mail .................................... See Mail INTERVAL Command Reference (S).............................................. 95 J LCA Command (U) .................................. 329 JCL Example for Backup and Restore (S).................... 390 for Batch Utility (S)................................. 240 to Start BIM-EDIT (S) ............................. 387 JCT Variables Reference (MVS) (S) ............................... 189 to Set - JES Job/DSets (READP) (S)...... 141 JES customization (S) .................................... 377 release dependences (S)......................... 377 to Copy Member to (SUBMIT) (U)....... 305 to Copy PDS Mbr to (SUBMITD) (U) .. 307 to Issue Commands to (CONTROLP) (S) ............................... 293 JES Job or Data Sets Access Control Custom(BIXPWQA) (S)423 Access Flag (MMPPWCTL) (S)............. 197 Access Overview (U)................................ 35 Attributes (JCT Variables) (S) ............... 189 Page 480 Attributes (JOE Variables) (S) ............... 192 Attributes (JQE Variables) (S) ............... 193 Attributes (PDB Variables) (S) .............. 202 Last Referenced in Command (U) .................................. 21 List of Commands to Access (U) ............ 51 Security Overview (U) ............................. 39 to Change Attr (ALTERP) (U) ....................................... 60 (FALTERP) (U) ................................... 135 (Q LCA Command) (U) .................... 335 to Delete (DISCARD) (U)....................... 110 to Delete (P LCA Command) (U) ......... 334 to Delete (PURGEP) (U)......................... 248 to Display Attr (INQUIREP) (U) .......... 168 to Display Attr (X LCA Command) (U)341 to Display List (LIBRARYP) (U) ........... 190 to Display Text (L LCA Cmnd) (U)...... 331 to Display Text (LISTP) (U) ................... 203 to Insert Lines from (GETP) (U)............ 154 to Set Vars to Attr (READP) (S) ............ 141 to Stop (CANCEL) (U) ............................. 75 to Suspend (H LCA Command) (U) .... 327 to Suspend (HOLD) (U)......................... 162 to Undo Hold (R LCA Command) (U) 336 to Undo Hold (RELEASE) (U) .............. 259 JJ LCA Command (U) ................................. 329 Job Entry .......................See POWER Job Entry Job Notification Alter User (NTFY) (S)............................. 270 Define User (NTFY) (S) .......................... 299 Introduction (U)........................................ 36 Jobcard NTFY (MMPNOTFY) (S)......... 196 SUBMIT (NTFY) (U)............................... 303 Submit control (SIBNTFY) (S) ............... 218 JOE Variables Reference (MVS) (S) ............................... 192 to Set - JES Job/DSets (READP) (S)...... 141 JQE Variables Reference (MVS) (S) ............................... 193 to Set - JES Job/DSets (READP) (S)...... 141 Jump from GOTO (LABEL) (S) ................... 97 Jump to LABEL (GOSUB) (S)....................... 76 Jump to LABEL (GOTO) (S)......................... 77 JUSTIFYL Command (U)............................ 171 JUSTIFYR Command (U) ........................... 172 JUSTL Command (JUSTIFYL) (U)............. 171 JUSTR Command (JUSTIFYR) (U) ............ 172 K LCA Command (U) ................................. 330 BIM-EDIT System Reference Manual KEEP Command (U)................................... 173 KEY Command (KEYS) (U) ....................... 174 KEYS Command (U)................................... 174 Keyword Operands Rules for Entry (U) ................................... 19 KK LCA Command (U).............................. 330 L Command (LOCATE) (U) ...................... 206 L LCA Command (U) ................................. 331 LA Command (LADD) (U) ........................ 176 LABEL Branch to (GOSUB) (S) ................... 76 LABEL Branch to (GOTO) (S)...................... 77 LABEL Command (S) ................................... 97 LADD Command (U) ................................. 176 Last Referenced Entities in Command (U) ........................ 21 Member (TXM Variables) (S) ................ 230 PDS Member (SIBLSPDS) (S)................ 217 Sublibrary Member (SIBLSPDS) (S)..... 217 LCA to Change Position(SCREEN LCA) (U)275 LCA Command A (U)......................................................... 321 B (U) ......................................................... 322 C,CC (U) .................................................. 323 D,DD (U).................................................. 324 E,EE (U) ................................................... 325 G (U)......................................................... 326 Greater Than Sign (>) (U)...................... 346 H,HH (U)................................................. 327 Help Online (U) ........................................ 17 I (U) .......................................................... 328 J,JJ (U)....................................................... 329 K,KK (U) .................................................. 330 L,LL (U) ................................................... 331 Left Parenthesis (U)................................ 348 Less Than Sign (<) (U) ........................... 345 M,MM (U) ............................................... 332 N,NN (U)................................................. 333 P,PP (U).................................................... 334 Plus Sign (+) (U) ..................................... 347 Q,QQ Command (U).............................. 335 Quote Mark (U) ...................................... 343 R,RR (U)................................................... 336 Right Parenthesis (U) ............................. 349 S,SS (U) .................................................... 337 Slash (/) (U) ............................................ 344 T,TT (U) ................................................... 338 U,UU (U) ................................................. 339 W,WW (U)............................................... 340 Index X,XX (U) ................................................... 341 Y (U) ......................................................... 342 LCA Commands Bracket (U)............................................... 319 Command Line Alternatives for (S)......... 5 Current Pos on Scrn (SSDLCA) (S) ...... 226 Default Pos on Scrn (SIBDFLCA) (S) ... 215 Discussion (U)......................................... 318 Double Letter (U).................................... 319 for Accessing $STACK (U) ...................... 31 for Editing Overview (U)........................................ 32 Multiple on a Screen (U)........................ 320 on LIBRARYx Sessions (U)...................... 30 Position on Screen (U).............................. 15 Repeat Count (U).................................... 319 Sequence of Processing (U) ................... 320 to Forget Bracket (RESET) (U) .............. 267 to Set Default Position (SET) (U) .......... 289 Tutorial (U).................................................. 5 LEAVE Command (S)................................... 98 Left Brace in MAPF Command (S) ......................... 114 Left Justify Line (JUSTIFYL) (U)........................................ 171 (Left Parenthesis LCA Command) (U) 348 Left Parenthesis LCA Command (U)................................ 348 to Indicate Trap Commands (S).............. 34 Left Shift Column (Less Than Sign LCA Command) (U).. 345 (SHIFT) (U).............................................. 292 Left Shift Display (VIEW) (U).................... 312 Length of Value- to Access(SETL) (S)....... 166 Less Than Sign (<) Command Overview (U)......................... 22 Command Reference (U) ....................... 317 LCA Command (U)................................ 345 Pattern Character (U) ............................. 351 LI Command (LIST) (U) ............................. 196 LIB Command (LIBRARY) (U) .................. 177 LIBD Command (LIBRARYD) (U)............ 182 LIBG Command (LIBRARYG) (S)............. 315 LIBI Command (LIBRARYI) (S) ................ 317 LIBL Command (LIBRARYL) (U) ............. 186 LIBN Command (LIBRARYN) (S) ............ 318 LIBP Command (LIBRARYP) (U) ............. 188 LIBQ Command (LIBRARYQ) (U)............ 192 LIBR Command (LIBRARYR) (S).............. 319 Page 481 Library Attributes (TXL Variables) (S) .............. 229 Contents after Install (S) ........................ 382 Current Attached (SIBLIB) (S) .............. 217 Discussion (U)........................................... 25 Home (SIBHMLB) (S)............................. 216 Integrity Provisions (S) .......................... 464 List of Commands which Access (U)..... 49 of Current Procedure(PPDPRLIB) (S).. 207 Parent (S) ................................................. 398 Rules for Referencing (U) ........................ 26 Security ......................................See Security Significance of Period in Name (S)....... 399 to Change Attributes (ALTERL) (U) ....................................... 56 (FALTERL) (U)................................... 132 (Q LCA) (U) ........................................ 335 to Copy Mbrs from ICCF(LOADIL) (S)326 to Copy Mbrs to Tape (REPROL) (S) ... 151 to Create (DEFINEL) (U) ....................... 108 to Create (FDEFINEL) (U) ..................... 139 to Delete (PURGEL) (U)......................... 245 to Display List (LIBRARYL) (U) ........... 186 to Display Mbrs w/ Ptrn (SCAN) (U) . 271 to Integrity Check (VERIFY) (S) ........... 358 to Move Member (MOVE) (U).............. 224 to Move Member (RENAME) (U) ........ 261 to Punch Members (PUNCHL) (S)....... 136 to Reorganize (REORG) (S) ................... 344 to Restore fm Bkup (RESTOREL) (S) ... 350 to Set Default (ATTACH) (U) ................. 62 to Set Default (Y LCA Command) (U). 342 to Set Home (ATTACH) (U) ................... 62 to Set TXL Vars for (BROWSEL) (S)....... 59 to Set TXL Vars for (READL) (S) .......... 138 LIBRARY Command (U)............................ 177 LIBRARYD Command (MVS) (U) ................................................ 184 (VSE) (U).................................................. 182 LIBRARYG Command (MVS) (S) ................................................. 316 (VSE) (S)................................................... 315 LIBRARYI Command (VSE) (S) ................ 317 LIBRARYL Command (U) ......................... 186 LIBRARYN Command (S) ......................... 318 LIBRARYP Command (MVS) (U) ................................................ 190 (VSE) (U).................................................. 188 LIBRARYQ Command (U)......................... 192 Page 482 LIBRARYR Command (S) .......................... 319 LIBRARYS Command (S)........................... 320 LIBRARYT Command (S) .......................... 322 LIBRARYU Command (U)......................... 194 LIBRARYX Command (S) .......................... 324 LIBRARYx Sessions Use of LCA (U).......................................... 30 LIBS Command (LIBRARYS) (S)............... 320 LIBT Command (LIBRARYT) (S) .............. 322 LIBU Command (LIBRARYU) (U)............ 194 LIBX Command (LIBRARYX) (S).............. 324 LID Command (LISTD) (U) ....................... 197 LII Command (LISTI) (S)............................ 328 Line Current Number (SIBLNUM) (S) ......... 217 Longer than 80 Char (S) ......................... 242 Stamp of Current (XTRSTAMP) (S) ..... 238 Text of Current (XTRSLINE) (S) ........... 238 to Break Apart (SEPARATE) (U) .......... 285 to Break Apart (SPLIT) (U).................... 297 to Center (CENTER) (U) .......................... 79 to Center (Plus Sign LCA Cmnd) (U) .. 347 to Combine (FORMAT) (U)................... 144 to Copy (C LCA Command) (U)........... 323 to Copy (K LCA Command) (U) .......... 330 to Copy from ICCF (GETI) (S) .............. 313 to Create (A LCA Command) (U) ........ 321 to Create (LADD) (U)............................. 176 to Delete (D LCA Command) (U)......... 324 to Delete (DELETE) (U).......................... 109 to Duplicate (DUP) (U) .......................... 122 to Duplicate (Quote Mark LCA) (U) .... 343 to Insert (INSERTI) (U) .......................... 170 to Insert from $STACK (B LCA) (U) .... 322 to Insert from $STACK (I LCA) (U) ..... 328 to Insert to $LOG (LOGF) (S) ................ 106 to Insert to $LOG (LOGI) (U) ................ 212 to Insert to $STACK (STACKF) (S)....... 173 to Insert to $STACK (STACKI) (U) ...... 301 to Insert to Audit (AUDITF) (S).............. 54 to Insert to Audit (AUDITI) (U).............. 68 to Insert to Console(CONSOLEF) (S)..... 60 to Insert to Console(CONSOLEI) (U)..... 91 to Insert to Member (INSERTF) (S) ........ 94 to Insert to Tape (REPROF) (S) ............. 147 to Insert to Tape (REPROI) (S) .............. 149 to Insert to Var Dest(OUTPUTF) (S) .... 119 to Left Just (JUSTIFYL) (U).................... 171 to Left Just (Left Paren LCA) (U).......... 348 BIM-EDIT System Reference Manual to Make Lower Case (LOWERCAS) (U)214 to Make Lower Case (W LCA) (U)....... 340 to Make Upper Case (U LCA) (U)........ 339 to Make Upper Case (UPPERCAS) (U) 311 to Merge (G LCA Command) (U) ........ 326 to Merge (J LCA Command) (U) .......... 329 to Merge (MERGE) (U) .......................... 220 to Merge (OVERLAY) (U) ..................... 232 to Move (M LCA Command) (U)......... 332 to Move (N LCA Command) (U) ......... 333 to Number (RESEQ) (U) ........................ 265 to Print (PRINTF) (S).............................. 129 to Punch (PUNCHF) (S) ........................ 134 to Punch (PUNCHI) (S) ......................... 135 to Right Just (JUSTIFYR) (U)................. 172 to Right Just(Right Paren LCA) (U) ..... 349 to Send to Appl Intfc (SENDF) (S) ....... 156 to Send to Appl Intfc (SENDI) (S) ........ 157 to Send to Appl Intfc (SENDN) (S) ...... 159 to Shift (SHIFT) (U) ................................ 292 to Shift Left (Less Than Sign) (U) ......... 345 to Shift Right(Grtr Than Sign) (U)........ 346 to Sort (SORT) (U) .................................. 295 to Test for String (EXAMINE) (S)........... 72 to Transfer to Batch (SUBMITF) (S) ..... 174 Line Control Area .............................. See LCA List....................................................See Display LIST Command (U) .................................... 196 LISTD Command (MVS) (U) ................................................ 199 (VSE) (U).................................................. 197 LISTD-type Sessions Overview (U) ............ 27 LISTI Command (VSE) (S)................................................... 328 LISTP Command (MVS) (U) ................................................ 203 (VSE) (U).................................................. 201 LISTP-type Sessions Overview (U)............. 27 LIST-type Sessions Overview (U) ............... 27 LL LCA Command (U)............................... 331 LOADD Command (MVS) (S) ................................................. 100 (VSE) (S)..................................................... 99 LOADDL Command (MVS) (S) ................................................. 102 (VSE) (S)................................................... 101 LOADI Command (VSE) (S)...................... 325 LOADIL Command (VSE) (S) ................... 326 LOADT Command Index Reference (S)............................................ 103 Steps to Copy Members (S) ................... 412 LOC Command (LOCATE) (U)................. 206 LOCATE Command (U)............................. 206 LOCATEU Command (U).......................... 209 LOCU Command (LOCATEU) (U) .......... 209 LOCUP Command (LOCATEU) (U) ........ 209 Log Area ............................................ See $LOG LOGF Command (S) ................................... 106 Logging On and Logging Off (U) ............... 14 LOGI Command (U) ................................... 212 Logical Backup (BACKUPG) (S)....................................... 277 (BACKUPS) (S) ....................................... 283 Full - JCL Example (S)............................ 391 Selective - JCL Example (S) ................... 394 to Display List (LIBRARYG) (S) ........... 315 to Print Members (PRINTG) (S) ........... 331 vs Physical Backup (S) ........................... 390 Logical Restore (BIMREST) (S) ......................................... 390 (RESTORE) (S) ........................................ 345 (RESTOREL) (S) ...................................... 350 Full - JCL Example (S)............................ 392 Partial - JCL Example (S) ....................... 393 Logical Screen Current Number of (SIBLSCDP) (S) .... 217 Current Primary Scrn(SIBSCRPM) (S). 220 Position (SIBSCRBx) (S) ......................... 220 Size (SIBSCRDx) (S)................................ 220 Logical Screens Discussion (U)......................................... 360 Logical Tabbing Discussion (U)......................................... 362 to Set Character (SET) (U) ..................... 289 LOGMODE Batch Utility PARM=LOGMOD= (S)... 241 in Application Interface (S) ................... 246 Installation (MVS) (S)............................. 374 Installation (VSE) (S) .............................. 367 LOGOF Command (LOGOFF) (U) ........... 213 LOGOFF Command (U)............................. 213 Logon Control Customization (S)..................... 415 Control Flag (MMPLGTYP) (S) ............ 195 Customization Module (BIXLOGN) (S)421 Expiry value (MMPLGEXP) (S) ............ 195 First Time (S) ........................................... 380 Forcing Security (S) ................................ 420 Page 483 Overriding (S) ......................................... 420 Procedure to be Executed (S) ................ 421 Screen Customization (S) ...................... 421 LOGON Command (S) ............................... 107 LOGON Procedure (S)................................ 421 LOOP Command (S)................................... 109 Loop Limit (PPDLPLMT) (S) ..................... 206 LOW Command (LOWERCAS) (U) ......... 214 Lower Case Translate Line (LOWERCAS) (U).......................... 214 Line (W LCA Command) (U) ............... 340 Variable (VLOWERCA) (S) ................... 181 LOWER Command (LOWERCAS) (U) .... 214 LOWERCAS Command (U) ...................... 214 LP Command (LISTP) (U).......................... 201 LU 6.2 Batch Utility (S)....................................... 241 Conversation Depth (MMPVTCVD) (S) ............................. 200 Install (MVS) (S)...................................... 374 Program Access to BIM-EDIT (S) ......... 244 to close conversation (LUCL) (S).......... 110 to open conversation (LUOP) (S) ......... 111 to receive conv. data (LURC) (S) .......... 112 to send conv. data (LURSD (S) ............. 113 use in Procedures (S)................................ 42 LU 6.2 Install (VSE) (S) ............................... 367 LU Command (LOCATEU) (U) ................ 209 LUCL Command (S) ................................... 110 LUOP Command (S) ................................... 111 LUP Command (LOCATEU) (U) .............. 209 LURC Command (S) ................................... 112 LUSD Command (S) ................................... 113 M LCA Command (U)................................ 332 Macros ...................................... See Procedures Mail Current User for (SIBMLUSR) (S) ........ 218 List of Commands to Access (U) ............ 51 Overview (U) ............................................ 34 Security Overview (U) ............................. 39 to Create Proxy User (DEFINEX) (S) ... 302 to Delete (DISCARD) (U) ...................... 110 to Delete (P LCA Command) (U) ......... 334 to Delete (PURGEQ) (U)........................ 250 to Delete Proxy User (PURGEX) (S)..... 337 to Display List (LIBRARYQ) (U) .......... 192 to Insert Lines from (GETQ) (U)........... 157 to Receive (L LCA Command) (U)....... 331 to Receive (OPEN) (U) ........................... 231 Page 484 to Send (MAIL) (U)................................. 215 to Send (MAILI) (U) ............................... 217 to Send Session (MAILSESS) (U) .......... 219 to set AUTOMAIL feature (S) ....... 270, 300 to Set Proxy User for(ATTACHX) (U) ... 65 Mail Area ......................................... See $MAIL MAIL Command (U)................................... 215 MAILI Command (U) ................................. 217 MAILSESS Command (U).......................... 219 MAIL-type Sessions Overview (U) ............. 28 MAINT (SSERV) tape to Load Members from (LOADT) (S)... 103 Make.................................................. See Create MAPF Command Beep Flag (PPDALARM) (S) ................. 204 Customize Attr Char (BIFTBAT) (S) .... 446 Data Changed Flag (PPDMSGF) (S)..... 206 Field for Cursor (PPDCSFLD) (S)......... 205 Key Used to Transmit (PPDKEY) (S) ... 206 Overview (S).............................................. 22 Reference (S)............................................ 114 Screen Size Control (PPDSCRSZ) (S) ... 207 Master Member in Checkout to Copy from Slave (CHECKIN) (U)...... 84 to Copy to Slave (CHECKOUT) (U)....... 85 Member Attributes (TXM Variables) (S) ............. 230 Auditing Discussion (U) ........................ 368 Change Controls Overview (U)........................................ 40 Checkout/Checkin Discussion (U) ...... 372 Copying from ICCF (S) .......................... 412 Creating Tutorial (U) ............................................. 4 Current Edit User (XTREUSER) (S)...... 238 Current List User (XTRLUSER) (S) ...... 238 Discussion (U) ........................................... 25 Editing Tutorial (U) ............................................. 5 Editing Overview (U)............................... 32 Last Referenced in Command (U) .................................. 21 List of Attributes (U) ................................ 25 List of Commands to Access (U) ............ 48 of Curr Procedure (PPDPRMEM) (S)... 207 Purge Control (S) .................................... 402 Rules for Referencing (U) ........................ 26 Security ..................................... See Security Size Limit (SIBSZLMT) (S)..................... 222 BIM-EDIT System Reference Manual Stamping Discussion (U)....................... 367 to Access from User Program (S) ......... 244 to Change Attr (ALTER) (U) ......................................... 53 (FALTER) (U) ..................................... 130 (Q LCA Command) (U) .................... 335 to Change Name (MOVE) (U) .............. 224 to Change Name (RENAME) (U)......... 261 to Change Position .............. See Reposition to Change Text (E LCA Command) (U)325 to Change Text (EDIT) (U) .................... 123 to Compile (COMPILE) (U) .................... 90 to Copy (COPY) (U) ................................. 92 to Copy from ICCF (LOADI) (S) .......... 325 to Copy Mastr->Slave(CHECKOUT) (U)85 to Copy Slave->Master(CHECKIN) (U) 84 to Copy Slave->User (CHECKASN) (U) 83 to Copy to PDS (CATAL) (U) ................. 78 to Copy to Sublibrary (CATAL) (U) ...... 76 to Copy to Tape (REPRO) (S)................ 143 to Copy to Tape (REPROL) (S) ............. 151 to Create (DEFINE) (U) ........................... 99 to Create (FDEFINE) (U) ....................... 137 to Create from PDS (LOADD) (S) ........ 100 to Create from PDS (LOADDL) (S)...... 102 to Create from Sublib (LOADD) (S)....... 99 to Create from Sublib (LOADDL) (S) .. 101 to Create from Tape (LOADT) (S)........ 103 to Delete (P LCA Command) (U) ......... 334 to Delete (PURGE) (U)........................... 241 to Display Attr (INQUIRE) (U) ............ 166 to Display List (LIBRARY) (U) ............. 177 to Display Text (DISPLAY) (U) ............ 111 to Display Text (L LCA Cmnd) (U)...... 331 to Display Text (LIST) (U) ..................... 196 to Display Text (T LCA Cmnd) (U)...... 338 to Find with Pattern (SCAN) (U) ......... 271 to Include in SUBMIT (INCLUDE) (U) 164 to Punch (PUNCH) (S)........................... 131 to Restore fm Backup (RESTORE) (S).. 345 to Set TXM Vars for (BROWSE) (S)........ 58 to Set TXM Vars for (READ) (S) ........... 137 to Start Batch Proces(PROCESS) (U).... 238 to Start Batch Process (S LCA) (U) ....... 337 to Start Batch Process(SUBMIT) (U) .... 303 to Transfer to Appl Infc(SEND) (S)...... 154 to Undo Changes (AUDITRL) (U) ......... 69 to Undo Purge (S)................................... 402 Member Security (U) .................................... 38 Index Members to Compare (COMPARE) (U) ................. 88 Memory Control Variables (S) .............................. 408 Current Status (MMP Variables) (S) .... 194 to Display (CORE) (S) ............................ 294 Usage Discussion (S) .............................. 407 Usage Estimates (MVS) (S).................... 410 Usage Estimates (VSE) (S) ..................... 409 Usage for Control Blocks (S) ................. 460 MERGE Command (U)............................... 220 Merge Line (G LCA Command) (U) ......................... 326 (J LCA Command) (U) ........................... 329 (MERGE) (U) ........................................... 220 (OVERLAY) (U) ...................................... 232 MESSAGE Command (U) .......................... 222 Message Description Code BIMBTAM02 (S) ........................... 458 Code BIMBTAM03 (S) ........................... 458 Code BIMBTAM04 (S) ........................... 458 Code BIMBTAM24 (S) ........................... 458 Code BIMBTAM25 (S) ........................... 458 Code BIMBTAM26 (S) ........................... 458 Code BIMBTAM99 (S) ........................... 458 Code BIMBTCAA (S) ............................. 458 Code BIMBTCAC (S) ............................. 458 Code BIMBTCAD (S) ............................. 458 Code BIMBTCAE (S).............................. 458 Code BIMBTCAF (S) .............................. 458 Code BIMEDITA (S)............................... 388 Code BIRDPMLA (S) ............................. 411 Code BIRDPMLB (S) .............................. 411 Code BIRLROPA (S)............................... 384 Code BIRRSLGA (S) ............................... 392 Code BIRRSMLA (S) .............................. 392 Code BIRRSPHA (S)............................... 395 Message Line Position on Screen (U).............................. 15 Messages Customization (S) ................................... 419 Returned from Command (SIBMSG) (S)....................................... 218 to Refresh Table (NEWCOPY) (S) ........ 329 MESSAGES Member (S)............................. 419 MM LCA Command (U) ............................ 332 MMP Variables (S) ...................................... 194 MOD Command (ALTER) (U) .................... 53 Modify ............................................ See Change Page 485 MODIFY Command (ALTER) (U) .............. 53 Modifying System Control Variables (S) . 415 MODIFYL Command (ALTERL) (U) ......... 56 MODIFYP Command (ALTERP) (U) ......... 57 MODIFYS Command (ALTERS) (S) ......... 268 MODIFYU Command (ALTERU) (S) ....... 269 MODL Command (ALTERL) (U) ............... 56 MODP Command (ALTERP) (U)................ 57 MODS Command (ALTERS) (S) ............... 268 MODU Command (ALTERU) (S) ............. 269 Modularity in Procedures (S) ...................... 47 Module Calling Conventions (S)............... 459 Move ................................................... See Copy Move Column (PROPAGAT) (U) ................................... 240 (SHIFT) (U).............................................. 292 MOVE Command (U)................................. 224 Move Lines (M LCA Command) (U) ........................ 332 (N LCA Command) (U) ......................... 333 using LCA Discussion (U) .................................... 319 Move Member Slave to Other User (CHECKASN) (U) . 83 to Another Library (MOVE) (U)........... 224 to Another Library (RENAME) (U) ..... 261 Move Position in Session......... See Reposition MSG Command(MESSAGE) (U) .............. 222 MSHP - Using BIM-EDIT With (S)............ 257 MULT Command (MULTIPLY) (S) .......... 118 Multiple Commands Rules for Entry (U) .............................. 22 Techniques for Use (U) ..................... 358 LCA Commands on a Screen (U) ......... 320 Members on a Screen (U) ...................... 360 Operations on a Screen (U) ................... 356 Sessions Overview (U)........................................ 28 Windows on a Screen (U)...................... 360 Multiple Extent BIFLIB in MVS (S)........... 374 MULTIPLY Command (S) ......................... 118 MVS................................................. See also JES MVS First Time Installation (S) ................. 371 MVS PDS .............................................. See PDS N Command (NEXT) (U) ........................... 226 N LCA Command (U) ................................ 333 Name=Value Operands Rules for Entry (U) ................................... 19 Page 486 Names of Commands Changing(BIFXCCM) (S) .................. 435 Rules for Entry (U)............................... 18 of Members and Libraries (U)................. 26 of Operands (U) ........................................ 19 New Page in Print (EJECT) (S)..................... 67 NEWC Command (NEWCOPY) (S) ......... 329 NEWCOPY Command (S) ......................... 329 NEXT Command (U) .................................. 226 NF Command (NFIND) (U)....................... 227 NFIND Command (U) ................................ 227 NFINDU Command (NFINDU) (U)......... 229 NFINDUP Command (U) .......................... 229 NFU Command (NFINDUP) (U) .............. 229 NFUP Command (NFINDUP) (U)............ 229 NN LCA Command (U) ............................. 333 NOT (~) Pattern Character (U) .................. 353 Not Sign at Start of Line (S) ................................... 210 in MAPF Command (S) ......................... 114 Number Lines (RESEQ) (U) ....................... 265 O Command (OVERLAY) (U) ................... 232 Online Help Discussion (U) ......................... 17 OP Command (OPEN) (U)......................... 231 OPEN Command (U).................................. 231 Open Session Overview (U)............................................. 27 Operands On/Off values (U) .................................... 20 Operands - Rules for Entry (U).................... 18 Operating System Release(MMPOPREL) (S) ...................... 196 Type (MMPOPSYS) (S) .......................... 196 OPS Variables (S)......................................... 201 OR (|) Pattern Character (U) ..................... 353 Order Lines (SORT) (U).............................. 295 OUTF Command (OUTPUTF) (S)............. 119 OUTPUTF Command Destination (SIBOUTPT) (S).................. 218 Reference (S)............................................ 119 OVERLAY Command (U) .......................... 232 Overview of BIM-EDIT Functions (U).......... 1 OVLY Command (OVERLAY) (U) ........... 232 P Command (POSITION) (U) .................... 234 P LCA Command (U) ................................. 334 Page Current Length (PPDPGSIZ) (S)........... 207 Current Number (SIBPAGE) (S) ........... 218 BIM-EDIT System Reference Manual Default Length (MMPPGSIZ) (S) ......... 197 Length Customization (S) ..................... 415 to Eject (EJECT) (S)................................... 67 to Set Heading for (HEADF) (S) ............. 78 Pan Display............................... See Reposition Paragraph to Break Apart (SEPARATE) (U).......... 285 to Put Together (FORMAT) (U) ........... 144 Parent Library Discussion (S).......................................... 399 PARM= JCL Operand for Batch Utility (S)................................. 240 on Restore (S) .......................................... 390 on Startup (S) .......................................... 387 PARMLIST Variable (S) ............................. 188 PARSE Command Overview (S) ............................................. 14 Reference (S) ........................................... 121 Partitioned Data Set .............................See PDS PAS Command (PASSWORD) (U) ........... 233 PASS Command (PASSWORD) (U) ......... 233 Password Permanent (SIBPSWD) (S)..................... 219 Temporary (SIBPDPSW) (S).................. 218 Temporaryt (SIBPPSWD) (S) ................ 219 to Create Temporary (PEND) (S) ......... 123 PASSWORD Command (U) ...................... 233 PASSWORD Verification Feature (S) ....... 255 Patterns.............. See Extended Search Pattern PDB Variables Reference (MVS) (S) ............................... 202 to Set - JES Job/DSets (READP) (S) ..... 141 PDS (MVS) Current Attached (SIBHMLBD) (S) ..... 216 Current Attached (SIBLIBD) (S) ........... 217 Library Security for (S) .......................... 399 to Copy Member from (S) ..................... 412 to Deallocate (DEALLOC) (S)............... 296 to Set Default (ATTACHD) (U) .............. 64 to Set HOME (ATTACHD) (U)............... 64 PDS (MVS) Member Access Overview (U) ............................... 37 Editing Overview (U) .............................. 32 Last Referenced in Command (U).................................. 21 List of Commands to Access (U) ............ 52 Security Discussion (U) ........................... 39 to Change Name (RENAMED) (U)...... 264 to Change Text (E LCA Command) (U)325 Index to Change Text (EDITD) (U) ................. 126 to Copy (COPYD) (U) .............................. 95 to Copy from Member (CATAL) (U) ..... 78 to Copy to Member (LOADD) (S) ........ 100 to Copy to Member (LOADDL) (S)...... 102 to Create (DEFINED) (U)....................... 107 to Delete (P LCA Command) (U) ......... 334 to Delete (PURGED) (U) ........................ 244 to Display List (LIBRARYD) (U) .......... 184 to Display Text (DISPLAYD) (U) ......... 118 to Display Text (L LCA Cmnd) (U)...... 331 to Display Text (LISTD) (U) .................. 199 to Display Text (T LCA Cmnd) (U)...... 338 to Get Lines from (GETD) (U)............... 150 to Start Batch Proces(SUBMITD) (U) ... 307 PEND Command Reference (S)............................................ 123 Temporary Password (SIBPDPSW) (S) 218 Percent Sign (%) Pttrn Character (U)........ 351 Period in Library Name (S)........................ 399 Period in Variable Replacement (S) ............ 10 PF and PA Keys for Commands Overview (U)........................................ 22 Hit to Transmit MAPF (PPDKEY) (S).. 206 to Set (KEYS) (U) .................................... 174 to Set (SET) (U)........................................ 289 to Set (SETKEYS) (S)............................... 354 PHONETIC Command (S)......................... 125 Physical Backup (BACKUPP) (S) ....................................... 281 vs Logical Backup (S) ............................. 390 Physical Restore - JCL Example (S)........... 395 Plus Plus Paren Paren see ............................................................. 210 Plus Sign (+) LCA Command (U)................................ 347 Pattern Character (U) ............................. 351 POS Command (POSITION) (U)............... 234 Position (%) Pattern Character (U) ........... 354 POSITION Command (U).......................... 234 Position Cursor (CURSOR) (U) ................... 96 Position in a Session................. See Reposition Positional Operands Rules for Entry (U) ................................... 18 POWER..........................................See also VSE Large DBLK sizes (MMPQBKSP) (S) ... 197 to Copy Member to (SUBMIT) (U)....... 303 to Issue Commands to Page 487 (CONTROLP) (S) ............................... 292 POWER DLBL name opt (MMPPWRNM) (S) .................................................................... 197 POWER Job Entry Access Control Custom(BIXPWQA) (S)423 Access Flag(MMPPWCTL) (S).............. 197 Access Overview (U)................................ 35 Attributes (PWR Variables) (S)............. 212 Last Referenced in Command (U) .................................. 21 List of Commands to Access (U) ............ 50 Security Overview (U) ............................. 39 to Change Attr (ALTERP) (U) ....................................... 57 (FALTERP) (U)................................... 133 (Q LCA Command) (U) .................... 335 to Delete (DISCARD) (U) ...................... 110 to Delete (P LCA Command) (U) ......... 334 to Delete (PURGEP) (U)......................... 246 to Display List (LIBRARYP) (U) ........... 188 to Display Text (L LCA Cmnd) (U)...... 331 to Display Text (LISTP) (U)................... 201 to Insert Lines from (GETP) (U) ........... 151 to Set PWR to Attr of (READP) (S)....... 139 to Suspend (H LCA Command) (U) .... 327 to Suspend (HOLD) (U)......................... 160 to Undo Hold (R LCA Command) (U) 336 to Undo Hold (RELEASE) (U) .............. 257 PP Command (PURGEP) (U) .................... 246 PP LCA Command (U)............................... 334 PPD Variables PPDCOND Overview (S)......................................... 29 Reference (S)............................................ 204 with Text-Following Overview (S)......................................... 36 Predefined Variables CLEAR - Clear Key Command (S) ....... 188 ENTER - Enter Key Command (S) ....... 188 JCT - Job Control Table (MVS) (S)........ 189 JOE - Job Output Element (MVS) (S) ... 192 JQE - Job Queue Entry (MVS) (S) ......... 193 MMP - Memory Map (S) ....................... 194 OPS - Operating System (S) .................. 201 Overview (S) ............................................. 25 PA1-PA3 - PA Key Commands (S) ...... 188 PARMLIST - Procedure Parms (S) ....... 188 PDB - Partition Data Blk (MVS) (S)...... 202 PF1-PF24 - PF Key Commands (S) ....... 188 Page 488 PFnOPT - PF Key Options (S) ............... 188 PPD - Procedure Process Data (S) ........ 204 PWR - POWER (VSE) (S) ....................... 212 SIB - System Interface Block (S) ............ 214 SSD - Session Status Data (S) ................ 224 TXL - Library Attr (S)............................. 229 TXM - Member Attr (S).......................... 230 TXS - Library Security (S) ...................... 234 TXU - User Attr (S) ................................. 235 XTR - Extracted Values (S) .................... 238 Prerequisites (MVS) (S).................................................. 371 (VSE) (S) ................................................... 361 Print Current Line Number (SIBLNUM) (S) 217 Current Lines/Page (PPDPGSIZ) (S)... 207 Current Page Number (SIBPAGE) (S) . 218 Default Lines/Page (MMPPGSIZ) (S).. 197 from Batch Utility Example (S)......................................... 242 from Logical Backup (PRINTG) (S)...... 331 List of Commands (S)............................... 52 Log Cmnds Batch Util(PPDUTLOG) (S)209 Page Length Customization (S) ............ 415 to Close and Open (SEGMENT) (S) ..... 153 to Copy Lines to (PRINTF) (S) .............. 129 to Eject Page (EJECT) (S).......................... 67 to Set Page Heading (HEADF) (S).......... 78 PRINT Command (Advanced) (S) ........................................ 126 (Ordinary) (U) ......................................... 235 Print Member (PRINT) (S).......................... 126 PRINTF Command (S)................................ 129 PRINTG Command (MVS) (S).................................................. 332 (VSE) (S) ................................................... 331 Problems Technical Support (S) ............................. 360 PROC Command (PROCESS) (U) ............. 238 Procedures Acquire Ownership (ENQUEUE) (S)..... 71 Application Interface (S).......................... 42 at Different Search Levels (S) ................ 431 ATTN Key Indicator (SIBSIGNL) (S)................... 222 Basic Example and Rules (S) ..................... 3 Commands to Use for Edit (S) .................. 6 Commands to Use for LCA (S) ................. 5 Conditional Exec Flag(PPDCOND) (S) 205 BIM-EDIT System Reference Manual Control Commands Overview (S) ......... 16 Current Loop Limit (PPDLPLMT) (S) . 206 Current Nest Level (SIBLEVEL) (S) ..... 217 Current Parm Values (PARMLIST) (S) 188 Customizing System Procedures (S).... 430 Debugging Traps for the Unwary (S) .................... 46 Debugging (S) ........................................... 44 Executed at Logon (S) ............................ 421 Give up Control (WAIT) (S).................. 185 INCLUDE within (S)................................ 34 Interactive Overview (S)......................................... 22 List of Commands to Control (S) ........... 51 Making Into Commands Overview (S)......................................... 48 Overview (U) ............................................ 42 Passing Values Between (S) .................... 47 Performance option (PPDPFOPT) (S).. 207 Preempting Commands (S)................... 432 Release Ownership (DEQUEUE) (S) ..... 64 Resolution of Names (S) ........................ 431 Rules for Entering Commands (U) ........ 23 Special Techniques (S) ............................. 47 Text-Following Trap Commands (S) ............................ 34 Text-Following Cmnd Overview (S)......................................... 34 to close conversation (LUCL) (S).......... 110 to Cond Execute (ELSE) (S)..................... 68 to Cond Execute (ENDIF) (S).................. 70 to Cond Execute (HEXIF) (S) .................. 79 to Cond Execute (IF) (S)........................... 83 to Cond Execute (IFD) (S)........................ 85 to Cond Execute (IFTHEN) (S) ............... 87 to Display Interactively(MAPF) (S) ..... 114 to Execute (EXECUTE) (U).................... 128 to Get Cmnd Ln Values (PARSE) (S) ... 121 to Include Lines in (INCLUDE) (S) ........ 89 to Jump Within (GOTO) (S) .................... 77 to Log Debug Info (SNAP) (S) .............. 172 to open conversation (LUOP) (S) ......... 111 to Perform Within (GOSUB) (S) ............. 76 to receive conv. data (LURC) (S) ......... 112 to Receive Jump (LABEL) (S).................. 97 to return Within (RETURN) (S)............ 152 to send conv. data (LUSD) (S) ............. 113 to Stop (EXIT) (S)...................................... 75 transfer to proc (TRANSFER) (S) ......... 177 Index Tutorial (S)................................................... 2 PROCESS Command Customization (BIPPROC) (S) .............. 428 Reference (U)........................................... 238 Processing Batch Features Discussion (U) ................ 35 Programs Calling BIM-EDIT fromSee Application Interface Display Status of(DA) (U) ....................... 97 PROP Command (PROPAGAT) (U)......... 240 PROPAGAT Command (U)....................... 240 PSWD..............................See Member Security PSWD Command (PASSWORD) (U) ....... 233 PTFs - Using BIM-EDIT to Apply (S) ....... 257 PUNCH Command (S) ............................... 131 PUNCHF Command (S)............................. 134 PUNCHI Command (S).............................. 135 PUNCHL Command (S)............................. 136 PUNI Command (PUNCHI) (S) ................ 135 PUR Command (PURGE) (U).................... 241 PURD Command (PURGED) (U) ............. 243 Purge ..................................................See Delete PURGE Command (U) ............................... 241 Purge Control Administration (S).................................. 402 Customization (S) ................................... 415 Discussion (S).......................................... 402 Flag (MMPPGCTL) (S)........................... 197 PURGED Command (MVS) (U)................................................. 244 (VSE) (U).................................................. 243 PURGEL Command (U) ............................. 245 PURGEN Command (S) ............................. 333 PURGEP Command (MVS) (U)................................................. 248 (VSE) (U).................................................. 246 PURGEQ Command (U) ............................ 250 PURGES Command (S) .............................. 334 PURGET Command (S) .............................. 335 PURGEU Command (S) ............................. 336 PURGEX Command (S).............................. 337 PURL Command (PURGEL) (U)............... 245 PURN Command (PURGEN) (S) .............. 333 PURP Command (PURGEP) (U)............... 246 PURQ Command (PURGEQ) (U) ............. 250 PURS Command (PURGES) (S) ................ 334 PURT Command (PURGET) (S)................ 335 PURU Command (PURGEU) (S) .............. 336 Page 489 PURX Command (PURGEX) (S) ............... 337 PWR Variables Reference (VSE) (S)................................. 212 to Set - POWER Job Entr(READP) (S).. 139 Q Command (SAVE) (U)............................ 270 Q LCA Command (U) ................................ 335 QQ LCA Command (U) ............................. 335 QUAL Command (QUALIFY) (U)............ 251 QUALIFY Command (U) ........................... 251 Question Mark (?) Command Overview (U)......................... 22 Command Reference (U) ....................... 316 Pattern Character (U) ............................. 351 QUIT Command (SAVE) (U)..................... 270 Quote Mark in Variable Value (PPDLITDL) (S) ....... 206 LCA Command (U)................................ 343 R LCA Command (U) ................................. 336 RACF External Interface (MMPSECUR) (S) ... 198 READ Command Overview and Example (S) ..................... 38 Reference (S)............................................ 137 READL Command Overview and Example (S) ..................... 39 Reference (S)............................................ 138 READP Command (MVS) (S) ................................................. 141 (VSE) (S)................................................... 139 READS Command (S)................................. 338 READU Command (S)................................ 340 Receive Mail (OPEN) (U) ........................... 231 RECOVER Command (S) ........................... 341 Redisplay Command (Question Mark) (U) ........... 316 Session (REFRESH) (U) ......................... 256 REF Command (REFRESH) (U) ................ 256 REFRESH Command Reference (U)........................................... 256 used with DISPLAYF (S) ......................... 36 Register Usage Conventions (S) ................ 459 REL Command (RELEASE) (U) ................ 257 RELEASE Command (MVS) (U) ................................................ 259 (VSE) (U).................................................. 257 RELIST Command (PRINT) (U)................ 235 Reminder Facility (TODAY) (S) ................ 256 Remove ..............................................See Delete Remove embedded blanks Page 490 (SQUEEZE) (U) ....................................... 299 REN Command (RENAME) (U) ............... 261 RENAME Command (U) ........................... 261 RENAMED Command (MVS) (U)................................................. 264 (VSE) (U) .................................................. 263 REND Command (RENAMED) (U) ......... 263 RENUM Command (RESEQ) (U).............. 265 Reorder Lines (SORT) (U) .......................... 295 REORG Command (S) ................................ 344 Repeat Command (Ampersand Command Prefix) (U) ..... 314 (Equal Sign) (U) ...................................... 315 Repeat Count on LCA Commands (U)..... 319 Replace............................................ See Change Replace Variables Overview (S).............................................. 10 Reposition Bwd by Lines (UP) (U) ........................... 310 Bwd by Screens (BACK) (U) ................... 72 Bwd to Pattrn (LOCATEU) (U)............. 209 Bwd to Pattrn at Col (FINDUP) (U) ..... 142 Bwd to Pattrn at Col (NFINDUP) (U).. 229 Fwd by Lines (NEXT) (U)...................... 226 Fwd by Screens (FORWARD) (U) ........ 146 Fwd to Pattrn (LOCATE) (U)................ 206 Fwd to Pattrn (SEARCH) (U)................ 283 Fwd to Pattrn at Col (FIND) (U)........... 140 Fwd to Pattrn at Col (NFIND) (U)........ 227 in a Procedure (S)........................................ 6 Overview (U)............................................. 29 to Bottom (BOTTOM) (U)........................ 74 to Left or Right (VIEW) (U) ................... 312 to Line (POSITION) (U) ......................... 234 to Line (Slash LCA Command) (U) ...... 344 to Marker (SWAP) (U) ........................... 308 to Top (TOP) (U) ..................................... 309 REPRO Command (S)................................. 143 REPROF Command (S)............................... 147 REPROI Command (S)................................ 149 REPROL Command (S) .............................. 151 Requirements (MVS) (S).................................................. 371 (VSE) (S) ................................................... 361 RES Command (RESEQ) (U)...................... 265 RESE Command (RESEQ) (U) ................... 265 RESEQ Command (U) ................................ 265 RESET Command (U) ................................. 267 Restore BIM-EDIT System Reference Manual JCL Example - Full Library (S) ............. 392 JCL Example - Physical (S).................... 395 JCL Example - Selective (S) ................... 393 Scenarios (S) ............................................ 390 RESTORE Command (MVS) (S) ................................................. 348 (VSE) (S)................................................... 345 RESTOREL Command (MVS) (S) ................................................. 352 (VSE) (S)................................................... 350 Resume JES Job or Data Sets (R LCA Command) (U) ......................... 336 (RELEASE) (U) ....................................... 259 Resume POWER Job Entry (R LCA Command) (U) ......................... 336 (RELEASE) (U) ....................................... 257 Return Code from Cmnds(SIBRETCD) (S)219 RETURN Command (S) ............................. 152 Revise...............................................See Change Right Brace in MAPF Command (S) ......................... 114 Right Justify Line (JUSTIFYR) (U) ....................................... 172 (Right Paren LCA Command) (U) ....... 349 Right Parenthesis LCA Command (U)..... 349 Right Shift Column (Greater Than LCA Command) (U)..... 346 (SHIFT) (U).............................................. 292 Right Shift Display (VIEW) (U)................. 312 ROLLBACK Command (AUDITRL) (U) ... 69 ROT Command (ROTATE) (U)................. 268 ROTATE Command (U)............................. 268 RR LCA Command (U) .............................. 336 S LCA Command (U) ................................. 337 SAVE Command (U) .................................. 270 Scale Line Position on Screen (U) ............................. 15 to Change Position(SCREEN BEF) (U) 275 SCAN Command (U) ................................. 271 SCR Command (SCREEN) (U) .................. 275 Screen Number of Columns (SIBSCRWD) (S) 220 SCREEN Command (U) ............................. 275 Screen Compression Ctrl(SIBCMPR) (S).. 214 Screen Layout (U) ......................................... 15 Screen Split Discussion (U)........................ 360 Scroll .......................................... See Reposition Search Command Last Case Setting (SIBLCCAS) (S) ........ 216 Index Last Column Setting (SIBLCCOL) (S).. 216 Last Pattern Setting(SIBLCSTR) (S)...... 216 Last Zone Setting (SIBLCZON) (S) ...... 216 SEARCH Command (U)............................. 283 Search for Text .. See Extended Search Pattern (LOCATE) (U) ......................................... 206 (LOCATEU) (U)...................................... 209 (SEARCH) (U)......................................... 283 at Column (FIND) (U)............................ 140 at Column (FINDUP) (U) ...................... 142 in Variable (VEXAMINE) (S) ................ 179 list Instances (QUALIFY) (U)................ 251 not at Column (NFIND) (U).................. 227 not at Column (NFINDUP) (U) ............ 229 on Current Line (EXAMINE) (S) ............ 72 Security Control Values (TXS Variables) (S) ...... 234 Curr Lvl/Att PDS (SIBSECPD) (S)....... 221 Curr Lvl/Att VSE Lib(SIBSECPD) (S) . 221 Current Lvl All Libs(SIBSECLB) (S)...................... 221 Att Lib(SIBSECAT) (S) ...................... 221 Commands(SIBSECCM) (S) ............. 221 JES (SIBSECPW) (S) ........................... 221 POWER (SIBSECPW) (S) .................. 221 External Interface (MMPSECUR) (S) ... 198 for Commands (S) .................................. 435 for JES Jobs/Data Sets (S) ...................... 423 for Libraries Access Levels (U) ................................. 38 for Libraries Discussion (S) ................... 398 for Libraries Example (S)....................... 399 for Libraries Generic (S)......................... 399 for Members (U) ....................................... 38 for MVS PDSs (S) .................................... 399 for POWER Job Entries (S) .................... 423 for VSE Sublibs (S).................................. 399 Overview (U) ............................................ 38 to Change Lib Security(ALTERS) (S) ................. 268 Lib Securty(FALTERS) (S) ................ 307 to Create Lib Sec. (FDEFINES) (S)........ 309 to Create Lib Securty(DEFINES) (S)..... 297 to Delete Lib Security(PURGES) (S)..... 334 to Display List of (LIBRARYS) (S)........ 320 to Set for User (ALTERU) (S) ................ 269 to Set TXS Vars for (BROWSES) (S) ..... 286 to Set TXS Vars for (READS) (S) ........... 338 to Suspend Lib Secty(AUTHORIZ) (S) 276 Page 491 See Index ............................................See Thing SEGMENT Command (VSE) (S) ............... 153 Select Session (ROTATE) (U)..................... 268 Selective Logical Backup (BACKUPS) (S) ........... 283 Logical Restore (RESTORE) (S) ............ 345 Logical Restore (RESTOREL) (S) .......... 350 Semicolon to Separate Command & Comment (U) 23 to Separate Online Commands (U) ........ 22 SEND Command Discussion (S).......................................... 247 Reference (S)............................................ 154 Send Mail (MAIL) (U)............................................... 215 (MAILI) (U) ............................................. 217 Current Session (MAILSESS) (U) ......... 219 SENDF Command (S)................................. 156 SENDI Command (S).................................. 157 SENDMSG Command (S) .......................... 158 SENDN Command (S)................................ 159 SEP Command (SEPARATE) (U).............. 285 SEPARATE Command (U) ........................ 285 Sequence Lines (SORT) (U)........................ 295 Sequence of Processing LCA Commands (U) .............................. 320 Multiple Operations (U) ........................ 356 Sequences of Commands Techniques for Use (U) .......................... 358 SERVICE Procedure (VSE) (S) ................... 257 SESS Command (U) .................................... 287 Session Commands to Change Text (U).............. 49 Commands to Reposition (U) ................. 50 Current Line (XTRSLINE) (S) ............... 238 Current Number (SIBSSNUn) (S)......... 222 Current Size (SSDSZLN) (S).................. 227 Current Type (SSDTYPE) (S) ................ 228 Editing Usage Overview (U)................... 32 Multiple Overview (U)........................................ 28 Overview (U) ............................................ 27 to Change Attributes (FSESSION) (U).................................. 147 (SESS) (U)............................................ 287 to Change Position .............. See Reposition to Create Display (DISPLAYF) (S) ......... 65 to Execute (EXECUTE) (U).................... 128 to Include in Proc (INCLUDE) (S).......... 89 Page 492 to Make into a Procedure (S)..................... 7 to Print (PRINT) (S) ................................ 126 to Re-create (REFRESH) (U) .................. 256 to Send as Mail (MAIL) (U) ................... 215 to Send as Mail (MAILSESS) (U) .......... 219 to Send Line Appl Ifc (SENDN) (S)...... 159 to Stop (END) (U) ................................... 127 to Switch (ROTATE) (U)........................ 268 to Terminate (SAVE) (U) ....................... 270 to Transfer to Appl Infc(SEND) (S) ...... 154 Update Flag (SSDUPD) (S) .................... 228 Sessions Number Active (SIBSESSU) (S) ............ 221 Number Active in Grp(SIBSESSD) (S) . 221 Switch Groups (GROUP) (U) ................ 158 SET Command (Advanced) (S) ........................................ 160 (Ordinary) (U) ......................................... 289 SETD Command (S) .................................... 164 SETKEYS Command (S) ............................. 354 SETL Command (S)..................................... 166 SETM Command (S) ................................... 167 SH Command (SHIFT) (U)......................... 292 SHIFT Command (U).................................. 292 Shift Display (VIEW) (U)............................ 312 Shift Lines Left (Less Than Sign LCA Command) (U) .. 345 Shift Lines Right (Greater Than Sign LCA Cmnd) (U) .... 346 SHOW Command (MVS Advanced) (S)............................... 170 (Ordinary) (U) ......................................... 294 (VSE Advanced) (S)................................ 168 Overview (S).............................................. 44 Shrink Variable (VTRUNCAT) (S) ............ 183 SHUT Command (S) ................................... 355 SIB Variables (S) .......................................... 214 SIBMSG Variable Overview (S)................... 29 SIBRETCD (S)............................................... 219 SIBRETCD Variable Overview (S) .............. 29 Signed Numeric Variables (S)........................ 9 Slash (/) LCA Command (U)..................... 344 Slave Member in Checkout to Change User (CHECKASN) (U) ........ 83 to Copy from Master(CHECKOUT) (U) 85 to Copy to Master (CHECKIN) (U)........ 84 to Delete (CHECKPUR) (U) .................... 87 SNA LU 6.2....................................... See LU 6.2 SNAP Command BIM-EDIT System Reference Manual Overview (S) ............................................. 44 Reference (S) ........................................... 172 SORT Command (U) .................................. 295 SP Command (SPLIT) (U) .......................... 297 Space for BIM-EDIT (S) .............................. 365 SPLIT Command (U) .................................. 297 Split Screen Discussion (U)......................................... 360 to Chg Screens(Less Than Sign) (U)..... 317 to Start/Stop (SCREEN SPLIT) (U)...... 275 SPRI First Time Logon (S)............................... 381 sequence number (PWRSEQNU) (S) ... 213 spooler type (MMPSPOOL) (S) ............ 198 System Prerequisites (S) ........................ 361 SQU Command (SQUEEZE) (U)............... 299 SQUEEZE Command (U)........................... 299 SQUEZ Command (SQUEEZE) (U).......... 299 SRCH Command (SEARCH) (U) .............. 283 SS Command (SESS) (U) ............................ 287 SS LCA Command (U) ............................... 337 SSD Variables (S)......................................... 224 SSERV tape to Load Members from (LOADT) (S) .. 103 ST Command (STACK) (U) ....................... 300 Stack Area .....................................see $STACK STACK Command (U) ............................... 300 STACKF Command (S) .............................. 173 STACKI Command (U) .............................. 301 STAMPCL Command (U).......................... 302 Stamping Administration of (U) ............................ 367 Control Customization (S) .................... 415 Control Flag (MMPSPCTL) (S) ............. 198 Current Status (SSDSTAMP) (S) .......... 227 Discussion (U)......................................... 367 Highlight Flag (MMPSPHGL) (S) ........ 198 of Current Line (XTRSTAMP) (S) ........ 238 Text-Follow Ovly Col(PPDSPCOL) (S) 207 Text-Follow Ovly Fmt(PPDSPFMT) (S)208 to Clear (STAMPCL) (U) ....................... 302 to Display (SCREEN STAMP) (U)........ 275 to Start/Stop (ALTER) (U) ...................... 53 Start Audit (ALTER) (U) .............................. 53 Start Batch Processing (PROCESS) (U) ....................................... 238 (S LCA Command) (U) .......................... 337 (SUBMIT) (U) .......................................... 303 (SUBMITD) (U)....................................... 307 Index Start BIM-EDIT (MVS) (S).................................................. 388 (VSE) (S)................................................... 387 Start Processing in Batch Utility (LOGON) (S)................ 107 Start Session Overview (U) ............................................ 27 Start Stamping (ALTER) (U)........................ 53 Status of BIM-EDIT Routines(LIBRARYR) (S) 319 of BIM-EDIT Tasks (LIBRARYT) (S) .... 322 of Running Programs (DA) (U) .............. 97 Stop Audit (ALTER) (U)............................... 53 Stop BIM-EDIT (SHUT) (S) ........................ 355 Stop BIM-EDIT Task (PURGET) (S).......... 335 Stop JES Job (CANCEL) (U)......................... 75 Stop Procedure (EXIT) (S) ............................ 75 Stop Stamping (ALTER) (U) ........................ 53 Stop Using BIM-EDIT (LOGOFF) (U) ......................................... 213 Stop Using Session (END) (U) ................................................ 127 (SAVE) (U)............................................... 270 Stopping a Session Overview (U) ............................................ 28 Tutorial (U)................................................ 12 Storage ........................................... See Memory String..........................................See Text String SUB Command (SUBMIT) (U)................... 303 SUBD Command (SUBMITD) (U) ............ 307 SUBF Command (SUBMITF) (S) ............... 174 Sub-Includes INCLUDE (S) ............................................ 90 Sublibrary (VSE) Current Attached (SIBLIBD) (S) ........... 217 Home (SIBHMLBD) (S).......................... 216 Library Security for (S) .......................... 399 to Copy Member from (S)...................... 412 to Set Default (ATTACHD) (U) .............. 63 to Set Home (ATTACHD) (U) ................ 63 Sublibrary (VSE) Member Access Overview (U)................................ 37 Editing Overview (U)............................... 32 Last Referenced in Command (U) .................................. 21 List of Commands to Access (U) ............ 51 Security Discussion (U) ........................... 39 to Change Name (RENAMED) (U) ...... 263 to Change Text (E LCA Command) (U)325 Page 493 to Change Text (EDITD) (U) ................. 125 to Copy (COPYD) (U) .............................. 94 to Copy fm Member (CATAL) (U)......... 76 to Copy to Member (LOADD) (S) .......... 99 to Copy to Member (LOADDL) (S)...... 101 to Create (DEFINED) (U) ...................... 105 to Delete (P LCA Cmnd) (U)................. 334 to Delete (PURGED) (U)........................ 243 to Display List (LIBRARYD) (U) .......... 182 to Display Text (DISPLAYD) (U) ......... 116 to Display Text (L LCA Cmnd) (U)...... 331 to Display Text (LISTD) (U) .................. 197 to Display Text (T LCA Cmnd) (U)...... 338 to Inquire (INQUIRED) (U)................... 167 to Insert Lines from (GETD) (U)........... 149 SUBMIT Command (MVS) (U) ................................................ 305 (VSE) (U).................................................. 303 Customization (BIPSUBM) (S).............. 428 SUBMITD Command (MVS) (U) .............. 307 SUBMITF Command Customization (BIXPWSB) (S) .............. 429 Reference (S)............................................ 174 SUBSTR (S)....................................................... 9 Substring Support Variables (S) ................................................ 9 SUBT Command (SUBTRACT) (S) ........... 176 SUBTRACT Command (S) ......................... 176 Summarize Audit Trail (AUDITSM) (U) ... 70 Summary of BIM-EDIT Functions (U).......... 1 Support Technical Support (S)............................. 360 Suspend JES Job/Data Sets (H LCA Command) (U) ......................... 327 (HOLD) (U) ............................................. 162 Suspend POWER Job Entry (H LCA Command) (U) ......................... 327 (HOLD) (U) ............................................. 160 SVA BIUAPMD (S).......................................... 370 SVC 249 (MVS) (S)....................................... 372 SW Command (SWAP) (U)........................ 308 SWAP Command (U) ................................. 308 Switch Position Markers (SWAP) (U)....... 308 Switch Session Groups (GROUP) (U)....... 158 Switch Sessions (ROTATE) (U) ................. 268 Syntax Commands (U) ......................................... 18 Member and Library Names (U)............ 26 Page 494 System Console Controlling BIM-EDIT (S)...................... 389 System Control Variables Modifying (S) .......................................... 415 System Name (MMPSYNAM) (S).................................. 199 in Application Interface (S) ................... 245 in Batch Utility (S) .................................. 240 Installing Alternate (S) ........................... 379 Starting under Alternate (S) .................. 387 System Procedures Customizing (S) ...................................... 430 System Release Number (MMPSYREL) (S) .................................... 199 SYSTEM= JCL Operand on Startup (S)........................................... 387 T Command (TOP) (U) ............................... 309 T LCA Command (U) ................................. 338 Tabbing Character (SIBTABC) (S)........................ 222 Current Positions (SSDTCLnn) (S) ....... 227 Discussion (U) ......................................... 362 Tall Display .....................See Alternate Screen Tape Format of Distributn (MVS) (S) ............ 371 Format of Distributn (VSE) (S).............. 361 List of Commands to Copy Mbr (S) ..... 413 to Copy Audit to (AUDITRP) (S)............ 55 to Copy Library to (REPROL) (S) ......... 151 to Copy Member from (LOADT) (S).... 412 to Copy Member to (REPRO) (S).......... 143 to Create Logicl Bkp (BACKUPG) (S) .. 277 to Create Physicl Bkp(BACKUPP) (S).. 281 to Create Sel Bkp (BACKUPS) (S)......... 283 to Include in Proc (INCLUDE) (S).......... 89 to Insert Line (REPROI) (S) ................... 149 to Insert Lines (REPROF) (S) ................. 147 to Restore from Bkp (BIMREST) (S) ..... 392 to Restore from Bkp (RESTORE) (S) .... 345 to Restore from Bkp (RESTOREL) (S) .. 350 Task to Display List (LIBRARYT) (S) ............ 322 to Stop (PURGET) (S) ............................. 335 Technical Support Contacting (S).......................................... 360 Temporary Password Delete (PURGEN) (S) ............................. 333 Display List (LIBRARYN) (S)................ 318 Expiry Control (MMPTPEXP) (S) ......... 200 BIM-EDIT System Reference Manual Set (PEND) (S)......................................... 123 Terminal ID (SIBTRMID) (S) ..................... 223 Terminate ............................................. See Stop Test Variable Numeric (VTESTNUM) (S) 182 Text Display Area Alternatives to Edit in Procs (S) ............... 6 Position on Screen (U) ............................. 15 Text String to Change (CHANGE) (U) ...................... 80 to Display List (QUALIFY) (U)............. 251 to Display Mbrs having (SCAN) (U) ... 271 to Search for (FIND) (U) ........................ 140 to Search for (FINDUP) (U)................... 142 to Search for (LOCATE) (U).................. 206 to Search for (LOCATEU) (U)............... 209 to Search for (NFIND) (U)..................... 227 to Search for (NFINDUP) (U) ............... 229 to Search for (SEARCH) (U).................. 283 to Test for (EXAMINE) (S) ...................... 72 Text-Following Command Modifications to Data (S).................. 210 Special Sequences in Data (S)........... 210 Commands Use with INCLUDE Commands (S) 209 Text-Following Command Adjustment Flag (PPDADJ) (S) ............ 204 Hex Escape Char (PPDHEXC) (S) ........ 205 Hex Flag (PPDHEX) (S) ......................... 205 Include Flag (PPDINCL) (S) ................. 205 Overlay Column Base (PPDOVBAS) (S)....................... 206 Limit (PPDOVLMT) (S) .................... 206 Overlay String (PPDOVSTR) (S) .......... 206 Overview (S) ............................................. 34 Shift Flag (PPDSHIFT) (S) ..................... 207 Stamp Overlay Column (PPDSPCOL) (S) ................. 207 Format (PPDSPFMT) (S)................... 208 Trap Control Flag (PPDTRAP) (S) ....... 208 Use of INCLUDE and PPDTRAP (S) ..... 34 Tilde (~) Pattern Character (U) ................. 351 Time of Day (OPSTIME) (S)............................ 201 of Member Update (TXMTMUPD) (S)231, 232 of Task Start (SIBTIME) (S) ................... 222 TODAY Procedure (S) ................................ 256 TOP Command (U)..................................... 309 Index TOP/SECRET External Interface (MMPSECUR) (S) ... 198 TRACE Command (S)................................. 357 Trace Procedure Flow Overview (S) ............................................. 45 TRAN Command (TRANSFER) (S) .......... 177 Transaction ID Changing (BIMCSDT) (S) ...................... 447 Transfer............................................... See Copy TRANSFER Command (S) ......................... 177 Transfer from GOTO (LABEL) (S) .............. 97 Transfer to LABEL (GOSUB) (S) ................. 76 Transfer to LABEL (GOTO) (S) ................... 77 Translate to Lower Case Line (LOWERCAS) (U).......................... 214 Line (W LCA Command) (U) ............... 340 Variable (VLOWERCA) (S) ................... 181 Translate to Upper Case Line (U LCA Command) (U) ................ 339 Line (UPPERCAS) (U)............................ 311 Variable (VUPPERCA) (S)..................... 184 Trap Commands Control Flag (PPDTRAP) (S)................. 208 in Text-Following Overview (S)......................................... 34 TT LCA Command (U)............................... 338 Tutorial (U)....................................................... 2 TXL Variables Reference (S)............................................ 229 to Set for Library (BROWSEL) (S) .......... 59 to Set for Library (READL) (S).............. 138 TXM Variables Reference (S)............................................ 230 to Set for Member (BROWSE) (S) ........... 58 to Set for Member (READ) (S) .............. 137 TXS Variables Reference (S)............................................ 234 to Set for Security (BROWSES) (S) ....... 286 to Set for Security (READS) (S)............. 338 TXU Variables Reference (S)............................................ 235 to Set for User (BROWSEU) (S) ............ 287 to Set for User (READU) (S) .................. 340 U Command (UP) (U)................................. 310 U LCA Command (U)................................. 339 Unbroken Vertical Bar (|) Pattern Character (U) ............................. 351 Undo Member Changes (AUDITRL) (U) ... 69 Undo Member Purge (S) ............................ 402 Page 495 UP Command (U) ....................................... 310 Upgrades of BIM-EDIT (S)......................... 360 UPP Command (UPPERCAS) (U) ............ 311 UPPER Command (UPPERCAS) (U) ....... 311 UPPERCAS Command (U) ........................ 311 Uppercase Translate Line (U LCA Command) (U) ................ 339 Line (UPPERCAS) (U) ........................... 311 Variable (VUPPERCA) (S)..................... 184 User $SYS (S) .................................................... 381 Attributes (TXU Variables) (S).............. 235 Changing Discussion (S) ..................................... 397 Current Attribute (SIBATTR) (S).......... 214 Current ID (SIBUSER) (S)...................... 223 Currently Editng Mbr(XTREUSER) (S) 238 Currently Listng Mbr(XTRLUSER) (S) 238 Custom CICS Simultans(BIMCSDT) (S)447 Steps to Create (S)................................... 396 Steps to Delete (S)................................... 397 to Assign Slave to (CHECKASN) (U) .... 83 to Change Attributes (ALTERU) (S) .................. 269 Attributes (FALTERU) (S) ................ 308 to Change Password (PASSWORD) (U)233 to Create (DEFINEU) (S) ....................... 298 to Create (FDEFINEU) (S) ..................... 311 to Create Mail Proxy (DEFINEX) (S) ... 302 to Create Temp Password (PEND) (S). 123 to Delete (PURGEU) (S)......................... 336 to Display Attr (INQUIREU) (S)........... 314 to Display List (LIBRARYU) (U) .......... 194 to Display Mail Prox(LIBRARYX) (S) .. 324 to Make Accessible (ENABLE) (S)........ 306 to Make Inaccessible (DISABLE) (S) .... 303 to Set Mail Proxy (ATTACHX) (U) ........ 65 to Set TXU Vars for (BROWSEU) (S) ... 287 to Set TXU Vars for (READU) (S)......... 340 UTAPPL Parameter in Batch Util (S)........ 241 UU LCA Command (U) ............................. 339 Value - to Obtain Length (SETL) (S) ......... 166 Value Operands - Rules for Entry (U) ........ 18 Values of Variables Assigning Overview (S)......................................... 12 Displaying Overview (S)......................................... 44 Replacing Page 496 Overview (S)......................................... 10 VAPP Command (VAPPEND) (S) ............ 178 VAPPEND Command (S)........................... 178 Variable............ See also Predefined Variables Arrays (S) ..................................................... 9 Assigning Values Overview (S)......................................... 12 Column of Match (PPDCOL) (S) .......... 204 Declaring Overview (S)........................................... 8 Displaying Values Overview (S)......................................... 44 List of Commands to Access (S) ............. 50 Overview (U)............................................. 42 Quotes in Value (PPDLITDL) (S).......... 206 Replace Values Overview (S)......................................... 10 Replacemnt Ctrl Flag(PPDVBL) (S)...... 209 Replacemnt End Col (PPDVBLMT) (S) 209 Replacemnt Start Col(PPDVBBAS) (S) 209 Set with PARSE Cmnd Overview (S)......................................... 14 Signed Numeric (S) .................................... 9 Substring Support (S) ................................. 9 to Calculate Product(MULTIPLY) (S) .. 118 to Calculate Quotient (DIVIDE) (S)........ 66 to Concatenate (VAPPEND) (S)............ 178 to Copy Value (SETD) (S) ...................... 164 to Create (DECLARE) (S)......................... 61 to Decrement (SUBTRACT) (S)............. 176 to Display Values (SHOW) (S).............. 168 to Get message text (SETM) (S)............. 167 to Get Value Length (SETL) (S)............. 166 to Increment (ADD) (S)............................ 53 to Make Lower Case (VLOWERCA) (S)181 to Make Upper Case (VUPPERCA) (S) 184 to Search for Text (VEXAMINE) (S)..... 179 to Set from Command Ln (PARSE) (S) 121 to Set JCT - JES Job (READP) (S)........... 141 to Set JOE - JES Job (READP) (S) .......... 141 to Set JQE - JES Job (READP) (S) .......... 141 to Set PDB - JES Job (READP) (S) ......... 141 to Set PWR - POWER Job (READP) (S) 139 to Set TXL - Library (READL) (S) ......... 138 to Set TXM - Member (READ) (S) ........ 137 to Set TXU - User (BROWSEU) (S) ....... 287 to Set TXU - User (READU) (S)............. 340 to Set Value (HEXREQ) (S)...................... 81 to Set Value (PHONETIC) (S) ............... 125 BIM-EDIT System Reference Manual to Set Value (SET) (S) ............................. 160 to Shrink (VTRUNCAT) (S) .................. 183 to SubString (SET) (S) ............................ 160 to Test for Numeric (VTESTNUM) (S) 182 Variables to Set TXL - Library (BROWSEL) (S) ..... 59 to Set TXM - Member (BROWSE) (S)..... 58 to Set TXS - Security (READS) (S) ........ 338 to Set TXS - Security(BROWSES) (S).... 286 VERIFY Command (S)................................ 358 VEXAM Command (VEXAMINE) (S)...... 179 VEXAMINE Command Column of Match (PPDCOL) (S) .......... 204 Reference (S) ........................................... 179 View .................................................See Display VIEW Command Current Position (SSDVBSEn) (S)......... 228 Reference (U) .......................................... 312 VLOW Command (VLOWERCA) (S) ...... 181 VLOWER Command (VLOWERCA) (S) . 181 VLOWERCA Command (S) ...................... 181 VSE..........................................See also POWER Batch Features Discussion (U) ................ 35 First Time Installation (S) ...................... 361 Sublibrary ..............................See Sublibrary System Prerequisites (S) ........................ 361 VSE Copy Book Facility (S)........................ 260 VSE.MESSAGES.ONLINE (MESSAGE) (U)222 VTAM APPL Install (MVS) (S) .......................... 374 APPL Install (VSE) (S) ........................... 367 Current Interfc Stat(MMPVTSTS) (S) .. 200 Session Depth (MMPVTSSD) (S).......... 200 to Make Connection (CONNECT) (S) . 291 to Terminate Connection (DISCONN) (S)304 VTAM LU 6.2....................................See LU 6.2 VTESTNUM Command (S) ....................... 182 VTRUN Command (VTRUNCAT) (S) ..... 183 VTRUNC Command (VTRUNCAT) (S) .. 183 VTRUNCAT Command (S) ....................... 183 VUPP Command (VUPPERCA) (S).......... 184 VUPPER Command (VUPPERCA) (S)..... 184 VUPPERCA Command (S) ........................ 184 W LCA Command (U) ............................... 340 WAIT Command (S) ................................... 185 Wide Display .................. See Alternate Screen Wildcard (?,*,@) Pattern Characters (U) ............... 353 use in Extended Search Pattern (U) ..... 353 Index Windows ................................. See Split Screen Word Begin (<) Pattern Character (U) ............ 352 End (>) Pattern Character (U)............... 352 to Search for (U)...................................... 352 Wordwrap Text (FORMAT) (U)................ 144 Workstation (S)................................................ 1 Write Audit Trail to Tape(AUDITRP) (S) .. 55 Write Console (CONSOLEI) (U) ................. 91 Write Line.................................. See Insert Line WW LCA Command (U)............................ 340 X LCA Command (U) ................................. 341 XTR Variables (S) ........................................ 238 Y LCA Command (U) ................................. 342 ZAP Command (S)...................................... 359 Page 497