*DECK NEWOUT
USETEXT COMCBEG 
USETEXT COMADEF 
USETEXT COMACBX 
USETEXT COMAFET 
    PROC NEWOUT;
# TITLE NEWOUT - CREATE NEW OUTPUT EXTENT.  # 
  
      BEGIN  # NEWOUT # 
  
# 
**    NEWOUT - CREATE NEW OUTPUT EXTENT.
* 
*     NEWOUT CREATES A NEW OUTPUT EXTENT. 
* 
*     PROC NEWOUT 
* 
*     ENTRY 
* 
* 
*     EXIT
* 
* 
* 
* 
* 
*     PROCESS    IF OUTPUT EXTENT IN ONE PART (ALLOW FOR POSSIBLE 
*                  CONTROL WORD AS LAST WORD OF BUFFER) 
*                THEN 
*                  SET UP CVT FOR ONE PART EXTENT.
*                ELSE 
*                  SET WRAP AROUND FLAG.
*                  CALCULATE PART 2 CHARACTER SIZE AND SAVE.
*                  SET UP CVT FOR PART 1. 
* 
****  PROC NEWOUT - XREF LIST BEGIN 
# 
  
      XREF
        BEGIN 
        FUNC MODOUT I;               # MODULO OUTPUT BUFFER POINTER # 
        END 
  
# 
****  PROC NEWOUT - XREF LIST END.
# 
  
  
CONTROL EJECT;
  
      IF OTCWS
      THEN
        BEGIN 
        OUTPTR = MODOUT(1) - 1; 
        IF MODOUT(1) LE MODOUT(OTWDSIZE-OTNUMCWS) 
        THEN
          BEGIN 
          OUTBLKBYT = (OTWDSIZE - OTNUMCWS) * OTCHARPWD;
          END 
  
        ELSE
          BEGIN 
          OTWRAP = TRUE;
          OUTBLKBYT = (PFETLIM - PFETIN - 1) * OTCHARPWD; 
          OTPART2 = (OTWDSIZE - OTNUMCWS) * OTCHARPWD - OUTBLKBYT;
          END 
        END 
  
      ELSE
        BEGIN 
        OUTPTR = PFETIN-1;
        IF PFETIN LE MODOUT(OTWDSIZE) 
        THEN
          BEGIN 
          OUTBLKBYT = OTWDSIZE * OTCHARPWD; 
          END 
  
        ELSE
          BEGIN 
          OTWRAP = TRUE;
          OUTBLKBYT = (PFETLIM - PFETIN) * OTCHARPWD; 
          OTPART2 = OTWDSIZE * OTCHARPWD - OUTBLKBYT; 
          END 
        END 
  
      OTEXTBYT = OUTBLKBYT; 
      RETURN; 
  
      END  # NEWOUT # 
  
    TERM
