cdc:nos2.source:nam5871:hsfcbrk
Table of Contents
HSFCBRK
Table Of Contents
- [00013] PRGM HSFCBRK
Source Code
- HSFCBRK.txt
- *DECK HSFCBRK
- USETEXT NIPDEF
- USETEXT PARAMS
- USETEXT PT
- USETEXT ACB
- USETEXT ACNT
- USETEXT AT
- USETEXT ACNB
- USETEXT AHEADER
- USETEXT DRHDR
- USETEXT KDIS
- USETEXT SUPMSG
- PRGM HSFCBRK ;
- STARTIMS ;
- #
- *1DC HSFCBRK
- *
- * 1. PROC NAME AUTHOR DATE
- * HSFCBRK L.T.NGUYEN 81/12/10
- *
- * 2. FUNCTION
- * FOFM FC/BRK OR FC/RST AND SEND TO APPLICATION
- * IF BREAK - ALSO DELETE MSG QUEUED ON ACNB
- *
- * 3. METHOD
- * ALLOCATE BUFFER FOR FC/BRK(RST)
- * LINK TO ACB
- *
- * 4. ENTRY PARAMETERS:
- * PARAMS1 - ACNB
- * PARAMS2 - IF BREAK = BUFFER ADDRESS
- * IF RST = 0
- *
- * 5. EXIT PARAMETERS
- * NONE
- *
- * 6. COMDECKS CALLED AND SYMPL TEXTS USED
- * NIPDEF PARAMS PT
- * ACB ACNT AT
- * ACNB AHEADER DRHDR
- * NCNB SUPMSG OSSIZE
- *
- * 7. ROUTINES CALLED
- * DELCDR DELINK ACNB FROM CONNECTION DATA RING
- * HUPDDAW UPDATE DATA AVAILABLE WORD
- * MGETS ALLOCATE A BUFFER
- * MRELS RELEASE BUFFER
- * BLINK LINK MESSAGE ON DATA RING
- * NXBLOCK SEND SPECIAL BLOCKS TO CCP
- * OSCHAPP SCHEDULE APPLICATION
- * XTRACE TRACE PROCEDURE CALL
- *
- * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
- * THIS IS A SECONDARY OVERLAY CALLED BY HBSTTP.
- * W A R N I N G - THIS PROGRAM CANNOT EXCEED THE SECONDARY
- *CALL OSSIZE
- *
- *
- #
- STOPIMS;
- XREF LABEL RJMAIN ;
- XREF PROC DELCDR;
- XREF PROC HUPDDAW; # UPDATE DATA AVAILABLE WORD #
- XREF PROC MGETS ;
- XREF PROC MRELS ;
- XREF PROC KPUT ;
- XREF PROC BLINK ;
- XREF PROC OSCHAPP ;
- XREF PROC XTRACE ;
- ITEM BUFFER ; # BUFFER TO HOLD FC/BRK #
- ITEM I ;
- ITEM NEXT ;
- ITEM TEMPBLKSQ ;
- BASED ARRAY NHSECOND P(1) ;
- BEGIN
- ITEM NHBRKRC U (0,0,8) ;
- ITEM NHWORD2 U (0,0,WL) ;
- END
- ITEM ACNTINDX U ;
- BEGIN # HSFCBRK #
- CONTROL IFEQ DEBUG,1 ;
- XTRACE("HSBRK") ;
- CONTROL FI;
- TEMPBLKSQ = 0 ;
- P<ACNB> = PARAMS1 ;
- P<NHSECOND> = PARAMS2 + BLKHSIZE + NBHSIZE ;
- IF ACNBDRFP[0] NQ 0
- THEN
- BEGIN # DISCARD DATA #
- NEXT = ACNBDRFP[0] ; # FIRST DATA BLOCK #
- P<DRHDRWD> = 0 ;
- P<AHEADER> = 0 ;
- FOR I = I WHILE NEXT NQ LOC(ACNBDRFP[0])
- DO
- BEGIN # PROCESS THE WHOLE RING #
- BUFFER = NEXT ;
- NEXT = NEXTPTR[BUFFER] ; # NEXT OF BUFFER #
- TEMPBLKSQ = TEMPBLKSQ + 1 ;
- MRELS(BUFFER) ; # RELEASE THE BUFFER BLOCK #
- END # PROCESS THE WHOLE RING #
- ACNBDRFP[0] = 0 ; # THE WHOLE RING HAS BEEN #
- ACNBDRBP[0] = 0 ; # RELEASED #
- DELCDR(P<ACNB>); # DELINK ACNB FROM CON DATA RING#
- END
- P<ACB> = ATACBA[ACNBAN[0]] ;
- P<ACNT> = ACBACNT[0] ;
- HUPDDAW(P<ACB>,P<ACNB>,-TEMPBLKSQ,-TEMPBLKSQ);
- ACNTINDX = ACNBACN[0] - ACNTMINACN[0] + ACNTHSIZE ;
- ACNTABO[ACNTINDX] = 0 ;# RESET THE ABO COUNT #
- MGETS(LFCBRK + BLKHSIZE + ABHSIZE,BUFFER,TRUE);
- # SET UP APPLICATION BLOCK HEADER #
- P<AHEADER> = BUFFER + BLKHSIZE ;
- ABHABT[0] = APPCMD ; # COMMAND BLOCK #
- ABHACT[0] = CT60TRANS ; # CHAR TYPE - TRANSPARENT #
- ABHTLC[0] = LFCBRK ;
- # SET UP FC/BRK (RST) #
- P<SUPMSG> = BUFFER + BLKHSIZE + ABHSIZE ;
- FCACN[0] = ACNBACN[0] ;
- IF PARAMS2 NQ 0 # (BREAK) #
- THEN
- BEGIN
- PFCSFC[0] = FCBRK ;
- FCRBR[0] = NHBRKRC[0] ;
- END
- ELSE
- PFCSFC[0] = FCRST ;
- BLINK(BUFFER,ATACBA[ACNBAN[0]]) ;
- OSCHAPP(ATACBA[ACNBAN[0]]) ;
- GOTO RJMAIN ;
- END # HSFCBRK #
- TERM
cdc/nos2.source/nam5871/hsfcbrk.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator