PROGSET         - BACKTRANSLATOR SUBROUTINE                      22-AUG-1978 05:17:23   VAX-11 MACRO X0.3-11               Page   1

123077                                                                                                                           (1)



                                     0000     1 	.TITLE	PROGSET - BACKTRANSLATOR SUBROUTINE

                                     0000     2 	.IDENT	/123077/

                                     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 ; H.J.	AUGUST 1977

                                     0000    24 ;

                                     0000    25 ; BACKTRANSLATOR SUBROUTINE PROGSET

                                     0000    26 ;

PROGSET         - BACKTRANSLATOR SUBROUTINE                      22-AUG-1978 05:17:23   VAX-11 MACRO X0.3-11               Page   2

123077                                                                                                                           (2)



                                     0000    28 ;

                                     0000    29 ; MACRO LIBRARY CALLS

                                     0000    30 ;

                                     0000    31 	$BTDEFS				;DEFINE VALUES TO BE USED LOCALLY

                                     0000       	.SAVE

                                 00000000       	.PSECT	$ABS$,ABS

                                     0000       	.RESTORE

                                     0000    32 	$CLIDEF				;DEFINE CLI QUALIFIER CODES AND VALUES

                                     0000       	.SAVE

                                 00000000       	.PSECT	$ABS$,ABS

                                     0000       CLI$L_INIARGCNT:

                           00000004  0000        			.BLKL	1

                                     0004       CLI$A_PROGXFER:

                           00000008  0004        			.BLKL	1

                                     0008       CLI$A_UTILSERV:

                           0000000C  0008        			.BLKL	1

                                     000C       CLI$A_IMGHDADR:

                           00000010  000C        			.BLKL	1

                                     0010       CLI$A_IMGFILED:

                           00000014  0010        			.BLKL	1

                                     0014       CLI$L_LINKFLAG:

                           00000018  0014        			.BLKL	1

                                     0018       CLI$L_CLIFLAG:

                           0000001C  0018        			.BLKL	1

                           00000000  001C        	. = 0

                                     0000       CLI$B_RQTYPE:

                           00000001  0000        			.BLKB	1

                                     0001       CLI$W_SERVCOD:

                                     0001       CLI$B_RQINDX:

                                     0001       CLI$B_BITNUM:

                           00000002  0001        			.BLKB	1

                                     0002       CLI$B_RQFLGS:

                           00000003  0002        			.BLKB	1

                                     0003       CLI$B_RQSTAT:

                           00000004  0003        			.BLKB	1

                                     0004       CLI$A_ERRACT:

                           00000008  0004        			.BLKL	1

                                     0008       CLI$Q_RQDESC:

                                     0008       CLI$W_RQSIZE:

                           0000000A  0008        			.BLKW	1

                           0000000C  000A        			.BLKW	1

                                     000C       CLI$L_RQVALU:

                                     000C       CLI$A_RQADDR:

                           00000010  000C        			.BLKL	1

                                     0010       CLI$A_PRSACT:

                           00000014  0010        			.BLKL	1

                                     0014       CLI$A_ABSACT:

                           00000018  0014        			.BLKL	1

                                     0018       CLI$A_QUALST:

                           0000001C  0018        			.BLKL	1

                                     001C       CLI$C_REQDESC:

                                     001C       CLI$K_REQDESC:

                           00000000  001C        	. = 0

                                     0000       CLI$B_QDBLKSIZ:

                           00000001  0000        			.BLKB	1

                                     0001       CLI$B_QDCODE:

                           00000002  0001        			.BLKB	1

PROGSET         - BACKTRANSLATOR SUBROUTINE                      22-AUG-1978 05:17:23   VAX-11 MACRO X0.3-11               Page   3

