*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