$JOB ASSIST XREF=3 * THIS IS A TEST PROGRAM FOR THE NEW XOPC INSTRUCTION OF THE * ASSIST EXTENDED INTERPRETER. IT TESTS XOPC #'S 0,1,2,4 AND 21 SPACE 2 MAIN CSECT STM 14,12,12(13) SAVE THOSE REGISTERS BALR 12,0 USING *,12 LA 1,ABCODE GET ADDRESS OF ABEND CODE IN REG 1 SR 0,0 GET ZERO IN R2 O 0,=XL4'00004F00' TURN ON PROPER BITS FOR ABEND XOPC 0 SET SPIES OC1,4,5,6 AND 7 LA 5,10 LA 7,15 DC X'00000000' BLOW UP WITH AN OC1 NEXTEX EQU * XDUMP LA 1,ABCODE GET ASDDR OF TOP OF TRACE LA 0,NEXTEX GET ADR OF BOTTOM OF THE TRACE XOPC 1 SET TRACE ADDRESSES XOPC 2 TURN ON THE TRACE BZ OKXOPC IF CONDITION CODE OK BRANCH XPRNT =CL33'0XOPC RETURNED A BAD CONDITION CODE ',33 XDUMP B RETURN BAG THIS TEST OKXOPC XPRNT =CL27'0THIS IS THE TRACED LOOP',27 XDUMP BCT 5,OKXOPC BRANCH INTO A LOOP 10 TIMES. XOPC 4 LOOP FINISHED TURN OFF THE TRACE BZ RETURN TEST CC AGAIN ABCODE EQU * THE SPIE EXIT CODE XDUMP , DUMP THE REGS XPRNT =CL40'0HI WE ARE IN THE ABEND CODE ',40 00001600 LA 1,NEXTEX GET ADDR OF RESUMING INSTR XOPC 21 RESUME NORMAL EXECUTION RETURN EQU * XOPC 21 TEST THE CC AGAIN BL RETURNA XPRNT =CL13'0BAD CC AGAIN',13 RETURNA EQU * LM 14,12,12(13) RELOAD THOSE REGISTERS BR 14 LTORG END $ENTRY $JOB ASSIST XREF=1 * THIS IS A TEST PROGRAM FOR THE NEW XOPC INSTRUCITON 00002260 * OF THE ASSIST EXTENDED INTERPRETER. IT TESTS XOPC #'S 00002265 * 0,3,4,11,14,15 AND 21 00002270 MAIN CSECT THIS IS XPOPC TEST PROGRAM #2 STM 14,12,12(13) SAVE THOSE REGISTERS BALR 12,0 USING *,12 SR 0,0 ZERO OUT REG 0 FOR XOPC SPIE SET O 0,=XL4'00004F00' SET UP ZERO SO SOC 1 ,4,5,6,AND 7 A LA 1,ABCODE GET ADDRESS OF ABEND CODE XOPC 0 SET SPIE EXIT ADDRESS LOWADDR EQU * LA 0,LOWADDR GET LOW ADDRESS FOR THE TRACE LA 1,AFTERCL GET HIGH ADDRESS FOR THE TRACE XOPC 3 LA 0,CLOCKEX SET CLOCK EXIT ADDRESS XOPC 15 SET UP A CLOCK EXIT XDUMP , GET THOSE REGS XOPC 11 FETCH INSTRUCTION COUNTER S 0,=F'40' DECREMENT COUNTER BY 40 XOPC 14 SET A CLOCK INTERRUPT FOR 40 INSTRS SR 5,5 SOCLOOP EQU * THIS LOOP FORCES A SOCK 4 LA 5,200(5) ST 5,0(5) BCT 5,SOCLOOP LOOP BACK UNTIL ABEND OCCURS NEXTEX EQU * INSTRUCTION THAT RESUMES NORMAL EXEC XDUMP LA 5,40 FORCE A CLOCK EXIT TO OCCUR CLOCKLP EQU * XDUMP XPRNT =CL45'0WE ARE IN A LOOP TO CAUSE A CLOCK INTERRUPT',45 BCT 5,CLOCKLP AFTERCL EQU * L 0,=F'-1' XOPC 14 XOPC 4 TURN OFF THE CLOCK AND THE TRACE B RETURN CLOCKEX EQU * XDUMP XPRNT =CL50'0WE ARE HANDLING A CLOCK INTERRRUPT',50 B AFTERCL ABCODE EQU * SPIE EXIT CODE XDUMP XPRNT =CL75'0HANDLING A SPIE CAUGHT INTERRUPT',75 LA 1,NEXTEX RESUME EXECUTION XOPC 21 RETURN FROM INT HANDLING STATE RETURN EQU * LM 14,12,12(13) BR 14 LTORG END $ENTRY $JOB ASSIST XREF=3 * THIS IS XOPC TEST PROGRAM NUMBER THREE. IT * WILL TEST LOTS OF XOPCS INCLUDING 0,3,4,5,6,7,8,9,10 00004900 * AND 21 00004910 SPACE 2 00004920 MAIN CSECT STM 14,12,12(13) BALR 12,0 USING *,12 LA 1,ABCODE GET ADDR OF ABEND ROUTINE SR 0,0 ZERO OUT REGISTER ZERO O 0,=XL4'00004F00' CATCH OC'S 1,4,5,AND 6 XOPC 0 TURN ON A PSEUDO SPIE INTERRUPT LOWADRT EQU * LA 0,LOWADRT SET LOW AND HIGH ADDRESSES FOR TRACE LA 1,HIGHADRT XOPC 3 XOPC 5 SET ADDRS FOR STORAGE MODIFICATION XOPC 6 TURN ON STORAGE MOD CHECK XOPC 10 TURN OFF BOUNDARY ALIGNMENT CHECK LA 1,STORADD GET STORAGE ADDRESS ST 1,0(1) TEST STORAGE MODIFICATION CHECKING LA 2,3 GET ODD ADDR INDX TO CHECK ALIGN OFF ST 1,0(2,1) TRY TO STORE ON ODD WORD BOUNDARY XDUMP TOPLOOP EQU * TEST THE TRACE AND MOD CHECK ST 1,0(1) BCT 2,TOPLOOP LOOP THRU HERE THREE TIMES XOPC 9 TURN ALIGNMENT CHECKING FACILITY ON LA 2,3 GET ODD INDEX AGAIN ST 1,0(2,1) A SOC 6 INTERRUPT SHOULD HAPPEN NEXTIN EQU * XOPC 8 TURN OFF STORAGE MOD CHECK XDUMP LA 1,STORADD MODIFY TO SEE IF FACILITY REALLY OFF ST 1,0(1) LA 0,LOWADRT LA 1,HIGHADRT XOPC 7 SET ADDRS AND TURN ON STORAGE MOD BOTLOOP EQU * LA 1,STORADD GET STORAGE ADDR ST 1,0(1) TEST TO SEE IF REALLY ON NOW BCT 2,BOTLOOP BCT FOR TEST XOPC 8 TURN OFF STOR MOD CHECK XOPC 4 TURN OFF TRACE BZ RETURN TEST COND CODE XPRNT =CL12'0CC PROBLEMS',12 RETURN EQU * LM 14,12,12(13) BR 14 ABCODE EQU * XDUMP XPRNT =CL31'0 SHOULD BE IN ABEND CODE SOC 6',31 00007200 LA 1,NEXTIN CONTINUE AFTER ABEND XOPC 21 LTORG STORADD DS 3F'0' GET STORAGE AREA HIGHADRT DS 18F END $ENTRY $JOB ASSIST XREF=3 * THIS PROGRAM TESTS SOME OF THE NEW FEATURES OF THE 00007700 * EXTENDED INTERPRETER. MANY XOPC INSTRUCTIONS ARE 00007710 * TESTED INCLUDING, 3, 16, 17, 18, 19, 20 AND 22 00007720 SPACE 2 00007730 MAIN CSECT STM 14,12,12(13) SAVE THOSE REGISTERS BALR 12,0 USING *,12 SET UP ABASE REGISTER LOWADDR EQU * LA 0,LOWADDR SET LOW ADDRESS FOR TRACE LA 1,NOSPACE GET HIGH ADDRESS FOR TRACE XOPC 3 TURN ON TRACE FACILITY XOPC 18 TURN ON COUNT FACILITY BL NOSPACE CHECK FOR NO SPACE ALLOCATION XOPC 20 CLEAR COUNTERS FOR GOOD COUNT LA 2,40 GET LOOP NUMBER TOPLOOP EQU * LA 3,2 DO JUNK FOR COUNTING PURPOSES LR 4,3 LR 5,4 LR 6,5 AR 4,3 BCT 2,TOPLOOP LOOP AROUND COUNTING INSTRUCTIONS XDUMP XPRNT =CL25'0HAVE FINISHED FIRST LOOP',25 XOPC 17 SHOW CAN CHANGE ADDRS MID-PROGRAM XOPC 16 TRY TO TURN ON AGAIN TURNOFF EQU * XOPC 19 SHUT OFF COUNT FACILITY LA 2,40 SET UP NEW LOOP TO PROVE OFF NXTLOOP EQU * LOOP 40 TIMES WITH JUNK LR 3,2 LR 4,3 LR 5,4 LR 6,5 AR 4,5 BCT 2,NXTLOOP XOPC 16 TURN COUNT FACILITY BACK ON BNL DUMPCNT XPRNT =CL28'0BAD CONDITION CODE NUMBER 2',28 DUMPCNT EQU * XOPC 22 DUMP THE COUNTERS XOPC 19 TURN OF FACILITY AGAIN XOPC 22 DUMP COUNTERS AGAIN MAKE SURE SAME XOPC 20 CLEAR THE COUNTERS XOPC 22 DUMP COUNTERS AGAIN TO PROVE ZERO NOSPACE EQU * XPRNT =CL12'0END OF TEST',12 LM 14,12,12(13) BR 14 END $ENTRY $JOB ASSIST XREF=3 * THIS XOPC TEST PROGRAM TESTS THE COUNT FACILITY EXTENSIVELY * MANY XOPC INSTRUCTIONS ARE INCLUDED IN THIS TEST PROGRAM 00010310 * THOSE TESTED ARE XOPC #'S 2, 16,17,18,19,20, AND 22 00010320 MAIN CSECT STM 14,12,12(13) SAVE THOSE REGISTERS BALR 12,0 USING *,12 SET UP A BASE REGISTER XOPC 2 TURN ON A TRACE XOPC 20 TRY TO CLEAR NON-EXISTANT AREA BL CHECK1 TEST CC SETTING XPRNT =CL28'0BAD CONDITION CODE NUMBER 1',28 CHECK1 EQU * XOPC 19 TRY TO TURN OFF COUNT FACILITY OFF XOPC 16 TURN ON COUNT FACILITY XOPC 16 TRY TO TURN ON AGAIN XOPC 20 CHECK3 EQU * 00011275 XOPC 22 TRY TO DUMP CLEAN AREA LA 2,40 LA 5,2 TOPLOOP EQU * LR 3,2 AR 3,2 BCT 2,TOPLOOP LOOP AROUND COUNTING XOPC 22 DUMP STATISTICS XOPC 19 SHUT OFF COUNT FACILITY XOPC 22 DUMP STATS AGAIN TO SEE IF SAME XOPC 20 CLEAR COUNTERS LA 0,TOPLOOP GET NEW COUNT ADDRESSES LA 1,HIGHADDR GET NEW COUNT ADDRS XOPC 17 SET NEW COUNT ADDRESSES XOPC 16 TURN ON COUNT FACILITY XOPC 18 TRY TO SET ADDRESSES AND TURN ON XOPC 22 DUMP STATISTICS AGAIN XOPC 19 TURN OFF COUNTING XOPC 16 TURN ON COUNTING XOPC 17 SET ADDRESSES XOPC 20 CLEAR COUNTERS XOPC 22 DUMP STATISTICS LM 14,12,12(13) RELOAD REGISTERS HIGHADDR EQU * BR 14 DOMEEEEEEEEEEEEEEEEEEEEEEEEEE END $ENTRY $JOB ASSIST XREF=3 00012850 * THIS TEST PROGRAM MAINLY TESTS THE EMULATION FEATURES 00012900 * OF THE ASSIST EXTENDED INTERPRETER. MANY XOPC 00012950 * INSTRUCTIONS ARE USED INCLUDING XOPC #'S 0, 3, 00013000 * 4, 12, 13, AND 21. MACHINE EMULATION WILL BE 00013050 * CHANGED IN THIS PROGRAM CAUSING A S0C1 EXCEPTION TO 00013100 * WHICH WILL BE INTERCEPTED BY THE ASSIST SPIE 00013150 SPACE 2 00013200 MAIN CSECT 00013250 USING *,15 00013300 STM 14,12,12(13) SAVE THOSE REGISTERS 00013350 SR 0,0 ZERO OUT REG FOR SPIE CODE 00013400 O 0,=XL4'00007800' SET UP TO CATCH 0C1,2,3AND4 00013450 LA 1,ABNDCDE GET ADDRESS OF ABEND CODE 00013500 XOPC 0 SET UP ASSIST SPIE 00013550 LOWADDR EQU * 00013600 LA 0,LOWADDR GET A LOW ADDRESS FOR TRACE 00013650 LA 1,RETURN GET HIGH ADDRESS FOR TRACE 00013700 XOPC 3 SET ADDRESSES AND TURN ON TRACE 00013750 STCM 1,15,STORAGE PROVE THAT ASSIST DEFAULTS TO S370 00013800 XOPC 12 CHANGE ASSIST EMULATION TO S360 00013850 STCM 1,15,STORAGE THIS SHOULD CAUSE A S0C1 00013900 CONTIN EQU * 00013950 XOPC 13 EMULATE 370 AGAIN 00014000 STCM 1,15,STORAGE PROVE WE HAVE 370 EMULATION 00014050 B RETURN WE ARE FINISHED 00014100 ABNDCDE EQU * 00014150 XDUMP , DUMP THE REGISTERS 00014200 XPRNT =CL40'1HELLO FROM THE ABEND CODE FOR S0C1',40 00014250 LA 1,CONTIN GET RETURN ADDRESS 00014300 XOPC 21 RETURN FROM INT PROCESSING 00014350 RETURN EQU * 00014400 XPRNT =CL25'*** END OF TEST ***',25 00014450 LM 14,12,12(13) RELOAD REGISTERS 00014500 BR 14 00014550 STORAGE DS F STORAGE AREA 00014575 END 00014600 $ENTRY 00014650