123077                                                                                                                           (2)



                                     0002       CLI$B_QDFLGS:

                           00000003  0002        			.BLKB	1

                                     0003       CLI$B_QDSTAT:

                           00000004  0003        			.BLKB	1

                                     0004       CLI$Q_QDVALDESC:

                                     0004       CLI$W_QDVALSIZ:

                           00000006  0004        			.BLKW	1

                           00000008  0006        			.BLKW	1

                                     0008       CLI$A_QDVALADR:

                           0000000C  0008        			.BLKL	1

                                     000C       CLI$A_TRUACT:

                           00000010  000C        			.BLKL	1

                                     0010       CLI$A_FLSACT:

                           00000014  0010        			.BLKL	1

                                     0014       CLI$C_QUALDEF:

                                     0014       CLI$K_QUALDEF:

                                     0014       CLI$C_QDBITS:

                                     0014       CLI$K_QDBITS:

                                     0014       CLI$L_USRVAL:

                           00000018  0014        			.BLKL	1

                           00000000  0018        	. = 0

                                     0000       CLI$L_WORKAREA:

                           00000080  0000        			.BLKL	32

                                     0080       CLI$C_WORKAREA:

                                     0080       CLI$K_WORKAREA:

                                     0000       	.RESTORE

                                     0000    33 

                                     0000    34 ;

                                     0000    35 ; LOCAL SYMBOLS

                                     0000    36 ;

                                     0000    37 

                                     0000    38 ;

                                     0000    39 ; ARGUMENT LIST OFFSET DEFINITIONS

                                     0000    40 ;

                                     0000    41 

                                     0000    42 ;

                                     0000    43 ; LOCAL DATA

                                     0000    44 ;

                                     0000    45 	IMPURE

                                 00000000       	.PSECT	IMPURE_	LONG,RD,WRT,NOEXE

                                     0000    46 ;

                                     0000    47 ;

                                     0000    48 ;

                                 00  0000    49 PROGINDEX::	.BYTE	0		;INDEX TO PROGRAM TO RUN

                                 00  0001    50 PROGFLAG::	.BYTE	0		;NEQ 0 INDICATES SPECIFICALLY SET

                                     0002    51 

                                     0002    52 	PURE

                                 00000000       	.PSECT	PURE_	BYTE,RD,EXE,NOWRT

PROGSET         - BACKTRANSLATOR SUBROUTINE                      22-AUG-1978 05:17:23   VAX-11 MACRO X0.3-11               Page   4

123077                                                                                                                           (3)



                                     0000    54 ;	.SBTTL	PROGSET - INITIALIZATION AND PROGRAM SETTING

                                     0000    55 ;+

                                     0000    56 ; PROGSET   COMMON INITIALIZATION FOR THE MACRO TRANSLATION FUNCTIONS

                                     0000    57 ;	    AND SETTING THE PROGRAM TO RUN

                                     0000    58 ;

                                     0000    59 ;  INPUTS:

                                     0000    60 ;	4(SP) -> MACRO GENERATED PARAMETER BLOCK

                                     0000    61 ;		0(BLOCK) PROGRAM INDEX OR 0

                                     0000    62 ;		1(BLOCK) FLAGS

                                     0000    63 ;		2(BLOCK) OPTIONAL BYTE STRING LENGTH

                                     0000    64 ;		3(BLOCK) OPTIONAL STRING

                                     0000    65 ;

                                     0000    66 ;  OUTPUTS:

                                     0000    67 ;	R10 -> 2ND BYTE OF PARAMETER BLOCK OR RETURN ADDRESS

                                     0000    68 ;	R8  CONTAINS FLAG BYTE OF PARAMETER BLOCK

                                     0000    69 ;	PROGINDEX CONTAINS PROGRAM TO RUN

                                     0000    70 ;	PROGFLAG  CONTAINS EXPLICITLY REQUESTED FLAG

                                     0000    71 ;

                                     0000    72 ;-

                                     0000    73 PROGSET::

       0000'CF       0000'CF     90  0000    74 	MOVB	W^HOLDLOC,W^LOCATION	;RESTORE NORMAL PLACE FOR OPTIONS

                     0480 8F     BA  0007    75 	POPR	#^M<R7,R10>		;GET OUR RETURN ADDR INTO R7

                                     000B    76 					;GET OUR CALLERS RETURN ADDR INTO R10

            58            8A     90  000B    77 	MOVB	(R10)+,R8		;GET FLAG BITS BYTE

            58            05     E1  000E    78 	BBC	#BTR$V_EXPLICIT,R8,40$	;BRANCH IF DOESN'T NEED TO BE EXPLICIT

                          09         0011       

            50         04 AC     D0  0012    79 	MOVL	4(AP),R0		;GET ADDRESS OF QUALIFIER DESC BLOCK

         03 A0            01     E1  0016    80 	BBC	#CLI$V_QUALEXP,CLI$B_QDSTAT(R0),50$ ;BRANCH IF QUAL DEFAULTED

                          2B         001A       

            56            8A     90  001B    81 40$:	MOVB	(R10)+,R6		;GET PROGRAM TO RUN INDEX

                          1B     13  001E    82 	BEQL	20$			;BRANCH IF NOT GIVEN

                     0000'CF     95  0020    83 	TSTB	W^PROGINDEX		;IS A SPECIFIC PROGRAM ALREADY SET?

                          07     13  0024    84 	BEQL	10$			;BRANCH IF NOT

       0000'CF            56     91  0026    85 	CMPB	R6,W^PROGINDEX		;DO PROGRAMS AGREE?

                          1A     12  002B    86 	BNEQ	CNFLCT			;BRANCH IF NOT, AN ERROR

       0000'CF            56     90  002D    87 10$:	MOVB	R6,W^PROGINDEX		;SET PROGRAM FOR LATER

            58            01     E1  0032    88 	BBC	#BTR$V_FORCE,R8,20$	;BRANCH IF NOT AN EXPLICIT SETTING

                          05         0035       

       0001'CF            01     88  0036    89 	BISB	#1,W^PROGFLAG		;SET EXPLICIT INDICATOR

            58            02     E1  003B    90 20$:	BBC	#BTR$V_TEMPPOS,R8,30$	;BRANCH IF TEMPORARY LOCATION NOT USED

                          05         003E       

       0000'CF            8A     90  003F    91 	MOVB	(R10)+,W^LOCATION		;SET THE TEMPORARY LOCATION

                          67     17  0044    92 30$:	JMP	(R7)			;RETURN TO CALLER

                                 04  0046    93 50$:	RET				;RETURN DIRECTLY TO CLI

                                     0047    94 

                                     0047    95 CNFLCT:	ERROR	ILLEGOPT,FATAL		;ISSUE THE ERROR, DON'T CONTINUE

            50            1C     9A  0047       	MOVZBL	#BTR$_ILLEGOPT+FATAL&^XFF,R0

                          FFB3'  31  004A       	BRW	ERR_EXIT

                                     004D    96 

