IF              - IF DCLS COMMAND EXECUTION                      22-AUG-1978 01:17:58   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      33  IF COMMAND 

IF              - IF DCLS COMMAND EXECUTION                      22-AUG-1978 01:17:58   VAX-11 MACRO X0.3-11               Page   1

01                                                                                                                               (1)



                                     0000     1 	.TITLE	IF - IF DCLS COMMAND EXECUTION

                                     0000     2 	.IDENT	/01/

                                     0000     3  

                                     0000     4 ;

                                     0000     5 ; COPYRIGHT (C) 1977

                                     0000     6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

                                     0000     7 ;

                                     0000     8 ; THIS SOFTWARE IS FURNISHED UNDER  A LICENSE FOR USE ONLY  ON  A

                                     0000     9 ; SINGLE COMPUTER SYSTEM AND MAY BE  COPIED ONLY WITH  THE INCLU-

                                     0000    10 ; SION OF  THE  ABOVE  COPYRIGHT NOTICE.  THIS SOFTWARE,  OR  ANY

                                     0000    11 ; OTHER COPIES THEREOF, MAY NOT BE  PROVIDED  OR  OTHERWISE  MADE

                                     0000    12 ; AVAILABLE TO ANY OTHER PERSON EXCEPT  FOR  USE  ON  SUCH SYSTEM

                                     0000    13 ; AND TO  ONE WHO AGREES  TO  THESE LICENSE  TERMS.  TITLE TO AND

                                     0000    14 ; OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

                                     0000    15 ;

                                     0000    16 ; THE INFORMATION IN THIS SOFTWARE  IS  SUBJECT TO CHANGE WITHOUT

                                     0000    17 ; NOTICE AND SHOULD NOT BE CONSTRUED  AS  A COMMITMENT BY DIGITAL

                                     0000    18 ; EQUIPMENT CORPORATION.

                                     0000    19 ;

                                     0000    20 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS

                                     0000    21 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

                                     0000    22 ;

                                     0000    23 ; D. N. CUTLER 9-MAY-77

                                     0000    24 ;

                                     0000    25 ; IF DCLS COMMAND EXECUTION

                                     0000    26 ;

                                     0000    27 ; MACRO LIBRARY CALLS

                                     0000    28 ;

                                     0000    29  

                                     0000    30 	DEFCMDWRK			;DEFINE WORK AREA OFFSETS

                                     0000    31 	DEFERRCOD			;DEFINE ERROR/STATUS CODES

IF              - IF DCLS COMMAND EXECUTION                      22-AUG-1978 01:17:58   VAX-11 MACRO X0.3-11               Page   2

