User Tools

Site Tools


cdc:nos2.source:opl.opl871:common:comcecs

Common COMCECS

2 Modifications

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.comcecs +++|          CTEXT  COMCECS - ECS INTERPRETIVE MODE MACRO PROCESSORS.
00002  M01S00002.comcecs +++|          SPACE  4,10
00003  M01S00003.comcecs +++|          IF     -DEF,QUAL$,1
00004  M01S00004.comcecs +++|          QUAL   COMCECS
00005  M01S00005.comcecs +++|          BASE   D
Line S00006 Modification History
M01 (Added by) comcecs
M02 (Updated by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00006  M02S00006.281l803 ---|*         COMMENT COPYRIGHT CONTROL DATA CORP.  1977.
00007  M01S00001.281l803 +++|*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00008  M01S00007.comcecs +++| ECS      SPACE  4,10
00009  M01S00008.comcecs +++|***       COMCECS - ECS INTERPRETIVE MODE MACRO PROCESSORS.
00010  M01S00009.comcecs +++|*         A. J. BEEKMAN.     77/04/11.
00011  M01S00010.comcecs +++| ECS      SPACE  4,10
00012  M01S00011.comcecs +++|***       *COMCECS* CONTAINS PROCESSORS *REC=* AND *WEC=* WHICH
00013  M01S00012.comcecs +++|*         PROCESS THE INTERPRETIVE MODE ECS READ AND WRITE
00014  M01S00013.comcecs +++|*         INSTRUCTIONS.  THE PROCESSORS BREAK LARGE TRANSFERS INTO
00015  M01S00014.comcecs +++|*         SMALLER BLOCKS AND ALSO ATTEMPT TO RECOVER ECS ERRORS IN A
00016  M01S00015.comcecs +++|*         MANNER TRANSPARENT TO THE USER.
00017  M01S00016.comcecs +++|*
00018  M01S00017.comcecs +++|*         THIS COMMON DECK REQUIRES ONE OF THE FOLLOWING -
00019  M01S00018.comcecs +++|*                1) COMMON DECK *COMCECM*.
00020  M01S00019.comcecs +++|*                2) ASSEMBLY USING *ECSTEXT*.
00021  M01S00020.comcecs +++| ECS      SPACE  4,10
00022  M01S00021.comcecs +++|**        ROUTINES CALLED.
00023  M01S00022.comcecs +++|*
00024  M01S00023.comcecs +++|*         ELM.
00025  M01S00024.comcecs +++| REC=     SPACE  4,20
00026  M01S00025.comcecs +++|***       REC= - READ ECS INTERPRETIVE MODE PROCESSOR.
00027  M01S00026.comcecs +++|*
00028  M01S00027.comcecs +++|*         ENTRY  (A0) = CM ADDRESS TO READ TO.
00029  M01S00028.comcecs +++|*                (X0) = ECS ADDRESS TO READ FROM.
00030  M01S00029.comcecs +++|*                (REC=)-1 = 30/,9/,3/B REGISTER,18/WORD COUNT.
00031  M01S00030.comcecs +++|*
00032  M01S00031.comcecs +++|*         EXIT   ALL REGISTERS RESTORED.
00033  M01S00032.comcecs +++|*
00034  M01S00033.comcecs +++|*         USES   A - 1, 7.
00035  M01S00034.comcecs +++|*                X - 1, 4, 6, 7.
00036  M01S00035.comcecs +++|*
00037  M01S00036.comcecs +++|*         CALLS  RSR, RWE, SVR.
00038  M01S00037.comcecs +++|
00039  M01S00038.comcecs +++|
00040  M01S00039.comcecs +++| REC1     RJ     RSR         RESTORE REGISTERS
00041  M01S00040.comcecs +++|
00042  M01S00041.comcecs +++| REC=     PS                 ENTRY/EXIT
00043  M01S00042.comcecs +++|          RJ     SVR         SAVE ALL REGISTERS
00044  M01S00043.comcecs +++|          SA1    REC=        SET WORD COUNT
00045  M01S00044.comcecs +++|          SX4    B0+         SET READ ECS INSTRUCTION
00046  M01S00045.comcecs +++|          RJ     RWE         READ/WRITE ECS
00047  M01S00046.comcecs +++|          NG     X1,REC1     IF UNRECOVERED ECS ERROR
00048  M01S00047.comcecs +++|          SA1    REC=        SET RETURN JUMP FOR NO ERROR
00049  M01S00048.comcecs +++|          SX6    B1
00050  M01S00049.comcecs +++|          LX6    30
00051  M01S00050.comcecs +++|          IX7    X1+X6
00052  M01S00051.comcecs +++|          SA7    A1
00053  M01S00052.comcecs +++|          EQ     REC1        RESTORE REGISTERS
00054  M01S00053.comcecs +++| WEC=     SPACE  4,20
00055  M01S00054.comcecs +++|***       WEC= - WRITE ECS INTERPRETIVE MODE PROCESSOR.
00056  M01S00055.comcecs +++|*
00057  M01S00056.comcecs +++|*         ENTRY  (A0) = CM ADDRESS TO WRITE FROM.
00058  M01S00057.comcecs +++|*                (X0) = ECS ADDRESS TO WRITE TO.
00059  M01S00058.comcecs +++|*                (WEC=)-1 = 30/,9/,3/B REGISTER,18/WORD COUNT.
00060  M01S00059.comcecs +++|*
00061  M01S00060.comcecs +++|*         EXIT   ALL REGISTERS RESTORED.
00062  M01S00061.comcecs +++|*
00063  M01S00062.comcecs +++|*         USES   A - 1, 7.
00064  M01S00063.comcecs +++|*                X - 1, 4, 6, 7.
00065  M01S00064.comcecs +++|*
00066  M01S00065.comcecs +++|*         CALLS  RSR, RWE, SVR.
00067  M01S00066.comcecs +++|
00068  M01S00067.comcecs +++|
00069  M01S00068.comcecs +++| WEC1     RJ     RSR         RESTORE REGISTERS
00070  M01S00069.comcecs +++|
00071  M01S00070.comcecs +++| WEC=     PS                 ENTRY/EXIT
00072  M01S00071.comcecs +++|          RJ     SVR         SAVE ALL REGISTERS
00073  M01S00072.comcecs +++|          SA1    WEC=        SET WORD COUNT
00074  M01S00073.comcecs +++|          SX4    B1+         SET WRITE ECS INSTRUCTION
00075  M01S00074.comcecs +++|          RJ     RWE         READ/WRITE ECS
00076  M01S00075.comcecs +++|          NG     X1,WEC1     IF UNRECOVERED ECS ERROR
00077  M01S00076.comcecs +++|          SA1    WEC=        SET RETURN JUMP FOR NO ERROR
00078  M01S00077.comcecs +++|          SX6    B1
00079  M01S00078.comcecs +++|          LX6    30
00080  M01S00079.comcecs +++|          IX7    X1+X6
00081  M01S00080.comcecs +++|          SA7    A1
00082  M01S00081.comcecs +++|          EQ     WEC1        RESTORE REGISTERS
00083  M01S00082.comcecs +++| RSR      SPACE  4,10
00084  M01S00083.comcecs +++|**        RSR - RESTORE ALL REGISTERS.
00085  M01S00084.comcecs +++|*
00086  M01S00085.comcecs +++|*         ENTRY  (REGA - REGA+7) = PREVIOUS *A* REGISTER CONTENTS.
00087  M01S00086.comcecs +++|*                (REGB - REGB+7) = PREVIOUS *B* REGISTER CONTENTS.
00088  M01S00087.comcecs +++|*                (REGX - REGX+7) = PREVIOUS *X* REGISTER CONTENTS.
00089  M01S00088.comcecs +++|*
00090  M01S00089.comcecs +++|*         EXIT   PREVIOUS REGISTER CONTENTS RESTORED.
00091  M01S00090.comcecs +++|*
00092  M01S00091.comcecs +++|*         USES   ALL REGISTERS.
00093  M01S00092.comcecs +++|
00094  M01S00093.comcecs +++|
00095  M01S00094.comcecs +++| RSR      PS                 ENTRY/EXIT
00096  M01S00095.comcecs +++|          MX0    18
00097  M01S00096.comcecs +++|          SA5    REGX+5      *X5* VALUE
00098  M01S00097.comcecs +++|          SB2    B0
Line S00098 Modification History
M01 (Added by) comcecs
M02 (Updated by) ns2336
Seq #  *Modification Id* Act 
----------------------------+
00099  M02S00098.ns2336  ---|          SA2    RSR3        PRESET TO CORRECT SHIFT COUNT
00100  M01S00001.ns2336  +++|          SA2    RSRA        PRESET TO RESTORE X5
00101  M01S00099.comcecs +++|          SX1    74B
00102  M01S00100.comcecs +++|          BX7    -X1*X2
00103  M01S00101.comcecs +++|          PL     X5,RSR1     IF VALUE IS .GE. ZERO
00104  M01S00102.comcecs +++|          BX7    X7+X1
00105  M01S00103.comcecs +++|
00106  M01S00104.comcecs +++|*         MODIFY INSTRUCTIONS TO SAVE *B* REGISTERS.
00107  M01S00105.comcecs +++|
00108  M01S00106.comcecs +++| RSR1     SB1    1
00109  M01S00107.comcecs +++|          LX0    33          SET MASK FOR INSTRUCTION MODIFICATION
00110  M01S00108.comcecs +++|          MX4    0
00111  M01S00109.comcecs +++|          SB3    7           SET HIGHEST REGISTER NUMBER
00112  M01S00110.comcecs +++|          SB4    15          SET SHIFT COUNT
00113  M01S00111.comcecs +++| RSR2     SA2    A2+B1       GET NEXT WORD OF INSTRUCTIONS
00114  M01S00112.comcecs +++|          SA1    REGB+1+B2   GET *B* REGISTER VALUE
00115  M01S00113.comcecs +++|          IX6    X7+X4       SAVE PREVIOUS WORD OF INSTRUCTIONS
00116  M01S00114.comcecs +++|          BX4    -X0*X2
00117  M01S00115.comcecs +++|          LX3    X1,B4
00118  M01S00116.comcecs +++|          SB2    B2+B1       INCREMENT *B* REGISTER NUMBER
00119  M01S00117.comcecs +++|          SA6    A2-B1
00120  M01S00118.comcecs +++|          BX7    X0*X3
00121  M01S00119.comcecs +++|          NE     B2,B3,RSR2  IF NOT END OF *B* REGISTERS
00122  M01S00120.comcecs +++|          LX0    15          SAVE LAST INSTRUCTION WORD
00123  M01S00121.comcecs +++|          BX4    -X0*X2
00124  M01S00122.comcecs +++|          LX7    15
00125  M01S00123.comcecs +++|          IX6    X7+X4
00126  M01S00124.comcecs +++|          SA6    A2
00127  M01S00125.comcecs +++|
00128  M01S00126.comcecs +++|*         RESTORE *A0*, *A1*, *A6*, *A7*, *X0*, *X1*, *X6* AND *X7*.
00129  M01S00127.comcecs +++|
00130  M01S00128.comcecs +++|          SA3    REGX        *X0* VALUE
00131  M01S00129.comcecs +++|          SA1    REGA        *A0* VALUE
00132  M01S00130.comcecs +++|          UX5    X5,B6
00133  M01S00131.comcecs +++|          BX0    X3
00134  M01S00132.comcecs +++|          MX4    60
00135  M01S00133.comcecs +++|          LX5    11
00136  M01S00134.comcecs +++|          SB7    X4+777777B  *B7* = -0
00137  M01S00135.comcecs +++|          SA0    X1+B7
00138  M01S00136.comcecs +++|          UX5    X5,B5
00139  M01S00137.comcecs +++|          SA1    REGA+6      *A6* VALUE
00140  M01S00138.comcecs +++|          SA2    A1+B1       *A7* VALUE
00141  M01S00139.comcecs +++|          LX5    11
00142  M01S00140.comcecs +++|          SA3    X1+B7       GET CONTENTS OF *A6* AND *A7* VALUES
00143  M01S00141.comcecs +++|          SA4    X2+B7
00144  M01S00142.comcecs +++|          BX6    X3
00145  M01S00143.comcecs +++|          BX7    X4
00146  M01S00144.comcecs +++|          SA3    REGA+1      *A1* VALUE
00147  M01S00145.comcecs +++|          SA6    X1+B7
00148  M01S00146.comcecs +++|          UX5    X5,B4
00149  M01S00147.comcecs +++|          SA7    X2+B7
00150  M01S00148.comcecs +++|          LX5    11
00151  M01S00149.comcecs +++|          SA2    REGX+6      *X6* VALUE
00152  M01S00150.comcecs +++|          SA1    X3+B7
00153  M01S00151.comcecs +++|          BX6    X2
00154  M01S00152.comcecs +++|          UX5    X5,B3
00155  M01S00153.comcecs +++|          SA3    A2+B1       *X7* VALUE
00156  M01S00154.comcecs +++|          SA4    REGX+1      *X1* VALUE
00157  M01S00155.comcecs +++|          LX5    11
00158  M01S00156.comcecs +++|          BX7    X3
00159  M01S00157.comcecs +++|          BX1    X4
00160  M01S00158.comcecs +++|
00161  M01S00159.comcecs +++|*         RESTORE *A2* - *A4* AND *X2* - *X4*.
00162  M01S00160.comcecs +++|
00163  M01S00161.comcecs +++|          SA2    REGA+2      *A2* VALUE
00164  M01S00162.comcecs +++|          UX5    X5,B2
00165  M01S00163.comcecs +++|          SA3    REGX+2      *X2* VALUE
00166  M01S00164.comcecs +++|          LX5    11
00167  M01S00165.comcecs +++|          SA2    X2+B7
00168  M01S00166.comcecs +++|          SA4    REGA+3      *A3* VALUE
00169  M01S00167.comcecs +++|          UX5    X5,B1
00170  M01S00168.comcecs +++|          BX2    X3
00171  M01S00169.comcecs +++|          SA3    X4+B7
00172  M01S00170.comcecs +++|          SA5    REGX+3      *X3* VALUE
00173  M01S00171.comcecs +++|          BX3    X5
00174  M01S00172.comcecs +++|          SA4    REGA+4      *A4* VALUE
00175  M01S00173.comcecs +++|          SA5    REGX+4      *X4* VALUE
00176  M01S00174.comcecs +++|          SA4    X4+B7
00177  M01S00175.comcecs +++|          BX4    X5
00178  M01S00176.comcecs +++|
00179  M01S00177.comcecs +++|*         RESTORE *A5*, *X5* AND *B1* - *B7*.
00180  M01S00178.comcecs +++|
00181  M01S00179.comcecs +++|          SA5    REGA+5      *A5* VALUE
00182  M01S00002.ns2336  +++|          JP     RSR3        PURGE STACK BEFORE CONTINUING
00183  M01S00180.comcecs +++| RSR3     SA5    X5+B7
00184  M01S00003.ns2336  +++| RSRA     EQU    *           CODE MODIFIED FROM HERE TO EXIT
00185  M01S00181.comcecs +++|          NO
00186  M01S00182.comcecs +++|          NO
00187  M01S00004.ns2336  +++|          ERRNZ  $-14        ASSUMES MASK IN LOWER 15 BITS
00188  M01S00183.comcecs +++|          MX5    0           SET *X5* VALUE
00189  M01S00184.comcecs +++|*         MX5    60          (IF X5 .LT. 0)
00190  M01S00185.comcecs +++|          PX5    X5,B1
00191  M01S00186.comcecs +++|          SB1    B7+0        SET *B1* VALUE
00192  M01S00187.comcecs +++|*         SB1    (REGB+1)
00193  M01S00188.comcecs +++|          LX5    49
00194  M01S00189.comcecs +++|          PX5    X5,B2
00195  M01S00190.comcecs +++|          SB2    B7+0        SET *B2* VALUE
00196  M01S00191.comcecs +++|*         SB2    (REGB+2)
00197  M01S00192.comcecs +++|          LX5    49
00198  M01S00193.comcecs +++|          PX5    X5,B3
00199  M01S00194.comcecs +++|          SB3    B7+0        SET *B3* VALUE
00200  M01S00195.comcecs +++|*         SB3    (REGB+3)
00201  M01S00196.comcecs +++|          LX5    49
00202  M01S00197.comcecs +++|          PX5    X5,B4
00203  M01S00198.comcecs +++|          SB4    B7+0        SET *B4* VALUE
00204  M01S00199.comcecs +++|*         SB4    (REGB+4)
00205  M01S00200.comcecs +++|          LX5    49
00206  M01S00201.comcecs +++|          PX5    X5,B5
00207  M01S00202.comcecs +++|          SB5    B7+0        SET *B5* VALUE
00208  M01S00203.comcecs +++|*         SB5    (REGB+5)
00209  M01S00204.comcecs +++|          LX5    49
00210  M01S00205.comcecs +++|          PX5    X5,B6
00211  M01S00206.comcecs +++|          SB6    B7+0        SET *B6* VALUE
00212  M01S00207.comcecs +++|*         SB6    (REGB+6)
00213  M01S00208.comcecs +++|          SB7    B7+0        SET *B7* VALUE
00214  M01S00209.comcecs +++|*         SB7    (REGB+7)
00215  M01S00210.comcecs +++|          EQ     RSR         RETURN
00216  M01S00211.comcecs +++| RWE      SPACE  4,20
00217  M01S00212.comcecs +++|**        RWE - READ/WRITE ECS.
00218  M01S00213.comcecs +++|*
00219  M01S00214.comcecs +++|*         ENTRY  (X1) = 30/RETURN JUMP ADDRESS,30/
00220  M01S00215.comcecs +++|*                (X4) = 0 IF READ ECS.
00221  M01S00216.comcecs +++|*                     = 1 IF WRITE ECS.
00222  M01S00217.comcecs +++|*                (REGA) = CM ADDRESS.
00223  M01S00218.comcecs +++|*                (REGX) = ECS ADDRESS.
00224  M01S00219.comcecs +++|*                (REGB) = *B* REGISTER CONTENTS BLOCK.
00225  M01S00220.comcecs +++|*
00226  M01S00221.comcecs +++|*         EXIT   (X1) .LT. 0 IF UNRECOVERED ERROR ENCOUNTERED.
00227  M01S00222.comcecs +++|*
00228  M01S00223.comcecs +++|*         USES   A - 0, 1, 2, 3, 5, 6, 7.
00229  M01S00224.comcecs +++|*                B - 4.
00230  M01S00225.comcecs +++|*                X - 0, 1, 2, 3, 5, 6, 7.
00231  M01S00226.comcecs +++|
00232  M01S00227.comcecs +++|
00233  M01S00228.comcecs +++| RWE13    SA1    RWEC        FETCH ERROR FLAG
00234  M01S00229.comcecs +++|
00235  M01S00230.comcecs +++| RWE      PS                 ENTRY/EXIT
00236  M01S00231.comcecs +++|          SX7    B0+         CLEAR ERROR FLAG
00237  M01S00232.comcecs +++|          SA7    RWEC
00238  M01S00233.comcecs +++|
00239  M01S00234.comcecs +++|*         GET WORD COUNT TO TRANSFER.
00240  M01S00235.comcecs +++|
00241  M01S00236.comcecs +++|          AX1    30          GET ADDRESS OF WORD COUNT
00242  M01S00237.comcecs +++|          SX6    X1
00243  M01S00238.comcecs +++|          SA3    X6-1        FORM WORD COUNT
00244  M01S00239.comcecs +++|          MX0    -18
00245  M01S00240.comcecs +++|          BX7    -X0*X3
00246  M01S00241.comcecs +++|          SA2    REGA        RESTORE *A0*
00247  M01S00242.comcecs +++|          SA1    REGX        RESTORE *X0*
00248  M01S00243.comcecs +++|          SA0    X2+
00249  M01S00244.comcecs +++|          BX0    X1
00250  M01S00245.comcecs +++|          AX3    18
00251  M01S00246.comcecs +++|          MX1    -3
00252  M01S00247.comcecs +++|          BX3    -X1*X3
00253  M01S00248.comcecs +++|          ZR     X3,RWE1     IF NO *B* REGISTER SPECIFIED
00254  M01S00249.comcecs +++|          SA1    REGB+X3     GET *B* REGISTER WORD COUNT
00255  M01S00250.comcecs +++|          IX7    X1+X7
00256  M01S00251.comcecs +++| RWE1     SA7    RWEA
00257  M01S00252.comcecs +++|
00258  M01S00253.comcecs +++|*         BREAK TRANSFER INTO SMALL BLOCKS.
00259  M01S00254.comcecs +++|
00260  M01S00255.comcecs +++| RWE2     SX5    400B        CHECK BLOCK SIZE
00261  M01S00256.comcecs +++|          SA1    RWEA
00262  M01S00257.comcecs +++|          ZR     X1,RWE13    IF ALL WORDS TRANSFERED
00263  M01S00258.comcecs +++|          IX6    X1-X5
00264  M01S00259.comcecs +++|          PL     X6,RWE3     IF FULL 400B WORD BLOCK AVAILABLE
00265  M01S00260.comcecs +++|          SX5    X1          SET WORDS REMAINING
00266  M01S00261.comcecs +++|          SX6    B0
00267  M01S00262.comcecs +++| RWE3     SA6    A1
00268  M01S00263.comcecs +++|          SB4    X5          SET BLOCK WORD COUNT
00269  M01S00264.comcecs +++|          NZ     X4,RWE5     IF WRITE
00270  M01S00265.comcecs +++|          RD     B4          READ ECS BLOCK
00271  M01S00266.comcecs +++|          EQ     RWE6        PROCESS ECS ERROR
00272  M01S00267.comcecs +++|
00273  M01S00268.comcecs +++| RWE4     SA0    A0+B4       INCREMENT ADDRESSES
00274  M01S00269.comcecs +++|          SX5    B4+
00275  M01S00270.comcecs +++|          IX0    X0+X5
00276  M01S00271.comcecs +++|          EQ     RWE2        SET SIZE OF NEXT BLOCK
00277  M01S00272.comcecs +++|
00278  M01S00273.comcecs +++| RWE5     WT     B4          WRITE ECS BLOCK
00279  M01S00274.comcecs +++|          EQ     RWE6        PROCESS ECS ERROR
00280  M01S00275.comcecs +++|
00281  M01S00276.comcecs +++|          EQ     RWE4        INCREMENT ADDRESSES
00282  M01S00277.comcecs +++|
00283  M01S00278.comcecs +++|*         PROCESS ECS ERROR.
00284  M01S00279.comcecs +++|
00285  M01S00280.comcecs +++| RWE6     SX6    X4+1        SET READ/WRITE FLAG
00286  M01S00281.comcecs +++|          LX6    18
00287  M01S00282.comcecs +++|          BX7    X6+X5       ADD WORD COUNT FOR TRANSFER
00288  M01S00283.comcecs +++|          SA7    ELMB+1
00289  M01S00284.comcecs +++|          EQ     RWE10       TRY SINGLE WORD TRANSFERS
00290  M01S00285.comcecs +++|
00291  M01S00286.comcecs +++| RWE7     LX3    -18         POSITION RETRY COUNT/RECOVERY STATUS
00292  M01S00287.comcecs +++|          SX5    A0          ADD IN CM ADDRESS
00293  M01S00288.comcecs +++|          LX5    24
00294  M01S00289.comcecs +++|          BX6    X3+X5
00295  M01S00290.comcecs +++|          BX7    X6+X0       ADD ECS ADDRESS
00296  M01S00291.comcecs +++|          SA2    RWEB
00297  M01S00292.comcecs +++|          MX1    48
00298  M01S00293.comcecs +++|          SA7    ELMB+2
00299  M01S00294.comcecs +++|          ZR     X2,RWE8     IF DAYFILE MESSAGE LIMIT REACHED
00300  M01S00295.comcecs +++|          SA5    ELMB        CLEAR DAYFILE LIMIT AND COMPLETION BIT
00301  M01S00296.comcecs +++|          BX6    X1*X5
00302  M01S00297.comcecs +++|          SA6    A5
00303  M01S00298.comcecs +++|          SYSTEM ELM,R,ELMB  CALL *ELM* TO PROCESS ERROR MESSAGE
00304  M01S00299.comcecs +++|          SA2    A5          CHECK DAYFILE MESSAGE LIMIT
00305  M01S00300.comcecs +++|          MX1    -11
00306  M01S00301.comcecs +++|          AX2    1
00307  M01S00302.comcecs +++|          BX6    -X1*X2
00308  M01S00303.comcecs +++|          SX6    X6-1
00309  M01S00304.comcecs +++|          SA6    RWEB
00310  M01S00305.comcecs +++| RWE8     BX1    X3
00311  M01S00306.comcecs +++|          LX1    59-48
00312  M01S00307.comcecs +++|          PL     X1,RWE12    IF SINGLE WORD READ RECOVERED
00313  M01S00308.comcecs +++|          MX7    1           SET UNRECOVERED ERROR FLAG
00314  M01S00309.comcecs +++|          SA7    RWEC
00315  M01S00310.comcecs +++|          EQ     RWE12       CONTINUE SINGLE WORD RECOVERY
00316  M01S00311.comcecs +++|
00317  M01S00312.comcecs +++|*         RETRY WITH SINGLE WORD TRANSFERS.
00318  M01S00313.comcecs +++|
00319  M01S00314.comcecs +++| RWE10    SA2    A0          READ WORD OF DATA
00320  M01S00315.comcecs +++|          SX3    101B        SET UNRECOVERED ERROR WITH RETRY
00321  M01S00316.comcecs +++|          BX6    X2
00322  M01S00317.comcecs +++|          SA6    ELMB+3      SET BAD DATA
00323  M01S00318.comcecs +++|          NZ     X4,RWE11    IF WRITE
00324  M01S00319.comcecs +++|          RD     1           READ ONE ECS WORD
00325  M01S00320.comcecs +++|          EQ     RWE7        PROCESS UNRECOVERED ERROR
00326  M01S00321.comcecs +++|
00327  M01S00322.comcecs +++|          SA2    A0          VERIFY DATA
00328  M01S00323.comcecs +++|          SX3    1           SET RECOVERED STATUS
00329  M01S00324.comcecs +++|          BX7    X2-X6
00330  M01S00325.comcecs +++|          ZR     X7,RWE12    IF DATA VERIFIES
00331  M01S00326.comcecs +++|          BX7    X2          SET GOOD DATA
00332  M01S00327.comcecs +++|          SA7    A6+B1
00333  M01S00328.comcecs +++|          EQ     RWE7        ISSUE MESSAGE
00334  M01S00329.comcecs +++|
00335  M01S00330.comcecs +++| RWE11    WT     1           WRITE ONE ECS WORD
00336  M01S00331.comcecs +++|          EQ     RWE7        PROCESS UNRECOVERED ERROR
00337  M01S00332.comcecs +++|
00338  M01S00333.comcecs +++| RWE12    SA0    A0+B1       INCREMENT ADDRESSES
00339  M01S00334.comcecs +++|          SX3    B1
00340  M01S00335.comcecs +++|          IX0    X0+X3
00341  M01S00336.comcecs +++|          SB4    B4-B1       DECREMENT WORD COUNT
00342  M01S00337.comcecs +++|          NZ     B4,RWE10    IF MORE WORDS TO CHECK
00343  M01S00338.comcecs +++|          EQ     RWE2        READ/WRITE NEXT BLOCK
00344  M01S00339.comcecs +++|
00345  M01S00340.comcecs +++| RWEA     CON    0           WORD COUNT TO TRANSFER
00346  M01S00341.comcecs +++| RWEB     CON    1           DAYFILE MESSAGE LIMIT FLAG
00347  M01S00342.comcecs +++| RWEC     CON    0           UNRECOVERED ERROR FLAG
00348  M01S00343.comcecs +++| SVR      SPACE  4,10
00349  M01S00344.comcecs +++|**        SVR - SAVE ALL REGISTERS.
00350  M01S00345.comcecs +++|*
00351  M01S00346.comcecs +++|*         EXIT   (B1) = 1.
00352  M01S00347.comcecs +++|*                (REGA - REGA+7) = *A* REGISTER VALUES.
00353  M01S00348.comcecs +++|*                (REGB - REGB+7) = *B* REGISTER VALUES.
00354  M01S00349.comcecs +++|*                (REGX - REGX+7) = *X* REGISTER VALUES.
00355  M01S00350.comcecs +++|*
00356  M01S00351.comcecs +++|*         USES   A - 3, 6, 7.
00357  M01S00352.comcecs +++|*                B - 1, 2, 3, 7.
00358  M01S00353.comcecs +++|*                X - 3, 4, 6, 7.
00359  M01S00354.comcecs +++|
00360  M01S00355.comcecs +++|
00361  M01S00356.comcecs +++| SVR      PS                 ENTRY/EXIT
00362  M01S00357.comcecs +++|
00363  M01S00358.comcecs +++|*         HOLD *B7* VALUE.
00364  M01S00359.comcecs +++|
00365  M01S00360.comcecs +++| .1       IF     DEF,B1=1
00366  M01S00361.comcecs +++|          SB1    B7+777777B  SAVE *B7*
00367  M01S00362.comcecs +++| .1       ELSE
00368  M01S00363.comcecs +++|          PL     B7,*+2      CONSTRUCT TRAIL DESCRIBING *B7*
00369  M01S00364.comcecs +++|          RJ     *+1
00370  M01S00365.comcecs +++| SVR1     CON    0
00371  M01S00366.comcecs +++|          DUP    17
00372  M01S00367.comcecs +++|          SB7    B7+B7
00373  M01S00368.comcecs +++|          PL     B7,*+3
00374  M01S00369.comcecs +++|          RJ     *+1
00375  M01S00370.comcecs +++|          CON    0
00376  M01S00371.comcecs +++|          ENDD
00377  M01S00372.comcecs +++| .1       ENDIF
00378  M01S00373.comcecs +++|
00379  M01S00374.comcecs +++|*         SAVE *X* REGISTERS.
00380  M01S00375.comcecs +++|
00381  M01S00376.comcecs +++|          SB7    A7+777777B  HOLD *A7*
00382  M01S00377.comcecs +++|          SA7    REGX+7      SAVE *X7*
00383  M01S00378.comcecs +++|          SX7    B7+777777B  SAVE *A7*
00384  M01S00379.comcecs +++|          SA7    REGA+7
00385  M01S00380.comcecs +++|          MX7    60
00386  M01S00381.comcecs +++|          SB7    X7+777777B  FORCE -0 IN B REGISTER
00387  M01S00382.comcecs +++|          SX7    A6+B7       SAVE *X6* AND *A6*
00388  M01S00383.comcecs +++|          SA6    REGX+6
00389  M01S00384.comcecs +++|          SA7    REGA+6
00390  M01S00385.comcecs +++|          BX6    X0          SAVE *X0* AND *X1*
00391  M01S00386.comcecs +++|          LX7    X1
00392  M01S00387.comcecs +++|          SA6    REGX
00393  M01S00388.comcecs +++|          SA7    REGX+1
00394  M01S00389.comcecs +++|          BX6    X2          SAVE *X2* AND *X3*
00395  M01S00390.comcecs +++|          LX7    X3
00396  M01S00391.comcecs +++|          SA6    REGX+2
00397  M01S00392.comcecs +++|          SA7    REGX+3
00398  M01S00393.comcecs +++|          BX6    X4          SAVE *X4* AND *X5*
00399  M01S00394.comcecs +++|          LX7    X5
00400  M01S00395.comcecs +++|          SA6    REGX+4
00401  M01S00396.comcecs +++|          SA7    REGX+5
00402  M01S00397.comcecs +++|
00403  M01S00398.comcecs +++|*         SAVE *A* REGISTERS.
00404  M01S00399.comcecs +++|
00405  M01S00400.comcecs +++|          SX6    A0+B7       SAVE *A0* AND *A1*
00406  M01S00401.comcecs +++|          SX7    A1+B7
00407  M01S00402.comcecs +++|          SA6    REGA
00408  M01S00403.comcecs +++|          SA7    REGA+1
00409  M01S00404.comcecs +++|          SX6    A2+B7       SAVE *A2* AND *A3*
00410  M01S00405.comcecs +++|          SX7    A3+B7
00411  M01S00406.comcecs +++|          SA6    REGA+2
00412  M01S00407.comcecs +++|          SA7    REGA+3
00413  M01S00408.comcecs +++|          SX6    A4+B7       SAVE *A4* AND *A5*
00414  M01S00409.comcecs +++|          SX7    A5+B7
00415  M01S00410.comcecs +++|          SA6    REGA+4
00416  M01S00411.comcecs +++|          SA7    REGA+5
00417  M01S00412.comcecs +++|
00418  M01S00413.comcecs +++|*         SAVE *B* REGISTERS.
00419  M01S00414.comcecs +++|
00420  M01S00415.comcecs +++| .2       IF     DEF,B1=1
00421  M01S00416.comcecs +++|          SX7    1
00422  M01S00417.comcecs +++| .2       ELSE
00423  M01S00418.comcecs +++|          SX7    B1+777777B
00424  M01S00419.comcecs +++| .2       ENDIF
00425  M01S00420.comcecs +++|          SA7    REGB+1      SAVE *B1*
00426  M01S00421.comcecs +++|          SX6    B2+B7       SAVE *B2* AND *B3*
00427  M01S00422.comcecs +++|          SX7    B3+B7
00428  M01S00423.comcecs +++|          SA6    REGB+2
00429  M01S00424.comcecs +++|          SA7    REGB+3
00430  M01S00425.comcecs +++|          SX6    B4+B7       SAVE *B4* AND *B5*
00431  M01S00426.comcecs +++|          SX7    B5+B7
00432  M01S00427.comcecs +++|          SA6    REGB+4
00433  M01S00428.comcecs +++|          SA7    REGB+5
00434  M01S00429.comcecs +++|          SX6    B6+B7       SAVE *B6* AND *B0*
00435  M01S00430.comcecs +++|          SX7    B0+B7
00436  M01S00431.comcecs +++|          SA6    REGB+6
00437  M01S00432.comcecs +++|          SA7    REGB
00438  M01S00433.comcecs +++|
00439  M01S00434.comcecs +++|*         RESTORE *B7* VALUE.
00440  M01S00435.comcecs +++|
00441  M01S00436.comcecs +++| .3       IF     DEF,B1=1
00442  M01S00437.comcecs +++|          SX6    B1+B7       SET *B7*
00443  M01S00438.comcecs +++| .3       ELSE
00444  M01S00439.comcecs +++|          SA3    SVR1        RECONSTRUCT *B7*
00445  M01S00440.comcecs +++|          SB2    17
00446  M01S00441.comcecs +++|          SB3    3
00447  M01S00442.comcecs +++|          MX4    1
00448  M01S00443.comcecs +++|          BX6    X6-X6
00449  M01S00444.comcecs +++| SVR2     LX3    59-56       FOLLOW *B7* TRAIL TO RECONSTRUCT
00450  M01S00445.comcecs +++|          BX3    X3*X4
00451  M01S00446.comcecs +++|          SA7    A3          CLEAR TRAIL
00452  M01S00447.comcecs +++|          IX6    X3+X6
00453  M01S00448.comcecs +++|          SB2    B2-1
00454  M01S00449.comcecs +++|          SA3    A3+B3
00455  M01S00450.comcecs +++|          LX6    1
00456  M01S00451.comcecs +++|          PL     B2,SVR2     IF NOT END OF TRAIL
00457  M01S00452.comcecs +++| .3       ENDIF
00458  M01S00453.comcecs +++|          SA6    REGB+7      SAVE *B7*
00459  M01S00454.comcecs +++|          SB1    1           SET *B1* VALUE
00460  M01S00455.comcecs +++|          EQ     SVR         RETURN
00461  M01S00456.comcecs +++|          SPACE  4,10
00462  M01S00457.comcecs +++| ELMB     VFD    24/0,12/5,12/2REC,11/0,1/0  *ELM* CALL BLOCK
00463  M01S00458.comcecs +++|          BSSZ   4
00464  M01S00459.comcecs +++| REGA     BSS    8           *A* REGISTERS
00465  M01S00460.comcecs +++| REGB     BSS    8           *B* REGISTERS
00466  M01S00461.comcecs +++| REGX     BSS    8           *X* REGISTERS
00467  M01S00462.comcecs +++| ECS      SPACE  4,10
00468  M01S00463.comcecs +++|          BASE   *
00469  M01S00464.comcecs +++| QUAL$    IF     -DEF,QUAL$
00470  M01S00465.comcecs +++|          QUAL   *
00471  M01S00466.comcecs +++| REC=     EQU    /COMCECS/REC=
00472  M01S00467.comcecs +++| WEC=     EQU    /COMCECS/WEC=
00473  M01S00468.comcecs +++| QUAL$    ENDIF
00474  M01S00469.comcecs +++|          ENDX
cdc/nos2.source/opl.opl871/common/comcecs.txt ยท Last modified: by 127.0.0.1