cdc:nos2.source:opl.opl871:common:comcrdw
Common COMCRDW
Library Member Format: MODIFY
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M00S00001.comcrdw +++| CTEXT COMCRDW - READ WORDS TO WORKING BUFFER. 00002 M00S00002.comcrdw +++| RDW SPACE 4 00003 M00S00003.comcrdw +++| IF -DEF,QUAL$,1 00004 M00S00004.comcrdw +++| QUAL COMCRDW 00005 M00S00005.comcrdw +++| 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.comcrdw +++| RDW SPACE 4 00009 M00S00008.comcrdw +++|*** RDW - READ WORDS TO WORKING BUFFER. 00010 M00S00009.comcrdw +++|* D. A. CAHLANDER. 70/11/29. 00011 M00S00010.comcrdw +++|* R. E. TATE. 73/11/04. 00012 M00S00011.comcrdw +++| RDW SPACE 4 00013 M00S00012.comcrdw +++|*** RDW READS A GIVEN NUMBER OF WORDS FROM A CIO BUFFER TO 00014 M00S00013.comcrdw +++|* A WORKING BUFFER. THIS DECK ALSO CONTAINS LCB=, RDX=.
Line S00001 Modification History | |
---|---|
M01 (Added by) | ns2340 |
Seq # *Modification Id* Act ----------------------------+ 00015 M01S00001.ns2340 +++|* 00016 M01S00002.ns2340 +++|* A *READW* REQUEST MAY ACCESS DATA FROM BEYOND THE END OF THE 00017 M01S00003.ns2340 +++|* *CIO* BUFFER, THUS CAUSING AN ABORT IF THE LAST WORD ADDRESS 00018 M01S00004.ns2340 +++|* OF THE *CIO* BUFFER IS WITHIN 4 WORDS OF THE PROGRAM-S FIELD 00019 M01S00005.ns2340 +++|* LENGTH. 00020 M00S00014.comcrdw +++|* 00021 M00S00015.comcrdw +++|* THE THRESHOLD CONDITION TO ISSUE READ FUNCTIONS 00022 M00S00016.comcrdw +++|* IS BUFFER HALF EMPTY FOR BUFFERS LARGER 00023 M00S00017.comcrdw +++|* THAN 511 DECIMAL WORDS, AND BUFFER TOTALLY 00024 M00S00018.comcrdw +++|* EMPTY FOR SMALLER BUFFERS. IF THE SYMBOL 00025 M00S00019.comcrdw +++|* RDX$ IS DEFINED, THEN THE THRESHOLD IS 00026 M00S00020.comcrdw +++|* BUFFER EMPTY FOR ALL BUFFER SIZES. 00027 M00S00021.comcrdw +++|* ENTRY (X2) = ADDRESS OF FET FOR FILE. 00028 M00S00022.comcrdw +++|* (B6) = FWA WORKING BUFFER. 00029 M00S00023.comcrdw +++|* (B7) = WORD COUNT OF WORKING BUFFER. 00030 M00S00024.comcrdw +++|* IF (B7) = 0, NO TRANSFER WILL BE PERFORMED. 00031 M00S00025.comcrdw +++|* 00032 M00S00026.comcrdw +++|* EXIT (X1) = 0 FOR TRANSFER COMPLETE. 00033 M00S00027.comcrdw +++|* (X1) = -1 IF EOF DETECTED ON FILE. 00034 M00S00028.comcrdw +++|* (X1) = -2 IF EOI DETECTED ON FILE. 00035 M00S00029.comcrdw +++|* (X1) = -3 IF *CIO=* WAS CALLED TO READ MORE DATA AND 00036 M00S00030.comcrdw +++|* RETURNED AN ERROR STATUS. 00037 M00S00031.comcrdw +++|* (X1) = (B6) IF EOR WAS DETECTED ON FILE BEFORE 00038 M00S00032.comcrdw +++|* TRANSFER WAS COMPLETED. 00039 M00S00033.comcrdw +++|* (B6) = ADDRESS PLUS ONE OF LAST WORD TRANSFERRED TO 00040 M00S00034.comcrdw +++|* WORKING BUFFER. 00041 M00S00035.comcrdw +++|* (B7) = WORD COUNT REMAINING TO BE TRANSFERRED. 00042 M00S00036.comcrdw +++|* (X2) = ADDRESS OF FET FOR FILE. 00043 M00S00037.comcrdw +++|* (X7) = ERROR STATUS IF (X1) = -3. 00044 M00S00038.comcrdw +++|* 00045 M00S00039.comcrdw +++|* USES X - 1, 2, 3, 4, 6, 7. 00046 M00S00040.comcrdw +++|* B - 1, 2, 3, 4, 5, 6, 7. 00047 M00S00041.comcrdw +++|* A - 1, 2, 3, 4, 6, 7. 00048 M00S00042.comcrdw +++|* 00049 M00S00043.comcrdw +++|* CALLS CIO=. 00050 M00S00044.comcrdw +++| 00051 M00S00045.comcrdw +++| 00052 M00S00046.comcrdw +++|* PROCESS 1 WORD OR BUFFER EMPTY. 00053 M00S00047.comcrdw +++| 00054 M00S00048.comcrdw +++| RDW18 ZR B3,RDW11 IF NO DATA 00055 M00S00049.comcrdw +++| BX7 X1 STORE 1 WORD 00056 M00S00050.comcrdw +++| SA7 B6 00057 M00S00051.comcrdw +++| RDW19 SX6 B4+B3 ADVANCE OUT 00058 M00S00052.comcrdw +++| SB4 B4+B3 00059 M00S00053.comcrdw +++| SB6 B6+B3 00060 M00S00054.comcrdw +++| SB7 B7-B3 00061 M00S00055.comcrdw +++| NE B4,B5,RDW20 IF OUT " LIMIT 00062 M00S00056.comcrdw +++| SA1 X2+B1 READ FIRST 00063 M00S00057.comcrdw +++| SX6 X1 OUT = FIRST 00064 M00S00058.comcrdw +++| RDW20 SA6 A3 UPDATE OUT 00065 M00S00059.comcrdw +++| BX1 X1-X1 RESPONSE = 0 00066 M00S00060.comcrdw +++| NZ B7,RDW1 IF NOT END OF TRANSFER 00067 M00S00061.comcrdw +++| 00068 M00S00062.comcrdw +++| RDW= PS ENTRY/EXIT 00069 M00S00063.comcrdw +++| RDW0 SX1 B0+ 00070 M00S00064.comcrdw +++| LE B7,RDW= IF NO WORDS TO TRANSFER 00071 M00S00065.comcrdw +++| RDW1 SA3 X2+3 (B4) = OUT 00072 M00S00066.comcrdw +++| SA1 X2+2 (B3) = IN 00073 M00S00067.comcrdw +++| IF -DEF,B1=1,1 00074 M00S00068.comcrdw +++| SB1 1 00075 M00S00069.comcrdw +++| SA4 A3+B1 (B5) = LIMIT 00076 M00S00070.comcrdw +++| SB4 X3 00077 M00S00071.comcrdw +++| SB3 X1 00078 M00S00072.comcrdw +++| SA1 X3 READ FIRST WORD 00079 M00S00073.comcrdw +++| SB5 X4 00080 M00S00074.comcrdw +++| GE B3,B4,RDW2 IF NO END AROUND 00081 M00S00075.comcrdw +++| SB3 B5 00082 M00S00076.comcrdw +++| RDW2 SB3 B3-B4 FREE DATA LENGTH 00083 M00S00077.comcrdw +++| LE B3,B7,RDW3 IF NOT ENOUGH ROOM 00084 M00S00078.comcrdw +++| SB3 B7 00085 M00S00079.comcrdw +++| RDWA BSS 0 00086 M00S00080.comcrdw +++| RDW3 SA3 RDWB PRESET CMU CODE 00087 M00S00081.comcrdw +++| RJ RDW16 PRESET CMU CODE 00088 M00S00082.comcrdw +++|* LE B3,B1,RDW18 IF 1 WORD OR LESS OF DATA (NO CMU) 00089 M00S00083.comcrdw +++|* BX7 X1 (NO CMU) 00090 M00S00084.comcrdw +++|* SA1 A1+B1 (NO CMU) 00091 M00S00085.comcrdw +++|* 00092 M00S00086.comcrdw +++|* LE B3,B1,RDW18 IF 1 WORD OR LESS OF DATA (CMU) 00093 M00S00087.comcrdw +++|* JP RDW14 (CMU) 00094 M00S00088.comcrdw +++| 00095 M00S00089.comcrdw +++|* INITIALIZE REGISTERS FOR TRANSFER. 00096 M00S00090.comcrdw +++| 00097 M00S00091.comcrdw +++| RDW4 SX4 B3-B1 00098 M00S00092.comcrdw +++| MX6 -3 00099 M00S00093.comcrdw +++| SA7 B6 00100 M00S00094.comcrdw +++| BX3 -X6*X4 NUMBER OF ODD WORDS 00101 M00S00095.comcrdw +++| AX4 3 NUMBER OF BLOCKS 00102 M00S00096.comcrdw +++| 00103 M00S00097.comcrdw +++|* TRANSFER UP TO 7 WORDS. 00104 M00S00098.comcrdw +++| 00105 M00S00099.comcrdw +++| ZR X3,RDW6 IF NO ODD WORDS 00106 M00S00100.comcrdw +++| SB2 X3 00107 M00S00101.comcrdw +++| RDW5 SB2 B2-B1 00108 M00S00102.comcrdw +++| BX7 X1 00109 M00S00103.comcrdw +++| SA1 A1+B1 00110 M00S00104.comcrdw +++| SA7 A7+B1 00111 M00S00105.comcrdw +++| NZ B2,RDW5 IF MORE WORDS 00112 M00S00106.comcrdw +++| 00113 M00S00107.comcrdw +++|* PRE-READ REGISTERS. 00114 M00S00108.comcrdw +++| 00115 M00S00109.comcrdw +++| RDW6 ZR X4,RDW19 IF NO BLOCKS 00116 M00S00110.comcrdw +++| SB5 X2 00117 M00S00111.comcrdw +++| SA2 A1+B1 00118 M00S00112.comcrdw +++| SB2 B1+B1 (B2) = 2 00119 M00S00113.comcrdw +++| SA3 A2+B1 00120 M00S00114.comcrdw +++| SB4 X4 (B4) = LOOP COUNT 00121 M00S00115.comcrdw +++| SA4 A3+B1 00122 M00S00116.comcrdw +++| 00123 M00S00117.comcrdw +++|* TRANSFER 8 WORD BLOCKS. 00124 M00S00118.comcrdw +++| 00125 M00S00119.comcrdw +++| RDW7 BX6 X1 00126 M00S00120.comcrdw +++| LX7 X2 00127 M00S00121.comcrdw +++| SA1 A3+B2 00128 M00S00122.comcrdw +++| SA2 A4+B2 00129 M00S00123.comcrdw +++| SA6 A7+B1 00130 M00S00124.comcrdw +++| SB4 B4-B1 00131 M00S00125.comcrdw +++| SA7 A6+B1 00132 M00S00126.comcrdw +++| BX6 X3 00133 M00S00127.comcrdw +++| LX7 X4 00134 M00S00128.comcrdw +++| SA3 A1+B2 00135 M00S00129.comcrdw +++| SA4 A2+B2 00136 M00S00130.comcrdw +++| SA6 A6+B2 00137 M00S00131.comcrdw +++| SA7 A7+B2 00138 M00S00132.comcrdw +++| BX6 X1 00139 M00S00133.comcrdw +++| LX7 X2 00140 M00S00134.comcrdw +++| SA1 A3+B2 00141 M00S00135.comcrdw +++| SA2 A4+B2 00142 M00S00136.comcrdw +++| SA6 A6+B2 00143 M00S00137.comcrdw +++| SA7 A7+B2 00144 M00S00138.comcrdw +++| BX6 X3 00145 M00S00139.comcrdw +++| LX7 X4 00146 M00S00140.comcrdw +++| SA3 A1+B2 00147 M00S00141.comcrdw +++| SA4 A2+B2 00148 M00S00142.comcrdw +++| SA6 A6+B2 00149 M00S00143.comcrdw +++| SA7 A7+B2 00150 M00S00144.comcrdw +++| NZ B4,RDW7 LOOP 00151 M00S00145.comcrdw +++| 00152 M00S00146.comcrdw +++|* READ EXIT. 00153 M00S00147.comcrdw +++| 00154 M00S00148.comcrdw +++| SX2 B5 RESET FET ADDRESS 00155 M00S00149.comcrdw +++| SA3 B5+3 OUT 00156 M00S00150.comcrdw +++| SA1 A3+B1 (B5) = LIMIT 00157 M00S00151.comcrdw +++| SB5 X1 00158 M00S00152.comcrdw +++| RDW8 SA4 X2 CHECK BUFFER STATUS 00159 M00S00153.comcrdw +++| SB6 B6+B3 00160 M00S00154.comcrdw +++| SB7 B7-B3 00161 M00S00155.comcrdw +++| SB4 X3+B3 ADVANCE OUT 00162 M00S00156.comcrdw +++| SX6 X3+B3 00163 M00S00157.comcrdw +++| LX4 59-0 00164 M00S00158.comcrdw +++| SA1 X2+1 READ FIRST 00165 M00S00159.comcrdw +++| NE B4,B5,RDW9 IF OUT " LIMIT 00166 M00S00160.comcrdw +++| SX6 X1+ OUT = FIRST 00167 M00S00161.comcrdw +++| RDX$ IF DEF,RDX$ 00168 M00S00162.comcrdw +++| RDW9 EQ RDW20 CLEAN UP AND RETURN 00169 M00S00163.comcrdw +++| RDX$ ELSE 00170 M00S00164.comcrdw +++| 00171 M00S00165.comcrdw +++|* TRY TO BUFFER AHEAD. 00172 M00S00166.comcrdw +++| 00173 M00S00167.comcrdw +++| RDW9 PL X4,RDW20 IF BUFFER BUSY 00174 M00S00168.comcrdw +++| LX4 0-4 00175 M00S00169.comcrdw +++| NG X4,RDW20 IF EOR/EOF SET 00176 M00S00170.comcrdw +++| SA4 X2+2 READ IN 00177 M00S00171.comcrdw +++| SB2 X1 (LIMIT - FIRST) 00178 M00S00172.comcrdw +++| SX1 B5-B2 00179 M00S00173.comcrdw +++| IX7 X4-X6 (IN-OUT) 00180 M00S00174.comcrdw +++| LX3 X7,B1 2*(IN-OUT) 00181 M00S00175.comcrdw +++| AX7 60 SIGN OF (IN-OUT) 00182 M00S00176.comcrdw +++| BX4 X7-X1 INVERT BUFFER IF OUT \ IN 00183 M00S00177.comcrdw +++| IX7 X4-X3 BUFFER SIZE - 2*(IN-OUT) 00184 M00S00178.comcrdw +++| AX1 9 00185 M00S00179.comcrdw +++| NG X7,RDW20 IF BUFFER THRESHOLD NOT REACHED 00186 M00S00180.comcrdw +++| ZR X1,RDW20 IF BUFFER NOT BIG ENOUGH TO READ AHEAD 00187 M00S00181.comcrdw +++| SA6 A3+ UPDATE OUT 00188 M00S00182.comcrdw +++| RDX$ ENDIF 00189 M00S00183.comcrdw +++| RDW10 SA1 X2 ISSUE PREVIOUS READ FUNCTION 00190 M00S00184.comcrdw +++| SX7 740770B/2 00191 M00S00185.comcrdw +++| LX4 X7,B1 00192 M00S00186.comcrdw +++| BX7 X4*X1 00193 M00S00187.comcrdw +++| RJ =XCIO= 00194 M00S00188.comcrdw +++| ZR X7,RDW0 IF NO ERROR 00195 M00S00189.comcrdw +++| SA3 X2+3 OUT 00196 M00S00190.comcrdw +++| SA4 X2+2 IN 00197 M00S00191.comcrdw +++| MX1 -2 00198 M00S00192.comcrdw +++| IX3 X3-X4 00199 M00S00193.comcrdw +++| NZ X3,RDW0 IF BUFFER NOT EMPTY 00200 M00S00194.comcrdw +++| JP RDW= RETURN 00201 M00S00195.comcrdw +++| 00202 M00S00196.comcrdw +++|* LOAD CIRCULAR BUFFER. 00203 M00S00197.comcrdw +++| 00204 M00S00198.comcrdw +++| RDW11 SA1 X2 CHECK BUFFER STATUS 00205 M00S00199.comcrdw +++| SA3 X2+2 READ IN 00206 M00S00200.comcrdw +++| LX1 59-0 00207 M00S00201.comcrdw +++| PL X1,RDW13 IF BUFFER BUSY 00208 M00S00202.comcrdw +++| SB3 X3 00209 M00S00203.comcrdw +++| LX1 0-4 00210 M00S00204.comcrdw +++| NE B3,B4,RDW1 IF BUFFER NOT EMPTY 00211 M00S00205.comcrdw +++| PL X1,RDW10 IF NOT EOR SET 00212 M00S00206.comcrdw +++| SA3 X2+B1 SET IN = OUT = FIRST 00213 M00S00207.comcrdw +++| LX6 X1,B1 00214 M00S00208.comcrdw +++| SX1 B6+0 00215 M00S00209.comcrdw +++| PL X6,RDW12 IF NOT EOF 00216 M00S00210.comcrdw +++| LX6 3-9 00217 M00S00211.comcrdw +++| MX1 -1 00218 M00S00212.comcrdw +++| PL X6,RDW12 IF NOT EOI 00219 M00S00213.comcrdw +++| SX1 -2 00220 M00S00214.comcrdw +++| RDW12 SX7 X3+ 00221 M00S00215.comcrdw +++| SA7 A3+B1 00222 M00S00216.comcrdw +++| SA7 A7+B1 00223 M00S00217.comcrdw +++| JP RDW= RETURN 00224 M00S00218.comcrdw +++| 00225 M00S00219.comcrdw +++|* RECALL WAITING FOR I/O. 00226 M00S00220.comcrdw +++| 00227 M00S00221.comcrdw +++| RDW13 RECALL 00228 M00S00222.comcrdw +++| JP RDW1 00229 M00S00223.comcrdw +++| 00230 M00S00224.comcrdw +++|* MOVE DATA WITH CMU. 00231 M00S00225.comcrdw +++| 00232 M00S00226.comcrdw +++| RDW14 SX4 B3-819 00233 M00S00227.comcrdw +++| PL X4,RDW15 IF MOVE TOO BIG FOR CMU 00234 M00S00228.comcrdw +++| SX4 B3 10 * WORDS = CHARACTERS 00235 M00S00229.comcrdw +++| LX6 X4,B1 00236 M00S00230.comcrdw +++| BX1 X0 SAVE X0 00237 M00S00231.comcrdw +++| LX4 3 00238 M00S00232.comcrdw +++| IX6 X4+X6 00239 M00S00233.comcrdw +++| SX7 B6 SET DESTINATION ADDRESS 00240 M00S00234.comcrdw +++| LX3 30 00241 M00S00235.comcrdw +++| MX4 -4 00242 M00S00236.comcrdw +++| BX7 X7+X3 00243 M00S00237.comcrdw +++| BX3 X4*X6 EXTRACT UPPER PORTION OF CHARACTER COUNT 00244 M00S00238.comcrdw +++| LX3 48-4 00245 M00S00239.comcrdw +++| BX4 -X4*X6 00246 M00S00240.comcrdw +++| BX7 X3+X7 00247 M00S00241.comcrdw +++| LX4 26 00248 M00S00242.comcrdw +++| BX7 X4+X7 00249 M00S00243.comcrdw +++| AX3 51 00250 M00S00244.comcrdw +++| SA7 RDWB STORE DESCRIPTOR WORD 00251 M00S00245.comcrdw +++| IM RDWB MOVE DATA 00252 M00S00246.comcrdw +++| BX0 X1 RESTORE X0 00253 M00S00247.comcrdw +++| ZR X3,RDW19 IF NO READ EXIT CHECK 00254 M00S00248.comcrdw +++| SX3 B4 SET OUT 00255 M00S00249.comcrdw +++| JP RDW8 00256 M00S00250.comcrdw +++| 00257 M00S00251.comcrdw +++| RDW15 BX7 X1 00258 M00S00252.comcrdw +++| SA1 A1+B1 00259 M00S00253.comcrdw +++| JP RDW4 00260 M00S00254.comcrdw +++| 00261 M00S00255.comcrdw +++|* PRESET FOR CMU. 00262 M00S00256.comcrdw +++|* RDWB IS READ UP AND THEN RETURN JUMPED TO IN ORDER TO VOID 00263 M00S00257.comcrdw +++|* THE INSTRUCTION STACK. 00264 M00S00258.comcrdw +++| 00265 M00S00259.comcrdw +++| RDWB LE B3,B1,RDW18 IF 1 WORD OR LESS (CMU) 00266 M00S00260.comcrdw +++| JP RDW14 00267 M00S00261.comcrdw +++| 00268 M00S00262.comcrdw +++| RDW16 EQU RDWB USED TO VOID STACK AT PRESET 00269 M00S00263.comcrdw +++| 00270 M00S00264.comcrdw +++|* PRESET FOR CMU. 00271 M00S00265.comcrdw +++| 00272 M00S00266.comcrdw +++| SA4 CMUR CHECK IF CMU AVAIALABLE 00273 M00S00267.comcrdw +++| SB3 RDWA 00274 M00S00268.comcrdw +++| NG X4,RDW17 IF CMU 00275 M00S00269.comcrdw +++| SA3 RDWC 00276 M00S00270.comcrdw +++| RDW17 BX6 X3 00277 M00S00271.comcrdw +++| SA6 B3 00278 M00S00272.comcrdw +++| JP RDW1 00279 M00S00273.comcrdw +++| 00280 M00S00274.comcrdw +++| RDWC LE B3,B1,RDW18 IF 1 WORD OR LESS (NO CMU) 00281 M00S00275.comcrdw +++| BX7 X1 00282 M00S00276.comcrdw +++| SA1 A1+B1 00283 M00S00277.comcrdw +++| RDX SPACE 4 00284 M00S00278.comcrdw +++|** RDX - READ EXIT. 00285 M00S00279.comcrdw +++|* EXIT FROM READ SUBROUTINE TO CALLER. 00286 M00S00280.comcrdw +++|* IF CIRCULAR BUFFER IS BUSY, OR EOR/EOF IS SENSED, NO ACTION 00287 M00S00281.comcrdw +++|* IS TAKEN. 00288 M00S00282.comcrdw +++|* OTHERWISE, THE WORD COUNT REMAINING IN THE BUFFER IS CHECKED 00289 M00S00283.comcrdw +++|* AND PREVIOUS READ FUNCTION ISSUED IF NECESSARY. 00290 M00S00284.comcrdw +++|* 00291 M00S00285.comcrdw +++|* ENTRY (A2) = ADDRESS OF OUT. 00292 M00S00286.comcrdw +++|* (A3) = ADDRESS OF FIRST. 00293 M00S00287.comcrdw +++|* (A4) = RETURN ADDRESS. 00294 M00S00288.comcrdw +++|* (X3) = FIRST. 00295 M00S00289.comcrdw +++|* (B3) = IN. 00296 M00S00290.comcrdw +++|* (B4) = OUT. 00297 M00S00291.comcrdw +++|* (B5) = LIMIT. 00298 M00S00292.comcrdw +++|* 00299 M00S00293.comcrdw +++|* EXIT TO RETURN ADDRESS. 00300 M00S00294.comcrdw +++|* 00301 M00S00295.comcrdw +++|* USES A - 1, 6. 00302 M00S00296.comcrdw +++|* B - 2. 00303 M00S00297.comcrdw +++|* X - 1, 2, 3, 6, 7. 00304 M00S00298.comcrdw +++|* 00305 M00S00299.comcrdw +++|* CALLS CIO=. 00306 M00S00300.comcrdw +++| 00307 M00S00301.comcrdw +++| 00308 M00S00302.comcrdw +++| RDX= SA1 A3-B1 CHECK BUFFER STATUS 00309 M00S00303.comcrdw +++| SX6 B4 STORE OUT 00310 M00S00304.comcrdw +++| LX1 59 00311 M00S00305.comcrdw +++| SA6 A2 00312 M00S00306.comcrdw +++| SX2 A3-B1 RESET (X2) 00313 M00S00307.comcrdw +++| RDX$ IF -DEF,RDX$ 00314 M00S00308.comcrdw +++| PL X1,RDX1 IF BUFFER BUSY 00315 M00S00309.comcrdw +++| LX1 -4 00316 M00S00310.comcrdw +++| NG X1,RDX1 IF EOR/EOF SET 00317 M00S00311.comcrdw +++| 00318 M00S00312.comcrdw +++|* IF BUFFER IS NOT BUSY, CHECK BUFFER SIZE. 00319 M00S00313.comcrdw +++|* ISSUE READ IF BUFFER THRESHOLD IS REACHED. 00320 M00S00314.comcrdw +++| 00321 M00S00315.comcrdw +++| SA1 A2-B1 REREAD IN 00322 M00S00316.comcrdw +++| SB3 X1 00323 M00S00317.comcrdw +++| SX6 B3-B4 (IN-OUT) 00324 M00S00318.comcrdw +++| SB2 X3 (LIMIT-FIRST) 00325 M00S00319.comcrdw +++| LX3 X6,B1 2*(IN-OUT) 00326 M00S00320.comcrdw +++| SX7 B5-B2 00327 M00S00321.comcrdw +++| AX6 60 SIGN OF (IN-OUT) 00328 M00S00322.comcrdw +++| BX6 X6-X7 INVERT BUFFER IF OUT .GE. IN 00329 M00S00323.comcrdw +++| IX6 X6-X3 BUFFER SIZE - 2 * ( IN - OUT ) 00330 M00S00324.comcrdw +++| AX7 9 00331 M00S00325.comcrdw +++| NG X6,RDX1 IF BUFFER THRESHOLD NOT REACHED 00332 M00S00326.comcrdw +++| ZR X7,RDX1 IF BUFFER NOT BIG ENOUGH TO READ AHEAD 00333 M00S00327.comcrdw +++| SA1 X2 ISSUE PREVIOUS READ FUNCTION 00334 M00S00328.comcrdw +++| SX6 740770B/2 00335 M00S00329.comcrdw +++| LX6 1 00336 M00S00330.comcrdw +++| BX7 X6*X1 00337 M00S00331.comcrdw +++| RJ =XCIO= 00338 M00S00332.comcrdw +++| RDX1 SX1 B0 RESPONSE = 0 00339 M00S00333.comcrdw +++| RDX$ ELSE 00340 M00S00334.comcrdw +++| SX1 B0+ RESPONSE = 0 00341 M00S00335.comcrdw +++| RDX$ ENDIF 00342 M00S00336.comcrdw +++| SB2 A4 SET RETURN ADDRESS 00343 M00S00337.comcrdw +++| JP B2 RETURN 00344 M00S00338.comcrdw +++| LCB SPACE 4 00345 M00S00339.comcrdw +++|** LCB - LOAD CIRCULAR BUFFER. 00346 M00S00340.comcrdw +++|* REQUEST READ IF BUFFER IS EMPTY, NOT BUSY AND NOE EOR/EOF. 00347 M00S00341.comcrdw +++|* IF BUFFER IS BUSY, RECALL AND RETURN. 00348 M00S00342.comcrdw +++|* 00349 M00S00343.comcrdw +++|* ENTRY (A2) = ADDRESS OF OUT. 00350 M00S00344.comcrdw +++|* (A3) = ADDRESS OF FIRST. 00351 M00S00345.comcrdw +++|* (A4) = RETURN ADDRESS. 00352 M00S00346.comcrdw +++|* (B4) = OUT. 00353 M00S00347.comcrdw +++|* 00354 M00S00348.comcrdw +++|* EXIT TO RETURN ADDRESS - 1 IF CONTINUATION READ. 00355 M00S00349.comcrdw +++|* TO RETURN ADDRESS IF EOR/EOF. 00356 M00S00350.comcrdw +++|* (X1) = LAST WORD ADDRESS OF WORKING BUFFER. 00357 M00S00351.comcrdw +++|* (X1) = -1 IF EOF. 00358 M00S00352.comcrdw +++|* (X1) = -2 IF EOI. 00359 M00S00353.comcrdw +++|* 00360 M00S00354.comcrdw +++|* CALLS CIO=. 00361 M00S00355.comcrdw +++| 00362 M00S00356.comcrdw +++| 00363 M00S00357.comcrdw +++| LCB= SA1 A3-B1 CHECK BUFFER STATUS 00364 M00S00358.comcrdw +++| SX6 B4 STORE OUT 00365 M00S00359.comcrdw +++| LX1 59 00366 M00S00360.comcrdw +++| SA6 A2 00367 M00S00361.comcrdw +++| NG X1,LCB2 IF BUFFER NOT BUSY 00368 M00S00362.comcrdw +++| RECALL 00369 M00S00363.comcrdw +++| LCB1 SB2 A4-B1 CONTINUE READ 00370 M00S00364.comcrdw +++| JP B2 00371 M00S00365.comcrdw +++| 00372 M00S00366.comcrdw +++| LCB2 SA1 A2-B1 RE-READ IN 00373 M00S00367.comcrdw +++| SB3 X1 00374 M00S00368.comcrdw +++| NE B3,B4,LCB1 IF BUFFER NOT EMPTY 00375 M00S00369.comcrdw +++| SA1 A3-B1 CHECK BUFFER STATUS 00376 M00S00370.comcrdw +++| LX1 59-4 00377 M00S00371.comcrdw +++| NG X1,LCB3 IF EOR SET 00378 M00S00372.comcrdw +++| SX6 740770B/2 ISSUE PREVIOUS READ FUNCTION 00379 M00S00373.comcrdw +++| LX1 4 00380 M00S00374.comcrdw +++| SX2 A3-B1 00381 M00S00375.comcrdw +++| BX7 X6*X1 00382 M00S00376.comcrdw +++| LX7 1 00383 M00S00377.comcrdw +++| RJ =XCIO= 00384 M00S00378.comcrdw +++| SB2 A4-B1 CONTINUE READ 00385 M00S00379.comcrdw +++| JP B2 00386 M00S00380.comcrdw +++| 00387 M00S00381.comcrdw +++| LCB3 LX6 B1,X1 00388 M00S00382.comcrdw +++| SA1 A3 SET IN = OUT = FIRST 00389 M00S00383.comcrdw +++| SX7 X1 00390 M00S00384.comcrdw +++| SA7 A1+B1 00391 M00S00385.comcrdw +++| SX1 -B1 RESPONSE = -1 00392 M00S00386.comcrdw +++| SB2 A4 SET RETURN ADDRESS 00393 M00S00387.comcrdw +++| NG X6,LCB4 IF EOF 00394 M00S00388.comcrdw +++| MX2 -4 00395 M00S00389.comcrdw +++| SX1 B6 RESPONSE = LAST WORD ADDRESS 00396 M00S00390.comcrdw +++| LX6 -14+4 00397 M00S00391.comcrdw +++| BX2 -X2*X6 00398 M00S00392.comcrdw +++| SB3 X2+ 00399 M00S00393.comcrdw +++| EQ B3,B1,LCB6 IF LEVEL 1 00400 M00S00394.comcrdw +++| LCB4 SX2 A3-B1 RESET (X2) 00401 M00S00395.comcrdw +++| SA7 A7+B1 00402 M00S00396.comcrdw +++| NG X1,LCB7 IF EOF/EOI 00403 M00S00397.comcrdw +++| LCB5 JP B2 RETURN 00404 M00S00398.comcrdw +++| 00405 M00S00399.comcrdw +++| LCB6 SA7 A7+B1 STORE OUT 00406 M00S00400.comcrdw +++| READ A3-B1 RESTART READ 00407 M00S00401.comcrdw +++| SB2 A4-B1 CONTINUE 00408 M00S00402.comcrdw +++| JP B2 00409 M00S00403.comcrdw +++| 00410 M00S00404.comcrdw +++| LCB7 LX6 3-9 00411 M00S00405.comcrdw +++| PL X6,LCB5 IF NOT EOI 00412 M00S00406.comcrdw +++| LX1 1 RESPONSE= -2 00413 M00S00407.comcrdw +++| JP B2 RETURN 00414 M00S00408.comcrdw +++| SPACE 4 00415 M00S00409.comcrdw +++| BASE * 00416 M00S00410.comcrdw +++| QUAL$ IF -DEF,QUAL$ 00417 M00S00411.comcrdw +++| QUAL * 00418 M00S00412.comcrdw +++| RDW= EQU /COMCRDW/RDW= 00419 M00S00413.comcrdw +++| RDX= EQU /COMCRDW/RDX= 00420 M00S00414.comcrdw +++| LCB= EQU /COMCRDW/LCB= 00421 M00S00415.comcrdw +++| QUAL$ ENDIF 00422 M00S00416.comcrdw +++| ENDX
cdc/nos2.source/opl.opl871/common/comcrdw.txt ยท Last modified: by 127.0.0.1