MACRO @V407508 00001000
&NAME SWTCHVM &OPT= @V4M0193 00002100
GBLB &AP @V407508 00003000
LCLB &ST,&NO @V4M0913 00004100
LCLC &PARM,&IN @V407508 00005000
LCLA &X @V407508 00006000
&IN SETC '&SYSNDX' @V407508 00007000
AIF (T'&NAME EQ 'O').NOLABEL @V407508 00008000
&NAME DS 0H @V407508 00009000
.NOLABEL ANOP @V407508 00010000
AIF ('&AP' EQ '0').UP @V407508 00011000
AIF (T'&OPT EQ 'O').DONE @V407508 00012000
&ST SETB 0 @V407508 00013000
&NO SETB 0 @V407508 00014000
&X SETA 1 @V407508 00015000
AIF ('&OPT'(1,1) NE '(').SCAN @V407508 00016000
&X SETA 2 @V407508 00017000
.SCAN ANOP @V407508 00018000
AIF ('&OPT'(&X,4) EQ 'STAY').STY @V407508 00019000
AIF ('&OPT'(&X,6) EQ 'NOUPDT').NOUP @V407508 00020000
AIF ('&OPT'(&X,6) NE 'UNLOCK').ERR1 @V407508 00021000
AIF (&NO OR &ST).ERR2 @V407508 00022000
&PARM SETC 'SVMUNLOK' @V407508 00023000
&X SETA &X+6 @V407508 00024000
AGO .ENDCHK @V407508 00025000
.NOUP ANOP @V407508 00026000
AIF (&NO).ERR1 @V407508 00027000
&NO SETB 1 @V407508 00028000
&X SETA &X+6 @V407508 00029000
AIF (&ST).BOTH @V407508 00030000
&PARM SETC 'SVMNOUPD' @V407508 00031000
AGO .NEXT @V407508 00032000
.STY ANOP @V407508 00033000
AIF (&ST).ERR1 @V407508 00034000
&ST SETB 1 @V407508 00035000
&X SETA &X+4 @V407508 00036000
AIF (&NO).BOTH @V407508 00037000
&PARM SETC 'SVMSTAY' @V407508 00038000
.NEXT ANOP @V407508 00039000
AIF (&X GT K'&OPT).DONE @V407508 00040000
AIF ('&OPT'(&X,1) EQ ')').DONE @V407508 00041000
AIF ('&OPT'(&X,1) EQ '+').BUMP @V407508 00042000
AIF ('&OPT'(&X,1) NE ',').ERR1 @V407508 00043000
.BUMP ANOP @V407508 00044000
&X SETA &X+1 @V407508 00045000
AGO .SCAN @V407508 00046000
.BOTH ANOP @V407508 00047000
&PARM SETC 'SVMSTAY+SVMNOUPD' @V407508 00048000
.ENDCHK ANOP @V407508 00049000
AIF (&X GT K'&OPT).DONE @V407508 00050000
AIF ('&OPT'(&X,1) NE ')').ERR1 @V407508 00051000
.DONE ANOP @V407508 00052000
TM APSTAT1,APUOPER IS THE AP OPERATIONAL? @V407508 00059000
BZ SVM&IN.A NO, SKIP LOCKING THE NEW VM @V407508 00060000
AIF (T'&OPT EQ 'O').NOPT @V407508 00061000
LA R0,&PARM LOAD PARAMETER REGISTER @V407508 00062000
AGO .OPTS @V407508 00063000
.NOPT ANOP @V407508 00064000
SLR R0,R0 CLEAR PARAMETER REGISTER @V407508 00065000
.OPTS ANOP @V407508 00066000
L R15,=V(DMKLOKSW) GET ADDR OF SWITCH VM ROUTINE @V407508 00067000
BALR R14,R15 BRANCH TO SWITCH VM ROUTINE @V407508 00068000
B SVM&IN.B CONTINUE @V407508 00069000
SVM&IN.A DS 0H @V407508 00070000
CHARGE SWITCH,1 SWITCH TIMER AND R11 TO NEW VM @V407508 00071000
SVM&IN.B DS 0H @V407508 00072000
MEXIT @V407508 00076000
.UP ANOP @V407508 00077000
CHARGE SWITCH,1 SWITCH TIMER AND R11 TO NEW VM @V407508 00078000
MEXIT @V407508 00079000
.ERR1 MNOTE 8,'INVALID ''OPT='' OPERAND SPECIFIED' @V407508 00080000
MEXIT @V407508 00081000
.ERR2 MNOTE 8,'MUTUALLY EXCLUSIVE OPERANDS SPECIFIED' @V407508 00082000
MEND @V407508 00083000