Seq # *Modification Id* Act
----------------------------+
00001 M00S00001.comstio +++| CTEXT COMSTIO - TEXT I/O MACROS.
00002 M00S00002.comstio +++| BASE M
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 +++|* COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
00005 M00S00004.comstio +++| SPACE 4
00006 M00S00005.comstio +++|*** COMSTIO - TEXT I/O MACROS.
00007 M00S00006.comstio +++|* W. E. GOEBEL. 85/02/17.
00008 M00S00007.comstio +++| COMSTIO SPACE 4,10
00009 M00S00008.comstio +++|*** COMSTIO - TEXT I/O MACROS.
00010 M00S00009.comstio +++|*
00011 M00S00010.comstio +++|* COMSTIO PROVIDES MACROS TO PERFORM TEXT I/O FROM
00012 M00S00011.comstio +++|* COMPASS PROGRAMS. TEXT IS ADDED TO A FILE IN CHARACTER
00013 M00S00012.comstio +++|* INCREMENTS, INSTEAD OF IN WORD INCREMENTS. NUMERIC DATA
00014 M00S00013.comstio +++|* ITEMS ARE CONVERTED TO EITHER LEFT OR RIGHT JUSTIFIED
00015 M00S00014.comstio +++|* CHARACTERS. NOS END OF LINE CONVENTIONS ARE INSURED.
00016 M00S00015.comstio +++|*
00017 M00S00016.comstio +++|* NOTE FET+5 IS USED BY THESE MACROES.
00018 M00S00017.comstio +++|*
00019 M00S00018.comstio +++|* THE FOLLOWING MACROES ARE DEFINED -
00020 M00S00019.comstio +++|* PRINTC APPENDS A SPECIFIED NUMBER OF CHARACTERS TO A LINE.
00021 M00S00020.comstio +++|* PRINTI CONVERTS A NUMBER TO DECIMALHARACTERS EITHER LEFT
00022 M00S00021.comstio +++|* OR RIGHT JUSTIFIED AND ADDS THE CHARACTERS TO THE
00023 M00S00022.comstio +++|* CURRENT LINE.
00024 M00S00023.comstio +++|* PRINTO CONVERTS A NUMBER TO OCTAL CHARACTERS EITHER LEFT
00025 M00S00024.comstio +++|* OR RIGHT JUSTIFIED AND ADDS THE CHARACTERS TO THE
00026 M00S00025.comstio +++|* CURRENT LINE.
00027 M00S00026.comstio +++|* PRINTL APPENDS CHARACTERS TO A LINE AND TERMINATES THE LINE.
00028 M00S00027.comstio +++|* RESET PREPARES A FILE FOR READS OR WRITES.
00029 M00S00028.comstio +++| PRINTC SPACE 4,15
00030 M00S00029.comstio +++|** PRINTC - WRITES CHARACTERS TO A TEXT FILE.
00031 M00S00030.comstio +++|*
00032 M00S00031.comstio +++|* THIS MACRO APPENDS A SPECIFIED NUMBER OF CHARACTERS TO
00033 M00S00032.comstio +++|* THE CURRENT LINE BEING WRITTEN TO A TEXT FILE.
00034 M00S00033.comstio +++|*
00035 M00S00034.comstio +++|* PRINTC FILE,CH,N
00036 M00S00035.comstio +++|* WHERE -
00037 M00S00036.comstio +++|* FILE = THE FILE TO WRITE TO.
00038 M00S00037.comstio +++|* CH = CHARACTERS TO APPEND.
00039 M00S00038.comstio +++|* = *, IF (A3), (X3) CONTAINS FIRST WORD OF CHARACTERS.
00040 M00S00039.comstio +++|* $NNNN, IF NNNN IS THE ADDRESS OF THE CHARACTERS TO
00041 M00S00040.comstio +++|* APPEND.
00042 M00S00041.comstio +++|* N = NUMBER OF CHARACTERS, 0 IMPLIES PRINT ALL CHARACTERS
00043 M00S00042.comstio +++|* UNTIL Z LINE TERMINATOR FOUND.
00044 M00S00043.comstio +++|
00045 M00S00044.comstio +++|
00046 M00S00045.comstio +++| PURGMAC PRINTC
00047 M00S00046.comstio +++| PRINTC MACRO FILE,CH,N
00048 M00S00047.comstio +++| R= X2,FILE
00049 M00S00048.comstio +++| A MICRO 1,1, CH
00050 M00S00049.comstio +++| .1 IFC EQ,/"A"/$/
00051 M00S00050.comstio +++| A MICRO 2,, CH
00052 M00S00051.comstio +++| R= A3,"A"
00053 M00S00052.comstio +++| R= B6,0_N
00054 M00S00053.comstio +++| .1 ELSE
00055 M00S00054.comstio +++| .2 IFC EQ,/CH/*/
00056 M00S00055.comstio +++| R= B6,0_N
00057 M00S00056.comstio +++| .2 ELSE
00058 M00S00057.comstio +++| SA3 =Z/CH/
00059 M00S00058.comstio +++| A MICRO 1,,/CH/
00060 M00S00059.comstio +++| A MICCNT A
00061 M00S00060.comstio +++| R= B6,A
00062 M00S00061.comstio +++| .2 ENDIF
00063 M00S00062.comstio +++| .1 ENDIF
00064 M00S00063.comstio +++| RJ WRC= WRITE CHARACTERS TO TEXT FILE
00065 M00S00064.comstio +++| ENDM
00066 M00S00065.comstio +++| PRINTI SPACE 4,15
00067 M00S00066.comstio +++|** PRINTI - WRITES AN INTEGER IN DECIMAL FORMAT TO A TEXT FILE.
00068 M00S00067.comstio +++|*
00069 M00S00068.comstio +++|* THIS MACRO CONVERTS A NUMBER TO DECIMAL CHARACTERS AND
00070 M00S00069.comstio +++|* APPENDS THE CHARACTERS TO THE CURRENT LINE BEING WRITTEN
00071 M00S00070.comstio +++|* TO A TEXT FILE.
00072 M00S00071.comstio +++|*
00073 M00S00072.comstio +++|* PRINTI FILE,NUM,N
00074 M00S00073.comstio +++|* WHERE -
00075 M00S00074.comstio +++|* FILE = THE FILE TO WRITE TO.
00076 M00S00075.comstio +++|* NUM = NUMBER TO CONVERT TO CHARACTERS AND APPEND.
00077 M00S00076.comstio +++|* = *, IF (X1) CONTAINS THE NUMBER TO CONVERT.
00078 M00S00077.comstio +++|* N = NUMBER OF CHARACTERS TO APPEND TO LINE.
00079 M00S00078.comstio +++|
00080 M00S00079.comstio +++|
00081 M00S00080.comstio +++| PURGMAC PRINTI
00082 M00S00081.comstio +++| PRINTI MACRO FILE,NUM,N
00083 M00S00082.comstio +++| IFC NE,/NUM/*/,1
00084 M00S00083.comstio +++| R= A1,NUM
00085 M00S00084.comstio +++| RJ CTI CONVERT TO DECIMAL DISPLAY CODE WITH LEA
00086 M00S00085.comstio +++| R= X2,FILE
00087 M00S00086.comstio +++| IFC NE,*N**
00088 M00S00087.comstio +++| SB4 B6-N+10
00089 M00S00088.comstio +++| SB3 B4+B4
00090 M00S00089.comstio +++| SB4 B3+B4
00091 M00S00090.comstio +++| SB4 B4+B4
00092 M00S00091.comstio +++| LX3 B4
00093 M00S00092.comstio +++| R= B6,N
00094 M00S00093.comstio +++| ENDIF
00095 M00S00094.comstio +++| RJ WRC= WRITE CHARACTERS TO TEXT FILE
00096 M00S00095.comstio +++| ENDM
00097 M00S00096.comstio +++| PRINTL SPACE 4,15
00098 M00S00097.comstio +++|** PRINTL - WRITE LINE TO A TEXT FILE.
00099 M00S00098.comstio +++|*
00100 M00S00099.comstio +++|* PRINTL ADDS LINES TO A TEXT FILE.
00101 M00S00100.comstio +++|*
00102 M00S00101.comstio +++|* PRINTL FILE,CH,N
00103 M00S00102.comstio +++|* WHERE -
00104 M00S00103.comstio +++|* FILE = THE FILE TO WRITE TO.
00105 M00S00104.comstio +++|* CH = CHARACTERS TO APPEND.
00106 M00S00105.comstio +++|* = *, IF (A3), (X3) CONTAINS FIRST WORD OF CHARACTERS.
00107 M00S00106.comstio +++|* $NNNN, IF NNNN IS THE ADDRESS OF THE CHARACTERS TO
00108 M00S00107.comstio +++|* APPEND.
00109 M00S00108.comstio +++|* IF CH IS NOT PRESENT THEN THE CURRENT LINE IS WRITTEN
00110 M00S00109.comstio +++|* AND THE NEXT LINE INITIALIZED TO NULL.
00111 M00S00110.comstio +++|* N = NUMBER OF CHARACTERS, 0 IMPLIES PRINT ALL CHARACTERS
00112 M00S00111.comstio +++|* UNTIL Z LINE TERMINATOR FOUND.
00113 M00S00112.comstio +++|
00114 M00S00113.comstio +++|
00115 M00S00114.comstio +++| PRINTL MACRO FILE,CH,N
00116 M00S00115.comstio +++| R= X2,FILE
00117 M00S00116.comstio +++| IFC NE,/CH//,1
00118 M00S00117.comstio +++| PRINTC X2,(CH),N
00119 M00S00118.comstio +++| RJ WRL= WRITE LINE
00120 M00S00119.comstio +++| ENDM
00121 M00S00120.comstio +++| PRINTO SPACE 4,15
00122 M00S00121.comstio +++|** PRINTO - WRITES AN INTEGER IN OCTAL FORMAT TO A TEXT FILE.
00123 M00S00122.comstio +++|*
00124 M00S00123.comstio +++|* THIS MACRO CONVERTS A NUMBER TO OCTAL CHARACTERS
00125 M00S00124.comstio +++|* AND APPENDS A SPECIFIED NUMBER OF CHARACTERS TO
00126 M00S00125.comstio +++|* THE CURRENT LINE BEING WRITTEN TO A TEXT FILE.
00127 M00S00126.comstio +++|*
00128 M00S00127.comstio +++|* PRINTO FILE,NUM,N
00129 M00S00128.comstio +++|* WHERE -
00130 M00S00129.comstio +++|* FILE = THE FILE TO WRITE TO.
00131 M00S00130.comstio +++|* NUM = NUMBER TO CONVERT TO CHARACTERS AND APPEND.
00132 M00S00131.comstio +++|* = *, IF (X1) CONTAINS THE NUMBER TO CONVERT.
00133 M00S00132.comstio +++|* N = NUMBER OF CHARACTERS TO APPEND TO LINE.
00134 M00S00133.comstio +++|
00135 M00S00134.comstio +++|
00136 M00S00135.comstio +++| PURGMAC PRINTO
00137 M00S00136.comstio +++| PRINTO MACRO FILE,NUM,N
00138 M00S00137.comstio +++| IFC NE,/NUM/*/,1
00139 M00S00138.comstio +++| R= A1,NUM
00140 M00S00139.comstio +++| RJ CTO CONVERT TO OCTAL DISPLAY CODE WITH LEADI
00141 M00S00140.comstio +++| R= X2,FILE
00142 M00S00141.comstio +++| IFC NE,*N**
00143 M00S00142.comstio +++| SB4 B6-N+10
00144 M00S00143.comstio +++| SB3 B4+B4
00145 M00S00144.comstio +++| SB4 B3+B4
00146 M00S00145.comstio +++| SB4 B4+B4
00147 M00S00146.comstio +++| LX3 B4
00148 M00S00147.comstio +++| R= B6,N
00149 M00S00148.comstio +++| ENDIF
00150 M00S00149.comstio +++| RJ WRC= WRITE CHARACTERS TO TEXT FILE
00151 M00S00150.comstio +++| ENDM
00152 M00S00151.comstio +++| RESET SPACE 4,10
00153 M00S00152.comstio +++|** RESET - RESET TEXT FILE FOR TEXTIO MACROS.
00154 M00S00153.comstio +++|*
00155 M00S00154.comstio +++|* RESET FILE,OP
00156 M00S00155.comstio +++|* FILE = FILE TO RESET.
00157 M00S00156.comstio +++|* OP = OPERATION TO RESET FOR (READ OR WRITE).
00158 M00S00157.comstio +++|
00159 M00S00158.comstio +++|
00160 M00S00159.comstio +++| RESET MACRO FILE,OP
00161 M00S00160.comstio +++| SX2 FILE
00162 M00S00161.comstio +++| SA1 X2+B1
00163 M00S00162.comstio +++| SX6 X1
00164 M00S00163.comstio +++| IFC EQ,*OP*WRITE*,1
00165 M00S00164.comstio +++| SA6 A1+B1 IN
00166 M00S00165.comstio +++| IFC EQ,*OP*READ*,1
00167 M00S00166.comstio +++| SA6 X2+3 OUT
00168 M00S00167.comstio +++| SX6 B0 SET LINE POINTERS IN FET
00169 M00S00168.comstio +++| PX6 X6
00170 M00S00169.comstio +++| SA6 X2+5
00171 M00S00170.comstio +++| ENDM
00172 M00S00171.comstio +++| SPACE 4
00173 M00S00172.comstio +++| BASE *
00174 M00S00173.comstio +++| ENDX