*COPY TREXT 00001000
PUSH PRINT 00001200
AIF ('&SYSPARM' NE 'SUP').TRE01 00001400
PRINT OFF,NOGEN 00001600
.TRE01 ANOP 00001800
TREXT DSECT 00002000
SPACE 00003000
*** TREXT - VIRTUAL MACHINE TRACING EXTENSION 00004000
* 00005000
* 0 +-----------------------+-----------------------+ 00006000
* | TREXIN1 | TREXIN2 | 00007000
* 8 +-----------+-----------+-----+-----+-----------+ 00008000
* | TREXSVC1 | TREXSVC2 | T*1 | T*2 | TREXLOCK | 00009000
* 10 +-----------+-----------+-----+-----+-----------+ 00010000
* | TREXPERA | TREXPERC | TREXLCNT | 00011000
* 18 +-----------------------+-----------+-----------+ 00012000
* | TREXANSI | TREXCR9 | 00013000
* 20 +-----------------------+-----------------------+ 00014000
* | TREXCR10 | TREXCR11 | 00015000
* 28 +-----------------------+-----------------------+ 00016000
* | | 00017000
* = TREXBUFF = 00018000
* | | 00019000
* 78 +-----------------------------------------------+ 00020000
* 00021000
*** TREXT - VIRTUAL MACHINE TRACING EXTENSION 00022000
SPACE 00023000
TREXIN1 DS 1F FIRST ADDRESS - REPLACED INSTRUCTION 00024000
TREXIN2 DS 1F SECOND ADDRESS - REPLACED INSTRUCTION 00025000
TREXSVC1 DS 1H DISPLACED HALFWORD - INSTR. ONE 00026000
TREXSVC2 DS 1H DISPLACED HALFWORD - INSTR. TWO 00027000
TREXFLAG DS 1X T*1 TRACING CONTROL FLAGS 00033000
TREXOUT DS 1X T*2 TRACE OUTPUT CONTROL FLAGS 00034000
TREXLOCK DS 1H INDICATES TRACING RIGHT NOW WHEN SET 00035000
TREXPERA DS 1F (1) PER EVENT ADDRESS ON INTERRUPT 00036000
TREXPERC DS 1H (2) PER CODE BITS FROM HARDWARE EVENT 00037000
TREXLCNT DS 1H PRINTED OUTPUT LINE COUNT 00038000
TREXANSI DS 1A ADDR OF NEXT (OR LAST) SEQUENTIAL INSTR 00039000
TREXCR9 DS 0F (1) SHADOW CONTROL REGS FOR PER TRACE: 00040000
TREXPER DS XL2 PER CONTROL FIELD 00041000
TREXPREG DS 1H PER REGISTER MASK FIELD 00042000
TREXCR10 DS 1F (2) ADDRESS RANGE START VALUE 00043000
TREXCR11 DS 1F (3) ADDRESS RANGE ENDING VALUE 00044000
TREXBUFF DS 10D CONSOLE/PRINTER OUTPUT BUFFER (80 BYTES) 00045000
SPACE 00045500
TREXSIZE EQU (*-TREXT)/8 00046000
SPACE 00047000
ORG TREXIN1 RE-DEFINITION FOR PER TRACING 00048000
TREXPSW DS 1D OLD PSW FOR PENDING SVC INTERRUPT 00049000
TREXINTL DS 1H INTRUCTION LENGTH CODE 00050000
TREXINTC DS 1H INTERRUPT CODE FOR PENDING INTERRUPT 00051000
SPACE 00052000
ORG TREXPERA RE-DEFINITION FOR "TRACE" USE 00057000
TREXNSI DS 6X ACTUAL NEXT (OR LAST) SEQUENTIAL INSTR 00058000
SPACE 00059000
ORG TREXCR9 RE-DEFINITION FOR "TRACE" USE 00060000
TREXCTL DS 0H HALFWORD HOLDING TRACING CONTROL BITS: 00061000
TREXCTL1 DS 1X FIRST BYTE = SAME AS VMTRCTL IN VMBLOK 00062000
TREXCTL2 DS 1X SECOND BYTE = REMAINING CONTROL BITS 00063000
TREXPRNT DS 1H PRINTER FLAGBITS CORRESPONDING TO TREXCTL 00064000
TREXTERM DS 1H TERMINAL FLAGBITS CORR. TO TREXCTL 00065000
TREXRUNF DS 1H RUN/NORUN FLAGBITS CORR. TO TREXCTL 00066000
TREXPNTR DS 1F PNTR TO 1ST STACKED TRACE REQUEST, IF ANY 00067000
SPACE 00068000
* BITS DEFINED IN TREXFLAG: 00069100
TREXRUN EQU X'80' DO NOT ENTER CFWAIT BETWEEN EVENTS 00069200
TREXVAT EQU X'40' CALL DMKVATRN TO PUT BACK VIRTUAL DATA 00069300
TREXNDSP EQU X'20' DSP SHOULD NOT CALL TRCIT 00069350
SPACE 00069400
* BITS DEFINED IN TREXOUT: 00069500
TREXPRT EQU X'80' OUTPUT TO THE VIRTUAL SPOOL PRINTER 00069600
TREXCON EQU X'40' OUTPUT TO VIRTUAL MACHINE CONSOLE 00069700
SPACE 00069800
* BITS DEFINED IN TREXCTL2: 00069900
TREXCCW EQU X'80' TRACE VIRTUAL AND REAL CCWS 00070000
TREXCSW EQU X'40' TRACE VIRTUAL AND REAL CSWS 00071000
TREXBRAN EQU X'20' TRACE SUCCESSFUL BRANCHES 00072000
TREXINST EQU X'10' TRACE ALL INSTRUCTIONS 00073000
EJECT 00074000
POP PRINT 00075000
SPACE 00076000