PROGSET         - BACKTRANSLATOR SUBROUTINE                      22-AUG-1978 05:17:23   VAX-11 MACRO X0.3-11               Page   5

123077                                                                                                                           (3)



                                     004D    98 ;+

                                     004D    99 ; DEFAULTPROG	THIS ROUTINE SET UP A DEFAULT PROGRAM TO RUN IF NO

                                     004D   100 ;		QUALIFIER HAS ALREADY CAUSED AN EXPLICIT ONE AND

                                     004D   101 ;		CHECKS TO MAKE SURE THE DEFAULT IS NOT IN CONFLICT

                                     004D   102 ;

                                     004D   103 ;  INPUTS:

                                     004D   104 ;	R0=	PROGRAM INDEX

                                     004D   105 ;

                                     004D   106 ;  OUTPUTS:

                                     004D   107 ;	PROGINDEX IS OPTIONALLY SET

                                     004D   108 ;	ERROR TERMINATION OCCURS IN CASE OF CONFLICT

                                     004D   109 ;-

                                     004D   110 DEFAULTPROG::

            12       0001'CF     E8  004D   111 	BLBS	W^PROGFLAG,20$		;BRANCH IF PROGRAM IS EXPLICIT

                     0000'CF     95  0052   112 	TSTB	W^PROGINDEX		;IS A PROGRAM ALREADY SET?

                          07     13  0056   113 	BEQL	10$			;BRANCH IF NOT

       0000'CF            50     91  0058   114 	CMPB	R0,W^PROGINDEX		;MAKE SURE THEY MATCH

                          E8     12  005D   115 	BNEQ	CNFLCT			;BRANCH IF NOT, ERROR

       0000'CF            50     90  005F   116 10$:	MOVB	R0,W^PROGINDEX		;SET THE PROGRAM NUMBER UP

                                 05  0064   117 20$:	RSB				;RETURN

                                     0065   118 	

                                     0065   119 	.END

PROGSET         - BACKTRANSLATOR SUBROUTINE                      22-AUG-1978 05:17:23   VAX-11 MACRO X0.3-11               Page   6

SYMBOL TABLE                                                                                                                     (3)



BIT...         = 00000045            CLI$K_ENDPRM1  = 00000030            CLI$M_VERIFY   = 00000004            

BTR$M_DECIMAL  = 00000080            CLI$K_ENDPRM2  = 00000031            CLI$M_VFYINP   = 00000020            

