*DECK HFASTQ
USETEXT NIPDEF
USETEXT PT
USETEXT AT
USETEXT ACB
USETEXT SYSTIME
USETEXT ACNB
USETEXT AHEADER
USETEXT NHEADER
PROC HFASTQ ( BLKPTR,ACNBAD) ;
STARTIMS ;
#
*1DC HFASTQ
*
* 1. PROC NAME AUTHOR DATE
* HFASTQ A. BEN-ARTZI 82/09/15
*
* 2. FUNCTIONAL DESCRIPTION
* QUEUE UPLINE MESSAGES TO ACNB
*
* 3. METHOD USED
* CHANGE THE HEADER
* LINK TO THE APPLICATION AND CALL FOR SWAPIN
*
* 4. ENTRY PARAMETERS
* BLKPTR - MESSAGE TO QUEUE
* ACNBAD - ADDRESS OF THE ACNB TO QUEUE TO
*
* 5. EXIT PARAMETERS
* NONE
*
* 6. COMDECKS CALLED AND SYMPL TEXTS USED
* NIPDEF AT PT ACB ACNB
* AHEADER NHEADER SYSTIME
*
* 7. ROUTINES AND OVERLAYS CALLED
* XTRACE - TRACE PROCEDURE CALL
* BLINK - LINK MESSAGE TO APPLICATION
* OSCHAPP - SWAPIN REQUEST FOR APPLICATION
*
* 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
* NORMALLY IT WILL BE CALLED BY HBSTTP.
* WHEN ALL DATA IS ALLOWED ON CONNECTION IT WILL
* BE CALLED FOR FAST QUEUING DIRECTLY FROM NEIB1.
*
#
STOPIMS ;
#
INPUT PARAMETERS
#
ITEM BLKPTR ;
ITEM ACNBAD ;
#
INTERNAL PARAMETERS
#
ITEM AN ;
ITEM NHWORD1 ;
#
EXTERNAL REFERENCES
#
XREF
BEGIN
PROC XTRACE ;
PROC BLINK ;
PROC OSCHAPP ;
END
BEGIN
CONTROL IFEQ DEBUG,1 ;
XTRACE("FASTQ") ;
CONTROL FI ;
P<ACNB> = ACNBAD ;
#
GET ACB OF APPLICATION
#
AN = ACNBAN[0] ;
P<ACB>= ATACBA[AN] ;
# SET UP APPLICATION BLOCK HEADER #
P<AHEADER> = BLKPTR + BLKHSIZE; # BASE ABH #
NHWORD1 = ABHWORD[0]; # SAVE NETWORK HEADER #
P<NHEADER> = LOC(NHWORD1); # LOCATION OF NETWORK HEADER #
ABHWORD[0] = 0; # CLEAR ABH WORD #
ABHABN[0] = NHBSN[0]; # SAVE NETW BSN IN ABH WORD #
IF DN[0] NQ 0 AND SN[0] NQ 0
THEN # NOT A-A MESSAGE #
ABHACT[0] = CT8ASCII; # APPLICATION CHAR TYPE #
ELSE # A-A MESSAGE #
ABHACT[0] = NHACT[0];
ABHTLC[0] = CC[0]; # TEXT LENGTH IN CHARACTER #
IF BT[0] LQ NETMSG
OR BT[0] EQ NETQBLK
OR BT[0] EQ NETQMSG
THEN
ABHDBC[0] = NHDBC[0];
IF BT[0] NQ NETCMD
THEN
ABHABT[0] = BT[0];
ELSE
ABHABT[0] = APPCMD;
ABHADR[0] = ACNBACN[0]; # APPLICATION CONNECTION NUMBER #
# SET INACTIVITY TIMER #
ACNBINACT[0] = RTSECS[0] + INACTVAL;
BLINK(BLKPTR,P<ACNB>) ;# LINK IT TO ACNB #
OSCHAPP(P<ACB>) ; # CALL SCHEDULER #
RETURN ;
END
TERM