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