*DECK HTCHAR
USETEXT NIPDEF
USETEXT SUPMSG
USETEXT ACNB
USETEXT NCNB
USETEXT AHEADER 
USETEXT AT
USETEXT PT
USETEXT PARAMS
PRGM HTCHAR;                 # SEND TCH/TCHAR TO APPLICATION           #
STARTIMS; 
 #
*1DC  HTCHAR
*     1. PROC NAME           AUTHOR              DATE 
*        HTCHAR              C. BITTNER          82/06/01 
* 
*     2. FUNCTIONAL DESCRIPTION 
*        SEND TCH/TCHAR (TERMINAL CHARACTERISTICS CHANGED SM) 
*        TO APPLICATION.
* 
*     3. METHOD USED
*        ALLOCATE BUFFER FOR MESSAGE
*        SET UP APPLICATION BLOCK HEADER
*        SET UP THE TEXT FOR TCH/TCHAR SM 
*        QUEUE SM ON APPLICATION-S ACB
* 
*     4. ENTRY PARAMETERS 
*        PARAMS1 - ACNB ADDRESS 
* 
*     5. EXIT PARAMETERS
*        NONE 
* 
*     6. COMDECKS CALLED AND SYMPL TEXTS USED 
*        NIPDEF     SUPMSG     ACNB 
*        NCNB     AHEADER     AT
*        PT     PARAMS     OSSIZE 
* 
*     7. ROUTINES AND OVERLAYS CALLED 
*        BLINK - LINK MESSAGE ON DATA RING
*        MGETS - ALLOCATE BUFFER
*        OSCHAPP - SCHEDULE APPLICATION 
*        XTRACE - TRACE PROCEDURE CALL
* 
*     8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION 
*        THIS IS A SECONDARY OVERLAY CALLED BY HCSTTP.
*        W A R N I N G - THIS PROGRAM CANNOT EXCEED THE SECONDARY 
*CALL OSSIZE
 #
STOPIMS;
  
# 
 PARAMS1 - ACNB ADDRESS 
# 
  
# 
      EXTERNAL VARIABLES
# 
 XREF 
   BEGIN
   PROC BLINK;               # QUEUE MESSAGE ON APPLICATION-S ACB      #
   PROC MGETS;               # ALLOCATE EMPTY BUFFER                   #
   PROC OSCHAPP;             # SCHEDULE APPLICATION                    #
   PROC XTRACE;              # RECORD PROCEDURE CALL                   #
   LABEL RJMAIN;             # RETURN ADDRESS IN OVLCALL               #
   END
  
# 
      INTERNAL VARIABLES
# 
      ITEM BUFADDR;          # BUFFER FOR SM                           #
  
#**********************************************************************#
  
      BEGIN 
  
      CONTROL IFEQ DEBUG,1; 
        XTRACE("TCHAR");
      CONTROL FI; 
  
# 
      GET BUFFER FOR TCH/TCHAR SM 
# 
  
      MGETS(LTCH + BLKHSIZE + ABHSIZE,BUFADDR,TRUE);
  
# 
      SET UP APPLICATION BLOCK HEADER 
# 
  
      P<AHEADER> = BUFADDR + BLKHSIZE;  # BASE ABH                     #
      ABHABT[0] = APPCMD;  # BLOCK TYPE                                #
      ABHACT[0] = CT60TRANS;  # CHARACTER TYPE-TRANSPARENT             #
      ABHTLC[0] = LTCH;      # TEXT LENGTH                             #
  
# 
      SET UP TEXT FOR TCH/TCHAR 
# 
  
      P<SUPMSG> = BUFADDR + BLKHSIZE + ABHSIZE;  # FWA OF TEXT         #
      PFCSFC[0] = TCHTCH;  # SET FUNCTION CODE                         #
      P<ACNB> = PARAMS1;  # ACNB ADDRESS                               #
      P<NCNB> = ACNBNCNB[0]; # NCNB TWIN POINTER                       #
      ACNBTC[0] = NCNBTC[0]; # TERMINAL CLASS                          #
      TCHACN[0] = ACNBACN[0];  # APPLICATION CONNECTION NUMBER         #
      TCHTCL[0] = NCNBTC[0];  # TERMINAL CLASS                         #
      TCHPW[0] = NCNBPW[0];  # PAGE WIDTH                              #
      TCHPL[0] = NCNBPL[0];  # PAGE LENGTH                             #
  
# 
      QUEUE TCH/TCHAR ON APPLICATION-S ACB
# 
  
      BLINK(BUFADDR,ATACBA[ACNBAN[0]]);  # QUEUE MSG ON APP-S ACB      #
      OSCHAPP(ATACBA[ACNBAN[0]]);  # SCHEDULE APPLICATION              #
      GOTO RJMAIN;           # RETURN TO CALLING PROGRAM               #
      END 
TERM
