Common COMPSRR

1 Modification

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.compsrr +++|          CTEXT  COMPSRR - SET R-REGISTER.
00002  M01S00002.compsrr +++|          IF     -DEF,QUAL$,1
00003  M01S00003.compsrr +++|          QUAL   COMPSRR
Line S00004 Modification History
M01 (Added by) compsrr
M02 (Updated by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00004  M02S00004.281l803 ---|*         COMMENT  COPYRIGHT CONTROL DATA CORPORATION, 1992.
00005  M01S00001.281l803 +++|*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00006  M01S00005.compsrr +++| SRR      SPACE  4
00007  M01S00006.compsrr +++|***       SRR - SET R-REGISTER.
00008  M01S00007.compsrr +++|*         D. O. HAMNES.      92/03/18.
00009  M01S00008.compsrr +++| SRR      SPACE  4,15
00010  M01S00009.compsrr +++|***       *COMPSRR* MAY BE USED TO SET AND RESTORE THE VALUE OF
00011  M01S00010.compsrr +++|*         THE R-REGISTER ON MAINFRAMES WHICH SUPPORT R-REGISTERS.
00012  M01S00011.compsrr +++|*
00013  M01S00012.compsrr +++|*         IF *SRR$* IS DEFINED, THEN THE CONTENTS OF DIRECT CELLS
00014  M01S00013.compsrr +++|*         T1 AND T2 WILL NOT BE RESTORED.  IF NOT DEFINED,
00015  M01S00014.compsrr +++|*         THEN THEY WILL BE RESTORED TO THEIR VALUES UPON ENTRY.
00016  M01S00015.compsrr +++|*
00017  M01S00016.compsrr +++|*         IF *PRR$* IS DEFINED, THEN THE PRESET ROUTINE *PRR* WILL
00018  M01S00017.compsrr +++|*         BE DEFINED IN A REMOTE BLOCK LABELED *PRR*.
00019  M01S00018.compsrr +++|*
00020  M01S00019.compsrr +++|*         IF *PIR$* IS DEFINED, THEN THE SPECIAL PRESET ROUTINE
00021  M01S00020.compsrr +++|*         *PIR* WILL BE DEFINED.  IF *PRR$* IS ALSO DEFINED, THEN
00022  M01S00021.compsrr +++|*         THE CODE FOR THIS ROUTINE WILL ALSO BE IN THE *PRR* REMOTE
00023  M01S00022.compsrr +++|*         BLOCK.
00024  M01S00023.compsrr +++| SRR      SPACE  4,15
00025  M01S00024.compsrr +++|**        SRR - SET R-REGISTER.
00026  M01S00025.compsrr +++|*
00027  M01S00026.compsrr +++|*         ENTRY  (RRRB - RRRC) = R-REGISTER VALUE TO BE SET.
00028  M01S00027.compsrr +++|*
00029  M01S00028.compsrr +++|*         EXIT   (R) = (RRRB - RRRC), IF R-REGISTER PRESENT.
00030  M01S00029.compsrr +++|*                (T1 - T2) RESTORED IF SRR$ NOT DEFINED.
00031  M01S00030.compsrr +++|*                (RRRD - RRRE) = (R) UPON ENTRY.
00032  M01S00031.compsrr +++|*
00033  M01S00032.compsrr +++|*         USES   T0, T1, T2.
00034  M01S00033.compsrr +++|*
00035  M01S00034.compsrr +++|*         CALLS  NONE.
00036  M01S00035.compsrr +++|
00037  M01S00036.compsrr +++|
00038  M01S00037.compsrr +++| SRR      SUBR               ENTRY/EXIT
00039  M01S00038.compsrr +++| SRRA     UJN    RRR1        SAVE DIRECT CELLS IF DESIRED
00040  M01S00039.compsrr +++|*         UJN    SRRX        (R-REGISTERS NOT SUPPORTED)
00041  M01S00040.compsrr +++| RRR      SPACE  4,15
00042  M01S00041.compsrr +++|**        RRR - RESTORE R-REGISTER.
00043  M01S00042.compsrr +++|*
00044  M01S00043.compsrr +++|*         ENTRY  (RRRD - RRRE) = R-REGISTER VALUE TO BE SET.
00045  M01S00044.compsrr +++|*                (NORMALLY ESTABLISHED BY *SRR*).
00046  M01S00045.compsrr +++|*
00047  M01S00046.compsrr +++|*         EXIT   (R) = (RRRD - RRRE), IF R-REGISTER PRESENT.
00048  M01S00047.compsrr +++|*                (T1 - T2) RESTORED IF SRR$ NOT DEFINED.
00049  M01S00048.compsrr +++|*
00050  M01S00049.compsrr +++|*         USES   T0, T1, T2.
00051  M01S00050.compsrr +++|*
00052  M01S00051.compsrr +++|*         CALLS  NONE.
00053  M01S00052.compsrr +++|
00054  M01S00053.compsrr +++|
00055  M01S00054.compsrr +++| RRR2     LDC    **
00056  M01S00055.compsrr +++| RRRD     EQU    *-1
00057  M01S00056.compsrr +++|          STD    T1
00058  M01S00057.compsrr +++|          LDC    **
00059  M01S00058.compsrr +++| RRRE     EQU    *-1
00060  M01S00059.compsrr +++|          STD    T2
00061  M01S00060.compsrr +++|          LRD    T1
00062  M01S00061.compsrr +++|          SOM    RRRH
00063  M01S00062.compsrr +++|
00064  M01S00063.compsrr +++|*         RESTORE DIRECT CELLS.
00065  M01S00064.compsrr +++|
00066  M01S00065.compsrr +++| RRR3     BSS    0
00067  M01S00066.compsrr +++| SRR$     IF     -DEF,SRR$
00068  M01S00067.compsrr +++|          LDC    **          RESTORE DIRECT CELLS WHICH ARE USED
00069  M01S00068.compsrr +++| RRRF     EQU    *-1
00070  M01S00069.compsrr +++|          STD    T1
00071  M01S00070.compsrr +++|          LDC    **
00072  M01S00071.compsrr +++| RRRG     EQU    *-1
00073  M01S00072.compsrr +++|          STD    T2
00074  M01S00073.compsrr +++| SRR$     ENDIF
00075  M01S00074.compsrr +++|          LDD    T0
00076  M01S00075.compsrr +++|          ZJN    SRRX        IF *SRR* CALL
00077  M01S00076.compsrr +++|*         UJN    RRRX        RETURN TO CALLER OF *RRR*
00078  M01S00077.compsrr +++|
00079  M01S00078.compsrr +++| RRR      SUBR               ENTRY/EXIT
00080  M01S00079.compsrr +++| RRRA     AOM    RRRH
00081  M01S00080.compsrr +++|*         UJN    RRRX        (R-REGISTERS NOT SUPPORTED)
00082  M01S00081.compsrr +++|
00083  M01S00082.compsrr +++|*         SAVE DIRECT CELLS.
00084  M01S00083.compsrr +++|
00085  M01S00084.compsrr +++| RRR1     BSS    0
00086  M01S00085.compsrr +++| SRR$     IF     -DEF,SRR$
00087  M01S00086.compsrr +++|          LDD    T1
00088  M01S00087.compsrr +++|          STM    RRRF
00089  M01S00088.compsrr +++|          LDD    T2
00090  M01S00089.compsrr +++|          STM    RRRG
00091  M01S00090.compsrr +++| SRR$     ENDIF
00092  M01S00091.compsrr +++| RRRH     LDN    0
00093  M01S00092.compsrr +++|*         LDN    1           (RRR ENTRY POINT)
00094  M01S00093.compsrr +++|          STD    T0
00095  M01S00094.compsrr +++|          NJN    RRR2        IF RESTORE
00096  M01S00095.compsrr +++|
00097  M01S00096.compsrr +++|*         SAVE PRESENT VALUE OF R-REGISTER AND
00098  M01S00097.compsrr +++|*         SET SAVED VALUE.
00099  M01S00098.compsrr +++|
00100  M01S00099.compsrr +++|          SRD    T1
00101  M01S00100.compsrr +++|          LDD    T1          SAVE CP RA
00102  M01S00101.compsrr +++|          STM    RRRD
00103  M01S00102.compsrr +++|          LDD    T2
00104  M01S00103.compsrr +++|          STM    RRRE
00105  M01S00104.compsrr +++|          LDC    **          SET SAVED R-REGISTER VALUE
00106  M01S00105.compsrr +++| RRRB     EQU    *-1
00107  M01S00106.compsrr +++|          STD    T1
00108  M01S00107.compsrr +++|          LDC    **
00109  M01S00108.compsrr +++| RRRC     EQU    *-1
00110  M01S00109.compsrr +++|          STD    T2
00111  M01S00110.compsrr +++|          LRD    T1
00112  M01S00111.compsrr +++|          LJM    RRR3        RESTORE DIRECT CELLS
00113  M01S00112.compsrr +++| PRR      SPACE  4,10
00114  M01S00113.compsrr +++|**        PRR - PRESET *COMPSRR* CODE.
00115  M01S00114.compsrr +++|*
00116  M01S00115.compsrr +++|*         EXIT   DETERMINATION HAS BEEN MADE AS TO WHETHER R-REGISTERS
00117  M01S00116.compsrr +++|*                ARE SUPPORTTED ON THE MACHINE.  IF THEY ARE NOT, THEN
00118  M01S00117.compsrr +++|*                THE FIRST INSTRUCTION OF EACH OF *SRR* AND *RRR* IS
00119  M01S00118.compsrr +++|*                SET TO EXIT THE ROUTINE.
00120  M01S00119.compsrr +++|*                (A) .LT. 0, IF R-REGISTERS NOT SUPPORTED.
00121  M01S00120.compsrr +++|*                (A) .GE. 0, IF R-REGISTERS SUPPORTED.
00122  M01S00121.compsrr +++|*
00123  M01S00122.compsrr +++|*         USES   CM - CM+4.
00124  M01S00123.compsrr +++|*
00125  M01S00124.compsrr +++|*         MACROS ISTORE.
00126  M01S00125.compsrr +++|
00127  M01S00126.compsrr +++|
00128  M01S00127.compsrr +++| PRR$     IF     DEF,PRR$,1
00129  M01S00128.compsrr +++| PRR      RMT
00130  M01S00129.compsrr +++| PRR      SUBR               ENTRY/EXIT
00131  M01S00130.compsrr +++|          LDC    MABL
00132  M01S00131.compsrr +++|          CRD    CM
00133  M01S00132.compsrr +++|          LDD    CM+1
00134  M01S00133.compsrr +++|          SHN    21-13
00135  M01S00134.compsrr +++|          PJN    PRRX        IF 180 CLASS MACHINE
00136  M01S00135.compsrr +++|          ISTORE SRRA,(UJN SRRX)
00137  M01S00136.compsrr +++|          ISTORE RRRA,(UJN RRRX)
00138  M01S00137.compsrr +++|          LDC    400000
00139  M01S00138.compsrr +++|          UJN    PRRX        RETURN
00140  M01S00139.compsrr +++| PRR$     IF     DEF,PRR$,1
00141  M01S00140.compsrr +++| PRR      RMT
00142  M01S00141.compsrr +++| PIR      SPACE  4,10
00143  M01S00142.compsrr +++|**        PIR - PRESET WITH IAF R-REGISTER.
00144  M01S00143.compsrr +++|*
00145  M01S00144.compsrr +++|*         ENTRY  IAF HAS BEEN DETERMINED TO BE ACCESSIBLE.
00146  M01S00145.compsrr +++|*
00147  M01S00146.compsrr +++|*         EXIT   (TA) = 4000B, IF R-REGISTERS PRESENT.
00148  M01S00147.compsrr +++|*                     = IAF RA/100B, IF R-REGISTERS NOT PRESENT.
00149  M01S00148.compsrr +++|*
00150  M01S00149.compsrr +++|*         USES   CM - CM+4, TA.
00151  M01S00150.compsrr +++|*
00152  M01S00151.compsrr +++|*         CALLS  PRR.
00153  M01S00152.compsrr +++|
00154  M01S00153.compsrr +++|
00155  M01S00154.compsrr +++| PIR$     IF     DEF,PIR$
00156  M01S00155.compsrr +++| PRR$     IF     DEF,PRR$,1
00157  M01S00156.compsrr +++| PRR      RMT
00158  M01S00157.compsrr +++| PIR      SUBR               ENTRY/EXIT
00159  M01S00158.compsrr +++|          RJM    PRR         PRESET RESTORE R-REGISTER ROUTINES
00160  M01S00159.compsrr +++|          MJN    PIR1        IF R-REGISTERS NOT SUPPORTED
00161  M01S00160.compsrr +++|
00162  M01S00161.compsrr +++|*         PRESET FOR MACHINE WITH R-REGISTER.
00163  M01S00162.compsrr +++|
00164  M01S00163.compsrr +++| .A       IF     DEF,/REM/VCPT
00165  M01S00164.compsrr +++|          LDC    /REM/VCPT*200+FLSW
00166  M01S00165.compsrr +++| .A       ELSE
00167  M01S00166.compsrr +++|          LDC    //VCPT*200+FLSW
00168  M01S00167.compsrr +++| .A       ENDIF
00169  M01S00168.compsrr +++|          CRD    CM
00170  M01S00169.compsrr +++|          LDD    CM+2
00171  M01S00170.compsrr +++|          STM    RRRB
00172  M01S00171.compsrr +++|          LDD    CM+3
00173  M01S00172.compsrr +++|          STM    RRRC
00174  M01S00173.compsrr +++|          LDC    4000B       SET R-REGISTER USE BIT
00175  M01S00174.compsrr +++|          STD    TA
00176  M01S00175.compsrr +++|          UJN    PIRX        RETURN
00177  M01S00176.compsrr +++|
00178  M01S00177.compsrr +++|*         PRESET FOR MACHINE WITHOUT R-REGISTER.
00179  M01S00178.compsrr +++|
00180  M01S00179.compsrr +++| PIR1     BSS    0
00181  M01S00180.compsrr +++| .A       IF     DEF,/REM/VCPT
00182  M01S00181.compsrr +++|          LDC    /REM/VCPT*200+FLSW
00183  M01S00182.compsrr +++| .A       ELSE
00184  M01S00183.compsrr +++|          LDC    //VCPT*200+FLSW
00185  M01S00184.compsrr +++| .A       ENDIF
00186  M01S00185.compsrr +++|          CRD    CM
00187  M01S00186.compsrr +++|          LDD    CM+3        SET IAF RA/100B
00188  M01S00187.compsrr +++|          STD    TA
00189  M01S00188.compsrr +++|          LJM    PIRX        RETURN
00190  M01S00189.compsrr +++| PRR$     IF     DEF,PRR$,1
00191  M01S00190.compsrr +++|          RMT
00192  M01S00191.compsrr +++| PIR$     ENDIF
00193  M01S00192.compsrr +++|          SPACE  4
00194  M01S00193.compsrr +++| QUAL$    IF     -DEF,QUAL$
00195  M01S00194.compsrr +++|          QUAL   *
00196  M01S00195.compsrr +++| SRR      EQU    /COMPSRR/SRR
00197  M01S00196.compsrr +++| RRR      EQU    /COMPSRR/RRR
00198  M01S00197.compsrr +++| PRR      EQU    /COMPSRR/PRR
00199  M01S00198.compsrr +++| PIR$     IF     DEF,PIR$
00200  M01S00199.compsrr +++| PIR      EQU    /COMPSRR/PIR
00201  M01S00200.compsrr +++| PIR$     ENDIF
00202  M01S00201.compsrr +++| QUAL$    ENDIF
00203  M01S00202.compsrr +++|          ENDX