BTR$M_EXPLICIT = 00000020            CLI$K_ENDPRM3  = 00000032            CLI$Q_QDVALDESC  00000004            

BTR$M_FORCE    = 00000002            CLI$K_ENDPRM4  = 00000033            CLI$Q_RQDESC     00000008            

BTR$M_LIST     = 00000040            CLI$K_FILSPEC  = 00000044            CLI$S_PRITYP   = 00000004            

BTR$M_MULTKEY  = 00000010            CLI$K_GETCMD   = 00000001            CLI$S_SUBTYP   = 00000004            

BTR$M_RETURN   = 00000001            CLI$K_GETOPT   = 00000003            CLI$S_TRMVRBLV = 00000002            

BTR$M_TEMPPOS  = 00000004            CLI$K_GETQUAL  = 00000002            CLI$V_ABSADR   = 00000001            

BTR$M_VALREQ   = 00000008            CLI$K_INITPRS  = 00000000            CLI$V_ALLOCCUR = 00000000            

BTR$V_DECIMAL  = 00000007            CLI$K_INPSPEC  = 00000001            CLI$V_BATCH    = 00000003            

BTR$V_EXPLICIT = 00000005            CLI$K_INPUT1   = 00000010            CLI$V_CONCATINP= 00000001            

BTR$V_FORCE    = 00000001            CLI$K_INPUT2   = 00000011            CLI$V_DBGEXCP  = 00000010            

BTR$V_LIST     = 00000006            CLI$K_INPUT3   = 00000012            CLI$V_DBGTRU   = 00000001            

BTR$V_MULTKEY  = 00000004            CLI$K_INPUT4   = 00000013            CLI$V_DEBUG    = 00000000            

BTR$V_RETURN   = 00000000            CLI$K_KEYVAL   = 00000043            CLI$V_DUMMY    = 00000001            

BTR$V_TEMPPOS  = 00000002            CLI$K_KEYWORD  = 00000042            CLI$V_EXPNAM   = 00000002            

BTR$V_VALREQ   = 00000003            CLI$K_NUMERVAL = 00000040            CLI$V_INDIRECT = 00000004            

BTR$_AMBIGKEYW = 00688030            CLI$K_OUTPUT1  = 00000020            CLI$V_KEYVALU  = 00000001            

BTR$_ILLEGOPT  = 00688018            CLI$K_OUTPUT2  = 00000021            CLI$V_LASTVAL  = 00000000            

BTR$_IMGFNF    = 00688060            CLI$K_OUTPUT3  = 00000022            CLI$V_MOREINP  = 00000002            

BTR$_INTFAIL   = 00688048            CLI$K_OUTPUT4  = 00000023            CLI$V_MOREVALS = 00000000            

BTR$_INVALKEYW = 00688028            CLI$K_OUTSPEC  = 00000002            CLI$V_PARMDEF  = 00000003            

BTR$_KEYVALOVR = 00688038            CLI$K_PARDONE  = 00000003            CLI$V_PARMPRS  = 00000000            

BTR$_MISSNGVAL = 00688008            CLI$K_QDBITS     00000014            CLI$V_PARMREQ  = 00000000            

BTR$_NOTIMPLEM = 00688020            CLI$K_QUALDEF    00000014            CLI$V_PRITYP   = 00000004            

BTR$_OPTVALOVR = 00688050            CLI$K_REQDESC    0000001C            CLI$V_QDEXPA   = 00000002            

BTR$_STRINGOVR = 00688010            CLI$K_UTILOPR  = 00000000            CLI$V_QDUSRV   = 00000001            

BTR$_TOOMANY   = 00688058            CLI$K_VALCONV  = 00000004            CLI$V_QUALEXP  = 00000001            

BTR$_UNEXPLIST = 00688040            CLI$K_WORKAREA   00000080            CLI$V_QUALTRU  = 00000000            

BTRAN          = 00680000            CLI$L_CLIFLAG    00000018            CLI$V_SUBTYP   = 00000000            

CLI$A_ABSACT     00000014            CLI$L_INIARGCNT  00000000            CLI$V_TRMVRBLV = 00000008            

CLI$A_ERRACT     00000004            CLI$L_LINKFLAG   00000014            CLI$V_VERIFY   = 00000002            

CLI$A_FLSACT     00000010            CLI$L_RQVALU     0000000C            CLI$V_VFYINP   = 00000005            

