51
© 2002. Reproduction prohibited. Please inform Xephon of any infringement.
* DELETE A SINGLE OCCURRENCE
* THIS IS DONE BY MOVING BACK ALL OCCURRENCES FOLLOWING THE ONE
* TO DELETE AND ADJUSTING THE OVERALL LENGTH AND OCCURRENCE COUNT.
*
GETUDEL DS ØH
LR R6,R3 ADDR CURRENT OCC (TO ADDR)
LR R4,R3 @MC6
A R4,USRDATAL @MC6
LA R4,USRDOCCL(R4) ADDR NEXT OCC (FROM ADDR) @MC6
LR RØ,R4 @MC6
SR RØ,R6 LEN CURRENT OCC.
*
L R7,USRDLEN
SR R7,RØ
ST R7,USRDLEN ADJUST LEN OF USERDATA LEFT
L R7,USRCNT
BCTR R7,Ø
ST R7,USRCNT ADJUST NO. OF OCCURRENCES LEFT
LTR R7,R7 ARE WE DELETING ONLY ENTRY LEFT
BNP GETU99 YES, RETURN
*
LR R7,R5 TO END OF ALL USERDATA
SR R7,R4 LEN FOLLOWING CURRENT OCCURRENCE
BNP GETU99 NONE, LAST ONE, NO MOVE NEEDED
LR R1,R5 * SAVE R5 OVER MVCL @MC6
LR R5,R7 LEN FOLLOWING CURRENT OCCURRENCE @MC6
MVCL R6,R4 SHUFFLE BACK OVER CURRENT OCC @MC6
LR R5,R1 * RESTORE R5 @MC6
SR R5,RØ NEW END ADDR OF ALL USERDATA
B GETU1 SEE IF ANY MORE TO DELETE
*
* PROCESS NEXT OCCURRENCE IF ANY LEFT
*
GETUNXT DS ØH
A R3,USRDATAL
LA R3,USRDOCCL(R3) TO NEXT USERDATA OCCURRENCE
CR R3,R5 END YET ?
BM GETU1 NO
*
GETU99 L R1Ø,SAVER1Ø
LM R2,R8,SAVESUB+12 LEAVE RØ,R1,R15
BR R1Ø
DROP R3 @MC4
********************************************************************
* *
* SUBROUTINE: CHECK CALLERS AUTHORISATION TO REQUESTED FUNCTION *
* *
* ON ENTRY: AUTHENT SHOULD BE SET UP WITH THE NAME TO CHECK, *
* IN THE FORMAT CLASS.SEGMENT.FIELD *
* *
Comentários a estes Manuais