I notice that the points plotted in your PAST3 version do not seem to match up with those in the R biplot. It looks like the y-axis is flipped in the two versions.
The structure returned from prcomp
has what you need to make one in the nicer style. The projected points are in PCA$x
so you can get the desired plot from base R plotting with
plot(PCA$x[,1:2], pch=20, col=iris$Species)

For adding ellipses, I always use dataEllipse
from the car package, but that goes outside your request to not use other packages.
UPDATE
As requested in the comment, I am adding how to add ellipses using the car
package.
library(car)
plot(PCA$x[,1:2], pch=20, col=iris$Species)
dataEllipse(PCA$x[,1], PCA$x[,2], iris$Species, lwd=1,
group.labels = NULL, plot.points=FALSE, add=TRUE,
fill=TRUE, fill.alpha=0.02)

I picked something that I thought looked nice, but dataEllipse
allows you to make many kinds of adjustments. Just look at the help page so that you can tune it to your taste.