User Tools

Site Tools


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

Common COMCWTW

1 Modification

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.comcwtw +++|          CTEXT  COMCWTW - WRITE WORDS FROM WORKING BUFFER.
00002  M01S00002.comcwtw +++| WTW      SPACE  4
00003  M01S00003.comcwtw +++|          IF     -DEF,QUAL$,1
00004  M01S00004.comcwtw +++|          QUAL   COMCWTW
00005  M01S00005.comcwtw +++|          BASE   D
Line S00006 Modification History
M01 (Added by) comcwtw
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.comcwtw +++| WTW      SPACE  4
00009  M01S00008.comcwtw +++|***       WTW - WRITE WORDS FROM WORKING BUFFER.
00010  M01S00009.comcwtw +++|*         D. A. CAHLANDER.   70/11/29.
00011  M01S00010.comcwtw +++|*         R. E. TATE.        73/11/04.
00012  M01S00011.comcwtw +++| WTW      SPACE  4
00013  M01S00012.comcwtw +++|***              WTW TRANSFERS DATA FROM A WORKING BUFFER TO A CIO
00014  M01S00013.comcwtw +++|*         BUFFER.  THIS DECK ALSO CONTAINS DCB=, AND WTX=.
00015  M01S00014.comcwtw +++|*         IF THE BUFFER BECOMES SUFFICIENTLY FULL TO REQUIRE WRITING,
00016  M01S00015.comcwtw +++|*         THE THRESHOLD CONDITION TO ISSUE WRITE FUNCTIONS
00017  M01S00016.comcwtw +++|*         IS BUFFER HALF FULL FOR BUFFERS LARGER
00018  M01S00017.comcwtw +++|*         THAN 511 DECIMAL WORDS, AND BUFFER TOTALLY
00019  M01S00018.comcwtw +++|*         FULL FOR SMALLER BUFFERS.  IF THE SYMBOL
00020  M01S00019.comcwtw +++|*         WTX$ IS DEFINED, THEN THE THRESHOLD IS
00021  M01S00020.comcwtw +++|*         BUFFER FULL FOR ALL BUFFER SIZES.
00022  M01S00021.comcwtw +++|*         WTW WILL PERFORM A *WRITE* FUNCTION UNLESS THE SYMBOL *WRIF$*
00023  M01S00022.comcwtw +++|*         IS DEFINED. IN THIS CASE, THE CIO FUNCTION THAT IS IN THE FET
00024  M01S00023.comcwtw +++|*         WILL BE REISSUED.  A *WRITEW* REQUEST MAY READ DATA FROM
00025  M01S00024.comcwtw +++|*         BEYOND THE END OF THE WORKING BUFFER, THUS CAUSING AN ABORT
00026  M01S00025.comcwtw +++|*         IF THE LAST WORD ADDRESS OF THE BUFFER IS WITHIN 4 WORDS OF
00027  M01S00026.comcwtw +++|*         FL.
00028  M01S00027.comcwtw +++|*
00029  M01S00028.comcwtw +++|*         WHEN CALLING CIO= FROM THIS ROUTINE B6 AND B7
00030  M01S00029.comcwtw +++|*         MUST CONTAIN WORKING STORAGE BUFFER ADDRESS,
00031  M01S00030.comcwtw +++|*         AND NUMBER OF WORDS TO TRANSFER RESPECTIVELY
00032  M01S00031.comcwtw +++|*         AS ERROR PROCESSING ROUTINES DEPEND UPON
00033  M01S00032.comcwtw +++|*         THESE REGISTERS.
00034  M01S00033.comcwtw +++|*
00035  M01S00034.comcwtw +++|*         ENTRY  (X2) = ADDRESS OF FET FOR FILE.
00036  M01S00035.comcwtw +++|*                (B6) = FWA WORKING BUFFER.
00037  M01S00036.comcwtw +++|*                (B7) = WORD COUNT OF WORKING BUFFER.
00038  M01S00037.comcwtw +++|*                IF (B7) = 0, NO TRANSFER WILL BE PERFORMED.
00039  M01S00038.comcwtw +++|*
00040  M01S00039.comcwtw +++|*         EXIT   (X2) = ADDRESS OF FET FOR FILE.
00041  M01S00040.comcwtw +++|*                (B6) = ADDRESS OF NEXT WORD TO BE TRANSFERRED FROM
00042  M01S00041.comcwtw +++|*                       WORKING BUFFER.
00043  M01S00042.comcwtw +++|*                (B7) = 0 IF TRANSFER COMPLETE.
00044  M01S00043.comcwtw +++|*                     = REMAINING WORD COUNT IF *CIO=* WAS CALLED TO
00045  M01S00044.comcwtw +++|*                       WRITE DATA AND RETURNED AN ERROR STATUS.
00046  M01S00045.comcwtw +++|*                (X7) = ERROR STATUS IF (B7) .NE. 0.
00047  M01S00046.comcwtw +++|*
00048  M01S00047.comcwtw +++|*         USES   X - 1, 2, 3, 4, 6, 7.
00049  M01S00048.comcwtw +++|*                B - 1, 2, 3, 4, 5, 6, 7.
00050  M01S00049.comcwtw +++|*                A - 1, 2, 3, 4, 6, 7.
00051  M01S00050.comcwtw +++|*
00052  M01S00051.comcwtw +++|*         CALLS  CIO=.
00053  M01S00052.comcwtw +++|
00054  M01S00053.comcwtw +++|
00055  M01S00054.comcwtw +++| WTW18    SX6    B3+B4       ADVANCE IN
00056  M01S00055.comcwtw +++|          SB3    B3+B4
00057  M01S00056.comcwtw +++|          SB6    B6+B4
00058  M01S00057.comcwtw +++|          SB7    B7-B4
00059  M01S00058.comcwtw +++|          NE     B3,B5,WTW19 IF IN " LIMIT
00060  M01S00059.comcwtw +++|          SA1    X2+B1       IN = FIRST
00061  M01S00060.comcwtw +++|          SX6    X1
00062  M01S00061.comcwtw +++| WTW19    SA6    X2+2        UPDATE IN
00063  M01S00062.comcwtw +++|          NZ     B7,WTW1     IF NOT END OF TRANSFER
00064  M01S00063.comcwtw +++|
00065  M01S00064.comcwtw +++| WTW=     PS                 ENTRY/EXIT
00066  M01S00065.comcwtw +++| WTW1     SA1    X2+3        (B4) = OUT
00067  M01S00066.comcwtw +++|          SA3    X2+2        (B3) = IN
00068  M01S00067.comcwtw +++|          IF     -DEF,B1=1,1
00069  M01S00068.comcwtw +++|          SB1    1
00070  M01S00069.comcwtw +++|          SA4    A1+B1       (B5) = LIMIT
00071  M01S00070.comcwtw +++|          ZR     B7,WTW=     IF WORKING BUFFER EMPTY
00072  M01S00071.comcwtw +++|          SB4    X1
00073  M01S00072.comcwtw +++|          SA1    X2+B1       (B2) = FIRST
00074  M01S00073.comcwtw +++|          SB3    X3
00075  M01S00074.comcwtw +++|          SB5    X4
00076  M01S00075.comcwtw +++|          SB2    X1
00077  M01S00076.comcwtw +++|          SA1    B6          READ FIRST WORD
00078  M01S00077.comcwtw +++|          NE     B2,B4,WTW2  IF OUT " FIRST
00079  M01S00078.comcwtw +++|          SB4    B5
00080  M01S00079.comcwtw +++| WTW2     LT     B3,B4,WTW3  IF NO END AROUND
00081  M01S00080.comcwtw +++|          SB4    B5+1
00082  M01S00081.comcwtw +++| WTW3     SB4    B4-B1       CALCULATE FREE DATA SPACE
00083  M01S00082.comcwtw +++|          SB4    B4-B3       (B4) = TRANSFER LENGTH
00084  M01S00083.comcwtw +++|          ZR     B4,WTW13    IF NO ROOM
00085  M01S00084.comcwtw +++|          BX7    X1
00086  M01S00085.comcwtw +++|          LE     B4,B7,WTW4  IF NOT ENOUGH ROOM
00087  M01S00086.comcwtw +++|          SB4    B7
00088  M01S00087.comcwtw +++|
00089  M01S00088.comcwtw +++|*         INITIALIZE REGISTERS FOR TRANSFER.
00090  M01S00089.comcwtw +++|
00091  M01S00090.comcwtw +++| WTWA     BSS    0
00092  M01S00091.comcwtw +++| WTW4     SA3    WTWC        PRESET CMU CODE AND VOID STACK
00093  M01S00092.comcwtw +++|          RJ     WTW16
00094  M01S00093.comcwtw +++|*         SA1    A1+B1       (NO CMU)
00095  M01S00094.comcwtw +++|*         SX4    B4-B1       (NO CMU)
00096  M01S00095.comcwtw +++|*         MX6    -3          (NO CMU)
00097  M01S00096.comcwtw +++|*         SA7    B3          (NO CMU)
00098  M01S00097.comcwtw +++|*
00099  M01S00098.comcwtw +++|*         GT     B4,B1,WTW14  IF MORE THAN 1 WORD  (CMU)
00100  M01S00099.comcwtw +++|*         BX4    X4-X4       (CMU)
00101  M01S00100.comcwtw +++|*         SA7    B3          (CMU)
00102  M01S00101.comcwtw +++|
00103  M01S00102.comcwtw +++| WTW5     BX3    -X6*X4      NUMBER OF ODD WORDS
00104  M01S00103.comcwtw +++|          AX4    3           NUMBER OF BLOCKS
00105  M01S00104.comcwtw +++|          ZR     X3,WTW7     IF NO ODD WORDS
00106  M01S00105.comcwtw +++|
00107  M01S00106.comcwtw +++|*         TRANSFER UP TO 7 WORDS.
00108  M01S00107.comcwtw +++|
00109  M01S00108.comcwtw +++| WTW6     SX3    X3-1
00110  M01S00109.comcwtw +++|          BX7    X1
00111  M01S00110.comcwtw +++|          SA1    A1+B1
00112  M01S00111.comcwtw +++|          SA7    A7+B1
00113  M01S00112.comcwtw +++|          NZ     X3,WTW6     LOOP
00114  M01S00113.comcwtw +++|
00115  M01S00114.comcwtw +++|*         PRE-READ REGISTERS.
00116  M01S00115.comcwtw +++|
00117  M01S00116.comcwtw +++| WTW7     ZR     X4,WTW18    IF NO BLOCKS
00118  M01S00117.comcwtw +++|          SB5    X2          (B5) = FET ADDRESS
00119  M01S00118.comcwtw +++|          SA2    A1+B1
00120  M01S00119.comcwtw +++|          SB2    B1+B1       (B2) = 2
00121  M01S00120.comcwtw +++|          SA3    A2+B1
00122  M01S00121.comcwtw +++|          SB3    X4          (B3) = BLOCK COUNT
00123  M01S00122.comcwtw +++|          SA4    A3+B1
00124  M01S00123.comcwtw +++|
00125  M01S00124.comcwtw +++|*         TRANSFER 8 WORD BLOCKS.
00126  M01S00125.comcwtw +++|
00127  M01S00126.comcwtw +++| WTW8     BX6    X1
00128  M01S00127.comcwtw +++|          LX7    X2
00129  M01S00128.comcwtw +++|          SA1    A3+B2
00130  M01S00129.comcwtw +++|          SA2    A4+B2
00131  M01S00130.comcwtw +++|          SA6    A7+B1
00132  M01S00131.comcwtw +++|          SB3    B3-B1
00133  M01S00132.comcwtw +++|          SA7    A6+B1
00134  M01S00133.comcwtw +++|          BX6    X3
00135  M01S00134.comcwtw +++|          LX7    X4
00136  M01S00135.comcwtw +++|          SA3    A1+B2
00137  M01S00136.comcwtw +++|          SA4    A2+B2
00138  M01S00137.comcwtw +++|          SA6    A6+B2
00139  M01S00138.comcwtw +++|          SA7    A7+B2
00140  M01S00139.comcwtw +++|          BX6    X1
00141  M01S00140.comcwtw +++|          LX7    X2
00142  M01S00141.comcwtw +++|          SA1    A3+B2
00143  M01S00142.comcwtw +++|          SA2    A4+B2
00144  M01S00143.comcwtw +++|          SA6    A6+B2
00145  M01S00144.comcwtw +++|          SA7    A7+B2
00146  M01S00145.comcwtw +++|          BX6    X3
00147  M01S00146.comcwtw +++|          LX7    X4
00148  M01S00147.comcwtw +++|          SA3    A1+B2
00149  M01S00148.comcwtw +++|          SA4    A2+B2
00150  M01S00149.comcwtw +++|          SA6    A6+B2
00151  M01S00150.comcwtw +++|          SA7    A7+B2
00152  M01S00151.comcwtw +++|          NZ     B3,WTW8     LOOP
00153  M01S00152.comcwtw +++|
00154  M01S00153.comcwtw +++|*         WRITE EXIT.
00155  M01S00154.comcwtw +++|
00156  M01S00155.comcwtw +++|          SA3    B5+B2       READ IN
00157  M01S00156.comcwtw +++|          SA1    A3+B2       (B5) = LIMIT
00158  M01S00157.comcwtw +++|          SX2    B5
00159  M01S00158.comcwtw +++|          SB5    X1
00160  M01S00159.comcwtw +++|          SA4    X2          CHECK BUFFER STATUS
00161  M01S00160.comcwtw +++| WTW9     SB6    B6+B4
00162  M01S00161.comcwtw +++|          SB7    B7-B4
00163  M01S00162.comcwtw +++|          SB3    X3+B4       ADVANCE IN
00164  M01S00163.comcwtw +++|          SX6    X3+B4
00165  M01S00164.comcwtw +++|          LX4    59-0
00166  M01S00165.comcwtw +++|          SA3    X2+B1       READ FIRST
00167  M01S00166.comcwtw +++|          NE     B3,B5,WTW10 IF IN " LIMIT
00168  M01S00167.comcwtw +++|          SX6    X3+         IN = FIRST
00169  M01S00168.comcwtw +++| WTX$     IF     DEF,WTX$
00170  M01S00169.comcwtw +++| WTW10    EQ     WTW19       CLEAN UP AND RETURN
00171  M01S00170.comcwtw +++| WTX$     ELSE
00172  M01S00171.comcwtw +++|
00173  M01S00172.comcwtw +++|*         TRY TO BUFFER AHEAD.
00174  M01S00173.comcwtw +++|
00175  M01S00174.comcwtw +++| WTW10    PL     X4,WTW19    IF BUFFER BUSY
00176  M01S00175.comcwtw +++|          SA1    X2+3        READ OUT
00177  M01S00176.comcwtw +++|          SA6    X2+2        STORE IN
00178  M01S00177.comcwtw +++|          SB2    X3          (LIMIT-FIRST)
00179  M01S00178.comcwtw +++|          IX6    X1-X6       (OUT-IN)
00180  M01S00179.comcwtw +++|          SX7    B5-B2
00181  M01S00180.comcwtw +++|          LX3    X6,B1       2*(OUT-IN)
00182  M01S00181.comcwtw +++|          AX6    60          SIGN OF (OUT-IN)
00183  M01S00182.comcwtw +++|          BX4    X6-X7       INVERT BUFFER IF IN \ OUT
00184  M01S00183.comcwtw +++|          IX6    X4-X3       BUFFER SIZE - 2*(OUT-IN)
00185  M01S00184.comcwtw +++|          NG     X6,WTW12    IF BUFFER THRESHOLD NOT REACHED
00186  M01S00185.comcwtw +++|          AX7    9
00187  M01S00186.comcwtw +++|          ZR     X7,WTW12    IF BUFFER NOT BIG ENOUGH TO WRITE AHEAD
00188  M01S00187.comcwtw +++| WTX$     ENDIF
00189  M01S00188.comcwtw +++| WRIF$    IF     DEF,WRIF$
00190  M01S00189.comcwtw +++| WTW11    SA1    X2          RE-ISSUE CURRENT WRITE FUNCTION
00191  M01S00190.comcwtw +++|          SX6    774B
00192  M01S00191.comcwtw +++|          BX7    X6*X1
00193  M01S00192.comcwtw +++|          RJ     =XCIO=
00194  M01S00193.comcwtw +++| WRIF$    ELSE   1
00195  M01S00194.comcwtw +++| WTW11    WRITE  X2
00196  M01S00195.comcwtw +++|          NZ     X7,WTW=     IF ERROR IN LAST *CIO* REQUEST
00197  M01S00196.comcwtw +++| WTW12    NZ     B7,WTW1     IF NOT DONE
00198  M01S00197.comcwtw +++|          JP     WTW=        RETURN
00199  M01S00198.comcwtw +++|
00200  M01S00199.comcwtw +++|*         DUMP CIRCULAR BUFFER.
00201  M01S00200.comcwtw +++|
00202  M01S00201.comcwtw +++| WTW13    SA1    X2          CHECK BUFFER STATUS
00203  M01S00202.comcwtw +++|          LX1    59-0
00204  M01S00203.comcwtw +++|          NG     X1,WTW11    IF NOT BUSY
00205  M01S00204.comcwtw +++|          ZR     X1,WTW11    IF BLANK FET
00206  M01S00205.comcwtw +++|          RECALL
00207  M01S00206.comcwtw +++|          JP     WTW1        CONTINUE WRITE
00208  M01S00207.comcwtw +++|
00209  M01S00208.comcwtw +++|*         MOVE DATA WITH CMU.
00210  M01S00209.comcwtw +++|
00211  M01S00210.comcwtw +++| WTW14    SX4    B4-819
00212  M01S00211.comcwtw +++|          PL     X4,WTW15    IF TOO BIG FOR CMU
00213  M01S00212.comcwtw +++|          SX4    B4          10 * WORDS = CHARACTERS
00214  M01S00213.comcwtw +++|          LX6    X4,B1
00215  M01S00214.comcwtw +++|          BX1    X0          SAVE X0
00216  M01S00215.comcwtw +++|          LX4    3
00217  M01S00216.comcwtw +++|          IX6    X4+X6
00218  M01S00217.comcwtw +++|          SX7    B6          SET SOURCE ADDRESS
00219  M01S00218.comcwtw +++|          SX4    B3          SET DESTINATION ADDRESS
00220  M01S00219.comcwtw +++|          LX7    30
00221  M01S00220.comcwtw +++|          BX4    X4+X7
00222  M01S00221.comcwtw +++|          MX7    -4
00223  M01S00222.comcwtw +++|          BX3    X7*X6       EXTRACT UPPER PORTION
00224  M01S00223.comcwtw +++|          BX6    -X7*X6      EXTRACT LOWER PORTION
00225  M01S00224.comcwtw +++|          LX3    48-4
00226  M01S00225.comcwtw +++|          BX4    X4+X3
00227  M01S00226.comcwtw +++|          LX6    26
00228  M01S00227.comcwtw +++|          BX6    X4+X6
00229  M01S00228.comcwtw +++|          AX3    51
00230  M01S00229.comcwtw +++|          SA6    WTWC        STORE DESCRIPTOR WORD
00231  M01S00230.comcwtw +++|          IM     WTWC        MOVE DATA
00232  M01S00231.comcwtw +++|          BX0    X1          RESTORE X0
00233  M01S00232.comcwtw +++|          ZR     X3,WTW18    IF NO WRITE EXIT
00234  M01S00233.comcwtw +++|          SA4    X2
00235  M01S00234.comcwtw +++|          SX3    B3          RESET IN
00236  M01S00235.comcwtw +++|          JP     WTW9
00237  M01S00236.comcwtw +++|
00238  M01S00237.comcwtw +++| WTWB     BSS    0
00239  M01S00238.comcwtw +++| WTW15    SA1    A1+B1       MOVE DATA WITHOUT CMU
00240  M01S00239.comcwtw +++|          SX4    B4-B1
00241  M01S00240.comcwtw +++|          MX6    -3
00242  M01S00241.comcwtw +++|          SA7    B3
00243  M01S00242.comcwtw +++|          JP     WTW5
00244  M01S00243.comcwtw +++|
00245  M01S00244.comcwtw +++|*         CMU PRESET CODE.
00246  M01S00245.comcwtw +++|*         WWTC IS READ UP AND THEN RETURN JUMPED TO IN ORDER TO VOID
00247  M01S00246.comcwtw +++|*         STACK.  WWTC IS ALSO USED AS THE CMU DESCRIPTOR WORD
00248  M01S00247.comcwtw +++|
00249  M01S00248.comcwtw +++| WTWC     GT     B4,B1,WTW14 IF MORE THAN 1 WORD TO MOVE  (CMU)
00250  M01S00249.comcwtw +++|          BX4    X4-X4
00251  M01S00250.comcwtw +++|          SA7    B3
00252  M01S00251.comcwtw +++| WTW16    EQU    WTWC        USED TO VOID STACK
00253  M01S00252.comcwtw +++|
00254  M01S00253.comcwtw +++|*         PRESET FOR CMU CODE.
00255  M01S00254.comcwtw +++|
00256  M01S00255.comcwtw +++|          SA4    CMUR        CHECK IF CMU AVAIALABLE
00257  M01S00256.comcwtw +++|          SB4    WTWA
00258  M01S00257.comcwtw +++|          NG     X4,WTW17    IF CMU
00259  M01S00258.comcwtw +++|          SA3    WTWB
00260  M01S00259.comcwtw +++| WTW17    BX6    X3
00261  M01S00260.comcwtw +++|          SA6    B4
00262  M01S00261.comcwtw +++|          JP     WTW1
00263  M01S00262.comcwtw +++|
00264  M01S00263.comcwtw +++| WTX      SPACE  4
00265  M01S00264.comcwtw +++|**        WTX - WRITE EXIT.
00266  M01S00265.comcwtw +++|*         IF BUFFER IS BUSY, RETURN.
00267  M01S00266.comcwtw +++|*         OTHERWISE, WORD COUNT OF BUFFER IS CHECKED, AND A WRITE
00268  M01S00267.comcwtw +++|*         FUNCTION IS REQUESTED IF NECESSARY.
00269  M01S00268.comcwtw +++|*
00270  M01S00269.comcwtw +++|*         ENTRY  (A2) = ADDRESS OF IN.
00271  M01S00270.comcwtw +++|*                (A3) = ADDRESS OF FIRST.
00272  M01S00271.comcwtw +++|*                (A4) = RETURN ADDRESS.
00273  M01S00272.comcwtw +++|*                (B3) = IN+1.
00274  M01S00273.comcwtw +++|*                (B4) = OUT.
00275  M01S00274.comcwtw +++|*                (B5) = LIMIT.
00276  M01S00275.comcwtw +++|*                (X2) = IN
00277  M01S00276.comcwtw +++|*
00278  M01S00277.comcwtw +++|*         EXIT   TO RETURN ADDRESS.
00279  M01S00278.comcwtw +++|*
00280  M01S00279.comcwtw +++|*         CALLS  NONE.
00281  M01S00280.comcwtw +++|
00282  M01S00281.comcwtw +++|
00283  M01S00282.comcwtw +++| WTX=     SA1    A3-B1       CHECK BUFFER STATUS
00284  M01S00283.comcwtw +++|          SX6    X2          STORE IN
00285  M01S00284.comcwtw +++|          LX1    59
00286  M01S00285.comcwtw +++|          SA6    A2
00287  M01S00286.comcwtw +++| WTX$     IF     -DEF,WTX$
00288  M01S00287.comcwtw +++|          PL     X1,WTX1     IF BUFFER BUSY
00289  M01S00288.comcwtw +++|
00290  M01S00289.comcwtw +++|*         IF BUFFER IS NOT BUSY, CHECK SIZE OF BUFFER.
00291  M01S00290.comcwtw +++|*         ISSUE WRITE IF THRESHOLD IS REACHED.
00292  M01S00291.comcwtw +++|
00293  M01S00292.comcwtw +++|          SA1    A2+B1       REREAD OUT
00294  M01S00293.comcwtw +++|          SA3    A3          FIRST
00295  M01S00294.comcwtw +++|          SB4    X1
00296  M01S00295.comcwtw +++|          SX6    B4-B3       (OUT-IN+1)
00297  M01S00296.comcwtw +++|          SB2    X3          (LIMIT-FIRST)
00298  M01S00297.comcwtw +++|          LX3    X6,B1       2*(OUT-IN+1)
00299  M01S00298.comcwtw +++|          SX7    B5-B2
00300  M01S00299.comcwtw +++|          AX6    60          SIGN OF (OUT-IN+1)
00301  M01S00300.comcwtw +++|          BX4    X6-X7       INVERT BUFFER IF IN+1 \ OUT
00302  M01S00301.comcwtw +++|          IX6    X4-X3       BUFFER SIZE - 2*(OUT-IN+1)
00303  M01S00302.comcwtw +++|          NG     X6,WTX1     IF BUFFER THRESHOLD NOT REACHED
00304  M01S00303.comcwtw +++|          AX7    9
00305  M01S00304.comcwtw +++|          ZR     X7,WTX1     IF BUFFER NOT BIG ENOUGH TO WRITE AHEAD
00306  M01S00305.comcwtw +++| WRIF$    IF     DEF,WRIF$
00307  M01S00306.comcwtw +++|          SA1    A3-B1       RE-ISSUE CURRENT WRITE FUNCTION
00308  M01S00307.comcwtw +++|          SX6    774B
00309  M01S00308.comcwtw +++|          BX7    X6*X1
00310  M01S00309.comcwtw +++|          SX2    A1          SET FET ADDRESS
00311  M01S00310.comcwtw +++|          RJ     =XCIO=
00312  M01S00311.comcwtw +++| WRIF$    ELSE   1
00313  M01S00312.comcwtw +++|          WRITE  A3-B1
00314  M01S00313.comcwtw +++|
00315  M01S00314.comcwtw +++| WTX$     ENDIF
00316  M01S00315.comcwtw +++| WTX1     SB2    A4          SET RETURN ADDRESS
00317  M01S00316.comcwtw +++|          SX2    A3-B1       RESET (X2)
00318  M01S00317.comcwtw +++|          JP     B2          RETURN
00319  M01S00318.comcwtw +++| DCB      SPACE  4
00320  M01S00319.comcwtw +++|**        DCB - DUMP CIRCULAR BUFFER.
00321  M01S00320.comcwtw +++|*         IF BUFFER IS BUSY, RECALL AND RETURN.
00322  M01S00321.comcwtw +++|*         IF BUFFER IS NOT BUSY, REQUEST WRITE FUNCTION AND RETURN.
00323  M01S00322.comcwtw +++|*
00324  M01S00323.comcwtw +++|*         ENTRY  (A2) = ADDRESS OF IN.
00325  M01S00324.comcwtw +++|*                (A3) = ADDRESS OF FIRST.
00326  M01S00325.comcwtw +++|*                (A4) = RETURN ADDRESS.
00327  M01S00326.comcwtw +++|*                (B2) = FET STATUS READ PRIOR TO READ OF OUT.
00328  M01S00327.comcwtw +++|*                (X2) = IN.
00329  M01S00328.comcwtw +++|*
00330  M01S00329.comcwtw +++|*         EXIT   TO RETURN ADDRESS - 1.
00331  M01S00330.comcwtw +++|*                (X2) = FET ADDRESS.
00332  M01S00331.comcwtw +++|
00333  M01S00332.comcwtw +++|
00334  M01S00333.comcwtw +++| DCB=     SX1    B2          CHECK BUFFER STATUS
00335  M01S00334.comcwtw +++|          SX6    X2          STORE IN
00336  M01S00335.comcwtw +++|          LX1    59
00337  M01S00336.comcwtw +++|          SA6    A2
00338  M01S00337.comcwtw +++|          NG     X1,DCB1     IF NOT BUSY
00339  M01S00338.comcwtw +++|          ZR     X1,DCB1     IF BLANK FET
00340  M01S00339.comcwtw +++|          SX2    A3-B1       RESET FET ADDRESS
00341  M01S00340.comcwtw +++|          RECALL
00342  M01S00341.comcwtw +++|          SB2    A4-B1       CONTINUE WRITE
00343  M01S00342.comcwtw +++|          JP     B2
00344  M01S00343.comcwtw +++| WRIF$    IF     DEF,WRIF$
00345  M01S00344.comcwtw +++| DCB1     SA1    A3-B1       RE-ISSUE CURRENT WRITE FUNCTION
00346  M01S00345.comcwtw +++|          SX6    774B
00347  M01S00346.comcwtw +++|          BX7    X6*X1
00348  M01S00347.comcwtw +++|          SX2    A1          SET FET ADDRESS
00349  M01S00348.comcwtw +++|          RJ     =XCIO=
00350  M01S00349.comcwtw +++| WRIF$    ELSE   1
00351  M01S00350.comcwtw +++| DCB1     WRITE  A3-B1
00352  M01S00351.comcwtw +++|          SB2    A4-B1       CONTINUE WRITE
00353  M01S00352.comcwtw +++|          JP     B2
00354  M01S00353.comcwtw +++|          SPACE  4
00355  M01S00354.comcwtw +++|          BASE   *
00356  M01S00355.comcwtw +++| QUAL$    IF     -DEF,QUAL$
00357  M01S00356.comcwtw +++|          QUAL   *
00358  M01S00357.comcwtw +++| WTW=     EQU    /COMCWTW/WTW=
00359  M01S00358.comcwtw +++| WTX=     EQU    /COMCWTW/WTX=
00360  M01S00359.comcwtw +++| DCB=     EQU    /COMCWTW/DCB=
00361  M01S00360.comcwtw +++| QUAL$    ENDIF
00362  M01S00361.comcwtw +++|          ENDX
cdc/nos2.source/opl.opl871/common/comcwtw.txt ยท Last modified: by 127.0.0.1