Common COMPWCB

Library Member Format: MODIFY

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M00S00001.compwcb +++|          CTEXT  COMPWCB - WRITE CODED BUFFER.
00002  M00S00002.compwcb +++|          IF     -DEF,QUAL$,1
00003  M00S00003.compwcb +++|          QUAL   COMPWCB
Line S00001 Modification History
M01 (Added by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00004  M01S00001.281l803 +++|*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00005  M00S00004.compwcb +++| WCB      SPACE  4
00006  M00S00005.compwcb +++|***       WCB - WRITE CODED BUFFER.
00007  M00S00006.compwcb +++|*         G. R. MANSFIELD.  09/27/69.
00008  M00S00007.compwcb +++| WCB      SPACE  4
00009  M00S00008.compwcb +++|***              WCB WRITES A CODED LINE FROM A PP BUFFER TO A
00010  M00S00009.compwcb +++|*         CIRCULAR BUFFER.  THERE MUST BE ROOM IN THE CIRCULAR
00011  M00S00010.compwcb +++|*         BUFFER FOR THE CODED LIN.  DATA WILL BE TRANSFERRED TO
00012  M00S00011.compwcb +++|*         THE CIRCULAR BUFFER THROUGH A 0000 BYTE.  THIS BYTE WILL
00013  M00S00012.compwcb +++|*         TERMINATE THE CODED LINE, AND THE CURRENT CM WORD WILL BE
00014  M00S00013.compwcb +++|*         ZERO FILLED.
00015  M00S00014.compwcb +++|*         ENTRY  (A) = ADDRESS OF PP BUFFER.
00016  M00S00015.compwcb +++|*                (FT - FT+1) = FIRST ADDRESS OF CM BUFFER.
00017  M00S00016.compwcb +++|*                (IN - IN+1) = NEXT INPUT ADDRESS.
00018  M00S00017.compwcb +++|*                (LM - LM+1) = LIMIT ADDRESS OF CM BUFFER.
00019  M00S00018.compwcb +++|*         EXIT   (IN - IN+1) UPDATED.
00020  M00S00019.compwcb +++|*         USES   T1, T2, CM - CM+4.
00021  M00S00020.compwcb +++|
00022  M00S00021.compwcb +++|
00023  M00S00022.compwcb +++| WCB      SUBR               ENTRY/EXIT
00024  M00S00023.compwcb +++|          STD    T1          SET PP BUFFER ADDRESS
00025  M00S00024.compwcb +++| WCB1     LDN    CM          SET BYTE ADDRESS
00026  M00S00025.compwcb +++|          STD    T2
00027  M00S00026.compwcb +++| WCB2     LDI    T1          MOVE BYTE
00028  M00S00027.compwcb +++|          STI    T2
00029  M00S00028.compwcb +++|          AOD    T1          ADVANCE WORD ADDRESS
00030  M00S00029.compwcb +++|          AOD    T2          ADVANCE BYTE ADDRESS
00031  M00S00030.compwcb +++|          LMN    CM+5
00032  M00S00031.compwcb +++|          NJN    WCB2        LOOP TO END OF WORD
00033  M00S00032.compwcb +++|          LDD    IN          STORE WORD
00034  M00S00033.compwcb +++|          SHN    6
00035  M00S00034.compwcb +++|          ADD    RA
00036  M00S00035.compwcb +++|          SHN    6
00037  M00S00036.compwcb +++|          ADD    IN+1
00038  M00S00037.compwcb +++|          CWD    CM
00039  M00S00038.compwcb +++|          AOD    IN+1        IN = IN+1
00040  M00S00039.compwcb +++|          SHN    -14
00041  M00S00040.compwcb +++|          RAD    IN
00042  M00S00041.compwcb +++|          LMD    LM
00043  M00S00042.compwcb +++|          NJN    WCB4
00044  M00S00043.compwcb +++|          LDD    IN+1
00045  M00S00044.compwcb +++|          LMD    LM+1
00046  M00S00045.compwcb +++|          NJN    WCB4        IF LIMIT NOT REACHED
00047  M00S00046.compwcb +++|          LDD    FT          IN = FIRST
00048  M00S00047.compwcb +++|          STD    IN
00049  M00S00048.compwcb +++|          LDD    FT+1
00050  M00S00049.compwcb +++|          STD    IN+1
00051  M00S00050.compwcb +++| WCB4     LDD    CM+4
00052  M00S00051.compwcb +++|          NJN    WCB1        LOOP TO END OF LINE
00053  M00S00052.compwcb +++|          LJM    WCBX        RETURN
00054  M00S00053.compwcb +++|          SPACE  4
00055  M00S00054.compwcb +++| QUAL$    IF     -DEF,QUAL$
00056  M00S00055.compwcb +++|          QUAL   *
00057  M00S00056.compwcb +++| WCB      EQU    /COMPWCB/WCB
00058  M00S00057.compwcb +++| QUAL$    ENDIF
00059  M00S00058.compwcb +++|          ENDX