         TITLE    '** CONVERT INSTRUCTION SIMULATOR **'                         
*                                                                               
* CATALOG NO. 704366 SIGMA 7 CONVERT INSTRUCTION SIMULATOR FOR SIGMA 5          
*                                                                               
* REVISION D00 (11-10-69) COMPLETE REWRITE FOR NEW MONITOR XFACE                
*                                                                               
*                                                                               
         SYSTEM   SIG5P                                                         
*                                                                               
* REGISTER ASSIGNMENTS                                                          
*                                                                               
TBL      EQU      1                 POINTER TO TRAP CONTEXT TABLE               
R        EQU      2                 R FIELD                                     
X        EQU      3                 X FIELD                                     
M        EQU      4                 TRAPPED INSTRUCTION                         
OP       EQU      5                 OP CODE                                     
CC       EQU      8                 GENERATED CONDITION CODES                   
CCM      EQU      CC+1              MASK FOR SELECTIVE STORE                    
AA       EQU      10                A REGISTER FOR CVA                          
BS       EQU      AA                B REGISTER FOR CVS                          
BA       EQU      12                B REGISTER FOR CVA                          
AS       EQU      BA                A REGISTER FOR CVS(MUST BE EVEN)            
A1       EQU      AS+1              MASK FOR SELECTIVE COMPARE                  
RU1      EQU      14                ODD REGISTER                                
N        EQU      15                LOOP COUNT                                  
*                                                                               
PCBPOINT EQU      X'4E'                                                 INSDR170
R0       EQU      0                                                     INSDR170
R4       EQU      4                                                     INSDR170
R6       EQU      6                                                     INSDR170
*                                                                               
*                                                                               
         DEF      CVSIM                                                         
CVSIM    B        U:CVSIM           RBM ENTRY                                   
U:XITSIM EQU      X'1E6'            NORMAL TRAP RETURN                          
XFE      DATA     X'FE'                                                         
YE       DATA     X'E0000000'                                                   
YFFFE    DATA     X'FFFE0000'       MASK                                INSDR170
INTCONST DATA     X'00010020'       INT CONSTANT                        INSDR170
         PAGE                                                                   
* IT IS IMPOSSIBLE FOR TABLE ENTRIES FOR CVS TO BE IN REGISTERS                 
         SPACE    3                                                             
CVS20    BIR,M    CVS1              NEXT TABLE ADDRESS                          
CVA30    BIR,M    CVA3              NEXT TABLE ADDRESS                          
         BIR,M    CVA1              NEXT TABLE ADDRESS                          
CVA2     BDR,N    %-1               LOW SPEED LOOP                              
CVA3     SLS,BA   1                 LOOK FOR A CARRY                            
         BEV      CVA4              AND AGAIN, MA.                              
CVAH     AW,AA    0,M               ADD CURRENT TABLE VALUE                     
         BNC      %+2               ONE MORE TIME, MA.                          
         AI,OP    -X'100'           SET BIT 0                                   
CVA4     BDR,N    CVA30             HI SPEED LOOP                               
         STW,AA  *R,TBL             INSERT RESULT                               
         AI,OP    -X'100'           PICK UP CC1                                 
         B        EXIT              JOIN                                        
         PAGE                                                                   
U:CVSIM  RES      0                 ENTRY                                       
         STD,R4   R6                OLD PSD TO 6-7                      INSDR170
         LCI      2                                                     INSDR170
         PLM,R4   *PCBPOINT         DONE TO MAINTAIN THE                INSDR170
         LCI      2                 USERS CONTEXT(KEYS,MAP,ETC)         INSDR170
         PSM,R6   *PCBPOINT         PUSH MONITOR PSD                    INSDR170
         LB,OP    M                 OP CODE, RESETS BIT 0 FOR CC USE            
         LH,R     M                 R AND X FIELDS & INDIRECT SIGN              
         AND,R    XFE               EXTRACT R & X FIELDS                        
         INT,RU1  INTCONST          INITIALIZE COUNT AND ODD REG        INSDR170
         SLD,R    -4                ALIGN R                                     
         OR,RU1   R                 COPY R FIELD                                
         SCS,X    3                 ALIGN X FIELD                               
         BCR,12   %+2               SKIP IF NO INDEX                            
         AW,M    *X,TBL             GENERATE EFFECTIVE ADDRESS                  
         OR,M     YE                FORCE NEGATIVE                              
         LW,CCM   MASKS-X'28',OP    SELECT MASK                                 
         BGZ      CVS               SELECT OPERATION                            
         SPACE    3                                                             
CVA      LW,BA   *RU1,TBL           ODD REGISTER TO B - MASK                    
         LI,AA    0                 CLEAR A REGISTER                            
CVA1     SLS,BA   1                 LOOK FOR A CARRY                            
         BEV      CVA2              LOOK MA, NO CAVITIES.                       
         CI,M     X'1FFF0'          CHK FOR REGISTER ADDRESS                    
         BANZ     CVAH              GO TO HIGH SPEED LOOP IF NOT                
         AW,M     TBL               POINT TO REGISTER STORAGE                   
         OR,M     YE                FORCE NEGATIVE                              
         B        CVAH              JOIN HI SPEED LOOP                          
         SPACE    3                                                             
CVS      LW,AS   *R,TBL             VALUE IN REGISTER R TO A                    
         LI,A1    -1                MASK FOR SELECTIVE COMPARE                  
CVS1     SLS,BS   1                 OPEN UP NEXT QUOTIENT POSITION              
         CS,AS    0,M               A:CURRENT TABLE ENTRY                       
         BL       CVS2              SKIP IF ENTRY IS TOO LARGE                  
         SW,AS    0,M               REDUCE BY CURRENT ENTRY VALUE               
         AI,BS    1                 INSERT THE 1 IN THE QUOTIENT                
CVS2     BDR,N    CVS20             LOOP                                        
         STW,AS  *R,TBL             INSERT REMAINDER                            
         STW,BS  *RU1,TBL           INSERT QUOTIENT                             
EXIT     CI,BS    0                 SET CC3 & CC4 - NO CHANGE TO CC1            
         STCF     CC                STAGING                                     
         LI,R0    U:XITSIM                                              INSDR170
         LCI      2                                                     INSDR170
         PLM,R6   *PCBPOINT         PULL OLD SYSTEM PSD                 INSDR170
         AND,R6   YFFFE             MASK OUT ADR.                       INSDR170
         OR,R6    R0                OR IN RETURN ADR                    INSDR170
         LPSD,0   R6                SIMULATOR RETURN                    INSDR170
MASKS    DATA     X'30000000',X'B0000000'                                       
         END                                                                    
