SUBROUTINE DELETE C C PURPOSE: REMOVES A PROGRAM STEP FROM PROGRAM MEMORY AND PADS THE C END OF MEMORY WITH R/S COMMAND (0). C C VARIABLES: C P -COMMON BYTE ARRAY, PROGRAM MEMORY C PC -INTEGER PROGRAM COUNTER C NSTEPS -LOCAL VARIABLE DEFINING CURRENT PROGRAM MEMORY SIZE C RS -LOCAL BYTE VARIABLE SET TO CODE FOR R/S COMMAND (0) C LASTPC -HOLDS CURRENT PROGRAM COUNTER C C SUBROUTINES REQUIRED: C STEPPC -DETERMINES # PROGRAM LOCATIONS USED BY THE COMMAND POINTED C TO BY CURRENT PROGRAM COUNTER (PC). C C SORENSON, 1/81 C COMMON/MEMORY/PC,P(1000) BYTE P INTEGER PC BYTE RS DATA NSTEPS/1000/,RS/0/ C C KEEP TRACK OF CURRENT PC IN LASTPC, THEN SKIP OVER COMMAND BY CALL TO C STEPPC. IF STEPPC ROLLS OVER TO 1, WE'RE AT END OF MEMORY; RESET C PC TO NSTEPS. C LASTPC=PC CALL STEPPC IF(PC.LE.1)PC=1000 C C COPY MEMORY FROM NEXT SEQUENTIAL COMMAND THROUGH LAST PROGRAM STEP, C OVERWRITTING CURRENT COMMAND; INSERT R/S COMMAND AT END OF MEMORY C DO 10 I=LASTPC,NSTEPS IF(PC.GE.NSTEPS)GO TO 9 P(I)=P(PC) PC=PC+1 GO TO 10 9 P(I)=RS 10 CONTINUE C C RECOVER PROGRAM COUNTER AND EXIT. C PC=LASTPC RETURN END