*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