Common COMSTIO

Library Member Format: MODIFY

Source

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