cdc:nos2.source:opl.opl871:common:comctio
Common COMCTIO
2 Modifications
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M01S00001.comctio +++| CTEXT COMCTIO - TEXT I/O ROUTINES. 00002 M01S00002.comctio +++| BASE D
Line S00003 Modification History | |
---|---|
M01 (Added by) | comctio |
M02 (Updated by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00003 M02S00003.281l803 ---|*COMMENT COPYRIGHT CONTROL DATA CORP. 1985. 00004 M01S00001.281l803 +++|* COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. 00005 M01S00004.comctio +++| COMCTIO SPACE 4,10 00006 M01S00005.comctio +++|*** COMCTIO - TEXT I/O. 00007 M01S00006.comctio +++|* 00008 M01S00007.comctio +++|* COMCTIO PROVIDES ROUTINES TO PERFORM TEXT I/O FROM 00009 M01S00008.comctio +++|* COMPASS PROGRAMS. TEXT IS ADDED TO A FILE IN CHARACTER 00010 M01S00009.comctio +++|* INCREMENTS, INSTEAD OF IN WORD INCREMENTS. NUMERIC DATA 00011 M01S00010.comctio +++|* ITEMS ARE CONVERTED TO EITHER LEFT OR RIGHT JUSTIFIED 00012 M01S00011.comctio +++|* CHARACTERS. NOS END OF LINE CONVENTIONS ARE INSURED. 00013 M01S00012.comctio +++|* 00014 M01S00013.comctio +++|* NOTE FET+5 IS USED BY THESE ROUTINES. 00015 M01S00014.comctio +++| CTI SPACE 4,15 00016 M01S00015.comctio +++|** CTI - CONVERT TO DECIMAL DISPLAY CODE WITH LEADING ZERO. 00017 M01S00016.comctio +++|* SUPPRESSION. 00018 M01S00017.comctio +++|* 00019 M01S00018.comctio +++|* ENTRY (X1) = NUMBER TO BE CONVERTED. 00020 M01S00019.comctio +++|* 00021 M01S00020.comctio +++|* EXIT (X3) = DECIMAL CONVERSION LEFT JUSTIFIED, BLANK FILLED 00022 M01S00021.comctio +++|* (B6) = NUMBER OF CHARACTERS CONVERTED. 00023 M01S00022.comctio +++|* 00024 M01S00023.comctio +++|* USES A - 3, 4, 5. 00025 M01S00024.comctio +++|* X - 1, 3, 4, 5, 6, 7. 00026 M01S00025.comctio +++|* B - 6. 00027 M01S00026.comctio +++| 00028 M01S00027.comctio +++| 00029 M01S00028.comctio +++| CTI SUBR ENTRY/EXIT 00030 M01S00029.comctio +++| SA4 CTIA 0.1P48+1 00031 M01S00030.comctio +++| SA5 CTIB 00032 M01S00031.comctio +++| PX1 X1 00033 M01S00032.comctio +++| SB6 B0 CLEAR CHARACTER COUNT 00034 M01S00033.comctio +++| SA3 CTIC 00035 M01S00034.comctio +++| CTI1 DX6 X1*X4 COMPUTE QUOTIENT 00036 M01S00035.comctio +++| FX1 X1*X4 00037 M01S00036.comctio +++| UX7 X1 CHECK QUOTIENT 00038 M01S00037.comctio +++| FX6 X6*X5 EXTRACT REMAINDER DIGIT 00039 M01S00038.comctio +++| SB6 B6+B1 00040 M01S00039.comctio +++| SX6 X6+1R0-1R CONVERT DIGIT 00041 M01S00040.comctio +++| IX3 X6+X3 00042 M01S00041.comctio +++| LX3 -6 SHIFT ASSEMBLY 00043 M01S00042.comctio +++| NZ X7,CTI1 IF LOOP TO ZERO QUOTIENT 00044 M01S00043.comctio +++| EQ CTIX RETURN 00045 M01S00044.comctio +++| 00046 M01S00045.comctio +++| CTIA CON 0.1P48+1 00047 M01S00046.comctio +++| CTIB CON 10.P 00048 M01S00047.comctio +++| CTIC CON 10H 00049 M01S00048.comctio +++| CTO SPACE 4,15 00050 M01S00049.comctio +++|** CTO - CONVERT TO OCTAL DISPLAY CODE WITH LEADING ZERO. 00051 M01S00050.comctio +++|* SUPPRESSION. 00052 M01S00051.comctio +++|* 00053 M01S00052.comctio +++|* ENTRY (X1) = NUMBER TO BE CONVERTED. 00054 M01S00053.comctio +++|* 00055 M01S00054.comctio +++|* EXIT (X3) = OCTAL CONVERSION LEFT JUSTIFIED, BLANK FILLED. 00056 M01S00055.comctio +++|* (B6) = NUMBER OF CHARACTERS CONVERTED. 00057 M01S00056.comctio +++|* 00058 M01S00057.comctio +++|* USES A - 3. 00059 M01S00058.comctio +++|* X - 1, 3, 4, 6. 00060 M01S00059.comctio +++|* B - 6. 00061 M01S00060.comctio +++| 00062 M01S00061.comctio +++| 00063 M01S00062.comctio +++| CTO SUBR ENTRY/EXIT 00064 M01S00063.comctio +++| SA3 CTIC 00065 M01S00064.comctio +++| MX6 -3 (X2) = DIGIT MASK 00066 M01S00065.comctio +++| SB6 B0 CLEAR CHARACTER COUNT 00067 M01S00066.comctio +++| CTO1 BX4 -X6*X1 EXTRACT DIGIT 00068 M01S00067.comctio +++| SB6 B6+B1 00069 M01S00068.comctio +++| SX4 X4+1R0-1R CONVERT DIGIT 00070 M01S00069.comctio +++| AX1 3 SHIFT OFF DIGIT 00071 M01S00070.comctio +++| IX3 X4+X3 ADD DIGIT TO ASSEMBLY 00072 M01S00071.comctio +++| LX3 -6 00073 M01S00072.comctio +++| NZ X1,CTO1 IF LOOP TO ZERO DIGIT 00074 M01S00073.comctio +++| EQ CTOX RETURN 00075 M01S00074.comctio +++| WRC SPACE 4,10 00076 M01S00075.comctio +++|** WRC - WRITE CHARACTERS TO TEXT FILE. 00077 M01S00076.comctio +++|* 00078 M01S00077.comctio +++|* ENTRY (X2) = TEXT FILE FET ADDRESS. 00079 M01S00078.comctio +++|* (X3) = FIRST WORD OF CHARACTERS TO WRITE. 00080 M01S00079.comctio +++|* (B6) = NUMBER OF CHARACTERS TO WRITE. 00081 M01S00080.comctio +++|* = 0, IF TO WRITE TILL ZERO BYTE TERMINATOR. 00082 M01S00081.comctio +++|* (A3) = ADDRESS OF FIRST WORD OF CHARACTERS, IF MORE 00083 M01S00082.comctio +++|* THAN 10 CHARACTERS TO WRITE. 00084 M01S00083.comctio +++|* 00085 M01S00084.comctio +++|* USES A - 1, 3, 4, 6, 7. 00086 M01S00085.comctio +++|* X - 1, 3, 4, 5, 6, 7. 00087 M01S00086.comctio +++|* B - 2, 3, 4, 6, 7. 00088 M01S00087.comctio +++| 00089 M01S00088.comctio +++| 00090 M01S00089.comctio +++| WRC8 SB5 X7+B6 ADVANCE CHARACTER COUNT IN BUFFER WORD 00091 M01S00090.comctio +++| LT B5,B4,WRC9 IF NOT INTO NEXT WORD 00092 M01S00091.comctio +++| SA6 B2 00093 M01S00092.comctio +++| SB2 B2+B1 ADVANCE BUFFER ADDRESS 00094 M01S00093.comctio +++| BX6 -X1*X3 00095 M01S00094.comctio +++| SB5 B5-B4 00096 M01S00095.comctio +++| SB6 B6-B4
Line S00096 Modification History | |
---|---|
M01 (Added by) | comctio |
M02 (Updated by) | ctio1 |
Seq # *Modification Id* Act ----------------------------+ 00097 M02S00096.ctio1 ---| WRC9 SA4 WRCB+10+B5 EXTRACT CHARACTERS TO STORE 00098 M01S00001.ctio1 +++| WRC9 SA4 WRCC+B5 EXTRACT CHARACTERS TO STORE 00099 M01S00097.comctio +++| SX1 B6 UPDATE CHARACTER COUNT IN LAST BUFFER WORD 00100 M01S00098.comctio +++| BX6 -X4*X6 00101 M01S00099.comctio +++| SA6 B2 STORE LAST WORD 00102 M01S00100.comctio +++| SX6 B2 UPDATE IN 00103 M01S00101.comctio +++| IX7 X7+X1 00104 M01S00102.comctio +++| SA6 X2+2 00105 M01S00103.comctio +++| SA7 X2+5 00106 M01S00104.comctio +++| 00107 M01S00105.comctio +++| WRC= SUBR ENTRY/EXIT 00108 M01S00106.comctio +++| SB4 10 (B4) = 10 00109 M01S00107.comctio +++| NZ B6,WRC3 IF LINE LENGTH PRESENT 00110 M01S00108.comctio +++| SA1 WRCA 40404040404040404040B 00111 M01S00109.comctio +++| 00112 M01S00110.comctio +++|* COMPUTE CHARACTER COUNT IN LINE. 00113 M01S00111.comctio +++| 00114 M01S00112.comctio +++| MX6 -6 00115 M01S00113.comctio +++| BX7 -X6*X3 00116 M01S00114.comctio +++| BX4 X3 00117 M01S00115.comctio +++| ZR X7,WRC2 IF SINGLE WORD 00118 M01S00116.comctio +++| SB5 B1 00119 M01S00117.comctio +++| WRC1 SA4 A3+B5 00120 M01S00118.comctio +++| SB6 B6+B4 00121 M01S00119.comctio +++| SB5 B5+B1 00122 M01S00120.comctio +++| BX7 -X6*X4 00123 M01S00121.comctio +++| WRC2 NZ X7,WRC1 IF NOT LAST WORD IN LINE 00124 M01S00122.comctio +++| SX6 B1 00125 M01S00123.comctio +++| IX6 X4-X6 00126 M01S00124.comctio +++| BX6 -X6+X4 00127 M01S00125.comctio +++| BX6 X1*X6 00128 M01S00126.comctio +++| CX6 X6 00129 M01S00127.comctio +++| SB6 X6+B6 00130 M01S00128.comctio +++| 00131 M01S00129.comctio +++|* TRANSFER CHARACTERS TO FILE BUFFER. 00132 M01S00130.comctio +++| 00133 M01S00131.comctio +++| WRC3 SA4 X2+4 00134 M01S00132.comctio +++| SA1 A4+B1 READ CHARACTER COUNT 00135 M01S00133.comctio +++| SB7 X4 (B7) = LIMIT POINTER 00136 M01S00134.comctio +++| BX7 X1 (X7) = FET + 5 00137 M01S00135.comctio +++| SA4 WRCB+X7 00138 M01S00136.comctio +++| SA1 A4+B4 (X1) = WORD SPLITING MASK 00139 M01S00137.comctio +++| SB5 X4 (B5) = SHIFT COUNT FOR WORD 00140 M01S00138.comctio +++| SA4 X2+2 00141 M01S00139.comctio +++| SB2 X4 (B2) = IN POINTER 00142 M01S00140.comctio +++| SA4 A4+B1 00143 M01S00141.comctio +++| SB3 X4 (B3) = OUT POINTER 00144 M01S00142.comctio +++| SA4 B2 READ BUFFER WORD TO ADD CHARACTERS TO 00145 M01S00143.comctio +++| BX4 -X1*X4 00146 M01S00144.comctio +++| WRC4 LX3 B5 00147 M01S00145.comctio +++| BX6 X1*X3 EXTRACT LOWER CHARACTERS 00148 M01S00146.comctio +++| BX6 X6+X4 MERGE WITH WORD IN BUFFER 00149 M01S00147.comctio +++| BX4 -X1*X3 EXTRACT CHARACTERS TO CARRY FORWARD 00150 M01S00148.comctio +++| LT B6,B4,WRC8 IF PARTIAL WORD TO ADD TO BUFFER 00151 M01S00149.comctio +++| SA6 B2 00152 M01S00150.comctio +++| SB2 B2+B1 00153 M01S00151.comctio +++| SB6 B6-B4 DECREMENT CHARACTER COUNT 00154 M01S00152.comctio +++| SA3 A3+B1 READ NEXT WORD TO ADD 00155 M01S00153.comctio +++| EQ B2,B7,WRC6 IF IN+1 = LIMIT - BUFFER WRAP 00156 M01S00154.comctio +++| NE B2,B3,WRC4 IF IN+1 .NE. OUT - ROOM IN BUFFER 00157 M01S00155.comctio +++| SA1 X2 00158 M01S00156.comctio +++| SX6 B2-B1 SET IN POINTER 00159 M01S00157.comctio +++| LX1 59 00160 M01S00158.comctio +++| SA6 X2+2 00161 M01S00159.comctio +++| NG X1,WRC7 IF BUFFER NOT BUSY 00162 M01S00160.comctio +++| ZR X1,WRC7 IF NULL FET 00163 M01S00161.comctio +++| WRC5 RECALL 00164 M01S00162.comctio +++| SA1 X2+3 REREAD POINTERS 00165 M01S00163.comctio +++| SB3 X1 00166 M01S00164.comctio +++| SA1 X2+5 00167 M01S00165.comctio +++| BX7 X1
Line S00166 Modification History | |
---|---|
M01 (Added by) | comctio |
M02 (Updated by) | ctio1 |
Seq # *Modification Id* Act ----------------------------+ 00168 M02S00166.ctio1 ---| SA1 A4+B4 00169 M01S00002.ctio1 +++| SA1 WRCC+X7 00170 M01S00167.comctio +++| EQ B2,B3,WRC7 IF NO ROOM IN BUFFER 00171 M01S00168.comctio +++| EQ WRC4 PROCESS NEXT WORD 00172 M01S00169.comctio +++| 00173 M01S00170.comctio +++| WRC6 SA1 X2+3 SET IN TO FIRST IF ROOM 00174 M01S00171.comctio +++| SB3 X1 00175 M01S00172.comctio +++| SA1 X2+B1 FIRST 00176 M01S00173.comctio +++| SB2 X1 00177 M01S00174.comctio +++| SA1 X2+5 00178 M01S00003.ctio1 +++| BX7 X1 00179 M01S00004.ctio1 +++| SA1 WRCC+X7 00180 M01S00175.comctio +++| NE B2,B3,WRC4 IF OUT .NE. FIRST, SET IN TO FIRST 00181 M01S00176.comctio +++| WRC7 WRITE X2 00182 M01S00177.comctio +++| EQ WRC5 RECHECK POINTERS 00183 M01S00178.comctio +++| 00184 M01S00179.comctio +++| WRCA CON 40404040404040404040B 00185 M01S00180.comctio +++| WRCB CON 0,54,48,42,36,30,24,18,12,6 SHIFT COUNT TABLE
Line S00181 Modification History | |
---|---|
M01 (Added by) | comctio |
M02 (Updated by) | ctio1 |
Seq # *Modification Id* Act ----------------------------+ 00186 M02S00181.ctio1 ---| CON -0 TABLE OF MASKS TO SPLIT WORD 00187 M01S00005.ctio1 +++| WRCC CON -0 TABLE OF MASKS TO SPLIT WORD 00188 M01S00182.comctio +++| CON 777777777777777777B,7777777777777777B,77777777777777B 00189 M01S00183.comctio +++| CON 777777777777B,7777777777B,77777777B,777777B,7777B,77B 00190 M01S00184.comctio +++| WRL SPACE 4,10 00191 M01S00185.comctio +++|** WRL - WRITE LINE TO FILE. 00192 M01S00186.comctio +++|* 00193 M01S00187.comctio +++|* ENTRY (X2) = FET ADDRESS. 00194 M01S00188.comctio +++|* 00195 M01S00189.comctio +++|* EXIT LINE WRITTEN TO FILE. 00196 M01S00190.comctio +++|* 00197 M01S00191.comctio +++|* USES A - 1, 3, 4, 6. 00198 M01S00192.comctio +++|* X - 1, 3, 4, 6. 00199 M01S00193.comctio +++|* B - 2. 00200 M01S00194.comctio +++|* 00201 M01S00195.comctio +++|* MACROS WRITEW. 00202 M01S00196.comctio +++| 00203 M01S00197.comctio +++| 00204 M01S00198.comctio +++| WRL= SUBR ENTRY/EXIT 00205 M01S00199.comctio +++| SA1 X2+2 00206 M01S00200.comctio +++| SA3 X2+5 00207 M01S00201.comctio +++| SX3 X3 00208 M01S00202.comctio +++| LX3 -1 00209 M01S00203.comctio +++| PL X3,WRL1 IF EVEN CHARACTERS IN LAST WORD 00210 M01S00204.comctio +++| SA3 WRLA+X3 00211 M01S00205.comctio +++| SA4 X1 BLANK FILL TO EVEN CHARACTER 00212 M01S00206.comctio +++| BX6 X4+X3 00213 M01S00207.comctio +++| SA6 A4 00214 M01S00208.comctio +++| AX3 6 00215 M01S00209.comctio +++| NZ X3,WRL1 IF WORD NOT COMPLETED 00216 M01S00210.comctio +++| WRITEW X2,A6,1 00217 M01S00211.comctio +++| SX1 =0 00218 M01S00212.comctio +++| 00219 M01S00213.comctio +++| WRL1 WRITEW X2,X1,1 WRITE LAST WORD OF LINE TO BUFFER 00220 M01S00214.comctio +++| SA1 X2+5 CHECK FOR LINE LIMIT 00221 M01S00215.comctio +++| UX1,B2 X1 (B2) = LINE COUNT 00222 M01S00216.comctio +++| SX6 X1 CLEAR CHARACTER COUNT 00223 M01S00217.comctio +++| BX1 X1-X6 00224 M01S00218.comctio +++| SB2 B2+B1 00225 M01S00219.comctio +++| PX6 X1,B2 00226 M01S00220.comctio +++| SA6 A1 00227 M01S00221.comctio +++| EQ WRL= RETURN 00228 M01S00222.comctio +++| 00229 M01S00223.comctio +++| WRLA CON 55BS48,55BS36,55BS24,55BS12,1R 00230 M01S00224.comctio +++| SPACE 4 00231 M01S00225.comctio +++| BASE * 00232 M01S00226.comctio +++| ENDX
cdc/nos2.source/opl.opl871/common/comctio.txt · Last modified: by 127.0.0.1