01              IF COMMAND                                                                                                       (1)



                                     0000    33 	.SBTTL	IF COMMAND 

                                     0000    34 ;+

                                     0000    35 ; DCL$IF - IF COMMAND

                                     0000    36 ;

                                     0000    37 ; THIS ROUTINE IS CALLED AS AN INTERNAL COMMAND TO EXECUTE THE IF DCLS COMMAND.

                                     0000    38 ;

                                     0000    39 ; INPUTS:

                                     0000    40 ;

                                     0000    41 ;	R6 = COMMAND BUFFER DISPLAY PARAMETER.

                                     0000    42 ;	R9 = ADDRESS OF NEXT BYTE IN COMMAND BUFFER.

                                     0000    43 ;	R10 = RESULT PARSE DESCRIPTOR TABLE POINTER.

                                     0000    44 ;	R11 = BASE ADDRESS OF PROCESS WORK AREA.

                                     0000    45 ;	FP = BASE ADDRESS OF COMMAND WORK AREA.

                                     0000    46 ;

                                     0000    47 ; OUTPUTS:

                                     0000    48 ;

                                     0000    49 ;	THE IF CLAUSE IS EVALUATED AND IF THE RESULTANT VALUE IS TRUE, THE

                                     0000    50 ;	THEN CLAUSE IS EXECUTED BY RETURNING CONTROL TO THE COMMAND EXECUTION

                                     0000    51 ;	ENTRY POINT. OTHERWISE CONTROL IS RETURNED VIA THE RETURN ADDRESS.

                                     0000    52 ;

                                     0000    53 ;	R0 LOW BIT CLEAR INDICATES EXPRESSION EVALUATION FAILURE.

                                     0000    54 ;

                                     0000    55 ;		R0 = DCL$_COMPLX - EXPRESSION TOO COMPLEX.

                                     0000    56 ;		R0 = DCL$_EXPSYN - EXPRESSION SYNTAX ERROR.

                                     0000    57 ;		R0 = DCL$_IVCHAR - INVALID CHARACTER IN NUMERIC STRING.

                                     0000    58 ;		R0 = DCL$_IVOPER - INVALID EXPRESSION OPERATOR.

                                     0000    59 ;		R0 = DCL$_UNDSYM - UNDEFINED SYMBOL.

                                     0000    60 ;

                                     0000    61 ;	R0 LOW BIT SET INDICATES SUCCESSFUL COMPLETION.

                                     0000    62 ;

                                     0000    63 ;		R0 = DCL$_NORMAL - NORMAL COMPLETION.

                                     0000    64 ;-

                                     0000    65  

                                 00000000    66 	.PSECT	DCL$ZCODE,BYTE,RD,NOWRT

                                     0000    67 DCL$IF::				;IF COMMAND

                                     0000    68 	EXPRESS				;EVALUATE ARITHMETIC EXPRESSION

            09            50     E9  0003    69 	BLBC	R0,20$			;IF LBC EXPRESSION EVALUATION ERROR

            03            51     E9  0006    70 	BLBC	R1,10$			;IF LBC FALSE RESULT

                                     0009    71  

                                     0009    72 ;

                                     0009    73 ; EXECUTE THEN CLAUSE OF IF COMMAND

                                     0009    74 ;

                                     0009    75  

                          FFF4'  31  0009    76 	BRW	DCL$CMDSTART		;

                                     000C    77  

                                     000C    78 ;

                                     000C    79 ; BYPASS THEN CLAUSE OF IF COMMAND

                                     000C    80 ;

                                     000C    81  

                                     000C    82 10$:	STATUS	NORMAL			;SET NORMAL COMPLETION STATUS

                                 05  000F    83 20$:	RSB				;

                                     0010    84  

                                     0010    85 	.END

IF              - IF DCLS COMMAND EXECUTION                      22-AUG-1978 01:17:58   VAX-11 MACRO X0.3-11               Page   3

SYMBOL TABLE                                                                                                                     (1)



BIT...         = 0003FFE9            CLI$_OVRFLW    = 00038160            PRC_L_SAVFP      00000004            

CLI$_ABFNAM    = 000381B8            CLI$_PARMDEL   = 00038110            PRC_L_SEVERITY   00000040            

CLI$_ABKEYW    = 00038000            CLI$_PROC_ID   = 0003FFF1            PRC_L_STACKLM    00000088            

CLI$_ABVERB    = 00038008            CLI$_QUEJOBCRE = 0003FFF9            PRC_L_STACKPT    00000084            

CLI$_BADRET    = 00038198            CLI$_REQPRMABS = 00038812            PRC_L_STATUS     00000044            

CLI$_BADTEXT   = 000381B0            CLI$_RSLOVF    = 00038118            PRC_L_SYMBOL     0000004C            

CLI$_BUFOVF    = 00038018            CLI$_SKPDAT    = 00038120            PRC_M_CNTRLY   = 00000002            

CLI$_COMPLX    = 00038020            CLI$_SPARE0    = 00038010            PRC_M_DBGQUAL  = 00000200            

CLI$_CONFQUAL  = 00038802            CLI$_SPARE1    = 00038058            PRC_M_DBGTRUE  = 00000400            

CLI$_CREQUEJOB = 0003884A            CLI$_STKOVF    = 00038128            PRC_M_DISABL   = 00000004            

CLI$_DEFOVF    = 00038028            CLI$_SUBMITERR = 00038852            PRC_M_EXIT     = 00000008            

CLI$_DEVALSPL  = 0003885A            CLI$_SYMDEL    = 00038130            PRC_M_GOEOF    = 00000001            

CLI$_DEVNOTFOR = 0003887A            CLI$_SYMOVF    = 00038138            PRC_M_GOTO     = 00000010            

CLI$_DEVNOTSPL = 00038862            CLI$_UNDFIL    = 00038188            PRC_M_HANGUP   = 00001000            

