Introduction

  This page describes the wonderful Ericsson AXE10 Test System and shows some really neat tricks that you can do with it to find problems on live running switches without bursting the CP and at the time of writing is the only ON VAR RE20 page on the net!  The target audience for this page is expert AXE10 testers and support engineers and those are the people who collaborated to produce this information all be it long ago now.  If you don't know what an AXE10 is or have never heard of TEST SYSTEM then this page is probably not for you although I do give some simple descriptions of the environment around this subject.  It starts easy then gets hard quick!  During the last 10 years of my work building softswitches like the Cisco PGW2200, and the Cisco BTS10200, the AXE10 TDM switching legacy of the late 1980's and early 1990's has now been all but destroyed, but there are still many working AXE10's out there for which this information is no longer available but still applicable, so I thought it time to describe these fine features before it's all gone...  For all the years since I last worked on AXE10, all of my call control designs with Cisco have been run on generic multipurpose computing platforms, mostly unix Sun servers, and never a day passed while I was stuck in the lab at Cisco and looking those interminable logs, where I didn't long for the ability of the operating system to just tell me how a few variables were set for my call that was failing so I could work it all out in a flash!  What does Unix know about the compiled C code running on it?  The answer is nothing!.  Many of my colleagues at Cisco were just sick of hearing me talk about the AXE10, so this is for them too...  Depending on what documentation you buy with your AXE10, all of this information is probably right in front of you if you could only see it...

AXE10 APZ 212 Test System

For completeness I'll just add a very short description of AXE10 Central Software and the Test System here just to help you along with the page if you like it so far but don't know about AXE10, and this is in no way intended to be a full description.  The AXE10 is a large carrier class TDM switch with groups switches of up to 128k on a single node and have been sold in more markets than any other switching system.  The software and hardware is divided into Central and Regional components.  The Central Processor (usually just referred to as the CP) is called APZ and the trace examples here are from APZ 212 02 from the early 1990's in most cases.  The APZ CP is literally a real-time supercomputer.  The data store, program store and signal buffers are actually separate pieces of hardware.  Everything from instance variables to marshaled signals between function blocks is all preallocated.  A place for everything and everything it its place.  So no malloc junk here and no performance issues with memory allocation!  The central software is divided into units called Function Blocks.  A block may be a subscriber data manager, a line card owner, a T1 or E1 channel owner, SS7 point code etc.  Each block maintains its own data and no other block can write to another's memory.  It just can't happen, so no shared memory junk here either.  All this means that the operating system knows where every instance of every blocks data and signaling information is.  The variables defined in the code by the block designer are simply numbered from 1 to what ever (sometimes fixed or size alterable), same goes for the signals of which there are several synchronous and asynchronous varieties.  The Test System is a command line interface that can print the values of variables and signal contents within each block in a generic form.  What ever block you load, Test System can print the data directly from the operating system without any need for the designer to give it a thought.  Test System also has a simple although cryptic scripting language that can form powerful trace orders for the CP to undertake as normal traffic flows.  These trace orders or Test System Traces as they are more normally know as are the main subject of this page.  The following printout shows the LASLP command being used to print the variable numbers from a block called EXDA and it shows the size (number of bits) of each.  Note that some are arrays (NINDX).  This on its own means nothing without the E-Module documentation to work out what each variable represents.  The E-Module contains the highlevel program called PLEX and also the assembled version called ASA and in combination you can work out the name and purpose of each numbered variable or signal.

        <SB-B    TRX-4 21202/APT 21008R5   AT-5    TIME 921028 1631  PAGE    1
        LASLP:BLOCK=EXDA;
        STORAGE LAYOUT
        BLOCK      BN  BS       TYPEEXT   TYPE    PSA        PSV    PCV
        EXDA     H'C4  ACTIVE   H'4000    H'8000  H'17DD33  2748   2264
        
          CV   NSIN    NSOUT      NB      BSA       T
          72    144       51      62      H'16166
        
         VAR DFN VCAT          NRR   SMUP LEN NINDX WA             SIZE
           1                          YNN   8       H'006B51E         4
           2                          YNN  16       H'006B51C         4
           3                          YNN  16    32 H'006B50B        34
           4                          YNN  16       H'006B509         4
           5                          YNN  16       H'006B507         4
           6     RE                   YNN  16       H'01A527C         4
           7     RE                   YNN   4       H'01A527A         4
           ...      
      
