*COMDECK PTDLCMD
_$J+
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
*                           P T D L C M D                             * 
*                                                                     * 
*                 PROCESS D/L IVT AND PRU COMMAND                     * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
? 
_$R-,G-,I-    NON RECURSIVE, INTERRUPTABLE ?
_ 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
*                                                                     * 
** OVERVIEW - PTDLCMD PROCESSES ALL D/L COMMANDS OF THE FOLLOWING     * 
*             PRIMARY FUNCTION CODES:                                 * 
*               D8CTRL - IVT CONTROL COMMAND                          * 
*               D8BD   - BATCH DEVICE COMMAND                         * 
*               D8BF   - BATCH FILE COMMAND                           * 
*                                                                     * 
** INPUT    - POINTERS TO TCB AND THE COMMAND BUFFER (PARAMETERS)     * 
*                                                                     * 
** OUTPUT   - TCB UPDATED, UPLINE RESPONSES (IF ANY) GENEREATED.      * 
*             RETURNED BUFFER PTR IS NIL (BUFFER IS RELEASED)         * 
*                                                                     * 
** EXTERNAL REFERENCES -                                              * 
*             PTIVTCMD    - PROCESS D/L IVT COMMAND                   * 
*             PBXFER      - TRANSFER CONTROL TO PNCONFIGURE           * 
*             PNCONFIGURE - SVM FN/FV PAIR PROCESSOR                  * 
*                                                                     * 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
? 
PROCEDURE PTDLCMD (T9TCBP : B0BUFPTR; VAR T9BUFP : B0BUFPTR); 
  
VAR 
  T9PFC : INTEGER;                          _PRIMARY FUNCTION CODE     ?
  T9SFC : INTEGER;                          _SECONDARY FUNCTION CODE   ?
  T9BOL : BOOLEAN;
  
BEGIN 
D0BFR := T9BUFP;                            _FOR PNCONFIGURE, SET BUFP ?
WITH D0BFR' DO
  BEGIN 
  T9PFC := ORD (BFDATAC [PFC]);             _GET PRIMARY AND           ?
  T9SFC := ORD (BFDATAC [SFC]);             _SECONDARY FUNCTION CODES  ?
  BFFCD := SFC + 1;                         _SET FCD PASSED SFC        ?
  END;
  
CASE T9PFC OF 
  
  D8BD, 
  D8BF:                                     _BATCH DEVICE/FILE COMMAND ?
    BEGIN 
10: 
    D0IVT := FALSE;                         _SET NOT IVT ASCII STRING  ?
    D0FDT := D0TCBFDT;                      _SET TCB FIELD DESCR. TABLE?
    D0CB  := T9TCBP;                        _SET TCB ADDRESS           ?
    WITH D0CB'.BSTCB DO 
      D0AT := BJTIPTYPT [BSLCBP'.BZTIPTYPE].
              BJJAT [BSDEVTYPE];            _SET TIPS ACTION TABLE     ?
    WITH BRTNJUMP [C1PNCONF] DO 
      PBXFER (JENTADDR, JPAGEVAL);          _CALL PNCONFIGURE          ?
    D0BFR := NIL;                           _CLEAR LOCAL BUFFER POINTER?
    END;
  
  D8CTRL: 
    BEGIN 
    IF T9SFC " D9DEF
    THEN
      GOTO 10;
   _ELSE? 
      T9BOL := PTIVTCMD (D0BFR, T9TCBP,     _PARSE ASCII IVT CMD STRING?
                         C9APPL); 
      D0BFR := NIL;                         _CLEAR LOCAL BUFFER POINTER?
    END;
  
  END; _CASE T9PFC OF?
PBRELZRO (D0BFR, BEDBSIZE);                 _RELEASE CMD BUFFERS       ?
T9BUFP := NIL;                              _CLEAR CALLERS BUFFER PTR  ?
END; _PROCEDURE PTDLCMD?
