*DECK HCHGICT
USETEXT ACB
USETEXT ACNB
USETEXT ACNT
USETEXT NCNB
USETEXT NIPDEF
USETEXT APPSTAT
USETEXT AWLNTRY
USETEXT DEQCOM
USETEXT OVERLAY
USETEXT PARAMS
USETEXT SUPMSG
PRGM HCHGICT; # CHANGE INPUT CHARACTER TYPE FOR ACNB #
STARTIMS;
#
*1DC HCHGICT
*
* 1. PROC NAME AUTHOR DATE
* HCHGICT A. M. PRATT 75/10/10
*
* 2. FUNCTIONAL DESCRIPTION.
* THIS ROUTINE IS RESPONSIBLE FOR CHANGING A ACNB-S INPUT
* CHARACTER TYPE. PROCESS A DC/CICT.
*
* 3. METHOD USED.
* LOCATE THE ACNB. IF NOT FOUND, THEN ISSUE ERR/LGL.
* ELSE LOCATE THE NCNB. VALIDATE THE APPLICATON
* CHARACTER TYPE.
* DT = 5 (INTRA-HOST) ACT = 1,2,3
* DT = 6 (INTER-HOST) ACT =2,3
* DT = 0 (T-A) ACT = 2,3,4
* SET THE INPUT CHARACTER TYPE, SYNCHRONOUS COMMAND IN
* ASCII12 FLAG AND NO TRANSPARENT DATA FLAG
* IN NCNB.
*
* 4. ENTRY PARAMETERS.
* DCACN (DATA CONTROL) APP CONNECTION NUMBER
* DCACT (DATA CONTROL) APP CHARACTER TYPE
* ACBADDR CURRENT APPLICATION"S ACB
* WLADDR CURRENT WORKLIST ENTRY
*
* 5. EXIT PARAMETER.
* NONE
*
* 6. COMDECKS CALLED AND SYMPL TEXTS USED.
* ACB ACNB ACNT APPSTAT NCNB
* NIPDEF OPSIZE OVERLAY PARAMS SUPMSG
*
* 7. ROUTINES CALLED.
* HLGLERR OVL REJECT MSG AND SEND LGL/ERR TO APPL
* OVLCALL LOAD AND EXECUTE OVERLAY
* XTRACE TRACES CALLS
*
* 8. DAYFILE MESSAGES. NONE
*
* THIS PROGRAM IS A PRIMARY OVERLAY LOADED BY SUBROUTINE OVLCALL.
* WHEN EXECUTION HAS COMPLETED, A JUMP IS MADE TO LOCATION RJMAIN
* TO RETURN TO THE CALLING PROGRAM.
*
* W A R N I N G - THIS PROGRAM CANNOT EXCEED THE PRIMARY OVERLAY
*CALL OPSIZE
*
* THIS OVERLAY IS CALLED BY HPPUT.
*
#
STOPIMS;
#
EXTERNAL VARIABLES
#
XREF PROC OVLCALL; # LOAD AND EXECUTE OVERLAY #
XREF PROC XTRACE;
XREF LABEL RJMAIN; # RETURN ADDRESS IN OVLCALL #
#
INTERNAL VARIABLES
#
#**********************************************************************#
BEGIN
CONTROL IFEQ DEBUG,1 ;
XTRACE("HCHGI") ;
CONTROL FI;
P<SUPMSG> = WLADDR + HDRSIZE; # TEXT ADDRESS #
# LOCATE THE ACNB #
P<ACB> = ACBADDR;
P<ACNT> = ACBACNT[0];
P<ACNB> = ACNTACNB[DCACN[0] + ACNTHSIZE - ACNTMINACN[0]];
IF P<ACNB> NQ 0
THEN
BEGIN
P<NCNB> = ACNBNCNB[0]; # NCNB ADDRESS #
IF P<NCNB> NQ 0 AND
(DCACT[0] LS CT60TRANS
OR DCACT[0] GQ ACTMAX
OR (NCNBDT[0] EQ DT$INTE AND
NOT (DCACT[0] EQ CT8ASCII OR DCACT[0] EQ CT12ASCII))
OR (NCNBDT[0] EQ DT$INTA AND DCACT EQ CT6DISPLAY)
OR (NCNBID[0] EQ NCNBIDVALUE AND NOT NCNBAA[0]
AND DCACT[0] EQ CT60TRANS))
THEN
#
DT = 5 INTRA HOST ACT MUST BE 1,2 OR 3
DT = 6 INTER HOST ACT MUST BE 2 OR 3
T-A CONNECTION ACT MUST BE 2,3 OR 4
#
BEGIN
PARAMS1 = RLG"IA"; # ILLEGAL ACT #
GOTO ERREXIT;
END
# STORE NEW ACT IN ACNB #
ACNBICT = DCACT[0]; # NEW INPUT CHARACTER TYPE #
ACNBSCT[0] = DCSCT[0] ; # SYN. CHAR TYPE #
ACNBNXP[0] = DCNXP[0] ; # NO TRANS. DATA INDICATOR #
GOTO RJMAIN; # RETURN TO CALLING PROGRAM #
END
ELSE
PARAMS1 = RLG"ACN"; # REASON CODE - BAD ACN #
ERREXIT:
OVLNAME = HLGLERRP; # SEND LOGICAL ERROR MSG TO APPL #
OVLCALL;
GOTO RJMAIN; # RETURN TO CALLING PROGRAM #
END
TERM