Test System is itself just blocks of Central Software the main ones being TETM and TOM.  We'll see more of those later.  To open an instance of Test System at the current terminal, you need to use the command: Test System; and to end it you use End Test.  There are four fixed instances of Test System available, so the fifth guy is out of luck.  If you load a real time trace, you need the command INIT; to kick it off.  Use TERM; to terminate the trace activity.

Test System Load Warning!!!

Before going any further with this subject you need to understand some of the risks of Test System if you are thinking of playing with it on a live system!  Because the Test System is literally integrated into every Central Software Block, merely opening a Test System session can lead to increased processor load.  This is because there are four levels of real-time handling that the CP executes.  Lowest is D-Level which is garbage collecting routines and any other very low level work.  Next up is C-Level.  This is mostly where CLI commands are processed.  Next up again is THL, Traffic Handling Level where most of the switches work is done.  Lastly right at the top and most important level is Trace Level where Test System executes.  When ever there is work to be done at a higher level, the current level is frozen (at machine code level) and the higher level is dealt with first to the bitter end :)  Obviously, Trace Level needs to be at the top otherwise you couldn't trace traffic which is mostly what we want to do.  However if you load some long and elaborate trace, or even a simple trace that hits often, before you know it, ALL CP activity is dealing with your trace and the switch is effectively frozen.  The CP gets around this by having some hard wired rules that define how long a single thread of execution can run.  When this is exceeded: System Restart occurs and all traffic handling is further interrupted.  This hard wired rule is complemented by software design rules that limit how much code a designer can write at THL, C or D-Level, but Test System at Trace Level has no bounds!  So having said all that here are two things I know:

1. There are switch managers out there that are literally petrified at the mere mention of Test System because they have been told horror stories about massive network failures because of its use.  Well, since Test System is always deactivated after a System Restart, I fail to see how this could be, however no operator ever wants a System Restart while just looking to fix some minor problem.  To trace during a restart sometimes needs some special patches to be applied which of course would only be done in a lab.

2. In all my years of running carefully constructed Test System traces on live systems, I have never ever caused a restart nor ever heard of such real case.  Having said that, I have several times caused System Restarts in the lab with Test System, so its obviously possible.  If you know of any real world stories on this issue, please let me know.

The general rule is to balance your need to get information from the switch with the risk of causing a larger issue and to do such tracings at a quiet time for the switch.  Either way, I hereby disclaim any responsibility for your impending stupidity in this regard and if you want it done properly, please call me in especially if your switch is in some exotic location :)

Printing Variables With Test System

The following examples just print some variable values.  It makes no difference if the instances being printed are linked into a call or not, the data is still in the same fixed location and Test System just prints it!

More coming soon... (08/06/2018)

Example Test System Traces & CPT commands

As I get time, I'll add a descriptions of traces and add a section on multiple Test System thread traces and morphing traces.  Until then, please browse the following files which contain all sorts!

BC1.txt  THIS TRACE PRINTS THE B-NUMBER & C-NUMBER FOR A PARTICULAR B-NUMBER (AS36 INPH2 SSP)
CPT.txt  Example CPT commands
CPTLOG.txt Example CPT log
DP-ASDH.txt Example ASDH data
RE_GS_Tracelog.txt  Example RE and GS traces
RE_EOS.txt  Example RE End of Selection traces
TOMEOSSET.txt  Print out of TOM with RE EOS trace loaded
SSI.txt  Example SSI traces from AS36
TCAP1.txt  ! FILE TCAP1.TXT TEST SYSTEM INAP/TCAP TRACE TESTED 29/12/93 ETLANKN ;
TCLEOS1.txt  ! FILE TCLEOS1.TXT TEST SYSTEM TEST CALL EOS TRACE TESTED 30/12/93 ETLANKN ;
TESYSLOG.txt  Logs of many traces being loaded and run.
SSIZAP.txt !SSI DATABASE DATA ZEROING PROCEDURE, ETLANKN 12/04/95;

