Seq # *Modification Id* Act
----------------------------+
00001 M01S00001.comcrdh +++| CTEXT COMCRDH - READ CODED LINE, -H- FORMAT.
00002 M01S00002.comcrdh +++| RDH SPACE 4
00003 M01S00003.comcrdh +++| IF -DEF,QUAL$,1
00004 M01S00004.comcrdh +++| QUAL COMCRDH
00005 M01S00005.comcrdh +++| BASE D
Line S00006 Modification History |
M01 (Added by) | comcrdh |
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.comcrdh +++| RDH SPACE 4
00009 M01S00008.comcrdh +++|*** RDH - READ CODED LINE, -H- FORMAT.
00010 M01S00009.comcrdh +++|* G. R. MANSFIELD. 70/10/09.
00011 M01S00010.comcrdh +++| RDH SPACE 4
00012 M01S00011.comcrdh +++|*** RDH READS 1 CODED LINE FROM A CIO BUFFER TO A WORKING
00013 M01S00012.comcrdh +++|* BUFFER WITH TRAILING SPACE FILL.
00014 M01S00013.comcrdh +++|*
00015 M01S00014.comcrdh +++|* ENTRY (X2) = ADDRESS OF FET FOR FILE.
00016 M01S00015.comcrdh +++|* (B6) = FWA WORKING BUFFER.
00017 M01S00016.comcrdh +++|* (B7) = WORD COUNT OF WORKING BUFFER.
00018 M01S00017.comcrdh +++|*
00019 M01S00018.comcrdh +++|* EXIT (X1) = 0 FOR TRANSFER COMPLETE.
00020 M01S00019.comcrdh +++|* (X1) = -1 IF EOF DETECTED ON FILE.
00021 M01S00020.comcrdh +++|* (X1) = -2 IF EOI DETECTED ON FILE.
00022 M01S00021.comcrdh +++|* (X1) = (B6) IF EOR WAS DETECTED ON FILE BEFORE
00023 M01S00022.comcrdh +++|* TRANSFER WAS COMPLETED.
00024 M01S00023.comcrdh +++|* (B6) = ADDRESS PLUS ONE OF LAST WORD TRANSFERRED TO
00025 M01S00024.comcrdh +++|* WORKING BUFFER.
00026 M01S00025.comcrdh +++|* (X2) = ADDRESS OF FET FOR FILE.
00027 M01S00026.comcrdh +++|*
00028 M01S00027.comcrdh +++|* USES X - 1, 2, 3, 4, 6, 7.
00029 M01S00028.comcrdh +++|* B - ALL.
00030 M01S00029.comcrdh +++|* A - 1, 2, 3, 4, 6, 7.
00031 M01S00030.comcrdh +++|*
00032 M01S00031.comcrdh +++|* CALLS LCB=, RDX=.
00033 M01S00032.comcrdh +++|
00034 M01S00033.comcrdh +++|
00035 M01S00034.comcrdh +++| RDH= PS ENTRY/EXIT
00036 M01S00035.comcrdh +++| SX1 B0+
00037 M01S00036.comcrdh +++| ZR B7,RDH= IF NO ROOM IN WORKING BUFFER
00038 M01S00037.comcrdh +++| SA4 RDH6 SET RETURN ADDRESS
00039 M01S00038.comcrdh +++|
00040 M01S00039.comcrdh +++| IF -DEF,B1=1,1
00041 M01S00040.comcrdh +++| SB1 1
00042 M01S00041.comcrdh +++|
00043 M01S00042.comcrdh +++| SA1 X2+4 (B5) = LIMIT
00044 M01S00043.comcrdh +++| SA3 X2+B1 (X3) = FIRST
00045 M01S00044.comcrdh +++| SB7 B6+B7 (B7) = LWA+1 WORKING BUFFER
00046 M01S00045.comcrdh +++| SB5 X1+
00047 M01S00046.comcrdh +++| BX4 X4-X4 INDICATE NO PRIOR DATA CHECK
00048 M01S00047.comcrdh +++| SX6 B6 SAVE FWA WORKING BUFFER
00049 M01S00048.comcrdh +++| SA6 RDHC
00050 M01S00049.comcrdh +++|
00051 M01S00050.comcrdh +++|* INITIALIZE REGISTERS FOR TRANSFER.
00052 M01S00051.comcrdh +++|
00053 M01S00052.comcrdh +++| RDH1 SA1 A3+B1 (B3) = IN
00054 M01S00053.comcrdh +++| SA2 A1+B1 (B4) = OUT
00055 M01S00054.comcrdh +++| MX7 -12 (X7) = BYTE MASK
00056 M01S00055.comcrdh +++| SB3 X1
00057 M01S00056.comcrdh +++| SB4 X2+
00058 M01S00057.comcrdh +++|
00059 M01S00058.comcrdh +++|* TRANSFER DATA FROM CIRCULAR BUFFER TO WORKING BUFFER.
00060 M01S00059.comcrdh +++|
00061 M01S00060.comcrdh +++| RDH2 EQ B4,B3,=XLCB= LOAD CIRCULAR BUFFER IF OUT = IN
00062 M01S00061.comcrdh +++| SA1 B4 READ WORD
00063 M01S00062.comcrdh +++| SB4 B4+B1 (OUT+1)
00064 M01S00063.comcrdh +++| BX2 -X7*X1 CHECK LAST BYTE
00065 M01S00064.comcrdh +++| EQ B4,B5,RDH4 IF (OUT+1) = LIMIT
00066 M01S00065.comcrdh +++| BX6 X1
00067 M01S00066.comcrdh +++| RDH3 ZR X2,RDH5 IF END OF LINE
00068 M01S00067.comcrdh +++| SX4 B0+ INDICATE NO PRIOR DATA CHECK
00069 M01S00068.comcrdh +++| EQ B6,B7,RDH2 IF WORKING BUFFER FILLED
00070 M01S00069.comcrdh +++| SA6 B6 STORE WORD
00071 M01S00070.comcrdh +++| SB6 B6+B1 ADVANCE WORKING BUFFER
00072 M01S00071.comcrdh +++| MX4 -6 CHECK PRIOR DATA FOR TRAILING BINARY ZERO
00073 M01S00072.comcrdh +++| EQ RDH2 LOOP
00074 M01S00073.comcrdh +++|
00075 M01S00074.comcrdh +++| RDH4 SB4 X3 (OUT+1) = FIRST
00076 M01S00075.comcrdh +++| BX6 X1
00077 M01S00076.comcrdh +++| EQ RDH3
00078 M01S00077.comcrdh +++|
00079 M01S00078.comcrdh +++|* INSERT BLANK IF LAST CHARACTER OF PREVIOUS WORD PRECEEDING
00080 M01S00079.comcrdh +++|* ZERO WORD END OF LINE IS TRAILING BINARY ZERO CHARACTER
00081 M01S00080.comcrdh +++|* AND LINE WAS NOT TRUNCATED.
00082 M01S00081.comcrdh +++|
00083 M01S00082.comcrdh +++| RDH5 NZ X1,RDH5.1 IF NOT ZERO WORD END OF LINE
00084 M01S00083.comcrdh +++| ZR X4,RDH5.1 IF NOT TO CHECK PRIOR DATA
00085 M01S00084.comcrdh +++| SA1 B6-B1 GET PREVIOUS WORD FROM WORKING BUFFER
00086 M01S00085.comcrdh +++| BX2 -X4*X1
00087 M01S00086.comcrdh +++| NZ X2,RDH5.1 IF NOT TRAILING BINARY ZERO CHARACTER
00088 M01S00087.comcrdh +++| SX7 1R INSERT BLANK CHARACTER
00089 M01S00088.comcrdh +++| BX7 X1+X7
00090 M01S00089.comcrdh +++| SA7 A1
00091 M01S00090.comcrdh +++|
00092 M01S00091.comcrdh +++|* SPACE FILL LAST WORD.
00093 M01S00092.comcrdh +++|
00094 M01S00093.comcrdh +++| RDH5.1 EQ B6,B7,=XRDX= IF WORKING BUFFER FILLED
00095 M01S00094.comcrdh +++| SA1 RDHA =40404040404040404040B
00096 M01S00095.comcrdh +++| SX7 B1
00097 M01S00096.comcrdh +++| IX7 X6-X7
00098 M01S00097.comcrdh +++| SB2 60-5
00099 M01S00098.comcrdh +++| BX4 -X7+X6
00100 M01S00099.comcrdh +++| BX7 X1*X4
00101 M01S00100.comcrdh +++| LX4 X7,B2
00102 M01S00101.comcrdh +++| SA1 A1+B1 =1H
00103 M01S00102.comcrdh +++| IX2 X7-X4
00104 M01S00103.comcrdh +++| BX7 X7+X2
00105 M01S00104.comcrdh +++| BX4 -X7*X1
00106 M01S00105.comcrdh +++| IX6 X6+X4
00107 M01S00106.comcrdh +++| SA6 B6
00108 M01S00107.comcrdh +++| SB6 B6+B1
00109 M01S00108.comcrdh +++| EQ =XRDX= EXIT
00110 M01S00109.comcrdh +++|
00111 M01S00110.comcrdh +++|* SPACE FILL REMAINDER OF WORKING BUFFER.
00112 M01S00111.comcrdh +++|
00113 M01S00112.comcrdh +++| + EQ RDH1
00114 M01S00113.comcrdh +++|
00115 M01S00114.comcrdh +++| RDH6 EQ B6,B7,RDH= RETURN IF WORKING BUFFER FULL
00116 M01S00115.comcrdh +++| SA4 RDHC FWA OF WORKING BUFFER
00117 M01S00116.comcrdh +++| SB2 X4
00118 M01S00117.comcrdh +++| EQ B6,B2,RDH= IF WORKING BUFFER EMPTY
00119 M01S00118.comcrdh +++| SA4 RDHB =1H
00120 M01S00119.comcrdh +++| BX6 X4
00121 M01S00120.comcrdh +++| RDH7 SA6 B6
00122 M01S00121.comcrdh +++| SB6 B6+B1
00123 M01S00122.comcrdh +++| NE B6,B7,RDH7
00124 M01S00123.comcrdh +++| EQ RDH= RETURN
00125 M01S00124.comcrdh +++|
00126 M01S00125.comcrdh +++| RDHA CON 40404040404040404040B
00127 M01S00126.comcrdh +++| RDHB DATA 1H
00128 M01S00127.comcrdh +++| RDHC CON 0 FWA WORKING BUFFER
00129 M01S00128.comcrdh +++| SPACE 4
00130 M01S00129.comcrdh +++| BASE *
00131 M01S00130.comcrdh +++| QUAL$ IF -DEF,QUAL$
00132 M01S00131.comcrdh +++| QUAL *
00133 M01S00132.comcrdh +++| RDH= EQU /COMCRDH/RDH=
00134 M01S00133.comcrdh +++| QUAL$ ENDIF
00135 M01S00134.comcrdh +++| ENDX