cdc:nos2.source:opl.opl871:common:comcrda
Common COMCRDA
Library Member Format: MODIFY
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M00S00001.comcrda +++| CTEXT COMCRDA - READ CODED LINE TO 6/12 STRING BUFFER. 00002 M00S00002.comcrda +++| RDA SPACE 4 00003 M00S00003.comcrda +++| IF -DEF,QUAL$,1 00004 M00S00004.comcrda +++| QUAL COMCRDA 00005 M00S00005.comcrda +++| BASE D
Line S00006 Modification History | |
---|---|
M01 (Removed by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00006 M01S00006.281l803 ---|* COMMENT COPYRIGHT CONTROL DATA CORP. 1970.
Line S00001 Modification History | |
---|---|
M01 (Added by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00007 M01S00001.281l803 +++|* COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. 00008 M00S00007.comcrda +++| RDA SPACE 4 00009 M00S00008.comcrda +++|*** RDA - READ CODED LINE TO 6/12 ASCII STRING BUFFER. 00010 M00S00009.comcrda +++|* R. S. HORECK. 71/05/19. 00011 M00S00010.comcrda +++|* S. R. MCPHERSON. 74/09/30. 00012 M00S00011.comcrda +++|* A. F. SKJOLDEBRAND 84/08/09. ( ADAPTION FROM COMCRDS ) 00013 M00S00012.comcrda +++| RDA SPACE 4 00014 M00S00013.comcrda +++|*** RDA READS 1 CODED LINE FROM A CIO BUFFER TO A WORKING 00015 M00S00014.comcrda +++|* BUFFER, ONE 6 OR 12 BIT CHARACTER/WORD. 00016 M00S00015.comcrda +++|* WORDS IN THE CIRCULAR BUFFER ARE UNPACKED AND STORED 1 00017 M00S00016.comcrda +++|* CHARACTER/WORD IN THE WORKING BUFFER UNTIL END OF LINE 00018 M00S00017.comcrda +++|* (0000) BYTE IS DETECTED. IF THE CODED LINE TERMINATES BEFORE 00019 M00S00018.comcrda +++|* THE WORKING BUFFER IS FILLED, THE WORKING BUFFER IS PADDED 00020 M00S00019.comcrda +++|* WITH SPACE CODES UNLESS UPON ENTRY THE COMPLEMENT OF THE 00021 M00S00020.comcrda +++|* WORD COUNT OF THE WORKING BUFFER IS USED. IN THIS CASE, 00022 M00S00021.comcrda +++|* THE REMAINDER OF THE WORKING BUFFER IS NOT SPACE FILLED. 00023 M00S00022.comcrda +++|* IF THE CODED LINE EXCEEDS THE SIZE OF THE 00024 M00S00023.comcrda +++|* WORKING BUFFER THE EXCESS CHARACTERS ARE IGNORED. 00025 M00S00024.comcrda +++|* 00026 M00S00025.comcrda +++|* 00027 M00S00026.comcrda +++|* ENTRY (X2) = ADDRESS OF FET FOR FILE. 00028 M00S00027.comcrda +++|* (B6) = FWA WORKING BUFFER. 00029 M00S00028.comcrda +++|* (B7) = WORD COUNT OF WORKING BUFFER. 00030 M00S00029.comcrda +++|* IF (B7) .LT. 0, IT IS THE COMPLEMENT OF THE 00031 M00S00030.comcrda +++|* BUFFER LENGTH AND THE STRING BUFFER WILL 00032 M00S00031.comcrda +++|* NOT BE SPACE FILLED. 00033 M00S00032.comcrda +++|* 00034 M00S00033.comcrda +++|* EXIT (X1) = 0 FOR TRANSFER COMPLETE. 00035 M00S00034.comcrda +++|* (X1) = -1 IF EOF DETECTED ON FILE. 00036 M00S00035.comcrda +++|* (X1) = -2 IF EOI DETECTED ON FILE. 00037 M00S00036.comcrda +++|* (X1) = (B6) IF EOR WAS DETECTED ON FILE BEFORE 00038 M00S00037.comcrda +++|* TRANSFER WAS COMPLETED. 00039 M00S00038.comcrda +++|* (B6) = ADDRESS PLUS ONE OF LAST CHARACTER FROM CODED 00040 M00S00039.comcrda +++|* LINE IN WORKING BUFFER. 00041 M00S00040.comcrda +++|* (X2) = ADDRESS OF FET FOR FILE. 00042 M00S00041.comcrda +++|* 00043 M00S00042.comcrda +++|* USES X - 1, 2, 3, 4, 6, 7. 00044 M00S00043.comcrda +++|* B - 1, 2, 3, 4, 5, 6, 7. 00045 M00S00044.comcrda +++|* A - 1, 2, 3, 4, 6, 7. 00046 M00S00045.comcrda +++|* 00047 M00S00046.comcrda +++|* CALLS LCB=, RDX=. 00048 M00S00047.comcrda +++| 00049 M00S00048.comcrda +++| 00050 M00S00049.comcrda +++| + EQ RDA2 ENTRY FROM LCB= ON A CONTINUATION READ 00051 M00S00050.comcrda +++| 00052 M00S00051.comcrda +++|* SPACE FILL REMAINDER OF BUFFER. 00053 M00S00052.comcrda +++| 00054 M00S00053.comcrda +++| RDA18 EQ B6,B7,RDA= IF WORKING BUFFER FULL 00055 M00S00054.comcrda +++| SX6 1R * * 00056 M00S00055.comcrda +++| SX4 B7-B6 (X4) = COUNT OF WORDA REMAINING IN BUFFER 00057 M00S00056.comcrda +++| MX3 59 (X3) = -1 00058 M00S00057.comcrda +++| SA6 B6 INITIALIZE (A6) 00059 M00S00058.comcrda +++| SB2 X4 00060 M00S00059.comcrda +++| LX7 X6 (X7) = * * 00061 M00S00060.comcrda +++| EQ B2,B1,RDA= IF ONLY 1 WORD REMAINING 00062 M00S00061.comcrda +++| BX2 -X3*X4 (X2) = 0 IF EVEN WORD COUNT 00063 M00S00062.comcrda +++| AX4 1 COUNT/2 00064 M00S00063.comcrda +++| NZ X2,RDA19 IF ODD WORD COUNT 00065 M00S00064.comcrda +++| SA6 A6+B1 STORE NEXT WORD 00066 M00S00065.comcrda +++| IX4 X4+X3 DECREMENT LOOP COUNT 00067 M00S00066.comcrda +++| SX2 A3-B1 RESET FET ADDRESS 00068 M00S00067.comcrda +++| ZR X4,RDA= IF WORD COUNT = 2 00069 M00S00068.comcrda +++| 00070 M00S00069.comcrda +++| RDA19 IX4 X4+X3 DECREMENT LOOP COUNT 00071 M00S00070.comcrda +++| SA7 A6+1 00072 M00S00071.comcrda +++| SA6 A7+B1 00073 M00S00072.comcrda +++| NZ X4,RDA19 LOOP TO END OF BUFFER 00074 M00S00073.comcrda +++| SX2 A3-1 RESET FET ADDRESS 00075 M00S00074.comcrda +++| EQ RDA= EXIT 00076 M00S00075.comcrda +++| 00077 M00S00076.comcrda +++| + EQ RDA2 ENTRY FROM LCB= ON A CONTINUATION READ 00078 M00S00077.comcrda +++| 00079 M00S00078.comcrda +++| RDA= PS ENTRY/EXIT 00080 M00S00079.comcrda +++| SA4 RDA18 SET RETURN ADDRESS 00081 M00S00080.comcrda +++| 00082 M00S00081.comcrda +++| IF -DEF,B1=1,1 00083 M00S00082.comcrda +++| SB1 1 00084 M00S00083.comcrda +++| 00085 M00S00084.comcrda +++| SA1 X2+4 (B5) = LIMIT 00086 M00S00085.comcrda +++| PL B7,RDA1 IF BUFFER TO BE SPACE FILLED 00087 M00S00086.comcrda +++| SA4 RDA= SKIP SPACE FILLING THE BUFFER 00088 M00S00087.comcrda +++| SB7 -B7 00089 M00S00088.comcrda +++| RDA1 SA3 X2+B1 (X3) = FIRST, (A3) = ADDRESS OF FIRST 00090 M00S00089.comcrda +++| SB7 B6+B7 (B7) = LWA+1 00091 M00S00090.comcrda +++| SX7 0 00092 M00S00091.comcrda +++| SX4 B6 (X4) = FWA WORKING STORAGE 00093 M00S00092.comcrda +++| SB5 X1 00094 M00S00093.comcrda +++| SA7 RDAA CLEAR ESCAPE CODE 00095 M00S00094.comcrda +++| 00096 M00S00095.comcrda +++|* INITIALIZE REGISTERS FOR TRANSFER. 00097 M00S00096.comcrda +++| 00098 M00S00097.comcrda +++| RDA2 SA1 A3+B1 IN 00099 M00S00098.comcrda +++| SA2 A1+B1 (B4) = OUT 00100 M00S00099.comcrda +++| SB4 X2 00101 M00S00100.comcrda +++| IX6 X1-X2 IN - OUT 00102 M00S00101.comcrda +++| SX1 B5 LIMIT 00103 M00S00102.comcrda +++| PL X6,RDA3 IF IN \ OUT 00104 M00S00103.comcrda +++| IX6 X1-X2 LIMIT - OUT 00105 M00S00104.comcrda +++| RDA3 ZR X6,=XLCB= IF NO FREE BUFFER SPACE 00106 M00S00105.comcrda +++| MX2 -6 (X2) = CHARACTER MASK 00107 M00S00106.comcrda +++| SB3 X6 (B3) = FREE BUFFER SPACE 00108 M00S00107.comcrda +++| 00109 M00S00108.comcrda +++| 00110 M00S00109.comcrda +++| RDA4 NE B4,B5,RDA5 IF OUT .NE. LIMIT 00111 M00S00110.comcrda +++| SA1 A3 00112 M00S00111.comcrda +++| SB4 X1 OUT = FIRST 00113 M00S00112.comcrda +++| RDA5 SX6 B4 RESET OUT 00114 M00S00113.comcrda +++| SA6 A2 00115 M00S00114.comcrda +++| ZR B3,RDA2 IF FREE BUFFER SPACE EXHAUSTED 00116 M00S00115.comcrda +++| 00117 M00S00116.comcrda +++|* READ WORD FROM BUFFER. 00118 M00S00117.comcrda +++| 00119 M00S00118.comcrda +++| SA1 RDAA 00120 M00S00119.comcrda +++| BX7 X1 (X7) = PREVIOUS ESCAPE CODE 00121 M00S00120.comcrda +++| SA1 B4 00122 M00S00121.comcrda +++| SB4 B4+B1 00123 M00S00122.comcrda +++| EQ B7,B6,RDA15 IF MAXIMUM CHARACTERS PROCESSED 00124 M00S00123.comcrda +++| SB2 B0+ INITIALIZE CHARACTER COUNT 00125 M00S00124.comcrda +++| NG X1,RDA6 IF POSSIBLY 10 SEMI-COLONS 00126 M00S00125.comcrda +++| ZR X1,RDA13 IF ZERO WORD SKIP UNPACKING 00127 M00S00126.comcrda +++| 00128 M00S00127.comcrda +++|* UNPACK WORD TO WORKING BUFFER 00129 M00S00128.comcrda +++| 00130 M00S00129.comcrda +++| RDA6 LX1 6 00131 M00S00130.comcrda +++| SB2 B2+B1 BUMP CHARACTER COUNT 00132 M00S00131.comcrda +++| BX6 -X2*X1 PICK UP CHARACTER 00133 M00S00132.comcrda +++| BX1 X2*X1 ERASE CHARACTER 00134 M00S00133.comcrda +++| LX7 6 00135 M00S00134.comcrda +++| BX6 X7+X6 00136 M00S00135.comcrda +++| NZ X7,RDA7 IF ESCAPE CODE PRESENT 00137 M00S00136.comcrda +++| SX7 X6-76B 00138 M00S00137.comcrda +++| ZR X7,RDA8 IF ESCAPE 76 IS PRESENT 00139 M00S00138.comcrda +++| SX7 X6-74B 00140 M00S00139.comcrda +++| ZR X7,RDA8 IF ESCAPE 74 IS PRESENT 00141 M00S00140.comcrda +++| RDA7 SA6 B6+ 00142 M00S00141.comcrda +++| SB6 B6+1 00143 M00S00142.comcrda +++| EQ B6,B7,RDA15 IF MAXIMUM CHARACTERS PROCESSED 00144 M00S00143.comcrda +++| SX6 0 CLEAR ESCAPE CHARACTER 00145 M00S00144.comcrda +++| RDA8 BX7 X6 USE NEW ESCAPE CODE 00146 M00S00145.comcrda +++| NZ X1,RDA6 IF MORE CHARACTERS IN THIS WORD 00147 M00S00146.comcrda +++| SA7 RDAA SAVE ESCAPE CODE FOR NEXT WORD 00148 M00S00147.comcrda +++| SX6 B2-9 00149 M00S00148.comcrda +++| EQ RDA10 00150 M00S00149.comcrda +++| 00151 M00S00150.comcrda +++| RDA9 SA6 B6 00152 M00S00151.comcrda +++| SB6 B6+B1 00153 M00S00152.comcrda +++| EQ B6,B7,RDA15 IF MAXIMUM CHARACTERS PROCESSED 00154 M00S00153.comcrda +++| NZ X1,RDA6 IF MORE CHARACTERS THIS WORD 00155 M00S00154.comcrda +++| SX6 B2-9 00156 M00S00155.comcrda +++| RDA10 SB2 B0 RESET CHARACTER COUNT 00157 M00S00156.comcrda +++| SB3 B3-B1 DECREMENT FREE BUFFER SPACE 00158 M00S00157.comcrda +++| NG X6,RDA15 IF END OF LINE 00159 M00S00158.comcrda +++| ZR B3,RDA12 IF FREE BUFFER SPACE EXHAUSTED 00160 M00S00159.comcrda +++| SA1 B4 GET NEXT WORD TO BE UNPACKED 00161 M00S00160.comcrda +++| SB4 B4+B1 00162 M00S00161.comcrda +++| NG X1,RDA11 IF POSSIBLY 10 SEMI-COLONS 00163 M00S00162.comcrda +++| ZR X1,RDA15 IF ZERO WORD, END OF LINE 00164 M00S00163.comcrda +++| RDA11 NZ X6,RDA6 IF WORD COMPLETLY PROCESSED 00165 M00S00164.comcrda +++| EQ RDA9 PROCESS LAST CHARACTER 00166 M00S00165.comcrda +++| 00167 M00S00166.comcrda +++| RDA12 NZ X6,RDA4 IF LAST CHARACTER PROCESSED 00168 M00S00167.comcrda +++| SA6 B6 PROCESS LAST CHARACTER 00169 M00S00168.comcrda +++| SB6 B6+B1 00170 M00S00169.comcrda +++| EQ RDA4 00171 M00S00170.comcrda +++| 00172 M00S00171.comcrda +++| RDA13 SB2 X4 00173 M00S00172.comcrda +++| NE B6,B2,RDA14 IF AT LEAST 1 CHARACTER IN WORKING BUFFER 00174 M00S00173.comcrda +++| SX6 1R ASSURE 1 BLANK IN STRING BUFFER 00175 M00S00174.comcrda +++| SB6 B2+B1 00176 M00S00175.comcrda +++| SA6 B2 00177 M00S00176.comcrda +++| RDA14 SA1 B6-B1 CHECK LAST CHARACTER IN BUFFER 00178 M00S00177.comcrda +++| NZ X1,RDA15 IF NOT BEGINNING OF END OF LINE 00179 M00S00178.comcrda +++| SB6 B6-1 ERASE CHARACTER 00180 M00S00179.comcrda +++| 00181 M00S00180.comcrda +++|* SEARCH FOR END OF LINE 00182 M00S00181.comcrda +++| 00183 M00S00182.comcrda +++| RDA15 SA1 B4-1 READ LAST WORD PROCESSED 00184 M00S00183.comcrda +++| MX7 -12 00185 M00S00184.comcrda +++| BX7 -X7*X1 CHECK FOR END OF LINE 00186 M00S00185.comcrda +++| SB3 B3-1 DECREMENT FREE BUFFER SPACE 00187 M00S00186.comcrda +++| NZ X7,RDA4 IF END OF LINE NOT FOUND 00188 M00S00187.comcrda +++| NE B4,B5,RDA16 IF OUT .NE. LIMIT 00189 M00S00188.comcrda +++| SB4 X3+ OUT .EQ. FIRST 00190 M00S00189.comcrda +++| RDA16 SA1 A3+B1 RESET IN 00191 M00S00190.comcrda +++| SB2 X4 FWA WORKING BUFFER 00192 M00S00191.comcrda +++| SB3 X1+ (B3) = IN 00193 M00S00192.comcrda +++| GE B6,B2,=XRDX= 00194 M00S00193.comcrda +++| SB6 B2+ 00195 M00S00194.comcrda +++| EQ =XRDX= EXIT 00196 M00S00195.comcrda +++| 00197 M00S00196.comcrda +++| RDAA DATA 0 ESCAPE CODE TEMPORARY STORAGE 00198 M00S00197.comcrda +++| 00199 M00S00198.comcrda +++| SPACE 4 00200 M00S00199.comcrda +++| BASE * 00201 M00S00200.comcrda +++| QUAL$ IF -DEF,QUAL$ 00202 M00S00201.comcrda +++| QUAL * 00203 M00S00202.comcrda +++| RDA= EQU /COMCRDA/RDA= 00204 M00S00203.comcrda +++| QUAL$ ENDIF 00205 M00S00204.comcrda +++| ENDX
cdc/nos2.source/opl.opl871/common/comcrda.txt ยท Last modified: (external edit)