Common COMPRCB

Library Member Format: MODIFY

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M00S00001.comprcb +++|          CTEXT  COMPRCB - READ CODED BUFFER.
00002  M00S00002.comprcb +++|          IF     -DEF,QUAL$,1
00003  M00S00003.comprcb +++|          QUAL   COMPRCB
Line S00001 Modification History
M01 (Added by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00004  M01S00001.281l803 +++|*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00005  M00S00004.comprcb +++| RCB      SPACE  4
00006  M00S00005.comprcb +++|***       RCB - READ CODED BUFFER.
00007  M00S00006.comprcb +++|*         G. R. MANSFIELD.  09/27/69.
00008  M00S00007.comprcb +++| RCB      SPACE  4
00009  M00S00008.comprcb +++|***              RCB READS ONE CODED LINE FROM A CM CIRCULAR BUFFER.
00010  M00S00009.comprcb +++|*         DATA WILL BE STORED IN PP BUFFER CONTINUING TO A 0000 BYTE.
00011  M00S00010.comprcb +++|*         UP TO 14 CM WORDS MAY BE READ, (CODED LINE TERMINATES
00012  M00S00011.comprcb +++|*         WITH A 0000 IN BYTE 4), THE LAST 4 CHARACTERS ARE NOT
00013  M00S00012.comprcb +++|*         STORED IN PP BUFFER.  ALL IMBEDDED 0000 BYTES ARE
00014  M00S00013.comprcb +++|*         STORED AS 5555.
00015  M00S00014.comprcb +++|*
00016  M00S00015.comprcb +++|*         ENTRY  (A) = ADDRESS OF PP BUFFER.
00017  M00S00016.comprcb +++|*                (FT - FT+1) = FIRST ADDRESS OF CM BUFFER.
00018  M00S00017.comprcb +++|*                (OT - OT+1) = NEXT OUTPUT ADDRESS.
00019  M00S00018.comprcb +++|*                (LM - LM+1) = LIMIT ADDRESS OF CM BUFFER.
00020  M00S00019.comprcb +++|*
00021  M00S00020.comprcb +++|*         EXIT   (OT - OT+1) UPDATED.
00022  M00S00021.comprcb +++|*
00023  M00S00022.comprcb +++|*         USES   T1, T2, T3, CM - CM+4.
00024  M00S00023.comprcb +++|
00025  M00S00024.comprcb +++|
00026  M00S00025.comprcb +++| RCB      SUBR               ENTRY/EXIT
00027  M00S00026.comprcb +++|          STD    T1          SET PP BUFFER ADDRESS
00028  M00S00027.comprcb +++|          ADC    104         SET BYTE LIMIT
00029  M00S00028.comprcb +++| RCBA     EQU    *-1         MAXIMUM NUMBER OF BYTES TO READ
00030  M00S00029.comprcb +++|          STD    T3
00031  M00S00030.comprcb +++| RCB1     LDD    OT          READ WORD
00032  M00S00031.comprcb +++|          SHN    6
00033  M00S00032.comprcb +++|          ADD    RA
00034  M00S00033.comprcb +++|          SHN    6
00035  M00S00034.comprcb +++|          ADD    OT+1
00036  M00S00035.comprcb +++|          CRD    CM
00037  M00S00036.comprcb +++|          LDN    CM          SET BYTE ADDRESS
00038  M00S00037.comprcb +++|          STD    T2
00039  M00S00038.comprcb +++|          AOD    OT+1        ADVANCE OUT
00040  M00S00039.comprcb +++|          SHN    -14
00041  M00S00040.comprcb +++|          RAD    OT
00042  M00S00041.comprcb +++|          LMD    LM
00043  M00S00042.comprcb +++|          NJN    RCB2
00044  M00S00043.comprcb +++|          LDD    OT+1
00045  M00S00044.comprcb +++|          LMD    LM+1
00046  M00S00045.comprcb +++|          NJN    RCB2        IF LIMIT NOT REACHED
00047  M00S00046.comprcb +++|          LDD    FT          SET OUT = FIRST
00048  M00S00047.comprcb +++|          STD    OT
00049  M00S00048.comprcb +++|          LDD    FT+1
00050  M00S00049.comprcb +++|          STD    OT+1
00051  M00S00050.comprcb +++| RCB2     LDI    T2          MOVE BYTE
00052  M00S00051.comprcb +++|          STI    T1
00053  M00S00052.comprcb +++|          AOD    T1          ADVANCE BYTE ADDRESS
00054  M00S00053.comprcb +++|          LMD    T3
00055  M00S00054.comprcb +++|          ZJN    RCB4        IF LINE BUFFER FULL
00056  M00S00055.comprcb +++|          AOD    T2
00057  M00S00056.comprcb +++|          LMN    CM+5
00058  M00S00057.comprcb +++|          NJN    RCB2        LOOP TO END OF WORD
00059  M00S00058.comprcb +++|          LDD    CM+4
00060  M00S00059.comprcb +++|          ZJN    RCB4        IF END OF LINE
00061  M00S00060.comprcb +++|          LDD    OT          CHECK OUT
00062  M00S00061.comprcb +++|          LMD    IN
00063  M00S00062.comprcb +++|          SHN    14
00064  M00S00063.comprcb +++|          ADD    OT+1
00065  M00S00064.comprcb +++|          LMD    IN+1
00066  M00S00065.comprcb +++|          ZJN    RCB4        IF OUT = IN
00067  M00S00066.comprcb +++|          LJM    RCB1        LOOP
00068  M00S00067.comprcb +++| RCB4     STI    T1          TERMINATE LINE
00069  M00S00068.comprcb +++|          LJM    RCBX        RETURN
00070  M00S00069.comprcb +++|          SPACE  4
00071  M00S00070.comprcb +++| QUAL$    IF     -DEF,QUAL$
00072  M00S00071.comprcb +++|          QUAL   *
00073  M00S00072.comprcb +++| RCB      EQU    /COMPRCB/RCB
00074  M00S00073.comprcb +++| RCBA     EQU    /COMPRCB/RCBA
00075  M00S00074.comprcb +++| QUAL$    ENDIF
00076  M00S00075.comprcb +++|          ENDX