Selection of Useful Traces

! ALL SINGING & ALL DANCING TEST SYSTEM TRACES  ETLANKN 08/12/92;

! TO FIND THE BLOCK THAT OWNES A COMMAND ;

TEST SYSTEM;
ON IN ADE 1;
ON IN DO:IF DR0=1,P SWD,;
INIT;

! ENTER COMMAND HERE ;

TERM;
END TEST;

!TO FIND WHICH PARAMETER IN A COMMAND IS NOT CORRECT AND WHY;

TEST SYSTEM;
PRINT STRVAR AOT 0-:18;   !VAR 18 TXT!

ON IN AFP 1;              !FCHPMR DR2 ONWARDS CONTAINS PARAMETER STRING!
ON IN AOT H'14;           !INSTXT DR0 IS POINTER TO STRVAR 18 TXT ABOVE!
ON IN DO:P SWD,;

INIT;

! ENTER COMMAND HERE ;
! LOOK FOR THE LAST AFP SIG THAT IS SENT BEFORE THE FIRST AOT SIG;
! THIS WILL CONTAIN THE PARAMETER STRING IN ISO CODE;

TERM;
END TEST;


! TO FIND ALL IN'S AND OUT'S IN A BLOCK EXCEPT PERIODICS & OWN BLOCK SIGNALS ;

TEST SYSTEM;
ON IN SSSIM;
ON IN DO:IF SR1/=0;      !IF SENDING BLOCK IS JOB TABLE!
IF SR1/=H'2A4;            !IF BLOCK NOT SELF!
!IF SNR/=H'18;           !IF NOT SUPERVISION SIGNAL!
!IF SNR/=H'28;           !IF NOT SUPERVISION SIGNAL!
P SWD,;

ON OUT SSSIM;
ON OUT DO:IF SR1/=0;     !IF PREVIOUS INSIG WAS FROM JOB!
!IF VAR TETM 74(3)=H'2;   ! SN OF THE OUT GOING SIGNALS !
!IF VAR TETM 74(3)=H'16;
!IF VAR TETM 74(3)=H'C;
P SWD,;


INIT;
! ENTER COMMAND HERE ;

TERM;
END TEST;


! TO FIND ALL IN'S AND OUT'S IN A BLOCK EXCEPT PERIODICS & OWN BLOCK SIGNALS ;

TEST SYSTEM;
ON IN SSFUC;
ON IN DO:IF SR1/=0;      !IF SENDING BLOCK IS JOB TABLE!
IF SR1/=H'2A3;           !IF BLOCK NOT SELF!
!IF SNR/=H'18;            !IF NOT SUPERVISION SIGNAL!
!IF SNR/=H'28;            !IF NOT SUPERVISION SIGNAL!
P SWD,;

ON OUT SSFUC;
ON OUT DO:IF SR1/=0;     !IF PREVIOUS INSIG WAS FROM JOB!
IF BNR/=H'2A3;           !IF BLOCK NOT SELF!
!IF VAR TETM 74(3)=H'2;   ! SN OF THE OUT GOING SIGNALS !
!IF VAR TETM 74(3)=H'16;
!IF VAR TETM 74(3)=H'C;
P SWD,;


INIT;
! ENTER COMMAND HERE ;

TERM;
END TEST;


! SIGNAL AND JUMP TRACING FROM A PARTICULAR INSIG TO A ;
! PARTICULAR OUTSIG ;
 

TEST SYSTEM;
ON IN TRAN H'E;
ON IN DO:DYN TRACE ON JUMPS; !START JUMP TRACE!
CODE H'27;                  !SET FLAG!
CODE H'2BF;                 !LOCATION IN TOM!
CODE 1;                     !SET FLAG TO 1!
P SWD,;