CLI$_DIRECT    = 00038030            CLI$_UNDSYM    = 00038140            PRC_M_IND      = 00000020            

CLI$_EXPSYN    = 00038038            CLI$_UNPROPARM = 00038170            PRC_M_MODE     = 00000040            

CLI$_FILOPN    = 00038190            CLI$_UNPROQUAL = 00038168            PRC_M_NOCTLY   = 00004000            

CLI$_ILLVAL    = 0003883A            CLI$_USGOTO    = 00038148            PRC_M_PAUSE    = 00002000            

CLI$_IMCHNG    = 00038040            CLI$_VALCNVERR = 00038832            PRC_M_USRDET   = 00000100            

CLI$_IMGFNF    = 00038872            CLI$_VALREQ    = 00038150            PRC_M_VERIFY   = 00000080            

CLI$_INSFPRM   = 00038048            CMDBUFSIZ      = 000001FC            PRC_M_YLEVEL   = 00000800            

CLI$_INVKEY    = 00038178            DCL$CMDSTART     ********   X   03   PRC_Q_ALLOCREG   00000020            

CLI$_INVQUAL   = 0003880A            DCL$EXPRESS      ********   X   03   PRC_Q_GLOBAL     00000028            

CLI$_INVQUALNUM= 0003881A            DCL$IF           00000000 RG    03   PRC_Q_LABEL      00000030            

CLI$_INVREQTYP = 00038822            GBL...         = 00000000            PRC_Q_LOCAL      00000038            

CLI$_INVRSP    = 00038180            INPBUFSIZ      = 00000084            PRC_V_CNTRLY   = 00000001            

CLI$_INVUIC    = 000381A8            MSGBUFSIZ      = 00000084            PRC_V_DBGQUAL  = 00000009            

CLI$_IVCHAR    = 00038050            PRC_B_DEFRADIX   00000092            PRC_V_DBGTRUE  = 0000000A            

CLI$_IVDEVTYPE = 0003886A            PRC_B_EXMDEPMOD  00000091            PRC_V_DISABL   = 00000002            

CLI$_IVFNAM    = 000381C0            PRC_B_EXMDEPWID  00000090            PRC_V_EXIT     = 00000003            

CLI$_IVKEYW    = 00038060            PRC_K_DEC      = 00000001            PRC_V_GOEOF    = 00000000            

CLI$_IVOPER    = 00038068            PRC_K_HEX      = 00000000            PRC_V_GOTO     = 00000004            

CLI$_IVPROT    = 00038070            PRC_K_LENGTH     000000A0            PRC_V_HANGUP   = 0000000C            

CLI$_IVQLOC    = 00038078            PRC_K_OCT      = 00000002            PRC_V_IND      = 00000005            

CLI$_IVSYMB    = 00038080            PRC_L_CLIWRK0    0000005C            PRC_V_MODE     = 00000006            

CLI$_IVVALU    = 00038088            PRC_L_CLIWRK1    00000060            PRC_V_NOCTLY   = 0000000E            

CLI$_IVVERB    = 00038090            PRC_L_CLIWRK2    00000064            PRC_V_PAUSE    = 0000000D            

CLI$_MAXPARM   = 00038098            PRC_L_CLIWRK3    00000068            PRC_V_USRDET   = 00000008            

CLI$_MULKEY    = 000381A0            PRC_L_CLIWRK4    0000006C            PRC_V_VERIFY   = 00000007            

CLI$_NOATFIL   = 000380A0            PRC_L_ERRRAB     00000010            PRC_V_YLEVEL   = 0000000B            

CLI$_NOCCAT    = 000380A8            PRC_L_EXMDEPADR  0000008C            PRC_W_CLIFLAG    00000052            

CLI$_NOCOMD    = 000380B0            PRC_L_EXTARG     00000078            PRC_W_ERRIFI     00000052            

CLI$_NOKEYW    = 000380B8            PRC_L_EXTBLK     00000070            PRC_W_FLAGS      00000054            

CLI$_NOLIST    = 000380C0            PRC_L_EXTCOD     00000080            PRC_W_INPCHAN    00000050            

CLI$_NOOPTPRS  = 00038842            PRC_L_EXTHND     00000074            PRC_W_ONLEVEL    00000056            

