Previous Topic: ExamplesNext Topic: COBOL Example


Assembler Example

                         ASSEMBLER UEXIT     CSECT           SAVE (14,12)           BALR R12,0           USING *,R12           ST   R13,EXITSV+4         SAVE CALLERS SAVE AREA POINTER           LA   R13,EXITSV           ESTABLISH OWN SAVE AREA           ST   R1,PARMADR           SAVE PASSED PARM LIST ADDRESS           L    R2,0(R1)             FLAG ADDRESS           CLC  0(4,R2),=X'FFFFFFFF' IS THIS AN EOF CALL           BE   CLEOF                YES *  EXAMINE RECORD, DETERMINE ACTION     .......... RESTORE L    R1,PARMADR        ADDRESS OF FAVERS PARM LIST         L    R2,0(R1)          GET FLAG ADDRESS         LA   R3,4              CODE TO RESTORE A RECORD         ST   R3,0(R2)          SET FLAG VALUE         B    EXITRTN           RETURN DELETE  L    R1,PARMADR        ADDRESS OF FAVERS PARM LIST         L    R2,0(R1)          GET FLAG ADDRESS         LA   R3,8              CODE TO DELETE A RECORD         ST   R3,0(R2)          SET FLAG VALUE         B    EXITRTN           RETURN MODIFY  L    R1,PARMADR        ADDRESS OF PASSED PARM LIST         L    R2,0(R1)          GET PASSED FLAG ADDRESS         ST   R2,XPFLAGA        SET PASSED FLAG ADDR IN GVMODINS PARMS         LA   R3,12             MODIFY FLAG CODE         ST   R3,0(R2)          SET IN FLAG         LA   R4,WORKARE        ADDRESS OF MODIFIED RECORD         ST   R4,XPRECA         SET IN PARM LIST         LA   R4,NEWRL          ADDRESS LENGTH OF MODIFIED RECORD         ST   R4,XPRECLA        SET IN PARMS         B    CALLSUB           CALL GVMODINS

INSERT  L    R1,PARMADR        ADDRESS OF PASSED PARM LIST         L    R2,0(R1)          GET PASSED FLAG ADDRESS         ST   R2,XPFLAGA        SET PASSED FLAG ADDR IN GVMODINS PARMS         LA   R3,16             INSERT FLAG CODE ST R3,0(R2) SET IN FLAG         LA   R4,WORKARE        ADDRESS OF RECORD TO BE INSERTED         ST   R4,XPRECA         SET IN PARM LIST         LA   R4,NEWRL          ADDRESS LENGTH OF NEW RECORD         ST   R4,XPRECLA        SET IN PARMS         B    CALLSUB           CALL GVMODINS CALLSUB LA   R1,XPARMS         ADDRESS OF GVMODINS PARMS         MVI  XPRECA,X'80'      END OF PARM LIST         L    R15,=V(GVMODINS)  ADDRESS OF SUBROUTINE         BALR R14,R15           GO TO GVMODINS         B    EXITRTN           RETURN CLEOF   EQU  *         B    EXITRTN           FINAL RETURN EXITRTN L    R13,EXITSV+4      RESTORE CALLERS SAVE POINTER         LM   R14,R12,12(R13)   RESTORE CALLERS REGS         BR   R14               RETURN TO CALLER XPARMS  DS   0F           GVMODINS PARM LIST XPFLAGA DS   F            ORIGINAL FLAG ADDRESS PASSED TO THE EXIT XPRECLA DS   F            INSERT OR MODIFY RECORD LENGTH XPRECA  DS   F            ADDRESS OF MODIFY OR INSERT RECORD *                         WORK AREA PARMADR DS   F            SAVE PARM LIST ADDRESS EXITSV  DS   18F           SAVE AREA WORKAREA DS  ...          RECORD WORK AREA NEWRL   DS   F            LENGTH OF NEW OR MODIFIED RECORD         END