ON OUT TRAN;
ON OUT DO:IF VAR TETM 1:13(H'2BF)=1; !IF FLAG=1 CHECK!
P SWD;
IF VAR TETM 74(3)=3;        !IF OUTSIG H'48(SSP)!
CODE H'27;                  !SET FLAG!
CODE H'2BF;                 !LOCATION IN TOM!
CODE 0;                     !SET FLAG TO 0!
;

ON JUMPS DO:IF BLOCK=TRAN;  
IF VAR TETM 1:13(H'2BF)=1 THEN; !IF FLAG IS SET!
IF IAR/=H'80C;                  !NOT THIS REPEATED JUMP!
IF IAR/=H'828;                  !NOT THIS REPETATIVE JUMP EITHER ADRIAN!
P J;                            !PRINT JUMPS!
ELSE; 
SEND H'C5 REF TETM VIA LNK WITH 1,H'24A,0; !STOP JUMPS!
FI;
;


! SIGNAL AND JUMP TRACING FROM A PARTICULAR INSIG TO A ;
! PARTICULAR OUTSIG USING A PARTICULAR TVAR ;

TEST SYSTEM;
ON IN TRAN H'E;
ON IN DO:DYN TRACE ON JUMPS; !START JUMP TRACE!
STEPTVAR 1;                  !SET FLAG!
P SWD,;

ON OUT TRAN;
ON OUT DO:IF TVAR 1=1; !IF FLAG=1 CHECK!
P SWD;
IF VAR TETM 74(3)=3;        !IF OUTSIG H'48(SSP)!
STEPTVAR 1 CLEAR;           !RESET FLAG!
;

ON JUMPS DO:IF BLOCK=TRAN;  
IF TVAR 1=1 THEN;               !IF FLAG IS SET!
IF IAR/=H'80C;                  !NOT THIS REPEATED JUMP!
IF IAR/=H'828;                  !NOT THIS REPETATIVE JUMP EITHER ADRIAN!
P J;                            !PRINT JUMPS!
ELSE; 
SEND H'C5 REF TETM VIA LNK WITH 1,H'24A,0; !STOP JUMPS!
FI;
;


! OUTSIG AND LAST JUMPS;
ON OUT EXDA H'3E;
ON OUT DO:P SWD;
PRINT 10 LAST JUMPS,;


!TO FIND IA WHERE A SIGNAL IS SENT FROM 212 ONLY;
ON IN BLOS H'5D;
ON IN DO:P IA;
P SWD,;


! TRACE FROM IA THEN NEXT 10 OUTSIGS USING FOR;  

ON IA BLOS H'7F;
ON IA DO:P IA;
CODE H'27;                           !SET FLAG!
CODE H'2BF;                          !LOCATION IN TOM!
CODE 1;                              !SET FLAG TO 1!
;

ON OUT BLOS;

ON OUT DO:IF VAR TETM 0:13(H'2BF)=1; !IF FLAG IS SET!
IF VAR TETM 0:H'A(7)=0 THEN;         !IF FOR COUNTER IS 0!
CODE H'27;                           !SET FLAG!
CODE H'2BF;                          !LOCATION IN TOM!
CODE 0;                              !SET FLAG TO 0!
ELSE;
FOR 10 TIMES;
P SWD;
FI;
;

! TRACE FROM IA THEN NEXT 10 OUTSIGS USING TVAR;  

ON IA BLOS H'7F;
ON IA DO:P IA;
STEPTVAR 1;                         !SET FLAG!
;

ON OUT BLOS;

ON OUT DO:IF VAR TETM 0:1(1)>0;     !IF FLAG IS SET!
IF VAR TETM 0:1(2)=10 THEN;         !IF FOR COUNTER IS 0!
STEPTVAR 1 CLEAR;                   !RESET FLAG!
STEPTVAR 2 CLEAR;                   !RESET COUNTER!
ELSE;
STEPTVAR 2;
P SWD;
FI;
;

! TRACE FROM IA THEN NEXT 10 OUTSIGS USING FOR;  

ON IA BLOS H'7F;
ON IA DO:P IA;
CODE H'27;                           !SET FLAG!
CODE H'2BF;                          !LOCATION IN TOM!
CODE 1;                              !SET FLAG TO 1!
;

ON OUT BLOS;

ON OUT DO:IF VAR TETM 0:13(H'2BF)=1; !IF FLAG IS SET!
IF VAR TETM 0:H'A(7)=0 THEN;         !IF FOR COUNTER IS 0!
CODE H'27;                           !SET FLAG!
CODE H'2BF;                          !LOCATION IN TOM!
CODE 0;                              !SET FLAG TO 0!
ELSE;
AFTER 10 TIMES;
FOR 1 TIMES;
P SWD;
FI;
;

!TRACING OUTSIGS FROM A BLOCK WITH DEST BLOCK EXCEPTIONS;
ON OUT BLOS;
ON OUT DO :IF VAR TETM 74(2)/=H'EF;
P SWD,;

!PRINT SIGNAL ACAT AND THE IA IT WAS SENT FROM;
ON OUT RE H'E;
ON OUT DO:P IA;
P SWD,;


!212 RE TRACE;

!PRINT ALL HUNDRED GROUPS;
EXNSP:HU=ALL;
!FIND THE GROUP NUMBER FOR THE TEST PHONE EG 10;
!ADD LAST 2 DIGITS OF PHONE NUMBER EG 5550009 TO THE HU;
!THIS GIVES SC POINTER OF 1009;

TEST SYSTEM;
ON IA RE H'3A6;               !IA WHERE SENDACAT1 IS SENT!
ON IA DO:IF DR1=021;          !IF THIS CALL IS OUR SCP!
P PR0;                        !PRINT RE DEVICE!
CODE H'28;                    !MOVE REG VALUE INTO TOM!
CODE H'122;                   !WORD 3 OF ON IN DO:IF PR0=????!
CODE H'4001;                  !CURRENT LEVEL,4 REG 1, PR0!
CODE H'28;                    !MOVE REG VALUE INTO TOM!
CODE H'2A2;                   !WORD 3 OF ON OUT DO:IF PR0=????!
CODE H'4001;                  !CURRENT LEVEL,4 REG 1, PR0!
;
ON IN RE;
ON IN DO:IF PR0=H'FFF;    !VALUE OF REP AT INSIG LOADED WITH CODE 28 ABOVE!
P SWD,;

ON OUT RE;
ON OUT DO:IF WR11=H'FFF;    !VALUE OF REP AT OUTSIG LOADED WITH CODE 28 ABOVE!
P SWD,;

INIT;

!212 RE TRACE USING TVAR;

!PRINT ALL HUNDRED GROUPS;
EXNSP:HU=ALL;
!FIND THE GROUP NUMBER FOR THE TEST PHONE EG 10;
!ADD LAST 2 DIGITS OF PHONE NUMBER EG 5550009 TO THE HU;
!THIS GIVES SC POINTER OF 1009;

TEST SYSTEM;

TMSIZE=4096;                  !SET TRACE MEMORY SIZE TO 4096!
SET VAR TETM 0-:1(1)=H'FFF;   !SET TVAR 1 TO DUMMY VALUE FOR ALL TEST THREADS!

ON VAR RE 70;                 !WHEN SCPOINTERA IS WRITTEN TO!
ON VAR DO:IF VAR=026;         !IF THE SCPOINTERA IS OUR CALLER!
SET TVAR 1=PR0,;              !SAVE RE POINTER IN TVAR 1 FOR COMPARISON LATER!

ON IN RE;                     !ON ALL INSIGS INTO RE!
ON IN DO:IF TVAR 1=PR0;       !IF THIS  REP IS OUR REP AS SAVED IN TVAR 1 ABOVE!
P IA,P SWD,;                  !PRINT IA AND SIGNAL WITH DATA!

!                             AS36 x = WR11;
!                             AS28 x = WR8;
!                             AS22 x = WR??;

ON OUT RE;                    !ON ALL OUTSIGS FROM RE!
ON OUT DO:IF TVAR 1=x;        !IF THIS TREP IS OUR REP AS SAVED IN TVAR 1 ABOVE!
P IA,P SWD,;                  !PRINT IA AND SIGNAL WITH DATA!

INIT;

!212 RE EOS TRACE USING SCPOINTER;

!PRINT ALL HUNDRED GROUPS;
EXNSP:HU=ALL;
!FIND THE GROUP NUMBER FOR THE TEST PHONE EG 10;
!ADD LAST 2 DIGITS OF PHONE NUMBER EG 5550009 TO THE HU;
!THIS GIVES SC POINTER OF 1009;

TEST SYSTEM;
ON VAR RE 20;                 !BAN OF EOS CODE!
ON VAR DO:CODE H'28;          !MOVE REG VALUE INTO TOM!
CODE H'186;                   !WORD 4 (POINTER) OF IF VAR RE 1:70=SCP!
CODE H'4001;                  !CURRENT LEVEL, 4, REG 1, PR0!
IF VAR RE 1:70=026;           !IF YOUR SCP!
IF VAR>0;                     !IF VAR NOT 0!
P VAR,;                       !PRINT VAR!

INIT;
!MAKE TEST CALL FROM TEST PHONE;


!212 RE EOS TRACE USING TCL;

!SET CLASS OF TEST PHONE TO TCL-15;
SUSCC:SNB=6026,SCL=TCL-15;

TEST SYSTEM;
ON VAR RE 20;                 !BAN OF EOS CODE!
ON VAR DO:CODE H'28;          !MOVE REG VALUE INTO TOM!
CODE H'186;                   !WORD 4 (POINTER) OF IF VAR RE 1:70=SCP!
CODE H'4001;                  !CURRENT LEVEL, 4, REG 1, PR0!
IF VAR RE 1:10=15;            !IF TCL IS 15!
IF VAR>0;                     !IF VAR NOT 0!
P VAR,;                       !PRINT VAR!

INIT;
!MAKE TEST CALL FROM THE TCL-15 TEST PHONE;


!GS JUMPS IN'S AND OUT'S ;

TEST SYSTEM;
ON IA RE H'326;               !IA WHERE ACAT IS SENT!
ON IA DO:IF DR0=1009;         !IF THIS CALL IS OUR SCP!
P PR0;                        !PRINT RE DEVICE!
CODE H'28;                    !MOVE REG VALUE INTO TOM!
CODE H'122;                   !WORD 3 OF ON IN DO:IF PR0=????!
CODE H'4001;                  !CURRENT LEVEL,4 REG 1, PR0!
;

ON IN GS H'21;
ON IN DO:IF DR2=H'FFFF;     !RE POINTER! 
DYN TRACE ON JUMPS;         !START JUMP TRACE!
CODE H'27;                  !SET FLAG!
CODE H'2BF;                 !LOCATION IN TOM!
CODE 1;                     !SET FLAG TO 1!
P SWD;
;

ON OUT GS;
ON OUT DO:IF VAR TETM 1:13(H'2BF)=1; !IF FLAG=1 CHECK!
P SWD;
CODE H'27;                  !RESET FLAG!
CODE H'2BF;                 !LOCATION IN TOM!
CODE 0;                     !SET FLAG TO 0!
;

ON JUMPS DO:IF BLOCK=GS;  
IF VAR TETM 0:13(H'2BF)=1 THEN; !IF FLAG IS SET!
P J;                            !PRINT JUMPS!
ELSE; 
SEND H'C5 REF TETM VIA LNK WITH 0,H'CA,0; !STOP JUMPS!
FI;
;

INIT;

!SSI OPOPCODE JUMPS;

TEST SYSTEM;
ON IA SSI H'1A84;
ON IA DO:IF DR9=H'10DC THEN;
DYN TRACE ON JUMPS;
ELSE;
IF DR9=H'10DD THEN; 
SEND H'C5 REF TETM VIA LNK WITH 0,H'C2,0; !STOP JUMPS!
FI;
FI;


ON JUMPS DO:IF BLOCK=SSI;  
P J;                            !PRINT JUMPS!
;

INIT;


ON IA SSI H'1A84;
ON IA DO:IF DR9=H'10DD;
AFTER 3 TIMES;
P 100 LAST JUMPS;
;

ON VAR SSI 5,49;
ON VAR DO:IF DR9=H'10DC;
P IA,P VAR,;


CLEAR;
ON IA SSI H'281E;
ON IA DO:IF DR9=H'3984;
P IA,P IAR;
P WR5;
P WR6;
;
INIT;


!SSI CONTROLTYPE OUTLET TRACE;

ON IA SSI H;2368;
ON IA DO:P AR0,;

INIT;

END TEST;

!SSI CONTROLTYPE AND LLAOPCODE POINTER TRACE;

TEST SYSTEM;

ON IA SSI H'1A84;                     !IA WHERE JUMP TO OPCODE RECORD!
ON IA DO:P DR9;                       !PRINT LLAOPCODE RECORD POINTER!
P DR13;                               !PRINT CONTROLTYPE POINTER x!
                                      !USE THIS POINTER AS x IN THE NEXT TRACE!
INIT;
END TEST;

PRINT STRVAR SSIEXT x:6;              !FIND CONTROLTYPE NAME FROM POINTER!

!SSI LLAOPCODE TRACE FOR A SINGLE CONTROLTYPE;

TEST SYSTEM;

ON IA SSI H'1A84;                     !IA WHERE JUMP TO OPCODE RECORD!
ON IA DO:IF DR13=H'35;                !CONTROLTYPE POINTER!
CODE H'28, CODE H'1EA, CODE H'400F;   !MOVE DR9 (LLAOPCODE) INTO P VAR POINTER! 
P VAR SSI 1:H'AA;                     !PRINT LLAOPCODE, ONLY 1 PRINT ALLOWED!
;

!P VAR SSI 1:H'36;                     !PRINT PARAMETER1!
!P VAR SSI 1:H'37;                     !PRINT PARAMETER2!
!P VAR SSI 1:H'38;                     !PRINT PARAMETER3!
!P VAR SSI 1:H'AB;                     !PRINT PARAMETER4!
;

END TEST;

ON IA SSI H'1A84;                     !IA WHERE JUMP TO OPCODE RECORD!
ON IA DO:IF DR9=H'3985;               !STEP COUNTER!
P DR13;
P WR0,P WR1,P WR2,P WR3,P WR4,P WR5,P WR6,P WR7,P WR8,P WR9;
P WR10,P WR11,P WR12,P WR13,P WR14,P WR15,P WR16,P WR17,P WR18,P WR19;
P WR20,P WR21,P WR22,P WR23,P WR24,P WR25,P WR26,P WR27,P WR28,P WR29;
;

!MANUAL TOM LOAD OF EOS TCL TRACE;

PRINT VAR TETM 0:13(H'180-H'190);

SET VAR TETM 0:13(H'0180)=H'0000 H'0028;
SET VAR TETM 0:13(H'0181)=H'0000 H'0186;
SET VAR TETM 0:13(H'0182)=H'0000 H'4001;
SET VAR TETM 0:13(H'0183)=H'0000 H'000D;
SET VAR TETM 0:13(H'0184)=H'0000 H'00F2;
SET VAR TETM 0:13(H'0185)=H'0000 H'000A;
SET VAR TETM 0:13(H'0186)=H'0000 H'0001;
SET VAR TETM 0:13(H'0187)=H'0000 H'0000;
SET VAR TETM 0:13(H'0188)=H'0004 H'0000;
SET VAR TETM 0:13(H'0189)=H'0000 H'000F;
SET VAR TETM 0:13(H'018A)=H'0000 H'0002;
SET VAR TETM 0:13(H'018B)=H'0000 H'000C;
SET VAR TETM 0:13(H'018C)=H'0002 H'0000;
SET VAR TETM 0:13(H'018D)=H'0000 H'0000;
SET VAR TETM 0:13(H'018E)=H'0000 H'0002;
SET VAR TETM 0:13(H'018F)=H'0000 H'0014;
SET VAR TETM 0:13(H'0190)=H'0000 H'0002;

PRINT VAR TETM 0:13(H'180-H'190);