*DECK NETPUTF USETEXT AIPDEF USETEXT NP$GETS USETEXT NP$MODE USETEXT NP$NWL USETEXT NP$PUTS USETEXT NP$STAT *IF,DEF,DEBUG USETEXT NP$DB *ENDIF PROC NETPUTF(HA,(NA),TAAA); *IF DEF,IMS # *1DC NETPUTF * * 1. PROC NAME AUTHOR DATE * NETPUTF J.C. LEE 78/10/10 * * 2. FUNCTIONAL DESCRIPTION * ACCEPTS A DATA BLOCK OR A SUPERVISORY BLOCK FROM THE * APPLICATION, FORMATS A PUTF WORKLIST ENTRY AND SENDS THE * WORKLIST TO NIP WHEN APPROPRIATE * * 3. METHOD USED * IF THE APPLICATION IS USING THE UPLINE DATA QUEUE FEATURE OR * THE DOWNLINE BUFFERING FEATURE, THIS PROGRAM CANNOT BE CALLED. * CALLS NP$PUT INITIALIZE CELLS FOR PUT REQUEST. * UPON RETURN FROM NP$PUT IT CALLS NP$PUTF TO CONTINUE * THE FORMAT THE NETPUTF REQUEST. ON RETURN FROM NP$PUTF * IT WILL UPDATE THE S AND I BITS IN THE NSUP WORD. * IT CHECK IF THERE IS MORE ROOM FOR ANOTHER WORKLIST * ENTRY,OR,IF IT IS NOT A SUPERVISORY MESSAGE. IF * CONDITION 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. * NA - NUMBER OF FRAGMENTED BUFFERS IN TAA. * TAA - TEXT AREA ARRAY. * NEXT - NEXT AVAILABLE SPACE POINTER IN WORKLIST. * SPACE$LEFT - NUMBER OF CELLS AVAILABLE IN WORKLIST. * * 5. EXIT CONDITIONS * NEXT - UPDATED TO NEXT AVAILABLE SPACE POINTER IN WORKLIST. * SPACE$LEFT - UPDATED TO NUMBER OF CELLS AVAILABLE IN WORKLIST. * * 6. COMDECKS CALLED AND SYMPL TEXTS USED. * AIPDEF NP$CRT NP$DB NP$GETS * NP$MODE NP$NWL NP$PUTS NP$STAT * * 7. ROUTINES CALLED * NP$PUT - PROCESS A PUT REQUEST. * NP$PUT - INITIALIZE CELLS FOR PUTF REQUEST. * NP$PUTF - FORMAT A -PUTF- NWL REQUEST. * NP$SEND - SEND NWL TO NIP. * NP$UCV - UPDATE CONTROL VARIABLES. * NP$USI - UPDATE S AND I BITS IN NS. * * 8. DAYFILE MESSAGES * * NETWORK APPLICATION ABORTED, RC = 58. * * * 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$PUTF; # FORMAT A -PUTF- NWL ENTRY # PROC NP$SEND; # SEND NWL TO NIP # PROC NP$UCV; # UPDATE CONTROL VARIABLES # PROC NP$USI; # UPDATE S AND I BITS IN NSUP # END # LOCAL VARIABLES # ITEM HA I; # HEADER AREA # ITEM NA I; # NO OF FRAGMENTED BUFFERS # ITEM TAAA I; # TEXT AREA ARRAY # #**********************************************************************# # NETPUTF EXECUTION BEGINS HERE # OPCODE = OP$PUTF; # SAVE INPUT PARAM IN COMMON # LOC$HA = LOC(HA); LOC$TA = LOC(TAAA); ACLN = NA; # ACLN SET TO NA # *IF,DEF,STAT IAM = TYPE"PUTF"; IF GMBUSE OR DOWNUSE # UPLINE DATA QUEUE OR DOWNLINE# THEN # BUFFER FEATURE BEING USED # BEGIN NP$ERR("58"); # ABORT APP WITH ERROR MESSAGE # END *ENDIF *IF DEF,DEBUG DB$CALL = LOC(NETPUTF); *ENDIF NP$PUT; # PROCESS A PUT REQUEST # NP$PUTF; # PR0CESS NETPUTF REQUEST # NP$UCV; # UPDATE CONTROL VARIABLES # IF ISSUE THEN NP$SEND; NP$USI; # UPDATE THE S AND I BITS # RETURN; END # NETPUTF # TERM