CLI$_NOQUAL    = 000380C8            PRC_L_EXTPRM     0000007C            RSLBUFSIZ      = 00000180            

CLI$_NORMAL    = 00030001            PRC_L_INDEPTH    00000048            WRK_AB_BUFFER    FFFFFD38            

CLI$_NOTNEG    = 000380D8            PRC_L_INDFAB     0000001C            WRK_AG_RESULT    FFFFFBB4            

CLI$_NOVALU    = 000380D0            PRC_L_INDINPRAB  00000014            WRK_B_VERBTYP    FFFFFFC0            

CLI$_NOVALUE   = 0003882A            PRC_L_INDOUTRAB  00000018            WRK_K_LENGTH     FFFFFBB4            

CLI$_NULFIL    = 000380E0            PRC_L_INPRAB     00000008            WRK_L_CHARPTR    FFFFFFFC            

CLI$_NUMBER    = 000380E8            PRC_L_LSTSTATUS  00000094            WRK_L_CMDOUT     FFFFFFBC            

CLI$_ONCOMD    = 000380F0            PRC_L_ONCTLY     0000009C            WRK_L_IMAGE      FFFFFFEC            

CLI$_ONERR     = 000380F8            PRC_L_ONERROR    00000058            WRK_L_MAXPARM    FFFFFFE4            

CLI$_ONEVAL    = 00038158            PRC_L_OUTRAB     0000000C            WRK_L_MINPARM    FFFFFFE8            

CLI$_ONLEVL    = 00038100            PRC_L_PROCUIC    00000098            WRK_L_PARMCNT    FFFFFFF0            

CLI$_ONOVF     = 00038108            PRC_L_SAVAP      00000000            WRK_L_PAROUT     FFFFFFF4            

IF              - IF DCLS COMMAND EXECUTION                      22-AUG-1978 01:17:58   VAX-11 MACRO X0.3-11               Page   4

SYMBOL TABLE                                                                                                                     (1)



WRK_L_PROMPT     FFFFFFD0            

WRK_L_PROPTR     FFFFFFDC            

WRK_L_QUABLK     FFFFFFE0            

WRK_L_RSLNXT     FFFFFD34            

WRK_L_SAVAP      FFFFFFC8            

WRK_L_SAVFP      FFFFFFCC            

WRK_L_SAVSP      FFFFFFC4            

WRK_M_COMMAND  = 00000002            

WRK_M_IMCHNG   = 00000004            

WRK_M_INQUIRE  = 00000100            

WRK_M_NOSTAT   = 00000200            

WRK_M_PROMPT   = 00000008            

WRK_M_QUAL     = 00000010            

WRK_M_QUOTE    = 00000020            

WRK_M_RUNDWN   = 00000001            

WRK_M_STAR     = 00000040            

WRK_M_TRAILSPC = 00000400            

WRK_M_VERB     = 00000080            

WRK_Q_IOSB       FFFFFFD4            

WRK_V_COMMAND  = 00000001            

WRK_V_IMCHNG   = 00000002            

WRK_V_INQUIRE  = 00000008            

WRK_V_NOSTAT   = 00000009            

WRK_V_PROMPT   = 00000003            

WRK_V_QUAL     = 00000004            

WRK_V_QUOTE    = 00000005            

WRK_V_RUNDWN   = 00000000            

WRK_V_STAR     = 00000006            

WRK_V_TRAILSPC = 0000000A            

WRK_V_VERB     = 00000007            

WRK_W_FLAGS      FFFFFFFA            

WRK_W_IMGCHAN    FFFFFFF8            





PROGRAM SECTION SYNOPSIS



.  ABS  .        00000000      00     NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT BYTE  

. BLANK .        00000000      01     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

$ABS$            FFFFFFFC      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

DCL$ZCODE        00000010      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

19266. BYTES LEFT IN FREE MEMORY POOL.

1448. BYTES OF RECLAIMED MEMORY.

EXE$:IF,LIS$:IF/-SP=EXECML$/ML,LIB$:DCL/ML,SRC$:IF

21 MLB DIR RDS - 345 GETS TO DEFINE 16 MACROS. 22 INTER. FILE WRITES. 

