cdc:nos2.source:opl.opl871:common:comcwta
Common COMCWTA
1 Modification
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M01S00001.comcwta +++| CTEXT COMCWTA - WRITE CODED LINE FROM 6/12 STRING BUFFER. 00002 M01S00002.comcwta +++| WTA SPACE 4 00003 M01S00003.comcwta +++| IF -DEF,QUAL$,1 00004 M01S00004.comcwta +++| QUAL COMCWTA 00005 M01S00005.comcwta +++| BASE D
Line S00006 Modification History | |
---|---|
M01 (Added by) | comcwta |
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.comcwta +++| WTA SPACE 4 00009 M01S00008.comcwta +++|*** WTA - WRITE CODED LINE FROM 6/12 STRING BUFFER. 00010 M01S00009.comcwta +++|* R. S. HORECK. 71/05/19. 00011 M01S00010.comcwta +++|* S. R. MCPHERSON. 74/09/30. 00012 M01S00011.comcwta +++|* A. F. SKJOLDEBRAND 84/08/09. ( ADAPTION FROM COMCWTS ) 00013 M01S00012.comcwta +++| WTA SPACE 4 00014 M01S00013.comcwta +++|*** WTA TRANSFERS 1 CODED LINE FROM A 6/12 ASCII STRING 00015 M01S00014.comcwta +++|* BUFFER TO A CIO BUFFER WITH TRAILING SPACE SUPPRESSION. 00016 M01S00015.comcwta +++|* CHARACTERS IN THE WORKING BUFFER ARE PACKED AND STORED IN 00017 M01S00016.comcwta +++|* THE CIRCULAR BUFFER. 00018 M01S00017.comcwta +++|* IF THE BUFFER BECOMES SUFFICIENTLY FULL TO REQUIRE WRITING, 00019 M01S00018.comcwta +++|* WTA WILL PERFORM A *WRITE* FUNCTION UNLESS THE SYMBOL *WRIF$* 00020 M01S00019.comcwta +++|* IS DEFINED. IN THIS CASE, THE CIO FUNCTION THAT IS IN THE FET 00021 M01S00020.comcwta +++|* WILL BE RE-ISSUED. 00022 M01S00021.comcwta +++|* 00023 M01S00022.comcwta +++|* ENTRY (X2) = ADDRESS OF FET FOR FILE. 00024 M01S00023.comcwta +++|* (B6) = FWA WORKING BUFFER. 00025 M01S00024.comcwta +++|* (B7) = WORD COUNT OF WORKING BUFFER. 00026 M01S00025.comcwta +++|* IF (B7) = 0, NO TRANSFER WILL BE PERFORMED. 00027 M01S00026.comcwta +++|* 00028 M01S00027.comcwta +++|* EXIT (X2) = ADDRESS OF FET FOR FILE. 00029 M01S00028.comcwta +++|* (B6) = WORD COUNT OF DATA WRITTEN. 00030 M01S00029.comcwta +++|* 00031 M01S00030.comcwta +++|* USES X - 1, 2, 3, 4, 6, 7. 00032 M01S00031.comcwta +++|* B - 1, 2, 3, 4, 5, 6, 7. 00033 M01S00032.comcwta +++|* A - 1, 2, 3, 4, 6, 7. 00034 M01S00033.comcwta +++|* 00035 M01S00034.comcwta +++|* CALLS DCB=, WTX=. 00036 M01S00035.comcwta +++| 00037 M01S00036.comcwta +++| 00038 M01S00037.comcwta +++| + EQ WTA3 ENTRY FROM DCB= ON A WRITE REQUEST 00039 M01S00038.comcwta +++| 00040 M01S00039.comcwta +++| WTA= PS ENTRY/EXIT 00041 M01S00040.comcwta +++| SA4 WTA= 00042 M01S00041.comcwta +++| ZR B7,WTA= IF WORKING BUFFER EMPTY 00043 M01S00042.comcwta +++| 00044 M01S00043.comcwta +++| IF -DEF,B1=1,1 00045 M01S00044.comcwta +++| SB1 1 00046 M01S00045.comcwta +++| 00047 M01S00046.comcwta +++| SX6 0 00048 M01S00047.comcwta +++| SA6 WTAB CLEAR ESCAPE CODE FLAG 00049 M01S00048.comcwta +++| SA1 X2+4 (B5) = LIMIT 00050 M01S00049.comcwta +++| SB4 B6+B7 00051 M01S00050.comcwta +++| SB5 X1 00052 M01S00051.comcwta +++| SX7 1R 00053 M01S00052.comcwta +++| SA1 B4-B1 READ LAST CHARACTER 00054 M01S00053.comcwta +++| SB2 B1+B1 (2) 00055 M01S00054.comcwta +++| WTA1 BX6 X1-X7 CHECK FOR BLANKS 00056 M01S00055.comcwta +++| SA1 A1-B1 DECREMENT CHARACTER POSITION 00057 M01S00056.comcwta +++| ZR X6,WTA1 IF BLANK 00058 M01S00057.comcwta +++| SB7 A1+B2 (B7) = LWA + 1 00059 M01S00058.comcwta +++| LT B6,B7,WTA2 IF NOT TO PAST START OF BUFFER 00060 M01S00059.comcwta +++| SB7 B6+B1 00061 M01S00060.comcwta +++| WTA2 SA3 X2+1 (A3) = ADDRESS OF FIRST 00062 M01S00061.comcwta +++| SX4 0 (X4) = WORD COUNT TRANSFERED TO BUFFER 00063 M01S00062.comcwta +++| 00064 M01S00063.comcwta +++|* INITIALIZE REGISTERS FOR TRANSFER. 00065 M01S00064.comcwta +++| 00066 M01S00065.comcwta +++| WTA3 SA1 A3-B1 SAVE FET STATUS 00067 M01S00066.comcwta +++| SA2 A3+B1 (X2) = IN 00068 M01S00067.comcwta +++| BX6 X1 00069 M01S00068.comcwta +++| SA1 A2+B1 OUT 00070 M01S00069.comcwta +++| SA6 WTAA 00071 M01S00070.comcwta +++| SB3 X2+B1 (B3) = IN+1 00072 M01S00071.comcwta +++| SB4 X1 00073 M01S00072.comcwta +++| SX6 B4-B3 OUT - IN+1 00074 M01S00073.comcwta +++| PL X6,WTA4 IF OUT \ IN+1 00075 M01S00074.comcwta +++| SX6 B5-B3 LIMIT - IN+1 00076 M01S00075.comcwta +++| WTA4 SB4 X6 (B4) = FREE BUFFER SPACE 00077 M01S00076.comcwta +++| SX3 X2 (X3) = IN 00078 M01S00077.comcwta +++| NZ X6,WTA6 IF SPACE AVAILABLE 00079 M01S00078.comcwta +++| 00080 M01S00079.comcwta +++|* PROCESS EXHAUSTED FREE BUFFER SPACE. 00081 M01S00080.comcwta +++| 00082 M01S00081.comcwta +++| WTA5 SA1 WTAA GET FET STATUS 00083 M01S00082.comcwta +++| SA2 A3+B1 (A2) = ADDRESS OF IN 00084 M01S00083.comcwta +++| SB2 X1 (B2) = FET STATUS 00085 M01S00084.comcwta +++| SX2 X3 (X2) = IN 00086 M01S00085.comcwta +++| NE B3,B5,=XDCB= IF IN+1 " LIMIT 00087 M01S00086.comcwta +++| SA1 A3 (X1) = FIRST 00088 M01S00087.comcwta +++| SX6 X1 00089 M01S00088.comcwta +++| SA1 A3-B1 FET+0 00090 M01S00089.comcwta +++| SB2 X1 (B2) = FET STATUS 00091 M01S00090.comcwta +++| SA1 A2+B1 OUT 00092 M01S00091.comcwta +++| IX7 X1-X6 OUT - IN+1 00093 M01S00092.comcwta +++| SB3 X6 IN+1 = FIRST 00094 M01S00093.comcwta +++| ZR X7,=XDCB= IF IN+1 = OUT 00095 M01S00094.comcwta +++| SB4 X7 (B4) = FREE BUFFER SPACE 00096 M01S00095.comcwta +++| 00097 M01S00096.comcwta +++|* ASSEMBLE 6/12 ASCII BUFFER 00098 M01S00097.comcwta +++| 00099 M01S00098.comcwta +++| WTA6 SA1 WTAB GET PREVIOUS ESCAPE CODE 00100 M01S00099.comcwta +++| SB2 6 00101 M01S00100.comcwta +++| SA2 WTAC GET POSITION MARKER 00102 M01S00101.comcwta +++| WTA7 SX6 0+ 00103 M01S00102.comcwta +++| NZ X1,WTA9 IF REMAINING ESCAPE CODE 00104 M01S00103.comcwta +++| WTA8 SA1 B6 00105 M01S00104.comcwta +++| EQ B6,B7,WTA12 IF WORKING BUFFER EMPTY 00106 M01S00105.comcwta +++| AX7 B2,X1 00107 M01S00106.comcwta +++| SB6 B6+B1 00108 M01S00107.comcwta +++| LX6 B2,X6 00109 M01S00108.comcwta +++| ZR X7,WTA9 IF NO ESCAPE CHARACTER 00110 M01S00109.comcwta +++| LX2 B2,X2 00111 M01S00110.comcwta +++| NG X2,WTA11 IF FULL WORD 00112 M01S00111.comcwta +++| LX6 B2,X6 00113 M01S00112.comcwta +++| WTA9 BX6 X6+X1 00114 M01S00113.comcwta +++| LX2 B2,X2 00115 M01S00114.comcwta +++| PL X2,WTA8 IF NOT YET FULL WORD 00116 M01S00115.comcwta +++| SX1 0+ CLEAR POSSIBLE ESCAPE CODE 00117 M01S00116.comcwta +++| WTA10 SB3 B3+B1 IN+1 = IN+1 + 1 00118 M01S00117.comcwta +++| SB4 B4-B1 DECREMENT FREE BUFFER SPACE 00119 M01S00118.comcwta +++| SA6 X3 STORE WORD 00120 M01S00119.comcwta +++| SX4 X4+B1 COUNT WORD 00121 M01S00120.comcwta +++| SX3 B3-B1 IN = IN+1 00122 M01S00121.comcwta +++| NZ B4,WTA7 LOOP TO LAST CHARACTER OF FULL BUFFER 00123 M01S00122.comcwta +++| BX7 X1 00124 M01S00123.comcwta +++| SA7 WTAB SAVE LAST ESCAPE CODE 00125 M01S00124.comcwta +++| EQ WTA5 CHECK BUFFER POINTERS 00126 M01S00125.comcwta +++| 00127 M01S00126.comcwta +++| WTA11 BX6 X6+X7 00128 M01S00127.comcwta +++| MX7 -6 00129 M01S00128.comcwta +++| BX1 -X7*X1 REMOVE ESCAPE CODE 00130 M01S00129.comcwta +++| EQ WTA10 00131 M01S00130.comcwta +++| 00132 M01S00131.comcwta +++|* PROCESS END OF LINE CONDITION 00133 M01S00132.comcwta +++| 00134 M01S00133.comcwta +++| WTA12 LX7 B1,X2 SHIFT FOR BYTE POSITION 00135 M01S00134.comcwta +++| NG X2,WTA14 IF WORD BOUNDARY 00136 M01S00135.comcwta +++| NG X7,WTA14 ON BYTE BOUNDARY 00137 M01S00136.comcwta +++| SX7 1R 00138 M01S00137.comcwta +++| LX2 6 00139 M01S00138.comcwta +++| LX6 6 00140 M01S00139.comcwta +++| BX6 X6+X7 MERGE BLANKS 00141 M01S00140.comcwta +++| WTA13 NG X2,WTA15 IF WORD BOUNDARY 00142 M01S00141.comcwta +++| LX6 12 00143 M01S00142.comcwta +++| LX2 12 00144 M01S00143.comcwta +++| EQ WTA13 IF NOT WORD BOUNDARY 00145 M01S00144.comcwta +++| 00146 M01S00145.comcwta +++| WTA14 SA1 A1-B1 GET LAST CHARACTER PROCESSED 00147 M01S00146.comcwta +++| NZ X1,WTA13 IF NOT ENDING COLON 00148 M01S00147.comcwta +++| SX7 2R 00149 M01S00148.comcwta +++| LX2 12 00150 M01S00149.comcwta +++| LX6 12 00151 M01S00150.comcwta +++| BX6 X6+X7 00152 M01S00151.comcwta +++| EQ WTA13 ADD TWO BLANKS 00153 M01S00152.comcwta +++| 00154 M01S00153.comcwta +++|* PROCESS LAST WORD 00155 M01S00154.comcwta +++| 00156 M01S00155.comcwta +++| WTA15 SA2 A3+B1 SET (A2) = IN 00157 M01S00156.comcwta +++| MX1 -12 00158 M01S00157.comcwta +++| SX4 X4+B1 COUNT WORD 00159 M01S00158.comcwta +++| SA6 X3 STORE LAST WORD 00160 M01S00159.comcwta +++| BX7 -X1*X6 00161 M01S00160.comcwta +++| SX2 B3 IN = IN+1 00162 M01S00161.comcwta +++| SB6 X4 SET WORD COUNT TRANSFERRED 00163 M01S00162.comcwta +++| SA3 A3 (X3) = FIRST 00164 M01S00163.comcwta +++| ZR X7,WTA17 IF VALID END OF LINE, EXIT 00165 M01S00164.comcwta +++| SB3 B3+B1 ADVANCE IN+1 00166 M01S00165.comcwta +++| SB4 B4-B1 DECREMENT FREE BUFFER SPACE 00167 M01S00166.comcwta +++| MX1 -6 00168 M01S00167.comcwta +++| BX1 -X1*X7 GET LAST CHARACTER 00169 M01S00168.comcwta +++| SX3 X2+ (X3) = IN 00170 M01S00169.comcwta +++| SB6 B7+ RESET CHARACTER POSITION 00171 M01S00170.comcwta +++| ZR B4,WTA5 IF FREE SPACE EXHAUSTED 00172 M01S00171.comcwta +++| SX6 B0+ 00173 M01S00172.comcwta +++| NZ X1,WTA16 IF NOT *00* CHARACTER 00174 M01S00173.comcwta +++| SX6 2R PRESERVE *00* CHARACTER WITH * * 00175 M01S00174.comcwta +++| WTA16 LX6 48 00176 M01S00175.comcwta +++| SB6 X4+B1 RESET WORD COUNT 00177 M01S00176.comcwta +++| SA6 X2 00178 M01S00177.comcwta +++| SX2 B3 IN=IN+1 00179 M01S00178.comcwta +++| WTA17 SA1 A2+B1 SET OUT 00180 M01S00179.comcwta +++| SB4 X1 00181 M01S00180.comcwta +++| EQ =XWTX= EXIT 00182 M01S00181.comcwta +++| 00183 M01S00182.comcwta +++| 00184 M01S00183.comcwta +++| WTAA CON 0 FET STATUS PRIOR TO READING OUT 00185 M01S00184.comcwta +++| WTAB CON 0 PREVIOUS ESCAPE CODE 00186 M01S00185.comcwta +++| WTAC CON 60002000200020002000B WORD AND BYTE POSITION FLAGS 00187 M01S00186.comcwta +++| SPACE 4 00188 M01S00187.comcwta +++| BASE * 00189 M01S00188.comcwta +++| QUAL$ IF -DEF,QUAL$ 00190 M01S00189.comcwta +++| QUAL * 00191 M01S00190.comcwta +++| WTA= EQU /COMCWTA/WTA= 00192 M01S00191.comcwta +++| QUAL$ ENDIF 00193 M01S00192.comcwta +++| ENDX
cdc/nos2.source/opl.opl871/common/comcwta.txt · Last modified: by 127.0.0.1