cdc:nos2.source:opl.opl871:common:comcrda
Common COMCRDA
1 Modification
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M01S00001.comcrda +++| CTEXT COMCRDA - READ CODED LINE TO 6/12 STRING BUFFER. 00002 M01S00002.comcrda +++| RDA SPACE 4 00003 M01S00003.comcrda +++| IF -DEF,QUAL$,1 00004 M01S00004.comcrda +++| QUAL COMCRDA 00005 M01S00005.comcrda +++| BASE D
Line S00006 Modification History | |
---|---|
M01 (Added by) | comcrda |
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.comcrda +++| RDA SPACE 4 00009 M01S00008.comcrda +++|*** RDA - READ CODED LINE TO 6/12 ASCII STRING BUFFER. 00010 M01S00009.comcrda +++|* R. S. HORECK. 71/05/19. 00011 M01S00010.comcrda +++|* S. R. MCPHERSON. 74/09/30. 00012 M01S00011.comcrda +++|* A. F. SKJOLDEBRAND 84/08/09. ( ADAPTION FROM COMCRDS ) 00013 M01S00012.comcrda +++| RDA SPACE 4 00014 M01S00013.comcrda +++|*** RDA READS 1 CODED LINE FROM A CIO BUFFER TO A WORKING 00015 M01S00014.comcrda +++|* BUFFER, ONE 6 OR 12 BIT CHARACTER/WORD. 00016 M01S00015.comcrda +++|* WORDS IN THE CIRCULAR BUFFER ARE UNPACKED AND STORED 1 00017 M01S00016.comcrda +++|* CHARACTER/WORD IN THE WORKING BUFFER UNTIL END OF LINE 00018 M01S00017.comcrda +++|* (0000) BYTE IS DETECTED. IF THE CODED LINE TERMINATES BEFORE 00019 M01S00018.comcrda +++|* THE WORKING BUFFER IS FILLED, THE WORKING BUFFER IS PADDED 00020 M01S00019.comcrda +++|* WITH SPACE CODES UNLESS UPON ENTRY THE COMPLEMENT OF THE 00021 M01S00020.comcrda +++|* WORD COUNT OF THE WORKING BUFFER IS USED. IN THIS CASE, 00022 M01S00021.comcrda +++|* THE REMAINDER OF THE WORKING BUFFER IS NOT SPACE FILLED. 00023 M01S00022.comcrda +++|* IF THE CODED LINE EXCEEDS THE SIZE OF THE 00024 M01S00023.comcrda +++|* WORKING BUFFER THE EXCESS CHARACTERS ARE IGNORED. 00025 M01S00024.comcrda +++|* 00026 M01S00025.comcrda +++|* 00027 M01S00026.comcrda +++|* ENTRY (X2) = ADDRESS OF FET FOR FILE. 00028 M01S00027.comcrda +++|* (B6) = FWA WORKING BUFFER. 00029 M01S00028.comcrda +++|* (B7) = WORD COUNT OF WORKING BUFFER. 00030 M01S00029.comcrda +++|* IF (B7) .LT. 0, IT IS THE COMPLEMENT OF THE 00031 M01S00030.comcrda +++|* BUFFER LENGTH AND THE STRING BUFFER WILL 00032 M01S00031.comcrda +++|* NOT BE SPACE FILLED. 00033 M01S00032.comcrda +++|* 00034 M01S00033.comcrda +++|* EXIT (X1) = 0 FOR TRANSFER COMPLETE. 00035 M01S00034.comcrda +++|* (X1) = -1 IF EOF DETECTED ON FILE. 00036 M01S00035.comcrda +++|* (X1) = -2 IF EOI DETECTED ON FILE. 00037 M01S00036.comcrda +++|* (X1) = (B6) IF EOR WAS DETECTED ON FILE BEFORE 00038 M01S00037.comcrda +++|* TRANSFER WAS COMPLETED. 00039 M01S00038.comcrda +++|* (B6) = ADDRESS PLUS ONE OF LAST CHARACTER FROM CODED 00040 M01S00039.comcrda +++|* LINE IN WORKING BUFFER. 00041 M01S00040.comcrda +++|* (X2) = ADDRESS OF FET FOR FILE. 00042 M01S00041.comcrda +++|* 00043 M01S00042.comcrda +++|* USES X - 1, 2, 3, 4, 6, 7. 00044 M01S00043.comcrda +++|* B - 1, 2, 3, 4, 5, 6, 7. 00045 M01S00044.comcrda +++|* A - 1, 2, 3, 4, 6, 7. 00046 M01S00045.comcrda +++|* 00047 M01S00046.comcrda +++|* CALLS LCB=, RDX=. 00048 M01S00047.comcrda +++| 00049 M01S00048.comcrda +++| 00050 M01S00049.comcrda +++| + EQ RDA2 ENTRY FROM LCB= ON A CONTINUATION READ 00051 M01S00050.comcrda +++| 00052 M01S00051.comcrda +++|* SPACE FILL REMAINDER OF BUFFER. 00053 M01S00052.comcrda +++| 00054 M01S00053.comcrda +++| RDA18 EQ B6,B7,RDA= IF WORKING BUFFER FULL 00055 M01S00054.comcrda +++| SX6 1R * * 00056 M01S00055.comcrda +++| SX4 B7-B6 (X4) = COUNT OF WORDA REMAINING IN BUFFER 00057 M01S00056.comcrda +++| MX3 59 (X3) = -1 00058 M01S00057.comcrda +++| SA6 B6 INITIALIZE (A6) 00059 M01S00058.comcrda +++| SB2 X4 00060 M01S00059.comcrda +++| LX7 X6 (X7) = * * 00061 M01S00060.comcrda +++| EQ B2,B1,RDA= IF ONLY 1 WORD REMAINING 00062 M01S00061.comcrda +++| BX2 -X3*X4 (X2) = 0 IF EVEN WORD COUNT 00063 M01S00062.comcrda +++| AX4 1 COUNT/2 00064 M01S00063.comcrda +++| NZ X2,RDA19 IF ODD WORD COUNT 00065 M01S00064.comcrda +++| SA6 A6+B1 STORE NEXT WORD 00066 M01S00065.comcrda +++| IX4 X4+X3 DECREMENT LOOP COUNT 00067 M01S00066.comcrda +++| SX2 A3-B1 RESET FET ADDRESS 00068 M01S00067.comcrda +++| ZR X4,RDA= IF WORD COUNT = 2 00069 M01S00068.comcrda +++| 00070 M01S00069.comcrda +++| RDA19 IX4 X4+X3 DECREMENT LOOP COUNT 00071 M01S00070.comcrda +++| SA7 A6+1 00072 M01S00071.comcrda +++| SA6 A7+B1 00073 M01S00072.comcrda +++| NZ X4,RDA19 LOOP TO END OF BUFFER 00074 M01S00073.comcrda +++| SX2 A3-1 RESET FET ADDRESS 00075 M01S00074.comcrda +++| EQ RDA= EXIT 00076 M01S00075.comcrda +++| 00077 M01S00076.comcrda +++| + EQ RDA2 ENTRY FROM LCB= ON A CONTINUATION READ 00078 M01S00077.comcrda +++| 00079 M01S00078.comcrda +++| RDA= PS ENTRY/EXIT 00080 M01S00079.comcrda +++| SA4 RDA18 SET RETURN ADDRESS 00081 M01S00080.comcrda +++| 00082 M01S00081.comcrda +++| IF -DEF,B1=1,1 00083 M01S00082.comcrda +++| SB1 1 00084 M01S00083.comcrda +++| 00085 M01S00084.comcrda +++| SA1 X2+4 (B5) = LIMIT 00086 M01S00085.comcrda +++| PL B7,RDA1 IF BUFFER TO BE SPACE FILLED 00087 M01S00086.comcrda +++| SA4 RDA= SKIP SPACE FILLING THE BUFFER 00088 M01S00087.comcrda +++| SB7 -B7 00089 M01S00088.comcrda +++| RDA1 SA3 X2+B1 (X3) = FIRST, (A3) = ADDRESS OF FIRST 00090 M01S00089.comcrda +++| SB7 B6+B7 (B7) = LWA+1 00091 M01S00090.comcrda +++| SX7 0 00092 M01S00091.comcrda +++| SX4 B6 (X4) = FWA WORKING STORAGE 00093 M01S00092.comcrda +++| SB5 X1 00094 M01S00093.comcrda +++| SA7 RDAA CLEAR ESCAPE CODE 00095 M01S00094.comcrda +++| 00096 M01S00095.comcrda +++|* INITIALIZE REGISTERS FOR TRANSFER. 00097 M01S00096.comcrda +++| 00098 M01S00097.comcrda +++| RDA2 SA1 A3+B1 IN 00099 M01S00098.comcrda +++| SA2 A1+B1 (B4) = OUT 00100 M01S00099.comcrda +++| SB4 X2 00101 M01S00100.comcrda +++| IX6 X1-X2 IN - OUT 00102 M01S00101.comcrda +++| SX1 B5 LIMIT 00103 M01S00102.comcrda +++| PL X6,RDA3 IF IN \ OUT 00104 M01S00103.comcrda +++| IX6 X1-X2 LIMIT - OUT 00105 M01S00104.comcrda +++| RDA3 ZR X6,=XLCB= IF NO FREE BUFFER SPACE 00106 M01S00105.comcrda +++| MX2 -6 (X2) = CHARACTER MASK 00107 M01S00106.comcrda +++| SB3 X6 (B3) = FREE BUFFER SPACE 00108 M01S00107.comcrda +++| 00109 M01S00108.comcrda +++| 00110 M01S00109.comcrda +++| RDA4 NE B4,B5,RDA5 IF OUT .NE. LIMIT 00111 M01S00110.comcrda +++| SA1 A3 00112 M01S00111.comcrda +++| SB4 X1 OUT = FIRST 00113 M01S00112.comcrda +++| RDA5 SX6 B4 RESET OUT 00114 M01S00113.comcrda +++| SA6 A2 00115 M01S00114.comcrda +++| ZR B3,RDA2 IF FREE BUFFER SPACE EXHAUSTED 00116 M01S00115.comcrda +++| 00117 M01S00116.comcrda +++|* READ WORD FROM BUFFER. 00118 M01S00117.comcrda +++| 00119 M01S00118.comcrda +++| SA1 RDAA 00120 M01S00119.comcrda +++| BX7 X1 (X7) = PREVIOUS ESCAPE CODE 00121 M01S00120.comcrda +++| SA1 B4 00122 M01S00121.comcrda +++| SB4 B4+B1 00123 M01S00122.comcrda +++| EQ B7,B6,RDA15 IF MAXIMUM CHARACTERS PROCESSED 00124 M01S00123.comcrda +++| SB2 B0+ INITIALIZE CHARACTER COUNT 00125 M01S00124.comcrda +++| NG X1,RDA6 IF POSSIBLY 10 SEMI-COLONS 00126 M01S00125.comcrda +++| ZR X1,RDA13 IF ZERO WORD SKIP UNPACKING 00127 M01S00126.comcrda +++| 00128 M01S00127.comcrda +++|* UNPACK WORD TO WORKING BUFFER 00129 M01S00128.comcrda +++| 00130 M01S00129.comcrda +++| RDA6 LX1 6 00131 M01S00130.comcrda +++| SB2 B2+B1 BUMP CHARACTER COUNT 00132 M01S00131.comcrda +++| BX6 -X2*X1 PICK UP CHARACTER 00133 M01S00132.comcrda +++| BX1 X2*X1 ERASE CHARACTER 00134 M01S00133.comcrda +++| LX7 6 00135 M01S00134.comcrda +++| BX6 X7+X6 00136 M01S00135.comcrda +++| NZ X7,RDA7 IF ESCAPE CODE PRESENT 00137 M01S00136.comcrda +++| SX7 X6-76B 00138 M01S00137.comcrda +++| ZR X7,RDA8 IF ESCAPE 76 IS PRESENT 00139 M01S00138.comcrda +++| SX7 X6-74B 00140 M01S00139.comcrda +++| ZR X7,RDA8 IF ESCAPE 74 IS PRESENT 00141 M01S00140.comcrda +++| RDA7 SA6 B6+ 00142 M01S00141.comcrda +++| SB6 B6+1 00143 M01S00142.comcrda +++| EQ B6,B7,RDA15 IF MAXIMUM CHARACTERS PROCESSED 00144 M01S00143.comcrda +++| SX6 0 CLEAR ESCAPE CHARACTER 00145 M01S00144.comcrda +++| RDA8 BX7 X6 USE NEW ESCAPE CODE 00146 M01S00145.comcrda +++| NZ X1,RDA6 IF MORE CHARACTERS IN THIS WORD 00147 M01S00146.comcrda +++| SA7 RDAA SAVE ESCAPE CODE FOR NEXT WORD 00148 M01S00147.comcrda +++| SX6 B2-9 00149 M01S00148.comcrda +++| EQ RDA10 00150 M01S00149.comcrda +++| 00151 M01S00150.comcrda +++| RDA9 SA6 B6 00152 M01S00151.comcrda +++| SB6 B6+B1 00153 M01S00152.comcrda +++| EQ B6,B7,RDA15 IF MAXIMUM CHARACTERS PROCESSED 00154 M01S00153.comcrda +++| NZ X1,RDA6 IF MORE CHARACTERS THIS WORD 00155 M01S00154.comcrda +++| SX6 B2-9 00156 M01S00155.comcrda +++| RDA10 SB2 B0 RESET CHARACTER COUNT 00157 M01S00156.comcrda +++| SB3 B3-B1 DECREMENT FREE BUFFER SPACE 00158 M01S00157.comcrda +++| NG X6,RDA15 IF END OF LINE 00159 M01S00158.comcrda +++| ZR B3,RDA12 IF FREE BUFFER SPACE EXHAUSTED 00160 M01S00159.comcrda +++| SA1 B4 GET NEXT WORD TO BE UNPACKED 00161 M01S00160.comcrda +++| SB4 B4+B1 00162 M01S00161.comcrda +++| NG X1,RDA11 IF POSSIBLY 10 SEMI-COLONS 00163 M01S00162.comcrda +++| ZR X1,RDA15 IF ZERO WORD, END OF LINE 00164 M01S00163.comcrda +++| RDA11 NZ X6,RDA6 IF WORD COMPLETLY PROCESSED 00165 M01S00164.comcrda +++| EQ RDA9 PROCESS LAST CHARACTER 00166 M01S00165.comcrda +++| 00167 M01S00166.comcrda +++| RDA12 NZ X6,RDA4 IF LAST CHARACTER PROCESSED 00168 M01S00167.comcrda +++| SA6 B6 PROCESS LAST CHARACTER 00169 M01S00168.comcrda +++| SB6 B6+B1 00170 M01S00169.comcrda +++| EQ RDA4 00171 M01S00170.comcrda +++| 00172 M01S00171.comcrda +++| RDA13 SB2 X4 00173 M01S00172.comcrda +++| NE B6,B2,RDA14 IF AT LEAST 1 CHARACTER IN WORKING BUFFER 00174 M01S00173.comcrda +++| SX6 1R ASSURE 1 BLANK IN STRING BUFFER 00175 M01S00174.comcrda +++| SB6 B2+B1 00176 M01S00175.comcrda +++| SA6 B2 00177 M01S00176.comcrda +++| RDA14 SA1 B6-B1 CHECK LAST CHARACTER IN BUFFER 00178 M01S00177.comcrda +++| NZ X1,RDA15 IF NOT BEGINNING OF END OF LINE 00179 M01S00178.comcrda +++| SB6 B6-1 ERASE CHARACTER 00180 M01S00179.comcrda +++| 00181 M01S00180.comcrda +++|* SEARCH FOR END OF LINE 00182 M01S00181.comcrda +++| 00183 M01S00182.comcrda +++| RDA15 SA1 B4-1 READ LAST WORD PROCESSED 00184 M01S00183.comcrda +++| MX7 -12 00185 M01S00184.comcrda +++| BX7 -X7*X1 CHECK FOR END OF LINE 00186 M01S00185.comcrda +++| SB3 B3-1 DECREMENT FREE BUFFER SPACE 00187 M01S00186.comcrda +++| NZ X7,RDA4 IF END OF LINE NOT FOUND 00188 M01S00187.comcrda +++| NE B4,B5,RDA16 IF OUT .NE. LIMIT 00189 M01S00188.comcrda +++| SB4 X3+ OUT .EQ. FIRST 00190 M01S00189.comcrda +++| RDA16 SA1 A3+B1 RESET IN 00191 M01S00190.comcrda +++| SB2 X4 FWA WORKING BUFFER 00192 M01S00191.comcrda +++| SB3 X1+ (B3) = IN 00193 M01S00192.comcrda +++| GE B6,B2,=XRDX= 00194 M01S00193.comcrda +++| SB6 B2+ 00195 M01S00194.comcrda +++| EQ =XRDX= EXIT 00196 M01S00195.comcrda +++| 00197 M01S00196.comcrda +++| RDAA DATA 0 ESCAPE CODE TEMPORARY STORAGE 00198 M01S00197.comcrda +++| 00199 M01S00198.comcrda +++| SPACE 4 00200 M01S00199.comcrda +++| BASE * 00201 M01S00200.comcrda +++| QUAL$ IF -DEF,QUAL$ 00202 M01S00201.comcrda +++| QUAL * 00203 M01S00202.comcrda +++| RDA= EQU /COMCRDA/RDA= 00204 M01S00203.comcrda +++| QUAL$ ENDIF 00205 M01S00204.comcrda +++| ENDX
cdc/nos2.source/opl.opl871/common/comcrda.txt ยท Last modified: by 127.0.0.1