*DECK EXTINFO
PROC TSBINFO ( TSBSIZE , TSBADDR , TSBN );
BEGIN # TSBINFO #
*IF DEF,IMS
#
**
*
* 1. PROC NAME AUTHOR DATE
* TSBINFO M. D. PICKARD 76/11/30
*
* 2. FUNCTIONAL DESCRIPTION
* TSBINFO WILL SUPPLY THE CALLER WITH THE CURRENT FWA AND SIZE
* OF AN ASSIGNED TSB.
*
* 3. METHOD USED
* IF THE TSBN IS VALID THE FWA AND SIZE OF THE USER AREA ARE
* PUT IN THE CALLER"S PARAMETERS AND THE TSB IS SET NOT
* MOVEABLE.
*
* 4. ENTRY PARAMETERS
* TSBN (FORMAL) TSB NUMBER OF AN ASSIGNED TSB
*
* 5. EXIT PARAMETERS
* TSBADDR FWA OF USER AREA FOR TSB ASSOCIATED TO
* TSBSIZE SIZE OF USER AREA FOR TSB ASSOCIATED TO
* TSBN
* TSBN
*
* 6. COMDECKS CALLED
* TSBBASE TSB MANAGER BASED ARRAY DEFINITIONS
* TSBDATA TSB MANAGER DATA AREA DEFINITIONS
* TSBDEFS TSB MANAGER SYMPL DEFS
* 7. ROUTINES CALLED
* NONE.
*
* 8. DAYFILE MESSAGES
* NONE.
*
#
*ENDIF
CONTROL NOLIST; # STOPS LIST TSBDEFS,TSBDATA,TSBBASE #
*CALL CYBERDEFS
*CALL TSBDEFS
*CALL TSBBASE
*CALL TSBDATA
CONTROL LIST;
XREF PROC ABORT;
ITEM
TSBSIZE U, # SIZE OF TSB USER AREA RETURNED #
TSBADDR U, # ADDRESS OF TSB USER AREA RETURNED #
TSBN U; # TSB NUMBER THAT INFO. IS WANTED FOR #
IF ( NOT TBUSY[TSBN] ) OR ( TSBN GQ LENGTH[0] ) OR
( TSBN LQ 0 )
THEN # TSBN IS ILLEGAL #
BEGIN
$BEGIN
ABORT;
$END
TSBADDR = -1; # SET FOR REJECT #
TSBSIZE = 0; # SET FOR REJECT #
END
ELSE # EVERYTHING IS GO #
BEGIN
P<BTSBHDR> = TTSBFWA[TSBN];
BNOTMOV[0] = TRUE; # SET NOT MOVEABLE #
TSBADDR = TTSBFWA[TSBN] + TSBHDRL; # SET USER AREA FWA #
TSBSIZE = BTSBL[0] - TSBHDRL; # SET USER AREA SIZE #
END
RETURN;
END TERM # TSBINFO #