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