IDENT MULTCB
ENTRY LOADCB
ENTRY RELSCB
TITLE MULTCB - ACCESS MULTIPLE COMMUNICATION BLOCKS.
*COMMENT MULTCB - ACCESS MULTIPLE C.B.-S.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
SPACE 4,10
*** MULTCB - ACCESS MULTIPLE COMMUNICATION BLOCKS.
* J.R. HOGUE. 74/11/06.
SPACE 4
*CALL,COMCMAC
*CALL,COMKMAC
*CALL COMSPRD
LOADCB TITLE READ MULTIPLE COMMUNICATION BLOCK INPUT.
*** LOADCB - READ MULTIPLE COMMUNICATION BLOCK INPUT.
*
* CALL FORMAT -
*
* FORTRAN EXTENDED
* CALL LOADCB(ADDR,LEN,STAT,REL)
* COBOL
* ENTER LOADCB USING ADDR STAT REL.
*
* WHERE ADDR = FWA TO LOAD THE COMMUNICATION BLOCK(S).
* LEN = MAXIMUM AMOUNT OF DATA TO TRANSFER TO THE TASK.
* STAT = AMOUNT OF DATA TRANSFERED TO THE TASK.
* REL = NONZERO TO RELEASE THE COMMUNICATION BLOCK(S).
LOADCB SUBR ENTRY/EXIT
SB1 1
SX6 X1 CHECK COBOL CALL
BX7 X1-X6
SA3 A1+1 READ LENGTH OR STATUS ADDRESS
NZ X7,LOA3 IF COBOL CALL
SA2 X3 READ LENGTH
SA3 A3+1 ADDRESS OF STATUS WORD
LOA1 SA4 A3+B1 READ REL PARAMETER
MX7 1 REL BIT
SA5 X4
LX2 30
BX6 X6+X2
ZR X5,LOA2 IF REL NOT REQUESTED
BX6 X7+X6
LOA2 SA6 LOAA REQUEST CONTROL WORD
LOADCB LOAA LOAD COMMUNICATION BLOCKS
SA6 X3 WRITE STATUS
JP LOADCBX
* COBOL BUFFER LENGTH IN CHARACTERS TO WORDS, DISCARD REMAINDERE
LOA3 LX7 -36 BUFFER LENGTH IN CHARACTERS
SX4 X7
SX7 10D DIVIDE BY 10 AND TRUNCATE
IX2 X4/X7
JP LOA1
LOAA BSS 1
RELSCB TITLE RELEASE MULTIPLE COMMUNICATION BLOCK(S).
*** RELSCB - RELEASE THE MULTIPLE COMMUNICATION BLOCK(S) USED TO
* CONTAIN LARGE TRANSACTION INPUTS.
*
* CALL FORMAT -
*
* FORTRAN EXTENDED
* CALL RELSCB
* COBOL
* ENTER RELSCB.
RELSCB SUBR ENTRY/EXIT
RELSCB RELEASE ANY EXTRA COMMUNICTION BLOCKS
EQ RELSCBX RETURN
END