./ ADD NAME=$ENTER ************************************************************ * $ENTER - PERFORM STANDARD PROGRAM INIT, PARTICULARLY * * DEAL WITH OS LINKAGE & CHAIN SAVEAREAS. NOTE, * * THIS MACRO ASSUMES THAT $SAVE HAS BEEN CODED * * AT THE BEGINNING OF THE WORKAREA. * * * * VERSION HISTORY: * * -------------------------------------------------------- * * 2024-09-22 INITIAL VERSION * * -------------------------------------------------------- * * * ************************************************************ MACRO &L $ENTER &L CSECT STM RE,RC,12(RD) LR RC,RF USING &L,RC L RF,=A(SAVEAREA) ST RD,4(RF) ST RF,8(RD) LR RD,RF $GOTO MAIN L RF,PGMRC L RD,SAVEAREA+4 L RE,12(RD) LM R0,RC,20(RD) BR RE LTORG MEND ./ ADD NAME=$GOTO ************************************************************ * $GOTO - LINK TO A ROUTINE. * * * * VERSION HISTORY: * * -------------------------------------------------------- * * 2024-09-22 INITIAL VERSION * * -------------------------------------------------------- * * * ************************************************************ MACRO &L $GOTO &A CNOP 0,4 &L L RF,*+8 B *+8 DC A(&A.) BALR RE,RF MEND ./ ADD NAME=$INIT ************************************************************ * $INIT - INITIALISE A ROUTINE, CREATING A SAVEAREA FOR * * RESERVED REGISTERS RC THRU RF * * * * VERSION HISTORY: * * -------------------------------------------------------- * * 2024-09-22 INITIAL VERSION * * -------------------------------------------------------- * * * ************************************************************ MACRO &L $INIT &A CNOP 0,4 DC CL12'RTN-&L.' &L DS 0H STM RC,RF,&L.SAVE-&L.(RF) LR RC,RF DROP RC USING &L,RC XC &L.RR,&L.RR B &L.0000 &L.EXIT DS 0H LM RC,RF,&L.SAVE LTR RF,RF BR RE &L.SAVE DC 4F'0' ORG &L.SAVE+12 &L.RR DS 0F DC XL3'00' &L.RC DC X'00' ORG , &L.0000 DS 0H MEND ./ ADD NAME=$REGS ************************************************************ * $REGS - STANDARD-ISH REGISTERS EQUATE. TWO CHARACTER * * VERSION WITH HEX FOR R11 THRU R15. * * * * VERSION HISTORY: * * -------------------------------------------------------- * * 2024-09-22 INITIAL VERSION * * -------------------------------------------------------- * * * ************************************************************ MACRO $REGS R0 EQU 0 R1 EQU 1 R2 EQU 2 R3 EQU 3 R4 EQU 4 R5 EQU 5 R6 EQU 6 R7 EQU 7 R8 EQU 8 R9 EQU 9 RA EQU 10 RB EQU 11 RC EQU 12 RD EQU 13 RE EQU 14 RF EQU 15 MEND ./ ADD NAME=$SAVE ************************************************************ * $SAVE - CREATE A SAVEAREA, AND ALSO SPACE FOR PROGRAM * * LEVEL RETURN CODE + EYECATCHERS. * * * * VERSION HISTORY: * * -------------------------------------------------------- * * 2024-09-22 INITIAL VERSION * * -------------------------------------------------------- * * * ************************************************************ MACRO $SAVE USING SAVEAREA,RD DS 0F DC CL8'$SAVE$$$' EYECATCHER SAVEAREA DC 18F'0' SAVEAREA PGMRC DC F'0' PROGRAM RETURN CODE DC CL8'$WORK$$$' EYECATCHER MEND