CLI$A_IMGFILED   00000010            CLI$L_USRVAL     00000014            CLI$W_QDVALSIZ   00000004            

CLI$A_IMGHDADR   0000000C            CLI$L_WORKAREA   00000000            CLI$W_RQSIZE     00000008            

CLI$A_PROGXFER   00000004            CLI$M_ABSADR   = 00000002            CLI$W_SERVCOD    00000001            

CLI$A_PRSACT     00000010            CLI$M_ALLOCCUR = 00000001            CNFLCT           00000047 R     04   

CLI$A_QDVALADR   00000008            CLI$M_BATCH    = 00000008            DEFAULTPROG      0000004D RG    04   

CLI$A_QUALST     00000018            CLI$M_CONCATINP= 00000002            ERR_EXIT         ********   X   04   

CLI$A_RQADDR     0000000C            CLI$M_DBGEXCP  = 00010000            FATAL          = 00000004            

CLI$A_TRUACT     0000000C            CLI$M_DBGTRU   = 00000002            GBL...         = 00000000            

CLI$A_UTILSERV   00000008            CLI$M_DEBUG    = 00000001            HOLDLOC          ********   X   04   

CLI$B_BITNUM     00000001            CLI$M_DUMMY    = 00000002            LAST_PARAM     = FFFFFFEC            

CLI$B_QDBLKSIZ   00000000            CLI$M_EXPNAM   = 00000004            LOCATION         ********   X   04   

CLI$B_QDCODE     00000001            CLI$M_INDIRECT = 00000010            NONE           = 00000000            

CLI$B_QDFLGS     00000002            CLI$M_KEYVALU  = 00000002            PRIM_INPUT     = FFFFFFF6            

CLI$B_QDSTAT     00000003            CLI$M_LASTVAL  = 00000001            PRIM_OUTPUT    = 00000000            

CLI$B_RQFLGS     00000002            CLI$M_MOREINP  = 00000004            PROGFLAG         00000001 RG    03   

CLI$B_RQINDX     00000001            CLI$M_MOREVALS = 00000001            PROGINDEX        00000000 RG    03   

CLI$B_RQSTAT     00000003            CLI$M_PARMDEF  = 00000008            PROGSET          00000000 RG    04   

CLI$B_RQTYPE     00000000            CLI$M_PARMPRS  = 00000001            PROG_BP2       = 0000000C            

CLI$C_QDBITS     00000014            CLI$M_PARMREQ  = 00000001            PROG_CBL       = 00000008            

CLI$C_QUALDEF    00000014            CLI$M_QDEXPA   = 00000004            PROG_CNT       = 0000000F            

CLI$C_REQDESC    0000001C            CLI$M_QDUSRV   = 00000002            PROG_DIF       = 0000000F            

CLI$C_WORKAREA   00000080            CLI$M_QUALEXP  = 00000002            PROG_DMP       = 00000007            

CLI$K_ASCIIVAL = 00000041            CLI$M_QUALTRU  = 00000001            PROG_F4V       = 00000002            

CLI$K_CLISERV  = 00000005            CLI$M_TRMVRBLV = 00000300            PROG_LBR       = 0000000B            

PROGSET         - BACKTRANSLATOR SUBROUTINE                      22-AUG-1978 05:17:23   VAX-11 MACRO X0.3-11               Page   7

SYMBOL TABLE                                                                                                                     (3)



PROG_LIB       = 0000000A            

PROG_MAC       = 00000004            

PROG_MAR       = 00000003            

PROG_PIP       = 00000001            

PROG_SLP       = 00000006            

PROG_SOS       = 00000005            

PROG_SRT       = 0000000E            

PROG_TKB       = 00000009            

PROG_UFD       = 0000000D            

SAVE_REG_MASK  = 00000FFC            





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$            00000080      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

IMPURE_          00000002      03     NOPIC   USR   CON   REL   LCL NOSHR NOEXE   RD    WRT LONG  

PURE_            00000065      04     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

19296. BYTES LEFT IN FREE MEMORY POOL.

2466. BYTES OF RECLAIMED MEMORY.

OBJ$:PROGSET,LIS$:PROGSET/-SP/LI:MEB=EXECML$/ML,LIB$:B/ML,SRC$:PROGSET

23 MLB DIR RDS - 319 GETS TO DEFINE 16 MACROS. 46 INTER. FILE WRITES. 

