*DECK NETPUT
USETEXT AIPDEF
USETEXT NP$GETS
USETEXT NP$MODE
USETEXT NP$NWL
USETEXT NP$ONAM
USETEXT NP$PUTS
USETEXT NP$STAT
*IF DEF,XFR,2
USETEXT NX$ACBF
USETEXT NX$ACBX
*IF,DEF,DEBUG
USETEXT NP$DB
*ENDIF
PROC NETPUT(HA,ATA) ;
*IF DEF,IMS
#
*1DC NETPUT
*
* 1. PROC NAME AUTHOR DATE
* NETPUT J.C. LEE 78/10/10
*
* 2. FUNCTIONAL DESCRIPTION
* ACCEPTS A DATA BLOCK OR A SUPERVISOEY BLOCK FROM THE
* APPLICATION, FORMATS A PUT WORKLIST ENTRY AND SENDS THE
* WORKLIST TO NIP WHEN APPROPRIATE.
*
* 3. METHOD USED
* IF THE APPLICATION IS USING THE UPLINE DATA QUEUE FEATURE,
* THIS PROGRAM CANNOT BE CALLED.
* CALLS NP$PUT INITIALIZE CELLS FOR PUT REQUEST.
* UPON RETURN FROM NP$PUT IT CONTINUES TO FORMAT
* THE NETPUT REQUEST AND UPDATES THE S AND I BITS
* IN THE NSUP WORD.
* THEN CHECKS IF THERE IS STILL ROOM FOR ANOTHER
* WORKLIST ENTRY, OR, IF IT IS NOT A SUPERVISORY
* MESSAGE. IF CONDITIONS ARE TRUE IT RETURN TO
* THE APPLICATION WITHOUT SENDING THE WORKLIST TO
* NIP. SOME SUBSEQUENCE CALL TO AIP WILL TRIGGER
* THE WORKLIST TO BE SENT TO NIP FOR PROCESSING.
*
* 4. ENTRY CONDITIONS
* HA - HEADER AREA.
* ATA - APPLICATION TEXT AREA.
* NEXT - NEXT AVAILABLE SPACE POINTER FOR WORKLIST.
* SPACE$LEFT - NUMBER OF CELLS AVAILABLE IN NWL.
*
* 5. EXIT CONDITIONS
* NEXT - INDEX OF NEXT AVAILABLE WORKLIST CELL, REFLECTING
* THE NETPUT ENTRY.
* SPACE$LEFT - NUMBER OF AVAILABLE WORKLIST CELLS, REFLECTING
* THE NETPUT ENTRY.
*
* 6. COMDECKS CALLED AND SYMPL TEXTS USED.
* AIPDEF NP$CRT NP$DB NP$GETS
* NP$MODE NP$NWL NP$ONAM NP$PUTS
* NP$STAT
*
* 7. ROUTINES CALLED
* NP$PUT - INITIALIZE CELLS FOR PUT REQUEST.
* NP$SEND - SEND NWL TO NIP.
* NP$UCV - UPDATES CONTROL VARIABLES.
* NP$USI - UPDATES S AND I BITS IN NS.
*
* 8. DAYFILE MESSAGES
* * NETWORK APPLICATION ABORTED, RC = 57. *
* * NETPUT: REQUEST INVALID FOR DATA QUEUE. *
*
#
*ENDIF
BEGIN
*CALL NP$CRT
#
ROUTINES CALLED
#
XREF
BEGIN
PROC NP$ERR; # ISSUE ERR MSG AND ABORT APP #
PROC NP$PUT; # PROCESS A PUT REQUEST #
PROC NP$SEND; # SEND NWL TO NIP #
PROC NP$UCV; # UPDATE CONTROL VARIABLES #
PROC NP$USI; # UPDATE S AND I BITS IN NSUP #
*IF DEF,XFR,1
PROC NETXFRC; # CONTINUE FILE TRANSFERRING #
END
#
LOCAL VARIABLES
#
ITEM HA I; # HEADER AREA #
ITEM ATA I ;
BASED ARRAY MEM P(1);
BEGIN
ITEM MEMWORD I;
END
#**********************************************************************#
#
NETPUT EXECUTION BEGINS HERE
#
OPCODE = OP$PUT; # SAVE INPUT PARAM IN COMMON #
LOC$TA = LOC(ATA) ;
LOC$HA = LOC(HA);
*IF,DEF,STAT
IAM = TYPE"PUT";
IF GMBUSE
THEN # UPLINE DATA QUEUE BEING USED #
BEGIN
NP$ERR("57"); # ABORT APP WITH ERROR MESSAGE #
END
*ENDIF
*IF DEF,DEBUG
DB$CALL = LOC(NETPUT);
*ENDIF
NP$PUT; # PROCESS A PUT REQUEST #
*IF DEF,XFR
#
IF THERE ARE FILE BEING TRANSFERRED OUTTANDING, CONTINUE...
#
IF NUMFILEXFR GR 0
THEN
NETXFRC;
*ENDIF
RETURN;
END #NETPUT#
TERM