cdc:nos2.source:opl.opl871:common:comcjcr
Common COMCJCR
0 Modifications
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M01S00001.comcjcr +++| CTEXT COMCJCR - JOB CONTROL REGISTER MANAGEMENT ROUTINES. 00002 M01S00002.comcjcr +++| SPACE 4 00003 M01S00003.comcjcr +++| IF -DEF,QUAL$,1 00004 M01S00004.comcjcr +++| QUAL COMCJCR 00005 M01S00005.comcjcr +++| BASE D 00006 M01S00006.comcjcr +++|* COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1996. 00007 M01S00007.comcjcr +++| SPACE 4 00008 M01S00008.comcjcr +++|*** JCR - JOB CONTROL REGISTER MANAGEMENT ROUTINES. 00009 M01S00009.comcjcr +++|* G. S. YODER. 96/04/24. 00010 M01S00010.comcjcr +++| SPACE 4 00011 M01S00011.comcjcr +++|*** JCR CONTAINS ROUTINES TO ACCESS AND MODIFY THE JOB CONTROL 00012 M01S00012.comcjcr +++|* REGISTERS USING SYMBOLIC REGISTER NAMES. 00013 M01S00013.comcjcr +++|* 00014 M01S00014.comcjcr +++|* *GJR* SETS THE CURRENT JOB CONTROL REGISTERS INTO A WORKING 00015 M01S00015.comcjcr +++|* BUFFER FOR ACCESS BY *GWR* AND *SWR*. 00016 M01S00016.comcjcr +++|* 00017 M01S00017.comcjcr +++|* *SJR* SETS THE VALUES OF THE JOB CONTROL REGISTERS FROM THE 00018 M01S00018.comcjcr +++|* WORKING BUFFER AFTER A CALL TO *SWR*. 00019 M01S00019.comcjcr +++|* 00020 M01S00020.comcjcr +++|* *GWR* VALIDATES THE NAME AND RETURNS THE VALUE OF THE 00021 M01S00021.comcjcr +++|* SPECIFIED REGISTER FROM THE WORKING BUFFER. 00022 M01S00022.comcjcr +++|* 00023 M01S00023.comcjcr +++|* *SWR* VALIDATES THE NAME AND SETS THE VALUE OF THE SPECIFIED 00024 M01S00024.comcjcr +++|* REGISTER IN THE WORKING BUFFER. A CALL TO *SJR* MUST BE MADE 00025 M01S00025.comcjcr +++|* TO MODIFY THE ACTUAL REGISTER. 00026 M01S00026.comcjcr +++|* 00027 M01S00027.comcjcr +++|* THE FOLLOWING REGISTER NAMES ARE PROCESSED. 00028 M01S00028.comcjcr +++|* 00029 M01S00029.comcjcr +++|* NAME REGISTER 00030 M01S00030.comcjcr +++|* 00031 M01S00031.comcjcr +++|* EF ERROR FLAG 00032 M01S00032.comcjcr +++|* EFG GLOBAL ERROR FLAG 00033 M01S00033.comcjcr +++|* EM EXIT MODE 00034 M01S00034.comcjcr +++|* PNL PROCEDURE NESTING LEVEL 00035 M01S00035.comcjcr +++|* R1 R1 REGISTER 00036 M01S00036.comcjcr +++|* R1G R1G REGISTER 00037 M01S00037.comcjcr +++|* R2 R2 REGISTER 00038 M01S00038.comcjcr +++|* R3 R3 REGISTER 00039 M01S00039.comcjcr +++|* SW1 SENSE SWITCH 1 00040 M01S00040.comcjcr +++|* SW2 SENSE SWITCH 2 00041 M01S00041.comcjcr +++|* SW3 SENSE SWITCH 3 00042 M01S00042.comcjcr +++|* SW4 SENSE SWITCH 4 00043 M01S00043.comcjcr +++|* SW5 SENSE SWITCH 5 00044 M01S00044.comcjcr +++|* SW6 SENSE SWITCH 6 00045 M01S00045.comcjcr +++| GJR SPACE 4,10 00046 M01S00046.comcjcr +++|*** GJR - GET JOB CONTROL REGISTERS. 00047 M01S00047.comcjcr +++|* 00048 M01S00048.comcjcr +++|* EXIT JOB CONTROL REGISTERS READ TO *JCRB*. 00049 M01S00049.comcjcr +++|* 00050 M01S00050.comcjcr +++|* MACROS GETJCI. 00051 M01S00051.comcjcr +++| 00052 M01S00052.comcjcr +++| 00053 M01S00053.comcjcr +++| GJR SUBR ENTRY/EXIT 00054 M01S00054.comcjcr +++| GETJCI JCRB GET JOB CONTROL REGISTERS 00055 M01S00055.comcjcr +++| EQ GJRX RETURN 00056 M01S00056.comcjcr +++| SJR SPACE 4,10 00057 M01S00057.comcjcr +++|*** SJR - SET JOB CONTROL REGISTERS. 00058 M01S00058.comcjcr +++|* 00059 M01S00059.comcjcr +++|* EXIT JOB CONTROL REGISTERS SET FROM *JCRB*. 00060 M01S00060.comcjcr +++|* 00061 M01S00061.comcjcr +++|* MACROS SETJCI. 00062 M01S00062.comcjcr +++| 00063 M01S00063.comcjcr +++| 00064 M01S00064.comcjcr +++| SJR SUBR ENTRY/EXIT 00065 M01S00065.comcjcr +++| SETJCI JCRB GET JOB CONTROL REGISTERS 00066 M01S00066.comcjcr +++| EQ SJRX RETURN 00067 M01S00067.comcjcr +++| GWR SPACE 4,20 00068 M01S00068.comcjcr +++|*** GWR - GET WORKING REGISTER VALUE FROM BUFFER. 00069 M01S00069.comcjcr +++|* 00070 M01S00070.comcjcr +++|* ENTRY (X1) = REGISTER NAME LEFT JUSTIFIED. 00071 M01S00071.comcjcr +++|* PACKED JOB CONTROL REGISTERS IN *JCRB*. 00072 M01S00072.comcjcr +++|* 00073 M01S00073.comcjcr +++|* EXIT (X7) = 0 IF NOT VALID REGISTER NAME. 00074 M01S00074.comcjcr +++|* (X7) = 1 IF *R1*, *R2*, *R3*, OR *R1G* REGISTER. 00075 M01S00075.comcjcr +++|* (X7) .GT. 1 IF NOT *R* REGITER. 00076 M01S00076.comcjcr +++|* (X6) = REGISTER RIGHT JUSTIFIED IF NO ERROR. 00077 M01S00077.comcjcr +++|* 00078 M01S00078.comcjcr +++|* USES X - 1, 2, 6. 00079 M01S00079.comcjcr +++|* A - 1. 00080 M01S00080.comcjcr +++|* B - 2. 00081 M01S00081.comcjcr +++|* 00082 M01S00082.comcjcr +++|* CALLS VRN. 00083 M01S00083.comcjcr +++| 00084 M01S00084.comcjcr +++| 00085 M01S00085.comcjcr +++| GWR SUBR ENTRY/EXIT 00086 M01S00086.comcjcr +++| RJ VRN VALIDATE REGISTER NAME 00087 M01S00087.comcjcr +++| ZR X7,GWRX IF NOT VALID REGISTER NAME 00088 M01S00088.comcjcr +++| SX2 60 00089 M01S00089.comcjcr +++| SB2 -B2 00090 M01S00090.comcjcr +++| SB2 X2+B2 00091 M01S00091.comcjcr +++| BX6 X6*X3 00092 M01S00092.comcjcr +++| LX6 B2 JUSTIFY REGISTER 00093 M01S00093.comcjcr +++| EQ GWRX RETURN 00094 M01S00094.comcjcr +++| SWR SPACE 4,20 00095 M01S00095.comcjcr +++|*** SWR - SET WORKING REGISTER VALUE IN BUFFER. 00096 M01S00096.comcjcr +++|* 00097 M01S00097.comcjcr +++|* ENTRY (X1) = REGISTER NAME LEFT JUSTIFIED. 00098 M01S00098.comcjcr +++|* (X2) = NEW REGISTER VALUE RIGHT JUSTIFIED. 00099 M01S00099.comcjcr +++|* PACKED JOB CONTROL REGISTERS IN *JCRB*. 00100 M01S00100.comcjcr +++|* 00101 M01S00101.comcjcr +++|* EXIT (X7) = 0 IF NOT VALID REGISTER NAME. 00102 M01S00102.comcjcr +++|* (X7) = 1 IF *R1*, *R2*, *R3*, OR *R1G* REGISTER. 00103 M01S00103.comcjcr +++|* (X7) .GT. 1 IF NOT *R* REGITER. 00104 M01S00104.comcjcr +++|* NEW REGISTER VALUE SET IN *JCRB*. 00105 M01S00105.comcjcr +++|* 00106 M01S00106.comcjcr +++|* USES X - 2, 3, 6. 00107 M01S00107.comcjcr +++|* A - 6. 00108 M01S00108.comcjcr +++|* 00109 M01S00109.comcjcr +++|* CALLS VRN. 00110 M01S00110.comcjcr +++|* 00111 M01S00111.comcjcr +++|* NOTE IF THE SPECIFIED VALUE IS GREATER THAN THE REGISTER 00112 M01S00112.comcjcr +++|* WIDTH, THE OVERFLOW (UPPER BITS) WILL BE REMOVED. 00113 M01S00113.comcjcr +++| 00114 M01S00114.comcjcr +++| 00115 M01S00115.comcjcr +++| SWR SUBR ENTRY/EXIT 00116 M01S00116.comcjcr +++| RJ VRN VALIDATE REGISTER NAME 00117 M01S00117.comcjcr +++| ZR X7,SWRX IF NOT VALID REGISTER NAME 00118 M01S00118.comcjcr +++| LX2 B2 00119 M01S00119.comcjcr +++| BX3 -X6*X3 CLEAR OLD VALUE 00120 M01S00120.comcjcr +++| BX2 X6*X2 REMOVE POSSIBLE OVERFLOW 00121 M01S00121.comcjcr +++| BX6 X3+X2 MERGE NEW VALUE 00122 M01S00122.comcjcr +++| SA6 A3+ STORE REGISTER VALUE 00123 M01S00123.comcjcr +++| EQ SWRX RETURN 00124 M01S00124.comcjcr +++| VRN SPACE 4,15 00125 M01S00125.comcjcr +++|** VRN - VALIDATE REGISTER NAME. 00126 M01S00126.comcjcr +++|* 00127 M01S00127.comcjcr +++|* ENTRY (X1) = REGISTER NAME LEFT JUSTIFIED. 00128 M01S00128.comcjcr +++|* 00129 M01S00129.comcjcr +++|* EXIT (X7) = 0 IF NOT VALID REGISTER NAME. 00130 M01S00130.comcjcr +++|* (X7) = 1 IF *R1*, *R2*, *R3*, OR *R1G* REGISTER. 00131 M01S00131.comcjcr +++|* (X7) .GT. 1 IF NOT *R* REGITER. 00132 M01S00132.comcjcr +++|* (X6) = MASK TO EXTRACT REGISTER IN *JCRB* WORD. 00133 M01S00133.comcjcr +++|* (X3) = *JCRB* WORD CONTAINING REGISTER. 00134 M01S00134.comcjcr +++|* (A3) = ADDRESS OF *JCRB* WORD CONTAINING REGISTER. 00135 M01S00135.comcjcr +++|* (B2) = FIRST BIT OF REGISTER IN *JCRB* WORD. 00136 M01S00136.comcjcr +++|* 00137 M01S00137.comcjcr +++|* USES X - 1, 3, 7. 00138 M01S00138.comcjcr +++|* A - 3. 00139 M01S00139.comcjcr +++| 00140 M01S00140.comcjcr +++| 00141 M01S00141.comcjcr +++| VRN SUBR ENTRY/EXIT 00142 M01S00142.comcjcr +++| SA3 TJRP-1 00143 M01S00143.comcjcr +++| MX6 42 00144 M01S00144.comcjcr +++| VRN1 SA3 A3+B1 READ NEXT ENTRY 00145 M01S00145.comcjcr +++| BX7 X6*X3 00146 M01S00146.comcjcr +++| ZR X7,VRNX IF END OF TABLE 00147 M01S00147.comcjcr +++| BX7 X7-X1 00148 M01S00148.comcjcr +++| NZ X7,VRN1 IF NO MATCH 00149 M01S00149.comcjcr +++| MX6 -6 00150 M01S00150.comcjcr +++| BX7 -X6*X3 EXTRACT REGISTER SIZE 00151 M01S00151.comcjcr +++| LX3 -6 00152 M01S00152.comcjcr +++| SB2 X7 00153 M01S00153.comcjcr +++| BX1 -X6*X3 EXTRACT STARTING BIT IN WORD 00154 M01S00154.comcjcr +++| LX3 -6 00155 M01S00155.comcjcr +++| SX7 A3-ENDR 00156 M01S00156.comcjcr +++| BX3 -X6*X3 EXTRACT WORD ADDRESS 00157 M01S00157.comcjcr +++| PL X7,VRN2 IF NOT *R* REGISTER 00158 M01S00158.comcjcr +++| SX7 B1+ SET *R* REGISTER 00159 M01S00159.comcjcr +++| VRN2 SA3 JCRB+X3 READ REGISTER WORD 00160 M01S00160.comcjcr +++| MX6 1 00161 M01S00161.comcjcr +++| AX6 B2 SET FIELD MASK 00162 M01S00162.comcjcr +++| LX6 B2 00163 M01S00163.comcjcr +++| SB2 X1 00164 M01S00164.comcjcr +++| LX6 B2 POSITION FIELD MASK 00165 M01S00165.comcjcr +++| EQ VRNX RETURN 00166 M01S00166.comcjcr +++| SPACE 4 00167 M01S00167.comcjcr +++|** DATA AREA. 00168 M01S00168.comcjcr +++| 00169 M01S00169.comcjcr +++| 00170 M01S00170.comcjcr +++| JCRB BSSZ 2 JOB CONTROL REGISTERS BLOCK 00171 M01S00171.comcjcr +++| TJRP SPACE 4,15 00172 M01S00172.comcjcr +++|** TJRP - TABLE OF JOB REGISTER PARAMETERS. 00173 M01S00173.comcjcr +++|* 00174 M01S00174.comcjcr +++|*T 42/ NAME,6/ WO,6/ SB,6/ SZ
Figure
00175 M01S00175.comcjcr +++|* 00176 M01S00176.comcjcr +++|* NAME = REGISTER NAME LEFT JUSTIFIED. 00177 M01S00177.comcjcr +++|* 00178 M01S00178.comcjcr +++|* WO = WORD OFFSET IN *JCRB*. 00179 M01S00179.comcjcr +++|* 00180 M01S00180.comcjcr +++|* SB = STARTING BIT POSITION IN WORD. 00181 M01S00181.comcjcr +++|* 00182 M01S00182.comcjcr +++|* SZ = SIZE IN BITS. 00183 M01S00183.comcjcr +++| 00184 M01S00184.comcjcr +++| 00185 M01S00185.comcjcr +++| TJRP BSS 0 START OF TABLE 00186 M01S00186.comcjcr +++| VFD 42/0LR1,6/1,6/0,6/18 R1 REGISTER 00187 M01S00187.comcjcr +++| VFD 42/0LR2,6/1,6/18,6/18 R2 REGISTER 00188 M01S00188.comcjcr +++| VFD 42/0LR3,6/1,6/36,6/18 R3 REGISTER 00189 M01S00189.comcjcr +++| VFD 42/0LR1G,6/0,6/36,6/18 R1G REGISTER 00190 M01S00190.comcjcr +++| ENDR EQU * END OF *R* REGISTERS 00191 M01S00191.comcjcr +++| VFD 42/0LEFG,6/0,6/54,6/6 GLOBAL ERROR FLAG 00192 M01S00192.comcjcr +++| VFD 42/0LPNL,6/0,6/24,6/12 PROCEDURE NESTING LEVEL 00193 M01S00193.comcjcr +++| VFD 42/0LEM,6/0,6/12,6/12 EXIT MODE 00194 M01S00194.comcjcr +++| VFD 42/0LSW1,6/0,6/6,6/1 SENSE SWITCH 1 00195 M01S00195.comcjcr +++| VFD 42/0LSW2,6/0,6/7,6/1 SENSE SWITCH 2 00196 M01S00196.comcjcr +++| VFD 42/0LSW3,6/0,6/8,6/1 SENSE SWITCH 3 00197 M01S00197.comcjcr +++| VFD 42/0LSW4,6/0,6/8,6/1 SENSE SWITCH 4 00198 M01S00198.comcjcr +++| VFD 42/0LSW5,6/0,6/10,6/1 SENSE SWITCH 5 00199 M01S00199.comcjcr +++| VFD 42/0LSW6,6/0,6/11,6/1 SENSE SWITCH 6 00200 M01S00200.comcjcr +++| VFD 42/0LEF,6/1,6/54,6/6 ERROR FLAG 00201 M01S00201.comcjcr +++| CON 0 END OF TABLE 00202 M01S00202.comcjcr +++| 00203 M01S00203.comcjcr +++| BASE * 00204 M01S00204.comcjcr +++| QUAL$ IF -DEF,QUAL$ 00205 M01S00205.comcjcr +++| QUAL * 00206 M01S00206.comcjcr +++| GJR EQU /COMCJCR/GJR 00207 M01S00207.comcjcr +++| SJR EQU /COMCJCR/SJR 00208 M01S00208.comcjcr +++| GWR EQU /COMCJCR/GWR 00209 M01S00209.comcjcr +++| SWR EQU /COMCJCR/SWR 00210 M01S00210.comcjcr +++| QUAL$ ENDIF 00211 M01S00211.comcjcr +++| ENDX
cdc/nos2.source/opl.opl871/common/comcjcr.txt ยท Last modified: by 127.0.0.1