User Tools

Site Tools


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

Common COMCWTA

1 Modification

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.comcwta +++|          CTEXT  COMCWTA - WRITE CODED LINE FROM 6/12 STRING BUFFER.
00002  M01S00002.comcwta +++| WTA      SPACE  4
00003  M01S00003.comcwta +++|          IF     -DEF,QUAL$,1
00004  M01S00004.comcwta +++|          QUAL   COMCWTA
00005  M01S00005.comcwta +++|          BASE   D
Line S00006 Modification History
M01 (Added by) comcwta
M02 (Updated by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00006  M02S00006.281l803 ---|*         COMMENT COPYRIGHT CONTROL DATA CORP. 1970.
00007  M01S00001.281l803 +++|*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00008  M01S00007.comcwta +++| WTA      SPACE  4
00009  M01S00008.comcwta +++|***       WTA - WRITE CODED LINE FROM 6/12 STRING BUFFER.
00010  M01S00009.comcwta +++|*         R. S. HORECK.      71/05/19.
00011  M01S00010.comcwta +++|*         S. R. MCPHERSON.   74/09/30.
00012  M01S00011.comcwta +++|*         A. F. SKJOLDEBRAND 84/08/09. ( ADAPTION FROM COMCWTS )
00013  M01S00012.comcwta +++| WTA      SPACE  4
00014  M01S00013.comcwta +++|***              WTA TRANSFERS 1 CODED LINE FROM A 6/12 ASCII STRING
00015  M01S00014.comcwta +++|*         BUFFER TO A CIO BUFFER WITH TRAILING SPACE SUPPRESSION.
00016  M01S00015.comcwta +++|*         CHARACTERS IN THE WORKING BUFFER ARE PACKED AND STORED IN
00017  M01S00016.comcwta +++|*         THE CIRCULAR BUFFER.
00018  M01S00017.comcwta +++|*         IF THE BUFFER BECOMES SUFFICIENTLY FULL TO REQUIRE WRITING,
00019  M01S00018.comcwta +++|*         WTA WILL PERFORM A *WRITE* FUNCTION UNLESS THE SYMBOL *WRIF$*
00020  M01S00019.comcwta +++|*         IS DEFINED. IN THIS CASE, THE CIO FUNCTION THAT IS IN THE FET
00021  M01S00020.comcwta +++|*         WILL BE RE-ISSUED.
00022  M01S00021.comcwta +++|*
00023  M01S00022.comcwta +++|*         ENTRY  (X2) = ADDRESS OF FET FOR FILE.
00024  M01S00023.comcwta +++|*                (B6) = FWA WORKING BUFFER.
00025  M01S00024.comcwta +++|*                (B7) = WORD COUNT OF WORKING BUFFER.
00026  M01S00025.comcwta +++|*                IF (B7) = 0, NO TRANSFER WILL BE PERFORMED.
00027  M01S00026.comcwta +++|*
00028  M01S00027.comcwta +++|*         EXIT   (X2) = ADDRESS OF FET FOR FILE.
00029  M01S00028.comcwta +++|*                (B6) = WORD COUNT OF DATA WRITTEN.
00030  M01S00029.comcwta +++|*
00031  M01S00030.comcwta +++|*         USES   X - 1, 2, 3, 4, 6, 7.
00032  M01S00031.comcwta +++|*                B - 1, 2, 3, 4, 5, 6, 7.
00033  M01S00032.comcwta +++|*                A - 1, 2, 3, 4, 6, 7.
00034  M01S00033.comcwta +++|*
00035  M01S00034.comcwta +++|*         CALLS  DCB=, WTX=.
00036  M01S00035.comcwta +++|
00037  M01S00036.comcwta +++|
00038  M01S00037.comcwta +++| +        EQ     WTA3        ENTRY FROM DCB= ON A WRITE REQUEST
00039  M01S00038.comcwta +++|
00040  M01S00039.comcwta +++| WTA=     PS                 ENTRY/EXIT
00041  M01S00040.comcwta +++|          SA4    WTA=
00042  M01S00041.comcwta +++|          ZR     B7,WTA=     IF WORKING BUFFER EMPTY
00043  M01S00042.comcwta +++|
00044  M01S00043.comcwta +++|          IF     -DEF,B1=1,1
00045  M01S00044.comcwta +++|          SB1    1
00046  M01S00045.comcwta +++|
00047  M01S00046.comcwta +++|          SX6    0
00048  M01S00047.comcwta +++|          SA6    WTAB        CLEAR ESCAPE CODE FLAG
00049  M01S00048.comcwta +++|          SA1    X2+4        (B5) = LIMIT
00050  M01S00049.comcwta +++|          SB4    B6+B7
00051  M01S00050.comcwta +++|          SB5    X1
00052  M01S00051.comcwta +++|          SX7    1R
00053  M01S00052.comcwta +++|          SA1    B4-B1       READ LAST CHARACTER
00054  M01S00053.comcwta +++|          SB2    B1+B1       (2)
00055  M01S00054.comcwta +++| WTA1     BX6    X1-X7       CHECK FOR BLANKS
00056  M01S00055.comcwta +++|          SA1    A1-B1       DECREMENT CHARACTER POSITION
00057  M01S00056.comcwta +++|          ZR     X6,WTA1     IF BLANK
00058  M01S00057.comcwta +++|          SB7    A1+B2       (B7) = LWA + 1
00059  M01S00058.comcwta +++|          LT     B6,B7,WTA2  IF NOT TO PAST START OF BUFFER
00060  M01S00059.comcwta +++|          SB7    B6+B1
00061  M01S00060.comcwta +++| WTA2     SA3    X2+1        (A3) = ADDRESS OF FIRST
00062  M01S00061.comcwta +++|          SX4    0           (X4) = WORD COUNT TRANSFERED TO BUFFER
00063  M01S00062.comcwta +++|
00064  M01S00063.comcwta +++|*         INITIALIZE REGISTERS FOR TRANSFER.
00065  M01S00064.comcwta +++|
00066  M01S00065.comcwta +++| WTA3     SA1    A3-B1       SAVE FET STATUS
00067  M01S00066.comcwta +++|          SA2    A3+B1       (X2) = IN
00068  M01S00067.comcwta +++|          BX6    X1
00069  M01S00068.comcwta +++|          SA1    A2+B1       OUT
00070  M01S00069.comcwta +++|          SA6    WTAA
00071  M01S00070.comcwta +++|          SB3    X2+B1       (B3) = IN+1
00072  M01S00071.comcwta +++|          SB4    X1
00073  M01S00072.comcwta +++|          SX6    B4-B3       OUT - IN+1
00074  M01S00073.comcwta +++|          PL     X6,WTA4     IF OUT \ IN+1
00075  M01S00074.comcwta +++|          SX6    B5-B3       LIMIT - IN+1
00076  M01S00075.comcwta +++| WTA4     SB4    X6          (B4) = FREE BUFFER SPACE
00077  M01S00076.comcwta +++|          SX3    X2          (X3) = IN
00078  M01S00077.comcwta +++|          NZ     X6,WTA6     IF SPACE AVAILABLE
00079  M01S00078.comcwta +++|
00080  M01S00079.comcwta +++|*         PROCESS EXHAUSTED FREE BUFFER SPACE.
00081  M01S00080.comcwta +++|
00082  M01S00081.comcwta +++| WTA5     SA1    WTAA        GET FET STATUS
00083  M01S00082.comcwta +++|          SA2    A3+B1       (A2) = ADDRESS OF IN
00084  M01S00083.comcwta +++|          SB2    X1          (B2) = FET STATUS
00085  M01S00084.comcwta +++|          SX2    X3          (X2) = IN
00086  M01S00085.comcwta +++|          NE     B3,B5,=XDCB=  IF IN+1 " LIMIT
00087  M01S00086.comcwta +++|          SA1    A3          (X1) = FIRST
00088  M01S00087.comcwta +++|          SX6    X1
00089  M01S00088.comcwta +++|          SA1    A3-B1       FET+0
00090  M01S00089.comcwta +++|          SB2    X1          (B2) = FET STATUS
00091  M01S00090.comcwta +++|          SA1    A2+B1       OUT
00092  M01S00091.comcwta +++|          IX7    X1-X6       OUT - IN+1
00093  M01S00092.comcwta +++|          SB3    X6          IN+1 = FIRST
00094  M01S00093.comcwta +++|          ZR     X7,=XDCB=   IF IN+1 = OUT
00095  M01S00094.comcwta +++|          SB4    X7          (B4) = FREE BUFFER SPACE
00096  M01S00095.comcwta +++|
00097  M01S00096.comcwta +++|*         ASSEMBLE 6/12 ASCII BUFFER
00098  M01S00097.comcwta +++|
00099  M01S00098.comcwta +++| WTA6     SA1    WTAB        GET PREVIOUS ESCAPE CODE
00100  M01S00099.comcwta +++|          SB2    6
00101  M01S00100.comcwta +++|          SA2    WTAC        GET POSITION MARKER
00102  M01S00101.comcwta +++| WTA7     SX6    0+
00103  M01S00102.comcwta +++|          NZ     X1,WTA9     IF REMAINING ESCAPE CODE
00104  M01S00103.comcwta +++| WTA8     SA1    B6
00105  M01S00104.comcwta +++|          EQ     B6,B7,WTA12 IF WORKING BUFFER EMPTY
00106  M01S00105.comcwta +++|          AX7    B2,X1
00107  M01S00106.comcwta +++|          SB6    B6+B1
00108  M01S00107.comcwta +++|          LX6    B2,X6
00109  M01S00108.comcwta +++|          ZR     X7,WTA9     IF NO ESCAPE CHARACTER
00110  M01S00109.comcwta +++|          LX2    B2,X2
00111  M01S00110.comcwta +++|          NG     X2,WTA11    IF FULL WORD
00112  M01S00111.comcwta +++|          LX6    B2,X6
00113  M01S00112.comcwta +++| WTA9     BX6    X6+X1
00114  M01S00113.comcwta +++|          LX2    B2,X2
00115  M01S00114.comcwta +++|          PL     X2,WTA8     IF NOT YET FULL WORD
00116  M01S00115.comcwta +++|          SX1    0+          CLEAR POSSIBLE ESCAPE CODE
00117  M01S00116.comcwta +++| WTA10    SB3    B3+B1       IN+1 = IN+1 + 1
00118  M01S00117.comcwta +++|          SB4    B4-B1       DECREMENT FREE BUFFER SPACE
00119  M01S00118.comcwta +++|          SA6    X3          STORE WORD
00120  M01S00119.comcwta +++|          SX4    X4+B1       COUNT WORD
00121  M01S00120.comcwta +++|          SX3    B3-B1       IN = IN+1
00122  M01S00121.comcwta +++|          NZ     B4,WTA7     LOOP TO LAST CHARACTER OF FULL BUFFER
00123  M01S00122.comcwta +++|          BX7    X1
00124  M01S00123.comcwta +++|          SA7    WTAB        SAVE LAST ESCAPE CODE
00125  M01S00124.comcwta +++|          EQ     WTA5        CHECK BUFFER POINTERS
00126  M01S00125.comcwta +++|
00127  M01S00126.comcwta +++| WTA11    BX6    X6+X7
00128  M01S00127.comcwta +++|          MX7    -6
00129  M01S00128.comcwta +++|          BX1    -X7*X1      REMOVE ESCAPE CODE
00130  M01S00129.comcwta +++|          EQ     WTA10
00131  M01S00130.comcwta +++|
00132  M01S00131.comcwta +++|*         PROCESS END OF LINE CONDITION
00133  M01S00132.comcwta +++|
00134  M01S00133.comcwta +++| WTA12    LX7    B1,X2       SHIFT FOR BYTE POSITION
00135  M01S00134.comcwta +++|          NG     X2,WTA14    IF WORD BOUNDARY
00136  M01S00135.comcwta +++|          NG     X7,WTA14    ON BYTE BOUNDARY
00137  M01S00136.comcwta +++|          SX7    1R
00138  M01S00137.comcwta +++|          LX2    6
00139  M01S00138.comcwta +++|          LX6    6
00140  M01S00139.comcwta +++|          BX6    X6+X7       MERGE BLANKS
00141  M01S00140.comcwta +++| WTA13    NG     X2,WTA15    IF WORD BOUNDARY
00142  M01S00141.comcwta +++|          LX6    12
00143  M01S00142.comcwta +++|          LX2    12
00144  M01S00143.comcwta +++|          EQ     WTA13       IF NOT WORD BOUNDARY
00145  M01S00144.comcwta +++|
00146  M01S00145.comcwta +++| WTA14    SA1    A1-B1       GET LAST CHARACTER PROCESSED
00147  M01S00146.comcwta +++|          NZ     X1,WTA13    IF NOT ENDING COLON
00148  M01S00147.comcwta +++|          SX7    2R
00149  M01S00148.comcwta +++|          LX2    12
00150  M01S00149.comcwta +++|          LX6    12
00151  M01S00150.comcwta +++|          BX6    X6+X7
00152  M01S00151.comcwta +++|          EQ     WTA13       ADD TWO BLANKS
00153  M01S00152.comcwta +++|
00154  M01S00153.comcwta +++|*         PROCESS LAST WORD
00155  M01S00154.comcwta +++|
00156  M01S00155.comcwta +++| WTA15    SA2    A3+B1       SET (A2) = IN
00157  M01S00156.comcwta +++|          MX1    -12
00158  M01S00157.comcwta +++|          SX4    X4+B1       COUNT WORD
00159  M01S00158.comcwta +++|          SA6    X3          STORE LAST WORD
00160  M01S00159.comcwta +++|          BX7    -X1*X6
00161  M01S00160.comcwta +++|          SX2    B3          IN = IN+1
00162  M01S00161.comcwta +++|          SB6    X4          SET WORD COUNT TRANSFERRED
00163  M01S00162.comcwta +++|          SA3    A3          (X3) = FIRST
00164  M01S00163.comcwta +++|          ZR     X7,WTA17    IF VALID END OF LINE, EXIT
00165  M01S00164.comcwta +++|          SB3    B3+B1       ADVANCE IN+1
00166  M01S00165.comcwta +++|          SB4    B4-B1       DECREMENT FREE BUFFER SPACE
00167  M01S00166.comcwta +++|          MX1    -6
00168  M01S00167.comcwta +++|          BX1    -X1*X7      GET LAST CHARACTER
00169  M01S00168.comcwta +++|          SX3    X2+         (X3) = IN
00170  M01S00169.comcwta +++|          SB6    B7+         RESET CHARACTER POSITION
00171  M01S00170.comcwta +++|          ZR     B4,WTA5     IF FREE SPACE EXHAUSTED
00172  M01S00171.comcwta +++|          SX6    B0+
00173  M01S00172.comcwta +++|          NZ     X1,WTA16    IF NOT *00* CHARACTER
00174  M01S00173.comcwta +++|          SX6    2R          PRESERVE *00* CHARACTER WITH *  *
00175  M01S00174.comcwta +++| WTA16    LX6    48
00176  M01S00175.comcwta +++|          SB6    X4+B1       RESET WORD COUNT
00177  M01S00176.comcwta +++|          SA6    X2
00178  M01S00177.comcwta +++|          SX2    B3          IN=IN+1
00179  M01S00178.comcwta +++| WTA17    SA1    A2+B1       SET OUT
00180  M01S00179.comcwta +++|          SB4    X1
00181  M01S00180.comcwta +++|          EQ     =XWTX=      EXIT
00182  M01S00181.comcwta +++|
00183  M01S00182.comcwta +++|
00184  M01S00183.comcwta +++| WTAA     CON    0           FET STATUS PRIOR TO READING OUT
00185  M01S00184.comcwta +++| WTAB     CON    0           PREVIOUS ESCAPE CODE
00186  M01S00185.comcwta +++| WTAC     CON    60002000200020002000B  WORD AND BYTE POSITION FLAGS
00187  M01S00186.comcwta +++|          SPACE  4
00188  M01S00187.comcwta +++|          BASE   *
00189  M01S00188.comcwta +++| QUAL$    IF     -DEF,QUAL$
00190  M01S00189.comcwta +++|          QUAL   *
00191  M01S00190.comcwta +++| WTA=     EQU    /COMCWTA/WTA=
00192  M01S00191.comcwta +++| QUAL$    ENDIF
00193  M01S00192.comcwta +++|          ENDX
cdc/nos2.source/opl.opl871/common/comcwta.txt · Last modified: by 127.0.0.1