*DECK HPNONSR USETEXT NIPDEF USETEXT APPSTAT USETEXT AWLNTRY USETEXT DRHDR USETEXT DUMPFLG USETEXT FLIST USETEXT MSGIDX USETEXT NWLHEAD USETEXT PARAMS USETEXT SCPCOM PRGM HPNONSR; # PROCESS NONZERO SF.STAT RETURN CODE # STARTIMS; # *1DC HPNONSR * * 1. PROC NAME AUTHOR DATE * HPNONSR E. GEE 77/07/27 * * 2. FUNCTIONAL DESCRIPTION. * PROCESS NONZERO SF.STAT RETURN CODE * * 3. METHOD USED. * IF BAD RETURN CODE, DUMP NIP-S FIELD LENGTH * IF APP IS SWAPPED OUT, REJECT NETON WITH RC=1. CREATE AWL * NETON ENTRY AND SCP FUNCTION TO WRITE AWL BACK AND CLEAR * SHORT TERM CONNECTION. * * 4. ENTRY PARAMETERS. * NWLADDR ADDR OF NWL (SF.STAT SCP) BUFFER * * 5. EXIT PARAMETERS. * PARAMS4 ADDR OF SCP FUNCTION LIST IF RETURN CODE * WAS APP-SWAPPED-OUT * * 6. COMDECKS CALLED AND SYMPL TEXTS USED. * APPSTAT AWLNTRY DRHDR * FLIST NIPDEF NWLHEAD * PARAMS SCPCOM * * 7. ROUTINES AND OVERLAYS CALLED. * OMSG ISSUE DAYFILE MESSAGE * RDUMP DUMP NIP-S FIELD LENGTH * XTRACE RECORD PROCEDURE CALLS * * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION. * * THIS PROGRAM IS A SECONDARY OVERLAY LOADED BY SUBROUTINE * OVLCALL. WHEN EXECUTION IS 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 SECONDARY *CALL OSSIZE * * THIS OVERLAY IS CALLED BY HPNON. * # STOPIMS; # EXTERNAL VARIABLES # XREF BEGIN PROC OMSG; # DAYFILE MESSAGE # PROC RDUMP; PROC XTRACE; LABEL RJMAIN; END # INTERNAL VARIABLES # ITEM SCPADDR; #**********************************************************************# BEGIN CONTROL IFEQ DEBUG,1; XTRACE("HPNSR") ; CONTROL FI; # PROCESS SCP FUNCTION RETURN CODE # P = NWLADDR; # ADDR OF SCP FUNCTION LIST # IF SCPRC[0] NQ RCUCPGONE THEN # APP IS STILL IN SYSTEM # BEGIN IF SCPRC[0] NQ RCSWAPPEDOUT THEN # OP SYS GAVE US BAD RETURN CODE # BEGIN RDUMP; # DUMP NIP-S FIELD LENGTH # D25M2[0] = "HPNONSR"; OMSG(DFMSG25,0); # "NIP DUMP TAKEN" # END ELSE # APP IS SWAPPED OUT # BEGIN # DO NOT BOTHER TO CONTINUE PROCESSING NETON OF APP. INSTEAD REJECT NETON WITH RC = 1 AND LET APP TRY TO NETON AGAIN. # # CREATE AWL TO REJECT NETON # P = NWLADDR; # ADDR OF BUF TO HOLD AWL # BLKID[0] = MOUTIDVALUE; # (NONMOVABLE) WRITE BUF BLK ID # BLKBS[0] = AWLNSIZE; # SIZE OF (NETON) AWL # P = NWLADDR + BLKHSIZE; # ADDR OF AWL NETON ENTRY # AWLEAIPH[0] = 0; AWLRC[0] = TRYAGAIN; # RETURN CODE IF NAM NOT AVAILABLE # AWLOP[0] = WLOPNON; # AIP OPCODE FOR NETON # AWLCB[0] = 1; AWLEWD1[0] = 0; # CREATE SCP FUNCTION TO WRITE AWL AND CLEAR SHORT TERM CONN # SCPADDR = NWLADDR + AWLNSIZE; # BUF TO HOLD SCP FL# P = SCPADDR; SCPWD0[0] = 0; SCPID[0] = NAFLIDVALUE; # (NO ACB) SCP FUNC LIST BLK ID VALUE# SCPBS[0] = SCPSIZE + 2*FLESIZE; # SIZE OF FUNCTION LIST # SCPFW[0] = 0; SCPFP[0] = 2; # NO OF ENTRIES IN FUNCTION LIST # SCPSCPA[0] = SCPADDR + SCPSIZE; # ADDR OF FUNC LIST ENTRIES # SCPFC[0] = SFLIST; # SCP SF.LIST FUNCTION CODE # SCPJOBID[0] = JOBID; # JOB ID WORD # P = SCPADDR + SCPSIZE; FLEWD0[0] = 0; FLEFP[0] = AWLNSIZE - BLKHSIZE; # NO OF WDS TO WRITE TO UCP # FLEUCPA[0] = AWLA; # UCP APP WORKLIST ADDRESS # FLESCPA[0] = NWLADDR + BLKHSIZE; # ADDR OF AWL IN NIP # FLEFC[0] = SFWRITE; # SCP SF.WRITE FUNCTION CODE # P = P + FLESIZE; FLEWD0[0] = 0; FLEUCPA[0] = CBA; # UCP COMPLETION BIT ADDRESS # FLEFC[0] = SFENDT; # SCP SF.ENDT FUNCTION CODE # PARAMS4 = SCPADDR; # ADDR OF SCP FUNCTION LIST # END END GOTO RJMAIN; # RETURN TO CALLING PROGRAM # END TERM