Seq # *Modification Id* Act
----------------------------+
00001 M00S00001.comctio +++| CTEXT COMCTIO - TEXT I/O ROUTINES.
00002 M00S00002.comctio +++| BASE D
Line S00003 Modification History |
M01 (Removed by) | 281l803 |
Seq # *Modification Id* Act
----------------------------+
00003 M01S00003.281l803 ---|*COMMENT COPYRIGHT CONTROL DATA CORP. 1985.
Line S00001 Modification History |
M01 (Added by) | 281l803 |
Seq # *Modification Id* Act
----------------------------+
00004 M01S00001.281l803 +++|* COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
00005 M00S00004.comctio +++| COMCTIO SPACE 4,10
00006 M00S00005.comctio +++|*** COMCTIO - TEXT I/O.
00007 M00S00006.comctio +++|*
00008 M00S00007.comctio +++|* COMCTIO PROVIDES ROUTINES TO PERFORM TEXT I/O FROM
00009 M00S00008.comctio +++|* COMPASS PROGRAMS. TEXT IS ADDED TO A FILE IN CHARACTER
00010 M00S00009.comctio +++|* INCREMENTS, INSTEAD OF IN WORD INCREMENTS. NUMERIC DATA
00011 M00S00010.comctio +++|* ITEMS ARE CONVERTED TO EITHER LEFT OR RIGHT JUSTIFIED
00012 M00S00011.comctio +++|* CHARACTERS. NOS END OF LINE CONVENTIONS ARE INSURED.
00013 M00S00012.comctio +++|*
00014 M00S00013.comctio +++|* NOTE FET+5 IS USED BY THESE ROUTINES.
00015 M00S00014.comctio +++| CTI SPACE 4,15
00016 M00S00015.comctio +++|** CTI - CONVERT TO DECIMAL DISPLAY CODE WITH LEADING ZERO.
00017 M00S00016.comctio +++|* SUPPRESSION.
00018 M00S00017.comctio +++|*
00019 M00S00018.comctio +++|* ENTRY (X1) = NUMBER TO BE CONVERTED.
00020 M00S00019.comctio +++|*
00021 M00S00020.comctio +++|* EXIT (X3) = DECIMAL CONVERSION LEFT JUSTIFIED, BLANK FILLED
00022 M00S00021.comctio +++|* (B6) = NUMBER OF CHARACTERS CONVERTED.
00023 M00S00022.comctio +++|*
00024 M00S00023.comctio +++|* USES A - 3, 4, 5.
00025 M00S00024.comctio +++|* X - 1, 3, 4, 5, 6, 7.
00026 M00S00025.comctio +++|* B - 6.
00027 M00S00026.comctio +++|
00028 M00S00027.comctio +++|
00029 M00S00028.comctio +++| CTI SUBR ENTRY/EXIT
00030 M00S00029.comctio +++| SA4 CTIA 0.1P48+1
00031 M00S00030.comctio +++| SA5 CTIB
00032 M00S00031.comctio +++| PX1 X1
00033 M00S00032.comctio +++| SB6 B0 CLEAR CHARACTER COUNT
00034 M00S00033.comctio +++| SA3 CTIC
00035 M00S00034.comctio +++| CTI1 DX6 X1*X4 COMPUTE QUOTIENT
00036 M00S00035.comctio +++| FX1 X1*X4
00037 M00S00036.comctio +++| UX7 X1 CHECK QUOTIENT
00038 M00S00037.comctio +++| FX6 X6*X5 EXTRACT REMAINDER DIGIT
00039 M00S00038.comctio +++| SB6 B6+B1
00040 M00S00039.comctio +++| SX6 X6+1R0-1R CONVERT DIGIT
00041 M00S00040.comctio +++| IX3 X6+X3
00042 M00S00041.comctio +++| LX3 -6 SHIFT ASSEMBLY
00043 M00S00042.comctio +++| NZ X7,CTI1 IF LOOP TO ZERO QUOTIENT
00044 M00S00043.comctio +++| EQ CTIX RETURN
00045 M00S00044.comctio +++|
00046 M00S00045.comctio +++| CTIA CON 0.1P48+1
00047 M00S00046.comctio +++| CTIB CON 10.P
00048 M00S00047.comctio +++| CTIC CON 10H
00049 M00S00048.comctio +++| CTO SPACE 4,15
00050 M00S00049.comctio +++|** CTO - CONVERT TO OCTAL DISPLAY CODE WITH LEADING ZERO.
00051 M00S00050.comctio +++|* SUPPRESSION.
00052 M00S00051.comctio +++|*
00053 M00S00052.comctio +++|* ENTRY (X1) = NUMBER TO BE CONVERTED.
00054 M00S00053.comctio +++|*
00055 M00S00054.comctio +++|* EXIT (X3) = OCTAL CONVERSION LEFT JUSTIFIED, BLANK FILLED.
00056 M00S00055.comctio +++|* (B6) = NUMBER OF CHARACTERS CONVERTED.
00057 M00S00056.comctio +++|*
00058 M00S00057.comctio +++|* USES A - 3.
00059 M00S00058.comctio +++|* X - 1, 3, 4, 6.
00060 M00S00059.comctio +++|* B - 6.
00061 M00S00060.comctio +++|
00062 M00S00061.comctio +++|
00063 M00S00062.comctio +++| CTO SUBR ENTRY/EXIT
00064 M00S00063.comctio +++| SA3 CTIC
00065 M00S00064.comctio +++| MX6 -3 (X2) = DIGIT MASK
00066 M00S00065.comctio +++| SB6 B0 CLEAR CHARACTER COUNT
00067 M00S00066.comctio +++| CTO1 BX4 -X6*X1 EXTRACT DIGIT
00068 M00S00067.comctio +++| SB6 B6+B1
00069 M00S00068.comctio +++| SX4 X4+1R0-1R CONVERT DIGIT
00070 M00S00069.comctio +++| AX1 3 SHIFT OFF DIGIT
00071 M00S00070.comctio +++| IX3 X4+X3 ADD DIGIT TO ASSEMBLY
00072 M00S00071.comctio +++| LX3 -6
00073 M00S00072.comctio +++| NZ X1,CTO1 IF LOOP TO ZERO DIGIT
00074 M00S00073.comctio +++| EQ CTOX RETURN
00075 M00S00074.comctio +++| WRC SPACE 4,10
00076 M00S00075.comctio +++|** WRC - WRITE CHARACTERS TO TEXT FILE.
00077 M00S00076.comctio +++|*
00078 M00S00077.comctio +++|* ENTRY (X2) = TEXT FILE FET ADDRESS.
00079 M00S00078.comctio +++|* (X3) = FIRST WORD OF CHARACTERS TO WRITE.
00080 M00S00079.comctio +++|* (B6) = NUMBER OF CHARACTERS TO WRITE.
00081 M00S00080.comctio +++|* = 0, IF TO WRITE TILL ZERO BYTE TERMINATOR.
00082 M00S00081.comctio +++|* (A3) = ADDRESS OF FIRST WORD OF CHARACTERS, IF MORE
00083 M00S00082.comctio +++|* THAN 10 CHARACTERS TO WRITE.
00084 M00S00083.comctio +++|*
00085 M00S00084.comctio +++|* USES A - 1, 3, 4, 6, 7.
00086 M00S00085.comctio +++|* X - 1, 3, 4, 5, 6, 7.
00087 M00S00086.comctio +++|* B - 2, 3, 4, 6, 7.
00088 M00S00087.comctio +++|
00089 M00S00088.comctio +++|
00090 M00S00089.comctio +++| WRC8 SB5 X7+B6 ADVANCE CHARACTER COUNT IN BUFFER WORD
00091 M00S00090.comctio +++| LT B5,B4,WRC9 IF NOT INTO NEXT WORD
00092 M00S00091.comctio +++| SA6 B2
00093 M00S00092.comctio +++| SB2 B2+B1 ADVANCE BUFFER ADDRESS
00094 M00S00093.comctio +++| BX6 -X1*X3
00095 M00S00094.comctio +++| SB5 B5-B4
00096 M00S00095.comctio +++| SB6 B6-B4
Line S00096 Modification History |
M01 (Removed by) | ctio1 |
Seq # *Modification Id* Act
----------------------------+
00097 M01S00096.ctio1 ---| WRC9 SA4 WRCB+10+B5 EXTRACT CHARACTERS TO STORE
Line S00001 Modification History |
M01 (Added by) | ctio1 |
Seq # *Modification Id* Act
----------------------------+
00098 M01S00001.ctio1 +++| WRC9 SA4 WRCC+B5 EXTRACT CHARACTERS TO STORE
00099 M00S00097.comctio +++| SX1 B6 UPDATE CHARACTER COUNT IN LAST BUFFER WORD
00100 M00S00098.comctio +++| BX6 -X4*X6
00101 M00S00099.comctio +++| SA6 B2 STORE LAST WORD
00102 M00S00100.comctio +++| SX6 B2 UPDATE IN
00103 M00S00101.comctio +++| IX7 X7+X1
00104 M00S00102.comctio +++| SA6 X2+2
00105 M00S00103.comctio +++| SA7 X2+5
00106 M00S00104.comctio +++|
00107 M00S00105.comctio +++| WRC= SUBR ENTRY/EXIT
00108 M00S00106.comctio +++| SB4 10 (B4) = 10
00109 M00S00107.comctio +++| NZ B6,WRC3 IF LINE LENGTH PRESENT
00110 M00S00108.comctio +++| SA1 WRCA 40404040404040404040B
00111 M00S00109.comctio +++|
00112 M00S00110.comctio +++|* COMPUTE CHARACTER COUNT IN LINE.
00113 M00S00111.comctio +++|
00114 M00S00112.comctio +++| MX6 -6
00115 M00S00113.comctio +++| BX7 -X6*X3
00116 M00S00114.comctio +++| BX4 X3
00117 M00S00115.comctio +++| ZR X7,WRC2 IF SINGLE WORD
00118 M00S00116.comctio +++| SB5 B1
00119 M00S00117.comctio +++| WRC1 SA4 A3+B5
00120 M00S00118.comctio +++| SB6 B6+B4
00121 M00S00119.comctio +++| SB5 B5+B1
00122 M00S00120.comctio +++| BX7 -X6*X4
00123 M00S00121.comctio +++| WRC2 NZ X7,WRC1 IF NOT LAST WORD IN LINE
00124 M00S00122.comctio +++| SX6 B1
00125 M00S00123.comctio +++| IX6 X4-X6
00126 M00S00124.comctio +++| BX6 -X6+X4
00127 M00S00125.comctio +++| BX6 X1*X6
00128 M00S00126.comctio +++| CX6 X6
00129 M00S00127.comctio +++| SB6 X6+B6
00130 M00S00128.comctio +++|
00131 M00S00129.comctio +++|* TRANSFER CHARACTERS TO FILE BUFFER.
00132 M00S00130.comctio +++|
00133 M00S00131.comctio +++| WRC3 SA4 X2+4
00134 M00S00132.comctio +++| SA1 A4+B1 READ CHARACTER COUNT
00135 M00S00133.comctio +++| SB7 X4 (B7) = LIMIT POINTER
00136 M00S00134.comctio +++| BX7 X1 (X7) = FET + 5
00137 M00S00135.comctio +++| SA4 WRCB+X7
00138 M00S00136.comctio +++| SA1 A4+B4 (X1) = WORD SPLITING MASK
00139 M00S00137.comctio +++| SB5 X4 (B5) = SHIFT COUNT FOR WORD
00140 M00S00138.comctio +++| SA4 X2+2
00141 M00S00139.comctio +++| SB2 X4 (B2) = IN POINTER
00142 M00S00140.comctio +++| SA4 A4+B1
00143 M00S00141.comctio +++| SB3 X4 (B3) = OUT POINTER
00144 M00S00142.comctio +++| SA4 B2 READ BUFFER WORD TO ADD CHARACTERS TO
00145 M00S00143.comctio +++| BX4 -X1*X4
00146 M00S00144.comctio +++| WRC4 LX3 B5
00147 M00S00145.comctio +++| BX6 X1*X3 EXTRACT LOWER CHARACTERS
00148 M00S00146.comctio +++| BX6 X6+X4 MERGE WITH WORD IN BUFFER
00149 M00S00147.comctio +++| BX4 -X1*X3 EXTRACT CHARACTERS TO CARRY FORWARD
00150 M00S00148.comctio +++| LT B6,B4,WRC8 IF PARTIAL WORD TO ADD TO BUFFER
00151 M00S00149.comctio +++| SA6 B2
00152 M00S00150.comctio +++| SB2 B2+B1
00153 M00S00151.comctio +++| SB6 B6-B4 DECREMENT CHARACTER COUNT
00154 M00S00152.comctio +++| SA3 A3+B1 READ NEXT WORD TO ADD
00155 M00S00153.comctio +++| EQ B2,B7,WRC6 IF IN+1 = LIMIT - BUFFER WRAP
00156 M00S00154.comctio +++| NE B2,B3,WRC4 IF IN+1 .NE. OUT - ROOM IN BUFFER
00157 M00S00155.comctio +++| SA1 X2
00158 M00S00156.comctio +++| SX6 B2-B1 SET IN POINTER
00159 M00S00157.comctio +++| LX1 59
00160 M00S00158.comctio +++| SA6 X2+2
00161 M00S00159.comctio +++| NG X1,WRC7 IF BUFFER NOT BUSY
00162 M00S00160.comctio +++| ZR X1,WRC7 IF NULL FET
00163 M00S00161.comctio +++| WRC5 RECALL
00164 M00S00162.comctio +++| SA1 X2+3 REREAD POINTERS
00165 M00S00163.comctio +++| SB3 X1
00166 M00S00164.comctio +++| SA1 X2+5
00167 M00S00165.comctio +++| BX7 X1
Line S00166 Modification History |
M01 (Removed by) | ctio1 |
Seq # *Modification Id* Act
----------------------------+
00168 M01S00166.ctio1 ---| SA1 A4+B4
Line S00002 Modification History |
M01 (Added by) | ctio1 |
Seq # *Modification Id* Act
----------------------------+
00169 M01S00002.ctio1 +++| SA1 WRCC+X7
00170 M00S00167.comctio +++| EQ B2,B3,WRC7 IF NO ROOM IN BUFFER
00171 M00S00168.comctio +++| EQ WRC4 PROCESS NEXT WORD
00172 M00S00169.comctio +++|
00173 M00S00170.comctio +++| WRC6 SA1 X2+3 SET IN TO FIRST IF ROOM
00174 M00S00171.comctio +++| SB3 X1
00175 M00S00172.comctio +++| SA1 X2+B1 FIRST
00176 M00S00173.comctio +++| SB2 X1
00177 M00S00174.comctio +++| SA1 X2+5
Line S00003 Modification History |
M01 (Added by) | ctio1 |
Seq # *Modification Id* Act
----------------------------+
00178 M01S00003.ctio1 +++| BX7 X1
00179 M01S00004.ctio1 +++| SA1 WRCC+X7
00180 M00S00175.comctio +++| NE B2,B3,WRC4 IF OUT .NE. FIRST, SET IN TO FIRST
00181 M00S00176.comctio +++| WRC7 WRITE X2
00182 M00S00177.comctio +++| EQ WRC5 RECHECK POINTERS
00183 M00S00178.comctio +++|
00184 M00S00179.comctio +++| WRCA CON 40404040404040404040B
00185 M00S00180.comctio +++| WRCB CON 0,54,48,42,36,30,24,18,12,6 SHIFT COUNT TABLE
Line S00181 Modification History |
M01 (Removed by) | ctio1 |
Seq # *Modification Id* Act
----------------------------+
00186 M01S00181.ctio1 ---| CON -0 TABLE OF MASKS TO SPLIT WORD
Line S00005 Modification History |
M01 (Added by) | ctio1 |
Seq # *Modification Id* Act
----------------------------+
00187 M01S00005.ctio1 +++| WRCC CON -0 TABLE OF MASKS TO SPLIT WORD
00188 M00S00182.comctio +++| CON 777777777777777777B,7777777777777777B,77777777777777B
00189 M00S00183.comctio +++| CON 777777777777B,7777777777B,77777777B,777777B,7777B,77B
00190 M00S00184.comctio +++| WRL SPACE 4,10
00191 M00S00185.comctio +++|** WRL - WRITE LINE TO FILE.
00192 M00S00186.comctio +++|*
00193 M00S00187.comctio +++|* ENTRY (X2) = FET ADDRESS.
00194 M00S00188.comctio +++|*
00195 M00S00189.comctio +++|* EXIT LINE WRITTEN TO FILE.
00196 M00S00190.comctio +++|*
00197 M00S00191.comctio +++|* USES A - 1, 3, 4, 6.
00198 M00S00192.comctio +++|* X - 1, 3, 4, 6.
00199 M00S00193.comctio +++|* B - 2.
00200 M00S00194.comctio +++|*
00201 M00S00195.comctio +++|* MACROS WRITEW.
00202 M00S00196.comctio +++|
00203 M00S00197.comctio +++|
00204 M00S00198.comctio +++| WRL= SUBR ENTRY/EXIT
00205 M00S00199.comctio +++| SA1 X2+2
00206 M00S00200.comctio +++| SA3 X2+5
00207 M00S00201.comctio +++| SX3 X3
00208 M00S00202.comctio +++| LX3 -1
00209 M00S00203.comctio +++| PL X3,WRL1 IF EVEN CHARACTERS IN LAST WORD
00210 M00S00204.comctio +++| SA3 WRLA+X3
00211 M00S00205.comctio +++| SA4 X1 BLANK FILL TO EVEN CHARACTER
00212 M00S00206.comctio +++| BX6 X4+X3
00213 M00S00207.comctio +++| SA6 A4
00214 M00S00208.comctio +++| AX3 6
00215 M00S00209.comctio +++| NZ X3,WRL1 IF WORD NOT COMPLETED
00216 M00S00210.comctio +++| WRITEW X2,A6,1
00217 M00S00211.comctio +++| SX1 =0
00218 M00S00212.comctio +++|
00219 M00S00213.comctio +++| WRL1 WRITEW X2,X1,1 WRITE LAST WORD OF LINE TO BUFFER
00220 M00S00214.comctio +++| SA1 X2+5 CHECK FOR LINE LIMIT
00221 M00S00215.comctio +++| UX1,B2 X1 (B2) = LINE COUNT
00222 M00S00216.comctio +++| SX6 X1 CLEAR CHARACTER COUNT
00223 M00S00217.comctio +++| BX1 X1-X6
00224 M00S00218.comctio +++| SB2 B2+B1
00225 M00S00219.comctio +++| PX6 X1,B2
00226 M00S00220.comctio +++| SA6 A1
00227 M00S00221.comctio +++| EQ WRL= RETURN
00228 M00S00222.comctio +++|
00229 M00S00223.comctio +++| WRLA CON 55BS48,55BS36,55BS24,55BS12,1R
00230 M00S00224.comctio +++| SPACE 4
00231 M00S00225.comctio +++| BASE *
00232 M00S00226.comctio +++| ENDX