PRINT ON,NODATA,NOGEN TITLE 'SKELETON ASSEMBLER PROGRAM' ASMSKEL CSECT ********************************************************************** * STANDARD ENTRY LINKAGE ********************************************************************** STM R14,R12,12(R13) SAVE CALLER'S REGS BASR R12,0 ESTABLISH... USING *,R12 ADDRESSABILITY LA R2,SAVEAREA POINT AT MY SAVE AREA ST R2,8(,R13) FORWARD CHAIN MINE FROM CALLER ST R13,SAVEAREA+4 BACK-CHAIN CALLER'S FROM MINE LR R13,R2 SET 13 FOR MY SUBROUTINE CALLS ********************** BEGIN LOGIC ********************************* OPEN (FILEIN,(INPUT)) OPEN THE INPUT FILE OPEN (FILEOUT,(OUTPUT)) OPEN THE OUTPUT FILE GET FILEIN,RECIN READ A RECORD LOOP EQU * MVC RECOUT,RECIN COPY DATA TO OUTPUT RECORD PUT FILEOUT,RECOUT WRITE THE RECORD TO THE FILE GET FILEIN,RECIN READ THE NEXT RECORD J LOOP JUMP BACK AND DO THIS ALL AGAIN EXIT EQU * CLOSE FILEIN CLOSE THE INPUT FILE CLOSE FILEOUT CLOSE THE OUTPUT FILE *********************** STARDARD EXIT ******************************** L R13,SAVEAREA+4 POINT TO CALLER'S SAVE AREA LM R14,R12,12(R13) RESTORE CALLER'S REGS LA R15,0 SET RETURN CODE REG 15 = 0 BR R14 RETURN TO CALLER ********************** DATA AREAS ********************************* DC X'FFFFFFFF' FILEIN DCB DSORG=PS, X MACRF=(GM), X DEVD=DA, X DDNAME=FILEIN, X RECFM=FB, X EODAD=EXIT, X LRECL=80 FILEOUT DCB DSORG=PS, X MACRF=(PM), X DEVD=DA, X DDNAME=FILEOUT, X RECFM=FB, X LRECL=80 RECIN DS CL80 INPUT AREA FOR RECORDS RECOUT DS CL80 OUTPUT AREA FOR RECORDS SAVEAREA DC 18F'0' AREA FOR MY CALLEE TO SAVE & RESTORE MY REGS LTORG YREGS END ASMSKEL