User Tools

Site Tools


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

Common COMCMSF

Library Member Format: MODIFY

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M00S00001.comcmsf +++|          CTEXT  COMCMSF - MERGE SORTED FILES.
00002  M00S00002.comcmsf +++|          SPACE  4
00003  M00S00003.comcmsf +++|          IF     -DEF,QUAL$,1
00004  M00S00004.comcmsf +++|          QUAL   COMCMSF
00005  M00S00005.comcmsf +++|          BASE   D
00006  M00S00006.comcmsf +++|*         COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC.  1996.
00007  M00S00007.comcmsf +++|          SPACE  4,15
00008  M00S00008.comcmsf +++|***       MSF - MERGE SORTED FILES.
00009  M00S00009.comcmsf +++|*         G. S. YODER.    96/04/24.
00010  M00S00010.comcmsf +++|*
00011  M00S00011.comcmsf +++|*         ENTRY  (X0) = LENGTH OF TABLE ENTRY.
00012  M00S00012.comcmsf +++|*                (X1) = NUMBER OF ENTRIES IN FULL BLOCK.
00013  M00S00013.comcmsf +++|*                (X2) = SORT KEY MASK.
00014  M00S00014.comcmsf +++|*                (B4) = WORD OFFSET OF KEY IN TABLE ENTRY.
00015  M00S00015.comcmsf +++|*                (B5) = LENGTH OF KEY IN WORDS.
00016  M00S00016.comcmsf +++|*                (A0) = WORKING BUFFER 1 ADDRESS.
00017  M00S00017.comcmsf +++|*                (A5) = WORKING BUFFER 2 ADDRESS.
00018  M00S00018.comcmsf +++|*                ENTRIES TO SORT ON INPUT FILES 1 AND 2.
00019  M00S00019.comcmsf +++|*
00020  M00S00020.comcmsf +++|*         EXIT   SORTED ENTRIES ON FILE 3.
00021  M00S00021.comcmsf +++|
00022  M00S00022.comcmsf +++|
00023  M00S00023.comcmsf +++| MSF      SUBR               ENTRY/EXIT
00024  M00S00024.comcmsf +++|
00025  M00S00025.comcmsf +++|*         PRESET SORT PARAMETERS.
00026  M00S00026.comcmsf +++|
00027  M00S00027.comcmsf +++|          BX6    X1
00028  M00S00028.comcmsf +++|          BX7    X2
00029  M00S00029.comcmsf +++|          SA6    MSFA        SAVE BLOCK SIZE
00030  M00S00030.comcmsf +++|          SA7    MSFD        SAVE SORT KEY MASK
00031  M00S00031.comcmsf +++|          SX1    B5+
00032  M00S00032.comcmsf +++|          LX1    24
00033  M00S00033.comcmsf +++|          BX0    X0+X1       SET KEY LENGTH AND ENTRY LENGTH
00034  M00S00034.comcmsf +++|          PX0    X0,B4       SET KEY OFFSET
00035  M00S00035.comcmsf +++|
00036  M00S00036.comcmsf +++|*         INITIALIZE NEXT PASS.
00037  M00S00037.comcmsf +++|
00038  M00S00038.comcmsf +++| MSF1     REWIND S1          REWIND INPUT FILE 1
00039  M00S00039.comcmsf +++|          REWIND S2          REWIND INPUT FILE 2
00040  M00S00040.comcmsf +++|          REWIND S3          REWIND OUTPUT FILE 1
00041  M00S00041.comcmsf +++|          REWIND S4          REWIND OUTPUT FILE 2
00042  M00S00042.comcmsf +++|          READ   S1          INITIATE READ
00043  M00S00043.comcmsf +++|          READ   S2          INITIATE READ
00044  M00S00044.comcmsf +++|          WRITE  S3,*        SET WRITE FUNCTION
00045  M00S00045.comcmsf +++|          WRITE  S4,*        SET WRITE FUNCTION
00046  M00S00046.comcmsf +++|          SX6    B0+
00047  M00S00047.comcmsf +++|          SX5    S3          INITIALIZE OUTPUT FILE FET ADDRESS
00048  M00S00048.comcmsf +++|          SA6    MSFC        CLEAR BLOCKS WRITTEN
00049  M00S00049.comcmsf +++|
00050  M00S00050.comcmsf +++|*         INITIALIZE BLOCK MERGE.
00051  M00S00051.comcmsf +++|
00052  M00S00052.comcmsf +++| MSF2     SA1    MSFA
00053  M00S00053.comcmsf +++|          BX6    X1
00054  M00S00054.comcmsf +++|          SA6    MSFB        INITIALIZE BLOCK 1 SIZE
00055  M00S00055.comcmsf +++|          SA6    A6+1        INITIALIZE BLOCK 2 SIZE
00056  M00S00056.comcmsf +++|          READW  S1,A0,X0    READ BLOCK 1 ENTRY
00057  M00S00057.comcmsf +++|          ZR     X1,MSF9     IF NOT EOR
00058  M00S00058.comcmsf +++|          EQ     MSF13       CHECK MERGE COMPLETE
00059  M00S00059.comcmsf +++|
00060  M00S00060.comcmsf +++|*         COMPARE SORT KEYS.
00061  M00S00061.comcmsf +++|
00062  M00S00062.comcmsf +++| MSF3     UX3,B4 X0          SET KEY OFFSET
00063  M00S00063.comcmsf +++|          SA1    A0+B4       READ FIRST WORD OF FIRST ENTRY KEY
00064  M00S00064.comcmsf +++|          SA2    A5+B4       READ FIRST WORD OF SECOND ENTRY KEY
00065  M00S00065.comcmsf +++|          SA4    MSFD        SET SORT KEY MASK
00066  M00S00066.comcmsf +++|          AX3    24          SET KEY LENGTH
00067  M00S00067.comcmsf +++| MSF4     BX1    X4*X1
00068  M00S00068.comcmsf +++|          BX2    X4*X2
00069  M00S00069.comcmsf +++|          BX6    X1-X2
00070  M00S00070.comcmsf +++|          IX7    X2-X1
00071  M00S00071.comcmsf +++|          NG     X6,MSF5     IF KEYS ARE OPPOSITE SIGN
00072  M00S00072.comcmsf +++|          NZ     X6,MSF6     IF KEYS NOT IDENTICAL
00073  M00S00073.comcmsf +++|          SA1    A1+B1
00074  M00S00074.comcmsf +++|          SA2    A2+B1
00075  M00S00075.comcmsf +++|          SX3    X3-1        DECREMENT WORDS TO COMPARE
00076  M00S00076.comcmsf +++|          ZR     X3,MSF7     IF ALL WORDS OF KEY COMPARED
00077  M00S00077.comcmsf +++|          EQ     MSF4        COMPARE NEXT WORD OF KEYS
00078  M00S00078.comcmsf +++|
00079  M00S00079.comcmsf +++| MSF5     NG     X1,MSF8     IF FIRST KEY GREATER
00080  M00S00080.comcmsf +++|          EQ     MSF7        WRITE FIRST ENTRY
00081  M00S00081.comcmsf +++|
00082  M00S00082.comcmsf +++| MSF6     NG     X7,MSF8     IF FIRST KEY GREATER
00083  M00S00083.comcmsf +++|
00084  M00S00084.comcmsf +++|*         WRITE ENTRY 1 AND READ NEXT ENTRY.
00085  M00S00085.comcmsf +++|
00086  M00S00086.comcmsf +++| MSF7     WRITEW X5,A0,X0    WRITE ENTRY
00087  M00S00087.comcmsf +++|          SA1    MSFB
00088  M00S00088.comcmsf +++|          SX6    B1
00089  M00S00089.comcmsf +++|          IX6    X1-X6       COUNT ENTRY
00090  M00S00090.comcmsf +++|          SA6    A1+
00091  M00S00091.comcmsf +++|          ZR     X6,MSF11    IF END OF BLOCK 1
00092  M00S00092.comcmsf +++|          READW  S1,A0,X0    READ ENTRY
00093  M00S00093.comcmsf +++|          ZR     X1,MSF3     IF NOT EOR
00094  M00S00094.comcmsf +++|          EQ     MSF11       COPY BLOCK 2
00095  M00S00095.comcmsf +++|
00096  M00S00096.comcmsf +++|*         WRITE ENTRY 2 AND READ NEXT ENTRY.
00097  M00S00097.comcmsf +++|
00098  M00S00098.comcmsf +++| MSF8     WRITEW X5,A5,X0    WRITE ENTRY
00099  M00S00099.comcmsf +++|          SA1    MSFB+1
00100  M00S00100.comcmsf +++|          SX6    B1
00101  M00S00101.comcmsf +++|          IX6    X1-X6       COUNT ENTRY
00102  M00S00102.comcmsf +++|          SA6    A1+
00103  M00S00103.comcmsf +++|          ZR     X6,MSF10    IF END OF BLOCK 2
00104  M00S00104.comcmsf +++| MSF9     READW  S2,A5,X0    READ ENTRY
00105  M00S00105.comcmsf +++|          ZR     X1,MSF3     IF NOT EOR
00106  M00S00106.comcmsf +++|
00107  M00S00107.comcmsf +++|*         COPY REMAINDER OF BLOCK 1.
00108  M00S00108.comcmsf +++|
00109  M00S00109.comcmsf +++| MSF10    WRITEW X5,A0,X0    WRITE ENTRY
00110  M00S00110.comcmsf +++|          SA1    MSFB
00111  M00S00111.comcmsf +++|          SX6    B1
00112  M00S00112.comcmsf +++|          IX6    X1-X6       COUNT ENTRY
00113  M00S00113.comcmsf +++|          SA6    A1+
00114  M00S00114.comcmsf +++|          ZR     X6,MSF12    IF END OF BLOCK 1
00115  M00S00115.comcmsf +++|          READW  S1,A0,X0    READ ENTRY
00116  M00S00116.comcmsf +++|          ZR     X1,MSF10    IF NOT EOR
00117  M00S00117.comcmsf +++|          EQ     MSF12       RESET OUTPUT FILE
00118  M00S00118.comcmsf +++|
00119  M00S00119.comcmsf +++|*         COPY REMAINDER OF BLOCK 2.
00120  M00S00120.comcmsf +++|
00121  M00S00121.comcmsf +++| MSF11    WRITEW X5,A5,X0    WRITE ENTRY
00122  M00S00122.comcmsf +++|          SA1    MSFB+1
00123  M00S00123.comcmsf +++|          SX6    B1
00124  M00S00124.comcmsf +++|          IX6    X1-X6       COUNT ENTRY
00125  M00S00125.comcmsf +++|          SA6    A1+
00126  M00S00126.comcmsf +++|          ZR     X6,MSF12    IF END OF BLOCK 2
00127  M00S00127.comcmsf +++|          READW  S2,A5,X0    READ ENTRY
00128  M00S00128.comcmsf +++|          ZR     X1,MSF11    IF NOT EOR
00129  M00S00129.comcmsf +++|
00130  M00S00130.comcmsf +++|*         RESET OUTPUT FILE.
00131  M00S00131.comcmsf +++|
00132  M00S00132.comcmsf +++| MSF12    SA1    MSFC
00133  M00S00133.comcmsf +++|          SX7    S3&S4
00134  M00S00134.comcmsf +++|          SX6    B1
00135  M00S00135.comcmsf +++|          BX5    X5-X7       SET NEW OUTPUT FILE
00136  M00S00136.comcmsf +++|          IX6    X1+X6       COUNT BLOCK WRITTEN
00137  M00S00137.comcmsf +++|          SA6    A1
00138  M00S00138.comcmsf +++|          EQ     MSF2        INITIALIZE BLOCK MERGE
00139  M00S00139.comcmsf +++|
00140  M00S00140.comcmsf +++|*         FLUSH OUTPUT FILES AND CHECK MERGE COMPLETE.
00141  M00S00141.comcmsf +++|
00142  M00S00142.comcmsf +++| MSF13    SX7    S3&S4
00143  M00S00143.comcmsf +++|          BX5    X5-X7       RESET LAST FILE WRITTEN
00144  M00S00144.comcmsf +++|          WRITER X5          FLUSH LAST FILE WRITTEN
00145  M00S00145.comcmsf +++|          SA1    MSFC
00146  M00S00146.comcmsf +++|          SX7    1
00147  M00S00147.comcmsf +++|          BX6    X2
00148  M00S00148.comcmsf +++|          IX1    X1-X7
00149  M00S00149.comcmsf +++|          ZR     X1,MSFX     IF ONE BLOCK WRITTEN
00150  M00S00150.comcmsf +++|          SA1    MSFA
00151  M00S00151.comcmsf +++|          LX1    1
00152  M00S00152.comcmsf +++|          BX6    X1
00153  M00S00153.comcmsf +++|          SA6    A1          SET FULL BLOCK SIZE FOR NEXT PASS
00154  M00S00154.comcmsf +++|          SX7    S3&S4
00155  M00S00155.comcmsf +++|          BX5    X5-X7
00156  M00S00156.comcmsf +++|          WRITER X5          FLUSH OTHER OUTPUT FILE
00157  M00S00157.comcmsf +++|
00158  M00S00158.comcmsf +++|*         SWAP INPUT AND OUTPUT FILE NAMES.
00159  M00S00159.comcmsf +++|
00160  M00S00160.comcmsf +++|          RECALL S1
00161  M00S00161.comcmsf +++|          RECALL S2
00162  M00S00162.comcmsf +++|          RECALL S3
00163  M00S00163.comcmsf +++|          RECALL S4
00164  M00S00164.comcmsf +++|          SA1    S1
00165  M00S00165.comcmsf +++|          SA2    S3
00166  M00S00166.comcmsf +++|          BX6    X1
00167  M00S00167.comcmsf +++|          BX7    X2
00168  M00S00168.comcmsf +++|          SA6    A2
00169  M00S00169.comcmsf +++|          SA7    A1
00170  M00S00170.comcmsf +++|          SA1    S2
00171  M00S00171.comcmsf +++|          SA2    S4
00172  M00S00172.comcmsf +++|          BX6    X1
00173  M00S00173.comcmsf +++|          BX7    X2
00174  M00S00174.comcmsf +++|          SA6    A2
00175  M00S00175.comcmsf +++|          SA7    A1
00176  M00S00176.comcmsf +++|          EQ     MSF1        INITIALIZE NEXT PASS
00177  M00S00177.comcmsf +++|
00178  M00S00178.comcmsf +++|
00179  M00S00179.comcmsf +++| MSFA     CON    0           FULL BLOCK ENTRY COUNT
00180  M00S00180.comcmsf +++| MSFB     CON    0           BLOCK 1 ENTRY COUNT
00181  M00S00181.comcmsf +++|          CON    0           BLOCK 2 ENTRY COUNT
00182  M00S00182.comcmsf +++| MSFC     CON    0           RECORDS WRITTEN COUNT
00183  M00S00183.comcmsf +++| MSFD     CON    0           SORT KEY MASK
00184  M00S00184.comcmsf +++| FETS     SPACE  4,10
00185  M00S00185.comcmsf +++|**        FETS.
00186  M00S00186.comcmsf +++|
00187  M00S00187.comcmsf +++|
00188  M00S00188.comcmsf +++| S1       BSS    0           INPUT FILE 1
00189  M00S00189.comcmsf +++| ZZZZZGW  FILEB  MS1B,MSFBL,FET=10
00190  M00S00190.comcmsf +++|
00191  M00S00191.comcmsf +++| S2       BSS    0           INPUT FILE 2
00192  M00S00192.comcmsf +++| ZZZZZGX  FILEB  MS2B,MSFBL,FET=10
00193  M00S00193.comcmsf +++|
00194  M00S00194.comcmsf +++| S3       BSS    0           OUTPUT FILE 1
00195  M00S00195.comcmsf +++| ZZZZZGY  FILEB  MS3B,MSFBL,FET=10
00196  M00S00196.comcmsf +++|
00197  M00S00197.comcmsf +++| S4       BSS    0           OUTPUT FILE 4
00198  M00S00198.comcmsf +++| ZZZZZGZ  FILEB  MS4B,MSFBL,FET=10
00199  M00S00199.comcmsf +++|
00200  M00S00200.comcmsf +++|
00201  M00S00201.comcmsf +++|          BASE   *
00202  M00S00202.comcmsf +++| QUAL$    IF     -DEF,QUAL$
00203  M00S00203.comcmsf +++|          QUAL   *
00204  M00S00204.comcmsf +++| MSF      EQU    /COMCMSF/MSF
00205  M00S00205.comcmsf +++| S1       EQU    /COMCMSF/S1
00206  M00S00206.comcmsf +++| S2       EQU    /COMCMSF/S2
00207  M00S00207.comcmsf +++| S3       EQU    /COMCMSF/S3
00208  M00S00208.comcmsf +++| S4       EQU    /COMCMSF/S4
00209  M00S00209.comcmsf +++| QUAL$    ENDIF
00210  M00S00210.comcmsf +++|          ENDX
cdc/nos2.source/opl.opl871/common/comcmsf.txt ยท Last modified: (external edit)