Deck TCOMND

Library Member Format: MODIFY

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M00S00001.tcomnd  +++|          IDENT  TCOMND,FWA
00002  M00S00002.tcomnd  +++|          TITLE  TCOMND - TERMINAL COMMAND PROCESSOR.
00003  M00S00003.tcomnd  +++|          ABS
00004  M00S00004.tcomnd  +++|          ENTRY  APPSW
00005  M00S00005.tcomnd  +++|          ENTRY  ASCII
00006  M00S00006.tcomnd  +++|          ENTRY  CSET
00007  M00S00007.tcomnd  +++|          ENTRY  EFFECT
00008  M00S00008.tcomnd  +++|          ENTRY  PARITY
00009  M00S00009.tcomnd  +++|          ENTRY  RFL=
00010  M00S00010.tcomnd  +++|*COMMENT  TCOMND - TERMINAL COMMAND PROCESSOR.
Line S00011 Modification History
M01 (Removed by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00011  M01S00011.281l803 ---|          COMMENT COPYRIGHT CONTROL DATA CORPORATION.
Line S00001 Modification History
M01 (Added by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00012  M01S00001.281l803 +++|          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00013  M00S00012.tcomnd  +++|
00014  M00S00013.tcomnd  +++|          SYSCOM B1
00015  M00S00014.tcomnd  +++|          SPACE  4,2
00016  M00S00015.tcomnd  +++|***       TCOMND - TERMINAL COMMAND PROCESSOR.
00017  M00S00016.tcomnd  +++|*         P. D. FARRELL.  74/08/28.
00018  M00S00017.tcomnd  +++|          SPACE  4,3
00019  M00S00018.tcomnd  +++|***            TCOMND PROCESSES TIME SHARING TERMINAL COMMANDS.
00020  M00S00019.tcomnd  +++|*         THAT HAVE BEEN ENTERED BY MEANS OF CONTROL CARD CALLS
00021  M00S00020.tcomnd  +++|*         RATHER THAN DIRECTLY THROUGH A TERMINAL.
00022  M00S00021.tcomnd  +++|          SPACE  4,10
00023  M00S00022.tcomnd  +++|***       APPLICATION SWITCH COMMAND FORMATS.
00024  M00S00023.tcomnd  +++|*
00025  M00S00024.tcomnd  +++|*         APPSW
00026  M00S00025.tcomnd  +++|*
00027  M00S00026.tcomnd  +++|*         APPSW(ANAME[,Z.])
00028  M00S00027.tcomnd  +++|*
00029  M00S00028.tcomnd  +++|*         APPSW(AP=ANAME[,Z.])
00030  M00S00029.tcomnd  +++|*
00031  M00S00030.tcomnd  +++|*                ANAME = NETWORK APPLICATION NAME.  IF NO APPLICATION
00032  M00S00031.tcomnd  +++|*                        NAME IS SPECIFIED, THE USER WILL BE RETURNED
00033  M00S00032.tcomnd  +++|*                        TO THEIR PRIMARY APPLICATION.
00034  M00S00033.tcomnd  +++|*
00035  M00S00034.tcomnd  +++|*                Z = Z PARAMETER OPTION.  IF SPECIFIED, THE REMAINDER
00036  M00S00035.tcomnd  +++|*                    OF THE COMMAND LINE WILL BE PASSED TO THE NEW
00037  M00S00036.tcomnd  +++|*                    APPLICATION.
00038  M00S00037.tcomnd  +++|*
00039  M00S00038.tcomnd  +++|*         THE APPLICATION SWITCH COMMAND IS PROCESSED AS FOLLOWS-
00040  M00S00039.tcomnd  +++|*
00041  M00S00040.tcomnd  +++|*           TLX WILL BE CALLED TO NOTIFY IAF OF THE APPLICATION SWITCH.
00042  M00S00041.tcomnd  +++|*           TLX WILL BE CALLED TO RESTART THE JOB WHEN THE CONNECTION
00043  M00S00042.tcomnd  +++|*           RETURNS.
00044  M00S00043.tcomnd  +++|          SPACE  4,4
00045  M00S00044.tcomnd  +++|***       DAYFILE MESSAGES.
00046  M00S00045.tcomnd  +++|*
00047  M00S00046.tcomnd  +++|*         *ERROR IN COMMAND PARAMETERS.* = A COMMAND PARAMETER
00048  M00S00047.tcomnd  +++|*                WAS ILLEGAL.
00049  M00S00048.tcomnd  +++|          SPACE  4,3
00050  M00S00049.tcomnd  +++|***       OPERATOR MESSAGES.
00051  M00S00050.tcomnd  +++|*
00052  M00S00051.tcomnd  +++|*         NONE.
00053  M00S00052.tcomnd  +++|          SPACE  4
00054  M00S00053.tcomnd  +++|*CALL     COMCMAC
00055  M00S00054.tcomnd  +++|          TITLE  COMMAND PROCESSORS.
00056  M00S00055.tcomnd  +++|          ORG    120B
00057  M00S00056.tcomnd  +++| FWA      BSS    0           DEFINE LOAD ADDRESS
00058  M00S00057.tcomnd  +++| APP      SPACE  4,10
00059  M00S00058.tcomnd  +++|**        APP - APPLICATION SWITCH PROCESSOR.
00060  M00S00059.tcomnd  +++|*
00061  M00S00060.tcomnd  +++|*         THE APPLICATION SWITCH COMMAND CAUSES A USER TO BE SWITCHED
00062  M00S00061.tcomnd  +++|*         TO THE SECONDARY APPLICATION SPECIFIED IN THE COMMAND.  IF
00063  M00S00062.tcomnd  +++|*         THE CURRENT APPLICATION IS A SECONDARY APPLICATION, THE
00064  M00S00063.tcomnd  +++|*         *ABORT* OR NULL APPLICATION NAMES MAY BE SPECIFED TO RETURN
00065  M00S00064.tcomnd  +++|*         THE USER TO THE PRIMARY APPLICATION.
00066  M00S00065.tcomnd  +++|*
00067  M00S00066.tcomnd  +++|*         CALLS  PZO, UPC.
00068  M00S00067.tcomnd  +++|
00069  M00S00068.tcomnd  +++|
00070  M00S00069.tcomnd  +++| APPSW    BSS    0           ENTRY
00071  M00S00070.tcomnd  +++|          SB1    1
00072  M00S00071.tcomnd  +++|          SA5    CCDR        SET COMMAND ADDRESS
00073  M00S00072.tcomnd  +++|          SB7    ARGR        SET PARAMETER ADDRESS
00074  M00S00073.tcomnd  +++|          RJ     UPC         UNPACK COMMAND
00075  M00S00074.tcomnd  +++|          NZ     X6,ERR      IF PARAMETER ERROR
00076  M00S00075.tcomnd  +++|          SA1    ARGR+B1     READ FIRST PARAMETER
00077  M00S00076.tcomnd  +++|          MX0    42
00078  M00S00077.tcomnd  +++|          BX6    X0*X1
00079  M00S00078.tcomnd  +++|          ZR     X6,APP2     IF NO PARAMETER SPECIFIED
00080  M00S00079.tcomnd  +++|          SA2    =2LAP
00081  M00S00080.tcomnd  +++|          BX2    X6-X2
00082  M00S00081.tcomnd  +++|          BX6    -X0*X1      CHECK SEPARATOR
00083  M00S00082.tcomnd  +++|          NZ     X2,APP1     IF NOT *AP* PARAMETER
00084  M00S00083.tcomnd  +++|          SA2    =1R=
00085  M00S00084.tcomnd  +++|          BX6    X6-X2
00086  M00S00085.tcomnd  +++|          NZ     X6,ERR      IF *AP* NOT EQUATED
00087  M00S00086.tcomnd  +++|          SA1    A1+B1       GET APPLICATION NAME
00088  M00S00087.tcomnd  +++| APP1     BX6    X0*X1
00089  M00S00088.tcomnd  +++|          SA6    APPA        SAVE APPLICATION NAME
00090  M00S00089.tcomnd  +++|          SA1    A1+B1       READ NEXT PARAMETER
00091  M00S00090.tcomnd  +++|          ZR     X1,APP2     IF NO MORE PARAMETERS
00092  M00S00091.tcomnd  +++|          SA2    =1LZ
00093  M00S00092.tcomnd  +++|          BX6    X0*X1
00094  M00S00093.tcomnd  +++|          BX2    X6-X2
00095  M00S00094.tcomnd  +++|          NZ     X2,ERR      IF NOT *Z* PARAMETER
00096  M00S00095.tcomnd  +++|          SB7    APPA+B1     SET WRITE BUFFER ADDRESS
00097  M00S00096.tcomnd  +++|          SB4    APPB        SET END OF WRITE BUFFER
00098  M00S00097.tcomnd  +++|          RJ     PZO         PROCESS *Z* OPTION
00099  M00S00098.tcomnd  +++| APP2     SX7    APPA        SET APPLICATION NAME ADDRESS
00100  M00S00099.tcomnd  +++|          SX0    22B         SET *TLX* REQUEST NUMBER
00101  M00S00100.tcomnd  +++|          TLX    X0,X7       ENTER *TLX* SYSTEM REQUEST
00102  M00S00101.tcomnd  +++|          SX0    23B         SET *TLX* REQUEST NUMBER
00103  M00S00102.tcomnd  +++|          EQ     TLX         CALL *TLX*
00104  M00S00103.tcomnd  +++|
00105  M00S00104.tcomnd  +++|
00106  M00S00105.tcomnd  +++| APPA     BSSZ   6           APPLICATION BUFFER
00107  M00S00106.tcomnd  +++| APPB     CON    0           END OF BUFFER
00108  M00S00107.tcomnd  +++| ASCII    SPACE  4,10
00109  M00S00108.tcomnd  +++|***       ASCII.
00110  M00S00109.tcomnd  +++|*
00111  M00S00110.tcomnd  +++|*         SET EXTENDED (ASCII) MODE.
00112  M00S00111.tcomnd  +++|
00113  M00S00112.tcomnd  +++|
00114  M00S00113.tcomnd  +++| ASCII    SB2    0           SET PARAMETER LIMIT
00115  M00S00114.tcomnd  +++|          RJ     PRS
00116  M00S00115.tcomnd  +++|          SX0    3           SET FUNCTION CODE = 3
00117  M00S00116.tcomnd  +++|          SX7    11B         SET ARGUMENT
00118  M00S00117.tcomnd  +++|          EQ     TLX
00119  M00S00118.tcomnd  +++| CSET     SPACE  4,10
00120  M00S00119.tcomnd  +++|***       CSET(M)
00121  M00S00120.tcomnd  +++|*
00122  M00S00121.tcomnd  +++|*         SET CHARACTER SET MODE M.
00123  M00S00122.tcomnd  +++|*
00124  M00S00123.tcomnd  +++|*                M = *NORMAL*.
00125  M00S00124.tcomnd  +++|*                  = *ASCII*.
00126  M00S00125.tcomnd  +++|*                  = *EXTEND*.
00127  M00S00126.tcomnd  +++|
00128  M00S00127.tcomnd  +++|
00129  M00S00128.tcomnd  +++| CSET     SB2    1           SET PARAMETER LIMIT
00130  M00S00129.tcomnd  +++|          RJ     PRS         CHECK PARAMETERS
00131  M00S00130.tcomnd  +++|          SX0    3           SET FUNCTION CODE = 3
00132  M00S00131.tcomnd  +++|          SA1    =6LNORMAL
00133  M00S00132.tcomnd  +++|          BX7    X5-X1
00134  M00S00133.tcomnd  +++|          ZR     X7,CST1     IF *NORMAL*
00135  M00S00134.tcomnd  +++|          SX7    B1
00136  M00S00135.tcomnd  +++|          SA1    =6LEXTEND
00137  M00S00136.tcomnd  +++|          SA2    =5LASCII
00138  M00S00137.tcomnd  +++|          BX1    X5-X1
00139  M00S00138.tcomnd  +++|          ZR     X1,CST1     IF *EXTEND*
00140  M00S00139.tcomnd  +++|          BX2    X5-X2
00141  M00S00140.tcomnd  +++|          NZ     X2,ERR      IF NOT *ASCII*
00142  M00S00141.tcomnd  +++| CST1     SX7    X7+10B      SET ENTRY MODE RESET BIT
00143  M00S00142.tcomnd  +++|          EQ     TLX
00144  M00S00143.tcomnd  +++| EFFECT   SPACE  4,10
00145  M00S00144.tcomnd  +++|***       EFFECT(A)
00146  M00S00145.tcomnd  +++|*
00147  M00S00146.tcomnd  +++|*         SET USER OR SYSTEM SUPPLIED FORMAT EFFECTOR MODE.
00148  M00S00147.tcomnd  +++|*
00149  M00S00148.tcomnd  +++|*         A = *SYSTEM*, SET SYSTEM SUPPLIED FORMAT EFFECTOR MODE.
00150  M00S00149.tcomnd  +++|*           = *USER*,   SET USER SUPPLIED FORMAT EFFECTOR MODE.
00151  M00S00150.tcomnd  +++|*           = (OMITTED) = *SYSTEM*.
00152  M00S00151.tcomnd  +++|
00153  M00S00152.tcomnd  +++|
00154  M00S00153.tcomnd  +++| EFFECT   SB2    1           SET PARAMETER LIMIT
00155  M00S00154.tcomnd  +++|          RJ     PRS
00156  M00S00155.tcomnd  +++|          SX0    21B         SET FUNCTION CODE = 21B
00157  M00S00156.tcomnd  +++|          ZR     X5,TLX      IF NO PARAMETER
00158  M00S00157.tcomnd  +++|          SA1    =6LSYSTEM
00159  M00S00158.tcomnd  +++|          SA2    =4LUSER
00160  M00S00159.tcomnd  +++|          SA3    =2LON
00161  M00S00160.tcomnd  +++|          SA4    =3LOFF
00162  M00S00161.tcomnd  +++|          BX1    X5-X1
00163  M00S00162.tcomnd  +++|          BX2    X5-X2
00164  M00S00163.tcomnd  +++|          BX3    X5-X3
00165  M00S00164.tcomnd  +++|          BX4    X5-X4
00166  M00S00165.tcomnd  +++|          ZR     X1,TLX      IF *SYSTEM*
00167  M00S00166.tcomnd  +++|          ZR     X3,TLX      IF *ON*
00168  M00S00167.tcomnd  +++|          SX0    20B         SET FUNCTION CODE = 20B
00169  M00S00168.tcomnd  +++|          ZR     X2,TLX      IF *USER*
00170  M00S00169.tcomnd  +++|          ZR     X4,TLX      IF *OFF*
00171  M00S00170.tcomnd  +++|          EQ     ERR         IF NONE OF THE ABOVE
00172  M00S00171.tcomnd  +++| PARITY   SPACE  4,10
00173  M00S00172.tcomnd  +++|***       PARITY(P)
00174  M00S00173.tcomnd  +++|*
00175  M00S00174.tcomnd  +++|*         SET PARITY P.
00176  M00S00175.tcomnd  +++|*
00177  M00S00176.tcomnd  +++|*         P = *ODD*.
00178  M00S00177.tcomnd  +++|*           = *EVEN*.
00179  M00S00178.tcomnd  +++|*           = (OMITTED) = *ODD*.
00180  M00S00179.tcomnd  +++|
00181  M00S00180.tcomnd  +++|
00182  M00S00181.tcomnd  +++| PARITY   SB2    1           SET PARAMETER LIMIT
00183  M00S00182.tcomnd  +++|          RJ     PRS
00184  M00S00183.tcomnd  +++|          SX0    4           SET FUNCTION CODE = 4
00185  M00S00184.tcomnd  +++|          SX7    1           SET ODD PARITY
00186  M00S00185.tcomnd  +++|          ZR     X5,TLX      IF NO PARAMETER
00187  M00S00186.tcomnd  +++|          SA1    =3LODD
00188  M00S00187.tcomnd  +++|          SA2    =4LEVEN
00189  M00S00188.tcomnd  +++|          BX1    X5-X1
00190  M00S00189.tcomnd  +++|          IX2    X5-X2
00191  M00S00190.tcomnd  +++|          ZR     X1,TLX      IF *ODD*
00192  M00S00191.tcomnd  +++|          NZ     X2,ERR      IF NOT *EVEN*
00193  M00S00192.tcomnd  +++|          SX7    B0          SET EVEN PARITY
00194  M00S00193.tcomnd  +++|          EQ     TLX
00195  M00S00194.tcomnd  +++|          TITLE  SUBROUTINES.
00196  M00S00195.tcomnd  +++| ERR      SPACE  4,10
00197  M00S00196.tcomnd  +++|**        ERR - PROCESS PARAMETER ERROR.
00198  M00S00197.tcomnd  +++|
00199  M00S00198.tcomnd  +++|
00200  M00S00199.tcomnd  +++| ERR      BSS    0
00201  M00S00200.tcomnd  +++|          MESSAGE (=C* ERROR IN COMMAND PARAMETERS.*)
00202  M00S00201.tcomnd  +++|          ABORT
00203  M00S00202.tcomnd  +++| PRS      SPACE  4,10
00204  M00S00203.tcomnd  +++|**        PRS - PRESET PROGRAM.
00205  M00S00204.tcomnd  +++|*
00206  M00S00205.tcomnd  +++|*         ENTRY  (B2) = MAXIMUM NUMBER OF ALLOWABLE PARAMETERS.
00207  M00S00206.tcomnd  +++|*
00208  M00S00207.tcomnd  +++|*         EXIT   (X5) = FIRST PARAMETER.
00209  M00S00208.tcomnd  +++|*                (A5) = ADDRESS OF FIRST PARAMETER.
00210  M00S00209.tcomnd  +++|*                (B3) = PARAMETER COUNT.
00211  M00S00210.tcomnd  +++|
00212  M00S00211.tcomnd  +++|
00213  M00S00212.tcomnd  +++| PRS      SUBR               ENTRY/EXIT
00214  M00S00213.tcomnd  +++|          SB1    1           SET CONSTANT 1
00215  M00S00214.tcomnd  +++|          SA5    ACTR        READ PARAMETER COUNT
00216  M00S00215.tcomnd  +++|          SB3    X5
00217  M00S00216.tcomnd  +++|          GT     B3,B2,ERR   IF INVALID PARAMETER COUNT
00218  M00S00217.tcomnd  +++|          SA5    B1+B1       READ FIRST PARAMETER
00219  M00S00218.tcomnd  +++|          EQ     PRSX        RETURN
00220  M00S00219.tcomnd  +++| PZO      SPACE  4,10
00221  M00S00220.tcomnd  +++|**        PZO - PROCESS *Z* OPTION.
00222  M00S00221.tcomnd  +++|*
00223  M00S00222.tcomnd  +++|*         ENTRY  (A5) = ADDRESS OF *Z* PARAMETER.
00224  M00S00223.tcomnd  +++|*                (B7) = BEGINNING ADDRESS OF WRITE BUFFER.
00225  M00S00224.tcomnd  +++|*                (B4) = END OF WRITE BUFFER.
00226  M00S00225.tcomnd  +++|*
00227  M00S00226.tcomnd  +++|*         EXIT   BUFFER CONTAINS THE CHARACTERS FOLLOWING THE *Z*
00228  M00S00227.tcomnd  +++|*                PARAMETER.
00229  M00S00228.tcomnd  +++|
00230  M00S00229.tcomnd  +++|
00231  M00S00230.tcomnd  +++| PZO      SUBR               ENTRY/EXIT
00232  M00S00231.tcomnd  +++|          SB5    10D         INITIALIZE CHARACTERS LEFT IN READ WORD
00233  M00S00232.tcomnd  +++|          SB3    B1          INITIALIZE END-OF-LINE FLAG
00234  M00S00233.tcomnd  +++|          SX6    B0          CLEAR WRITE WORD
00235  M00S00234.tcomnd  +++|          MX0    6
00236  M00S00235.tcomnd  +++|          SB6    B5+         INITIALIZE ROOM LEFT IN WRITE WORD
00237  M00S00236.tcomnd  +++|          MX1    -12
00238  M00S00237.tcomnd  +++|          SA3    =1L.
00239  M00S00238.tcomnd  +++|          SA4    =1L)
00240  M00S00239.tcomnd  +++|          SA5    A5+         READ FIRST WORD
00241  M00S00240.tcomnd  +++| PZO1     BX2    X0*X5       FIND COMMAND TERMINATOR
00242  M00S00241.tcomnd  +++|          LX5    6
00243  M00S00242.tcomnd  +++|          SB5    B5-B1
00244  M00S00243.tcomnd  +++|          BX7    X2-X3
00245  M00S00244.tcomnd  +++|          ZR     X7,PZO2     IF COMMAND TERMINATOR
00246  M00S00245.tcomnd  +++|          BX7    X2-X4
00247  M00S00246.tcomnd  +++|          NZ     X7,PZO1     IF NOT COMMAND TERMINATOR
00248  M00S00247.tcomnd  +++| PZO2     BX2    X0*X5       GET NEXT CHARACTER
00249  M00S00248.tcomnd  +++|          SB3    B3-B1
00250  M00S00249.tcomnd  +++|          ZR     X2,PZO3     IF ZERO CHARACTER
00251  M00S00250.tcomnd  +++|          SB3    B1          RESET END-OF-LINE FLAG
00252  M00S00251.tcomnd  +++| PZO3     BX6    X6+X2       ADD CHARACTER TO WRITE WORD
00253  M00S00252.tcomnd  +++|          SB6    B6-B1
00254  M00S00253.tcomnd  +++|          LX6    6
00255  M00S00254.tcomnd  +++|          NZ     B6,PZO4     IF WRITE WORD NOT FULL
00256  M00S00255.tcomnd  +++|          SA6    B7+         WRITE FULL WORD
00257  M00S00256.tcomnd  +++|          NG     B3,PZOX     IF END-OF-LINE FOUND
00258  M00S00257.tcomnd  +++|          SB7    B7+1       INCREMENT POINTER
00259  M00S00258.tcomnd  +++|          GE     B7,B4,PZOX  IF END OF WRITE BUFFER
00260  M00S00259.tcomnd  +++|          SX6    B0+         RESET REGISTERS
00261  M00S00260.tcomnd  +++|          SB6    10D
00262  M00S00261.tcomnd  +++| PZO4     SB5    B5-B1
00263  M00S00262.tcomnd  +++|          LX5    6
00264  M00S00263.tcomnd  +++|          NZ     B5,PZO2     IF READ CHARACTERS LEFT
00265  M00S00264.tcomnd  +++|          SB5    10D         RESET REGISTERS
00266  M00S00265.tcomnd  +++|          SA5    A5+B1       GET NEXT WORD
00267  M00S00266.tcomnd  +++|          EQ     PZO2        CONTINUE
00268  M00S00267.tcomnd  +++| TLX      SPACE  4,10
00269  M00S00268.tcomnd  +++|**        TLX - ENTER TELEX SYSTEM REQUEST.
00270  M00S00269.tcomnd  +++|*
00271  M00S00270.tcomnd  +++|*         ENTRY  (X0) = FUNCTION CODE.
00272  M00S00271.tcomnd  +++|*                (X7) = ARGUMENT.
00273  M00S00272.tcomnd  +++|
00274  M00S00273.tcomnd  +++|
00275  M00S00274.tcomnd  +++| TLX      BSS    0
00276  M00S00275.tcomnd  +++|          TLX    X0,X7       ENTER TELEX SYSTEM REQUEST
00277  M00S00276.tcomnd  +++|          ENDRUN
00278  M00S00277.tcomnd  +++|          SPACE  4
00279  M00S00278.tcomnd  +++|**        COMMON DECKS.
00280  M00S00279.tcomnd  +++|
00281  M00S00280.tcomnd  +++|
00282  M00S00281.tcomnd  +++|*CALL     COMCSYS
00283  M00S00282.tcomnd  +++|*CALL     COMCUPC
00284  M00S00283.tcomnd  +++|
00285  M00S00284.tcomnd  +++|          USE    //
00286  M00S00285.tcomnd  +++| RFL=     BSS    0
00287  M00S00286.tcomnd  +++|
00288  M00S00287.tcomnd  +++|          END